mbrr · data · 2.7c767379.chunk.js_49
{
"2.7c767379.chunk.js_49": "base64:Y3QiOyhmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9bnVsbCxuPSExLGk9MyxvPS0xLGE9LTEscz0hMSx1PSExO2Z1bmN0aW9uIGMoKXtpZighcyl7dmFyIGU9ci5leHBpcmF0aW9uVGltZTt1P3coKTp1PSEwLEUoaCxlKX19ZnVuY3Rpb24gZigpe3ZhciBlPXIsdD1yLm5leHQ7aWYocj09PXQpcj1udWxsO2Vsc2V7dmFyIG49ci5wcmV2aW91cztyPW4ubmV4dD10LHQucHJldmlvdXM9bn1lLm5leHQ9ZS5wcmV2aW91cz1udWxsLG49ZS5jYWxsYmFjayx0PWUuZXhwaXJhdGlvblRpbWUsZT1lLnByaW9yaXR5TGV2ZWw7dmFyIG89aSxzPWE7aT1lLGE9dDt0cnl7dmFyIHU9bigpfWZpbmFsbHl7aT1vLGE9c31pZigiZnVuY3Rpb24iPT09dHlwZW9mIHUpaWYodT17Y2FsbGJhY2s6dSxwcmlvcml0eUxldmVsOmUsZXhwaXJhdGlvblRpbWU6dCxuZXh0Om51bGwscHJldmlvdXM6bnVsbH0sbnVsbD09PXIpcj11Lm5leHQ9dS5wcmV2aW91cz11O2Vsc2V7bj1udWxsLGU9cjtkb3tpZihlLmV4cGlyYXRpb25UaW1lPj10KXtuPWU7YnJlYWt9ZT1lLm5leHR9d2hpbGUoZSE9PXIpO251bGw9PT1uP249cjpuPT09ciYmKHI9dSxjKCkpLCh0PW4ucHJldmlvdXMpLm5leHQ9bi5wcmV2aW91cz11LHUubmV4dD1uLHUucHJldmlvdXM9dH19ZnVuY3Rpb24gbCgpe2lmKC0xPT09byYmbnVsbCE9PXImJjE9PT1yLnByaW9yaXR5TGV2ZWwpe3M9ITA7dHJ5e2Rve2YoKX13aGlsZShudWxsIT09ciYmMT09PXIucHJpb3JpdHlMZXZlbCl9ZmluYWxseXtzPSExLG51bGwhPT1yP2MoKTp1PSExfX19ZnVuY3Rpb24gaChlKXtzPSEwO3ZhciBpPW47bj1lO3RyeXtpZihlKWZvcig7bnVsbCE9PXI7KXt2YXIgbz10LnVuc3RhYmxlX25vdygpO2lmKCEoci5leHBpcmF0aW9uVGltZTw9bykpYnJlYWs7ZG97ZigpfXdoaWxlKG51bGwhPT1yJiZyLmV4cGlyYXRpb25UaW1lPD1vKX1lbHNlIGlmKG51bGwhPT1yKWRve2YoKX13aGlsZShudWxsIT09ciYmIVQoKSl9ZmluYWxseXtzPSExLG49aSxudWxsIT09cj9jKCk6dT0hMSxsKCl9fXZhciBwLGQseT1EYXRlLGc9ImZ1bmN0aW9uIj09PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLHY9ImZ1bmN0aW9uIj09PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMCxtPSJmdW5jdGlvbiI9PT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3JlcXVlc3RBbmltYXRpb25GcmFtZTp2b2lkIDAsYj0iZnVuY3Rpb24iPT09dHlwZW9mIGNhbmNlbEFuaW1hdGlvbkZyYW1lP2NhbmNlbEFuaW1hdGlvbkZyYW1lOnZvaWQgMDtmdW5jdGlvbiBfKGUpe3A9bShmdW5jdGlvbih0KXt2KGQpLGUodCl9KSxkPWcoZnVuY3Rpb24oKXtiKHApLGUodC51bnN0YWJsZV9ub3coKSl9LDEwMCl9aWYoIm9iamVjdCI9PT10eXBlb2YgcGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgUz1wZXJmb3JtYW5jZTt0LnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBTLm5vdygpfX1lbHNlIHQudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIHkubm93KCl9O3ZhciBFLHcsVCxBPW51bGw7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93P0E9d2luZG93OiJ1bmRlZmluZWQiIT09dHlwZW9mIGUmJihBPWUpLEEmJkEuX3NjaGVkTW9jayl7dmFyIEM9QS5fc2NoZWRNb2NrO0U9Q1swXSx3PUNbMV0sVD1DWzJdLHQudW5zdGFibGVfbm93PUNbM119ZWxzZSBpZigidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3d8fCJmdW5jdGlvbiIhPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciB4PW51bGwsST1mdW5jdGlvbihlKXtpZihudWxsIT09eCl0cnl7eChlKX1maW5hbGx5e3g9bnVsbH19O0U9ZnVuY3Rpb24oZSl7bnVsbCE9PXg/c2V0VGltZW91dChFLDAsZSk6KHg9ZSxzZXRUaW1lb3V0KEksMCwhMSkpfSx3PWZ1bmN0aW9uKCl7eD1udWxsfSxUPWZ1bmN0aW9uKCl7cmV0dXJuITF9fWVsc2V7InVuZGVmaW5lZCIhPT10eXBlb2YgY29uc29sZSYmKCJmdW5jdGlvbiIhPT10eXBlb2YgbSYmY29uc29sZS5lcnJvcigiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuIE1ha2Ugc3VyZSB0aGF0IHlvdSBsb2FkIGEgcG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vZmIubWUvcmVhY3QtcG9seWZpbGxzIiksImZ1bmN0aW9uIiE9PXR5cGVvZiBiJiZjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGNhbmNlbEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL2ZiLm1lL3JlYWN0LXBvbHlmaWxscyIpKTt2YXIgaz1udWxsLE89ITEsTj0tMSxQPSExLFI9ITEsQj0wLE09MzMsTD0zMztUPWZ1bmN0aW9uKCl7cmV0dXJuIEI8PXQudW5zdGFibGVfbm93KCl9O3ZhciBEPW5ldyBNZXNzYWdlQ2hhbm5lbCxqPUQucG9ydDI7RC5wb3J0MS5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXtPPSExO3ZhciBlPWsscj1OO2s9bnVsbCxOPS0xO3ZhciBuPXQudW5zdGFibGVfbm93KCksaT0hMTtpZigwPj1CLW4pe2lmKCEoLTEhPT1yJiZyPD1uKSlyZXR1cm4gUHx8KFA9ITAsXyhVKSksaz1lLHZvaWQoTj1yKTtpPSEwfWlmKG51bGwhPT1lKXtSPSEwO3RyeXtlKGkpfWZpbmFsbHl7Uj0hMX19fTt2YXIgVT1mdW5jdGlvbiBlKHQpe2lmKG51bGwhPT1rKXtfKGUpO3ZhciByPXQtQitMO3I8TCYmTTxMPyg4PnImJihyPTgpLEw9cjxNP006cik6TT1yLEI9dCtMLE98fChPPSEwLGoucG9zdE1lc3NhZ2Uodm9pZCAwKSl9ZWxzZSBQPSExfTtFPWZ1bmN0aW9uKGUsdCl7az1lLE49dCxSfHwwPnQ/ai5wb3N0TWVzc2FnZSh2b2lkIDApOlB8fChQPSEwLF8oVSkpfSx3PWZ1bmN0aW9uKCl7az1udWxsLE89ITEsTj0tMX19dC51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xLHQudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9Mix0LnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTMsdC51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NSx0LnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsdC51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHk9ZnVuY3Rpb24oZSxyKXtzd2l0Y2goZSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpicmVhaztkZWZhdWx0OmU9M312YXIgbj1pLGE9bztpPWUsbz10LnVuc3RhYmxlX25vdygpO3RyeXtyZXR1cm4gcigpfWZpbmFsbHl7aT1uLG89YSxsKCl9fSx0LnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oZSl7c3dpdGNoKGkpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciByPTM7YnJlYWs7ZGVmYXVsdDpyPWl9dmFyIG49aSxhPW87aT1yLG89dC51bnN0YWJsZV9ub3coKTt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e2k9bixvPWEsbCgpfX0sdC51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGUsbil7dmFyIGE9LTEhPT1vP286dC51bnN0YWJsZV9ub3coKTtpZigib2JqZWN0Ij09PXR5cGVvZiBuJiZudWxsIT09biYmIm51bWJlciI9PT10eXBlb2Ygbi50aW1lb3V0KW49YStuLnRpbWVvdXQ7ZWxzZSBzd2l0Y2goaSl7Y2FzZSAxOm49YSstMTticmVhaztjYXNlIDI6bj1hKzI1MDticmVhaztjYXNlIDU6bj1hKzEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA0Om49YSsxZTQ7YnJlYWs7ZGVmYXVsdDpuPWErNWUzfWlmKGU9e2NhbGxiYWNrOmUscHJpb3JpdHlMZXZlbDppLGV4cGlyYXRpb25UaW1lOm4sbmV4dDpudWxsLHByZXZpb3VzOm51bGx9LG51bGw9PT1yKXI9ZS5uZXh0PWUucHJldmlvdXM9ZSxjKCk7ZWxzZXthPW51bGw7dmFyIHM9cjtkb3tpZihzLmV4cGlyYXRpb25UaW1lPm4pe2E9czticmVha31zPXMubmV4dH13aGlsZShzIT09cik7bnVsbD09PWE/YT1yOmE9PT1yJiYocj1lLGMoKSksKG49YS5wcmV2aW91cykubmV4dD1hLnByZXZpb3VzPWUsZS5uZXh0PWEsZS5wcmV2aW91cz1ufXJldHVybiBlfSx0LnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGUpe3ZhciB0PWUubmV4dDtpZihudWxsIT09dCl7aWYodD09PWUpcj1udWxsO2Vsc2V7ZT09PXImJihyPXQpO3ZhciBuPWUucHJldmlvdXM7bi5uZXh0PXQsdC5wcmV2aW91cz1ufWUubmV4dD1lLnByZXZpb3VzPW51bGx9fSx0LnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihlKXt2YXIgcj1pO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWksYT1vO2k9cixvPXQudW5zdGFibGVfbm93KCk7dHJ5e3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e2k9bixvPWEsbCgpfX19LHQudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gaX0sdC51bnN0YWJsZV9zaG91bGRZaWVsZD1mdW5jdGlvbigpe3JldHVybiFuJiYobnVsbCE9PXImJnIuZXhwaXJhdGlvblRpbWU8YXx8VCgpKX0sdC51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe251bGwhPT1yJiZjKCl9LHQudW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9LHQudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gcn19KS5jYWxsKHRoaXMscigzNCkpfSxmdW5jdGlvbihlLHQscil7fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcj1bXSxuPSEwLGk9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgYSxzPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oYT1zLm5leHQoKSkuZG9uZSkmJihyLnB1c2goYS52YWx1ZSksIXR8fHIubGVuZ3RoIT09dCk7bj0hMCk7fWNhdGNoKHUpe2k9ITAsbz11fWZpbmFsbHl7dHJ5e258fG51bGw9PXMucmV0dXJufHxzLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBvfX1yZXR1cm4gcn19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAscj1uZXcgQXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn19fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpfHwiW29iamVjdCBBcmd1bWVudHNdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlyZXR1cm4gQXJyYXkuZnJvbShlKX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UiKX19LGZ1bmN0aW9uKGUsdCl7dC5yZWFkPWZ1bmN0aW9uKGUsdCxyLG4saSl7dmFyIG8sYSxzPTgqaS1uLTEsdT0oMTw8cyktMSxjPXU+PjEsZj0tNyxsPXI/aS0xOjAsaD1yPy0xOjEscD1lW3QrbF07Zm9yKGwrPWgsbz1wJigxPDwtZiktMSxwPj49LWYsZis9cztmPjA7bz0yNTYqbytlW3QrbF0sbCs9aCxmLT04KTtmb3IoYT1vJigxPDwtZiktMSxvPj49LWYsZis9bjtmPjA7YT0yNTYqYStlW3QrbF0sbCs9aCxmLT04KTtpZigwPT09bylvPTEtYztlbHNle2lmKG89PT11KXJldHVybiBhP05hTjoxLzAqKHA/LTE6MSk7YSs9TWF0aC5wb3coMixuKSxvLT1jfXJldHVybihwPy0xOjEpKmEqTWF0aC5wb3coMixvLW4pfSx0LndyaXRlPWZ1bmN0aW9uKGUsdCxyLG4saSxvKXt2YXIgYSxzLHUsYz04Km8taS0xLGY9KDE8PGMpLTEsbD1mPj4xLGg9MjM9PT1pP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxwPW4/MDpvLTEsZD1uPzE6LTEseT10PDB8fDA9PT10JiYxL3Q8MD8xOjA7Zm9yKHQ9TWF0aC5hYnModCksaXNOYU4odCl8fHQ9PT0xLzA/KHM9aXNOYU4odCk/MTowLGE9Zik6KGE9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMiksdCoodT1NYXRoLnBvdygyLC1hKSk8MSYmKGEtLSx1Kj0yKSwodCs9YStsPj0xP2gvdTpoKk1hdGgucG93KDIsMS1sKSkqdT49MiYmKGErKyx1Lz0yKSxhK2w+PWY/KHM9MCxhPWYpOmErbD49MT8ocz0odCp1LTEpKk1hdGgucG93KDIsaSksYSs9bCk6KHM9dCpNYXRoLnBvdygyLGwtMSkqTWF0aC5wb3coMixpKSxhPTApKTtpPj04O2VbcitwXT0yNTUmcyxwKz1kLHMvPTI1NixpLT04KTtmb3IoYT1hPDxpfHMsYys9aTtjPjA7ZVtyK3BdPTI1NSZhLHArPWQsYS89MjU2LGMtPTgpO2VbcitwLWRdfD0xMjgqeX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dC5yYW5kb21CeXRlcz10LnJuZz10LnBzZXVkb1JhbmRvbUJ5dGVzPXQucHJuZz1yKDEwNCksdC5jcmVhdGVIYXNoPXQuSGFzaD1yKDEyNyksdC5jcmVhdGVIbWFjPXQuSG1hYz1yKDMxNik7dmFyIG49cig1NjUpLGk9T2JqZWN0LmtleXMobiksbz1bInNoYTEiLCJzaGEyMjQiLCJzaGEyNTYiLCJzaGEzODQiLCJzaGE1MTIiLCJtZDUiLCJybWQxNjAiXS5jb25jYXQoaSk7dC5nZXRIYXNoZXM9ZnVuY3Rpb24oKXtyZXR1cm4gb307dmFyIGE9cigzMTkpO3QucGJrZGYyPWEucGJrZGYyLHQucGJrZGYyU3luYz1hLnBia2RmMlN5bmM7dmFyIHM9cig1NjcpO3QuQ2lwaGVyPXMuQ2lwaGVyLHQuY3JlYXRlQ2lwaGVyPXMuY3JlYXRlQ2lwaGVyLHQuQ2lwaGVyaXY9cy5DaXBoZXJpdix0LmNyZWF0ZUNpcGhlcml2PXMuY3JlYXRlQ2lwaGVyaXYsdC5EZWNpcGhlcj1zLkRlY2lwaGVyLHQuY3JlYXRlRGVjaXBoZXI9cy5jcmVhdGVEZWNpcGhlcix0LkRlY2lwaGVyaXY9cy5EZWNpcGhlcml2LHQuY3JlYXRlRGVjaXBoZXJpdj1zLmNyZWF0ZURlY2lwaGVyaXYsdC5nZXRDaXBoZXJzPXMuZ2V0Q2lwaGVycyx0Lmxpc3RDaXBoZXJzPXMubGlzdENpcGhlcnM7dmFyIHU9cig1ODQpO3QuRGlmZmllSGVsbG1hbkdyb3VwPXUuRGlmZmllSGVsbG1hbkdyb3VwLHQuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPXUuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwLHQuZ2V0RGlmZmllSGVsbG1hbj11LmdldERpZmZpZUhlbGxtYW4sdC5jcmVhdGVEaWZmaWVIZWxsbWFuPXUuY3JlYXRlRGlmZmllSGVsbG1hbix0LkRpZmZpZUhlbGxtYW49dS5EaWZmaWVIZWxsbWFuO3ZhciBjPXIoNTg5KTt0LmNyZWF0ZVNpZ249Yy5jcmVhdGVTaWduLHQuU2lnbj1jLlNpZ24sdC5jcmVhdGVWZXJpZnk9Yy5jcmVhdGVWZXJpZnksdC5WZXJpZnk9Yy5WZXJpZnksdC5jcmVhdGVFQ0RIPXIoNjIzKTt2YXIgZj1yKDYyNCk7dC5wdWJsaWNFbmNyeXB0PWYucHVibGljRW5jcnlwdCx0LnByaXZhdGVFbmNyeXB0PWYucHJpdmF0ZUVuY3J5cHQsdC5wdWJsaWNEZWNyeXB0PWYucHVibGljRGVjcnlwdCx0LnByaXZhdGVEZWNyeXB0PWYucHJpdmF0ZURlY3J5cHQ7dmFyIGw9cig2MjcpO3QucmFuZG9tRmlsbD1sLnJhbmRvbUZpbGwsdC5yYW5kb21GaWxsU3luYz1sLnJhbmRvbUZpbGxTeW5jLHQuY3JlYXRlQ3JlZGVudGlhbHM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoWyJzb3JyeSwgY3JlYXRlQ3JlZGVudGlhbHMgaXMgbm90IGltcGxlbWVudGVkIHlldCIsIndlIGFjY2VwdCBwdWxsIHJlcXVlc3RzIiwiaHR0cHM6Ly9naXRodWIuY29tL2NyeXB0by1icm93c2VyaWZ5L2NyeXB0by1icm93c2VyaWZ5Il0uam9pbigiXG4iKSl9LHQuY29uc3RhbnRzPXtESF9DSEVDS19QX05PVF9TQUZFX1BSSU1FOjIsREhfQ0hFQ0tfUF9OT1RfUFJJTUU6MSxESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SOjQsREhfTk9UX1NVSVRBQkxFX0dFTkVSQVRPUjo4LE5QTl9FTkFCTEVEOjEsQUxQTl9FTkFCTEVEOjEsUlNBX1BLQ1MxX1BBRERJTkc6MSxSU0FfU1NMVjIzX1BBRERJTkc6MixSU0FfTk9fUEFERElORzozLFJTQV9QS0NTMV9PQUVQX1BBRERJTkc6NCxSU0FfWDkzMV9QQURESU5HOjUsUlNBX1BLQ1MxX1BTU19QQURESU5HOjYsUE9JTlRfQ09OVkVSU0lPTl9DT01QUkVTU0VEOjIsUE9JTlRfQ09OVkVSU0lPTl9VTkNPTVBSRVNTRUQ6NCxQT0lOVF9DT05WRVJTSU9OX0hZQlJJRDo2fX0sLGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4KS5CdWZmZXIsaT1yKDU1Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9cmV0dXJuIGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZSl7dmFyIHQ9e2RhdGE6ZSxuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9dDp0aGlzLmhlYWQ9dCx0aGlzLnRhaWw9dCwrK3RoaXMubGVuZ3RofSxlLnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9uKGUpe3ZhciB0PXtkYXRhOmUsbmV4dDp0aGlzLmhlYWR9OzA9PT10aGlzLmxlbmd0aCYmKHRoaXMudGFpbD10KSx0aGlzLmhlYWQ9dCwrK3RoaXMubGVuZ3RofSxlLnByb3RvdHlwZS5zaGlmdD1mdW5jdGlvbigpe2lmKDAhPT10aGlzLmxlbmd0aCl7dmFyIGU9dGhpcy5oZWFkLmRhdGE7cmV0dXJuIDE9PT10aGlzLmxlbmd0aD90aGlzLmhlYWQ9dGhpcy50YWlsPW51bGw6dGhpcy5oZWFkPXRoaXMuaGVhZC5uZXh0LC0tdGhpcy5sZW5ndGgsZX19LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9LGUucHJvdG90eXBlLmpvaW49ZnVuY3Rpb24oZSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgdD10aGlzLmhlYWQscj0iIit0LmRhdGE7dD10Lm5leHQ7KXIrPWUrdC5kYXRhO3JldHVybiByfSxlLnByb3RvdHlwZS5jb25jYXQ9ZnVuY3Rpb24oZSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiBuLmFsbG9jKDApO2lmKDE9PT10aGlzLmxlbmd0aClyZXR1cm4gdGhpcy5oZWFkLmRhdGE7Zm9yKHZhciB0LHIsaSxvPW4uYWxsb2NVbnNhZmUoZT4+PjApLGE9dGhpcy5oZWFkLHM9MDthOyl0PWEuZGF0YSxyPW8saT1zLHQuY29weShyLGkpLHMrPWEuZGF0YS5sZW5ndGgsYT1hLm5leHQ7cmV0dXJuIG99LGV9KCksaSYmaS5pbnNwZWN0JiZpLmluc3BlY3QuY3VzdG9tJiYoZS5leHBvcnRzLnByb3RvdHlwZVtpLmluc3BlY3QuY3VzdG9tXT1mdW5jdGlvbigpe3ZhciBlPWkuaW5zcGVjdCh7bGVuZ3RoOnRoaXMubGVuZ3RofSk7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZSsiICIrZX0pfSwsZnVuY3Rpb24oZSx0LHIpeyhmdW5jdGlvbihlLHQpeyFmdW5jdGlvbihlLHIpeyJ1c2Ugc3RyaWN0IjtpZighZS5zZXRJbW1lZGlhdGUpe3ZhciBuLGk9MSxvPXt9LGE9ITEscz1lLmRvY3VtZW50LHU9T2JqZWN0LmdldFByb3RvdHlwZU9mJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7dT11JiZ1LnNldFRpbWVvdXQ/dTplLCJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoZS5wcm9jZXNzKT9uPWZ1bmN0aW9uKGUpe3QubmV4dFRpY2soZnVuY3Rpb24oKXtmKGUpfSl9OmZ1bmN0aW9uKCl7aWYoZS5wb3N0TWVzc2FnZSYmIWUuaW1wb3J0U2NyaXB0cyl7dmFyIHQ9ITAscj1lLm9ubWVzc2FnZTtyZXR1cm4gZS5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXt0PSExfSxlLnBvc3RNZXNzYWdlKCIiLCIqIiksZS5vbm1lc3NhZ2U9cix0fX0oKT9mdW5jdGlvbigpe3ZhciB0PSJzZXRJbW1lZGlhdGUkIitNYXRoLnJhbmRvbSgpKyIkIixyPWZ1bmN0aW9uKHIpe3Iuc291cmNlPT09ZSYmInN0cmluZyI9PT10eXBlb2Ygci5kYXRhJiYwPT09ci5kYXRhLmluZGV4T2YodCkmJmYoK3IuZGF0YS5zbGljZSh0Lmxlbmd0aCkpfTtlLmFkZEV2ZW50TGlzdGVuZXI/ZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyLCExKTplLmF0dGFjaEV2ZW50KCJvbm1lc3NhZ2UiLHIpLG49ZnVuY3Rpb24ocil7ZS5wb3N0TWVzc2FnZSh0K3IsIioiKX19KCk6ZS5NZXNzYWdlQ2hhbm5lbD9mdW5jdGlvbigpe3ZhciBlPW5ldyBNZXNzYWdlQ2hhbm5lbDtlLnBvcnQxLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtmKGUuZGF0YSl9LG49ZnVuY3Rpb24odCl7ZS5wb3J0Mi5wb3N0TWVzc2FnZSh0KX19KCk6cyYmIm9ucmVhZHlzdGF0ZWNoYW5nZSJpbiBzLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpP2Z1bmN0aW9uKCl7dmFyIGU9cy5kb2N1bWVudEVsZW1lbnQ7bj1mdW5jdGlvbih0KXt2YXIgcj1zLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Iub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7Zih0KSxyLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGUucmVtb3ZlQ2hpbGQocikscj1udWxsfSxlLmFwcGVuZENoaWxkKHIpfX0oKTpuPWZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZiwwLGUpfSx1LnNldEltbWVkaWF0ZT1mdW5jdGlvbihlKXsiZnVuY3Rpb24iIT09dHlwZW9mIGUmJihlPW5ldyBGdW5jdGlvbigiIitlKSk7Zm9yKHZhciB0PW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyKzFdO3ZhciBhPXtjYWxsYmFjazplLGFyZ3M6dH07cmV0dXJuIG9baV09YSxuKGkpLGkrK30sdS5jbGVhckltbWVkaWF0ZT1jfWZ1bmN0aW9uIGMoZSl7ZGVsZXRlIG9bZV19ZnVuY3Rpb24gZihlKXtpZihhKXNldFRpbWVvdXQoZiwwLGUpO2Vsc2V7dmFyIHQ9b1tlXTtpZih0KXthPSEwO3RyeXshZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jYWxsYmFjayxuPWUuYXJncztzd2l0Y2gobi5sZW5ndGgpe2Nhc2UgMDp0KCk7YnJlYWs7Y2FzZSAxOnQoblswXSk7YnJlYWs7Y2FzZSAyOnQoblswXSxuWzFdKTticmVhaztjYXNlIDM6dChuWzBdLG5bMV0sblsyXSk7YnJlYWs7ZGVmYXVsdDp0LmFwcGx5KHIsbil9fSh0KX1maW5hbGx5e2MoZSksYT0hMX19fX19KCJ1bmRlZmluZWQiPT09dHlwZW9mIHNlbGY/InVuZGVmaW5lZCI9PT10eXBlb2YgZT90aGlzOmU6c2VsZil9KS5jYWxsKHRoaXMscigzNCkscig0NikpfSxmdW5jdGlvbihlLHQscil7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHIoZSl7dHJ5e2lmKCF0LmxvY2FsU3RvcmFnZSlyZXR1cm4hMX1jYXRjaChuKXtyZXR1cm4hMX12YXIgcj10LmxvY2FsU3RvcmFnZVtlXTtyZXR1cm4gbnVsbCE9ciYmInRydWUiPT09U3RyaW5nKHIpLnRvTG93ZXJDYXNlKCl9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYocigibm9EZXByZWNhdGlvbiIpKXJldHVybiBlO3ZhciBuPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFuKXtpZihyKCJ0aHJvd0RlcHJlY2F0aW9uIikpdGhyb3cgbmV3IEVycm9yKHQpO3IoInRyYWNlRGVwcmVjYXRpb24iKT9jb25zb2xlLnRyYWNlKHQpOmNvbnNvbGUud2Fybih0KSxuPSEwfXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fSkuY2FsbCh0aGlzLHIoMzQpKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9bzt2YXIgbj1yKDMxMyksaT1yKDEyOCk7ZnVuY3Rpb24gbyhlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBvKSlyZXR1cm4gbmV3IG8oZSk7bi5jYWxsKHRoaXMsZSl9aS5pbmhlcml0cz1yKDcpLGkuaW5oZXJpdHMobyxuKSxvLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKGUsdCxyKXtyKG51bGwsZSl9fSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPXIoMjA4KX0sZnVuY3Rpb24oZSx0LHIpe2UuZXhwb3J0cz1yKDg4KX0sZnVuY3Rpb24oZSx0LHIpe2UuZXhwb3J0cz1yKDIwNykuVHJhbnNmb3JtfSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPXIoMjA3KS5QYXNzVGhyb3VnaH0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNyksaT1yKDEwNSksbz1yKDgpLkJ1ZmZlcixhPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0scz1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIHUoKXt0aGlzLmluaXQoKSx0aGlzLl93PXMsaS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGU8PDMwfGU+Pj4yfWZ1bmN0aW9uIGYoZSx0LHIsbil7cmV0dXJuIDA9PT1lP3Qmcnx+dCZuOjI9PT1lP3Qmcnx0Jm58ciZuOnRecl5ufW4odSxpKSx1LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMCx0aGlzfSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPXRoaXMuX3csbj0wfHRoaXMuX2EsaT0wfHRoaXMuX2Isbz0wfHRoaXMuX2Mscz0wfHRoaXMuX2QsdT0wfHRoaXMuX2UsbD0wO2w8MTY7KytsKXJbbF09ZS5yZWFkSW50MzJCRSg0KmwpO2Zvcig7bDw4MDsrK2wpcltsXT1yW2wtM11ecltsLThdXnJbbC0xNF1ecltsLTE2XTtmb3IodmFyIGg9MDtoPDgwOysraCl7dmFyIHA9fn4oaC8yMCksZD0wfCgodD1uKTw8NXx0Pj4+MjcpK2YocCxpLG8scykrdStyW2hdK2FbcF07dT1zLHM9byxvPWMoaSksaT1uLG49ZH10aGlzLl9hPW4rdGhpcy5fYXwwLHRoaXMuX2I9aSt0aGlzLl9ifDAsdGhpcy5fYz1vK3RoaXMuX2N8MCx0aGlzLl9kPXMrdGhpcy5fZHwwLHRoaXMuX2U9dSt0aGlzLl9lfDB9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9by5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fYSwwKSxlLndyaXRlSW50MzJCRSgwfHRoaXMuX2IsNCksZS53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fZCwxMiksZS53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxlfSxlLmV4cG9ydHM9dX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNyksaT1yKDEwNSksbz1yKDgpLkJ1ZmZlcixhPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0scz1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIHUoKXt0aGlzLmluaXQoKSx0aGlzLl93PXMsaS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGU8PDV8ZT4+PjI3fWZ1bmN0aW9uIGYoZSl7cmV0dXJuIGU8PDMwfGU+Pj4yfWZ1bmN0aW9uIGwoZSx0LHIsbil7cmV0dXJuIDA9PT1lP3Qmcnx+dCZuOjI9PT1lP3Qmcnx0Jm58ciZuOnRecl5ufW4odSxpKSx1LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMCx0aGlzfSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPXRoaXMuX3csbj0wfHRoaXMuX2EsaT0wfHRoaXMuX2Isbz0wfHRoaXMuX2Mscz0wfHRoaXMuX2QsdT0wfHRoaXMuX2UsaD0wO2g8MTY7KytoKXJbaF09ZS5yZWFkSW50MzJCRSg0KmgpO2Zvcig7aDw4MDsrK2gpcltoXT0odD1yW2gtM11ecltoLThdXnJbaC0xNF1ecltoLTE2XSk8PDF8dD4+PjMxO2Zvcih2YXIgcD0wO3A8ODA7KytwKXt2YXIgZD1+fihwLzIwKSx5PWMobikrbChkLGksbyxzKSt1K3JbcF0rYVtkXXwwO3U9cyxzPW8sbz1mKGkpLGk9bixuPXl9dGhpcy5fYT1uK3RoaXMuX2F8MCx0aGlzLl9iPWkrdGhpcy5fYnwwLHRoaXMuX2M9byt0aGlzLl9jfDAsdGhpcy5fZD1zK3RoaXMuX2R8MCx0aGlzLl9lPXUrdGhpcy5fZXwwfSx1LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBlPW8uYWxsb2NVbnNhZmUoMjApO3JldHVybiBlLndyaXRlSW50MzJCRSgwfHRoaXMuX2EsMCksZS53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxlLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fZSwxNiksZX0sZS5leHBvcnRzPXV9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDcpLGk9cigzMTQpLG89cigxMDUpLGE9cig4KS5CdWZmZXIscz1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIHUoKXt0aGlzLmluaXQoKSx0aGlzLl93PXMsby5jYWxsKHRoaXMsNjQsNTYpfW4odSxpKSx1LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MzIzODM3MTAzMix0aGlzLl9iPTkxNDE1MDY2Myx0aGlzLl9jPTgxMjcwMjk5OSx0aGlzLl9kPTQxNDQ5MTI2OTcsdGhpcy5fZT00MjkwNzc1ODU3LHRoaXMuX2Y9MTc1MDYwMzAyNSx0aGlzLl9nPTE2OTQwNzY4MzksdGhpcy5faD0zMjA0MDc1NDI4LHRoaXN9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9YS5hbGxvY1Vuc2FmZSgyOCk7cmV0dXJuIGUud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksZS53cml0ZUludDMyQkUodGhpcy5fYiw0KSxlLndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLGUud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLGV9LGUuZXhwb3J0cz11fSxmdW5jdGlvbihlLHQscil7dmFyIG49cig3KSxpPXIoMzE1KSxvPXIoMTA1KSxhPXIoOCkuQnVmZmVyLHM9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9cyxvLmNhbGwodGhpcywxMjgsMTEyKX1uKHUsaSksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0zNDE4MDcwMzY1LHRoaXMuX2JoPTE2NTQyNzAyNTAsdGhpcy5fY2g9MjQzODUyOTM3MCx0aGlzLl9kaD0zNTU0NjIzNjAsdGhpcy5fZWg9MTczMTQwNTQxNSx0aGlzLl9maD0yMzk0MTgwMjMxLHRoaXMuX2doPTM2NzUwMDg1MjUsdGhpcy5faGg9MTIwMzA2MjgxMyx0aGlzLl9hbD0zMjM4MzcxMDMyLHRoaXMuX2JsPTkxNDE1MDY2Myx0aGlzLl9jbD04MTI3MDI5OTksdGhpcy5fZGw9NDE0NDkxMjY5Nyx0aGlzLl9lbD00MjkwNzc1ODU3LHRoaXMuX2ZsPTE3NTA2MDMwMjUsdGhpcy5fZ2w9MTY5NDA3NjgzOSx0aGlzLl9obD0zMjA0MDc1NDI4LHRoaXN9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9YS5hbGxvY1Vuc2FmZSg0OCk7ZnVuY3Rpb24gdCh0LHIsbil7ZS53cml0ZUludDMyQkUodCxuKSxlLndyaXRlSW50MzJCRShyLG4rNCl9cmV0dXJuIHQodGhpcy5fYWgsdGhpcy5fYWwsMCksdCh0aGlzLl9iaCx0aGlzLl9ibCw4KSx0KHRoaXMuX2NoLHRoaXMuX2NsLDE2KSx0KHRoaXMuX2RoLHRoaXMuX2RsLDI0KSx0KHRoaXMuX2VoLHRoaXMuX2VsLDMyKSx0KHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxlfSxlLmV4cG9ydHM9dX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDcpLGk9cig4KS5CdWZmZXIsbz1yKDc4KSxhPWkuYWxsb2MoMTI4KSxzPTY0O2Z1bmN0aW9uIHUoZSx0KXtvLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PT10eXBlb2YgdCYmKHQ9aS5mcm9tKHQpKSx0aGlzLl9hbGc9ZSx0aGlzLl9rZXk9dCx0Lmxlbmd0aD5zP3Q9ZSh0KTp0Lmxlbmd0aDxzJiYodD1pLmNvbmNhdChbdCxhXSxzKSk7Zm9yKHZhciByPXRoaXMuX2lwYWQ9aS5hbGxvY1Vuc2FmZShzKSxuPXRoaXMuX29wYWQ9aS5hbGxvY1Vuc2FmZShzKSx1PTA7dTxzO3UrKylyW3VdPTU0XnRbdV0sblt1XT05Ml50W3VdO3RoaXMuX2hhc2g9W3JdfW4odSxvKSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2hhc2gucHVzaChlKX0sdS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fYWxnKGkuY29uY2F0KHRoaXMuX2hhc2gpKTtyZXR1cm4gdGhpcy5fYWxnKGkuY29uY2F0KFt0aGlzLl9vcGFkLGVdKSl9LGUuZXhwb3J0cz11fSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPXIoMzE4KX0sZnVuY3Rpb24oZSx0LHIpeyhmdW5jdGlvbih0LG4pe3ZhciBpLG89cigzMjApLGE9cigzMjEpLHM9cigzMjIpLHU9cig4KS5CdWZmZXIsYz10LmNyeXB0byYmdC5jcnlwdG8uc3VidGxlLGY9e3NoYToiU0hBLTEiLCJzaGEtMSI6IlNIQS0xIixzaGExOiJTSEEtMSIsc2hhMjU2OiJTSEEtMjU2Iiwic2hhLTI1NiI6IlNIQS0yNTYiLHNoYTM4NDoiU0hBLTM4NCIsInNoYS0zODQiOiJTSEEtMzg0Iiwic2hhLTUxMiI6IlNIQS01MTIiLHNoYTUxMjoiU0hBLTUxMiJ9LGw9W107ZnVuY3Rpb24gaChlLHQscixuLGkpe3JldHVybiBjLmltcG9ydEtleSgicmF3IixlLHtuYW1lOiJQQktERjIifSwhMSxbImRlcml2ZUJpdHMiXSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gYy5kZXJpdmVCaXRzKHtuYW1lOiJQQktERjIiLHNhbHQ6dCxpdGVyYXRpb25zOnIsaGFzaDp7bmFtZTppfX0sZSxuPDwzKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHUuZnJvbShlKX0pfWUuZXhwb3J0cz1mdW5jdGlvbihlLHIscCxkLHksZyl7ImZ1bmN0aW9uIj09PXR5cGVvZiB5JiYoZz15LHk9dm9pZCAwKTt2YXIgdj1mWyh5PXl8fCJzaGExIikudG9Mb3dlckNhc2UoKV07aWYoIXZ8fCJmdW5jdGlvbiIhPT10eXBlb2YgdC5Qcm9taXNlKXJldHVybiBuLm5leHRUaWNrKGZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9cyhlLHIscCxkLHkpfWNhdGNoKG4pe3JldHVybiBnKG4pfWcobnVsbCx0KX0pO2lmKG8oZSxyLHAsZCksImZ1bmN0aW9uIiE9PXR5cGVvZiBnKXRocm93IG5ldyBFcnJvcigiTm8gY2FsbGJhY2sgcHJvdmlkZWQgdG8gcGJrZGYyIik7dS5pc0J1ZmZlcihlKXx8KGU9dS5mcm9tKGUsYSkpLHUuaXNCdWZmZXIocil8fChyPXUuZnJvbShyLGEpKSxmdW5jdGlvbihlLHQpe2UudGhlbihmdW5jdGlvbihlKXtuLm5leHRUaWNrKGZ1bmN0aW9uKCl7dChudWxsLGUpfSl9LGZ1bmN0aW9uKGUpe24ubmV4dFRpY2soZnVuY3Rpb24oKXt0KGUpfSl9KX0oZnVuY3Rpb24oZSl7aWYodC5wcm9jZXNzJiYhdC5wcm9jZXNzLmJyb3dzZXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7aWYoIWN8fCFjLmltcG9ydEtleXx8IWMuZGVyaXZlQml0cylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCExKTtpZih2b2lkIDAhPT1sW2VdKXJldHVybiBsW2VdO3ZhciByPWgoaT1pfHx1LmFsbG9jKDgpLGksMTAsMTI4LGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuITF9KTtyZXR1cm4gbFtlXT1yLHJ9KHYpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ/aChlLHIscCxkLHYpOnMoZSxyLHAsZCx5KX0pLGcpfX0pLmNhbGwodGhpcyxyKDM0KSxyKDQ2KSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDU2OCksaT1yKDIxMyksbz1yKDIxNCksYT1yKDU4Mykscz1yKDE1OSk7ZnVuY3Rpb24gdShlLHQscil7aWYoZT1lLnRvTG93ZXJDYXNlKCksb1tlXSlyZXR1cm4gaS5jcmVhdGVDaXBoZXJpdihlLHQscik7aWYoYVtlXSlyZXR1cm4gbmV3IG4oe2tleTp0LGl2OnIsbW9kZTplfSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIil9ZnVuY3Rpb24gYyhlLHQscil7aWYoZT1lLnRvTG93ZXJDYXNlKCksb1tlXSlyZXR1cm4gaS5jcmVhdGVEZWNpcGhlcml2KGUsdCxyKTtpZihhW2VdKXJldHVybiBuZXcgbih7a2V5OnQsaXY6cixtb2RlOmUsZGVjcnlwdDohMH0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfXQuY3JlYXRlQ2lwaGVyPXQuQ2lwaGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbjtpZihlPWUudG9Mb3dlckNhc2UoKSxvW2VdKXI9b1tlXS5rZXksbj1vW2VdLml2O2Vsc2V7aWYoIWFbZV0pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7cj04KmFbZV0ua2V5LG49YVtlXS5pdn12YXIgaT1zKHQsITEscixuKTtyZXR1cm4gdShlLGkua2V5LGkuaXYpfSx0LmNyZWF0ZUNpcGhlcml2PXQuQ2lwaGVyaXY9dSx0LmNyZWF0ZURlY2lwaGVyPXQuRGVjaXBoZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcixuO2lmKGU9ZS50b0xvd2VyQ2FzZSgpLG9bZV0pcj1vW2VdLmtleSxuPW9bZV0uaXY7ZWxzZXtpZighYVtlXSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtyPTgqYVtlXS5rZXksbj1hW2VdLml2fXZhciBpPXModCwhMSxyLG4pO3JldHVybiBjKGUsaS5rZXksaS5pdil9LHQuY3JlYXRlRGVjaXBoZXJpdj10LkRlY2lwaGVyaXY9Yyx0Lmxpc3RDaXBoZXJzPXQuZ2V0Q2lwaGVycz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhhKS5jb25jYXQoaS5nZXRDaXBoZXJzKCkpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNzgpLGk9cigyMTIpLG89cig3KSxhPXIoOCkuQnVmZmVyLHM9eyJkZXMtZWRlMy1jYmMiOmkuQ0JDLmluc3RhbnRpYXRlKGkuRURFKSwiZGVzLWVkZTMiOmkuRURFLCJkZXMtZWRlLWNiYyI6aS5DQkMuaW5zdGFudGlhdGUoaS5FREUpLCJkZXMtZWRlIjppLkVERSwiZGVzLWNiYyI6aS5DQkMuaW5zdGFudGlhdGUoaS5ERVMpLCJkZXMtZWNiIjppLkRFU307ZnVuY3Rpb24gdShlKXtuLmNhbGwodGhpcyk7dmFyIHQscj1lLm1vZGUudG9Mb3dlckNhc2UoKSxpPXNbcl07dD1lLmRlY3J5cHQ/ImRlY3J5cHQiOiJlbmNyeXB0Ijt2YXIgbz1lLmtleTthLmlzQnVmZmVyKG8pfHwobz1hLmZyb20obykpLCJkZXMtZWRlIiE9PXImJiJkZXMtZWRlLWNiYyIhPT1yfHwobz1hLmNvbmNhdChbbyxvLnNsaWNlKDAsOCldKSk7dmFyIHU9ZS5pdjthLmlzQnVmZmVyKHUpfHwodT1hLmZyb20odSkpLHRoaXMuX2Rlcz1pLmNyZWF0ZSh7a2V5Om8saXY6dSx0eXBlOnR9KX1zLmRlcz1zWyJkZXMtY2JjIl0scy5kZXMzPXNbImRlcy1lZGUzLWNiYyJdLGUuZXhwb3J0cz11LG8odSxuKSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBhLmZyb20odGhpcy5fZGVzLnVwZGF0ZShlKSl9LHUucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiBhLmZyb20odGhpcy5fZGVzLmZpbmFsKCkpfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt0LnJlYWRVSW50MzJCRT1mdW5jdGlvbihlLHQpe3JldHVybihlWzArdF08PDI0fGVbMSt0XTw8MTZ8ZVsyK3RdPDw4fGVbMyt0XSk+Pj4wfSx0LndyaXRlVUludDMyQkU9ZnVuY3Rpb24oZSx0LHIpe2VbMCtyXT10Pj4+MjQsZVsxK3JdPXQ+Pj4xNiYyNTUsZVsyK3JdPXQ+Pj44JjI1NSxlWzMrcl09MjU1JnR9LHQuaXA9ZnVuY3Rpb24oZSx0LHIsbil7Zm9yKHZhciBpPTAsbz0wLGE9NjthPj0wO2EtPTIpe2Zvcih2YXIgcz0wO3M8PTI0O3MrPTgpaTw8PTEsaXw9dD4+PnMrYSYxO2ZvcihzPTA7czw9MjQ7cys9OClpPDw9MSxpfD1lPj4+cythJjF9Zm9yKGE9NjthPj0wO2EtPTIpe2ZvcihzPTE7czw9MjU7cys9OClvPDw9MSxvfD10Pj4+cythJjE7Zm9yKHM9MTtzPD0yNTtzKz04KW88PD0xLG98PWU+Pj5zK2EmMX1yW24rMF09aT4+PjAscltuKzFdPW8+Pj4wfSx0LnJpcD1mdW5jdGlvbihlLHQscixuKXtmb3IodmFyIGk9MCxvPTAsYT0wO2E8NDthKyspZm9yKHZhciBzPTI0O3M+PTA7cy09OClpPDw9MSxpfD10Pj4+cythJjEsaTw8PTEsaXw9ZT4+PnMrYSYxO2ZvcihhPTQ7YTw4O2ErKylmb3Iocz0yNDtzPj0wO3MtPTgpbzw8PTEsb3w9dD4+PnMrYSYxLG88PD0xLG98PWU+Pj5zK2EmMTtyW24rMF09aT4+PjAscltuKzFdPW8+Pj4wfSx0LnBjMT1mdW5jdGlvbihlLHQscixuKXtmb3IodmFyIGk9MCxvPTAsYT03O2E+PTU7YS0tKXtmb3IodmFyIHM9MDtzPD0yNDtzKz04KWk8PD0xLGl8PXQ+PnMrYSYxO2ZvcihzPTA7czw9MjQ7cys9OClpPDw9MSxpfD1lPj5zK2EmMX1mb3Iocz0wO3M8PTI0O3MrPTgpaTw8PTEsaXw9dD4+cythJjE7Zm9yKGE9MTthPD0zO2ErKyl7Zm9yKHM9MDtzPD0yNDtzKz04KW88PD0xLG98PXQ+PnMrYSYxO2ZvcihzPTA7czw9MjQ7cys9OClvPDw9MSxvfD1lPj5zK2EmMX1mb3Iocz0wO3M8PTI0O3MrPTgpbzw8PTEsb3w9ZT4+cythJjE7cltuKzBdPWk+Pj4wLHJbbisxXT1vPj4+MH0sdC5yMjhzaGw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZTw8dCYyNjg0MzU0NTV8ZT4+PjI4LXR9O3ZhciBuPVsxNCwxMSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO3QucGMyPWZ1bmN0aW9uKGUsdCxyLGkpe2Zvcih2YXIgbz0wLGE9MCxzPW4ubGVuZ3RoPj4+MSx1PTA7dTxzO3UrKylvPDw9MSxvfD1lPj4+blt1XSYxO2Zvcih1PXM7dTxuLmxlbmd0aDt1KyspYTw8PTEsYXw9dD4+Pm5bdV0mMTtyW2krMF09bz4+PjAscltpKzFdPWE+Pj4wfSx0LmV4cGFuZD1mdW5jdGlvbihlLHQscil7dmFyIG49MCxpPTA7bj0oMSZlKTw8NXxlPj4+Mjc7Zm9yKHZhciBvPTIzO28+PTE1O28tPTQpbjw8PTYsbnw9ZT4+Pm8mNjM7Zm9yKG89MTE7bz49MztvLT00KWl8PWU+Pj5vJjYzLGk8PD02O2l8PSgzMSZlKTw8MXxlPj4+MzEsdFtyKzBdPW4+Pj4wLHRbcisxXT1pPj4+MH07dmFyIGk9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwxLDMsMTAsMTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcsOCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywxLDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEsMTMsMTAsMTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwyLDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDksNiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQsMTEsMiwxNSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwxNSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQsMTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSwwLDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwxMCwzLDYsMTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMsOCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwyLDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUsMCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIsMTEsNywxMCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwxMiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywxMiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwxNCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUsMTIsMTUsMywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEzLDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDExLDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywxMCw5LDE1LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIsMTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUsMywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwxLDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDksMTMsMCwxNSwzLDMsNSw1LDYsOCwxMV07dC5zdWJzdGl0dXRlPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTAsbj0wO248NDtuKyspe3I8PD00LHJ8PWlbNjQqbisoZT4+PjE4LTYqbiY2MyldfWZvcihuPTA7bjw0O24rKyl7cjw8PTQscnw9aVsyNTYrNjQqbisodD4+PjE4LTYqbiY2MyldfXJldHVybiByPj4+MH07dmFyIG89WzE2LDI1LDEyLDExLDMsMjAsNCwxNSwzMSwxNyw5LDYsMjcsMTQsMSwyMiwzMCwyNCw4LDE4LDAsNSwyOSwyMywxMywxOSwyLDI2LDEwLDIxLDI4LDddO3QucGVybXV0ZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxyPTA7cjxvLmxlbmd0aDtyKyspdDw8PTEsdHw9ZT4+Pm9bcl0mMTtyZXR1cm4gdD4+PjB9LHQucGFkU3BsaXQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgbj1lLnRvU3RyaW5nKDIpO24ubGVuZ3RoPHQ7KW49IjAiK247Zm9yKHZhciBpPVtdLG89MDtvPHQ7bys9cilpLnB1c2gobi5zbGljZShvLG8rcikpO3JldHVybiBpLmpvaW4oIiAiKX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0Nyk7ZnVuY3Q="
}
Changelog:
{
"2020.04.17 15:43": "base64:Y3QiOyhmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9bnVsbCxuPSExLGk9MyxvPS0xLGE9LTEscz0hMSx1PSExO2Z1bmN0aW9uIGMoKXtpZighcyl7dmFyIGU9ci5leHBpcmF0aW9uVGltZTt1P3coKTp1PSEwLEUoaCxlKX19ZnVuY3Rpb24gZigpe3ZhciBlPXIsdD1yLm5leHQ7aWYocj09PXQpcj1udWxsO2Vsc2V7dmFyIG49ci5wcmV2aW91cztyPW4ubmV4dD10LHQucHJldmlvdXM9bn1lLm5leHQ9ZS5wcmV2aW91cz1udWxsLG49ZS5jYWxsYmFjayx0PWUuZXhwaXJhdGlvblRpbWUsZT1lLnByaW9yaXR5TGV2ZWw7dmFyIG89aSxzPWE7aT1lLGE9dDt0cnl7dmFyIHU9bigpfWZpbmFsbHl7aT1vLGE9c31pZigiZnVuY3Rpb24iPT09dHlwZW9mIHUpaWYodT17Y2FsbGJhY2s6dSxwcmlvcml0eUxldmVsOmUsZXhwaXJhdGlvblRpbWU6dCxuZXh0Om51bGwscHJldmlvdXM6bnVsbH0sbnVsbD09PXIpcj11Lm5leHQ9dS5wcmV2aW91cz11O2Vsc2V7bj1udWxsLGU9cjtkb3tpZihlLmV4cGlyYXRpb25UaW1lPj10KXtuPWU7YnJlYWt9ZT1lLm5leHR9d2hpbGUoZSE9PXIpO251bGw9PT1uP249cjpuPT09ciYmKHI9dSxjKCkpLCh0PW4ucHJldmlvdXMpLm5leHQ9bi5wcmV2aW91cz11LHUubmV4dD1uLHUucHJldmlvdXM9dH19ZnVuY3Rpb24gbCgpe2lmKC0xPT09byYmbnVsbCE9PXImJjE9PT1yLnByaW9yaXR5TGV2ZWwpe3M9ITA7dHJ5e2Rve2YoKX13aGlsZShudWxsIT09ciYmMT09PXIucHJpb3JpdHlMZXZlbCl9ZmluYWxseXtzPSExLG51bGwhPT1yP2MoKTp1PSExfX19ZnVuY3Rpb24gaChlKXtzPSEwO3ZhciBpPW47bj1lO3RyeXtpZihlKWZvcig7bnVsbCE9PXI7KXt2YXIgbz10LnVuc3RhYmxlX25vdygpO2lmKCEoci5leHBpcmF0aW9uVGltZTw9bykpYnJlYWs7ZG97ZigpfXdoaWxlKG51bGwhPT1yJiZyLmV4cGlyYXRpb25UaW1lPD1vKX1lbHNlIGlmKG51bGwhPT1yKWRve2YoKX13aGlsZShudWxsIT09ciYmIVQoKSl9ZmluYWxseXtzPSExLG49aSxudWxsIT09cj9jKCk6dT0hMSxsKCl9fXZhciBwLGQseT1EYXRlLGc9ImZ1bmN0aW9uIj09PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLHY9ImZ1bmN0aW9uIj09PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMCxtPSJmdW5jdGlvbiI9PT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3JlcXVlc3RBbmltYXRpb25GcmFtZTp2b2lkIDAsYj0iZnVuY3Rpb24iPT09dHlwZW9mIGNhbmNlbEFuaW1hdGlvbkZyYW1lP2NhbmNlbEFuaW1hdGlvbkZyYW1lOnZvaWQgMDtmdW5jdGlvbiBfKGUpe3A9bShmdW5jdGlvbih0KXt2KGQpLGUodCl9KSxkPWcoZnVuY3Rpb24oKXtiKHApLGUodC51bnN0YWJsZV9ub3coKSl9LDEwMCl9aWYoIm9iamVjdCI9PT10eXBlb2YgcGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgUz1wZXJmb3JtYW5jZTt0LnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBTLm5vdygpfX1lbHNlIHQudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIHkubm93KCl9O3ZhciBFLHcsVCxBPW51bGw7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93P0E9d2luZG93OiJ1bmRlZmluZWQiIT09dHlwZW9mIGUmJihBPWUpLEEmJkEuX3NjaGVkTW9jayl7dmFyIEM9QS5fc2NoZWRNb2NrO0U9Q1swXSx3PUNbMV0sVD1DWzJdLHQudW5zdGFibGVfbm93PUNbM119ZWxzZSBpZigidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3d8fCJmdW5jdGlvbiIhPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciB4PW51bGwsST1mdW5jdGlvbihlKXtpZihudWxsIT09eCl0cnl7eChlKX1maW5hbGx5e3g9bnVsbH19O0U9ZnVuY3Rpb24oZSl7bnVsbCE9PXg/c2V0VGltZW91dChFLDAsZSk6KHg9ZSxzZXRUaW1lb3V0KEksMCwhMSkpfSx3PWZ1bmN0aW9uKCl7eD1udWxsfSxUPWZ1bmN0aW9uKCl7cmV0dXJuITF9fWVsc2V7InVuZGVmaW5lZCIhPT10eXBlb2YgY29uc29sZSYmKCJmdW5jdGlvbiIhPT10eXBlb2YgbSYmY29uc29sZS5lcnJvcigiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuIE1ha2Ugc3VyZSB0aGF0IHlvdSBsb2FkIGEgcG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vZmIubWUvcmVhY3QtcG9seWZpbGxzIiksImZ1bmN0aW9uIiE9PXR5cGVvZiBiJiZjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGNhbmNlbEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL2ZiLm1lL3JlYWN0LXBvbHlmaWxscyIpKTt2YXIgaz1udWxsLE89ITEsTj0tMSxQPSExLFI9ITEsQj0wLE09MzMsTD0zMztUPWZ1bmN0aW9uKCl7cmV0dXJuIEI8PXQudW5zdGFibGVfbm93KCl9O3ZhciBEPW5ldyBNZXNzYWdlQ2hhbm5lbCxqPUQucG9ydDI7RC5wb3J0MS5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXtPPSExO3ZhciBlPWsscj1OO2s9bnVsbCxOPS0xO3ZhciBuPXQudW5zdGFibGVfbm93KCksaT0hMTtpZigwPj1CLW4pe2lmKCEoLTEhPT1yJiZyPD1uKSlyZXR1cm4gUHx8KFA9ITAsXyhVKSksaz1lLHZvaWQoTj1yKTtpPSEwfWlmKG51bGwhPT1lKXtSPSEwO3RyeXtlKGkpfWZpbmFsbHl7Uj0hMX19fTt2YXIgVT1mdW5jdGlvbiBlKHQpe2lmKG51bGwhPT1rKXtfKGUpO3ZhciByPXQtQitMO3I8TCYmTTxMPyg4PnImJihyPTgpLEw9cjxNP006cik6TT1yLEI9dCtMLE98fChPPSEwLGoucG9zdE1lc3NhZ2Uodm9pZCAwKSl9ZWxzZSBQPSExfTtFPWZ1bmN0aW9uKGUsdCl7az1lLE49dCxSfHwwPnQ/ai5wb3N0TWVzc2FnZSh2b2lkIDApOlB8fChQPSEwLF8oVSkpfSx3PWZ1bmN0aW9uKCl7az1udWxsLE89ITEsTj0tMX19dC51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xLHQudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9Mix0LnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTMsdC51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NSx0LnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsdC51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHk9ZnVuY3Rpb24oZSxyKXtzd2l0Y2goZSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpicmVhaztkZWZhdWx0OmU9M312YXIgbj1pLGE9bztpPWUsbz10LnVuc3RhYmxlX25vdygpO3RyeXtyZXR1cm4gcigpfWZpbmFsbHl7aT1uLG89YSxsKCl9fSx0LnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oZSl7c3dpdGNoKGkpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciByPTM7YnJlYWs7ZGVmYXVsdDpyPWl9dmFyIG49aSxhPW87aT1yLG89dC51bnN0YWJsZV9ub3coKTt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e2k9bixvPWEsbCgpfX0sdC51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGUsbil7dmFyIGE9LTEhPT1vP286dC51bnN0YWJsZV9ub3coKTtpZigib2JqZWN0Ij09PXR5cGVvZiBuJiZudWxsIT09biYmIm51bWJlciI9PT10eXBlb2Ygbi50aW1lb3V0KW49YStuLnRpbWVvdXQ7ZWxzZSBzd2l0Y2goaSl7Y2FzZSAxOm49YSstMTticmVhaztjYXNlIDI6bj1hKzI1MDticmVhaztjYXNlIDU6bj1hKzEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA0Om49YSsxZTQ7YnJlYWs7ZGVmYXVsdDpuPWErNWUzfWlmKGU9e2NhbGxiYWNrOmUscHJpb3JpdHlMZXZlbDppLGV4cGlyYXRpb25UaW1lOm4sbmV4dDpudWxsLHByZXZpb3VzOm51bGx9LG51bGw9PT1yKXI9ZS5uZXh0PWUucHJldmlvdXM9ZSxjKCk7ZWxzZXthPW51bGw7dmFyIHM9cjtkb3tpZihzLmV4cGlyYXRpb25UaW1lPm4pe2E9czticmVha31zPXMubmV4dH13aGlsZShzIT09cik7bnVsbD09PWE/YT1yOmE9PT1yJiYocj1lLGMoKSksKG49YS5wcmV2aW91cykubmV4dD1hLnByZXZpb3VzPWUsZS5uZXh0PWEsZS5wcmV2aW91cz1ufXJldHVybiBlfSx0LnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGUpe3ZhciB0PWUubmV4dDtpZihudWxsIT09dCl7aWYodD09PWUpcj1udWxsO2Vsc2V7ZT09PXImJihyPXQpO3ZhciBuPWUucHJldmlvdXM7bi5uZXh0PXQsdC5wcmV2aW91cz1ufWUubmV4dD1lLnByZXZpb3VzPW51bGx9fSx0LnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihlKXt2YXIgcj1pO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWksYT1vO2k9cixvPXQudW5zdGFibGVfbm93KCk7dHJ5e3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e2k9bixvPWEsbCgpfX19LHQudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gaX0sdC51bnN0YWJsZV9zaG91bGRZaWVsZD1mdW5jdGlvbigpe3JldHVybiFuJiYobnVsbCE9PXImJnIuZXhwaXJhdGlvblRpbWU8YXx8VCgpKX0sdC51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe251bGwhPT1yJiZjKCl9LHQudW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9LHQudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gcn19KS5jYWxsKHRoaXMscigzNCkpfSxmdW5jdGlvbihlLHQscil7fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcj1bXSxuPSEwLGk9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgYSxzPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oYT1zLm5leHQoKSkuZG9uZSkmJihyLnB1c2goYS52YWx1ZSksIXR8fHIubGVuZ3RoIT09dCk7bj0hMCk7fWNhdGNoKHUpe2k9ITAsbz11fWZpbmFsbHl7dHJ5e258fG51bGw9PXMucmV0dXJufHxzLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBvfX1yZXR1cm4gcn19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAscj1uZXcgQXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn19fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpfHwiW29iamVjdCBBcmd1bWVudHNdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlyZXR1cm4gQXJyYXkuZnJvbShlKX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UiKX19LGZ1bmN0aW9uKGUsdCl7dC5yZWFkPWZ1bmN0aW9uKGUsdCxyLG4saSl7dmFyIG8sYSxzPTgqaS1uLTEsdT0oMTw8cyktMSxjPXU+PjEsZj0tNyxsPXI/aS0xOjAsaD1yPy0xOjEscD1lW3QrbF07Zm9yKGwrPWgsbz1wJigxPDwtZiktMSxwPj49LWYsZis9cztmPjA7bz0yNTYqbytlW3QrbF0sbCs9aCxmLT04KTtmb3IoYT1vJigxPDwtZiktMSxvPj49LWYsZis9bjtmPjA7YT0yNTYqYStlW3QrbF0sbCs9aCxmLT04KTtpZigwPT09bylvPTEtYztlbHNle2lmKG89PT11KXJldHVybiBhP05hTjoxLzAqKHA/LTE6MSk7YSs9TWF0aC5wb3coMixuKSxvLT1jfXJldHVybihwPy0xOjEpKmEqTWF0aC5wb3coMixvLW4pfSx0LndyaXRlPWZ1bmN0aW9uKGUsdCxyLG4saSxvKXt2YXIgYSxzLHUsYz04Km8taS0xLGY9KDE8PGMpLTEsbD1mPj4xLGg9MjM9PT1pP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxwPW4/MDpvLTEsZD1uPzE6LTEseT10PDB8fDA9PT10JiYxL3Q8MD8xOjA7Zm9yKHQ9TWF0aC5hYnModCksaXNOYU4odCl8fHQ9PT0xLzA/KHM9aXNOYU4odCk/MTowLGE9Zik6KGE9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMiksdCoodT1NYXRoLnBvdygyLC1hKSk8MSYmKGEtLSx1Kj0yKSwodCs9YStsPj0xP2gvdTpoKk1hdGgucG93KDIsMS1sKSkqdT49MiYmKGErKyx1Lz0yKSxhK2w+PWY/KHM9MCxhPWYpOmErbD49MT8ocz0odCp1LTEpKk1hdGgucG93KDIsaSksYSs9bCk6KHM9dCpNYXRoLnBvdygyLGwtMSkqTWF0aC5wb3coMixpKSxhPTApKTtpPj04O2VbcitwXT0yNTUmcyxwKz1kLHMvPTI1NixpLT04KTtmb3IoYT1hPDxpfHMsYys9aTtjPjA7ZVtyK3BdPTI1NSZhLHArPWQsYS89MjU2LGMtPTgpO2VbcitwLWRdfD0xMjgqeX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dC5yYW5kb21CeXRlcz10LnJuZz10LnBzZXVkb1JhbmRvbUJ5dGVzPXQucHJuZz1yKDEwNCksdC5jcmVhdGVIYXNoPXQuSGFzaD1yKDEyNyksdC5jcmVhdGVIbWFjPXQuSG1hYz1yKDMxNik7dmFyIG49cig1NjUpLGk9T2JqZWN0LmtleXMobiksbz1bInNoYTEiLCJzaGEyMjQiLCJzaGEyNTYiLCJzaGEzODQiLCJzaGE1MTIiLCJtZDUiLCJybWQxNjAiXS5jb25jYXQoaSk7dC5nZXRIYXNoZXM9ZnVuY3Rpb24oKXtyZXR1cm4gb307dmFyIGE9cigzMTkpO3QucGJrZGYyPWEucGJrZGYyLHQucGJrZGYyU3luYz1hLnBia2RmMlN5bmM7dmFyIHM9cig1NjcpO3QuQ2lwaGVyPXMuQ2lwaGVyLHQuY3JlYXRlQ2lwaGVyPXMuY3JlYXRlQ2lwaGVyLHQuQ2lwaGVyaXY9cy5DaXBoZXJpdix0LmNyZWF0ZUNpcGhlcml2PXMuY3JlYXRlQ2lwaGVyaXYsdC5EZWNpcGhlcj1zLkRlY2lwaGVyLHQuY3JlYXRlRGVjaXBoZXI9cy5jcmVhdGVEZWNpcGhlcix0LkRlY2lwaGVyaXY9cy5EZWNpcGhlcml2LHQuY3JlYXRlRGVjaXBoZXJpdj1zLmNyZWF0ZURlY2lwaGVyaXYsdC5nZXRDaXBoZXJzPXMuZ2V0Q2lwaGVycyx0Lmxpc3RDaXBoZXJzPXMubGlzdENpcGhlcnM7dmFyIHU9cig1ODQpO3QuRGlmZmllSGVsbG1hbkdyb3VwPXUuRGlmZmllSGVsbG1hbkdyb3VwLHQuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPXUuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwLHQuZ2V0RGlmZmllSGVsbG1hbj11LmdldERpZmZpZUhlbGxtYW4sdC5jcmVhdGVEaWZmaWVIZWxsbWFuPXUuY3JlYXRlRGlmZmllSGVsbG1hbix0LkRpZmZpZUhlbGxtYW49dS5EaWZmaWVIZWxsbWFuO3ZhciBjPXIoNTg5KTt0LmNyZWF0ZVNpZ249Yy5jcmVhdGVTaWduLHQuU2lnbj1jLlNpZ24sdC5jcmVhdGVWZXJpZnk9Yy5jcmVhdGVWZXJpZnksdC5WZXJpZnk9Yy5WZXJpZnksdC5jcmVhdGVFQ0RIPXIoNjIzKTt2YXIgZj1yKDYyNCk7dC5wdWJsaWNFbmNyeXB0PWYucHVibGljRW5jcnlwdCx0LnByaXZhdGVFbmNyeXB0PWYucHJpdmF0ZUVuY3J5cHQsdC5wdWJsaWNEZWNyeXB0PWYucHVibGljRGVjcnlwdCx0LnByaXZhdGVEZWNyeXB0PWYucHJpdmF0ZURlY3J5cHQ7dmFyIGw9cig2MjcpO3QucmFuZG9tRmlsbD1sLnJhbmRvbUZpbGwsdC5yYW5kb21GaWxsU3luYz1sLnJhbmRvbUZpbGxTeW5jLHQuY3JlYXRlQ3JlZGVudGlhbHM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoWyJzb3JyeSwgY3JlYXRlQ3JlZGVudGlhbHMgaXMgbm90IGltcGxlbWVudGVkIHlldCIsIndlIGFjY2VwdCBwdWxsIHJlcXVlc3RzIiwiaHR0cHM6Ly9naXRodWIuY29tL2NyeXB0by1icm93c2VyaWZ5L2NyeXB0by1icm93c2VyaWZ5Il0uam9pbigiXG4iKSl9LHQuY29uc3RhbnRzPXtESF9DSEVDS19QX05PVF9TQUZFX1BSSU1FOjIsREhfQ0hFQ0tfUF9OT1RfUFJJTUU6MSxESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SOjQsREhfTk9UX1NVSVRBQkxFX0dFTkVSQVRPUjo4LE5QTl9FTkFCTEVEOjEsQUxQTl9FTkFCTEVEOjEsUlNBX1BLQ1MxX1BBRERJTkc6MSxSU0FfU1NMVjIzX1BBRERJTkc6MixSU0FfTk9fUEFERElORzozLFJTQV9QS0NTMV9PQUVQX1BBRERJTkc6NCxSU0FfWDkzMV9QQURESU5HOjUsUlNBX1BLQ1MxX1BTU19QQURESU5HOjYsUE9JTlRfQ09OVkVSU0lPTl9DT01QUkVTU0VEOjIsUE9JTlRfQ09OVkVSU0lPTl9VTkNPTVBSRVNTRUQ6NCxQT0lOVF9DT05WRVJTSU9OX0hZQlJJRDo2fX0sLGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4KS5CdWZmZXIsaT1yKDU1Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9cmV0dXJuIGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZSl7dmFyIHQ9e2RhdGE6ZSxuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9dDp0aGlzLmhlYWQ9dCx0aGlzLnRhaWw9dCwrK3RoaXMubGVuZ3RofSxlLnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9uKGUpe3ZhciB0PXtkYXRhOmUsbmV4dDp0aGlzLmhlYWR9OzA9PT10aGlzLmxlbmd0aCYmKHRoaXMudGFpbD10KSx0aGlzLmhlYWQ9dCwrK3RoaXMubGVuZ3RofSxlLnByb3RvdHlwZS5zaGlmdD1mdW5jdGlvbigpe2lmKDAhPT10aGlzLmxlbmd0aCl7dmFyIGU9dGhpcy5oZWFkLmRhdGE7cmV0dXJuIDE9PT10aGlzLmxlbmd0aD90aGlzLmhlYWQ9dGhpcy50YWlsPW51bGw6dGhpcy5oZWFkPXRoaXMuaGVhZC5uZXh0LC0tdGhpcy5sZW5ndGgsZX19LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9LGUucHJvdG90eXBlLmpvaW49ZnVuY3Rpb24oZSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgdD10aGlzLmhlYWQscj0iIit0LmRhdGE7dD10Lm5leHQ7KXIrPWUrdC5kYXRhO3JldHVybiByfSxlLnByb3RvdHlwZS5jb25jYXQ9ZnVuY3Rpb24oZSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiBuLmFsbG9jKDApO2lmKDE9PT10aGlzLmxlbmd0aClyZXR1cm4gdGhpcy5oZWFkLmRhdGE7Zm9yKHZhciB0LHIsaSxvPW4uYWxsb2NVbnNhZmUoZT4+PjApLGE9dGhpcy5oZWFkLHM9MDthOyl0PWEuZGF0YSxyPW8saT1zLHQuY29weShyLGkpLHMrPWEuZGF0YS5sZW5ndGgsYT1hLm5leHQ7cmV0dXJuIG99LGV9KCksaSYmaS5pbnNwZWN0JiZpLmluc3BlY3QuY3VzdG9tJiYoZS5leHBvcnRzLnByb3RvdHlwZVtpLmluc3BlY3QuY3VzdG9tXT1mdW5jdGlvbigpe3ZhciBlPWkuaW5zcGVjdCh7bGVuZ3RoOnRoaXMubGVuZ3RofSk7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZSsiICIrZX0pfSwsZnVuY3Rpb24oZSx0LHIpeyhmdW5jdGlvbihlLHQpeyFmdW5jdGlvbihlLHIpeyJ1c2Ugc3RyaWN0IjtpZighZS5zZXRJbW1lZGlhdGUpe3ZhciBuLGk9MSxvPXt9LGE9ITEscz1lLmRvY3VtZW50LHU9T2JqZWN0LmdldFByb3RvdHlwZU9mJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7dT11JiZ1LnNldFRpbWVvdXQ/dTplLCJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoZS5wcm9jZXNzKT9uPWZ1bmN0aW9uKGUpe3QubmV4dFRpY2soZnVuY3Rpb24oKXtmKGUpfSl9OmZ1bmN0aW9uKCl7aWYoZS5wb3N0TWVzc2FnZSYmIWUuaW1wb3J0U2NyaXB0cyl7dmFyIHQ9ITAscj1lLm9ubWVzc2FnZTtyZXR1cm4gZS5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXt0PSExfSxlLnBvc3RNZXNzYWdlKCIiLCIqIiksZS5vbm1lc3NhZ2U9cix0fX0oKT9mdW5jdGlvbigpe3ZhciB0PSJzZXRJbW1lZGlhdGUkIitNYXRoLnJhbmRvbSgpKyIkIixyPWZ1bmN0aW9uKHIpe3Iuc291cmNlPT09ZSYmInN0cmluZyI9PT10eXBlb2Ygci5kYXRhJiYwPT09ci5kYXRhLmluZGV4T2YodCkmJmYoK3IuZGF0YS5zbGljZSh0Lmxlbmd0aCkpfTtlLmFkZEV2ZW50TGlzdGVuZXI/ZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyLCExKTplLmF0dGFjaEV2ZW50KCJvbm1lc3NhZ2UiLHIpLG49ZnVuY3Rpb24ocil7ZS5wb3N0TWVzc2FnZSh0K3IsIioiKX19KCk6ZS5NZXNzYWdlQ2hhbm5lbD9mdW5jdGlvbigpe3ZhciBlPW5ldyBNZXNzYWdlQ2hhbm5lbDtlLnBvcnQxLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtmKGUuZGF0YSl9LG49ZnVuY3Rpb24odCl7ZS5wb3J0Mi5wb3N0TWVzc2FnZSh0KX19KCk6cyYmIm9ucmVhZHlzdGF0ZWNoYW5nZSJpbiBzLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpP2Z1bmN0aW9uKCl7dmFyIGU9cy5kb2N1bWVudEVsZW1lbnQ7bj1mdW5jdGlvbih0KXt2YXIgcj1zLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Iub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7Zih0KSxyLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGUucmVtb3ZlQ2hpbGQocikscj1udWxsfSxlLmFwcGVuZENoaWxkKHIpfX0oKTpuPWZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZiwwLGUpfSx1LnNldEltbWVkaWF0ZT1mdW5jdGlvbihlKXsiZnVuY3Rpb24iIT09dHlwZW9mIGUmJihlPW5ldyBGdW5jdGlvbigiIitlKSk7Zm9yKHZhciB0PW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyKzFdO3ZhciBhPXtjYWxsYmFjazplLGFyZ3M6dH07cmV0dXJuIG9baV09YSxuKGkpLGkrK30sdS5jbGVhckltbWVkaWF0ZT1jfWZ1bmN0aW9uIGMoZSl7ZGVsZXRlIG9bZV19ZnVuY3Rpb24gZihlKXtpZihhKXNldFRpbWVvdXQoZiwwLGUpO2Vsc2V7dmFyIHQ9b1tlXTtpZih0KXthPSEwO3RyeXshZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jYWxsYmFjayxuPWUuYXJncztzd2l0Y2gobi5sZW5ndGgpe2Nhc2UgMDp0KCk7YnJlYWs7Y2FzZSAxOnQoblswXSk7YnJlYWs7Y2FzZSAyOnQoblswXSxuWzFdKTticmVhaztjYXNlIDM6dChuWzBdLG5bMV0sblsyXSk7YnJlYWs7ZGVmYXVsdDp0LmFwcGx5KHIsbil9fSh0KX1maW5hbGx5e2MoZSksYT0hMX19fX19KCJ1bmRlZmluZWQiPT09dHlwZW9mIHNlbGY/InVuZGVmaW5lZCI9PT10eXBlb2YgZT90aGlzOmU6c2VsZil9KS5jYWxsKHRoaXMscigzNCkscig0NikpfSxmdW5jdGlvbihlLHQscil7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHIoZSl7dHJ5e2lmKCF0LmxvY2FsU3RvcmFnZSlyZXR1cm4hMX1jYXRjaChuKXtyZXR1cm4hMX12YXIgcj10LmxvY2FsU3RvcmFnZVtlXTtyZXR1cm4gbnVsbCE9ciYmInRydWUiPT09U3RyaW5nKHIpLnRvTG93ZXJDYXNlKCl9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYocigibm9EZXByZWNhdGlvbiIpKXJldHVybiBlO3ZhciBuPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFuKXtpZihyKCJ0aHJvd0RlcHJlY2F0aW9uIikpdGhyb3cgbmV3IEVycm9yKHQpO3IoInRyYWNlRGVwcmVjYXRpb24iKT9jb25zb2xlLnRyYWNlKHQpOmNvbnNvbGUud2Fybih0KSxuPSEwfXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fSkuY2FsbCh0aGlzLHIoMzQpKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9bzt2YXIgbj1yKDMxMyksaT1yKDEyOCk7ZnVuY3Rpb24gbyhlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBvKSlyZXR1cm4gbmV3IG8oZSk7bi5jYWxsKHRoaXMsZSl9aS5pbmhlcml0cz1yKDcpLGkuaW5oZXJpdHMobyxuKSxvLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKGUsdCxyKXtyKG51bGwsZSl9fSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPXIoMjA4KX0sZnVuY3Rpb24oZSx0LHIpe2UuZXhwb3J0cz1yKDg4KX0sZnVuY3Rpb24oZSx0LHIpe2UuZXhwb3J0cz1yKDIwNykuVHJhbnNmb3JtfSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPXIoMjA3KS5QYXNzVGhyb3VnaH0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNyksaT1yKDEwNSksbz1yKDgpLkJ1ZmZlcixhPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0scz1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIHUoKXt0aGlzLmluaXQoKSx0aGlzLl93PXMsaS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGU8PDMwfGU+Pj4yfWZ1bmN0aW9uIGYoZSx0LHIsbil7cmV0dXJuIDA9PT1lP3Qmcnx+dCZuOjI9PT1lP3Qmcnx0Jm58ciZuOnRecl5ufW4odSxpKSx1LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMCx0aGlzfSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPXRoaXMuX3csbj0wfHRoaXMuX2EsaT0wfHRoaXMuX2Isbz0wfHRoaXMuX2Mscz0wfHRoaXMuX2QsdT0wfHRoaXMuX2UsbD0wO2w8MTY7KytsKXJbbF09ZS5yZWFkSW50MzJCRSg0KmwpO2Zvcig7bDw4MDsrK2wpcltsXT1yW2wtM11ecltsLThdXnJbbC0xNF1ecltsLTE2XTtmb3IodmFyIGg9MDtoPDgwOysraCl7dmFyIHA9fn4oaC8yMCksZD0wfCgodD1uKTw8NXx0Pj4+MjcpK2YocCxpLG8scykrdStyW2hdK2FbcF07dT1zLHM9byxvPWMoaSksaT1uLG49ZH10aGlzLl9hPW4rdGhpcy5fYXwwLHRoaXMuX2I9aSt0aGlzLl9ifDAsdGhpcy5fYz1vK3RoaXMuX2N8MCx0aGlzLl9kPXMrdGhpcy5fZHwwLHRoaXMuX2U9dSt0aGlzLl9lfDB9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9by5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fYSwwKSxlLndyaXRlSW50MzJCRSgwfHRoaXMuX2IsNCksZS53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fZCwxMiksZS53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxlfSxlLmV4cG9ydHM9dX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNyksaT1yKDEwNSksbz1yKDgpLkJ1ZmZlcixhPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0scz1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIHUoKXt0aGlzLmluaXQoKSx0aGlzLl93PXMsaS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGU8PDV8ZT4+PjI3fWZ1bmN0aW9uIGYoZSl7cmV0dXJuIGU8PDMwfGU+Pj4yfWZ1bmN0aW9uIGwoZSx0LHIsbil7cmV0dXJuIDA9PT1lP3Qmcnx+dCZuOjI9PT1lP3Qmcnx0Jm58ciZuOnRecl5ufW4odSxpKSx1LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMCx0aGlzfSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPXRoaXMuX3csbj0wfHRoaXMuX2EsaT0wfHRoaXMuX2Isbz0wfHRoaXMuX2Mscz0wfHRoaXMuX2QsdT0wfHRoaXMuX2UsaD0wO2g8MTY7KytoKXJbaF09ZS5yZWFkSW50MzJCRSg0KmgpO2Zvcig7aDw4MDsrK2gpcltoXT0odD1yW2gtM11ecltoLThdXnJbaC0xNF1ecltoLTE2XSk8PDF8dD4+PjMxO2Zvcih2YXIgcD0wO3A8ODA7KytwKXt2YXIgZD1+fihwLzIwKSx5PWMobikrbChkLGksbyxzKSt1K3JbcF0rYVtkXXwwO3U9cyxzPW8sbz1mKGkpLGk9bixuPXl9dGhpcy5fYT1uK3RoaXMuX2F8MCx0aGlzLl9iPWkrdGhpcy5fYnwwLHRoaXMuX2M9byt0aGlzLl9jfDAsdGhpcy5fZD1zK3RoaXMuX2R8MCx0aGlzLl9lPXUrdGhpcy5fZXwwfSx1LnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBlPW8uYWxsb2NVbnNhZmUoMjApO3JldHVybiBlLndyaXRlSW50MzJCRSgwfHRoaXMuX2EsMCksZS53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxlLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLGUud3JpdGVJbnQzMkJFKDB8dGhpcy5fZSwxNiksZX0sZS5leHBvcnRzPXV9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDcpLGk9cigzMTQpLG89cigxMDUpLGE9cig4KS5CdWZmZXIscz1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIHUoKXt0aGlzLmluaXQoKSx0aGlzLl93PXMsby5jYWxsKHRoaXMsNjQsNTYpfW4odSxpKSx1LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MzIzODM3MTAzMix0aGlzLl9iPTkxNDE1MDY2Myx0aGlzLl9jPTgxMjcwMjk5OSx0aGlzLl9kPTQxNDQ5MTI2OTcsdGhpcy5fZT00MjkwNzc1ODU3LHRoaXMuX2Y9MTc1MDYwMzAyNSx0aGlzLl9nPTE2OTQwNzY4MzksdGhpcy5faD0zMjA0MDc1NDI4LHRoaXN9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9YS5hbGxvY1Vuc2FmZSgyOCk7cmV0dXJuIGUud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksZS53cml0ZUludDMyQkUodGhpcy5fYiw0KSxlLndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLGUud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLGUud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLGV9LGUuZXhwb3J0cz11fSxmdW5jdGlvbihlLHQscil7dmFyIG49cig3KSxpPXIoMzE1KSxvPXIoMTA1KSxhPXIoOCkuQnVmZmVyLHM9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9cyxvLmNhbGwodGhpcywxMjgsMTEyKX1uKHUsaSksdS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0zNDE4MDcwMzY1LHRoaXMuX2JoPTE2NTQyNzAyNTAsdGhpcy5fY2g9MjQzODUyOTM3MCx0aGlzLl9kaD0zNTU0NjIzNjAsdGhpcy5fZWg9MTczMTQwNTQxNSx0aGlzLl9maD0yMzk0MTgwMjMxLHRoaXMuX2doPTM2NzUwMDg1MjUsdGhpcy5faGg9MTIwMzA2MjgxMyx0aGlzLl9hbD0zMjM4MzcxMDMyLHRoaXMuX2JsPTkxNDE1MDY2Myx0aGlzLl9jbD04MTI3MDI5OTksdGhpcy5fZGw9NDE0NDkxMjY5Nyx0aGlzLl9lbD00MjkwNzc1ODU3LHRoaXMuX2ZsPTE3NTA2MDMwMjUsdGhpcy5fZ2w9MTY5NDA3NjgzOSx0aGlzLl9obD0zMjA0MDc1NDI4LHRoaXN9LHUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGU9YS5hbGxvY1Vuc2FmZSg0OCk7ZnVuY3Rpb24gdCh0LHIsbil7ZS53cml0ZUludDMyQkUodCxuKSxlLndyaXRlSW50MzJCRShyLG4rNCl9cmV0dXJuIHQodGhpcy5fYWgsdGhpcy5fYWwsMCksdCh0aGlzLl9iaCx0aGlzLl9ibCw4KSx0KHRoaXMuX2NoLHRoaXMuX2NsLDE2KSx0KHRoaXMuX2RoLHRoaXMuX2RsLDI0KSx0KHRoaXMuX2VoLHRoaXMuX2VsLDMyKSx0KHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxlfSxlLmV4cG9ydHM9dX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDcpLGk9cig4KS5CdWZmZXIsbz1yKDc4KSxhPWkuYWxsb2MoMTI4KSxzPTY0O2Z1bmN0aW9uIHUoZSx0KXtvLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PT10eXBlb2YgdCYmKHQ9aS5mcm9tKHQpKSx0aGlzLl9hbGc9ZSx0aGlzLl9rZXk9dCx0Lmxlbmd0aD5zP3Q9ZSh0KTp0Lmxlbmd0aDxzJiYodD1pLmNvbmNhdChbdCxhXSxzKSk7Zm9yKHZhciByPXRoaXMuX2lwYWQ9aS5hbGxvY1Vuc2FmZShzKSxuPXRoaXMuX29wYWQ9aS5hbGxvY1Vuc2FmZShzKSx1PTA7dTxzO3UrKylyW3VdPTU0XnRbdV0sblt1XT05Ml50W3VdO3RoaXMuX2hhc2g9W3JdfW4odSxvKSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2hhc2gucHVzaChlKX0sdS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fYWxnKGkuY29uY2F0KHRoaXMuX2hhc2gpKTtyZXR1cm4gdGhpcy5fYWxnKGkuY29uY2F0KFt0aGlzLl9vcGFkLGVdKSl9LGUuZXhwb3J0cz11fSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPXIoMzE4KX0sZnVuY3Rpb24oZSx0LHIpeyhmdW5jdGlvbih0LG4pe3ZhciBpLG89cigzMjApLGE9cigzMjEpLHM9cigzMjIpLHU9cig4KS5CdWZmZXIsYz10LmNyeXB0byYmdC5jcnlwdG8uc3VidGxlLGY9e3NoYToiU0hBLTEiLCJzaGEtMSI6IlNIQS0xIixzaGExOiJTSEEtMSIsc2hhMjU2OiJTSEEtMjU2Iiwic2hhLTI1NiI6IlNIQS0yNTYiLHNoYTM4NDoiU0hBLTM4NCIsInNoYS0zODQiOiJTSEEtMzg0Iiwic2hhLTUxMiI6IlNIQS01MTIiLHNoYTUxMjoiU0hBLTUxMiJ9LGw9W107ZnVuY3Rpb24gaChlLHQscixuLGkpe3JldHVybiBjLmltcG9ydEtleSgicmF3IixlLHtuYW1lOiJQQktERjIifSwhMSxbImRlcml2ZUJpdHMiXSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gYy5kZXJpdmVCaXRzKHtuYW1lOiJQQktERjIiLHNhbHQ6dCxpdGVyYXRpb25zOnIsaGFzaDp7bmFtZTppfX0sZSxuPDwzKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHUuZnJvbShlKX0pfWUuZXhwb3J0cz1mdW5jdGlvbihlLHIscCxkLHksZyl7ImZ1bmN0aW9uIj09PXR5cGVvZiB5JiYoZz15LHk9dm9pZCAwKTt2YXIgdj1mWyh5PXl8fCJzaGExIikudG9Mb3dlckNhc2UoKV07aWYoIXZ8fCJmdW5jdGlvbiIhPT10eXBlb2YgdC5Qcm9taXNlKXJldHVybiBuLm5leHRUaWNrKGZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9cyhlLHIscCxkLHkpfWNhdGNoKG4pe3JldHVybiBnKG4pfWcobnVsbCx0KX0pO2lmKG8oZSxyLHAsZCksImZ1bmN0aW9uIiE9PXR5cGVvZiBnKXRocm93IG5ldyBFcnJvcigiTm8gY2FsbGJhY2sgcHJvdmlkZWQgdG8gcGJrZGYyIik7dS5pc0J1ZmZlcihlKXx8KGU9dS5mcm9tKGUsYSkpLHUuaXNCdWZmZXIocil8fChyPXUuZnJvbShyLGEpKSxmdW5jdGlvbihlLHQpe2UudGhlbihmdW5jdGlvbihlKXtuLm5leHRUaWNrKGZ1bmN0aW9uKCl7dChudWxsLGUpfSl9LGZ1bmN0aW9uKGUpe24ubmV4dFRpY2soZnVuY3Rpb24oKXt0KGUpfSl9KX0oZnVuY3Rpb24oZSl7aWYodC5wcm9jZXNzJiYhdC5wcm9jZXNzLmJyb3dzZXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7aWYoIWN8fCFjLmltcG9ydEtleXx8IWMuZGVyaXZlQml0cylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCExKTtpZih2b2lkIDAhPT1sW2VdKXJldHVybiBsW2VdO3ZhciByPWgoaT1pfHx1LmFsbG9jKDgpLGksMTAsMTI4LGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuITF9KTtyZXR1cm4gbFtlXT1yLHJ9KHYpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ/aChlLHIscCxkLHYpOnMoZSxyLHAsZCx5KX0pLGcpfX0pLmNhbGwodGhpcyxyKDM0KSxyKDQ2KSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDU2OCksaT1yKDIxMyksbz1yKDIxNCksYT1yKDU4Mykscz1yKDE1OSk7ZnVuY3Rpb24gdShlLHQscil7aWYoZT1lLnRvTG93ZXJDYXNlKCksb1tlXSlyZXR1cm4gaS5jcmVhdGVDaXBoZXJpdihlLHQscik7aWYoYVtlXSlyZXR1cm4gbmV3IG4oe2tleTp0LGl2OnIsbW9kZTplfSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIil9ZnVuY3Rpb24gYyhlLHQscil7aWYoZT1lLnRvTG93ZXJDYXNlKCksb1tlXSlyZXR1cm4gaS5jcmVhdGVEZWNpcGhlcml2KGUsdCxyKTtpZihhW2VdKXJldHVybiBuZXcgbih7a2V5OnQsaXY6cixtb2RlOmUsZGVjcnlwdDohMH0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfXQuY3JlYXRlQ2lwaGVyPXQuQ2lwaGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbjtpZihlPWUudG9Mb3dlckNhc2UoKSxvW2VdKXI9b1tlXS5rZXksbj1vW2VdLml2O2Vsc2V7aWYoIWFbZV0pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7cj04KmFbZV0ua2V5LG49YVtlXS5pdn12YXIgaT1zKHQsITEscixuKTtyZXR1cm4gdShlLGkua2V5LGkuaXYpfSx0LmNyZWF0ZUNpcGhlcml2PXQuQ2lwaGVyaXY9dSx0LmNyZWF0ZURlY2lwaGVyPXQuRGVjaXBoZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcixuO2lmKGU9ZS50b0xvd2VyQ2FzZSgpLG9bZV0pcj1vW2VdLmtleSxuPW9bZV0uaXY7ZWxzZXtpZighYVtlXSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtyPTgqYVtlXS5rZXksbj1hW2VdLml2fXZhciBpPXModCwhMSxyLG4pO3JldHVybiBjKGUsaS5rZXksaS5pdil9LHQuY3JlYXRlRGVjaXBoZXJpdj10LkRlY2lwaGVyaXY9Yyx0Lmxpc3RDaXBoZXJzPXQuZ2V0Q2lwaGVycz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhhKS5jb25jYXQoaS5nZXRDaXBoZXJzKCkpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNzgpLGk9cigyMTIpLG89cig3KSxhPXIoOCkuQnVmZmVyLHM9eyJkZXMtZWRlMy1jYmMiOmkuQ0JDLmluc3RhbnRpYXRlKGkuRURFKSwiZGVzLWVkZTMiOmkuRURFLCJkZXMtZWRlLWNiYyI6aS5DQkMuaW5zdGFudGlhdGUoaS5FREUpLCJkZXMtZWRlIjppLkVERSwiZGVzLWNiYyI6aS5DQkMuaW5zdGFudGlhdGUoaS5ERVMpLCJkZXMtZWNiIjppLkRFU307ZnVuY3Rpb24gdShlKXtuLmNhbGwodGhpcyk7dmFyIHQscj1lLm1vZGUudG9Mb3dlckNhc2UoKSxpPXNbcl07dD1lLmRlY3J5cHQ/ImRlY3J5cHQiOiJlbmNyeXB0Ijt2YXIgbz1lLmtleTthLmlzQnVmZmVyKG8pfHwobz1hLmZyb20obykpLCJkZXMtZWRlIiE9PXImJiJkZXMtZWRlLWNiYyIhPT1yfHwobz1hLmNvbmNhdChbbyxvLnNsaWNlKDAsOCldKSk7dmFyIHU9ZS5pdjthLmlzQnVmZmVyKHUpfHwodT1hLmZyb20odSkpLHRoaXMuX2Rlcz1pLmNyZWF0ZSh7a2V5Om8saXY6dSx0eXBlOnR9KX1zLmRlcz1zWyJkZXMtY2JjIl0scy5kZXMzPXNbImRlcy1lZGUzLWNiYyJdLGUuZXhwb3J0cz11LG8odSxuKSx1LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBhLmZyb20odGhpcy5fZGVzLnVwZGF0ZShlKSl9LHUucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiBhLmZyb20odGhpcy5fZGVzLmZpbmFsKCkpfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt0LnJlYWRVSW50MzJCRT1mdW5jdGlvbihlLHQpe3JldHVybihlWzArdF08PDI0fGVbMSt0XTw8MTZ8ZVsyK3RdPDw4fGVbMyt0XSk+Pj4wfSx0LndyaXRlVUludDMyQkU9ZnVuY3Rpb24oZSx0LHIpe2VbMCtyXT10Pj4+MjQsZVsxK3JdPXQ+Pj4xNiYyNTUsZVsyK3JdPXQ+Pj44JjI1NSxlWzMrcl09MjU1JnR9LHQuaXA9ZnVuY3Rpb24oZSx0LHIsbil7Zm9yKHZhciBpPTAsbz0wLGE9NjthPj0wO2EtPTIpe2Zvcih2YXIgcz0wO3M8PTI0O3MrPTgpaTw8PTEsaXw9dD4+PnMrYSYxO2ZvcihzPTA7czw9MjQ7cys9OClpPDw9MSxpfD1lPj4+cythJjF9Zm9yKGE9NjthPj0wO2EtPTIpe2ZvcihzPTE7czw9MjU7cys9OClvPDw9MSxvfD10Pj4+cythJjE7Zm9yKHM9MTtzPD0yNTtzKz04KW88PD0xLG98PWU+Pj5zK2EmMX1yW24rMF09aT4+PjAscltuKzFdPW8+Pj4wfSx0LnJpcD1mdW5jdGlvbihlLHQscixuKXtmb3IodmFyIGk9MCxvPTAsYT0wO2E8NDthKyspZm9yKHZhciBzPTI0O3M+PTA7cy09OClpPDw9MSxpfD10Pj4+cythJjEsaTw8PTEsaXw9ZT4+PnMrYSYxO2ZvcihhPTQ7YTw4O2ErKylmb3Iocz0yNDtzPj0wO3MtPTgpbzw8PTEsb3w9dD4+PnMrYSYxLG88PD0xLG98PWU+Pj5zK2EmMTtyW24rMF09aT4+PjAscltuKzFdPW8+Pj4wfSx0LnBjMT1mdW5jdGlvbihlLHQscixuKXtmb3IodmFyIGk9MCxvPTAsYT03O2E+PTU7YS0tKXtmb3IodmFyIHM9MDtzPD0yNDtzKz04KWk8PD0xLGl8PXQ+PnMrYSYxO2ZvcihzPTA7czw9MjQ7cys9OClpPDw9MSxpfD1lPj5zK2EmMX1mb3Iocz0wO3M8PTI0O3MrPTgpaTw8PTEsaXw9dD4+cythJjE7Zm9yKGE9MTthPD0zO2ErKyl7Zm9yKHM9MDtzPD0yNDtzKz04KW88PD0xLG98PXQ+PnMrYSYxO2ZvcihzPTA7czw9MjQ7cys9OClvPDw9MSxvfD1lPj5zK2EmMX1mb3Iocz0wO3M8PTI0O3MrPTgpbzw8PTEsb3w9ZT4+cythJjE7cltuKzBdPWk+Pj4wLHJbbisxXT1vPj4+MH0sdC5yMjhzaGw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZTw8dCYyNjg0MzU0NTV8ZT4+PjI4LXR9O3ZhciBuPVsxNCwxMSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO3QucGMyPWZ1bmN0aW9uKGUsdCxyLGkpe2Zvcih2YXIgbz0wLGE9MCxzPW4ubGVuZ3RoPj4+MSx1PTA7dTxzO3UrKylvPDw9MSxvfD1lPj4+blt1XSYxO2Zvcih1PXM7dTxuLmxlbmd0aDt1KyspYTw8PTEsYXw9dD4+Pm5bdV0mMTtyW2krMF09bz4+PjAscltpKzFdPWE+Pj4wfSx0LmV4cGFuZD1mdW5jdGlvbihlLHQscil7dmFyIG49MCxpPTA7bj0oMSZlKTw8NXxlPj4+Mjc7Zm9yKHZhciBvPTIzO28+PTE1O28tPTQpbjw8PTYsbnw9ZT4+Pm8mNjM7Zm9yKG89MTE7bz49MztvLT00KWl8PWU+Pj5vJjYzLGk8PD02O2l8PSgzMSZlKTw8MXxlPj4+MzEsdFtyKzBdPW4+Pj4wLHRbcisxXT1pPj4+MH07dmFyIGk9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwxLDMsMTAsMTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcsOCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywxLDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEsMTMsMTAsMTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwyLDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDksNiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQsMTEsMiwxNSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwxNSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQsMTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSwwLDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwxMCwzLDYsMTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMsOCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwyLDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUsMCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIsMTEsNywxMCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwxMiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywxMiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwxNCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUsMTIsMTUsMywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEzLDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDExLDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywxMCw5LDE1LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIsMTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUsMywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwxLDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDksMTMsMCwxNSwzLDMsNSw1LDYsOCwxMV07dC5zdWJzdGl0dXRlPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTAsbj0wO248NDtuKyspe3I8PD00LHJ8PWlbNjQqbisoZT4+PjE4LTYqbiY2MyldfWZvcihuPTA7bjw0O24rKyl7cjw8PTQscnw9aVsyNTYrNjQqbisodD4+PjE4LTYqbiY2MyldfXJldHVybiByPj4+MH07dmFyIG89WzE2LDI1LDEyLDExLDMsMjAsNCwxNSwzMSwxNyw5LDYsMjcsMTQsMSwyMiwzMCwyNCw4LDE4LDAsNSwyOSwyMywxMywxOSwyLDI2LDEwLDIxLDI4LDddO3QucGVybXV0ZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxyPTA7cjxvLmxlbmd0aDtyKyspdDw8PTEsdHw9ZT4+Pm9bcl0mMTtyZXR1cm4gdD4+PjB9LHQucGFkU3BsaXQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgbj1lLnRvU3RyaW5nKDIpO24ubGVuZ3RoPHQ7KW49IjAiK247Zm9yKHZhciBpPVtdLG89MDtvPHQ7bys9cilpLnB1c2gobi5zbGljZShvLG8rcikpO3JldHVybiBpLmpvaW4oIiAiKX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0Nyk7ZnVuY3Q="
}