LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogVHVya2lzaCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA2IEZhdGloIEH+/WP9CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKgogKi8KCiNpbmNsdWRlICJjb25maWcuaCIgICAvKiBOZWVkZWQgZm9yIHRoZSBQQUNLQUdFX1NUUklORyBkZWZpbml0aW9uICovCiNpbmNsdWRlICJyZXNvdXJjZS5oIgoKTEFOR1VBR0UgTEFOR19UVVJLSVNILCBTVUJMQU5HX0RFRkFVTFQKCklEUl9XSU5FQ0ZHIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJZYXD9bGFuZP1yIiwgSURDX0FVRElPX0NPTkZJR1VSRQogICAgRU5ECkVORAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjIwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiIiwgSURDX0FCVF9QQU5FTCwgIlNUQVRJQyIsIFNTX09XTkVSRFJBVywgMCwgMCwgMjYwLCAxNDAKICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX05BTUUsSURDX0FCVF9USVRMRV9URVhULDEwNSwzMCw1NSwzMAogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfVkVSU0lPTixJRENfQUJUX1BBTkVMX1RFWFQsMTYwLDQzLDE0MCw4CiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX0FCVF9XRUJfTElOSywiU3lzTGluayIsIExXU19UUkFOU1BBUkVOVCwgMTA1LDUzLDEwNiw4CiAgICBMVEVYVCAgICAgICAgICAgIlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfQUJUX0xJQ0VOU0VfVEVYVCwxMDUsNjQsMTQ1LDYwCiAgICBHUk9VUEJPWCAgICAgICAgIiBXaW5kb3dzIFJlZ2lzdHJhdGlvbiBJbmZvcm1hdGlvbiAiLCBJRENfU1RBVElDLCAxNSwgMTU1LCAyMzAsIDU1CiAgICBMVEVYVCAgICAgICAgICAgIk93bmVyOiIsIElEQ19TVEFUSUMsIDIyLCAxNzEsIDQwLCAyMAogICAgRURJVFRFWFQgICAgICAgIElEQ19BQlRfT1dORVIsIDc1LCAxNzEsIDE2MCwgMTMsIEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJPcmdhbml6YXRpb246IiwgSURDX1NUQVRJQywgMjIsIDE4NSwgNTAsIDIwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0FCVF9PUkcsIDc1LCAxODUsIDE2MCwgMTMsIEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUApFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDIyMApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFV5Z3VsYW1hIEF5YXJsYXL9ICIsSURDX1NUQVRJQywgOCw0LDI0NCwyMTAKICAgIExURVhUICAgICAgICAgICAiV2luZSBoZXIgdXlndWxhbWEgaedpbiBkZfBp/mlrIFdpbmRvd3Mgc/xy/G1sZXJpbmkgdGFrbGl0IGVkZWJpbGlyLiBCdSBzZWttZSBLaXRhcGz9a2xhciB2ZSBHcmFmaWsgc2VrbWVsZXJpIGlsZSBiYfBsYW50/Wz9IG9sdXAgYnUgc2VrbWVsZXJkZSBkZSBzaXN0ZW0g52Fw/W5kYWtpIHZleWEgdXlndWxhbWF5YSD2emVsIGF5YXJsYXL9IHlhcG1hbv16YSBpemluIHZlcmlyLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiVXlndWxhbWFsYXIiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTIwCiAgICBQVVNIQlVUVE9OCSAgICAiVXlndWxhbWEgJkVrbGUuLi4iLElEQ19BUFBfQUREQVBQLCA5MCwxNzQsNzUsMTQKICAgIFBVU0hCVVRUT04JICAgICJVeWd1bGFtYSAmS2FsZP1yIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDE3NCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICImV2luZG93cyBT/HL8bfw6IixJRENfU1RBVElDLDE3LDE5Niw1OCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywxOTQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDIyMApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICIgUGVuY2VyZSBheWFybGFy/SAiLElEQ19TVEFUSUMsOCw0LDI0NCw4NAogICAgQ09OVFJPTCAgICAgIkRpcmVjdFggdXlndWxhbWFsYXL9bv1uIGZhcmV5aSBwZW5jZXJlIGnnaW5lIGtpbGl0bGVtZWxlcmluZSBpemluIHZlciIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMCwyMzAsOAogICAgQ09OVFJPTCAgICAgIkFsbG93IHRoZSB3aW5kb3cgbWFuYWdlciB0byAmZGVjb3JhdGUgdGhlIHdpbmRvd3MiLElEQ19FTkFCTEVfREVDT1JBVEVELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzIsMjMwLDgKICAgIENPTlRST0wgICAgICJQZW5jZXJlIHn2bmV0aWNpc2luaW4gcGVuY2VyZWxlcmkgefZuZXRtZXNpbmUgaXppbiB2ZXIiLElEQ19FTkFCTEVfTUFOQUdFRCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDQ0LDIzMCw4CiAgICBDT05UUk9MICAgICAiU2FuYWwgbWFzYfxzdPwga3VsbGFuIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDU2LDIzMCw4CiAgICBMVEVYVCAgICAgICAiTWFzYfxzdPwgYvx5/Gts/PD8OiIsSURDX0RFU0tUT1BfU0laRSwxNSw3MCw0NCw4LFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTA5LDcwLDgsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgSURDX0RFU0tUT1BfV0lEVEgsNjQsNjgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNyw2OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgogICAgR1JPVVBCT1ggICAgIiBEaXJlY3QzRCAiLElEQ19TVEFUSUMsOCw5NSwyNDQsNDkKICAgIExURVhUICAgICAgICJWZXJ0ZXggU2hhZGVyIERlc3Rl8Gk6ICIsSURDX1NUQVRJQywxNSwxMTAsODAsMzIKICAgIENPTUJPQk9YICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEwMCwxMDgsMTQ1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgIlBpeGVsIFNoYWRlcidhIGl6aW4gdmVyIChkb25hbv1tIGRlc3Rla2xpeW9yc2EpIixJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEyNiwyMzAsMTAKCiAgICBHUk9VUEJPWCAgICAiIFNjcmVlbiAmUmVzb2x1dGlvbiAiLElEQ19TVEFUSUMsOCwxNTEsMjQ0LDYzCiAgICBDT05UUk9MICAgICAiIiwgSURDX1JFU19UUkFDS0JBUiwgIm1zY3Rsc190cmFja2JhcjMyIixXU19UQUJTVE9QLDEyLDE2MSwxODcsMTUKICAgIEVESVRURVhUICAgIElEQ19SRVNfRFBJRURJVCwyMDQsMTYxLDIzLDEzLEVTX05VTUJFUnxXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAiZHBpIixJRENfU1RBVElDLDIzNSwxNjMsMTAsOAogICAgTFRFWFQgICAgICAgIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCB1c2luZyAxMCBwb2ludCBUYWhvbWEiLElEQ19SRVNfRk9OVF9QUkVWSUVXLDE1LDE4MSwyMzAsMjgKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyMjAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBETEwg1m5jZWxpa2xlcmkgIixJRENfU1RBVElDLDgsNCwyNDQsMjEwCiAgICBMVEVYVCAgICAgICAgICAgIkRldmluZ2VuIEJh8Gz9IEtpdGFwbP1rbGFy/W4gaGVyIGJpcmkgeWVybGX+aWsgKFdpbmUgaWxlIGdlbGVuKSB2ZXlhIGRv8GFsIChXaW5kb3dzJ3RhbiBhbP1ubf3+IHZleWEgdXlndWxhbWEgdGFyYWb9bmRhbiBzYfBsYW5t/f4pIG9sYXJhayBiZWxpcnRpbGViaWxpci4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIktpdGFwbP1rIGnnaW4geWVuaSD2bmNlbGlrOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiJkVrbGUiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzCiAgICBMVEVYVCAgICAgICAgICAgIlZhciBvbGFuIPZuY2VsaWtsZXI6IixJRENfU1RBVElDLDE2LDg2LDEwMCw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX0RMTFNfTElTVCwxNiw5NiwxNDAsMTEyLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19WU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIiZE/HplbmxlIixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICImU2lsIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDEyNSwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItZuY2VsaWsgRPx6ZW5sZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgWfxrbGVtZSBT/XJhc/0gIixJRENfU1RBVElDLDgsNCwxMTAsNjYKICAgIENPTlRST0wgICAgICAgICAiJlllcmxl/mlrIChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiJkRv8GFsIChXaW5kb3dzKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyNCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAi1m5jZSBZZXImbGX+aWsgc29ucmEgRG/wYWwiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAi1m5jZSBEJm/wYWwgc29ucmEgWWVybGX+aWsiLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiJkV0a2lzaXpsZf50aXIiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDEwMCwxMAogICAgREVGUFVTSEJVVFRPTiAgICJUYW1hbSIsSURPSyw4LDc0LDUzLDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIt1wdGFsIixJRENBTkNFTCw2NCw3NCw1MywxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjIwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgU/xy/GP8IEX+bGX+dGlybWVzaSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUICAgICAgICAgICAiRmFpbGVkIHRvIGNvbm5lY3QgdG8gdGhlIG1vdW50IG1hbmFnZXIsIHRoZSBkcml2ZSBjb25maWd1cmF0aW9uIGNhbm5vdCBiZSBlZGl0ZWQuIiwgSURDX1NUQVRJQ19NT1VOVE1HUl9FUlJPUiwgMTUsMzAsMTkwLDc2CiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIiZFa2xlLi4uIixJRENfQlVUVE9OX0FERCwxNSw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICImS2FsZP1yIixJRENfQlVUVE9OX1JFTU9WRSw1Niw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJPdG9tYXRpayAmQWxn/WxhLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTg2LDk4LDYwLDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIiZZb2w6IixJRENfU1RBVElDX1BBVEgsMTUsMTIzLDIwLDkKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDQ1LDEyMCwxNTYsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZH9nphdC4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwyMDYsMTIwLDQwLDEzCiAgICAKICAgIExURVhUICAgICAgICAgICAiJlT8cjoiLElEQ19TVEFUSUNfVFlQRSwxNSwxMzgsMjEsMTAKICAgIENPTUJPQk9YICAgICAgICBJRENfQ09NQk9fVFlQRSw0NSwxMzUsNzcsNjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICAKICAgIFBVU0hCVVRUT04gICAgICAiR2Vsaf5taf4gJlNl52VuZWtsZXIiLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDE4NiwxMzUsNjAsMTMKICAgIExURVhUICAgICAgICAgICAiRGUmdmljZToiLElEQ19TVEFUSUNfREVWSUNFLDE1LDE1MywyNiw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDQ1LDE1MCwxNTYsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIkf2JnphdC4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDIwNiwxNTAsNDAsMTMKCiAgICBMVEVYVCAgICAgICAgICAgIiZFdGlrZXQ6IixJRENfU1RBVElDX0xBQkVMLDE1LDE2OCwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDQ1LDE2NSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiUyZlcmkgTm86IixJRENfU1RBVElDX1NFUklBTCwxNSwxODMsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNDUsMTgwLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiTm9rdGF5bGEgYmH+bGF5YW4gZG9zeWFsYXL9IGf2c3RlciIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyMDUsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDIyMApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFP8cvxj/CBTZedpbWkgIixJRENfU1RBVElDLDgsNCwyNDQsMTYwCiAgICBMVEVYVCAgICAgICAgICAgIt1zdGVkafBpbml6IHP8cvxj/G78biBrdXR1c3VudSBp/mFyZXRsZXllcmVrIGJpciBzZXMgc/xy/GP8c/wgc2XnaW4uIEhp52JpciBz/HL8Y/wgc2XnbWV5ZXJlayBzZXNpIGV0a2lzaXpsZf50aXJlYmlsaXJzaW5pei4gQmlyZGVuIGZhemxhIHP8cvxj/CBzZedpbWkg9m5lcmlsbWV6LiDcemVyaW5lIHNh8CB0/WtsYXlhcmFrIGJpciBz/HL8Y/x5/CB5YXD9bGFuZP1y/W4uIixJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJBeWf9dGxhciIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNTAsMTQwLDEwNQogICAgUFVTSEJVVFRPTiAgICAgICImVGVzdCBTb3VuZCIsSURDX0FVRElPX1RFU1QsMTcwLDUwLDU5LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiRGVuZXRpbSBNYXNhc/0iLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE3MCw3MCw1OSwxNAogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0U291bmQgIixJRENfU1RBVElDLDgsMTcwLDI0NCw0NQogICAgTFRFWFQgICAgICAgICAgICJEb25hbv1tIEj9emxhbmT9cm1hc/06ICIsSURDX1NUQVRJQywxNSwxODAsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwxNzgsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLWbnRhbv1tbP0g1nJuZWtsZW1lIEj9ev06IixJRENfU1RBVElDLDE1LDE5Nyw3MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9SQVRFUyw5MCwxOTUsNDIsNzYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgItZybmVrIEJh/v1uYSBCaXQgU2F5/XP9OiIsSURDX1NUQVRJQywxMzcsMTk3LDgwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0JJVFMsMjIwLDE5NSwzMCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjIwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgR/Zy/G78bSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAiVGVtYToiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIlRlbWEga3VyLi4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAiUmVuazoiLElEQ19USEVNRV9DT0xPUlRFWFQsMTUsNDAsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfQ09MT1JDT01CTywxNSw0OCwxMTIsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkJveXV0OiIsSURDX1RIRU1FX1NJWkVURVhULDEzNSw0MCwxMTAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTM1LDQ4LDExMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiSXRlbToiLElEQ19TVEFUSUMsMTUsNjQsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfU1lTUEFSQU1fQ09NQk8sMTUsNzQsMTEyLDEyMCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVAogICAgTFRFWFQgICAgICAgICAgICJDb2xvcjoiLElEQ19TWVNQQVJBTV9DT0xPUl9URVhULDEzNSw2NCwyNSw4LFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIiIsSURDX1NZU1BBUkFNX0NPTE9SLDEzNSw3NCwyNSwxMyxXU19ESVNBQkxFRCB8IEJTX09XTkVSRFJBVwogICAgTFRFWFQgICAgICAgICAgICJTaXplOiIsSURDX1NZU1BBUkFNX1NJWkVfVEVYVCwxNjYsNjQsMzAsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19TWVNQQVJBTV9TSVpFLDE2Niw3NCwyMywxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICIiLElEQ19TWVNQQVJBTV9TSVpFX1VELFVQRE9XTl9DTEFTUyxVRFNfU0VUQlVERFlJTlQgfCBXU19ESVNBQkxFRCwxODcsNzQsMTUsMTMKICAgIFBVU0hCVVRUT04gICAgICAiRm9udCIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiDWemVsIEtsYXP2cmxlciAiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfU0ZQQVRIUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICAgQ09OVFJPTCAgICAgICAgICJIZWRlZiBkaXppbjoiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICJH9nphdCIsSURDX0JST1dTRV9TRlBBVEgsMjE1LDE5NSwzMCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiVXlndWxhbWFsYXIiCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAiS2l0YXBs/WtsYXIiCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiU/xy/GP8bGVyIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIkz8dGZlbiBoYXJpdGFsYW5hY2FrIHVuaXggZGl6aW5pbmkgc2XnaW4uIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgIlRlbWVsIEF5YXJsYXIiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiR2Vsaf5taf4gQXlhcmxhciIKICAgIElEU19OT1RIRU1FICAgICAgICAgICAgICIoVGVtYSBZb2spIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIkdyYWZpayIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAiTWFzYfxzdPwgRW50ZWdyYXN5b251IgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIlNlcyIKICAgIElEU19UQUJfQUJPVVQgICAgICAgICAgICJIYWtr/W5kYSIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJXaW5lIHlhcP1sYW5k/XJtYXP9IgogICAgSURTX1dJTkVDRkdfVElUTEVfQVBQICAgIiVzIGnnaW4gV2luZSB5YXD9bGFuZP1ybWFz/SIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICJUZW1hIGRvc3lhbGFy/SAoKi5tc3N0eWxlczsgKi50aGVtZSkiCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAiVGVtYSBkb3N5YXP9IHNl52luIgogICAgSURTX0FVRElPX01JU1NJTkcgICAgICAgIlNpc3RlbSBrYXlk/W5kYSBiZWxpcmxlbm1p/iBiaXIgc2VzIHP8cvxj/HP8IHlvay5cblxu1m5lcmlsZW4gYmlyIHP8cvxj/CBzaXppbiBp52luIHNl52lsZGkuXG5CdSBz/HL8Y/x5/CBrdWxsYW5hYmlsaXIgdmV5YSB2YXJzYSBiYf5rYSBiaXIgc/xy/GP8efwgc2XnZWJpbGlyc2luaXouXG5cblNl52ltaW4gZXRraWxpIG9sYWJpbG1lc2kgaedpbiBVeWd1bGEnef0gdP1rbGFtYWz9c/1u/XouIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIktsYXP2ciIKICAgIElEU19MSU5LU19UTyAgICAgICAgICAgICJIZWRlZiBEaXppbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0RMTF9XQVJOSU5HICAgICAgICAgIkJ1IGtpdGFwbP3w/W4gefxrbGVtZSBz/XJhc/1u/W4gZGXwaf50aXJpbG1lc2kg9m5lcmlsbWV6LlxuQnVudSB5YXBtYWsgaXN0ZWRp8GluaXpkZW4gZW1pbiBtaXNpbml6PyIKICAgIElEU19ETExfV0FSTklOR19DQVBUSU9OICJVeWFy/Togc2lzdGVtIGtpdGFwbP3w/SIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICJkb/BhbCIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICJ5ZXJsZf5payIKICAgIElEU19ETExfTkFUSVZFX0JVSUxUSU4gICJkb/BhbCwgeWVybGX+aWsiCiAgICBJRFNfRExMX0JVSUxUSU5fTkFUSVZFICAieWVybGX+aWssIGRv8GFsIgogICAgSURTX0RMTF9ESVNBQkxFRCAgICAgICAgImRldnJlIGT9/v0iCiAgICBJRFNfREVGQVVMVF9TRVRUSU5HUyAgICAi1m50YW79bWz9IEF5YXJsYXIiCiAgICBJRFNfRVhFQ1VUQUJMRV9GSUxURVIgICAiV2luZSBQcm9ncmFtbGFy/SAoKi5leGUsKi5leGUuc28pXDAqLmV4ZTsqLmV4ZS5zb1wwIgogICAgSURTX1VTRV9HTE9CQUxfU0VUVElOR1MgIkdlbmVsIGF5YXJsYXL9IGt1bGxhbiIKICAgIElEU19TRUxFQ1RfRVhFQ1VUQUJMRSAgICLHYWz9/nT9cv1sYWJpbGlyIGJpciBkb3N5YSBzZedpbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1NIQURFUl9NT0RFX0hBUkRXQVJFICAgICJEb25hbv1tIgogICAgSURTX1NIQURFUl9NT0RFX05PTkUgICAgICAgICJIaediaXJpIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRFJJVkVfVU5LTk9XTiAgICAgICAgICAgIk90b21hdGlrIEFsZ/1sYSIKICAgIElEU19EUklWRV9GSVhFRCAgICAgICAgICAgICAiWWVyZWwgc2FiaXQgZGlzayIKICAgIElEU19EUklWRV9SRU1PVEUgICAgICAgICAgICAiQfAgcGF5bGH+/W39IgogICAgSURTX0RSSVZFX1JFTU9WQUJMRSAgICAgICAgICJEaXNrZXQgc/xy/GP8IgogICAgSURTX0RSSVZFX0NEUk9NICAgICAgICAgICAgICJDRC1ST00iCiAgICBJRFNfRFJJVkVfTEVUVEVSU19FWENFRURFRCAgIkRhaGEgZmF6bGEgc/xy/GP8IGVrbGV5ZW1lenNpbml6LlxuXG5IZXIgc/xy/GP8bvxuIEEtWiBhcmFs/fD9bmRhIGJpciBoYXJmaSBvbG1hbP1k/XIuIERvbGF5/XP9eWxhIDI2J2RhbiBmYXpsYSB0YW79bWxheWFtYXpz/W79ei4iCiAgICBJRFNfU1lTVEVNX0RSSVZFX0xBQkVMICAgICAgIlNpc3RlbSBz/HL8Y/xz/CIKICAgIElEU19DT05GSVJNX0RFTEVURV9DICAgICAgICAiQyBz/HL8Y/xz/G78IHNpbG1layBpc3RlZGnwaW5pemRlbiBlbWluIG1pc2luaXo/XG5cbsdv8HUgV2luZG93cyB1eWd1bGFtYXP9IEMgc/xy/GP8c/xu/G4gdmFyIG9sbWFz/W79IGJla2xlciB2ZSB5b2tzYSBpc3Rlbm1leWVuIGJpciD+ZWtpbGRlIHNvbmxhbv1yLiBF8GVyIGRldmFtIGVkZXJzZW5peiwgZGFoYSBzb25yYSB5ZW5pZGVuIG9sdf50dXJtYXn9IHVudXRtYXn9biEiCiAgICBJRFNfQ09MX0RSSVZFTEVUVEVSICAgICAgICAgIkhhcmYiCiAgICBJRFNfQ09MX0RSSVZFTUFQUElORyAgICAgICAgIlP8cvxj/CBF/mxlbWUiCiAgICBJRFNfTk9fRFJJVkVfQyAgICAgICAgICAgICAgIkMgc/xy/GP8bvx6IHlvay4gQnUgYmVrbGVuZW4gYmlyIGR1cnVtIGRl8GlsLlxuXG5CaXIgdGFuZSBvbHX+dHVybWFrIGnnaW4gU/xy/GP8bGVyIHNla21lc2luZGVuIEVrbGUneWkgdP1rbGFtYXn9IHVudXRtYXn9biFcbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FDQ0VMX0ZVTEwgICAgICAgICAgICAgICJUYW0iCiAgICBJRFNfQUNDRUxfU1RBTkRBUkQgICAgICAgICAgIlN0YW5kYXJ0IgogICAgSURTX0FDQ0VMX0JBU0lDICAgICAgICAgICAgICJUZW1lbCIKICAgIElEU19BQ0NFTF9FTVVMQVRJT04gICAgICAgICAiVGFrbGl0IgogICAgSURTX0RSSVZFUl9BTFNBICAgICAgICAgICAgICJBTFNBIFP8cvxj/HP8IgogICAgSURTX0RSSVZFUl9FU09VTkQgICAgICAgICAgICJFc291bkQgU/xy/GP8c/wiCiAgICBJRFNfRFJJVkVSX09TUyAgICAgICAgICAgICAgIk9TUyBT/HL8Y/xz/CIKICAgIElEU19EUklWRVJfSkFDSyAgICAgICAgICAgICAiSkFDSyBT/HL8Y/xz/CIKICAgIElEU19EUklWRVJfTkFTICAgICAgICAgICAgICAiTkFTIFP8cvxj/HP8IgogICAgSURTX0RSSVZFUl9BVURJT0lPICAgICAgICAgICJBdWRpbyBJTyAoU29sYXJpcykgU/xy/GP8c/wiCiAgICBJRFNfRFJJVkVSX0NPUkVBVURJTyAgICAgICAgIkNvcmVBdWRpbyBT/HL8Y/xz/CIKICAgIElEU19PUEVOX0RSSVZFUl9FUlJPUiAgICAgICAiJXMgYef9bGFtYWT9ISIKICAgIElEU19TT1VORERSSVZFUlMgICAgICAgICAgICAiU2VzIFP8cvxj/GxlcmkiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgIkRhbGdhIMf9a/3+IEF5Z/10bGFy/SIKICAgIElEU19ERVZJQ0VTX1dBVkVJTiAgICAgICAgICAiRGFsZ2EgR2lyaf4gQXln/XRsYXL9IgogICAgSURTX0RFVklDRVNfTUlESU9VVCAgICAgICAgICJNSURJIMf9a/3+IEF5Z/10bGFy/SIKICAgIElEU19ERVZJQ0VTX01JRElJTiAgICAgICAgICAiTUlESSBHaXJp/iBBeWf9dGxhcv0iCiAgICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIkF1eCBBeWf9dGxhcv0iCiAgICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgIk1peGVyIEF5Z/10bGFy/SIKICAgIElEU19VTkFWQUlMQUJMRV9EUklWRVIgICAgICAiU2lzdGVtIGtheWT9bmRhIGt1bGxhbv1sYWJpbGlyIG9sbWF5YW4gYmlyIHP8cvxj/CBidWx1bmR1IVxuXG5cIiVzXCIgZ2lyaf5pIHNpc3RlbSBrYXlk/W5kYW4gc2lsaW5zaW4gbWk/IgogICAgSURTX1dBUk5JTkcgICAgICAgICAgICAgICAgICJVeWFy/SIKRU5ECg==