LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogUG9ydHVndWVzZSBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDAzIE1hcmNlbG8gRHVhcnRlCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ERUZBVUxUCgpJRERfR0VORVJBTENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsODMsMTUzLDE1OCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTUJPQk9YICAgICAgICBJRENfRE9TVkVSLDgzLDE3MiwxNTgsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlZlcnPjbyBkbyBXaW5lOiIsSURDX1NUQVRJQywxMTksMTcsNDUsOAogICAgTFRFWFQgICAgICAgICAgICJDVlMiLElEQ19XSU5FVkVSLDE2OSwxNyw1Niw4CiAgICBMVEVYVCAgICAgICAgICAgIlZlcnPjbyBkbyBXaW5kb3dzOiIsSURDX1NUQVRJQywxNywxNTUsNTgsOAogICAgTFRFWFQgICAgICAgICAgICJBcGFy6m5jaWEgZG8gV2luZG93czoiLElEQ19TVEFUSUMsMTcsMTkzLDU4LDgKICAgIExURVhUICAgICAgICAgICAiVmVyc+NvIGRvIERPUzoiLElEQ19TVEFUSUMsMTcsMTczLDU3LDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCB8IFNTX0NFTlRFUklNQUdFIHwgCiAgICAgICAgICAgICAgICAgICAgU1NfUkVBTFNJWkVJTUFHRSB8IFdTX0JPUkRFUiwxNSwxNywxNTcsMTExLCBXU19FWF9UUkFOU1BBUkVOVAogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAogICAgR1JPVVBCT1ggICAgICAgICJDb21wb3J0YW1lbnRvIHBhZHLjbyIsSURDX1NUQVRJQyw4LDExNSwyNDQsOTcKICAgIExURVhUICAgICAgICAgICAiV2luZSBwcm92aWRlbmNpYSBhIGFwbGljYef1ZXMgV2luZG93cywgYSBoYWJpbGlkYWRlIGRlIHNlIHBhcmVjZXIgYSB24XJpYXMgdmVyc/VlcyBlIGVzdGlsb3MgZGUgV2luZG93cyIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwxMjgsMjI3LDIwCiAgICBDVEVYVCAgICAgICAgICAgIlRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNTkKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgpFTkQKCklERF9YMTFEUlZDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBMVEVYVAkgICAgIlByb2Z1bmRpZGFkZSBkZSBjb3JlczogIixJRENfU1RBVElDLDgsMTAsOTAsMzAKICAgIENPTUJPQk9YCSAgICBJRENfU0NSRUVOX0RFUFRILDEwMCw4LDE1MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MCSAgICAiQW8gdXNhciBEaXJlY3RYIGltcGVkaXIgcXVlIG8gbW91c2UgZGVpeGUgYSBqYW5lbGEiLElEQ19EWF9NT1VTRV9HUkFCLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzUsMjMwLDgKICAgIENPTlRST0wJICAgICJFbmFibGUgZGVza3RvcCBkb3VibGUgYnVmZmVyaW5nIixJRENfRE9VQkxFX0JVRkZFUiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDQ1LDIzMCw4CiAgICBDT05UUk9MCSAgICAiVXNlVGFrZUZvY3VzIChGSVhNRSkiLElEQ19VU0VfVEFLRV9GT0NVUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDU1LDIzMCw4CiAgICAKICAgIEdST1VQQk9YICAgICAgICAiIENvbmZpZ3VyYef1ZXMgZGUgamFuZWxhICIsSURDX1NUQVRJQyw4LDI1LDI0NCwxMjAKCiAgICAvKiBGSVhNRTogdGhlIHdvcmRpbmcgb2YgdGhpcyBleHBsYW5hdGlvbiBjb3VsZCBiZSBhIGxvdCBiZXR0ZXIgKi8KICAgIExURVhUICAgICAgICAgICAiWW91IGNhbiBjaG9vc2UgdG8gZW11bGF0ZSBhIHdpbmRvd3MgZGVza3RvcCwgd2hlcmUgYWxsIHRoZSB3aW5kb3dzIGFyZSBjb25maW5lZCB0byBvbmUgJ3ZpcnR1YWwgc2NyZWVuJywgb3IgeW91IGNhbiBoYXZlIHRoZSB3aW5kb3dzIHBsYWNlZCBvbiB5b3VyIHN0YW5kYXJkIGRlc2t0b3AuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDczLDIyOCwyOAogICAgTFRFWFQgICAgICAgICAgICJUYW1hbmhvIGRhIOFyZWEgZGUgdHJhYmFsaG86IixJRENfREVTS1RPUF9TSVpFLDE1LDExNSwxMDAsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxNjQsMTE1LDgsOCxXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICJFbXVsYXIgdW1hIOFyZWEgZGUgdHJhYmFsaG8gdmlydHVhbCIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTAwLDIyOCwxMAoJCSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9XSURUSCwxMjAsMTE1LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9IRUlHSFQsMTczLDExNSw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgkJICAgIApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIkRlZmluaXIgb3JkZW0gZGUgY2FyZ2EgZGUgRExMcyIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJCaWJsaW90ZWNhcyBwb2RlbSBzZXIgZXNwZWNpZmljYWRhcyBpbmRpdmlkdWFsbWVudGUgY29tbyAnYnVpbHRpbicgb3UgJ25hdGl2ZScuIEVzcGVjaWZpY2FuZG8gdW1hIGVudHJhZGEgRExMIGNvbW8gIiIqIiIgcGVydGVuY2UgYSB0b2RhcyBhcyBETExzIG7jbyBlc3BlY2lmaWNhZGFzIGV4cGxpY2l0YW1lbnRlLlxuXG5TZWphIGN1aWRhZG9zbywgb3MgYWp1c3RlcyBlcnJhZG9zIGFxdWkgdGVtIG8gcG90ZW5jaWFsIGRlIGRldG9uYXIgc3VhIGluc3RhbGHn428uIgogICAgICAgICAgICAgICAgICAgICwgIElEQ19TVEFUSUMsMTUsMTcsMjI4LDQ3CiAgICBDT05UUk9MICAgICAgICAgIlNvYnJlZXNjcmV2ZXIgRExMcyIsIElEQ19UUkVFX0RMTFMsICJTeXNUcmVlVmlldzMyIiwgV1NfVEFCU1RPUCB8IFRWU19MSU5FU0FUUk9PVCB8IFRWU19IQVNMSU5FUyB8IFRWU19TSE9XU0VMQUxXQVlTIHwgVFZTX0hBU0JVVFRPTlMsIDE1LDY1LDE0MiwxNzIKICAgIExURVhUICAgICAgICAgICAiT3JkZW0gZGUgY2FyZ2E6IixJRENfU1RBVElDLDE2Myw2NSwzNyw4CiAgICBDT05UUk9MICAgICAgICAgIkJ1aWx0aW4gKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2Myw4MCw1NywxMAogICAgQ09OVFJPTCAgICAgICAgICJOYXRpdmUgKFdpbmRvd3MpIixJRENfUkFEX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2Myw5NSw3MiwxMAogICAgUFVTSEJVVFRPTgkgICAgIkFkaWNpb25hciB1bWEgYXBsaWNh5+NvLi4uIixJRENfRExMU19BRERBUFAsMTYzLDExNCw4MiwxNAogICAgUFVTSEJVVFRPTgkgICAgIlJlbW92ZXIgYXBsaWNh5+NvIixJRENfRExMU19SRU1PVkVBUFAsIDE2MywxMzQsODIsMTQKICAgIFBVU0hCVVRUT04JICAgICJBZGljaW9uYXIgb3JkZW0gZGUgY2FyZ2EgZGUgRExMOiIsSURDX0RMTFNfQURERExMLCAxNjMsMTU0LDgyLDE0CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTExJU1QsMTYzLDE3NCw4MiwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTgkgICAgIlJlbW92ZXIgb3JkZW0gZGUgY2FyZ2EgZGUgRExMIixJRENfRExMU19SRU1PVkVETEwsMTYzLDE5NCw4MiwxNApFTkQKCklERF9TWVNURU1DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJVbmlkYWRlcyIsSURDX1NUQVRJQyw4LDQsMjQ0LDEyMAogICAgTElTVEJPWCAgICAgICAgIElEQ19MSVNUX0RSSVZFUywxNSwyMywxNzksOTAsV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICImQWRpY2lvbmFyIixJRENfRFJJVkVfQURELDE5NywyMiw1MCwyMgogICAgUFVTSEJVVFRPTiAgICAgICImUmVtb3ZlciIsSURDX0RSSVZFX1JFTU9WRSwxOTcsNTEsNTAsMjIKICAgIFBVU0hCVVRUT04gICAgICAiJkVkaXRhciIsSURDX0RSSVZFX0VESVQsMTk3LDgwLDUwLDIyCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJVbmlkYWRlIFdpbmRvd3MiLElEQ19TVEFUSUMsNyw3LDI0Niw5OQogICAgQ09OVFJPTCAgICAgICAgICJDcmlhciB1bWEgdW5pZGFkZSBXaW5kb3dzIHZpcnR1YWwiLElEQ19SQURJT19WSVJUVUFMLAogICAgICAgICAgICAgICAgICAgICJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNCwxOCwxNTAsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9WSVJUVUFMLDI1LDMwLDE2OSwxNCxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICJQcm9jdXJhci4uLiIsSURDX0JVVFRPTl9WSVJUVUFMLDIwMiwzMCw0NCwxNAogICAgQ09OVFJPTCAgICAgICAgICJVc2UgdW1hIHVuaWRhZGUgV2luZG93cyByZWFsIixJRENfUkFESU9fUkVBTCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTQsNDgsMTUwLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUkVBTCwyNSw2MCwxNjksMTQsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiUHJvY3VyYXIuLi4iLElEQ19CVVRUT05fUkVBTCwyMDIsNjAsNDQsMTQKICAgIFBVU0hCVVRUT04gICAgICAiUGFzdGFzIGltcG9ydGFudGVzLi4uIixJRENfQlVUVE9OX0ZPTERFUlMsMTczLDg1LDczLDE0CiAgICBHUk9VUEJPWCAgICAgICAgIk91dHJhcyB1bmlkYWRlcyIsSURDX1NUQVRJQyw3LDEwNywyNDYsMTEyCiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfRFJJVkVTLDE0LDExOCwyMzIsNzYsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIkFkaWNpb25hci4uLiIsSURDX0JVVFRPTl9BREQsMTQsMTk5LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIlJlbW92ZXIiLElEQ19CVVRUT05fUkVNT1ZFLDU1LDE5OSwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJFZGl0YXIuLi4iLElEQ19CVVRUT05fRURJVCw5NywxOTksMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXV0b2RldGVjdGFyLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk3LDE5OSw0OSwxNAogICAgTFRFWFQJICAgICJBVklTTzogUGFyZWNlIHF1ZSB2b2PqIG7jbyB0ZW0gdW1hIHVuaWRhZGUgQyBkZWZpbmlkYS4gQ2xpcXVlIGVtICdBZGljaW9uYXInIHBhcmEgYWRpY2lvbmFyIHVtYS4iLCBJRFNfRFJJVkVfTk9fQywgNywyMjMsMjUwLDExMApFTkQKCklERF9EUklWRV9FRElUIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjAzLCAxNjkKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQ29uZmlndXJh5+NvIGRlIHVuaWRhZGUiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIiZGZWNoYXIiLElEX0JVVFRPTl9PSywxNDUsMTUwLDUwLDEzCiAgICBMVEVYVCAgICAgICAgICAgIkxldHJhOiIsSURDX1NUQVRJQyw1LDIzLDI2LDkKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywxMTQsNzgsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiUvN0dWxvOiIsSURDX1NUQVRJQ19MQUJFTCwzMywxMTcsMjksMTIKICAgIExURVhUICAgICAgICAgICAiVGlwbzoiLElEQ19TVEFUSUMsNSw1NCwyMSwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsMzEsNSwxMTcsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiQ2FtaW5obzoiLElEQ19TVEFUSUMsNSw5LDIwLDkKICAgIExURVhUICAgICAgICAgICAiTm9tZXM6IixJRENfU1RBVElDLDUsMzksMjUsOQogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1NFUklBTCw2MywxMjksNzgsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiU+lyaWU6IixJRENfU1RBVElDX1NFUklBTCwzMywxMzAsMjksMTIKICAgIENPTUJPQk9YICAgICAgICBJRENfQ09NQk9fTEVUVEVSLDMxLDIwLDc4LDYwLENCU19EUk9QRE9XTkxJU1QgIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiUHJvY3VyYXIuLi4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMTU0LDUsNDAsMTMKICAgIENPTUJPQk9YICAgICAgICBJRENfQ09NQk9fVFlQRSwzMSw1Miw3OCw2MCxDQlNfRFJPUERPV05MSVNUIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICAgICAiQXV0b2RldGVjdGFyIGRvIGRpc3Bvc2l0aXZvOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDIxLDc5LDkzLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDMzLDg5LDEwOCwxMyxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICJQcm9jdXJhci4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDE0OCw4OSw0MCwxMwogICAgQ09OVFJPTCAgICAgICAgICJBc3NvY2lhciBtYW51YWxtZW50ZToiLElEQ19SQURJT19BU1NJR04sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDIxLDEwNCw2OSwxMAogICAgR1JPVVBCT1ggICAgICAgICJS83R1bG8gZSBu+m1lcm8gZGUgc+lyaWUiLElEQ19CT1hfTEFCRUxTRVJJQUwsNiw2OCwxODksNzkKCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUgCkJFR0lOCiAgICBJRFNfV0lORV9WRVJTSU9OICAgICAgICAiQ1ZTIgogICAgSURTX1RBQl9HRU5FUkFMICAgICAgICAgIkdlcmFsIgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIkJpYmxpb3RlY2FzIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIlVuaWRhZGVzIgpFTkQK