LyogSGV5LCBFbWFjcywgb3BlbiB0aGlzIGZpbGUgd2l0aCAtKi0gY29kaW5nOiBjcDEyNTAgLSotCiAqCiAqIFdpbmVDZmcgcmVzb3VyY2VzCiAqIEN6ZWNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDIgSmFjbyBHcmVlZmYKICogQ29weXJpZ2h0IDIwMDMgRGltaXRyaWUgTy4gUGF1bgogKiBDb3B5cmlnaHQgMjAwMy0yMDA0IE1pa2UgSGVhcm4KICogQ29weXJpZ2h0IDIwMDQgRGF2aWQgS3JlZGJhCiAqIENvcHlyaWdodCAyMDA3IFZpdCBIcmFjaG92eQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICoKICovCgojaW5jbHVkZSAiY29uZmlnLmgiICAgLyogTmVlZGVkIGZvciB0aGUgUEFDS0FHRV9TVFJJTkcgZGVmaW5pdGlvbiAqLwojaW5jbHVkZSAicmVzb3VyY2UuaCIKCi8qIEN6ZWNoIHN0cmluZ3MgaW4gQ1AxMjUwICovCkxBTkdVQUdFIExBTkdfQ1pFQ0gsIFNVQkxBTkdfREVGQVVMVAoKSURSX1dJTkVDRkcgTUVOVQpCRUdJTgogICAgUE9QVVAgIiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlVwcmF2aXQiLCBJRENfQVVESU9fQ09ORklHVVJFCiAgICBFTkQKRU5ECgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyMjAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICIiLCBJRENfQUJUX1BBTkVMLCAiU1RBVElDIiwgU1NfT1dORVJEUkFXLCAwLCAwLCAyNjAsIDE0MAogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfTkFNRSxJRENfQUJUX1RJVExFX1RFWFQsMTA1LDMwLDU1LDMwCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9WRVJTSU9OLElEQ19BQlRfUEFORUxfVEVYVCwxNjAsNDMsMTQwLDgKICAgIENPTlRST0wgICAgICAgICAiIixJRENfQUJUX1dFQl9MSU5LLCJTeXNMaW5rIiwgTFdTX1RSQU5TUEFSRU5ULCAxMDUsNTMsMTA2LDgKICAgIExURVhUICAgICAgICAgICAiVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19BQlRfTElDRU5TRV9URVhULDEwNSw2NCwxNDUsNjAKICAgIEdST1VQQk9YICAgICAgICAiIFdpbmRvd3MgUmVnaXN0cmF0aW9uIEluZm9ybWF0aW9uICIsIElEQ19TVEFUSUMsIDE1LCAxNTUsIDIzMCwgNTUKICAgIExURVhUICAgICAgICAgICAiT3duZXI6IiwgSURDX1NUQVRJQywgMjIsIDE3MSwgNDAsIDIwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0FCVF9PV05FUiwgNzUsIDE3MSwgMTYwLCAxMywgRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIk9yZ2FuaXphdGlvbjoiLCBJRENfU1RBVElDLCAyMiwgMTg1LCA1MCwgMjAKICAgIEVESVRURVhUICAgICAgICBJRENfQUJUX09SRywgNzUsIDE4NSwgMTYwLCAxMywgRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0FQUENGRyBESUFMT0cgIDAsIDAsIDI2MCwgMjIwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJOYXN0YXZlbu0gYXBsaWthY+0iLElEQ19TVEFUSUMsIDgsNCwyNDQsMjEwCiAgICBMVEVYVCAgICAgICAgICAgIldpbmUgdW3tIHD4ZWRzdO1yYXQgcvl6bukgdmVyemUgV2luZG93cyBwcm8ga2GeZG91IGplZG51IGFwcGxpa2FjaS4gVGF0byB64WxvnmthIGplIHNwb2plbuEgc2Ugc2xvnmthbWkgS25paG92bnkgYSBPYnJheiBhIHVtb57ydWplIHpt7G5pdCBuYXN0YXZlbu0gY2Vs6WhvIHN5c3TpbXUgbmVibyBuYXN0YXZlbu0ga2GeZOkgYXBsaWthY2UgenZs4ZqdLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzUKICAgIENPTlRST0wgICAgICAgICAiQXBsaWthY2UiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1NSwyMzAsMTE1CiAgICBQVVNIQlVUVE9OCSAgICAiUPhpZCZhdCBhcGxpa2FjaS4uLiIsSURDX0FQUF9BRERBUFAsIDkwLDE3NCw3NSwxNAogICAgUFVTSEJVVFRPTgkgICAgIk9kZWImcmF0IGFwbGlrYWNpIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDE3NCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICJWZXJ6ZSAmV2luZG93czoiLElEQ19TVEFUSUMsMTcsMTk2LDU4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDE5NCwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyAgMCwgMCwgMjYwLCAyMjAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAiIE5hc3RhdmVu7SBva2VuICIsSURDX1NUQVRJQyw4LDQsMjQ0LDg0CiAgICBDT05UUk9MICAgICAiUG92b2xpdCBhcGxpa2Fj7W0gRGlyZWN0WCB6YWRynmV0IHVrYXphdGVsIG15mmkgdmUgc3bpbSBva27sIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIwLDIzMCw4CiAgICBDT05UUk9MICAgICAiQWxsb3cgdGhlIHdpbmRvdyBtYW5hZ2VyIHRvICZkZWNvcmF0ZSB0aGUgd2luZG93cyIsSURDX0VOQUJMRV9ERUNPUkFURUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzMiwyMzAsOAogICAgQ09OVFJPTCAgICAgIlBvdm9saXQgc3By4XZjaSBva2VuIGtvbnRyb2x1IG5hZCBva255IixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NCwyMzAsOAogICAgQ09OVFJPTCAgICAgIkVtdWxhY2UgdmlydHXhbG7taG8gZGVza3RvcHUiLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNTYsMjMwLDgKICAgIExURVhUICAgICAgICJWZWxpa29zdCBkZXNrdG9wdToiLElEQ19ERVNLVE9QX1NJWkUsMTUsNzAsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDEwOSw3MCw4LDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMTcsNjgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICIgRGlyZWN0M0QgIixJRENfU1RBVElDLDgsOTUsMjQ0LDQ5CiAgICBMVEVYVCAgICAgICAiUG9kcG9yYSBzdO1ub3bhbu0gdmVydGV4+TogIixJRENfU1RBVElDLDE1LDExMCw4MCwzMgogICAgQ09NQk9CT1ggICAgSURDX0QzRF9WU0hBREVSX01PREUsMTAwLDEwOCwxNDUsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAiUG92b2xpdCBzdO1ub3bhbu0gcGl4ZWz5IChzcG9s6WjhIHNlIG5hIGhhcmR3YXJlIHBvZHBvcnUpIixJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEyNiwyMzAsMTAKCiAgICBHUk9VUEJPWCAgICAiIFNjcmVlbiAmUmVzb2x1dGlvbiAiLElEQ19TVEFUSUMsOCwxNTEsMjQ0LDYzCiAgICBDT05UUk9MICAgICAiIiwgSURDX1JFU19UUkFDS0JBUiwgIm1zY3Rsc190cmFja2JhcjMyIixXU19UQUJTVE9QLDEyLDE2MSwxODcsMTUKICAgIEVESVRURVhUICAgIElEQ19SRVNfRFBJRURJVCwyMDQsMTYxLDIzLDEzLEVTX05VTUJFUnxXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAiZHBpIixJRENfU1RBVElDLDIzNSwxNjMsMTAsOAogICAgTFRFWFQgICAgICAgIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCB1c2luZyAxMCBwb2ludCBUYWhvbWEiLElEQ19SRVNfRk9OVF9QUkVWSUVXLDE1LDE4MSwyMzAsMjgKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyAgMCwgMCwgMjYwLCAyMjAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIk7haHJhZHkgRExMIixJRENfU1RBVElDLDgsNCwyNDQsMjEwCiAgICBMVEVYVCAgICAgICAgICAgIk35nmV0ZSB2eWJyYXQgemRhIGJ1ZG91IHBvdZ5pdHkgZHluYW1pY2t5IGxpbmtvdmFu6SBrbmlob3ZueSB2ZXN0YXbsbukgdmUgV2luZSBuZWJvIG5hdGl2bu0gKHZ6YXTpIHogV2luZG93cyBuZWJvIHBvc2t5dG51dOkgYXBsaWthY+0pLiIKICAgICAgICAgICAgICAgICAgICAsSURDX1NUQVRJQywxNiwxNiwyMjAsMzIKICAgIExURVhUICAgICAgICAgICAiTm924SBu4WhyYWRhIHBybyBETEw6IixJRENfU1RBVElDLDE2LDU4LDEwMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICJQ+GlkJmF0IixJRENfRExMU19BRERETEwsIDE2NCw2OCw4MiwxMwogICAgTFRFWFQgICAgICAgICAgICJTdOF2YWrtY+0gbuFocmFkeToiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxMTIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJlVwcmF2aXQiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIk9kZWImcmF0IERMTCBu4WhyYWR1IixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIDgwLCAxMTAsIDEyMCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVkaXQgT3ZlcnJpZGUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFBv+GFk7SBuYWhyYXbhbu0gIixJRENfU1RBVElDLDgsNCwxMDUsNjYKICAgIENPTlRST0wgICAgICAgICAiJlZlc3Rhduxu4SAoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYsMTQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiJk5hdGl2bu0gKFdpbmRvd3MpIixJRENfUkFEX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZWZXN0YXbsbuEgKFdpbmUpIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiTmF0aSZ2bu0gYSBwYWsgdmVzdGF27G7hIixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNDQsOTAsMTAKICAgIENPTlRST0wgICAgICAgICAiJlpha+F6YXQiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDc1LDEwCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDgsNzQsNDUsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiU3Rvcm5vIixJRENBTkNFTCw1Nyw3NCw0NSwxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgIDAsIDAsIDI2MCwgMjIwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgTWFwb3bhbu0gZGlza/kgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIkZhaWxlZCB0byBjb25uZWN0IHRvIHRoZSBtb3VudCBtYW5hZ2VyLCB0aGUgZHJpdmUgY29uZmlndXJhdGlvbiBjYW5ub3QgYmUgZWRpdGVkLiIsIElEQ19TVEFUSUNfTU9VTlRNR1JfRVJST1IsIDE1LDMwLDE5MCw3NgogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfRFJJVkVTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDE4LDIzMiw3NgogICAgUFVTSEJVVFRPTiAgICAgICJQ+GlkJmF0Li4uIixJRENfQlVUVE9OX0FERCwxNSw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJPZGViJnJhdCIsSURDX0JVVFRPTl9SRU1PVkUsNTYsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXV0byZkZXRla2NlLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk3LDk4LDQ5LDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIiZDZXN0YToiLElEQ19TVEFUSUNfUEFUSCwxNSwxMjMsMjAsOQogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlByb2No4XpldC4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwyMDYsMTIwLDQwLDEzCgogICAgTFRFWFQgICAgICAgICAgICImVHlwOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBQVVNIQlVUVE9OICAgICAgIiZVa2GeIHJveprt+GVu6SB2b2xieSIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTU1LDEzNSw5MSwxMwogICAgTFRFWFQgICAgICAgICAgICJEZSZ2aWNlOiIsSURDX1NUQVRJQ19ERVZJQ0UsMTUsMTUzLDI2LDkKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsNDEsMTUwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiUHJvY2jhJnpldC4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDIwNiwxNTAsNDAsMTMKCiAgICBMVEVYVCAgICAgICAgICAgIlAmb3Bpc2VrOiIsSURDX1NUQVRJQ19MQUJFTCwxNSwxNjgsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2NSwxNjUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZT6XJpb3bpIOjtc2xvOiIsSURDX1NUQVRJQ19TRVJJQUwsMTUsMTgzLDQ5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDY1LDE4MCw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIlpvYnJheml0IHNvdWJvcnkgcyB0Zehrb3UgbmEgemHo4XRrdSBu4Xp2dSIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyMDUsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HICAwLCAwLCAyNjAsIDIyMApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIE92bGFkYeggenZ1a2926SBrYXJ0eSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxNjAKICAgIExURVhUICAgICAgICAgICAiVnliZXJ0ZSBvdmxhZGHoIHp2dWtvdukga2FydHkgemGaa3J0bnV07W0gcG9s7ehrYSB1IHD47XNsdZpu6WhvIG92bGFkYehlLiBLZHmeIG5lemGaa3J0bmV0ZSBhbmkgamVkZW4gb3ZsYWRh6CwgenZ1ayBzZSB2eXBuZS4gVnlicmF0IHbtY2UgamFrIGplZGVuIG92bGFkYeggc2UgbmVkb3BvcnXodWplLiBEZXRhaWxu7SB2bGFzdG5vc3RpIG92bGFkYehlIG35nmV0ZSB1cHJhdml0IHByYXb9bSBrbGlrbnV07W0gbmEgenZvbGVu/SBvdmxhZGHoLiIsSURDX1NUQVRJQywxNSwyMCwyMjcsNTAKICAgIENPTlRST0wgICAgICAgICAiWmH47Xplbu0iLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDY1LDE0MCw5MgogICAgUFVTSEJVVFRPTiAgICAgICImVGVzdCBTb3VuZCIsSURDX0FVRElPX1RFU1QsMTcwLDY1LDU5LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiT3Zs4WRhY+0gcGFuZWwiLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE3MCw4NSw1OSwxNAogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0U291bmQgIixJRENfU1RBVElDLDgsMTcwLDI0NCw0NQogICAgTFRFWFQgICAgICAgICAgICJIYXJkd2Fyb3bhIGFrY2VsZXJhY2U6ICIsSURDX1NUQVRJQywxNSwxODAsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwxNzgsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJWem9ya292YWPtIGZyZWt2ZW5jZToiLElEQ19TVEFUSUMsMTUsMTk3LDcwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDkwLDE5NSw0Miw3NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiUG/oZXQgYml0+SBuYSB2em9yZWs6IixJRENfU1RBVElDLDEzNywxOTcsODAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfQklUUywyMjAsMTk1LDMwLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUApFTkQKCklERF9ERVNLVE9QX0lOVEVHUkFUSU9OIERJQUxPRyAgMCwgMCwgMjYwLCAyMjAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBWemhsZWQgIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBMVEVYVCAgICAgICAgICAgIlTpbWE6IixJRENfU1RBVElDLDE1LDE2LDEzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1RIRU1FQ09NQk8sMTUsMjQsMTMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJJbnN0YWxvdmF0IHTpbWEuLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwyMyw5MywxNAogICAgTFRFWFQgICAgICAgICAgICJCYXJ2YToiLElEQ19USEVNRV9DT0xPUlRFWFQsMTUsNDAsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfQ09MT1JDT01CTywxNSw0OCwxMTIsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlZlbGlrb3N0IixJRENfVEhFTUVfU0laRVRFWFQsMTM1LDQwLDExMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxMzUsNDgsMTEwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJQb2xvnmthOiIsSURDX1NUQVRJQywxNSw2NCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19TWVNQQVJBTV9DT01CTywxNSw3NCwxMTIsMTIwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUCiAgICBMVEVYVCAgICAgICAgICAgIkJhcnZhOiIsSURDX1NZU1BBUkFNX0NPTE9SX1RFWFQsMTM1LDY0LDI1LDgsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiIixJRENfU1lTUEFSQU1fQ09MT1IsMTM1LDc0LDI1LDEzLFdTX0RJU0FCTEVEIHwgQlNfT1dORVJEUkFXCiAgICBMVEVYVCAgICAgICAgICAgIlZlbGlrb3N0OiIsSURDX1NZU1BBUkFNX1NJWkVfVEVYVCwxNjYsNjQsMzAsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19TWVNQQVJBTV9TSVpFLDE2Niw3NCwyMywxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICIiLElEQ19TWVNQQVJBTV9TSVpFX1VELFVQRE9XTl9DTEFTUyxVRFNfU0VUQlVERFlJTlQgfCBXU19ESVNBQkxFRCwxODcsNzQsMTUsMTMKICAgIFBVU0hCVVRUT04gICAgICAiUO1zbW8iLElEQ19TWVNQQVJBTV9GT05ULDIwOCw3NCwzNywxMyxXU19ESVNBQkxFRAogICAgR1JPVVBCT1ggICAgICAgICIgRG9t4WPtIGFkcmVz4fhlICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIk9ka2F6IG5hOiIsSURDX0xJTktfU0ZQQVRILCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QfFdTX0RJU0FCTEVELDE1LDE5NSw1MCwxMwogICAgRURJVFRFWFQgICAgICAgICBJRENfRURJVF9TRlBBVEgsNjUsMTk1LDE0NSwxMyxFU19BVVRPSFNDUk9MTHxXU19UQUJTVE9QfFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIlByb2No4XpldCIsSURDX0JST1dTRV9TRlBBVEgsMjE1LDE5NSwzMCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFCkJFR0lOCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiUHJvZ3JhbXkiCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAiS25paG92bnkiCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiRGlza3kiCiAgICBJRFNfQ0hPT1NFX1BBVEggICAgICAgICAiVnliZXJ0ZSBwcm9z7W0gdW5peG92/SBj7Wxvdv0gYWRyZXPh+C4iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAiU2Nob3ZhdCByb3qa7fhlbukgbW+ebm9zdGkiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiWm9icmF6aXQgcm96mu34ZW7pIG1vnm5vc3RpIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIihCZXogdOltYXR1KSIKICAgIElEU19UQUJfR1JBUEhJQ1MgICAgICAgICJPYnJheiIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAiWmHobGVu7G7tIGRvIHByYWNvdm7tIHBsb2NoeSIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICJadnVrIgogICAgSURTX1RBQl9BQk9VVCAgICAgICAgICAgIk8gcHJvZ3JhbXUiCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAiS29uZmlndXJhY2UgV2luZSIKICAgIElEU19XSU5FQ0ZHX1RJVExFX0FQUCAgICLacHJhdmEgV2luZSBwcm8gJXMiCiAgICBJRFNfVEhFTUVGSUxFICAgICAgICAgICAiU291Ym9yeSBzIHTpbWF0eSB2emhsZWR1ICgqLm1zc3R5bGVzOyAqLnRoZW1lKSIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICJadm9sdGUgc291Ym9yIHMgdOltYXRlbSB2emhsZWR1IgogICAgSURTX0FVRElPX01JU1NJTkcgICAgICAgIlYgcmVnaXN0cmVjaCBjaHli7SB64XpuYW0gbyB2eWJyYW7pbSB6dnVrb3bpbSBvdmxhZGHoaS5cblxuQXV0b21hdGlja3kgYnlsIHp2b2xlbiBkb3BvcnXoZW79IG92bGFkYeguXG5N+Z5ldGUgcG91nu10IHRlbnRvIG92bGFkYeggbmVibyBzaSB6IG9zdGF0bu1jaCBkb3N0dXBu/WNoIHZ5YnJhdCBqaW79LlxuXG5Eb2t1ZCBuZWtsaWtuZXRlIG5hIHRsYejtdGtvIFByb3bpc3QsIG5lYnVkZSB2eWJyYW79IG92bGFkYeggcG91nml0LiIKICAgIElEU19TSEVMTF9GT0xERVIgICAgICAgICJEb23hY+0gYWRyZXPh+GUiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiT2RrYXogbmEiCkVORAoKU1RSSU5HVEFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICJOZWRvcG9ydeh1amUgc2UgbexuaXQgcG/4YWTtIG5haHLhduFu7SB06XRvIGtuaWhvdm55LlxuVXLoaXTsIHRvIGNoY2V0ZSB1ZOxsYXQ/IgogICAgSURTX0RMTF9XQVJOSU5HX0NBUFRJT04gIlZhcm924W7tOiBzeXN06W1vduEga25paG92bmEiCiAgICBJRFNfRExMX05BVElWRSAgICAgICAgICAibmF0aXZu7SIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICJ2ZXN0YXbsbuEiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAibmF0aXZu7SwgdmVzdGF27G7hIgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgInZlc3Rhduxu4SwgbmF0aXZu7SIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICJ6YWvhemF0IgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgIlN0YW5kYXJkbu0gbmFzdGF2ZW7tIgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgIlByb2dyYW15IFdpbmUgKCouZXhlLCouZXhlLnNvKVwwKi5leGU7Ki5leGUuc29cMCIKICAgIElEU19VU0VfR0xPQkFMX1NFVFRJTkdTICJQb3We7XQgdpplb2JlY27hIG5hc3RhdmVu7SIKICAgIElEU19TRUxFQ1RfRVhFQ1VUQUJMRSAgICJadm9sdGUgc3B1c3RpdGVsbv0gc291Ym9yIgpFTkQKClNUUklOR1RBQkxFCkJFR0lOCiAgICBJRFNfU0hBREVSX01PREVfSEFSRFdBUkUgICAgIkhhcmR3YXJvdv0iCiAgICBJRFNfU0hBREVSX01PREVfTk9ORSAgICAgICAgIo7hZG79IgpFTkQKClNUUklOR1RBQkxFCkJFR0lOCiAgICBJRFNfRFJJVkVfVU5LTk9XTiAgICAgICAgICAgIkF1dG9kZXRla2NlIgogICAgSURTX0RSSVZFX0ZJWEVEICAgICAgICAgICAgICJN7XN0bu0gcGV2bv0gZGlzayIKICAgIElEU19EUklWRV9SRU1PVEUgICAgICAgICAgICAiU+2db3b9IGRpc2siCiAgICBJRFNfRFJJVkVfUkVNT1ZBQkxFICAgICAgICAgIkRpc2tldGEiCiAgICBJRFNfRFJJVkVfQ0RST00gICAgICAgICAgICAgIkNELVJPTSIKICAgIElEU19EUklWRV9MRVRURVJTX0VYQ0VFREVEICAiRGFsmu0gZGlzayBqaZ4gbmVu7SBtb55ubyBw+GlkYXQuXG5cbkthnmT9IGRpc2sgbXVz7SBt7XQgcPhp+GF6ZW5vIHDtc21lbm8gb2QgQSBkbyBaLCB0YWueZSBuZWx6ZSBt7XQgdu1jZSBuZZ4gMjYgZGlza/kiCiAgICBJRFNfU1lTVEVNX0RSSVZFX0xBQkVMICAgICAgIlN5c3TpbW92/SBkaXNrIgogICAgSURTX0NPTkZJUk1fREVMRVRFX0MgICAgICAgICJVcuhpdOwgY2hjZXRlIHNtYXphdCBkaXNrIEM/XG5cblbsdJppbmEgYXBsaWthY+0gdmUgV2luZG93cyDoZWvhLCCeZSBkaXNrIEMgZXhpc3R1amUgYSB07J5jZSB6a29sYWJ1amUgdiBw+O1wYWTsLCCeZSB0b211IHRhayBuZW7tLiBQb2t1ZCBzbWGeZXRlIGRpc2sgQywgbmV6YXBvbWXydGUgamVqIHpub3Z1IHZ5dHZv+Gl0ISIKICAgIElEU19DT0xfRFJJVkVMRVRURVIgICAgICAgICAiUO1zbWVubyIKICAgIElEU19DT0xfRFJJVkVNQVBQSU5HICAgICAgICAiUPjtcG9qbv0gYm9kIgogICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICJWYXJvduFu7TogVnlwYWThIHRvLCCeZSBkaXNrIEMgbmVu7SBkZWZpbm924W4uXG5cbktsaWtu7HRlIG5hIJFQ+GlkYXQuLi6SIHYgeuFsb55jZSBEaXNreSBhIHZ5dHZv+HRlIGhvIVxuIgpFTkQKClNUUklOR1RBQkxFCkJFR0lOCiAgICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIlBsbuEiCiAgICBJRFNfQUNDRUxfU1RBTkRBUkQgICAgICAgICAgIlN0YW5kYXJkbu0iCiAgICBJRFNfQUNDRUxfQkFTSUMgICAgICAgICAgICAgIlrha2xhZG7tIgogICAgSURTX0FDQ0VMX0VNVUxBVElPTiAgICAgICAgICJFbXVsYWNlIgogICAgSURTX0RSSVZFUl9BTFNBICAgICAgICAgICAgICJPdmxhZGHoIEFMU0EiCiAgICBJRFNfRFJJVkVSX0VTT1VORCAgICAgICAgICAgIk92bGFkYeggRXNvdW5EIgogICAgSURTX0RSSVZFUl9PU1MgICAgICAgICAgICAgICJPdmxhZGHoIE9TUyIKICAgIElEU19EUklWRVJfSkFDSyAgICAgICAgICAgICAiT3ZsYWRh6CBKQUNLIgogICAgSURTX0RSSVZFUl9OQVMgICAgICAgICAgICAgICJPdmxhZGHoIE5BUyIKICAgIElEU19EUklWRVJfQ09SRUFVRElPICAgICAgICAiT3ZsYWRh6CBDb3JlQXVkaW8iCiAgICBJRFNfT1BFTl9EUklWRVJfRVJST1IgICAgICAgIk5lbW9odSBvdGV2+O10ICVzISIKICAgIElEU19TT1VORERSSVZFUlMgICAgICAgICAgICAiT3ZsYWRh6GUgenZ1a3UiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgIlph+O16ZW7tIFdhdmUgVv1zdHVwIgogICAgSURTX0RFVklDRVNfV0FWRUlOICAgICAgICAgICJaYfjtemVu7SBXYXZlIFZzdHVwIgogICAgSURTX0RFVklDRVNfTUlESU9VVCAgICAgICAgICJaYfjtemVu7SBNSURJIFb9c3R1cCIKICAgIElEU19ERVZJQ0VTX01JRElJTiAgICAgICAgICAiWmH47Xplbu0gTUlESSBWc3R1cCIKICAgIElEU19ERVZJQ0VTX0FVWCAgICAgICAgICAgICAiWmH47Xplbu0gQXV4IgogICAgSURTX0RFVklDRVNfTUlYRVIgICAgICAgICAgICJaYfjtemVu7SBN7WNo4W7tIgogICAgSURTX1VOQVZBSUxBQkxFX0RSSVZFUiAgICAgICJWIHJlZ2lzdHJ1IGJ5bCBuYWxlemVuIG92bGFkYegsIGt0ZXL9IG5lbu0gayBkaXNwb3ppY2khXG5cbk9kc3RyYW5pdCCTJXOUIHogcmVnaXN0cnU/IgogICAgSURTX1dBUk5JTkcgICAgICAgICAgICAgICAgICJWYXJvduFu7SIKRU5ECgovKiB0ZXh0IC0gZm9udCBvciBzdHJpbmcgPyAqLwpTVFJJTkdUQUJMRQpCRUdJTgogICAgSURDX1NZU1BBUkFNU19CVVRUT04gICAgICAgICAgICAiUG96YWTtIG92bOFkYWPtY2ggcHJ2a/kiCiAgICBJRENfU1lTUEFSQU1TX0JVVFRPTl9URVhUICAgICAgICJQ7XNtbyBvdmzhZGFj7WNoIHBydmv5IgogICAgSURDX1NZU1BBUkFNU19ERVNLVE9QICAgICAgICAgICAiUGxvY2hhIgogICAgSURDX1NZU1BBUkFNU19NRU5VICAgICAgICAgICAgICAiUG96YWTtIG1lbnUiCiAgICBJRENfU1lTUEFSQU1TX01FTlVfVEVYVCAgICAgICAgICJQ7XNtbyBtZW51IgogICAgSURDX1NZU1BBUkFNU19TQ1JPTExCQVIgICAgICAgICAiUm9sb3ZhY+0gcHJ1aCIKICAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OICAgICAgICAgIlBvemFk7SB2/WLscnUiCiAgICBJRENfU1lTUEFSQU1TX1NFTEVDVElPTl9URVhUICAgICJQ7XNtbyB2/WLscnUiCiAgICBJRENfU1lTUEFSQU1TX1RPT0xUSVAgICAgICAgICAgICJQb3phZO0gdGlwdSIKICAgIElEQ19TWVNQQVJBTVNfVE9PTFRJUF9URVhUICAgICAgIlDtc21vIHRpcHUiCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPVyAgICAgICAgICAgICJQb3phZO0gb2tuYSIKICAgIElEQ19TWVNQQVJBTVNfV0lORE9XX1RFWFQgICAgICAgIlDtc21vIG9rbmEiCiAgICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRSAgICAgICJQb3phZO0gdGl0dWxrdSBha3Rpdm7taG8gb2tuYSIKICAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFX1RFWFQgIlDtc21vIHRpdHVsa3UgYWt0aXZu7WhvIG9rbmEiCiAgICBJRENfU1lTUEFSQU1TX0lOQUNUSVZFX1RJVExFICAgICJQb3phZO0gdGl0dWxrdSBuZWFrdGl2bulobyBva25hIgogICAgSURDX1NZU1BBUkFNU19JTkFDVElWRV9USVRMRV9URVhUICJQ7XNtbyB0aXR1bGt1IG5lYWt0aXZu7WhvIG9rbmEiCkVORAo=