LyoKICogQ29weXJpZ2h0IDE5OTcgUmljYXJkbyBSLiBNYXNzYXJvCiAqIENvcHlyaWdodCAyMDAzIE1hcmNlbG8gRHVhcnRlCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCi8qCiAqIFdBUk5JTkc6IERPIE5PVCBDSEFOR0UgVEhFIFNJWkUgT0YgVEhFIFNUQU5EQVJEIERJQUxPRyBURU1QTEFURVMuCiAqLwoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX0RFRkFVTFQKCk9QRU5fRklMRSBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI3NSwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkFicmlyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIExURVhUICJOb21lIGRvICZBcnF1aXZvOiIsIDEwOTAsIDYsIDYsIDc2LCA5CiBFRElUVEVYVCAxMTUyLCA2LCAxNiwgOTAsIDEyLCBFU19BVVRPSFNDUk9MTCB8IEVTX09FTUNPTlZFUlQgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiBMSVNUQk9YIDExMjAsIDYsIDMyLCA5MCwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICImRGlyZXTzcmlvczoiLCAtMSwgMTEwLCA2LCA5MiwgOQogTFRFWFQgIiIsIDEwODgsIDExMCwgMTgsIDkyLCA5LCBTU19OT1BSRUZJWCB8IFdTX0dST1VQCiBMSVNUQk9YIDExMjEsIDExMCwgMzIsIDkyLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIkxpc3RhciBBcnF1aXZvcyBkbyAmVGlwbzoiLCAxMDg5LCA2LCAxMDQsIDkwLCA5CiBDT01CT0JPWCAxMTM2LCA2LCAxMTQsIDkwLCAzNiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAiRHJpJnZlczoiLCAxMDkxLCAxMTAsIDEwNCwgOTIsIDkKIENPTUJPQk9YIDExMzcsIDExMCwgMTE0LCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIkFicmlyIiwgSURPSywgMjA4LCA2LCA1NiwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkNhbmNlbGFyIiwgSURDQU5DRUwsIDIwOCwgMjQsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBJmp1ZGEiLCAxMDM4LCAyMDgsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIiZTb21lbnRlIExlaXR1cmEiLCAxMDQwLCAyMDgsIDY4LCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKU0FWRV9GSUxFIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjc1LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiU2FsdmFyIENvbW8gLi4uIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIExURVhUICJOb21lIGRvICZBcnF1aXZvOiIsIDEwOTAsIDYsIDYsIDc2LCA5CiBFRElUVEVYVCAxMTUyLCA2LCAxNiwgOTAsIDEyLCBFU19BVVRPSFNDUk9MTCB8IEVTX09FTUNPTlZFUlQgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiBMSVNUQk9YIDExMjAsIDYsIDMyLCA5MCwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICImRGlyZXTzcmlvczoiLCAtMSwgMTEwLCA2LCA5MiwgOQogTFRFWFQgIiIsIDEwODgsIDExMCwgMTgsIDkyLCA5LCBTU19OT1BSRUZJWCB8IFdTX0dST1VQCiBMSVNUQk9YIDExMjEsIDExMCwgMzIsIDkyLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIkxpc3RhciBBcnF1aXZvcyBkbyAmVGlwbzoiLCAxMDg5LCA2LCAxMDQsIDkwLCA5CiBDT01CT0JPWCAxMTM2LCA2LCAxMTQsIDkwLCAzNiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAiRHJpJnZlczoiLCAxMDkxLCAxMTAsIDEwNCwgOTIsIDkKIENPTUJPQk9YIDExMzcsIDExMCwgMTE0LCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIlNhbHZhciAmQ29tbyIsIElET0ssIDIwOCwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLCAyMDgsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkFqdWRhIiwgMTAzOCwgMjA4LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICImU29tZW50ZSBMZWl0dXJhIiwgMTA0MCwgMjA4LCA2OCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjY0LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiSW1wcmltaXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIkltcHJlc3NvcmE6IiwgMTA4OCwgNiwgNiwgNDAsIDkKIExURVhUICIiLCAxMDg5LCA2MCwgNiwgMTUwLCA5CiBHUk9VUEJPWCAiRmFpeGEgZGUgSW1wcmVzc+NvIiwgMTA3MiwgNiwgMzAsIDE2MCwgNjUsIEJTX0dST1VQQk9YCiBSQURJT0JVVFRPTiAiJlR1ZG8iLCAxMDU2LCAxNiwgNDUsIDYwLCAxMgogUkFESU9CVVRUT04gIlMmZWxl5+NvIiwgMTA1NywgMTYsIDYwLCA2MCwgMTIKIFJBRElPQlVUVE9OICImUOFnaW5hcyIsIDEwNTgsIDE2LCA3NSwgNjAsIDEyCiBERUZQVVNIQlVUVE9OICJJbXByaW1pciIsIElET0ssIDIwNiwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLCAyMDYsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkNvbmZpZ3VyYXIiLCAxMDI0LCAyMDYsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIiZEZToiLCAxMDkwLCA2MCwgODAsIDMwLCA5CiBMVEVYVCAiJkF0ZToiLCAxMDkxLCAxMjAsIDgwLCAzMCwgOQogTFRFWFQgIiZRdWFsaWRhZGUgZGUgSW1wcmVzc+NvOiIsIDEwOTIsIDYsIDEwMCwgNzYsIDkKIENPTUJPQk9YIDExMzYsIDgwLCAxMDAsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkltcHJpbWlyIHBhcmEgQXJxdWl2byIsIDEwNDAsIDIwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQyZvbmRlbnNhZG8iLCAxMDQxLCAxNjAsIDEwMCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UX1NFVFVQIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjY0LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQ29uZmlndXJh5/VlcyBkZSBJbXByZXNz428iCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogR1JPVVBCT1ggIkltcHJlc3NvcmEiLCAxMDcyLCA2LCAxMCwgMTgwLCA2NSwgQlNfR1JPVVBCT1gKIFJBRElPQlVUVE9OICImSW1wcmVzc29yYSBQYWRy428iLCAxMDU2LCAxNiwgMjAsIDgwLCAxMgogTFRFWFQgIltub25lXSIsIDEwODgsIDM1LCAzNSwgMTIwLCA5CiBSQURJT0JVVFRPTiAiSW1wcmVzc29yYSAmRXNwZWPtZmljYSIsIDEwNTcsIDE2LCA1MCwgODAsIDEyCiBDT01CT0JPWCAxMTM2LCAzNSwgNjUsIDE0OSwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMjA2LCA2LCA1NiwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkNhbmNlbGFyIiwgSURDQU5DRUwsIDIwNiwgMjQsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImQ29uZmlndXJhciIsIDEwMjQsIDIwNiwgNDYsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBHUk9VUEJPWCAiT3JpZW50YefjbyIsIDEwNzMsIDYsIDg1LCAxMDAsIDUwLCBCU19HUk9VUEJPWAogUkFESU9CVVRUT04gIiZSZXRyYXRvIiwgMTA1OCwgNTAsIDEwMCwgNDAsIDEyCiBSQURJT0JVVFRPTiAiJlBhaXNhZ2VtIiwgMTA1OSwgNTAsIDExNSwgNDAsIDEyCiBJQ09OICJMQU5EU0NBUCIsIDEwOTcsIDEwLCA5NSwgMzIsIDMyCiBJQ09OICJQT1JUUkFJVCIsIDEwOTgsIDEwLCA5NSwgMzIsIDMyCiBHUk9VUEJPWCAiUGFwZWwiLCAxMDc0LCAxMjAsIDg1LCAxODAsIDUwLCBCU19HUk9VUEJPWAogTFRFWFQgIiZUYW1hbmhvIiwgMTA4OSwgMTMwLCA5NSwgMzAsIDkKIExURVhUICImRm9udGUgZGUgQWxpbWVudGHn428iLCAxMDkwLCAxMzAsIDExMCwgMzAsIDkKIENPTUJPQk9YIDExMzcsIDE1NSwgOTUsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogQ09NQk9CT1ggMTEzOCwgMTU1LCAxMTAsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAp9CgoKQ0hPT1NFX0ZPTlQgRElBTE9HIERJU0NBUkRBQkxFICAxMywgNTQsIDI2NCwgMTQ3ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkZvbnRlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIExURVhUICAgICAgICAgICAiJkZvbnRlOiIsMTA4OCAsNiwzLDQwLDkKICAgIENPTUJPQk9YICAgICAgICAxMTM2ICw2LDEzLDk0LDU0LCAgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwKICAgICAgICAgICAgICAgICAgICBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRQogICAgTFRFWFQgICAgICAgICAgICImRXN0aWxvIGRhIEZvbnRlOiIsMTA4OSAsMTA4LDMsNTAsOQogICAgQ09NQk9CT1ggICAgICAgIDExMzcsMTA4LDEzLDY0LDU0LCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRQogICAgTFRFWFQgICAgICAgICAgICImVGFtYW5obzoiLDEwOTAsMTc5LDMsMzAsOQogICAgQ09NQk9CT1ggICAgICAgIDExMzgsMTc5LDEzLDMyLDU0LCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfSEFTU1RSSU5HUyB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRSB8IENCU19TT1JUCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDIxOCw2LDQwLDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkNhbmNlbGFyIixJRENBTkNFTCwyMTgsMjMsNDAsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiJkFwbGljYXIiLCAxMDI2LDIxOCw0MCw0MCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJBJmp1ZGEiICwgMTAzOCwyMTgsNTcsNDAsMTQsV1NfR1JPVVAKICAgIEdST1VQQk9YICAgICAgICAiRWZlaXRvcyIsMTA3Miw2LDcyLDg0LDM0LFdTX0dST1VQCiAgICBDSEVDS0JPWAkgICAgIiZSaXNjYWRvIiwgMTA0MCwgMTAsODIsNTAsMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKICAgIENIRUNLQk9YIAkgICAgIiZTdWJsaW5oYWRvIiwgMTA0MSwgMTAsOTQsNTAsMTAsIEJTX0FVVE9DSEVDS0JPWAogICAgTFRFWFQgICAgICAgICAgICImQ29yOiIsIDEwOTEgLDYsMTEwLDMwLDkKICAgIENPTUJPQk9YICAgICAgICAxMTM5LDYsMTIwLDg0LDEwMCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfAoJCSAgICBDQlNfQVVUT0hTQ1JPTEwgfCAgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiRXhlbXBsbyIsZ3JwMiw5OCw3MiwxMjAsMzYsV1NfR1JPVVAKICAgIENURVhUICAgICAgICAgICAiQWFCYll5WnoiLHN0YzUsMTAzLDgwLDEwOSwyNCxTU19OT1BSRUZJWCB8IE5PVCBXU19WSVNJQkxFCiAgICBMVEVYVCAgICAgICAgICAgIlNjciZpcHQgKHRyYW5zbGF0ZSk6IixzdGM3ICw5OCwxMTQsODAsOQogICAgQ09NQk9CT1ggICAgICAgIGNtYjUsOTgsMTI0LDEyMCw5MCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0hBU1NUUklOR1MgfAoJCSAgICBDQlNfQVVUT0hTQ1JPTEwgfCAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCn0KCgpDSE9PU0VfQ09MT1IgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAzMDAsIDE4NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJDb3IiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIkNvcmVzICZC4XNpY2FzOiIsICAgMTA4OCwgNCwgICAgNCwgIDE0MCwgMTAKIExURVhUICImQ29yZXMgZG8gVXN14XJpbzoiLCAgMTA4OSwgNCwgICAxMDYsIDE0MCwgMTAKIExURVhUICJDb2xvcmlkb3xT82xpZCZvIiwgIDEwOTAsIDE1MCwgMTUxLCAgNDgsIDEwCiBMVEVYVCAgICJWZXImbWVsaG86IiwgNzI2IC8qMTA5NCovLDI0OSwxMjYsMjQsMTAKIEVESVRURVhUIDcwNiwgMjc1LDEyNCwxOCwxMiwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAgICImVmVyZGU6Iiw3MjcvKjEwOTUqLywyNDksMTQwLDI0LDEwCiBFRElUVEVYVCA3MDcsIDI3NSwxMzgsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICAiQSZ6dWw6Iiw3MjggLyoxMDk2Ki8sMjQ5LDE1NCwyNCwxMAogRURJVFRFWFQgNzA4LCAyNzUsMTUyLDE4LDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiTWF0Jml6OiIgLDcyMyAvKjEwOTEqLywyMDIsMTI2LDIyLDEwCiBFRElUVEVYVCA3MDMsIDIyNiwxMjQsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICJTYSZ0OiIgLDcyNCAvKjEwOTIqLywyMDIsMTQwLDIyLDEwCiBFRElUVEVYVCA3MDQsIDIyNiwxMzgsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICImTHVtOiIgLDcyNSAvKjEwOTMqLywyMDIsMTU0LDIyLDEwCiBFRElUVEVYVCA3MDUsIDIyNiwxNTIsMTgsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ09OVFJPTCAiIiAsNzIwLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLDQsMTQsMTQwLDg2CiBDT05UUk9MICIiICw3MjEsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsNCwxMTYsMTQwLDI4CiBDT05UUk9MICIiICw3MTAsIlNUQVRJQyIsV1NfQk9SREVSfFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAxNTIsNCwxMTgsMTE2CiBDT05UUk9MICIiICw3MDIsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDI3OCw0LDgsMTE2CiBDT05UUk9MICIiICw3MDksIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDE1MiwxMjQsNDAsMjYKIERFRlBVU0hCVVRUT04gIk9LIiwgIElET0ssICA0LCAxNjYsIDQ0LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQ2FuY2VsYXIiLCBJRENBTkNFTCwgNTIsIDE2NiwgNDQsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFqJnVkYSIsIDEwMzgsMTAwLDE2NiwgNDQsIDE0CiBQVVNIQlVUVE9OICImQWRpY2lvbmFyIENvciBQZXJzb25hbGl6YWRhIiwgICAgNzEyLyoxMDI0Ki8sIDE1MiwgMTY2LCAxNDIsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZEZWZpbmlyIENvcmVzIFBlcnNvbmFsaXphZGFzID4+IiwgNzE5LyoxMDI1Ki8sICAgNCwgMTUwLCAxNDIsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gICImbyIsNzEzLDMwMCwyMDAsNCwxNCAgIC8qIGp1c3QgYSBkdW1teTogICdvJyBpcyAgbGlrZSAgJm8gIGluICJzb2xpZCZvIiAgKi8KfQoKCkZJTkRETEdPUkQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyMzYsIDYyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByb2N1cmFyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIExURVhUICImUHJvY3VyYXI6IiwgLTEsIDQsIDgsIDQyLCA4CiBFRElUVEVYVCAxMTUyLCA0NywgNywgMTI4LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQYWxhdnJhICZJbnRlaXJhIiwgMTA0MCwgNCwgMjYsIDEwMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIiZNYWn6c2N1bGFzL21pbnVzY3VsYXMiLCAxMDQxLCA0LCA0MiwgNjQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBHUk9VUEJPWCAiRGlyZefjbyIsIDEwNzIsIDEwNywgMjYsIDY4LCAyOAogQ09OVFJPTCAiQSZjaW1hIiwgMTA1NiwgIkJVVFRPTiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMTExLCAzOCwgMjAsIDEyCiBDT05UUk9MICJBJmJhaXhvIiwgMTA1NywgIkJVVFRPTiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX1RBQlNUT1AsIDEzOCwgMzgsIDMwLCAxMgoKIERFRlBVU0hCVVRUT04gIlByb2N1cmFyIGEgUHLzJnhpbWEiLCBJRE9LLCAxODIsIDUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLCAxODIsIDIzLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQSZqdWRhIiwgMTAzOCwgMTgyLCA0NSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClJFUExBQ0VETEdPUkQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyMzAsIDk0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlN1YnN0aXR1aXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIiZQcm9jdXJhcjoiLCAtMSwgNCwgOSwgNDgsIDgKIEVESVRURVhUIDExNTIsIDU0LCA3LCAxMTQsIDEyLCBFU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIlN1YnN0aXR1aXIgUGEmcmE6IiwgLTEsIDQsIDI2LCA0OCwgOAogRURJVFRFWFQgMTE1MywgNTQsIDI0LCAxMTQsIDEyLCBFU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBhbGF2cmEgJmludGVpcmEiLCAxMDQwLCA1LCA0NiwgMTA0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiJk1hafpzY3VsYXMvbWlu+nNjdWxhcyIsIDEwNDEsIDUsIDYyLCA1OSwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKCiBERUZQVVNIQlVUVE9OICJQcm9jdXJhciBhIFBy8yZ4aW1hIiwgSURPSywJMTc0LCAgNCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AgfCBCU19ERUZQVVNIQlVUVE9OCiBQVVNIQlVUVE9OICImU3Vic3RpdHVpciIsIHBzaDEsCQkJMTc0LCAyMSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIlN1YnN0aXR1aXIgJlRvZGFzIiwgcHNoMiwJCTE3NCwgMzgsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJDYW5jZWxhciIsIElEQ0FOQ0VMLAkJMTc0LCA1NSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkEmanVkYSIsIHBzaEhlbHAsCQkJMTc0LCA3NSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UMzIgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgIDMyLCAzMiwgMjg4LCAxODYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwKICAgICAgRFNfQ09OVEVYVEhFTFAgfCBEU18zRExPT0sKQ0FQVElPTiAiSW1wcmltaXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsCUlET0ssICAgICAxODAsMTY0LCA1MCwxNCwgV1NfR1JPVVAgfCBCU19ERUZQVVNIQlVUVE9OCiAgICBQVVNIQlVUVE9OCSAgICAiQ2FuY2VsYXIiLAlJRENBTkNFTCwgMjMyLDE2NCwgNTAsMTQsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIiZBanVkYSIsICAgcHNoSGVscCwgIDUwLCAxNjEsIDUwLDE0LCBXU19HUk9VUAoKICAgIEdST1VQQk9YICAgICAgICAiSW1wcmVzc29yYSIsCQlncnA0LCAgIDgsICA0LCAyNzIsODQsIFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIkltcHJpbWlyIGVtIGFycXVpJnZvIiwJY2h4MSwgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDIxMiw3MCw2NCwxMgogICAgUFVTSEJVVFRPTiAgICAgICJQcm9wcmkmZWRhZGVzIiwJCXBzaDIsIDIxMiwgMTcsICA2MCwxNCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk5vbWU6IiwJCQlzdGM2LCAgMTYsIDIwLCAgMzYsOAogICAgQ09NQk9CT1gJCQkJCWNtYjQsICA1MiwgMTgsIDE1MiwxNTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTdGF0dXM6IiwJCQlzdGM4LCAgMTYsIDM2LCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFN0YXRlIiwJCXN0YzEyLCA1MiwgMzYsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICJUaXBvOiIsCQkJc3RjNywgIDE2LCA0OCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBUeXBlIiwJCXN0YzExLCA1MiwgNDgsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICJPbmRlOiIsCQkJc3RjMTAsIDE2LCA2MCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBMb2NhdGlvbiIsCQlzdGMxNCwgNTIsIDYwLCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAiQ29tZW504XJpbzoiLAkJc3RjOSwgIDE2LCA3MiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBSZW1hcmsiLAkJc3RjMTMsIDUyLCA3MiwgMTUyLDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCgogICAgR1JPVVBCT1ggICAgICAgICJD83BpYXMiLAkJCWdycDIsIDE2MCwgOTIsIDEyMCw2NCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiTvptZXJvIGRlICZj83BpYXM6IiwJc3RjNSwgMTY4LDEwOCwgIDY4LCA4CiAgICBJQ09OICAgICAgICAgICAgIiIsCQkJCWljbzMsIDE2MiwxMjQsICA3NiwyNCwgV1NfR1JPVVAgfCBTU19DRU5URVJJTUFHRQogICAgQ09OVFJPTCAgICAgICAgICImQWdydXBhciIsCQkJY2h4MiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjQwLDEzMCwzNiwxMgogICAgRURJVFRFWFQJCQkJCWVkdDMsIDI0MCwxMDYsICAzMiwxMiwgV1NfR1JPVVAgfCBFU19OVU1CRVIKCiAgICBHUk9VUEJPWCAgICAgICAgIkZhaXhhIGRlIGltcHJlc3PjbyIsCWdycDEsICAgOCw5MiwgIDE0NCw2NCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiJlRvZG9zIiwJCQlyYWQxLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwxNiwxMDYsNjQsMTIKICAgIENPTlRST0wgICAgICAgICAiUOEmZ2luYXMiLAkJCXJhZDMsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEyMiwzNiwxMgogICAgQ09OVFJPTCAgICAgICAgICJTZWxl5+NvIiwJCQlyYWQyLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMzgsNjQsMTIKICAgIEVESVRURVhUCQkJCQllZHQxLCAgNzQsMTIyLCAgMjYsMTIsIFdTX0dST1VQIHwgRVNfTlVNQkVSCiAgICBFRElUVEVYVAkJCQkJZWR0MiwgMTE4LDEyMiwgIDI2LDEyLCBXU19HUk9VUCB8IEVTX05VTUJFUgogICAgUlRFWFQgICAgICAgICAgICImZGU6IiwJCQlzdGMyLCAgNTIsMTI0LCAgMjAsOAogICAgUlRFWFQgICAgICAgICAgICImYXTpOiIsCQkJc3RjMywgMTAwLDEyNCwgIDE2LDgKfQoKUFJJTlQzMl9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE3OApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgICBEU19DT05URVhUSEVMUCB8IERTXzNETE9PSwpDQVBUSU9OICJDb25maWd1cmHn9WVzIGRlIEltcHJlc3PjbyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsCUlET0ssMTgwLDE1Niw1MCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJDYW5jZWxhciIsCUlEQ0FOQ0VMLDIzMiwxNTYsNTAsMTQKLyogICAgUFVTSEJVVFRPTiAgICAgICJSZWRlLi4uIiwJcHNoNSwgMjg0LDE1Niw1MCwxNCAqLwoKICAgIEdST1VQQk9YCSJJbXByZXNzb3JhIiwgICAgIGdycDQsICAgOCwgICA0LCAyNzIsICA4NCwgV1NfR1JPVVAKICAgIFBVU0hCVVRUT04JIiZQcm9wcmllZGFkZXMiLCAgcHNoMiwgMjEyLCAgMTcsICA2MCwgIDE0LCBXU19HUk9VUAogICAgTFRFWFQJIiZOb21lOiIsICAgICAgICAgc3RjNiwgIDE2LCAgMjAsICAzNiwgICA4CiAgICBDT01CT0JPWAkJCSAgY21iMSwgIDUyLCAgMTgsIDE1MiwgMTUyLCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVAkiU3RhdHVzOiIsICAgICAgICBzdGM4LCAgMTYsICAzNiwgIDM2LCAgMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVAkiRHVtbXkgU3RhdGUiLCAgICBzdGMxMiwgNTIsICAzNiwgMjI0LCAgMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUCSJUaXBvOiIsICAgICAgICAgIHN0YzcsICAxNiwgIDQ4LCAgMzYsICAxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUCSJEdW1teSBUeXBlIiwgICAgIHN0YzExLCA1MiwgIDQ4LCAyMjQsICAxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQJIk9uZGU6IiwgICAgICAgICAgc3RjMTAsIDE2LCAgNjAsICAzNiwgIDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQJIkR1bW15IExvY2F0aW9uIiwgc3RjMTQsIDUyLCAgNjAsIDIyNCwgIDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVAkiQ29tZW504XJpbyIsICAgICBzdGM5LCAgMTYsICA3MiwgIDM2LCAgMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVAkiRHVtbXkgUmVtYXJrIiwgICBzdGMxMywgNTIsICA3MiwgMjI0LCAgMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKCiAgICBHUk9VUEJPWAkiUGFwZWwiLCAgICAgICAgICBncnAyLCAgIDgsICA5MiwgMTY0LCAgNTYsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAiJlRhbWFuaG86IiwgICAgICBzdGMyLCAgMTYsIDEwOCwgIDM2LCAgIDgKICAgIENPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgIGNtYjIsICA1MiwgMTA2LCAxMTIsIDExMiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQJIiZPcmlnZW06IiwgICAgICAgc3RjMywgIDE2LCAxMjgsICAzNiwgICA4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICBjbWIzLCAgNTIsIDEyNiwgMTEyLCAxMTIsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKCiAgICBHUk9VUEJPWAkiT3JpZW50YefjbyIsICAgICBncnAxLCAxODAsICA5MiwgMTAwLCAgNTYsIFdTX0dST1VQCiAgICBJQ09OCSIiLCAgICAgICAgICAgICAgIGljbzEsIDE5NSwgMTEyLCAgMTgsICAyMCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICImUmV0cmF0byIsICAgICAgIHJhZDEsICJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsIDIyNCwgMTA2LCA1MiwgMTIKICAgIENPTlRST0wJIiZQYWlzYWdlbSIsICAgICAgcmFkMiwgIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwgMjI0LCAxMjYsIDUyLCAxMgpFTkQKClBBR0VTRVRVUERMR09SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzMiwgMzIsIDI0MCwgMjQwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJDb25maWd1cmHn9WVzIGRlIFDhZ2luYSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIENPTlRST0wgIiIsIHJjdDEsICJTdGF0aWMiLCBTU19XSElURVJFQ1QsIDgwLCA4LCA4MCwgODAKICBDT05UUk9MICIiLCByY3QyLCAiU3RhdGljIiwgU1NfR1JBWVJFQ1QsIDE2MCwgMTIsIDQsIDgwCiAgQ09OVFJPTCAiIiwgcmN0MywgIlN0YXRpYyIsIFNTX0dSQVlSRUNULCAgODQsIDg4LCA4MCwgNAogIEdST1VQQk9YICJQYXBlbCIsIGdycDIsIDgsIDk2LCAyMjQsIDU2LCBCU19HUk9VUEJPWAogIExURVhUICImVGFtYW5obzoiLCBzdGMyLCAxNiwgMTEyLCAzNiwgOAogIENPTUJPQk9YIGNtYjIsIDY0LCAxMTAsIDE2MCwgMTYwLCBDQlNfU0lNUExFfENCU19EUk9QRE9XTnxDQlNfU09SVHxXU19HUk9VUHxXU19UQUJTVE9QfFdTX1ZTQ1JPTEwKICBMVEVYVCAiJkJhbmRlamE6Iiwgc3RjMywgMTYsIDEzMiwgMzYsIDgKICBDT01CT0JPWCBjbWIzLCA2NCwgMTMwLCAxNjAsIDE2MCwgQ0JTX1NJTVBMRXxDQlNfRFJPUERPV058Q0JTX1NPUlR8V1NfR1JPVVB8V1NfVEFCU1RPUHxXU19WU0NST0xMCiAgR1JPVVBCT1ggIk9yaWVudGHn428iLCBncnAxLCA4LCAxNTYsIDY0LCA1NiwgQlNfR1JPVVBCT1gKICBBVVRPUkFESU9CVVRUT04gIiZSZXRyYXRvIiwgcmFkMSwgMTYsIDE3MCwgNTIsIDEyLCBCU19BVVRPUkFESU9CVVRUT04KICBBVVRPUkFESU9CVVRUT04gIiZQYWlzYWdlbSIsIHJhZDIsIDE2LCAxOTAsIDUyLCAxMiwgQlNfQVVUT1JBRElPQlVUVE9OCiAgR1JPVVBCT1ggIkJvcmRhcyIsIGdycDQsIDgwLCAxNTYsIDE1MiwgNTYsIEJTX0dST1VQQk9YCiAgTFRFWFQgIiZFc3F1ZXJkYToiLCBzdGMxNSwgODgsIDE3MiwgMjEsIDgKICBFRElUVEVYVCBlZHQ0LCAxMTEsIDE3MCwgMzksIDEyLCBXU19UQUJTVE9QfFdTX0dST1VQfFdTX0JPUkRFUgogIExURVhUICImRGlyZWl0YToiLCBzdGMxNiwgMTU5LCAxNzIsIDI3LCA4CiAgRURJVFRFWFQgZWR0NiwgMTg3LCAxNzAsIDM5LCAxMiwgV1NfVEFCU1RPUHxXU19HUk9VUHxXU19CT1JERVIKICBMVEVYVCAiJlN1cGVyaW9yOiIsIHN0YzE3LCA4OCwgMTkyLCAyMSwgOAogIEVESVRURVhUIGVkdDUsIDExMSwgMTkwLCAzOSwgMTIsIFdTX1RBQlNUT1B8V1NfR1JPVVB8V1NfQk9SREVSCiAgTFRFWFQgIiZJbmZlcmlvcjoiLCBzdGMxOCwgMTU5LCAxOTIsIDIzLCA4CiAgRURJVFRFWFQgZWR0NywgMTg3LCAxOTAsIDM5LCAxMiwgV1NfVEFCU1RPUHxXU19HUk9VUHxXU19CT1JERVIKICBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDcxLCAyMjAsIDUwLCAxNCwgQlNfUFVTSEJVVFRPTgogIFBVU0hCVVRUT04gIkNhbmNlbGFyIiwgSURDQU5DRUwsIDEyNiwgMjIwLCA1MCwgMTQKICBQVVNIQlVUVE9OICJJbSZwcmVzc29yYS4uLiIsIHBzaDMsIDE4NCwgMjIwLCA1MCwgMTQKRU5ECgpORVdGSUxFT1BFTk9SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDE2NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19WSVNJQkxFIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IFdTX0NMSVBDSElMRFJFTgpDQVBUSU9OICJBYnJpciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVAkiJkV4YW1pbmFyOiIsSURDX0xPT0tJTlNUQVRJQyw1LDYsMzEsOCwgU1NfTk9USUZZCiAgICBDT01CT0JPWAlJRENfTE9PS0lOLDQwLDMsMTM0LDMwMCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIExURVhUCSIiICwgSURDX1RPT0xCQVJTVEFUSUMsIDE3MiwgMiwgMTAyLCAxNywgTk9UIFdTX0dST1VQIHwgTk9UIFdTX1ZJU0lCTEUKICAgIExJU1RCT1gJSURDX1NIRUxMU1RBVElDLDQsMjAsMjcyLDg1LCBMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgTEJTX01VTFRJQ09MVU1OIHwgV1NfSFNDUk9MTCB8IE5PVCBXU19WSVNJQkxFCgogICAgTFRFWFQJIiZOb21lIGRvIGFycXVpdm86IixJRENfRklMRU5BTUVTVEFUSUMsNSwxMTIsNDgsMTYsIFNTX05PVElGWQogICAgRURJVFRFWFQJSURDX0ZJTEVOQU1FLDU0LDExMSwxNTUsMTIsRVNfQVVUT0hTQ1JPTEwKCiAgICBMVEVYVAkiQXJxdWl2b3MgZG8gJnRpcG86IixJRENfRklMRVRZUEVTVEFUSUMsNSwxMzEsNDgsMTYsIFNTX05PVElGWQogICAgQ09NQk9CT1gJSURDX0ZJTEVUWVBFLDU0LDEyOSwxNTUsMTAwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wJIkFicmlyIGNvbW8gJnNvbWVudGUtbGVpdHVyYSIsSURDX09QRU5SRUFET05MWSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDU0LDE0OCw3NCwxMAoKICAgIERFRlBVU0hCVVRUT04JIiZBYnJpciIsCQlJRE9LLDIyMiwxMTAsNTAsMTQKICAgIFBVU0hCVVRUT04JCSJDYW5jZWxhciIsCQlJRENBTkNFTCwyMjIsMTI4LDUwLDE0CiAgICBQVVNIQlVUVE9OCQkiJkFqdWRhIiwJCXBzaEhlbHAsMjIyLDE0NSw1MCwxNAp9CgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBJRFNfQUJPVVRCT1gJIiZTb2JyZSBGb2xkZXJQaWNrZXIgVGVzdCIKICAgIElEU19ET0NVTUVOVEZPTERFUlMJIlBhc3RhcyBkZSBEb2N1bWVudG9zIgogICAgSURTX1BFUlNPTkFMCSJNZXVzIERvY3VtZW50b3MiCiAgICBJRFNfRkFWT1JJVEVTCSJGYXZvcml0b3MiCiAgICBJRFNfUEFUSAkJIkNhbWluaG8gZG8gU2lzdGVtYSIKICAgIElEU19ERVNLVE9QCQkiwXJlYSBkZSBUcmFiYWxobyIKICAgIElEU19GT05UUwkJIkZvbnRlcyIKICAgIElEU19NWUNPTVBVVEVSCSJNZXUgQ29tcHV0YWRvciIKfQoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewogICAgSURTX1NZU1RFTUZPTERFUlMJIlBhc3RhcyBkbyBTaXN0ZW1hIgogICAgSURTX0xPQ0FMSEFSRFJJVkVTCSJEaXNjb3MgUu1naWRvcyBMb2NhaXMiCiAgICBJRFNfRklMRU5PVEZPVU5ECSJBcnF1aXZvIG7jbyBlbmNvbnRyYWRvIgogICAgSURTX1ZFUklGWUZJTEUJIlBvciBmYXZvciB2ZXJpZmlxdWUgc2UgZm9pIGZvcm5lY2lkbyBvIG5vbWUgY29ycmV0byBkbyBhcnF1aXZvIgogICAgSURTX0NSRUFURUZJTEUJIkFycXVpdm8gbuNvIGV4aXN0ZVxuVm9j6iBnb3N0YXJpYSBkZSBjcmlhLWxvIgogICAgSURTX09WRVJXUklURUZJTEUgICAgICAgIkFycXVpdm8gauEgZXhpc3RlLlxuR29zdGFyaWEgZGUgc3Vic3RpdHXtLWxvPyIKICAgIElEU19JTlZBTElEX0ZJTEVOQU1FX1RJVExFICJDYXJhY3RlcihlcykgaW524WxpZG9zIG5vIGNhbWluaG8iCiAgICBJRFNfSU5WQUxJRF9GSUxFTkFNRSAgICAiVW0gbm9tZSBkZSBhcnF1aXZvIG7jbyBwb2RlIGNvbnRlciBxdWFpc3F1ZXIgZG9zIHNlZ3VpbnRlcyBjYXJhY3RlcmVzOiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLyA6IDwgPiB8IgogICAgSURTX1BBVEhOT1RFWElTVElORyAgICAgIkNhbWluaG8gbuNvIGV4aXN0ZSIKICAgIElEU19GSUxFTk9URVhJU1RJTkcgICAgICJBcnF1aXZvIG7jbyBleGlzdGUiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19VUEZPTERFUiAgICAgICAgICJVbSBO7XZlbCBBY2ltYSIKICAgIElEU19ORVdGT0xERVIgICAgICAgICJDcmlhciBOb3ZhIFBhc3RhIgogICAgSURTX0xJU1RWSUVXICAgICAgICAgIkxpc3RhIgogICAgSURTX1JFUE9SVFZJRVcgICAgICAgIkRldGFsaGVzIgogICAgSURTX1RPREVTS1RPUCAgICAgICAgIsFyZWEgZGUgVHJhYmFsaG8iCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIFBEMzJfUFJJTlRfVElUTEUJCQkJIkltcHJpbWlyIgoKICAgIFBEMzJfVkFMVUVfVVJFQURBQkxFCQkJIkVudHJhZGEgSWxlZ+12ZWwiCiAgICBQRDMyX0lOVkFMSURfUEFHRV9SQU5HRQkJCSJFc3RlIHZhbG9yIG7jbyBzZSBlbmNhaXhhIG5hIGZhaXhhIGRlIHDhZ2luYXNcblwKUG9yIGZhdm9yIGVudHJlIHVtIHZhbG9yIGVudHJlICVkIGUgJWQuIgogICAgUEQzMl9GUk9NX05PVF9BQk9WRV9UTwkJCSJBIGVudHJhZGEgREUgbuNvIHBvZGUgZXhjZWRlciBBVMkuIgogICAgUEQzMl9NQVJHSU5TX09WRVJMQVAJCQkiQXMgbWFyZ2VucyBlc3TjbyBmb3JhIGRhcyBtZWRpZGFzIFwKZG8gcGFwZWwuXG5Qb3IgZmF2b3IgcmVlbnRyZSBhcyBtYXJnZW5zLiIKICAgIFBEMzJfTlJfT0ZfQ09QSUVTX0VNUFRZCQkJIk8gbvptZXJvIGRlIGPzcGlhcyBu428gcG9kZSB0ZXIgdmFsb3IgdmF6aW8uIgogICAgUEQzMl9UT09fTEFSR0VfQ09QSUVTCQkJIkVzdGEgZ3JhbmRlIHF1YW50aWRhZGUgZGUgY/NwaWFzIG7jbyDpIHN1cG9ydGFkYSBcCnBlbGEgc3VhIGltcHJlc3NvcmEuXG5Qb3IgZmF2b3IgZW50cmUgdW0gdmFsb3IgZW50cmUgMSBlICVkLiIKICAgIFBEMzJfUFJJTlRfRVJST1IJCQkJIk9jb3JyZXUgdW0gZXJybyBkZSBpbXByZXNz428uIgogICAgUEQzMl9OT19ERUZBVUxUX1BSSU5URVIJCQkiTuNvIGV4aXN0ZSB1bWEgaW1wcmVzc29yYSBwYWRy428uIgogICAgUEQzMl9DQU5UX0ZJTkRfUFJJTlRFUgkJCSJO428g6SBwb3Nz7XZlbCBlbmNvbnRyYXIgdW1hIGltcHJlc3NvcmEuIgogICAgUEQzMl9PVVRfT0ZfTUVNT1JZCQkJCSJNZW3zcmlhIGluc3VmaWNpZW50ZS4iCiAgICBQRDMyX0dFTkVSSUNfRVJST1IJCQkJIk9jb3JyZXUgYWxndW0gZXJyby4iCiAgICBQRDMyX0RSSVZFUl9VTktOT1dOCQkJCSJEcml2ZXIgZGUgaW1wcmVzc29yYSBkZXNjb25oZWNpZG8uIgogICAgUEQzMl9OT19ERVZJQ0VTICAgICAgICAgICAgICAgICAgICAgICAiQmVmb3JlIHlvdSBjYW4gcGVyZm9ybSBwcmludGVyLXJlbGF0ZWQgdGFza3MgXApzdWNoIGFzIHBhZ2Ugc2V0dXAgb3IgcHJpbnRpbmcgYSBkb2N1bWVudCwgeW91IG5lZWQgdG8gaW5zdGFsbCBhIHByaW50ZXIuIFwKUGxlYXNlIGluc3RhbGwgb25lIGFuZCByZXRyeS4iCgogICAgUEQzMl9ERUZBVUxUX1BSSU5URVIJCQkiSW1wcmVzc29yYSBQYWRy4287ICIKICAgIFBEMzJfTlJfT0ZfRE9DVU1FTlRTX0lOX1FVRVVFCQkiRXhpc3RlbSAlZCBkb2N1bWVudG9zIG5hIGZpbGEiCiAgICBQRDMyX01BUkdJTlNfSU5fSU5DSEVTCQkJIk1hcmdlbnMgW3BvbGVnYWRhc10iCiAgICBQRDMyX01BUkdJTlNfSU5fTUlMSU1FVEVSUwkJCSJNYXJnZW5zIFttbV0iCiAgICBQRDMyX01JTElNRVRFUlMJCQkJIm1tIgoKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUkVBRFkJCQkiUHJvbnRvIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVVTRUQJCQkiUGF1c2FkYTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19FUlJPUgkJCSJFcnJvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BFTkRJTkdfREVMRVRJT04JIkV4Y2x1c+NvIHBlbmRlbnRlOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBUEVSX0pBTQkJIlBhcGVsIGF0b2xhZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFQRVJfT1VUCQkiU2VtIHBhcGVsOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX01BTlVBTF9GRUVECQkiQWxpbWVudGHn428gbWFudWFsOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBUEVSX1BST0JMRU0JCSJQcm9ibGVtYXMgY29tIG8gcGFwZWw7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfT0ZGTElORQkJCSJJbXByZXNzb3JhIGRlc2xpZ2FkYTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19JT19BQ1RJVkUJCSJFL1MgQXRpdmE7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfQlVTWQkJCSJPY3VwYWRhOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BSSU5USU5HCQkiSW1wcmltaW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PVVRQVVRfQklOX0ZVTEwJCSJCYW5kZWphIGRlIHNh7WRhIGVzdOEgY2hlaWE7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfTk9UX0FWQUlMQUJMRQkJIk7jbyBkaXNwb27tdmVsOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1dBSVRJTkcJCQkiRXNwZXJhbmRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BST0NFU1NJTkcJCSJQcm9jZXNzYW5kbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19JTklUSUFMSVpJTkcJCSJJbmljaWFsaXphbmRvOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1dBUk1JTkdfVVAJCSJBcXVlY2VuZG87ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfVE9ORVJfTE9XCQkiUG91Y28gdG9uZXI7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfTk9fVE9ORVIJCSJTZW0gdG9uZXI7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFHRV9QVU5UCQkiTGFu52FyIHDhZ2luYTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19VU0VSX0lOVEVSVkVOVElPTgkiSW50ZXJ2ZW7n428gZG8gdXN14XJpbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PVVRfT0ZfTUVNT1JZCQkiTWVt83JpYSBpbnN1ZmljaWVudGU7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfRE9PUl9PUEVOCQkiQSBpbXByZXNzb3JhIGVzdOEgYWJlcnRhOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1NFUlZFUl9VTktOT1dOCQkiU2Vydmlkb3IgZGUgaW1wcmVzc+NvIGRlc2NvbmhlY2lkbzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QT1dFUl9TQVZFCQkiTW9kbyBlY29u9G1pY287ICIKfQoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUgLyogTm9tZXMgZGUgY29yZXMgKi8KewogICAgSURTX0NPTE9SX0JMQUNLICAgICAiUHJldG8iCiAgICBJRFNfQ09MT1JfTUFST09OICAgICJDYXN0YW5obyIKICAgIElEU19DT0xPUl9HUkVFTiAgICAgIlZlcmRlIgogICAgSURTX0NPTE9SX09MSVZFICAgICAiVmVyZGUtb2xpdmEiCiAgICBJRFNfQ09MT1JfTkFWWSAgICAgICJBenVsLW1hcmluaG8iCiAgICBJRFNfQ09MT1JfUFVSUExFICAgICJSb3hvIgogICAgSURTX0NPTE9SX1RFQUwgICAgICAiQXp1bC1wZXRy82xlbyIKICAgIElEU19DT0xPUl9HUkFZICAgICAgIkNpbnphIgogICAgSURTX0NPTE9SX1NJTFZFUiAgICAiUHJhdGVhZG8iCiAgICBJRFNfQ09MT1JfUkVEICAgICAgICJWZXJtZWxobyIKICAgIElEU19DT0xPUl9MSU1FICAgICAgIlZlcmRlLWxpbeNvIgogICAgSURTX0NPTE9SX1lFTExPVyAgICAiQW1hcmVsbyIKICAgIElEU19DT0xPUl9CTFVFICAgICAgIkF6dWwiCiAgICBJRFNfQ09MT1JfRlVDSFNJQSAgICJG+mNzaWEiCiAgICBJRFNfQ09MT1JfQVFVQSAgICAgICJBenVsLXBpc2NpbmEiCiAgICBJRFNfQ09MT1JfV0hJVEUgICAgICJCcmFuY28iCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19GT05UX1NJWkUgICAiU2VsZWNpb25lIG8gdGFtYW5obyBkYSBmb250ZSBlbnRyZSAlZCBlICVkIHBvbnRvcy4iCiAgICBJRFNfU0FWRV9CVVRUT04gIiZTYWx2YXIiCiAgICBJRFNfU0FWRV9JTiAgICAgIlNhbHZhciAmZW06IgogICAgSURTX1NBVkUgICAgICAgICJTYWx2YXIiCiAgICBJRFNfU0FWRV9BUyAgICAgIlNhbHZhciBjb21vIgogICAgSURTX09QRU5fRklMRSAgICJBYnJpciBBcnF1aXZvIgp9Cg==