LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogSXRhbGlhbiBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA0IEl2YW4gTGVvIFBpb3RpCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfSVRBTElBTiwgU1VCTEFOR19ORVVUUkFMCgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJWZXJzaW9uZSBkaSBXaW5lOiIsSURDX1NUQVRJQywxMTksMTcsNTUsOAogICAgTFRFWFQgICAgICAgICAgICJDVlMiLElEQ19XSU5FVkVSLDE3OSwxNyw1Niw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgfCBTU19DRU5URVJJTUFHRSB8IAogICAgICAgICAgICAgICAgICAgIFNTX1JFQUxTSVpFSU1BR0UgfCBXU19CT1JERVIsMTUsMTcsMTU3LDExMSwgV1NfRVhfVFJBTlNQQVJFTlQKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKICAgIEdST1VQQk9YICAgICAgICAiSW5mb3JtYXppb25pIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBDVEVYVCAgICAgICAgICAgIlRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIkltcG9zdGF6aW9uaSBkZWxsZSBhcHBsaWNhemlvbmkiLElEQ19TVEFUSUMsIDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIldpbmUgcHXyIHNpbXVsYXJlIGRpdmVyc2UgdmVyc2lvbmkgZSBzdGlsaSBkaSBXaW5kb3dzIHBlciBsZSBhcHBsaWNhemlvbmkgcGVyIFdpbmRvd3MiLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMjAsMjI3LDIwCiAgICBDT05UUk9MICAgICAgICAgIkFwcGxpY2F6aW9uaSIsSURDX0FQUF9UUkVFVklFVywiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFRWU19MSU5FU0FUUk9PVCB8IFRWU19IQVNMSU5FUyB8IFRWU19TSE9XU0VMQUxXQVlTIHwgVFZTX0hBU0JVVFRPTlMsIDE1LDQwLDE0MiwxNDUKICAgIFBVU0hCVVRUT04JICAgICJBZ2dpdW5naSBhcHBsaWNhemlvbmUuLi4iLElEQ19BUFBfQUREQVBQLCAxNjMsNDAsODIsNjAKICAgIFBVU0hCVVRUT04JICAgICJSaW11b3ZpIGFwcGxpY2F6aW9uZSIsSURDX0FQUF9SRU1PVkVBUFAsIDE2MywxMjUsODIsNjAKICAgIExURVhUICAgICAgICAgICAiVmVyc2lvbmUgZGkgV2luZG93czoiLElEQ19TVEFUSUMsMTcsMTkyLDU4LDgKICAgIExURVhUICAgICAgICAgICAiVmVyc2lvbiBkZWwgRE9TOiIsSURDX1NUQVRJQywxNywyMTEsNTcsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsODMsMTkwLDE1OCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTUJPQk9YICAgICAgICBJRENfRE9TVkVSLDgzLDIwOCwxNTgsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAiIEltcG9zdGF6aW9uaSBkZWxsYSBmaW5lc3RyYSAiLElEQ19TVEFUSUMsOCw0LDI0NCw4NAogICAgQ09OVFJPTCAgICAgIkRpcmVjdFggcHXyIGltcGVkaXJhIGFsIG1vdXNlIGRpIGxhc2NpYXJlIGxhIGxvcm8gZmluZXN0cmE/IixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIwLDIzMCw4CiAgICBDT05UUk9MICAgICAiQWxsb3cgdGhlIHdpbmRvdyBtYW5hZ2VyIHRvICZkZWNvcmF0ZSB0aGUgd2luZG93cyIsSURDX0VOQUJMRV9ERUNPUkFURUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzMiwyMzAsOAogICAgQ09OVFJPTCAgICAgIkFsbG93IHRoZSAmd2luZG93IG1hbmFnZXIgdG8gY29udHJvbCB0aGUgd2luZG93cyIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDQsMjMwLDgKICAgIENPTlRST0wgICAgICJFbXVsYSB1biBkZXNrdG9wIHZpcnR1YWxlIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDU2LDIzMCw4CiAgICBMVEVYVCAgICAgICAiRGltZW5zaW9uZSBkZWwgRGVrdG9wOiIsSURDX0RFU0tUT1BfU0laRSwxNSw3MCw0NCw4LFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTA5LDcwLDgsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgSURDX0RFU0tUT1BfV0lEVEgsNjQsNjgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNyw2OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgogICAgR1JPVVBCT1ggICAgIiBEaXJlY3QzRCAiLElEQ19TVEFUSUMsOCw5NSwyNDQsNDkKICAgIExURVhUICAgICAgICImVmVydGV4IFNoYWRlciBTdXBwb3J0OiAiLElEQ19TVEFUSUMsMTUsMTEwLDgwLDMyCiAgICBDT01CT0JPWCAgICBJRENfRDNEX1ZTSEFERVJfTU9ERSwxMDAsMTA4LDE0NSw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICJBbGxvdyAmUGl4ZWwgU2hhZGVyIChpZiBzdXBwb3J0ZWQgYnkgaGFyZHdhcmUpIixJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEyNiwyMzAsMTAKCiAgICBHUk9VUEJPWCAgICAiIFNjcmVlbiAmUmVzb2x1dGlvbiAiLElEQ19TVEFUSUMsOCwxNTEsMjQ0LDkzCiAgICBDT05UUk9MICAgICAiIiwgSURDX1JFU19UUkFDS0JBUiwgIm1zY3Rsc190cmFja2JhcjMyIixXU19UQUJTVE9QLDEyLDE2MSwxODcsMTUKICAgIEVESVRURVhUICAgIElEQ19SRVNfRFBJRURJVCwyMDQsMTYxLDIzLDEzLEVTX05VTUJFUnxXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAiZHBpIixJRENfU1RBVElDLDIzNSwxNjMsMTAsOAogICAgTFRFWFQgICAgICAgIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCB1c2luZyAxMCBwb2ludCBUYWhvbWEiLElEQ19SRVNfRk9OVF9QUkVWSUVXLDE1LDE4MSwyMzAsNTUKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIkRMTCBPdmVycmlkZXMiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiU2kgcHXyIHNwZWNpZmljYXJlIHBlciBvZ25pIGxpYnJlcmlhIHNlIGRldmUgZXNzZXJlIGJ1aWx0aW4gbyBuYXRpdmEuIFVuYSB2b2NlIHNwZWNpZmljYXRhIGNvbWUgIiIqIiIgc2kgYXBwbGljYSBhIHR1dHRlIGxlIGRsbCBjaGUgbm9uIGhhbm5vIHVuJ2ltcG9zdGF6aW9uZSBzcGVjaWZpY2EuIgogICAgICAgICAgICAgICAgICAgICwgIElEQ19TVEFUSUMsMTUsMTcsMjI4LDMyCiAgICBDT05UUk9MICAgICAgICAgIkRMTCBPdmVycmlkZXMiLCBJRENfVFJFRV9ETExTLCAiU3lzVHJlZVZpZXczMiIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBUVlNfTElORVNBVFJPT1QgfCBUVlNfSEFTTElORVMgfCBUVlNfU0hPV1NFTEFMV0FZUyB8IFRWU19IQVNCVVRUT05TLCAxNSw1MCwxNDIsMTg3CiAgICBMVEVYVCAgICAgICAgICAgIk9yZGluZSBkaSBjYXJpY2FtZW50bzoiLElEQ19TVEFUSUMsMTYzLDUwLDM3LDgKICAgIENPTlRST0wgICAgICAgICAiQnVpbHRpbiAoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYzLDY1LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIk5hdGl2ZSAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYzLDgwLDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkJ1aWx0aW4sIE5hdGl2ZSIsSURDX1JBRF9CVUlMVElOX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2Myw5NSw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJOYXRpdmUsIEJ1aWx0aW4iLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNjMsMTEwLDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkRpc2FiaWxpdGEiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2MywxMjUsNzUsMTAKICAgIFBVU0hCVVRUT04JICAgICJBZ2dpdW5naSBhcHBsaWNhemlvbmUuLi4iLElEQ19ETExTX0FEREFQUCwxNjMsMTQ0LDgyLDE0CiAgICBQVVNIQlVUVE9OCSAgICAiUmltdW92aSBhcHBsaWNhemlvbmUiLElEQ19ETExTX1JFTU9WRUFQUCwgMTYzLDE2NCw4MiwxNAogICAgUFVTSEJVVFRPTgkgICAgIkFnZ2l1bmdpIERMTCBvdmVycmlkZSBwZXI6IixJRENfRExMU19BRERETEwsIDE2MywxODQsODIsMTQKICAgIENPTUJPQk9YICAgICAgICBJRENfRExMTElTVCwxNjMsMjA0LDgyLDE0LENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQgfCBDQlNfTE9XRVJDQVNFCiAgICBQVVNIQlVUVE9OCSAgICAiUmltdW92aSBETEwgb3ZlcnJpZGUiLElEQ19ETExTX1JFTU9WRURMTCwxNjMsMjI0LDgyLDE0CkVORAoKSUREX1NZU1RFTUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiRHJpdmVzIixJRENfU1RBVElDLDgsNCwyNDQsMTIwCiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfRFJJVkVTLDE1LDIzLDE3OSw5MCxXU19WU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIiZBZ2dpdW5naSIsSURDX0RSSVZFX0FERCwxOTcsMjIsNTAsMjIKICAgIFBVU0hCVVRUT04gICAgICAiJlJpbXVvdmkiLElEQ19EUklWRV9SRU1PVkUsMTk3LDUxLDUwLDIyCiAgICBQVVNIQlVUVE9OICAgICAgIiZNb2RpZmljYSIsSURDX0RSSVZFX0VESVQsMTk3LDgwLDUwLDIyCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIkFsdHJpIERyaXZlIixJRENfU1RBVElDLDcsMTA3LDI0NiwxMTIKICAgIExJU1RCT1ggICAgICAgICBJRENfTElTVF9EUklWRVMsMTQsMTE4LDIzMiw3NixMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiQWdnaXVuZ2kuLi4iLElEQ19CVVRUT05fQURELDE0LDE5OSwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJSaW11b3ZpIixJRENfQlVUVE9OX1JFTU9WRSw1NSwxOTksMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiTW9kaWZpY2EuLi4iLElEQ19CVVRUT05fRURJVCw5NywxOTksMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiUmlsZXZhIGF1dG9tYXRpY2FtZW50ZS4uLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE5NywxOTksNDksMTQKICAgIExURVhUCSAgICAiQVRURU5aSU9ORTogTm9uIOggc3RhdG8gZGVmaW5pdG8gdW4gZHJpdmVyIEMuIENsaWNjYSBzdSAnQWdnaXVuZ2kgRHJpdmVyJyBwZXIgYWdnaXVuZ2VybmUgdW5vLiIsIElEU19EUklWRV9OT19DLCA3LDIyMywyNTAsMTEwCkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBEcml2ZXIgU2VsZWN0aW9uICIsSURDX1NUQVRJQyw4LDQsMjQ0LDE5NQogICAgTFRFWFQgICAgICAgICAgICJTZWxlY3QgYSBzb3VuZCBkcml2ZXIgYnkgY2hlY2tpbmcgdGhlIGJveCBvZiB0aGUgZGVzaXJlZCBkcml2ZXIuICBEaXNhYmxlIHNvdW5kIGJ5IG5vdCBzZWxlY3RpbmcgYW55IGRyaXZlci4gU2VsZWN0aW9uIG9mIG11bHRpcGxlIGRyaXZlcnMgaXMgbm90IHJlY29tbWVuZGVkLiBDb25maWd1cmUgYSBkcml2ZXIgYnkgcmlnaHQtY2xpY2tpbmcgb24gaXQuIixJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJEZXZpY2VzIixJRENfQVVESU9fVFJFRSwiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwxNSw1MCwxNDAsMTQwCiAgICBQVVNIQlVUVE9OICAgICAgIiZUZXN0IFNvdW5kIixJRENfQVVESU9fVEVTVCwxNzAsNTAsNTksMTQKICAgIFBVU0hCVVRUT04JICAgICImQ29udHJvbCBQYW5lbCIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDcwLDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwCiAgICBMVEVYVAkgICAgIiZIYXJkd2FyZSBBY2NlbGVyYXRpb246ICIsSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwyMTMsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJEZWZhdWx0ICZTYW1wbGUgUmF0ZToiLElEQ19TVEFUSUMsMTUsMjMyLDcwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDkwLDIzMCw0Miw3NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiRGVmYXVsdCAmQml0cyBQZXIgU2FtcGxlOiIsSURDX1NUQVRJQywxMzcsMjMyLDgwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0JJVFMsMjIwLDIzMCwzMCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICAgICAiRHJpdmVyICZFbXVsYXRpb24iLElEQ19EU09VTkRfRFJWX0VNVUwsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyNTAsMjMwLDEwCkVORAoKSUREX0RFU0tUT1BfSU5URUdSQVRJT04gRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEFwcGVhcmFuY2UgIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBMVEVYVCAgICAgICAgICAgIiZUaGVtZToiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZJbnN0YWxsIHRoZW1lLi4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAiJkNvbG9yOiIsSURDX1RIRU1FX0NPTE9SVEVYVCwxNSw0MCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9DT0xPUkNPTUJPLDE1LDQ4LDExMiwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJlNpemU6IixJRENfVEhFTUVfU0laRVRFWFQsMTM1LDQwLDExMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxMzUsNDgsMTEwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJJdCZlbToiLElEQ19TVEFUSUMsMTUsNjQsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfU1lTUEFSQU1fQ09NQk8sMTUsNzQsMTEyLDEyMCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVAogICAgTFRFWFQgICAgICAgICAgICJDJm9sb3I6IixJRENfU1lTUEFSQU1fQ09MT1JfVEVYVCwxMzUsNjQsMjUsOCxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICIiLElEQ19TWVNQQVJBTV9DT0xPUiwxMzUsNzQsMjUsMTMsV1NfRElTQUJMRUQgfCBCU19PV05FUkRSQVcKICAgIExURVhUICAgICAgICAgICAiU2kmemU6IixJRENfU1lTUEFSQU1fU0laRV9URVhULDE2Niw2NCwzMCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX1NZU1BBUkFNX1NJWkUsMTY2LDc0LDIzLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1NZU1BBUkFNX1NJWkVfVUQsVVBET1dOX0NMQVNTLFVEU19TRVRCVUREWUlOVCB8IFdTX0RJU0FCTEVELDE4Nyw3NCwxNSwxMwogICAgUFVTSEJVVFRPTiAgICAgICImRm9udCIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiBTJmhlbGwgRm9sZGVyICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIiZMaW5rIHRvOiIsSURDX0xJTktfU0ZQQVRILCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QfFdTX0RJU0FCTEVELDE1LDE5NSw1MCwxMwogICAgRURJVFRFWFQgICAgICAgICBJRENfRURJVF9TRlBBVEgsNjUsMTk1LDE0NSwxMyxFU19BVVRPSFNDUk9MTHxXU19UQUJTVE9QfFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIkImcm93c2UiLElEQ19CUk9XU0VfU0ZQQVRILDIxNSwxOTUsMzAsMTMsV1NfRElTQUJMRUQKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1RBQl9HRU5FUkFMICAgICAgICAgIkdlbmVyYWxlIgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIkxpYnJlcmllIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIkRyaXZlIgpFTkQK