LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogR2VybWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDUsIDIwMDYgSGVubmluZyBHZXJoYXJkdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICoKICovCgpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ERUZBVUxUCgpJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiS29uZmlndXJpZXJlbiIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAogICAgTFRFWFQgICAgICAgICAgICJUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxMTksNDQsMTI0LDcyCkVORAoKSUREX0FQUENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgQW53ZW5kdW5nc2VpbnN0ZWxsdW5nZW4gIixJRENfU1RBVElDLCA4LDQsMjQ0LDI1MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lIGthbm4gZvxyIGplZGUgQW53ZW5kdW5nIGVpbmUgdW50ZXJzY2hpZWRsaWNoZSBXaW5kb3dzdmVyc2lvbiBuYWNoYWhtZW4uIERpZXNlciBSZWl0ZXIgaXN0IG1pdCBkZW4gQmlibGlvdGhlay0gdW5kIEdyYWZpay1SZWl0ZXIgdmVya278cGZ0LCBkYW1pdCBlbnR3ZWRlciBzeXN0ZW13ZWl0ZSBvZGVyIGFud2VuZHVuZ3NhYmjkbmdpZ2UgRWluc3RlbGx1bmdlbiBpbiBkaWVzZW4gUmVpdGVybiB2b3JnZW5vbW1lbiB3ZXJkZW4ga/ZubmVuLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzUKICAgIENPTlRST0wgICAgICAgICAiQW53ZW5kdW5nZW4iLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1NSwyMzAsMTU1CiAgICBQVVNIQlVUVE9OCSAgICAiQW53LiAmaGluenVm/GdlbiIsSURDX0FQUF9BRERBUFAsIDkwLDIxNCw3NSwxNAogICAgUFVTSEJVVFRPTgkgICAgIkFudy4gJmVudGZlcm5lbiIsSURDX0FQUF9SRU1PVkVBUFAsIDE3MCwyMTQsNzUsMTQKICAgIExURVhUICAgICAgICAgICAiJldpbmRvd3MgVmVyc2lvbjoiLElEQ19TVEFUSUMsMTcsMjM2LDU4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIzNCwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QICAgIApFTkQKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgRmVuc3RlcmVpbnN0ZWxsdW5nZW4gIixJRENfU1RBVElDLDgsMjUsMjQ0LDE4MAoKICAgIENPTlRST0wgICAgICAgICAiRXJsYXViZSBEaXJlY3RYIEFud2VuZHVuZ2VuLCBkYXNzIGRpZSBNYXVzIGlociBGZW5zdGVyIG5pY2h0IHZlcmxhc3NlbiBrYW5uLiIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzNSwyMzAsOAogICAgQ09OVFJPTCAgICAgICAgICJBa3RpdmllcnVuZyBkZXIgRG9wcGVscHVmZmVydW5nIGRlcyBEZXNrdG9wcyIsSURDX0RPVUJMRV9CVUZGRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NSwyMzAsOAogICAgTFRFWFQgICAgICAgICAgICJXZW5uIGRpZSBGZW5zdGVyIGR1cmNoIGRlaW5lbiBGZW5zdGVybWFuYWdlciBrb250cm9sbGllcnQgd2VyZGVuLCBkYW5uIHdlcmRlbiBzaWUgZGllIGdsZWljaGVuIFLkbmRlciBoYWJlbiwgZGVyIGVpbmdlc3RlbGx0ZSB2aXJ0dWVsbGUgRGVza3RvcCB3aXJkIHJlc3Bla3RpZXJ0IHVuZCBzaWUgd2VyZGVuIGluIGRlciBGZW5zdGVybGlzdGUgYXVmdGF1Y2hlbi5cbldlbm4gZGllIEZlbnN0ZXIgbmljaHQga29udHJvbGxpZXJ0IHdlcmRlbiwgd2VyZGVuIHNpZSB1bmFiaORuZ2lnIHZvbSB2ZXJ3ZXJkZXRlbiBGZW5zdGVybWFuYWdlciBzZWluLiBEYXMgYmVkZXV0ZXQsIGRhc3MgZGllIEZlbnN0ZXIgc2ljaCBuaWNodCBhbiBkZW4gRGVza3RvcCBhbnBhc3NlbiB3ZXJkZW4uIERlciBWb3J0ZWlsIGlzdCwgZGFzcyBkYW5uIGRpZSBFbXVsYXRpb24gYWtrdXJhdGVyIGlzdCwgd2FzIGVpbmlnZW4gQW53ZW5kdW5nZW4gaGlsZnQsIGJlc3NlciB6dSBhcmJlaXRlbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsNTgsMjI4LDgwCiAgICBDT05UUk9MICAgICAgICAgIkVybGF1YmUgZGVtIEZlbnN0ZXJtYW5hZ2VyIGRpZSBGZW5zdGVyIHp1IGtvbnRyb2xsaWVyZW4uIixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxMzIsMjMwLDgKCiAgICAvKiBGSVhNRTogdGhlIHdvcmRpbmcgb2YgdGhpcyBleHBsYW5hdGlvbiBjb3VsZCBiZSBhIGxvdCBiZXR0ZXIgKi8KICAgIExURVhUICAgICAgICAgICAiU2llIGv2bm5lbiBlbnR3ZWRlciBlaW5lbiBXaW5kb3dzIERlc2t0b3AgZW11bGllcmVuLCBpbiBkZW0gYWxsZSBGZW5zdGVyIGluIGVpbmVtICd2aXJ0dWVsbGVuIEJpbGRzY2hpcm0nIHp1c2FtbWVuIHNpbmQsIG9kZXIgU2llIGxhc3NlbiBlcyB6dSwgZGFzcyBkaWUgRmVuc3RlciBhdWYgaWhyZW4gbm9ybWFsZW4gRGVza3RvcCBwbGF0emllcnQgd2VyZGVuLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwxNDYsMjI4LDI4CiAgICBMVEVYVCAgICAgICAgICAgIkRlc2t0b3AtR3L232U6IixJRENfREVTS1RPUF9TSVpFLDE1LDE4OCw1MCw4LFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDExNCwxODgsOCw4LFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIkVtdWxpZXJlIGVpbmVuIHZpcnR1ZWxsZW4gRGVza3RvcCIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTczLDIzMCwxMAoJCSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9XSURUSCw3MCwxODgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMjMsMTg4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIAogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0M0QgIixJRENfU1RBVElDLDgsMjEwLDI0NCw1MAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIlZlcnRleCBTaGFkZXIgVW50ZXJzdPx0enVuZzogIixJRENfU1RBVElDLDE1LDIyMCw4MCwzMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEwMCwyMTgsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBDT05UUk9MICAgICAgICAgIkVybGF1YmUgUGl4ZWwgU2hhZGVyICh3ZW5uIGVzIGR1cmNoIGRpZSBIYXJkd2FyZSB1bnRlcnN0/HR6dCB3aXJkKSIsIElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjQyLDIzMCwxMApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCDcYmVyc2NocmVpYnVuZyAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiRExMcyAoRHluYW1pYyBMaW5rIExpYnJhcmllcykga/ZubmVuIGVpbnplbG4gZWluZ2VzdGVsbHQgd2VyZGVuLCBlbnR3ZWRlciBCdWlsdGluIChnZXN0ZWxsdCBkdXJjaCBXaW5lKSBvZGVyIE5hdGl2ZSAodm9uIFdpbmRvd3Mgb2RlciBkdXJjaCBkaWUgQW53ZW5kdW5nIGdlc3RlbGx0KS4iCiAgICAgICAgICAgICAgICAgICAgLCAgSURDX1NUQVRJQywxNSwxNywyMjgsMzIKICAgIExURVhUICAgICAgICAgICAiTmV1ZSDcYmVyc2NocmVpYnVuZyBm/HI6IixJRENfU1RBVElDLDE2LDU4LDEwMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICImSGluenVm/GdlbiAiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzLEJTX0RFRlBVU0hCVVRUT04gCiAgICBMVEVYVCAgICAgICAgICAgIkJlc3RlaGVuZGUg3GJlcnNjaHJlaWJ1bmdlbjoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJkJlYXJiZWl0ZW4iLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZFbnRmZXJuZW4iLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTEwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQmVhcmJlaXRlINxiZXJzY2hyZWlidW5nIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBMYWRlcmVpaGVuZm9sZ2UgIixJRENfU1RBVElDLDgsNCw5NCw2NgogICAgQ09OVFJPTCAgICAgICAgICImQnVpbHRpbiAoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYsMTQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiJk5hdGl2ZSAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiQnVpJmx0aW4gZGFubiBOYXRpdmUiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJOYXRpJnZlIGRhbm4gQnVpbHRpbiIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZBdXNzY2hhbHRlbiIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsNzUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssOCw3NCw0NSwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJBYmJyZWNoZW4iLElEQ0FOQ0VMLDU3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBMYXVmd2Vya3N6dW9yZG51bmcgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIiZIaW56dWb8Z2VuIixJRENfQlVUVE9OX0FERCwxNSw5OCw0MSwxNAogICAgUFVTSEJVVFRPTiAgICAgICImRW50ZmVybmVuIixJRENfQlVUVE9OX1JFTU9WRSw2MCw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICImQXV0b21hdGlzY2giLCBJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk3LDk4LDQ5LDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIiZQZmFkOiIsSURDX1NUQVRJQywxNSwxMjMsMjAsOQogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE1NSwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJkR1cmNoc3VjaGVuIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwMSwxMjAsNDUsMTMKCiAgICBMVEVYVCAgICAgICAgICAgIiZUeXA6IixJRENfU1RBVElDX1RZUEUsMTQsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDEsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIExURVhUICAgICAgICAgICAiQmV6ZWljaG51bmcgdW5kIFNlcmllbm51bW1lciIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsMTI1LDEwCgogICAgUFVTSEJVVFRPTiAgICAgICImWmVpZ2UgRXJ3ZWl0ZXJ0IixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxNzgsMTM2LDY4LDEzCiAgICBDT05UUk9MICAgICAgICAgIkF1dG9tYXRpc2NoICZ2b20gR2Vy5HQ6IixJRENfUkFESU9fQVVUT0RFVEVDVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTY2LDkzLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDI3LDE3NiwxNjksMTMsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiRHVyY2gmc3VjaGVuIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMjAxLDE3Niw0NSwxMwogICAgQ09OVFJPTCAgICAgICAgICImbWFudWVsbGVzICBadXdlaXNlbjoiLElEQ19SQURJT19BU1NJR04sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE5NSw3OSwxMAoKICAgIExURVhUICAgICAgICAgICAiJkJlemVpY2hudW5nOiIsSURDX1NUQVRJQ19MQUJFTCwzMywyMDgsNDEsMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw3OCwyMDUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlMmZXJpZW5ucjoiLElEQ19TVEFUSUNfU0VSSUFMLDMzLDIyNSw0MSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1NFUklBTCw3OCwyMjEsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgICAgICJaZWlnZSBEb3QtRGF0ZWllbiBhbiIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyNjAsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFRyZWliZXIgQXVzd2FobCAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUICAgICAgICAgICAiV+RobGVuIFNpZSBlaW5lbiBTb3VuZCBUcmVpYmVyIGR1cmNoIGRhcyBBdXN35GhsZW4gZWluZXMgdmVyZvxnYmFyZW4gVHJlaWJlcnMuIERlciBTb3VuZCB3aXJkIGRlYWt0aXZpZXJ0LCB3ZW5uIGtlaW4gVHJlaWJlciBhdXNnZXfkaGx0IHdpcmQuIERpZSBBdXN3YWhsIG1laHJlciBUcmVpYmVyIGlzdCBuaWNodCBlbXBmb2hsZW4uIERlciBUcmVpYmVyIGthbm4gZHVyY2ggZWluZW4gUmVjaHRza2xpY2sga29uZmlndXJpZXJ0IHdlcmRlbi4iLElEQ19TVEFUSUMsMTUsMTUsMjI3LDM1CiAgICBDT05UUk9MICAgICAgICAgIkdlcuR0ZSIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNTAsMTQwLDE0MAogICAgUFVTSEJVVFRPTiAgICAgICJLb250cm9sbHNjaGlybSIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDUwLDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwICAgIAogICAgTFRFWFQgICAgICAgICAgICJIYXJkd2FyZSBCZXNjaGxldW5pZ3VuZzogIiwgSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwNSwyMTMsMTQwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJBYnRhc3RyYXRlOiIsSURDX1NUQVRJQywxNSwyMzIsNzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfUkFURVMsOTAsMjMwLDQyLDc2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJCaXRzIHBybyBBYnRhc3R1bmc6IixJRENfU1RBVElDLDEzNywyMzIsODAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfQklUUywyMjAsMjMwLDMwLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgICAgICJUcmVpYmVyIEVtdWxhdGlvbiIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDI1MCwyMzAsMTAKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICBHUk9VUEJPWCAgICAgICAgIiBEYXJzdGVsbHVuZyAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgTFRFWFQgICAgICAgICAgICJNb3RpdjoiLElEQ19TVEFUSUMsMTUsMTYsMjMwLDgKICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9USEVNRUNPTUJPLDE1LDI0LDIzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgUFVTSEJVVFRPTiAgICAgICJNb3RpdiBpbnN0YWxsaWVyZW4uLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwzOCw5MywxNAogICBMVEVYVCAgICAgICAgICAgIkZhcmJlOiIsSURDX1RIRU1FX0NPTE9SVEVYVCwxNSw1NCwyMzAsOAogICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNjIsMjMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICBMVEVYVCAgICAgICAgICAgIkdy9t9lOiIsSURDX1RIRU1FX1NJWkVURVhULDE1LDgwLDIzMCw4CiAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfU0laRUNPTUJPLDE1LDg4LDIzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgR1JPVVBCT1ggICAgICAgICIgU2hlbGwgT3JkbmVyICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX1NGUEFUSFMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICBDT05UUk9MICAgICAgICAgIlZlcmtu/HBmZToiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgRURJVFRFWFQgICAgICAgICBJRENfRURJVF9TRlBBVEgsNjUsMTk1LDE0NSwxMyxFU19BVVRPSFNDUk9MTHxXU19UQUJTVE9QfFdTX0RJU0FCTEVECiAgIFBVU0hCVVRUT04gICAgICAiV+RobGVuIixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiQW53ZW5kdW5nZW4iCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAiQmlibGlvdGhla2VuIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIkxhdWZ3ZXJrZSIKICAgIElEU19DSE9PU0VfUEFUSCAgICAgICAgICJCaXR0ZSB35GhsZW4gU2llIGRhcyBaaWVsLVVuaXgtVmVyemVpY2huaXMuIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgIlZlcnN0ZWNrZSBFcndlaXRlcnQiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiWmVpZ2UgRXJ3ZWl0ZXJ0IgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIihLZWluIE1vdGl2KSIKICAgIElEU19UQUJfR1JBUEhJQ1MgICAgICAgICJHcmFmaWsiCiAgICBJRFNfVEFCX0RFU0tUT1BfSU5URUdSQVRJT04gIkRlc2t0b3AgSW50ZWdyYXRpb24iCiAgICBJRFNfVEFCX0FVRElPICAgICAgICAgICAiQXVkaW8iCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAi3GJlciIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJXaW5lLUtvbmZpZ3VyYXRpb24iCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAiV2luZS1Lb25maWd1cmF0aW9uIGb8ciAlcyIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICJNb3Rpdi1EYXRlaWVuIgogICAgSURTX1RIRU1FRklMRV9TRUxFQ1QgICAgIk1vdGl2LURhdGVpIGF1c3fkaGxlbiIKICAgIElEU19BVURJT19NSVNTSU5HICAgICAgICJadXIgWmVpdCBpc3Qga2VpbiBBdWRpbyBUcmVpYmVyIGluIGRlciBSZWdpc3RyeSBlaW5nZXRyYWdlbi5cblxuRWluIGJldm9yenVndGVyIFRyZWliZXIgd3VyZGUgZvxyIFNpZSBhdXNnZXfkaGx0LlxuU2llIGv2bm5lbiBkaWVzZW4gVHJlaWJlciBudXR6ZW4gb2RlciBlaW5lbiBhbmRlcmVuIGF1c3fkaGxlbiwgc29mZXJuIGRpZXNlciB2b3JoYW5kZW4gaXN0LlxuXG5TaWUgbfxzc2VuIGF1ZiBBbndlbmRlbiBrbGlja2VuLCBkYW1pdCBkaWUgxG5kZXJ1bmcg/GJlcm5vbW1lbiB3aXJkLiIKICAgIElEU19TSEVMTF9GT0xERVIgICAgICAgICJTaGVsbCBPcmRuZXIiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiVmVya278cGZ0IG1pdCIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0RMTF9XQVJOSU5HICAgICAgICAgIkRhcyDEbmRlcm4gZGVyIExhZGVyZWloZW5mb2xnZSBkaWVzZXIgQmlibHRpb3RoZWsgd2lyZCBuaWNodCBlbXBmb2hsZW4uXG5TaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgZGllcyBt9mNodGVuPyIKICAgIElEU19ETExfV0FSTklOR19DQVBUSU9OICJBY2h0dW5nOiBTeXN0ZW1iaWJsaW90aGVrIgogICAgSURTX0RMTF9OQVRJVkUgICAgICAgICAgIk5hdGl2ZSAoV2luZG93cykiCiAgICBJRFNfRExMX0JVSUxUSU4gICAgICAgICAiQnVpbHRpbiAoV2luZSkiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAiTmF0aXZlLCBCdWlsdGluIgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgIkJ1aWx0aW4sIE5hdGl2ZSIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICJhdXNnZXNjaGFsdGVuIgpFTkQgCgo=