3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ · data · qwe?styles.css?5?2
{
    "qwe?styles.css?5?2": "base64:cHJvbWlzZTpuLnByb21pc2UscmVhc29uOm4ucmVqZWN0aW9ufSk7ci5pbnZva2UoaSl9fSkpfX10LlByb21pc2VSZWplY3Rpb25FdmVudCYmKGVbZCgidW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvbkhhbmRsZXIiKV09bigidW5oYW5kbGVkcmVqZWN0aW9uIiksZVtkKCJyZWplY3Rpb25IYW5kbGVkSGFuZGxlciIpXT1uKCJyZWplY3Rpb25oYW5kbGVkIikpfSkpfSgpfSwiMGVlZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsaT1vJiYhci5jYWxsKHsxOjJ9LDEpO2UuZj1pP2Z1bmN0aW9uKHQpe3ZhciBlPW8odGhpcyx0KTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06cn0sIjBvdWciOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoIml0ZXJhdG9yIil9LCIwcnZyIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZ2xyayIpLG89bigiTzc0MSIpO3QuZXhwb3J0cz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgdCxlPSExLG49e307dHJ5eyh0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIikuc2V0KS5jYWxsKG4sW10pLGU9biBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKGkpe31yZXR1cm4gZnVuY3Rpb24obixpKXtyZXR1cm4gcihuKSxvKGkpLGU/dC5jYWxsKG4saSk6bi5fX3Byb3RvX189aSxufX0oKTp2b2lkIDApfSwxOmZ1bmN0aW9uKHQsZSxuKXtuKCJtUklxIiksdC5leHBvcnRzPW4oImhOL2ciKX0sIjE0U2wiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiWDJVKyIpLG89bigiYnVzRSIpLGk9bigiMERreSIpLGE9bigidGlLcCIpLGM9bigia21NViIpLHU9YSgic3BlY2llcyIpLHM9IWkoKGZ1bmN0aW9uKCl7dmFyIHQ9Ly4vO3JldHVybiB0LmV4ZWM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdC5ncm91cHM9e2E6IjcifSx0fSwiNyIhPT0iIi5yZXBsYWNlKHQsIiQ8YT4iKX0pKSxmPSFpKChmdW5jdGlvbigpe3ZhciB0PS8oPzopLyxlPXQuZXhlYzt0LmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBuPSJhYiIuc3BsaXQodCk7cmV0dXJuIDIhPT1uLmxlbmd0aHx8ImEiIT09blswXXx8ImIiIT09blsxXX0pKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sbCl7dmFyIHA9YSh0KSxoPSFpKChmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlW3BdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW3RdKGUpfSkpLHY9aCYmIWkoKGZ1bmN0aW9uKCl7dmFyIGU9ITEsbj0vYS87cmV0dXJuIG4uZXhlYz1mdW5jdGlvbigpe3JldHVybiBlPSEwLG51bGx9LCJzcGxpdCI9PT10JiYobi5jb25zdHJ1Y3Rvcj17fSxuLmNvbnN0cnVjdG9yW3VdPWZ1bmN0aW9uKCl7cmV0dXJuIG59KSxuW3BdKCIiKSwhZX0pKTtpZighaHx8IXZ8fCJyZXBsYWNlIj09PXQmJiFzfHwic3BsaXQiPT09dCYmIWYpe3ZhciBkPS8uL1twXSxnPW4ocCwiIlt0XSwoZnVuY3Rpb24odCxlLG4scixvKXtyZXR1cm4gZS5leGVjPT09Yz9oJiYhbz97ZG9uZTohMCx2YWx1ZTpkLmNhbGwoZSxuLHIpfTp7ZG9uZTohMCx2YWx1ZTp0LmNhbGwobixlLHIpfTp7ZG9uZTohMX19KSkseT1nWzFdO28oU3RyaW5nLnByb3RvdHlwZSx0LGdbMF0pLG8oUmVnRXhwLnByb3RvdHlwZSxwLDI9PWU/ZnVuY3Rpb24odCxlKXtyZXR1cm4geS5jYWxsKHQsdGhpcyxlKX06ZnVuY3Rpb24odCl7cmV0dXJuIHkuY2FsbCh0LHRoaXMpfSksbCYmcihSZWdFeHAucHJvdG90eXBlW3BdLCJzaGFtIiwhMCl9fX0sIjFFNXoiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJtL0w4IikuZixvPW4oIlVUVlMiKSxpPW4oInRpS3AiKSgidG9TdHJpbmdUYWciKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3QmJiFvKHQ9bj90OnQucHJvdG90eXBlLGkpJiZyKHQsaSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmV9KX19LCIxWS9uIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSEF1TSIpLG89bigiZXd2VyIpLGk9bigiUkszdCIpLGE9bigiVU1TUSIpLGM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixjLHUpe3Iobik7dmFyIHM9byhlKSxmPWkocyksbD1hKHMubGVuZ3RoKSxwPXQ/bC0xOjAsaD10Py0xOjE7aWYoYzwyKWZvcig7Oyl7aWYocCBpbiBmKXt1PWZbcF0scCs9aDticmVha31pZihwKz1oLHQ/cDwwOmw8PXApdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDt0P3A+PTA6bD5wO3ArPWgpcCBpbiBmJiYodT1uKHUsZltwXSxwLHMpKTtyZXR1cm4gdX19O3QuZXhwb3J0cz17bGVmdDpjKCExKSxyaWdodDpjKCEwKX19LCIyQStkIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiL0dxVSIpLGk9bigiVU1TUSIpO3Ioe3RhcmdldDoiU3RyaW5nIixzdGF0OiEwfSx7cmF3OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1vKHQucmF3KSxuPWkoZS5sZW5ndGgpLHI9YXJndW1lbnRzLmxlbmd0aCxhPVtdLGM9MDtuPmM7KWEucHVzaChTdHJpbmcoZVtjKytdKSksYzxyJiZhLnB1c2goU3RyaW5nKGFyZ3VtZW50c1tjXSkpO3JldHVybiBhLmpvaW4oIiIpfX0pfSwiMkIxUiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJ0eWNSIikubWFwO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohbigiSGQ1ZiIpKCJtYXAiKX0se21hcDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSwiMm9SbyI6ZnVuY3Rpb24odCxlKXt2YXIgbj0ib2JqZWN0IixyPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PU1hdGgmJnR9O3QuZXhwb3J0cz1yKHR5cGVvZiBnbG9iYWxUaGlzPT1uJiZnbG9iYWxUaGlzKXx8cih0eXBlb2Ygd2luZG93PT1uJiZ3aW5kb3cpfHxyKHR5cGVvZiBzZWxmPT1uJiZzZWxmKXx8cih0eXBlb2YgZ2xvYmFsPT1uJiZnbG9iYWwpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfSwiMzNXaCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInlvUmciKSxvPW4oImVEbCsiKTt0LmV4cG9ydHM9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3JldHVybiByKHQsbyl9fSwiM0kxUiI6ZnVuY3Rpb24odCxlLG4pe24oImRHL24iKSgiaGFzSW5zdGFuY2UiKX0sIjNLZ1YiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJ1eTgzIiksaT1uKCIwRGt5IiksYT1uKCJoaDF2IiksYz1uKCI4WU9hIikub25GcmVlemUsdT1PYmplY3QuZnJlZXplO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDppKChmdW5jdGlvbigpe3UoMSl9KSksc2hhbTohb30se2ZyZWV6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdSYmYSh0KT91KGModCkpOnR9fSl9LCIzYkJaIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMm9SbyIpLG89bigiL2J5dCIpLGk9bigiNG1EbSIpLGE9bigiWDJVKyIpLGM9bigidGlLcCIpLHU9YygiaXRlcmF0b3IiKSxzPWMoInRvU3RyaW5nVGFnIiksZj1pLnZhbHVlcztmb3IodmFyIGwgaW4gbyl7dmFyIHA9cltsXSxoPXAmJnAucHJvdG90eXBlO2lmKGgpe2lmKGhbdV0hPT1mKXRyeXthKGgsdSxmKX1jYXRjaChkKXtoW3VdPWZ9aWYoaFtzXXx8YShoLHMsbCksb1tsXSlmb3IodmFyIHYgaW4gaSlpZihoW3ZdIT09aVt2XSl0cnl7YShoLHYsaVt2XSl9Y2F0Y2goZCl7aFt2XT1pW3ZdfX19fSwiNEJyZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJnNnYvIiksaT1uKCIyb1JvIiksYT1uKCJVVFZTIiksYz1uKCJoaDF2IiksdT1uKCJtL0w4IikuZixzPW4oIjZKTnEiKSxmPWkuU3ltYm9sO2lmKG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBmJiYoISgiZGVzY3JpcHRpb24iaW4gZi5wcm90b3R5cGUpfHx2b2lkIDAhPT1mKCkuZGVzY3JpcHRpb24pKXt2YXIgbD17fSxwPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aDwxfHx2b2lkIDA9PT1hcmd1bWVudHNbMF0/dm9pZCAwOlN0cmluZyhhcmd1bWVudHNbMF0pLGU9dGhpcyBpbnN0YW5jZW9mIHA/bmV3IGYodCk6dm9pZCAwPT09dD9mKCk6Zih0KTtyZXR1cm4iIj09PXQmJihsW2VdPSEwKSxlfTtzKHAsZik7dmFyIGg9cC5wcm90b3R5cGU9Zi5wcm90b3R5cGU7aC5jb25zdHJ1Y3Rvcj1wO3ZhciB2PWgudG9TdHJpbmcsZD0iU3ltYm9sKHRlc3QpIj09U3RyaW5nKGYoInRlc3QiKSksZz0vXlN5bWJvbFwoKC4qKVwpW14pXSskLzt1KGgsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PWModGhpcyk/dGhpcy52YWx1ZU9mKCk6dGhpcyxlPXYuY2FsbCh0KTtpZihhKGwsdCkpcmV0dXJuIiI7dmFyIG49ZD9lLnNsaWNlKDcsLTEpOmUucmVwbGFjZShnLCIkMSIpO3JldHVybiIiPT09bj92b2lkIDA6bn19KSxyKHtnbG9iYWw6ITAsZm9yY2VkOiEwfSx7U3ltYm9sOnB9KX19LCI0SENpIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMERreSIpLG89bigiV0prSiIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcigoZnVuY3Rpb24oKXtyZXR1cm4hIW9bdF0oKXx8IuKAi8KF4aCOIiE9IuKAi8KF4aCOIlt0XSgpfHxvW3RdLm5hbWUhPT10fSkpfX0sIjRXT0QiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJVVFZTIiksbz1uKCJld3ZXIiksaT1uKCI5M0kwIiksYT1uKCI0WGV0IiksYz1pKCJJRV9QUk9UTyIpLHU9T2JqZWN0LnByb3RvdHlwZTt0LmV4cG9ydHM9YT9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9byh0KSxyKHQsYyk/dFtjXToiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25zdHJ1Y3RvciYmdCBpbnN0YW5jZW9mIHQuY29uc3RydWN0b3I/dC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6dCBpbnN0YW5jZW9mIE9iamVjdD91Om51bGx9fSwiNFhldCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKTt0LmV4cG9ydHM9IXIoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IHQpIT09dC5wcm90b3R5cGV9KSl9LCI0aDBZIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiaGgxdiIpLGE9T2JqZWN0LmlzRnJvemVuO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe2EoMSl9KSl9LHtpc0Zyb3plbjpmdW5jdGlvbih0KXtyZXR1cm4haSh0KXx8ISFhJiZhKHQpfX0pfSwiNGw2MyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjVZT1EiKTtyKHtnbG9iYWw6ITAsZm9yY2VkOnBhcnNlSW50IT1vfSx7cGFyc2VJbnQ6b30pfSwiNG1EbSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIvR3FVIiksbz1uKCJSTklzIiksaT1uKCJQNHkxIiksYT1uKCJhZk84IiksYz1uKCJmZEF5IiksdT1hLnNldCxzPWEuZ2V0dGVyRm9yKCJBcnJheSBJdGVyYXRvciIpO3QuZXhwb3J0cz1jKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKHQsZSl7dSh0aGlzLHt0eXBlOiJBcnJheSBJdGVyYXRvciIsdGFyZ2V0OnIodCksaW5kZXg6MCxraW5kOmV9KX0pLChmdW5jdGlvbigpe3ZhciB0PXModGhpcyksZT10LnRhcmdldCxuPXQua2luZCxyPXQuaW5kZXgrKztyZXR1cm4hZXx8cj49ZS5sZW5ndGg/KHQudGFyZ2V0PXZvaWQgMCx7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KToia2V5cyI9PW4/e3ZhbHVlOnIsZG9uZTohMX06InZhbHVlcyI9PW4/e3ZhbHVlOmVbcl0sZG9uZTohMX06e3ZhbHVlOltyLGVbcl1dLGRvbmU6ITF9fSksInZhbHVlcyIpLGkuQXJndW1lbnRzPWkuQXJyYXksbygia2V5cyIpLG8oInZhbHVlcyIpLG8oImVudHJpZXMiKX0sIjRvVS8iOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIikuaXNGaW5pdGU7dC5leHBvcnRzPU51bWJlci5pc0Zpbml0ZXx8ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZyKHQpfX0sIjRzeXciOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJidXNFIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIG8gaW4gZSlyKHQsbyxlW29dLG4pO3JldHVybiB0fX0sIjVENW8iOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCIwRGt5IiksaT1uKCJoaDF2IiksYT1PYmplY3QuaXNTZWFsZWQ7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOm8oKGZ1bmN0aW9uKCl7YSgxKX0pKX0se2lzU2VhbGVkOmZ1bmN0aW9uKHQpe3JldHVybiFpKHQpfHwhIWEmJmEodCl9fSl9LCI1RG1XIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiL0dxVSIpLGE9bigiQnM4ViIpLmYsYz1uKCJnNnYvIiksdT1vKChmdW5jdGlvbigpe2EoMSl9KSk7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFjfHx1LHNoYW06IWN9LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gYShpKHQpLGUpfX0pfSwiNVlPUSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIldLaUgiKS50cmltLGk9bigiV0prSiIpLGE9ci5wYXJzZUludCxjPS9eWystXT8wW1h4XS8sdT04IT09YShpKyIwOCIpfHwyMiE9PWEoaSsiMHgxNiIpO3QuZXhwb3J0cz11P2Z1bmN0aW9uKHQsZSl7dmFyIG49byhTdHJpbmcodCkpO3JldHVybiBhKG4sZT4+PjB8fChjLnRlc3Qobik/MTY6MTApKX06YX0sIjVZeisiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiL0dxVSIpLG89bigicHBHQiIpLGk9bigiVU1TUSIpLGE9bigic3dGTCIpLGM9TWF0aC5taW4sdT1bXS5sYXN0SW5kZXhPZixzPSEhdSYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MCxmPWEoImxhc3RJbmRleE9mIik7dC5leHBvcnRzPXN8fGY/ZnVuY3Rpb24odCl7aWYocylyZXR1cm4gdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGU9cih0aGlzKSxuPWkoZS5sZW5ndGgpLGE9bi0xO2Zvcihhcmd1bWVudHMubGVuZ3RoPjEmJihhPWMoYSxvKGFyZ3VtZW50c1sxXSkpKSxhPDAmJihhPW4rYSk7YT49MDthLS0paWYoYSBpbiBlJiZlW2FdPT09dClyZXR1cm4gYXx8MDtyZXR1cm4tMX06dX0sIjVtZHUiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm57ZXJyb3I6ITEsdmFsdWU6dCgpfX1jYXRjaChlKXtyZXR1cm57ZXJyb3I6ITAsdmFsdWU6ZX19fX0sIjVzK24iOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbyxpLGEsYz1uKCJJK2ViIiksdT1uKCJ4REJSIikscz1uKCIyb1JvIiksZj1uKCJRbzlsIiksbD1uKCIvcW1uIikscD1uKCJidXNFIiksaD1uKCI0c3l3Iiksdj1uKCIxRTV6IiksZD1uKCJKaVpiIiksZz1uKCJoaDF2IikseT1uKCJIQXVNIiksYj1uKCJHYXJVIiksbT1uKCJ4cllLIiksaz1uKCJJbVpOIiksXz1uKCJISDRvIiksdz1uKCJTRUJoIikseD1uKCJMUFNTIikuc2V0LFM9bigidFhVZyIpLEU9bigiemZuZCIpLE89bigiUk42YyIpLFQ9bigiOEdsTCIpLEk9bigiNW1kdSIpLGo9bigiczVwRSIpLE09bigiYWZPOCIpLFA9bigibE1xNSIpLEQ9bigidGlLcCIpKCJzcGVjaWVzIiksUj1NLmdldCxOPU0uc2V0LEE9TS5nZXR0ZXJGb3IoIlByb21pc2UiKSxMPWwsRj1zLlR5cGVFcnJvcix6PXMuZG9jdW1lbnQsWj1zLnByb2Nlc3MsQz1zLmZldGNoLFc9WiYmWi52ZXJzaW9ucyxHPVcmJlcudjh8fCIiLFU9VC5mLEg9VSxCPSJwcm9jZXNzIj09bShaKSxLPSEhKHomJnouY3JlYXRlRXZlbnQmJnMuZGlzcGF0Y2hFdmVudCksVj1QKCJQcm9taXNlIiwoZnVuY3Rpb24oKXt2YXIgdD1MLnJlc29sdmUoMSksZT1mdW5jdGlvbigpe30sbj0odC5jb25zdHJ1Y3Rvcj17fSlbRF09ZnVuY3Rpb24odCl7dChlLGUpfTtyZXR1cm4hKChCfHwiZnVuY3Rpb24iPT10eXBlb2YgUHJvbWlzZVJlamVjdGlvbkV2ZW50KSYmKCF1fHx0LmZpbmFsbHkpJiZ0LnRoZW4oZSlpbnN0YW5jZW9mIG4mJjAhPT1HLmluZGV4T2YoIjYuNiIpJiYtMT09PWouaW5kZXhPZigiQ2hyb21lLzY2IikpfSkpLFg9Vnx8IV8oKGZ1bmN0aW9uKHQpe0wuYWxsKHQpLmNhdGNoKChmdW5jdGlvbigpe30pKX0pKSxZPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiEoIWcodCl8fCJmdW5jdGlvbiIhPXR5cGVvZihlPXQudGhlbikpJiZlfSxxPWZ1bmN0aW9uKHQsZSxuKXtpZighZS5ub3RpZmllZCl7ZS5ub3RpZmllZD0hMDt2YXIgcj1lLnJlYWN0aW9ucztTKChmdW5jdGlvbigpe2Zvcih2YXIgbz1lLnZhbHVlLGk9MT09ZS5zdGF0ZSxhPTA7ci5sZW5ndGg+YTspe3ZhciBjLHUscyxmPXJbYSsrXSxsPWk/Zi5vazpmLmZhaWwscD1mLnJlc29sdmUsaD1mLnJlamVjdCx2PWYuZG9tYWluO3RyeXtsPyhpfHwoMj09PWUucmVqZWN0aW9uJiZ0dCh0LGUpLGUucmVqZWN0aW9uPTEpLCEwPT09bD9jPW86KHYmJnYuZW50ZXIoKSxjPWwobyksdiYmKHYuZXhpdCgpLHM9ITApKSxjPT09Zi5wcm9taXNlP2goRigiUHJvbWlzZS1jaGFpbiBjeWNsZSIpKToodT1ZKGMpKT91LmNhbGwoYyxwLGgpOnAoYykpOmgobyl9Y2F0Y2goZCl7diYmIXMmJnYuZXhpdCgpLGgoZCl9fWUucmVhY3Rpb25zPVtdLGUubm90aWZpZWQ9ITEsbiYmIWUucmVqZWN0aW9uJiZKKHQsZSl9KSl9fSxRPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvO0s/KChyPXouY3JlYXRlRXZlbnQoIkV2ZW50IikpLnByb21pc2U9ZSxyLnJlYXNvbj1uLHIuaW5pdEV2ZW50KHQsITEsITApLHMuZGlzcGF0Y2hFdmVudChyKSk6cj17cHJvbWlzZTplLHJlYXNvbjpufSwobz1zWyJvbiIrdF0pP28ocik6InVuaGFuZGxlZHJlamVjdGlvbiI9PT10JiZPKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLG4pfSxKPWZ1bmN0aW9uKHQsZSl7eC5jYWxsKHMsKGZ1bmN0aW9uKCl7dmFyIG4scj1lLnZhbHVlO2lmKCQoZSkmJihuPUkoKGZ1bmN0aW9uKCl7Qj9aLmVtaXQoInVuaGFuZGxlZFJlamVjdGlvbiIscix0KTpRKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHQscil9KSksZS5yZWplY3Rpb249Qnx8JChlKT8yOjEsbi5lcnJvcikpdGhyb3cgbi52YWx1ZX0pKX0sJD1mdW5jdGlvbih0KXtyZXR1cm4gMSE9PXQucmVqZWN0aW9uJiYhdC5wYXJlbnR9LHR0PWZ1bmN0aW9uKHQsZSl7eC5jYWxsKHMsKGZ1bmN0aW9uKCl7Qj9aLmVtaXQoInJlamVjdGlvbkhhbmRsZWQiLHQpOlEoInJlamVjdGlvbmhhbmRsZWQiLHQsZS52YWx1ZSl9KSl9LGV0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBmdW5jdGlvbihvKXt0KGUsbixvLHIpfX0sbnQ9ZnVuY3Rpb24odCxlLG4scil7ZS5kb25lfHwoZS5kb25lPSEwLHImJihlPXIpLGUudmFsdWU9bixlLnN0YXRlPTIscSh0LGUsITApKX0scnQ9ZnVuY3Rpb24odCxlLG4scil7aWYoIWUuZG9uZSl7ZS5kb25lPSEwLHImJihlPXIpO3RyeXtpZih0PT09bil0aHJvdyBGKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpO3ZhciBvPVkobik7bz9TKChmdW5jdGlvbigpe3ZhciByPXtkb25lOiExfTt0cnl7by5jYWxsKG4sZXQocnQsdCxyLGUpLGV0KG50LHQscixlKSl9Y2F0Y2goaSl7bnQodCxyLGksZSl9fSkpOihlLnZhbHVlPW4sZS5zdGF0ZT0xLHEodCxlLCExKSl9Y2F0Y2goaSl7bnQodCx7ZG9uZTohMX0saSxlKX19fTtWJiYoTD1mdW5jdGlvbih0KXtiKHRoaXMsTCwiUHJvbWlzZSIpLHkodCksci5jYWxsKHRoaXMpO3ZhciBlPVIodGhpcyk7dHJ5e3QoZXQocnQsdGhpcyxlKSxldChudCx0aGlzLGUpKX1jYXRjaChuKXtudCh0aGlzLGUsbil9fSwocj1mdW5jdGlvbih0KXtOKHRoaXMse3R5cGU6IlByb21pc2UiLGRvbmU6ITEsbm90aWZpZWQ6ITEscGFyZW50OiExLHJlYWN0aW9uczpbXSxyZWplY3Rpb246ITEsc3RhdGU6MCx2YWx1ZTp2b2lkIDB9KX0pLnByb3RvdHlwZT1oKEwucHJvdG90eXBlLHt0aGVuOmZ1bmN0aW9uKHQsZSl7dmFyIG49QSh0aGlzKSxyPVUodyh0aGlzLEwpKTtyZXR1cm4gci5vaz0iZnVuY3Rpb24iIT10eXBlb2YgdHx8dCxyLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUsci5kb21haW49Qj9aLmRvbWFpbjp2b2lkIDAsbi5wYXJlbnQ9ITAsbi5yZWFjdGlvbnMucHVzaChyKSwwIT1uLnN0YXRlJiZxKHRoaXMsbiwhMSksci5wcm9taXNlfSxjYXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCx0KX19KSxvPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHIsZT1SKHQpO3RoaXMucHJvbWlzZT10LHRoaXMucmVzb2x2ZT1ldChydCx0LGUpLHRoaXMucmVqZWN0PWV0KG50LHQsZSl9LFQuZj1VPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09THx8dD09PWk/bmV3IG8odCk6SCh0KX0sdXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGx8fChhPWwucHJvdG90eXBlLnRoZW4scChsLnByb3RvdHlwZSwidGhlbiIsKGZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gbmV3IEwoKGZ1bmN0aW9uKHQsZSl7YS5jYWxsKG4sdCxlKX0pKS50aGVuKHQsZSl9KSksImZ1bmN0aW9uIj09dHlwZW9mIEMmJmMoe2dsb2JhbDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDohMH0se2ZldGNoOmZ1bmN0aW9uKHQpe3JldHVybiBFKEwsQy5hcHBseShzLGFyZ3VtZW50cykpfX0pKSksYyh7Z2xvYmFsOiEwLHdyYXA6ITAsZm9yY2VkOlZ9LHtQcm9taXNlOkx9KSx2KEwsIlByb21pc2UiLCExLCEwKSxkKCJQcm9taXNlIiksaT1mLlByb21pc2UsYyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDpWfSx7cmVqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPVUodGhpcyk7cmV0dXJuIGUucmVqZWN0LmNhbGwodm9pZCAwLHQpLGUucHJvbWlzZX19KSxjKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOnV8fFZ9LHtyZXNvbHZlOmZ1bmN0aW9uKHQpe3JldHVybiBFKHUmJnRoaXM9PT1pP0w6dGhpcyx0KX19KSxjKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOlh9LHthbGw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPVUoZSkscj1uLnJlc29sdmUsbz1uLnJlamVjdCxpPUkoKGZ1bmN0aW9uKCl7dmFyIG49eShlLnJlc29sdmUpLGk9W10sYT0wLGM9MTtrKHQsKGZ1bmN0aW9uKHQpe3ZhciB1PWErKyxzPSExO2kucHVzaCh2b2lkIDApLGMrKyxuLmNhbGwoZSx0KS50aGVuKChmdW5jdGlvbih0KXtzfHwocz0hMCxpW3VdPXQsLS1jfHxyKGkpKX0pLG8pfSkpLC0tY3x8cihpKX0pKTtyZXR1cm4gaS5lcnJvciYmbyhpLnZhbHVlKSxuLnByb21pc2V9LHJhY2U6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPVUoZSkscj1uLnJlamVjdCxvPUkoKGZ1bmN0aW9uKCl7dmFyIG89eShlLnJlc29sdmUpO2sodCwoZnVuY3Rpb24odCl7by5jYWxsKGUsdCkudGhlbihuLnJlc29sdmUscil9KSl9KSk7cmV0dXJuIG8uZXJyb3ImJnIoby52YWx1ZSksbi5wcm9taXNlfX0pfSwiNXVIOCI6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LCI2Sk5xIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiVVRWUyIpLG89bigiVnU4MSIpLGk9bigiQnM4ViIpLGE9bigibS9MOCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1vKGUpLGM9YS5mLHU9aS5mLHM9MDtzPG4ubGVuZ3RoO3MrKyl7dmFyIGY9bltzXTtyKHQsZil8fGModCxmLHUoZSxmKSl9fX0sIjZMV0EiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ4cllLIik7dC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKHQpe3JldHVybiJBcnJheSI9PXIodCl9fSwiNlZvRSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInRpS3AiKSxvPW4oIlA0eTEiKSxpPXIoIml0ZXJhdG9yIiksYT1BcnJheS5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10JiYoby5BcnJheT09PXR8fGFbaV09PT10KX19LCI2aHBuIjpmdW5jdGlvbih0LGUsbil7bigiVXlkeSIpLG4oImVhanYiKSxuKCJuL21VIiksbigiUHFPSSIpLG4oIlFObnAiKSxuKCIvNXptIiksbigiQ3NnRCIpLG4oIjltUlciKSxuKCJRRmNUIiksbigidkFGcyIpLG4oImE1TksiKSxuKCJ5aUczIiksbigia05jVSIpLG4oIkt2R2kiKSxuKCJBbUZPIiksbigiZUppUiIpLG4oIkk5eGoiKSxuKCJ0bC91Iik7dmFyIHI9bigiUW85bCIpO3QuZXhwb3J0cz1yLk1hdGh9LCI2dW5LIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMERreSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcigoZnVuY3Rpb24oKXt2YXIgZT0iIlt0XSgnIicpO3JldHVybiBlIT09ZS50b0xvd2VyQ2FzZSgpfHxlLnNwbGl0KCciJykubGVuZ3RoPjN9KSl9fSwiNytrZCI6ZnVuY3Rpb24odCxlLG4pe24oImRHL24iKSgiaXNDb25jYXRTcHJlYWRhYmxlIil9LCI3K3pzIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiWDJVKyIpLG89bigiVWVzTCIpLGk9bigidGlLcCIpKCJ0b1ByaW1pdGl2ZSIpLGE9RGF0ZS5wcm90b3R5cGU7aSBpbiBhfHxyKGEsaSxvKX0sIjdzYkQiOmZ1bmN0aW9uKHQsZSxuKXtuKCJxZVBWIiksbigiTmJOKyIpLG4oIjhBeUoiKSxuKCJpNlFGIiksbigia1NrbyIpLG4oIldEc1IiKSxuKCJyL1ZxIiksbigiNXVIOCIpLG4oIncxcloiKSxuKCJKZXZBIiksbigidG9BaiIpLG4oIlZDM0wiKTt2YXIgcj1uKCJRbzlsIik7dC5leHBvcnRzPXIuTnVtYmVyfSwiOEF5SiI6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtpc0Zpbml0ZTpuKCI0b1UvIil9KX0sIjhHbEwiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSEF1TSIpLG89ZnVuY3Rpb24odCl7dmFyIGUsbjt0aGlzLnByb21pc2U9bmV3IHQoKGZ1bmN0aW9uKHQscil7aWYodm9pZCAwIT09ZXx8dm9pZCAwIT09bil0aHJvdyBUeXBlRXJyb3IoIkJhZCBQcm9taXNlIGNvbnN0cnVjdG9yIik7ZT10LG49cn0pKSx0aGlzLnJlc29sdmU9cihlKSx0aGlzLnJlamVjdD1yKG4pfTt0LmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG8odCl9fSwiOFlPYSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBCSzIiKSxvPW4oImhoMXYiKSxpPW4oIlVUVlMiKSxhPW4oIm0vTDgiKS5mLGM9bigia09PbCIpLHU9bigidXk4MyIpLHM9YygibWV0YSIpLGY9MCxsPU9iamVjdC5pc0V4dGVuc2libGV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LHA9ZnVuY3Rpb24odCl7YSh0LHMse3ZhbHVlOntvYmplY3RJRDoiTyIrICsrZix3ZWFrRGF0YTp7fX19KX0saD10LmV4cG9ydHM9e1JFUVVJUkVEOiExLGZhc3RLZXk6ZnVuY3Rpb24odCxlKXtpZighbyh0KSlyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDooInN0cmluZyI9PXR5cGVvZiB0PyJTIjoiUCIpK3Q7aWYoIWkodCxzKSl7aWYoIWwodCkpcmV0dXJuIkYiO2lmKCFlKXJldHVybiJFIjtwKHQpfXJldHVybiB0W3NdLm9iamVjdElEfSxnZXRXZWFrRGF0YTpmdW5jdGlvbih0LGUpe2lmKCFpKHQscykpe2lmKCFsKHQpKXJldHVybiEwO2lmKCFlKXJldHVybiExO3AodCl9cmV0dXJuIHRbc10ud2Vha0RhdGF9LG9uRnJlZXplOmZ1bmN0aW9uKHQpe3JldHVybiB1JiZoLlJFUVVJUkVEJiZsKHQpJiYhaSh0LHMpJiZwKHQpLHR9fTtyW3NdPSEwfSwiOTBoVyI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gMD09KHQ9K3QpfHx0IT10P3Q6dDwwPy0xOjF9fSwiOTNJMCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlZwSVQiKSxvPW4oImtPT2wiKSxpPXIoImtleXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGlbdF18fChpW3RdPW8odCkpfX0sIjlMUGoiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiZXd2VyIpLGE9bigid0U2diIpO3Ioe3RhcmdldDoiRGF0ZSIscHJvdG86ITAsZm9yY2VkOm8oKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1uZXcgRGF0ZShOYU4pLnRvSlNPTigpfHwxIT09RGF0ZS5wcm90b3R5cGUudG9KU09OLmNhbGwoe3RvSVNPU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDF9fSl9KSl9LHt0b0pTT046ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxuPWEoZSk7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBufHxpc0Zpbml0ZShuKT9lLnRvSVNPU3RyaW5nKCk6bnVsbH19KX0sIjlOMjkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMVkvbiIpLnJpZ2h0O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpuKCJzd0ZMIikoInJlZHVjZVJpZ2h0Iil9LHtyZWR1Y2VSaWdodDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LCI5Yko3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIlpVZDgiKS5jb2RlQXQ7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7Y29kZVBvaW50QXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0KX19KX0sIjlkL3QiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ4cllLIiksbz1uKCJ0aUtwIikoInRvU3RyaW5nVGFnIiksaT0iQXJndW1lbnRzIj09cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxuLGE7cmV0dXJuIHZvaWQgMD09PXQ/IlVuZGVmaW5lZCI6bnVsbD09PXQ/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yobj1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaChuKXt9fShlPU9iamVjdCh0KSxvKSk/bjppP3IoZSk6Ik9iamVjdCI9PShhPXIoZSkpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jYWxsZWU/IkFyZ3VtZW50cyI6YX19LCI5bVJXIjpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITB9LHtmcm91bmQ6bigidm80ViIpfSl9LCI5dGIvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiSTh2aCIpLGk9U3RyaW5nLmZyb21DaGFyQ29kZSxhPVN0cmluZy5mcm9tQ29kZVBvaW50O3Ioe3RhcmdldDoiU3RyaW5nIixzdGF0OiEwLGZvcmNlZDohIWEmJjEhPWEubGVuZ3RofSx7ZnJvbUNvZGVQb2ludDpmdW5jdGlvbih0KXtmb3IodmFyIGUsbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGgsYT0wO3I+YTspe2lmKGU9K2FyZ3VtZW50c1thKytdLG8oZSwxMTE0MTExKSE9PWUpdGhyb3cgUmFuZ2VFcnJvcihlKyIgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCIpO24ucHVzaChlPDY1NTM2P2koZSk6aSg1NTI5NisoKGUtPTY1NTM2KT4+MTApLGUlMTAyNCs1NjMyMCkpfXJldHVybiBuLmpvaW4oIiIpfX0pfSxBbUZPOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCIwRGt5IiksaT1uKCJqclV2IiksYT1NYXRoLmFicyxjPU1hdGguZXhwLHU9TWF0aC5FO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXtyZXR1cm4tMmUtMTchPU1hdGguc2luaCgtMmUtMTcpfSkpfSx7c2luaDpmdW5jdGlvbih0KXtyZXR1cm4gYSh0PSt0KTwxPyhpKHQpLWkoLXQpKS8yOihjKHQtMSktYygtdC0xKSkqKHUvMil9fSl9LEJOTXQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoImJsaW5rIil9LHtibGluazpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LEJUaG86ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJIQXVNIiksbz1uKCJoaDF2IiksaT1bXS5zbGljZSxhPXt9LGM9ZnVuY3Rpb24odCxlLG4pe2lmKCEoZSBpbiBhKSl7Zm9yKHZhciByPVtdLG89MDtvPGU7bysrKXJbb109ImFbIitvKyJdIjthW2VdPUZ1bmN0aW9uKCJDLGEiLCJyZXR1cm4gbmV3IEMoIityLmpvaW4oIiwiKSsiKSIpfXJldHVybiBhW2VdKHQsbil9O3QuZXhwb3J0cz1GdW5jdGlvbi5iaW5kfHxmdW5jdGlvbih0KXt2YXIgZT1yKHRoaXMpLG49aS5jYWxsKGFyZ3VtZW50cywxKSxhPWZ1bmN0aW9uKCl7dmFyIHI9bi5jb25jYXQoaS5jYWxsKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2YgYT9jKGUsci5sZW5ndGgscik6ZS5hcHBseSh0LHIpfTtyZXR1cm4gbyhlLnByb3RvdHlwZSkmJihhLnByb3RvdHlwZT1lLnByb3RvdHlwZSksYX19LCJCWC9iIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiL0dxVSIpLG89bigiSkJ5OCIpLmYsaT17fS50b1N0cmluZyxhPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W107dC5leHBvcnRzLmY9ZnVuY3Rpb24odCl7cmV0dXJuIGEmJiJbb2JqZWN0IFdpbmRvd10iPT1pLmNhbGwodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBvKHQpfWNhdGNoKGUpe3JldHVybiBhLnNsaWNlKCl9fSh0KTpvKHIodCkpfX0sQnM4VjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigiMGVlZiIpLGk9bigiWEd3QyIpLGE9bigiL0dxVSIpLGM9bigid0U2diIpLHU9bigiVVRWUyIpLHM9bigiRFBzeCIpLGY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtlLmY9cj9mOmZ1bmN0aW9uKHQsZSl7aWYodD1hKHQpLGU9YyhlLCEwKSxzKXRyeXtyZXR1cm4gZih0LGUpfWNhdGNoKG4pe31pZih1KHQsZSkpcmV0dXJuIGkoIW8uZi5jYWxsKHQsZSksdFtlXSl9fSxDc2dEOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJqclV2Iik7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDpvIT1NYXRoLmV4cG0xfSx7ZXhwbTE6b30pfSxERWZ1OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIik7bigiMUU1eiIpKHIuSlNPTiwiSlNPTiIsITApfSxETXQyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJVTVNRIiksbz1uKCJFVWphIiksaT1uKCJIWUFGIiksYT1NYXRoLmNlaWwsYz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGMpe3ZhciB1LHMsZj1TdHJpbmcoaShlKSksbD1mLmxlbmd0aCxwPXZvaWQgMD09PWM/IiAiOlN0cmluZyhjKSxoPXIobik7cmV0dXJuIGg8PWx8fCIiPT1wP2Y6KChzPW8uY2FsbChwLGEoKHU9aC1sKS9wLmxlbmd0aCkpKS5sZW5ndGg+dSYmKHM9cy5zbGljZSgwLHUpKSx0P2YrczpzK2YpfX07dC5leHBvcnRzPXtzdGFydDpjKCExKSxlbmQ6YyghMCl9fSxEUHN4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCIwRGt5IiksaT1uKCJ6Qko0Iik7dC5leHBvcnRzPSFyJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGkoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sRFFOYTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYnVzRSIpLG89RGF0ZS5wcm90b3R5cGUsaT1vLnRvU3RyaW5nLGE9by5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPSJJbnZhbGlkIERhdGUiJiZyKG8sInRvU3RyaW5nIiwoZnVuY3Rpb24oKXt2YXIgdD1hLmNhbGwodGhpcyk7cmV0dXJuIHQ9PXQ/aS5jYWxsKHRoaXMpOiJJbnZhbGlkIERhdGUifSkpfSxFNU5NOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJiaWciKX0se2JpZzpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsImJpZyIsIiIsIiIpfX0pfSxFOVhEOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMVkvbiIpLmxlZnQ7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOm4oInN3RkwiKSgicmVkdWNlIil9LHtyZWR1Y2U6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxFTkY5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbz1uKCIyb1JvIiksaT1uKCI0c3l3IiksYT1uKCI4WU9hIiksYz1uKCJiV0ZoIiksdT1uKCJyS3piIikscz1uKCJoaDF2IiksZj1uKCJhZk84IikuZW5mb3JjZSxsPW4oImY1cDEiKSxwPSFvLkFjdGl2ZVhPYmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIG8saD1PYmplY3QuaXNFeHRlbnNpYmxlLHY9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sZD10LmV4cG9ydHM9YygiV2Vha01hcCIsdix1LCEwLCEwKTtpZihsJiZwKXtyPXUuZ2V0Q29uc3RydWN0b3IodiwiV2Vha01hcCIsITApLGEuUkVRVUlSRUQ9ITA7dmFyIGc9ZC5wcm90b3R5cGUseT1nLmRlbGV0ZSxiPWcuaGFzLG09Zy5nZXQsaz1nLnNldDtpKGcse2RlbGV0ZTpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgcikseS5jYWxsKHRoaXMsdCl8fGUuZnJvemVuLmRlbGV0ZSh0KX1yZXR1cm4geS5jYWxsKHRoaXMsdCl9LGhhczpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCl8fGUuZnJvemVuLmhhcyh0KX1yZXR1cm4gYi5jYWxsKHRoaXMsdCl9LGdldDpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCk/bS5jYWxsKHRoaXMsdCk6ZS5mcm96ZW4uZ2V0KHQpfXJldHVybiBtLmNhbGwodGhpcyx0KX0sc2V0OmZ1bmN0aW9uKHQsZSl7aWYocyh0KSYmIWgodCkpe3ZhciBuPWYodGhpcyk7bi5mcm96ZW58fChuLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCk/ay5jYWxsKHRoaXMsdCxlKTpuLmZyb3plbi5zZXQodCxlKX1lbHNlIGsuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXN9fSl9fSxFVWphOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigicHBHQiIpLG89bigiSFlBRiIpO3QuZXhwb3J0cz0iIi5yZXBlYXR8fGZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhvKHRoaXMpKSxuPSIiLGk9cih0KTtpZihpPDB8fGk9PTEvMCl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO2k+MDsoaT4+Pj0xKSYmKGUrPWUpKTEmaSYmKG4rPWUpO3JldHVybiBufX0sRW5aeTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjE0U2wiKSxvPW4oIlJPZFAiKSxpPW4oImdscmsiKSxhPW4oIkhZQUYiKSxjPW4oIlNFQmgiKSx1PW4oImlxV1ciKSxzPW4oIlVNU1EiKSxmPW4oIkZNTk0iKSxsPW4oImttTVYiKSxwPW4oIjBEa3kiKSxoPVtdLnB1c2gsdj1NYXRoLm1pbixkPSFwKChmdW5jdGlvbigpe3JldHVybiFSZWdFeHAoNDI5NDk2NzI5NSwieSIpfSkpO3IoInNwbGl0IiwyLChmdW5jdGlvbih0LGUsbil7dmFyIHI7cmV0dXJuIHI9ImMiPT0iYWJiYyIuc3BsaXQoLyhiKSovKVsxXXx8NCE9InRlc3QiLnNwbGl0KC8oPzopLywtMSkubGVuZ3RofHwyIT0iYWIiLnNwbGl0KC8oPzphYikqLykubGVuZ3RofHw0IT0iLiIuc3BsaXQoLyguPykoLj8pLykubGVuZ3RofHwiLiIuc3BsaXQoLygpKCkvKS5sZW5ndGg+MXx8IiIuc3BsaXQoLy4/LykubGVuZ3RoP2Z1bmN0aW9uKHQsbil7dmFyIHI9U3RyaW5nKGEodGhpcykpLGk9dm9pZCAwPT09bj80Mjk0OTY3Mjk1Om4+Pj4wO2lmKDA9PT1pKXJldHVybltdO2lmKHZvaWQgMD09PXQpcmV0dXJuW3JdO2lmKCFvKHQpKXJldHVybiBlLmNhbGwocix0LGkpO2Zvcih2YXIgYyx1LHMsZj1bXSxwPTAsdj1uZXcgUmVnRXhwKHQuc291cmNlLCh0Lmlnbm9yZUNhc2U/ImkiOiIiKSsodC5tdWx0aWxpbmU/Im0iOiIiKSsodC51bmljb2RlPyJ1IjoiIikrKHQuc3RpY2t5PyJ5IjoiIikrImciKTsoYz1sLmNhbGwodixyKSkmJiEoKHU9di5sYXN0SW5kZXgpPnAmJihmLnB1c2goci5zbGljZShwLGMuaW5kZXgpKSxjLmxlbmd0aD4xJiZjLmluZGV4PHIubGVuZ3RoJiZoLmFwcGx5KGYsYy5zbGljZSgxKSkscz1jWzBdLmxlbmd0aCxwPXUsZi5sZW5ndGg+PWkpKTspdi5sYXN0SW5kZXg9PT1jLmluZGV4JiZ2Lmxhc3RJbmRleCsrO3JldHVybiBwPT09ci5sZW5ndGg/IXMmJnYudGVzdCgiIil8fGYucHVzaCgiIik6Zi5wdXNoKHIuc2xpY2UocCkpLGYubGVuZ3RoPmk/Zi5zbGljZSgwLGkpOmZ9OiIwIi5zcGxpdCh2b2lkIDAsMCkubGVuZ3RoP2Z1bmN0aW9uKHQsbil7cmV0dXJuIHZvaWQgMD09PXQmJjA9PT1uP1tdOmUuY2FsbCh0aGlzLHQsbil9OmUsW2Z1bmN0aW9uKGUsbil7dmFyIG89YSh0aGlzKSxpPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKGUsbyxuKTpyLmNhbGwoU3RyaW5nKG8pLGUsbil9LGZ1bmN0aW9uKHQsbyl7dmFyIGE9bihyLHQsdGhpcyxvLHIhPT1lKTtpZihhLmRvbmUpcmV0dXJuIGEudmFsdWU7dmFyIGw9aSh0KSxwPVN0cmluZyh0aGlzKSxoPWMobCxSZWdFeHApLGc9bC51bmljb2RlLHk9bmV3IGgoZD9sOiJeKD86IitsLnNvdXJjZSsiKSIsKGwuaWdub3JlQ2FzZT8iaSI6IiIpKyhsLm11bHRpbGluZT8ibSI6IiIpKyhsLnVuaWNvZGU/InUiOiIiKSsoZD8ieSI6ImciKSksYj12b2lkIDA9PT1vPzQyOTQ5NjcyOTU6bz4+PjA7aWYoMD09PWIpcmV0dXJuW107aWYoMD09PXAubGVuZ3RoKXJldHVybiBudWxsPT09Zih5LHApP1twXTpbXTtmb3IodmFyIG09MCxrPTAsXz1bXTtrPHAubGVuZ3RoOyl7eS5sYXN0SW5kZXg9ZD9rOjA7dmFyIHcseD1mKHksZD9wOnAuc2xpY2UoaykpO2lmKG51bGw9PT14fHwodz12KHMoeS5sYXN0SW5kZXgrKGQ/MDprKSkscC5sZW5ndGgpKT09PW0paz11KHAsayxnKTtlbHNle2lmKF8ucHVzaChwLnNsaWNlKG0saykpLF8ubGVuZ3RoPT09YilyZXR1cm4gXztmb3IodmFyIFM9MTtTPD14Lmxlbmd0aC0xO1MrKylpZihfLnB1c2goeFtTXSksXy5sZW5ndGg9PT1iKXJldHVybiBfO2s9bT13fX1yZXR1cm4gXy5wdXNoKHAuc2xpY2UobSkpLF99XX0pLCFkKX0sRXA5STpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1PYmplY3QuaXN8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lPzAhPT10fHwxL3Q9PTEvZTp0IT10JiZlIT1lfX0sRXhvQzpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se3NldFByb3RvdHlwZU9mOm4oIjBydnIiKX0pfSxGOEpSOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigidHljUiIpLmZvckVhY2gsbz1uKCJzd0ZMIik7dC5leHBvcnRzPW8oImZvckVhY2giKT9mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfTpbXS5mb3JFYWNofSxGRjZsOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZXd2VyIpLG89bigiSTh2aCIpLGk9bigiVU1TUSIpLGE9TWF0aC5taW47dC5leHBvcnRzPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKHQsZSl7dmFyIG49cih0aGlzKSxjPWkobi5sZW5ndGgpLHU9byh0LGMpLHM9byhlLGMpLGY9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbD1hKCh2b2lkIDA9PT1mP2M6byhmLGMpKS1zLGMtdSkscD0xO2ZvcihzPHUmJnU8cytsJiYocD0tMSxzKz1sLTEsdSs9bC0xKTtsLS0gPjA7KXMgaW4gbj9uW3VdPW5bc106ZGVsZXRlIG5bdV0sdSs9cCxzKz1wO3JldHVybiBufX0sRk1OTTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieHJZSyIpLG89bigia21NViIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXQuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2Ygbil7dmFyIGk9bi5jYWxsKHQsZSk7aWYoIm9iamVjdCIhPXR5cGVvZiBpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIGl9aWYoIlJlZ0V4cCIhPT1yKHQpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpO3JldHVybiBvLmNhbGwodCxlKX19LEZadFA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIi9ieXQiKSxpPW4oIkY4SlIiKSxhPW4oIlgyVSsiKTtmb3IodmFyIGMgaW4gbyl7dmFyIHU9cltjXSxzPXUmJnUucHJvdG90eXBlO2lmKHMmJnMuZm9yRWFjaCE9PWkpdHJ5e2EocywiZm9yRWFjaCIsaSl9Y2F0Y2goZil7cy5mb3JFYWNoPWl9fX0sIkcrUngiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwR2JZIik7dC5leHBvcnRzPXIoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LEdLVlU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoImFuY2hvciIpfSx7YW5jaG9yOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsImEiLCJuYW1lIix0KX19KX0sR1JQRjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oImhYcE8iKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjZ1bksiKSgiZm9udHNpemUiKX0se2ZvbnRzaXplOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsImZvbnQiLCJzaXplIix0KX19KX0sR1h2ZDpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJzcGVjaWVzIil9LEdhclU6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0ICIrKG4/bisiICI6IiIpKyJpbnZvY2E="
}

