Аудит

Данные на 15 февраля 2024

Добавить сайт в список

49

Показатели сайта

0
0
0
Узнайте больше об этом сайте
ИКС сайта 10
SSL-сертификат Есть SSL-сертификат

Содержимое

Заголовок (тег title) Charm Pets - Как ухаживать за собакой, какие бывают породы
Заголовок (тег h1) Charm Pets
Описание сайта (description) Charm Pets - Как ухаживать за домашним питомцем, какие бывают породы собак и кошек

Главная страница сайта

URL сайта https://charmpets.ru/
Локализация сайта Альтернативных страниц нет
Кодировка страниц UTF-8
Тексты 45
HTML теги 750
a79 article7 aside1 body1 button2 comment2 div232 footer1 form1 h11 head1 header1 html1 img37 input1 label1 li1 link11 main1 meta256 nav2 p1 script29 span68 style8 title1 ul2 unknown1
Скрипты на сайте 26
Все скрипты:
/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js
data:text/javascript;base64,IWZ1bmN0aW9uKCl7dmFyIHQ9ITE7dHJ5e3ZhciBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe3Q9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsZSl9Y2F0Y2godCl7fXJldHVybiB0fSgpfHxmdW5jdGlvbihpKXt2YXIgbz0hMCxzPSExO0V2ZW50VGFyZ2V0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0ib2JqZWN0Ij09dHlwZW9mIG4sYT1yP24uY2FwdHVyZTpuO249cj9uOnt9LCJ0b3VjaHN0YXJ0IiE9dCYmInNjcm9sbCIhPXQmJiJ3aGVlbCIhPXR8fChuLnBhc3NpdmU9dm9pZCAwIT09bi5wYXNzaXZlP24ucGFzc2l2ZTpvKSxuLmNhcHR1cmU9dm9pZCAwIT09YT9hOnMsaS5jYWxsKHRoaXMsdCxlLG4pfX0oRXZlbnRUYXJnZXQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIp
data:text/javascript;base64,V2ViRm9udENvbmZpZz17Z29vZ2xlOntmYW1pbGllczpbIk1vbnRzZXJyYXQ6NDAwLDQwMGksNzAwOmN5cmlsbGljJmRpc3BsYXk9c3dhcCJdfX07aWYodHlwZW9mIFdlYkZvbnQ9PT0ib2JqZWN0IiYmdHlwZW9mIFdlYkZvbnQubG9hZD09PSJmdW5jdGlvbiIpe1dlYkZvbnQubG9hZChXZWJGb250Q29uZmlnKX0=
data:text/javascript;base64,Y29uc29sZS5sb2coJ2FkOiBudW4nKQ==
data:text/javascript;base64,Y29uc29sZS5sb2coJ3JlYm9vdCBhZDogb3B0aW9ucyBlcnJvcicp
data:text/javascript;base64,ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsKGV2ZW50KT0+e3ZhciBwYWdlbGluaz0iXG7QmNGB0YLQvtGH0L3QuNC6OiBodHRwczovL2NoYXJtcGV0cy5ydSI7ZXZlbnQuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0Iixkb2N1bWVudC5nZXRTZWxlY3Rpb24oKStwYWdlbGluayk7ZXZlbnQucHJldmVudERlZmF1bHQoKX0p
data:text/javascript;base64,ZnVuY3Rpb24gYjJhKGEpe3ZhciBiLGM9MCxsPTAsZj0iIixnPVtdO2lmKCFhKXJldHVybiBhO2Rve3ZhciBlPWEuY2hhckNvZGVBdChjKyspO3ZhciBoPWEuY2hhckNvZGVBdChjKyspO3ZhciBrPWEuY2hhckNvZGVBdChjKyspO3ZhciBkPWU8PDE2fGg8PDh8aztlPTYzJmQ+PjE4O2g9NjMmZD4+MTI7az02MyZkPj42O2QmPTYzO2dbbCsrXT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChlKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChoKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChrKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChkKX13aGlsZShjPGEubGVuZ3RoKTtyZXR1cm4gZj1nLmpvaW4oIiIpLGI9YS5sZW5ndGglMywoYj9mLnNsaWNlKDAsYi0zKTpmKSsiPT09Ii5zbGljZShifHwzKX1mdW5jdGlvbiBhMmIoYSl7dmFyIGIsYyxsLGY9e30sZz0wLGU9MCxoPSIiLGs9U3RyaW5nLmZyb21DaGFyQ29kZSxkPWEubGVuZ3RoO2ZvcihiPTA7NjQ+YjtiKyspZlsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGIpXT1iO2ZvcihjPTA7ZD5jO2MrKylmb3IoYj1mW2EuY2hhckF0KGMpXSxnPShnPDw2KStiLGUrPTY7ODw9ZTspKChsPTI1NSZnPj4+KGUtPTgpKXx8ZC0yPmMpJiYoaCs9ayhsKSk7cmV0dXJuIGh9YjY0ZT1mdW5jdGlvbihhKXtyZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoYSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZyxmdW5jdGlvbihiLGEpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKCIweCIrYSl9KSl9O2I2NGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhdG9iKGEpLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIiUiKygiMDAiK2EuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKX0pLmpvaW4oIiIpKX07YWlfZnJvbnQ9eyJpbnNlcnRpb25fYmVmb3JlIjoiXHUwNDFmXHUwNDE1XHUwNDIwXHUwNDE1XHUwNDE0IiwiaW5zZXJ0aW9uX2FmdGVyIjoiXHUwNDFmXHUwNDFlXHUwNDIxXHUwNDFiXHUwNDE1IiwiaW5zZXJ0aW9uX3ByZXBlbmQiOiJQUkVQRU5EIENPTlRFTlQiLCJpbnNlcnRpb25fYXBwZW5kIjoiXHUwNDE0XHUwNDFlXHUwNDExXHUwNDEwXHUwNDEyXHUwNDJjXHUwNDIyXHUwNDE1IFx1MDQyMVx1MDQxZVx1MDQxNFx1MDQxNVx1MDQyMFx1MDQxNlx1MDQxOFx1MDQxY1x1MDQxZVx1MDQxNSIsImluc2VydGlvbl9yZXBsYWNlX2NvbnRlbnQiOiJcdTA0MTdcdTA0MTBcdTA0MWNcdTA0MTVcdTA0MWRcdTA0MThcdTA0MjJcdTA0MTUgXHUwNDFhXHUwNDFlXHUwNDFkXHUwNDIyXHUwNDE1XHUwNDFkXHUwNDIyIiwiaW5zZXJ0aW9uX3JlcGxhY2VfZWxlbWVudCI6Ilx1MDQxN1x1MDQxMFx1MDQxY1x1MDQxNVx1MDQxZFx1MDQxOFx1MDQyMlx1MDQxNSBcdTA0MmRcdTA0MWJcdTA0MTVcdTA0MWNcdTA0MTVcdTA0MWRcdTA0MjIiLCJ2aXNpYmxlIjoiXHUwNDEyXHUwNDE4XHUwNDE0XHUwNDE4XHUwNDFjXHUwNDJiXHUwNDE5IiwiaGlkZGVuIjoiXHUwNDIxXHUwNDFhXHUwNDIwXHUwNDJiXHUwNDIyIiwiZmFsbGJhY2siOiJGQUxMQkFDSyIsImF1dG9tYXRpY2FsbHlfcGxhY2VkIjoiXHUwNDEwXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNhXHUwNDM4IFx1MDQzZlx1MDQzZVx1MDQzY1x1MDQzNVx1MDQ0OVx1MDQzMFx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDEgXHUwNDNmXHUwNDNlXHUwNDNjXHUwNDNlXHUwNDQ5XHUwNDRjXHUwNDRlIFx1MDQzYVx1MDQzZVx1MDQzNFx1MDQzMCBBZFNlbnNlIEF1dG8iLCJjYW5jZWwiOiJcdTA0MWVcdTA0NDJcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzAiLCJ1c2UiOiJcdTA0MThcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMiLCJhZGQiOiJcdTA0MTRcdTA0M2VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMiLCJwYXJlbnQiOiJcdTA0MjBcdTA0M2VcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGMiLCJjYW5jZWxfZWxlbWVudF9zZWxlY3Rpb24iOiJcdTA0MWVcdTA0NDJcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDRiXHUwNDMxXHUwNDNlXHUwNDQwIFx1MDQ0ZFx1MDQzYlx1MDQzNVx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzMCIsInNlbGVjdF9wYXJlbnRfZWxlbWVudCI6Ilx1MDQxMlx1MDQ0Ylx1MDQzMVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzNSBcdTA0NDBcdTA0M2VcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcdTA0NDFcdTA0M2FcdTA0MzhcdTA0MzkgXHUwNDRkXHUwNDNiXHUwNDM1XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDQyIiwiY3NzX3NlbGVjdG9yIjoiQ1NTIFx1MDQ0MVx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzYVx1MDQ0Mlx1MDQzZVx1MDQ0MCIsInVzZV9jdXJyZW50X3NlbGVjdG9yIjoiXHUwNDE4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0Mlx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOSBcdTA0NDFcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2FcdTA0NDJcdTA0M2VcdTA0NDAiLCJlbGVtZW50IjoiXHUwNDJkXHUwNDFiXHUwNDE1XHUwNDFjXHUwNDE1XHUwNDFkXHUwNDIyIiwicGF0aCI6Ilx1MDQxZlx1MDQyM1x1MDQyMlx1MDQyYyIsInNlbGVjdG9yIjoiXHUwNDIxXHUwNDE1XHUwNDFiXHUwNDE1XHUwNDFhXHUwNDIyXHUwNDFlXHUwNDIwIn07dmFyIGFpX2Nvb2tpZV9qcz0hMCxhaV9ibG9ja19jbGFzc19kZWY9ImNvZGUtYmxvY2siOyJ1bmRlZmluZWQiIT09dHlwZW9mIGFpX2Nvb2tpZV9qcyYmKGZ1bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKXtkZWZpbmUoYSk7dmFyIGM9ITB9Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cyYmKG1vZHVsZS5leHBvcnRzPWEoKSxjPSEwKTtpZighYyl7dmFyIGQ9d2luZG93LkNvb2tpZXMsYj13aW5kb3cuQ29va2llcz1hKCk7Yi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7d2luZG93LkNvb2tpZXM9ZDtyZXR1cm4gYn19fShmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtmb3IodmFyIGQ9MCxiPXt9O2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspe3ZhciBmPWFyZ3VtZW50c1tkXSxlO2ZvcihlIGluIGYpYltlXT1mW2VdfXJldHVybiBifWZ1bmN0aW9uIGMoZCl7ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBmKGgsayxnKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBkb2N1bWVudCl7Zz1hKHtwYXRoOiIvIixzYW1lU2l0ZToiTGF4In0sYi5kZWZhdWx0cyxnKTsibnVtYmVyIj09PXR5cGVvZiBnLmV4cGlyZXMmJihnLmV4cGlyZXM9bmV3IERhdGUoMSpuZXcgRGF0ZSs4NjRFNSpnLmV4cGlyZXMpKTtnLmV4cGlyZXM9Zy5leHBpcmVzP2cuZXhwaXJlcy50b1VUQ1N0cmluZygpOiIiO3RyeXt2YXIgbD1KU09OLnN0cmluZ2lmeShrKTsvXltce1xbXS8udGVzdChsKSYmKGs9bCl9Y2F0Y2gocCl7fWs9ZC53cml0ZT9kLndyaXRlKGssaCk6ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhrKSkucmVwbGFjZSgvJSgyM3wyNHwyNnwyQnwzQXwzQ3wzRXwzRHwyRnwzRnw0MHw1Qnw1RHw1RXw2MHw3Qnw3RHw3QykvZyxkZWNvZGVVUklDb21wb25lbnQpO2g9ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhoKSkucmVwbGFjZSgvJSgyM3wyNHwyNnwyQnw1RXw2MHw3QykvZyxkZWNvZGVVUklDb21wb25lbnQpLnJlcGxhY2UoL1tcKFwpXS9nLGVzY2FwZSk7bD0iIjtmb3IodmFyIG4gaW4gZylnW25dJiYobCs9IjsgIituLCEwIT09Z1tuXSYmKGwrPSI9IitnW25dLnNwbGl0KCI7IilbMF0pKTtyZXR1cm4gZG9jdW1lbnQuY29va2llPWgrIj0iK2srbH19ZnVuY3Rpb24gZShoLGspe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGRvY3VtZW50KXtmb3IodmFyIGc9e30sbD1kb2N1bWVudC5jb29raWU/ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7ICIpOltdLG49MDtuPGwubGVuZ3RoO24rKyl7dmFyIHA9bFtuXS5zcGxpdCgiPSIpLG09cC5zbGljZSgxKS5qb2luKCI9Iik7a3x8JyInIT09bS5jaGFyQXQoMCl8fChtPW0uc2xpY2UoMSwtMSkpO3RyeXt2YXIgcT1wWzBdLnJlcGxhY2UoLyglWzAtOUEtWl17Mn0pKy9nLGRlY29kZVVSSUNvbXBvbmVudCk7bT0oZC5yZWFkfHxkKShtLHEpfHxtLnJlcGxhY2UoLyglWzAtOUEtWl17Mn0pKy9nLGRlY29kZVVSSUNvbXBvbmVudCk7aWYoayl0cnl7bT1KU09OLnBhcnNlKG0pfWNhdGNoKHIpe31nW3FdPW07aWYoaD09PXEpYnJlYWt9Y2F0Y2gocil7fX1yZXR1cm4gaD9nW2hdOmd9fWIuc2V0PWY7Yi5nZXQ9ZnVuY3Rpb24oaCl7cmV0dXJuIGUoaCwhMSl9O2IuZ2V0SlNPTj1mdW5jdGlvbihoKXtyZXR1cm4gZShoLCEwKX07Yi5yZW1vdmU9ZnVuY3Rpb24oaCxrKXtmKGgsIiIsYShrLHtleHBpcmVzOi0xfSkpfTtiLmRlZmF1bHRzPXt9O2Iud2l0aENvbnZlcnRlcj1jO3JldHVybiBifXJldHVybiBjKGZ1bmN0aW9uKCl7fSl9KSxBaUNvb2tpZXM9Q29va2llcy5ub0NvbmZsaWN0KCksYWlfY2hlY2tfYmxvY2s9ZnVuY3Rpb24oYSl7aWYobnVsbD09YSlyZXR1cm4hMDt2YXIgYz1BaUNvb2tpZXMuZ2V0SlNPTigiYWlCTE9DS1MiKTthaV9kZWJ1Z19jb29raWVfc3RhdHVzPSIiO251bGw9PWMmJihjPXt9KTsidW5kZWZpbmVkIiE9PXR5cGVvZiBhaV9kZWxheV9zaG93aW5nX3BhZ2V2aWV3cyYmKGMuaGFzT3duUHJvcGVydHkoYSl8fChjW2FdPXt9KSxjW2FdLmhhc093blByb3BlcnR5KCJkIil8fChjW2FdLmQ9YWlfZGVsYXlfc2hvd2luZ19wYWdldmlld3MpKTtpZihjLmhhc093blByb3BlcnR5KGEpKXtmb3IodmFyIGQgaW4gY1thXSl7aWYoIngiPT1kKXt2YXIgYj0iIixmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW5bZGF0YS1haS1ibG9jaz0iJythKyciXScpWzBdOyJhaUhhc2giaW4gZi5kYXRhc2V0JiYoYj1mLmRhdGFzZXQuYWlIYXNoKTtmPSIiO2NbYV0uaGFzT3duUHJvcGVydHkoImgiKSYmKGY9Y1thXS5oKTt2YXIgZT1uZXcgRGF0ZTtlPWNbYV1bZF0tTWF0aC5yb3VuZChlLmdldFRpbWUoKS8xRTMpO2lmKDA8ZSYmZj09YilyZXR1cm4gYWlfZGVidWdfY29va2llX3N0YXR1cz1hPSJjbG9zZWQgZm9yICIrZSsiIHMgPSAiK01hdGgucm91bmQoMUU0KmUvMzYwMC8yNCkvMUU0KyIgZGF5cyIsITE7YWlfc2V0X2Nvb2tpZShhLCJ4IiwiIik7Y1thXS5oYXNPd25Qcm9wZXJ0eSgiaSIpfHxjW2FdLmhhc093blByb3BlcnR5KCJjIil8fGFpX3NldF9jb29raWUoYSwiaCIsIiIpfWVsc2UgaWYoImQiPT1kKXtpZigwIT1jW2FdW2RdKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWE9ImRlbGF5ZWQgZm9yICIrY1thXVtkXSsiIHBhZ2V2aWV3cyIsITF9ZWxzZSBpZigiaSI9PWQpe2I9IiI7Zj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuW2RhdGEtYWktYmxvY2s9IicrYSsnIl0nKVswXTsiYWlIYXNoImluIGYuZGF0YXNldCYmKGI9Zi5kYXRhc2V0LmFpSGFzaCk7Zj0iIjtjW2FdLmhhc093blByb3BlcnR5KCJoIikmJihmPWNbYV0uaCk7aWYoMD09Y1thXVtkXSYmZj09YilyZXR1cm4gYWlfZGVidWdfY29va2llX3N0YXR1cz1hPSJtYXggaW1wcmVzc2lvbnMgcmVhY2hlZCIsITE7aWYoMD5jW2FdW2RdJiZmPT1iKXtlPW5ldyBEYXRlO2U9LWNbYV1bZF0tTWF0aC5yb3VuZChlLmdldFRpbWUoKS8xRTMpO2lmKDA8ZSlyZXR1cm4gYWlfZGVidWdfY29va2llX3N0YXR1cz1hPSJtYXggaW1wLiByZWFjaGVkICgiK01hdGgucm91bmQoMUU0KmUvMjQvMzYwMCkvMUU0KyIgZGF5cyA9ICIrZSsiIHMpIiwhMTthaV9zZXRfY29va2llKGEsImkiLCIiKTtjW2FdLmhhc093blByb3BlcnR5KCJjIil8fGNbYV0uaGFzT3duUHJvcGVydHkoIngiKXx8YWlfc2V0X2Nvb2tpZShhLCJoIiwiIil9fWlmKCJpcHQiPT1kJiYwPT1jW2FdW2RdJiYoZT1uZXcgRGF0ZSxiPU1hdGgucm91bmQoZS5nZXRUaW1lKCkvMUUzKSxlPWNbYV0uaXQtYiwwPGUpKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWE9Im1heCBpbXAuIHBlciB0aW1lIHJlYWNoZWQgKCIrTWF0aC5yb3VuZCgxRTQqZS8yNC8zNjAwKS8xRTQrIiBkYXlzID0gIitlKyIgcykiLCExO2lmKCJjIj09ZCl7Yj0iIjtmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW5bZGF0YS1haS1ibG9jaz0iJythKyciXScpWzBdOyJhaUhhc2giaW4gZi5kYXRhc2V0JiYoYj1mLmRhdGFzZXQuYWlIYXNoKTtmPSIiO2NbYV0uaGFzT3duUHJvcGVydHkoImgiKSYmKGY9Y1thXS5oKTtpZigwPT1jW2FdW2RdJiZmPT1iKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWE9Im1heCBjbGlja3MgcmVhY2hlZCIsITE7aWYoMD5jW2FdW2RdJiZmPT1iKXtlPW5ldyBEYXRlO2U9LWNbYV1bZF0tTWF0aC5yb3VuZChlLmdldFRpbWUoKS8xRTMpO2lmKDA8ZSlyZXR1cm4gYWlfZGVidWdfY29va2llX3N0YXR1cz1hPSJtYXggY2xpY2tzIHJlYWNoZWQgKCIrTWF0aC5yb3VuZCgxRTQqZS8yNC8zNjAwKS8xRTQrIiBkYXlzID0gIitlKyIgcykiLCExO2FpX3NldF9jb29raWUoYSwiYyIsIiIpO2NbYV0uaGFzT3duUHJvcGVydHkoImkiKXx8Y1thXS5oYXNPd25Qcm9wZXJ0eSgieCIpfHxhaV9zZXRfY29va2llKGEsImgiLCIiKX19aWYoImNwdCI9PWQmJjA9PWNbYV1bZF0mJihlPW5ldyBEYXRlLGI9TWF0aC5yb3VuZChlLmdldFRpbWUoKS8xRTMpLGU9Y1thXS5jdC1iLDA8ZSkpcmV0dXJuIGFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9YT0ibWF4IGNsaWNrcyBwZXIgdGltZSByZWFjaGVkICgiK01hdGgucm91bmQoMUU0KmUvMjQvMzYwMCkvMUU0KyIgZGF5cyA9ICIrZSsiIHMpIiwhMX1pZihjLmhhc093blByb3BlcnR5KCJHIikmJmMuRy5oYXNPd25Qcm9wZXJ0eSgiY3B0IikmJjA9PWMuRy5jcHQmJihlPW5ldyBEYXRlLGI9TWF0aC5yb3VuZChlLmdldFRpbWUoKS8xRTMpLGU9Yy5HLmN0LWIsMDxlKSlyZXR1cm4gYWlfZGVidWdfY29va2llX3N0YXR1cz1hPSJtYXggZ2xvYmFsIGNsaWNrcyBwZXIgdGltZSByZWFjaGVkICgiK01hdGgucm91bmQoMUU0KmUvMjQvMzYwMCkvMUU0KyIgZGF5cyA9ICIrZSsiIHMpIiwhMX1haV9kZWJ1Z19jb29raWVfc3RhdHVzPSJPSyI7cmV0dXJuITB9LGFpX2NoZWNrX2FuZF9pbnNlcnRfYmxvY2s9ZnVuY3Rpb24oYSxjKXtpZihudWxsPT1hKXJldHVybiEwO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYyk7aWYoZC5sZW5ndGgpe2Q9ZFswXTt2YXIgYj1kLmNsb3Nlc3QoIi4iK2FpX2Jsb2NrX2NsYXNzX2RlZiksZj1haV9jaGVja19ibG9jayhhKTshZiYmMCE9cGFyc2VJbnQoZC5nZXRBdHRyaWJ1dGUoImxpbWl0cy1mYWxsYmFjayIpKSYmZC5oYXNBdHRyaWJ1dGUoImRhdGEtZmFsbGJhY2stY29kZSIpJiYoZC5zZXRBdHRyaWJ1dGUoImRhdGEtY29kZSIsZC5nZXRBdHRyaWJ1dGUoImRhdGEtZmFsbGJhY2stY29kZSIpKSxudWxsIT1iJiZiLmhhc0F0dHJpYnV0ZSgiZGF0YS1haSIpJiZkLmhhc0F0dHJpYnV0ZSgiZmFsbGJhY2stdHJhY2tpbmciKSYmZC5oYXNBdHRyaWJ1dGUoImZhbGxiYWNrX2xldmVsIikmJmIuc2V0QXR0cmlidXRlKCJkYXRhLWFpLSIrZC5nZXRBdHRyaWJ1dGUoImZhbGxiYWNrX2xldmVsIiksZC5nZXRBdHRyaWJ1dGUoImZhbGxiYWNrLXRyYWNraW5nIikpLGY9ITApO2QucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXNlbGVjdG9yIik7aWYoZilhaV9pbnNlcnRfY29kZShkKSxiJiYoZj1iLnF1ZXJ5U2VsZWN0b3JBbGwoIi5haS1kZWJ1Zy1ibG9jayIpLGYubGVuZ3RoJiYoYi5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrIiksYi5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrLWlwIiksYi5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrLWZpbHRlciIpLGIuc3R5bGUudmlzaWJpbGl0eT0iIixiLmNsYXNzTGlzdC5jb250YWlucygiYWktcmVtb3ZlLXBvc2l0aW9uIikmJihiLnN0eWxlLnBvc2l0aW9uPSIiKSkpO2Vsc2V7Zj1kLmNsb3Nlc3QoImRpdltkYXRhLWFpXSIpO2lmKG51bGwhPWYmJiJ1bmRlZmluZWQiIT10eXBlb2YgZi5nZXRBdHRyaWJ1dGUoImRhdGEtYWkiKSl7dmFyIGU9SlNPTi5wYXJzZShiNjRkKGYuZ2V0QXR0cmlidXRlKCJkYXRhLWFpIikpKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBlJiZlLmNvbnN0cnVjdG9yPT09QXJyYXkmJihlWzFdPSIiLGYuc2V0QXR0cmlidXRlKCJkYXRhLWFpIixiNjRlKEpTT04uc3RyaW5naWZ5KGUpKSkpfWImJihmPWIucXVlcnlTZWxlY3RvckFsbCgiLmFpLWRlYnVnLWJsb2NrIiksZi5sZW5ndGgmJihiLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2siKSxiLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2staXAiKSxiLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2stZmlsdGVyIiksYi5zdHlsZS52aXNpYmlsaXR5PSIiLGIuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yZW1vdmUtcG9zaXRpb24iKSYmKGIuc3R5bGUucG9zaXRpb249IiIpKSl9ZC5jbGFzc0xpc3QucmVtb3ZlKGMpfWQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLiIrYysiLWRiZyIpO2I9MDtmb3IoZj1kLmxlbmd0aDtiPGY7YisrKWU9ZFtiXSxlLnF1ZXJ5U2VsZWN0b3IoIi5haS1zdGF0dXMiKS50ZXh0Q29udGVudD1haV9kZWJ1Z19jb29raWVfc3RhdHVzLGUucXVlcnlTZWxlY3RvcigiLmFpLWNvb2tpZS1kYXRhIikudGV4dENvbnRlbnQ9YWlfZ2V0X2Nvb2tpZV90ZXh0KGEpLGUuY2xhc3NMaXN0LnJlbW92ZShjKyItZGJnIil9LGFpX2xvYWRfY29va2llPWZ1bmN0aW9uKCl7dmFyIGE9QWlDb29raWVzLmdldEpTT04oImFpQkxPQ0tTIik7bnVsbD09YSYmKGE9e30pO3JldHVybiBhfSxhaV9zZXRfY29va2llPWZ1bmN0aW9uKGEsYyxkKXt2YXIgYj1haV9sb2FkX2Nvb2tpZSgpO2lmKCIiPT09ZCl7aWYoYi5oYXNPd25Qcm9wZXJ0eShhKSl7ZGVsZXRlIGJbYV1bY107YTp7Yz1iW2FdO2ZvcihmIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShmKSl7dmFyIGY9ITE7YnJlYWsgYX1mPSEwfWYmJmRlbGV0ZSBiW2FdfX1lbHNlIGIuaGFzT3duUHJvcGVydHkoYSl8fChiW2FdPXt9KSxiW2FdW2NdPWQ7MD09PU9iamVjdC5rZXlzKGIpLmxlbmd0aCYmYi5jb25zdHJ1Y3Rvcj09PU9iamVjdD9BaUNvb2tpZXMucmVtb3ZlKCJhaUJMT0NLUyIpOkFpQ29va2llcy5zZXQoImFpQkxPQ0tTIixiLHtleHBpcmVzOjM2NSxwYXRoOiIvIn0pO3JldHVybiBifSxhaV9nZXRfY29va2llX3RleHQ9ZnVuY3Rpb24oYSl7dmFyIGM9QWlDb29raWVzLmdldEpTT04oImFpQkxPQ0tTIik7bnVsbD09YyYmKGM9e30pO3ZhciBkPSIiO2MuaGFzT3duUHJvcGVydHkoIkciKSYmKGQ9IkdbIitKU09OLnN0cmluZ2lmeShjLkcpLnJlcGxhY2UoLyIvZywiIikucmVwbGFjZSgieyIsIiIpLnJlcGxhY2UoIn0iLCIiKSsiXSAiKTt2YXIgYj0iIjtjLmhhc093blByb3BlcnR5KGEpJiYoYj1KU09OLnN0cmluZ2lmeShjW2FdKS5yZXBsYWNlKC8iL2csIiIpLnJlcGxhY2UoInsiLCIiKS5yZXBsYWNlKCJ9IiwiIikpO3JldHVybiBkK2J9KTt2YXIgYWlfaW5zZXJ0aW9uX2pzPSEwLGFpX2Jsb2NrX2NsYXNzX2RlZj0iY29kZS1ibG9jayI7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhaV9pbnNlcnRpb25fanMpe2FpX2luc2VydD1mdW5jdGlvbihhLGgsbCl7aWYoLTEhPWguaW5kZXhPZigiOmVxKCIpKWlmKHdpbmRvdy5qUXVlcnkmJndpbmRvdy5qUXVlcnkuZm4pdmFyIG49alF1ZXJ5KGgpO2Vsc2V7Y29uc29sZS5lcnJvcigiQUkgSU5TRVJUIFVTSU5HIGpRdWVyeSBRVUVSSUVTOiIsaCwiLSBqUXVlcnkgbm90IGZvdW5kIik7cmV0dXJufWVsc2Ugbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGgpO2Zvcih2YXIgdT0wLHk9bi5sZW5ndGg7dTx5O3UrKyl7dmFyIGQ9blt1XTtzZWxlY3Rvcl9zdHJpbmc9ZC5oYXNBdHRyaWJ1dGUoImlkIik/IiMiK2QuZ2V0QXR0cmlidXRlKCJpZCIpOmQuaGFzQXR0cmlidXRlKCJjbGFzcyIpPyIuIitkLmdldEF0dHJpYnV0ZSgiY2xhc3MiKS5yZXBsYWNlKFJlZ0V4cCgiICIsImciKSwiLiIpOiIiO3ZhciB3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3cuaW5uZXJIVE1MPWw7dmFyIG09dy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhaS1zZWxlY3Rvci1jb3VudGVyIilbMF07bnVsbCE9bSYmKG0uaW5uZXJUZXh0PXUrMSk7bT13LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFpLWRlYnVnLW5hbWUgYWktbWFpbiIpWzBdO2lmKG51bGwhPW0pe3ZhciByPWEudG9VcHBlckNhc2UoKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFpX2Zyb250JiYoImJlZm9yZSI9PWE/cj1haV9mcm9udC5pbnNlcnRpb25fYmVmb3JlOiJhZnRlciI9PWE/cj1haV9mcm9udC5pbnNlcnRpb25fYWZ0ZXI6InByZXBlbmQiPT1hP3I9YWlfZnJvbnQuaW5zZXJ0aW9uX3ByZXBlbmQ6ImFwcGVuZCI9PWE/cj1haV9mcm9udC5pbnNlcnRpb25fYXBwZW5kOiJyZXBsYWNlLWNvbnRlbnQiPT1hP3I9YWlfZnJvbnQuaW5zZXJ0aW9uX3JlcGxhY2VfY29udGVudDoicmVwbGFjZS1lbGVtZW50Ij09YSYmKHI9YWlfZnJvbnQuaW5zZXJ0aW9uX3JlcGxhY2VfZWxlbWVudCkpOy0xPT1zZWxlY3Rvcl9zdHJpbmcuaW5kZXhPZigiLmFpLXZpZXdwb3J0cyIpJiYobS5pbm5lclRleHQ9cisiICIraCsiICgiK2QudGFnTmFtZS50b0xvd2VyQ2FzZSgpK3NlbGVjdG9yX3N0cmluZysiKSIpfW09ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt0cnl7dmFyIHY9bS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQody5pbm5lckhUTUwpfWNhdGNoKHQpe30iYmVmb3JlIj09YT9kLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHYsZCk6ImFmdGVyIj09YT9kLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHYsZC5uZXh0U2libGluZyk6InByZXBlbmQiPT1hP2QuaW5zZXJ0QmVmb3JlKHYsZC5maXJzdENoaWxkKToiYXBwZW5kIj09YT9kLmluc2VydEJlZm9yZSh2LG51bGwpOiJyZXBsYWNlLWNvbnRlbnQiPT1hPyhkLmlubmVySFRNTD0iIixkLmluc2VydEJlZm9yZSh2LG51bGwpKToicmVwbGFjZS1lbGVtZW50Ij09YSYmKGQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodixkKSxkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCkpO3ooKX19O2FpX2luc2VydF9jb2RlPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGgobSxyKXtyZXR1cm4gbnVsbD09bT8hMTptLmNsYXNzTGlzdD9tLmNsYXNzTGlzdC5jb250YWlucyhyKTotMTwoIiAiK20uY2xhc3NOYW1lKyIgIikuaW5kZXhPZigiICIrcisiICIpfWZ1bmN0aW9uIGwobSxyKXtudWxsIT1tJiYobS5jbGFzc0xpc3Q/bS5jbGFzc0xpc3QuYWRkKHIpOm0uY2xhc3NOYW1lKz0iICIrcil9ZnVuY3Rpb24gbihtLHIpe251bGwhPW0mJihtLmNsYXNzTGlzdD9tLmNsYXNzTGlzdC5yZW1vdmUocik6bS5jbGFzc05hbWU9bS5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXGIpIityLnNwbGl0KCIgIikuam9pbigifCIpKyIoXFxifCQpIiwiZ2kiKSwiICIpKX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGEpe3ZhciB1PSExO2lmKGgoYSwibm8tdmlzaWJpbGl0eS1jaGVjayIpfHxhLm9mZnNldFdpZHRofHxhLm9mZnNldEhlaWdodHx8YS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl7dT1hLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2RlIik7dmFyIHk9YS5nZXRBdHRyaWJ1dGUoImRhdGEtaW5zZXJ0aW9uLXBvc2l0aW9uIiksZD1hLmdldEF0dHJpYnV0ZSgiZGF0YS1zZWxlY3RvciIpO2lmKG51bGwhPXUpaWYobnVsbCE9eSYmbnVsbCE9ZCl7aWYoLTEhPWQuaW5kZXhPZigiOmVxKCIpP3dpbmRvdy5qUXVlcnkmJndpbmRvdy5qUXVlcnkuZm4mJmpRdWVyeShkKS5sZW5ndGg6ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChkKS5sZW5ndGgpYWlfaW5zZXJ0KHksZCxiNjRkKHUpKSxuKGEsImFpLXZpZXdwb3J0cyIpfWVsc2V7eT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3RyeXt2YXIgdz15LmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChiNjRkKHUpKX1jYXRjaChtKXt9YS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3LGEubmV4dFNpYmxpbmcpO24oYSwiYWktdmlld3BvcnRzIil9dT0hMH1lbHNlIHc9YS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLGgodywiYWktZGVidWctYmFyIikmJmgodywiYWktZGVidWctc2NyaXB0IikmJihuKHcsImFpLWRlYnVnLXNjcmlwdCIpLGwodywiYWktZGVidWctdmlld3BvcnQtaW52aXNpYmxlIikpLG4oYSwiYWktdmlld3BvcnRzIik7cmV0dXJuIHV9fTthaV9pbnNlcnRfbGlzdF9jb2RlPWZ1bmN0aW9uKGEpe3ZhciBoPWRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYSlbMF07aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoKXt2YXIgbD1haV9pbnNlcnRfY29kZShoKSxuPWguY2xvc2VzdCgiZGl2LiIrYWlfYmxvY2tfY2xhc3NfZGVmKTtpZihuKXtsfHxuLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1haSIpO3ZhciB1PW4ucXVlcnlTZWxlY3RvckFsbCgiLmFpLWRlYnVnLWJsb2NrIik7biYmdS5sZW5ndGgmJihuLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2siKSxuLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2staXAiKSxuLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2stZmlsdGVyIiksbi5zdHlsZS52aXNpYmlsaXR5PSIiLG4uY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yZW1vdmUtcG9zaXRpb24iKSYmKG4uc3R5bGUucG9zaXRpb249IiIpKX1oLmNsYXNzTGlzdC5yZW1vdmUoYSk7bCYmeigpfX07YWlfaW5zZXJ0X3ZpZXdwb3J0X2NvZGU9ZnVuY3Rpb24oYSl7dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKVswXTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGgpe3ZhciBsPWFpX2luc2VydF9jb2RlKGgpO2guY2xhc3NMaXN0LnJlbW92ZShhKTtsJiYoYT1oLmNsb3Nlc3QoImRpdi4iK2FpX2Jsb2NrX2NsYXNzX2RlZiksbnVsbCE9YSYmKGw9aC5nZXRBdHRyaWJ1dGUoInN0eWxlIiksbnVsbCE9bCYmYS5zZXRBdHRyaWJ1dGUoInN0eWxlIixhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSsiICIrbCkpKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aC5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIil9LDIpO3ooKX19O2FpX2luc2VydF9hZHNlbnNlX2ZhbGxiYWNrX2NvZGVzPWZ1bmN0aW9uKGEpe2Euc3R5bGUuZGlzcGxheT0ibm9uZSI7dmFyIGg9YS5jbG9zZXN0KCIuYWktZmFsbGJhY2stYWRzZW5zZSIpLGw9aC5uZXh0RWxlbWVudFNpYmxpbmc7bC5nZXRBdHRyaWJ1dGUoImRhdGEtY29kZSIpP2FpX2luc2VydF9jb2RlKGwpJiZ6KCk6bC5zdHlsZS5kaXNwbGF5PSJibG9jayI7aC5jbGFzc0xpc3QuY29udGFpbnMoImFpLWVtcHR5LWNvZGUiKSYmbnVsbCE9YS5jbG9zZXN0KCIuIithaV9ibG9ja19jbGFzc19kZWYpJiYoYT1hLmNsb3Nlc3QoIi4iK2FpX2Jsb2NrX2NsYXNzX2RlZikuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY29kZS1ibG9jay1sYWJlbCIpLDAhPWEubGVuZ3RoJiYoYVswXS5zdHlsZS5kaXNwbGF5PSJub25lIikpfTthaV9pbnNlcnRfY29kZV9ieV9jbGFzcz1mdW5jdGlvbihhKXt2YXIgaD1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpWzBdOyJ1bmRlZmluZWQiIT10eXBlb2YgaCYmKGFpX2luc2VydF9jb2RlKGgpLGguY2xhc3NMaXN0LnJlbW92ZShhKSl9O2FpX2luc2VydF9jbGllbnRfY29kZT1mdW5jdGlvbihhLGgpe3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYSlbMF07aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBsKXt2YXIgbj1sLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2RlIik7bnVsbCE9biYmYWlfY2hlY2tfYmxvY2soKSYmKGwuc2V0QXR0cmlidXRlKCJkYXRhLWNvZGUiLG4uc3Vic3RyaW5nKE1hdGguZmxvb3IoaC8xOSkpKSxhaV9pbnNlcnRfY29kZV9ieV9jbGFzcyhhKSxsLnJlbW92ZSgpKX19O2FpX3Byb2Nlc3NfZWxlbWVudHNfYWN0aXZlPSExO2Z1bmN0aW9uIHooKXthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZXx8c2V0VGltZW91dChmdW5jdGlvbigpe2FpX3Byb2Nlc3NfZWxlbWVudHNfYWN0aXZlPSExOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX3JvdGF0aW9ucyYmYWlfcHJvY2Vzc19yb3RhdGlvbnMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19saXN0cyYmYWlfcHJvY2Vzc19saXN0cygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2lwX2FkZHJlc3NlcyYmYWlfcHJvY2Vzc19pcF9hZGRyZXNzZXMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19maWx0ZXJfaG9va3MmJmFpX3Byb2Nlc3NfZmlsdGVyX2hvb2tzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2FkYl9wcm9jZXNzX2Jsb2NrcyYmYWlfYWRiX3Byb2Nlc3NfYmxvY2tzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfaW1wcmVzc2lvbnMmJjE9PWFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhaV9wcm9jZXNzX2ltcHJlc3Npb25zKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2luc3RhbGxfY2xpY2tfdHJhY2tlcnMmJjE9PWFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhaV9pbnN0YWxsX2NsaWNrX3RyYWNrZXJzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2luc3RhbGxfY2xvc2VfYnV0dG9ucyYmYWlfaW5zdGFsbF9jbG9zZV9idXR0b25zKGRvY3VtZW50KTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc193YWl0X2Zvcl9pbnRlcmFjdGlvbiYmYWlfcHJvY2Vzc193YWl0X2Zvcl9pbnRlcmFjdGlvbigpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2RlbGF5ZWRfYmxvY2tzJiZhaV9wcm9jZXNzX2RlbGF5ZWRfYmxvY2tzKCl9LDUpO2FpX3Byb2Nlc3NfZWxlbWVudHNfYWN0aXZlPSEwfWNvbnN0IEI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpOyhuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihhLGgpe2Zvcihjb25zdCBsIG9mIGEpImF0dHJpYnV0ZXMiPT09bC50eXBlJiYiZGF0YS1hZC1zdGF0dXMiPT1sLmF0dHJpYnV0ZU5hbWUmJiJ1bmZpbGxlZCI9PWwudGFyZ2V0LmRhdGFzZXQuYWRTdGF0dXMmJmwudGFyZ2V0LmNsb3Nlc3QoIi5haS1mYWxsYmFjay1hZHNlbnNlIikmJmFpX2luc2VydF9hZHNlbnNlX2ZhbGxiYWNrX2NvZGVzKGwudGFyZ2V0KX0pKS5vYnNlcnZlKEIse2F0dHJpYnV0ZXM6ITAsY2hpbGRMaXN0OiExLHN1YnRyZWU6ITB9KTt2YXIgQXJyaXZlPWZ1bmN0aW9uKGEsaCxsKXtmdW5jdGlvbiBuKHQsYyxlKXtkLmFkZE1ldGhvZChjLGUsdC51bmJpbmRFdmVudCk7ZC5hZGRNZXRob2QoYyxlLHQudW5iaW5kRXZlbnRXaXRoU2VsZWN0b3JPckNhbGxiYWNrKTtkLmFkZE1ldGhvZChjLGUsdC51bmJpbmRFdmVudFdpdGhTZWxlY3RvckFuZENhbGxiYWNrKX1mdW5jdGlvbiB1KHQpe3QuYXJyaXZlPXIuYmluZEV2ZW50O24ocix0LCJ1bmJpbmRBcnJpdmUiKTt0LmxlYXZlPXYuYmluZEV2ZW50O24odix0LCJ1bmJpbmRMZWF2ZSIpfWlmKGEuTXV0YXRpb25PYnNlcnZlciYmInVuZGVmaW5lZCIhPT10eXBlb2YgSFRNTEVsZW1lbnQpe3ZhciB5PTAsZD1mdW5jdGlvbigpe3ZhciB0PUhUTUxFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzfHxIVE1MRWxlbWVudC5wcm90b3R5cGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxIVE1MRWxlbWVudC5wcm90b3R5cGUubW96TWF0Y2hlc1NlbGVjdG9yfHxIVE1MRWxlbWVudC5wcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3I7cmV0dXJue21hdGNoZXNTZWxlY3RvcjpmdW5jdGlvbihjLGUpe3JldHVybiBjIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJnQuY2FsbChjLGUpfSxhZGRNZXRob2Q6ZnVuY3Rpb24oYyxlLGYpe3ZhciBiPWNbZV07Y1tlXT1mdW5jdGlvbigpe2lmKGYubGVuZ3RoPT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYilyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxjYWxsQ2FsbGJhY2tzOmZ1bmN0aW9uKGMsZSl7ZSYmZS5vcHRpb25zLm9uY2VPbmx5JiYxPT1lLmZpcmVkRWxlbXMubGVuZ3RoJiYoYz1bY1swXV0pO2Zvcih2YXIgZj0wLGI7Yj1jW2ZdO2YrKyliJiZiLmNhbGxiYWNrJiZiLmNhbGxiYWNrLmNhbGwoYi5lbGVtLGIuZWxlbSk7ZSYmZS5vcHRpb25zLm9uY2VPbmx5JiYxPT1lLmZpcmVkRWxlbXMubGVuZ3RoJiZlLm1lLnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yQW5kQ2FsbGJhY2suY2FsbChlLnRhcmdldCxlLnNlbGVjdG9yLGUuY2FsbGJhY2spfSxjaGVja0NoaWxkTm9kZXNSZWN1cnNpdmVseTpmdW5jdGlvbihjLGUsZixiKXtmb3IodmFyIGc9MCxrO2s9Y1tnXTtnKyspZihrLGUsYikmJmIucHVzaCh7Y2FsbGJhY2s6ZS5jYWxsYmFjayxlbGVtOmt9KSwwPGsuY2hpbGROb2Rlcy5sZW5ndGgmJmQuY2hlY2tDaGlsZE5vZGVzUmVjdXJzaXZlbHkoay5jaGlsZE5vZGVzLGUsZixiKX0sbWVyZ2VBcnJheXM6ZnVuY3Rpb24oYyxlKXt2YXIgZj17fSxiO2ZvcihiIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShiKSYmKGZbYl09Y1tiXSk7Zm9yKGIgaW4gZSllLmhhc093blByb3BlcnR5KGIpJiYoZltiXT1lW2JdKTtyZXR1cm4gZn0sdG9FbGVtZW50c0FycmF5OmZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGN8fCJudW1iZXIiPT09dHlwZW9mIGMubGVuZ3RoJiZjIT09YXx8KGM9W2NdKTtyZXR1cm4gY319fSgpLHc9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe3RoaXMuX2V2ZW50c0J1Y2tldD1bXTt0aGlzLl9iZWZvcmVSZW1vdmluZz10aGlzLl9iZWZvcmVBZGRpbmc9bnVsbH07dC5wcm90b3R5cGUuYWRkRXZlbnQ9ZnVuY3Rpb24oYyxlLGYsYil7Yz17dGFyZ2V0OmMsc2VsZWN0b3I6ZSxvcHRpb25zOmYsY2FsbGJhY2s6YixmaXJlZEVsZW1zOltdfTt0aGlzLl9iZWZvcmVBZGRpbmcmJnRoaXMuX2JlZm9yZUFkZGluZyhjKTt0aGlzLl9ldmVudHNCdWNrZXQucHVzaChjKTtyZXR1cm4gY307dC5wcm90b3R5cGUucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oYyl7Zm9yKHZhciBlPXRoaXMuX2V2ZW50c0J1Y2tldC5sZW5ndGgtMSxmO2Y9dGhpcy5fZXZlbnRzQnVja2V0W2VdO2UtLSljKGYpJiYodGhpcy5fYmVmb3JlUmVtb3ZpbmcmJnRoaXMuX2JlZm9yZVJlbW92aW5nKGYpLChmPXRoaXMuX2V2ZW50c0J1Y2tldC5zcGxpY2UoZSwxKSkmJmYubGVuZ3RoJiYoZlswXS5jYWxsYmFjaz1udWxsKSl9O3QucHJvdG90eXBlLmJlZm9yZUFkZGluZz1mdW5jdGlvbihjKXt0aGlzLl9iZWZvcmVBZGRpbmc9Y307dC5wcm90b3R5cGUuYmVmb3JlUmVtb3Zpbmc9ZnVuY3Rpb24oYyl7dGhpcy5fYmVmb3JlUmVtb3Zpbmc9Y307cmV0dXJuIHR9KCksbT1mdW5jdGlvbih0LGMpe3ZhciBlPW5ldyB3LGY9dGhpcyxiPXtmaXJlT25BdHRyaWJ1dGVzTW9kaWZpY2F0aW9uOiExfTtlLmJlZm9yZUFkZGluZyhmdW5jdGlvbihnKXt2YXIgaz1nLnRhcmdldDtpZihrPT09YS5kb2N1bWVudHx8az09PWEpaz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpWzBdO3ZhciBwPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKHgpe2MuY2FsbCh0aGlzLHgsZyl9KTt2YXIgcT10KGcub3B0aW9ucyk7cC5vYnNlcnZlKGsscSk7Zy5vYnNlcnZlcj1wO2cubWU9Zn0pO2UuYmVmb3JlUmVtb3ZpbmcoZnVuY3Rpb24oZyl7Zy5vYnNlcnZlci5kaXNjb25uZWN0KCl9KTt0aGlzLmJpbmRFdmVudD1mdW5jdGlvbihnLGsscCl7az1kLm1lcmdlQXJyYXlzKGIsayk7Zm9yKHZhciBxPWQudG9FbGVtZW50c0FycmF5KHRoaXMpLHg9MDt4PHEubGVuZ3RoO3grKyllLmFkZEV2ZW50KHFbeF0sZyxrLHApfTt0aGlzLnVuYmluZEV2ZW50PWZ1bmN0aW9uKCl7dmFyIGc9ZC50b0VsZW1lbnRzQXJyYXkodGhpcyk7ZS5yZW1vdmVFdmVudChmdW5jdGlvbihrKXtmb3IodmFyIHA9MDtwPGcubGVuZ3RoO3ArKylpZih0aGlzPT09bHx8ay50YXJnZXQ9PT1nW3BdKXJldHVybiEwO3JldHVybiExfSl9O3RoaXMudW5iaW5kRXZlbnRXaXRoU2VsZWN0b3JPckNhbGxiYWNrPWZ1bmN0aW9uKGcpe3ZhciBrPWQudG9FbGVtZW50c0FycmF5KHRoaXMpO2UucmVtb3ZlRXZlbnQoImZ1bmN0aW9uIj09PXR5cGVvZiBnP2Z1bmN0aW9uKHApe2Zvcih2YXIgcT0wO3E8ay5sZW5ndGg7cSsrKWlmKCh0aGlzPT09bHx8cC50YXJnZXQ9PT1rW3FdKSYmcC5jYWxsYmFjaz09PWcpcmV0dXJuITA7cmV0dXJuITF9OmZ1bmN0aW9uKHApe2Zvcih2YXIgcT0wO3E8ay5sZW5ndGg7cSsrKWlmKCh0aGlzPT09bHx8cC50YXJnZXQ9PT1rW3FdKSYmcC5zZWxlY3Rvcj09PWcpcmV0dXJuITA7cmV0dXJuITF9KX07dGhpcy51bmJpbmRFdmVudFdpdGhTZWxlY3RvckFuZENhbGxiYWNrPWZ1bmN0aW9uKGcsayl7dmFyIHA9ZC50b0VsZW1lbnRzQXJyYXkodGhpcyk7ZS5yZW1vdmVFdmVudChmdW5jdGlvbihxKXtmb3IodmFyIHg9MDt4PHAubGVuZ3RoO3grKylpZigodGhpcz09PWx8fHEudGFyZ2V0PT09cFt4XSkmJnEuc2VsZWN0b3I9PT1nJiZxLmNhbGxiYWNrPT09aylyZXR1cm4hMDtyZXR1cm4hMX0pfTtyZXR1cm4gdGhpc30scj1uZXcgZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGYsYixnKXtyZXR1cm4gZC5tYXRjaGVzU2VsZWN0b3IoZixiLnNlbGVjdG9yKSYmKGYuX2lkPT09bCYmKGYuX2lkPXkrKyksLTE9PWIuZmlyZWRFbGVtcy5pbmRleE9mKGYuX2lkKSk/KGIuZmlyZWRFbGVtcy5wdXNoKGYuX2lkKSwhMCk6ITF9dmFyIGM9e2ZpcmVPbkF0dHJpYnV0ZXNNb2RpZmljYXRpb246ITEsb25jZU9ubHk6ITEsZXhpc3Rpbmc6ITF9O3I9bmV3IG0oZnVuY3Rpb24oZil7dmFyIGI9e2F0dHJpYnV0ZXM6ITEsY2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9O2YuZmlyZU9uQXR0cmlidXRlc01vZGlmaWNhdGlvbiYmKGIuYXR0cmlidXRlcz0hMCk7cmV0dXJuIGJ9LGZ1bmN0aW9uKGYsYil7Zi5mb3JFYWNoKGZ1bmN0aW9uKGcpe3ZhciBrPWcuYWRkZWROb2RlcyxwPWcudGFyZ2V0LHE9W107bnVsbCE9PWsmJjA8ay5sZW5ndGg/ZC5jaGVja0NoaWxkTm9kZXNSZWN1cnNpdmVseShrLGIsdCxxKToiYXR0cmlidXRlcyI9PT1nLnR5cGUmJnQocCxiLHEpJiZxLnB1c2goe2NhbGxiYWNrOmIuY2FsbGJhY2ssZWxlbTpwfSk7ZC5jYWxsQ2FsbGJhY2tzKHEsYil9KX0pO3ZhciBlPXIuYmluZEV2ZW50O3IuYmluZEV2ZW50PWZ1bmN0aW9uKGYsYixnKXsidW5kZWZpbmVkIj09PXR5cGVvZiBnPyhnPWIsYj1jKTpiPWQubWVyZ2VBcnJheXMoYyxiKTt2YXIgaz1kLnRvRWxlbWVudHNBcnJheSh0aGlzKTtpZihiLmV4aXN0aW5nKXtmb3IodmFyIHA9W10scT0wO3E8ay5sZW5ndGg7cSsrKWZvcih2YXIgeD1rW3FdLnF1ZXJ5U2VsZWN0b3JBbGwoZiksQT0wO0E8eC5sZW5ndGg7QSsrKXAucHVzaCh7Y2FsbGJhY2s6ZyxlbGVtOnhbQV19KTtpZihiLm9uY2VPbmx5JiZwLmxlbmd0aClyZXR1cm4gZy5jYWxsKHBbMF0uZWxlbSxwWzBdLmVsZW0pO3NldFRpbWVvdXQoZC5jYWxsQ2FsbGJhY2tzLDEscCl9ZS5jYWxsKHRoaXMsZixiLGcpfTtyZXR1cm4gcn0sdj1uZXcgZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGYsYil7cmV0dXJuIGQubWF0Y2hlc1NlbGVjdG9yKGYsYi5zZWxlY3Rvcil9dmFyIGM9e307dj1uZXcgbShmdW5jdGlvbigpe3JldHVybntjaGlsZExpc3Q6ITAsc3VidHJlZTohMH19LGZ1bmN0aW9uKGYsYil7Zi5mb3JFYWNoKGZ1bmN0aW9uKGcpe2c9Zy5yZW1vdmVkTm9kZXM7dmFyIGs9W107bnVsbCE9PWcmJjA8Zy5sZW5ndGgmJmQuY2hlY2tDaGlsZE5vZGVzUmVjdXJzaXZlbHkoZyxiLHQsayk7ZC5jYWxsQ2FsbGJhY2tzKGssYil9KX0pO3ZhciBlPXYuYmluZEV2ZW50O3YuYmluZEV2ZW50PWZ1bmN0aW9uKGYsYixnKXsidW5kZWZpbmVkIj09PXR5cGVvZiBnPyhnPWIsYj1jKTpiPWQubWVyZ2VBcnJheXMoYyxiKTtlLmNhbGwodGhpcyxmLGIsZyl9O3JldHVybiB2fTtoJiZ1KGguZm4pO3UoSFRNTEVsZW1lbnQucHJvdG90eXBlKTt1KE5vZGVMaXN0LnByb3RvdHlwZSk7dShIVE1MQ29sbGVjdGlvbi5wcm90b3R5cGUpO3UoSFRNTERvY3VtZW50LnByb3RvdHlwZSk7dShXaW5kb3cucHJvdG90eXBlKTtoPXt9O24ocixoLCJ1bmJpbmRBbGxBcnJpdmUiKTtuKHYsaCwidW5iaW5kQWxsTGVhdmUiKTtyZXR1cm4gaH19KHdpbmRvdywidW5kZWZpbmVkIj09PXR5cGVvZiBqUXVlcnk/bnVsbDpqUXVlcnksdm9pZCAwKX07dmFyIGFpX3JvdGF0aW9uX3RyaWdnZXJzPVtdLGFpX2Jsb2NrX2NsYXNzX2RlZj0iY29kZS1ibG9jayI7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhaV9yb3RhdGlvbl90cmlnZ2Vycyl7YWlfcHJvY2Vzc19yb3RhdGlvbj1mdW5jdGlvbihiKXt2YXIgZD0ibnVtYmVyIj09dHlwZW9mIGIubGVuZ3RoO3dpbmRvdy5qUXVlcnkmJndpbmRvdy5qUXVlcnkuZm4mJmIgaW5zdGFuY2VvZiBqUXVlcnkmJihiPWQ/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYik6YlswXSk7aWYoZCl7dmFyIGU9ITE7Yi5mb3JFYWNoKChjLGgpPT57aWYoYy5jbGFzc0xpc3QuY29udGFpbnMoImFpLXVucHJvY2Vzc2VkIil8fGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS10aW1lciIpKWU9ITB9KTtpZighZSlyZXR1cm47Yi5mb3JFYWNoKChjLGgpPT57Yy5jbGFzc0xpc3QucmVtb3ZlKCJhaS11bnByb2Nlc3NlZCIpO2MuY2xhc3NMaXN0LnJlbW92ZSgiYWktdGltZXIiKX0pfWVsc2V7aWYoIWIuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS11bnByb2Nlc3NlZCIpJiYhYi5jbGFzc0xpc3QuY29udGFpbnMoImFpLXRpbWVyIikpcmV0dXJuO2IuY2xhc3NMaXN0LnJlbW92ZSgiYWktdW5wcm9jZXNzZWQiKTtiLmNsYXNzTGlzdC5yZW1vdmUoImFpLXRpbWVyIil9dmFyIGE9ITE7aWYoZD9iWzBdLmhhc0F0dHJpYnV0ZSgiZGF0YS1pbmZvIik6Yi5oYXNBdHRyaWJ1dGUoImRhdGEtaW5mbyIpKXt2YXIgZj0iZGl2LmFpLXJvdGF0ZS5haS0iKyhkP0pTT04ucGFyc2UoYXRvYihiWzBdLmRhdGFzZXQuaW5mbykpOkpTT04ucGFyc2UoYXRvYihiLmRhdGFzZXQuaW5mbykpKVswXTthaV9yb3RhdGlvbl90cmlnZ2Vycy5pbmNsdWRlcyhmKSYmKGFpX3JvdGF0aW9uX3RyaWdnZXJzLnNwbGljZShhaV9yb3RhdGlvbl90cmlnZ2Vycy5pbmRleE9mKGYpLDEpLGE9ITApfWlmKGQpZm9yKGQ9MDtkPGIubGVuZ3RoO2QrKykwPT1kP2FpX3Byb2Nlc3Nfc2luZ2xlX3JvdGF0aW9uKGJbZF0sITApOmFpX3Byb2Nlc3Nfc2luZ2xlX3JvdGF0aW9uKGJbZF0sITEpO2Vsc2UgYWlfcHJvY2Vzc19zaW5nbGVfcm90YXRpb24oYiwhYSl9O2FpX3Byb2Nlc3Nfc2luZ2xlX3JvdGF0aW9uPWZ1bmN0aW9uKGIsZCl7dmFyIGU9W107QXJyYXkuZnJvbShiLmNoaWxkcmVuKS5mb3JFYWNoKChnLHApPT57Zy5tYXRjaGVzKCIuYWktcm90YXRlLW9wdGlvbiIpJiZlLnB1c2goZyl9KTtpZigwIT1lLmxlbmd0aCl7ZS5mb3JFYWNoKChnLHApPT57Zy5zdHlsZS5kaXNwbGF5PSJub25lIn0pO2lmKGIuaGFzQXR0cmlidXRlKCJkYXRhLW5leHQiKSl7az1wYXJzZUludChiLmdldEF0dHJpYnV0ZSgiZGF0YS1uZXh0IikpO3ZhciBhPWVba107aWYoYS5oYXNBdHRyaWJ1dGUoImRhdGEtY29kZSIpKXt2YXIgZj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGM9ITA7dHJ5e3ZhciBoPWYuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGI2NGQoYS5kYXRhc2V0LmNvZGUpKX1jYXRjaChnKXtjPSExfWMmJihhPWgpfTAhPWEucXVlcnlTZWxlY3RvckFsbCgic3BhbltkYXRhLWFpLWdyb3Vwc10iKS5sZW5ndGgmJjAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5haS1yb3RhdGlvbi1ncm91cHMiKS5sZW5ndGgmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtCKCl9LDUpfWVsc2UgaWYoZVswXS5oYXNBdHRyaWJ1dGUoImRhdGEtZ3JvdXAiKSl7dmFyIGs9LTEsdT1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJzcGFuW2RhdGEtYWktZ3JvdXBzXSIpLmZvckVhY2goKGcscCk9PnsoZy5vZmZzZXRXaWR0aHx8Zy5vZmZzZXRIZWlnaHR8fGcuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpJiZ1LnB1c2goZyl9KTsxPD11Lmxlbmd0aCYmKHRpbWVkX2dyb3Vwcz1bXSxncm91cHM9W10sdS5mb3JFYWNoKGZ1bmN0aW9uKGcscCl7YWN0aXZlX2dyb3Vwcz1KU09OLnBhcnNlKGI2NGQoZy5kYXRhc2V0LmFpR3JvdXBzKSk7dmFyIHI9ITE7Zz1nLmNsb3Nlc3QoIi5haS1yb3RhdGUiKTtudWxsIT1nJiZnLmNsYXNzTGlzdC5jb250YWlucygiYWktdGltZWQtcm90YXRpb24iKSYmKHI9ITApO2FjdGl2ZV9ncm91cHMuZm9yRWFjaChmdW5jdGlvbih0LHYpe2dyb3Vwcy5wdXNoKHQpO3ImJnRpbWVkX2dyb3Vwcy5wdXNoKHQpfSl9KSxncm91cHMuZm9yRWFjaChmdW5jdGlvbihnLHApey0xPT1rJiZlLmZvckVhY2goKHIsdCk9Pnt2YXIgdj1iNjRkKHIuZGF0YXNldC5ncm91cCk7b3B0aW9uX2dyb3VwX2l0ZW1zPXYuc3BsaXQoIiwiKTtvcHRpb25fZ3JvdXBfaXRlbXMuZm9yRWFjaChmdW5jdGlvbihDLEUpey0xPT1rJiZDLnRyaW0oKT09ZyYmKGs9dCx0aW1lZF9ncm91cHMuaW5jbHVkZXModikmJmIuY2xhc3NMaXN0LmFkZCgiYWktdGltZWQtcm90YXRpb24iKSl9KX0pfSkpfWVsc2UgaWYoYi5oYXNBdHRyaWJ1dGUoImRhdGEtc2hhcmVzIikpZm9yKGY9SlNPTi5wYXJzZShhdG9iKGIuZGF0YXNldC5zaGFyZXMpKSxhPU1hdGgucm91bmQoMTAwKk1hdGgucmFuZG9tKCkpLGM9MDtjPGYubGVuZ3RoJiYoaz1jLDA+ZltjXXx8IShhPD1mW2NdKSk7YysrKTtlbHNlIGY9Yi5jbGFzc0xpc3QuY29udGFpbnMoImFpLXVuaXF1ZSIpLGE9bmV3IERhdGUsZj8oIm51bWJlciIhPXR5cGVvZiBhaV9yb3RhdGlvbl9zZWVkJiYoYWlfcm90YXRpb25fc2VlZD0oTWF0aC5mbG9vcigxRTMqTWF0aC5yYW5kb20oKSkrYS5nZXRNaWxsaXNlY29uZHMoKSklZS5sZW5ndGgpLGY9YWlfcm90YXRpb25fc2VlZCxmPmUubGVuZ3RoJiYoZiU9ZS5sZW5ndGgpLGE9cGFyc2VJbnQoYi5kYXRhc2V0LmNvdW50ZXIpLGE8PWUubGVuZ3RoPyhrPXBhcnNlSW50KGYrYS0xKSxrPj1lLmxlbmd0aCYmKGstPWUubGVuZ3RoKSk6az1lLmxlbmd0aCk6KGs9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmUubGVuZ3RoKSxhLmdldE1pbGxpc2Vjb25kcygpJTImJihrPWUubGVuZ3RoLWstMSkpO2lmKGIuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yb3RhdGlvbi1zY2hlZHVsaW5nIikpZm9yKGs9LTEsZj0wO2Y8ZS5sZW5ndGg7ZisrKWlmKGE9ZVtmXSxhLmhhc0F0dHJpYnV0ZSgiZGF0YS1zY2hlZHVsaW5nIikpe2M9YjY0ZChhLmRhdGFzZXQuc2NoZWR1bGluZyk7YT0hMDswPT1jLmluZGV4T2YoIl4iKSYmKGE9ITEsYz1jLnN1YnN0cmluZygxKSk7dmFyIHE9Yy5zcGxpdCgiPSIpLG09LTEhPWMuaW5kZXhPZigiJSIpP3FbMF0uc3BsaXQoIiUiKTpbcVswXV07Yz1tWzBdLnRyaW0oKS50b0xvd2VyQ2FzZSgpO209InVuZGVmaW5lZCIhPXR5cGVvZiBtWzFdP21bMV0udHJpbSgpOjA7cT1xWzFdLnJlcGxhY2UoIiAiLCIiKTt2YXIgbj0obmV3IERhdGUpLmdldFRpbWUoKTtuPW5ldyBEYXRlKG4pO3ZhciBsPTA7c3dpdGNoKGMpe2Nhc2UgInMiOmw9bi5nZXRTZWNvbmRzKCk7YnJlYWs7Y2FzZSAiaSI6bD1uLmdldE1pbnV0ZXMoKTticmVhaztjYXNlICJoIjpsPW4uZ2V0SG91cnMoKTticmVhaztjYXNlICJkIjpsPW4uZ2V0RGF0ZSgpO2JyZWFrO2Nhc2UgIm0iOmw9bi5nZXRNb250aCgpO2JyZWFrO2Nhc2UgInkiOmw9bi5nZXRGdWxsWWVhcigpO2JyZWFrO2Nhc2UgInciOmw9bi5nZXREYXkoKSxsPTA9PWw/NjpsLTF9Yz0wIT1tP2wlbTpsO209cS5zcGxpdCgiLCIpO3E9IWE7Zm9yKG49MDtuPG0ubGVuZ3RoO24rKylpZihsPW1bbl0sLTEhPWwuaW5kZXhPZigiLSIpKXtpZihsPWwuc3BsaXQoIi0iKSxjPj1sWzBdJiZjPD1sWzFdKXtxPWE7YnJlYWt9fWVsc2UgaWYoYz09bCl7cT1hO2JyZWFrfWlmKHEpe2s9ZjticmVha319aWYoISgwPmt8fGs+PWUubGVuZ3RoKSl7YT1lW2tdO3ZhciB6PSIiLHc9Yi5jbGFzc0xpc3QuY29udGFpbnMoImFpLXRpbWVkLXJvdGF0aW9uIik7ZS5mb3JFYWNoKChnLHApPT57Zy5oYXNBdHRyaWJ1dGUoImRhdGEtdGltZSIpJiYodz0hMCl9KTtpZihhLmhhc0F0dHJpYnV0ZSgiZGF0YS10aW1lIikpe2Y9YXRvYihhLmRhdGFzZXQudGltZSk7aWYoMD09ZiYmMTxlLmxlbmd0aCl7Yz1rO2Rve2MrKztjPj1lLmxlbmd0aCYmKGM9MCk7bT1lW2NdO2lmKCFtLmhhc0F0dHJpYnV0ZSgiZGF0YS10aW1lIikpe2s9YzthPWVba107Zj0wO2JyZWFrfW09YXRvYihtLmRhdGFzZXQudGltZSl9d2hpbGUoMD09bSYmYyE9ayk7MCE9ZiYmKGs9YyxhPWVba10sZj1hdG9iKGEuZGF0YXNldC50aW1lKSl9aWYoMDxmJiYoYz1rKzEsYz49ZS5sZW5ndGgmJihjPTApLGIuaGFzQXR0cmlidXRlKCJkYXRhLWluZm8iKSkpe209SlNPTi5wYXJzZShhdG9iKGIuZGF0YXNldC5pbmZvKSlbMF07Yi5zZXRBdHRyaWJ1dGUoImRhdGEtbmV4dCIsYyk7dmFyIHg9ImRpdi5haS1yb3RhdGUuYWktIittO2FpX3JvdGF0aW9uX3RyaWdnZXJzLmluY2x1ZGVzKHgpJiYoZD0hMSk7ZCYmKGFpX3JvdGF0aW9uX3RyaWdnZXJzLnB1c2goeCksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoeCk7Zy5mb3JFYWNoKChwLHIpPT57cC5jbGFzc0xpc3QuYWRkKCJhaS10aW1lciIpfSk7YWlfcHJvY2Vzc19yb3RhdGlvbihnKX0sMUUzKmYpKTt6PSIgKCIrZisiIHMpIn19ZWxzZSBhLmhhc0F0dHJpYnV0ZSgiZGF0YS1ncm91cCIpfHxlLmZvckVhY2goKGcscCk9PntwIT1rJiZnLnJlbW92ZSgpfSk7YS5zdHlsZS5kaXNwbGF5PSIiO2Euc3R5bGUudmlzaWJpbGl0eT0iIjthLnN0eWxlLnBvc2l0aW9uPSIiO2Euc3R5bGUud2lkdGg9IiI7YS5zdHlsZS5oZWlnaHQ9IiI7YS5zdHlsZS50b3A9IiI7YS5zdHlsZS5sZWZ0PSIiO2EuY2xhc3NMaXN0LnJlbW92ZSgiYWktcm90YXRlLWhpZGRlbiIpO2EuY2xhc3NMaXN0LnJlbW92ZSgiYWktcm90YXRlLWhpZGRlbi0yIik7Yi5zdHlsZS5wb3NpdGlvbj0iIjtpZihhLmhhc0F0dHJpYnV0ZSgiZGF0YS1jb2RlIikpe2UuZm9yRWFjaCgoZyxwKT0+e2cuaW5uZXJUZXh0PSIifSk7ZD1iNjRkKGEuZGF0YXNldC5jb2RlKTtmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Yz0hMDt0cnl7aD1mLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChkKX1jYXRjaChnKXtjPSExfWEuYXBwZW5kKGgpO0QoKX1mPXBhcnNlSW50KGEuZGF0YXNldC5pbmRleCk7dmFyIHk9YjY0ZChhLmRhdGFzZXQubmFtZSk7ZD1iLmNsb3Nlc3QoIi5haS1kZWJ1Zy1ibG9jayIpO2lmKG51bGwhPWQpe2g9ZC5xdWVyeVNlbGVjdG9yQWxsKCJrYmQuYWktb3B0aW9uLW5hbWUiKTtkPWQucXVlcnlTZWxlY3RvckFsbCgiLmFpLWRlYnVnLWJsb2NrIik7aWYoMCE9ZC5sZW5ndGgpe3ZhciBBPVtdO2QuZm9yRWFjaCgoZyxwKT0+e2cucXVlcnlTZWxlY3RvckFsbCgia2JkLmFpLW9wdGlvbi1uYW1lIikuZm9yRWFjaCgocix0KT0+e0EucHVzaChyKX0pfSk7aD1BcnJheS5mcm9tKGgpO2g9aC5zbGljZSgwLGgubGVuZ3RoLUEubGVuZ3RoKX0wIT1oLmxlbmd0aCYmKHNlcGFyYXRvcj1oWzBdLmhhc0F0dHJpYnV0ZSgiZGF0YS1zZXBhcmF0b3IiKT9oWzBdLmRhdGFzZXQuc2VwYXJhdG9yOiIiLGguZm9yRWFjaCgoZyxwKT0+e2cuaW5uZXJUZXh0PXNlcGFyYXRvcit5K3p9KSl9ZD0hMTthPWIuY2xvc2VzdCgiLmFpLWFkYi1zaG93Iik7bnVsbCE9YSYmYS5oYXNBdHRyaWJ1dGUoImRhdGEtYWktdHJhY2tpbmciKSYmKGg9SlNPTi5wYXJzZShiNjRkKGEuZ2V0QXR0cmlidXRlKCJkYXRhLWFpLXRyYWNraW5nIikpKSwidW5kZWZpbmVkIiE9PXR5cGVvZiBoJiZoLmNvbnN0cnVjdG9yPT09QXJyYXkmJihoWzFdPWYsaFszXT15LGEuc2V0QXR0cmlidXRlKCJkYXRhLWFpLXRyYWNraW5nIixiNjRlKEpTT04uc3RyaW5naWZ5KGgpKSksYS5jbGFzc0xpc3QuYWRkKCJhaS10cmFjayIpLHcmJmFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhLmNsYXNzTGlzdC5hZGQoImFpLW5vLXBhZ2V2aWV3IiksZD0hMCkpO2R8fChkPWIuY2xvc2VzdCgiZGl2W2RhdGEtYWldIiksbnVsbCE9ZCYmZC5oYXNBdHRyaWJ1dGUoImRhdGEtYWkiKSYmKGg9SlNPTi5wYXJzZShiNjRkKGQuZ2V0QXR0cmlidXRlKCJkYXRhLWFpIikpKSwidW5kZWZpbmVkIiE9PXR5cGVvZiBoJiZoLmNvbnN0cnVjdG9yPT09QXJyYXkmJihoWzFdPWYsaFszXT15LGQuc2V0QXR0cmlidXRlKCJkYXRhLWFpIixiNjRlKEpTT04uc3RyaW5naWZ5KGgpKSksZC5jbGFzc0xpc3QuYWRkKCJhaS10cmFjayIpLHcmJmFpX3RyYWNraW5nX2ZpbmlzaGVkJiZkLmNsYXNzTGlzdC5hZGQoImFpLW5vLXBhZ2V2aWV3IikpKSl9fX07YWlfcHJvY2Vzc19yb3RhdGlvbnM9ZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuYWktcm90YXRlIikuZm9yRWFjaCgoYixkKT0+e2FpX3Byb2Nlc3Nfcm90YXRpb24oYil9KX07ZnVuY3Rpb24gQigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRpdi5haS1yb3RhdGUuYWktcm90YXRpb24tZ3JvdXBzIikuZm9yRWFjaCgoYixkKT0+e2IuY2xhc3NMaXN0LmFkZCgiYWktdGltZXIiKTthaV9wcm9jZXNzX3JvdGF0aW9uKGIpfSl9YWlfcHJvY2Vzc19yb3RhdGlvbnNfaW5fZWxlbWVudD1mdW5jdGlvbihiKXtiLnF1ZXJ5U2VsZWN0b3JBbGwoImRpdi5haS1yb3RhdGUiKS5mb3JFYWNoKChkLGUpPT57YWlfcHJvY2Vzc19yb3RhdGlvbihkKX0pfTsoZnVuY3Rpb24oYil7ImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PWRvY3VtZW50LnJlYWR5U3RhdGUmJiFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/YigpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGIpfSkoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19yb3RhdGlvbnMoKX0sMTApfSk7YWlfcHJvY2Vzc19lbGVtZW50c19hY3RpdmU9ITE7ZnVuY3Rpb24gRCgpe2FpX3Byb2Nlc3NfZWxlbWVudHNfYWN0aXZlfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19lbGVtZW50c19hY3RpdmU9ITE7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3Nfcm90YXRpb25zJiZhaV9wcm9jZXNzX3JvdGF0aW9ucygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2xpc3RzJiZhaV9wcm9jZXNzX2xpc3RzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfaXBfYWRkcmVzc2VzJiZhaV9wcm9jZXNzX2lwX2FkZHJlc3NlcygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2ZpbHRlcl9ob29rcyYmYWlfcHJvY2Vzc19maWx0ZXJfaG9va3MoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfYWRiX3Byb2Nlc3NfYmxvY2tzJiZhaV9hZGJfcHJvY2Vzc19ibG9ja3MoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19pbXByZXNzaW9ucyYmMT09YWlfdHJhY2tpbmdfZmluaXNoZWQmJmFpX3Byb2Nlc3NfaW1wcmVzc2lvbnMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfaW5zdGFsbF9jbGlja190cmFja2VycyYmMT09YWlfdHJhY2tpbmdfZmluaXNoZWQmJmFpX2luc3RhbGxfY2xpY2tfdHJhY2tlcnMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfaW5zdGFsbF9jbG9zZV9idXR0b25zJiZhaV9pbnN0YWxsX2Nsb3NlX2J1dHRvbnMoZG9jdW1lbnQpfSw1KTthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZT0hMH19OyFmdW5jdGlvbihhLGIpe2EoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShhLGIpe3JldHVybiBudWxsIT1hJiZudWxsIT1iJiZhLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gYyhhLGIpe3ZhciBjLGQsZT1hLmxlbmd0aDtpZighZXx8IWIpcmV0dXJuITE7Zm9yKGM9Yi50b0xvd2VyQ2FzZSgpLGQ9MDtkPGU7KytkKWlmKGM9PT1hW2RdLnRvTG93ZXJDYXNlKCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gZChhKXtmb3IodmFyIGIgaW4gYSlpLmNhbGwoYSxiKSYmKGFbYl09bmV3IFJlZ0V4cChhW2JdLCJpIikpfWZ1bmN0aW9uIGUoYSl7cmV0dXJuKGF8fCIiKS5zdWJzdHIoMCw1MDApfWZ1bmN0aW9uIGYoYSxiKXt0aGlzLnVhPWUoYSksdGhpcy5fY2FjaGU9e30sdGhpcy5tYXhQaG9uZVdpZHRoPWJ8fDYwMH12YXIgZz17fTtnLm1vYmlsZURldGVjdFJ1bGVzPXtwaG9uZXM6e2lQaG9uZToiXFxiaVBob25lXFxifFxcYmlQb2RcXGIiLEJsYWNrQmVycnk6IkJsYWNrQmVycnl8XFxiQkIxMFxcYnxyaW1bMC05XSt8XFxiKEJCQTEwMHxCQkIxMDB8QkJEMTAwfEJCRTEwMHxCQkYxMDB8U1RIMTAwKVxcYi1bMC05XSsiLFBpeGVsOiI7IFxcYlBpeGVsXFxiIixIVEM6IkhUQ3xIVEMuKihTZW5zYXRpb258RXZvfFZpc2lvbnxFeHBsb3Jlcnw2ODAwfDgxMDB8ODkwMHxBNzI3MnxTNTEwZXxDMTEwZXxMZWdlbmR8RGVzaXJlfFQ4MjgyKXxBUFg1MTVDS1R8UXRlazkwOTB8QVBBOTI5MktUfEhEX21pbml8U2Vuc2F0aW9uLipaNzEwZXxQRzg2MTAwfFo3MTVlfERlc2lyZS4qKEE4MTgxfEhEKXxBRFI2MjAwfEFEUjY0MDBMfEFEUjY0MjV8MDAxSFR8SW5zcGlyZSA0R3xBbmRyb2lkLipcXGJFVk9cXGJ8VC1Nb2JpbGUgRzF8WjUyMG18QW5kcm9pZCBbMC05Ll0rOyBQaXhlbCIsTmV4dXM6Ik5leHVzIE9uZXxOZXh1cyBTfEdhbGF4eS4qTmV4dXN8QW5kcm9pZC4qTmV4dXMuKk1vYmlsZXxOZXh1cyA0fE5leHVzIDV8TmV4dXMgNVh8TmV4dXMgNiIsRGVsbDoiRGVsbFs7XT8gKFN0cmVha3xBZXJvfFZlbnVlfFZlbnVlIFByb3xGbGFzaHxTbW9rZXxNaW5pIDNpWCl8WENEMjh8WENEMzV8XFxiMDAxRExcXGJ8XFxiMTAxRExcXGJ8XFxiR1MwMVxcYiIsTW90b3JvbGE6Ik1vdG9yb2xhfERST0lEWHxEUk9JRCBCSU9OSUN8XFxiRHJvaWRcXGIuKkJ1aWxkfEFuZHJvaWQuKlhvb218SFJJMzl8TU9ULXxBMTI2MHxBMTY4MHxBNTU1fEE4NTN8QTg1NXxBOTUzfEE5NTV8QTk1NnxNb3Rvcm9sYS4qRUxFQ1RSSUZZfE1vdG9yb2xhLippMXxpODY3fGk5NDB8TUIyMDB8TUIzMDB8TUI1MDF8TUI1MDJ8TUI1MDh8TUI1MTF8TUI1MjB8TUI1MjV8TUI1MjZ8TUI2MTF8TUI2MTJ8TUI2MzJ8TUI4MTB8TUI4NTV8TUI4NjB8TUI4NjF8TUI4NjV8TUI4NzB8TUU1MDF8TUU1MDJ8TUU1MTF8TUU1MjV8TUU2MDB8TUU2MzJ8TUU3MjJ8TUU4MTF8TUU4NjB8TUU4NjN8TUU4NjV8TVQ2MjB8TVQ3MTB8TVQ3MTZ8TVQ3MjB8TVQ4MTB8TVQ4NzB8TVQ5MTd8TW90b3JvbGEuKlRJVEFOSVVNfFdYNDM1fFdYNDQ1fFhUMzAwfFhUMzAxfFhUMzExfFhUMzE2fFhUMzE3fFhUMzE5fFhUMzIwfFhUMzkwfFhUNTAyfFhUNTMwfFhUNTMxfFhUNTMyfFhUNTM1fFhUNjAzfFhUNjEwfFhUNjExfFhUNjE1fFhUNjgxfFhUNzAxfFhUNzAyfFhUNzExfFhUNzIwfFhUODAwfFhUODA2fFhUODYwfFhUODYyfFhUODc1fFhUODgyfFhUODgzfFhUODk0fFhUOTAxfFhUOTA3fFhUOTA5fFhUOTEwfFhUOTEyfFhUOTI4fFhUOTI2fFhUOTE1fFhUOTE5fFhUOTI1fFhUMTAyMXxcXGJNb3RvIEVcXGJ8WFQxMDY4fFhUMTA5MnxYVDEwNTIiLFNhbXN1bmc6IlxcYlNhbXN1bmdcXGJ8U00tRzk1MEZ8U00tRzk1NUZ8U00tRzkyNTB8R1QtMTkzMDB8U0dILUkzMzd8QkdULVM1MjMwfEdULUIyMTAwfEdULUIyNzAwfEdULUIyNzEwfEdULUIzMjEwfEdULUIzMzEwfEdULUIzNDEwfEdULUIzNzMwfEdULUIzNzQwfEdULUI1NTEwfEdULUI1NTEyfEdULUI1NzIyfEdULUI2NTIwfEdULUI3MzAwfEdULUI3MzIwfEdULUI3MzMwfEdULUI3MzUwfEdULUI3NTEwfEdULUI3NzIyfEdULUI3ODAwfEdULUMzMDEwfEdULUMzMDExfEdULUMzMDYwfEdULUMzMjAwfEdULUMzMjEyfEdULUMzMjEySXxHVC1DMzI2MnxHVC1DMzIyMnxHVC1DMzMwMHxHVC1DMzMwMEt8R1QtQzMzMDN8R1QtQzMzMDNLfEdULUMzMzEwfEdULUMzMzIyfEdULUMzMzMwfEdULUMzMzUwfEdULUMzNTAwfEdULUMzNTEwfEdULUMzNTMwfEdULUMzNjMwfEdULUMzNzgwfEdULUM1MDEwfEdULUM1MjEyfEdULUM2NjIwfEdULUM2NjI1fEdULUM2NzEyfEdULUUxMDUwfEdULUUxMDcwfEdULUUxMDc1fEdULUUxMDgwfEdULUUxMDgxfEdULUUxMDg1fEdULUUxMDg3fEdULUUxMTAwfEdULUUxMTA3fEdULUUxMTEwfEdULUUxMTIwfEdULUUxMTI1fEdULUUxMTMwfEdULUUxMTYwfEdULUUxMTcwfEdULUUxMTc1fEdULUUxMTgwfEdULUUxMTgyfEdULUUxMjAwfEdULUUxMjEwfEdULUUxMjI1fEdULUUxMjMwfEdULUUxMzkwfEdULUUyMTAwfEdULUUyMTIwfEdULUUyMTIxfEdULUUyMTUyfEdULUUyMjIwfEdULUUyMjIyfEdULUUyMjMwfEdULUUyMjMyfEdULUUyMjUwfEdULUUyMzcwfEdULUUyNTUwfEdULUUyNjUyfEdULUUzMjEwfEdULUUzMjEzfEdULUk1NTAwfEdULUk1NTAzfEdULUk1NzAwfEdULUk1ODAwfEdULUk1ODAxfEdULUk2NDEwfEdULUk2NDIwfEdULUk3MTEwfEdULUk3NDEwfEdULUk3NTAwfEdULUk4MDAwfEdULUk4MTUwfEdULUk4MTYwfEdULUk4MTkwfEdULUk4MzIwfEdULUk4MzMwfEdULUk4MzUwfEdULUk4NTMwfEdULUk4NzAwfEdULUk4NzAzfEdULUk4OTEwfEdULUk5MDAwfEdULUk5MDAxfEdULUk5MDAzfEdULUk5MDEwfEdULUk5MDIwfEdULUk5MDIzfEdULUk5MDcwfEdULUk5MDgyfEdULUk5MTAwfEdULUk5MTAzfEdULUk5MjIwfEdULUk5MjUwfEdULUk5MzAwfEdULUk5MzA1fEdULUk5NTAwfEdULUk5NTA1fEdULU0zNTEwfEdULU01NjUwfEdULU03NTAwfEdULU03NjAwfEdULU03NjAzfEdULU04ODAwfEdULU04OTEwfEdULU43MDAwfEdULVMzMTEwfEdULVMzMzEwfEdULVMzMzUwfEdULVMzMzUzfEdULVMzMzcwfEdULVMzNjUwfEdULVMzNjUzfEdULVMzNzcwfEdULVMzODUwfEdULVM1MjEwfEdULVM1MjIwfEdULVM1MjI5fEdULVM1MjMwfEdULVM1MjMzfEdULVM1MjUwfEdULVM1MjUzfEdULVM1MjYwfEdULVM1MjYzfEdULVM1MjcwfEdULVM1MzAwfEdULVM1MzMwfEdULVM1MzUwfEdULVM1MzYwfEdULVM1MzYzfEdULVM1MzY5fEdULVM1MzgwfEdULVM1MzgwRHxHVC1TNTU2MHxHVC1TNTU3MHxHVC1TNTYwMHxHVC1TNTYwM3xHVC1TNTYxMHxHVC1TNTYyMHxHVC1TNTY2MHxHVC1TNTY3MHxHVC1TNTY5MHxHVC1TNTc1MHxHVC1TNTc4MHxHVC1TNTgzMHxHVC1TNTgzOXxHVC1TNjEwMnxHVC1TNjUwMHxHVC1TNzA3MHxHVC1TNzIwMHxHVC1TNzIyMHxHVC1TNzIzMHxHVC1TNzIzM3xHVC1TNzI1MHxHVC1TNzUwMHxHVC1TNzUzMHxHVC1TNzU1MHxHVC1TNzU2MnxHVC1TNzcxMHxHVC1TODAwMHxHVC1TODAwM3xHVC1TODUwMHxHVC1TODUzMHxHVC1TODYwMHxTQ0gtQTMxMHxTQ0gtQTUzMHxTQ0gtQTU3MHxTQ0gtQTYxMHxTQ0gtQTYzMHxTQ0gtQTY1MHxTQ0gtQTc5MHxTQ0gtQTc5NXxTQ0gtQTg1MHxTQ0gtQTg3MHxTQ0gtQTg5MHxTQ0gtQTkzMHxTQ0gtQTk1MHxTQ0gtQTk3MHxTQ0gtQTk5MHxTQ0gtSTEwMHxTQ0gtSTExMHxTQ0gtSTQwMHxTQ0gtSTQwNXxTQ0gtSTUwMHxTQ0gtSTUxMHxTQ0gtSTUxNXxTQ0gtSTYwMHxTQ0gtSTczMHxTQ0gtSTc2MHxTQ0gtSTc3MHxTQ0gtSTgzMHxTQ0gtSTkxMHxTQ0gtSTkyMHxTQ0gtSTk1OXxTQ0gtTEMxMXxTQ0gtTjE1MHxTQ0gtTjMwMHxTQ0gtUjEwMHxTQ0gtUjMwMHxTQ0gtUjM1MXxTQ0gtUjQwMHxTQ0gtUjQxMHxTQ0gtVDMwMHxTQ0gtVTMxMHxTQ0gtVTMyMHxTQ0gtVTM1MHxTQ0gtVTM2MHxTQ0gtVTM2NXxTQ0gtVTM3MHxTQ0gtVTM4MHxTQ0gtVTQxMHxTQ0gtVTQzMHxTQ0gtVTQ1MHxTQ0gtVTQ2MHxTQ0gtVTQ3MHxTQ0gtVTQ5MHxTQ0gtVTU0MHxTQ0gtVTU1MHxTQ0gtVTYyMHxTQ0gtVTY0MHxTQ0gtVTY1MHxTQ0gtVTY2MHxTQ0gtVTcwMHxTQ0gtVTc0MHxTQ0gtVTc1MHxTQ0gtVTgxMHxTQ0gtVTgyMHxTQ0gtVTkwMHxTQ0gtVTk0MHxTQ0gtVTk2MHxTQ1MtMjZVQ3xTR0gtQTEwN3xTR0gtQTExN3xTR0gtQTEyN3xTR0gtQTEzN3xTR0gtQTE1N3xTR0gtQTE2N3xTR0gtQTE3N3xTR0gtQTE4N3xTR0gtQTE5N3xTR0gtQTIyN3xTR0gtQTIzN3xTR0gtQTI1N3xTR0gtQTQzN3xTR0gtQTUxN3xTR0gtQTU5N3xTR0gtQTYzN3xTR0gtQTY1N3xTR0gtQTY2N3xTR0gtQTY4N3xTR0gtQTY5N3xTR0gtQTcwN3xTR0gtQTcxN3xTR0gtQTcyN3xTR0gtQTczN3xTR0gtQTc0N3xTR0gtQTc2N3xTR0gtQTc3N3xTR0gtQTc5N3xTR0gtQTgxN3xTR0gtQTgyN3xTR0gtQTgzN3xTR0gtQTg0N3xTR0gtQTg2N3xTR0gtQTg3N3xTR0gtQTg4N3xTR0gtQTg5N3xTR0gtQTkyN3xTR0gtQjEwMHxTR0gtQjEzMHxTR0gtQjIwMHxTR0gtQjIyMHxTR0gtQzEwMHxTR0gtQzExMHxTR0gtQzEyMHxTR0gtQzEzMHxTR0gtQzE0MHxTR0gtQzE2MHxTR0gtQzE3MHxTR0gtQzE4MHxTR0gtQzIwMHxTR0gtQzIwN3xTR0gtQzIxMHxTR0gtQzIyNXxTR0gtQzIzMHxTR0gtQzQxN3xTR0gtQzQ1MHxTR0gtRDMwN3xTR0gtRDM0N3xTR0gtRDM1N3xTR0gtRDQwN3xTR0gtRDQxNXxTR0gtRDc4MHxTR0gtRDgwN3xTR0gtRDk4MHxTR0gtRTEwNXxTR0gtRTIwMHxTR0gtRTMxNXxTR0gtRTMxNnxTR0gtRTMxN3xTR0gtRTMzNXxTR0gtRTU5MHxTR0gtRTYzNXxTR0gtRTcxNXxTR0gtRTg5MHxTR0gtRjMwMHxTR0gtRjQ4MHxTR0gtSTIwMHxTR0gtSTMwMHxTR0gtSTMyMHxTR0gtSTU1MHxTR0gtSTU3N3xTR0gtSTYwMHxTR0gtSTYwN3xTR0gtSTYxN3xTR0gtSTYyN3xTR0gtSTYzN3xTR0gtSTY3N3xTR0gtSTcwMHxTR0gtSTcxN3xTR0gtSTcyN3xTR0gtaTc0N018U0dILUk3Nzd8U0dILUk3ODB8U0dILUk4Mjd8U0dILUk4NDd8U0dILUk4NTd8U0dILUk4OTZ8U0dILUk4OTd8U0dILUk5MDB8U0dILUk5MDd8U0dILUk5MTd8U0dILUk5Mjd8U0dILUk5Mzd8U0dILUk5OTd8U0dILUoxNTB8U0dILUoyMDB8U0dILUwxNzB8U0dILUw3MDB8U0dILU0xMTB8U0dILU0xNTB8U0dILU0yMDB8U0dILU4xMDV8U0dILU41MDB8U0dILU42MDB8U0dILU42MjB8U0dILU42MjV8U0dILU43MDB8U0dILU43MTB8U0dILVAxMDd8U0dILVAyMDd8U0dILVAzMDB8U0dILVAzMTB8U0dILVA1MjB8U0dILVA3MzV8U0dILVA3Nzd8U0dILVExMDV8U0dILVIyMTB8U0dILVIyMjB8U0dILVIyMjV8U0dILVMxMDV8U0dILVMzMDd8U0dILVQxMDl8U0dILVQxMTl8U0dILVQxMzl8U0dILVQyMDl8U0dILVQyMTl8U0dILVQyMjl8U0dILVQyMzl8U0dILVQyNDl8U0dILVQyNTl8U0dILVQzMDl8U0dILVQzMTl8U0dILVQzMjl8U0dILVQzMzl8U0dILVQzNDl8U0dILVQzNTl8U0dILVQzNjl8U0dILVQzNzl8U0dILVQ0MDl8U0dILVQ0Mjl8U0dILVQ0Mzl8U0dILVQ0NTl8U0dILVQ0Njl8U0dILVQ0Nzl8U0dILVQ0OTl8U0dILVQ1MDl8U0dILVQ1MTl8U0dILVQ1Mzl8U0dILVQ1NTl8U0dILVQ1ODl8U0dILVQ2MDl8U0dILVQ2MTl8U0dILVQ2Mjl8U0dILVQ2Mzl8U0dILVQ2NTl8U0dILVQ2Njl8U0dILVQ2Nzl8U0dILVQ3MDl8U0dILVQ3MTl8U0dILVQ3Mjl8U0dILVQ3Mzl8U0dILVQ3NDZ8U0dILVQ3NDl8U0dILVQ3NTl8U0dILVQ3Njl8U0dILVQ4MDl8U0dILVQ4MTl8U0dILVQ4Mzl8U0dILVQ5MTl8U0dILVQ5Mjl8U0dILVQ5Mzl8U0dILVQ5NTl8U0dILVQ5ODl8U0dILVUxMDB8U0dILVUyMDB8U0dILVU4MDB8U0dILVYyMDV8U0dILVYyMDZ8U0dILVgxMDB8U0dILVgxMDV8U0dILVgxMjB8U0dILVgxNDB8U0dILVg0MjZ8U0dILVg0Mjd8U0dILVg0NzV8U0dILVg0OTV8U0dILVg0OTd8U0dILVg1MDd8U0dILVg2MDB8U0dILVg2MTB8U0dILVg2MjB8U0dILVg2MzB8U0dILVg3MDB8U0dILVg4MjB8U0dILVg4OTB8U0dILVoxMzB8U0dILVoxNTB8U0dILVoxNzB8U0dILVpYMTB8U0dILVpYMjB8U0hXLU0xMTB8U1BILUExMjB8U1BILUE0MDB8U1BILUE0MjB8U1BILUE0NjB8U1BILUE1MDB8U1BILUE1NjB8U1BILUE2MDB8U1BILUE2MjB8U1BILUE2NjB8U1BILUE3MDB8U1BILUE3NDB8U1BILUE3NjB8U1BILUE3OTB8U1BILUE4MDB8U1BILUE4MjB8U1BILUE4NDB8U1BILUE4ODB8U1BILUE5MDB8U1BILUE5NDB8U1BILUE5NjB8U1BILUQ2MDB8U1BILUQ3MDB8U1BILUQ3MTB8U1BILUQ3MjB8U1BILUkzMDB8U1BILUkzMjV8U1BILUkzMzB8U1BILUkzNTB8U1BILUk1MDB8U1BILUk2MDB8U1BILUk3MDB8U1BILUw3MDB8U1BILU0xMDB8U1BILU0yMjB8U1BILU0yNDB8U1BILU0zMDB8U1BILU0zMDV8U1BILU0zMjB8U1BILU0zMzB8U1BILU0zNTB8U1BILU0zNjB8U1BILU0zNzB8U1BILU0zODB8U1BILU01MTB8U1BILU01NDB8U1BILU01NTB8U1BILU01NjB8U1BILU01NzB8U1BILU01ODB8U1BILU02MTB8U1BILU02MjB8U1BILU02MzB8U1BILU04MDB8U1BILU04MTB8U1BILU04NTB8U1BILU05MDB8U1BILU05MTB8U1BILU05MjB8U1BILU05MzB8U1BILU4xMDB8U1BILU4yMDB8U1BILU4yNDB8U1BILU4zMDB8U1BILU40MDB8U1BILVo0MDB8U1dDLUUxMDB8U0NILWk5MDl8R1QtTjcxMDB8R1QtTjcxMDV8U0NILUk1MzV8U00tTjkwMEF8U0dILUkzMTd8U0dILVQ5OTlMfEdULVM1MzYwQnxHVC1JODI2MnxHVC1TNjgwMnxHVC1TNjMxMnxHVC1TNjMxMHxHVC1TNTMxMnxHVC1TNTMxMHxHVC1JOTEwNXxHVC1JODUxMHxHVC1TNjc5ME58U00tRzcxMDV8U00tTjkwMDV8R1QtUzUzMDF8R1QtSTkyOTV8R1QtSTkxOTV8U00tQzEwMXxHVC1TNzM5MnxHVC1TNzU2MHxHVC1CNzYxMHxHVC1JNTUxMHxHVC1TNzU4MnxHVC1TNzUzMEV8R1QtSTg3NTB8U00tRzkwMDZWfFNNLUc5MDA4VnxTTS1HOTAwOUR8U00tRzkwMEF8U00tRzkwMER8U00tRzkwMEZ8U00tRzkwMEh8U00tRzkwMEl8U00tRzkwMEp8U00tRzkwMEt8U00tRzkwMEx8U00tRzkwME18U00tRzkwMFB8U00tRzkwMFI0fFNNLUc5MDBTfFNNLUc5MDBUfFNNLUc5MDBWfFNNLUc5MDBXOHxTSFYtRTE2MEt8U0NILVA3MDl8U0NILVA3Mjl8U00tVDI1NTh8R1QtSTkyMDV8U00tRzkzNTB8U00tSjEyMEZ8U00tRzkyMEZ8U00tRzkyMFZ8U00tRzkzMEZ8U00tTjkxMEN8U00tQTMxMEZ8R1QtSTkxOTB8U00tSjUwMEZOfFNNLUc5MDNGfFNNLUozMzBGfFNNLUc2MTBGfFNNLUc5ODFCfFNNLUc4OTJBfFNNLUE1MzBGIixMRzoiXFxiTEdcXGI7fExHWy0gXT8oQzgwMHxDOTAwfEU0MDB8RTYxMHxFOTAwfEUtOTAwfEYxNjB8RjE4MEt8RjE4MEx8RjE4MFN8NzMwfDg1NXxMMTYwfExTNzQwfExTODQwfExTOTcwfExVNjIwMHxNUzY5MHxNUzY5NXxNUzc3MHxNUzg0MHxNUzg3MHxNUzkxMHxQNTAwfFA3MDB8UDcwNXxWTTY5NnxBUzY4MHxBUzY5NXxBWDg0MHxDNzI5fEU5NzB8R1M1MDV8MjcyfEMzOTV8RTczOUJLfEU5NjB8TDU1Q3xMNzVDfExTNjk2fExTODYwfFA3NjlCS3xQMzUwfFA1MDB8UDUwOXxQODcwfFVOMjcyfFVTNzMwfFZTODQwfFZTOTUwfExOMjcyfExONTEwfExTNjcwfExTODU1fExXNjkwfE1OMjcwfE1ONTEwfFA1MDl8UDc2OXxQOTMwfFVOMjAwfFVOMjcwfFVONTEwfFVONjEwfFVTNjcwfFVTNzQwfFVTNzYwfFVYMjY1fFVYODQwfFZOMjcxfFZONTMwfFZTNjYwfFZTNzAwfFZTNzQwfFZTNzUwfFZTOTEwfFZTOTIwfFZTOTMwfFZYOTIwMHxWWDExMDAwfEFYODQwQXxMVzc3MHxQNTA2fFA5MjV8UDk5OXxFNjEyfEQ5NTV8RDgwMnxNUzMyM3xNMjU3KXxMTS1HNzEwIixTb255OiJTb255U1R8U29ueUxUfFNvbnlFcmljc3NvbnxTb255RXJpY3Nzb25MVDE1aXZ8TFQxOGl8RTEwaXxMVDI4aHxMVDI2d3xTb255RXJpY3Nzb25NVDI3aXxDNTMwM3xDNjkwMnxDNjkwM3xDNjkwNnxDNjk0M3xEMjUzM3xTT1YzNHw2MDFTT3xGODMzMiIsQXN1czoiQXN1cy4qR2FsYXh5fFBhZEZvbmUuKk1vYmlsZSIsWGlhb21pOiJeKD8hLipcXGJ4MTFcXGIpLip4aWFvbWkuKiR8UE9DT1BIT05FIEYxfE1JIDh8UmVkbWkgTm90ZSA5U3xSZWRtaSBOb3RlIDVBIFByaW1lfE4yRzQ3SHxNMjAwMUoyR3xNMjAwMUoySXxNMTgwNUUxMEF8TTIwMDRKMTFHfE0xOTAyRjFHfE0yMDAySjlHfE0yMDA0SjE5R3xNMjAwM0o2QTFHIixOb2tpYUx1bWlhOiJMdW1pYSBbMC05XXszLDR9IixNaWNyb21heDoiTWljcm9tYXguKlxcYihBMjEwfEE5MnxBODh8QTcyfEExMTF8QTExMFF8QTExNXxBMTE2fEExMTB8QTkwU3xBMjZ8QTUxfEEzNXxBNTR8QTI1fEEyN3xBODl8QTY4fEE2NXxBNTd8QTkwKVxcYiIsUGFsbToiUGFsbVNvdXJjZXxQYWxtIixWZXJ0dToiVmVydHV8VmVydHUuKkx0ZHxWZXJ0dS4qQXNjZW50fFZlcnR1LipBeXh0YXxWZXJ0dS4qQ29uc3RlbGxhdGlvbihGfFF1ZXN0KT98VmVydHUuKk1vbmlrYXxWZXJ0dS4qU2lnbmF0dXJlIixQYW50ZWNoOiJQQU5URUNIfElNLUE4NTBTfElNLUE4NDBTfElNLUE4MzBMfElNLUE4MzBLfElNLUE4MzBTfElNLUE4MjBMfElNLUE4MTBLfElNLUE4MTBTfElNLUE4MDBTfElNLVQxMDBLfElNLUE3MjVMfElNLUE3ODBMfElNLUE3NzVDfElNLUE3NzBLfElNLUE3NjBTfElNLUE3NTBLfElNLUE3NDBTfElNLUE3MzBTfElNLUE3MjBMfElNLUE3MTBLfElNLUE2OTBMfElNLUE2OTBTfElNLUE2NTBTfElNLUE2MzBLfElNLUE2MDBTfFZFR0EgUFRMMjF8UFQwMDN8UDgwMTB8QURSOTEwTHxQNjAzMHxQNjAyMHxQOTA3MHxQNDEwMHxQOTA2MHxQNTAwMHxDRE04OTkyfFRYVDgwNDV8QURSODk5NXxJUzExUFR8UDIwMzB8UDYwMTB8UDgwMDB8UFQwMDJ8SVMwNnxDRE04OTk5fFA5MDUwfFBUMDAxfFRYVDgwNDB8UDIwMjB8UDkwMjB8UDIwMDB8UDcwNDB8UDcwMDB8Qzc5MCIsRmx5OiJJUTIzMHxJUTQ0NHxJUTQ1MHxJUTQ0MHxJUTQ0MnxJUTQ0MXxJUTI0NXxJUTI1NnxJUTIzNnxJUTI1NXxJUTIzNXxJUTI0NXxJUTI3NXxJUTI0MHxJUTI4NXxJUTI4MHxJUTI3MHxJUTI2MHxJUTI1MCIsV2lrbzoiS0lURSA0R3xISUdIV0FZfEdFVEFXQVl8U1RBSVJXQVl8REFSS1NJREV8REFSS0ZVTEx8REFSS05JR0hUfERBUktNT09OfFNMSURFfFdBWCA0R3xSQUlOQk9XfEJMT09NfFNVTlNFVHxHT0EoPyFubmEpfExFTk5ZfEJBUlJZfElHR1l8T1paWXxDSU5LIEZJVkV8Q0lOSyBQRUFYfENJTksgUEVBWCAyfENJTksgU0xJTXxDSU5LIFNMSU0gMnxDSU5LICt8Q0lOSyBLSU5HfENJTksgUEVBWHxDSU5LIFNMSU18U1VCTElNIixpTW9iaWxlOiJpLW1vYmlsZSAoSVF8aS1TVFlMRXxpZGVhfFpBQXxIaXR6KSIsU2ltVmFsbGV5OiJcXGIoU1AtODB8WFQtOTMwfFNYLTM0MHxYVC05MzB8U1gtMzEwfFNQLTM2MHxTUDYwfFNQVC04MDB8U1AtMTIwfFNQVC04MDB8U1AtMTQwfFNQWC01fFNQWC04fFNQLTEwMHxTUFgtOHxTUFgtMTIpXFxiIixXb2xmZ2FuZzoiQVQtQjI0RHxBVC1BUzUwSER8QVQtQVM0MFd8QVQtQVM1NUhEfEFULUFTNDVxMnxBVC1CMjZEfEFULUFTNTBRIixBbGNhdGVsOiJBbGNhdGVsIixOaW50ZW5kbzoiTmludGVuZG8gKDNEU3xTd2l0Y2gpIixBbW9pOiJBbW9pIixJTlE6IklOUSIsT25lUGx1czoiT05FUExVUyIsR2VuZXJpY1Bob25lOiJUYXBhdGFsa3xQREE7fFNBR0VNfFxcYm1tcFxcYnxwb2NrZXR8XFxicHNwXFxifHN5bWJpYW58U21hcnRwaG9uZXxzbWFydGZvbnx0cmVvfHVwLmJyb3dzZXJ8dXAubGlua3x2b2RhZm9uZXxcXGJ3YXBcXGJ8bm9raWF8U2VyaWVzNDB8U2VyaWVzNjB8UzYwfFNvbnlFcmljc3NvbnxOOTAwfE1BVUkuKldBUC4qQnJvd3NlciJ9LHRhYmxldHM6e2lQYWQ6ImlQYWR8aVBhZC4qTW9iaWxlIixOZXh1c1RhYmxldDoiQW5kcm9pZC4qTmV4dXNbXFxzXSsoN3w5fDEwKSIsR29vZ2xlVGFibGV0OiJBbmRyb2lkLipQaXhlbCBDIixTYW1zdW5nVGFibGV0OiJTQU1TVU5HLipUYWJsZXR8R2FsYXh5LipUYWJ8U0MtMDFDfEdULVAxMDAwfEdULVAxMDAzfEdULVAxMDEwfEdULVAzMTA1fEdULVA2MjEwfEdULVA2ODAwfEdULVA2ODEwfEdULVA3MTAwfEdULVA3MzAwfEdULVA3MzEwfEdULVA3NTAwfEdULVA3NTEwfFNDSC1JODAwfFNDSC1JODE1fFNDSC1JOTA1fFNHSC1JOTU3fFNHSC1JOTg3fFNHSC1UODQ5fFNHSC1UODU5fFNHSC1UODY5fFNQSC1QMTAwfEdULVAzMTAwfEdULVAzMTA4fEdULVAzMTEwfEdULVA1MTAwfEdULVA1MTEwfEdULVA2MjAwfEdULVA3MzIwfEdULVA3NTExfEdULU44MDAwfEdULVA4NTEwfFNHSC1JNDk3fFNQSC1QNTAwfFNHSC1UNzc5fFNDSC1JNzA1fFNDSC1JOTE1fEdULU44MDEzfEdULVAzMTEzfEdULVA1MTEzfEdULVA4MTEwfEdULU44MDEwfEdULU44MDA1fEdULU44MDIwfEdULVAxMDEzfEdULVA2MjAxfEdULVA3NTAxfEdULU41MTAwfEdULU41MTA1fEdULU41MTEwfFNIVi1FMTQwS3xTSFYtRTE0MEx8U0hWLUUxNDBTfFNIVi1FMTUwU3xTSFYtRTIzMEt8U0hWLUUyMzBMfFNIVi1FMjMwU3xTSFctTTE4MEt8U0hXLU0xODBMfFNIVy1NMTgwU3xTSFctTTE4MFd8U0hXLU0zMDBXfFNIVy1NMzA1V3xTSFctTTM4MEt8U0hXLU0zODBTfFNIVy1NMzgwV3xTSFctTTQzMFd8U0hXLU00ODBLfFNIVy1NNDgwU3xTSFctTTQ4MFd8U0hXLU00ODVXfFNIVy1NNDg2V3xTSFctTTUwMFd8R1QtSTkyMjh8U0NILVA3Mzl8U0NILUk5MjV8R1QtSTkyMDB8R1QtUDUyMDB8R1QtUDUyMTB8R1QtUDUyMTBYfFNNLVQzMTF8U00tVDMxMHxTTS1UMzEwWHxTTS1UMjEwfFNNLVQyMTBSfFNNLVQyMTF8U00tUDYwMHxTTS1QNjAxfFNNLVA2MDV8U00tUDkwMHxTTS1QOTAxfFNNLVQyMTd8U00tVDIxN0F8U00tVDIxN1N8U00tUDYwMDB8U00tVDMxMDB8U0dILUk0Njd8WEU1MDB8U00tVDExMHxHVC1QNTIyMHxHVC1JOTIwMFh8R1QtTjUxMTBYfEdULU41MTIwfFNNLVA5MDV8U00tVDExMXxTTS1UMjEwNXxTTS1UMzE1fFNNLVQzMjB8U00tVDMyMFh8U00tVDMyMXxTTS1UNTIwfFNNLVQ1MjV8U00tVDUzME5VfFNNLVQyMzBOVXxTTS1UMzMwTlV8U00tVDkwMHxYRTUwMFQxQ3xTTS1QNjA1VnxTTS1QOTA1VnxTTS1UMzM3VnxTTS1UNTM3VnxTTS1UNzA3VnxTTS1UODA3VnxTTS1QNjAwWHxTTS1QOTAwWHxTTS1UMjEwWHxTTS1UMjMwfFNNLVQyMzBYfFNNLVQzMjV8R1QtUDc1MDN8U00tVDUzMXxTTS1UMzMwfFNNLVQ1MzB8U00tVDcwNXxTTS1UNzA1Q3xTTS1UNTM1fFNNLVQzMzF8U00tVDgwMHxTTS1UNzAwfFNNLVQ1Mzd8U00tVDgwN3xTTS1QOTA3QXxTTS1UMzM3QXxTTS1UNTM3QXxTTS1UNzA3QXxTTS1UODA3QXxTTS1UMjM3fFNNLVQ4MDdQfFNNLVA2MDdUfFNNLVQyMTdUfFNNLVQzMzdUfFNNLVQ4MDdUfFNNLVQxMTZOUXxTTS1UMTE2QlV8U00tUDU1MHxTTS1UMzUwfFNNLVQ1NTB8U00tVDkwMDB8U00tUDkwMDB8U00tVDcwNVl8U00tVDgwNXxHVC1QMzExM3xTTS1UNzEwfFNNLVQ4MTB8U00tVDgxNXxTTS1UMzYwfFNNLVQ1MzN8U00tVDExM3xTTS1UMzM1fFNNLVQ3MTV8U00tVDU2MHxTTS1UNjcwfFNNLVQ2Nzd8U00tVDM3N3xTTS1UNTY3fFNNLVQzNTdUfFNNLVQ1NTV8U00tVDU2MXxTTS1UNzEzfFNNLVQ3MTl8U00tVDgxM3xTTS1UODE5fFNNLVQ1ODB8U00tVDM1NVk/fFNNLVQyODB8U00tVDgxN0F8U00tVDgyMHxTTS1XNzAwfFNNLVA1ODB8U00tVDU4N3xTTS1QMzUwfFNNLVA1NTVNfFNNLVAzNTVNfFNNLVQxMTNOVXxTTS1UODE1WXxTTS1UNTg1fFNNLVQyODV8U00tVDgyNXxTTS1XNzA4fFNNLVQ4MzV8U00tVDgzMHxTTS1UODM3VnxTTS1UNzIwfFNNLVQ1MTB8U00tVDM4N1Z8U00tUDYxMHxTTS1UMjkwfFNNLVQ1MTV8U00tVDU5MHxTTS1UNTk1fFNNLVQ3MjV8U00tVDgxN1B8U00tUDU4NU4wfFNNLVQzOTV8U00tVDI5NXxTTS1UODY1fFNNLVA2MTBOfFNNLVA2MTV8U00tVDk3MHxTTS1UMzgwfFNNLVQ1OTUwfFNNLVQ5MDV8U00tVDIzMXxTTS1UNTAwfFNNLVQ4NjAiLEtpbmRsZToiS2luZGxlfFNpbGsuKkFjY2VsZXJhdGVkfEFuZHJvaWQuKlxcYihLRk9UfEtGVFR8S0ZKV0l8S0ZKV0F8S0ZPVEV8S0ZTT1dJfEtGVEhXSXxLRlRIV0F8S0ZBUFdJfEtGQVBXQXxXRkpXQUV8S0ZTQVdBfEtGU0FXSXxLRkFTV0l8S0ZBUldJfEtGRk9XSXxLRkdJV0l8S0ZNRVdJKVxcYnxBbmRyb2lkLipTaWxrL1swLTkuXSsgbGlrZSBDaHJvbWUvWzAtOS5dKyAoPyFNb2JpbGUpIixTdXJmYWNlVGFibGV0OiJXaW5kb3dzIE5UIFswLTkuXSs7IEFSTTsuKihUYWJsZXR8QVJNQkpTKSIsSFBUYWJsZXQ6IkhQIFNsYXRlICg3fDh8MTApfEhQIEVsaXRlUGFkIDkwMHxocC10YWJsZXR8RWxpdGVCb29rLipUb3VjaHxIUCA4fFNsYXRlIDIxfEhQIFNsYXRlQm9vayAxMCIsQXN1c1RhYmxldDoiXi4qUGFkRm9uZSgoPyFNb2JpbGUpLikqJHxUcmFuc2Zvcm1lcnxURjEwMXxURjEwMUd8VEYzMDBUfFRGMzAwVEd8VEYzMDBUTHxURjcwMFR8VEY3MDBLTHxURjcwMVR8VEY4MTBDfE1FMTcxfE1FMzAxVHxNRTMwMkN8TUUzNzFNR3xNRTM3MFR8TUUzNzJNR3xNRTE3MlZ8TUUxNzNYfE1FNDAwQ3xTbGlkZXIgU0wxMDF8XFxiSzAwRlxcYnxcXGJLMDBDXFxifFxcYkswMEVcXGJ8XFxiSzAwTFxcYnxUWDIwMUxBfE1FMTc2Q3xNRTEwMkF8XFxiTTgwVEFcXGJ8TUUzNzJDTHxNRTU2MENHfE1FMzcyQ0d8TUUzMDJLTHwgSzAxMCB8IEswMTEgfCBLMDE3IHwgSzAxRSB8TUU1NzJDfE1FMTAzS3xNRTE3MEN8TUUxNzFDfFxcYk1FNzBDXFxifE1FNTgxQ3xNRTU4MUNMfE1FODUxMEN8TUUxODFDfFAwMVl8UE8xTUF8UDAxWnxcXGJQMDI3XFxifFxcYlAwMjRcXGJ8XFxiUDAwQ1xcYiIsQmxhY2tCZXJyeVRhYmxldDoiUGxheUJvb2t8UklNIFRhYmxldCIsSFRDdGFibGV0OiJIVENfRmx5ZXJfUDUxMnxIVEMgRmx5ZXJ8SFRDIEpldHN0cmVhbXxIVEMtUDcxNWF8SFRDIEVWTyBWaWV3IDRHfFBHNDEyMDB8UEcwOTQxMCIsTW90b3JvbGFUYWJsZXQ6Inhvb218c2hvbGVzdHxNWjYxNXxNWjYwNXxNWjUwNXxNWjYwMXxNWjYwMnxNWjYwM3xNWjYwNHxNWjYwNnxNWjYwN3xNWjYwOHxNWjYwOXxNWjYxNXxNWjYxNnxNWjYxNyIsTm9va1RhYmxldDoiQW5kcm9pZC4qTm9va3xOb29rQ29sb3J8bm9vayBicm93c2VyfEJOUlYyMDB8Qk5SVjIwMEF8Qk5UVjI1MHxCTlRWMjUwQXxCTlRWNDAwfEJOVFY2MDB8TG9naWNQRCBab29tMiIsQWNlclRhYmxldDoiQW5kcm9pZC4qOyBcXGIoQTEwMHxBMTAxfEExMTB8QTIwMHxBMjEwfEEyMTF8QTUwMHxBNTAxfEE1MTB8QTUxMXxBNzAwfEE3MDF8VzUwMHxXNTAwUHxXNTAxfFc1MDFQfFc1MTB8VzUxMXxXNzAwfEcxMDB8RzEwMFd8QjEtQTcxfEIxLTcxMHxCMS03MTF8QTEtODEwfEExLTgxMXxBMS04MzApXFxifFczLTgxMHxcXGJBMy1BMTBcXGJ8XFxiQTMtQTExXFxifFxcYkEzLUEyMFxcYnxcXGJBMy1BMzB8QTMtQTQwIixUb3NoaWJhVGFibGV0OiJBbmRyb2lkLiooQVQxMDB8QVQxMDV8QVQyMDB8QVQyMDV8QVQyNzB8QVQyNzV8QVQzMDB8QVQzMDV8QVQxUzV8QVQ1MDB8QVQ1NzB8QVQ3MDB8QVQ4MzApfFRPU0hJQkEuKkZPTElPIixMR1RhYmxldDoiXFxiTC0wNkN8TEctVjkwOXxMRy1WOTAwfExHLVY3MDB8TEctVjUxMHxMRy1WNTAwfExHLVY0MTB8TEctVjQwMHxMRy1WSzgxMFxcYiIsRnVqaXRzdVRhYmxldDoiQW5kcm9pZC4qXFxiKEYtMDFEfEYtMDJGfEYtMDVFfEYtMTBEfE01MzJ8UTU3MilcXGIiLFByZXN0aWdpb1RhYmxldDoiUE1QMzE3MEJ8UE1QMzI3MEJ8UE1QMzQ3MEJ8UE1QNzE3MEJ8UE1QMzM3MEJ8UE1QMzU3MEN8UE1QNTg3MEN8UE1QMzY3MEJ8UE1QNTU3MEN8UE1QNTc3MER8UE1QMzk3MEJ8UE1QMzg3MEN8UE1QNTU4MEN8UE1QNTg4MER8UE1QNTc4MER8UE1QNTU4OEN8UE1QNzI4MEN8UE1QNzI4MEMzR3xQTVA3MjgwfFBNUDc4ODBEfFBNUDU1OTdEfFBNUDU1OTd8UE1QNzEwMER8UEVSMzQ2NHxQRVIzMjc0fFBFUjM1NzR8UEVSMzg4NHxQRVI1Mjc0fFBFUjU0NzR8UE1QNTA5N0NQUk98UE1QNTA5N3xQTVA3MzgwRHxQTVA1Mjk3Q3xQTVA1Mjk3Q19RVUFEfFBNUDgxMkV8UE1QODEyRTNHfFBNUDgxMkZ8UE1QODEwRXxQTVA4ODBURHxQTVQzMDE3fFBNVDMwMzd8UE1UMzA0N3xQTVQzMDU3fFBNVDcwMDh8UE1UNTg4N3xQTVQ1MDAxfFBNVDUwMDIiLExlbm92b1RhYmxldDoiTGVub3ZvIFRBQnxJZGVhKFRhYnxQYWQpKCBBMXxBMTB8IEsxfCl8VGhpbmtQYWQoWyBdKyk/VGFibGV0fFlUMy04NTBNfFlUMy1YOTBMfFlUMy1YOTBGfFlUMy1YOTBYfExlbm92by4qKFMyMTA5fFMyMTEwfFM1MDAwfFM2MDAwfEszMDExfEEzMDAwfEEzNTAwfEExMDAwfEEyMTA3fEEyMTA5fEExMTA3fEE1NTAwfEE3NjAwfEI2MDAwfEI4MDAwfEI4MDgwKSgtfCkoRkx8RnxIVnxIfCl8VEItWDEwM0Z8VEItWDMwNFh8VEItWDMwNEZ8VEItWDMwNEx8VEItWDUwNUZ8VEItWDUwNUx8VEItWDUwNVh8VEItWDYwNUZ8VEItWDYwNUx8VEItODcwM0Z8VEItODcwM1h8VEItODcwM058VEItODcwNE58VEItODcwNEZ8VEItODcwNFh8VEItODcwNFZ8VEItNzMwNEZ8VEItNzMwNEl8VEItNzMwNFh8VGFiMkE3LTEwRnxUYWIyQTctMjBGfFRCMi1YMzBMfFlUMy1YNTBMfFlUMy1YNTBGfFlUMy1YNTBNfFlULVg3MDVGfFlULVg3MDNGfFlULVg3MDNMfFlULVg3MDVMfFlULVg3MDVYfFRCMi1YMzBGfFRCMi1YMzBMfFRCMi1YMzBNfEEyMTA3QS1GfEEyMTA3QS1IfFRCMy03MzBGfFRCMy03MzBNfFRCMy03MzBYfFRCLTc1MDRGfFRCLTc1MDRYfFRCLVg3MDRGfFRCLVgxMDRGfFRCMy1YNzBGfFRCLVg3MDVGfFRCLTg1MDRGfFRCMy1YNzBMfFRCMy03MTBGfFRCLVg3MDRMIixEZWxsVGFibGV0OiJWZW51ZSAxMXxWZW51ZSA4fFZlbnVlIDd8RGVsbCBTdHJlYWsgMTB8RGVsbCBTdHJlYWsgNyIsWWFydmlrVGFibGV0OiJBbmRyb2lkLipcXGIoVEFCMjEwfFRBQjIxMXxUQUIyMjR8VEFCMjUwfFRBQjI2MHxUQUIyNjR8VEFCMzEwfFRBQjM2MHxUQUIzNjR8VEFCNDEwfFRBQjQxMXxUQUI0MjB8VEFCNDI0fFRBQjQ1MHxUQUI0NjB8VEFCNDYxfFRBQjQ2NHxUQUI0NjV8VEFCNDY3fFRBQjQ2OHxUQUIwNy0xMDB8VEFCMDctMTAxfFRBQjA3LTE1MHxUQUIwNy0xNTF8VEFCMDctMTUyfFRBQjA3LTIwMHxUQUIwNy0yMDEtM0d8VEFCMDctMjEwfFRBQjA3LTIxMXxUQUIwNy0yMTJ8VEFCMDctMjE0fFRBQjA3LTIyMHxUQUIwNy00MDB8VEFCMDctNDg1fFRBQjA4LTE1MHxUQUIwOC0yMDB8VEFCMDgtMjAxLTNHfFRBQjA4LTIwMS0zMHxUQUIwOS0xMDB8VEFCMDktMjExfFRBQjA5LTQxMHxUQUIxMC0xNTB8VEFCMTAtMjAxfFRBQjEwLTIxMXxUQUIxMC00MDB8VEFCMTAtNDEwfFRBQjEzLTIwMXxUQUIyNzRFVUt8VEFCMjc1RVVLfFRBQjM3NEVVS3xUQUI0NjJFVUt8VEFCNDc0RVVLfFRBQjktMjAwKVxcYiIsTWVkaW9uVGFibGV0OiJBbmRyb2lkLipcXGJPWU9cXGJ8TElGRS4qKFA5MjEyfFA5NTE0fFA5NTE2fFM5NTEyKXxMSUZFVEFCIixBcm5vdmFUYWJsZXQ6Ijk3RzR8QU4xMEcyfEFON2JHM3xBTjdmRzN8QU44RzN8QU44Y0czfEFON0czfEFOOUczfEFON2RHM3xBTjdkRzNTVHxBTjdkRzNDaGlsZFBhZHxBTjEwYkczfEFOMTBiRzNEVHxBTjlHMiIsSW50ZW5zb1RhYmxldDoiSU5NODAwMktQfElOTTEwMTBGUHxJTk04MDVORHxJbnRlbnNvIFRhYnxUQUIxMDA0IixJUlVUYWJsZXQ6Ik03MDJwcm8iLE1lZ2Fmb25UYWJsZXQ6Ik1lZ2FGb24gVjl8XFxiWlRFIFY5XFxifEFuZHJvaWQuKlxcYk1UN0FcXGIiLEVib2RhVGFibGV0OiJFLUJvZGEgKFN1cHJlbWV8SW1wcmVzc3BlZWR8SXp6eWNvbW18RXNzZW50aWFsKSIsQWxsVmlld1RhYmxldDoiQWxsdmlldy4qKFZpdmF8QWxsZHJvfENpdHl8U3BlZWR8QWxsIFRWfEZyZW56eXxRdWFzYXJ8U2hpbmV8VFgxfEFYMXxBWDIpIixBcmNob3NUYWJsZXQ6IlxcYigxMDFHOXw4MEc5fEExMDFJVClcXGJ8UWlsaXZlIDk3UnxBcmNob3M1fFxcYkFSQ0hPUyAoNzB8Nzl8ODB8OTB8OTd8MTAxfEZBTUlMWVBBRHwpKGJ8Y3wpKEcxMHwgQ29iYWx0fCBUSVRBTklVTShIRHwpfCBYZW5vbnwgTmVvbnxYU0t8IDJ8IFhTIDJ8IFBMQVRJTlVNfCBDQVJCT058R0FNRVBBRClcXGIiLEFpbm9sVGFibGV0OiJOT1ZPN3xOT1ZPOHxOT1ZPMTB8Tm92bzdBdXJvcmF8Tm92bzdCYXNpY3xOT1ZPN1BBTEFESU58bm92bzktU3BhcmsiLE5va2lhTHVtaWFUYWJsZXQ6Ikx1bWlhIDI1MjAiLFNvbnlUYWJsZXQ6IlNvbnkuKlRhYmxldHxYcGVyaWEgVGFibGV0fFNvbnkgVGFibGV0IFN8U08tMDNFfFNHUFQxMnxTR1BUMTN8U0dQVDExNHxTR1BUMTIxfFNHUFQxMjJ8U0dQVDEyM3xTR1BUMTExfFNHUFQxMTJ8U0dQVDExM3xTR1BUMTMxfFNHUFQxMzJ8U0dQVDEzM3xTR1BUMjExfFNHUFQyMTJ8U0dQVDIxM3xTR1AzMTF8U0dQMzEyfFNHUDMyMXxFQlJEMTEwMXxFQlJEMTEwMnxFQlJEMTIwMXxTR1AzNTF8U0dQMzQxfFNHUDUxMXxTR1A1MTJ8U0dQNTIxfFNHUDU0MXxTR1A1NTF8U0dQNjIxfFNHUDY0MXxTR1A2MTJ8U09UMzF8U0dQNzcxfFNHUDYxMXxTR1A2MTJ8U0dQNzEyIixQaGlsaXBzVGFibGV0OiJcXGIoUEkyMDEwfFBJMzAwMHxQSTMxMDB8UEkzMTA1fFBJMzExMHxQSTMyMDV8UEkzMjEwfFBJMzkwMHxQSTQwMTB8UEk3MDAwfFBJNzEwMClcXGIiLEN1YmVUYWJsZXQ6IkFuZHJvaWQuKihLOEdUfFU5R1R8VTEwR1R8VTE2R1R8VTE3R1R8VTE4R1R8VTE5R1R8VTIwR1R8VTIzR1R8VTMwR1QpfENVQkUgVThHVCIsQ29ieVRhYmxldDoiTUlEMTA0MnxNSUQxMDQ1fE1JRDExMjV8TUlEMTEyNnxNSUQ3MDEyfE1JRDcwMTR8TUlENzAxNXxNSUQ3MDM0fE1JRDcwMzV8TUlENzAzNnxNSUQ3MDQyfE1JRDcwNDh8TUlENzEyN3xNSUQ4MDQyfE1JRDgwNDh8TUlEODEyN3xNSUQ5MDQyfE1JRDk3NDB8TUlEOTc0MnxNSUQ3MDIyfE1JRDcwMTAiLE1JRFRhYmxldDoiTTk3MDF8TTkwMDB8TTkxMDB8TTgwNnxNMTA1MnxNODA2fFQ3MDN8TUlENzAxfE1JRDcxM3xNSUQ3MTB8TUlENzI3fE1JRDc2MHxNSUQ4MzB8TUlENzI4fE1JRDkzM3xNSUQxMjV8TUlEODEwfE1JRDczMnxNSUQxMjB8TUlEOTMwfE1JRDgwMHxNSUQ3MzF8TUlEOTAwfE1JRDEwMHxNSUQ4MjB8TUlENzM1fE1JRDk4MHxNSUQxMzB8TUlEODMzfE1JRDczN3xNSUQ5NjB8TUlEMTM1fE1JRDg2MHxNSUQ3MzZ8TUlEMTQwfE1JRDkzMHxNSUQ4MzV8TUlENzMzfE1JRDRYMTAiLE1TSVRhYmxldDoiTVNJIFxcYihQcmltbyA3M0t8UHJpbW8gNzNMfFByaW1vIDgxTHxQcmltbyA3N3xQcmltbyA5M3xQcmltbyA3NXxQcmltbyA3NnxQcmltbyA3M3xQcmltbyA4MXxQcmltbyA5MXxQcmltbyA5MHxFbmpveSA3MXxFbmpveSA3fEVuam95IDEwKVxcYiIsU01pVFRhYmxldDoiQW5kcm9pZC4qKFxcYk1JRFxcYnxNSUQtNTYwfE1UVi1UMTIwMHxNVFYtUE5ENTMxfE1UVi1QMTEwMXxNVFYtUE5ENTMwKSIsUm9ja0NoaXBUYWJsZXQ6IkFuZHJvaWQuKihSSzI4MTh8UksyODA4QXxSSzI5MTh8UkszMDY2KXxSSzI3Mzh8UksyODA4QSIsRmx5VGFibGV0OiJJUTMxMHxGbHkgVmlzaW9uIixicVRhYmxldDoiQW5kcm9pZC4qKGJxKT8uKlxcYihFbGNhbm98Q3VyaWV8RWRpc29ufE1heHdlbGx8S2VwbGVyfFBhc2NhbHxUZXNsYXxIeXBhdGlhfFBsYXRvbnxOZXd0b258TGl2aW5nc3RvbmV8Q2VydmFudGVzfEF2YW50fEFxdWFyaXMgKFtFfE1dMTB8TTgpKVxcYnxNYXh3ZWxsLipMaXRlfE1heHdlbGwuKlBsdXMiLEh1YXdlaVRhYmxldDoiTWVkaWFQYWR8TWVkaWFQYWQgNyBZb3V0aHxJREVPUyBTN3xTNy0yMDFjfFM3LTIwMnV8UzctMTAxfFM3LTEwM3xTNy0xMDR8UzctMTA1fFM3LTEwNnxTNy0yMDF8UzctU2xpbXxNMi1BMDFMfEJBSC1MMDl8QkFILVcwOXxBR1MtTDA5fENNUi1BTDE5IixOZWNUYWJsZXQ6IlxcYk4tMDZEfFxcYk4tMDhEIixQYW50ZWNoVGFibGV0OiJQYW50ZWNoLipQNDEwMCIsQnJvbmNob1RhYmxldDoiQnJvbmNoby4qKE43MDF8TjcwOHxOODAyfGE3MTApIixWZXJzdXNUYWJsZXQ6IlRPVUNIUEFELipbNzg5MTBdfFxcYlRPVUNIVEFCXFxiIixaeW5jVGFibGV0OiJ6MTAwMHxaOTkgMkd8ejkzMHx6OTkwfHo5MDl8WjkxOXx6OTAwIixQb3NpdGl2b1RhYmxldDoiVEIwN1NUQXxUQjEwU1RBfFRCMDdGVEF8VEIxMEZUQSIsTmFiaVRhYmxldDoiQW5kcm9pZC4qXFxiTmFiaSIsS29ib1RhYmxldDoiS29ibyBUb3VjaHxcXGJLMDgwXFxifFxcYlZveFxcYiBCdWlsZHxcXGJBcmNcXGIgQnVpbGQiLERhbmV3VGFibGV0OiJEU2xpZGUuKlxcYig3MDB8NzAxUnw3MDJ8NzAzUnw3MDR8ODAyfDk3MHw5NzF8OTcyfDk3M3w5NzR8MTAxMHwxMDEyKVxcYiIsVGV4ZXRUYWJsZXQ6Ik5hdmlQYWR8VEItNzcyQXxUTS03MDQ1fFRNLTcwNTV8VE0tOTc1MHxUTS03MDE2fFRNLTcwMjR8VE0tNzAyNnxUTS03MDQxfFRNLTcwNDN8VE0tNzA0N3xUTS04MDQxfFRNLTk3NDF8VE0tOTc0N3xUTS05NzQ4fFRNLTk3NTF8VE0tNzAyMnxUTS03MDIxfFRNLTcwMjB8VE0tNzAxMXxUTS03MDEwfFRNLTcwMjN8VE0tNzAyNXxUTS03MDM3V3xUTS03MDM4V3xUTS03MDI3V3xUTS05NzIwfFRNLTk3MjV8VE0tOTczN1d8VE0tMTAyMHxUTS05NzM4V3xUTS05NzQwfFRNLTk3NDNXfFRCLTgwN0F8VEItNzcxQXxUQi03MjdBfFRCLTcyNUF8VEItNzE5QXxUQi04MjNBfFRCLTgwNUF8VEItNzIzQXxUQi03MTVBfFRCLTcwN0F8VEItNzA1QXxUQi03MDlBfFRCLTcxMUF8VEItODkwSER8VEItODgwSER8VEItNzkwSER8VEItNzgwSER8VEItNzcwSER8VEItNzIxSER8VEItNzEwSER8VEItNDM0SER8VEItODYwSER8VEItODQwSER8VEItNzYwSER8VEItNzUwSER8VEItNzQwSER8VEItNzMwSER8VEItNzIySER8VEItNzIwSER8VEItNzAwSER8VEItNTAwSER8VEItNDcwSER8VEItNDMxSER8VEItNDMwSER8VEItNTA2fFRCLTUwNHxUQi00NDZ8VEItNDM2fFRCLTQxNnxUQi0xNDZTRXxUQi0xMjZTRSIsUGxheXN0YXRpb25UYWJsZXQ6IlBsYXlzdGF0aW9uLiooUG9ydGFibGV8Vml0YSkiLFRyZWtzdG9yVGFibGV0OiJTVDEwNDE2LTF8VlQxMDQxNi0xfFNUNzA0MDgtMXxTVDcwMnh4LTF8U1Q3MDJ4eC0yfFNUODAyMDh8U1Q5NzIxNnxTVDcwMTA0LTJ8VlQxMDQxNi0yfFNUMTAyMTYtMkF8U3VyZlRhYiIsUHlsZUF1ZGlvVGFibGV0OiJcXGIoUFRCTDEwQ0VVfFBUQkwxMEN8UFRCTDcyQkN8UFRCTDcyQkNFVXxQVEJMN0NFVXxQVEJMN0N8UFRCTDkyQkN8UFRCTDkyQkNFVXxQVEJMOUNFVXxQVEJMOUNVS3xQVEJMOUMpXFxiIixBZHZhblRhYmxldDoiQW5kcm9pZC4qIFxcYihFM0F8VDNYfFQ1Q3xUNUJ8VDNFfFQzQ3xUM0J8VDFKfFQxRnxUMkF8VDFIfFQxaXxFMUN8VDEtRXxUNS1BfFQ0fEUxLUJ8VDJDaXxUMS1CfFQxLUR8TzEtQXxFMS1BfFQxLUF8VDNBfFQ0aSlcXGIgIixEYW55VGVjaFRhYmxldDoiR2VuaXVzIFRhYiBHM3xHZW5pdXMgVGFiIFMyfEdlbml1cyBUYWIgUTN8R2VuaXVzIFRhYiBHNHxHZW5pdXMgVGFiIFE0fEdlbml1cyBUYWIgRy1JSXxHZW5pdXMgVEFCIEdJSXxHZW5pdXMgVEFCIEdJSUl8R2VuaXVzIFRhYiBTMSIsR2FsYXBhZFRhYmxldDoiQW5kcm9pZCBbMC05Ll0rOyBbYS16LV0rOyBcXGJHMVxcYiIsTWljcm9tYXhUYWJsZXQ6IkZ1bmJvb2t8TWljcm9tYXguKlxcYihQMjUwfFA1NjB8UDM2MHxQMzYyfFA2MDB8UDMwMHxQMzUwfFA1MDB8UDI3NSlcXGIiLEthcmJvbm5UYWJsZXQ6IkFuZHJvaWQuKlxcYihBMzl8QTM3fEEzNHxTVDh8U1QxMHxTVDd8U21hcnQgVGFiM3xTbWFydCBUYWIyKVxcYiIsQWxsRmluZVRhYmxldDoiRmluZTcgR2VuaXVzfEZpbmU3IFNoaW5lfEZpbmU3IEFpcnxGaW5lOCBTdHlsZXxGaW5lOSBNb3JlfEZpbmUxMCBKb3l8RmluZTExIFdpZGUiLFBST1NDQU5UYWJsZXQ6IlxcYihQRU02M3xQTFQxMDIzR3xQTFQxMDQxfFBMVDEwNDR8UExUMTA0NEd8UExUMTA5MXxQTFQ0MzExfFBMVDQzMTFQTHxQTFQ0MzE1fFBMVDcwMzB8UExUNzAzM3xQTFQ3MDMzRHxQTFQ3MDM1fFBMVDcwMzVEfFBMVDcwNDRLfFBMVDcwNDVLfFBMVDcwNDVLQnxQTFQ3MDcxS0d8UExUNzA3MnxQTFQ3MjIzR3xQTFQ3MjI1R3xQTFQ3Nzc3R3xQTFQ3ODEwS3xQTFQ3ODQ5R3xQTFQ3ODUxR3xQTFQ3ODUyR3xQTFQ4MDE1fFBMVDgwMzF8UExUODAzNHxQTFQ4MDM2fFBMVDgwODBLfFBMVDgwODJ8UExUODA4OHxQTFQ4MjIzR3xQTFQ4MjM0R3xQTFQ4MjM1R3xQTFQ4ODE2S3xQTFQ5MDExfFBMVDkwNDVLfFBMVDkyMzNHfFBMVDk3MzV8UExUOTc2MEd8UExUOTc3MEcpXFxiIixZT05FU1RhYmxldDoiQlExMDc4fEJDMTAwM3xCQzEwNzd8Uks5NzAyfEJDOTczMHxCQzkwMDF8SVQ5MDAxfEJDNzAwOHxCQzcwMTB8QkM3MDh8QkM3Mjh8QkM3MDEyfEJDNzAzMHxCQzcwMjd8QkM3MDI2IixDaGFuZ0ppYVRhYmxldDoiVFBDNzEwMnxUUEM3MTAzfFRQQzcxMDV8VFBDNzEwNnxUUEM3MTA3fFRQQzcyMDF8VFBDNzIwM3xUUEM3MjA1fFRQQzcyMTB8VFBDNzcwOHxUUEM3NzA5fFRQQzc3MTJ8VFBDNzExMHxUUEM4MTAxfFRQQzgxMDN8VFBDODEwNXxUUEM4MTA2fFRQQzgyMDN8VFBDODIwNXxUUEM4NTAzfFRQQzkxMDZ8VFBDOTcwMXxUUEM5NzEwMXxUUEM5NzEwM3xUUEM5NzEwNXxUUEM5NzEwNnxUUEM5NzExMXxUUEM5NzExM3xUUEM5NzIwM3xUUEM5NzYwM3xUUEM5NzgwOXxUUEM5NzIwNXxUUEMxMDEwMXxUUEMxMDEwM3xUUEMxMDEwNnxUUEMxMDExMXxUUEMxMDIwM3xUUEMxMDIwNXxUUEMxMDUwMyIsR1VUYWJsZXQ6IlRYLUExMzAxfFRYLU05MDAyfFE3MDJ8a2YwMjYiLFBvaW50T2ZWaWV3VGFibGV0OiJUQUItUDUwNnxUQUItbmF2aS03LTNHLU18VEFCLVA1MTd8VEFCLVAtNTI3fFRBQi1QNzAxfFRBQi1QNzAzfFRBQi1QNzIxfFRBQi1QNzMxTnxUQUItUDc0MXxUQUItUDgyNXxUQUItUDkwNXxUQUItUDkyNXxUQUItUFI5NDV8VEFCLVBMMTAxNXxUQUItUDEwMjV8VEFCLVBJMTA0NXxUQUItUDEzMjV8VEFCLVBST1RBQlswLTldK3xUQUItUFJPVEFCMjV8VEFCLVBST1RBQjI2fFRBQi1QUk9UQUIyN3xUQUItUFJPVEFCMjZYTHxUQUItUFJPVEFCMi1JUFM5fFRBQi1QUk9UQUIzMC1JUFM5fFRBQi1QUk9UQUIyNVhYTHxUQUItUFJPVEFCMjYtSVBTMTB8VEFCLVBST1RBQjMwLUlQUzEwIixPdmVybWF4VGFibGV0OiJPVi0oU3RlZWxDb3JlfE5ld0Jhc2V8QmFzZWNvcmV8QmFzZW9uZXxFeGVsbGVufFF1YXR0b3J8RWR1VGFifFNvbHV0aW9ufEFDVElPTnxCYXNpY1RhYnxUZWRkeVRhYnxNYWdpY1RhYnxTdHJlYW18VEItMDh8VEItMDkpfFF1YWxjb3JlIDEwMjciLEhDTFRhYmxldDoiSENMLipUYWJsZXR8Q29ubmVjdC0zRy0yLjB8Q29ubmVjdC0yRy0yLjB8TUUgVGFibGV0IFUxfE1FIFRhYmxldCBVMnxNRSBUYWJsZXQgRzF8TUUgVGFibGV0IFgxfE1FIFRhYmxldCBZMnxNRSBUYWJsZXQgU3luYyIsRFBTVGFibGV0OiJEUFMgRHJlYW0gOXxEUFMgRHVhbCA3IixWaXN0dXJlVGFibGV0OiJWOTcgSER8aTc1IDNHfFZpc3R1cmUgVjQoIEhEKT98VmlzdHVyZSBWNSggSEQpP3xWaXN0dXJlIFYxMCIsQ3Jlc3RhVGFibGV0OiJDVFAoLSk/ODEwfENUUCgtKT84MTh8Q1RQKC0pPzgyOHxDVFAoLSk/ODM4fENUUCgtKT84ODh8Q1RQKC0pPzk3OHxDVFAoLSk/OTgwfENUUCgtKT85ODd8Q1RQKC0pPzk4OHxDVFAoLSk/OTg5IixNZWRpYXRla1RhYmxldDoiXFxiTVQ4MTI1fE1UODM4OXxNVDgxMzV8TVQ4Mzc3XFxiIixDb25jb3JkZVRhYmxldDoiQ29uY29yZGUoWyBdKyk/VGFifENvbkNvcmRlIFJlYWRNYW4iLEdvQ2xldmVyVGFibGV0OiJHT0NMRVZFUiBUQUJ8QTdHT0NMRVZFUnxNMTA0MnxNNzg0MXxNNzQyfFIxMDQyQkt8UjEwNDF8VEFCIEE5NzV8VEFCIEE3ODQyfFRBQiBBNzQxfFRBQiBBNzQxTHxUQUIgTTcyM0d8VEFCIE03MjF8VEFCIEExMDIxfFRBQiBJOTIxfFRBQiBSNzIxfFRBQiBJNzIwfFRBQiBUNzZ8VEFCIFI3MHxUQUIgUjc2LjJ8VEFCIFIxMDZ8VEFCIFI4My4yfFRBQiBNODEzR3xUQUIgSTcyMXxHQ1RBNzIyfFRBQiBJNzB8VEFCIEk3MXxUQUIgUzczfFRBQiBSNzN8VEFCIFI3NHxUQUIgUjkzfFRBQiBSNzV8VEFCIFI3Ni4xfFRBQiBBNzN8VEFCIEE5M3xUQUIgQTkzLjJ8VEFCIFQ3MnxUQUIgUjgzfFRBQiBSOTc0fFRBQiBSOTczfFRBQiBBMTAxfFRBQiBBMTAzfFRBQiBBMTA0fFRBQiBBMTA0LjJ8UjEwNUJLfE03MTNHfEE5NzJCS3xUQUIgQTk3MXxUQUIgUjk3NC4yfFRBQiBSMTA0fFRBQiBSODMuM3xUQUIgQTEwNDIiLE1vZGVjb21UYWJsZXQ6IkZyZWVUQUIgOTAwMHxGcmVlVEFCIDcuNHxGcmVlVEFCIDcwMDR8RnJlZVRBQiA3ODAwfEZyZWVUQUIgMjA5NnxGcmVlVEFCIDcuNXxGcmVlVEFCIDEwMTR8RnJlZVRBQiAxMDAxIHxGcmVlVEFCIDgwMDF8RnJlZVRBQiA5NzA2fEZyZWVUQUIgOTcwMnxGcmVlVEFCIDcwMDN8RnJlZVRBQiA3MDAyfEZyZWVUQUIgMTAwMnxGcmVlVEFCIDc4MDF8RnJlZVRBQiAxMzMxfEZyZWVUQUIgMTAwNHxGcmVlVEFCIDgwMDJ8RnJlZVRBQiA4MDE0fEZyZWVUQUIgOTcwNHxGcmVlVEFCIDEwMDMiLFZvbmlub1RhYmxldDoiXFxiKEFyZ3VzWyBfXT9TfERpYW1vbmRbIF9dPzc5SER8RW1lcmFsZFsgX10/NzhFfEx1bmFbIF9dPzcwQ3xPbnl4WyBfXT9TfE9ueXhbIF9dP1p8T3JpblsgX10/SER8T3JpblsgX10/U3xPdGlzWyBfXT9TfFNwZWVkU3RhclsgX10/U3xNYWduZXRbIF9dP005fFByaW11c1sgX10/OTRbIF9dPzNHfFByaW11c1sgX10/OTRIRHxQcmltdXNbIF9dP1FTfEFuZHJvaWQuKlxcYlE4XFxifFNpcml1c1sgX10/RVZPWyBfXT9RU3xTaXJpdXNbIF9dP1FTfFNwaXJpdFsgX10/UylcXGIiLEVDU1RhYmxldDoiVjA3T1QyfFRNMTA1QXxTMTBPVDF8VFIxMENTMSIsU3RvcmV4VGFibGV0OiJlWmVlW18nXT8oVGFifEdvKVswLTldK3xUYWJMQzd8TG9vbmV5IFR1bmVzIFRhYiIsVm9kYWZvbmVUYWJsZXQ6IlNtYXJ0VGFiKFsgXSspP1swLTldK3xTbWFydFRhYklJMTB8U21hcnRUYWJJSTd8VkYtMTQ5N3xWRkQgMTQwMCIsRXNzZW50aWVsQlRhYmxldDoiU21hcnRbICddP1RBQlsgXSs/WzAtOV0rfEZhbWlseVsgJ10/VEFCMiIsUm9zc01vb3JUYWJsZXQ6IlJNLTc5MHxSTS05OTd8Uk1ELTg3OEd8Uk1ELTk3NFJ8Uk1ULTcwNUF8Uk1ULTcwMXxSTUUtNjAxfFJNVC01MDF8Uk1ULTcxMSIsaU1vYmlsZVRhYmxldDoiaS1tb2JpbGUgaS1ub3RlIixUb2xpbm9UYWJsZXQ6InRvbGlubyB0YWIgWzAtOS5dK3x0b2xpbm8gc2hpbmUiLEF1ZGlvU29uaWNUYWJsZXQ6IlxcYkMtMjJRfFQ3LVFDfFQtMTdCfFQtMTdQXFxiIixBTVBFVGFibGV0OiJBbmRyb2lkLiogQTc4ICIsU2trVGFibGV0OiJBbmRyb2lkLiogKFNLWVBBRHxQSE9FTklYfENZQ0xPUFMpIixUZWNub1RhYmxldDoiVEVDTk8gUDl8VEVDTk8gRFA4RCIsSlhEVGFibGV0OiJBbmRyb2lkLiogXFxiKEYzMDAwfEEzMzAwfEpYRDUwMDB8SlhEMzAwMHxKWEQyMDAwfEpYRDMwMEJ8SlhEMzAwfFM1ODAwfFM3ODAwfFM2MDJifFM1MTEwYnxTNzMwMHxTNTMwMHxTNjAyfFM2MDN8UzUxMDB8UzUxMTB8UzYwMXxTNzEwMGF8UDMwMDBGfFAzMDAwc3xQMTAxfFAyMDBzfFAxMDAwbXxQMjAwbXxQOTEwMHxQMTAwMHN8UzY2MDBifFM5MDh8UDEwMDB8UDMwMHxTMTh8UzY2MDB8UzkxMDApXFxiIixpSm95VGFibGV0OiJUYWJsZXQgKFNwaXJpdCA3fEVzc2VudGlhfEdhbGF0ZWF8RnVzaW9ufE9uaXggN3xMYW5kYXxUaXRhbnxTY29vYnl8RGVveHxTdGVsbGF8VGhlbWlzfEFyZ29ufFVuaXF1ZSA3fFN5Z251c3xIZXhlbnxGaW5pdHkgN3xDcmVhbXxDcmVhbSBYMnxKYWRlfE5lb24gN3xOZXJvbiA3fEthbmR5fFNjYXBlfFNhcGh5ciA3fFJlYmVsfEJpb3h8UmViZWx8UmViZWwgOEdCfE15c3R8RHJhY28gN3xNeXN0fFRhYjctMDA0fE15c3R8VGFkZW8gSm9uZXN8VGFibGV0IEJvaW5nfEFycm93fERyYWNvIER1YWwgQ2FtfEF1cml4fE1pbnR8QW1pdHl8UmV2b2x1dGlvbnxGaW5pdHkgOXxOZW9uIDl8VDl3fEFtaXR5IDRHQiBEdWFsIENhbXxTdG9uZSA0R0J8U3RvbmUgOEdCfEFuZHJvbWVkYXxTaWxrZW58WDJ8QW5kcm9tZWRhIElJfEhhbGxleXxGbGFtZXxTYXBoeXIgOSw3fFRvdWNoIDh8UGxhbmV0fFRyaXRvbnxVbmlxdWUgMTB8SGV4ZW4gMTB8TWVtcGhpcyA0R0J8TWVtcGhpcyA4R0J8T25peCAxMCkiLEZYMlRhYmxldDoiRlgyIFBBRDd8RlgyIFBBRDEwIixYb3JvVGFibGV0OiJLaWRzUEFEIDcwMXxQQURbIF0/NzEyfFBBRFsgXT83MTR8UEFEWyBdPzcxNnxQQURbIF0/NzE3fFBBRFsgXT83MTh8UEFEWyBdPzcyMHxQQURbIF0/NzIxfFBBRFsgXT83MjJ8UEFEWyBdPzc5MHxQQURbIF0/NzkyfFBBRFsgXT85MDB8UEFEWyBdPzk3MTVEfFBBRFsgXT85NzE2RFJ8UEFEWyBdPzk3MThEUnxQQURbIF0/OTcxOVFSfFBBRFsgXT85NzIwUVJ8VGVsZVBBRDEwMzB8VGVsZXBhZDEwMzJ8VGVsZVBBRDczMHxUZWxlUEFENzMxfFRlbGVQQUQ3MzJ8VGVsZVBBRDczNVF8VGVsZVBBRDgzMHxUZWxlUEFEOTczMHxUZWxlUEFENzk1fE1lZ2FQQUQgMTMzMXxNZWdhUEFEIDE4NTF8TWVnYVBBRCAyMTUxIixWaWV3c29uaWNUYWJsZXQ6IlZpZXdQYWQgMTBwaXxWaWV3UGFkIDEwZXxWaWV3UGFkIDEwc3xWaWV3UGFkIEU3MnxWaWV3UGFkN3xWaWV3UGFkIEUxMDB8Vmlld1BhZCA3ZXxWaWV3U29uaWMgVkI3MzN8VkIxMDBhIixWZXJpem9uVGFibGV0OiJRVEFRWjN8UVRBSVI3fFFUQVFUWjN8UVRBU1VOMXxRVEFTVU4yfFFUQVhJQTEiLE9keXNUYWJsZXQ6IkxPT1h8WEVOTzEwfE9EWVNbIC1dKFNwYWNlfEVWT3xYcHJlc3N8Tk9PTil8XFxiWEVMSU9cXGJ8WGVsaW8xMFByb3xYRUxJTzdQSE9ORVRBQnxYRUxJTzEwRVhUUkVNRXxYRUxJT1BUMnxORU9fUVVBRDEwIixDYXB0aXZhVGFibGV0OiJDQVBUSVZBIFBBRCIsSWNvbmJpdFRhYmxldDoiTmV0VEFCfE5ULTM3MDJ8TlQtMzcwMlN8TlQtMzcwMlN8TlQtMzYwM1B8TlQtMzYwM1B8TlQtMDcwNFN8TlQtMDcwNFN8TlQtMzgwNUN8TlQtMzgwNUN8TlQtMDgwNkN8TlQtMDgwNkN8TlQtMDkwOVR8TlQtMDkwOVR8TlQtMDkwN1N8TlQtMDkwN1N8TlQtMDkwMlN8TlQtMDkwMlMiLFRlY2xhc3RUYWJsZXQ6IlQ5OCA0R3xcXGJQODBcXGJ8XFxiWDkwSERcXGJ8WDk4IEFpcnxYOTggQWlyIDNHfFxcYlg4OVxcYnxQODAgM0d8XFxiWDgwaFxcYnxQOTggQWlyfFxcYlg4OUhEXFxifFA5OCAzR3xcXGJQOTBIRFxcYnxQODkgM0d8WDk4IDNHfFxcYlA3MGhcXGJ8UDc5SEQgM0d8RzE4ZCAzR3xcXGJQNzlIRFxcYnxcXGJQODlzXFxifFxcYkE4OFxcYnxcXGJQMTBIRFxcYnxcXGJQMTlIRFxcYnxHMTggM0d8XFxiUDc4SERcXGJ8XFxiQTc4XFxifFxcYlA3NVxcYnxHMTdzIDNHfEcxN2ggM0d8XFxiUDg1dFxcYnxcXGJQOTBcXGJ8XFxiUDExXFxifFxcYlA5OHRcXGJ8XFxiUDk4SERcXGJ8XFxiRzE4ZFxcYnxcXGJQODVzXFxifFxcYlAxMUhEXFxifFxcYlA4OHNcXGJ8XFxiQTgwSERcXGJ8XFxiQTgwc2VcXGJ8XFxiQTEwaFxcYnxcXGJQODlcXGJ8XFxiUDc4c1xcYnxcXGJHMThcXGJ8XFxiUDg1XFxifFxcYkE3MGhcXGJ8XFxiQTcwXFxifFxcYkcxN1xcYnxcXGJQMThcXGJ8XFxiQTgwc1xcYnxcXGJBMTFzXFxifFxcYlA4OEhEXFxifFxcYkE4MGhcXGJ8XFxiUDc2c1xcYnxcXGJQNzZoXFxifFxcYlA5OFxcYnxcXGJBMTBIRFxcYnxcXGJQNzhcXGJ8XFxiUDg4XFxifFxcYkExMVxcYnxcXGJBMTB0XFxifFxcYlA3NmFcXGJ8XFxiUDc2dFxcYnxcXGJQNzZlXFxifFxcYlA4NUhEXFxifFxcYlA4NWFcXGJ8XFxiUDg2XFxifFxcYlA3NUhEXFxifFxcYlA3NnZcXGJ8XFxiQTEyXFxifFxcYlA3NWFcXGJ8XFxiQTE1XFxifFxcYlA3NlRpXFxifFxcYlA4MUhEXFxifFxcYkExMFxcYnxcXGJUNzYwVkVcXGJ8XFxiVDcyMEhEXFxifFxcYlA3NlxcYnxcXGJQNzNcXGJ8XFxiUDcxXFxifFxcYlA3MlxcYnxcXGJUNzIwU0VcXGJ8XFxiQzUyMFRpXFxifFxcYlQ3NjBcXGJ8XFxiVDcyMFZFXFxifFQ3MjAtM0dFfFQ3MjAtV2lGaSIsT25kYVRhYmxldDoiXFxiKFY5NzVpfFZpMzB8Vlg1MzB8VjcwMXxWaTYwfFY3MDFzfFZpNTB8VjgwMXN8VjcxOXxWeDYxMHd8Vlg2MTBXfFY4MTlpfFZpMTB8Vlg1ODBXfFZpMTB8VjcxMXN8VjgxM3xWODExfFY4MjB3fFY4MjB8VmkyMHxWNzExfFZJMzBXfFY3MTJ8Vjg5MXd8Vjk3MnxWODE5d3xWODIwd3xWaTYwfFY4MjB3fFY3MTF8VjgxM3N8VjgwMXxWODE5fFY5NzVzfFY4MDF8VjgxOXxWODE5fFY4MTh8VjgxMXxWNzEyfFY5NzVtfFYxMDF3fFY5NjF3fFY4MTJ8VjgxOHxWOTcxfFY5NzFzfFY5MTl8Vjk4OXxWMTE2d3xWMTAyd3xWOTczfFZpNDApXFxiW1xcc10rfFYxMCBcXGI0R1xcYiIsSmF5dGVjaFRhYmxldDoiVFBDLVBBNzYyIixCbGF1cHVua3RUYWJsZXQ6IkVuZGVhdm91ciA4MDBOR3xFbmRlYXZvdXIgMTAxMCIsRGlnbWFUYWJsZXQ6IlxcYihpRHgxMHxpRHg5fGlEeDh8aUR4N3xpRHhEN3xpRHhEOHxpRHNROHxpRHNRN3xpRHNROHxpRHNEMTB8aURuRDd8M1RTODA0SHxpRHNRMTF8aURqN3xpRHMxMClcXGIiLEV2b2xpb1RhYmxldDoiQVJJQV9NaW5pX3dpZml8QXJpYVsgX11NaW5pfEV2b2xpbyBYMTB8RXZvbGlvIFg3fEV2b2xpbyBYOHxcXGJFdm90YWJcXGJ8XFxiTmV1cmFcXGIiLExhdmFUYWJsZXQ6IlFQQUQgRTcwNHxcXGJJdm9yeVNcXGJ8RS1UQUIgSVZPUll8XFxiRS1UQUJcXGIiLEFvY1RhYmxldDoiTVcwODExfE1XMDgxMnxNVzA5MjJ8TVRLODM4MnxNVzEwMzF8TVcwODMxfE1XMDgyMXxNVzA5MzF8TVcwNzEyIixNcG1hblRhYmxldDoiTVAxMSBPQ1RBfE1QMTAgT0NUQXxNUFFDMTExNHxNUFFDMTAwNHxNUFFDOTk0fE1QUUM5NzR8TVBRQzk3M3xNUFFDODA0fE1QUUM3ODR8TVBRQzc4MHxcXGJNUEc3XFxifE1QRENHNzV8TVBEQ0c3MXxNUERDMTAwNnxNUDEwMURDfE1QREM5MDAwfE1QREM5MDV8TVBEQzcwNkhEfE1QREM3MDZ8TVBEQzcwNXxNUERDMTEwfE1QREMxMDB8TVBEQzk5fE1QREM5N3xNUERDODh8TVBEQzh8TVBEQzc3fE1QNzA5fE1JRDcwMXxNSUQ3MTF8TUlEMTcwfE1QREM3MDN8TVBRQzEwMTAiLENlbGtvblRhYmxldDoiQ1Q2OTV8Q1Q4ODh8Q1RbXFxzXT85MTB8Q1Q3IFRhYnxDVDkgVGFifENUMyBUYWJ8Q1QyIFRhYnxDVDEgVGFifEM4MjB8QzcyMHxcXGJDVC0xXFxiIixXb2xkZXJUYWJsZXQ6Im1pVGFiIFxcYihESUFNT05EfFNQQUNFfEJST09LTFlOfE5FT3xGTFl8TUFOSEFUVEFOfEZVTkt8RVZPTFVUSU9OfFNLWXxHT0NBUnxJUk9OfEdFTklVU3xQT1B8TUlOVHxFUFNJTE9OfEJST0FEV0FZfEpVTVB8SE9QfExFR0VORHxORVcgQUdFfExJTkV8QURWQU5DRXxGRUVMfEZPTExPV3xMSUtFfExJTkt8TElWRXxUSElOS3xGUkVFRE9NfENISUNBR098Q0xFVkVMQU5EfEJBTFRJTU9SRS1HSHxJT1dBfEJPU1RPTnxTRUFUVExFfFBIT0VOSVh8REFMTEFTfElOIDEwMXxNYXN0ZXJDaGVmKVxcYiIsTWVkaWFjb21UYWJsZXQ6Ik0tTVBJMTBDM0d8TS1TUDEwRUd8TS1TUDEwRUdQfE0tU1AxMEhYQUh8TS1TUDdIWEFIfE0tU1AxMEhYQkh8TS1TUDhIWEFIfE0tU1A4TVhBIixNaVRhYmxldDoiXFxiTUkgUEFEXFxifFxcYkhNIE5PVEUgMVdcXGIiLE5pYmlydVRhYmxldDoiTmliaXJ1IE0xfE5pYmlydSBKdXBpdGVyIE9uZSIsTmV4b1RhYmxldDoiTkVYTyBOT1ZBfE5FWE8gMTB8TkVYTyBBVklPfE5FWE8gRlJFRXxORVhPIEdPfE5FWE8gRVZPfE5FWE8gM0d8TkVYTyBTTUFSVHxORVhPIEtJRERPfE5FWE8gTU9CSSIsTGVhZGVyVGFibGV0OiJUQkxUMTBRfFRCTFQxMEl8VEJMLTEwV0RLQnxUQkwtMTBXREtCTzIwMTN8VEJMLVcyMzBWMnxUQkwtVzQ1MHxUQkwtVzUwMHxTVjU3MnxUQkxUN0l8VEJBLUFDNy04R3xUQkxUNzl8VEJMLThXMTZ8VEJMLTEwVzMyfFRCTC0xMFdLQnxUQkwtVzEwMCIsVWJpc2xhdGVUYWJsZXQ6IlViaVNsYXRlW1xcc10/N0MiLFBvY2tldEJvb2tUYWJsZXQ6IlBvY2tldGJvb2siLEtvY2Fzb1RhYmxldDoiXFxiKFRCLTEyMDcpXFxiIixIaXNlbnNlVGFibGV0OiJcXGIoRjUyODF8RTIzNzEpXFxiIixIdWRsOiJIdWRsIEhUN1MzfEh1ZGwgMiIsVGVsc3RyYVRhYmxldDoiVC1IdWIyIixHZW5lcmljVGFibGV0OiJBbmRyb2lkLipcXGI5N0RcXGJ8VGFibGV0KD8hLipQQyl8Qk5UVjI1MEF8TUlELVdDRE1BfExvZ2ljUEQgWm9vbTJ8XFxiQTdFQlxcYnxDYXROb3ZhOHxBMV8wN3xDVDcwNHxDVDEwMDJ8XFxiTTcyMVxcYnxyazMwc2RrfFxcYkVWT1RBQlxcYnxNNzU4QXxFVDkwNHxBTFVNSVVNMTB8U21hcnRmcmVuIFRhYnxFbmRlYXZvdXIgMTAxMHxUYWJsZXQtUEMtNHxUYWdpIFRhYnxcXGJNNnByb1xcYnxDVDEwMjBXfGFyYyAxMEhEfFxcYlRQNzUwXFxifFxcYlFUQVFaM1xcYnxXVlQxMDF8VE0xMDg4fEtUMTA3In0sb3NzOntBbmRyb2lkT1M6IkFuZHJvaWQiLEJsYWNrQmVycnlPUzoiYmxhY2tiZXJyeXxcXGJCQjEwXFxifHJpbSB0YWJsZXQgb3MiLFBhbG1PUzoiUGFsbU9TfGF2YW50Z298YmxhemVyfGVsYWluZXxoaXB0b3B8cGFsbXxwbHVja2VyfHhpaW5vIixTeW1iaWFuT1M6IlN5bWJpYW58U3ltYk9TfFNlcmllczYwfFNlcmllczQwfFNZQi1bMC05XSt8XFxiUzYwXFxiIixXaW5kb3dzTW9iaWxlT1M6IldpbmRvd3MgQ0UuKihQUEN8U21hcnRwaG9uZXxNb2JpbGV8WzAtOV17M314WzAtOV17M30pfFdpbmRvd3MgTW9iaWxlfFdpbmRvd3MgUGhvbmUgWzAtOS5dK3xXQ0U7IixXaW5kb3dzUGhvbmVPUzoiV2luZG93cyBQaG9uZSAxMC4wfFdpbmRvd3MgUGhvbmUgOC4xfFdpbmRvd3MgUGhvbmUgOC4wfFdpbmRvd3MgUGhvbmUgT1N8WEJMV1A3fFp1bmVXUDd8V2luZG93cyBOVCA2LlsyM107IEFSTTsiLGlPUzoiXFxiaVBob25lLipNb2JpbGV8XFxiaVBvZHxcXGJpUGFkfEFwcGxlQ29yZU1lZGlhIixpUGFkT1M6IkNQVSBPUyAxMyIsU2FpbGZpc2hPUzoiU2FpbGZpc2giLE1lZUdvT1M6Ik1lZUdvIixNYWVtb09TOiJNYWVtbyIsSmF2YU9TOiJKMk1FL3xcXGJNSURQXFxifFxcYkNMRENcXGIiLHdlYk9TOiJ3ZWJPU3xocHdPUyIsYmFkYU9TOiJcXGJCYWRhXFxiIixCUkVXT1M6IkJSRVcifSx1YXM6e0Nocm9tZToiXFxiQ3JNb1xcYnxDcmlPU3xBbmRyb2lkLipDaHJvbWUvWy4wLTldKiAoTW9iaWxlKT8iLERvbGZpbjoiXFxiRG9sZmluXFxiIixPcGVyYToiT3BlcmEuKk1pbml8T3BlcmEuKk1vYml8QW5kcm9pZC4qT3BlcmF8TW9iaWxlLipPUFIvWzAtOS5dKyR8Q29hc3QvWzAtOS5dKyIsU2t5ZmlyZToiU2t5ZmlyZSIsRWRnZToiXFxiRWRnaU9TXFxifE1vYmlsZSBTYWZhcmkvWy4wLTldKiBFZGdlIixJRToiSUVNb2JpbGV8TVNJRU1vYmlsZSIsRmlyZWZveDoiZmVubmVjfGZpcmVmb3guKm1hZW1vfChNb2JpbGV8VGFibGV0KS4qRmlyZWZveHxGaXJlZm94LipNb2JpbGV8RnhpT1MiLEJvbHQ6ImJvbHQiLFRlYVNoYXJrOiJ0ZWFzaGFyayIsQmxhemVyOiJCbGF6ZXIiLFNhZmFyaToiVmVyc2lvbigoPyFcXGJFZGdpT1NcXGIpLikqTW9iaWxlLipTYWZhcml8U2FmYXJpLipNb2JpbGV8TW9iaWxlU2FmYXJpIixXZUNoYXQ6IlxcYk1pY3JvTWVzc2VuZ2VyXFxiIixVQ0Jyb3dzZXI6IlVDLipCcm93c2VyfFVDV0VCIixiYWlkdWJveGFwcDoiYmFpZHVib3hhcHAiLGJhaWR1YnJvd3NlcjoiYmFpZHVicm93c2VyIixEaWlnb0Jyb3dzZXI6IkRpaWdvQnJvd3NlciIsTWVyY3VyeToiXFxiTWVyY3VyeVxcYiIsT2JpZ29Ccm93c2VyOiJPYmlnbyIsTmV0RnJvbnQ6Ik5GLUJyb3dzZXIiLEdlbmVyaWNCcm93c2VyOiJOb2tpYUJyb3dzZXJ8T3ZpQnJvd3NlcnxPbmVCcm93c2VyfFR3b25reUJlYW1Ccm93c2VyfFNFTUMuKkJyb3dzZXJ8Rmx5Rmxvd3xNaW5pbW98TmV0RnJvbnR8Tm92YXJyYS1WaXNpb258TVFRQnJvd3NlcnxNaWNyb01lc3NlbmdlciIsUGFsZU1vb246IkFuZHJvaWQuKlBhbGVNb29ufE1vYmlsZS4qUGFsZU1vb24ifSxwcm9wczp7TW9iaWxlOiJNb2JpbGUvW1ZFUl0iLEJ1aWxkOiJCdWlsZC9bVkVSXSIsVmVyc2lvbjoiVmVyc2lvbi9bVkVSXSIsVmVuZG9ySUQ6IlZlbmRvcklEL1tWRVJdIixpUGFkOiJpUGFkLipDUFVbYS16IF0rW1ZFUl0iLGlQaG9uZToiaVBob25lLipDUFVbYS16IF0rW1ZFUl0iLGlQb2Q6ImlQb2QuKkNQVVthLXogXStbVkVSXSIsS2luZGxlOiJLaW5kbGUvW1ZFUl0iLENocm9tZTpbIkNocm9tZS9bVkVSXSIsIkNyaU9TL1tWRVJdIiwiQ3JNby9bVkVSXSJdLENvYXN0OlsiQ29hc3QvW1ZFUl0iXSxEb2xmaW46IkRvbGZpbi9bVkVSXSIsRmlyZWZveDpbIkZpcmVmb3gvW1ZFUl0iLCJGeGlPUy9bVkVSXSJdLEZlbm5lYzoiRmVubmVjL1tWRVJdIixFZGdlOiJFZGdlL1tWRVJdIixJRTpbIklFTW9iaWxlL1tWRVJdOyIsIklFTW9iaWxlIFtWRVJdIiwiTVNJRSBbVkVSXTsiLCJUcmlkZW50L1swLTkuXSs7LipydjpbVkVSXSJdLE5ldEZyb250OiJOZXRGcm9udC9bVkVSXSIsTm9raWFCcm93c2VyOiJOb2tpYUJyb3dzZXIvW1ZFUl0iLE9wZXJhOlsiIE9QUi9bVkVSXSIsIk9wZXJhIE1pbmkvW1ZFUl0iLCJWZXJzaW9uL1tWRVJdIl0sIk9wZXJhIE1pbmkiOiJPcGVyYSBNaW5pL1tWRVJdIiwiT3BlcmEgTW9iaSI6IlZlcnNpb24vW1ZFUl0iLFVDQnJvd3NlcjpbIlVDV0VCW1ZFUl0iLCJVQy4qQnJvd3Nlci9bVkVSXSJdLE1RUUJyb3dzZXI6Ik1RUUJyb3dzZXIvW1ZFUl0iLE1pY3JvTWVzc2VuZ2VyOiJNaWNyb01lc3Nlbmdlci9bVkVSXSIsYmFpZHVib3hhcHA6ImJhaWR1Ym94YXBwL1tWRVJdIixiYWlkdWJyb3dzZXI6ImJhaWR1YnJvd3Nlci9bVkVSXSIsU2Ftc3VuZ0Jyb3dzZXI6IlNhbXN1bmdCcm93c2VyL1tWRVJdIixJcm9uOiJJcm9uL1tWRVJdIixTYWZhcmk6WyJWZXJzaW9uL1tWRVJdIiwiU2FmYXJpL1tWRVJdIl0sU2t5ZmlyZToiU2t5ZmlyZS9bVkVSXSIsVGl6ZW46IlRpemVuL1tWRVJdIixXZWJraXQ6IndlYmtpdFsgL11bVkVSXSIsUGFsZU1vb246IlBhbGVNb29uL1tWRVJdIixTYWlsZmlzaEJyb3dzZXI6IlNhaWxmaXNoQnJvd3Nlci9bVkVSXSIsR2Vja286IkdlY2tvL1tWRVJdIixUcmlkZW50OiJUcmlkZW50L1tWRVJdIixQcmVzdG86IlByZXN0by9bVkVSXSIsR29hbm5hOiJHb2FubmEvW1ZFUl0iLGlPUzoiIFxcYmk/T1NcXGIgW1ZFUl1bIDtdezF9IixBbmRyb2lkOiJBbmRyb2lkIFtWRVJdIixTYWlsZmlzaDoiU2FpbGZpc2ggW1ZFUl0iLEJsYWNrQmVycnk6WyJCbGFja0JlcnJ5W1xcd10rL1tWRVJdIiwiQmxhY2tCZXJyeS4qVmVyc2lvbi9bVkVSXSIsIlZlcnNpb24vW1ZFUl0iXSxCUkVXOiJCUkVXIFtWRVJdIixKYXZhOiJKYXZhL1tWRVJdIiwiV2luZG93cyBQaG9uZSBPUyI6WyJXaW5kb3dzIFBob25lIE9TIFtWRVJdIiwiV2luZG93cyBQaG9uZSBbVkVSXSJdLCJXaW5kb3dzIFBob25lIjoiV2luZG93cyBQaG9uZSBbVkVSXSIsIldpbmRvd3MgQ0UiOiJXaW5kb3dzIENFL1tWRVJdIiwiV2luZG93cyBOVCI6IldpbmRvd3MgTlQgW1ZFUl0iLFN5bWJpYW46WyJTeW1iaWFuT1MvW1ZFUl0iLCJTeW1iaWFuL1tWRVJdIl0sd2ViT1M6WyJ3ZWJPUy9bVkVSXSIsImhwd09TL1tWRVJdOyJdfSx1dGlsczp7Qm90OiJHb29nbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxHb29nbGUtQU1QSFRNTHxzfmFtcC12YWxpZGF0b3J8QWRzQm90LUdvb2dsZXxHb29nbGUgS2V5d29yZCBTdWdnZXN0aW9ufEZhY2Vib3R8WWFuZGV4Qm90fFlhbmRleE1vYmlsZUJvdHxiaW5nYm90fGlhX2FyY2hpdmVyfEFocmVmc0JvdHxFem9vbXN8R1NMRmJvdHxXQlNlYXJjaEJvdHxUd2l0dGVyYm90fFR3ZWV0bWVtZUJvdHxUd2lrbGV8UGFwZXJMaUJvdHxXb3Rib3h8VW53aW5kRmV0Y2hvcnxFeGFib3R8TUoxMmJvdHxZYW5kZXhJbWFnZXN8VHVybml0aW5Cb3R8UGluZ2RvbXxjb250ZW50a2luZ2FwcHxBc3BpZWdlbEJvdCIsTW9iaWxlQm90OiJHb29nbGVib3QtTW9iaWxlfEFkc0JvdC1Hb29nbGUtTW9iaWxlfFlhaG9vU2Vla2VyL00xQTEtUjJEMiIsRGVza3RvcE1vZGU6IldQRGVza3RvcCIsVFY6IlNvbnlEVFZ8SGJiVFYiLFdlYktpdDoiKHdlYmtpdClbIC9dKFtcXHcuXSspIixDb25zb2xlOiJcXGIoTmludGVuZG98TmludGVuZG8gV2lpVXxOaW50ZW5kbyAzRFN8TmludGVuZG8gU3dpdGNofFBMQVlTVEFUSU9OfFhib3gpXFxiIixXYXRjaDoiU00tVjcwMCJ9fSxnLmRldGVjdE1vYmlsZUJyb3dzZXJzPXtmdWxsUGF0dGVybjovKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm8vaSxzaG9ydFBhdHRlcm46LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaSx0YWJsZXRQYXR0ZXJuOi9hbmRyb2lkfGlwYWR8cGxheWJvb2t8c2lsay9pfTt2YXIgaCxpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cmV0dXJuIGcuRkFMTEJBQ0tfUEhPTkU9IlVua25vd25QaG9uZSIsZy5GQUxMQkFDS19UQUJMRVQ9IlVua25vd25UYWJsZXQiLGcuRkFMTEJBQ0tfTU9CSUxFPSJVbmtub3duTW9iaWxlIixoPSJpc0FycmF5ImluIEFycmF5P0FycmF5LmlzQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX0sZnVuY3Rpb24oKXt2YXIgYSxiLGMsZSxmLGosaz1nLm1vYmlsZURldGVjdFJ1bGVzO2ZvcihhIGluIGsucHJvcHMpaWYoaS5jYWxsKGsucHJvcHMsYSkpe2ZvcihiPWsucHJvcHNbYV0saChiKXx8KGI9W2JdKSxmPWIubGVuZ3RoLGU9MDtlPGY7KytlKWM9YltlXSxqPWMuaW5kZXhPZigiW1ZFUl0iKSxqPj0wJiYoYz1jLnN1YnN0cmluZygwLGopKyIoW1xcdy5fXFwrXSspIitjLnN1YnN0cmluZyhqKzUpKSxiW2VdPW5ldyBSZWdFeHAoYywiaSIpO2sucHJvcHNbYV09Yn1kKGsub3NzKSxkKGsucGhvbmVzKSxkKGsudGFibGV0cyksZChrLnVhcyksZChrLnV0aWxzKSxrLm9zczA9e1dpbmRvd3NQaG9uZU9TOmsub3NzLldpbmRvd3NQaG9uZU9TLFdpbmRvd3NNb2JpbGVPUzprLm9zcy5XaW5kb3dzTW9iaWxlT1N9fSgpLGcuZmluZE1hdGNoPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjIGluIGEpaWYoaS5jYWxsKGEsYykmJmFbY10udGVzdChiKSlyZXR1cm4gYztyZXR1cm4gbnVsbH0sZy5maW5kTWF0Y2hlcz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2Zvcih2YXIgZCBpbiBhKWkuY2FsbChhLGQpJiZhW2RdLnRlc3QoYikmJmMucHVzaChkKTtyZXR1cm4gY30sZy5nZXRWZXJzaW9uU3RyPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGYsaD1nLm1vYmlsZURldGVjdFJ1bGVzLnByb3BzO2lmKGkuY2FsbChoLGEpKWZvcihjPWhbYV0sZT1jLmxlbmd0aCxkPTA7ZDxlOysrZClpZihmPWNbZF0uZXhlYyhiKSxudWxsIT09ZilyZXR1cm4gZlsxXTtyZXR1cm4gbnVsbH0sZy5nZXRWZXJzaW9uPWZ1bmN0aW9uKGEsYil7dmFyIGM9Zy5nZXRWZXJzaW9uU3RyKGEsYik7cmV0dXJuIGM/Zy5wcmVwYXJlVmVyc2lvbk5vKGMpOk5hTn0sZy5wcmVwYXJlVmVyc2lvbk5vPWZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWEuc3BsaXQoL1thLXouXyBcL1wtXS9pKSwxPT09Yi5sZW5ndGgmJihhPWJbMF0pLGIubGVuZ3RoPjEmJihhPWJbMF0rIi4iLGIuc2hpZnQoKSxhKz1iLmpvaW4oIiIpKSxOdW1iZXIoYSl9LGcuaXNNb2JpbGVGYWxsYmFjaz1mdW5jdGlvbihhKXtyZXR1cm4gZy5kZXRlY3RNb2JpbGVCcm93c2Vycy5mdWxsUGF0dGVybi50ZXN0KGEpfHxnLmRldGVjdE1vYmlsZUJyb3dzZXJzLnNob3J0UGF0dGVybi50ZXN0KGEuc3Vic3RyKDAsNCkpfSxnLmlzVGFibGV0RmFsbGJhY2s9ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZGV0ZWN0TW9iaWxlQnJvd3NlcnMudGFibGV0UGF0dGVybi50ZXN0KGEpfSxnLnByZXBhcmVEZXRlY3Rpb25DYWNoZT1mdW5jdGlvbihhLGMsZCl7aWYoYS5tb2JpbGU9PT1iKXt2YXIgZSxoLGk7cmV0dXJuKGg9Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy50YWJsZXRzLGMpKT8oYS5tb2JpbGU9YS50YWJsZXQ9aCx2b2lkKGEucGhvbmU9bnVsbCkpOihlPWcuZmluZE1hdGNoKGcubW9iaWxlRGV0ZWN0UnVsZXMucGhvbmVzLGMpKT8oYS5tb2JpbGU9YS5waG9uZT1lLHZvaWQoYS50YWJsZXQ9bnVsbCkpOnZvaWQoZy5pc01vYmlsZUZhbGxiYWNrKGMpPyhpPWYuaXNQaG9uZVNpemVkKGQpLGk9PT1iPyhhLm1vYmlsZT1nLkZBTExCQUNLX01PQklMRSxhLnRhYmxldD1hLnBob25lPW51bGwpOmk/KGEubW9iaWxlPWEucGhvbmU9Zy5GQUxMQkFDS19QSE9ORSxhLnRhYmxldD1udWxsKTooYS5tb2JpbGU9YS50YWJsZXQ9Zy5GQUxMQkFDS19UQUJMRVQsYS5waG9uZT1udWxsKSk6Zy5pc1RhYmxldEZhbGxiYWNrKGMpPyhhLm1vYmlsZT1hLnRhYmxldD1nLkZBTExCQUNLX1RBQkxFVCxhLnBob25lPW51bGwpOmEubW9iaWxlPWEudGFibGV0PWEucGhvbmU9bnVsbCl9fSxnLm1vYmlsZUdyYWRlPWZ1bmN0aW9uKGEpe3ZhciBiPW51bGwhPT1hLm1vYmlsZSgpO3JldHVybiBhLm9zKCJpT1MiKSYmYS52ZXJzaW9uKCJpUGFkIik+PTQuM3x8YS5vcygiaU9TIikmJmEudmVyc2lvbigiaVBob25lIik+PTMuMXx8YS5vcygiaU9TIikmJmEudmVyc2lvbigiaVBvZCIpPj0zLjF8fGEudmVyc2lvbigiQW5kcm9pZCIpPjIuMSYmYS5pcygiV2Via2l0Iil8fGEudmVyc2lvbigiV2luZG93cyBQaG9uZSBPUyIpPj03fHxhLmlzKCJCbGFja0JlcnJ5IikmJmEudmVyc2lvbigiQmxhY2tCZXJyeSIpPj02fHxhLm1hdGNoKCJQbGF5Ym9vay4qVGFibGV0Iil8fGEudmVyc2lvbigid2ViT1MiKT49MS40JiZhLm1hdGNoKCJQYWxtfFByZXxQaXhpIil8fGEubWF0Y2goImhwLipUb3VjaFBhZCIpfHxhLmlzKCJGaXJlZm94IikmJmEudmVyc2lvbigiRmlyZWZveCIpPj0xMnx8YS5pcygiQ2hyb21lIikmJmEuaXMoIkFuZHJvaWRPUyIpJiZhLnZlcnNpb24oIkFuZHJvaWQiKT49NHx8YS5pcygiU2t5ZmlyZSIpJiZhLnZlcnNpb24oIlNreWZpcmUiKT49NC4xJiZhLmlzKCJBbmRyb2lkT1MiKSYmYS52ZXJzaW9uKCJBbmRyb2lkIik+PTIuM3x8YS5pcygiT3BlcmEiKSYmYS52ZXJzaW9uKCJPcGVyYSBNb2JpIik+MTEmJmEuaXMoIkFuZHJvaWRPUyIpfHxhLmlzKCJNZWVHb09TIil8fGEuaXMoIlRpemVuIil8fGEuaXMoIkRvbGZpbiIpJiZhLnZlcnNpb24oIkJhZGEiKT49Mnx8KGEuaXMoIlVDIEJyb3dzZXIiKXx8YS5pcygiRG9sZmluIikpJiZhLnZlcnNpb24oIkFuZHJvaWQiKT49Mi4zfHxhLm1hdGNoKCJLaW5kbGUgRmlyZSIpfHxhLmlzKCJLaW5kbGUiKSYmYS52ZXJzaW9uKCJLaW5kbGUiKT49M3x8YS5pcygiQW5kcm9pZE9TIikmJmEuaXMoIk5vb2tUYWJsZXQiKXx8YS52ZXJzaW9uKCJDaHJvbWUiKT49MTEmJiFifHxhLnZlcnNpb24oIlNhZmFyaSIpPj01JiYhYnx8YS52ZXJzaW9uKCJGaXJlZm94Iik+PTQmJiFifHxhLnZlcnNpb24oIk1TSUUiKT49NyYmIWJ8fGEudmVyc2lvbigiT3BlcmEiKT49MTAmJiFiPyJBIjphLm9zKCJpT1MiKSYmYS52ZXJzaW9uKCJpUGFkIik8NC4zfHxhLm9zKCJpT1MiKSYmYS52ZXJzaW9uKCJpUGhvbmUiKTwzLjF8fGEub3MoImlPUyIpJiZhLnZlcnNpb24oImlQb2QiKTwzLjF8fGEuaXMoIkJsYWNrYmVycnkiKSYmYS52ZXJzaW9uKCJCbGFja0JlcnJ5Iik+PTUmJmEudmVyc2lvbigiQmxhY2tCZXJyeSIpPDZ8fGEudmVyc2lvbigiT3BlcmEgTWluaSIpPj01JiZhLnZlcnNpb24oIk9wZXJhIE1pbmkiKTw9Ni41JiYoYS52ZXJzaW9uKCJBbmRyb2lkIik+PTIuM3x8YS5pcygiaU9TIikpfHxhLm1hdGNoKCJOb2tpYU44fE5va2lhQzd8Tjk3LipTZXJpZXM2MHxTeW1iaWFuLzMiKXx8YS52ZXJzaW9uKCJPcGVyYSBNb2JpIik+PTExJiZhLmlzKCJTeW1iaWFuT1MiKT8iQiI6KGEudmVyc2lvbigiQmxhY2tCZXJyeSIpPDV8fGEubWF0Y2goIk1TSUVNb2JpbGV8V2luZG93cyBDRS4qTW9iaWxlIil8fGEudmVyc2lvbigiV2luZG93cyBNb2JpbGUiKTw9NS4yLCJDIil9LGcuZGV0ZWN0T1M9ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZmluZE1hdGNoKGcubW9iaWxlRGV0ZWN0UnVsZXMub3NzMCxhKXx8Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy5vc3MsYSl9LGcuZ2V0RGV2aWNlU21hbGxlclNpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnNjcmVlbi53aWR0aDx3aW5kb3cuc2NyZWVuLmhlaWdodD93aW5kb3cuc2NyZWVuLndpZHRoOndpbmRvdy5zY3JlZW4uaGVpZ2h0fSxmLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Zixtb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLm1vYmlsZX0scGhvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLnBob25lfSx0YWJsZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLnRhYmxldH0sdXNlckFnZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhY2hlLnVzZXJBZ2VudD09PWImJih0aGlzLl9jYWNoZS51c2VyQWdlbnQ9Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy51YXMsdGhpcy51YSkpLHRoaXMuX2NhY2hlLnVzZXJBZ2VudH0sdXNlckFnZW50czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWNoZS51c2VyQWdlbnRzPT09YiYmKHRoaXMuX2NhY2hlLnVzZXJBZ2VudHM9Zy5maW5kTWF0Y2hlcyhnLm1vYmlsZURldGVjdFJ1bGVzLnVhcyx0aGlzLnVhKSksdGhpcy5fY2FjaGUudXNlckFnZW50c30sb3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FjaGUub3M9PT1iJiYodGhpcy5fY2FjaGUub3M9Zy5kZXRlY3RPUyh0aGlzLnVhKSksdGhpcy5fY2FjaGUub3N9LHZlcnNpb246ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZ2V0VmVyc2lvbihhLHRoaXMudWEpfSx2ZXJzaW9uU3RyOmZ1bmN0aW9uKGEpe3JldHVybiBnLmdldFZlcnNpb25TdHIoYSx0aGlzLnVhKX0saXM6ZnVuY3Rpb24oYil7cmV0dXJuIGModGhpcy51c2VyQWdlbnRzKCksYil8fGEoYix0aGlzLm9zKCkpfHxhKGIsdGhpcy5waG9uZSgpKXx8YShiLHRoaXMudGFibGV0KCkpfHxjKGcuZmluZE1hdGNoZXMoZy5tb2JpbGVEZXRlY3RSdWxlcy51dGlscyx0aGlzLnVhKSxiKX0sbWF0Y2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBSZWdFeHB8fChhPW5ldyBSZWdFeHAoYSwiaSIpKSxhLnRlc3QodGhpcy51YSl9LGlzUGhvbmVTaXplZDpmdW5jdGlvbihhKXtyZXR1cm4gZi5pc1Bob25lU2l6ZWQoYXx8dGhpcy5tYXhQaG9uZVdpZHRoKX0sbW9iaWxlR3JhZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FjaGUuZ3JhZGU9PT1iJiYodGhpcy5fY2FjaGUuZ3JhZGU9Zy5tb2JpbGVHcmFkZSh0aGlzKSksdGhpcy5fY2FjaGUuZ3JhZGV9fSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LnNjcmVlbj9mLmlzUGhvbmVTaXplZD1mdW5jdGlvbihhKXtyZXR1cm4gYTwwP2I6Zy5nZXREZXZpY2VTbWFsbGVyU2lkZSgpPD1hfTpmLmlzUGhvbmVTaXplZD1mdW5jdGlvbigpe30sZi5faW1wbD1nLGYudmVyc2lvbj0iMS40LjUgMjAyMS0wMy0xMyIsZn0pfShmdW5jdGlvbihhKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMpcmV0dXJuIGZ1bmN0aW9uKGEpe21vZHVsZS5leHBvcnRzPWEoKX07aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZClyZXR1cm4gZGVmaW5lO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXJldHVybiBmdW5jdGlvbihhKXt3aW5kb3cuTW9iaWxlRGV0ZWN0PWEoKX07dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGVudmlyb25tZW50Iil9KCkpO3ZhciBhaV9saXN0cz0hMCxhaV9ibG9ja19jbGFzc19kZWY9ImNvZGUtYmxvY2siO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYWlfbGlzdHMpe2Z1bmN0aW9uIFgoYixlKXtmb3IodmFyIHA9W107Yj1iLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7KSgidW5kZWZpbmVkIj09dHlwZW9mIGV8fGIubWF0Y2hlcyhlKSkmJnAucHVzaChiKTtyZXR1cm4gcH1mdW5jdGlvbiBmYShiLGUpe2Zvcih2YXIgcD1bXTtiPWIubmV4dEVsZW1lbnRTaWJsaW5nOykoInVuZGVmaW5lZCI9PXR5cGVvZiBlfHxiLm1hdGNoZXMoZSkpJiZwLnB1c2goYik7cmV0dXJuIHB9dmFyIGhvc3RfcmVnZXhwPVJlZ0V4cCgiOlxcL1xcLyguW14vOl0rKSIsImkiKTtmdW5jdGlvbiBoYShiKXtiPWIubWF0Y2goaG9zdF9yZWdleHApO3JldHVybiBudWxsIT1iJiYxPGIubGVuZ3RoJiYic3RyaW5nIj09PXR5cGVvZiBiWzFdJiYwPGJbMV0ubGVuZ3RoP2JbMV0udG9Mb3dlckNhc2UoKTpudWxsfWZ1bmN0aW9uIFEoYil7cmV0dXJuIGIuaW5jbHVkZXMoIjoiKT8oYj1iLnNwbGl0KCI6IiksMUUzKigzNjAwKnBhcnNlSW50KGJbMF0pKzYwKnBhcnNlSW50KGJbMV0pK3BhcnNlSW50KGJbMl0pKSk6bnVsbH1mdW5jdGlvbiBZKGIpe3RyeXt2YXIgZT1EYXRlLnBhcnNlKGIpO2lzTmFOKGUpJiYoZT1udWxsKX1jYXRjaChwKXtlPW51bGx9aWYobnVsbD09ZSYmYi5pbmNsdWRlcygiICIpKXtiPWIuc3BsaXQoIiAiKTt0cnl7ZT1EYXRlLnBhcnNlKGJbMF0pLGUrPVEoYlsxXSksaXNOYU4oZSkmJihlPW51bGwpfWNhdGNoKHApe2U9bnVsbH19cmV0dXJuIGV9ZnVuY3Rpb24gWigpe251bGw9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLWJhciIpJiZudWxsPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuYWktbGlzdC1tYW51YWwiKXx8ImZ1bmN0aW9uIiE9dHlwZW9mIF9fdGNmYXBpfHwiZnVuY3Rpb24iIT10eXBlb2YgYWlfbG9hZF9ibG9ja3N8fCJ1bmRlZmluZWQiIT10eXBlb2YgYWlfaWFiX3RjZl9jYWxsYmFja19pbnN0YWxsZWR8fChfX3RjZmFwaSgiYWRkRXZlbnRMaXN0ZW5lciIsMixmdW5jdGlvbihiLGUpe2UmJiJ1c2VyYWN0aW9uY29tcGxldGUiPT09Yi5ldmVudFN0YXR1cyYmKGFpX3RjRGF0YT1iLGFpX2xvYWRfYmxvY2tzKCksYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1zdGF0dXMiKSxudWxsIT1iJiYoYi50ZXh0Q29udGVudD0iSUFCIFRDRiAyLjAgREFUQSBMT0FERUQiKSxiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLWJhciIpLG51bGwhPWImJihiLmNsYXNzTGlzdC5yZW1vdmUoInN0YXR1cy1lcnJvciIpLGIuY2xhc3NMaXN0LmFkZCgic3RhdHVzLW9rIikpKX0pLGFpX2lhYl90Y2ZfY2FsbGJhY2tfaW5zdGFsbGVkPSEwKX1haV9wcm9jZXNzX2xpc3RzPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGUoYSxkLGspe2lmKDA9PWEubGVuZ3RoKXtpZigiIUAhIj09aylyZXR1cm4hMDtkIT1rJiYoInRydWUiPT1rLnRvTG93ZXJDYXNlKCk/az0hMDoiZmFsc2UiPT1rLnRvTG93ZXJDYXNlKCkmJihrPSExKSk7cmV0dXJuIGQ9PWt9aWYoIm9iamVjdCIhPXR5cGVvZiBkJiYiYXJyYXkiIT10eXBlb2YgZClyZXR1cm4hMTt2YXIgbD1hWzBdO2E9YS5zbGljZSgxKTtpZigiKiI9PWwpZm9yKGxldFssbl1vZiBPYmplY3QuZW50cmllcyhkKSl7aWYoZShhLG4saykpcmV0dXJuITB9ZWxzZSBpZihsIGluIGQpcmV0dXJuIGUoYSxkW2xdLGspO3JldHVybiExfWZ1bmN0aW9uIHAoYSxkLGspe2lmKCJvYmplY3QiIT10eXBlb2YgYXx8LTE9PWQuaW5kZXhPZigiWyIpKXJldHVybiExO2Q9ZC5yZXBsYWNlKC9dfCAvZ2ksIiIpLnNwbGl0KCJbIik7cmV0dXJuIGUoZCxhLGspfWZ1bmN0aW9uIHooKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgX190Y2ZhcGkpe3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLXN0YXR1cyIpLGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2YtYmFyIik7bnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIERFVEVDVEVEIik7X190Y2ZhcGkoImdldFRDRGF0YSIsMixmdW5jdGlvbihrLGwpe2w/KG51bGwhPWQmJmQuY2xhc3NMaXN0LmFkZCgic3RhdHVzLW9rIiksInRjbG9hZGVkIj09ay5ldmVudFN0YXR1c3x8InVzZXJhY3Rpb25jb21wbGV0ZSI9PWsuZXZlbnRTdGF0dXMpPyhhaV90Y0RhdGE9ayxrLmdkcHJBcHBsaWVzP251bGwhPWEmJihhLnRleHRDb250ZW50PSJJQUIgVENGIDIuMCBEQVRBIExPQURFRCIpOm51bGwhPWEmJihhLnRleHRDb250ZW50PSJJQUIgVENGIDIuMCBHRFBSIERPRVMgTk9UIEFQUExZIiksbnVsbCE9ZCYmKGQuY2xhc3NMaXN0LnJlbW92ZSgic3RhdHVzLWVycm9yIiksZC5jbGFzc0xpc3QuYWRkKCJzdGF0dXMtb2siKSksc2V0VGltZW91dChmdW5jdGlvbigpe2FpX3Byb2Nlc3NfbGlzdHMoKX0sMTApKToiY21wdWlzaG93biI9PWsuZXZlbnRTdGF0dXMmJihhaV9jbXB1aXNob3duPSEwLG51bGwhPWEmJihhLnRleHRDb250ZW50PSJJQUIgVENGIDIuMCBDTVAgVUkgU0hPV04iKSxudWxsIT1kJiYoZC5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxkLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSk6KG51bGwhPWEmJihhLnRleHRDb250ZW50PSJJQUIgVENGIDIuMCBfX3RjZmFwaSBnZXRUQ0RhdGEgZmFpbGVkIiksbnVsbCE9ZCYmKGQuY2xhc3NMaXN0LnJlbW92ZSgic3RhdHVzLW9rIiksZC5jbGFzc0xpc3QuYWRkKCJzdGF0dXMtZXJyb3IiKSkpfSl9fWZ1bmN0aW9uIEMoYSl7ImZ1bmN0aW9uIj09dHlwZW9mIF9fdGNmYXBpPyhhaV90Y2ZhcGlfZm91bmQ9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBhaV9pYWJfdGNmX2NhbGxiYWNrX2luc3RhbGxlZCYmWigpLCJ1bmRlZmluZWQiPT10eXBlb2YgYWlfdGNEYXRhX3JlcXVlc3RlZCYmKGFpX3RjRGF0YV9yZXF1ZXN0ZWQ9ITAseigpLGNvb2tpZXNfbmVlZF90Y0RhdGE9ITApKTphJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBhaV90Y2ZhcGlfZm91bmQmJihhaV90Y2ZhcGlfZm91bmQ9ITEsc2V0VGltZW91dChmdW5jdGlvbigpe2FpX3Byb2Nlc3NfbGlzdHMoKX0sMTApKSxhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLXN0YXR1cyIpLG51bGwhPWEmJihhLnRleHRDb250ZW50PSJJQUIgVENGIDIuMCBNSVNTSU5HOiBfX3RjZmFwaSBmdW5jdGlvbiBub3QgZm91bmQiKSxhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLWJhciIpLG51bGwhPWEmJihhLmNsYXNzTGlzdC5yZW1vdmUoInN0YXR1cy1vayIpLGEuY2xhc3NMaXN0LmFkZCgic3RhdHVzLWVycm9yIikpKX1pZihudWxsPT1iKWI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGl2LmFpLWxpc3QtZGF0YSwgbWV0YS5haS1saXN0LWRhdGEiKTtlbHNle3dpbmRvdy5qUXVlcnkmJndpbmRvdy5qUXVlcnkuZm4mJmIgaW5zdGFuY2VvZiBqUXVlcnkmJihiPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGIpKTt2YXIgeD1bXTtiLmZvckVhY2goKGEsZCk9PnthLm1hdGNoZXMoIi5haS1saXN0LWRhdGEiKT94LnB1c2goYSk6KGE9YS5xdWVyeVNlbGVjdG9yQWxsKCIuYWktbGlzdC1kYXRhIiksYS5sZW5ndGgmJmEuZm9yRWFjaCgoayxsKT0+e3gucHVzaChrKX0pKX0pO2I9eH1pZihiLmxlbmd0aCl7Yi5mb3JFYWNoKChhLGQpPT57YS5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWRhdGEiKX0pO3ZhciBMPWlhKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2lmKG51bGwhPUwucmVmZXJyZXIpdmFyIEE9TC5yZWZlcnJlcjtlbHNlIEE9ZG9jdW1lbnQucmVmZXJyZXIsIiIhPUEmJihBPWhhKEEpKTt2YXIgUj13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCxTPVIudG9Mb3dlckNhc2UoKSxhYT1uYXZpZ2F0b3IubGFuZ3VhZ2UsTT1hYS50b0xvd2VyQ2FzZSgpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIE1vYmlsZURldGVjdCl2YXIgYmE9bmV3IE1vYmlsZURldGVjdChSKTtiLmZvckVhY2goKGEsZCk9Pnt2YXIgaz1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKTtrLmZvckVhY2goZnVuY3Rpb24oZixoKXtrW2hdPWYudHJpbSgpfSk7ZD1hLmNsb3Nlc3QoImRpdi4iK2FpX2Jsb2NrX2NsYXNzX2RlZik7dmFyIGw9ITA7aWYoYS5oYXNBdHRyaWJ1dGUoInJlZmVyZXItbGlzdCIpKXt2YXIgbj1hLmdldEF0dHJpYnV0ZSgicmVmZXJlci1saXN0Iik7bj1iNjRkKG4pLnNwbGl0KCIsIik7dmFyIHY9YS5nZXRBdHRyaWJ1dGUoInJlZmVyZXItbGlzdC10eXBlIiksRT0hMTtuLmV2ZXJ5KChmLGgpPT57Zj1mLnRyaW0oKTtpZigiIj09ZilyZXR1cm4hMDtpZigiKiI9PWYuY2hhckF0KDApKWlmKCIqIj09Zi5jaGFyQXQoZi5sZW5ndGgtMSkpe2lmKGY9Zi5zdWJzdHIoMSxmLmxlbmd0aC0yKSwtMSE9QS5pbmRleE9mKGYpKXJldHVybiBFPSEwLCExfWVsc2V7aWYoZj1mLnN1YnN0cigxKSxBLnN1YnN0cigtZi5sZW5ndGgpPT1mKXJldHVybiBFPSEwLCExfWVsc2UgaWYoIioiPT1mLmNoYXJBdChmLmxlbmd0aC0xKSl7aWYoZj1mLnN1YnN0cigwLGYubGVuZ3RoLTEpLDA9PUEuaW5kZXhPZihmKSlyZXR1cm4gRT0hMCwhMX1lbHNlIGlmKCIjIj09Zil7aWYoIiI9PUEpcmV0dXJuIEU9ITAsITF9ZWxzZSBpZihmPT1BKXJldHVybiBFPSEwLCExO3JldHVybiEwfSk7dmFyIHI9RTtzd2l0Y2godil7Y2FzZSAiQiI6ciYmKGw9ITEpO2JyZWFrO2Nhc2UgIlciOnJ8fChsPSExKX19aWYobCYmYS5oYXNBdHRyaWJ1dGUoImNsaWVudC1saXN0IikmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGJhKXN3aXRjaChuPWEuZ2V0QXR0cmlidXRlKCJjbGllbnQtbGlzdCIpLG49YjY0ZChuKS5zcGxpdCgiLCIpLHY9YS5nZXRBdHRyaWJ1dGUoImNsaWVudC1saXN0LXR5cGUiKSxyPSExLG4uZXZlcnkoKGYsaCk9PntpZigiIj09Zi50cmltKCkpcmV0dXJuITA7Zi5zcGxpdCgiJiYiKS5ldmVyeSgoYyx0KT0+e3Q9ITA7dmFyIHc9ITE7Zm9yKGM9Yy50cmltKCk7IiEhIj09Yy5zdWJzdHJpbmcoMCwyKTspdD0hdCxjPWMuc3Vic3RyaW5nKDIpOyJsYW5ndWFnZToiPT1jLnN1YnN0cmluZygwLDkpJiYodz0hMCxjPWMuc3Vic3RyaW5nKDkpLnRvTG93ZXJDYXNlKCkpO3ZhciBxPSExO3c/IioiPT1jLmNoYXJBdCgwKT8iKiI9PWMuY2hhckF0KGMubGVuZ3RoLTEpPyhjPWMuc3Vic3RyKDEsYy5sZW5ndGgtMikudG9Mb3dlckNhc2UoKSwtMSE9TS5pbmRleE9mKGMpJiYocT0hMCkpOihjPWMuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCksTS5zdWJzdHIoLWMubGVuZ3RoKT09YyYmKHE9ITApKToiKiI9PWMuY2hhckF0KGMubGVuZ3RoLTEpPyhjPWMuc3Vic3RyKDAsYy5sZW5ndGgtMSkudG9Mb3dlckNhc2UoKSwwPT1NLmluZGV4T2YoYykmJihxPSEwKSk6Yz09TSYmKHE9ITApOiIqIj09Yy5jaGFyQXQoMCk/IioiPT1jLmNoYXJBdChjLmxlbmd0aC0xKT8oYz1jLnN1YnN0cigxLGMubGVuZ3RoLTIpLnRvTG93ZXJDYXNlKCksLTEhPVMuaW5kZXhPZihjKSYmKHE9ITApKTooYz1jLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpLFMuc3Vic3RyKC1jLmxlbmd0aCk9PWMmJihxPSEwKSk6IioiPT1jLmNoYXJBdChjLmxlbmd0aC0xKT8oYz1jLnN1YnN0cigwLGMubGVuZ3RoLTEpLnRvTG93ZXJDYXNlKCksMD09Uy5pbmRleE9mKGMpJiYocT0hMCkpOmJhLmlzKGMpJiYocT0hMCk7cmV0dXJuKHI9cT90OiF0KT8hMDohMX0pO3JldHVybiByPyExOiEwfSksdil7Y2FzZSAiQiI6ciYmKGw9ITEpO2JyZWFrO2Nhc2UgIlciOnJ8fChsPSExKX12YXIgTj1uPSExO2Zvcih2PTE7Mj49djt2KyspaWYobCl7c3dpdGNoKHYpe2Nhc2UgMTp2YXIgZz1hLmdldEF0dHJpYnV0ZSgiY29va2llLWxpc3QiKTticmVhaztjYXNlIDI6Zz1hLmdldEF0dHJpYnV0ZSgicGFyYW1ldGVyLWxpc3QiKX1pZihudWxsIT1nKXtnPWI2NGQoZyk7c3dpdGNoKHYpe2Nhc2UgMTp2YXIgeT1hLmdldEF0dHJpYnV0ZSgiY29va2llLWxpc3QtdHlwZSIpO2JyZWFrO2Nhc2UgMjp5PWEuZ2V0QXR0cmlidXRlKCJwYXJhbWV0ZXItbGlzdC10eXBlIil9Zz1nLnJlcGxhY2UoInRjZi1nZHByIiwidGNmLXYyW2dkcHJBcHBsaWVzXT10cnVlIik7Zz1nLnJlcGxhY2UoInRjZi1uby1nZHByIiwidGNmLXYyW2dkcHJBcHBsaWVzXT1mYWxzZSIpO2c9Zy5yZXBsYWNlKCJ0Y2YtZ29vZ2xlIiwidGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzc1NV09dHJ1ZSAmJiB0Y2YtdjJbcHVycG9zZV1bY29uc2VudHNdWzFdPXRydWUiKTtnPWcucmVwbGFjZSgidGNmLW5vLWdvb2dsZSIsIiEhdGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzc1NV0iKTtnPWcucmVwbGFjZSgidGNmLW1lZGlhLm5ldCIsInRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVsxNDJdPXRydWUgJiYgdGNmLXYyW3B1cnBvc2VdW2NvbnNlbnRzXVsxXT10cnVlIik7Zz1nLnJlcGxhY2UoInRjZi1uby1tZWRpYS5uZXQiLCIhIXRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVsxNDJdIik7Zz1nLnJlcGxhY2UoInRjZi1hbWF6b24iLCJ0Y2YtdjJbdmVuZG9yXVtjb25zZW50c11bNzkzXT10cnVlICYmIHRjZi12MltwdXJwb3NlXVtjb25zZW50c11bMV09dHJ1ZSIpO2c9Zy5yZXBsYWNlKCJ0Y2Ytbm8tYW1hem9uIiwiISF0Y2YtdjJbdmVuZG9yXVtjb25zZW50c11bNzkzXSIpO2c9Zy5yZXBsYWNlKCJ0Y2YtZXpvaWMiLCJ0Y2YtdjJbdmVuZG9yXVtjb25zZW50c11bMzQ3XT10cnVlICYmIHRjZi12MltwdXJwb3NlXVtjb25zZW50c11bMV09dHJ1ZSIpO2c9Zy5yZXBsYWNlKCJ0Y2Ytbm8tZXpvaWMiLCIhIXRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVszNDddIik7dmFyIEY9Zy5zcGxpdCgiLCIpLGNhPVtdO2suZm9yRWFjaChmdW5jdGlvbihmKXtmPWYuc3BsaXQoIj0iKTt0cnl7dmFyIGg9SlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZlsxXSkpfWNhdGNoKGMpe2g9ZGVjb2RlVVJJQ29tcG9uZW50KGZbMV0pfWNhW2ZbMF1dPWh9KTtyPSExO3ZhciBJPWE7Ri5ldmVyeSgoZixoKT0+e2Yuc3BsaXQoIiYmIikuZXZlcnkoKGMsdCk9Pnt0PSEwO2ZvcihjPWMudHJpbSgpOyIhISI9PWMuc3Vic3RyaW5nKDAsMik7KXQ9IXQsYz1jLnN1YnN0cmluZygyKTt2YXIgdz1jLHE9IiFAISIsVD0idGNmLXYyIj09dyYmIiFAISI9PXEsQj0tMSE9Yy5pbmRleE9mKCJbIiksSj0wPT1jLmluZGV4T2YoInRjZi12MiIpfHwwPT1jLmluZGV4T2YoImV1Y29uc2VudC12MiIpO0o9SiYmKEJ8fFQpOy0xIT1jLmluZGV4T2YoIj0iKSYmKHE9Yy5zcGxpdCgiPSIpLHc9cVswXSxxPXFbMV0sQj0tMSE9dy5pbmRleE9mKCJbIiksSj0oSj0wPT13LmluZGV4T2YoInRjZi12MiIpfHwwPT13LmluZGV4T2YoImV1Y29uc2VudC12MiIpKSYmKEJ8fFQpKTtpZihKKWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLXN0YXR1cyIpLEI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2YtYmFyIiksbnVsbCE9QiYmKEIuc3R5bGUuZGlzcGxheT0iYmxvY2siKSxUJiYiYm9vbGVhbiI9PXR5cGVvZiBhaV90Y2ZhcGlfZm91bmQ/cj1haV90Y2ZhcGlfZm91bmQ/dDohdDoib2JqZWN0Ij09dHlwZW9mIGFpX3RjRGF0YT8obnVsbCE9QiYmQi5jbGFzc0xpc3QuYWRkKCJzdGF0dXMtb2siKSx3PXcucmVwbGFjZSgvXXwgL2dpLCIiKS5zcGxpdCgiWyIpLHcuc2hpZnQoKSxyPSh3PWUodyxhaV90Y0RhdGEscSkpP3Q6IXQpOiJ1bmRlZmluZWQiPT10eXBlb2YgYWlfdGNmYXBpX2ZvdW5kJiYoSS5jbGFzc0xpc3QuYWRkKCJhaS1saXN0LWRhdGEiKSxOPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBfX3RjZmFwaT9DKCExKToidW5kZWZpbmVkIj09dHlwZW9mIGFpX3RjRGF0YV9yZXRyeWluZyYmKGFpX3RjRGF0YV9yZXRyeWluZz0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImZ1bmN0aW9uIj09dHlwZW9mIF9fdGNmYXBpP0MoITEpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgX190Y2ZhcGk/QyghMSk6c2V0VGltZW91dChmdW5jdGlvbigpe0MoITApfSwzRTMpfSwxRTMpfSw2MDApKSk7ZWxzZSBpZihCKXI9KHc9cChjYSx3LHEpKT90OiF0O2Vsc2V7dmFyIFU9ITE7IiFAISI9PXE/ay5ldmVyeShmdW5jdGlvbihqYSl7cmV0dXJuIGphLnNwbGl0KCI9IilbMF09PWM/KFU9ITAsITEpOiEwfSk6VT0tMSE9ay5pbmRleE9mKGMpO3I9VT90OiF0fXJldHVybiByPyEwOiExfSk7cmV0dXJuIHI/ITE6ITB9KTtyJiYoTj0hMSxJLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtZGF0YSIpKTtzd2l0Y2goeSl7Y2FzZSAiQiI6ciYmKGw9ITEpO2JyZWFrO2Nhc2UgIlciOnJ8fChsPSExKX19fWEuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1saXN0LW1hbnVhbCIpJiYobD8oSS5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWRhdGEiKSxJLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtbWFudWFsIikpOihuPSEwLEkuY2xhc3NMaXN0LmFkZCgiYWktbGlzdC1kYXRhIikpKTsobHx8IW4mJiFOKSYmYS5oYXNBdHRyaWJ1dGUoImRhdGEtZGVidWctaW5mbyIpJiYoZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuIithLmRhdGFzZXQuZGVidWdJbmZvKSxudWxsIT1nJiYoZz1nLnBhcmVudEVsZW1lbnQsbnVsbCE9ZyYmZy5jbGFzc0xpc3QuY29udGFpbnMoImFpLWRlYnVnLWluZm8iKSYmZy5yZW1vdmUoKSkpO3k9WChhLCIuYWktZGVidWctYmFyLmFpLWRlYnVnLWxpc3RzIik7dmFyIGthPSIiPT1BPyIjIjpBOzAhPXkubGVuZ3RoJiZ5LmZvckVhY2goKGYsaCk9PntoPWYucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLW5hbWUuYWktbGlzdC1pbmZvIik7bnVsbCE9aCYmKGgudGV4dENvbnRlbnQ9a2EsaC50aXRsZT1SKyJcbiIrYWEpO2g9Zi5xdWVyeVNlbGVjdG9yKCIuYWktZGVidWctbmFtZS5haS1saXN0LXN0YXR1cyIpO251bGwhPWgmJihoLnRleHRDb250ZW50PWw/YWlfZnJvbnQudmlzaWJsZTphaV9mcm9udC5oaWRkZW4pfSk7Zz0hMTtpZihsJiZhLmhhc0F0dHJpYnV0ZSgic2NoZWR1bGluZy1zdGFydCIpJiZhLmhhc0F0dHJpYnV0ZSgic2NoZWR1bGluZy1lbmQiKSYmYS5oYXNBdHRyaWJ1dGUoInNjaGVkdWxpbmctZGF5cyIpKXt2YXIgdT1hLmdldEF0dHJpYnV0ZSgic2NoZWR1bGluZy1zdGFydCIpO3Y9YS5nZXRBdHRyaWJ1dGUoInNjaGVkdWxpbmctZW5kIik7eT1hLmdldEF0dHJpYnV0ZSgic2NoZWR1bGluZy1kYXlzIik7Zz0hMDt1PWI2NGQodSk7Rj1iNjRkKHYpO3ZhciBWPXBhcnNlSW50KGEuZ2V0QXR0cmlidXRlKCJzY2hlZHVsaW5nLWZhbGxiYWNrIikpLE89cGFyc2VJbnQoYS5nZXRBdHRyaWJ1dGUoImdtdCIpKTtpZih1LmluY2x1ZGVzKCItIil8fEYuaW5jbHVkZXMoIi0iKSlQPVkodSkrTyxLPVkoRikrTztlbHNlIHZhciBQPVEodSksSz1RKEYpO1A/Pz0wO0s/Pz0wO3ZhciBXPWI2NGQoeSkuc3BsaXQoIiwiKTt5PWEuZ2V0QXR0cmlidXRlKCJzY2hlZHVsaW5nLXR5cGUiKTt2YXIgRD0obmV3IERhdGUpLmdldFRpbWUoKStPO3Y9bmV3IERhdGUoRCk7dmFyIEc9di5nZXREYXkoKTswPT1HP0c9NjpHLS07dS5pbmNsdWRlcygiLSIpfHxGLmluY2x1ZGVzKCItIil8fCh1PShuZXcgRGF0ZSh2LmdldEZ1bGxZZWFyKCksdi5nZXRNb250aCgpLHYuZ2V0RGF0ZSgpKSkuZ2V0VGltZSgpK08sRC09dSwwPkQmJihEKz04NjRFNSkpO3NjaGVkdWxpbmdfc3RhcnRfZGF0ZV9vaz1EPj1QO3NjaGVkdWxpbmdfZW5kX2RhdGVfb2s9MD09S3x8RDxLO3U9c2NoZWR1bGluZ19zdGFydF9kYXRlX29rJiZzY2hlZHVsaW5nX2VuZF9kYXRlX29rJiZXLmluY2x1ZGVzKEcudG9TdHJpbmcoKSk7c3dpdGNoKHkpe2Nhc2UgIkIiOnU9IXV9dXx8KGw9ITEpO3ZhciBsYT12LnRvSVNPU3RyaW5nKCkuc3BsaXQoIi4iKVswXS5yZXBsYWNlKCJUIiwiICIpO3k9WChhLCIuYWktZGVidWctYmFyLmFpLWRlYnVnLXNjaGVkdWxpbmciKTswIT15Lmxlbmd0aCYmeS5mb3JFYWNoKChmLGgpPT57aD1mLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1uYW1lLmFpLXNjaGVkdWxpbmctaW5mbyIpO251bGwhPWgmJihoLnRleHRDb250ZW50PWxhKyIgIitHKyIgY3VycmVudF90aW1lOiAiK01hdGguZmxvb3IoRC50b1N0cmluZygpLzFFMykrIiAgc3RhcnRfZGF0ZToiK01hdGguZmxvb3IoUC8xRTMpLnRvU3RyaW5nKCkrIj0+IitzY2hlZHVsaW5nX3N0YXJ0X2RhdGVfb2sudG9TdHJpbmcoKSsiIGVuZF9kYXRlOiIrTWF0aC5mbG9vcihLLzFFMykudG9TdHJpbmcoKSsiPT4iK3NjaGVkdWxpbmdfZW5kX2RhdGVfb2sudG9TdHJpbmcoKSsiIGRheXM6IitXLnRvU3RyaW5nKCkrIj0+IitXLmluY2x1ZGVzKEcudG9TdHJpbmcoKSkudG9TdHJpbmcoKSk7aD1mLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1uYW1lLmFpLXNjaGVkdWxpbmctc3RhdHVzIik7bnVsbCE9aCYmKGgudGV4dENvbnRlbnQ9bD9haV9mcm9udC52aXNpYmxlOmFpX2Zyb250LmhpZGRlbik7bHx8MD09Vnx8KGYuY2xhc3NMaXN0LnJlbW92ZSgiYWktZGVidWctc2NoZWR1bGluZyIpLGYuY2xhc3NMaXN0LmFkZCgiYWktZGVidWctZmFsbGJhY2siKSxoPWYucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLW5hbWUuYWktc2NoZWR1bGluZy1zdGF0dXMiKSxudWxsIT1oJiYoaC50ZXh0Q29udGVudD1haV9mcm9udC5mYWxsYmFjaysiID0gIitWKSl9KX1pZihufHwhbCYmTilyZXR1cm4hMDthLnN0eWxlLnZpc2liaWxpdHk9IiI7YS5zdHlsZS5wb3NpdGlvbj0iIjthLnN0eWxlLndpZHRoPSIiO2Euc3R5bGUuaGVpZ2h0PSIiO2Euc3R5bGUuekluZGV4PSIiO2lmKGwpe2lmKG51bGwhPWQmJihkLnN0eWxlLnZpc2liaWxpdHk9IiIsZC5jbGFzc0xpc3QuY29udGFpbnMoImFpLXJlbW92ZS1wb3NpdGlvbiIpJiYoZC5zdHlsZS5wb3NpdGlvbj0iIikpLGEuaGFzQXR0cmlidXRlKCJkYXRhLWNvZGUiKSl7bj1iNjRkKGEuZGF0YXNldC5jb2RlKTt1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Zz0hMDt0cnl7SD11LmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChuKX1jYXRjaChmKXtnPSExfWcmJihudWxsIT1hLmNsb3Nlc3QoImhlYWQiKT8oYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShILGEubmV4dFNpYmxpbmcpLGEucmVtb3ZlKCkpOmEuYXBwZW5kKEgpKTtkYShhKX19ZWxzZSBpZihnJiYhdSYmMCE9Vil7bnVsbCE9ZCYmKGQuc3R5bGUudmlzaWJpbGl0eT0iIixkLmNsYXNzTGlzdC5jb250YWlucygiYWktcmVtb3ZlLXBvc2l0aW9uIikmJmQuY3NzKHtwb3NpdGlvbjoiIn0pKTtuPWZhKGEsIi5haS1mYWxsYmFjayIpOzAhPW4ubGVuZ3RoJiZuLmZvckVhY2goKGYsaCk9PntmLmNsYXNzTGlzdC5yZW1vdmUoImFpLWZhbGxiYWNrIil9KTtpZihhLmhhc0F0dHJpYnV0ZSgiZGF0YS1mYWxsYmFjay1jb2RlIikpe249YjY0ZChhLmRhdGFzZXQuZmFsbGJhY2tDb2RlKTt1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Zz0hMDt0cnl7dmFyIEg9dS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQobil9Y2F0Y2goZil7Zz0hMX1nJiZhLmFwcGVuZChIKTtkYShhKX1lbHNlIGEuc3R5bGUuZGlzcGxheT0ibm9uZSIsbnVsbCE9ZCYmbnVsbD09ZC5xdWVyeVNlbGVjdG9yKCIuYWktZGVidWctYmxvY2siKSYmZC5oYXNBdHRyaWJ1dGUoInN0eWxlIikmJi0xPT1kLmdldEF0dHJpYnV0ZSgic3R5bGUiKS5pbmRleE9mKCJoZWlnaHQ6IikmJihkLnN0eWxlLmRpc3BsYXk9Im5vbmUiKTtudWxsIT1kJiZkLmhhc0F0dHJpYnV0ZSgiZGF0YS1haSIpJiYoZC5nZXRBdHRyaWJ1dGUoImRhdGEtYWkiKSxhLmhhc0F0dHJpYnV0ZSgiZmFsbGJhY2stdHJhY2tpbmciKSYmKEg9YS5nZXRBdHRyaWJ1dGUoImZhbGxiYWNrLXRyYWNraW5nIiksZC5zZXRBdHRyaWJ1dGUoImRhdGEtYWktIithLmdldEF0dHJpYnV0ZSgiZmFsbGJhY2tfbGV2ZWwiKSxIKSkpfWVsc2UgYS5zdHlsZS5kaXNwbGF5PSJub25lIixudWxsIT1kJiYoZC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtYWkiKSxkLmNsYXNzTGlzdC5yZW1vdmUoImFpLXRyYWNrIiksbnVsbCE9ZC5xdWVyeVNlbGVjdG9yKCIuYWktZGVidWctYmxvY2siKT8oZC5zdHlsZS52aXNpYmlsaXR5PSIiLGQuY2xhc3NMaXN0LnJlbW92ZSgiYWktY2xvc2UiKSxkLmNsYXNzTGlzdC5jb250YWlucygiYWktcmVtb3ZlLXBvc2l0aW9uIikmJihkLnN0eWxlLnBvc2l0aW9uPSIiKSk6ZC5oYXNBdHRyaWJ1dGUoInN0eWxlIikmJi0xPT1kLmdldEF0dHJpYnV0ZSgic3R5bGUiKS5pbmRleE9mKCJoZWlnaHQ6IikmJihkLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSk7YS5zZXRBdHRyaWJ1dGUoImRhdGEtY29kZSIsIiIpO2Euc2V0QXR0cmlidXRlKCJkYXRhLWZhbGxiYWNrLWNvZGUiLCIiKTtudWxsIT1kJiZkLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2siKX0pfX07ZnVuY3Rpb24gZWEoYil7Yj1gOyAke2RvY3VtZW50LmNvb2tpZX1gLnNwbGl0KGA7ICR7Yn09YCk7aWYoMj09PWIubGVuZ3RoKXJldHVybiBiLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKX1mdW5jdGlvbiBtYShiLGUscCl7ZWEoYikmJihkb2N1bWVudC5jb29raWU9YisiPSIrKGU/IjtwYXRoPSIrZToiIikrKHA/Ijtkb21haW49IitwOiIiKSsiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQiKX1mdW5jdGlvbiBtKGIpe2VhKGIpJiYobWEoYiwiLyIsd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSxkb2N1bWVudC5jb29raWU9YisiPTsgUGF0aD0vOyBFeHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UOyIpfShmdW5jdGlvbihiKXsiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmIWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD9iKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsYil9KShmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXthaV9wcm9jZXNzX2xpc3RzKCk7c2V0VGltZW91dChmdW5jdGlvbigpe1ooKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYWlfbG9hZF9ibG9ja3Mpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNtcGx6RW5hYmxlU2NyaXB0cyIsZSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY21wbHpfZXZlbnRfbWFya2V0aW5nIixlKTtmdW5jdGlvbiBlKHApeyJjbXBsekVuYWJsZVNjcmlwdHMiIT1wLnR5cGUmJiJhbGwiIT09cC5jb25zZW50TGV2ZWx8fGFpX2xvYWRfYmxvY2tzKCl9fX0sNTApO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1wYWdlLXR5cGUiKTtudWxsIT1iJiZiLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIixlPT57ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1zdGF0dXMiKTtudWxsIT1lJiYoZS50ZXh0Q29udGVudD0iQ09OU0VOVCBDT09LSUVTIik7ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKTtudWxsIT1lJiYoZS5zdHlsZS5kaXNwbGF5PSJibG9jayIpfSk7Yj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKTtudWxsIT1iJiZiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlPT57bSgiZXVjb25zZW50LXYyIik7bSgiX19seEdfX2NvbnNlbnRfX3YyIik7bSgiX19seEdfX2NvbnNlbnRfX3YyX2RhaXN5Yml0Iik7bSgiX19seEdfX2NvbnNlbnRfX3YyX2dkYWlzeWJpdCIpO20oIkNvb2tpZUxhd0luZm9Db25zZW50Iik7bSgiY29va2llbGF3aW5mby1jaGVja2JveC1hZHZlcnRpc2VtZW50Iik7bSgiY29va2llbGF3aW5mby1jaGVja2JveC1hbmFseXRpY3MiKTttKCJjb29raWVsYXdpbmZvLWNoZWNrYm94LW5lY2Vzc2FyeSIpO20oImNvbXBsaWFuel9wb2xpY3lfaWQiKTttKCJjb21wbGlhbnpfY29uc2VudF9zdGF0dXMiKTttKCJjbXBsel9tYXJrZXRpbmciKTttKCJjbXBsel9jb25zZW50X3N0YXR1cyIpO20oImNtcGx6X3ByZWZlcmVuY2VzIik7bSgiY21wbHpfc3RhdGlzdGljcy1hbm9ueW1vdXMiKTttKCJjbXBsel9jaG9pY2UiKTttKCJjbXBsel9iYW5uZXItc3RhdHVzIik7bSgiY21wbHpfZnVuY3Rpb25hbCIpO20oImNtcGx6X3BvbGljeV9pZCIpO20oImNtcGx6X3N0YXRpc3RpY3MiKTttKCJtb292ZV9nZHByX3BvcHVwIik7bSgicmVhbF9jb29raWVfYmFubmVyLWJsb2c6MS10Y2YiKTttKCJyZWFsX2Nvb2tpZV9iYW5uZXItYmxvZzoxIik7ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1zdGF0dXMiKTtudWxsIT1lJiYoZS50ZXh0Q29udGVudD0iQ09OU0VOVCBDT09LSUVTIERFTEVURUQiKX0pfSw1KX0pO2Z1bmN0aW9uIGRhKGIpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19yb3RhdGlvbnNfaW5fZWxlbWVudCYmYWlfcHJvY2Vzc19yb3RhdGlvbnNfaW5fZWxlbWVudChiKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19saXN0cyYmYWlfcHJvY2Vzc19saXN0cygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2lwX2FkZHJlc3NlcyYmYWlfcHJvY2Vzc19pcF9hZGRyZXNzZXMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19maWx0ZXJfaG9va3MmJmFpX3Byb2Nlc3NfZmlsdGVyX2hvb2tzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2FkYl9wcm9jZXNzX2Jsb2NrcyYmYWlfYWRiX3Byb2Nlc3NfYmxvY2tzKGIpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2ltcHJlc3Npb25zJiYxPT1haV90cmFja2luZ19maW5pc2hlZCYmYWlfcHJvY2Vzc19pbXByZXNzaW9ucygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9pbnN0YWxsX2NsaWNrX3RyYWNrZXJzJiYxPT1haV90cmFja2luZ19maW5pc2hlZCYmYWlfaW5zdGFsbF9jbGlja190cmFja2VycygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9pbnN0YWxsX2Nsb3NlX2J1dHRvbnMmJmFpX2luc3RhbGxfY2xvc2VfYnV0dG9ucyhkb2N1bWVudCl9LDUpfWZ1bmN0aW9uIGlhKGIpe3ZhciBlPWI/Yi5zcGxpdCgiPyIpWzFdOndpbmRvdy5sb2NhdGlvbi5zZWFyY2guc2xpY2UoMSk7Yj17fTtpZihlKXtlPWUuc3BsaXQoIiMiKVswXTtlPWUuc3BsaXQoIiYiKTtmb3IodmFyIHA9MDtwPGUubGVuZ3RoO3ArKyl7dmFyIHo9ZVtwXS5zcGxpdCgiPSIpLEM9dm9pZCAwLHg9elswXS5yZXBsYWNlKC9cW1xkKlxdLyxmdW5jdGlvbihMKXtDPUwuc2xpY2UoMSwtMSk7cmV0dXJuIiJ9KTt6PSJ1bmRlZmluZWQiPT09dHlwZW9mIHpbMV0/IiI6elsxXTt4PXgudG9Mb3dlckNhc2UoKTt6PXoudG9Mb3dlckNhc2UoKTtiW3hdPygic3RyaW5nIj09PXR5cGVvZiBiW3hdJiYoYlt4XT1bYlt4XV0pLCJ1bmRlZmluZWQiPT09dHlwZW9mIEM/Ylt4XS5wdXNoKHopOmJbeF1bQ109eik6Ylt4XT16fX1yZXR1cm4gYn19O2FpX2pzX2NvZGU9ITA=
data:text/javascript;base64,ZnVuY3Rpb24gb25FcnJvclBsYWNpbmcoKXtpZih0eXBlb2YgY2FjaGVQbGFjaW5nIT09J3VuZGVmaW5lZCcmJnR5cGVvZiBjYWNoZVBsYWNpbmc9PT0nZnVuY3Rpb24nJiZ0eXBlb2Ygd2luZG93LmpzSW5wdXRlckxhdW5jaCE9PSd1bmRlZmluZWQnJiZbMTUsMTBdLmluY2x1ZGVzKHdpbmRvdy5qc0lucHV0ZXJMYXVuY2gpKXtsZXQgZXJyb3JJbmZvPVtdO2NhY2hlUGxhY2luZygnbG93JyxlcnJvckluZm8pfWVsc2V7c2V0VGltZW91dChmdW5jdGlvbigpe29uRXJyb3JQbGFjaW5nKCl9LDEwMCl9fQp2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdCgpO3hoci5vcGVuKCdHRVQnLCIvL3d3dy41NzM4LnJ1LzY4ajkuanNvbiIsITApO3hoci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKTt4aHIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoeGhyLnN0YXR1cyE9MjAwKXtpZih4aHIuc3RhdHVzVGV4dCE9J2Fib3J0Jyl7b25FcnJvclBsYWNpbmcoKX19fTt4aHIuc2VuZCgp
data:text/javascript;base64,ZnVuY3Rpb24gb25FcnJvclBsYWNpbmcoKXtpZih0eXBlb2YgY2FjaGVQbGFjaW5nIT09J3VuZGVmaW5lZCcmJnR5cGVvZiBjYWNoZVBsYWNpbmc9PT0nZnVuY3Rpb24nJiZ0eXBlb2Ygd2luZG93LmpzSW5wdXRlckxhdW5jaCE9PSd1bmRlZmluZWQnJiZbMTUsMTBdLmluY2x1ZGVzKHdpbmRvdy5qc0lucHV0ZXJMYXVuY2gpKXtsZXQgZXJyb3JJbmZvPVtdO2NhY2hlUGxhY2luZygnbG93JyxlcnJvckluZm8pfWVsc2V7c2V0VGltZW91dChmdW5jdGlvbigpe29uRXJyb3JQbGFjaW5nKCl9LDEwMCl9fQp2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdCgpO3hoci5vcGVuKCdHRVQnLCIvL3d3dy41NzM4LnJ1LzY4ajkubWluLmpzIiwhMCk7eGhyLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO3hoci5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZih4aHIuc3RhdHVzIT0yMDApe2lmKHhoci5zdGF0dXNUZXh0IT0nYWJvcnQnKXtvbkVycm9yUGxhY2luZygpfX19O3hoci5zZW5kKCk=
data:text/javascript;base64,aWYodHlwZW9mIHJiX2FqYXh1cmw9PT0ndW5kZWZpbmVkJyl7dmFyIHJiX2FqYXh1cmw9J2h0dHBzOi8vY2hhcm1wZXRzLnJ1L3dwLWFkbWluL2FkbWluLWFqYXgucGhwJ30KaWYodHlwZW9mIGdhdGhlcl9jb250ZW50PT09J3VuZGVmaW5lZCcpe3ZhciBnYXRoZXJfY29udGVudD0hMH0KaWYodHlwZW9mIGVuZGVkU2M9PT0ndW5kZWZpbmVkJyl7dmFyIGVuZGVkU2M9ITF9CmlmKHR5cGVvZiBlbmRlZENjPT09J3VuZGVmaW5lZCcpe3ZhciBlbmRlZENjPSExfQppZih0eXBlb2YgdXNlZEFkQmxvY2tzQXJyYXk9PT0ndW5kZWZpbmVkJyl7dmFyIHVzZWRBZEJsb2Nrc0FycmF5PVtdfQppZih0eXBlb2YgdXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzPT09J3VuZGVmaW5lZCcpe3ZhciB1c2VkQmxvY2tTZXR0aW5nQXJyYXlJZHM9W119CmlmKHR5cGVvZiBzYW1lRWxlbWVudEFmdGVyV2lkdGg9PT0ndW5kZWZpbmVkJyl7dmFyIHNhbWVFbGVtZW50QWZ0ZXJXaWR0aD0hMX0KaWYodHlwZW9mIHNhbWVFbGVtZW50QWZ0ZXJFeGNDbGFzc0lkPT09J3VuZGVmaW5lZCcpe3ZhciBzYW1lRWxlbWVudEFmdGVyRXhjQ2xhc3NJZD0hMX0KaWYodHlwZW9mIHNhbWVFbGVtZW50QWZ0ZXJGcm9tQ29uc3RydWN0aW9uPT09J3VuZGVmaW5lZCcpe3ZhciBzYW1lRWxlbWVudEFmdGVyRnJvbUNvbnN0cnVjdGlvbj0hMX0KaWYodHlwZW9mIHJiX3RlbXBFbGVtZW50X2NoZWNrPT09J3VuZGVmaW5lZCcpe3ZhciByYl90ZW1wRWxlbWVudF9jaGVjaz0hMX0KaWYodHlwZW9mIHJiX3RlbXBFbGVtZW50PT09J3VuZGVmaW5lZCcpe3ZhciByYl90ZW1wRWxlbWVudD1udWxsfQppZih0eXBlb2Ygd2luZG93LmpzSW5wdXRlckxhdW5jaD09PSd1bmRlZmluZWQnKXt3aW5kb3cuanNJbnB1dGVyTGF1bmNoPS0xfQpmdW5jdGlvbiBsYXVuY2hVcGRhdGVSYkRpc3BsYXlzKCl7aWYoKHR5cGVvZiB1cGRhdGVSYkRpc3BsYXlzIT09J3VuZGVmaW5lZCcpJiYodHlwZW9mIHVwZGF0ZVJiRGlzcGxheXM9PT0nZnVuY3Rpb24nKSl7dXBkYXRlUmJEaXNwbGF5cygpfWVsc2V7c2V0VGltZW91dChmdW5jdGlvbigpe2xhdW5jaFVwZGF0ZVJiRGlzcGxheXMoKX0sMjAwKX19CmZ1bmN0aW9uIHNob3J0Y29kZXNJbnNlcnQoKXtsZXQgZ2F0aGVyZWRCbG9ja3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnBlcmNlbnRQb2ludGVyQ2xhc3Muc2NNYXJrJyksc2NCbG9ja0lkPS0xLHNjQWRJZD0tMSxibG9ja1N0YXR1cz0nJyxkYXRhRnVsbD0tMSxnYXRoZXJlZEJsb2NrQ2hpbGQsb2tTdGF0ZXM9Wydkb25lJywncmVmcmVzaC13YWl0Jywnbm8tYmxvY2snLCdmZXRjaGVkJ10sc2NDb250YWluZXIsc2NpLGkxPTAsc2t5c2NyYXBlckNoZWNrPVtdLHNreXNjcmFwZXJTdGF0dXM9ITEsc3BsaXRlZFNreXNjcmFwZXI9W10sZ2F0aGVyZWRCbG9ja0NoaWxkU2t5UGFydHM9W10sc3RpY2t5U3RhdHVzPSExLHN0aWNreUNoZWNrPVtdLHN0aWNreUZpeGVkU3RhdHVzPSExLHN0aWNreUZpeGVkQ2hlY2s9W10sb3ZlcmZsb3dDaGVjaz1bXSxvdmVyZmxvd1N0YXR1cz0hMSxyZXBlYXRhYmxlSWRlbnRpZmllcj0iIixkYXRhQ2lkSWRlbnRpZmllcj1udWxsLGRpdkNpZEVsZW1lbnQ9Jyc7aWYodHlwZW9mIHNjQXJyYXkhPT0ndW5kZWZpbmVkJyl7aWYoc2NBcnJheSYmc2NBcnJheS5sZW5ndGg+MCYmZ2F0aGVyZWRCbG9ja3MmJmdhdGhlcmVkQmxvY2tzLmxlbmd0aD4wJiZ0eXBlb2Ygd2luZG93LnJ1bHZXNWdudGIhPT0ndW5kZWZpbmVkJyl7ZGF0YUNpZElkZW50aWZpZXI9d2luZG93LnJ1bHZXNWdudGI7Zm9yKGxldCBpPTA7aTxnYXRoZXJlZEJsb2Nrcy5sZW5ndGg7aSsrKXtnYXRoZXJlZEJsb2NrQ2hpbGQ9Z2F0aGVyZWRCbG9ja3NbaV0uY2hpbGRyZW5bMF07aWYoIWdhdGhlcmVkQmxvY2tDaGlsZCl7Y29udGludWV9CnNjQWRJZD0tMztibG9ja1N0YXR1cz1udWxsO3NjQ29udGFpbmVyPW51bGw7ZGF0YUZ1bGw9LTE7c2t5c2NyYXBlclN0YXR1cz0hMTtzcGxpdGVkU2t5c2NyYXBlcj1bXTtnYXRoZXJlZEJsb2NrQ2hpbGRTa3lQYXJ0cz1bXTtzdGlja3lTdGF0dXM9ITE7c3RpY2t5Q2hlY2s9W107c3RpY2t5Rml4ZWRTdGF0dXM9ITE7c3RpY2t5Rml4ZWRDaGVjaz1bXTtyZXBlYXRhYmxlSWRlbnRpZmllcj0iIjtkaXZDaWRFbGVtZW50PW51bGw7c2NBZElkPWdhdGhlcmVkQmxvY2tDaGlsZC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYWlkJyk7c2NCbG9ja0lkPWdhdGhlcmVkQmxvY2tDaGlsZC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKTtibG9ja1N0YXR1cz1nYXRoZXJlZEJsb2NrQ2hpbGQuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJyk7ZGF0YUZ1bGw9Z2F0aGVyZWRCbG9ja0NoaWxkLmdldEF0dHJpYnV0ZSgnZGF0YS1mdWxsJyk7aWYoc2NCbG9ja0lkJiZzY0FkSWQ+MCl7c2NpPS0xO2ZvcihpMT0wO2kxPHNjQXJyYXkubGVuZ3RoO2kxKyspe2lmKHNjQmxvY2tJZD09c2NBcnJheVtpMV0uYmxvY2tJZCYmc2NBZElkPT1zY0FycmF5W2kxXS5hZElkKXtzY2k9aTF9fQppZihzY2k+LTEpe2lmKGJsb2NrU3RhdHVzJiZva1N0YXRlcy5pbmNsdWRlcyhibG9ja1N0YXR1cykpe2lmKGJsb2NrU3RhdHVzPT0nbm8tYmxvY2snKXtnYXRoZXJlZEJsb2NrQ2hpbGQuaW5uZXJIVE1MPScnfWVsc2UgaWYoKGJsb2NrU3RhdHVzPT0nZmV0Y2hlZCcmJmRhdGFGdWxsPT0xKXx8IVsnbm8tYmxvY2snLCdmZXRjaGVkJ10uaW5jbHVkZXMoYmxvY2tTdGF0dXMpKXtmb3IobGV0IGNsMT0wO2NsMTxnYXRoZXJlZEJsb2Nrc1tpXS5jbGFzc0xpc3QubGVuZ3RoO2NsMSsrKXtpZihnYXRoZXJlZEJsb2Nrc1tpXS5jbGFzc0xpc3RbY2wxXS5pbmNsdWRlcygicmVwZWF0YWJsZS1tYXJrIikpe3JlcGVhdGFibGVJZGVudGlmaWVyPWdhdGhlcmVkQmxvY2tzW2ldLmNsYXNzTGlzdFtjbDFdfX0KaWYocmVwZWF0YWJsZUlkZW50aWZpZXIpe2RpdkNpZEVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnBlcmNlbnRQb2ludGVyQ2xhc3Muc2NNYXJrLiIrcmVwZWF0YWJsZUlkZW50aWZpZXIrJyBkaXZbZGF0YS1jaWQ9IicrZGF0YUNpZElkZW50aWZpZXIrJyJdJyl9ZWxzZXtkaXZDaWRFbGVtZW50PWdhdGhlcmVkQmxvY2tDaGlsZC5xdWVyeVNlbGVjdG9yQWxsKCdkaXZbZGF0YS1jaWQ9IicrZGF0YUNpZElkZW50aWZpZXIrJyJdJyl9CnZhciB0ZXh0PXNjQXJyYXlbc2NpXS50ZXh0O2lmKGRpdkNpZEVsZW1lbnQmJmRpdkNpZEVsZW1lbnQubGVuZ3RoPjApe2ZvcihsZXQgaTI9MDtpMjxkaXZDaWRFbGVtZW50Lmxlbmd0aDtpMisrKXtqUXVlcnkoZGl2Q2lkRWxlbWVudFtpMl0pLmh0bWwodGV4dCl9fWVsc2V7alF1ZXJ5KGdhdGhlcmVkQmxvY2tDaGlsZCkuaHRtbCh0ZXh0KX0KbGF1bmNoVXBkYXRlUmJEaXNwbGF5cygpfQppZihibG9ja1N0YXR1cyE9J2ZldGNoZWQnfHwoYmxvY2tTdGF0dXM9PSdmZXRjaGVkJyYmZGF0YUZ1bGw9PTEpKXtmb3IoaTE9MDtpMTxzY0FycmF5Lmxlbmd0aDtpMSsrKXtpZihzY0Jsb2NrSWQ9PXNjQXJyYXlbaTFdLmJsb2NrSWQpe3NjQXJyYXkuc3BsaWNlKGkxLDEpO2kxLS19fQpnYXRoZXJlZEJsb2Nrc1tpXS5jbGFzc0xpc3QucmVtb3ZlKCdzY01hcmsnKX19fX1lbHNlIGlmKHNjQmxvY2tJZCYmc2NBZElkPDEmJlsnbm8tYmxvY2snLCdmZXRjaGVkJ10uaW5jbHVkZXMoYmxvY2tTdGF0dXMpKXtmb3IoaTE9MDtpMTxzY0FycmF5Lmxlbmd0aDtpMSsrKXtpZihzY0Jsb2NrSWQ9PXNjQXJyYXlbaTFdLmJsb2NrSWQpe3NjQXJyYXkuc3BsaWNlKGkxLDEpO2kxLS19fQpnYXRoZXJlZEJsb2Nrc1tpXS5jbGFzc0xpc3QucmVtb3ZlKCdzY01hcmsnKX19fWVsc2UgaWYoIXNjQXJyYXl8fChzY0FycmF5JiZzY0FycmF5Lmxlbmd0aDwxKSl7ZW5kZWRTYz0hMH19ZWxzZXtlbmRlZFNjPSEwfQppZighZW5kZWRTYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3Nob3J0Y29kZXNJbnNlcnQoKX0sMjAwKX19CmZ1bmN0aW9uIGNsZWFyVW5zdWl0YWJsZUNhY2hlKGN1Y19jb3Upe2xldCBzY0FkSWQ9LTE7bGV0IGNjUmVwZWF0PSExO2xldCBnYXRoZXJlZEJsb2Nrcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucGVyY2VudFBvaW50ZXJDbGFzcyAuJytibG9ja19jbGFzc2VzLmpvaW4oJywgLnBlcmNlbnRQb2ludGVyQ2xhc3MgLicpKTtpZihnYXRoZXJlZEJsb2NrcyYmZ2F0aGVyZWRCbG9ja3MubGVuZ3RoPjApe2ZvcihsZXQgaT0wO2k8Z2F0aGVyZWRCbG9ja3MubGVuZ3RoO2krKyl7aWYoZ2F0aGVyZWRCbG9ja3NbaV0uZGF0YXNldC5haWQmJmdhdGhlcmVkQmxvY2tzW2ldLmRhdGFzZXQuYWlkPDApe2lmKChnYXRoZXJlZEJsb2Nrc1tpXS5kYXRhc2V0LnN0YXRlPT0nbm8tYmxvY2snKXx8KFsnZG9uZScsJ2ZldGNoZWQnLCdyZWZyZXNoLXdhaXQnXS5pbmNsdWRlcyhnYXRoZXJlZEJsb2Nrc1tpXS5kYXRhc2V0LnN0YXRlKSkpe2dhdGhlcmVkQmxvY2tzW2ldLmlubmVySFRNTD0nJ31lbHNle2NjUmVwZWF0PSEwfX1lbHNlIGlmKCFnYXRoZXJlZEJsb2Nrc1tpXS5kYXRhc2V0LmFpZCl7Y2NSZXBlYXQ9ITB9fQppZihjdWNfY291PDUwKXtpZihjY1JlcGVhdCl7c2V0VGltZW91dChmdW5jdGlvbigpe2NsZWFyVW5zdWl0YWJsZUNhY2hlKGN1Y19jb3UrMSl9LDEwMCl9fWVsc2V7ZW5kZWRDYz0hMH19ZWxzZXtlbmRlZENjPSEwfX0KZnVuY3Rpb24gYmxvY2tzUmVwb3NpdGlvblVzZShjb250YWluZXJTdHJpbmcsYmxUeXBlLHNlYXJjaFR5cGUsY29udGVudEVsZW1lbnQpe2xldCBibG9ja3NJbkNvbnRhaW5lcjtsZXQgYmxMb2NhbD1ibFR5cGU7bGV0IGN1cnJlbnRCbG9jaztsZXQgY3VycmVudEJsb2NrSWQ7bGV0IGN1cnJlbnRCbG9ja1Bvc2l0aW9uO2xldCBjdXJyZW50Q29udGFpbmVyO2xldCBpPTA7bGV0IGo9MDtsZXQgYmxvY2tTdHJKcz0nIC5wZXJjZW50UG9pbnRlckNsYXNzLm1hcmtlZCc7bGV0IGJsb2NrU3RyUGhwPScgLnBlcmNlbnRQb2ludGVyQ2xhc3M6bm90KC5tYXJrZWQpJztsZXQgYmxvY2tTdHI9JyAucGVyY2VudFBvaW50ZXJDbGFzcyc7bGV0IGNoZWNrUG9pbnRlcj1udWxsO2xldCBibG9ja1JlcGVhdEVuZD0hMTtpZihzZWFyY2hUeXBlKXtpZihzZWFyY2hUeXBlPT0nbWFya2VkJyl7d2hpbGUoIWJsb2NrUmVwZWF0RW5kKXtibExvY2FsPWJsTG9jYWwucGFyZW50RWxlbWVudDtpZihibExvY2FsKXtjaGVja1BvaW50ZXI9YmxMb2NhbC5xdWVyeVNlbGVjdG9yKCIjY29udGVudF9wb2ludGVyX2lkIik7aWYoIWNoZWNrUG9pbnRlcil7YmxvY2tzSW5Db250YWluZXI9alF1ZXJ5KGJsTG9jYWwpLnBhcmVudChjb250YWluZXJTdHJpbmcpO2lmKGJsb2Nrc0luQ29udGFpbmVyJiZibG9ja3NJbkNvbnRhaW5lci5sZW5ndGg+MCl7Y2hlY2tQb2ludGVyPWpRdWVyeShibG9ja3NJbkNvbnRhaW5lcikuZmluZCgiI2NvbnRlbnRfcG9pbnRlcl9pZCIpO2lmKGNoZWNrUG9pbnRlciYmY2hlY2tQb2ludGVyLmxlbmd0aD4wKXtibG9ja3NJbkNvbnRhaW5lcj1udWxsfQpibG9ja1JlcGVhdEVuZD0hMH19ZWxzZXtibG9ja1JlcGVhdEVuZD0hMH19ZWxzZXtibG9ja1JlcGVhdEVuZD0hMH19CmlmKGJsb2Nrc0luQ29udGFpbmVyJiZibG9ja3NJbkNvbnRhaW5lci5sZW5ndGg+MCl7YmxvY2tzSW5Db250YWluZXJbMF0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocmJfdGVtcEVsZW1lbnQsYmxvY2tzSW5Db250YWluZXJbMF0pO3NhbWVFbGVtZW50QWZ0ZXJFeGNDbGFzc0lkPSExO3JldHVybiBibG9ja3NJbkNvbnRhaW5lclswXX0KcmV0dXJuIGJsVHlwZX1lbHNlIGlmKHNlYXJjaFR5cGU9PSdub24tbWFya2VkJyl7YmxvY2tzSW5Db250YWluZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChibFR5cGUrY29udGFpbmVyU3RyaW5nK2Jsb2NrU3RyUGhwKTtpZihibG9ja3NJbkNvbnRhaW5lciYmYmxvY2tzSW5Db250YWluZXIubGVuZ3RoPjAmJnVzZWRCbG9ja1NldHRpbmdBcnJheSYmdXNlZEJsb2NrU2V0dGluZ0FycmF5Lmxlbmd0aD4wKXtmb3IoaT0wO2k8YmxvY2tzSW5Db250YWluZXIubGVuZ3RoO2krKyl7Y3VycmVudEJsb2NrPWJsb2Nrc0luQ29udGFpbmVyW2ldO2N1cnJlbnRCbG9ja0lkPWN1cnJlbnRCbG9jay5xdWVyeVNlbGVjdG9yKCcuJytibG9ja19jbGFzc2VzLmpvaW4oJywgLicpKS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKTtjdXJyZW50Q29udGFpbmVyPW51bGw7Zm9yKGo9MDtqPHVzZWRCbG9ja1NldHRpbmdBcnJheS5sZW5ndGg7aSsrKXtpZih1c2VkQmxvY2tTZXR0aW5nQXJyYXlbaV0uaWQ9PWN1cnJlbnRCbG9ja0lkKXtjdXJyZW50QmxvY2tQb3NpdGlvbj11c2VkQmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBvc2l0aW9uO2N1cnJlbnRDb250YWluZXI9Y3VycmVudEJsb2NrLmNsb3Nlc3QoYmxUeXBlK2NvbnRhaW5lclN0cmluZyk7aWYoY3VycmVudEJsb2NrUG9zaXRpb249PTApe2N1cnJlbnRDb250YWluZXIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY3VycmVudEJsb2NrLGN1cnJlbnRDb250YWluZXIpfWVsc2V7Y3VycmVudENvbnRhaW5lci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjdXJyZW50QmxvY2ssY3VycmVudENvbnRhaW5lci5uZXh0U2libGluZyl9CmJyZWFrfX19fX19CnJldHVybiExfQpmdW5jdGlvbiBjcmVhdGVTdHlsZUVsZW1lbnQoYmxvY2tOdW1iZXIsbG9jYWxFbGVtZW50Q3NzKXtsZXQgaHRtbFRvQWRkPScnO2xldCBtYXJnaW5TdHJpbmc7bGV0IHRleHRBbGlnblN0cmluZztsZXQgY29udFBvaTtsZXQgZW1wdHlWYWx1ZXM9ITE7bGV0IGVsZW1lbnRUb0FkZFN0eWxlTG9jYWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Jsb2Nrc0FsaWduU3R5bGUnKTtpZighZWxlbWVudFRvQWRkU3R5bGVMb2NhbCl7Y29udFBvaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY29udGVudF9wb2ludGVyX2lkJyk7aWYoIWNvbnRQb2kpe3JldHVybiExfQplbGVtZW50VG9BZGRTdHlsZUxvY2FsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7ZWxlbWVudFRvQWRkU3R5bGVMb2NhbC5zZXRBdHRyaWJ1dGUoJ2lkJywnYmxvY2tzQWxpZ25TdHlsZScpO2NvbnRQb2kucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkU3R5bGVMb2NhbCxjb250UG9pKX0Kc3dpdGNoKGxvY2FsRWxlbWVudENzcyl7Y2FzZSAnbGVmdCc6ZW1wdHlWYWx1ZXM9ITE7bWFyZ2luU3RyaW5nPScwIGF1dG8gMCAwJzt0ZXh0QWxpZ25TdHJpbmc9J2xlZnQnO2JyZWFrO2Nhc2UgJ3JpZ2h0JzplbXB0eVZhbHVlcz0hMTttYXJnaW5TdHJpbmc9JzAgMCAwIGF1dG8nO3RleHRBbGlnblN0cmluZz0ncmlnaHQnO2JyZWFrO2Nhc2UgJ2NlbnRlcic6ZW1wdHlWYWx1ZXM9ITE7bWFyZ2luU3RyaW5nPScwIGF1dG8nO3RleHRBbGlnblN0cmluZz0nY2VudGVyJzticmVhaztjYXNlICdkZWZhdWx0JzplbXB0eVZhbHVlcz0hMDttYXJnaW5TdHJpbmc9J2RlZmF1bHQnO3RleHRBbGlnblN0cmluZz0nZGVmYXVsdCc7YnJlYWt9CmlmKCFlbXB0eVZhbHVlcyl7aHRtbFRvQWRkPScucGVyY2VudFBvaW50ZXJDbGFzcyAgPiAqW2RhdGEtaWQ9IicrYmxvY2tOdW1iZXIrJyJdIHtcbicrJyAgICBtYXJnaW46ICcrbWFyZ2luU3RyaW5nKyc7XG4nKyd9XG4nfQplbGVtZW50VG9BZGRTdHlsZUxvY2FsLmlubmVySFRNTCs9aHRtbFRvQWRkO3JldHVybiB0ZXh0QWxpZ25TdHJpbmd9CmZ1bmN0aW9uIGluaXRUYXJnZXRUb0luc2VydChwb3NpdGlvbix0eXBlLGN1cnJlbnRFbGVtZW50KXtsZXQgcG9zQ3VycmVudEVsZW1lbnQ7bGV0IHVzZWRFbGVtZW50O2lmKHR5cGU9PSdlbGVtZW50Jyl7aWYocG9zaXRpb249PTApe3Bvc0N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50O2lmKCEodHlwZW9mIG9ibGlnYXRvcnlNYXJnaW4hPT0ndW5kZWZpbmVkJyYmb2JsaWdhdG9yeU1hcmdpbj09PTEpKXtjdXJyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdyZndwX3JlbW92ZWRNYXJnaW5Ub3AnKX19ZWxzZXtwb3NDdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudC5uZXh0U2libGluZztpZighKHR5cGVvZiBvYmxpZ2F0b3J5TWFyZ2luIT09J3VuZGVmaW5lZCcmJm9ibGlnYXRvcnlNYXJnaW49PT0xKSl7Y3VycmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncmZ3cF9yZW1vdmVkTWFyZ2luQm90dG9tJyl9fQpjdXJyZW50RWxlbWVudC5zdHlsZS5jbGVhcj0nYm90aCd9ZWxzZXt1c2VkRWxlbWVudD1jdXJyZW50RWxlbWVudDtpZihwb3NpdGlvbj09MCl7cG9zQ3VycmVudEVsZW1lbnQ9dXNlZEVsZW1lbnR9ZWxzZXtwb3NDdXJyZW50RWxlbWVudD11c2VkRWxlbWVudC5uZXh0U2libGluZ319CnJldHVybiBwb3NDdXJyZW50RWxlbWVudH0KZnVuY3Rpb24gY2hlY2tBZHNXaWR0aChjb250ZW50X3BvaW50ZXIscG9zQ3VycmVudEVsZW1lbnQsY3VycmVudEVsZW1lbnQpe2xldCB3aWR0aENoZWNrZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3dpZHRoQ2hlY2tlcicpO2xldCB3aWR0aENoZWNrZXJTdHlsZT1udWxsO2xldCBjb250ZW50X3BvaW50ZXJTdHlsZT1nZXRDb21wdXRlZFN0eWxlKGNvbnRlbnRfcG9pbnRlcik7bGV0IGNvbnRlbnQ9Y29udGVudF9wb2ludGVyLnBhcmVudEVsZW1lbnQ7aWYoIXdpZHRoQ2hlY2tlcil7d2lkdGhDaGVja2VyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3dpZHRoQ2hlY2tlci5zZXRBdHRyaWJ1dGUoJ2lkJywnd2lkdGhDaGVja2VyJyk7d2lkdGhDaGVja2VyLnN0eWxlLmRpc3BsYXk9J2ZsZXgnfQppZihjb250ZW50KXtwb3NDdXJyZW50RWxlbWVudD1pbml0VGFyZ2V0VG9JbnNlcnQocG9zQ3VycmVudEVsZW1lbnQsJ3Rlcm0nLGN1cnJlbnRFbGVtZW50KTtjdXJyZW50RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3aWR0aENoZWNrZXIscG9zQ3VycmVudEVsZW1lbnQpO3dpZHRoQ2hlY2tlclN0eWxlPWdldENvbXB1dGVkU3R5bGUod2lkdGhDaGVja2VyKTtpZihwYXJzZUludCh3aWR0aENoZWNrZXJTdHlsZS53aWR0aCk+PShwYXJzZUludChjb250ZW50X3BvaW50ZXJTdHlsZS53aWR0aCktNTApKXtyZXR1cm4hMH19CmN1cnJlbnRFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJiX3RlbXBFbGVtZW50LGN1cnJlbnRFbGVtZW50Lm5leHRTaWJsaW5nKTtyYl90ZW1wRWxlbWVudF9jaGVjaz0hMDtyZXR1cm4hMX0KZnVuY3Rpb24gY3VycmVudEVsZW1lbnRSZWNlaXZlclNwZWMocmV2ZXJ0LGN1clN1bSxlbExpc3QsY3VycmVudEVsZW1lbnQpe2xldCBvcmlnQ3VycmVudEVsZW1lbnQ9Y3VycmVudEVsZW1lbnQ7bGV0IGNvbnRlbnRfcG9pbnRlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY29udGVudF9wb2ludGVyX2lkIik7bGV0IHNhbWVFbGVtZW50QWZ0ZXJXaWR0aD0hMTtsZXQgdGVzdENvdT0wO3doaWxlKGVsTGlzdFtjdXJTdW1dJiZzYW1lRWxlbWVudEFmdGVyV2lkdGg9PSExJiZ0ZXN0Q291PDUpe2N1cnJlbnRFbGVtZW50PWVsTGlzdFtjdXJTdW1dLmVsZW1lbnQ7dHJ5e3NhbWVFbGVtZW50QWZ0ZXJXaWR0aD0hMDtzYW1lRWxlbWVudEFmdGVyV2lkdGg9Y2hlY2tBZHNXaWR0aChjb250ZW50X3BvaW50ZXIsMCxjdXJyZW50RWxlbWVudCl9Y2F0Y2goZXgpe2NvbnNvbGUubG9nKGV4Lm1lc3NhZ2UpfQpyZXZlcnQ/Y3VyU3VtLS06Y3VyU3VtKys7dGVzdENvdSsrfQpyZXR1cm4gY3VycmVudEVsZW1lbnQ/Y3VycmVudEVsZW1lbnQ6b3JpZ0N1cnJlbnRFbGVtZW50fQpmdW5jdGlvbiBleGNJZENsVW5wYWNrZXIoKXtsZXQgZXhjQXJyPVtdLGNvdT0wLGN1cnJFeGNTdHI9JycsY3VyRXhjRmlyc3Q9Jyc7ZXhjQXJyLmlkPVtdO2V4Y0FyclsnY2xhc3MnXT1bXTtleGNBcnIudGFnPVtdO2lmKGV4Y0lkQ2xhc3MmJmV4Y0lkQ2xhc3MubGVuZ3RoPjApe3doaWxlKGV4Y0lkQ2xhc3NbY291XSl7Y3VyckV4Y1N0cj1leGNJZENsYXNzW2NvdV07aWYoY3VyckV4Y1N0ci5sZW5ndGg+MCl7Y3VyRXhjRmlyc3Q9Y3VyckV4Y1N0ci5zdWJzdHJpbmcoMCwxKTtzd2l0Y2goY3VyRXhjRmlyc3Qpe2Nhc2UgJyMnOmlmKGN1cnJFeGNTdHIubGVuZ3RoPjEpe2N1cnJFeGNTdHI9Y3VyckV4Y1N0ci5zdWJzdHJpbmcoMSk7ZXhjQXJyLmlkLnB1c2goY3VyckV4Y1N0cil9CmJyZWFrO2Nhc2UgJy4nOmlmKGN1cnJFeGNTdHIubGVuZ3RoPjEpe2N1cnJFeGNTdHI9Y3VyckV4Y1N0ci5zdWJzdHJpbmcoMSk7ZXhjQXJyWydjbGFzcyddLnB1c2goY3VyckV4Y1N0cil9CmJyZWFrO2RlZmF1bHQ6ZXhjQXJyLnRhZy5wdXNoKGN1cnJFeGNTdHIpO2JyZWFrfQpjb3UrK319fQpyZXR1cm4gZXhjQXJyfQpmdW5jdGlvbiBhc3luY0Jsb2Nrc0luc2VydGluZ0Z1bmN0aW9uKGJsb2NrU2V0dGluZ0FycmF5KXt0cnl7dmFyIGNvbnRlbnRfcG9pbnRlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY29udGVudF9wb2ludGVyX2lkIik7dmFyIHBhcmVudF93aXRoX2NvbnRlbnQ9Y29udGVudF9wb2ludGVyLnBhcmVudEVsZW1lbnQ7dmFyIGxvcmRPZkVsZW1lbnRzPXBhcmVudF93aXRoX2NvbnRlbnQ7cGFyZW50X3dpdGhfY29udGVudD1wYXJlbnRfd2l0aF9jb250ZW50LnBhcmVudEVsZW1lbnQ7dmFyIG5ld0VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dmFyIGVsZW1lbnRUb0FkZDt2YXIgZWxlbWVudFRvQWRkU3R5bGU7dmFyIHBvb2xiYWNrST0wO3ZhciBjb3VudGVyPTA7dmFyIGN1cnJlbnRFbGVtZW50O3ZhciByZXBlYXRhYmxlQ3VycmVudEVsZW1lbnQ7dmFyIHJlcGVhdGFibGVTdWNjZXNzO3ZhciByZUNvdTt2YXIgY3VyRmlyc3RQbGFjZTt2YXIgY3VyRWxlbWVudENvdW50O3ZhciBjdXJFbGVtZW50U3RlcDt2YXIgYmFja0VsZW1lbnQ9MDt2YXIgc3VtUmVzdWx0PTA7dmFyIGN1clN1bVJlc3VsdD0wO3ZhciByZXBlYXQ9ITE7dmFyIGN1cnJlbnRFbGVtZW50Q2hlY2tlcj0hMTtsZXQgY29udGFpbmVyRm9yNnRoPVtdO2xldCBjb250YWluZXJGb3I3dGg9W107dmFyIHBvc0N1cnJlbnRFbGVtZW50O3ZhciBibG9ja19udW1iZXI7bGV0IGNvbnRlbnRMZW5ndGg9Y29udGVudF9wb2ludGVyLmdldEF0dHJpYnV0ZSgnZGF0YS1jb250ZW50LWxlbmd0aCcpO2xldCByZWplY3RlZEJsb2Nrcz1jb250ZW50X3BvaW50ZXIuZ2V0QXR0cmlidXRlKCdkYXRhLXJlamVjdGVkLWJsb2NrcycpO2lmKHJlamVjdGVkQmxvY2tzJiZyZWplY3RlZEJsb2Nrcy5sZW5ndGg+MCl7cmVqZWN0ZWRCbG9ja3M9cmVqZWN0ZWRCbG9ja3Muc3BsaXQoJywnKX0KbGV0IHdpZHRoQ2hlY2s9ITE7bGV0IGN1cnJlbnRFbGVtZW50TGlzdDt2YXIgdGVzdEVsZW1lbnQxPW51bGw7dmFyIHRlcm1vcmFyaXR5X3BhcmVudF93aXRoX2NvbnRlbnQ9cGFyZW50X3dpdGhfY29udGVudDt2YXIgdGVybW9yYXJpdHlfcGFyZW50X3dpdGhfY29udGVudF9sZW5ndGg9MDt2YXIgaGVhZGVyc0xpc3Q9WydoMScsJ2gyJywnaDMnLCdoNCcsJ2g1JywnaDYnXTtmb3IodmFyIGhjMT0wO2hjMTxoZWFkZXJzTGlzdC5sZW5ndGg7aGMxKyspe3Rlcm1vcmFyaXR5X3BhcmVudF93aXRoX2NvbnRlbnRfbGVuZ3RoKz10ZXJtb3Jhcml0eV9wYXJlbnRfd2l0aF9jb250ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKGhlYWRlcnNMaXN0W2hjMV0pLmxlbmd0aH0KbGV0IGRldGFpbGVkRWxlbWVudExpc3Q7bGV0IEV4Y1N0ckNvdT0xO2xldCBkZXRhaWxlZFF1ZXJ5U3RyaW5nO2xldCB1c2VkRWxlbWVudDtsZXQgdGFnTGlzdD1bXTtsZXQgbG9jYWxTdW1SZXN1bHQ7bGV0IGJpbmRlck5hbWU7dmFyIHJlbW92ZUNsZWFyaW5nO3ZhciByZXBlYXRhYmxlQmxvY2tJZGVudGlmaWVyPTA7dmFyIGk7aWYoY29udGVudExlbmd0aDwxKXtjb250ZW50TGVuZ3RoPXBhcmVudF93aXRoX2NvbnRlbnQuaW5uZXJUZXh0Lmxlbmd0aH0KcmJfdGVtcEVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JiX3RlbXBFbGVtZW50Jyk7aWYoIXJiX3RlbXBFbGVtZW50KXtyYl90ZW1wRWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7cmJfdGVtcEVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsJ3JiX3RlbXBFbGVtZW50Jyl9CmZ1bmN0aW9uIGdldEZyb21Db25zdHJ1Y3Rpb25zKGN1cnJlbnRFbGVtZW50KXtpZihjdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKT09ImJsb2NrcXVvdGUiKXtjdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O2N1cnJlbnRFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJiX3RlbXBFbGVtZW50LGN1cnJlbnRFbGVtZW50KTtyYl90ZW1wRWxlbWVudF9jaGVjaz0hMDtzYW1lRWxlbWVudEFmdGVyRnJvbUNvbnN0cnVjdGlvbj0hMX1lbHNlIGlmKFsidHIiLCJ0ZCIsInRoIiwidGhlYWQiLCJ0Ym9keSIsInRhYmxlIl0uaW5jbHVkZXMoY3VycmVudEVsZW1lbnQucGFyZW50RWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKXtjdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O3doaWxlKFsidHIiLCJ0ZCIsInRoIiwidGhlYWQiLCJ0Ym9keSIsInRhYmxlIl0uaW5jbHVkZXMoY3VycmVudEVsZW1lbnQucGFyZW50RWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKXtjdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50fQpjdXJyZW50RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyYl90ZW1wRWxlbWVudCxjdXJyZW50RWxlbWVudCk7cmJfdGVtcEVsZW1lbnRfY2hlY2s9ITA7c2FtZUVsZW1lbnRBZnRlckZyb21Db25zdHJ1Y3Rpb249ITF9CnJldHVybiBjdXJyZW50RWxlbWVudH0KZnVuY3Rpb24gZGlyZWN0Q2xhc3NFbGVtZW50RGV0ZWN0aW5nKGJsb2NrU2V0dGluZ0FycmF5LGRpcmVjdEVsZW1lbnQpe2xldCBmaW5kUXVlcnk9MDtsZXQgZGlyZWN0Q2xhc3NFbGVtZW50UmVzdWx0PVtdO2N1cnJlbnRFbGVtZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZGlyZWN0RWxlbWVudCk7aWYoY3VycmVudEVsZW1lbnQubGVuZ3RoPjApe2lmKGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQbGFjZT4xKXtpZihjdXJyZW50RWxlbWVudC5sZW5ndGg+PWJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQbGFjZSl7Y3VycmVudEVsZW1lbnQ9Y3VycmVudEVsZW1lbnRbYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlLTFdfWVsc2UgaWYoY3VycmVudEVsZW1lbnQubGVuZ3RoPGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQbGFjZSl7Y3VycmVudEVsZW1lbnQ9Y3VycmVudEVsZW1lbnRbY3VycmVudEVsZW1lbnQubGVuZ3RoLTFdfWVsc2V7ZmluZFF1ZXJ5PTF9fWVsc2UgaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlPDApe2lmKChjdXJyZW50RWxlbWVudC5sZW5ndGgrYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlKzEpPjApe2N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50W2N1cnJlbnRFbGVtZW50Lmxlbmd0aCtibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50UGxhY2VdfWVsc2V7ZmluZFF1ZXJ5PTF9fWVsc2V7ZmluZFF1ZXJ5PTF9fWVsc2V7ZmluZFF1ZXJ5PTF9CmRpcmVjdENsYXNzRWxlbWVudFJlc3VsdC5maW5kUXVlcnk9ZmluZFF1ZXJ5O2RpcmVjdENsYXNzRWxlbWVudFJlc3VsdC5jdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudDtyZXR1cm4gZGlyZWN0Q2xhc3NFbGVtZW50UmVzdWx0fQpmdW5jdGlvbiBwbGFjaW5nVG9IMSh1c2VkRWxlbWVudCxlbGVtZW50VGFnVG9GaW5kKXtsZXQgdXNlbGVzc0xldDtjdXJyZW50RWxlbWVudD11c2VkRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKGVsZW1lbnRUYWdUb0ZpbmQpO2lmKGN1cnJlbnRFbGVtZW50Lmxlbmd0aDwxKXtpZih1c2VkRWxlbWVudC5wYXJlbnRFbGVtZW50KXt1c2VsZXNzTGV0PXBsYWNpbmdUb0gxKHVzZWRFbGVtZW50LnBhcmVudEVsZW1lbnQsZWxlbWVudFRhZ1RvRmluZCl9fQpyZXR1cm4gY3VycmVudEVsZW1lbnR9CmZ1bmN0aW9uIGVsZW1lbnRzQ2xlYW5pbmcoZXhjQXJyLGVsTGlzdCxwd2NMb2NhbCxnYXRoZXJTdHJpbmcpe2xldCBtYXJrZWRDbGFzcz0ncmJfbV9pbmMnO2xldCBtYXJrZWRDbGFzc0JhZD0ncmJfbV9leGMnO2xldCBjb3U9MDtsZXQgY291MT0wO2xldCBmaW5hbEFycj1bXTtsZXQgZmluYWxBcnJDbGVhcj1bXTtsZXQgY2hlY2tOZWFyZXN0O2xldCBvdXRPZlJhbmdlQ2hlY2s7bGV0IGdhdGhlclJlamVjdGVkO2xldCBhbGxvd2VyO3RyeXt3aGlsZShlbExpc3RbY291XSl7YWxsb3dlcj0hMDtpZighZWxMaXN0W2NvdV0uY2xhc3NMaXN0LmNvbnRhaW5zKG1hcmtlZENsYXNzQmFkKSl7aWYoZXhjQXJyJiZleGNBcnIubGVuZ3RoPjApe2NvdTE9MDt3aGlsZShleGNBcnJbY291MV0pe2NoZWNrTmVhcmVzdD1lbExpc3RbY291XS5wYXJlbnRFbGVtZW50LmNsb3Nlc3QoZXhjQXJyW2NvdTFdKTtpZihjaGVja05lYXJlc3Qpe2NoZWNrTmVhcmVzdC5jbGFzc0xpc3QuYWRkKCdjdXJyQ2xvc2VzdCcpO291dE9mUmFuZ2VDaGVjaz1wd2NMb2NhbC5xdWVyeVNlbGVjdG9yKCcuY3VyckNsb3Nlc3QnKTtpZihvdXRPZlJhbmdlQ2hlY2spe2FsbG93ZXI9ITE7Y2hlY2tOZWFyZXN0LmNsYXNzTGlzdC5hZGQobWFya2VkQ2xhc3MpO2dhdGhlclJlamVjdGVkPWNoZWNrTmVhcmVzdC5xdWVyeVNlbGVjdG9yQWxsKGdhdGhlclN0cmluZyk7aWYoZ2F0aGVyUmVqZWN0ZWQubGVuZ3RoPjApe2ZvcihsZXQgaTE9MDtpMTxnYXRoZXJSZWplY3RlZC5sZW5ndGg7aTErKyl7Z2F0aGVyUmVqZWN0ZWRbaTFdLmNsYXNzTGlzdC5hZGQobWFya2VkQ2xhc3NCYWQpfX19CmNoZWNrTmVhcmVzdC5jbGFzc0xpc3QucmVtb3ZlKCdjdXJyQ2xvc2VzdCcpfQpjb3UxKyt9fQppZihhbGxvd2VyPT09ITApe2VsTGlzdFtjb3VdLmNsYXNzTGlzdC5hZGQobWFya2VkQ2xhc3MpfX0KY291Kyt9CmZpbmFsQXJyPXB3Y0xvY2FsLnF1ZXJ5U2VsZWN0b3JBbGwoJy4nK21hcmtlZENsYXNzKyc6bm90KCcrbWFya2VkQ2xhc3NCYWQrJyknKTtmaW5hbEFyckNsZWFyPXB3Y0xvY2FsLnF1ZXJ5U2VsZWN0b3JBbGwoJy4nK21hcmtlZENsYXNzKycsLicrbWFya2VkQ2xhc3NCYWQpO2lmKGZpbmFsQXJyQ2xlYXImJmZpbmFsQXJyQ2xlYXIubGVuZ3RoPjApe2ZvcihsZXQgaTE9MDtpMTxmaW5hbEFyckNsZWFyLmxlbmd0aDtpMSsrKXtmaW5hbEFyckNsZWFyW2kxXS5jbGFzc0xpc3QucmVtb3ZlKG1hcmtlZENsYXNzLG1hcmtlZENsYXNzQmFkKX19fWNhdGNoKGVyKXtjb25zb2xlLmxvZyhlci5tZXNzYWdlKX0KcmV0dXJuIGZpbmFsQXJyfQpmdW5jdGlvbiBjdXJlZW50RWxlbWVudHNHYXRoZXIodXNlZEVsZW1lbnQsbG9vcExpbWl0PTIsbG9jYWxQd2M9cGFyZW50X3dpdGhfY29udGVudCl7bGV0IGN1ckVsZW1lbnRTZWFyY2hSZXBlYXRlcj0hMDtsZXQgY3VyRWxlbWVudFNlYXJjaENvdW50ZXI9MDtsZXQgY3VycmVudEVsZW1lbnRMb2M9bnVsbDtsZXQgRXhjbHVkZWRTdHJpbmdCZWdpbj0nJztsZXQgRXhjbHVkZWRTdHJpbmc9Jyc7bGV0IEV4Y2x1ZGVkU3RyaW5nRW5kPScnO2xldCB0YWdMaXN0U3RyaW5nPScnO2xldCB0YWdMaXN0U3RyaW5nRXhjPScnO2xldCBjb3U9MDtsZXQgdGFnTGlzdENvdT0wO2lmKHVzZWRFbGVtZW50PT0naDEnKXtjdXJyZW50RWxlbWVudExvYz1wbGFjaW5nVG9IMShsb2NhbFB3Yyx1c2VkRWxlbWVudCl9ZWxzZXtpZih1c2VkRWxlbWVudD09J2gyLTQnKXt0YWdMaXN0PVsnaDInLCdoMycsJ2gzJ119ZWxzZXt0YWdMaXN0PVt1c2VkRWxlbWVudF19CndoaWxlKHRhZ0xpc3RbdGFnTGlzdENvdV0pe3RhZ0xpc3RTdHJpbmcrPSgoY291Kys+MCk/JywnOicnKSt0YWdMaXN0W3RhZ0xpc3RDb3VdO3RhZ0xpc3RTdHJpbmdFeGMrPSc6bm90KCcrdGFnTGlzdFt0YWdMaXN0Q291XSsnKSc7dGFnTGlzdENvdSsrfQpFeGNsdWRlZFN0cmluZz0nJztpZihleGNJZENsYXNzJiZleGNJZENsYXNzLmxlbmd0aD4wKXtmb3IobGV0IGkyPTA7aTI8ZXhjSWRDbGFzcy5sZW5ndGg7aTIrKyl7aWYoZXhjSWRDbGFzc1tpMl0ubGVuZ3RoPjApe0V4Y2x1ZGVkU3RyaW5nKz0oaTI+MD8nLCc6JycpK2V4Y0lkQ2xhc3NbaTJdK3RhZ0xpc3RTdHJpbmdFeGN9fX0KZGV0YWlsZWRRdWVyeVN0cmluZys9dGFnTGlzdFN0cmluZysnLCcrRXhjbHVkZWRTdHJpbmc7d2hpbGUoY3VyRWxlbWVudFNlYXJjaFJlcGVhdGVyJiZjdXJFbGVtZW50U2VhcmNoQ291bnRlcjxsb29wTGltaXQpe3RyeXtjdXJyZW50RWxlbWVudExvYz1sb2NhbFB3Yy5xdWVyeVNlbGVjdG9yQWxsKHRhZ0xpc3RTdHJpbmcpfWNhdGNoKGUxKXtjb25zb2xlLmxvZyhlMS5tZXNzYWdlKX0KaWYoIWN1cnJlbnRFbGVtZW50TG9jKXtpZihsb2NhbFB3Yy5wYXJlbnRFbGVtZW50KXtsb2NhbFB3Yz1sb2NhbFB3Yy5wYXJlbnRFbGVtZW50fWVsc2V7YnJlYWt9fWVsc2V7Y3VycmVudEVsZW1lbnRMb2M9ZWxlbWVudHNDbGVhbmluZyhleGNJZENsYXNzLGN1cnJlbnRFbGVtZW50TG9jLGxvY2FsUHdjLGRldGFpbGVkUXVlcnlTdHJpbmcpO2N1ckVsZW1lbnRTZWFyY2hSZXBlYXRlcj0hMX0KY3VyRWxlbWVudFNlYXJjaENvdW50ZXIrK319CnJldHVybiBjdXJyZW50RWxlbWVudExvY30KZnVuY3Rpb24gY3VycmVudEVsZW1lbnRSZWNlaXZlcihyZXZlcnQsbG9jYWxDdXJFbD1jdXJyZW50RWxlbWVudCl7bGV0IG9yaWdDdXJFbD1sb2NhbEN1ckVsO2N1clN1bVJlc3VsdD1zdW1SZXN1bHQ7ZGV0YWlsZWRFbGVtZW50TGlzdD1sb2NhbEN1ckVsO3NhbWVFbGVtZW50QWZ0ZXJXaWR0aD0hMTtsZXQgdGVzdENvdT0wO3doaWxlKGRldGFpbGVkRWxlbWVudExpc3RbY3VyU3VtUmVzdWx0XSYmc2FtZUVsZW1lbnRBZnRlcldpZHRoPT0hMSYmdGVzdENvdTw4KXtsb2NhbEN1ckVsPWRldGFpbGVkRWxlbWVudExpc3RbY3VyU3VtUmVzdWx0XTt0cnl7c2FtZUVsZW1lbnRBZnRlcldpZHRoPSEwO3NhbWVFbGVtZW50QWZ0ZXJXaWR0aD1jaGVja0Fkc1dpZHRoKGNvbnRlbnRfcG9pbnRlcixibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50UG9zaXRpb24sbG9jYWxDdXJFbCl9Y2F0Y2goZXgpe2NvbnNvbGUubG9nKGV4Lm1lc3NhZ2UpfQpyZXZlcnQ/Y3VyU3VtUmVzdWx0LS06Y3VyU3VtUmVzdWx0Kys7dGVzdENvdSsrfQppZihsb2NhbEN1ckVsKXtjdXJyZW50RWxlbWVudENoZWNrZXI9ITB9CnJldHVybiBsb2NhbEN1ckVsP2xvY2FsQ3VyRWw6b3JpZ0N1ckVsfQpmdW5jdGlvbiBlbmRpbmdBY3Rpb25zKGJsb2NrX251bWJlcil7dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xfQpmb3IoaT0wO2k8YmxvY2tTZXR0aW5nQXJyYXkubGVuZ3RoO2krKyl7Y3VycmVudEVsZW1lbnQ9bnVsbDtjdXJyZW50RWxlbWVudENoZWNrZXI9ITE7c2FtZUVsZW1lbnRBZnRlcldpZHRoPSExO3NhbWVFbGVtZW50QWZ0ZXJFeGNDbGFzc0lkPSExO3NhbWVFbGVtZW50QWZ0ZXJGcm9tQ29uc3RydWN0aW9uPSExO3RhZ0xpc3RDb3U9MDtwb29sYmFja0k9MDtkZXRhaWxlZFF1ZXJ5U3RyaW5nPScnO2JpbmRlck5hbWU9ZWxlbWVudEJpbmRlck5hbWVHZW5lcmF0b3IoKTt0cnl7aWYoIWJsb2NrU2V0dGluZ0FycmF5W2ldLnRleHR8fChibG9ja1NldHRpbmdBcnJheVtpXS50ZXh0JiZibG9ja1NldHRpbmdBcnJheVtpXS50ZXh0Lmxlbmd0aDwxKXx8KHJlamVjdGVkQmxvY2tzJiZyZWplY3RlZEJsb2Nrcy5pbmNsdWRlcyhibG9ja1NldHRpbmdBcnJheVtpXS5pZCkpfHwoKGJsb2NrU2V0dGluZ0FycmF5W2ldLm1heEhlYWRlcnM+MCkmJihibG9ja1NldHRpbmdBcnJheVtpXS5tYXhIZWFkZXJzPHBhcnNlSW50KHRlcm1vcmFyaXR5X3BhcmVudF93aXRoX2NvbnRlbnRfbGVuZ3RoKSkpfHwoKGJsb2NrU2V0dGluZ0FycmF5W2ldLm1heFN5bWJvbHM+MCkmJihibG9ja1NldHRpbmdBcnJheVtpXS5tYXhTeW1ib2xzPHBhcnNlSW50KGNvbnRlbnRMZW5ndGgpKSl8fChjb250ZW50X3BvaW50ZXIuY2xhc3NMaXN0LmNvbnRhaW5zKCJoYXJkLWNvbnRlbnQiKSYmYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2V0dGluZ190eXBlIT0zKSl7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MTtjb250aW51ZX0KYmxvY2tfbnVtYmVyPTA7ZWxlbWVudFRvQWRkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QuYWRkKCJwZXJjZW50UG9pbnRlckNsYXNzIik7ZWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoIm1hcmtlZCIpO2lmKGJsb2NrU2V0dGluZ0FycmF5W2ldLnNjPT0xKXtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LmFkZCgic2NNYXJrIil9CmVsZW1lbnRUb0FkZC5pbm5lckhUTUw9YmxvY2tTZXR0aW5nQXJyYXlbaV0udGV4dDtlbGVtZW50VG9BZGQuZGF0YXNldC5yYmluZGVyPWJpbmRlck5hbWU7YmxvY2tfbnVtYmVyPWVsZW1lbnRUb0FkZC5jaGlsZHJlblswXS5hdHRyaWJ1dGVzWydkYXRhLWlkJ10udmFsdWU7aWYoYmxvY2tEdXBsaWNhdGU9PSdubycpe2lmKHVzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5sZW5ndGg+MCl7Zm9yKGxldCBpMT0wO2kxPHVzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5sZW5ndGg7aTErKyl7aWYoYmxvY2tfbnVtYmVyPT11c2VkQmxvY2tTZXR0aW5nQXJyYXlJZHNbaTFdKXtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xO2JyZWFrfX0KaWYocG9vbGJhY2tJPT0xKXtjb250aW51ZX19fQplbGVtZW50VG9BZGRTdHlsZT1jcmVhdGVTdHlsZUVsZW1lbnQoYmxvY2tfbnVtYmVyLGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRDc3MpO2lmKGVsZW1lbnRUb0FkZFN0eWxlJiZlbGVtZW50VG9BZGRTdHlsZSE9J2RlZmF1bHQnKXtlbGVtZW50VG9BZGQuc3R5bGUudGV4dEFsaWduPWVsZW1lbnRUb0FkZFN0eWxlfQppZigoYmxvY2tTZXR0aW5nQXJyYXlbaV0ubWluSGVhZGVycz4wKSYmKGJsb2NrU2V0dGluZ0FycmF5W2ldLm1pbkhlYWRlcnM+dGVybW9yYXJpdHlfcGFyZW50X3dpdGhfY29udGVudF9sZW5ndGgpKXtjb250aW51ZX0KaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0ubWluU3ltYm9scz5jb250ZW50TGVuZ3RoKXtjb250aW51ZX0KaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2V0dGluZ190eXBlPT0xKXtjdXJyZW50RWxlbWVudD1jdXJlZW50RWxlbWVudHNHYXRoZXIoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudC50b0xvd2VyQ2FzZSgpKTtpZihjdXJyZW50RWxlbWVudCl7aWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlPDApe3N1bVJlc3VsdD1jdXJyZW50RWxlbWVudC5sZW5ndGgrYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlO2lmKHN1bVJlc3VsdD49MCYmc3VtUmVzdWx0PGN1cnJlbnRFbGVtZW50Lmxlbmd0aCl7Y3VycmVudEVsZW1lbnQ9Y3VycmVudEVsZW1lbnRSZWNlaXZlcighMCl9fWVsc2V7c3VtUmVzdWx0PWJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQbGFjZS0xO2lmKHN1bVJlc3VsdDxjdXJyZW50RWxlbWVudC5sZW5ndGgpe2N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50UmVjZWl2ZXIoITEpfX19CmlmKGN1cnJlbnRFbGVtZW50IT11bmRlZmluZWQmJmN1cnJlbnRFbGVtZW50IT1udWxsJiZjdXJyZW50RWxlbWVudENoZWNrZXIpe3Bvc0N1cnJlbnRFbGVtZW50PWluaXRUYXJnZXRUb0luc2VydChibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50UG9zaXRpb24sJ2VsZW1lbnQnLGN1cnJlbnRFbGVtZW50KTtjdXJyZW50RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50VG9BZGQscG9zQ3VycmVudEVsZW1lbnQpO2N1cnJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3JiaW5kZXItJytiaW5kZXJOYW1lKTtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEFkJyk7dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xO3JiX3RlbXBFbGVtZW50X2NoZWNrPSExfWVsc2V7cmVwZWF0PSEwfX1lbHNlIGlmKGJsb2NrU2V0dGluZ0FycmF5W2ldLnNldHRpbmdfdHlwZT09Mil7aWYoYmxvY2tEdXBsaWNhdGU9PSdubycpe2Jsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRDb3VudD0xfQpyZXBlYXRhYmxlQ3VycmVudEVsZW1lbnQ9W107cmVDb3U9MDtjdXJGaXJzdFBsYWNlPWJsb2NrU2V0dGluZ0FycmF5W2ldLmZpcnN0UGxhY2U7Y3VyRWxlbWVudENvdW50PWJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRDb3VudDtjdXJFbGVtZW50U3RlcD1ibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50U3RlcDtyZXBlYXRhYmxlU3VjY2Vzcz0hMTtlbGVtZW50VG9BZGRTdHlsZT1jcmVhdGVTdHlsZUVsZW1lbnQoYmxvY2tfbnVtYmVyLGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRDc3MpO3JlcGVhdGFibGVDdXJyZW50RWxlbWVudD1jdXJlZW50RWxlbWVudHNHYXRoZXIoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudC50b0xvd2VyQ2FzZSgpKTtpZihyZXBlYXRhYmxlQ3VycmVudEVsZW1lbnQpe2ZvcihsZXQgaTE9MDtpMTxibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50Q291bnQ7aTErKyl7Y3VycmVudEVsZW1lbnRDaGVja2VyPSExO2xldCByZXBFbGVtZW50VG9BZGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmVwRWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoInBlcmNlbnRQb2ludGVyQ2xhc3MiKTtyZXBFbGVtZW50VG9BZGQuY2xhc3NMaXN0LmFkZCgibWFya2VkIik7aWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2M9PTEpe3JlcEVsZW1lbnRUb0FkZC5jbGFzc0xpc3QuYWRkKCJzY01hcmsiKX0KcmVwRWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoInJlcGVhdGFibGUtbWFyay0iK3JlcGVhdGFibGVCbG9ja0lkZW50aWZpZXIpO3JlcEVsZW1lbnRUb0FkZC5pbm5lckhUTUw9YmxvY2tTZXR0aW5nQXJyYXlbaV0udGV4dDtpZihlbGVtZW50VG9BZGRTdHlsZSYmZWxlbWVudFRvQWRkU3R5bGUhPSdkZWZhdWx0Jyl7cmVwRWxlbWVudFRvQWRkLnN0eWxlLnRleHRBbGlnbj1lbGVtZW50VG9BZGRTdHlsZX0Kc3VtUmVzdWx0PU1hdGgucm91bmQocGFyc2VJbnQoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZmlyc3RQbGFjZSkrKGkxKnBhcnNlSW50KGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRTdGVwKSktMSk7aWYoc3VtUmVzdWx0PHJlcGVhdGFibGVDdXJyZW50RWxlbWVudC5sZW5ndGgpe2N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50UmVjZWl2ZXIoITEscmVwZWF0YWJsZUN1cnJlbnRFbGVtZW50KX0KaWYoY3VycmVudEVsZW1lbnQhPXVuZGVmaW5lZCYmY3VycmVudEVsZW1lbnQhPW51bGwmJmN1cnJlbnRFbGVtZW50Q2hlY2tlcil7cG9zQ3VycmVudEVsZW1lbnQ9aW5pdFRhcmdldFRvSW5zZXJ0KGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQb3NpdGlvbiwnZWxlbWVudCcsY3VycmVudEVsZW1lbnQpO2N1cnJlbnRFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJlcEVsZW1lbnRUb0FkZCxwb3NDdXJyZW50RWxlbWVudCk7Y3VycmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO3JlcEVsZW1lbnRUb0FkZC5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkQWQnKTtjdXJGaXJzdFBsYWNlPXN1bVJlc3VsdCtwYXJzZUludChibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50U3RlcCkrMTtjdXJFbGVtZW50Q291bnQtLTtyZXBlYXRhYmxlU3VjY2Vzcz0hMH1lbHNle3JlcGVhdGFibGVTdWNjZXNzPSExO2JyZWFrfX19CmlmKHJlcGVhdGFibGVTdWNjZXNzPT0hMCl7dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xO3JlcGVhdGFibGVCbG9ja0lkZW50aWZpZXIrK31lbHNle2lmKCFibG9ja1NldHRpbmdBcnJheVtpXS51bnN1Y2Nlc3Mpe2Jsb2NrU2V0dGluZ0FycmF5W2ldLnVuc3VjY2Vzcz0xfWVsc2V7YmxvY2tTZXR0aW5nQXJyYXlbaV0udW5zdWNjZXNzPU1hdGgucm91bmQoYmxvY2tTZXR0aW5nQXJyYXlbaV0udW5zdWNjZXNzKzEpfQppZihibG9ja1NldHRpbmdBcnJheVtpXS51bnN1Y2Nlc3M+MTApe3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX1lbHNle2Jsb2NrU2V0dGluZ0FycmF5W2ldLmZpcnN0UGxhY2U9Y3VyRmlyc3RQbGFjZTtibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50Q291bnQ9Y3VyRWxlbWVudENvdW50O2Jsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRTdGVwPWN1ckVsZW1lbnRTdGVwO3JlcGVhdD0hMH19fWVsc2UgaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2V0dGluZ190eXBlPT0zKXtsZXQgZWxlbWVudFR5cGVTeW1ib2w9Jyc7bGV0IGVsZW1lbnRTcGFjZVN5bWJvbD0nJztsZXQgZWxlbWVudE5hbWU9Jyc7bGV0IGVsZW1lbnRUeXBlPScnO2xldCBlbGVtZW50VGFnPScnO2xldCBmaW5kUXVlcnk9MDtsZXQgZGlyZWN0Q2xhc3NSZXN1bHQ9W107bGV0IGRpcmVjdEVsZW1lbnQ9YmxvY2tTZXR0aW5nQXJyYXlbaV0uZGlyZWN0RWxlbWVudC50cmltKCk7aWYoZGlyZWN0RWxlbWVudC5zZWFyY2goJyMnKT4tMSl7ZmluZFF1ZXJ5PTF9ZWxzZSBpZigoZGlyZWN0RWxlbWVudC5zZWFyY2goJyMnKTwwKSYmKGRpcmVjdEVsZW1lbnQuc2VhcmNoKCcuJyk+LTEpKXtkaXJlY3RDbGFzc1Jlc3VsdD1kaXJlY3RDbGFzc0VsZW1lbnREZXRlY3RpbmcoYmxvY2tTZXR0aW5nQXJyYXksZGlyZWN0RWxlbWVudCk7ZmluZFF1ZXJ5PWRpcmVjdENsYXNzUmVzdWx0LmZpbmRRdWVyeTtjdXJyZW50RWxlbWVudD1kaXJlY3RDbGFzc1Jlc3VsdC5jdXJyZW50RWxlbWVudH0KaWYoZmluZFF1ZXJ5PT0xKXtjdXJyZW50RWxlbWVudD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGRpcmVjdEVsZW1lbnQpfQppZihjdXJyZW50RWxlbWVudCl7Y3VycmVudEVsZW1lbnRDaGVja2VyPSEwfQppZihjdXJyZW50RWxlbWVudCE9dW5kZWZpbmVkJiZjdXJyZW50RWxlbWVudCE9bnVsbCYmY3VycmVudEVsZW1lbnRDaGVja2VyKXtwb3NDdXJyZW50RWxlbWVudD1pbml0VGFyZ2V0VG9JbnNlcnQoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBvc2l0aW9uLCdlbGVtZW50JyxjdXJyZW50RWxlbWVudCk7Y3VycmVudEVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkLHBvc0N1cnJlbnRFbGVtZW50KTtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEFkJyk7Y3VycmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX1lbHNle3JlcGVhdD0hMH19ZWxzZSBpZihibG9ja1NldHRpbmdBcnJheVtpXS5zZXR0aW5nX3R5cGU9PTQpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjb250ZW50X3BvaW50ZXJfaWQiKS5wYXJlbnRFbGVtZW50LmFwcGVuZChlbGVtZW50VG9BZGQpO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX1lbHNlIGlmKGJsb2NrU2V0dGluZ0FycmF5W2ldLnNldHRpbmdfdHlwZT09NSl7bGV0IGN1cnJlbnRFbGVtZW50TGlzdD1jdXJlZW50RWxlbWVudHNHYXRoZXIoJ3AnLDEsY29udGVudF9wb2ludGVyLnBhcmVudEVsZW1lbnQpO2lmKGN1cnJlbnRFbGVtZW50TGlzdCYmY3VycmVudEVsZW1lbnRMaXN0Lmxlbmd0aD4wKXtsZXQgcENvdW50PWN1cnJlbnRFbGVtZW50TGlzdC5sZW5ndGg7bGV0IGVsZW1lbnROdW1iZXI9TWF0aC5yb3VuZChwQ291bnQvMik7aWYocENvdW50PjEpe2N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50TGlzdFtlbGVtZW50TnVtYmVyKzFdfQppZihjdXJyZW50RWxlbWVudCE9dW5kZWZpbmVkJiZjdXJyZW50RWxlbWVudCE9bnVsbCl7aWYocENvdW50PjEpe2N1cnJlbnRFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnRUb0FkZCxjdXJyZW50RWxlbWVudCl9ZWxzZXtjdXJyZW50RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50VG9BZGQsY3VycmVudEVsZW1lbnQubmV4dFNpYmxpbmcpfQplbGVtZW50VG9BZGQuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEFkJyk7Y3VycmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX1lbHNle3JlcGVhdD0hMH19ZWxzZXtyZXBlYXQ9ITB9fWVsc2UgaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2V0dGluZ190eXBlPT02KXtpZihjb250YWluZXJGb3I2dGgubGVuZ3RoPjApe2ZvcihsZXQgaj0wO2o8Y29udGFpbmVyRm9yNnRoLmxlbmd0aDtqKyspe2lmKGNvbnRhaW5lckZvcjZ0aFtqXS5lbGVtZW50UGxhY2U+YmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlKXtpZihqPT1jb250YWluZXJGb3I2dGgubGVuZ3RoLTEpe2NvbnRhaW5lckZvcjZ0aC5wdXNoKGJsb2NrU2V0dGluZ0FycmF5W2ldKTt1c2VkQmxvY2tTZXR0aW5nQXJyYXlJZHMucHVzaChibG9ja19udW1iZXIpO2Jsb2NrU2V0dGluZ0FycmF5LnNwbGljZShpLS0sMSk7cG9vbGJhY2tJPTE7YnJlYWt9fWVsc2V7Zm9yKGxldCBrPWNvbnRhaW5lckZvcjZ0aC5sZW5ndGgtMTtrPmotMTtrLS0pe2NvbnRhaW5lckZvcjZ0aFtrKzFdPWNvbnRhaW5lckZvcjZ0aFtrXX0KY29udGFpbmVyRm9yNnRoW2pdPWJsb2NrU2V0dGluZ0FycmF5W2ldO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MTticmVha319fWVsc2V7Y29udGFpbmVyRm9yNnRoLnB1c2goYmxvY2tTZXR0aW5nQXJyYXlbaV0pO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX19ZWxzZSBpZihibG9ja1NldHRpbmdBcnJheVtpXS5zZXR0aW5nX3R5cGU9PTcpe2lmKGNvbnRhaW5lckZvcjd0aC5sZW5ndGg+MCl7Zm9yKGxldCBqPTA7ajxjb250YWluZXJGb3I3dGgubGVuZ3RoO2orKyl7aWYoY29udGFpbmVyRm9yN3RoW2pdLmVsZW1lbnRQbGFjZT5ibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50UGxhY2Upe2lmKGo9PWNvbnRhaW5lckZvcjd0aC5sZW5ndGgtMSl7Y29udGFpbmVyRm9yN3RoLnB1c2goYmxvY2tTZXR0aW5nQXJyYXlbaV0pO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MTticmVha319ZWxzZXtmb3IobGV0IGs9Y29udGFpbmVyRm9yN3RoLmxlbmd0aC0xO2s+ai0xO2stLSl7Y29udGFpbmVyRm9yN3RoW2srMV09Y29udGFpbmVyRm9yN3RoW2tdfQpjb250YWluZXJGb3I3dGhbal09YmxvY2tTZXR0aW5nQXJyYXlbaV07dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xO2JyZWFrfX19ZWxzZXtjb250YWluZXJGb3I3dGgucHVzaChibG9ja1NldHRpbmdBcnJheVtpXSk7dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xfX19Y2F0Y2goZSl7Y29uc29sZS5sb2coZS5tZXNzYWdlKX19CnZhciBhcnJheT10ZXh0TGVuZ3RoR2F0aGVyZXIobG9yZE9mRWxlbWVudHMpLHRsQXJyYXk9YXJyYXkuYXJyYXksbGVuZ3RoPWFycmF5Lmxlbmd0aDtpZihjb250YWluZXJGb3I2dGgubGVuZ3RoPjApe3BlcmNlbnRJbnNlcnRlcihsb3JkT2ZFbGVtZW50cyxjb250YWluZXJGb3I2dGgsdGxBcnJheSxsZW5ndGgpfQppZihjb250YWluZXJGb3I3dGgubGVuZ3RoPjApe3N5bWJvbEluc2VydGVyKGxvcmRPZkVsZW1lbnRzLGNvbnRhaW5lckZvcjd0aCx0bEFycmF5KX0Kc2hvcnRjb2Rlc0luc2VydCgpO2xldCBzdG9wcGVyPTA7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGZ1bmN0aW9uKCl7aWYocmVwZWF0PSEwKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YXN5bmNCbG9ja3NJbnNlcnRpbmdGdW5jdGlvbihibG9ja1NldHRpbmdBcnJheSl9LDEwMCl9fSl9Y2F0Y2goZSl7Y29uc29sZS5sb2coZS5tZXNzYWdlKX19CmZ1bmN0aW9uIHBvc3NpYmxlVGFnc0luQ2hlY2tDb25maXJtZXIocG9zc2libGVUYWdzQXJyYXkscG9zc2libGVUYWdzSW5DaGVjayl7aWYocG9zc2libGVUYWdzQXJyYXkuaW5jbHVkZXMoIkxJIikpe2lmKHBvc3NpYmxlVGFnc0FycmF5LmluY2x1ZGVzKCJVTCIpKXtwb3NzaWJsZVRhZ3NJbkNoZWNrLnB1c2goIlVMIil9CmlmKHBvc3NpYmxlVGFnc0FycmF5LmluY2x1ZGVzKCJPTCIpKXtwb3NzaWJsZVRhZ3NJbkNoZWNrLnB1c2goIk9MIil9fQpyZXR1cm4hMX0KZnVuY3Rpb24gdGV4dExlbmd0aEdhdGhlcmVyKGxvcmRPZkVsZW1lbnRzTG9jKXt2YXIgcG9zc2libGVUYWdzQXJyYXk7aWYodHlwZW9mIHRhZ3NMaXN0Rm9yVGV4dExlbmd0aCE9PSJ1bmRlZmluZWQiKXtwb3NzaWJsZVRhZ3NBcnJheT10YWdzTGlzdEZvclRleHRMZW5ndGh9ZWxzZXtwb3NzaWJsZVRhZ3NBcnJheT1bIlAiLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJESVYiLCJCTE9DS1FVT1RFIiwiSU5ERVgiLCJBUlRJQ0xFIiwiU0VDVElPTiJdfQpsZXQgcG9zc2libGVUYWdzSW5DaGVjaz1bIkRJViIsIklOREVYIiwiU0VDVElPTiJdO3Bvc3NpYmxlVGFnc0luQ2hlY2tDb25maXJtZXIocG9zc2libGVUYWdzQXJyYXkscG9zc2libGVUYWdzSW5DaGVjayk7bGV0IGV4Y0Fycj1leGNJZENsVW5wYWNrZXIoKSx0ZXh0TGVuZ3RoPTAsdGxBcnJheT1bXTtmdW5jdGlvbiB0ZXh0TGVuZ3RoR2F0aGVyZXJSZWMobG9yZE9mRWxlbWVudHNMb2Mpe2xldCBhbGxvd2VkO2xldCBjb3UxO2xldCBjbGFzc2VzQXJyYXk7bGV0IGNvdW50U3VjY2Vzcz0wO3RyeXtmb3IobGV0IGk9MDtpPGxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuLmxlbmd0aDtpKyspe2lmKHBvc3NpYmxlVGFnc0FycmF5LmluY2x1ZGVzKGxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLnRhZ05hbWUpJiYhbG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKCJwZXJjZW50UG9pbnRlckNsYXNzIikmJmxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLmlkIT0idG9jX2NvbnRhaW5lciIpe2lmKHBvc3NpYmxlVGFnc0luQ2hlY2suaW5jbHVkZXMobG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0udGFnTmFtZSkmJihsb3JkT2ZFbGVtZW50c0xvYy5jaGlsZHJlbltpXS5jaGlsZHJlbi5sZW5ndGg+MCkpe2FsbG93ZWQ9ITA7aWYobG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0uaWQmJmV4Y0Fyci5pZC5sZW5ndGg+MCl7Y291MT0wO3doaWxlKGV4Y0Fyci5pZFtjb3UxXSl7aWYobG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0uaWQudG9Mb3dlckNhc2UoKT09ZXhjQXJyLmlkW2NvdTFdLnRvTG93ZXJDYXNlKCkpe2FsbG93ZWQ9ITE7YnJlYWt9CmNvdTErK319CmlmKGxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLmNsYXNzTGlzdC5sZW5ndGg+MCYmZXhjQXJyWydjbGFzcyddLmxlbmd0aD4wKXtjb3UxPTA7d2hpbGUoZXhjQXJyWydjbGFzcyddW2NvdTFdKXtjbGFzc2VzQXJyYXk9ZXhjQXJyWydjbGFzcyddW2NvdTFdLnNwbGl0KCcuJyk7aWYoY2xhc3Nlc0FycmF5LmV2ZXJ5KGNsYXNzTmFtZT0+bG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpKXthbGxvd2VkPSExO2JyZWFrfQpjb3UxKyt9fQppZihleGNBcnIudGFnLmxlbmd0aD4wKXtjb3UxPTA7d2hpbGUoZXhjQXJyLnRhZ1tjb3UxXSl7aWYobG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT1leGNBcnIudGFnW2NvdTFdLnRvTG93ZXJDYXNlKCkpe2FsbG93ZWQ9ITE7YnJlYWt9CmNvdTErK319CmlmKGFsbG93ZWQpe2lmKHRleHRMZW5ndGhHYXRoZXJlclJlYyhsb3JkT2ZFbGVtZW50c0xvYy5jaGlsZHJlbltpXSxleGNBcnIscG9zc2libGVUYWdzQXJyYXkscG9zc2libGVUYWdzSW5DaGVjaykpe2NvdW50U3VjY2VzcysrO2NvbnRpbnVlfX19CnRleHRMZW5ndGg9dGV4dExlbmd0aCtsb3JkT2ZFbGVtZW50c0xvYy5jaGlsZHJlbltpXS5pbm5lclRleHQubGVuZ3RoO3RsQXJyYXkucHVzaCh7dGFnOmxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLnRhZ05hbWUsbGVuZ3RoOmxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLmlubmVyVGV4dC5sZW5ndGgsbGVuZ3RoU3VtOnRleHRMZW5ndGgsZWxlbWVudDpsb3JkT2ZFbGVtZW50c0xvYy5jaGlsZHJlbltpXX0pO2NvdW50U3VjY2VzcysrfX19Y2F0Y2goZXIpe2NvbnNvbGUubG9nKGVyLm1lc3NhZ2UpfQpyZXR1cm4gY291bnRTdWNjZXNzPjB9CnRleHRMZW5ndGhHYXRoZXJlclJlYyhsb3JkT2ZFbGVtZW50c0xvYyk7cmV0dXJue2FycmF5OnRsQXJyYXksbGVuZ3RoOnRleHRMZW5ndGh9fQp3aW5kb3cuYXN5bmNGdW5jdGlvbkxhdW5jaGVyPWZ1bmN0aW9uKCl7aWYod2luZG93LmpzSW5wdXRlckxhdW5jaCE9PXVuZGVmaW5lZCYmWzE1LDEwXS5pbmNsdWRlcyh3aW5kb3cuanNJbnB1dGVyTGF1bmNoKSYmKHR5cGVvZiBhc3luY0Jsb2Nrc0luc2VydGluZ0Z1bmN0aW9uIT09J3VuZGVmaW5lZCcpJiYodHlwZW9mIGFzeW5jQmxvY2tzSW5zZXJ0aW5nRnVuY3Rpb249PT0nZnVuY3Rpb24nKSYmdHlwZW9mIGVuZGVkU2MhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIGVuZGVkQ2MhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIHVzZWRBZEJsb2Nrc0FycmF5IT09J3VuZGVmaW5lZCcmJnR5cGVvZiB1c2VkQmxvY2tTZXR0aW5nQXJyYXlJZHMhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIHNhbWVFbGVtZW50QWZ0ZXJXaWR0aCE9PSd1bmRlZmluZWQnJiZ0eXBlb2Ygc2FtZUVsZW1lbnRBZnRlckV4Y0NsYXNzSWQhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIHNhbWVFbGVtZW50QWZ0ZXJGcm9tQ29uc3RydWN0aW9uIT09J3VuZGVmaW5lZCcmJnR5cGVvZiByYl90ZW1wRWxlbWVudF9jaGVjayE9PSd1bmRlZmluZWQnJiZ0eXBlb2YgcmJfdGVtcEVsZW1lbnQhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIHdpbmRvdy5qc0lucHV0ZXJMYXVuY2ghPT0ndW5kZWZpbmVkJyl7YXN5bmNCbG9ja3NJbnNlcnRpbmdGdW5jdGlvbihibG9ja1NldHRpbmdBcnJheSk7aWYoIWVuZGVkU2Mpe3Nob3J0Y29kZXNJbnNlcnQoKX0KaWYoIWVuZGVkQ2Mpe319ZWxzZXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YXN5bmNGdW5jdGlvbkxhdW5jaGVyKCl9LDUwKX19O2Z1bmN0aW9uIGFzeW5jSW5zZXJ0aW5nc0luc2VydGluZ0Z1bmN0aW9uKGluc2VydGluZ3NBcnJheSl7bGV0IGN1cnJlbnRFbGVtZW50Rm9ySW5zZXJ0aW5nPTA7bGV0IGN1cnJlbnRFbGVtZW50VG9Nb3ZlPTA7bGV0IHBvc2l0aW9uRWxlbWVudD0wO2xldCBwb3NpdGlvbj0wO2xldCBpbnNlcnRUb0FkZD0wO2xldCBwb3N0SWQ9MDtsZXQgcmVwZWF0U2VhcmNoPTA7aWYoaW5zZXJ0aW5nc0FycmF5JiZpbnNlcnRpbmdzQXJyYXkubGVuZ3RoPjApe2ZvcihsZXQgaT0wO2k8aW5zZXJ0aW5nc0FycmF5Lmxlbmd0aDtpKyspe2lmKCFpbnNlcnRpbmdzQXJyYXlbaV0udXNlZHx8KGluc2VydGluZ3NBcnJheVtpXS51c2VkJiZpbnNlcnRpbmdzQXJyYXlbaV0udXNlZD09MCkpe3Bvc2l0aW9uRWxlbWVudD1pbnNlcnRpbmdzQXJyYXlbaV0ucG9zaXRpb25fZWxlbWVudDtwb3NpdGlvbj1pbnNlcnRpbmdzQXJyYXlbaV0ucG9zaXRpb247aW5zZXJ0VG9BZGQ9aW5zZXJ0aW5nc0FycmF5W2ldLmNvbnRlbnQ7cG9zdElkPWluc2VydGluZ3NBcnJheVtpXS5wb3N0SWQ7Y3VycmVudEVsZW1lbnRGb3JJbnNlcnRpbmc9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihwb3NpdGlvbkVsZW1lbnQpO2N1cnJlbnRFbGVtZW50VG9Nb3ZlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb3ZlcmVkSW5zZXJ0aW5nc1tkYXRhLWlkPSInK3Bvc3RJZCsnIl0nKTtpZihjdXJyZW50RWxlbWVudEZvckluc2VydGluZyl7aWYocG9zaXRpb249PTApe2N1cnJlbnRFbGVtZW50Rm9ySW5zZXJ0aW5nLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGN1cnJlbnRFbGVtZW50VG9Nb3ZlLGN1cnJlbnRFbGVtZW50Rm9ySW5zZXJ0aW5nKTtjdXJyZW50RWxlbWVudFRvTW92ZS5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkSW5zZXJ0aW5ncycpO2luc2VydGluZ3NBcnJheVtpXS51c2VkPTF9ZWxzZXtjdXJyZW50RWxlbWVudEZvckluc2VydGluZy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjdXJyZW50RWxlbWVudFRvTW92ZSxjdXJyZW50RWxlbWVudEZvckluc2VydGluZy5uZXh0U2libGluZyk7Y3VycmVudEVsZW1lbnRUb01vdmUuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEluc2VydGluZ3MnKTtpbnNlcnRpbmdzQXJyYXlbaV0udXNlZD0xfX1lbHNle3JlcGVhdFNlYXJjaD0xfX19fQppZihyZXBlYXRTZWFyY2g9PTEpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXthc3luY0luc2VydGluZ3NJbnNlcnRpbmdGdW5jdGlvbihpbnNlcnRpbmdzQXJyYXkpfSwxMDApfX0KZnVuY3Rpb24gaW5zZXJ0aW5nc0Z1bmN0aW9uTGF1bmNoKCl7aWYod2luZG93LmpzSW5zZXJ0aW5nc0xhdW5jaCE9PXVuZGVmaW5lZCYmanNJbnNlcnRpbmdzTGF1bmNoPT0yNSl7YXN5bmNJbnNlcnRpbmdzSW5zZXJ0aW5nRnVuY3Rpb24oaW5zZXJ0aW5nc0FycmF5KX1lbHNle3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpbnNlcnRpbmdzRnVuY3Rpb25MYXVuY2goKX0sMTAwKX19CmZ1bmN0aW9uIHNldExvbmdDYWNoZSgpe2xldCB4aHR0cD1uZXcgWE1MSHR0cFJlcXVlc3QoKTtsZXQgc2VuZERhdGE9J2FjdGlvbj1zZXRMb25nQ2FjaGUmdHlwZT1sb25nQ2F0Y2hpbmcnO3hodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihyZWRhdGEpe2lmKHRoaXMucmVhZHlTdGF0ZT09NCYmdGhpcy5zdGF0dXM9PTIwMCl7Y29uc29sZS5sb2coJ2xvbmcgY2FjaGUgZGVwbG95ZWQnKX19O3hodHRwLm9wZW4oIlBPU1QiLHJiX2FqYXh1cmwsITApO3hodHRwLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO3hodHRwLnNlbmQoc2VuZERhdGEpfQpmdW5jdGlvbiBjYWNoZVBsYWNpbmcoYWxlcnRfdHlwZSxlcnJvckluZm89bnVsbCl7bGV0IGFkQmxvY2tzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wZXJjZW50UG9pbnRlckNsYXNzIC4nK2Jsb2NrX2NsYXNzZXMuam9pbignLCAucGVyY2VudFBvaW50ZXJDbGFzcyAuJykpO2xldCBjdXJBZEJsb2NrO2xldCBva1N0YXRlcz1bJ2RvbmUnLCdyZWZyZXNoLXdhaXQnLCduby1ibG9jaycsJ2ZldGNoZWQnXTtsZXQgYmxvY2tBaWQ9bnVsbDtsZXQgYmxvY2tJZDtpZih0eXBlb2YgY2FjaGVkQmxvY2tzQXJyYXkhPT0ndW5kZWZpbmVkJyYmY2FjaGVkQmxvY2tzQXJyYXkmJmNhY2hlZEJsb2Nrc0FycmF5Lmxlbmd0aD4wJiZhZEJsb2NrcyYmYWRCbG9ja3MubGVuZ3RoPjApe2ZvcihsZXQgaT0wO2k8YWRCbG9ja3MubGVuZ3RoO2krKyl7YmxvY2tBaWQ9YWRCbG9ja3NbaV0uZGF0YXNldC5haWQ7aWYoIWJsb2NrQWlkKXtibG9ja0lkPWFkQmxvY2tzW2ldLmRhdGFzZXQuaWQ7aWYoY2FjaGVkQmxvY2tzQXJyYXlbYmxvY2tJZF0pe2pRdWVyeShhZEJsb2Nrc1tpXSkuaHRtbChjYWNoZWRCbG9ja3NBcnJheVtibG9ja0lkXSl9fX19CmlmKGFsZXJ0X3R5cGUmJmFsZXJ0X3R5cGU9PSdoaWdoJyl7c2V0TG9uZ0NhY2hlKCl9fQpmdW5jdGlvbiBzeW1ib2xJbnNlcnRlcihsb3JkT2ZFbGVtZW50cyxjb250YWluZXJGb3I3dGgsdGxBcnJheSl7dHJ5e3ZhciBjdXJyZW50Q2hpbGRyZW5MZW5ndGg9MDtsZXQgcHJldmlvdXNCcmVhaz0wO2xldCBuZWVkbGVMZW5ndGg7bGV0IGN1cnJlbnRTdW1MZW5ndGg7bGV0IGVsZW1lbnRUb0FkZDtsZXQgZWxlbWVudFRvQmluZDtsZXQgZWxlbWVudFRvQWRkU3R5bGU7bGV0IGJsb2NrX251bWJlcjtsZXQgYmluZGVyTmFtZTtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hcmtlZFNwYW4xIikpe2ZvcihsZXQgaT0wO2k8Y29udGFpbmVyRm9yN3RoLmxlbmd0aDtpKyspe3ByZXZpb3VzQnJlYWs9MDtjdXJyZW50Q2hpbGRyZW5MZW5ndGg9MDtjdXJyZW50U3VtTGVuZ3RoPTA7bmVlZGxlTGVuZ3RoPU1hdGguYWJzKGNvbnRhaW5lckZvcjd0aFtpXS5lbGVtZW50UGxhY2UpO2JpbmRlck5hbWU9ZWxlbWVudEJpbmRlck5hbWVHZW5lcmF0b3IoKTtlbGVtZW50VG9BZGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoInBlcmNlbnRQb2ludGVyQ2xhc3MiKTtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LmFkZCgibWFya2VkIik7aWYoY29udGFpbmVyRm9yN3RoW2ldLnNjPT0xKXtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LmFkZCgic2NNYXJrIil9CmVsZW1lbnRUb0FkZC5kYXRhc2V0LnJiaW5kZXI9YmluZGVyTmFtZTtlbGVtZW50VG9BZGQuaW5uZXJIVE1MPWNvbnRhaW5lckZvcjd0aFtpXS50ZXh0O2Jsb2NrX251bWJlcj1lbGVtZW50VG9BZGQuY2hpbGRyZW5bMF0uYXR0cmlidXRlc1snZGF0YS1pZCddLnZhbHVlO2lmKCFlbGVtZW50VG9BZGQpe2NvbnRpbnVlfQplbGVtZW50VG9BZGRTdHlsZT1jcmVhdGVTdHlsZUVsZW1lbnQoYmxvY2tfbnVtYmVyLGNvbnRhaW5lckZvcjd0aFtpXS5lbGVtZW50Q3NzKTtpZihlbGVtZW50VG9BZGRTdHlsZSYmZWxlbWVudFRvQWRkU3R5bGUhPSdkZWZhdWx0Jyl7ZWxlbWVudFRvQWRkLnN0eWxlLnRleHRBbGlnbj1lbGVtZW50VG9BZGRTdHlsZX0KaWYoY29udGFpbmVyRm9yN3RoW2ldLmVsZW1lbnRQbGFjZTwwKXtmb3IobGV0IGo9dGxBcnJheS5sZW5ndGgtMTtqPi0xO2otLSl7Y3VycmVudFN1bUxlbmd0aD1jdXJyZW50U3VtTGVuZ3RoK3RsQXJyYXlbal0ubGVuZ3RoO2lmKG5lZWRsZUxlbmd0aDxjdXJyZW50U3VtTGVuZ3RoKXtlbGVtZW50VG9CaW5kPXRsQXJyYXlbal0uZWxlbWVudDtlbGVtZW50VG9CaW5kPWN1cnJlbnRFbGVtZW50UmVjZWl2ZXJTcGVjKCEwLGosdGxBcnJheSxlbGVtZW50VG9CaW5kKTtlbGVtZW50VG9CaW5kLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnRUb0FkZCxlbGVtZW50VG9CaW5kKTtlbGVtZW50VG9CaW5kLmNsYXNzTGlzdC5hZGQoJ3JiaW5kZXItJytiaW5kZXJOYW1lKTtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEFkJyk7YnJlYWt9fX1lbHNlIGlmKGNvbnRhaW5lckZvcjd0aFtpXS5lbGVtZW50UGxhY2U9PTApe2VsZW1lbnRUb0JpbmQ9dGxBcnJheVswXS5lbGVtZW50O2VsZW1lbnRUb0JpbmQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkLGVsZW1lbnRUb0JpbmQpO2VsZW1lbnRUb0JpbmQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkQWQnKX1lbHNle2ZvcihsZXQgaj0wO2o8dGxBcnJheS5sZW5ndGg7aisrKXtjdXJyZW50U3VtTGVuZ3RoPWN1cnJlbnRTdW1MZW5ndGgrdGxBcnJheVtqXS5sZW5ndGg7aWYobmVlZGxlTGVuZ3RoPGN1cnJlbnRTdW1MZW5ndGgpe2VsZW1lbnRUb0JpbmQ9dGxBcnJheVtqXS5lbGVtZW50O2VsZW1lbnRUb0JpbmQ9Y3VycmVudEVsZW1lbnRSZWNlaXZlclNwZWMoITEsaix0bEFycmF5LGVsZW1lbnRUb0JpbmQpO2VsZW1lbnRUb0JpbmQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkLGVsZW1lbnRUb0JpbmQubmV4dFNpYmxpbmcpO2VsZW1lbnRUb0JpbmQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkQWQnKTticmVha319fX0KdmFyIHNwYW5NYXJrZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3NwYW5NYXJrZXIuc2V0QXR0cmlidXRlKCJpZCIsIm1hcmtlZFNwYW4xIik7bG9yZE9mRWxlbWVudHMucHJlcGVuZChzcGFuTWFya2VyKX19Y2F0Y2goZSl7Y29uc29sZS5sb2coZSl9fQpmdW5jdGlvbiBwZXJjZW50SW5zZXJ0ZXIobG9yZE9mRWxlbWVudHMsY29udGFpbmVyRm9yNnRoLHRsQXJyYXksdGV4dExlbmd0aCl7dHJ5e3ZhciB0ZXh0TmVlZHlMZW5ndGg9MDtsZXQgZWxlbWVudFRvQWRkO3ZhciBlbGVtZW50VG9CaW5kO2xldCBlbGVtZW50VG9BZGRTdHlsZTtsZXQgYmxvY2tfbnVtYmVyO3ZhciBiaW5kZXJOYW1lO2Z1bmN0aW9uIGluc2VydEJ5UGVyY2VudHModGV4dExlbmd0aCl7bGV0IGxvY2FsTWlkZGxlVmFsdWU9MDtmb3IobGV0IGo9MDtqPGNvbnRhaW5lckZvcjZ0aC5sZW5ndGg7aisrKXt0ZXh0TmVlZHlMZW5ndGg9TWF0aC5yb3VuZCh0ZXh0TGVuZ3RoKihjb250YWluZXJGb3I2dGhbal0uZWxlbWVudFBsYWNlLzEwMCkpO2ZvcihsZXQgaT0wO2k8dGxBcnJheS5sZW5ndGg7aSsrKXtpZih0bEFycmF5W2ldLmxlbmd0aFN1bT49dGV4dE5lZWR5TGVuZ3RoKXtiaW5kZXJOYW1lPWVsZW1lbnRCaW5kZXJOYW1lR2VuZXJhdG9yKCk7ZWxlbWVudFRvQWRkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QuYWRkKCJwZXJjZW50UG9pbnRlckNsYXNzIik7ZWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoIm1hcmtlZCIpO2lmKGNvbnRhaW5lckZvcjZ0aFtqXS5zYz09MSl7ZWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoInNjTWFyayIpfQplbGVtZW50VG9BZGQuZGF0YXNldC5yYmluZGVyPWJpbmRlck5hbWU7ZWxlbWVudFRvQWRkLmlubmVySFRNTD1jb250YWluZXJGb3I2dGhbal0udGV4dDtpZighZWxlbWVudFRvQWRkKXticmVha30KYmxvY2tfbnVtYmVyPWVsZW1lbnRUb0FkZC5jaGlsZHJlblswXS5hdHRyaWJ1dGVzWydkYXRhLWlkJ10udmFsdWU7ZWxlbWVudFRvQWRkU3R5bGU9Y3JlYXRlU3R5bGVFbGVtZW50KGJsb2NrX251bWJlcixjb250YWluZXJGb3I2dGhbal0uZWxlbWVudENzcyk7aWYoZWxlbWVudFRvQWRkU3R5bGUmJmVsZW1lbnRUb0FkZFN0eWxlIT0nZGVmYXVsdCcpe2VsZW1lbnRUb0FkZC5zdHlsZS50ZXh0QWxpZ249ZWxlbWVudFRvQWRkU3R5bGV9CmxvY2FsTWlkZGxlVmFsdWU9dGxBcnJheVtpXS5sZW5ndGhTdW0tTWF0aC5yb3VuZCh0bEFycmF5W2ldLmxlbmd0aC8yKTtlbGVtZW50VG9CaW5kPXRsQXJyYXlbaV0uZWxlbWVudDtjdXJyZW50RWxlbWVudFJlY2VpdmVyU3BlYyghMSxpLHRsQXJyYXksZWxlbWVudFRvQmluZCk7aWYodGV4dE5lZWR5TGVuZ3RoPGxvY2FsTWlkZGxlVmFsdWUpe2VsZW1lbnRUb0JpbmQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkLGVsZW1lbnRUb0JpbmQpfWVsc2V7ZWxlbWVudFRvQmluZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50VG9BZGQsZWxlbWVudFRvQmluZC5uZXh0U2libGluZyl9CmVsZW1lbnRUb0JpbmQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkQWQnKTticmVha319fQpyZXR1cm4hMX0KZnVuY3Rpb24gY2xlYXJUbE1hcmtzKCl7bGV0IG1hcmtzRm9yRGVsZXRpbmc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRleHRMZW5ndGhNYXJrZXInKTtpZihtYXJrc0ZvckRlbGV0aW5nLmxlbmd0aD4wKXtmb3IobGV0IGk9MDtpPG1hcmtzRm9yRGVsZXRpbmcubGVuZ3RoO2krKyl7bWFya3NGb3JEZWxldGluZ1tpXS5yZW1vdmUoKX19fQppZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hcmtlZFNwYW4iKSl7aW5zZXJ0QnlQZXJjZW50cyh0ZXh0TGVuZ3RoKTtjbGVhclRsTWFya3MoKTt2YXIgc3Bhbk1hcmtlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7c3Bhbk1hcmtlci5zZXRBdHRyaWJ1dGUoImlkIiwibWFya2VkU3BhbiIpO2xvcmRPZkVsZW1lbnRzLnByZXBlbmQoc3Bhbk1hcmtlcil9fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUubWVzc2FnZSl9fQpmdW5jdGlvbiBzYXZlQ29udGVudEJsb2NrKGNvbnRlbnRDb250YWluZXIpe3RyeXtpZighZ2F0aGVyX2NvbnRlbnQpe2NvbnNvbGUubG9nKCdjb250ZW50IGdhdGhlciBzYXZlIGZ1bmN0aW9uIGVudGVyZWQnKTtsZXQgeGh0dHA9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7bGV0IHNlbmREYXRhPSdhY3Rpb249UkZXUF9zYXZlQ29udGVudENvbnRhaW5lciZ0eXBlPWdhdGhlckNvbnRlbnRCbG9jayZkYXRhPScrY29udGVudENvbnRhaW5lcjt4aHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24ocmVkYXRhKXtpZih0aGlzLnJlYWR5U3RhdGU9PTQmJnRoaXMuc3RhdHVzPT0yMDApe2NvbnNvbGUubG9nKCdjb250ZW50IGdhdGhlciBzdWNjZWVkJyl9ZWxzZXtjb25zb2xlLmxvZygnY29udGVudCBnYXRoZXIgZ29uZSB3cm9uZycpfX07eGh0dHAub3BlbigiUE9TVCIscmJfYWpheHVybCwhMCk7eGh0dHAuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7eGh0dHAuc2VuZChzZW5kRGF0YSl9fWNhdGNoKGVyKXtjb25zb2xlLmxvZygnY29udGVudCBnYXRoZXIgZXJyb3I6ICcrZXIrJzsnKX19CndpbmRvdy5nYXRoZXJDb250ZW50QmxvY2s9ZnVuY3Rpb24oKXtsZXQgY1BvaW50ZXI9bnVsbCxjUG9pbnRlclBhcmVudD1udWxsLGNQb2ludGVyUGFyZW50U3RyaW5nPW51bGwsY2xhc3NXb3Jkcz1bJ2NvbnRlbnQnLCdlbnRyeScsJ3Bvc3QnLCd3cmFwJywnZGVzY3JpcHRpb24nLCd0YXhvbm9teSddLGNsYXNzQ2hvb3NlZD0hMTtjUG9pbnRlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY29udGVudF9wb2ludGVyX2lkJyk7aWYoY1BvaW50ZXIpe2lmKHdpbmRvdy5qc0lucHV0ZXJMYXVuY2ghPT0xNSl7cmV0dXJuITF9CmNQb2ludGVyUGFyZW50PWNQb2ludGVyLnBhcmVudEVsZW1lbnQ7aWYoY1BvaW50ZXJQYXJlbnQpe2lmKGNQb2ludGVyUGFyZW50LmlkKXtjUG9pbnRlclBhcmVudFN0cmluZz0nIycrY1BvaW50ZXJQYXJlbnQuaWR9ZWxzZXtpZihjUG9pbnRlclBhcmVudC5jbGFzc0xpc3QubGVuZ3RoPjApe2NQb2ludGVyUGFyZW50U3RyaW5nPScuJytjUG9pbnRlclBhcmVudC5jbGFzc0xpc3RbMF07Zm9yKGxldCBqPTA7ajxjbGFzc1dvcmRzLmxlbmd0aDtqKyspe2ZvcihsZXQgaT0wO2k8Y1BvaW50ZXJQYXJlbnQuY2xhc3NMaXN0Lmxlbmd0aDtpKyspe2lmKGNQb2ludGVyUGFyZW50LmNsYXNzTGlzdFtpXS5pbmNsdWRlcyhjbGFzc1dvcmRzW2pdKSl7Y1BvaW50ZXJQYXJlbnRTdHJpbmc9Jy4nK2NQb2ludGVyUGFyZW50LmNsYXNzTGlzdFtpXTtjbGFzc0Nob29zZWQ9ITA7YnJlYWt9fQppZihjbGFzc0Nob29zZWQ9PT0hMCl7YnJlYWt9fX19CmlmKGNQb2ludGVyUGFyZW50U3RyaW5nKXtjb25zb2xlLmxvZygnY29udGVudCBnYXRoZXIgY29udGVudCBibG9jayBkZXRlY3RlZCcpO3NhdmVDb250ZW50QmxvY2soY1BvaW50ZXJQYXJlbnRTdHJpbmcpfX19ZWxzZXtjb25zb2xlLmxvZygnY29udGVudCBnYXRoZXIgZGVsYXllZCcpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtnYXRoZXJDb250ZW50QmxvY2soKX0sNTAwKX19O3dpbmRvdy5yZW1vdmVNYXJnaW5DbGFzcz1mdW5jdGlvbihibG9ja09iamVjdCl7aWYoYmxvY2tPYmplY3QmJnR5cGVvZiB3aW5kb3cuanNJbnB1dGVyTGF1bmNoIT09J3VuZGVmaW5lZCcmJlsxNSwxMF0uaW5jbHVkZXMod2luZG93LmpzSW5wdXRlckxhdW5jaCkpe2xldCBiaW5kZXJOYW1lLG5lZWRlZEVsZW1lbnQsY3VycmVudERpcmVjdGlvbixzZWVrZXJJdGVyYXRpb25Db3VudCxjdXJyZW50U3VibGluZztiaW5kZXJOYW1lPWJsb2NrT2JqZWN0LmRhdGFzZXQucmJpbmRlcjtpZihiaW5kZXJOYW1lKXtzZWVrZXJJdGVyYXRpb25Db3VudD0wO2N1cnJlbnREaXJlY3Rpb249J2JlZm9yZSc7ZG97c2Vla2VySXRlcmF0aW9uQ291bnQrKztjdXJyZW50U3VibGluZz1ibG9ja09iamVjdC5uZXh0RWxlbWVudFNpYmxpbmc7aWYoY3VycmVudFN1YmxpbmcmJmN1cnJlbnRTdWJsaW5nLmNsYXNzTGlzdC5jb250YWlucygncmJpbmRlci0nK2JpbmRlck5hbWUpKXtuZWVkZWRFbGVtZW50PWN1cnJlbnRTdWJsaW5nfX13aGlsZShjdXJyZW50U3VibGluZyYmIW5lZWRlZEVsZW1lbnQmJnNlZWtlckl0ZXJhdGlvbkNvdW50PDUpO2lmKCFuZWVkZWRFbGVtZW50KXtzZWVrZXJJdGVyYXRpb25Db3VudD0wO2N1cnJlbnREaXJlY3Rpb249J2FmdGVyJztkb3tzZWVrZXJJdGVyYXRpb25Db3VudCsrO2N1cnJlbnRTdWJsaW5nPWJsb2NrT2JqZWN0LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7aWYoY3VycmVudFN1YmxpbmcmJmN1cnJlbnRTdWJsaW5nLmNsYXNzTGlzdC5jb250YWlucygncmJpbmRlci0nK2JpbmRlck5hbWUpKXtuZWVkZWRFbGVtZW50PWN1cnJlbnRTdWJsaW5nfX13aGlsZShjdXJyZW50U3VibGluZyYmIW5lZWRlZEVsZW1lbnQmJnNlZWtlckl0ZXJhdGlvbkNvdW50PDUpO30KaWYobmVlZGVkRWxlbWVudCl7aWYoY3VycmVudERpcmVjdGlvbj09PSdiZWZvcmUnKXtuZWVkZWRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3Jmd3BfcmVtb3ZlZE1hcmdpblRvcCcpfWVsc2V7bmVlZGVkRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdyZndwX3JlbW92ZWRNYXJnaW5Cb3R0b20nKX19fX0KcmV0dXJuITF9O2Z1bmN0aW9uIGVsZW1lbnRCaW5kZXJOYW1lR2VuZXJhdG9yKCl7bGV0IGJpbmRlck5hbWU9JycsY2hlY2tlZEVsZW1lbnRzLHBhc3NlZD0hMTt3aGlsZShwYXNzZWQ9PT0hMSl7YmluZGVyTmFtZT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTAwMDAwKTtjaGVja2VkRWxlbWVudHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcmJpbmRlcj0iJytiaW5kZXJOYW1lKyciXScpO2lmKGNoZWNrZWRFbGVtZW50cy5sZW5ndGg8MSl7cGFzc2VkPSEwfX0KcmV0dXJuIGJpbmRlck5hbWV9
data:text/javascript;base64,aWYodHlwZW9mIHdpbmRvdy5qc0lucHV0ZXJMYXVuY2g9PT0ndW5kZWZpbmVkJyl7d2luZG93LmpzSW5wdXRlckxhdW5jaD0tMX0KaWYodHlwZW9mIGNvbnRlbnRTZWFyY2hDb3VudD09PSd1bmRlZmluZWQnKXt2YXIgY29udGVudFNlYXJjaENvdW50PTB9CmlmKHR5cGVvZiBsYXVuY2hBc3luY0Z1bmN0aW9uTGF1bmNoZXI9PT0idW5kZWZpbmVkIil7ZnVuY3Rpb24gbGF1bmNoQXN5bmNGdW5jdGlvbkxhdW5jaGVyKCl7aWYodHlwZW9mIGFzeW5jRnVuY3Rpb25MYXVuY2hlciE9PSJ1bmRlZmluZWQiJiZ0eXBlb2YgYXN5bmNGdW5jdGlvbkxhdW5jaGVyPT09ImZ1bmN0aW9uIil7YXN5bmNGdW5jdGlvbkxhdW5jaGVyKCl9ZWxzZXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bGF1bmNoQXN5bmNGdW5jdGlvbkxhdW5jaGVyKCl9LDEwMCl9fX0KaWYodHlwZW9mIGxhdW5jaEdhdGhlckNvbnRlbnRCbG9jaz09PSJ1bmRlZmluZWQiKXtmdW5jdGlvbiBsYXVuY2hHYXRoZXJDb250ZW50QmxvY2soKXtpZih0eXBlb2YgZ2F0aGVyQ29udGVudEJsb2NrIT09InVuZGVmaW5lZCImJnR5cGVvZiBnYXRoZXJDb250ZW50QmxvY2s9PT0iZnVuY3Rpb24iKXtnYXRoZXJDb250ZW50QmxvY2soKX1lbHNle3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsYXVuY2hHYXRoZXJDb250ZW50QmxvY2soKX0sMTAwKX19fQpmdW5jdGlvbiBjb250ZW50TW9uaXRvcmluZygpe2lmKHR5cGVvZiB3aW5kb3cuanNJbnB1dGVyTGF1bmNoPT09J3VuZGVmaW5lZCd8fCh0eXBlb2Ygd2luZG93LmpzSW5wdXRlckxhdW5jaCE9PSd1bmRlZmluZWQnJiZ3aW5kb3cuanNJbnB1dGVyTGF1bmNoPT0tMSkpe2xldCBwb3NzaWJsZUNsYXNzZXM9WycudGF4b25vbXktZGVzY3JpcHRpb24nLCcuZW50cnktY29udGVudCcsJy5wb3N0LXdyYXAnLCcucG9zdC1ib2R5JywnI2Jsb2ctZW50cmllcycsJy5jb250ZW50JywnLmFyY2hpdmUtcG9zdHNfX2l0ZW0tdGV4dCcsJy5zaW5nbGUtY29tcGFueV93cmFwcGVyJywnLnBvc3RzLWNvbnRhaW5lcicsJy5jb250ZW50LWFyZWEnLCcucG9zdC1saXN0aW5nJywnLnRkLWNhdGVnb3J5LWRlc2NyaXB0aW9uJywnLmplZ19wb3N0c193cmFwJ107bGV0IGRlbmllZENsYXNzZXM9WycucGVyY2VudFBvaW50ZXJDbGFzcycsJy5hZGRlZEluc2VydGluZycsJyN0b2NfY29udGFpbmVyJ107bGV0IGRlbmllZFN0cmluZz0iIjtsZXQgY29udGVudFNlbGVjdG9yPScnO2xldCBjb250ZW50Q2hlY2s9bnVsbDtpZihjb250ZW50U2VsZWN0b3Ipe2NvbnRlbnRDaGVjaz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbnRlbnRTZWxlY3Rvcil9CmlmKGJsb2NrX2NsYXNzZXMmJmJsb2NrX2NsYXNzZXMubGVuZ3RoPjApe2Zvcih2YXIgaT0wO2k8YmxvY2tfY2xhc3Nlcy5sZW5ndGg7aSsrKXtpZihibG9ja19jbGFzc2VzW2ldKXtkZW5pZWRDbGFzc2VzLnB1c2goJy4nK2Jsb2NrX2NsYXNzZXNbaV0pfX19CmlmKGRlbmllZENsYXNzZXMmJmRlbmllZENsYXNzZXMubGVuZ3RoPjApe2ZvcihsZXQgaT0wO2k8ZGVuaWVkQ2xhc3Nlcy5sZW5ndGg7aSsrKXtkZW5pZWRTdHJpbmcrPSI6bm90KCIrZGVuaWVkQ2xhc3Nlc1tpXSsiKSJ9fQppZighY29udGVudENoZWNrKXtmb3IobGV0IGk9MDtpPHBvc3NpYmxlQ2xhc3Nlcy5sZW5ndGg7aSsrKXtjb250ZW50Q2hlY2s9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihwb3NzaWJsZUNsYXNzZXNbaV0rZGVuaWVkU3RyaW5nKTtpZihjb250ZW50Q2hlY2spe2JyZWFrfX19CmlmKCFjb250ZW50Q2hlY2spe2NvbnRlbnRDaGVjaz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbaXRlbXByb3A9YXJ0aWNsZUJvZHldJyl9CmlmKGNvbnRlbnRDaGVjayl7Y29uc29sZS5sb2coJ2NvbnRlbnQgaXMgaGVyZScpO2xldCBjb250ZW50UG9pbnRlckNoZWNrPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjb250ZW50X3BvaW50ZXJfaWQnKTtsZXQgY3BTcGFuCmlmKGNvbnRlbnRQb2ludGVyQ2hlY2smJmNvbnRlbnRDaGVjay5jb250YWlucyhjb250ZW50UG9pbnRlckNoZWNrKSl7Y3BTcGFuPWNvbnRlbnRQb2ludGVyQ2hlY2t9ZWxzZXtpZihjb250ZW50UG9pbnRlckNoZWNrKXtjb250ZW50UG9pbnRlckNoZWNrLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudFBvaW50ZXJDaGVjayl9CmNwU3Bhbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdTUEFOJyl9CmNwU3Bhbi5zZXRBdHRyaWJ1dGUoJ2lkJywnY29udGVudF9wb2ludGVyX2lkJyk7Y3BTcGFuLmNsYXNzTGlzdC5hZGQoJ25vLWNvbnRlbnQnKTtjcFNwYW4uc2V0QXR0cmlidXRlKCdkYXRhLWNvbnRlbnQtbGVuZ3RoJywnMCcpO2NwU3Bhbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtYWNjZXB0ZWQtYmxvY2tzJywnMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQnKTtjcFNwYW4uc2V0QXR0cmlidXRlKCdkYXRhLXJlamVjdGVkLWJsb2NrcycsJzAnKTt3aW5kb3cuanNJbnB1dGVyTGF1bmNoPTEwO2lmKCFjcFNwYW4ucGFyZW50Tm9kZSljb250ZW50Q2hlY2sucHJlcGVuZChjcFNwYW4pO2xhdW5jaEFzeW5jRnVuY3Rpb25MYXVuY2hlcigpO2xhdW5jaEdhdGhlckNvbnRlbnRCbG9jaygpfWVsc2V7Y29uc29sZS5sb2coJ2NvbnRlbnRNb25pdG9yaW5nIHRyeScpO2lmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKWNvbnRlbnRTZWFyY2hDb3VudCsrO2lmKGNvbnRlbnRTZWFyY2hDb3VudDwyMCl7c2V0VGltZW91dChmdW5jdGlvbigpe2NvbnRlbnRNb25pdG9yaW5nKCl9LDIwMCl9ZWxzZXtjb250ZW50Q2hlY2s9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIrZGVuaWVkU3RyaW5nKyIgZGl2IitkZW5pZWRTdHJpbmcpO2lmKGNvbnRlbnRDaGVjayl7Y29uc29sZS5sb2coJ2NvbnRlbnQgaXMgaGVyZSBoYXJkJyk7bGV0IGNwU3Bhbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdTUEFOJyk7Y3BTcGFuLnNldEF0dHJpYnV0ZSgnaWQnLCdjb250ZW50X3BvaW50ZXJfaWQnKTtjcFNwYW4uY2xhc3NMaXN0LmFkZCgnbm8tY29udGVudCcpO2NwU3Bhbi5jbGFzc0xpc3QuYWRkKCdoYXJkLWNvbnRlbnQnKTtjcFNwYW4uc2V0QXR0cmlidXRlKCdkYXRhLWNvbnRlbnQtbGVuZ3RoJywnMCcpO2NwU3Bhbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtYWNjZXB0ZWQtYmxvY2tzJywnMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQnKTtjcFNwYW4uc2V0QXR0cmlidXRlKCdkYXRhLXJlamVjdGVkLWJsb2NrcycsJzAnKTt3aW5kb3cuanNJbnB1dGVyTGF1bmNoPTEwO2NvbnRlbnRDaGVjay5wcmVwZW5kKGNwU3Bhbik7bGF1bmNoQXN5bmNGdW5jdGlvbkxhdW5jaGVyKCl9fX19ZWxzZXtjb25zb2xlLmxvZygnanNJbnB1dGVyTGF1bmNoIGlzIGhlcmUnKTtsYXVuY2hHYXRoZXJDb250ZW50QmxvY2soKX19CmNvbnRlbnRNb25pdG9yaW5nKCk=
data:text/javascript;base64,cmJDb25maWc9e3N0YXJ0OnBlcmZvcm1hbmNlLm5vdygpLHJiRG9tYWluOid3d3cuNTczOC5ydScscm90YXRvcjonNjhqOSd9O3Rva2VuPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCc2OGo5Jyl8fCgxZTYrJycpLnJlcGxhY2UoL1swMThdL2csYz0+KGNeY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgxKSlbMF0mMTU+PmMvNCkudG9TdHJpbmcoMTYpKTtyc2RmaHNlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3JzZGZoc2Uuc2V0QXR0cmlidXRlKCdzcmMnLCcvL3d3dy41NzM4LnJ1LzY4ajkubWluLmpzPycrdG9rZW4pO3JzZGZoc2Uuc2V0QXR0cmlidXRlKCdhc3luYycsJ2FzeW5jJyk7cnNkZmhzZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L2phdmFzY3JpcHQnKTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHJzZGZoc2UpO2xvY2FsU3RvcmFnZS5zZXRJdGVtKCc2OGo5Jyx0b2tlbik=
data:text/javascript;base64,d2luZG93LnlhQ29udGV4dENiPXdpbmRvdy55YUNvbnRleHRDYnx8W10=
data:text/javascript;base64,dmFyIGJsb2NrX2NsYXNzZXM9WyJjb250ZW50X3JiIiwiY250MzJfcmxfYmdfc3RyIiwicmxfY250X2JnIl07ZnVuY3Rpb24gYWRkQXR0ckl0ZW0oY2xhc3NOYW1lKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuIitjbGFzc05hbWUpJiYhYmxvY2tfY2xhc3Nlcy5pbmNsdWRlcyhjbGFzc05hbWUpKXtibG9ja19jbGFzc2VzLnB1c2goY2xhc3NOYW1lKX19
data:text/javascript;base64,dmFyIGNvdTE9MDtpZih0eXBlb2YgYmxvY2tTZXR0aW5nQXJyYXk9PT0idW5kZWZpbmVkIil7dmFyIGJsb2NrU2V0dGluZ0FycmF5PVtdfWVsc2V7aWYoQXJyYXkuaXNBcnJheShibG9ja1NldHRpbmdBcnJheSkpe2NvdTE9YmxvY2tTZXR0aW5nQXJyYXkubGVuZ3RofWVsc2V7dmFyIGJsb2NrU2V0dGluZ0FycmF5PVtdfX0KaWYodHlwZW9mIGV4Y0lkQ2xhc3M9PT0idW5kZWZpbmVkIil7dmFyIGV4Y0lkQ2xhc3M9WyIucGVyY2VudFBvaW50ZXJDbGFzcyIsIi5jb250ZW50X3JiIiwiLmNudDMyX3JsX2JnX3N0ciIsIi5ybF9jbnRfYmciLCIuYWRkZWRJbnNlcnRpbmciLCIjdG9jX2NvbnRhaW5lciIsInRhYmxlIiwiYmxvY2txdW90ZSJdfQppZih0eXBlb2YgYmxvY2tEdXBsaWNhdGU9PT0idW5kZWZpbmVkIil7dmFyIGJsb2NrRHVwbGljYXRlPSJubyJ9CmlmKHR5cGVvZiBvYmxpZ2F0b3J5TWFyZ2luPT09InVuZGVmaW5lZCIpe3ZhciBvYmxpZ2F0b3J5TWFyZ2luPTB9CmlmKHR5cGVvZiB0YWdzTGlzdEZvclRleHRMZW5ndGg9PT0idW5kZWZpbmVkIil7dmFyIHRhZ3NMaXN0Rm9yVGV4dExlbmd0aD1bIlAiLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJESVYiLCJCTE9DS1FVT1RFIiwiSU5ERVgiLCJBUlRJQ0xFIiwiU0VDVElPTiJdfQpibG9ja1NldHRpbmdBcnJheVtjb3UxXT1bXTtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5taW5TeW1ib2xzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWF4U3ltYm9scz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1pbkhlYWRlcnM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5tYXhIZWFkZXJzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uaWQ9JzE3JztibG9ja1NldHRpbmdBcnJheVtjb3UxXS5zYz0nMCc7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0udGV4dD0nPGRpdiBjbGFzcz1cInJsX2NudF9iZ1wiIGRhdGEtaWQ9XCIzNDUzMTZcIj48L2Rpdj4nO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLnNldHRpbmdfdHlwZT0xO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmVsZW1lbnRDc3M9ImNlbnRlciI7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uZWxlbWVudD0icCI7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uZWxlbWVudFBvc2l0aW9uPTE7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uZWxlbWVudFBsYWNlPTI7Y291MSsrO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdPVtdO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1pblN5bWJvbHM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5tYXhTeW1ib2xzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWluSGVhZGVycz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1heEhlYWRlcnM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5pZD0nMTgnO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLnNjPScwJztibG9ja1NldHRpbmdBcnJheVtjb3UxXS50ZXh0PSc8ZGl2IGNsYXNzPVwicmxfY250X2JnXCIgZGF0YS1pZD1cIjM0NTMxN1wiPjwvZGl2Pic7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uc2V0dGluZ190eXBlPTE7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uZWxlbWVudENzcz0iY2VudGVyIjtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5lbGVtZW50PSJwIjtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5lbGVtZW50UG9zaXRpb249MTtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5lbGVtZW50UGxhY2U9Nztjb3UxKys7YmxvY2tTZXR0aW5nQXJyYXlbY291MV09W107YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWluU3ltYm9scz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1heFN5bWJvbHM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5taW5IZWFkZXJzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWF4SGVhZGVycz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmlkPScxOSc7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uc2M9JzAnO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLnRleHQ9JzxkaXYgY2xhc3M9XCJybF9jbnRfYmdcIiBkYXRhLWlkPVwiMzQ1MzE4XCI+PC9kaXY+JztibG9ja1NldHRpbmdBcnJheVtjb3UxXS5zZXR0aW5nX3R5cGU9MTtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5lbGVtZW50Q3NzPSJjZW50ZXIiO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmVsZW1lbnQ9InAiO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmVsZW1lbnRQb3NpdGlvbj0xO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmVsZW1lbnRQbGFjZT0xMjtjb3UxKys7YmxvY2tTZXR0aW5nQXJyYXlbY291MV09W107YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWluU3ltYm9scz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1heFN5bWJvbHM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5taW5IZWFkZXJzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWF4SGVhZGVycz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmlkPScyMCc7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uc2M9JzAnO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLnRleHQ9JzxkaXYgY2xhc3M9XCJybF9jbnRfYmdcIiBkYXRhLWlkPVwiMzQ1MzE5XCI+PC9kaXY+JztibG9ja1NldHRpbmdBcnJheVtjb3UxXS5zZXR0aW5nX3R5cGU9MTtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5lbGVtZW50Q3NzPSJjZW50ZXIiO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmVsZW1lbnQ9InAiO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmVsZW1lbnRQb3NpdGlvbj0xO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmVsZW1lbnRQbGFjZT0xNztjb3UxKys7YmxvY2tTZXR0aW5nQXJyYXlbY291MV09W107YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWluU3ltYm9scz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1heFN5bWJvbHM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5taW5IZWFkZXJzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWF4SGVhZGVycz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmlkPScyMSc7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uc2M9JzAnO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLnRleHQ9JzxkaXYgY2xhc3M9XCJybF9jbnRfYmdcIiBkYXRhLWlkPVwiMzQ1MzIwXCI+PC9kaXY+JztibG9ja1NldHRpbmdBcnJheVtjb3UxXS5zZXR0aW5nX3R5cGU9NDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5lbGVtZW50Q3NzPSJjZW50ZXIiO2NvdTErKztibG9ja1NldHRpbmdBcnJheVtjb3UxXT1bXTtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5taW5TeW1ib2xzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWF4U3ltYm9scz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1pbkhlYWRlcnM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5tYXhIZWFkZXJzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uaWQ9JzIyJztibG9ja1NldHRpbmdBcnJheVtjb3UxXS5zYz0nMCc7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0udGV4dD0nPGRpdiBjbGFzcz1cInJsX2NudF9iZ1wiIGRhdGEtaWQ9XCIzNDUzMTNcIj48L2Rpdj4nO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLnNldHRpbmdfdHlwZT00O2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmVsZW1lbnRDc3M9ImNlbnRlciI7Y291MSsrO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdPVtdO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1pblN5bWJvbHM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5tYXhTeW1ib2xzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWluSGVhZGVycz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1heEhlYWRlcnM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5pZD0nMjMnO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLnNjPScwJztibG9ja1NldHRpbmdBcnJheVtjb3UxXS50ZXh0PSc8ZGl2IGNsYXNzPVwicmxfY250X2JnXCIgZGF0YS1pZD1cIjM0NTMxNFwiPjwvZGl2Pic7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uc2V0dGluZ190eXBlPTQ7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uZWxlbWVudENzcz0iY2VudGVyIjtjb3UxKys7YmxvY2tTZXR0aW5nQXJyYXlbY291MV09W107YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWluU3ltYm9scz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLm1heFN5bWJvbHM9MDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5taW5IZWFkZXJzPTA7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0ubWF4SGVhZGVycz0wO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLmlkPScyNCc7YmxvY2tTZXR0aW5nQXJyYXlbY291MV0uc2M9JzAnO2Jsb2NrU2V0dGluZ0FycmF5W2NvdTFdLnRleHQ9JzxkaXYgY2xhc3M9XCJybF9jbnRfYmdcIiBkYXRhLWlkPVwiMzQ1MzE1XCI+PC9kaXY+JztibG9ja1NldHRpbmdBcnJheVtjb3UxXS5zZXR0aW5nX3R5cGU9NDtibG9ja1NldHRpbmdBcnJheVtjb3UxXS5lbGVtZW50Q3NzPSJjZW50ZXIiO2NvdTErKztjb25zb2xlLmxvZygiYnNhLWw6ICIrYmxvY2tTZXR0aW5nQXJyYXkubGVuZ3RoKQ==
data:text/javascript;base64,dmFyIHBzZXVkb19saW5rcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHNldWRvLWNsZWFyZnktbGluayIpO2Zvcih2YXIgaT0wO2k8cHNldWRvX2xpbmtzLmxlbmd0aDtpKyspe3BzZXVkb19saW5rc1tpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7d2luZG93Lm9wZW4oZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXVyaSIpKX0pfQ==
data:text/javascript;base64,dmFyIHEydzNfc2lkZWJhcl9vcHRpb25zPVt7InNpZGViYXIiOiJzaWRlYmFyLTEiLCJ1c2Vfc3RpY2t5X3Bvc2l0aW9uIjohMSwibWFyZ2luX3RvcCI6MCwibWFyZ2luX2JvdHRvbSI6MCwic3RvcF9lbGVtZW50c19zZWxlY3RvcnMiOiIiLCJzY3JlZW5fbWF4X3dpZHRoIjowLCJzY3JlZW5fbWF4X2hlaWdodCI6MCwid2lkZ2V0cyI6WyIjd3BzaG9wX3dpZGdldF9hcnRpY2xlcy0yIiwiI2N1c3RvbV9odG1sLTIiXX1d
data:text/javascript;base64,dmFyIHNldHRpbmdzX2FycmF5PXsicmF0aW5nX3RleHRfYXZlcmFnZSI6Ilx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzNVx1MDQzNSIsInJhdGluZ190ZXh0X2Zyb20iOiJcdTA0MzhcdTA0MzciLCJsaWdodGJveF9kaXNwbGF5IjoiMSIsInNpZGViYXJfZml4ZWQiOiIxIn07dmFyIHdwc19hamF4PXsidXJsIjoiaHR0cHM6XC9cL2NoYXJtcGV0cy5ydVwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwibm9uY2UiOiJlNmRmMjZiYmUzIn0=
https://charmpets.ru/wp-content/litespeed/js/73166074f7f0c759a4b56e06783b09b3.js?ver=b09b3
https://charmpets.ru/wp-content/litespeed/js/af2db2d9235b4aff1d2da59d401cc9bd.js?ver=799e2
https://charmpets.ru/wp-content/litespeed/js/e2c90e684c3a124e35c53295e3537b5f.js?ver=37b5f
https://charmpets.ru/wp-content/litespeed/js/f6b19507269c859757de18aed2ac4b23.js?ver=c4b23
https://charmpets.ru/wp-content/plugins/litespeed-cache/assets/js/webfontloader.min.js
https://charmpets.ru/wp-includes/js/jquery/jquery.min.js
https://yandex.ru/ads/system/context.js
https://zndcm.nxt-psh.com/ps/ps.js?id=eXK3ACmZFES6WGWFOP5aVQ
Внешние ссылки 0
Внутренние ссылки 79

meta-теги

viewportwidth=device-width, initial-scale=1
robotsindex, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
twitter:cardsummary_large_image
yandex-verification9afd2a71e5564a9f
google-site-verificationLvQI_REru3AVnKRz_U0fRRDIMw_ISk-O0-8p7RyJpUQ
ahrefs-site-verificationdf69a69432d899f8f4b0823c2f5ee4cf796f49540f660bb9f7e3c0a66081f849
tlsdk7c0f1259a2ad4463a58794d6e8357254
msapplication-TileImagehttps://charmpets.ru/wp-content/uploads/2022/06/cropped-dog-300x300.png
og:localeru_RU
og:typewebsite
og:titleCharm Pets
og:descriptionCharm Pets - Как ухаживать за домашним питомцем, какие бывают породы собак и кошек
og:urlhttps://charmpets.ru/
og:site_nameCharm Pets

Скриншот сайта

Скриншота нет

Сервер сайта

IP адрес сайта 172.67.196.7
104.21.21.30
Веб-сервер cloudflare
Версия HTTP HTTP 3
DNS сервера aitana.ns.cloudflare.com
vick.ns.cloudflare.com
DNS записи 5
A записи
1: ip: 172.67.196.7
2: ip: 104.21.21.30
NS записи
3: target: aitana.ns.cloudflare.com
4: target: vick.ns.cloudflare.com
SOA записи
5: mname: aitana.ns.cloudflare.com
5: rname: dns.cloudflare.com
5: serial: 2331999856
5: refresh: 10000
5: retry: 2400
5: expire: 604800
5: minimum-ttl: 1800

Ответ сервера

Группы заголовков: заголовки безопасности, заголовки кэширования.
status HTTP/2 200
date Thu, 15 Feb 2024 04:16:27 GMT
content-type text/html; charset=UTF-8
x-dns-prefetch-control on
link ; rel="https://api.w.org/"
vary Accept-Encoding
x-litespeed-cache hit
cf-cache-status DYNAMIC
report-to {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=cmf5vqjEtczuHREaZjA6G5UoLaVLybmpQjgCv2BkaTiIWApxLiiJEAMK3GUc0fSrRpgvOl91r5EJLZL6dQl5TltZA3d1xYLzEXI42tvRloc1CXV2Nfrz6yP7V%2BEEgwE%3D"}],"group":"cf-nel","max_age":604800}
nel {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
strict-transport-security max-age=31536000; includeSubDomains; preload
x-content-type-options nosniff
server cloudflare
cf-ray 855abc4c0af2ac08-KLD
content-encoding gzip
alt-svc h3=":443"; ma=86400

Оцените сайт

Не ставьте оценку если отвечаете на другой отзыв или пишите комментарий:

Можно добавить текст отзыва, ответ на другой отзыв, или просто комментарий к сайту:
captcha