LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogSHVuZ2FyaWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDYgQW5kcmFzIEtvdmFjcwogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICoKICovCgpMQU5HVUFHRSBMQU5HX0hVTkdBUklBTiwgU1VCTEFOR19ERUZBVUxUCgpJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiS29uZmlndXLhY2nzIiwgSURDX0FVRElPX0NPTkZJR1VSRQogICAgRU5ECkVORAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjcwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX1NUUklORyxJRENfU1RBVElDLDExOSwxNywxMjAsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQICwxNSwxNywxNTcsMTExCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4CiAgICBMVEVYVCAgICAgICAgICAgIkV6IGEgZvxnZ3bpbnlr9m52dOFyIHN6YWJhZCBzem9mdHZlcjsgc3phYmFkb24gdGVyamVzenRoZXRpLCB2YWd5IG3zZG9z7XRoYXRqYSBhIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlzemVuYyBmZWx06XRlbGVpIHN6ZXJpbnQsIGFtaXQgYSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24ga+lzeu10ZXR0OyBtaW5kIGEgMi4xIHZlcnpp82r6IGxpY2Vuc3osIHZhZ3kgKHbhbGFzenThc2Egc3plcmludCkgYuFybWVseSBr6XP1YmJpIHZlcnpp8yBoYXN6buFsaGF08y4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEFsa2FsbWF64XMgYmXhbGztdOFzb2sgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJBIFdpbmUga/xs9m5i9nr1IFdpbmRvd3MgdmVyemnza+ludCB0dWQgdmlzZWxrZWRuaSBhbGthbG1heuFzb25r6W50LiAgRXogYSBm/Gwg9nNzemVr9nR0ZXTpc2JlbiDhbGwgYSBG/GdndulueWv2bnl2dOFyIOlzIEdyYWZpa2EgZvxsbGVsLCBob2d5IGxlaGV09XbpIHRlZ3llIGEgcmVuZHN6ZXJzemludPsgdmFneSBhbGthbG1heuFzb25r6W50aSBiZeFsbO104XNva2F0IGV6ZWtlbiBhIGb8bGVrZW4gaXMuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDE1LDIyNywzNQogICAgQ09OVFJPTCAgICAgICAgICJBbGthbG1heuFzb2siLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OCSAgICAiJkFsay4gaG96euFhZOFzLi4uIixJRENfQVBQX0FEREFQUCwgOTAsMjA0LDc1LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiQWxrLiAmZWx04XZvbO104XNhIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIwNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICImV2luZG93cyB2ZXJ6afM6IixJRENfU1RBVElDLDE3LDIyNiw1OCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMjQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEFibGFrYmXhbGztdOFzb2sgIixJRENfU1RBVElDLDgsMjUsMjQ0LDE4MAoKICAgIENPTlRST0wJICAgICJBIERpcmVjdFgtZXMgYWxrYWxtYXrhc29rIGFibGFr4WJvbCBuZW0gbOlwaGV0IGtpIGF6IGVn6XJtdXRhdPMiLElEQ19EWF9NT1VTRV9HUkFCLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzUsMjMwLDgKICAgIENPTlRST0wJICAgICJBc3p0YWwgZHVwbGEtcHVmZmVyZWzpcyBlbmdlZOlseWV66XNlIixJRENfRE9VQkxFX0JVRkZFUiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDQ1LDIzMCw4CiAgICBMVEVYVCAJICAgICJIYSBheiBhYmxha29rYXQgZWd5IG3hc2lrIGFibGFra2V6ZWz1IGtlemVsaSwgYWtrb3IgbGVzeiBzdGFuZGFyZCBrZXJldGr8aywgdGlzenRlbG5pIGZvZ2rhayBhIHZpcnR14WxpcyBhc3p0YWxva2F0LCDpcyBtZWdqZWxlbm5layBheiBhYmxha2xpc3ThYmFuLiBcblxuSGEgYXogYWJsYWtvayBrZXplbGV0bGVuZWssIGVsIGZvZ25hayB24WxsbmkgYXog1m4gYWJsYWtrZXplbPVq6XT1bC4gRXogYXp0IGplbGVudGksIGhvZ3kgYXogYWJsYWtvayBuZW0gZm9nbmFrIHN6b3Jvc2FuIGVneWJl6XD8bG5pIGF6INZuIGFzenRhbOF2YWwsIGRlIGF6IGVtdWzhY2nzIGhhdOFzb3NhYmIsIGpvYmJhbiBlZ3n8dHQgdHVkIG37a/Zkbmkgbulo4W55IHByb2dyYW1tYWwuIiwKICAgIAkJICAgIElEQ19TVEFUSUMsMTUsNTgsMjI4LDgwCiAgICBDT05UUk9MCSAgICAiQXogYWJsYWtrZXplbPUga2V6ZWxoZXRpIGF6IGFibGFrb2thdCIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTMyLDIzMCw4CiAgICAKICAgIC8qIEZJWE1FOiB0aGUgd29yZGluZyBvZiB0aGlzIGV4cGxhbmF0aW9uIGNvdWxkIGJlIGEgbG90IGJldHRlciAqLwogICAgTFRFWFQgICAgICAgICAgICLWbiB24Wxhc3p0aGF0amEgYSB3aW5kb3dzIGFzenRhbCBlbXVs4Wzhc3QsIGFob2wgYXog9nNzemVzIGFibGFrIGVneSAndmlydHXhbGlzIGvpcGVybnn1bicgZm9nIG1lZ2plbG5uaSwgdmFneSBheiBhYmxha29rIG1lZ2plbG7tdGhldPVrIGF6INZuIHN0YW5kYXJkIGFzenRhbOFuLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwxNDYsMjI4LDI4CiAgICBMVEVYVCAgICAgICAgICAgIkFibGFrbelyZXQ6IixJRENfREVTS1RPUF9TSVpFLDE1LDE4OCw0NCw4LFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDEwOCwxODgsOCw4LFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIlZpcnR14WxpcyBhc3p0YWwgZW11bOFs4XNhIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxNzMsMjMwLDEwCgkJICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDE4OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNywxODgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdDNEICIsSURDX1NUQVRJQyw4LDIxMCwyNDQsNTAKCiAgICBMVEVYVAkgICAgIlZlcnRleCBTaGFkZXIgdOFtb2dhdOFzOiAiLElEQ19TVEFUSUMsMTUsMjIwLDgwLDMwCiAgICBDT01CT0JPWAkgICAgSURDX0QzRF9WU0hBREVSX01PREUsMTAwLDIxOCwxNTAsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgICAgICJQaXhlbCBTaGFkZXIgZW5nZWTpbHlleulzZSAoaGEgdOFtb2dhdGphIGEgaGFyZHZlcikiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjM3LDIzMCwxMApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCBmZWz7bGLtcuFs4XNvayAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiQSBkaW5hbWlrdXMgY3NhdG9s4XP6IGb8Z2d26W55a/ZueXZ04XJha2F0IGtpIGxlaGV0IHbhbGFzenRhbmkgZWd5ZW5r6W50IGhvZ3kgYmXpcO10ZXR0ZWsgKGEgV2luZSBiaXp0b3PtdGphKSwgdmFneSBuYXTtdmFrIChhIHdpbmRvd3Ni82wgbnllcnQsIHZhZ3kgYXogYWxrYWxtYXrhcyBiaXp0b3PtdGphKS4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgItpqIGZlbPxsYu1y4WzhcyBr9m55dnThcmhvejoiLElEQ19TVEFUSUMsMTYsNTgsMTAwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRExMQ09NQk8sMTYsNjgsMTQwLDE0LENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQgfCBDQlNfTE9XRVJDQVNFCiAgICBQVVNIQlVUVE9OICAgICAgIkhvenrhJmFk4XMiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzLEJTX0RFRlBVU0hCVVRUT04gCiAgICBMVEVYVCAgICAgICAgICAgIkzpdGV69SBmZWz8bGLtcuFs4XNvazoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiU3omZXJrZXN6dOlzIixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICJFJmx04XZvbO104XMiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTEwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRmVs/Gxi7XLhbOFzIHN6ZXJrZXN6dOlzZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgQmV09mx06XNpIHNvcnJlbmQgIixJRENfU1RBVElDLDgsNCw5NCw2NgogICAgQ09OVFJPTCAgICAgICAgICImQmXpcO10ZXR0IChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImTmF07XYgKFdpbmRvd3MpIixJRENfUkFEX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkJl6XDtdGV0JnQsIG5hdO12IixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiTmF07SZ2LCBiZelw7XRldHQiLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJUaWx04SZzIixJRENfUkFEX0RJU0FCTEUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw1NCw3NSwxMAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSyw4LDc0LDQ1LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIk3pZ3NlIixJRENBTkNFTCw1Nyw3NCw0NSwxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgTWVnaGFqdPMgaG96euFyZW5kZWzpc2VrICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfRFJJVkVTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDE4LDIzMiw3NgogICAgUFVTSEJVVFRPTiAgICAgICJIb3p64SZhZC4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiVPYmcmzpcyIsSURDX0JVVFRPTl9SRU1PVkUsNTYsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXV0byZmZWxpc20uLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxOTcsOTgsNDksMTQKCiAgICAvKiBlZGl0aW5nIGRyaXZlIGRldGFpbHMgKi8KICAgIExURVhUICAgICAgICAgICAiJtp0di46IixJRENfU1RBVElDLDE1LDEyMywyMCw5ICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlRhbGzzeuFzLi4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKICAgIAogICAgTFRFWFQgICAgICAgICAgICImVO1wdXM6IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDEsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIkPtbWtlIOlzIHNvcm96YXRzeuFtIixJRENfTEFCRUxTRVJJQUxfU1RBVElDLDE1LDE1NSw5NSwxMAogICAgCiAgICBQVVNIQlVUVE9OICAgICAgIiZIYWxhZPMiLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDE4NiwxMzYsNjAsMTMKICAgIENPTlRST0wgICAgICAgICAiQXV0b2ZlbGlzbWVy6XMgJmVzemv2enL1bDoiLElEQ19SQURJT19BVVRPREVURUNULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxNjYsOTMsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsMjcsMTc2LDE3NCwxMyxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICJUYWxsJvN64XMuLi4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwyMDYsMTc2LDQwLDEzCiAgICBDT05UUk9MICAgICAgICAgIkvpJnppIGhvenrhcmVuZGVs6XM6IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNzksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIiZD7W1rZToiLElEQ19TVEFUSUNfTEFCRUwsMzMsMjA4LDI5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsNjMsMjA1LDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTJm9yc3rhbToiLElEQ19TVEFUSUNfU0VSSUFMLDMzLDIyNSwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1NFUklBTCw2MywyMjEsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgICAgICJSZWp0ZXR0IGbhamxvayBtZWdqZWxlbu106XNlIixJRENfU0hPV19ET1RfRklMRVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw4LDI2MCwyMzAsOApFTkQKCklERF9BVURJT0NGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgTWVnaGFqdPNwcm9ncmFtIHbhbGFzenThcyAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUICAgICAgICAgICAiVuFsYXNzem9uIGVneSBoYW5nbWVnaGFqdPN0IGEga2l24Wxhc3p0b3R0IG1lZ2hhanTzcHJvZ3JhbSBlbPV0dGkgbulneXpldCBiZWps9mzpc+l2ZWwuICBBIGhhbmcgbGV0aWx0aGF08ywgaGEgbmVtIGplbPZsIGJlIGVneSBtZWdoYWp083Qgc2VtLiBU9mJiIG1lZ2hhanTzcHJvZ3JhbSBiZWplbPZs6XNlIG5lbSBhauFubG90dC4gQXog9nNzemVzIG1lZ2hhanTzIGJl4Wxs7XRoYXTzLCBoYSBy4Wp1ayBrYXR0aW50IGpvYmIgZWfpcmdvbWJiYWwuIixJRENfU1RBVElDLDE1LDE1LDIyNywzNQogICAgQ09OVFJPTCAgICAgICAgICJFc3pr9nr2ayIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNTAsMTQwLDE0MCAKICAgIFBVU0hCVVRUT04JICAgICJWZXrpcmz1cHVsdCIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDUwLDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwCiAgICBMVEVYVAkgICAgIkhhcmR2ZXJlcyBneW9yc+104XM6ICIsSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwyMTMsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgICAgICJNZWdoYWp083Byb2dyYW0gZW11bOFjafMiLElEQ19EU09VTkRfRFJWX0VNVUwsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMzAsMjMwLDEwCkVORAoKSUREX0RFU0tUT1BfSU5URUdSQVRJT04gRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIE1lZ2plbGVu6XMgIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBMVEVYVCAgICAgICAgICAgIlTpbWE6IixJRENfU1RBVElDLDE1LDE2LDIzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1RIRU1FQ09NQk8sMTUsMjQsMjMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJU6W1hIHRlbGVw7XTpc2UuLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwzOCw5MywxNAogICAgTFRFWFQgICAgICAgICAgICJTeu1uOiIsSURDX1RIRU1FX0NPTE9SVEVYVCwxNSw1NCwyMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9DT0xPUkNPTUJPLDE1LDYyLDIzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiTelyZXQ6IixJRENfVEhFTUVfU0laRVRFWFQsMTUsODAsMjMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfU0laRUNPTUJPLDE1LDg4LDIzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiIFJlbmRzemVybWFwcGEgIixJRENfU1RBVElDLDgsMTE0LDI0NCwxMDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX1NGUEFUSFMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDEyNiwyMzAsNjQKICAgIENPTlRST0wgICAgICAgICAiSWRlIGxpbmtlbDoiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICJUYWxs83rhcyIsSURDX0JST1dTRV9TRlBBVEgsMjE1LDE5NSwzMCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfV0lORV9WRVJTSU9OICAgICAgICAiQ1ZTIgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIkFsa2FsbWF64XNvayIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICJG/GdndulueWv2bnl2dOFyYWsiCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiTWVnaGFqdPNrIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIkvpcmVtIHbhbGFzc3pvbiB1bml4IGPpbGv2bnl2dOFyYXQuIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgIkhhbGFk8yA8PCIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICJIYWxhZPMgPj4iCiAgICBJRFNfTk9USEVNRSAgICAgICAgICAgICAiKE5pbmNzIHTpbWEpIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIkdyYWZpa2EiCiAgICBJRFNfVEFCX0RFU0tUT1BfSU5URUdSQVRJT04gIkFzenRhbGJhIGJl6XD8bOlzIgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIkhhbmciCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiTul2amVneSIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJXaW5lIGtvbmZpZ3Vy4WNp8yIKICAgIElEU19XSU5FQ0ZHX1RJVExFX0FQUCAgICJXaW5lIGtvbmZpZ3Vy4WNp8yAlcyBzeuFt4XJhIgogICAgSURTX1RIRU1FRklMRSAgICAgICAgICAgIlTpbWFm4Wpsb2siCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAiVOltYWbhamwgduFsYXN6dOFzYSIKICAgIElEU19BVURJT19NSVNTSU5HICAgICAgICJKZWxlbmxlZyBuaW5jcyBoYW5nbWVnaGFqdPMga2l24Wxhc3p0dmEgYSByZWdpc3p0cuFjafNzIGFkYXRi4Xppc2Jhbi5cblxuRWd5IGFq4W5sb3R0IG1lZ2hhanTzcHJvZ3JhbSBraSBsZXR0IHbhbGFzenR2YSDWbm5lay5cbtZuIGhhc3pu4WxoYXRqYSBlenQgYSBtZWdoYWp083QsIHZhZ3kgduFsYXN6dGhhdCBt4XNpa2F0IGhhIGVs6XJoZXT1LlxuXG7Wbm5layBheiBhbGthbG1heuFzcmEga2VsbCBrYXR0aW50YW5pIGEga2l24Wxhc3p04XMg6XJ26W55YmUgbOlwdGV06XPpaGV6LiIKICAgIElEU19TSEVMTF9GT0xERVIgICAgICAgICJSZW5kc3plcm1hcHBhIgogICAgSURTX0xJTktTX1RPICAgICAgICAgICAgIklkZSBsaW5rZWwiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICJBIGv2bnl2dOFyYWsgYmV09mx06XNpIHNvcnJlbmRq6W5layBtZWd24Wx0b3p0YXThc2EgbmVtIGFq4W5sb3R0LlxuQml6dG9zIGhvZ3kgZXp0IGFrYXJqYSB0ZW5uaT8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAiRmlneWVsZW06IHJlbmRzemVyZvxnZ3bpbnlr9m55dnThciIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICJuYXTtdiIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICJiZelw7XRldHQiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAibmF07XYsIGJl6XDtdGV0dCIKICAgIElEU19ETExfQlVJTFRJTl9OQVRJVkUgICJiZelw7XRldHQsIG5hdO12IgogICAgSURTX0RMTF9ESVNBQkxFRCAgICAgICAgImxldGlsdHZhIgpFTkQK