LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogSHVuZ2FyaWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDYgQW5kcmFzIEtvdmFjcwogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICoKICovCgojaW5jbHVkZSAicmVzb3VyY2UuaCIKCkxBTkdVQUdFIExBTkdfSFVOR0FSSUFOLCBTVUJMQU5HX0RFRkFVTFQKCklEUl9XSU5FQ0ZHIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJLb25maWd1cuFjafMiLCBJRENfQVVESU9fQ09ORklHVVJFCiAgICBFTkQKRU5ECgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNzAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HLElEQ19TVEFUSUMsMTE5LDE3LDEyMCw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgLDE1LDE3LDE1NywxMTEKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKICAgIExURVhUICAgICAgICAgICAiRXogYSBm/GdndulueWv2bnZ04XIgc3phYmFkIHN6b2Z0dmVyOyBzemFiYWRvbiB0ZXJqZXN6dGhldGksIHZhZ3kgbfNkb3PtdGhhdGphIGEgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaXN6ZW5jIGZlbHTpdGVsZWkgc3plcmludCwgYW1pdCBhIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBr6XN67XRldHQ7IG1pbmQgYSAyLjEgdmVyemnzavogbGljZW5zeiwgdmFneSAoduFsYXN6dOFzYSBzemVyaW50KSBi4XJtZWx5IGvpc/ViYmkgdmVyemnzIGhhc3pu4WxoYXTzLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxMTksNDQsMTI0LDcyCiAgICBHUk9VUEJPWCAgICAgICAgIiBXaW5kb3dzIFJlZ2lzdHJhdGlvbiBJbmZvcm1hdGlvbiAiLCBJRENfU1RBVElDLCAxNSwgMTEwLCAyMzAsIDU1CiAgICBMVEVYVCAgICAgICAgICAgIk93bmVyOiIsIElEQ19TVEFUSUMsIDIyLCAxMjYsIDQwLCAyMAogICAgRURJVFRFWFQgICAgICAgIElEQ19BQlRfT1dORVIsIDc1LCAxMjYsIDE2MCwgMTMsIEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJPcmdhbml6YXRpb246IiwgSURDX1NUQVRJQywgMjIsIDE0MCwgNTAsIDIwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0FCVF9PUkcsIDc1LCAxNDAsIDE2MCwgMTMsIEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUApFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEFsa2FsbWF64XMgYmXhbGztdOFzb2sgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJBIFdpbmUga/xs9m5i9nr1IFdpbmRvd3MgdmVyemnza+ludCB0dWQgdmlzZWxrZWRuaSBhbGthbG1heuFzb25r6W50LiAgRXogYSBm/Gwg9nNzemVr9nR0ZXTpc2JlbiDhbGwgYSBG/GdndulueWv2bnl2dOFyIOlzIEdyYWZpa2EgZvxsbGVsLCBob2d5IGxlaGV09XbpIHRlZ3llIGEgcmVuZHN6ZXJzemludPsgdmFneSBhbGthbG1heuFzb25r6W50aSBiZeFsbO104XNva2F0IGV6ZWtlbiBhIGb8bGVrZW4gaXMuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDE1LDIyNywzNQogICAgQ09OVFJPTCAgICAgICAgICJBbGthbG1heuFzb2siLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OCSAgICAiJkFsay4gaG96euFhZOFzLi4uIixJRENfQVBQX0FEREFQUCwgOTAsMjA0LDc1LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiQWxrLiAmZWx04XZvbO104XNhIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIwNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICImV2luZG93cyB2ZXJ6afM6IixJRENfU1RBVElDLDE3LDIyNiw1OCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMjQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICIgQWJsYWtiZeFsbO104XNvayAiLElEQ19TVEFUSUMsOCw0LDI0NCw4NAogICAgQ09OVFJPTCAgICAgIkEgRGlyZWN0WC1lcyBhbGthbG1heuFzb2sgYWJsYWvhYm9sIG5lbSBs6XBoZXQga2kgYXogZWfpcm11dGF08yIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMCwyMzAsOAogICAgQ09OVFJPTCAgICAgIkFsbG93IHRoZSB3aW5kb3cgbWFuYWdlciB0byAmZGVjb3JhdGUgdGhlIHdpbmRvd3MiLElEQ19FTkFCTEVfREVDT1JBVEVELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzIsMjMwLDgKICAgIENPTlRST0wgICAgICJBeiBhYmxha2tlemVs9SBrZXplbGhldGkgYXogYWJsYWtva2F0IixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NCwyMzAsOAogICAgQ09OVFJPTCAgICAgIlZpcnR14WxpcyBhc3p0YWwgZW11bOFs4XNhIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDU2LDIzMCw4CiAgICBMVEVYVCAgICAgICAiQWJsYWtt6XJldDoiLElEQ19ERVNLVE9QX1NJWkUsMTUsNzAsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDEwOSw3MCw4LDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMTcsNjgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICIgRGlyZWN0M0QgIixJRENfU1RBVElDLDgsOTUsMjQ0LDQ5CiAgICBMVEVYVCAgICAgICAiVmVydGV4IFNoYWRlciB04W1vZ2F04XM6ICIsSURDX1NUQVRJQywxNSwxMTAsODAsMzIKICAgIENPTUJPQk9YICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEwMCwxMDgsMTQ1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgIlBpeGVsIFNoYWRlciBlbmdlZOlseWV66XNlIChoYSB04W1vZ2F0amEgYSBoYXJkdmVyKSIsSURDX0QzRF9QU0hBREVSX01PREUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxMjYsMjMwLDEwCgogICAgR1JPVVBCT1ggICAgIiBTY3JlZW4gJlJlc29sdXRpb24gIixJRENfU1RBVElDLDgsMTUxLDI0NCw5MwogICAgQ09OVFJPTCAgICAgIiIsIElEQ19SRVNfVFJBQ0tCQVIsICJtc2N0bHNfdHJhY2tiYXIzMiIsV1NfVEFCU1RPUCwxMiwxNjEsMTg3LDE1CiAgICBFRElUVEVYVCAgICBJRENfUkVTX0RQSUVESVQsMjA0LDE2MSwyMywxMyxFU19OVU1CRVJ8V1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgImRwaSIsSURDX1NUQVRJQywyMzUsMTYzLDEwLDgKICAgIExURVhUICAgICAgICJUaGlzIGlzIGEgc2FtcGxlIHRleHQgdXNpbmcgMTAgcG9pbnQgVGFob21hIixJRENfUkVTX0ZPTlRfUFJFVklFVywxNSwxODEsMjMwLDU1CkVORAoKSUREX0RMTENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgRExMIGZlbPtsYu1y4Wzhc29rICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJBIGRpbmFtaWt1cyBjc2F0b2zhc/ogZvxnZ3bpbnlr9m55dnThcmFrYXQga2kgbGVoZXQgduFsYXN6dGFuaSBlZ3llbmvpbnQgaG9neSBiZelw7XRldHRlayAoYSBXaW5lIGJpenRvc+10amEpLCB2YWd5IG5hdO12YWsgKGEgd2luZG93c2LzbCBueWVydCwgdmFneSBheiBhbGthbG1heuFzIGJpenRvc+10amEpLiIKICAgICAgICAgICAgICAgICAgICAsSURDX1NUQVRJQywxNiwxNiwyMjAsMzIKICAgIExURVhUICAgICAgICAgICAi2mogZmVs/Gxi7XLhbOFzIGv2bnl2dOFyaG96OiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiSG96euEmYWThcyIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAiTOl0ZXr1IGZlbPxsYu1y4Wzhc29rOiIsSURDX1NUQVRJQywxNiw4NiwxMDAsOAogICAgTElTVEJPWCAgICAgICAgIElEQ19ETExTX0xJU1QsMTYsOTYsMTQwLDE0MCxXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICJTeiZlcmtlc3p06XMiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkUmbHThdm9s7XThcyIsSURDX0RMTFNfUkVNT1ZFRExMLDE2NCwxMTQsODIsMTQgCkVORAoKSUREX0xPQURPUkRFUiBESUFMT0cgRElTQ0FSREFCTEUgODAsIDkwLCAxMTAsIDkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJGZWz8bGLtcuFs4XMgc3plcmtlc3p06XNlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBCZXT2bHTpc2kgc29ycmVuZCAiLElEQ19TVEFUSUMsOCw0LDk0LDY2CiAgICBDT05UUk9MICAgICAgICAgIiZCZelw7XRldHQgKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2LDE0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZOYXTtdiAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiQmXpcO10ZXQmdCwgbmF07XYiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJOYXTtJnYsIGJl6XDtdGV0dCIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIlRpbHThJnMiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDc1LDEwCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDgsNzQsNDUsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiTelnc2UiLElEQ0FOQ0VMLDU3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBNZWdoYWp08yBob3p64XJlbmRlbOlzZWsgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIkZhaWxlZCB0byBjb25uZWN0IHRvIHRoZSBtb3VudCBtYW5hZ2VyLCB0aGUgZHJpdmUgY29uZmlndXJhdGlvbiBjYW5ub3QgYmUgZWRpdGVkLiIsIElEQ19TVEFUSUNfTU9VTlRNR1JfRVJST1IsIDE1LDMwLDIyMCw3NgogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfRFJJVkVTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDE4LDIzMiw3NgogICAgUFVTSEJVVFRPTiAgICAgICJIb3p64SZhZC4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiVPYmcmzpcyIsSURDX0JVVFRPTl9SRU1PVkUsNTYsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXV0byZmZWxpc20uLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxOTcsOTgsNDksMTQKCiAgICAvKiBlZGl0aW5nIGRyaXZlIGRldGFpbHMgKi8KICAgIExURVhUICAgICAgICAgICAiJtp0di46IixJRENfU1RBVElDX1BBVEgsMTUsMTIzLDIwLDkKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDQxLDEyMCwxNjAsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZUYWxs83rhcy4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwyMDYsMTIwLDQwLDEzCiAgICAKICAgIExURVhUICAgICAgICAgICAiJlTtcHVzOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQgICAgICAgICAgICJD7W1rZSDpcyBzb3JvemF0c3rhbSIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsOTUsMTAKICAgIAogICAgUFVTSEJVVFRPTiAgICAgICImSGFsYWTzIixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxODYsMTM2LDYwLDEzCiAgICBDT05UUk9MICAgICAgICAgIkF1dG9mZWxpc21lculzICZlc3pr9npy9Ww6IixJRENfUkFESU9fQVVUT0RFVEVDVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTY2LDkzLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDI3LDE3NiwxNzQsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiVGFsbCbzeuFzLi4uIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMjA2LDE3Niw0MCwxMwogICAgQ09OVFJPTCAgICAgICAgICJL6SZ6aSBob3p64XJlbmRlbOlzOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDc5LDEwCgogICAgTFRFWFQgICAgICAgICAgICImQ+1ta2U6IixJRENfU1RBVElDX0xBQkVMLDMzLDIwOCwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDYzLDIwNSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiUyZvcnN64W06IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiUmVqdGV0dCBm4Wpsb2sgbWVnamVsZW7tdOlzZSIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyNjAsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIE1lZ2hhanTzcHJvZ3JhbSB24Wxhc3p04XMgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIlbhbGFzc3pvbiBlZ3kgaGFuZ21lZ2hhanTzdCBhIGtpduFsYXN6dG90dCBtZWdoYWp083Byb2dyYW0gZWz1dHRpIG7pZ3l6ZXQgYmVqbPZs6XPpdmVsLiAgQSBoYW5nIGxldGlsdGhhdPMsIGhhIG5lbSBqZWz2bCBiZSBlZ3kgbWVnaGFqdPN0IHNlbS4gVPZiYiBtZWdoYWp083Byb2dyYW0gYmVqZWz2bOlzZSBuZW0gYWrhbmxvdHQuIEF6IPZzc3plcyBtZWdoYWp08yBiZeFsbO10aGF08ywgaGEgcuFqdWsga2F0dGludCBqb2JiIGVn6XJnb21iYmFsLiIsSURDX1NUQVRJQywxNSwxNSwyMjcsMzUKICAgIENPTlRST0wgICAgICAgICAiRXN6a/Z69msiLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDUwLDE0MCwxNDAgCiAgICBQVVNIQlVUVE9OICAgICAgIiZUZXN0IFNvdW5kIixJRENfQVVESU9fVEVTVCwxNzAsNTAsNTksMTQKICAgIFBVU0hCVVRUT04JICAgICJWZXrpcmz1cHVsdCIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDcwLDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwCiAgICBMVEVYVAkgICAgIkhhcmR2ZXJlcyBneW9yc+104XM6ICIsSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwyMTMsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJEZWZhdWx0ICZTYW1wbGUgUmF0ZToiLElEQ19TVEFUSUMsMTUsMjMyLDcwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDkwLDIzMCw0Miw3NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiRGVmYXVsdCAmQml0cyBQZXIgU2FtcGxlOiIsSURDX1NUQVRJQywxMzcsMjMyLDgwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0JJVFMsMjIwLDIzMCwzMCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICAgICAiTWVnaGFqdPNwcm9ncmFtIGVtdWzhY2nzIixJRENfRFNPVU5EX0RSVl9FTVVMLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjMwLDIzMCwxMApFTkQKCklERF9ERVNLVE9QX0lOVEVHUkFUSU9OIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBNZWdqZWxlbulzICIsSURDX1NUQVRJQyw4LDQsMjQ0LDEwNgogICAgTFRFWFQgICAgICAgICAgICJU6W1hOiIsSURDX1NUQVRJQywxNSwxNiwxMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9USEVNRUNPTUJPLDE1LDI0LDEzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiVOltYSB0ZWxlcO106XNlLi4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAiU3rtbjoiLElEQ19USEVNRV9DT0xPUlRFWFQsMTUsNDAsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfQ09MT1JDT01CTywxNSw0OCwxMTIsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIk3pcmV0OiIsSURDX1RIRU1FX1NJWkVURVhULDEzNSw0MCwxMTAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTM1LDQ4LDExMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiSXRlbToiLElEQ19TVEFUSUMsMTUsNjQsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfU1lTUEFSQU1fQ09NQk8sMTUsNzQsMTEyLDEyMCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVAogICAgTFRFWFQgICAgICAgICAgICJDb2xvcjoiLElEQ19TWVNQQVJBTV9DT0xPUl9URVhULDEzNSw2NCwyNSw4LFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIiIsSURDX1NZU1BBUkFNX0NPTE9SLDEzNSw3NCwyNSwxMyxXU19ESVNBQkxFRCB8IEJTX09XTkVSRFJBVwogICAgTFRFWFQgICAgICAgICAgICJTaXplOiIsSURDX1NZU1BBUkFNX1NJWkVfVEVYVCwxNjYsNjQsMzAsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19TWVNQQVJBTV9TSVpFLDE2Niw3NCwyMywxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICIiLElEQ19TWVNQQVJBTV9TSVpFX1VELFVQRE9XTl9DTEFTUyxVRFNfU0VUQlVERFlJTlQgfCBXU19ESVNBQkxFRCwxODcsNzQsMTUsMTMKICAgIFBVU0hCVVRUT04gICAgICAiRm9udCIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiBSZW5kc3plcm1hcHBhICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIklkZSBsaW5rZWw6IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDUwLDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw2NSwxOTUsMTQ1LDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiVGFsbPN64XMiLElEQ19CUk9XU0VfU0ZQQVRILDIxNSwxOTUsMzAsMTMsV1NfRElTQUJMRUQKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIkFsa2FsbWF64XNvayIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICJG/GdndulueWv2bnl2dOFyYWsiCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiTWVnaGFqdPNrIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIkvpcmVtIHbhbGFzc3pvbiB1bml4IGPpbGv2bnl2dOFyYXQuIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgIkhhbGFk8yA8PCIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICJIYWxhZPMgPj4iCiAgICBJRFNfTk9USEVNRSAgICAgICAgICAgICAiKE5pbmNzIHTpbWEpIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIkdyYWZpa2EiCiAgICBJRFNfVEFCX0RFU0tUT1BfSU5URUdSQVRJT04gIkFzenRhbGJhIGJl6XD8bOlzIgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIkhhbmciCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiTul2amVneSIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJXaW5lIGtvbmZpZ3Vy4WNp8yIKICAgIElEU19XSU5FQ0ZHX1RJVExFX0FQUCAgICJXaW5lIGtvbmZpZ3Vy4WNp8yAlcyBzeuFt4XJhIgogICAgSURTX1RIRU1FRklMRSAgICAgICAgICAgIlTpbWFm4Wpsb2siCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAiVOltYWbhamwgduFsYXN6dOFzYSIKICAgIElEU19BVURJT19NSVNTSU5HICAgICAgICJKZWxlbmxlZyBuaW5jcyBoYW5nbWVnaGFqdPMga2l24Wxhc3p0dmEgYSByZWdpc3p0cuFjafNzIGFkYXRi4Xppc2Jhbi5cblxuRWd5IGFq4W5sb3R0IG1lZ2hhanTzcHJvZ3JhbSBraSBsZXR0IHbhbGFzenR2YSDWbm5lay5cbtZuIGhhc3pu4WxoYXRqYSBlenQgYSBtZWdoYWp083QsIHZhZ3kgduFsYXN6dGhhdCBt4XNpa2F0IGhhIGVs6XJoZXT1LlxuXG7Wbm5layBheiBhbGthbG1heuFzcmEga2VsbCBrYXR0aW50YW5pIGEga2l24Wxhc3p04XMg6XJ26W55YmUgbOlwdGV06XPpaGV6LiIKICAgIElEU19TSEVMTF9GT0xERVIgICAgICAgICJSZW5kc3plcm1hcHBhIgogICAgSURTX0xJTktTX1RPICAgICAgICAgICAgIklkZSBsaW5rZWwiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICJBIGv2bnl2dOFyYWsgYmV09mx06XNpIHNvcnJlbmRq6W5layBtZWd24Wx0b3p0YXThc2EgbmVtIGFq4W5sb3R0LlxuQml6dG9zIGhvZ3kgZXp0IGFrYXJqYSB0ZW5uaT8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAiRmlneWVsZW06IHJlbmRzemVyZvxnZ3bpbnlr9m55dnThciIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICJuYXTtdiIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICJiZelw7XRldHQiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAibmF07XYsIGJl6XDtdGV0dCIKICAgIElEU19ETExfQlVJTFRJTl9OQVRJVkUgICJiZelw7XRldHQsIG5hdO12IgogICAgSURTX0RMTF9ESVNBQkxFRCAgICAgICAgImxldGlsdHZhIgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgIkRlZmF1bHQgU2V0dGluZ3MiCiAgICBJRFNfRVhFQ1VUQUJMRV9GSUxURVIgICAiV2luZSBQcm9ncmFtcyAoKi5leGUsKi5leGUuc28pXDAqLmV4ZTsqLmV4ZS5zb1wwIgogICAgSURTX1VTRV9HTE9CQUxfU0VUVElOR1MgIlVzZSBnbG9iYWwgc2V0dGluZ3MiCiAgICBJRFNfU0VMRUNUX0VYRUNVVEFCTEUgICAiU2VsZWN0IGFuIGV4ZWN1dGFibGUgZmlsZSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1NIQURFUl9NT0RFX0hBUkRXQVJFICAgICJIYXJkd2FyZSIKICAgIElEU19TSEFERVJfTU9ERV9OT05FICAgICAgICAiTm9uZSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0RSSVZFX1VOS05PV04gICAgICAgICAgICJBdXRvZGV0ZWN0IgogICAgSURTX0RSSVZFX0ZJWEVEICAgICAgICAgICAgICJMb2NhbCBoYXJkIGRpc2siCiAgICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgIk5ldHdvcmsgc2hhcmUiCiAgICBJRFNfRFJJVkVfUkVNT1ZBQkxFICAgICAgICAgIkZsb3BweSBkaXNrIgogICAgSURTX0RSSVZFX0NEUk9NICAgICAgICAgICAgICJDRC1ST00iCiAgICBJRFNfRFJJVkVfTEVUVEVSU19FWENFRURFRCAgIllvdSBjYW5ub3QgYWRkIGFueSBtb3JlIGRyaXZlcy5cblxuRWFjaCBkcml2ZSBtdXN0IGhhdmUgYSBsZXR0ZXIsIGZyb20gQSB0byBaLCBzbyB5b3UgY2Fubm90IGhhdmUgbW9yZSB0aGFuIDI2IgogICAgSURTX1NZU1RFTV9EUklWRV9MQUJFTCAgICAgICJTeXN0ZW0gZHJpdmUiCiAgICBJRFNfQ09ORklSTV9ERUxFVEVfQyAgICAgICAgIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgZHJpdmUgQz9cblxuTW9zdCBXaW5kb3dzIGFwcGxpY2F0aW9ucyBleHBlY3QgZHJpdmUgQyB0byBleGlzdCwgYW5kIHdpbGwgZGllIG1lc3NpbHkgaWYgaXQgZG9lc24ndC4gSWYgeW91IHByb2NlZWQgcmVtZW1iZXIgdG8gcmVjcmVhdGUgaXQhIgogICAgSURTX0NPTF9EUklWRUxFVFRFUiAgICAgICAgICJMZXR0ZXIiCiAgICBJRFNfQ09MX0RSSVZFTUFQUElORyAgICAgICAgIkRyaXZlIE1hcHBpbmciCiAgICBJRFNfTk9fRFJJVkVfQyAgICAgICAgICAgICAgIllvdSBkb24ndCBoYXZlIGEgZHJpdmUgQy4gVGhpcyBpcyBub3Qgc28gZ3JlYXQuXG5cblJlbWVtYmVyIHRvIGNsaWNrICdBZGQnIGluIHRoZSBEcml2ZXMgdGFiIHRvIGNyZWF0ZSBvbmUhXG4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BQ0NFTF9GVUxMICAgICAgICAgICAgICAiRnVsbCIKICAgIElEU19BQ0NFTF9TVEFOREFSRCAgICAgICAgICAiU3RhbmRhcmQiCiAgICBJRFNfQUNDRUxfQkFTSUMgICAgICAgICAgICAgIkJhc2ljIgogICAgSURTX0FDQ0VMX0VNVUxBVElPTiAgICAgICAgICJFbXVsYXRpb24iCiAgICBJRFNfRFJJVkVSX0FMU0EgICAgICAgICAgICAgIkFMU0EgRHJpdmVyIgogICAgSURTX0RSSVZFUl9FU09VTkQgICAgICAgICAgICJFc291bkQgRHJpdmVyIgogICAgSURTX0RSSVZFUl9PU1MgICAgICAgICAgICAgICJPU1MgRHJpdmVyIgogICAgSURTX0RSSVZFUl9KQUNLICAgICAgICAgICAgICJKQUNLIERyaXZlciIKICAgIElEU19EUklWRVJfTkFTICAgICAgICAgICAgICAiTkFTIERyaXZlciIKICAgIElEU19EUklWRVJfQVVESU9JTyAgICAgICAgICAiQXVkaW8gSU8gKFNvbGFyaXMpIERyaXZlciIKICAgIElEU19EUklWRVJfQ09SRUFVRElPICAgICAgICAiQ29yZUF1ZGlvIERyaXZlciIKICAgIElEU19PUEVOX0RSSVZFUl9FUlJPUiAgICAgICAiQ291bGRuJ3Qgb3BlbiAlcyEiCiAgICBJRFNfU09VTkREUklWRVJTICAgICAgICAgICAgIlNvdW5kIERyaXZlcnMiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgIldhdmUgT3V0IERldmljZXMiCiAgICBJRFNfREVWSUNFU19XQVZFSU4gICAgICAgICAgIldhdmUgSW4gRGV2aWNlcyIKICAgIElEU19ERVZJQ0VTX01JRElPVVQgICAgICAgICAiTUlESSBPdXQgRGV2aWNlcyIKICAgIElEU19ERVZJQ0VTX01JRElJTiAgICAgICAgICAiTUlESSBJbiBEZXZpY2VzIgogICAgSURTX0RFVklDRVNfQVVYICAgICAgICAgICAgICJBdXggRGV2aWNlcyIKICAgIElEU19ERVZJQ0VTX01JWEVSICAgICAgICAgICAiTWl4ZXIgRGV2aWNlcyIKICAgIElEU19VTkFWQUlMQUJMRV9EUklWRVIgICAgICAiRm91bmQgZHJpdmVyIGluIHJlZ2lzdHJ5IHRoYXQgaXMgbm90IGF2YWlsYWJsZSFcblxuUmVtb3ZlIFwiJXNcIiBmcm9tIHJlZ2lzdHJ5PyIKICAgIElEU19XQVJOSU5HICAgICAgICAgICAgICAgICAiV2FybmluZyIKRU5ECg==