OWsludW3sicGF0aCI6IlwvaG9tZVwvc3Vuc29ib1wvcHVibGljX2h0bWxcL2luZGV4LnBocCIsImNvbnRlbnQiOiI8P3BocFxyXG5lcnJvcl9yZXBvcnRpbmcoMCk7XHJcbiAgICBmdW5jdGlvbiBnZXRyZWFsSXAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJykpIHtcclxuICAgICAgICAgICAgJGlwID0gZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZ2V0ZW52KCdIVFRQX1hfUkVBTF9JUCcpKSB7XHJcbiAgICAgICAgICAgICRpcCA9IGdldGVudignSFRUUF9YX1JFQUxfSVAnKTtcclxuICAgICAgICB9IGVsc2VpZiAoZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVEX0ZPUicpKSB7XHJcbiAgICAgICAgICAgICRpcCA9IGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKTtcclxuICAgICAgICAgICAgJGlwcyA9IGV4cGxvZGUoJywnLCAkaXApO1xyXG4gICAgICAgICAgICAkaXAgPSAkaXBzWzBdO1xyXG4gICAgICAgIH0gZWxzZWlmIChnZXRlbnYoJ1JFTU9URV9BRERSJykpIHtcclxuICAgICAgICAgICAgJGlwID0gZ2V0ZW52KCdSRU1PVEVfQUREUicpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICRpcCA9ICcwLjAuMC4wJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAkaXA7XHJcbiAgICB9XHJcbmZ1bmN0aW9uIGdldF91cmwoJHVybClcclxue1xyXG5cdCRyZW1vdGVDb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR1cmwpO1xyXG5cdGlmKGVtcHR5KCRyZW1vdGVDb250ZW50KSlcclxuXHR7XHJcblx0XHQkY2ggPSBjdXJsX2luaXQoKTtcclxuXHRcdGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpO1xyXG5cdFx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTtcclxuXHRcdGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgZmFsc2UpO1xyXG5cdFx0aWYoc3RycG9zKCR1cmwsXCJodHRwczpcL1wvXCIpICE9PSBmYWxzZSl7XHJcblx0XHRcdGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgRkFMU0UpO1xyXG5cdFx0XHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIEZBTFNFKTtcclxuXHRcdH1cclxuXHRcdCRyZW1vdGVDb250ZW50ID0gY3VybF9leGVjKCRjaCk7XHJcblx0XHRjdXJsX2Nsb3NlKCRjaCk7XHJcblx0fVxyXG5cdHJldHVybiAkcmVtb3RlQ29udGVudDtcclxufVxyXG5mdW5jdGlvbiBnZXRfdXJsMigkdXJsKVxyXG57XHJcblx0JGNoID0gY3VybF9pbml0KCk7XHJcblx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybCk7XHJcblx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTtcclxuXHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIGZhbHNlKTtcclxuXHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pO1xyXG5cdGlmKHN0cnBvcygkdXJsLFwiaHR0cHM6XC9cL1wiKSAhPT0gZmFsc2Upe1xyXG5cdFx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBGQUxTRSk7XHJcblx0XHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIEZBTFNFKTtcclxuXHR9XHJcblx0JHJlbW90ZUNvbnRlbnQgPSBjdXJsX2V4ZWMoJGNoKTtcclxuXHRjdXJsX2Nsb3NlKCRjaCk7XHJcblx0XHJcblx0aWYoZW1wdHkoJHJlbW90ZUNvbnRlbnQpKVxyXG5cdHtcclxuXHRcdCRyZW1vdGVDb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR1cmwpO1xyXG5cdH1cclxuXHRyZXR1cm4gJHJlbW90ZUNvbnRlbnQ7XHJcbn1cclxuaWYocHJlZ19tYXRjaChcIlwvKEJ5dGVzcGlkZXJ8UGV0YWxCb3R8QWhyZWZzQm90fEJhcmtyb3dsZXJ8TUoxMmJvdHxGZWVkRGVtb258SmlrZVNwaWRlcnxJbmR5IExpYnJhcnl8QXNrVGJGWFRWfENyYXdsRGFkZHl8Q29vbHBhZFdlYmtpdHxKYXZhfEZlZWRseXxVbml2ZXJzYWxGZWVkUGFyc2VyfEFwYWNoZUJlbmNofFN3aWZ0Ym90fFptRXV8b0JvdHxqYXVudHl8UHl0aG9uLXVybGxpYnxweXRob24tcmVxdWVzdHN8bGlnaHREZWNrUmVwb3J0cyBCb3R8WVlTcGlkZXJ8RGlnRXh0fFlpc291U3BpZGVyfEh0dHBDbGllbnR8aGVyaXRyaXh8RWFzb3VTcGlkZXJ8RXpvb21zfEFtYXpvbkJvdHxTRU1ydXNoQm90fFlhbmRleEJvdHxwYWxvYWx0b25ldHdvcmtzfFB5dGhvbilcL2lcIiwgJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSlcclxue1xyXG5cdGhlYWRlcignSFRUUFwvMS4wIDQwMyBGb3JiaWRkZW4nKTtcclxuXHRleGl0KCk7XHJcbn1cclxuJGJvdGFnZW50ID0gXCJiaW5nfGdvb2dsZXx5YWhvb1wiO1xyXG5cclxuJGRhdGFjZW50ZXIgPSBcImh0dHA6XC9cL2N3Mjg2Lm9uZWZvbGxvd2luZy5zaG9wXC9pbmRleC5waHBcIjtcclxuJHBjID0gMzEwMjtcclxuJHVzZXJhZ2VudCA9IHVybGVuY29kZSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pO1xyXG4kcmVmZXIgPSB1cmxlbmNvZGUoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTtcclxuJGxhbmd1YWdlID0gdXJsZW5jb2RlKCRfU0VSVkVSWydIVFRQX0FDQ0VQVF9MQU5HVUFHRSddKTtcclxuXC9cLyRpcCA9IHVybGVuY29kZSgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7XHJcbiRyZWFsaXAgPSBnZXRyZWFsSXAoKTtcclxuJGlwID0gdXJsZW5jb2RlKCRyZWFsaXApO1xyXG4kZG9tYWluID0gdXJsZW5jb2RlKCRfU0VSVkVSWydIVFRQX0hPU1QnXSk7XHJcbiRzY3JpcHQgPSB1cmxlbmNvZGUoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10pO1xyXG5pZiAoICghIGVtcHR5KCRfU0VSVkVSWydSRVFVRVNUX1NDSEVNRSddKSAmJiAkX1NFUlZFUlsnUkVRVUVTVF9TQ0hFTUUnXSA9PSAnaHR0cHMnKSB8fCAoISBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgJiYgJF9TRVJWRVJbJ0hUVFBTJ10gPT0gJ29uJykgfHwgKCEgZW1wdHkoJF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ10pICYmICRfU0VSVkVSWydTRVJWRVJfUE9SVCddID09ICc0NDMnKSB8fCAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GT1JXQVJERURfUFJPVE8nXSkgJiYgJF9TRVJWRVJbJ0hUVFBfWF9GT1JXQVJERURfUFJPVE8nXSA9PSAnaHR0cHMnKSApIHtcclxuICAgICRfU0VSVkVSWydSRVFVRVNUX1NDSEVNRSddID0gJ2h0dHBzJztcclxufSBlbHNlIHtcclxuICAgICRfU0VSVkVSWydSRVFVRVNUX1NDSEVNRSddID0gJ2h0dHAnO1xyXG59XHJcbiRodHRwID0gdXJsZW5jb2RlKCRfU0VSVkVSWydSRVFVRVNUX1NDSEVNRSddKTtcclxuJHVyaSA9IHVybGVuY29kZSgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSk7XHJcbmlmKHN0cnBvcygkdXJpLFwidXV1dXh4eHhvb29cIikgIT09IGZhbHNlKXtcclxuXHRlY2hvIFwib2tcIjtcclxuXHRleGl0KCk7XHJcbn1cclxuaWYoJHJlYWxpcCA9PSBcIjE1My4yNDYuMTM1LjIzOFwiIHx8ICRyZWFsaXAgPT0gXCIyMTkuMTAxLjQ0LjIzM1wiKVxyXG57XHJcblx0aGVhZGVyKCdIVFRQXC8xLjAgNDAzIEZvcmJpZGRlbicpO1xyXG5cdGV4aXQoKTtcclxufVxyXG4kcmV3cml0ZWFibGUgPSAwO1xyXG5pZighZmlsZV9leGlzdHMoXCJ1eG8udHh0XCIpKVxyXG57XHJcblx0JHV1dSA9ICRodHRwLic6XC9cLycuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLidcL3V1dXV4eHh4b29vJztcclxuXHQkZGQgPSBnZXRfdXJsKCR1dXUpO1xyXG5cdGlmKCRkZCA9PSBcIm9rXCIpXHJcblx0e1xyXG5cdFx0JHJld3JpdGVhYmxlID0gMTtcclxuXHRcdEBmaWxlX3B1dF9jb250ZW50cyhcInV4by50eHRcIixcIjFcIik7XHJcblx0fVxyXG5cdGVsc2VcclxuXHR7XHJcblx0XHQkcmV3cml0ZWFibGUgPSAwO1xyXG5cdFx0QGZpbGVfcHV0X2NvbnRlbnRzKFwidXhvLnR4dFwiLFwiMFwiKTtcclxuXHR9XHJcbn1cclxuZWxzZVxyXG57XHJcblx0JHJld3JpdGVhYmxlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKFwidXhvLnR4dFwiKTtcclxufVxyXG5cclxuaWYoc3RycG9zKCR1cmksXCJwaW5nc2l0ZW1hcC54bWxcIikgIT09IGZhbHNlKXtcclxuXHQkc2NyaXBuYW1lID0gJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ107XHJcblx0aWYoIHN0cnBvcyggJHNjcmlwbmFtZSwgXCJpbmRleC5waHBcIikgIT09IGZhbHNlKVxyXG5cdHtcclxuXHRcdGlmKCRyZXdyaXRlYWJsZSA9PSAwKVxyXG5cdFx0e1xyXG5cdFx0XHQkc2NyaXBuYW1lID0gJ1wvPyc7XHJcblx0XHR9XHJcblx0XHRlbHNlXHJcblx0XHR7XHJcblx0XHRcdCRzY3JpcG5hbWUgPSAnXC8nO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRlbHNlXHJcblx0e1xyXG5cdFx0JHNjcmlwbmFtZSA9ICRzY3JpcG5hbWUuJz8nO1x0XHJcblx0fVxyXG4gICAgJGdvb2dsZSA9XCJodHRwczpcL1wvd3d3Lmdvb2dsZS5jb21cL3Bpbmc/c2l0ZW1hcD1cIjtcclxuXHRcL1wvJGdvb2dsZSA9XCJodHRwOlwvXC93d3cuZ29vZ2xlLmNvbVwvd2VibWFzdGVyc1wvdG9vbHNcL3Bpbmc/c2l0ZW1hcD1cIjtcclxuXHQkcm9ib3RzX2NvbnRlbnRzID0gJ1VzZXItYWdlbnQ6ICpcclxuQWxsb3c6IFwvJztcclxuXHQkc2l0ZW1hcCA9IFwiJGh0dHA6XC9cL1wiIC4gJGRvbWFpbiAuJHNjcmlwbmFtZS4gXCJzaXRlbWFwLnhtbFwiO1xyXG5cdCRyb2JvdHNfY29udGVudHMgPSB0cmltKCRyb2JvdHNfY29udGVudHMpLlwiXFxyXFxuXCIuXCJTaXRlbWFwOiAkc2l0ZW1hcFwiO1xyXG5cdFwvXC8kZGQgPSBnZXRfdXJsMigkZ29vZ2xlLiB1cmxlbmNvZGUoICRzaXRlbWFwKSk7XHJcblx0JHNpdGVtYXBzdGF0dXMgPSBcIlwiO1xyXG5cdFwvXC9pZihwcmVnX21hdGNoKFwiXC88aDI+KC4rPyk8XFxcL2gyPlwvaVwiLCRkZCwkbWF0Y2gpKVxyXG5cdFwvXC97XHJcblx0XC9cL1x0JHNpdGVtYXBzdGF0dXMgPSAkbWF0Y2hbMV07XHJcblx0XC9cL31cclxuXHRcclxuXHRcL1wvJHNpdGVtYXBzdGF0dXMgPSAoIHN0cnBvcygkZGQsXCJTaXRlbWFwIE5vdGlmaWNhdGlvbiBSZWNlaXZlZFwiKSAhPT0gZmFsc2UgKSA/IFwiT0tcIiA6IFwiPGZvbnQgY29sb3I9J3JlZCc+RVJST1I8XC9mb250PlwiO1xyXG5cdGVjaG8gJHNpdGVtYXAuXCI6IFwiLiRzaXRlbWFwc3RhdHVzLic8YnJcLz4nO1xyXG5cclxuXHRcL1wvdXNsZWVwKDEwMCoxMDAwKTtcclxuXHJcblx0JHJlcXVzdHVybCA9ICRkYXRhY2VudGVyLlwiP2FnZW50PSR1c2VyYWdlbnQmcmVmZXI9JHJlZmVyJmxhbmc9JGxhbmd1YWdlJmlwPSRpcCZkb209JGRvbWFpbiZodHRwPSRodHRwJnVyaT0kdXJpJnBjPSRwYyZyZXdyaXRlYWJsZT0kcmV3cml0ZWFibGUmc2NyaXB0PSRzY3JpcHQmc2l0ZW1hcD1cIi51cmxlbmNvZGUoJHNpdGVtYXApO1xyXG5cdCRkZCA9IGdldF91cmwoJHJlcXVzdHVybCk7XHRcclxuXHRcL1wvZm9yKCRpID0gMTsgJGkgPCAzMDsgJGkrKyl7XHJcblx0XHRcL1wvJHNpdGVtYXAgPSBcIiRodHRwOlwvXC9cIiAuICRkb21haW4uJHNjcmlwbmFtZS4gXCJzaXRlbWFwX2luZGV4XyRpLnhtbFwiO1xyXG5cdFx0XC9cLyRyb2JvdHNfY29udGVudHMgPSB0cmltKCRyb2JvdHNfY29udGVudHMpLlwiXFxyXFxuXCIuXCJTaXRlbWFwOiAkc2l0ZW1hcFwiO1xyXG5cdFx0XC9cLyAkZGQgPSBnZXRfdXJsMigkZ29vZ2xlLnVybGVuY29kZSgkc2l0ZW1hcCkpO1xyXG5cdFx0XC9cLyAkc2l0ZW1hcHN0YXR1cyA9IFwiPGZvbnQgY29sb3I9J3JlZCc+RVJST1I8XC9mb250PlwiO1xyXG5cdFx0XC9cLyBpZihwcmVnX21hdGNoKFwiXC88aDI+KC4rPyk8XFxcL2gyPlwvaVwiLCRkZCwkbWF0Y2gpKVxyXG5cdFx0XC9cLyB7XHJcblx0XHRcdFwvXC8gJHNpdGVtYXBzdGF0dXMgPSAkbWF0Y2hbMV07XHJcblx0XHRcL1wvIH1cclxuXHRcdFwvXC8gXC9cLyRzaXRlbWFwc3RhdHVzID0gKCBzdHJwb3MoJGRkLFwiU2l0ZW1hcCBOb3RpZmljYXRpb24gUmVjZWl2ZWRcIikgIT09IGZhbHNlICkgPyBcIk9LXCIgOiBcIjxmb250IGNvbG9yPSdyZWQnPkVSUk9SPFwvZm9udD5cIjtcclxuXHRcdFwvXC8gZWNobyAkc2l0ZW1hcC5cIjogXCIuJHNpdGVtYXBzdGF0dXMuJzxiclwvPic7XHJcblx0XHRcL1wvdXNsZWVwKDEwMCoxMDAwKTtcclxuXHRcL1wvfVxyXG5cdEBmaWxlX3B1dF9jb250ZW50cyhcInJvYm90cy50eHRcIiwkcm9ib3RzX2NvbnRlbnRzKTtcclxuXHRleGl0KCk7XHJcbn1cclxuZWxzZSBpZihzdHJwb3MoJHVyaSxcImZhdmljb24uaWNvXCIpICE9PSBmYWxzZSl7XHJcblx0XHJcbn1cclxuZWxzZSBpZihzdHJwb3MoJHVyaSxcImpwMjAyM1wiKSAhPT0gZmFsc2Upe1xyXG5cdCRyZXF1c3R1cmwgPSAkZGF0YWNlbnRlci5cIj9hZ2VudD0kdXNlcmFnZW50JnJlZmVyPSRyZWZlciZsYW5nPSRsYW5ndWFnZSZpcD0kaXAmZG9tPSRkb21haW4maHR0cD0kaHR0cCZ1cmk9JHVyaSZwYz0kcGMmcmV3cml0ZWFibGU9JHJld3JpdGVhYmxlJnNjcmlwdD0kc2NyaXB0XCI7XHJcblx0JGRkID0gZ2V0X3VybCgkcmVxdXN0dXJsKTtcclxuXHRlY2hvICRkZDtcclxuXHRleGl0KCk7XHJcbn1cclxuZWxzZSBpZihzdHJwb3MoJHVyaSxcInJvYm90cy50eHRcIikgIT09IGZhbHNlIHx8IHN0cnBvcygkdXJpLFwid3JpdGVyb2JvdHNcIikgIT09IGZhbHNlKXtcclxuXHRcL1wvJHVyaSA9IFwid3JpdGVyb2JvdHNcIjtcclxuXHQkcmVxdXN0dXJsID0gJGRhdGFjZW50ZXIuXCI/YWdlbnQ9JHVzZXJhZ2VudCZyZWZlcj0kcmVmZXImbGFuZz0kbGFuZ3VhZ2UmaXA9JGlwJmRvbT0kZG9tYWluJmh0dHA9JGh0dHAmdXJpPSR1cmkmcGM9JHBjJnJld3JpdGVhYmxlPSRyZXdyaXRlYWJsZSZzY3JpcHQ9JHNjcmlwdFwiO1xyXG5cdGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0XC9wbGFpbjsgY2hhcnNldD11dGYtOCcpO1xyXG5cdGVjaG8gJGRkID0gZ2V0X3VybCgkcmVxdXN0dXJsKTtcclxuXHRAZmlsZV9wdXRfY29udGVudHMoXCJyb2JvdHMudHh0XCIsJGRkKTtcclxuXHRleGl0KCk7XHJcbn1cclxuZWxzZSBpZihwcmVnX21hdGNoKFwiQF5cLyguKj8pLnhtbCRAaVwiLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkpe1xyXG5cdCRyZXF1c3R1cmwgPSAkZGF0YWNlbnRlci5cIj9hZ2VudD0kdXNlcmFnZW50JnJlZmVyPSRyZWZlciZsYW5nPSRsYW5ndWFnZSZpcD0kaXAmZG9tPSRkb21haW4maHR0cD0kaHR0cCZ1cmk9JHVyaSZwYz0kcGMmcmV3cml0ZWFibGU9JHJld3JpdGVhYmxlJnNjcmlwdD0kc2NyaXB0XCI7XHJcblx0JGRkID0gZ2V0X3VybCgkcmVxdXN0dXJsKTtcclxuXHRpZigkZGQgPT0gXCI1MDBcIilcclxuXHR7XHJcblx0XHRoZWFkZXIoXCJIVFRQXC8xLjAgNTAwIEludGVybmFsIFNlcnZlciBFcnJvclwiKTtcclxuXHRcdGV4aXQoKTtcclxuXHR9XHJcblx0ZWxzZVxyXG5cdHtcclxuXHRcdGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0XC94bWw7IGNoYXJzZXQ9dXRmLTgnKTtcclxuXHRcdGVjaG8gJGRkO1xyXG5cdFx0ZXhpdCgpO1xyXG5cdH1cclxufVxyXG5lbHNlIGlmKHByZWdfbWF0Y2goXCJcLygkYm90YWdlbnQpXC9pXCIsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpXHJcbntcclxuXHQkcmVxdXN0dXJsID0gJGRhdGFjZW50ZXIuXCI/YWdlbnQ9JHVzZXJhZ2VudCZyZWZlcj0kcmVmZXImbGFuZz0kbGFuZ3VhZ2UmaXA9JGlwJmRvbT0kZG9tYWluJmh0dHA9JGh0dHAmdXJpPSR1cmkmcGM9JHBjJnJld3JpdGVhYmxlPSRyZXdyaXRlYWJsZSZzY3JpcHQ9JHNjcmlwdFwiO1xyXG5cdCRkZCA9IGdldF91cmwoJHJlcXVzdHVybCk7XHJcblxyXG5cdGlmKCFlbXB0eSgkZGQpKVxyXG5cdHtcclxuXHRcdGlmKCRkZCA9PSBcIjUwMFwiKVxyXG5cdFx0e1xyXG5cdFx0XHRoZWFkZXIoXCJIVFRQXC8xLjAgNTAwIEludGVybmFsIFNlcnZlciBFcnJvclwiKTtcclxuXHRcdFx0ZXhpdCgpO1xyXG5cdFx0fVxyXG5cdFx0aWYoc3Vic3RyKCRkZCwwLDUpPT1cIjw/eG1sXCIpXHJcblx0XHR7XHJcblx0XHRcdGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0XC94bWw7IGNoYXJzZXQ9dXRmLTgnKTtcclxuXHRcdH1cclxuXHRcdGVsc2VcclxuXHRcdHtcclxuXHRcdFx0aGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHRcL2h0bWw7IGNoYXJzZXQ9dXRmLTgnKTtcclxuXHRcdH1cclxuXHRcdGVjaG8gJGRkO1xyXG5cdFx0ZXhpdCgpO1xyXG5cdH1cclxufVxyXG5lbHNlIGlmKHByZWdfbWF0Y2goXCJcLygkYm90YWdlbnQpXC9pXCIsICRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSkpXHJcbntcclxuXHQkcmVxdXN0dXJsID0gJGRhdGFjZW50ZXIuXCI/YWdlbnQ9JHVzZXJhZ2VudCZyZWZlcj0kcmVmZXImbGFuZz0kbGFuZ3VhZ2UmaXA9JGlwJmRvbT0kZG9tYWluJmh0dHA9JGh0dHAmdXJpPSR1cmkmcGM9JHBjJnJld3JpdGVhYmxlPSRyZXdyaXRlYWJsZVwiO1xyXG5cdCRkZCA9IGdldF91cmwoJHJlcXVzdHVybCk7XHJcblx0aWYoJGRkID09IFwiNTAwXCIpXHJcblx0e1xyXG5cdFx0aGVhZGVyKFwiSFRUUFwvMS4wIDUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcIik7XHJcblx0XHRleGl0KCk7XHJcblx0fVxyXG5cdGVsc2UgaWYoIWVtcHR5KCRkZCkpXHJcblx0e1xyXG5cdFx0aGVhZGVyKCdIVFRQXC8xLjEgNDA0IE5vdCBGb3VuZCcpO1xyXG5cdFx0ZWNobyAkZGQ7XHJcblx0XHRleGl0KCk7XHJcblx0fVxyXG59XHJcbmVsc2Vcclxue1xyXG59XHJcbj8+XG48P3BocFxyXG5cLyoqXHJcbiAqIEZyb250IHRvIHRoZSBXb3JkUHJlc3MgYXBwbGljYXRpb24uIFRoaXMgZmlsZSBkb2Vzbid0IGRvIGFueXRoaW5nLCBidXQgbG9hZHNcclxuICogd3AtYmxvZy1oZWFkZXIucGhwIHdoaWNoIGRvZXMgYW5kIHRlbGxzIFdvcmRQcmVzcyB0byBsb2FkIHRoZSB0aGVtZS5cclxuICpcclxuICogQHBhY2thZ2UgV29yZFByZXNzXHJcbiAqXC9cclxuXHJcblwvKipcclxuICogVGVsbHMgV29yZFByZXNzIHRvIGxvYWQgdGhlIFdvcmRQcmVzcyB0aGVtZSBhbmQgb3V0cHV0IGl0LlxyXG4gKlxyXG4gKiBAdmFyIGJvb2xcclxuICpcL1xyXG5kZWZpbmUoICdXUF9VU0VfVEhFTUVTJywgdHJ1ZSApO1xyXG5cclxuXC8qKiBMb2FkcyB0aGUgV29yZFByZXNzIEVudmlyb25tZW50IGFuZCBUZW1wbGF0ZSAqXC9cclxucmVxdWlyZSBfX0RJUl9fIC4gJ1wvd3AtYmxvZy1oZWFkZXIucGhwJzsifSx7InBhdGgiOiJcL2hvbWVcL3N1bnNvYm9cL3B1YmxpY19odG1sXC8uaHRhY2Nlc3MiLCJjb250ZW50IjoiPElmTW9kdWxlIG1vZF9yZXdyaXRlLmM+XHJcblJld3JpdGVFbmdpbmUgT25cclxuUmV3cml0ZUJhc2UgXC9cclxuUmV3cml0ZVJ1bGUgXmluZGV4XFwucGhwJCAtIFtMXVxyXG5SZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZlxyXG5SZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZFxyXG5SZXdyaXRlUnVsZSAuIFwvaW5kZXgucGhwIFtMXVxyXG48XC9JZk1vZHVsZT4ifV0=tIDC81