Changelog:

{
    "2019.12.03 19:45": "base64:cHJvbWlzZTpuLnByb21pc2UscmVhc29uOm4ucmVqZWN0aW9ufSk7ci5pbnZva2UoaSl9fSkpfX10LlByb21pc2VSZWplY3Rpb25FdmVudCYmKGVbZCgidW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvbkhhbmRsZXIiKV09bigidW5oYW5kbGVkcmVqZWN0aW9uIiksZVtkKCJyZWplY3Rpb25IYW5kbGVkSGFuZGxlciIpXT1uKCJyZWplY3Rpb25oYW5kbGVkIikpfSkpfSgpfSwiMGVlZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsaT1vJiYhci5jYWxsKHsxOjJ9LDEpO2UuZj1pP2Z1bmN0aW9uKHQpe3ZhciBlPW8odGhpcyx0KTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06cn0sIjBvdWciOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoIml0ZXJhdG9yIil9LCIwcnZyIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZ2xyayIpLG89bigiTzc0MSIpO3QuZXhwb3J0cz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgdCxlPSExLG49e307dHJ5eyh0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIikuc2V0KS5jYWxsKG4sW10pLGU9biBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKGkpe31yZXR1cm4gZnVuY3Rpb24obixpKXtyZXR1cm4gcihuKSxvKGkpLGU/dC5jYWxsKG4saSk6bi5fX3Byb3RvX189aSxufX0oKTp2b2lkIDApfSwxOmZ1bmN0aW9uKHQsZSxuKXtuKCJtUklxIiksdC5leHBvcnRzPW4oImhOL2ciKX0sIjE0U2wiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiWDJVKyIpLG89bigiYnVzRSIpLGk9bigiMERreSIpLGE9bigidGlLcCIpLGM9bigia21NViIpLHU9YSgic3BlY2llcyIpLHM9IWkoKGZ1bmN0aW9uKCl7dmFyIHQ9Ly4vO3JldHVybiB0LmV4ZWM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdC5ncm91cHM9e2E6IjcifSx0fSwiNyIhPT0iIi5yZXBsYWNlKHQsIiQ8YT4iKX0pKSxmPSFpKChmdW5jdGlvbigpe3ZhciB0PS8oPzopLyxlPXQuZXhlYzt0LmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBuPSJhYiIuc3BsaXQodCk7cmV0dXJuIDIhPT1uLmxlbmd0aHx8ImEiIT09blswXXx8ImIiIT09blsxXX0pKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sbCl7dmFyIHA9YSh0KSxoPSFpKChmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlW3BdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW3RdKGUpfSkpLHY9aCYmIWkoKGZ1bmN0aW9uKCl7dmFyIGU9ITEsbj0vYS87cmV0dXJuIG4uZXhlYz1mdW5jdGlvbigpe3JldHVybiBlPSEwLG51bGx9LCJzcGxpdCI9PT10JiYobi5jb25zdHJ1Y3Rvcj17fSxuLmNvbnN0cnVjdG9yW3VdPWZ1bmN0aW9uKCl7cmV0dXJuIG59KSxuW3BdKCIiKSwhZX0pKTtpZighaHx8IXZ8fCJyZXBsYWNlIj09PXQmJiFzfHwic3BsaXQiPT09dCYmIWYpe3ZhciBkPS8uL1twXSxnPW4ocCwiIlt0XSwoZnVuY3Rpb24odCxlLG4scixvKXtyZXR1cm4gZS5leGVjPT09Yz9oJiYhbz97ZG9uZTohMCx2YWx1ZTpkLmNhbGwoZSxuLHIpfTp7ZG9uZTohMCx2YWx1ZTp0LmNhbGwobixlLHIpfTp7ZG9uZTohMX19KSkseT1nWzFdO28oU3RyaW5nLnByb3RvdHlwZSx0LGdbMF0pLG8oUmVnRXhwLnByb3RvdHlwZSxwLDI9PWU/ZnVuY3Rpb24odCxlKXtyZXR1cm4geS5jYWxsKHQsdGhpcyxlKX06ZnVuY3Rpb24odCl7cmV0dXJuIHkuY2FsbCh0LHRoaXMpfSksbCYmcihSZWdFeHAucHJvdG90eXBlW3BdLCJzaGFtIiwhMCl9fX0sIjFFNXoiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJtL0w4IikuZixvPW4oIlVUVlMiKSxpPW4oInRpS3AiKSgidG9TdHJpbmdUYWciKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3QmJiFvKHQ9bj90OnQucHJvdG90eXBlLGkpJiZyKHQsaSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmV9KX19LCIxWS9uIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSEF1TSIpLG89bigiZXd2VyIpLGk9bigiUkszdCIpLGE9bigiVU1TUSIpLGM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixjLHUpe3Iobik7dmFyIHM9byhlKSxmPWkocyksbD1hKHMubGVuZ3RoKSxwPXQ/bC0xOjAsaD10Py0xOjE7aWYoYzwyKWZvcig7Oyl7aWYocCBpbiBmKXt1PWZbcF0scCs9aDticmVha31pZihwKz1oLHQ/cDwwOmw8PXApdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDt0P3A+PTA6bD5wO3ArPWgpcCBpbiBmJiYodT1uKHUsZltwXSxwLHMpKTtyZXR1cm4gdX19O3QuZXhwb3J0cz17bGVmdDpjKCExKSxyaWdodDpjKCEwKX19LCIyQStkIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiL0dxVSIpLGk9bigiVU1TUSIpO3Ioe3RhcmdldDoiU3RyaW5nIixzdGF0OiEwfSx7cmF3OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1vKHQucmF3KSxuPWkoZS5sZW5ndGgpLHI9YXJndW1lbnRzLmxlbmd0aCxhPVtdLGM9MDtuPmM7KWEucHVzaChTdHJpbmcoZVtjKytdKSksYzxyJiZhLnB1c2goU3RyaW5nKGFyZ3VtZW50c1tjXSkpO3JldHVybiBhLmpvaW4oIiIpfX0pfSwiMkIxUiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJ0eWNSIikubWFwO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohbigiSGQ1ZiIpKCJtYXAiKX0se21hcDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSwiMm9SbyI6ZnVuY3Rpb24odCxlKXt2YXIgbj0ib2JqZWN0IixyPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PU1hdGgmJnR9O3QuZXhwb3J0cz1yKHR5cGVvZiBnbG9iYWxUaGlzPT1uJiZnbG9iYWxUaGlzKXx8cih0eXBlb2Ygd2luZG93PT1uJiZ3aW5kb3cpfHxyKHR5cGVvZiBzZWxmPT1uJiZzZWxmKXx8cih0eXBlb2YgZ2xvYmFsPT1uJiZnbG9iYWwpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfSwiMzNXaCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInlvUmciKSxvPW4oImVEbCsiKTt0LmV4cG9ydHM9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3JldHVybiByKHQsbyl9fSwiM0kxUiI6ZnVuY3Rpb24odCxlLG4pe24oImRHL24iKSgiaGFzSW5zdGFuY2UiKX0sIjNLZ1YiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJ1eTgzIiksaT1uKCIwRGt5IiksYT1uKCJoaDF2IiksYz1uKCI4WU9hIikub25GcmVlemUsdT1PYmplY3QuZnJlZXplO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDppKChmdW5jdGlvbigpe3UoMSl9KSksc2hhbTohb30se2ZyZWV6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdSYmYSh0KT91KGModCkpOnR9fSl9LCIzYkJaIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMm9SbyIpLG89bigiL2J5dCIpLGk9bigiNG1EbSIpLGE9bigiWDJVKyIpLGM9bigidGlLcCIpLHU9YygiaXRlcmF0b3IiKSxzPWMoInRvU3RyaW5nVGFnIiksZj1pLnZhbHVlcztmb3IodmFyIGwgaW4gbyl7dmFyIHA9cltsXSxoPXAmJnAucHJvdG90eXBlO2lmKGgpe2lmKGhbdV0hPT1mKXRyeXthKGgsdSxmKX1jYXRjaChkKXtoW3VdPWZ9aWYoaFtzXXx8YShoLHMsbCksb1tsXSlmb3IodmFyIHYgaW4gaSlpZihoW3ZdIT09aVt2XSl0cnl7YShoLHYsaVt2XSl9Y2F0Y2goZCl7aFt2XT1pW3ZdfX19fSwiNEJyZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJnNnYvIiksaT1uKCIyb1JvIiksYT1uKCJVVFZTIiksYz1uKCJoaDF2IiksdT1uKCJtL0w4IikuZixzPW4oIjZKTnEiKSxmPWkuU3ltYm9sO2lmKG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBmJiYoISgiZGVzY3JpcHRpb24iaW4gZi5wcm90b3R5cGUpfHx2b2lkIDAhPT1mKCkuZGVzY3JpcHRpb24pKXt2YXIgbD17fSxwPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aDwxfHx2b2lkIDA9PT1hcmd1bWVudHNbMF0/dm9pZCAwOlN0cmluZyhhcmd1bWVudHNbMF0pLGU9dGhpcyBpbnN0YW5jZW9mIHA/bmV3IGYodCk6dm9pZCAwPT09dD9mKCk6Zih0KTtyZXR1cm4iIj09PXQmJihsW2VdPSEwKSxlfTtzKHAsZik7dmFyIGg9cC5wcm90b3R5cGU9Zi5wcm90b3R5cGU7aC5jb25zdHJ1Y3Rvcj1wO3ZhciB2PWgudG9TdHJpbmcsZD0iU3ltYm9sKHRlc3QpIj09U3RyaW5nKGYoInRlc3QiKSksZz0vXlN5bWJvbFwoKC4qKVwpW14pXSskLzt1KGgsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PWModGhpcyk/dGhpcy52YWx1ZU9mKCk6dGhpcyxlPXYuY2FsbCh0KTtpZihhKGwsdCkpcmV0dXJuIiI7dmFyIG49ZD9lLnNsaWNlKDcsLTEpOmUucmVwbGFjZShnLCIkMSIpO3JldHVybiIiPT09bj92b2lkIDA6bn19KSxyKHtnbG9iYWw6ITAsZm9yY2VkOiEwfSx7U3ltYm9sOnB9KX19LCI0SENpIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMERreSIpLG89bigiV0prSiIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcigoZnVuY3Rpb24oKXtyZXR1cm4hIW9bdF0oKXx8IuKAi8KF4aCOIiE9IuKAi8KF4aCOIlt0XSgpfHxvW3RdLm5hbWUhPT10fSkpfX0sIjRXT0QiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJVVFZTIiksbz1uKCJld3ZXIiksaT1uKCI5M0kwIiksYT1uKCI0WGV0IiksYz1pKCJJRV9QUk9UTyIpLHU9T2JqZWN0LnByb3RvdHlwZTt0LmV4cG9ydHM9YT9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9byh0KSxyKHQsYyk/dFtjXToiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25zdHJ1Y3RvciYmdCBpbnN0YW5jZW9mIHQuY29uc3RydWN0b3I/dC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6dCBpbnN0YW5jZW9mIE9iamVjdD91Om51bGx9fSwiNFhldCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKTt0LmV4cG9ydHM9IXIoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IHQpIT09dC5wcm90b3R5cGV9KSl9LCI0aDBZIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiaGgxdiIpLGE9T2JqZWN0LmlzRnJvemVuO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe2EoMSl9KSl9LHtpc0Zyb3plbjpmdW5jdGlvbih0KXtyZXR1cm4haSh0KXx8ISFhJiZhKHQpfX0pfSwiNGw2MyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjVZT1EiKTtyKHtnbG9iYWw6ITAsZm9yY2VkOnBhcnNlSW50IT1vfSx7cGFyc2VJbnQ6b30pfSwiNG1EbSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIvR3FVIiksbz1uKCJSTklzIiksaT1uKCJQNHkxIiksYT1uKCJhZk84IiksYz1uKCJmZEF5IiksdT1hLnNldCxzPWEuZ2V0dGVyRm9yKCJBcnJheSBJdGVyYXRvciIpO3QuZXhwb3J0cz1jKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKHQsZSl7dSh0aGlzLHt0eXBlOiJBcnJheSBJdGVyYXRvciIsdGFyZ2V0OnIodCksaW5kZXg6MCxraW5kOmV9KX0pLChmdW5jdGlvbigpe3ZhciB0PXModGhpcyksZT10LnRhcmdldCxuPXQua2luZCxyPXQuaW5kZXgrKztyZXR1cm4hZXx8cj49ZS5sZW5ndGg/KHQudGFyZ2V0PXZvaWQgMCx7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KToia2V5cyI9PW4/e3ZhbHVlOnIsZG9uZTohMX06InZhbHVlcyI9PW4/e3ZhbHVlOmVbcl0sZG9uZTohMX06e3ZhbHVlOltyLGVbcl1dLGRvbmU6ITF9fSksInZhbHVlcyIpLGkuQXJndW1lbnRzPWkuQXJyYXksbygia2V5cyIpLG8oInZhbHVlcyIpLG8oImVudHJpZXMiKX0sIjRvVS8iOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIikuaXNGaW5pdGU7dC5leHBvcnRzPU51bWJlci5pc0Zpbml0ZXx8ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZyKHQpfX0sIjRzeXciOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJidXNFIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIG8gaW4gZSlyKHQsbyxlW29dLG4pO3JldHVybiB0fX0sIjVENW8iOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCIwRGt5IiksaT1uKCJoaDF2IiksYT1PYmplY3QuaXNTZWFsZWQ7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOm8oKGZ1bmN0aW9uKCl7YSgxKX0pKX0se2lzU2VhbGVkOmZ1bmN0aW9uKHQpe3JldHVybiFpKHQpfHwhIWEmJmEodCl9fSl9LCI1RG1XIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiL0dxVSIpLGE9bigiQnM4ViIpLmYsYz1uKCJnNnYvIiksdT1vKChmdW5jdGlvbigpe2EoMSl9KSk7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFjfHx1LHNoYW06IWN9LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gYShpKHQpLGUpfX0pfSwiNVlPUSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIldLaUgiKS50cmltLGk9bigiV0prSiIpLGE9ci5wYXJzZUludCxjPS9eWystXT8wW1h4XS8sdT04IT09YShpKyIwOCIpfHwyMiE9PWEoaSsiMHgxNiIpO3QuZXhwb3J0cz11P2Z1bmN0aW9uKHQsZSl7dmFyIG49byhTdHJpbmcodCkpO3JldHVybiBhKG4sZT4+PjB8fChjLnRlc3Qobik/MTY6MTApKX06YX0sIjVZeisiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiL0dxVSIpLG89bigicHBHQiIpLGk9bigiVU1TUSIpLGE9bigic3dGTCIpLGM9TWF0aC5taW4sdT1bXS5sYXN0SW5kZXhPZixzPSEhdSYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MCxmPWEoImxhc3RJbmRleE9mIik7dC5leHBvcnRzPXN8fGY/ZnVuY3Rpb24odCl7aWYocylyZXR1cm4gdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGU9cih0aGlzKSxuPWkoZS5sZW5ndGgpLGE9bi0xO2Zvcihhcmd1bWVudHMubGVuZ3RoPjEmJihhPWMoYSxvKGFyZ3VtZW50c1sxXSkpKSxhPDAmJihhPW4rYSk7YT49MDthLS0paWYoYSBpbiBlJiZlW2FdPT09dClyZXR1cm4gYXx8MDtyZXR1cm4tMX06dX0sIjVtZHUiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm57ZXJyb3I6ITEsdmFsdWU6dCgpfX1jYXRjaChlKXtyZXR1cm57ZXJyb3I6ITAsdmFsdWU6ZX19fX0sIjVzK24iOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbyxpLGEsYz1uKCJJK2ViIiksdT1uKCJ4REJSIikscz1uKCIyb1JvIiksZj1uKCJRbzlsIiksbD1uKCIvcW1uIikscD1uKCJidXNFIiksaD1uKCI0c3l3Iiksdj1uKCIxRTV6IiksZD1uKCJKaVpiIiksZz1uKCJoaDF2IikseT1uKCJIQXVNIiksYj1uKCJHYXJVIiksbT1uKCJ4cllLIiksaz1uKCJJbVpOIiksXz1uKCJISDRvIiksdz1uKCJTRUJoIikseD1uKCJMUFNTIikuc2V0LFM9bigidFhVZyIpLEU9bigiemZuZCIpLE89bigiUk42YyIpLFQ9bigiOEdsTCIpLEk9bigiNW1kdSIpLGo9bigiczVwRSIpLE09bigiYWZPOCIpLFA9bigibE1xNSIpLEQ9bigidGlLcCIpKCJzcGVjaWVzIiksUj1NLmdldCxOPU0uc2V0LEE9TS5nZXR0ZXJGb3IoIlByb21pc2UiKSxMPWwsRj1zLlR5cGVFcnJvcix6PXMuZG9jdW1lbnQsWj1zLnByb2Nlc3MsQz1zLmZldGNoLFc9WiYmWi52ZXJzaW9ucyxHPVcmJlcudjh8fCIiLFU9VC5mLEg9VSxCPSJwcm9jZXNzIj09bShaKSxLPSEhKHomJnouY3JlYXRlRXZlbnQmJnMuZGlzcGF0Y2hFdmVudCksVj1QKCJQcm9taXNlIiwoZnVuY3Rpb24oKXt2YXIgdD1MLnJlc29sdmUoMSksZT1mdW5jdGlvbigpe30sbj0odC5jb25zdHJ1Y3Rvcj17fSlbRF09ZnVuY3Rpb24odCl7dChlLGUpfTtyZXR1cm4hKChCfHwiZnVuY3Rpb24iPT10eXBlb2YgUHJvbWlzZVJlamVjdGlvbkV2ZW50KSYmKCF1fHx0LmZpbmFsbHkpJiZ0LnRoZW4oZSlpbnN0YW5jZW9mIG4mJjAhPT1HLmluZGV4T2YoIjYuNiIpJiYtMT09PWouaW5kZXhPZigiQ2hyb21lLzY2IikpfSkpLFg9Vnx8IV8oKGZ1bmN0aW9uKHQpe0wuYWxsKHQpLmNhdGNoKChmdW5jdGlvbigpe30pKX0pKSxZPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiEoIWcodCl8fCJmdW5jdGlvbiIhPXR5cGVvZihlPXQudGhlbikpJiZlfSxxPWZ1bmN0aW9uKHQsZSxuKXtpZighZS5ub3RpZmllZCl7ZS5ub3RpZmllZD0hMDt2YXIgcj1lLnJlYWN0aW9ucztTKChmdW5jdGlvbigpe2Zvcih2YXIgbz1lLnZhbHVlLGk9MT09ZS5zdGF0ZSxhPTA7ci5sZW5ndGg+YTspe3ZhciBjLHUscyxmPXJbYSsrXSxsPWk/Zi5vazpmLmZhaWwscD1mLnJlc29sdmUsaD1mLnJlamVjdCx2PWYuZG9tYWluO3RyeXtsPyhpfHwoMj09PWUucmVqZWN0aW9uJiZ0dCh0LGUpLGUucmVqZWN0aW9uPTEpLCEwPT09bD9jPW86KHYmJnYuZW50ZXIoKSxjPWwobyksdiYmKHYuZXhpdCgpLHM9ITApKSxjPT09Zi5wcm9taXNlP2goRigiUHJvbWlzZS1jaGFpbiBjeWNsZSIpKToodT1ZKGMpKT91LmNhbGwoYyxwLGgpOnAoYykpOmgobyl9Y2F0Y2goZCl7diYmIXMmJnYuZXhpdCgpLGgoZCl9fWUucmVhY3Rpb25zPVtdLGUubm90aWZpZWQ9ITEsbiYmIWUucmVqZWN0aW9uJiZKKHQsZSl9KSl9fSxRPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvO0s/KChyPXouY3JlYXRlRXZlbnQoIkV2ZW50IikpLnByb21pc2U9ZSxyLnJlYXNvbj1uLHIuaW5pdEV2ZW50KHQsITEsITApLHMuZGlzcGF0Y2hFdmVudChyKSk6cj17cHJvbWlzZTplLHJlYXNvbjpufSwobz1zWyJvbiIrdF0pP28ocik6InVuaGFuZGxlZHJlamVjdGlvbiI9PT10JiZPKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLG4pfSxKPWZ1bmN0aW9uKHQsZSl7eC5jYWxsKHMsKGZ1bmN0aW9uKCl7dmFyIG4scj1lLnZhbHVlO2lmKCQoZSkmJihuPUkoKGZ1bmN0aW9uKCl7Qj9aLmVtaXQoInVuaGFuZGxlZFJlamVjdGlvbiIscix0KTpRKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHQscil9KSksZS5yZWplY3Rpb249Qnx8JChlKT8yOjEsbi5lcnJvcikpdGhyb3cgbi52YWx1ZX0pKX0sJD1mdW5jdGlvbih0KXtyZXR1cm4gMSE9PXQucmVqZWN0aW9uJiYhdC5wYXJlbnR9LHR0PWZ1bmN0aW9uKHQsZSl7eC5jYWxsKHMsKGZ1bmN0aW9uKCl7Qj9aLmVtaXQoInJlamVjdGlvbkhhbmRsZWQiLHQpOlEoInJlamVjdGlvbmhhbmRsZWQiLHQsZS52YWx1ZSl9KSl9LGV0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBmdW5jdGlvbihvKXt0KGUsbixvLHIpfX0sbnQ9ZnVuY3Rpb24odCxlLG4scil7ZS5kb25lfHwoZS5kb25lPSEwLHImJihlPXIpLGUudmFsdWU9bixlLnN0YXRlPTIscSh0LGUsITApKX0scnQ9ZnVuY3Rpb24odCxlLG4scil7aWYoIWUuZG9uZSl7ZS5kb25lPSEwLHImJihlPXIpO3RyeXtpZih0PT09bil0aHJvdyBGKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpO3ZhciBvPVkobik7bz9TKChmdW5jdGlvbigpe3ZhciByPXtkb25lOiExfTt0cnl7by5jYWxsKG4sZXQocnQsdCxyLGUpLGV0KG50LHQscixlKSl9Y2F0Y2goaSl7bnQodCxyLGksZSl9fSkpOihlLnZhbHVlPW4sZS5zdGF0ZT0xLHEodCxlLCExKSl9Y2F0Y2goaSl7bnQodCx7ZG9uZTohMX0saSxlKX19fTtWJiYoTD1mdW5jdGlvbih0KXtiKHRoaXMsTCwiUHJvbWlzZSIpLHkodCksci5jYWxsKHRoaXMpO3ZhciBlPVIodGhpcyk7dHJ5e3QoZXQocnQsdGhpcyxlKSxldChudCx0aGlzLGUpKX1jYXRjaChuKXtudCh0aGlzLGUsbil9fSwocj1mdW5jdGlvbih0KXtOKHRoaXMse3R5cGU6IlByb21pc2UiLGRvbmU6ITEsbm90aWZpZWQ6ITEscGFyZW50OiExLHJlYWN0aW9uczpbXSxyZWplY3Rpb246ITEsc3RhdGU6MCx2YWx1ZTp2b2lkIDB9KX0pLnByb3RvdHlwZT1oKEwucHJvdG90eXBlLHt0aGVuOmZ1bmN0aW9uKHQsZSl7dmFyIG49QSh0aGlzKSxyPVUodyh0aGlzLEwpKTtyZXR1cm4gci5vaz0iZnVuY3Rpb24iIT10eXBlb2YgdHx8dCxyLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUsci5kb21haW49Qj9aLmRvbWFpbjp2b2lkIDAsbi5wYXJlbnQ9ITAsbi5yZWFjdGlvbnMucHVzaChyKSwwIT1uLnN0YXRlJiZxKHRoaXMsbiwhMSksci5wcm9taXNlfSxjYXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCx0KX19KSxvPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHIsZT1SKHQpO3RoaXMucHJvbWlzZT10LHRoaXMucmVzb2x2ZT1ldChydCx0LGUpLHRoaXMucmVqZWN0PWV0KG50LHQsZSl9LFQuZj1VPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09THx8dD09PWk/bmV3IG8odCk6SCh0KX0sdXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGx8fChhPWwucHJvdG90eXBlLnRoZW4scChsLnByb3RvdHlwZSwidGhlbiIsKGZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gbmV3IEwoKGZ1bmN0aW9uKHQsZSl7YS5jYWxsKG4sdCxlKX0pKS50aGVuKHQsZSl9KSksImZ1bmN0aW9uIj09dHlwZW9mIEMmJmMoe2dsb2JhbDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDohMH0se2ZldGNoOmZ1bmN0aW9uKHQpe3JldHVybiBFKEwsQy5hcHBseShzLGFyZ3VtZW50cykpfX0pKSksYyh7Z2xvYmFsOiEwLHdyYXA6ITAsZm9yY2VkOlZ9LHtQcm9taXNlOkx9KSx2KEwsIlByb21pc2UiLCExLCEwKSxkKCJQcm9taXNlIiksaT1mLlByb21pc2UsYyh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDpWfSx7cmVqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPVUodGhpcyk7cmV0dXJuIGUucmVqZWN0LmNhbGwodm9pZCAwLHQpLGUucHJvbWlzZX19KSxjKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOnV8fFZ9LHtyZXNvbHZlOmZ1bmN0aW9uKHQpe3JldHVybiBFKHUmJnRoaXM9PT1pP0w6dGhpcyx0KX19KSxjKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOlh9LHthbGw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPVUoZSkscj1uLnJlc29sdmUsbz1uLnJlamVjdCxpPUkoKGZ1bmN0aW9uKCl7dmFyIG49eShlLnJlc29sdmUpLGk9W10sYT0wLGM9MTtrKHQsKGZ1bmN0aW9uKHQpe3ZhciB1PWErKyxzPSExO2kucHVzaCh2b2lkIDApLGMrKyxuLmNhbGwoZSx0KS50aGVuKChmdW5jdGlvbih0KXtzfHwocz0hMCxpW3VdPXQsLS1jfHxyKGkpKX0pLG8pfSkpLC0tY3x8cihpKX0pKTtyZXR1cm4gaS5lcnJvciYmbyhpLnZhbHVlKSxuLnByb21pc2V9LHJhY2U6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPVUoZSkscj1uLnJlamVjdCxvPUkoKGZ1bmN0aW9uKCl7dmFyIG89eShlLnJlc29sdmUpO2sodCwoZnVuY3Rpb24odCl7by5jYWxsKGUsdCkudGhlbihuLnJlc29sdmUscil9KSl9KSk7cmV0dXJuIG8uZXJyb3ImJnIoby52YWx1ZSksbi5wcm9taXNlfX0pfSwiNXVIOCI6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LCI2Sk5xIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiVVRWUyIpLG89bigiVnU4MSIpLGk9bigiQnM4ViIpLGE9bigibS9MOCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1vKGUpLGM9YS5mLHU9aS5mLHM9MDtzPG4ubGVuZ3RoO3MrKyl7dmFyIGY9bltzXTtyKHQsZil8fGModCxmLHUoZSxmKSl9fX0sIjZMV0EiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ4cllLIik7dC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKHQpe3JldHVybiJBcnJheSI9PXIodCl9fSwiNlZvRSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInRpS3AiKSxvPW4oIlA0eTEiKSxpPXIoIml0ZXJhdG9yIiksYT1BcnJheS5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10JiYoby5BcnJheT09PXR8fGFbaV09PT10KX19LCI2aHBuIjpmdW5jdGlvbih0LGUsbil7bigiVXlkeSIpLG4oImVhanYiKSxuKCJuL21VIiksbigiUHFPSSIpLG4oIlFObnAiKSxuKCIvNXptIiksbigiQ3NnRCIpLG4oIjltUlciKSxuKCJRRmNUIiksbigidkFGcyIpLG4oImE1TksiKSxuKCJ5aUczIiksbigia05jVSIpLG4oIkt2R2kiKSxuKCJBbUZPIiksbigiZUppUiIpLG4oIkk5eGoiKSxuKCJ0bC91Iik7dmFyIHI9bigiUW85bCIpO3QuZXhwb3J0cz1yLk1hdGh9LCI2dW5LIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMERreSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gcigoZnVuY3Rpb24oKXt2YXIgZT0iIlt0XSgnIicpO3JldHVybiBlIT09ZS50b0xvd2VyQ2FzZSgpfHxlLnNwbGl0KCciJykubGVuZ3RoPjN9KSl9fSwiNytrZCI6ZnVuY3Rpb24odCxlLG4pe24oImRHL24iKSgiaXNDb25jYXRTcHJlYWRhYmxlIil9LCI3K3pzIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiWDJVKyIpLG89bigiVWVzTCIpLGk9bigidGlLcCIpKCJ0b1ByaW1pdGl2ZSIpLGE9RGF0ZS5wcm90b3R5cGU7aSBpbiBhfHxyKGEsaSxvKX0sIjdzYkQiOmZ1bmN0aW9uKHQsZSxuKXtuKCJxZVBWIiksbigiTmJOKyIpLG4oIjhBeUoiKSxuKCJpNlFGIiksbigia1NrbyIpLG4oIldEc1IiKSxuKCJyL1ZxIiksbigiNXVIOCIpLG4oIncxcloiKSxuKCJKZXZBIiksbigidG9BaiIpLG4oIlZDM0wiKTt2YXIgcj1uKCJRbzlsIik7dC5leHBvcnRzPXIuTnVtYmVyfSwiOEF5SiI6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtpc0Zpbml0ZTpuKCI0b1UvIil9KX0sIjhHbEwiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSEF1TSIpLG89ZnVuY3Rpb24odCl7dmFyIGUsbjt0aGlzLnByb21pc2U9bmV3IHQoKGZ1bmN0aW9uKHQscil7aWYodm9pZCAwIT09ZXx8dm9pZCAwIT09bil0aHJvdyBUeXBlRXJyb3IoIkJhZCBQcm9taXNlIGNvbnN0cnVjdG9yIik7ZT10LG49cn0pKSx0aGlzLnJlc29sdmU9cihlKSx0aGlzLnJlamVjdD1yKG4pfTt0LmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG8odCl9fSwiOFlPYSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBCSzIiKSxvPW4oImhoMXYiKSxpPW4oIlVUVlMiKSxhPW4oIm0vTDgiKS5mLGM9bigia09PbCIpLHU9bigidXk4MyIpLHM9YygibWV0YSIpLGY9MCxsPU9iamVjdC5pc0V4dGVuc2libGV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LHA9ZnVuY3Rpb24odCl7YSh0LHMse3ZhbHVlOntvYmplY3RJRDoiTyIrICsrZix3ZWFrRGF0YTp7fX19KX0saD10LmV4cG9ydHM9e1JFUVVJUkVEOiExLGZhc3RLZXk6ZnVuY3Rpb24odCxlKXtpZighbyh0KSlyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDooInN0cmluZyI9PXR5cGVvZiB0PyJTIjoiUCIpK3Q7aWYoIWkodCxzKSl7aWYoIWwodCkpcmV0dXJuIkYiO2lmKCFlKXJldHVybiJFIjtwKHQpfXJldHVybiB0W3NdLm9iamVjdElEfSxnZXRXZWFrRGF0YTpmdW5jdGlvbih0LGUpe2lmKCFpKHQscykpe2lmKCFsKHQpKXJldHVybiEwO2lmKCFlKXJldHVybiExO3AodCl9cmV0dXJuIHRbc10ud2Vha0RhdGF9LG9uRnJlZXplOmZ1bmN0aW9uKHQpe3JldHVybiB1JiZoLlJFUVVJUkVEJiZsKHQpJiYhaSh0LHMpJiZwKHQpLHR9fTtyW3NdPSEwfSwiOTBoVyI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gMD09KHQ9K3QpfHx0IT10P3Q6dDwwPy0xOjF9fSwiOTNJMCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlZwSVQiKSxvPW4oImtPT2wiKSxpPXIoImtleXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGlbdF18fChpW3RdPW8odCkpfX0sIjlMUGoiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiZXd2VyIpLGE9bigid0U2diIpO3Ioe3RhcmdldDoiRGF0ZSIscHJvdG86ITAsZm9yY2VkOm8oKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1uZXcgRGF0ZShOYU4pLnRvSlNPTigpfHwxIT09RGF0ZS5wcm90b3R5cGUudG9KU09OLmNhbGwoe3RvSVNPU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDF9fSl9KSl9LHt0b0pTT046ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxuPWEoZSk7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBufHxpc0Zpbml0ZShuKT9lLnRvSVNPU3RyaW5nKCk6bnVsbH19KX0sIjlOMjkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMVkvbiIpLnJpZ2h0O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpuKCJzd0ZMIikoInJlZHVjZVJpZ2h0Iil9LHtyZWR1Y2VSaWdodDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LCI5Yko3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIlpVZDgiKS5jb2RlQXQ7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7Y29kZVBvaW50QXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0KX19KX0sIjlkL3QiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ4cllLIiksbz1uKCJ0aUtwIikoInRvU3RyaW5nVGFnIiksaT0iQXJndW1lbnRzIj09cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxuLGE7cmV0dXJuIHZvaWQgMD09PXQ/IlVuZGVmaW5lZCI6bnVsbD09PXQ/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yobj1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaChuKXt9fShlPU9iamVjdCh0KSxvKSk/bjppP3IoZSk6Ik9iamVjdCI9PShhPXIoZSkpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jYWxsZWU/IkFyZ3VtZW50cyI6YX19LCI5bVJXIjpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITB9LHtmcm91bmQ6bigidm80ViIpfSl9LCI5dGIvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiSTh2aCIpLGk9U3RyaW5nLmZyb21DaGFyQ29kZSxhPVN0cmluZy5mcm9tQ29kZVBvaW50O3Ioe3RhcmdldDoiU3RyaW5nIixzdGF0OiEwLGZvcmNlZDohIWEmJjEhPWEubGVuZ3RofSx7ZnJvbUNvZGVQb2ludDpmdW5jdGlvbih0KXtmb3IodmFyIGUsbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGgsYT0wO3I+YTspe2lmKGU9K2FyZ3VtZW50c1thKytdLG8oZSwxMTE0MTExKSE9PWUpdGhyb3cgUmFuZ2VFcnJvcihlKyIgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCIpO24ucHVzaChlPDY1NTM2P2koZSk6aSg1NTI5NisoKGUtPTY1NTM2KT4+MTApLGUlMTAyNCs1NjMyMCkpfXJldHVybiBuLmpvaW4oIiIpfX0pfSxBbUZPOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCIwRGt5IiksaT1uKCJqclV2IiksYT1NYXRoLmFicyxjPU1hdGguZXhwLHU9TWF0aC5FO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXtyZXR1cm4tMmUtMTchPU1hdGguc2luaCgtMmUtMTcpfSkpfSx7c2luaDpmdW5jdGlvbih0KXtyZXR1cm4gYSh0PSt0KTwxPyhpKHQpLWkoLXQpKS8yOihjKHQtMSktYygtdC0xKSkqKHUvMil9fSl9LEJOTXQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoImJsaW5rIil9LHtibGluazpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LEJUaG86ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJIQXVNIiksbz1uKCJoaDF2IiksaT1bXS5zbGljZSxhPXt9LGM9ZnVuY3Rpb24odCxlLG4pe2lmKCEoZSBpbiBhKSl7Zm9yKHZhciByPVtdLG89MDtvPGU7bysrKXJbb109ImFbIitvKyJdIjthW2VdPUZ1bmN0aW9uKCJDLGEiLCJyZXR1cm4gbmV3IEMoIityLmpvaW4oIiwiKSsiKSIpfXJldHVybiBhW2VdKHQsbil9O3QuZXhwb3J0cz1GdW5jdGlvbi5iaW5kfHxmdW5jdGlvbih0KXt2YXIgZT1yKHRoaXMpLG49aS5jYWxsKGFyZ3VtZW50cywxKSxhPWZ1bmN0aW9uKCl7dmFyIHI9bi5jb25jYXQoaS5jYWxsKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2YgYT9jKGUsci5sZW5ndGgscik6ZS5hcHBseSh0LHIpfTtyZXR1cm4gbyhlLnByb3RvdHlwZSkmJihhLnByb3RvdHlwZT1lLnByb3RvdHlwZSksYX19LCJCWC9iIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiL0dxVSIpLG89bigiSkJ5OCIpLmYsaT17fS50b1N0cmluZyxhPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W107dC5leHBvcnRzLmY9ZnVuY3Rpb24odCl7cmV0dXJuIGEmJiJbb2JqZWN0IFdpbmRvd10iPT1pLmNhbGwodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBvKHQpfWNhdGNoKGUpe3JldHVybiBhLnNsaWNlKCl9fSh0KTpvKHIodCkpfX0sQnM4VjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigiMGVlZiIpLGk9bigiWEd3QyIpLGE9bigiL0dxVSIpLGM9bigid0U2diIpLHU9bigiVVRWUyIpLHM9bigiRFBzeCIpLGY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtlLmY9cj9mOmZ1bmN0aW9uKHQsZSl7aWYodD1hKHQpLGU9YyhlLCEwKSxzKXRyeXtyZXR1cm4gZih0LGUpfWNhdGNoKG4pe31pZih1KHQsZSkpcmV0dXJuIGkoIW8uZi5jYWxsKHQsZSksdFtlXSl9fSxDc2dEOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJqclV2Iik7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDpvIT1NYXRoLmV4cG0xfSx7ZXhwbTE6b30pfSxERWZ1OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIik7bigiMUU1eiIpKHIuSlNPTiwiSlNPTiIsITApfSxETXQyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJVTVNRIiksbz1uKCJFVWphIiksaT1uKCJIWUFGIiksYT1NYXRoLmNlaWwsYz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGMpe3ZhciB1LHMsZj1TdHJpbmcoaShlKSksbD1mLmxlbmd0aCxwPXZvaWQgMD09PWM/IiAiOlN0cmluZyhjKSxoPXIobik7cmV0dXJuIGg8PWx8fCIiPT1wP2Y6KChzPW8uY2FsbChwLGEoKHU9aC1sKS9wLmxlbmd0aCkpKS5sZW5ndGg+dSYmKHM9cy5zbGljZSgwLHUpKSx0P2YrczpzK2YpfX07dC5leHBvcnRzPXtzdGFydDpjKCExKSxlbmQ6YyghMCl9fSxEUHN4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCIwRGt5IiksaT1uKCJ6Qko0Iik7dC5leHBvcnRzPSFyJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGkoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sRFFOYTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYnVzRSIpLG89RGF0ZS5wcm90b3R5cGUsaT1vLnRvU3RyaW5nLGE9by5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPSJJbnZhbGlkIERhdGUiJiZyKG8sInRvU3RyaW5nIiwoZnVuY3Rpb24oKXt2YXIgdD1hLmNhbGwodGhpcyk7cmV0dXJuIHQ9PXQ/aS5jYWxsKHRoaXMpOiJJbnZhbGlkIERhdGUifSkpfSxFNU5NOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJiaWciKX0se2JpZzpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsImJpZyIsIiIsIiIpfX0pfSxFOVhEOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMVkvbiIpLmxlZnQ7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOm4oInN3RkwiKSgicmVkdWNlIil9LHtyZWR1Y2U6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxFTkY5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbz1uKCIyb1JvIiksaT1uKCI0c3l3IiksYT1uKCI4WU9hIiksYz1uKCJiV0ZoIiksdT1uKCJyS3piIikscz1uKCJoaDF2IiksZj1uKCJhZk84IikuZW5mb3JjZSxsPW4oImY1cDEiKSxwPSFvLkFjdGl2ZVhPYmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIG8saD1PYmplY3QuaXNFeHRlbnNpYmxlLHY9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sZD10LmV4cG9ydHM9YygiV2Vha01hcCIsdix1LCEwLCEwKTtpZihsJiZwKXtyPXUuZ2V0Q29uc3RydWN0b3IodiwiV2Vha01hcCIsITApLGEuUkVRVUlSRUQ9ITA7dmFyIGc9ZC5wcm90b3R5cGUseT1nLmRlbGV0ZSxiPWcuaGFzLG09Zy5nZXQsaz1nLnNldDtpKGcse2RlbGV0ZTpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgcikseS5jYWxsKHRoaXMsdCl8fGUuZnJvemVuLmRlbGV0ZSh0KX1yZXR1cm4geS5jYWxsKHRoaXMsdCl9LGhhczpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCl8fGUuZnJvemVuLmhhcyh0KX1yZXR1cm4gYi5jYWxsKHRoaXMsdCl9LGdldDpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCk/bS5jYWxsKHRoaXMsdCk6ZS5mcm96ZW4uZ2V0KHQpfXJldHVybiBtLmNhbGwodGhpcyx0KX0sc2V0OmZ1bmN0aW9uKHQsZSl7aWYocyh0KSYmIWgodCkpe3ZhciBuPWYodGhpcyk7bi5mcm96ZW58fChuLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCk/ay5jYWxsKHRoaXMsdCxlKTpuLmZyb3plbi5zZXQodCxlKX1lbHNlIGsuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXN9fSl9fSxFVWphOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigicHBHQiIpLG89bigiSFlBRiIpO3QuZXhwb3J0cz0iIi5yZXBlYXR8fGZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhvKHRoaXMpKSxuPSIiLGk9cih0KTtpZihpPDB8fGk9PTEvMCl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO2k+MDsoaT4+Pj0xKSYmKGUrPWUpKTEmaSYmKG4rPWUpO3JldHVybiBufX0sRW5aeTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjE0U2wiKSxvPW4oIlJPZFAiKSxpPW4oImdscmsiKSxhPW4oIkhZQUYiKSxjPW4oIlNFQmgiKSx1PW4oImlxV1ciKSxzPW4oIlVNU1EiKSxmPW4oIkZNTk0iKSxsPW4oImttTVYiKSxwPW4oIjBEa3kiKSxoPVtdLnB1c2gsdj1NYXRoLm1pbixkPSFwKChmdW5jdGlvbigpe3JldHVybiFSZWdFeHAoNDI5NDk2NzI5NSwieSIpfSkpO3IoInNwbGl0IiwyLChmdW5jdGlvbih0LGUsbil7dmFyIHI7cmV0dXJuIHI9ImMiPT0iYWJiYyIuc3BsaXQoLyhiKSovKVsxXXx8NCE9InRlc3QiLnNwbGl0KC8oPzopLywtMSkubGVuZ3RofHwyIT0iYWIiLnNwbGl0KC8oPzphYikqLykubGVuZ3RofHw0IT0iLiIuc3BsaXQoLyguPykoLj8pLykubGVuZ3RofHwiLiIuc3BsaXQoLygpKCkvKS5sZW5ndGg+MXx8IiIuc3BsaXQoLy4/LykubGVuZ3RoP2Z1bmN0aW9uKHQsbil7dmFyIHI9U3RyaW5nKGEodGhpcykpLGk9dm9pZCAwPT09bj80Mjk0OTY3Mjk1Om4+Pj4wO2lmKDA9PT1pKXJldHVybltdO2lmKHZvaWQgMD09PXQpcmV0dXJuW3JdO2lmKCFvKHQpKXJldHVybiBlLmNhbGwocix0LGkpO2Zvcih2YXIgYyx1LHMsZj1bXSxwPTAsdj1uZXcgUmVnRXhwKHQuc291cmNlLCh0Lmlnbm9yZUNhc2U/ImkiOiIiKSsodC5tdWx0aWxpbmU/Im0iOiIiKSsodC51bmljb2RlPyJ1IjoiIikrKHQuc3RpY2t5PyJ5IjoiIikrImciKTsoYz1sLmNhbGwodixyKSkmJiEoKHU9di5sYXN0SW5kZXgpPnAmJihmLnB1c2goci5zbGljZShwLGMuaW5kZXgpKSxjLmxlbmd0aD4xJiZjLmluZGV4PHIubGVuZ3RoJiZoLmFwcGx5KGYsYy5zbGljZSgxKSkscz1jWzBdLmxlbmd0aCxwPXUsZi5sZW5ndGg+PWkpKTspdi5sYXN0SW5kZXg9PT1jLmluZGV4JiZ2Lmxhc3RJbmRleCsrO3JldHVybiBwPT09ci5sZW5ndGg/IXMmJnYudGVzdCgiIil8fGYucHVzaCgiIik6Zi5wdXNoKHIuc2xpY2UocCkpLGYubGVuZ3RoPmk/Zi5zbGljZSgwLGkpOmZ9OiIwIi5zcGxpdCh2b2lkIDAsMCkubGVuZ3RoP2Z1bmN0aW9uKHQsbil7cmV0dXJuIHZvaWQgMD09PXQmJjA9PT1uP1tdOmUuY2FsbCh0aGlzLHQsbil9OmUsW2Z1bmN0aW9uKGUsbil7dmFyIG89YSh0aGlzKSxpPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKGUsbyxuKTpyLmNhbGwoU3RyaW5nKG8pLGUsbil9LGZ1bmN0aW9uKHQsbyl7dmFyIGE9bihyLHQsdGhpcyxvLHIhPT1lKTtpZihhLmRvbmUpcmV0dXJuIGEudmFsdWU7dmFyIGw9aSh0KSxwPVN0cmluZyh0aGlzKSxoPWMobCxSZWdFeHApLGc9bC51bmljb2RlLHk9bmV3IGgoZD9sOiJeKD86IitsLnNvdXJjZSsiKSIsKGwuaWdub3JlQ2FzZT8iaSI6IiIpKyhsLm11bHRpbGluZT8ibSI6IiIpKyhsLnVuaWNvZGU/InUiOiIiKSsoZD8ieSI6ImciKSksYj12b2lkIDA9PT1vPzQyOTQ5NjcyOTU6bz4+PjA7aWYoMD09PWIpcmV0dXJuW107aWYoMD09PXAubGVuZ3RoKXJldHVybiBudWxsPT09Zih5LHApP1twXTpbXTtmb3IodmFyIG09MCxrPTAsXz1bXTtrPHAubGVuZ3RoOyl7eS5sYXN0SW5kZXg9ZD9rOjA7dmFyIHcseD1mKHksZD9wOnAuc2xpY2UoaykpO2lmKG51bGw9PT14fHwodz12KHMoeS5sYXN0SW5kZXgrKGQ/MDprKSkscC5sZW5ndGgpKT09PW0paz11KHAsayxnKTtlbHNle2lmKF8ucHVzaChwLnNsaWNlKG0saykpLF8ubGVuZ3RoPT09YilyZXR1cm4gXztmb3IodmFyIFM9MTtTPD14Lmxlbmd0aC0xO1MrKylpZihfLnB1c2goeFtTXSksXy5sZW5ndGg9PT1iKXJldHVybiBfO2s9bT13fX1yZXR1cm4gXy5wdXNoKHAuc2xpY2UobSkpLF99XX0pLCFkKX0sRXA5STpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1PYmplY3QuaXN8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lPzAhPT10fHwxL3Q9PTEvZTp0IT10JiZlIT1lfX0sRXhvQzpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se3NldFByb3RvdHlwZU9mOm4oIjBydnIiKX0pfSxGOEpSOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigidHljUiIpLmZvckVhY2gsbz1uKCJzd0ZMIik7dC5leHBvcnRzPW8oImZvckVhY2giKT9mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfTpbXS5mb3JFYWNofSxGRjZsOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZXd2VyIpLG89bigiSTh2aCIpLGk9bigiVU1TUSIpLGE9TWF0aC5taW47dC5leHBvcnRzPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKHQsZSl7dmFyIG49cih0aGlzKSxjPWkobi5sZW5ndGgpLHU9byh0LGMpLHM9byhlLGMpLGY9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbD1hKCh2b2lkIDA9PT1mP2M6byhmLGMpKS1zLGMtdSkscD0xO2ZvcihzPHUmJnU8cytsJiYocD0tMSxzKz1sLTEsdSs9bC0xKTtsLS0gPjA7KXMgaW4gbj9uW3VdPW5bc106ZGVsZXRlIG5bdV0sdSs9cCxzKz1wO3JldHVybiBufX0sRk1OTTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieHJZSyIpLG89bigia21NViIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXQuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2Ygbil7dmFyIGk9bi5jYWxsKHQsZSk7aWYoIm9iamVjdCIhPXR5cGVvZiBpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIGl9aWYoIlJlZ0V4cCIhPT1yKHQpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpO3JldHVybiBvLmNhbGwodCxlKX19LEZadFA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIi9ieXQiKSxpPW4oIkY4SlIiKSxhPW4oIlgyVSsiKTtmb3IodmFyIGMgaW4gbyl7dmFyIHU9cltjXSxzPXUmJnUucHJvdG90eXBlO2lmKHMmJnMuZm9yRWFjaCE9PWkpdHJ5e2EocywiZm9yRWFjaCIsaSl9Y2F0Y2goZil7cy5mb3JFYWNoPWl9fX0sIkcrUngiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwR2JZIik7dC5leHBvcnRzPXIoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LEdLVlU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoImFuY2hvciIpfSx7YW5jaG9yOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsImEiLCJuYW1lIix0KX19KX0sR1JQRjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oImhYcE8iKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjZ1bksiKSgiZm9udHNpemUiKX0se2ZvbnRzaXplOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsImZvbnQiLCJzaXplIix0KX19KX0sR1h2ZDpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJzcGVjaWVzIil9LEdhclU6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0ICIrKG4/bisiICI6IiIpKyJpbnZvY2E="
}

github/deemru/w8io/873ac7e 
2.90 ms