LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogUG9saXNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDIgSmFjbyBHcmVlZmYKICogQ29weXJpZ2h0IDIwMDMgRGltaXRyaWUgTy4gUGF1bgogKiBDb3B5cmlnaHQgMjAwMy0yMDA0IE1pa2UgSGVhcm4KICogQ29weXJpZ2h0IDIwMDcgTWlrb2xhaiBaYWxld3NraQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICoKICovCgpMQU5HVUFHRSBMQU5HX1BPTElTSCwgU1VCTEFOR19ERUZBVUxUCgpJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiS29uZmlndXJ1aiIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAogICAgTFRFWFQgICAgICAgICAgICJUYSBiaWJsaW90ZWthIGplc3Qgd29sbnltIG9wcm9ncmFtb3dhbmllbTsgbW+/ZXN6IGq5IHJvenBvd3N6ZWNobmlh5iBpL2x1YiBtb2R5Zmlrb3dh5iBwb2Qgd2FydW5rYW1pIGxpY2VuY2ppIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBvcHVibGlrb3dhbmVqIHByemV6IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgbGljZW5jamkgdyB3ZXJzamkgMi4xLCBsdWIgKHdlZLN1ZyB3s2FzbmVnbyB1em5hbmlhKSBkb3dvbG5laiBw859uaWVqc3plai4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFVzdGF3aWVuaWEgYXBsaWthY2ppIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lIG1vv2UgdWRhd2HmIHLzv25lIHdlcnNqZSBXaW5kb3dzIGRsYSBy879ueWNoIGFwbGlrYWNqaS4gIFd5YvNyIHcgdGVqIHpha7NhZGNlIGplc3QgcG93abl6YW55IHogemFrs2Fka2FtaSBCaWJsaW90ZWtpIGkgR3JhZmlrYSAtIHVzdGF3aWVuaWEgdGFtIHLzd25pZb8gZG90eWN6uSB3c3p5c3RraWNoIGFwbGlrYWNqaSBsdWIgdHlsa28gd3licmFuZWouIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJBcGxpa2FjamUiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OCSAgICAiJkRvZGFqIGFwbGlrYWNq6i4uLiIsSURDX0FQUF9BRERBUFAsIDkwLDIwNCw3NSwxNAogICAgUFVTSEJVVFRPTgkgICAgIiZVc3XxIGFwbGlrYWNq6iIsSURDX0FQUF9SRU1PVkVBUFAsIDE3MCwyMDQsNzUsMTQKICAgIExURVhUICAgICAgICAgICAiJldlcnNqYSBXaW5kb3dzOiIsSURDX1NUQVRJQywxNywyMjYsNTgsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsODMsMjI0LDE2Myw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFVzdGF3aWVuaWEgb2tuYSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxODAKCiAgICBDT05UUk9MCSAgICAiWmV6d2FsYWogYXBsaWthY2pvbSBEaXJlY3RYIG5hIHphYmxva293YW5pZSBvcHVzemN6YW5pYSBva25hIHByemV6IGt1cnNvciBteXN6a2kiLElEQ19EWF9NT1VTRV9HUkFCLCJCdXR0b24iLEJTX01VTFRJTElORXxCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE0LDIzMSwxNgogICAgTFRFWFQgCSAgICAiSmW/ZWxpIG9rbmEgc7kgemFyerlkYW5lIHByemV6IG1lbmVkv2VyYSBva2llbiwgdG8gYupkuSBtaWGzeSBzdGFuZGFyZG93uSByYW1r6iwgd3Nw87NwcmFjb3dhs3kgeiB3aXJ0dWFsbnltaSBwdWxwaXRhbWkgaSBwb2phd2lhs3kgc2nqIG5hIGxpnGNpZSBva2llbi5cblxuXApKZb9lbGkgb2tuYSBuaWUgc7kgemFyerlkYW5lIHRvIG5pZSBi6mS5IHphdXdhv29uZSBwcnpleiBtZW5lZL9lcmEuIFRvIHpuYWN6eSwgv2Ugb2tuYSBi6mS5IGdvcnplaiB3c3Dzs3ByYWNvd2GzeSB6IHJlc3p0uSBwdWxwaXR1LCBhbGUgZW11bGFjamEgYupkemllIGRva7NhZG5pZWpzemEuXApOaWVrdPNyeW0gYXBsaWthY2pvbSBtb79lIHRvIHBvbfNjIHcgbGVwc3p5bSBkemlhs2FuaXUuIiwKCQkgICAgSURDX1NUQVRJQywxNSwzNywyMjgsODAKICAgIENPTlRST0wJICAgICJQb3p382ogbWVuZWS/ZXJvd2kgb2tpZW4gemFyerlkemHmIG9rbmFtaSBXaW5lIixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxMTEsMjMwLDgKCiAgICBMVEVYVCAgICAgICAgICAgIlVydWNoYW1pYW5lIGFwbGlrYWNqZSBXaW5kb3dzIG1vZ7kgYnnmIGFsYm8gemF3YXJ0ZSB3IGplZG55bSBva2luaWUsIGt083JlIGLqZHppZSBwZbNuabNvIHJvbOogd2lydHVhbG5lZ28gcHVscGl0dSwgYWxibyBtaWXmIHezYXNuZSBva25hIGphayBpbm5lIGFwbGlrYWNqZS4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMTI1LDIyOCwyOAogICAgTFRFWFQgICAgICAgICAgICJSb3ptaWFyIHB1bHBpdHU6IixJRENfREVTS1RPUF9TSVpFLDE1LDE2Nyw0NCw4LFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDEwOCwxNjcsOCw4LFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIkVtdWx1aiB3aXJ0dWFsbnkgcHVscGl0IixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxNTIsMjMwLDEwCgogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDE2Nyw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNywxNjcsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdDNEICIsSURDX1NUQVRJQyw4LDE4OSwyNDQsNTAKCiAgICBMVEVYVAkgICAgIk9ic7N1Z2EgVmVydGV4IFNoYWRlcjogIixJRENfU1RBVElDLDE1LDE5OSw4MCwzMAogICAgQ09NQk9CT1gJICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEwMCwxOTcsMTQ1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiT2Jzs3VndWogUGl4ZWwgU2hhZGVyIChqZb9lbGkgc7kgb2Jzs3VnaXdhbmUgcHJ6ZXoga2FydOogZ3JhZmljem65KSIsSURDX0QzRF9QU0hBREVSX01PREUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMTYsMjMwLDEwCkVORAoKSUREX0RMTENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgUmVndbN5IGJpYmxpb3RlayBETEwgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIkRsYSBrYb9kZWogYmlibGlvdGVraSBETEwgbW+/bmEgd3licmHmIGN6eSBuYWxlv3kgdb955iB3ZXJzamkgd2J1ZG93YW5laiAoZG9zdGFyY3pvbmVqIHogV2luZSkgY3p5IHpld27qdHJ6ZW5laiAod3pp6nRlaiB6IFdpbmRvd3MgbHViIGRvc3RhcmN6b25laiB3cmF6IHogYXBsaWthY2q5KS4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIk5vd2EgcmVndbNhIGRsYSBiaWJsaW90ZWtpOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiJkRvZGFqIixJRENfRExMU19BRERETEwsIDE2NCw2OCw4MiwxMyxCU19ERUZQVVNIQlVUVE9OCiAgICBMVEVYVCAgICAgICAgICAgIkluc3RuaWVquWNlIHJlZ3WzeToiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJkVkeWNqYSIsSURDX0RMTFNfRURJVERMTCwxNjQsOTYsODIsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJlVzdfEiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0CkVORAoKSUREX0xPQURPUkRFUiBESUFMT0cgRElTQ0FSREFCTEUgODAsIDkwLCAxNTAsIDkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFZHljamEgcmVndbN5IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBCaWJsaW90ZWthICIsSURDX1NUQVRJQyw4LDQsMTM0LDY2CiAgICBDT05UUk9MICAgICAgICAgIlR5bGtvICZ3YnVkb3dhbmEgKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2LDE0LDExNSwxMAogICAgQ09OVFJPTCAgICAgICAgICJUeWxrbyAmemV3bup0cnpuYSAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsMTE1LDEwCiAgICBDT05UUk9MICAgICAgICAgIlByZWZlcnVqIHcmYnVkb3dhbrkiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCwxMTUsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJlZmVydWogeiZld27qdHJ6brkiLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCwxMTUsMTAKICAgIENPTlRST0wgICAgICAgICAiJld5s7ljeiBiaWJsaW90ZWvqIixJRENfUkFEX0RJU0FCTEUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw1NCwxMTUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiJk9LIixJRE9LLDE4LDc0LDQ1LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIiZBbnVsdWoiLElEQ0FOQ0VMLDg3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBQcnp5cG9yerlka293YW5pZSBkeXNr83cgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIiZEb2Rhai4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJlVzdfEiLElEQ19CVVRUT05fUkVNT1ZFLDU2LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF1dG9tYXR5Y3puZSB3eWtyeXdhbmllIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTI3LDk4LDExOSwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICImjGNpZb9rYToiLElEQ19TVEFUSUMsMTUsMTIzLDI1LDkKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDQ2LDEyMCwxNTAsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZQcnplZ2y5ZGFqLi4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwMSwxMjAsNDUsMTMKCiAgICBMVEVYVCAgICAgICAgICAgIiZUeXA6IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDEsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIExURVhUICAgICAgICAgICAiRXR5a2lldGEgaSBudW1lciBzZXJ5am55IixJRENfTEFCRUxTRVJJQUxfU1RBVElDLDE1LDE1NSw5NSwxMAoKICAgIFBVU0hCVVRUT04gICAgICAiJk9wY2plIHphYXdhbnNvd2FuZSA+PiIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTU2LDEzNiw5MCwxMwogICAgQ09OVFJPTCAgICAgICAgICJPZGN6eXRhaiAmeiB1cnq5ZHplbmlhOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTY5LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIlByemUmZ2y5ZGFqLi4uIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMjAxLDE3Niw0NSwxMwogICAgQ09OVFJPTCAgICAgICAgICJQcnomeXBvcnq5ZGt1aiBy6mN6bmllOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDg5LDEwCgogICAgTFRFWFQgICAgICAgICAgICImRXR5a2lldGE6IixJRENfU1RBVElDX0xBQkVMLDMzLDIwOCw1OSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDkzLDIwNSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJk51bWVyIHNlcnlqbnk6IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsNTksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsOTMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiUG9rYXp1aiBwbGlraSB6YWN6eW5harljZSBzaeogb2Qga3JvcGtpIixJRENfU0hPV19ET1RfRklMRVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw4LDI2MCwyMzAsOApFTkQKCklERF9BVURJT0NGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgV3li83Igc3Rlcm93bmlrYSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUICAgICAgICAgICAiV3liaWVyeiBzdGVyb3duaWsgcHJ6ZXogd3N0YXdpZW5pZSBrcnp5v3lrYS4gSmW/ZWxpIGNoY2VzeiB3ebO5Y3p55iBkn3dp6mssIHpvc3RhdyB3c3p5c3RraWUgcG9sYSBwdXN0ZS4gV3li83Igd2llbHUgc3Rlcm93bmlr83cgbmEgcmF6IG5pZSBqZXN0IHphbGVjYW55LiBBYnkgc2tvbmZpZ3Vyb3dh5iBzdGVyb3duaWsga2xpa25paiBwcmF3eW0gcHJ6eWNpc2tpZW0gbXlzenkgbmEgbmltLiIsSURDX1NUQVRJQywxNSwyMCwyMjcsNDAKICAgIENPTlRST0wgICAgICAgICAiVXJ6uWR6ZW5pYSIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNTgsMTQwLDEzMgogICAgUFVTSEJVVFRPTiAgICAgICJUZXN0IGSfd2nqa3UiLElEQ19BVURJT19URVNULDE2NSw1OCw2OSwxNAogICAgUFVTSEJVVFRPTgkgICAgIlBhbmVsIHN0ZXJvd2FuaWEiLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE2NSw3OCw2OSwxNAogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0U291bmQgIixJRENfU1RBVElDLDgsMjA1LDI0NCw2MAogICAgTFRFWFQJICAgICJQcnp5nHBpZXN6bmllIHNwcnrqdG93ZTogIixJRENfU1RBVElDLDE1LDIxNSw5MCwxMAogICAgQ09NQk9CT1gJICAgIElEQ19EU09VTkRfSFdfQUNDRUwsMTAwLDIxMywxNTAsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkRvbXmcbG5hIGN66nN0b5zmIHBy82Jrb3dhbmlhOiIsSURDX1NUQVRJQywxNSwyMzIsMTA1LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDEyMSwyMzAsMzgsNzYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkJpdPN3IG5hIHBy82Jr6joiLElEQ19TVEFUSUMsMTY1LDIzMiw1NSw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIyMywyMzAsMjcsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgIkVtdWxhY2phIHN0ZXJvd25pa2EiLElEQ19EU09VTkRfRFJWX0VNVUwsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyNTAsMjMwLDEwCkVORAoKSUREX0RFU0tUT1BfSU5URUdSQVRJT04gRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFd5Z2y5ZCAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAiTW90eXc6IixJRENfU1RBVElDLDE1LDE2LDEzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1RIRU1FQ09NQk8sMTUsMjQsMTMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJaYWluc3RhbHVqIG1vdHl3Li4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAiS29sb3I6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJXaWVsa2+c5joiLElEQ19USEVNRV9TSVpFVEVYVCwxMzUsNDAsMTEwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfU0laRUNPTUJPLDEzNSw0OCwxMTAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkVsZW1lbnQ6IixJRENfU1RBVElDLDE1LDY0LDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1NZU1BBUkFNX0NPTUJPLDE1LDc0LDExMiwxMjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQKICAgIExURVhUICAgICAgICAgICAiS29sb3I6IixJRENfU1lTUEFSQU1fQ09MT1JfVEVYVCwxMzUsNjQsMjUsOCxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICIiLElEQ19TWVNQQVJBTV9DT0xPUiwxMzUsNzQsMjUsMTMsV1NfRElTQUJMRUQgfCBCU19PV05FUkRSQVcKICAgIExURVhUICAgICAgICAgICAiV2llbGtvnOY6IixJRENfU1lTUEFSQU1fU0laRV9URVhULDE2Niw2NCwzMCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX1NZU1BBUkFNX1NJWkUsMTY2LDc0LDIzLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1NZU1BBUkFNX1NJWkVfVUQsVVBET1dOX0NMQVNTLFVEU19TRVRCVUREWUlOVCB8IFdTX0RJU0FCTEVELDE4Nyw3NCwxNSwxMwogICAgUFVTSEJVVFRPTiAgICAgICJDemNpb25rYSIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiBGb2xkZXJ5IHNwZWNqYWxuZSAiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfU0ZQQVRIUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICAgQ09OVFJPTCAgICAgICAgICJEb3dpuXphbnkgZG86IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDcwLDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw4NSwxOTUsMTA1LDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiUHJ6ZWdsuWRhaiIsSURDX0JST1dTRV9TRlBBVEgsMTk1LDE5NSw1MCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfV0lORV9WRVJTSU9OICAgICAgICAiQ1ZTIgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIkFwbGlrYWNqZSIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICJCaWJsaW90ZWtpIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIkR5c2tpIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIlByb3N66iB3eWJyYeYgZG9jZWxvd3kga2F0YWxvZyBVbmlrc293eS4iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAiVWtyeWogemFhd2Fuc293YW5lIDw8IgogICAgSURTX1NIT1dfQURWQU5DRUQgICAgICAgIk9wY2plIHphYXdhbnNvd2FuZSA+PiIKICAgIElEU19OT1RIRU1FICAgICAgICAgICAgICIoYnJhayBtb3R5d3UpIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIkdyYWZpa2EiCiAgICBJRFNfVEFCX0RFU0tUT1BfSU5URUdSQVRJT04gIkludGVncmFjamEgeiBwdWxwaXRlbSIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICJEn3dp6msiCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiSW5mb3JtYWNqZSIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJLb25maWd1cmFjamUgV2luZSIKICAgIElEU19XSU5FQ0ZHX1RJVExFX0FQUCAgICJLb25maWd1cmFjamUgV2luZSBkbGEgJXMiCiAgICBJRFNfVEhFTUVGSUxFICAgICAgICAgICAiUGxpa2kgbW90eXd1IgogICAgSURTX1RIRU1FRklMRV9TRUxFQ1QgICAgIld5YmllcnogcGxpayBtb3R5d3UiCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAiTmllIHd5YnJhbm8gc3Rlcm93bmlrYSBkn3dp6mt1LlxuXG5aYWxlY2FueSBzdGVyb3duaWsgem9zdGGzIHezYZxuaWUgemF6bmFjem9ueS5cbk1vv2VzeiBnbyB1v3nmIGx1YiB3eWJyYeYgamFraZwgaW5ueS5cblxuQWJ5IHd5YvNyIHpvc3RhsyB6YXBhbWnqdGFueSB1v3lqICdaYXN0b3N1aicuIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIkZvbGRlciIKICAgIElEU19MSU5LU19UTyAgICAgICAgICAgICJEb3dpuXphbnkgZG8iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICJabWlhbmEgcmVndbN5IGRsYSB0ZWogYmlibGlvdGVraSBuaWUgamVzdCB6YWxlY2FuYS5cbkN6eSBuYSBwZXdubyBjaGNlc3ogdG8genJvYmnmPyIKICAgIElEU19ETExfV0FSTklOR19DQVBUSU9OICJVd2FnYTogYmlibGlvdGVrYSBzeXN0ZW1vd2EiCiAgICBJRFNfRExMX05BVElWRSAgICAgICAgICAiemV3bup0cnpuYSIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICJ3YnVkb3dhbmEiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAiemV3bup0cnplbmEsIHdidWRvd2FuYSIKICAgIElEU19ETExfQlVJTFRJTl9OQVRJVkUgICJ3YnVkb3dhbmEsIHpld27qdHJ6ZW5hIgogICAgSURTX0RMTF9ESVNBQkxFRCAgICAgICAgInd5s7ljem9uYSIKICAgIElEU19ERUZBVUxUX1NFVFRJTkdTICAgICJVc3Rhd25pZW5pYSBzdGFuZGFyZG93ZSIKICAgIElEU19FWEVDVVRBQkxFX0ZJTFRFUiAgICJQcm9ncmFteSBXaW5lICgqLmV4ZSwqLmV4ZS5zbylcMCouZXhlOyouZXhlLnNvXDAiCiAgICBJRFNfVVNFX0dMT0JBTF9TRVRUSU5HUyAiVb95aiB1c3Rhd2ll8SBnbG9iYWxueWNoIgogICAgSURTX1NFTEVDVF9FWEVDVVRBQkxFICAgIld5YmllcnogcGxpayB3eWtvbnl3YWxueSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1NIQURFUl9NT0RFX0hBUkRXQVJFICAgICJTcHJ66nRvd2EiCiAgICBJRFNfU0hBREVSX01PREVfTk9ORSAgICAgICAgIkJyYWsiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19EUklWRV9VTktOT1dOICAgICAgICAgICAiQXV0b21hdHljem5lIHd5a3J5d2FuaWUiCiAgICBJRFNfRFJJVkVfRklYRUQgICAgICAgICAgICAgIkxva2FsbnkgZHlzayB0d2FyZHkiCiAgICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgIlphc/NiIHNpZWNpb3d5IgogICAgSURTX0RSSVZFX1JFTU9WQUJMRSAgICAgICAgICJTdGFjamEgZHlza2lldGVrIgogICAgSURTX0RSSVZFX0NEUk9NICAgICAgICAgICAgICJDRC1ST00iCiAgICBJRFNfRFJJVkVfTEVUVEVSU19FWENFRURFRCAgIk5pZSBtb79lc3ogZG9kYeYgbmFzdOpwbmVnbyBkeXNrdS5cblxuS2G/ZHkgZHlzayBtdXNpIG1pZeYgbGl0ZXLqIG9kIEEgZG8gWiwgd2nqYyBuaWUgbW+/ZSBieeYgaWNoIHdp6mNlaiBuab8gMjYiCiAgICBJRFNfU1lTVEVNX0RSSVZFX0xBQkVMICAgICAgIkR5c2sgc3lzdGVtb3d5IgogICAgSURTX0NPTkZJUk1fREVMRVRFX0MgICAgICAgICJDenkgbmEgcGV3bm8gY2hjZXN6IHVzdW655iBkeXNrIEM/XG5cbldp6mtzem+c5iBwcm9ncmFt83cgZGxhIFdpbmRvd3MgemFrs2FkYSwgv2UgdGFraSBkeXNrIGlzdG5pZWplIGkgbW9nuSBuaWUgZHppYbNh5iBiZXogbmllZ28uIEplv2VsaSBnbyBza2FzdWplc3ogbmllIHphcG9tbmlqIGdvIHpub3d1IHV0d29yennmISIKICAgIElEU19DT0xfRFJJVkVMRVRURVIgICAgICAgICAiTGl0ZXJhIgogICAgSURTX0NPTF9EUklWRU1BUFBJTkcgICAgICAgICJQcnp5cG9yerlka293YW55IGRvIgogICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICJOaWUgbWFzeiBkeXNrdSBDLiBUbyBtb79lIHBvd29kb3dh5iBwcm9ibGVteS5cblxuTmllIHphcG9tbmlqIHW/eeYgJ0RvZGFqJyB3IHpha7NhZGNlICdEeXNraScsIGFieSBnbyB1dHdvcnp55iFcbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FDQ0VMX0ZVTEwgICAgICAgICAgICAgICJQZbNuZSIKICAgIElEU19BQ0NFTF9TVEFOREFSRCAgICAgICAgICAiU3RhbmRhcmRvd2UiCiAgICBJRFNfQUNDRUxfQkFTSUMgICAgICAgICAgICAgIlBvZHN0YXdvd2UiCiAgICBJRFNfQUNDRUxfRU1VTEFUSU9OICAgICAgICAgIkVtdWxhY2phIgogICAgSURTX0RSSVZFUl9BTFNBICAgICAgICAgICAgICJTdGVyb3duaWsgQUxTQSIKICAgIElEU19EUklWRVJfRVNPVU5EICAgICAgICAgICAiU3Rlcm93bmlrIEVzb3VuRCIKICAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiU3Rlcm93bmlrIE9TUyIKICAgIElEU19EUklWRVJfSkFDSyAgICAgICAgICAgICAiU3Rlcm93bmlrIEpBQ0siCiAgICBJRFNfRFJJVkVSX05BUyAgICAgICAgICAgICAgIlN0ZXJvd25payBOQVMiCiAgICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIlN0ZXJvd25payBBdWRpbyBJTyAoU29sYXJpcykiCiAgICBJRFNfRFJJVkVSX0NPUkVBVURJTyAgICAgICAgIlN0ZXJvd25payBDb3JlQXVkaW8iCiAgICBJRFNfT1BFTl9EUklWRVJfRVJST1IgICAgICAgIk5pZSBtb2fqIG90d29yennmICVzISIKICAgIElEU19TT1VORERSSVZFUlMgICAgICAgICAgICAiU3Rlcm93bmlraSBkn3dp6mtvd2UiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgIlVyerlkemVuaWEgV2F2ZSBPdXQiCiAgICBJRFNfREVWSUNFU19XQVZFSU4gICAgICAgICAgIlVyerlkemVuaWEgV2F2ZSBJbiIKICAgIElEU19ERVZJQ0VTX01JRElPVVQgICAgICAgICAiV3lqnGNpYSBNSURJIgogICAgSURTX0RFVklDRVNfTUlESUlOICAgICAgICAgICJXZWqcY2lhIE1JREkiCiAgICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIlVyerlkemVuaWEgQXV4IgogICAgSURTX0RFVklDRVNfTUlYRVIgICAgICAgICAgICJNaWtzZXJ5IgogICAgSURTX1VOQVZBSUxBQkxFX0RSSVZFUiAgICAgICJTdGVyb3duaWssIGt083J5IGplc3Qgc2tvbmZpZ3Vyb3dhbnkgdyByZWplc3RyemUgamVzdCBuaWVkb3N06nBueSFcblxuVXN1brnmIHdwaXMgkyVzlCB6IHJlamVzdHJ1PyIKICAgIElEU19XQVJOSU5HICAgICAgICAgICAgICAgICAiT3N0cnplv2VuaWUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEQ19TWVNQQVJBTVNfQlVUVE9OICAgICAgICAgICAgIlSzbyBrb250cm9sZWsiCiAgICBJRENfU1lTUEFSQU1TX0JVVFRPTl9URVhUICAgICAgICJUZWtzdCBrb250cm9sZWsiCiAgICBJRENfU1lTUEFSQU1TX0RFU0tUT1AgICAgICAgICAgICJQdWxwaXQiCiAgICBJRENfU1lTUEFSQU1TX01FTlUgICAgICAgICAgICAgICJUs28gbWVudSIKICAgIElEQ19TWVNQQVJBTVNfTUVOVV9URVhUICAgICAgICAgIlRla3N0IG1lbnUiCiAgICBJRENfU1lTUEFSQU1TX1NDUk9MTEJBUiAgICAgICAgICJQYXNrZWsgcHJ6ZXdpamFuaWEiCiAgICBJRENfU1lTUEFSQU1TX1NFTEVDVElPTiAgICAgICAgICJUs28gemF6bmFjem9uZWdvIG9ic3phcnUiCiAgICBJRENfU1lTUEFSQU1TX1NFTEVDVElPTl9URVhUICAgICJaYXpuYWN6b255IHRla3N0IgogICAgSURDX1NZU1BBUkFNU19UT09MVElQICAgICAgICAgICAiVLNvIHBvZHBvd2llZHppIgogICAgSURDX1NZU1BBUkFNU19UT09MVElQX1RFWFQgICAgICAiVGVrc3QgcG9kcG93aWVkemkiCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPVyAgICAgICAgICAgICJUs28gb2tuYSIKICAgIElEQ19TWVNQQVJBTVNfV0lORE9XX1RFWFQgICAgICAgIlRla3N0IG9rbmEiCiAgICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRSAgICAgICJUs28gbmFns/N3a2EgYWt0eXduZWdvIG9rbmEiCiAgICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRV9URVhUICJUeXR1syBha3R5d25lZ28gb2tuYSIKICAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEUgICAgIlSzbyBuYWez83drYSBuaWVha3R5d25lZ28gb2tuYSIKICAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEVfVEVYVCAiVHl0dbMgbmllYWt0eXduZWdvIG9rbmEiCkVORAo=