LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogRmlubmlzaCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA1IEtpbW1vIE15bGx5dmlydGEKICogQ29weXJpZ2h0IDIwMDYgQW5zc2kgSGFubnVsYQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICoKICovCgojaW5jbHVkZSAiY29uZmlnLmgiICAgLyogTmVlZGVkIGZvciB0aGUgUEFDS0FHRV9TVFJJTkcgZGVmaW5pdGlvbiAqLwojaW5jbHVkZSAicmVzb3VyY2UuaCIKCkxBTkdVQUdFIExBTkdfRklOTklTSCwgU1VCTEFOR19ERUZBVUxUCgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyMjAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICIiLCBJRENfQUJUX1BBTkVMLCAiU1RBVElDIiwgU1NfT1dORVJEUkFXLCAwLCAwLCAyNjAsIDE0MAogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfTkFNRSxJRENfQUJUX1RJVExFX1RFWFQsMTA1LDMwLDU1LDMwCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9WRVJTSU9OLElEQ19BQlRfUEFORUxfVEVYVCwxNjAsNDMsMTQwLDgKICAgIENPTlRST0wgICAgICAgICAiIixJRENfQUJUX1dFQl9MSU5LLCJTeXNMaW5rIiwgTFdTX1RSQU5TUEFSRU5ULCAxMDUsNTMsMTA2LDgKICAgIExURVhUICAgICAgICAgICAiVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19BQlRfTElDRU5TRV9URVhULDEwNSw2NCwxNDUsNjAKICAgIEdST1VQQk9YICAgICAgICAiIFdpbmRvd3MgUmVnaXN0cmF0aW9uIEluZm9ybWF0aW9uICIsIElEQ19TVEFUSUMsIDE1LCAxNTUsIDIzMCwgNTUKICAgIExURVhUICAgICAgICAgICAiT21pc3RhamE6IiwgSURDX1NUQVRJQywgMjIsIDE3MSwgNDAsIDIwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0FCVF9PV05FUiwgNzUsIDE3MSwgMTYwLCAxMywgRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIk9yZ2FuaXNhYXRpbzoiLCBJRENfU1RBVElDLCAyMiwgMTg1LCA1MCwgMjAKICAgIEVESVRURVhUICAgICAgICBJRENfQUJUX09SRywgNzUsIDE4NSwgMTYwLCAxMywgRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0FQUENGRyBESUFMT0cgIDAsIDAsIDI2MCwgMjIwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgU292ZWxsdXN0ZW4gYXNldHVrc2V0ICIsSURDX1NUQVRJQywgOCw0LDI0NCwyMTAKICAgIExURVhUICAgICAgICAgICAiV2luZSB2b2kgauRsaml0ZWxs5CBXaW5kb3dzaW4gZXJpIHZlcnNpb2l0YSBlcmkgc292ZWxsdWtzaWxsZS4gVORt5CB25GxpbGVodGkgdG9pbWlpIHloZGVzc+QgS2lyamFzdG90LSBqYSBHcmFmaWlra2EtduRsaWxlaHRpZW4ga2Fuc3NhIHNhbGxpZW4gc292ZWxsdXNrb2h0YWlzZXQgYXNldHVrc2V0LiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiU292ZWxsdWtzZXQiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTIwCiAgICBQVVNIQlVUVE9OCSAgICAiJkxpc+TkIHNvdmVsbHVzLi4uIixJRENfQVBQX0FEREFQUCwgOTAsMTc0LDc1LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiJlBvaXN0YSBzb3ZlbGx1cyIsSURDX0FQUF9SRU1PVkVBUFAsIDE3MCwxNzQsNzUsMTQKICAgIExURVhUICAgICAgICAgICAiJldpbmRvd3NpbiB2ZXJzaW86IixJRENfU1RBVElDLDE3LDE5Niw1OCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywxOTQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HICAwLCAwLCAyNjAsIDIyMApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICIgSWtrdW5hLWFzZXR1a3NldCAiLElEQ19TVEFUSUMsOCw0LDI0NCw4NAogICAgQ09OVFJPTCAgICAgIkF1dG9tYXRpY2FsbHkgY2FwdHVyZSB0aGUgJm1vdXNlIGluIGZ1bGwtc2NyZWVuIHdpbmRvd3MiLElEQ19GVUxMU0NSRUVOX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMCwyMzAsOAogICAgQ09OVFJPTCAgICAgIkFsbG93IHRoZSB3aW5kb3cgbWFuYWdlciB0byAmZGVjb3JhdGUgdGhlIHdpbmRvd3MiLElEQ19FTkFCTEVfREVDT1JBVEVELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzIsMjMwLDgKICAgIENPTlRST0wgICAgICJTYWxsaSBpa2t1bmFvaGplbG1hbiBoYWxsaXRhIGlra3Vub2l0YSIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDQsMjMwLDgKICAgIENPTlRST0wgICAgICImRW11bG9pIHZpcnR1YWFsaXN0YSB09nlw9nl05OQiLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNTYsMjMwLDgKICAgIExURVhUICAgICAgICJUefZw9nlk5G4ga29rbzoiLElEQ19ERVNLVE9QX1NJWkUsMTUsNzAsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDEwOSw3MCw4LDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMTcsNjgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICIgRGlyZWN0M0QgIixJRENfU1RBVElDLDgsOTUsMjQ0LDQ5CiAgICBMVEVYVCAgICAgICAiVmVydGV4IFNoYWRlciAtdHVraTogIixJRENfU1RBVElDLDE1LDExMCw4MCwzMgogICAgQ09NQk9CT1ggICAgSURDX0QzRF9WU0hBREVSX01PREUsMTAwLDEwOCwxNDUsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAiU2FsbGkgJlBpeGVsIFNoYWRlcjpuIGvkeXR09iBsYWl0dGVpc3RvbiB0dWtpZXNzYSIsSURDX0QzRF9QU0hBREVSX01PREUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxMjYsMjMwLDEwCgogICAgR1JPVVBCT1ggICAgIiBTY3JlZW4gJlJlc29sdXRpb24gIixJRENfU1RBVElDLDgsMTUxLDI0NCw2MwogICAgQ09OVFJPTCAgICAgIiIsIElEQ19SRVNfVFJBQ0tCQVIsICJtc2N0bHNfdHJhY2tiYXIzMiIsV1NfVEFCU1RPUCwxMiwxNjEsMTg3LDE1CiAgICBFRElUVEVYVCAgICBJRENfUkVTX0RQSUVESVQsMjA0LDE2MSwyMywxMyxFU19OVU1CRVJ8V1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgImRwaSIsSURDX1NUQVRJQywyMzUsMTYzLDEwLDgKICAgIExURVhUICAgICAgICJUaGlzIGlzIGEgc2FtcGxlIHRleHQgdXNpbmcgMTAgcG9pbnQgVGFob21hIixJRENfUkVTX0ZPTlRfUFJFVklFVywxNSwxODEsMjMwLDI4CkVORAoKSUREX0RMTENGRyBESUFMT0cgIDAsIDAsIDI2MCwgMjIwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgRExMLWtpcmphc3RvamVuIG3k5HJpdHlrc2V0ICIsSURDX1NUQVRJQyw4LDQsMjQ0LDIxMAogICAgTFRFWFQgICAgICAgICAgICJEeW5hYW1pc2VzdGkgbGFkYXR0YXZhdCBraXJqYXN0b3QgKERMTCkgdm9pZGFhbiBt5ORyaXRlbGzkIHlrc2l0ZWxsZW4gb2xlbWFhbiBqb2tvIFdpbmVuIHRhcmpvYW1pYSAoc2lz5ORucmFrZW5uZXR0dWphKSB0YWkgV2luZG93c2luIG5hdGlpdmVqYSBraXJqYXN0b2phIChXaW5kb3dzLWFzZW5udWtzZXN0YSwgdGFpIHNvdmVsbHVzdGVuIHRhcmpvYW1pYSkuIgogICAgICAgICAgICAgICAgICAgICxJRENfU1RBVElDLDE2LDE2LDIyMCwzMgogICAgTFRFWFQgICAgICAgICAgICJVdXNpIG3k5HJpdHlzIGtpcmphc3RvbGxlOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiJkxpc+TkIixJRENfRExMU19BRERETEwsIDE2NCw2OCw4MiwxMwogICAgTFRFWFQgICAgICAgICAgICJPbGVtYXNzYW9sZXZhdCBt5ORyaXR5a3NldDoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxMTIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJk11b2trYWEiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZQb2lzdGEiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIDgwLCA5MCwgMTEwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRWRpdCBPdmVycmlkZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgTGF0YWFtaXNq5HJqZXN0eXMgIixJRENfU1RBVElDLDgsNCw5NCw2NgogICAgQ09OVFJPTCAgICAgICAgICImU2lz5GluZW4gKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2LDE0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZOYXRpaXZpIChXaW5kb3dzKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJTJmlz5GluZW4sIHNpdHRlbiBuYXRpaXZpIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiTmF0aWl2aSwgc2l0dGVuIHNpc+RpbmVuIixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNDQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiJlBvaXN0YSBr5Hl09nN05CIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsNzUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiSHl25GtzeSIsSURPSyw4LDc0LDQ1LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIlBlcnV1dGEiLElEQ0FOQ0VMLDU3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyAgMCwgMCwgMjYwLCAyMjAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBBc2VtaWVuIG1hcHBhdWtzZXQgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIkZhaWxlZCB0byBjb25uZWN0IHRvIHRoZSBtb3VudCBtYW5hZ2VyLCB0aGUgZHJpdmUgY29uZmlndXJhdGlvbiBjYW5ub3QgYmUgZWRpdGVkLiIsIElEQ19TVEFUSUNfTU9VTlRNR1JfRVJST1IsIDE1LDMwLDE5MCw3NgogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfRFJJVkVTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDE4LDIzMiw3NgogICAgUFVTSEJVVFRPTiAgICAgICImTGlz5OQuLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZQb2lzdGEiLElEQ19CVVRUT05fUkVNT1ZFLDU2LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZIYWUgYXV0b21hYXR0aXNlc3RpIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTc3LDk4LDY5LDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIiZQb2xrdToiLElEQ19TVEFUSUNfUEFUSCwxNSwxMjMsMjUsOQogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlNlbGFhLi4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKICAgIAogICAgTFRFWFQgICAgICAgICAgICImVHl5cHBpOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwyNSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgUFVTSEJVVFRPTiAgICAgICImTuR5dOQgbGlz5GFzZXR1a3NldCIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTc3LDEzNSw2OSwxMwogICAgTFRFWFQgICAgICAgICAgICJEZSZ2aWNlOiIsSURDX1NUQVRJQ19ERVZJQ0UsMTUsMTUzLDI2LDkKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsNDEsMTUwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlNlbGFhLi4uIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMjA2LDE1MCw0MCwxMwoKICAgIExURVhUICAgICAgICAgICAiJk5pbWk6IixJRENfU1RBVElDX0xBQkVMLDE1LDE2OCw0OSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDY1LDE2NSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJlNhcmphbnVtZXJvOiIsSURDX1NUQVRJQ19TRVJJQUwsMTUsMTgzLDQ5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDY1LDE4MCw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIk7keXTkIHAmaXN0ZXRpZWRvc3RvdCIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyMDUsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HICAwLCAwLCAyNjAsIDIyMApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEFqdXJpbiB2YWxpbnRhICIsSURDX1NUQVRJQyw4LDQsMjQ0LDE2MAogICAgTFRFWFQJICAgICLE5G5pYWp1cmk6ICIsSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiRGV2aWNlcyIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNTAsMTQwLDEwNQogICAgUFVTSEJVVFRPTiAgICAgICImVGVzdCBTb3VuZCIsSURDX0FVRElPX1RFU1QsMTcwLDUwLDU5LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiJkhhbGxpbnRhcGFuZWVsaSIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDcwLDc5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwxNjgsMjQ0LDQ3CiAgICBMVEVYVAkgICAgIkxhaXR0ZWlzdG9wb2hqYWluZW4ga2lpaGR5dHlzOiIsSURDX1NUQVRJQywxNSwxNzgsOTAsMTYKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwxNzgsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJPbGV0dXNu5Hl0ZXRhYWp1dXM6IixJRENfU1RBVElDLDE1LDE5Nyw3MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9SQVRFUyw4NiwxOTUsMzYsNzYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIk7keXR0ZWlkZW4gb2xldHVzYml0dGlt5ORy5DoiLElEQ19TVEFUSUMsMTI2LDE5Nyw5NCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIyMCwxOTUsMzAsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0RFU0tUT1BfSU5URUdSQVRJT04gRElBTE9HICAwLCAwLCAyNjAsIDIyMApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFVsa29u5Gv2ICIsSURDX1NUQVRJQyw4LDQsMjQ0LDEwNgogICAgTFRFWFQgICAgICAgICAgICJUZWVtYToiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIkFzZW5uYSAmdGVlbWEuLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwyMyw5MywxNAogICAgTFRFWFQgICAgICAgICAgICJW5HJpOiIsSURDX1RIRU1FX0NPTE9SVEVYVCwxNSw0MCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9DT0xPUkNPTUJPLDE1LDQ4LDExMiwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiS29rbzoiLElEQ19USEVNRV9TSVpFVEVYVCwxMzUsNDAsMTEwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfU0laRUNPTUJPLDEzNSw0OCwxMTAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkl0ZW06IixJRENfU1RBVElDLDE1LDY0LDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1NZU1BBUkFNX0NPTUJPLDE1LDc0LDExMiwxMjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQKICAgIExURVhUICAgICAgICAgICAiQ29sb3I6IixJRENfU1lTUEFSQU1fQ09MT1JfVEVYVCwxMzUsNjQsMjUsOCxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICIiLElEQ19TWVNQQVJBTV9DT0xPUiwxMzUsNzQsMjUsMTMsV1NfRElTQUJMRUQgfCBCU19PV05FUkRSQVcKICAgIExURVhUICAgICAgICAgICAiU2l6ZToiLElEQ19TWVNQQVJBTV9TSVpFX1RFWFQsMTY2LDY0LDMwLDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfU1lTUEFSQU1fU0laRSwxNjYsNzQsMjMsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAiIixJRENfU1lTUEFSQU1fU0laRV9VRCxVUERPV05fQ0xBU1MsVURTX1NFVEJVRERZSU5UIHwgV1NfRElTQUJMRUQsMTg3LDc0LDE1LDEzCiAgICBQVVNIQlVUVE9OICAgICAgIkZvbnQiLElEQ19TWVNQQVJBTV9GT05ULDIwOCw3NCwzNywxMyxXU19ESVNBQkxFRAogICAgR1JPVVBCT1ggICAgICAgICIgU2hlbGwgRm9sZGVyICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIkxpbmsgdG86IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDUwLDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw2NSwxOTUsMTQ1LDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiQnJvd3NlIixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAo=