충청남도 논산시 · 단지 50곳
논산시 아파트 실거래가
법정동 → 단지 → 평형까지 들어갑니다. 12개월 거래 540건.
중위 평당가
903만원
기준월 2026-08 · 36건 · 3개월 +0.9%
12개월 거래
540건
법정동 8곳 · 단지 50곳
논산시 단지별 시세
12개월 거래 30건 이상인 단지 2곳입니다. 단지마다 12개월 추이·평형별 시세·전세가율을 따로 정리했습니다.
강경읍 산양리
강산동
논산시 아파트 시세 보는 법
법정동을 누르면 그 안의 단지 목록이, 단지를 누르면 12개월 평당가 추이와 평형별 시세가 나옵니다.
평당가는 전용면적 기준입니다. 분양 광고의 공급면적 기준보다 높게 나옵니다. 84㎡는 전용 25.4평, 공급 34평이라 어느 쪽으로 나누느냐에 따라 숫자가 크게 달라집니다.
평당가는 기준월(2026-08) 거래의 중앙값, 증감은 최근 3개월 vs 직전 3개월입니다(전국·시도 페이지와 같은 기준). 12개월 이력·평형별 시세는 거래 5건 이상인 단지에만 표시합니다 · 국토교통부 실거래가 · 해제된 거래 제외 · 좌표가 확인된 단지만 지도에 표시됩니다.
dmFyIEQ9SlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHBoLWRhdGEzNzUnKS50ZXh0Q29udGVudCk7CnZhciBUSEVNRV9JQ089ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT0nZGFyayc/JzxzdmcgY2xhc3M9InRwaC1pIGljby1zIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIwIDE0LjVBOC41IDguNSAwIDAgMSA5LjUgNGE4LjUgOC41IDAgMSAwIDEwLjUgMTAuNXoiLz48L3N2Zz4nOnQ9PT0nbGlnaHQnPyc8c3ZnIGNsYXNzPSJ0cGgtaSBpY28tcyIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMiA3LjVhNC41IDQuNSAwIDEgMCAwIDkgNC41IDQuNSAwIDAgMCAwLTl6TTEyIDJ2Mk0xMiAyMHYyTTQuMiA0LjJsMS40IDEuNE0xOC40IDE4LjRsMS40IDEuNE0yIDEyaDJNMjAgMTJoMk00LjIgMTkuOGwxLjQtMS40TTE4LjQgNS42bDEuNC0xLjQiLz48L3N2Zz4nOic8c3ZnIGNsYXNzPSJ0cGgtaSBpY28tcyIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMiAzYTkgOSAwIDEgMCAwIDE4IDkgOSAwIDAgMCAwLTE4ek0xMiAzdjE4YTkgOSAwIDAgMCAwLTE4eiIvPjwvc3ZnPic7fTsKCnZhciAkPWZ1bmN0aW9uKGkpe3JldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHBoLScraSk7fTsKdmFyIHY9ZnVuY3Rpb24oaSl7dmFyIGU9JChpKTtyZXR1cm4gZT8oK2UudmFsdWV8fDApOjA7fTsKdmFyIHM9ZnVuY3Rpb24oaSl7dmFyIGU9JChpKTtyZXR1cm4gZT9lLnZhbHVlOicnO307CnZhciBmPWZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKG4pLnRvTG9jYWxlU3RyaW5nKCdrby1LUicpKyfsm5AnO307CnZhciBmZD1mdW5jdGlvbihuLGQpe3JldHVybiBuLnRvTG9jYWxlU3RyaW5nKCdrby1LUicse21heGltdW1GcmFjdGlvbkRpZ2l0czpkfHwxfSk7fTsKdmFyIGN1dDEwPWZ1bmN0aW9uKHgpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucm91bmQoeCkvMTApKjEwO307CnZhciBzZXQ9ZnVuY3Rpb24oaSx0KXt2YXIgZT0kKGkpO2lmKCFlKXJldHVybjtpZihpPT09J21haW4nKXtjb3VudFVwKGUsdCk7fWVsc2V7ZS50ZXh0Q29udGVudD10O319OwoKLyog7JWI7KCE7ZWcIOyggOyepeyGjCDsoJHqt7wg4oCUIOyLnO2BrOumvyDrqqjrk5wv7LCo64uoIO2ZmOqyveyXkOyEnOuPhCDso73sp4Ag7JWK6rKMICovCnZhciBzdG9yZT17CiAgZ2V0OmZ1bmN0aW9uKGspe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oayk7fWNhdGNoKGUpe3JldHVybiBudWxsO319LAogIHNldDpmdW5jdGlvbihrLHZhbCl7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKGssdmFsKTt9Y2F0Y2goZSl7fX0sCiAgZGVsOmZ1bmN0aW9uKGspe3RyeXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrKTt9Y2F0Y2goZSl7fX0KfTsKCnZhciB0b2FzdD1mdW5jdGlvbihtc2cpewogIHZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50cGgtdG9hc3QnKTsKICBpZighdCl7dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTt0LmNsYXNzTmFtZT0ndHBoLXRvYXN0Jztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO30KICB0LnRleHRDb250ZW50PW1zZzt0LmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTsKICBjbGVhclRpbWVvdXQodC5faCk7dC5faD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7fSwxOTAwKTsKfTsKCi8qIO2FjOuniCDthqDquIA6IOyLnOyKpO2FnCDshKTsoJUg4oaSIOudvOydtO2KuCDihpIg64uk7YGsIOyInO2ZmCAqLwpmdW5jdGlvbiBpbml0VGhlbWUocm9vdCl7CiAgdmFyIEs9J3RwaC10aGVtZScsIGN1cj1zdG9yZS5nZXQoSyk7CiAgaWYoY3VyKSByb290LnNldEF0dHJpYnV0ZSgnZGF0YS10aGVtZScsY3VyKTsKICB2YXIgYj0kKCd0aGVtZScpOwogIGlmKCFiKSByZXR1cm47CiAgdmFyIGxhYmVsPWZ1bmN0aW9uKCl7CiAgICB2YXIgdD1yb290LmdldEF0dHJpYnV0ZSgnZGF0YS10aGVtZScpOwogICAgYi5pbm5lckhUTUw9VEhFTUVfSUNPKHQpKycgPHNwYW4+JysodD09PSdkYXJrJz8n64uk7YGsJzp0PT09J2xpZ2h0Jz8n65287J207Yq4Jzon7J6Q64+ZJykrJzwvc3Bhbj4nOwogIH07CiAgbGFiZWwoKTsKICBiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgdmFyIHQ9cm9vdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnKTsKICAgIHZhciBueD0hdD8nbGlnaHQnOnQ9PT0nbGlnaHQnPydkYXJrJzonJzsKICAgIGlmKG54KXtyb290LnNldEF0dHJpYnV0ZSgnZGF0YS10aGVtZScsbngpO3N0b3JlLnNldChLLG54KTt9CiAgICBlbHNle3Jvb3QucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXRoZW1lJyk7c3RvcmUuZGVsKEspO30KICAgIGxhYmVsKCk7CiAgfSk7Cn0KCi8qIOyeheugpeqwkiDihpQgVVJMIO2MjOudvOuvuO2EsCDihpQgbG9jYWxTdG9yYWdlICovCmZ1bmN0aW9uIGluaXRTdGF0ZShzbHVnLCBpZHMsIG9uY2hhbmdlKXsKICB2YXIgS0VZPSd0cGgtaW4tJytzbHVnLCBxPW5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKSwgdXNlZD1mYWxzZTsKICBpZHMuZm9yRWFjaChmdW5jdGlvbihpKXsKICAgIHZhciBlPSQoaSk7IGlmKCFlKSByZXR1cm47CiAgICBpZihxLmhhcyhpKSl7IGUudmFsdWU9cS5nZXQoaSk7IHVzZWQ9dHJ1ZTsgfQogIH0pOwogIGlmKCF1c2VkKXsKICAgIHZhciByYXc9c3RvcmUuZ2V0KEtFWSk7CiAgICBpZihyYXcpeyB0cnl7IHZhciBvPUpTT04ucGFyc2UocmF3KTsKICAgICAgaWRzLmZvckVhY2goZnVuY3Rpb24oaSl7IHZhciBlPSQoaSk7IGlmKGUmJm9baV0hPT11bmRlZmluZWQmJm9baV0hPT0nJykgZS52YWx1ZT1vW2ldOyB9KTsKICAgIH1jYXRjaChlKXt9IH0KICB9CiAgdmFyIHNhdmU9ZnVuY3Rpb24oKXsKICAgIHZhciBvPXt9OyBpZHMuZm9yRWFjaChmdW5jdGlvbihpKXsgdmFyIGU9JChpKTsgaWYoZSkgb1tpXT1lLnZhbHVlOyB9KTsKICAgIHN0b3JlLnNldChLRVksIEpTT04uc3RyaW5naWZ5KG8pKTsKICB9OwogIHZhciBzaGFyZT0kKCdzaGFyZScpOwogIGlmKHNoYXJlKSBzaGFyZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciBwPW5ldyBVUkxTZWFyY2hQYXJhbXMoKTsKICAgIGlkcy5mb3JFYWNoKGZ1bmN0aW9uKGkpeyB2YXIgZT0kKGkpOyBpZihlKSBwLnNldChpLGUudmFsdWUpOyB9KTsKICAgIHZhciB1cmw9bG9jYXRpb24ub3JpZ2luK2xvY2F0aW9uLnBhdGhuYW1lKyc/JytwLnRvU3RyaW5nKCk7CiAgICB2YXIgZG9uZT1mdW5jdGlvbigpe3RvYXN0KCfrp4Htgazrpbwg67O17IKs7ZaI7Iq164uI64ukJyk7fTsKICAgIGlmKG5hdmlnYXRvci5jbGlwYm9hcmQmJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KXsKICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodXJsKS50aGVuKGRvbmUsZnVuY3Rpb24oKXtwcm9tcHQoJ+yVhOuemCDso7zshozrpbwg67O17IKs7ZWY7IS47JqUJyx1cmwpO30pOwogICAgfSBlbHNlIHByb21wdCgn7JWE656YIOyjvOyGjOulvCDrs7XsgqztlZjshLjsmpQnLHVybCk7CiAgfSk7CiAgdmFyIGNvcHk9JCgnY29weScpOwogIGlmKGNvcHkpIGNvcHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICB2YXIgbGluZXM9W2RvY3VtZW50LnRpdGxlLnNwbGl0KCd8JylbMF0udHJpbSgpXTsKICAgIGlkcy5mb3JFYWNoKGZ1bmN0aW9uKGkpewogICAgICB2YXIgZT0kKGkpOyBpZighZSkgcmV0dXJuOwogICAgICB2YXIgbGFiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xhYmVsW2Zvcj10cGgtJytpKyddJyk7CiAgICAgIHZhciB2YWw9ZS50YWdOYW1lPT09J1NFTEVDVCc/ZS5vcHRpb25zW2Uuc2VsZWN0ZWRJbmRleF0udGV4dDooK2UudmFsdWV8fDApLnRvTG9jYWxlU3RyaW5nKCdrby1LUicpOwogICAgICBpZihsYWIpIGxpbmVzLnB1c2goJ8K3ICcrbGFiLnRleHRDb250ZW50LnRyaW0oKSsnOiAnK3ZhbCk7CiAgICB9KTsKICAgIGxpbmVzLnB1c2goJycpOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRwaC10b3RhbCcpLmZvckVhY2goZnVuY3Rpb24odCl7CiAgICAgIHZhciBsPXQucXVlcnlTZWxlY3RvcignLmwnKSwgdmFsPXQucXVlcnlTZWxlY3RvcignLnYnKTsKICAgICAgaWYobCYmdmFsKSBsaW5lcy5wdXNoKGwudGV4dENvbnRlbnQudHJpbSgpKyc6ICcrdmFsLnRleHRDb250ZW50LnRyaW0oKSk7CiAgICB9KTsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50cGgtcGFnZSB0YWJsZScpLmZvckVhY2goZnVuY3Rpb24odGIpewogICAgICB0Yi5xdWVyeVNlbGVjdG9yQWxsKCd0cicpLmZvckVhY2goZnVuY3Rpb24odHIpewogICAgICAgIHZhciB0ZD10ci5xdWVyeVNlbGVjdG9yQWxsKCd0ZCcpOwogICAgICAgIGlmKHRkLmxlbmd0aD09PTIpIGxpbmVzLnB1c2goJ8K3ICcrdGRbMF0udGV4dENvbnRlbnQudHJpbSgpKyc6ICcrdGRbMV0udGV4dENvbnRlbnQudHJpbSgpKTsKICAgICAgfSk7CiAgICB9KTsKICAgIGxpbmVzLnB1c2goJycsIGxvY2F0aW9uLm9yaWdpbitsb2NhdGlvbi5wYXRobmFtZSk7CiAgICB2YXIgdHh0PWxpbmVzLmpvaW4oJ1xuJyk7CiAgICB2YXIgZG9uZT1mdW5jdGlvbigpe3RvYXN0KCfqsrDqs7zrpbwg67O17IKs7ZaI7Iq164uI64ukJyk7fTsKICAgIGlmKG5hdmlnYXRvci5jbGlwYm9hcmQmJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KSBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0eHQpLnRoZW4oZG9uZSxkb25lKTsKICAgIGVsc2UgeyB2YXIgdGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTsgdGEudmFsdWU9dHh0OyBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhKTsKICAgICAgICAgICB0YS5zZWxlY3QoKTsgdHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7fWNhdGNoKGUpe30gdGEucmVtb3ZlKCk7IGRvbmUoKTsgfQogIH0pOwogIHZhciByZXNldD0kKCdyZXNldCcpOwogIGlmKHJlc2V0KSByZXNldC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHN0b3JlLmRlbChLRVkpOyBsb2NhdGlvbi5ocmVmPWxvY2F0aW9uLnBhdGhuYW1lOwogIH0pOwogIHJldHVybiBzYXZlOwp9CgovKiDquIjslaEg7J6F66ClIOuwkSDruaDrpbgg7KGw7KCVIOy5qSAqLwpmdW5jdGlvbiBpbml0Q2hpcHMob25jaGFuZ2UpewogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50cGgtY2hpcCcpLmZvckVhY2goZnVuY3Rpb24oYyl7CiAgICBjLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgICB2YXIgZT0kKGMuZGF0YXNldC50KTsgaWYoIWUpIHJldHVybjsKICAgICAgdmFyIGQ9Yy5kYXRhc2V0LmQ7CiAgICAgIGUudmFsdWUgPSBkPT09JzAnID8gMCA6IE1hdGgubWF4KDAsKCtlLnZhbHVlfHwwKSsoK2QpKTsKICAgICAgb25jaGFuZ2UoKTsKICAgIH0pOwogIH0pOwp9CgovKiDsnoXroKXqsJLsnYQg7IKs656M7J20IOydveuKlCDrrLjsnqXsnLzroZwgKDMsMDAwLDAwMCDihpIgMzAw66eM7JuQKSAqLwpmdW5jdGlvbiBrb3JNb25leShuKXsKICBuPU1hdGgucm91bmQobik7IGlmKCFuKSByZXR1cm4gJzDsm5AnOwogIHZhciBlb2s9TWF0aC5mbG9vcihuLzEwMDAwMDAwMCksIG1hbj1NYXRoLmZsb29yKChuJTEwMDAwMDAwMCkvMTAwMDApLCB3b249biUxMDAwMCwgcD1bXTsKICBpZihlb2spIHAucHVzaChlb2srJ+yWtScpOwogIGlmKG1hbikgcC5wdXNoKG1hbi50b0xvY2FsZVN0cmluZygna28tS1InKSsn66eMJyk7CiAgaWYod29uKSBwLnB1c2god29uLnRvTG9jYWxlU3RyaW5nKCdrby1LUicpKTsKICByZXR1cm4gcC5qb2luKCcgJykrJ+ybkCc7Cn0KZnVuY3Rpb24gaW5pdFJlYWQobWFwKXsKICBPYmplY3Qua2V5cyhtYXApLmZvckVhY2goZnVuY3Rpb24oaWQpewogICAgdmFyIGU9JChpZCksIG91dD0kKG1hcFtpZF0pOyBpZighZXx8IW91dCkgcmV0dXJuOwogICAgdmFyIHVwZD1mdW5jdGlvbigpeyBvdXQudGV4dENvbnRlbnQgPSAoK2UudmFsdWU+MCkgPyBrb3JNb25leSgrZS52YWx1ZSkgOiAnJzsgfTsKICAgIGUuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLHVwZCk7IHVwZCgpOwogIH0pOwp9CgoKLyog7Iir7J6QIOy5tOyatO2KuOyXhSDigJQg6rKw6rO86rCAIOuwlOuAlCDrlYwg67aA65Oc65+96rKMICovCmZ1bmN0aW9uIGNvdW50VXAoZWwsIHRleHQpewogIGlmKCFlbCkgcmV0dXJuOwogIHZhciBwcmV2PWVsLl9yYXd8fCcnLCBjdXI9dGV4dDsKICBlbC5fcmF3PWN1cjsKICB2YXIgcG49cGFyc2VGbG9hdChTdHJpbmcocHJldikucmVwbGFjZSgvW14wLTkuLV0vZywnJykpOwogIHZhciBjbj1wYXJzZUZsb2F0KFN0cmluZyhjdXIpLnJlcGxhY2UoL1teMC05Li1dL2csJycpKTsKICB2YXIgcmVkdWNlPXdpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSknKS5tYXRjaGVzOwogIGlmKHJlZHVjZXx8IWlzRmluaXRlKHBuKXx8IWlzRmluaXRlKGNuKXx8cG49PT1jbnx8TWF0aC5hYnMoY24tcG4pPDEpe2VsLnRleHRDb250ZW50PWN1cjtyZXR1cm47fQogIHZhciBwcmU9Y3VyLnNsaWNlKDAsY3VyLnNlYXJjaCgvWzAtOS1dLykpOwogIHZhciBwb3N0PWN1ci5zbGljZShjdXIuc2VhcmNoKC9bMC05XVteMC05XSokLykrMSkucmVwbGFjZSgvXlswLTldLywnJyk7CiAgdmFyIHN1ZmZpeD1jdXIucmVwbGFjZSgvXlteMC05LV0qLywnJykucmVwbGFjZSgvXlswLTksLlwtXSsvLCcnKTsKICB2YXIgdDA9bnVsbCwgZHVyPTM4MDsKICBjYW5jZWxBbmltYXRpb25GcmFtZShlbC5fYWZ8fDApOwogIGZ1bmN0aW9uIHN0ZXAodCl7CiAgICBpZighdDApIHQwPXQ7CiAgICB2YXIgaz1NYXRoLm1pbigxLCh0LXQwKS9kdXIpLCBlPTEtTWF0aC5wb3coMS1rLDMpOwogICAgdmFyIHZhbD1wbisoY24tcG4pKmU7CiAgICBlbC50ZXh0Q29udGVudD1wcmUrTWF0aC5yb3VuZCh2YWwpLnRvTG9jYWxlU3RyaW5nKCdrby1LUicpK3N1ZmZpeDsKICAgIGlmKGs8MSkgZWwuX2FmPXJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTsgZWxzZSBlbC50ZXh0Q29udGVudD1jdXI7CiAgfQogIGVsLl9hZj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc3RlcCk7Cn0KCi8qIOuqqOuwlOydvCDqs6DsoJUg6rKw6rO867CUICsg66eoIOychOuhnCAqLwpmdW5jdGlvbiBpbml0U3RpY2t5KHJvb3QsIGxhYmVsKXsKICBpZighcm9vdCkgcmV0dXJuOwogIHZhciBtYWluPSQoJ21haW4nKTsgaWYoIW1haW4pIHJldHVybjsKICB2YXIgYmFyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIGJhci5jbGFzc05hbWU9J3RwaC1zdGlja3knOwogIGJhci5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImwiPicrbGFiZWwrJzwvZGl2PjxkaXYgY2xhc3M9InYiIGlkPSJ0cGgtc3RpY2t5diI+4oCmPC9kaXY+JzsKICByb290LmFwcGVuZENoaWxkKGJhcik7CiAgdmFyIHRvcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICB0b3AudHlwZT0nYnV0dG9uJzsgdG9wLmNsYXNzTmFtZT0ndHBoLXRvcCc7IHRvcC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCfrp6gg7JyE66GcJyk7CiAgdG9wLmlubmVySFRNTD0nPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMiAxOVY1Ii8+PHBhdGggZD0iTTUgMTJsNy03IDcgNyIvPjwvc3ZnPic7CiAgdG9wLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe3dpbmRvdy5zY3JvbGxUbyh7dG9wOjAsYmVoYXZpb3I6J3Ntb290aCd9KTt9KTsKICByb290LmFwcGVuZENoaWxkKHRvcCk7CiAgdmFyIHN2PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cGgtc3RpY2t5dicpOwogIHZhciBzeW5jPWZ1bmN0aW9uKCl7CiAgICBpZihzdiYmc3YudGV4dENvbnRlbnQhPT1tYWluLnRleHRDb250ZW50KSBzdi50ZXh0Q29udGVudD1tYWluLnRleHRDb250ZW50OwogICAgdmFyIHI9bWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIGJhci5jbGFzc0xpc3QudG9nZ2xlKCdvbicsIHIuYm90dG9tPDU2KTsKICAgIHRvcC5jbGFzc0xpc3QudG9nZ2xlKCdvbicsIHdpbmRvdy5zY3JvbGxZPjUwMCk7CiAgfTsKICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJyxzeW5jLHtwYXNzaXZlOnRydWV9KTsKICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJyxzeW5jKTsKICBpZih3aW5kb3cuTXV0YXRpb25PYnNlcnZlcikgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoc3luYykub2JzZXJ2ZShtYWluLHtjaGlsZExpc3Q6dHJ1ZSxjaGFyYWN0ZXJEYXRhOnRydWUsc3VidHJlZTp0cnVlfSk7CiAgc3luYygpOwp9CgovKiDilIDilIAg7LCo7Yq4IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAogICDsg4nsnYAgQ1NTIOuzgOyImCAtLXMxLy0tczIvLS1zMyAo6rKA7Kad65CcIOy5tO2FjOqzoOumrCDtjJTroIjtirgpLgogICDqs4Tsl7TsnbQgMuqwnCDsnbTsg4HsnbTrqbQg67KU66GA66W8IO2VreyDgSDrtpnsnbTqs6AsIOqwkuydgCDtkZzsl5Drj4Qg6re464yA66GcIOyeiOuLpC4gKi8KdmFyIFNWR05TPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7CmZ1bmN0aW9uIGVsKHQsYSl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFNWR05TLHQpO2Zvcih2YXIgayBpbiBhKWUuc2V0QXR0cmlidXRlKGssYVtrXSk7cmV0dXJuIGU7fQoKZnVuY3Rpb24gdGlwKGJveCl7CiAgdmFyIHQ9Ym94LnF1ZXJ5U2VsZWN0b3IoJy50cGgtdGlwJyk7CiAgaWYoIXQpe3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7dC5jbGFzc05hbWU9J3RwaC10aXAnO2JveC5hcHBlbmRDaGlsZCh0KTt9CiAgcmV0dXJuIHQ7Cn0KZnVuY3Rpb24gc2hvd1RpcChib3gseCx5LGh0bWwpewogIHZhciB0PXRpcChib3gpOyB0LmlubmVySFRNTD1odG1sOyB0LnN0eWxlLm9wYWNpdHk9JzEnOwogIHZhciB3PXQub2Zmc2V0V2lkdGgsIGJ3PWJveC5jbGllbnRXaWR0aDsKICB0LnN0eWxlLmxlZnQ9TWF0aC5tYXgoNCxNYXRoLm1pbihidy13LTQseC13LzIpKSsncHgnOwogIHQuc3R5bGUudG9wPU1hdGgubWF4KDIseS10Lm9mZnNldEhlaWdodC0xMCkrJ3B4JzsKfQpmdW5jdGlvbiBoaWRlVGlwKGJveCl7dmFyIHQ9Ym94LnF1ZXJ5U2VsZWN0b3IoJy50cGgtdGlwJyk7aWYodCl0LnN0eWxlLm9wYWNpdHk9JzAnO30KCi8qIOyEuOuhnCDriITsoIEg66eJ64yAIOKAlCBjYXRzOlvrnbzrsqhdLCBzZXJpZXM6W3tuYW1lLGNscyxkYXRhOltdfV0gKi8KZnVuY3Rpb24gc3RhY2tDaGFydChib3hJZCwgY2F0cywgc2VyaWVzLCBmbXQpewogIHZhciBib3g9JChib3hJZCk7IGlmKCFib3gpIHJldHVybjsKICBib3gucXVlcnlTZWxlY3RvckFsbCgnc3ZnLC50cGgtbGVnZW5kJykuZm9yRWFjaChmdW5jdGlvbihuKXtuLnJlbW92ZSgpO30pOwogIHZhciBXPTY2MCxIPTIzNixQTD04LFBSPTgsUFQ9MTQsUEI9MjY7CiAgdmFyIG49Y2F0cy5sZW5ndGg7IGlmKCFuKSByZXR1cm47CiAgdmFyIHRvdGFscz1jYXRzLm1hcChmdW5jdGlvbihfLGkpe3JldHVybiBzZXJpZXMucmVkdWNlKGZ1bmN0aW9uKGEscyl7cmV0dXJuIGErKHMuZGF0YVtpXXx8MCk7fSwwKTt9KTsKICB2YXIgbWF4PU1hdGgubWF4LmFwcGx5KG51bGwsdG90YWxzKXx8MTsKICB2YXIgaXc9Vy1QTC1QUiwgaWg9SC1QVC1QQjsKICB2YXIgYnc9TWF0aC5tYXgoNixNYXRoLm1pbig0Nixpdy9uKjAuNjgpKSwgc3RlcD1pdy9uOwogIHZhciBzdmc9ZWwoJ3N2Zycse3ZpZXdCb3g6JzAgMCAnK1crJyAnK0gscm9sZTonaW1nJ30pOwogIGZvcih2YXIgZz0wO2c8PTM7ZysrKXsKICAgIHZhciBneT1QVCtpaCpnLzM7CiAgICBzdmcuYXBwZW5kQ2hpbGQoZWwoJ2xpbmUnLHt4MTpQTCx5MTpneSx4MjpXLVBSLHkyOmd5LCdjbGFzcyc6J2dsJ30pKTsKICB9CiAgY2F0cy5mb3JFYWNoKGZ1bmN0aW9uKGMsaSl7CiAgICB2YXIgY3g9UEwrc3RlcCppK3N0ZXAvMiwgeT1QVCtpaCwgYWNjPTA7CiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzLHNpKXsKICAgICAgdmFyIHZhbD1zLmRhdGFbaV18fDA7IGlmKHZhbDw9MCkgcmV0dXJuOwogICAgICB2YXIgaD12YWwvbWF4KmloOyB5LT1oOyBhY2MrPXZhbDsKICAgICAgdmFyIGlzVG9wID0gc2k9PT1zZXJpZXMubGVuZ3RoLTEgfHwgIXNlcmllcy5zbGljZShzaSsxKS5zb21lKGZ1bmN0aW9uKHope3JldHVybiAoei5kYXRhW2ldfHwwKT4wO30pOwogICAgICB2YXIgcj1lbCgncmVjdCcse3g6Y3gtYncvMix5Onksd2lkdGg6YncsaGVpZ2h0Ok1hdGgubWF4KDEsaCksJ2NsYXNzJzpzLmNscywKICAgICAgICAgICAgICAgICAgICAgICByeDppc1RvcD80OjAscnk6aXNUb3A/NDowfSk7CiAgICAgIHN2Zy5hcHBlbmRDaGlsZChyKTsKICAgIH0pOwogICAgdmFyIGhpdD1lbCgncmVjdCcse3g6Y3gtc3RlcC8yKzEseTpQVCx3aWR0aDpzdGVwLTIsaGVpZ2h0OmloLCdjbGFzcyc6J2hpdCd9KTsKICAgIGhpdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLGZ1bmN0aW9uKGV2KXsKICAgICAgdmFyIGJyPWJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgdmFyIHJvd3M9c2VyaWVzLm1hcChmdW5jdGlvbihzKXsKICAgICAgICByZXR1cm4gJzxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjJweDsnCiAgICAgICAgICAgICArICdiYWNrZ3JvdW5kOnZhcigtLScrcy5jbHMrJyk7bWFyZ2luLXJpZ2h0OjZweCI+PC9zcGFuPicrcy5uYW1lKycgJytmbXQocy5kYXRhW2ldfHwwKTsKICAgICAgfSkuam9pbignPGJyPicpOwogICAgICBzaG93VGlwKGJveCxldi5jbGllbnRYLWJyLmxlZnQsZXYuY2xpZW50WS1ici50b3AsCiAgICAgICAgICAgICAgJzxiPicrYysnPC9iPjxicj4nK3Jvd3MrJzxicj7tlanqs4QgJytmbXQoYWNjKSk7CiAgICB9KTsKICAgIGhpdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJyxmdW5jdGlvbigpe2hpZGVUaXAoYm94KTt9KTsKICAgIHN2Zy5hcHBlbmRDaGlsZChoaXQpOwogICAgaWYobjw9MTR8fGklTWF0aC5jZWlsKG4vMTIpPT09MCkKICAgICAgc3ZnLmFwcGVuZENoaWxkKE9iamVjdC5hc3NpZ24oZWwoJ3RleHQnLHt4OmN4LHk6SC04LCdjbGFzcyc6J2xiJywndGV4dC1hbmNob3InOidtaWRkbGUnfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0ZXh0Q29udGVudDpjfSkpOwogIH0pOwogIGJveC5hcHBlbmRDaGlsZChzdmcpOwogIGJveC5hcHBlbmRDaGlsZChsZWdlbmQoc2VyaWVzKSk7Cn0KCi8qIOqwgOuhnCDriITsoIEg66eJ64yAKOq1rOyEsSkg4oCUIHNlZ3M6W3tuYW1lLGNscyx2YWx1ZX1dIMK3IOyngeygkSDrnbzrsqggKi8KZnVuY3Rpb24gaFN0YWNrKGJveElkLCBzZWdzLCBmbXQpewogIHZhciBib3g9JChib3hJZCk7IGlmKCFib3gpIHJldHVybjsKICBib3gucXVlcnlTZWxlY3RvckFsbCgnc3ZnLC50cGgtbGVnZW5kJykuZm9yRWFjaChmdW5jdGlvbihuKXtuLnJlbW92ZSgpO30pOwogIHZhciB0b3RhbD1zZWdzLnJlZHVjZShmdW5jdGlvbihhLHMpe3JldHVybiBhK01hdGgubWF4KDAscy52YWx1ZSk7fSwwKXx8MTsKICB2YXIgVz02NjAsSD02NCxQTD04LFBSPTgsQkg9MzQsVFk9MTI7CiAgdmFyIHN2Zz1lbCgnc3ZnJyx7dmlld0JveDonMCAwICcrVysnICcrSCxyb2xlOidpbWcnfSk7CiAgdmFyIHg9UEwsIGl3PVctUEwtUFI7CiAgc2Vncy5mb3JFYWNoKGZ1bmN0aW9uKHMsaSl7CiAgICB2YXIgdz1NYXRoLm1heCgwLHMudmFsdWUpL3RvdGFsKml3OyBpZih3PD0wKSByZXR1cm47CiAgICB2YXIgZmlyc3Q9aT09PTAsIGxhc3Q9aT09PXNlZ3MubGVuZ3RoLTE7CiAgICBzdmcuYXBwZW5kQ2hpbGQoZWwoJ3JlY3QnLHt4OngseTpUWSx3aWR0aDp3LGhlaWdodDpCSCwnY2xhc3MnOnMuY2xzLAogICAgICByeDooZmlyc3R8fGxhc3QpPzQ6MCxyeTooZmlyc3R8fGxhc3QpPzQ6MH0pKTsKICAgIHZhciBwY3Q9cy52YWx1ZS90b3RhbCoxMDA7CiAgICBpZihwY3Q+PTkpCiAgICAgIHN2Zy5hcHBlbmRDaGlsZChPYmplY3QuYXNzaWduKGVsKCd0ZXh0Jyx7eDp4K3cvMix5OlRZK0JILzIrNCwnY2xhc3MnOid2bCcsCiAgICAgICAgJ3RleHQtYW5jaG9yJzonbWlkZGxlJyxmaWxsOicjZmZmJ30pLHt0ZXh0Q29udGVudDpwY3QudG9GaXhlZCgwKSsnJSd9KSk7CiAgICB2YXIgaGl0PWVsKCdyZWN0Jyx7eDp4LHk6VFksd2lkdGg6dyxoZWlnaHQ6QkgsJ2NsYXNzJzonaGl0J30pOwogICAgKGZ1bmN0aW9uKHNlZyxweCxwdyl7CiAgICAgIGhpdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLGZ1bmN0aW9uKGV2KXsKICAgICAgICB2YXIgYnI9Ym94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIHNob3dUaXAoYm94LGV2LmNsaWVudFgtYnIubGVmdCxldi5jbGllbnRZLWJyLnRvcCwKICAgICAgICAgICc8Yj4nK3NlZy5uYW1lKyc8L2I+PGJyPicrZm10KHNlZy52YWx1ZSkrJyDCtyAnKyhzZWcudmFsdWUvdG90YWwqMTAwKS50b0ZpeGVkKDEpKyclJyk7CiAgICAgIH0pOwogICAgICBoaXQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsZnVuY3Rpb24oKXtoaWRlVGlwKGJveCk7fSk7CiAgICB9KShzLHgsdyk7CiAgICBzdmcuYXBwZW5kQ2hpbGQoaGl0KTsKICAgIHgrPXc7CiAgfSk7CiAgYm94LmFwcGVuZENoaWxkKHN2Zyk7CiAgYm94LmFwcGVuZENoaWxkKGxlZ2VuZChzZWdzLm1hcChmdW5jdGlvbihzKXtyZXR1cm4ge25hbWU6cy5uYW1lKycgJytmbXQocy52YWx1ZSksY2xzOnMuY2xzfTt9KSkpOwp9CgovKiDshKDtmJUg7LaU7J20IOywqO2KuCDigJQgc2VyaWVzOlt7bmFtZSxjbHMsZGF0YTpbXX1dLCBjYXRzOlvrnbzrsqhdICovCmZ1bmN0aW9uIGxpbmVDaGFydChib3hJZCwgY2F0cywgc2VyaWVzLCBmbXQpewogIHZhciBib3g9JChib3hJZCk7IGlmKCFib3gpIHJldHVybjsKICBib3gucXVlcnlTZWxlY3RvckFsbCgnc3ZnLC50cGgtbGVnZW5kJykuZm9yRWFjaChmdW5jdGlvbihuKXtuLnJlbW92ZSgpO30pOwogIHZhciBuPWNhdHMubGVuZ3RoOyBpZihuPDIpIHJldHVybjsKICB2YXIgVz02NjAsSD0yNDAsUEw9NTQsUFI9MTIsUFQ9MTQsUEI9MjY7CiAgdmFyIGFsbD1bXTsgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24ocyl7YWxsPWFsbC5jb25jYXQocy5kYXRhLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gdiE9bnVsbDt9KSk7fSk7CiAgaWYoIWFsbC5sZW5ndGgpIHJldHVybjsKICB2YXIgbXg9TWF0aC5tYXguYXBwbHkobnVsbCxhbGwpLCBtbj1NYXRoLm1pbi5hcHBseShudWxsLGFsbCk7CiAgdmFyIHBhZD0obXgtbW4pKjAuMTV8fG14KjAuMDJ8fDE7IG14Kz1wYWQ7IG1uPU1hdGgubWF4KDAsbW4tcGFkKTsKICB2YXIgaXc9Vy1QTC1QUiwgaWg9SC1QVC1QQjsKICB2YXIgWD1mdW5jdGlvbihpKXtyZXR1cm4gUEwraXcqKG49PT0xPzAuNTppLyhuLTEpKTt9OwogIHZhciBZPWZ1bmN0aW9uKHYpe3JldHVybiBQVCtpaCooMS0odi1tbikvKChteC1tbil8fDEpKTt9OwogIHZhciBzdmc9ZWwoJ3N2Zycse3ZpZXdCb3g6JzAgMCAnK1crJyAnK0gscm9sZTonaW1nJ30pOwogIGZvcih2YXIgZz0wO2c8PTQ7ZysrKXsKICAgIHZhciBndj1tbisobXgtbW4pKmcvNCwgZ3k9WShndik7CiAgICBzdmcuYXBwZW5kQ2hpbGQoZWwoJ2xpbmUnLHt4MTpQTCx5MTpneSx4MjpXLVBSLHkyOmd5LCdjbGFzcyc6J2dsJ30pKTsKICAgIHN2Zy5hcHBlbmRDaGlsZChPYmplY3QuYXNzaWduKGVsKCd0ZXh0Jyx7eDpQTC04LHk6Z3krNCwnY2xhc3MnOidsYicsJ3RleHQtYW5jaG9yJzonZW5kJ30pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RleHRDb250ZW50Ok1hdGgucm91bmQoZ3YpLnRvTG9jYWxlU3RyaW5nKCdrby1LUicpfSkpOwogIH0KICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihzKXsKICAgIHZhciBkPScnLCBzdGFydGVkPWZhbHNlOwogICAgcy5kYXRhLmZvckVhY2goZnVuY3Rpb24odixpKXsKICAgICAgaWYodj09bnVsbCkgcmV0dXJuOwogICAgICBkKz0oc3RhcnRlZD8nTCc6J00nKStYKGkpLnRvRml4ZWQoMSkrJyAnK1kodikudG9GaXhlZCgxKSsnICc7IHN0YXJ0ZWQ9dHJ1ZTsKICAgIH0pOwogICAgaWYoZCkgc3ZnLmFwcGVuZENoaWxkKGVsKCdwYXRoJyx7ZDpkLGZpbGw6J25vbmUnLCdzdHJva2UnOid2YXIoLS0nK3MuY2xzKycpJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdHJva2Utd2lkdGgnOjIuMiwnc3Ryb2tlLWxpbmVqb2luJzoncm91bmQnLCdzdHJva2UtbGluZWNhcCc6J3JvdW5kJ30pKTsKICAgIHZhciBsYXN0PXMuZGF0YS5sZW5ndGgtMTsKICAgIGlmKHMuZGF0YVtsYXN0XSE9bnVsbCkKICAgICAgc3ZnLmFwcGVuZENoaWxkKGVsKCdjaXJjbGUnLHtjeDpYKGxhc3QpLGN5Olkocy5kYXRhW2xhc3RdKSxyOjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDondmFyKC0tJytzLmNscysnKScsc3Ryb2tlOid2YXIoLS1zdXJmYWNlKScsJ3N0cm9rZS13aWR0aCc6Mn0pKTsKICB9KTsKICBjYXRzLmZvckVhY2goZnVuY3Rpb24oYyxpKXsKICAgIGlmKG4+MTAgJiYgaSVNYXRoLmNlaWwobi83KSE9PTAgJiYgaSE9PW4tMSkgcmV0dXJuOwogICAgc3ZnLmFwcGVuZENoaWxkKE9iamVjdC5hc3NpZ24oZWwoJ3RleHQnLHt4OlgoaSkseTpILTgsJ2NsYXNzJzonbGInLCd0ZXh0LWFuY2hvcic6J21pZGRsZSd9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0ZXh0Q29udGVudDpjfSkpOwogIH0pOwogIGZvcih2YXIgaT0wO2k8bjtpKyspewogICAgKGZ1bmN0aW9uKGlkeCl7CiAgICAgIHZhciBoaXQ9ZWwoJ3JlY3QnLHt4OlgoaWR4KS1pdy8obi0xKS8yLHk6UFQsd2lkdGg6aXcvKG4tMSl8fDIwLGhlaWdodDppaCwnY2xhc3MnOidoaXQnfSk7CiAgICAgIGhpdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLGZ1bmN0aW9uKGV2KXsKICAgICAgICB2YXIgYnI9Ym94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIHZhciByb3dzPXNlcmllcy5tYXAoZnVuY3Rpb24ocyl7CiAgICAgICAgICByZXR1cm4gJzxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjJweDsnCiAgICAgICAgICAgICAgICsgJ2JhY2tncm91bmQ6dmFyKC0tJytzLmNscysnKTttYXJnaW4tcmlnaHQ6NnB4Ij48L3NwYW4+JytzLm5hbWUrJyAnCiAgICAgICAgICAgICAgICsgKHMuZGF0YVtpZHhdPT1udWxsPyctJzpmbXQocy5kYXRhW2lkeF0pKTsKICAgICAgICB9KS5qb2luKCc8YnI+Jyk7CiAgICAgICAgc2hvd1RpcChib3gsZXYuY2xpZW50WC1ici5sZWZ0LGV2LmNsaWVudFktYnIudG9wLCc8Yj4nK2NhdHNbaWR4XSsnPC9iPjxicj4nK3Jvd3MpOwogICAgICB9KTsKICAgICAgaGl0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLGZ1bmN0aW9uKCl7aGlkZVRpcChib3gpO30pOwogICAgICBzdmcuYXBwZW5kQ2hpbGQoaGl0KTsKICAgIH0pKGkpOwogIH0KICBib3guYXBwZW5kQ2hpbGQoc3ZnKTsKICBib3guYXBwZW5kQ2hpbGQobGVnZW5kKHNlcmllcykpOwp9CgpmdW5jdGlvbiBsZWdlbmQoaXRlbXMpewogIHZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBkLmNsYXNzTmFtZT0ndHBoLWxlZ2VuZCc7CiAgaXRlbXMuZm9yRWFjaChmdW5jdGlvbihzKXsKICAgIHZhciBzcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAgICBzcC5pbm5lckhUTUw9JzxpIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLScrcy5jbHMrJykiPjwvaT4nK3MubmFtZTsKICAgIGQuYXBwZW5kQ2hpbGQoc3ApOwogIH0pOwogIHJldHVybiBkOwp9Cgp2YXIgQ0xPPTAsIENIST0wLCBBVkc9MDsgICAgICAvKiDsg4kg6riw7KSA6rCSIOKAlCByZW5kZXIoKSDqsIAg6rCx7Iug7ZWc64ukICovCgovKiDquLDrs7gg7IOJIO2VqOyImC4g6riw66aE6rCSwrfrtoDrj5nsgrAg7KCE6rWtIO2OmOydtOyngOuKlCDslYTrnpjsl5DshJwg7J6Q6riwIOqyg+ydhCDri6Tsi5wg7KCV7J2Y7ZW0IOuNruyWtOyTtOuLpC4KICAgKOyLnOuPhMK37Iuc6rWw6rWsIO2OmOydtOyngOyXkOuKlCDsnbTqsowg7JeG7Ja07IScIO2BtOufrOyKpO2EsCDslYTsnbTsvZjsnbQg7Ya17Ke466GcIOyViCDqt7jroKTsoYzsl4jri6QpICovCmZ1bmN0aW9uIGNvbG9yRm9yKHYsIGxvLCBoaSl7CiAgaWYoaGk8PWxvKSByZXR1cm4gJyM5Y2EzYWYnOwogIHZhciB0PSh2LWxvKS8oaGktbG8pLCBjcz1nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7CiAgaWYodD4wLjY2KSByZXR1cm4gY3MuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zMicpLnRyaW0oKXx8JyNlYjY4MzQnOwogIGlmKHQ8MC4zMykgcmV0dXJuIGNzLmdldFByb3BlcnR5VmFsdWUoJy0tczEnKS50cmltKCl8fCcjMmE3OGQ2JzsKICByZXR1cm4gJyM5Y2EzYWYnOwp9Ci8qIOyngOyYpOy9lOuUqeydtCDslrTsqYzri6Qg7JeJ65qx7ZWcIOqzs+ydhCDsp5HsnLzrqbQo64+Z66qFIOuLqOyngCkg6re4IO2VnCDsoJAg65WM66y47JeQIOyngOuPhOqwgCDsoITqta3snLzroZwg7KSM7JWE7JuD65Cc64ukLgogICDshJzsmrgg7Y6Y7J207KeA6rCAIOuCqOyWkeyjvMK37J247LKc6rmM7KeAIOuLtOyVhCDrs7Tsnbgg7KCB7J20IOyeiOuLpC4g67CU6rmlIDIl66W8IOyemOudvCDrspTsnITrpbwg7J6h64qU64ukLiAqLwpmdW5jdGlvbiBmaXRUbyhtLCBwdHMsIG1heFpvb20pewogIGlmKCFwdHMubGVuZ3RoKSByZXR1cm47CiAgbS5pbnZhbGlkYXRlU2l6ZShmYWxzZSk7CiAgaWYocHRzLmxlbmd0aCA8IDMwKXsgbS5maXRCb3VuZHMocHRzLHtwYWRkaW5nOlszMCwzMF0sbWF4Wm9vbTptYXhab29tfHwxNX0pOyByZXR1cm47IH0KICB2YXIgbGE9cHRzLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcFswXTt9KS5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEtYjt9KTsKICB2YXIgbG49cHRzLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcFsxXTt9KS5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEtYjt9KTsKICB2YXIgcT1mdW5jdGlvbihhLHQpe3JldHVybiBhW01hdGgubWluKGEubGVuZ3RoLTEsTWF0aC5tYXgoMCxNYXRoLmZsb29yKGEubGVuZ3RoKnQpKSldO307CiAgbS5maXRCb3VuZHMoW1txKGxhLDAuMDIpLHEobG4sMC4wMildLFtxKGxhLDAuOTgpLHEobG4sMC45OCldXSwKICAgICAgICAgICAgICB7cGFkZGluZzpbMzAsMzBdLG1heFpvb206bWF4Wm9vbXx8MTV9KTsKfQoKLyog66eI7Luk66W8IO2VnCDqsJzslKkgYWRkVG8g7ZWY66m0IO2BtOufrOyKpO2EsOqwgCDrp6Trsogg64uk7IucIOqzhOyCsOuQnOuLpCgyLDUwMOqwnOuptCDriIjsl5Ag67O07J206rKMIOuyhOuyheydtOqzoAogICDtmZTrqbTsl5Ag6rK57LmcIOyxhOuhnCDrgqjripTri6QpLiDrqqjslYTshJwgYWRkTGF5ZXJzIOuhnCDtlZwg67KI7JeQIOuEo+uKlOuLpC4gKi8KdmFyIFBFTkQ9W107CmZ1bmN0aW9uIGFkZEFsbChsYXllciwgYXJyKXsKICBpZihsYXllci5hZGRMYXllcnMpIGxheWVyLmFkZExheWVycyhhcnIpOwogIGVsc2UgYXJyLmZvckVhY2goZnVuY3Rpb24obSl7IG0uYWRkVG8obGF5ZXIpOyB9KTsKfQoKZnVuY3Rpb24gY2x1c3Rlckdyb3VwKGZtdCwgY29sRm4pewogIGlmKCF3aW5kb3cuTCB8fCAhTC5tYXJrZXJDbHVzdGVyR3JvdXApCiAgICByZXR1cm4gTC5sYXllckdyb3VwKCk7ICAgICAgICAgIC8qIO2UjOufrOq3uOyduOydtCDrqrsg65a07Jy866m0IOq3uOuDpSDri6Qg7LCN64qU64ukICovCiAgcmV0dXJuIEwubWFya2VyQ2x1c3Rlckdyb3VwKHsKICAgIGNodW5rZWRMb2FkaW5nOnRydWUsIHNob3dDb3ZlcmFnZU9uSG92ZXI6ZmFsc2UsIHNwaWRlcmZ5T25NYXhab29tOnRydWUsCiAgICBkaXNhYmxlQ2x1c3RlcmluZ0F0Wm9vbToxNSwgbWF4Q2x1c3RlclJhZGl1czo4NCwKICAgIGljb25DcmVhdGVGdW5jdGlvbjpmdW5jdGlvbihjKXsKICAgICAgdmFyIG1zPWMuZ2V0QWxsQ2hpbGRNYXJrZXJzKCksIHY9W107CiAgICAgIGZvcih2YXIgaT0wO2k8bXMubGVuZ3RoO2krKyl7IGlmKG1zW2ldLm9wdGlvbnMucHYhPW51bGwpIHYucHVzaChtc1tpXS5vcHRpb25zLnB2KTsgfQogICAgICB2LnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS1iO30pOwogICAgICB2YXIgbWlkID0gdi5sZW5ndGg/IHZbdi5sZW5ndGg+PjFdIDogbnVsbDsKICAgICAgdmFyIG49Yy5nZXRDaGlsZENvdW50KCk7CiAgICAgIHZhciBzeiA9IG4+MzAwPzU4IDogbj42MD81MCA6IDQzOwogICAgICByZXR1cm4gTC5kaXZJY29uKHtjbGFzc05hbWU6J3RwaC1jbHVzdGVyJywgaWNvblNpemU6W3N6LHN6XSwKICAgICAgICBodG1sOic8ZGl2IGNsYXNzPSJjbCIgc3R5bGU9IndpZHRoOicrc3orJ3B4O2hlaWdodDonK3N6KydweDtiYWNrZ3JvdW5kOicKICAgICAgICAgICAgICsobWlkPT1udWxsPycjOWNhM2FmJzpjb2xGbihtaWQpKSsnIj4nCiAgICAgICAgICAgICArJzxiPicrKG1pZD09bnVsbD8nJzpmbXQobWlkKSkrJzwvYj48aT4nK24rJ+qzszwvaT48L2Rpdj4nfSk7CiAgICB9fSk7Cn0KCnZhciBSSURYPVt7Im4iOiAi6rCV7JuQ7Yq567OE7J6Q7LmY64+EIOqwleumieyLnCIsICJzIjogIuqwleumieyLnCIsICJkIjogIuqwleybkCIsICJ1IjogIi/rtoDrj5nsgrAt6rCV7JuQLeqwleumieyLnC8ifSwgeyJuIjogIuqwleybkO2KueuzhOyekOy5mOuPhCDqs6DshLHqtbAiLCAicyI6ICLqs6DshLHqtbAiLCAiZCI6ICLqsJXsm5AiLCAidSI6ICIv67aA64+Z7IKwLeqwleybkC3qs6DshLHqtbAvIn0sIHsibiI6ICLqsJXsm5Dtirnrs4TsnpDsuZjrj4Qg64+Z7ZW07IucIiwgInMiOiAi64+Z7ZW07IucIiwgImQiOiAi6rCV7JuQIiwgInUiOiAiL+u2gOuPmeyCsC3qsJXsm5At64+Z7ZW07IucLyJ9LCB7Im4iOiAi6rCV7JuQ7Yq567OE7J6Q7LmY64+EIOyCvOyymeyLnCIsICJzIjogIuyCvOyymeyLnCIsICJkIjogIuqwleybkCIsICJ1IjogIi/rtoDrj5nsgrAt6rCV7JuQLeyCvOyymeyLnC8ifSwgeyJuIjogIuqwleybkO2KueuzhOyekOy5mOuPhCDsho3stIjsi5wiLCAicyI6ICLsho3stIjsi5wiLCAiZCI6ICLqsJXsm5AiLCAidSI6ICIv67aA64+Z7IKwLeqwleybkC3sho3stIjsi5wvIn0sIHsibiI6ICLqsJXsm5Dtirnrs4TsnpDsuZjrj4Qg7JaR6rWs6rWwIiwgInMiOiAi7JaR6rWs6rWwIiwgImQiOiAi6rCV7JuQIiwgInUiOiAiL+u2gOuPmeyCsC3qsJXsm5At7JaR6rWs6rWwLyJ9LCB7Im4iOiAi6rCV7JuQ7Yq567OE7J6Q7LmY64+EIOyWkeyWkeq1sCIsICJzIjogIuyWkeyWkeq1sCIsICJkIjogIuqwleybkCIsICJ1IjogIi/rtoDrj5nsgrAt6rCV7JuQLeyWkeyWkeq1sC8ifSwgeyJuIjogIuqwleybkO2KueuzhOyekOy5mOuPhCDsmIHsm5TqtbAiLCAicyI6ICLsmIHsm5TqtbAiLCAiZCI6ICLqsJXsm5AiLCAidSI6ICIv67aA64+Z7IKwLeqwleybkC3smIHsm5TqtbAvIn0sIHsibiI6ICLqsJXsm5Dtirnrs4TsnpDsuZjrj4Qg7JuQ7KO87IucIiwgInMiOiAi7JuQ7KO87IucIiwgImQiOiAi6rCV7JuQIiwgInUiOiAiL+u2gOuPmeyCsC3qsJXsm5At7JuQ7KO87IucLyJ9LCB7Im4iOiAi6rCV7JuQ7Yq567OE7J6Q7LmY64+EIOyduOygnOq1sCIsICJzIjogIuyduOygnOq1sCIsICJkIjogIuqwleybkCIsICJ1IjogIi/rtoDrj5nsgrAt6rCV7JuQLeyduOygnOq1sC8ifSwgeyJuIjogIuqwleybkO2KueuzhOyekOy5mOuPhCDsoJXshKDqtbAiLCAicyI6ICLsoJXshKDqtbAiLCAiZCI6ICLqsJXsm5AiLCAidSI6ICIv67aA64+Z7IKwLeqwleybkC3soJXshKDqtbAvIn0sIHsibiI6ICLqsJXsm5Dtirnrs4TsnpDsuZjrj4Qg7LKg7JuQ6rWwIiwgInMiOiAi7LKg7JuQ6rWwIiwgImQiOiAi6rCV7JuQIiwgInUiOiAiL+u2gOuPmeyCsC3qsJXsm5At7LKg7JuQ6rWwLyJ9LCB7Im4iOiAi6rCV7JuQ7Yq567OE7J6Q7LmY64+EIOy2mOyynOyLnCIsICJzIjogIuy2mOyynOyLnCIsICJkIjogIuqwleybkCIsICJ1IjogIi/rtoDrj5nsgrAt6rCV7JuQLey2mOyynOyLnC8ifSwgeyJuIjogIuqwleybkO2KueuzhOyekOy5mOuPhCDtg5zrsLHsi5wiLCAicyI6ICLtg5zrsLHsi5wiLCAiZCI6ICLqsJXsm5AiLCAidSI6ICIv67aA64+Z7IKwLeqwleybkC3tg5zrsLHsi5wvIn0sIHsibiI6ICLqsJXsm5Dtirnrs4TsnpDsuZjrj4Qg7Y+J7LC96rWwIiwgInMiOiAi7Y+J7LC96rWwIiwgImQiOiAi6rCV7JuQIiwgInUiOiAiL+u2gOuPmeyCsC3qsJXsm5At7Y+J7LC96rWwLyJ9LCB7Im4iOiAi6rCV7JuQ7Yq567OE7J6Q7LmY64+EIO2ZjeyynOq1sCIsICJzIjogIu2ZjeyynOq1sCIsICJkIjogIuqwleybkCIsICJ1IjogIi/rtoDrj5nsgrAt6rCV7JuQLe2ZjeyynOq1sC8ifSwgeyJuIjogIuqwleybkO2KueuzhOyekOy5mOuPhCDtmZTsspzqtbAiLCAicyI6ICLtmZTsspzqtbAiLCAiZCI6ICLqsJXsm5AiLCAidSI6ICIv67aA64+Z7IKwLeqwleybkC3tmZTsspzqtbAvIn0sIHsibiI6ICLqsJXsm5Dtirnrs4TsnpDsuZjrj4Qg7Zqh7ISx6rWwIiwgInMiOiAi7Zqh7ISx6rWwIiwgImQiOiAi6rCV7JuQIiwgInUiOiAiL+u2gOuPmeyCsC3qsJXsm5At7Zqh7ISx6rWwLyJ9LCB7Im4iOiAi6rK96riw64+EIOqwgO2Pieq1sCIsICJzIjogIuqwgO2Pieq1sCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeqwgO2Pieq1sC8ifSwgeyJuIjogIuqyveq4sOuPhCDqs6DslpHsi5wg642V7JaR6rWsIiwgInMiOiAi6rOg7JaR7IucIOuNleyWkeq1rCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeqzoOyWkeyLnC3rjZXslpHqtawvIn0sIHsibiI6ICLqsr3quLDrj4Qg6rOg7JaR7IucIOydvOyCsOuPmeq1rCIsICJzIjogIuqzoOyWkeyLnCDsnbzsgrDrj5nqtawiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3qs6DslpHsi5wt7J287IKw64+Z6rWsLyJ9LCB7Im4iOiAi6rK96riw64+EIOqzoOyWkeyLnCDsnbzsgrDshJzqtawiLCAicyI6ICLqs6DslpHsi5wg7J287IKw7ISc6rWsIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt6rOg7JaR7IucLeydvOyCsOyEnOq1rC8ifSwgeyJuIjogIuqyveq4sOuPhCDqs7zsspzsi5wiLCAicyI6ICLqs7zsspzsi5wiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3qs7zsspzsi5wvIn0sIHsibiI6ICLqsr3quLDrj4Qg6rSR66qF7IucIiwgInMiOiAi6rSR66qF7IucIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt6rSR66qF7IucLyJ9LCB7Im4iOiAi6rK96riw64+EIOq0keyjvOyLnCIsICJzIjogIuq0keyjvOyLnCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeq0keyjvOyLnC8ifSwgeyJuIjogIuqyveq4sOuPhCDqtazrpqzsi5wiLCAicyI6ICLqtazrpqzsi5wiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3qtazrpqzsi5wvIn0sIHsibiI6ICLqsr3quLDrj4Qg6rWw7Y+s7IucIiwgInMiOiAi6rWw7Y+s7IucIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt6rWw7Y+s7IucLyJ9LCB7Im4iOiAi6rK96riw64+EIOq5gO2PrOyLnCIsICJzIjogIuq5gO2PrOyLnCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeq5gO2PrOyLnC8ifSwgeyJuIjogIuqyveq4sOuPhCDrgqjslpHso7zsi5wiLCAicyI6ICLrgqjslpHso7zsi5wiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3rgqjslpHso7zsi5wvIn0sIHsibiI6ICLqsr3quLDrj4Qg64+Z65GQ7LKc7IucIiwgInMiOiAi64+Z65GQ7LKc7IucIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt64+Z65GQ7LKc7IucLyJ9LCB7Im4iOiAi6rK96riw64+EIOu2gOyynOyLnCDshozsgqzqtawiLCAicyI6ICLrtoDsspzsi5wg7IaM7IKs6rWsIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt67aA7LKc7IucLeyGjOyCrOq1rC8ifSwgeyJuIjogIuqyveq4sOuPhCDrtoDsspzsi5wg7Jik7KCV6rWsIiwgInMiOiAi67aA7LKc7IucIOyYpOygleq1rCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeu2gOyynOyLnC3smKTsoJXqtawvIn0sIHsibiI6ICLqsr3quLDrj4Qg67aA7LKc7IucIOybkOuvuOq1rCIsICJzIjogIuu2gOyynOyLnCDsm5Drr7jqtawiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3rtoDsspzsi5wt7JuQ66+46rWsLyJ9LCB7Im4iOiAi6rK96riw64+EIOyEseuCqOyLnCDrtoTri7nqtawiLCAicyI6ICLshLHrgqjsi5wg67aE64u56rWsIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7ISx64Ko7IucLeu2hOuLueq1rC8ifSwgeyJuIjogIuqyveq4sOuPhCDshLHrgqjsi5wg7IiY7KCV6rWsIiwgInMiOiAi7ISx64Ko7IucIOyImOygleq1rCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeyEseuCqOyLnC3siJjsoJXqtawvIn0sIHsibiI6ICLqsr3quLDrj4Qg7ISx64Ko7IucIOykkeybkOq1rCIsICJzIjogIuyEseuCqOyLnCDspJHsm5DqtawiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3shLHrgqjsi5wt7KSR7JuQ6rWsLyJ9LCB7Im4iOiAi6rK96riw64+EIOyImOybkOyLnCDqtozshKDqtawiLCAicyI6ICLsiJjsm5Dsi5wg6raM7ISg6rWsIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7IiY7JuQ7IucLeq2jOyEoOq1rC8ifSwgeyJuIjogIuqyveq4sOuPhCDsiJjsm5Dsi5wg7JiB7Ya16rWsIiwgInMiOiAi7IiY7JuQ7IucIOyYge2Gteq1rCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeyImOybkOyLnC3smIHthrXqtawvIn0sIHsibiI6ICLqsr3quLDrj4Qg7IiY7JuQ7IucIOyepeyViOq1rCIsICJzIjogIuyImOybkOyLnCDsnqXslYjqtawiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3siJjsm5Dsi5wt7J6l7JWI6rWsLyJ9LCB7Im4iOiAi6rK96riw64+EIOyImOybkOyLnCDtjJTri6zqtawiLCAicyI6ICLsiJjsm5Dsi5wg7YyU64us6rWsIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7IiY7JuQ7IucLe2MlOuLrOq1rC8ifSwgeyJuIjogIuqyveq4sOuPhCDsi5ztnaXsi5wiLCAicyI6ICLsi5ztnaXsi5wiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3si5ztnaXsi5wvIn0sIHsibiI6ICLqsr3quLDrj4Qg7JWI7IKw7IucIOuLqOybkOq1rCIsICJzIjogIuyViOyCsOyLnCDri6jsm5DqtawiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3slYjsgrDsi5wt64uo7JuQ6rWsLyJ9LCB7Im4iOiAi6rK96riw64+EIOyViOyCsOyLnCDsg4HroZ3qtawiLCAicyI6ICLslYjsgrDsi5wg7IOB66Gd6rWsIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7JWI7IKw7IucLeyDgeuhneq1rC8ifSwgeyJuIjogIuqyveq4sOuPhCDslYjshLHsi5wiLCAicyI6ICLslYjshLHsi5wiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3slYjshLHsi5wvIn0sIHsibiI6ICLqsr3quLDrj4Qg7JWI7JaR7IucIOuPmeyViOq1rCIsICJzIjogIuyViOyWkeyLnCDrj5nslYjqtawiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3slYjslpHsi5wt64+Z7JWI6rWsLyJ9LCB7Im4iOiAi6rK96riw64+EIOyViOyWkeyLnCDrp4zslYjqtawiLCAicyI6ICLslYjslpHsi5wg66eM7JWI6rWsIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7JWI7JaR7IucLeunjOyViOq1rC8ifSwgeyJuIjogIuqyveq4sOuPhCDslpHso7zsi5wiLCAicyI6ICLslpHso7zsi5wiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3slpHso7zsi5wvIn0sIHsibiI6ICLqsr3quLDrj4Qg7JaR7Y+J6rWwIiwgInMiOiAi7JaR7Y+J6rWwIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7JaR7Y+J6rWwLyJ9LCB7Im4iOiAi6rK96riw64+EIOyXrOyjvOyLnCIsICJzIjogIuyXrOyjvOyLnCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeyXrOyjvOyLnC8ifSwgeyJuIjogIuqyveq4sOuPhCDsl7DsspzqtbAiLCAicyI6ICLsl7DsspzqtbAiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3sl7DsspzqtbAvIn0sIHsibiI6ICLqsr3quLDrj4Qg7Jik7IKw7IucIiwgInMiOiAi7Jik7IKw7IucIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7Jik7IKw7IucLyJ9LCB7Im4iOiAi6rK96riw64+EIOyaqeyduOyLnCDquLDtnaXqtawiLCAicyI6ICLsmqnsnbjsi5wg6riw7Z2l6rWsIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7Jqp7J247IucLeq4sO2dpeq1rC8ifSwgeyJuIjogIuqyveq4sOuPhCDsmqnsnbjsi5wg7IiY7KeA6rWsIiwgInMiOiAi7Jqp7J247IucIOyImOyngOq1rCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeyaqeyduOyLnC3siJjsp4DqtawvIn0sIHsibiI6ICLqsr3quLDrj4Qg7Jqp7J247IucIOyymOyduOq1rCIsICJzIjogIuyaqeyduOyLnCDsspjsnbjqtawiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3smqnsnbjsi5wt7LKY7J246rWsLyJ9LCB7Im4iOiAi6rK96riw64+EIOydmOyZleyLnCIsICJzIjogIuydmOyZleyLnCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLeydmOyZleyLnC8ifSwgeyJuIjogIuqyveq4sOuPhCDsnZjsoJXrtoDsi5wiLCAicyI6ICLsnZjsoJXrtoDsi5wiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3snZjsoJXrtoDsi5wvIn0sIHsibiI6ICLqsr3quLDrj4Qg7J207LKc7IucIiwgInMiOiAi7J207LKc7IucIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7J207LKc7IucLyJ9LCB7Im4iOiAi6rK96riw64+EIO2MjOyjvOyLnCIsICJzIjogIu2MjOyjvOyLnCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLe2MjOyjvOyLnC8ifSwgeyJuIjogIuqyveq4sOuPhCDtj4ntg53si5wiLCAicyI6ICLtj4ntg53si5wiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3tj4ntg53si5wvIn0sIHsibiI6ICLqsr3quLDrj4Qg7Y+s7LKc7IucIiwgInMiOiAi7Y+s7LKc7IucIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7Y+s7LKc7IucLyJ9LCB7Im4iOiAi6rK96riw64+EIO2VmOuCqOyLnCIsICJzIjogIu2VmOuCqOyLnCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLe2VmOuCqOyLnC8ifSwgeyJuIjogIuqyveq4sOuPhCDtmZTshLHsi5wg64+Z7YOE6rWsIiwgInMiOiAi7ZmU7ISx7IucIOuPme2DhOq1rCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLe2ZlOyEseyLnC3rj5ntg4TqtawvIn0sIHsibiI6ICLqsr3quLDrj4Qg7ZmU7ISx7IucIOunjOyEuOq1rCIsICJzIjogIu2ZlOyEseyLnCDrp4zshLjqtawiLCAiZCI6ICLqsr3quLAiLCAidSI6ICIv67aA64+Z7IKwLeqyveq4sC3tmZTshLHsi5wt66eM7IS46rWsLyJ9LCB7Im4iOiAi6rK96riw64+EIO2ZlOyEseyLnCDrs5HsoJDqtawiLCAicyI6ICLtmZTshLHsi5wg67OR7KCQ6rWsIiwgImQiOiAi6rK96riwIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3quLAt7ZmU7ISx7IucLeuzkeygkOq1rC8ifSwgeyJuIjogIuqyveq4sOuPhCDtmZTshLHsi5wg7Zqo7ZaJ6rWsIiwgInMiOiAi7ZmU7ISx7IucIO2aqO2Wieq1rCIsICJkIjogIuqyveq4sCIsICJ1IjogIi/rtoDrj5nsgrAt6rK96riwLe2ZlOyEseyLnC3tmqjtlonqtawvIn0sIHsibiI6ICLqsr3sg4Hrgqjrj4Qg6rGw7KCc7IucIiwgInMiOiAi6rGw7KCc7IucIiwgImQiOiAi6rK964KoIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rgqgt6rGw7KCc7IucLyJ9LCB7Im4iOiAi6rK97IOB64Ko64+EIOqxsOywveq1sCIsICJzIjogIuqxsOywveq1sCIsICJkIjogIuqyveuCqCIsICJ1IjogIi/rtoDrj5nsgrAt6rK964KoLeqxsOywveq1sC8ifSwgeyJuIjogIuqyveyDgeuCqOuPhCDqs6DshLHqtbAiLCAicyI6ICLqs6DshLHqtbAiLCAiZCI6ICLqsr3rgqgiLCAidSI6ICIv67aA64+Z7IKwLeqyveuCqC3qs6DshLHqtbAvIn0sIHsibiI6ICLqsr3sg4Hrgqjrj4Qg6rmA7ZW07IucIiwgInMiOiAi6rmA7ZW07IucIiwgImQiOiAi6rK964KoIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rgqgt6rmA7ZW07IucLyJ9LCB7Im4iOiAi6rK97IOB64Ko64+EIOuCqO2VtOq1sCIsICJzIjogIuuCqO2VtOq1sCIsICJkIjogIuqyveuCqCIsICJ1IjogIi/rtoDrj5nsgrAt6rK964KoLeuCqO2VtOq1sC8ifSwgeyJuIjogIuqyveyDgeuCqOuPhCDrsIDslpHsi5wiLCAicyI6ICLrsIDslpHsi5wiLCAiZCI6ICLqsr3rgqgiLCAidSI6ICIv67aA64+Z7IKwLeqyveuCqC3rsIDslpHsi5wvIn0sIHsibiI6ICLqsr3sg4Hrgqjrj4Qg7IKs7LKc7IucIiwgInMiOiAi7IKs7LKc7IucIiwgImQiOiAi6rK964KoIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rgqgt7IKs7LKc7IucLyJ9LCB7Im4iOiAi6rK97IOB64Ko64+EIOyCsOyyreq1sCIsICJzIjogIuyCsOyyreq1sCIsICJkIjogIuqyveuCqCIsICJ1IjogIi/rtoDrj5nsgrAt6rK964KoLeyCsOyyreq1sC8ifSwgeyJuIjogIuqyveyDgeuCqOuPhCDslpHsgrDsi5wiLCAicyI6ICLslpHsgrDsi5wiLCAiZCI6ICLqsr3rgqgiLCAidSI6ICIv67aA64+Z7IKwLeqyveuCqC3slpHsgrDsi5wvIn0sIHsibiI6ICLqsr3sg4Hrgqjrj4Qg7J2Y66C56rWwIiwgInMiOiAi7J2Y66C56rWwIiwgImQiOiAi6rK964KoIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rgqgt7J2Y66C56rWwLyJ9LCB7Im4iOiAi6rK97IOB64Ko64+EIOynhOyjvOyLnCIsICJzIjogIuynhOyjvOyLnCIsICJkIjogIuqyveuCqCIsICJ1IjogIi/rtoDrj5nsgrAt6rK964KoLeynhOyjvOyLnC8ifSwgeyJuIjogIuqyveyDgeuCqOuPhCDssL3rhZXqtbAiLCAicyI6ICLssL3rhZXqtbAiLCAiZCI6ICLqsr3rgqgiLCAidSI6ICIv67aA64+Z7IKwLeqyveuCqC3ssL3rhZXqtbAvIn0sIHsibiI6ICLqsr3sg4Hrgqjrj4Qg7LC97JuQ7IucIOuniOyCsO2Vqe2PrOq1rCIsICJzIjogIuywveybkOyLnCDrp4jsgrDtlantj6zqtawiLCAiZCI6ICLqsr3rgqgiLCAidSI6ICIv67aA64+Z7IKwLeqyveuCqC3ssL3sm5Dsi5wt66eI7IKw7ZWp7Y+s6rWsLyJ9LCB7Im4iOiAi6rK97IOB64Ko64+EIOywveybkOyLnCDrp4jsgrDtmozsm5DqtawiLCAicyI6ICLssL3sm5Dsi5wg66eI7IKw7ZqM7JuQ6rWsIiwgImQiOiAi6rK964KoIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rgqgt7LC97JuQ7IucLeuniOyCsO2ajOybkOq1rC8ifSwgeyJuIjogIuqyveyDgeuCqOuPhCDssL3sm5Dsi5wg7ISx7IKw6rWsIiwgInMiOiAi7LC97JuQ7IucIOyEseyCsOq1rCIsICJkIjogIuqyveuCqCIsICJ1IjogIi/rtoDrj5nsgrAt6rK964KoLeywveybkOyLnC3shLHsgrDqtawvIn0sIHsibiI6ICLqsr3sg4Hrgqjrj4Qg7LC97JuQ7IucIOydmOywveq1rCIsICJzIjogIuywveybkOyLnCDsnZjssL3qtawiLCAiZCI6ICLqsr3rgqgiLCAidSI6ICIv67aA64+Z7IKwLeqyveuCqC3ssL3sm5Dsi5wt7J2Y7LC96rWsLyJ9LCB7Im4iOiAi6rK97IOB64Ko64+EIOywveybkOyLnCDsp4TtlbTqtawiLCAicyI6ICLssL3sm5Dsi5wg7KeE7ZW06rWsIiwgImQiOiAi6rK964KoIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rgqgt7LC97JuQ7IucLeynhO2VtOq1rC8ifSwgeyJuIjogIuqyveyDgeuCqOuPhCDthrXsmIHsi5wiLCAicyI6ICLthrXsmIHsi5wiLCAiZCI6ICLqsr3rgqgiLCAidSI6ICIv67aA64+Z7IKwLeqyveuCqC3thrXsmIHsi5wvIn0sIHsibiI6ICLqsr3sg4Hrgqjrj4Qg7ZWY64+Z6rWwIiwgInMiOiAi7ZWY64+Z6rWwIiwgImQiOiAi6rK964KoIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rgqgt7ZWY64+Z6rWwLyJ9LCB7Im4iOiAi6rK97IOB64Ko64+EIO2VqOyViOq1sCIsICJzIjogIu2VqOyViOq1sCIsICJkIjogIuqyveuCqCIsICJ1IjogIi/rtoDrj5nsgrAt6rK964KoLe2VqOyViOq1sC8ifSwgeyJuIjogIuqyveyDgeuCqOuPhCDtlajslpHqtbAiLCAicyI6ICLtlajslpHqtbAiLCAiZCI6ICLqsr3rgqgiLCAidSI6ICIv67aA64+Z7IKwLeqyveuCqC3tlajslpHqtbAvIn0sIHsibiI6ICLqsr3sg4Hrgqjrj4Qg7ZWp7LKc6rWwIiwgInMiOiAi7ZWp7LKc6rWwIiwgImQiOiAi6rK964KoIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rgqgt7ZWp7LKc6rWwLyJ9LCB7Im4iOiAi6rK97IOB67aB64+EIOqyveyCsOyLnCIsICJzIjogIuqyveyCsOyLnCIsICJkIjogIuqyveu2gSIsICJ1IjogIi/rtoDrj5nsgrAt6rK967aBLeqyveyCsOyLnC8ifSwgeyJuIjogIuqyveyDgeu2geuPhCDqsr3so7zsi5wiLCAicyI6ICLqsr3so7zsi5wiLCAiZCI6ICLqsr3rtoEiLCAidSI6ICIv67aA64+Z7IKwLeqyveu2gS3qsr3so7zsi5wvIn0sIHsibiI6ICLqsr3sg4HrtoHrj4Qg6rOg66C56rWwIiwgInMiOiAi6rOg66C56rWwIiwgImQiOiAi6rK967aBIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rtoEt6rOg66C56rWwLyJ9LCB7Im4iOiAi6rK97IOB67aB64+EIOq1rOuvuOyLnCIsICJzIjogIuq1rOuvuOyLnCIsICJkIjogIuqyveu2gSIsICJ1IjogIi/rtoDrj5nsgrAt6rK967aBLeq1rOuvuOyLnC8ifSwgeyJuIjogIuqyveyDgeu2geuPhCDquYDsspzsi5wiLCAicyI6ICLquYDsspzsi5wiLCAiZCI6ICLqsr3rtoEiLCAidSI6ICIv67aA64+Z7IKwLeqyveu2gS3quYDsspzsi5wvIn0sIHsibiI6ICLqsr3sg4HrtoHrj4Qg66y46rK97IucIiwgInMiOiAi66y46rK97IucIiwgImQiOiAi6rK967aBIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rtoEt66y46rK97IucLyJ9LCB7Im4iOiAi6rK97IOB67aB64+EIOu0ie2ZlOq1sCIsICJzIjogIuu0ie2ZlOq1sCIsICJkIjogIuqyveu2gSIsICJ1IjogIi/rtoDrj5nsgrAt6rK967aBLeu0ie2ZlOq1sC8ifSwgeyJuIjogIuqyveyDgeu2geuPhCDsg4Hso7zsi5wiLCAicyI6ICLsg4Hso7zsi5wiLCAiZCI6ICLqsr3rtoEiLCAidSI6ICIv67aA64+Z7IKwLeqyveu2gS3sg4Hso7zsi5wvIn0sIHsibiI6ICLqsr3sg4HrtoHrj4Qg7ISx7KO86rWwIiwgInMiOiAi7ISx7KO86rWwIiwgImQiOiAi6rK967aBIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rtoEt7ISx7KO86rWwLyJ9LCB7Im4iOiAi6rK97IOB67aB64+EIOyViOuPmeyLnCIsICJzIjogIuyViOuPmeyLnCIsICJkIjogIuqyveu2gSIsICJ1IjogIi/rtoDrj5nsgrAt6rK967aBLeyViOuPmeyLnC8ifSwgeyJuIjogIuqyveyDgeu2geuPhCDsmIHrjZXqtbAiLCAicyI6ICLsmIHrjZXqtbAiLCAiZCI6ICLqsr3rtoEiLCAidSI6ICIv67aA64+Z7IKwLeqyveu2gS3smIHrjZXqtbAvIn0sIHsibiI6ICLqsr3sg4HrtoHrj4Qg7JiB7JaR6rWwIiwgInMiOiAi7JiB7JaR6rWwIiwgImQiOiAi6rK967aBIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rtoEt7JiB7JaR6rWwLyJ9LCB7Im4iOiAi6rK97IOB67aB64+EIOyYgeyjvOyLnCIsICJzIjogIuyYgeyjvOyLnCIsICJkIjogIuqyveu2gSIsICJ1IjogIi/rtoDrj5nsgrAt6rK967aBLeyYgeyjvOyLnC8ifSwgeyJuIjogIuqyveyDgeu2geuPhCDsmIHsspzsi5wiLCAicyI6ICLsmIHsspzsi5wiLCAiZCI6ICLqsr3rtoEiLCAidSI6ICIv67aA64+Z7IKwLeqyveu2gS3smIHsspzsi5wvIn0sIHsibiI6ICLqsr3sg4HrtoHrj4Qg7JiI7LKc6rWwIiwgInMiOiAi7JiI7LKc6rWwIiwgImQiOiAi6rK967aBIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rtoEt7JiI7LKc6rWwLyJ9LCB7Im4iOiAi6rK97IOB67aB64+EIOyauOumieq1sCIsICJzIjogIuyauOumieq1sCIsICJkIjogIuqyveu2gSIsICJ1IjogIi/rtoDrj5nsgrAt6rK967aBLeyauOumieq1sC8ifSwgeyJuIjogIuqyveyDgeu2geuPhCDsmrjsp4TqtbAiLCAicyI6ICLsmrjsp4TqtbAiLCAiZCI6ICLqsr3rtoEiLCAidSI6ICIv67aA64+Z7IKwLeqyveu2gS3smrjsp4TqtbAvIn0sIHsibiI6ICLqsr3sg4HrtoHrj4Qg7J2Y7ISx6rWwIiwgInMiOiAi7J2Y7ISx6rWwIiwgImQiOiAi6rK967aBIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rtoEt7J2Y7ISx6rWwLyJ9LCB7Im4iOiAi6rK97IOB67aB64+EIOyyreuPhOq1sCIsICJzIjogIuyyreuPhOq1sCIsICJkIjogIuqyveu2gSIsICJ1IjogIi/rtoDrj5nsgrAt6rK967aBLeyyreuPhOq1sC8ifSwgeyJuIjogIuqyveyDgeu2geuPhCDssq3shqHqtbAiLCAicyI6ICLssq3shqHqtbAiLCAiZCI6ICLqsr3rtoEiLCAidSI6ICIv67aA64+Z7IKwLeqyveu2gS3ssq3shqHqtbAvIn0sIHsibiI6ICLqsr3sg4HrtoHrj4Qg7Lmg6rOh6rWwIiwgInMiOiAi7Lmg6rOh6rWwIiwgImQiOiAi6rK967aBIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rtoEt7Lmg6rOh6rWwLyJ9LCB7Im4iOiAi6rK97IOB67aB64+EIO2PrO2VreyLnCDrgqjqtawiLCAicyI6ICLtj6ztla3si5wg64Ko6rWsIiwgImQiOiAi6rK967aBIiwgInUiOiAiL+u2gOuPmeyCsC3qsr3rtoEt7Y+s7ZWt7IucLeuCqOq1rC8ifSwgeyJuIjogIuqyveyDgeu2geuPhCDtj6ztla3si5wg67aB6rWsIiwgInMiOiAi7Y+s7ZWt7IucIOu2geq1rCIsICJkIjogIuqyveu2gSIsICJ1IjogIi/rtoDrj5nsgrAt6rK967aBLe2PrO2VreyLnC3rtoHqtawvIn0sIHsibiI6ICLrjIDqtazqtJHsl63si5wg6rWw7JyE6rWwIiwgInMiOiAi6rWw7JyE6rWwIiwgImQiOiAi64yA6rWsIiwgInUiOiAiL+u2gOuPmeyCsC3rjIDqtawt6rWw7JyE6rWwLyJ9LCB7Im4iOiAi64yA6rWs6rSR7Jet7IucIOuCqOq1rCIsICJzIjogIuuCqOq1rCIsICJkIjogIuuMgOq1rCIsICJ1IjogIi/rtoDrj5nsgrAt64yA6rWsLeuCqOq1rC8ifSwgeyJuIjogIuuMgOq1rOq0keyXreyLnCDri6zshJzqtawiLCAicyI6ICLri6zshJzqtawiLCAiZCI6ICLrjIDqtawiLCAidSI6ICIv67aA64+Z7IKwLeuMgOq1rC3ri6zshJzqtawvIn0sIHsibiI6ICLrjIDqtazqtJHsl63si5wg64us7ISx6rWwIiwgInMiOiAi64us7ISx6rWwIiwgImQiOiAi64yA6rWsIiwgInUiOiAiL+u2gOuPmeyCsC3rjIDqtawt64us7ISx6rWwLyJ9LCB7Im4iOiAi64yA6rWs6rSR7Jet7IucIOuPmeq1rCIsICJzIjogIuuPmeq1rCIsICJkIjogIuuMgOq1rCIsICJ1IjogIi/rtoDrj5nsgrAt64yA6rWsLeuPmeq1rC8ifSwgeyJuIjogIuuMgOq1rOq0keyXreyLnCDrtoHqtawiLCAicyI6ICLrtoHqtawiLCAiZCI6ICLrjIDqtawiLCAidSI6ICIv67aA64+Z7IKwLeuMgOq1rC3rtoHqtawvIn0sIHsibiI6ICLrjIDqtazqtJHsl63si5wg7ISc6rWsIiwgInMiOiAi7ISc6rWsIiwgImQiOiAi64yA6rWsIiwgInUiOiAiL+u2gOuPmeyCsC3rjIDqtawt7ISc6rWsLyJ9LCB7Im4iOiAi64yA6rWs6rSR7Jet7IucIOyImOyEseq1rCIsICJzIjogIuyImOyEseq1rCIsICJkIjogIuuMgOq1rCIsICJ1IjogIi/rtoDrj5nsgrAt64yA6rWsLeyImOyEseq1rC8ifSwgeyJuIjogIuuMgOq1rOq0keyXreyLnCDspJHqtawiLCAicyI6ICLspJHqtawiLCAiZCI6ICLrjIDqtawiLCAidSI6ICIv67aA64+Z7IKwLeuMgOq1rC3spJHqtawvIn0sIHsibiI6ICLrjIDsoITqtJHsl63si5wg64yA642V6rWsIiwgInMiOiAi64yA642V6rWsIiwgImQiOiAi64yA7KCEIiwgInUiOiAiL+u2gOuPmeyCsC3rjIDsoIQt64yA642V6rWsLyJ9LCB7Im4iOiAi64yA7KCE6rSR7Jet7IucIOuPmeq1rCIsICJzIjogIuuPmeq1rCIsICJkIjogIuuMgOyghCIsICJ1IjogIi/rtoDrj5nsgrAt64yA7KCELeuPmeq1rC8ifSwgeyJuIjogIuuMgOyghOq0keyXreyLnCDshJzqtawiLCAicyI6ICLshJzqtawiLCAiZCI6ICLrjIDsoIQiLCAidSI6ICIv67aA64+Z7IKwLeuMgOyghC3shJzqtawvIn0sIHsibiI6ICLrjIDsoITqtJHsl63si5wg7Jyg7ISx6rWsIiwgInMiOiAi7Jyg7ISx6rWsIiwgImQiOiAi64yA7KCEIiwgInUiOiAiL+u2gOuPmeyCsC3rjIDsoIQt7Jyg7ISx6rWsLyJ9LCB7Im4iOiAi64yA7KCE6rSR7Jet7IucIOykkeq1rCIsICJzIjogIuykkeq1rCIsICJkIjogIuuMgOyghCIsICJ1IjogIi/rtoDrj5nsgrAt64yA7KCELeykkeq1rC8ifSwgeyJuIjogIuu2gOyCsOq0keyXreyLnCDqsJXshJzqtawiLCAicyI6ICLqsJXshJzqtawiLCAiZCI6ICLrtoDsgrAiLCAidSI6ICIv67aA64+Z7IKwLeu2gOyCsC3qsJXshJzqtawvIn0sIHsibiI6ICLrtoDsgrDqtJHsl63si5wg6riI7KCV6rWsIiwgInMiOiAi6riI7KCV6rWsIiwgImQiOiAi67aA7IKwIiwgInUiOiAiL+u2gOuPmeyCsC3rtoDsgrAt6riI7KCV6rWsLyJ9LCB7Im4iOiAi67aA7IKw6rSR7Jet7IucIOq4sOyepeq1sCIsICJzIjogIuq4sOyepeq1sCIsICJkIjogIuu2gOyCsCIsICJ1IjogIi/rtoDrj5nsgrAt67aA7IKwLeq4sOyepeq1sC8ifSwgeyJuIjogIuu2gOyCsOq0keyXreyLnCDrgqjqtawiLCAicyI6ICLrgqjqtawiLCAiZCI6ICLrtoDsgrAiLCAidSI6ICIv67aA64+Z7IKwLeu2gOyCsC3rgqjqtawvIn0sIHsibiI6ICLrtoDsgrDqtJHsl63si5wg64+Z6rWsIiwgInMiOiAi64+Z6rWsIiwgImQiOiAi67aA7IKwIiwgInUiOiAiL+u2gOuPmeyCsC3rtoDsgrAt64+Z6rWsLyJ9LCB7Im4iOiAi67aA7IKw6rSR7Jet7IucIOuPmeuemOq1rCIsICJzIjogIuuPmeuemOq1rCIsICJkIjogIuu2gOyCsCIsICJ1IjogIi/rtoDrj5nsgrAt67aA7IKwLeuPmeuemOq1rC8ifSwgeyJuIjogIuu2gOyCsOq0keyXreyLnCDrtoDsgrDsp4TqtawiLCAicyI6ICLrtoDsgrDsp4TqtawiLCAiZCI6ICLrtoDsgrAiLCAidSI6ICIv67aA64+Z7IKwLeu2gOyCsC3rtoDsgrDsp4TqtawvIn0sIHsibiI6ICLrtoDsgrDqtJHsl63si5wg67aB6rWsIiwgInMiOiAi67aB6rWsIiwgImQiOiAi67aA7IKwIiwgInUiOiAiL+u2gOuPmeyCsC3rtoDsgrAt67aB6rWsLyJ9LCB7Im4iOiAi67aA7IKw6rSR7Jet7IucIOyCrOyDgeq1rCIsICJzIjogIuyCrOyDgeq1rCIsICJkIjogIuu2gOyCsCIsICJ1IjogIi/rtoDrj5nsgrAt67aA7IKwLeyCrOyDgeq1rC8ifSwgeyJuIjogIuu2gOyCsOq0keyXreyLnCDsgqztlZjqtawiLCAicyI6ICLsgqztlZjqtawiLCAiZCI6ICLrtoDsgrAiLCAidSI6ICIv67aA64+Z7IKwLeu2gOyCsC3sgqztlZjqtawvIn0sIHsibiI6ICLrtoDsgrDqtJHsl63si5wg7ISc6rWsIiwgInMiOiAi7ISc6rWsIiwgImQiOiAi67aA7IKwIiwgInUiOiAiL+u2gOuPmeyCsC3rtoDsgrAt7ISc6rWsLyJ9LCB7Im4iOiAi67aA7IKw6rSR7Jet7IucIOyImOyYgeq1rCIsICJzIjogIuyImOyYgeq1rCIsICJkIjogIuu2gOyCsCIsICJ1IjogIi/rtoDrj5nsgrAt67aA7IKwLeyImOyYgeq1rC8ifSwgeyJuIjogIuu2gOyCsOq0keyXreyLnCDsl7DsoJzqtawiLCAicyI6ICLsl7DsoJzqtawiLCAiZCI6ICLrtoDsgrAiLCAidSI6ICIv67aA64+Z7IKwLeu2gOyCsC3sl7DsoJzqtawvIn0sIHsibiI6ICLrtoDsgrDqtJHsl63si5wg7JiB64+E6rWsIiwgInMiOiAi7JiB64+E6rWsIiwgImQiOiAi67aA7IKwIiwgInUiOiAiL+u2gOuPmeyCsC3rtoDsgrAt7JiB64+E6rWsLyJ9LCB7Im4iOiAi67aA7IKw6rSR7Jet7IucIOykkeq1rCIsICJzIjogIuykkeq1rCIsICJkIjogIuu2gOyCsCIsICJ1IjogIi/rtoDrj5nsgrAt67aA7IKwLeykkeq1rC8ifSwgeyJuIjogIuu2gOyCsOq0keyXreyLnCDtlbTsmrTrjIDqtawiLCAicyI6ICLtlbTsmrTrjIDqtawiLCAiZCI6ICLrtoDsgrAiLCAidSI6ICIv67aA64+Z7IKwLeu2gOyCsC3tlbTsmrTrjIDqtawvIn0sIHsibiI6ICLshJzsmrjtirnrs4Tsi5wg6rCV64Ko6rWsIiwgInMiOiAi6rCV64Ko6rWsIiwgImQiOiAi7ISc7Jq4IiwgInUiOiAiL+u2gOuPmeyCsC3shJzsmrgt6rCV64Ko6rWsLyJ9LCB7Im4iOiAi7ISc7Jq47Yq567OE7IucIOqwleuPmeq1rCIsICJzIjogIuqwleuPmeq1rCIsICJkIjogIuyEnOyauCIsICJ1IjogIi/rtoDrj5nsgrAt7ISc7Jq4LeqwleuPmeq1rC8ifSwgeyJuIjogIuyEnOyauO2KueuzhOyLnCDqsJXrtoHqtawiLCAicyI6ICLqsJXrtoHqtawiLCAiZCI6ICLshJzsmrgiLCAidSI6ICIv67aA64+Z7IKwLeyEnOyauC3qsJXrtoHqtawvIn0sIHsibiI6ICLshJzsmrjtirnrs4Tsi5wg6rCV7ISc6rWsIiwgInMiOiAi6rCV7ISc6rWsIiwgImQiOiAi7ISc7Jq4IiwgInUiOiAiL+u2gOuPmeyCsC3shJzsmrgt6rCV7ISc6rWsLyJ9LCB7Im4iOiAi7ISc7Jq47Yq567OE7IucIOq0gOyVheq1rCIsICJzIjogIuq0gOyVheq1rCIsICJkIjogIuyEnOyauCIsICJ1IjogIi/rtoDrj5nsgrAt7ISc7Jq4Leq0gOyVheq1rC8ifSwgeyJuIjogIuyEnOyauO2KueuzhOyLnCDqtJHsp4TqtawiLCAicyI6ICLqtJHsp4TqtawiLCAiZCI6ICLshJzsmrgiLCAidSI6ICIv67aA64+Z7IKwLeyEnOyauC3qtJHsp4TqtawvIn0sIHsibiI6ICLshJzsmrjtirnrs4Tsi5wg6rWs66Gc6rWsIiwgInMiOiAi6rWs66Gc6rWsIiwgImQiOiAi7ISc7Jq4IiwgInUiOiAiL+u2gOuPmeyCsC3shJzsmrgt6rWs66Gc6rWsLyJ9LCB7Im4iOiAi7ISc7Jq47Yq567OE7IucIOq4iOyynOq1rCIsICJzIjogIuq4iOyynOq1rCIsICJkIjogIuyEnOyauCIsICJ1IjogIi/rtoDrj5nsgrAt7ISc7Jq4Leq4iOyynOq1rC8ifSwgeyJuIjogIuyEnOyauO2KueuzhOyLnCDrhbjsm5DqtawiLCAicyI6ICLrhbjsm5DqtawiLCAiZCI6ICLshJzsmrgiLCAidSI6ICIv67aA64+Z7IKwLeyEnOyauC3rhbjsm5DqtawvIn0sIHsibiI6ICLshJzsmrjtirnrs4Tsi5wg64+E67SJ6rWsIiwgInMiOiAi64+E67SJ6rWsIiwgImQiOiAi7ISc7Jq4IiwgInUiOiAiL+u2gOuPmeyCsC3shJzsmrgt64+E67SJ6rWsLyJ9LCB7Im4iOiAi7ISc7Jq47Yq567OE7IucIOuPmeuMgOusuOq1rCIsICJzIjogIuuPmeuMgOusuOq1rCIsICJkIjogIuyEnOyauCIsICJ1IjogIi/rtoDrj5nsgrAt7ISc7Jq4LeuPmeuMgOusuOq1rC8ifSwgeyJuIjogIuyEnOyauO2KueuzhOyLnCDrj5nsnpHqtawiLCAicyI6ICLrj5nsnpHqtawiLCAiZCI6ICLshJzsmrgiLCAidSI6ICIv67aA64+Z7IKwLeyEnOyauC3rj5nsnpHqtawvIn0sIHsibiI6ICLshJzsmrjtirnrs4Tsi5wg66eI7Y+s6rWsIiwgInMiOiAi66eI7Y+s6rWsIiwgImQiOiAi7ISc7Jq4IiwgInUiOiAiL+u2gOuPmeyCsC3shJzsmrgt66eI7Y+s6rWsLyJ9LCB7Im4iOiAi7ISc7Jq47Yq567OE7IucIOyEnOuMgOusuOq1rCIsICJzIjogIuyEnOuMgOusuOq1rCIsICJkIjogIuyEnOyauCIsICJ1IjogIi/rtoDrj5nsgrAt7ISc7Jq4LeyEnOuMgOusuOq1rC8ifSwgeyJuIjogIuyEnOyauO2KueuzhOyLnCDshJzstIjqtawiLCAicyI6ICLshJzstIjqtawiLCAiZCI6ICLshJzsmrgiLCAidSI6ICIv67aA64+Z7IKwLeyEnOyauC3shJzstIjqtawvIn0sIHsibiI6ICLshJzsmrjtirnrs4Tsi5wg7ISx64+Z6rWsIiwgInMiOiAi7ISx64+Z6rWsIiwgImQiOiAi7ISc7Jq4IiwgInUiOiAiL+u2gOuPmeyCsC3shJzsmrgt7ISx64+Z6rWsLyJ9LCB7Im4iOiAi7ISc7Jq47Yq567OE7IucIOyEseu2geq1rCIsICJzIjogIuyEseu2geq1rCIsICJkIjogIuyEnOyauCIsICJ1IjogIi/rtoDrj5nsgrAt7ISc7Jq4LeyEseu2geq1rC8ifSwgeyJuIjogIuyEnOyauO2KueuzhOyLnCDshqHtjIzqtawiLCAicyI6ICLshqHtjIzqtawiLCAiZCI6ICLshJzsmrgiLCAidSI6ICIv67aA64+Z7IKwLeyEnOyauC3shqHtjIzqtawvIn0sIHsibiI6ICLshJzsmrjtirnrs4Tsi5wg7JaR7LKc6rWsIiwgInMiOiAi7JaR7LKc6rWsIiwgImQiOiAi7ISc7Jq4IiwgInUiOiAiL+u2gOuPmeyCsC3shJzsmrgt7JaR7LKc6rWsLyJ9LCB7Im4iOiAi7ISc7Jq47Yq567OE7IucIOyYgeuTse2PrOq1rCIsICJzIjogIuyYgeuTse2PrOq1rCIsICJkIjogIuyEnOyauCIsICJ1IjogIi/rtoDrj5nsgrAt7ISc7Jq4LeyYgeuTse2PrOq1rC8ifSwgeyJuIjogIuyEnOyauO2KueuzhOyLnCDsmqnsgrDqtawiLCAicyI6ICLsmqnsgrDqtawiLCAiZCI6ICLshJzsmrgiLCAidSI6ICIv67aA64+Z7IKwLeyEnOyauC3smqnsgrDqtawvIn0sIHsibiI6ICLshJzsmrjtirnrs4Tsi5wg7J2A7Y+J6rWsIiwgInMiOiAi7J2A7Y+J6rWsIiwgImQiOiAi7ISc7Jq4IiwgInUiOiAiL+u2gOuPmeyCsC3shJzsmrgt7J2A7Y+J6rWsLyJ9LCB7Im4iOiAi7ISc7Jq47Yq567OE7IucIOyiheuhnOq1rCIsICJzIjogIuyiheuhnOq1rCIsICJkIjogIuyEnOyauCIsICJ1IjogIi/rtoDrj5nsgrAt7ISc7Jq4LeyiheuhnOq1rC8ifSwgeyJuIjogIuyEnOyauO2KueuzhOyLnCDspJHqtawiLCAicyI6ICLspJHqtawiLCAiZCI6ICLshJzsmrgiLCAidSI6ICIv67aA64+Z7IKwLeyEnOyauC3spJHqtawvIn0sIHsibiI6ICLshJzsmrjtirnrs4Tsi5wg7KSR656R6rWsIiwgInMiOiAi7KSR656R6rWsIiwgImQiOiAi7ISc7Jq4IiwgInUiOiAiL+u2gOuPmeyCsC3shJzsmrgt7KSR656R6rWsLyJ9LCB7Im4iOiAi7IS47KKF7Yq567OE7J6Q7LmY7IucIiwgInMiOiAi7IS47KKF7Yq567OE7J6Q7LmY7IucIiwgImQiOiAi7IS47KKFIiwgInUiOiAiL+u2gOuPmeyCsC3shLjsooUt7IS47KKF7Yq567OE7J6Q7LmY7IucLyJ9LCB7Im4iOiAi7Jq47IKw6rSR7Jet7IucIOuCqOq1rCIsICJzIjogIuuCqOq1rCIsICJkIjogIuyauOyCsCIsICJ1IjogIi/rtoDrj5nsgrAt7Jq47IKwLeuCqOq1rC8ifSwgeyJuIjogIuyauOyCsOq0keyXreyLnCDrj5nqtawiLCAicyI6ICLrj5nqtawiLCAiZCI6ICLsmrjsgrAiLCAidSI6ICIv67aA64+Z7IKwLeyauOyCsC3rj5nqtawvIn0sIHsibiI6ICLsmrjsgrDqtJHsl63si5wg67aB6rWsIiwgInMiOiAi67aB6rWsIiwgImQiOiAi7Jq47IKwIiwgInUiOiAiL+u2gOuPmeyCsC3smrjsgrAt67aB6rWsLyJ9LCB7Im4iOiAi7Jq47IKw6rSR7Jet7IucIOyauOyjvOq1sCIsICJzIjogIuyauOyjvOq1sCIsICJkIjogIuyauOyCsCIsICJ1IjogIi/rtoDrj5nsgrAt7Jq47IKwLeyauOyjvOq1sC8ifSwgeyJuIjogIuyauOyCsOq0keyXreyLnCDspJHqtawiLCAicyI6ICLspJHqtawiLCAiZCI6ICLsmrjsgrAiLCAidSI6ICIv67aA64+Z7IKwLeyauOyCsC3spJHqtawvIn0sIHsibiI6ICLsnbjsspzqtJHsl63si5wg6rCV7ZmU6rWwIiwgInMiOiAi6rCV7ZmU6rWwIiwgImQiOiAi7J247LKcIiwgInUiOiAiL+u2gOuPmeyCsC3snbjsspwt6rCV7ZmU6rWwLyJ9LCB7Im4iOiAi7J247LKc6rSR7Jet7IucIOqygOuLqOq1rCIsICJzIjogIuqygOuLqOq1rCIsICJkIjogIuyduOyynCIsICJ1IjogIi/rtoDrj5nsgrAt7J247LKcLeqygOuLqOq1rC8ifSwgeyJuIjogIuyduOyynOq0keyXreyLnCDqs4TslpHqtawiLCAicyI6ICLqs4TslpHqtawiLCAiZCI6ICLsnbjsspwiLCAidSI6ICIv67aA64+Z7IKwLeyduOyynC3qs4TslpHqtawvIn0sIHsibiI6ICLsnbjsspzqtJHsl63si5wg64Ko64+Z6rWsIiwgInMiOiAi64Ko64+Z6rWsIiwgImQiOiAi7J247LKcIiwgInUiOiAiL+u2gOuPmeyCsC3snbjsspwt64Ko64+Z6rWsLyJ9LCB7Im4iOiAi7J247LKc6rSR7Jet7IucIOuvuOy2lO2ZgOq1rCIsICJzIjogIuuvuOy2lO2ZgOq1rCIsICJkIjogIuyduOyynCIsICJ1IjogIi/rtoDrj5nsgrAt7J247LKcLeuvuOy2lO2ZgOq1rC8ifSwgeyJuIjogIuyduOyynOq0keyXreyLnCDrtoDtj4nqtawiLCAicyI6ICLrtoDtj4nqtawiLCAiZCI6ICLsnbjsspwiLCAidSI6ICIv67aA64+Z7IKwLeyduOyynC3rtoDtj4nqtawvIn0sIHsibiI6ICLsnbjsspzqtJHsl63si5wg7ISc7ZW06rWsIiwgInMiOiAi7ISc7ZW06rWsIiwgImQiOiAi7J247LKcIiwgInUiOiAiL+u2gOuPmeyCsC3snbjsspwt7ISc7ZW06rWsLyJ9LCB7Im4iOiAi7J247LKc6rSR7Jet7IucIOyXsOyImOq1rCIsICJzIjogIuyXsOyImOq1rCIsICJkIjogIuyduOyynCIsICJ1IjogIi/rtoDrj5nsgrAt7J247LKcLeyXsOyImOq1rC8ifSwgeyJuIjogIuyduOyynOq0keyXreyLnCDsmIHsooXqtawiLCAicyI6ICLsmIHsooXqtawiLCAiZCI6ICLsnbjsspwiLCAidSI6ICIv67aA64+Z7IKwLeyduOyynC3smIHsooXqtawvIn0sIHsibiI6ICLsnbjsspzqtJHsl63si5wg7KCc66y87Y+s6rWsIiwgInMiOiAi7KCc66y87Y+s6rWsIiwgImQiOiAi7J247LKcIiwgInUiOiAiL+u2gOuPmeyCsC3snbjsspwt7KCc66y87Y+s6rWsLyJ9LCB7Im4iOiAi7KCE64Ko6rSR7KO87Ya17ZWp7Yq567OE7IucIOqwleynhOq1sCIsICJzIjogIuqwleynhOq1sCIsICJkIjogIuyghOuCqOq0keyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCE64Ko6rSR7KO8LeqwleynhOq1sC8ifSwgeyJuIjogIuyghOuCqOq0keyjvO2Gte2Vqe2KueuzhOyLnCDqs6DtnaXqtbAiLCAicyI6ICLqs6DtnaXqtbAiLCAiZCI6ICLsoITrgqjqtJHso7wiLCAidSI6ICIv67aA64+Z7IKwLeyghOuCqOq0keyjvC3qs6DtnaXqtbAvIn0sIHsibiI6ICLsoITrgqjqtJHso7zthrXtlantirnrs4Tsi5wg6rOh7ISx6rWwIiwgInMiOiAi6rOh7ISx6rWwIiwgImQiOiAi7KCE64Ko6rSR7KO8IiwgInUiOiAiL+u2gOuPmeyCsC3soITrgqjqtJHso7wt6rOh7ISx6rWwLyJ9LCB7Im4iOiAi7KCE64Ko6rSR7KO87Ya17ZWp7Yq567OE7IucIOq0keyCsOq1rCIsICJzIjogIuq0keyCsOq1rCIsICJkIjogIuyghOuCqOq0keyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCE64Ko6rSR7KO8Leq0keyCsOq1rC8ifSwgeyJuIjogIuyghOuCqOq0keyjvO2Gte2Vqe2KueuzhOyLnCDqtJHslpHsi5wiLCAicyI6ICLqtJHslpHsi5wiLCAiZCI6ICLsoITrgqjqtJHso7wiLCAidSI6ICIv67aA64+Z7IKwLeyghOuCqOq0keyjvC3qtJHslpHsi5wvIn0sIHsibiI6ICLsoITrgqjqtJHso7zthrXtlantirnrs4Tsi5wg6rWs66GA6rWwIiwgInMiOiAi6rWs66GA6rWwIiwgImQiOiAi7KCE64Ko6rSR7KO8IiwgInUiOiAiL+u2gOuPmeyCsC3soITrgqjqtJHso7wt6rWs66GA6rWwLyJ9LCB7Im4iOiAi7KCE64Ko6rSR7KO87Ya17ZWp7Yq567OE7IucIOuCmOyjvOyLnCIsICJzIjogIuuCmOyjvOyLnCIsICJkIjogIuyghOuCqOq0keyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCE64Ko6rSR7KO8LeuCmOyjvOyLnC8ifSwgeyJuIjogIuyghOuCqOq0keyjvO2Gte2Vqe2KueuzhOyLnCDrgqjqtawiLCAicyI6ICLrgqjqtawiLCAiZCI6ICLsoITrgqjqtJHso7wiLCAidSI6ICIv67aA64+Z7IKwLeyghOuCqOq0keyjvC3rgqjqtawvIn0sIHsibiI6ICLsoITrgqjqtJHso7zthrXtlantirnrs4Tsi5wg64u07JaR6rWwIiwgInMiOiAi64u07JaR6rWwIiwgImQiOiAi7KCE64Ko6rSR7KO8IiwgInUiOiAiL+u2gOuPmeyCsC3soITrgqjqtJHso7wt64u07JaR6rWwLyJ9LCB7Im4iOiAi7KCE64Ko6rSR7KO87Ya17ZWp7Yq567OE7IucIOuPmeq1rCIsICJzIjogIuuPmeq1rCIsICJkIjogIuyghOuCqOq0keyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCE64Ko6rSR7KO8LeuPmeq1rC8ifSwgeyJuIjogIuyghOuCqOq0keyjvO2Gte2Vqe2KueuzhOyLnCDrqqntj6zsi5wiLCAicyI6ICLrqqntj6zsi5wiLCAiZCI6ICLsoITrgqjqtJHso7wiLCAidSI6ICIv67aA64+Z7IKwLeyghOuCqOq0keyjvC3rqqntj6zsi5wvIn0sIHsibiI6ICLsoITrgqjqtJHso7zthrXtlantirnrs4Tsi5wg66y07JWI6rWwIiwgInMiOiAi66y07JWI6rWwIiwgImQiOiAi7KCE64Ko6rSR7KO8IiwgInUiOiAiL+u2gOuPmeyCsC3soITrgqjqtJHso7wt66y07JWI6rWwLyJ9LCB7Im4iOiAi7KCE64Ko6rSR7KO87Ya17ZWp7Yq567OE7IucIOuztOyEseq1sCIsICJzIjogIuuztOyEseq1sCIsICJkIjogIuyghOuCqOq0keyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCE64Ko6rSR7KO8LeuztOyEseq1sC8ifSwgeyJuIjogIuyghOuCqOq0keyjvO2Gte2Vqe2KueuzhOyLnCDrtoHqtawiLCAicyI6ICLrtoHqtawiLCAiZCI6ICLsoITrgqjqtJHso7wiLCAidSI6ICIv67aA64+Z7IKwLeyghOuCqOq0keyjvC3rtoHqtawvIn0sIHsibiI6ICLsoITrgqjqtJHso7zthrXtlantirnrs4Tsi5wg7ISc6rWsIiwgInMiOiAi7ISc6rWsIiwgImQiOiAi7KCE64Ko6rSR7KO8IiwgInUiOiAiL+u2gOuPmeyCsC3soITrgqjqtJHso7wt7ISc6rWsLyJ9LCB7Im4iOiAi7KCE64Ko6rSR7KO87Ya17ZWp7Yq567OE7IucIOyInOyynOyLnCIsICJzIjogIuyInOyynOyLnCIsICJkIjogIuyghOuCqOq0keyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCE64Ko6rSR7KO8LeyInOyynOyLnC8ifSwgeyJuIjogIuyghOuCqOq0keyjvO2Gte2Vqe2KueuzhOyLnCDsi6DslYjqtbAiLCAicyI6ICLsi6DslYjqtbAiLCAiZCI6ICLsoITrgqjqtJHso7wiLCAidSI6ICIv67aA64+Z7IKwLeyghOuCqOq0keyjvC3si6DslYjqtbAvIn0sIHsibiI6ICLsoITrgqjqtJHso7zthrXtlantirnrs4Tsi5wg7Jes7IiY7IucIiwgInMiOiAi7Jes7IiY7IucIiwgImQiOiAi7KCE64Ko6rSR7KO8IiwgInUiOiAiL+u2gOuPmeyCsC3soITrgqjqtJHso7wt7Jes7IiY7IucLyJ9LCB7Im4iOiAi7KCE64Ko6rSR7KO87Ya17ZWp7Yq567OE7IucIOyYgeq0keq1sCIsICJzIjogIuyYgeq0keq1sCIsICJkIjogIuyghOuCqOq0keyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCE64Ko6rSR7KO8LeyYgeq0keq1sC8ifSwgeyJuIjogIuyghOuCqOq0keyjvO2Gte2Vqe2KueuzhOyLnCDsmIHslZTqtbAiLCAicyI6ICLsmIHslZTqtbAiLCAiZCI6ICLsoITrgqjqtJHso7wiLCAidSI6ICIv67aA64+Z7IKwLeyghOuCqOq0keyjvC3smIHslZTqtbAvIn0sIHsibiI6ICLsoITrgqjqtJHso7zthrXtlantirnrs4Tsi5wg7JmE64+E6rWwIiwgInMiOiAi7JmE64+E6rWwIiwgImQiOiAi7KCE64Ko6rSR7KO8IiwgInUiOiAiL+u2gOuPmeyCsC3soITrgqjqtJHso7wt7JmE64+E6rWwLyJ9LCB7Im4iOiAi7KCE64Ko6rSR7KO87Ya17ZWp7Yq567OE7IucIOyepeyEseq1sCIsICJzIjogIuyepeyEseq1sCIsICJkIjogIuyghOuCqOq0keyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCE64Ko6rSR7KO8LeyepeyEseq1sC8ifSwgeyJuIjogIuyghOuCqOq0keyjvO2Gte2Vqe2KueuzhOyLnCDsnqXtnaXqtbAiLCAicyI6ICLsnqXtnaXqtbAiLCAiZCI6ICLsoITrgqjqtJHso7wiLCAidSI6ICIv67aA64+Z7IKwLeyghOuCqOq0keyjvC3snqXtnaXqtbAvIn0sIHsibiI6ICLsoITrgqjqtJHso7zthrXtlantirnrs4Tsi5wg7KeE64+E6rWwIiwgInMiOiAi7KeE64+E6rWwIiwgImQiOiAi7KCE64Ko6rSR7KO8IiwgInUiOiAiL+u2gOuPmeyCsC3soITrgqjqtJHso7wt7KeE64+E6rWwLyJ9LCB7Im4iOiAi7KCE64Ko6rSR7KO87Ya17ZWp7Yq567OE7IucIO2VqO2Pieq1sCIsICJzIjogIu2VqO2Pieq1sCIsICJkIjogIuyghOuCqOq0keyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCE64Ko6rSR7KO8Le2VqO2Pieq1sC8ifSwgeyJuIjogIuyghOuCqOq0keyjvO2Gte2Vqe2KueuzhOyLnCDtlbTrgqjqtbAiLCAicyI6ICLtlbTrgqjqtbAiLCAiZCI6ICLsoITrgqjqtJHso7wiLCAidSI6ICIv67aA64+Z7IKwLeyghOuCqOq0keyjvC3tlbTrgqjqtbAvIn0sIHsibiI6ICLsoITrgqjqtJHso7zthrXtlantirnrs4Tsi5wg7ZmU7Iic6rWwIiwgInMiOiAi7ZmU7Iic6rWwIiwgImQiOiAi7KCE64Ko6rSR7KO8IiwgInUiOiAiL+u2gOuPmeyCsC3soITrgqjqtJHso7wt7ZmU7Iic6rWwLyJ9LCB7Im4iOiAi7KCE67aB7Yq567OE7J6Q7LmY64+EIOqzoOywveq1sCIsICJzIjogIuqzoOywveq1sCIsICJkIjogIuyghOu2gSIsICJ1IjogIi/rtoDrj5nsgrAt7KCE67aBLeqzoOywveq1sC8ifSwgeyJuIjogIuyghOu2ge2KueuzhOyekOy5mOuPhCDqtbDsgrDsi5wiLCAicyI6ICLqtbDsgrDsi5wiLCAiZCI6ICLsoITrtoEiLCAidSI6ICIv67aA64+Z7IKwLeyghOu2gS3qtbDsgrDsi5wvIn0sIHsibiI6ICLsoITrtoHtirnrs4TsnpDsuZjrj4Qg6rmA7KCc7IucIiwgInMiOiAi6rmA7KCc7IucIiwgImQiOiAi7KCE67aBIiwgInUiOiAiL+u2gOuPmeyCsC3soITrtoEt6rmA7KCc7IucLyJ9LCB7Im4iOiAi7KCE67aB7Yq567OE7J6Q7LmY64+EIOuCqOybkOyLnCIsICJzIjogIuuCqOybkOyLnCIsICJkIjogIuyghOu2gSIsICJ1IjogIi/rtoDrj5nsgrAt7KCE67aBLeuCqOybkOyLnC8ifSwgeyJuIjogIuyghOu2ge2KueuzhOyekOy5mOuPhCDrrLTso7zqtbAiLCAicyI6ICLrrLTso7zqtbAiLCAiZCI6ICLsoITrtoEiLCAidSI6ICIv67aA64+Z7IKwLeyghOu2gS3rrLTso7zqtbAvIn0sIHsibiI6ICLsoITrtoHtirnrs4TsnpDsuZjrj4Qg67aA7JWI6rWwIiwgInMiOiAi67aA7JWI6rWwIiwgImQiOiAi7KCE67aBIiwgInUiOiAiL+u2gOuPmeyCsC3soITrtoEt67aA7JWI6rWwLyJ9LCB7Im4iOiAi7KCE67aB7Yq567OE7J6Q7LmY64+EIOyInOywveq1sCIsICJzIjogIuyInOywveq1sCIsICJkIjogIuyghOu2gSIsICJ1IjogIi/rtoDrj5nsgrAt7KCE67aBLeyInOywveq1sC8ifSwgeyJuIjogIuyghOu2ge2KueuzhOyekOy5mOuPhCDsmYTso7zqtbAiLCAicyI6ICLsmYTso7zqtbAiLCAiZCI6ICLsoITrtoEiLCAidSI6ICIv67aA64+Z7IKwLeyghOu2gS3smYTso7zqtbAvIn0sIHsibiI6ICLsoITrtoHtirnrs4TsnpDsuZjrj4Qg7J217IKw7IucIiwgInMiOiAi7J217IKw7IucIiwgImQiOiAi7KCE67aBIiwgInUiOiAiL+u2gOuPmeyCsC3soITrtoEt7J217IKw7IucLyJ9LCB7Im4iOiAi7KCE67aB7Yq567OE7J6Q7LmY64+EIOyehOyLpOq1sCIsICJzIjogIuyehOyLpOq1sCIsICJkIjogIuyghOu2gSIsICJ1IjogIi/rtoDrj5nsgrAt7KCE67aBLeyehOyLpOq1sC8ifSwgeyJuIjogIuyghOu2ge2KueuzhOyekOy5mOuPhCDsnqXsiJjqtbAiLCAicyI6ICLsnqXsiJjqtbAiLCAiZCI6ICLsoITrtoEiLCAidSI6ICIv67aA64+Z7IKwLeyghOu2gS3snqXsiJjqtbAvIn0sIHsibiI6ICLsoITrtoHtirnrs4TsnpDsuZjrj4Qg7KCE7KO87IucIOuNleynhOq1rCIsICJzIjogIuyghOyjvOyLnCDrjZXsp4TqtawiLCAiZCI6ICLsoITrtoEiLCAidSI6ICIv67aA64+Z7IKwLeyghOu2gS3soITso7zsi5wt642V7KeE6rWsLyJ9LCB7Im4iOiAi7KCE67aB7Yq567OE7J6Q7LmY64+EIOyghOyjvOyLnCDsmYTsgrDqtawiLCAicyI6ICLsoITso7zsi5wg7JmE7IKw6rWsIiwgImQiOiAi7KCE67aBIiwgInUiOiAiL+u2gOuPmeyCsC3soITrtoEt7KCE7KO87IucLeyZhOyCsOq1rC8ifSwgeyJuIjogIuyghOu2ge2KueuzhOyekOy5mOuPhCDsoJXsnY3si5wiLCAicyI6ICLsoJXsnY3si5wiLCAiZCI6ICLsoITrtoEiLCAidSI6ICIv67aA64+Z7IKwLeyghOu2gS3soJXsnY3si5wvIn0sIHsibiI6ICLsoITrtoHtirnrs4TsnpDsuZjrj4Qg7KeE7JWI6rWwIiwgInMiOiAi7KeE7JWI6rWwIiwgImQiOiAi7KCE67aBIiwgInUiOiAiL+u2gOuPmeyCsC3soITrtoEt7KeE7JWI6rWwLyJ9LCB7Im4iOiAi7KCc7KO87Yq567OE7J6Q7LmY64+EIOyEnOq3gO2PrOyLnCIsICJzIjogIuyEnOq3gO2PrOyLnCIsICJkIjogIuygnOyjvCIsICJ1IjogIi/rtoDrj5nsgrAt7KCc7KO8LeyEnOq3gO2PrOyLnC8ifSwgeyJuIjogIuygnOyjvO2KueuzhOyekOy5mOuPhCDsoJzso7zsi5wiLCAicyI6ICLsoJzso7zsi5wiLCAiZCI6ICLsoJzso7wiLCAidSI6ICIv67aA64+Z7IKwLeygnOyjvC3soJzso7zsi5wvIn0sIHsibiI6ICLstqnssq3rgqjrj4Qg6rOE66Oh7IucIiwgInMiOiAi6rOE66Oh7IucIiwgImQiOiAi7Lap64KoIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrgqgt6rOE66Oh7IucLyJ9LCB7Im4iOiAi7Lap7LKt64Ko64+EIOqzteyjvOyLnCIsICJzIjogIuqzteyjvOyLnCIsICJkIjogIuy2qeuCqCIsICJ1IjogIi/rtoDrj5nsgrAt7Lap64KoLeqzteyjvOyLnC8ifSwgeyJuIjogIuy2qeyyreuCqOuPhCDquIjsgrDqtbAiLCAicyI6ICLquIjsgrDqtbAiLCAiZCI6ICLstqnrgqgiLCAidSI6ICIv67aA64+Z7IKwLey2qeuCqC3quIjsgrDqtbAvIn0sIHsibiI6ICLstqnssq3rgqjrj4Qg64W87IKw7IucIiwgInMiOiAi64W87IKw7IucIiwgImQiOiAi7Lap64KoIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrgqgt64W87IKw7IucLyJ9LCB7Im4iOiAi7Lap7LKt64Ko64+EIOuLueynhOyLnCIsICJzIjogIuuLueynhOyLnCIsICJkIjogIuy2qeuCqCIsICJ1IjogIi/rtoDrj5nsgrAt7Lap64KoLeuLueynhOyLnC8ifSwgeyJuIjogIuy2qeyyreuCqOuPhCDrs7TroLnsi5wiLCAicyI6ICLrs7TroLnsi5wiLCAiZCI6ICLstqnrgqgiLCAidSI6ICIv67aA64+Z7IKwLey2qeuCqC3rs7TroLnsi5wvIn0sIHsibiI6ICLstqnssq3rgqjrj4Qg67aA7Jes6rWwIiwgInMiOiAi67aA7Jes6rWwIiwgImQiOiAi7Lap64KoIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrgqgt67aA7Jes6rWwLyJ9LCB7Im4iOiAi7Lap7LKt64Ko64+EIOyEnOyCsOyLnCIsICJzIjogIuyEnOyCsOyLnCIsICJkIjogIuy2qeuCqCIsICJ1IjogIi/rtoDrj5nsgrAt7Lap64KoLeyEnOyCsOyLnC8ifSwgeyJuIjogIuy2qeyyreuCqOuPhCDshJzsspzqtbAiLCAicyI6ICLshJzsspzqtbAiLCAiZCI6ICLstqnrgqgiLCAidSI6ICIv67aA64+Z7IKwLey2qeuCqC3shJzsspzqtbAvIn0sIHsibiI6ICLstqnssq3rgqjrj4Qg7JWE7IKw7IucIiwgInMiOiAi7JWE7IKw7IucIiwgImQiOiAi7Lap64KoIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrgqgt7JWE7IKw7IucLyJ9LCB7Im4iOiAi7Lap7LKt64Ko64+EIOyYiOyCsOq1sCIsICJzIjogIuyYiOyCsOq1sCIsICJkIjogIuy2qeuCqCIsICJ1IjogIi/rtoDrj5nsgrAt7Lap64KoLeyYiOyCsOq1sC8ifSwgeyJuIjogIuy2qeyyreuCqOuPhCDsspzslYjsi5wg64+Z64Ko6rWsIiwgInMiOiAi7LKc7JWI7IucIOuPmeuCqOq1rCIsICJkIjogIuy2qeuCqCIsICJ1IjogIi/rtoDrj5nsgrAt7Lap64KoLeyynOyViOyLnC3rj5nrgqjqtawvIn0sIHsibiI6ICLstqnssq3rgqjrj4Qg7LKc7JWI7IucIOyEnOu2geq1rCIsICJzIjogIuyynOyViOyLnCDshJzrtoHqtawiLCAiZCI6ICLstqnrgqgiLCAidSI6ICIv67aA64+Z7IKwLey2qeuCqC3sspzslYjsi5wt7ISc67aB6rWsLyJ9LCB7Im4iOiAi7Lap7LKt64Ko64+EIOyyreyWkeq1sCIsICJzIjogIuyyreyWkeq1sCIsICJkIjogIuy2qeuCqCIsICJ1IjogIi/rtoDrj5nsgrAt7Lap64KoLeyyreyWkeq1sC8ifSwgeyJuIjogIuy2qeyyreuCqOuPhCDtg5zslYjqtbAiLCAicyI6ICLtg5zslYjqtbAiLCAiZCI6ICLstqnrgqgiLCAidSI6ICIv67aA64+Z7IKwLey2qeuCqC3tg5zslYjqtbAvIn0sIHsibiI6ICLstqnssq3rgqjrj4Qg7ZmN7ISx6rWwIiwgInMiOiAi7ZmN7ISx6rWwIiwgImQiOiAi7Lap64KoIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrgqgt7ZmN7ISx6rWwLyJ9LCB7Im4iOiAi7Lap7LKt67aB64+EIOq0tOyCsOq1sCIsICJzIjogIuq0tOyCsOq1sCIsICJkIjogIuy2qeu2gSIsICJ1IjogIi/rtoDrj5nsgrAt7Lap67aBLeq0tOyCsOq1sC8ifSwgeyJuIjogIuy2qeyyreu2geuPhCDri6jslpHqtbAiLCAicyI6ICLri6jslpHqtbAiLCAiZCI6ICLstqnrtoEiLCAidSI6ICIv67aA64+Z7IKwLey2qeu2gS3ri6jslpHqtbAvIn0sIHsibiI6ICLstqnssq3rtoHrj4Qg67O07J2A6rWwIiwgInMiOiAi67O07J2A6rWwIiwgImQiOiAi7Lap67aBIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrtoEt67O07J2A6rWwLyJ9LCB7Im4iOiAi7Lap7LKt67aB64+EIOyYgeuPmeq1sCIsICJzIjogIuyYgeuPmeq1sCIsICJkIjogIuy2qeu2gSIsICJ1IjogIi/rtoDrj5nsgrAt7Lap67aBLeyYgeuPmeq1sC8ifSwgeyJuIjogIuy2qeyyreu2geuPhCDsmKXsspzqtbAiLCAicyI6ICLsmKXsspzqtbAiLCAiZCI6ICLstqnrtoEiLCAidSI6ICIv67aA64+Z7IKwLey2qeu2gS3smKXsspzqtbAvIn0sIHsibiI6ICLstqnssq3rtoHrj4Qg7J2M7ISx6rWwIiwgInMiOiAi7J2M7ISx6rWwIiwgImQiOiAi7Lap67aBIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrtoEt7J2M7ISx6rWwLyJ9LCB7Im4iOiAi7Lap7LKt67aB64+EIOygnOyynOyLnCIsICJzIjogIuygnOyynOyLnCIsICJkIjogIuy2qeu2gSIsICJ1IjogIi/rtoDrj5nsgrAt7Lap67aBLeygnOyynOyLnC8ifSwgeyJuIjogIuy2qeyyreu2geuPhCDspp3tj4nqtbAiLCAicyI6ICLspp3tj4nqtbAiLCAiZCI6ICLstqnrtoEiLCAidSI6ICIv67aA64+Z7IKwLey2qeu2gS3spp3tj4nqtbAvIn0sIHsibiI6ICLstqnssq3rtoHrj4Qg7KeE7LKc6rWwIiwgInMiOiAi7KeE7LKc6rWwIiwgImQiOiAi7Lap67aBIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrtoEt7KeE7LKc6rWwLyJ9LCB7Im4iOiAi7Lap7LKt67aB64+EIOyyreyjvOyLnCDsg4Hri7nqtawiLCAicyI6ICLssq3so7zsi5wg7IOB64u56rWsIiwgImQiOiAi7Lap67aBIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrtoEt7LKt7KO87IucLeyDgeuLueq1rC8ifSwgeyJuIjogIuy2qeyyreu2geuPhCDssq3so7zsi5wg7ISc7JuQ6rWsIiwgInMiOiAi7LKt7KO87IucIOyEnOybkOq1rCIsICJkIjogIuy2qeu2gSIsICJ1IjogIi/rtoDrj5nsgrAt7Lap67aBLeyyreyjvOyLnC3shJzsm5DqtawvIn0sIHsibiI6ICLstqnssq3rtoHrj4Qg7LKt7KO87IucIOyyreybkOq1rCIsICJzIjogIuyyreyjvOyLnCDssq3sm5DqtawiLCAiZCI6ICLstqnrtoEiLCAidSI6ICIv67aA64+Z7IKwLey2qeu2gS3ssq3so7zsi5wt7LKt7JuQ6rWsLyJ9LCB7Im4iOiAi7Lap7LKt67aB64+EIOyyreyjvOyLnCDtnaXrjZXqtawiLCAicyI6ICLssq3so7zsi5wg7Z2l642V6rWsIiwgImQiOiAi7Lap67aBIiwgInUiOiAiL+u2gOuPmeyCsC3stqnrtoEt7LKt7KO87IucLe2dpeuNleq1rC8ifSwgeyJuIjogIuy2qeyyreu2geuPhCDstqnso7zsi5wiLCAicyI6ICLstqnso7zsi5wiLCAiZCI6ICLstqnrtoEiLCAidSI6ICIv67aA64+Z7IKwLey2qeu2gS3stqnso7zsi5wvIn1dOwoKZnVuY3Rpb24gaW5pdEZpbmRlcigpewogIHZhciBxPSQoJ3JxJyksIGJveD0kKCdmcmVzJyk7CiAgaWYoIXF8fCFib3h8fCF3aW5kb3cuUklEWCkgcmV0dXJuOwogIHZhciBjdXI9LTEsIHJvd3M9W107CiAgdmFyIGRyYXc9ZnVuY3Rpb24oKXsKICAgIHZhciB2PXEudmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7CiAgICBpZighdil7IGJveC5oaWRkZW49dHJ1ZTsgYm94LmlubmVySFRNTD0nJzsgcmV0dXJuOyB9CiAgICByb3dzPVJJRFguZmlsdGVyKGZ1bmN0aW9uKHIpewogICAgICByZXR1cm4gci5uLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih2KT49MCB8fCByLnMudG9Mb3dlckNhc2UoKS5pbmRleE9mKHYpPj0wOwogICAgfSkuc2xpY2UoMCw4KTsKICAgIGlmKCFyb3dzLmxlbmd0aCl7CiAgICAgIGJveC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9Im5vbmUiPuywvuuKlCDsp4Dsl63snbQg7JeG7Iq164uI64ukPC9kaXY+JzsgYm94LmhpZGRlbj1mYWxzZTsgcmV0dXJuOwogICAgfQogICAgY3VyPS0xOwogICAgYm94LmlubmVySFRNTD1yb3dzLm1hcChmdW5jdGlvbihyLGkpewogICAgICByZXR1cm4gJzxhIGhyZWY9Iicrci51KyciIGRhdGEtaT0iJytpKyciPjxiPicrci5zKyc8L2I+PHNwYW4+JytyLmQrJzwvc3Bhbj48L2E+JzsKICAgIH0pLmpvaW4oJycpOwogICAgYm94LmhpZGRlbj1mYWxzZTsKICB9OwogIHEuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLGRyYXcpOwogIHEuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLGRyYXcpOwogIHEuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsZnVuY3Rpb24oZSl7CiAgICB2YXIgYT1ib3gucXVlcnlTZWxlY3RvckFsbCgnYScpOwogICAgaWYoZS5rZXk9PT0nQXJyb3dEb3duJ3x8ZS5rZXk9PT0nQXJyb3dVcCcpewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGlmKCFhLmxlbmd0aCkgcmV0dXJuOwogICAgICBjdXI9KGN1cisoZS5rZXk9PT0nQXJyb3dEb3duJz8xOi0xKSthLmxlbmd0aCklYS5sZW5ndGg7CiAgICAgIGEuZm9yRWFjaChmdW5jdGlvbih4LGkpe3guY2xhc3NMaXN0LnRvZ2dsZSgnb24nLGk9PT1jdXIpO30pOwogICAgICBhW2N1cl0uc2Nyb2xsSW50b1ZpZXcoe2Jsb2NrOiduZWFyZXN0J30pOwogICAgfSBlbHNlIGlmKGUua2V5PT09J0VudGVyJyl7CiAgICAgIGlmKGN1cj49MCYmYVtjdXJdKXsgZS5wcmV2ZW50RGVmYXVsdCgpOyBsb2NhdGlvbi5ocmVmPWFbY3VyXS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTsgfQogICAgICBlbHNlIGlmKGEubGVuZ3RoKXsgZS5wcmV2ZW50RGVmYXVsdCgpOyBsb2NhdGlvbi5ocmVmPWFbMF0uZ2V0QXR0cmlidXRlKCdocmVmJyk7IH0KICAgIH0gZWxzZSBpZihlLmtleT09PSdFc2NhcGUnKXsgYm94LmhpZGRlbj10cnVlOyBxLmJsdXIoKTsgfQogIH0pOwogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihlKXsKICAgIGlmKCFlLnRhcmdldC5jbG9zZXN0KCcudHBoLWZpbmRlcicpKSBib3guaGlkZGVuPXRydWU7CiAgfSk7Cn0KOwp2YXIgbWFwLCBsYXllcjsKdmFyIG5hdj17ZG9uZzpudWxsLCBjeDpudWxsfTsKZnVuY3Rpb24gbWFuKG4peyByZXR1cm4gTWF0aC5yb3VuZChuKS50b0xvY2FsZVN0cmluZygna28tS1InKSsn66eMJzsgfQpmdW5jdGlvbiBlb2sobil7IG49TWF0aC5yb3VuZChuKTsgdmFyIGU9TWF0aC5mbG9vcihuLzEwMDAwKSwgbT1uJTEwMDAwOwogIHJldHVybiAoKGU/IGUrJ+yWtSAnOicnKSArIChtPyBtLnRvTG9jYWxlU3RyaW5nKCdrby1LUicpKyfrp4wnOicnKSkgfHwgJzAnOyB9CmZ1bmN0aW9uIGNoZ0h0bWwoYyl7IGlmKGM9PW51bGwpIHJldHVybiAnJzsKICByZXR1cm4gJzxlbSBjbGFzcz0iJysoYz4wPyd1cCc6YzwwPydkbic6JycpKyciPicrKGM+MD8n4payJzpjPDA/J+KWvCc6J+KAlCcpKycgJytNYXRoLmFicyhjKSsnJTwvZW0+JzsgfQpmdW5jdGlvbiBlc2ModCl7IHJldHVybiBTdHJpbmcodCkucmVwbGFjZSgvIi9nLCcmcXVvdDsnKTsgfQpmdW5jdGlvbiBjcnVtYigpewogIHZhciBoPSc8YnV0dG9uIGRhdGEtbHY9InRvcCI+JytELnNob3J0Kyc8L2J1dHRvbj4nOwogIGlmKG5hdi5kb25nKSBoKz0nPHNwYW4+4oC6PC9zcGFuPicrKG5hdi5jeD8gJzxidXR0b24gZGF0YS1sdj0iZG9uZyI+JytuYXYuZG9uZysnPC9idXR0b24+JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICc8Yj4nK25hdi5kb25nKyc8L2I+Jyk7CiAgaWYobmF2LmN4KSBoKz0nPHNwYW4+4oC6PC9zcGFuPjxiPicrbmF2LmN4Kyc8L2I+JzsKICAkKCdjcnVtYicpLmlubmVySFRNTD1oOwogICQoJ2NydW1iJykucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJykuZm9yRWFjaChmdW5jdGlvbihiKXsKICAgIGIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICAgIGlmKGIuZGF0YXNldC5sdj09PSd0b3AnKXsgbmF2PXtkb25nOm51bGwsY3g6bnVsbH07IH0gZWxzZSB7IG5hdi5jeD1udWxsOyB9CiAgICAgIHJlbmRlcigpOwogICAgfSk7CiAgfSk7Cn0KZnVuY3Rpb24gcGluc0ZvcigpewogIHJldHVybiBELnBpbnMuZmlsdGVyKGZ1bmN0aW9uKHApewogICAgaWYobmF2LmRvbmcgJiYgcC5kZyE9PW5hdi5kb25nKSByZXR1cm4gZmFsc2U7CiAgICBpZihuYXYuY3ggJiYgcC5uIT09bmF2LmN4KSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gdHJ1ZTsKICB9KTsKfQpmdW5jdGlvbiBkcmF3TWFwKCl7CiAgdmFyIGxpc3Q9cGluc0ZvcigpOwogIGlmKGxheWVyKSBsYXllci5jbGVhckxheWVycygpOwogIFBFTkQ9W107CiAgdmFyIGJvdW5kcz1bXTsKICB2YXIgcHBzPWxpc3QubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLnBwO30pLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS1iO30pOwogIC8qIOy1nOyggMK37LWc6rOg66GcIOyDiSDrspTsnITrpbwg7J6h7Jy866m0IOy0iOqzoOqwgCDri6jsp4Ag66qHIOqzs+ydtCDsiqTsvIDsnbzsnYQg64ukIOuoueyWtCDsoITrtoAg7YyM656X6rKMIOuCmOyYqOuLpC4KICAgICAxMH45MCDrtoTsnITroZwg7J6Q66W066m0IOyDieydtCDsi6TsoJzroZwg6rCI66aw64ukLiAqLwogIHZhciBsbz1wcHMubGVuZ3RoPyBwcHNbTWF0aC5mbG9vcihwcHMubGVuZ3RoKjAuMSldIDogMCwKICAgICAgaGk9cHBzLmxlbmd0aD8gcHBzW01hdGguZmxvb3IocHBzLmxlbmd0aCowLjkpXSA6IDA7CiAgaWYoaGk8PWxvKXsgbG89cHBzWzBdfHwwOyBoaT1wcHNbcHBzLmxlbmd0aC0xXXx8MDsgfQogIENMTz1sbzsgQ0hJPWhpOwogIHZhciBjcz1nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7CiAgbGlzdC5zbGljZSgwLDkwMCkuZm9yRWFjaChmdW5jdGlvbihwKXsKICAgIHZhciBjb2w9Y29sb3JGb3IocC5wcCxsbyxoaSk7CiAgICB2YXIgaWM9TC5kaXZJY29uKHtjbGFzc05hbWU6J3RwaC1waW4nLGljb25TaXplOls2MiwyNl0saWNvbkFuY2hvcjpbMzEsMjZdLAogICAgICBodG1sOic8YiBzdHlsZT0iYmFja2dyb3VuZDonK2NvbCsnIj4nK21hbihwLnBwKSsnPC9iPjxpIHN0eWxlPSJjb2xvcjonK2NvbCsnIj48L2k+J30pOwogICAgUEVORC5wdXNoKEwubWFya2VyKFtwLmxhdCxwLmxvbl0se2ljb246aWMscHY6cC5wcH0pCiAgICAgIC5iaW5kUG9wdXAoJzxiPicrcC5uKyc8L2I+PGJyPicrcC5kZysnPGJyPu2PieuLuSAnK21hbihwLnBwKSsnPGJyPuqxsOuemCAnK3AuY250KyfqsbQnKSk7CiAgICBib3VuZHMucHVzaChbcC5sYXQscC5sb25dKTsKICB9KTsKICBhZGRBbGwobGF5ZXIsIFBFTkQpOwogIGZpdFRvKG1hcCwgYm91bmRzLCAxNik7Cn0KZnVuY3Rpb24gY3hPZigpeyByZXR1cm4gRC5jeC5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMuZz09PW5hdi5kb25nO30pOyB9CmZ1bmN0aW9uIGN1ckN4KCl7IHJldHVybiBjeE9mKCkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLm49PT1uYXYuY3g7fSlbMF07IH0KZnVuY3Rpb24gY3hEZXRhaWwoKXsKICB2YXIgYz1jdXJDeCgpOwogIGlmKCFjKSByZXR1cm4gJzxkaXYgY2xhc3M9InRwaC1yb3cgbGVhZiI+PGRpdiBjbGFzcz0ibm0iPuuLqOyngOulvCDssL7sp4Ag66q77ZaI7Iq164uI64ukLjwvZGl2PjwvZGl2Pic7CiAgdmFyIGg9JzxkaXYgY2xhc3M9InRwaC1zdGF0cyI+JwogICAgKyc8ZGl2IGNsYXNzPSJ0cGgtc3RhdCI+PGRpdiBjbGFzcz0iayI+7KSR7JyEIO2PieuLueqwgDwvZGl2PjxkaXYgY2xhc3M9Im4iPicrbWFuKGMucCkrJ+ybkDwvZGl2PicKICAgICsnPGRpdiBjbGFzcz0ic20iPjEy6rCc7JuUIOqxsOuemCAnK2MuYysn6rG0PC9kaXY+PC9kaXY+JwogICAgKyc8ZGl2IGNsYXNzPSJ0cGgtc3RhdCI+PGRpdiBjbGFzcz0iayI+7LWc6re8IOqxsOuemDwvZGl2PjxkaXYgY2xhc3M9Im4iPicrZW9rKGMubCkrJzwvZGl2PicKICAgICsnPGRpdiBjbGFzcz0ic20iPicrYy5sZCsnPC9kaXY+PC9kaXY+JwogICAgKyhjLnk/ICc8ZGl2IGNsYXNzPSJ0cGgtc3RhdCI+PGRpdiBjbGFzcz0iayI+6rG07LaV64WE64+EPC9kaXY+PGRpdiBjbGFzcz0ibiI+JytjLnkrJ+uFhDwvZGl2PicKICAgICAgKyc8ZGl2IGNsYXNzPSJzbSI+JysobmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLSgrYy55KSkrJ+uFhOywqDwvZGl2PjwvZGl2Pic6JycpCiAgICArJzwvZGl2Pic7CiAgaWYoYy5oKXsKICAgIGgrPSc8aDMgY2xhc3M9InRwaC1zdWIiPjEy6rCc7JuUIO2PieuLueqwgCDstpTsnbQ8L2gzPicKICAgICAgKyc8cCBjbGFzcz0idHBoLWhpbnQiPuqxsOuemOqwgCDsl4brjZgg64us7J2AIOqxtOuEiOubsOqzoCDsnbTslrQg6re466a964uI64ukLiDri6jsp4Ag7ZWY64KY7J2YIOyblOuzhCDtkZzrs7jsnYAg7JuQ656YIOyWh+ycvOuLiCDrsKntlqXrp4wg67O07IS47JqULjwvcD4nCiAgICAgICsnPGRpdiBjbGFzcz0idHBoLWNoYXJ0IiBpZD0idHBoLWN4Y2hhcnQiPjwvZGl2Pic7CiAgfQogIGlmKGMuYSl7CiAgICBoKz0nPGgzIGNsYXNzPSJ0cGgtc3ViIj7tj4ntmJXrs4Qg7Iuc7IS4PC9oMz4nCiAgICAgICsnPHAgY2xhc3M9InRwaC1oaW50Ij7soITshLjqsIDsnKjsnYAg7LWc6re8IDbqsJzsm5QgPGI+7Iug6recPC9iPiDsoITshLgg67O07Kad6riIIMO3IOunpOunpOqwgOyeheuLiOuLpC4gJwogICAgICArJzgwJSDsnbTsg4HsnbTrqbQg6rK966ekIOyLnCDrs7Tspp3quIjsnYQg64ukIOuquyDrsJvsnYQg7IiYIOyeiOyKteuLiOuLpC4g6rCx7Iug6rOE7JW97J2AIOu6kOyKteuLiOuLpC48L3A+JwogICAgICArJzxkaXYgc3R5bGU9Im92ZXJmbG93LXg6YXV0byI+PHRhYmxlPjx0aGVhZD48dHI+JwogICAgICArJzx0aD7soITsmqnrqbTsoIE8L3RoPjx0aD7qsbDrnpg8L3RoPjx0aD7spJHsnITqsIA8L3RoPjx0aD7stZzsoIA8L3RoPjx0aD7stZzqs6A8L3RoPjx0aD7stZzqt7w8L3RoPicKICAgICAgKyc8dGg+7KCE7IS46rCA7JyoPC90aD48L3RyPjwvdGhlYWQ+PHRib2R5Pic7CiAgICBjLmEuZm9yRWFjaChmdW5jdGlvbihhKXsKICAgICAgdmFyIGpyID0gYVs3XT09bnVsbD8gJzxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS1mYWludCkiPuKAlDwvc3Bhbj4nCiAgICAgICAgOiAnPGIgc3R5bGU9ImNvbG9yOicrKGFbN10+PTgwPyd2YXIoLS13YXJuKSc6J2luaGVyaXQnKSsnIj4nK2FbN10rJyU8L2I+JwogICAgICAgICAgKyc8YnI+PHNtYWxsIHN0eWxlPSJjb2xvcjp2YXIoLS1mYWludCkiPuyghOyEuCAnK2VvayhhWzhdKSsnPC9zbWFsbD4nOwogICAgICBoKz0nPHRyPjx0ZD48Yj4nK2FbMF0rJ+OOoTwvYj4gPHNtYWxsPicrKGFbMF0vMy4zMDU3ODUpLnRvRml4ZWQoMSkrJ+2PiTwvc21hbGw+PC90ZD4nCiAgICAgICAgKyc8dGQ+JythWzFdKyfqsbQ8L3RkPjx0ZD48Yj4nK2VvayhhWzJdKSsnPC9iPjwvdGQ+JwogICAgICAgICsnPHRkPicrZW9rKGFbM10pKyc8L3RkPjx0ZD4nK2VvayhhWzRdKSsnPC90ZD4nCiAgICAgICAgKyc8dGQ+Jytlb2soYVs1XSkrJyA8c21hbGw+JythWzZdKyc8L3NtYWxsPjwvdGQ+JwogICAgICAgICsnPHRkPicranIrJzwvdGQ+PC90cj4nOwogICAgfSk7CiAgICBoKz0nPC90Ym9keT48L3RhYmxlPjwvZGl2Pic7CiAgfQogIGlmKGMuZCl7CiAgICBoKz0nPGgzIGNsYXNzPSJ0cGgtc3ViIj7stZzqt7wg6rGw656YPC9oMz4nOwogICAgYy5kLmZvckVhY2goZnVuY3Rpb24oeil7CiAgICAgIGgrPSc8ZGl2IGNsYXNzPSJ0cGgtZGVhbCI+PHNwYW4gY2xhc3M9ImQiPicrelswXSsnPC9zcGFuPicKICAgICAgICArJzxzcGFuIGNsYXNzPSJuIj4nK2MubisnPC9zcGFuPjxzcGFuIGNsYXNzPSJhIj4nK3pbMV0rJ+OOoTwvc3Bhbj4nCiAgICAgICAgKyc8c3BhbiBjbGFzcz0iZiI+JysoelsyXT96WzJdKyfsuLUnOicnKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4nK2Vvayh6WzNdKSsnPC9zcGFuPjwvZGl2Pic7CiAgICB9KTsKICB9CiAgcmV0dXJuIGg7Cn0KZnVuY3Rpb24gZHJhd0N4Q2hhcnQoKXsKICB2YXIgYz1jdXJDeCgpOwogIGlmKCFjfHwhYy5ofHwhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RwaC1jeGNoYXJ0JykpIHJldHVybjsKICBsaW5lQ2hhcnQoJ2N4Y2hhcnQnLCBELmhpc3QubWFwKGZ1bmN0aW9uKG0pe3JldHVybiBtLnNsaWNlKDIpO30pLAogICAgW3tuYW1lOiftj4nri7nqsIAnLGNsczonczEnLGRhdGE6Yy5oLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdnx8bnVsbDt9KX1dLCBtYW4pOwp9CmZ1bmN0aW9uIHJlbmRlcigpewogIGNydW1iKCk7IGRyYXdNYXAoKTsKICB2YXIgaD0nJywgbj0wOwogIGlmKCFuYXYuZG9uZyl7CiAgICBELmRvbmdzLmZvckVhY2goZnVuY3Rpb24oZCxpKXsKICAgICAgbisrOwogICAgICBoKz0nPGRpdiBjbGFzcz0idHBoLXJvdyIgZGF0YS1rZXk9IicrZXNjKGQuZGcpKyciPjxkaXYgY2xhc3M9InJrIj4nKyhpKzEpKyc8L2Rpdj4nCiAgICAgICAgKyc8ZGl2IGNsYXNzPSJubSI+PGI+JytkLmRnKyc8L2I+PHNwYW4+MTLqsJzsm5QgJytkLmNudCsn6rG0PC9zcGFuPjwvZGl2PicKICAgICAgICArJzxkaXYgY2xhc3M9InByIj4nK21hbihkLnBwKStjaGdIdG1sKGQuY2hnKSsnPC9kaXY+PGRpdiBjbGFzcz0iZ28iPuKAujwvZGl2PjwvZGl2Pic7CiAgICB9KTsKICB9IGVsc2UgaWYoIW5hdi5jeCl7CiAgICB2YXIgY3M9Y3hPZigpOyBuPWNzLmxlbmd0aDsKICAgIGNzLmZvckVhY2goZnVuY3Rpb24oYyxpKXsKICAgICAgLyog64uo7KeAIO2OmOydtOyngOqwgCDsnojsnLzrqbQgKirrp4HtgawqKuuhnCDrgrjri6QuIO2BrOuhpOufrOqwgCDrlLDrnbzqsIgg6ri47J20IOyeiOyWtOyVvCDsg4nsnbjsnbQg67aZ64qU64ukLgogICAgICAgICDsl4bsnLzrqbQg7JiI7KCE7LKY65+8IO2BtOumre2VtOyEnCDsnbQg7Y6Y7J207KeAIOyViOyXkOyEnCDtjrzsuZzri6QuICovCiAgICAgIHZhciBoZWFkPSc8ZGl2IGNsYXNzPSJyayI+JysoaSsxKSsnPC9kaXY+JwogICAgICAgICsnPGRpdiBjbGFzcz0ibm0iPjxiPicrYy5uKyc8L2I+PHNwYW4+6rGw656YICcrYy5jKyfqsbQnCiAgICAgICAgKyhjLnk/JyDCtyAnK2MueSsn64WEJzonJykrJyDCtyDstZzqt7wgJytjLmxkKycgJytlb2soYy5sKSsnPC9zcGFuPjwvZGl2PicKICAgICAgICArJzxkaXYgY2xhc3M9InByIj4nK21hbihjLnApKyc8L2Rpdj48ZGl2IGNsYXNzPSJnbyI+4oC6PC9kaXY+JzsKICAgICAgaCs9IGMudSA/ICc8YSBjbGFzcz0idHBoLXJvdyIgaHJlZj0iJytjLnUrJyI+JytoZWFkKyc8L2E+JwogICAgICAgICAgICAgIDogJzxkaXYgY2xhc3M9InRwaC1yb3ciIGRhdGEta2V5PSInK2VzYyhjLm4pKyciPicraGVhZCsnPC9kaXY+JzsKICAgIH0pOwogIH0gZWxzZSB7IGg9Y3hEZXRhaWwoKTsgbj0xOyB9CiAgJCgncmFua2xpc3QnKS5pbm5lckhUTUwgPSBoIHx8ICc8ZGl2IGNsYXNzPSJ0cGgtcm93IGxlYWYiPjxkaXYgY2xhc3M9Im5tIj7rjbDsnbTthLDqsIAg7JeG7Iq164uI64ukLjwvZGl2PjwvZGl2Pic7CiAgJCgncmFua2xpc3QnKS5xdWVyeVNlbGVjdG9yQWxsKCcudHBoLXJvd1tkYXRhLWtleV0nKS5mb3JFYWNoKGZ1bmN0aW9uKHJvdyl7CiAgICByb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKCl7CiAgICAgIGlmKCFuYXYuZG9uZyl7IG5hdi5kb25nPXJvdy5kYXRhc2V0LmtleTsgfSBlbHNlIHsgbmF2LmN4PXJvdy5kYXRhc2V0LmtleTsgfQogICAgICByZW5kZXIoKTsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RwaC1tYXAnKS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogICAgfSk7CiAgfSk7CiAgaWYobmF2LmN4KSBkcmF3Q3hDaGFydCgpOwogIHZhciBsYWJlbCA9IG5hdi5jeD8gbmF2LmN4IDogKG5hdi5kb25nPyBuYXYuZG9uZyA6IEQuc2hvcnQpOwogIHNldCgnc3RhdHVzJywgbGFiZWwrJyDCtyAnKyhuYXYuY3g/ICfri6jsp4Ag7IOB7IS4JwogICAgICA6IG5hdi5kb25nPyAn64uo7KeAICcrbi50b0xvY2FsZVN0cmluZygna28tS1InKSsn6rOzJyA6ICfrspXsoJXrj5kgJytuKyfqs7MnKQogICAgICArJyDCtyDquLDspIDsm5QgJytELmN1cik7Cn0KZnVuY3Rpb24gaW5pdCgpewogIG1hcD1MLm1hcCgndHBoLW1hcCcse3Njcm9sbFdoZWVsWm9vbTpmYWxzZX0pLnNldFZpZXcoWzM2LjUsMTI3LjldLDcpOwogIEwudGlsZUxheWVyKCdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICB7bWF4Wm9vbToxOSxhdHRyaWJ1dGlvbjonJmNvcHk7IE9wZW5TdHJlZXRNYXAnfSkuYWRkVG8obWFwKTsKICBtYXAub24oJ2NsaWNrJyxmdW5jdGlvbigpe21hcC5zY3JvbGxXaGVlbFpvb20uZW5hYmxlKCk7fSk7CiAgbGF5ZXI9Y2x1c3Rlckdyb3VwKG1hbixmdW5jdGlvbih2KXtyZXR1cm4gY29sb3JGb3IodixDTE8sQ0hJKTt9KS5hZGRUbyhtYXApOwogIHJlbmRlcigpOwogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgbWFwLmludmFsaWRhdGVTaXplKGZhbHNlKTsgZHJhd01hcCgpOyB9LDI1MCk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsZnVuY3Rpb24oKXsgbWFwLmludmFsaWRhdGVTaXplKGZhbHNlKTsgfSk7Cn0KdmFyIHJvb3Q9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRwaC1wYWdlJyk7CmluaXRUaGVtZShyb290KTsKaW5pdEZpbmRlcigpOwppZih3aW5kb3cuTCkgaW5pdCgpOyBlbHNlIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJyxpbml0KTsK