Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@4khdr·X@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiNGtoZHLCt1giLCJhdXRob3IiOiLni5fmtanllYomU2tpbnPmvIJb5L+u5pS5XSbOsVvph43mnoRdIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIiwidmVyc2lvbiI6MSwiY29sX3R5cGUiOiJtb3ZpZV8zIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ2aWRlbyIsImNsYXNzX3VybCI6IiIsImFyZWFfbmFtZSI6IiIsImFyZWFfdXJsIjoiIiwic29ydF9uYW1lIjoiIiwieWVhcl9uYW1lIjoiIiwic29ydF91cmwiOiIiLCJ5ZWFyX3VybCI6IiIsImZpbmRfcnVsZSI6ImpzOlxuYWRkTGlzdGVuZXIoJ29uQ2xvc2UnLCAkLnRvU3RyaW5nKCh0aXRsZSkgPT4ge1xuICAgIC8vbG9nKHRpdGxlKVxuICAgIHVuUmVnaXN0ZXJUYXNrKHRpdGxlICsgJ2x1bmJvJylcbn0sIE1ZX1JVTEUudGl0bGUpKVxudmFyIGQgPSBbXTtcbnZhciBydWxlID0gTVlfUlVMRS50aXRsZTtcbnZhciBwYWdlID0gTVlfUEFHRTtcbnZhciBob21lID0gY29uZmlnLmhvbWVcbk1ZX1VSTCA9IGhvbWU7XG5jb25zdCDliIbnsbvpopzoibIgPSAnIzA5OEFDMSdcbmNvbnN0IOWkp+exu+WumuS9jSA9ICcjdGhyZWFkX3R5cGVzJztcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhJztcbmNvbnN0IOWIhuexu+agh+mimCA9ICdhJiZUZXh0JztcbmNvbnN0IOWIhuexu+mTvuaOpSA9ICdhJiZocmVmJztcbmxldCB0cnVlX3VybCA9IGdldE15VmFyKCdoZWFkZXIudXJsJywgaG9tZSArIGAvZm9ydW0tMi0xLmh0bWxgKTtcbmlmICh0cnVlX3VybC5pbmNsdWRlcygnaGlrZXI6Ly9lbXB0eScpKSB7XG4gICAgY2xlYXJNeVZhcignaGVhZGVyLnVybCcpXG59XG5cbnRydWVfdXJsID0gdHJ1ZV91cmwucmVwbGFjZSgvXFxkKy5odG1sL2csIHBhZ2UgKyAnLmh0bWwnKSAvL+aLvOaOpemhteeggVxuXG4vL2xvZyh0cnVlX3VybClcbnZhciBodG1sID0gZmV0Y2godHJ1ZV91cmwsIHtcbiAgICBoZWFkZXJzOiB7XG5cbiAgICB9XG59KSAvL1VBXG5cblxuY29uc3Qg5b2T5YmN5oqY5Y+g54q25oCBID0gZ2V0TXlWYXIoJ2hlYWRlci5mb2xkJywgJzEnKVxubGV0IGh0bWxDYXRlZ29yaWVzID0gcmVxdWlyZUNhY2hlKGNvbmZpZy5jYXRlZ29yeUxpYilcbmh0bWxDYXRlZ29yaWVzLueVjOmdoihkKVxuICAgIC7liIbnsbvpk77mjqUodHJ1ZV91cmwpXG4gICAgLua6kOeggShodG1sKVxuICAgIC7pobXnoIEocGFnZSlcbiAgICAu5re75Yqg5YiG57G75a6a5L2NKHtcbiAgICAgICAg5LiA57qn5YiG57G7OiDlpKfnsbvlrprkvY0sXG4gICAgICAgIOWtkOWIhuexuzog5bCP57G75a6a5L2NLFxuICAgICAgICDliIbnsbvmoIfpopg6ICdAanM6JyArICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHBhcnNlRG9tRm9ySHRtbChpbnB1dCwgJyo6bWF0Y2hUZXh0OmZpcnN0LWNoaWxkJiZUZXh0JylcbiAgICAgICAgICAgIGxldCBsYXN0ID0gcGFyc2VEb21Gb3JIdG1sKGlucHV0LCAnKjptYXRjaFRleHQ6bGFzdC1jaGlsZCYmVGV4dCcpXG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgPT0gbGFzdCA/IHJlc3VsdCA6IHJlc3VsdCArIGBbJHtsYXN0fV1gXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIH0pLFxuICAgICAgICDliIbnsbvpk77mjqU6ICdAanM6JyArICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHBkKGlucHV0LCAnYSYmaHJlZicpXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIH0pLFxuICAgIH0pXG4gICAgLy8u5byA5ZCv5YaF572u5oqY5Y+g5Yqf6IO9KCkgLy8g5b+F6aG7XG4gICAgLy8gLuaKmOWPoOaMiemSruagt+W8jyh7IHRpdGxlOiBcIu+8n++8n++8n1wifSkgLy8g5Y+v6YCJXG4gICAgLy8gLuesrOWHoOihjOW8gOWni+aKmOWPoCgyKSAvLyDlj6/pgIlcbiAgICAvLyAu5oqY5Y+g5oyJ6ZKu5qC35byPKHsg5oqY5Y+g5oyJ6ZKu5o+S5YWl6KGMOiAyIH0pICAvLyDlj6/pgInvvIzkvYblv4XpobvlhYjosIPnlKggLuesrOWHoOihjOW8gOWni+aKmOWPoChpbmRleCnvvIznhLblkI7lho3kvKDlhaUgeyDmipjlj6DmjInpkq7mj5LlhaXooYw6IGluZGV4IH1cbiAgICAvLy7mipjlj6Ao5b2T5YmN5oqY5Y+g54q25oCBKSAvLyDlv4XpobtcbiAgICAu5byA5aeL5omT6YCg5YiG57G7KCk7XG5cbi8v5Ye95pWwXG4kLmV4dGVuZCh7XG4gICAgcmVtb3ZlVGFnOiBmdW5jdGlvbihzdHIsIHRhZykge1xuICAgICAgICBpZiAodGFnID09ICdodG1sJykge1xuICAgICAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC88W14+XSs+L2csIFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByZWdleCA9IG5ldyBSZWdFeHAoYDwke3RhZ31cXHMqW14+XSo+KC4qPyk8XFwvJHt0YWd9PmAsICdnaScpXG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShyZWdleCwgXCJcIik7XG4gICAgfSxcbiAgICBoYXNEb25lOiB7XG4gICAgICAgIGRhdGU6ICdkYXRlJyxcbiAgICAgICAgdG9kYXk6IG5ldyBEYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCksXG4gICAgICAgIGNoZWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBsb2NkYXRlID0gdGhpcy5kYXRlO1xuICAgICAgICAgICAgdmFyIGRhdGUgPSB0aGlzLnRvZGF5O1xuICAgICAgICAgICAgaWYgKHJlYWRGaWxlKGxvY2RhdGUsIDApID09IGRhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc2F2ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBzYXZlRmlsZSh0aGlzLmRhdGUsIHRoaXMudG9kYXksIDApXG4gICAgICAgIH1cbiAgICB9XG59KVxuXG4vKnZhciBsdW5kYXRhID0gcGRmYShodG1sLCAnLnN3aXBlci1jb250YWluZXImJmEnKS5maWx0ZXIoKHZhbHVlLCBpbmRleCwgc2VsZikgPT4ge1xuICAgIGNvbnN0IGZvdW5kSW5kZXggPSBzZWxmLmZpbmRJbmRleChvYmogPT5cbiAgICAgICAgcGRmaChvYmosICdpbWcmJnNyYycpID09IHBkZmgodmFsdWUsICdpbWcmJnNyYycpXG4gICAgKTtcbiAgICByZXR1cm4gaW5kZXggPT09IGZvdW5kSW5kZXg7XG59KS5tYXAoKHgpID0+IHtcbiAgICBsb2coeClcbiAgICByZXR1cm4ge1xuICAgICAgICBpbWc6IHBkZmgoeCwgJ2ltZyYmc3JjJykgKyAnQFJlZmVyZXI9aHR0cHM6Ly93d3cuNGtoZHIuY24nLFxuICAgICAgICB1cmw6IFwiaGlrZXI6Ly9wYWdlL2VyP3J1bGU9XCIgKyBydWxlICsgXCImdT1cIiArIGJhc2U2NEVuY29kZShwZCh4LCAnYSYmaHJlZicpKSArIFwiI2ltbWVyc2l2ZVRoZW1lI1wiXG4gICAgfVxufSk7Ki9cblxudmFyIGx1bmRhdGEgPSBwZGZhKGh0bWwsICcuc3dpcGVyLWNvbnRhaW5lciYmYScpLm1hcCgoeCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGltZzogcGRmaCh4LCAnaW1nJiZzcmMnKSArICdAUmVmZXJlcj1odHRwczovL3d3dy40a2hkci5jbicsXG4gICAgICAgIHVybDogXCJoaWtlcjovL3BhZ2UvZXI/cnVsZT1cIiArIHJ1bGUgKyBcIiZ1PVwiICsgYmFzZTY0RW5jb2RlKHBkKHgsICdhJiZocmVmJykpICsgXCIjaW1tZXJzaXZlVGhlbWUjXCJcbiAgICB9XG59KTtcblxuXG5cblxuZXZhbChKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9wYWdlL2x1bmJvXCIsIHt9KSkucnVsZSk7XG5cblxuaWYgKE1ZX1BBR0UgPT0gMSkge1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBcIvCflI1cIixcbiAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgIHB1dE15VmFyKCdrZXl3b3JkJywgaW5wdXQpO1xuICAgICAgICAgICAgcmV0dXJuIGBoaWtlcjovL3BhZ2Uvc2VhcmNoPyZwYWdlPWZ5cGFnZWA7XG4gICAgICAgIH0sIE1ZX1JVTEUudGl0bGUpLFxuICAgICAgICBkZXNjOiAn5b+F6aG755m75b2V5bm25LiUMeWIhumSn+WPquiDveaQnOe0ojPmrKEnLFxuICAgICAgICBjb2xfdHlwZTogXCJpbnB1dFwiLFxuICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcigna2V5d29yZCcsICcnKSB8fCBcIlwiLFxuICAgICAgICAgICAgb25DaGFuZ2U6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHB1dE15VmFyKCdrZXl3b3JkJywgaW5wdXQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8v6L2u5pKtXG4gICAgYmFubmVyKE1ZX1JVTEUudGl0bGUsIHRydWUsIGQsIGx1bmRhdGEsIHtcbiAgICAgICAgdGltZTogNTAwMCxcbiAgICAgICAgY29sX3R5cGU6ICdjYXJkX3BpY18xJyxcbiAgICAgICAgZGVzYzogJzAnXG4gICAgfSlcblxuICAgIGQucHVzaCh7XG4gICAgICAgIGNvbF90eXBlOiBcImJpZ19ibGFua19ibG9ja1wiXG4gICAgfSk7XG5cbiAgICAvL+ajgOafpeaYr+WQpuetvuWIsFxuICAgIHZhciBiID0gJC5oYXNEb25lLmNoZWNrKCk7XG4gICAgLyppZihodG1sLmluY2x1ZGVzKCfpq5jnuqfkvJrlkZgnKSl7XG4gICAgICAgIGI9dHJ1ZTtcbiAgICB9Ki9cblxuICAgIGlmIChodG1sLmluY2x1ZGVzKCfpgIDlh7onKSAmJiAhYikge1xuICAgICAgICAvKnZhciBmb3JtaGFzaCA9IHBkZmgoaHRtbCwgJ2lucHV0W25hbWU9Zm9ybWhhc2hdJiZ2YWx1ZScpO1xuICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ08c21hbGw+562+5YiwPC9zbWFsbD4nLFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcbiAgICAgICAgICAgIHVybDogJCgnJykubGF6eVJ1bGUoKGgsIGYpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgdXJsID0gaCArICcvcGx1Z2luLnBocD9pZD1rX21pc2lnbjpzaWduJm9wZXJhdGlvbj1xaWFuZGFvJmZvcm1oYXNoPScgKyBmICsgJyZmb3JtYXQ9ZW1wdHknO1xuXG5cbiAgICAgICAgICAgICAgICB2YXIgbSA9IGZldGNoKHVybCk7XG4gICAgICAgICAgICAgICAgbGV0IG1lcyA9IHBkZmgocGRmaChtLCAncm9vdCYmVGV4dCcpLCAnVGV4dCcpO1xuICAgICAgICAgICAgICAgIGlmIChtZXMuaW5jbHVkZXMoJ+W3suetvicpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gZmV0Y2goaCArICcvaG9tZS5waHA/bW9kPXNwYWNlY3AmYWM9Y3JlZGl0JnNob3djcmVkaXQ9MScpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcCA9IHBkZmgoaHRtbCwgJy5jcmVkaXRsJiZIdG1sJyk7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0ID0gcGRmaCgkLnJlbW92ZVRhZyhwLCAnc3BhbicpLCAnVGV4dCcpO1xuICAgICAgICAgICAgICAgICAgICAkLmhhc0RvbmUuc2F2ZSgpO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGVJdGVtKCdxaWFuZGFvJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly8nICsgbWVzICsgJ1xcbuW9k+WJjTogJyArIHRcbiAgICAgICAgICAgIH0sIGhvbWUsIGZvcm1oYXNoKSxcbiAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgICAgaWQ6ICdxaWFuZGFvJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkqL1xuICAgIH1cbn1cblxucGRmYShodG1sLCAnI3dhdGVyZmFsbCYmbGknKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgdmFyIHUgPSBwZChpdGVtLCAnYSYmaHJlZicpO1xuICAgIHZhciBpbWcgPSBwZChpdGVtLCAnaW1nJiZzcmMnKS5yZXBsYWNlKC9SYXcvaSwgJ2wnKTsgLy/lm77niYdcblxuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICdhJiZ0aXRsZScpLCAvL+agh+mimFxuICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sICcnKSwgLy/nrKzlh6Dpm4bmiJbmuIXmmbDluqZcbiAgICAgICAgaW1nOiBpbWcgKyAnQFJlZmVyZXI9JyArIGhvbWUsIC8v5Zu+54mHXG4gICAgICAgIHVybDogXCJoaWtlcjovL3BhZ2UvZXI/cnVsZT1cIiArIHJ1bGUgKyBcIiZ1PVwiICsgYmFzZTY0RW5jb2RlKHUpICsgXCIjaW1tZXJzaXZlVGhlbWUjXCIsXG4gICAgfSk7XG59KTsgLy/liJfooahcblxuc2V0UmVzdWx0KGQpIiwic2VhcmNoX3VybCI6Imhpa2VyOi8vZW1wdHkjIyoqIiwiZ3JvdXAiOiLikaDlvbHop4YiLCJzZWFyY2hGaW5kIjoianM6XG52YXIgZCA9IFtdO1xubGV0IGtleSA9IE1ZX1VSTC5zcGxpdChcIiMjXCIpWzFdO1xuZC5wdXNoKHtcbiAgICB0aXRsZTogXCLngrnmiJHlvIDlp4vmkJzntKJcIiArIGtleSxcbiAgICB1cmw6ICdoaWtlcjovL3BhZ2Uvc2VhcmNoPyZwYWdlPWZ5cGFnZSZrZXk9JytrZXksXG59KTtcblxuc2V0UmVzdWx0KGQpOyIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJkZXRhaWxfZmluZF9ydWxlIjoiIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IioiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiJpbml0Q29uZmlnKHtcbiAgICBjYXRlZ29yeUxpYjogJ2h0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTI3MDUnLFxuICAgIGNhdGVnb3J5TG9jYWxMaWI6ICdoaWtlcjovL2ZpbGVzL3J1bGVzL2pzL2NhdGVnb3JpZXMtaGVhZGVyLmpzJyxcbiAgICBjYXRlZ29yeUdpdGVlTGliOiAnaHR0cHM6Ly9naXRlZS5jb20vcmVib3JuMC9IaWtlclJ1bGVzL3Jhdy9tYXN0ZXIvcGx1Z2lucy9jYXRlZ29yaWVzLWhlYWRlci5qcycsXG4gICAgaG9tZTogJ2h0dHBzOi8vd3d3LjRraGRyLmNuJyxcbn0pXG4iLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pCc57SiXCIsXCJwYXRoXCI6XCJzZWFyY2hcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuYWRkTGlzdGVuZXIoJ29uQ2xvc2UnLCAoKSA9PiB7XFxuICAgIC8vcmVmcmVzaFBhZ2UoZmFsc2UpXFxufSlcXG52YXIgcnVsZSA9IE1ZX1JVTEUudGl0bGU7XFxuc2V0UGFnZVRpdGxlKE1ZX1JVTEUudGl0bGUgKyAnwrfmkJzntKInKVxcbmNsZWFyVmFyKCdydXJsJyk7XFxuY2xlYXJNeVZhcignaXNkb3duJyk7XFxudmFyIGhvbWUgPSBjb25maWcuaG9tZTtcXG5cXG52YXIgY29va2llID0gZ2V0Q29va2llKGhvbWUpO1xcbnZhciBsb2dodG1sID0gZmV0Y2goaG9tZSk7XFxudmFyIGlzbG9naW4gPSBsb2dodG1sLmluY2x1ZGVzKCfnmbvlvZUnKTtcXG4vL2xvZyhjb29raWUpXFxuLy9sb2coaXNsb2dpbikgLy90cnVl6ZyA6KaB55m75b2VLGZhbHNl5bey57uP55m75b2VXFxuaWYgKGdldFBhcmFtKCdrZXknKSAhPSB1bmRlZmluZWQpIHtcXG4gICAgcHV0TXlWYXIoJ2tleXdvcmQnLCBnZXRQYXJhbSgna2V5JykpXFxufVxcblxcblxcblxcbmlmIChpc2xvZ2luKSB7XFxuICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL2xvZ2luXFxcIiwge30pKS5ydWxlKTtcXG59IGVsc2Uge1xcbiAgICAvL2xvZyhNWV9VUkwpXFxuICAgIHZhciBwYWdlID0gTVlfUEFHRTtcXG4gICAgLy9sb2cocGFnZSlcXG4gICAgdmFyIGtleSA9IGdldE15VmFyKCdrZXl3b3JkJywgJycpXFxuICAgIC8vbG9nKGtleSlcXG5cXG4gICAgaWYgKHBhZ2UgPT0gMSkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogXFxcIvCflI1cXFwiLFxcbiAgICAgICAgICAgIHVybDogJC50b1N0cmluZygocikgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcigna2V5d29yZCcsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBNWV9SVUxFLnRpdGxlKSxcXG4gICAgICAgICAgICBkZXNjOiAn5b+F6aG755m75b2V5bm25LiUMeWIhumSn+WPquiDveaQnOe0ojPmrKEnLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiaW5wdXRcXFwiLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ2tleXdvcmQnLCAnJykgfHwgXFxcIlxcXCIsXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgfVxcblxcbiAgICBNWV9VUkwgPSBob21lICsgJy9zZWFyY2gucGhwP2tleT0nICsga2V5ICsgJyZwYWdlPScgKyBwYWdlO1xcbiAgICBpZiAoa2V5ICE9ICcnKSB7XFxuICAgICAgICBpZiAocGFnZSA9PSAxKSB7XFxuICAgICAgICAgICAgdmFyIGhvbWVodG1sID0gZmV0Y2goTVlfVVJMLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICdDb29raWUnOiBjb29raWUsXFxuICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6IGhvbWUsXFxuICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6IE1PQklMRV9VQSxcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgaWYgKGhvbWVodG1sLmluY2x1ZGVzKCfnmbvlvZUnKSkge1xcbiAgICAgICAgICAgICAgICBsb2coJ+WwmuacqueZu+W9lScpXFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIHZhciBoYXNoID0gcGRmaChob21laHRtbCwgXFxcImlucHV0W25hbWU9Zm9ybWhhc2hdJiZ2YWx1ZVxcXCIpO1xcbiAgICAgICAgICAgIC8vbG9nKGhhc2gpXFxuXFxuICAgICAgICAgICAgdmFyIGpzb24gPSBKU09OLnBhcnNlKHBvc3QoaG9tZSArICcvc2VhcmNoLnBocD9tb2Q9Zm9ydW0nLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogaG9tZSxcXG4gICAgICAgICAgICAgICAgICAgICdvcmlnaW4nOiBob21lLFxcbiAgICAgICAgICAgICAgICAgICAgJ0Nvb2tpZSc6IGNvb2tpZSxcXG4gICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogTU9CSUxFX1VBLFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBib2R5OiB7XFxuICAgICAgICAgICAgICAgICAgICBtb2Q6ICdmb3J1bScsXFxuICAgICAgICAgICAgICAgICAgICBmb3JtaGFzaDogaGFzaCxcXG4gICAgICAgICAgICAgICAgICAgIHNyY2h0eXBlOiAndGl0bGUnLFxcbiAgICAgICAgICAgICAgICAgICAgc3JoZmlkOiAyLFxcbiAgICAgICAgICAgICAgICAgICAgc3JobG9jYWxpdHk6ICdmb3J1bTo6Zm9ydW1kaXNwbGF5JyxcXG4gICAgICAgICAgICAgICAgICAgIHNyY2h0eHQ6IGdldFBhcmFtKCdrZXknKSxcXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaHN1Ym1pdDogJ3RydWUnLFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBvbmx5SGVhZGVyczogdHJ1ZSxcXG4gICAgICAgICAgICAgICAgLy9yZWRpcmVjdDogZmFsc2VcXG4gICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgdmFyIHJ1cmwgPSBqc29uLnVybDtcXG4gICAgICAgICAgICBwdXRNeVZhcigncnVybCcsIHJ1cmwpXFxuICAgICAgICB9XFxuXFxuICAgICAgICB2YXIgdXJsID0gZ2V0TXlWYXIoJ3J1cmwnKSArICcmcGFnZT0nICsgcGFnZTtcXG4gICAgICAgIGlmIChnZXRNeVZhcigncnVybCcpID09ICdodHRwczovL3d3dy40a2hkci5jbi9zZWFyY2gucGhwP21vZD1mb3J1bScpIHtcXG4gICAgICAgICAgICB0b2FzdCgn5pCc57Si6L+H5LqO6aKR57mB6K+356iN5YCZ5YaN6K+VJylcXG4gICAgICAgICAgICBzZXRSZXN1bHQoZClcXG4gICAgICAgIH1lbHNle1xcblxcbiAgICAgICAgdmFyIGh0bWwgPSBmZXRjaCh1cmwsIHtcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICdDb29raWUnOiBjb29raWUsXFxuICAgICAgICAgICAgICAgICdSZWZlcmVyJzogaG9tZSxcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBNT0JJTEVfVUEsXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIGxldCB0cGFnZSA9ICflhbEgMSDpobUgJztcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgdHBhZ2UgPSBwZGZoKGh0bWwsICcucGcmJnNwYW4mJnRpdGxlJyk7XFxuICAgICAgICB9IGNhdGNoIHt9XFxuICAgICAgICBsZXQgdHBhZ2VzdHIgPSB0cGFnZSArICcg5b2T5YmNICcgKyBwYWdlICsgJyDpobUnO1xcbiAgICAgICAgbGV0IHRwYWdlbnVtID0gdHBhZ2UucmVwbGFjZSgvW14wLTldL2csICcnKTtcXG4gICAgICAgIC8vbG9nKHRwYWdlbnVtKVxcbiAgICAgICAgaWYgKHBhZ2UgPiB0cGFnZW51bSkge1xcbiAgICAgICAgICAgIGlmIChwYWdlICE9IDEpIHtcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPHNtYWxsPuWIsOW6leS6hjwvc21hbGw+JyxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ2lzZG93bicsICcxJylcXG4gICAgICAgICAgICBzZXRSZXN1bHQoZCk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpZiAocGFnZSA9PSAxKSB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICcnICsgcGRmaChodG1sLCAnLnRsJiZoMiYmVGV4dCcpLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcblxcbiAgICAgICAgaWYgKGdldE15VmFyKCdpc2Rvd24nKSAhPSAnMScpIHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxzbWFsbD4nICsgdHBhZ2VzdHIgKyAnPC9zbWFsbD4nLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIHZhciBsaXN0ID0gcGRmYShodG1sLCAnI3RocmVhZGxpc3QmJmxpJyk7IC8v5YiX6KGoXFxuXFxuICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBsaXN0KSB7XFxuICAgICAgICAgICAgICAgIHZhciB1ID0gcGQoaXRlbSwgJ2EmJmhyZWYnKTtcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICdhJiZUZXh0JyksIC8v5qCH6aKYXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sICcnKSwgLy/nrKzlh6Dpm4bmiJbmuIXmmbDluqZcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcImhpa2VyOi8vcGFnZS9lcj9ydWxlPVxcXCIgKyBydWxlICsgXFxcIiZ1PVxcXCIgKyBiYXNlNjRFbmNvZGUodSkgKyBcXFwiI2ltbWVyc2l2ZVRoZW1lI1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogcGRmaChpdGVtLCAnYSYmVGV4dCcpXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBpZiAoaHRtbC5pbmNsdWRlcygn5a+55LiN6LW377yM5rKh5pyJ5om+5Yiw5Yy56YWN57uT5p6c44CCJykpIHtcXG4gICAgICAgICAgICAgICAgdG9hc3QoJ+aXoOe7k+aenCcpXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgaWYgKGQubGVuZ3RoIDwgMykge1xcbiAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ+ayoeacieaVsOaNrueci+aXpeW/l+iusOW9lScpXFxuICAgICAgICAgICAgICAgICAgICBsb2coaHRtbClcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG59XFxuXFxuc2V0SG9tZVJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi55m75b2VXCIsXCJwYXRoXCI6XCJsb2dpblwiLFwicnVsZVwiOlwianM6XFxuZXZhbFByaXZhdGVKUyhcXFwiN2pIaGV6bHhCQm1ud0ZJQ3BCLzFKN0xNbE9WcytjUWpGYTZOZHoveWQvVmdvUmJOaVRUWDZ6SE9GK2hKc3pWY1EzVUZnNGZoN2VkL2VRVlU1bVZ2SzdFKzU5MVZWMnFKMnlZZHAxQkd4UFl0K3ppOE1XWGtac2I5cDVSdTM1RzdqeFl2enluMWxpci9sQTkrUUxZakJhZlFLRXRpcExQSTU2L0dpRlRVbStsSzZxWTlXSUhOVnBJKy9tT2VqYlM0L1hKL0tGSnB4WlVYYUNWOWJSNS8yMG5KYlhEY0E2blUxM3pxaXpYaUsrMU9IZjUxVGRwVkRpTUNjcEJHQ1ROZHNDbjdPK0tRejhTeWNwNmFWZ2FmbXQvVnJTM3BsYWdYWGFOUW9IV0o1VDhFK01UcXNHbVI2SmlVRnVGYmhXTnc3T2NGU2Exc0NYeG5XTDNqc0RyZUhubVJvZkIzOUxFbkY3cVl3WGw5NmY3WWlxWDlyeWVIRTZNS01yMFFrS0JBSHdMajUvblNvTkhZMDV1MXNnRVR3UU1UbFFZclFreExUK0xvb0dQeVpjbmZJSFpFakhlOVBmTFRUVlAvWlJRSlBhbzF3anV5V0NlMndCajdlbmlpazRwZjlWR1FpNWJPeUZOM1JzbEVzS2I2ajFJSjZFWk9ETDIvdzc3TXFJZ3AzME5JK2gzSjNJYW03b2dWTW9HMm15eDNZS2NhcmVnY01RUEp6NE9vRXBtMUo5NXBpWDFjT0YrbnRNdFVPQkhibEUwQVduVVZWajQvZDhFZlVnMGFZbGdYb212UjFLOS9VT3V3VHpGYitXdDkyQktXYmZCQnZ3YTh3N3lDYUduS3R1T2RPT0lLcXhyYXpuWFNZamFjR2RTM2pycVYyN1lDZUVKNXpQMVUxclhXdmJwZ1dCMkJFQk92Zm5nMXQyV204S0VoNFIvTXdCMnFhQ0s4U1RENnNYZ2MyYWtEZXF5Zy9pQUJaQkcrcVVWQWVaSWxIc2JPWlpyVkkyaEFrakVQUDVlRno4ZTh5UHd4VXpYemlWTGhPNlBqekprYVp4TVVSOFRZR0NBZE4zVEljTXBiUnpYdnNhS0ZzMFB0Yk5mY2ZEa0FMQlJ4d3FuTTk2N3dzQm9lTjJaN01lZHpFeGFVeXBHZ0ZXeHZESVpwMXhvaldlK0pGRVB0V3pHU21kVE9zT0x3a2tvVTV3R0RoYjA4UXM4RGRzUFhlVGtkRmtUV20rTmxZOW5NM2hmbE5RNGMxN3pxSnZHQytmb1dxTHdXSHRzL2NZVWNWdmZtcndCbERqMUhLdjZuMjdXWG4xSkJCT0EyeFFRZStCRVJTQ0U4dDJrL2dyQVBoRzFEQnNKOVpiazFrSG1VR3R1dENWd0s2QXFTYTVCcTk3Mmd2STR0ZDlTS3pyT3BTM3YyZDlBaEU4eUNOcmY4NXFIejREeWIwOVppaVdVNlJKdm5MVDNxMm0ydDdGc2U5WXRqa0o4L3B2WTEyVHV2aWROK0ZIZExKT3hkSzhZS1cwc0pzV1Zoa3FpR2YrU252UTBjTUp0WTJKWXVlY3VLbnpWWkl3QjRxS1dOeTB5bGZ6bk9jVE5UaW4ydERQK25JNGl1NDZVMzkwWUFIMWpESUFVVDA0YWpaS0pqblJWdnMvL2FkTHZzMDNzcDhkZGttVms0ZEZEQ1BjOWhZSWNyWlE0QW1CaTFNN1dGck9QNHQ1Yzl1c1MwSTVoN085OW9KcWNXWVNERXhiVVRqOUk1VFVlYzROOTFkZTdQMHZGQ0gxNVRkNDZmTVVXNkhTTE1ZbXhhYjZTTUUzM2lYMXVWSzZIbFU1V1lvWW5WeWZlb0RLNmhRYjNrWlZ2SGZjSXlNb2JJeEFHNUNsb0Y4elcyaWVaZFowbFRjaWhlVWZlNkVhV0htV3lGbEVkU3VHZTVFQmlMTVBuSEwyL0dqUXVUUUtWaCtSS0VkRE5mNS9XNDkrSzBuSlRFMXBMZkdieVBQRC8vU0dyMDFYbVhjZDc2SjB2K0RvcGEyV25tckpYUnRnY2dCQSs1L1BZckhRclZVL2tIb3Q2VGJpVTZlUVRDeVdSZDdicGQ1d05nTGkwYkg0MzhMQjJQUkpEOGxTYUNsckdOVStlUjRxWVFGWndBUklpSEloS0VTdGhFeXV6OGFCaXE2clowNy85VXIvUmFJSjV3aW1PQi9kdUlWNDU5OW5YWmVpRlBHTG9kS2NYYzJpbHpMYUpXczVodWhpRVZVOGlQdUhrRkVpbHJLaG8xVEIwRGRaekhIOGNGZCtRUE9uVEF3VUx1UVVyOUxzYmZoUmUyUDc3OXhBd0xJVGVVZENsMVJwbUNXZThJRmFHZSt3QjNOb2hMZyswRFphdVZwUm9WYlJLM29FU2xOQ0xVUnBya2t3MlZwc0I1RWdGdmQyMlBWOFdoODYvdS9QLzBUZFdneS9qaDA4U3NEMkhKRWY3eHhmb1ZrN1l2bUp4Y3U3NFFJcGJ2MStkNi9UY2pQaEZhbnREcFY4ek9VQkVwRkVUMCtiZkZ4OGg3WUJnMDBBTXM2Y2lLVWFIYXdLUy9QMFhUUGl0dmFOVFhpM2djMmFrRGVxeWcvaUFCWkJHK3FVV1doS1RvZmxCTSsvL2tDQ0lUK3Yxa01JV1krK2Z6T2Q3Q21GOXMwWURrazI2RjJOOE1MMGV1Y0s1TEdnYk9aK0JGNEFKZXJlWUtFVjZKV0FNRXNZUDRCOFVCbDErYloxOTQwT0pWTzNlL3FXMm90OGVYU29ScEVLMmdxbjRSZFVDVGU1OXgyTU5KSHNicWRRS1Y0K245TGZiTlZnRDFxRURwUUFlRG5iRStnVE1IU1NBdG03Y2k1dkIrNXVKTW91aDNvV1FUWmJUWTNxNWNDY1FyL1NvcjZBQjVvUjNNb2dUR1oxUzlCTVhjd1NrRlhhbDk5Z0gwdDBDZGpqc0IwMllDcDk1UjZ5dWhueVI1M1E5ZzlBdEJYcExQck1HbVlvTVZTc1ptZ1MrbWVYWVRjRjdyTDhBcHUrZWlWaUYxWGl3aEQ1aU9GR1Foelp6RnRIOTZiSWx3dHp5RDVNemV1cGc4Nm1sa0tzVzJXb1VnNUJkUjhiOTZ6R2JySU1POElLLzJUV3FRc2VPR280M2FYRWxmSUJ5SzM4NkdodVdRcTgxUG50NmtvWEtpdGNJQkJ1YkFhVU1RQjg2TEtxMm90RDE1TkZ0R3pRMUJNOFQ5M3RGWFpWajlHTjJXRHlmazdVUkFzOCtHbnIzZEhCd1JaUUV5dVdUMTdYS0NUUlFXZ01qL1pQc0RtNG5DWHNZS0hiaVhaWjlPMDVvSlEvQVB0N0UyYU5sdjB6elc2OWJPUHl4ZXhDY0RJWlllRlJMVEg0SWtGNndkN2VsRjVKR0VBc2ErYWhRcjlQbTN4Y2ZJZTJBWU5OQURMT25JaWhsZldZSzhBUEN1Q3JGUlhrdFkrSjVPdkdkMk1HU0cwbm9KdFdYU0xOVXJ6RTc3YmhqcHUvV3dENUdQWGZCbVdKQk9NRDB6VzVWSUpDamtxYVBhNEZ5d3ZnYitiYXlnZUpORGJsNml5akZIZVlPNXA3UGo5MFNzT2MxbWYxTER3WitVNUJjcjlBV1Z5ek1PTStRNk9wSjFGMEd3b0Q3SE1yc1Q4aldDSi9ZVXB2aExSN1lIYVZnUWpJK0xqSlk5bmNEM0phTVVOSDdPNCtjZldhRkRUYkhkc3BNOWI0YjJIMVBjakZtMzBnMHAzY2Ivall5aThEYVZXc0wvOXVRUU1TY29HM2VpU0ErRmZYTXJvRWtySGZvVStWTXd2cU5mSnFDMzhlb3lGNGVqajFQaXpVTm1ObzJVekM3cVFZNnhSRkJ5VHZGK2FBTGR4TkppYzQ2ZGFiZ05lOFZqdkg3Z05QKzljTjFISVR6eUtPaUp4SEhlRnRGM1ozTnYyRG1aOW96ZGtUVVErOUpEZitIYmNvYzYweHpWZlRyU0tTVzRvSU1jcmtkOGNOdHc5dUF0WHhKcWc4aXhPb3R2WG9sSTJNdmJ1S0tGT0xNTmpyelYwMVVHdnpEdjdDYUZ3eEpGdHVDS0MyQTcxNmtycjBSMksyem1LT1hpSFN1ODN4NG82TXFhWEZOZW5XMkpiSWUraW1DNnh1S1E5eTRVbFdrcGRUTlJoOE1Xd1VTZGtGRFU0emRPd1puWkRUbG53anU5ZzRiQzd4bEFJNHUyeEw4SFVjTTlVUVUyNFNKR011QXR5TUVFYm1QdGNuS0tHUlVkV3grSXVrdnk2VjM2VWNiSzlmZ1kvWU81MkMyMzIzUGh3UUJsaGQ4NDdNSmUvTFdXNlhLVE01WkE0YlV4NHZXNWd2SlczMGhIcXY5YTBid1MycE9hSUF0VTFiRjdlVU9JNDFHandSd0R4aG5RZ3Evam83bkpZeFdHaHBERkVhaFd3UWJ5Ukh5SnJuSUhiZm1EQVNMeFRyWmZ0aHZXL2k1MmFjVTh1K3FmTnhXT0c2SkhLdVFwa1ZMZHkvcVhHcjdIVkpzeDdMWW9XMEF6R25Va2hvMldzNDFEa1NBb1RlY2w2UmdURHNWeHV4R0pHNThKZGovUjdrRnprMi9TbzFYZ2JvUWt1a25xc3FENGVVWnRFKzI1Q0t5Um90OTNLSXoyVVhpWitJdUxsRjlxRlFCRkJCNFBrSTZpL1FSUWVuN0J4akZtdkxPT1lTZ0NhdjVzWUNMeFRyWmZ0aHZXL2k1MmFjVTh1K3FmTnhXT0c2SkhLdVFwa1ZMZHkvcVhHcjdIVkpzeDdMWW9XMEF6R25Va2hvMldzNDFEa1NBb1RlY2w2UmdURHNXMkxJM004c1cwN2U5TW9VamhxdGJvRHJnR1Mvam92eTdhNUI0QnVoSzExa1JRUlI1dXlaVlFnRDZQSVdua0xhNFQyeVh3VnBzTFRIYUR4ejZGZTNvMC9sZ3VReEs1OGNsOTRMc1VDajFUcHl0Z2tVeFNFMmpxUExJYnhLYzExbE44ZFhnVUZvdHZlWmIrVFNaQmhEazVrbWcxblRJUGxEQVlObklBS2Y1NW5xcUpOYXFJcG04Ui9mNTVSdEU4dkxtSE8rZmZtNm1iUHdzNU9jbW9zTWNMcitydEpyemJyOE5BWWhGcTVJMDF1RUdXNzRxakdWTklkS2Y0dkx4eE1xaG9pQVhaUEZyN0R3dzVpQUg4ZTZ6N3FGT2ZSZERsTHdGZ0dXdk5XaWNpM2ZFTWZhak1mTTE0YjZnZU02WjlRNnljVzBlTFN5Zkg5MG1HbjRwNTk2ajB6cFF5K3c3ODg3RGtKeXZ2MnduT0o4WkNQM2ZCUThYL0xlT3hvVzl5b0pla29zUGZ5Um00QnZ4YVpaVXhmbEU2aG5hRm5QMmxvQUQzcm5KRUpGUG9WT1Z1VnJjaVF2SFVRaU9UdSs4MW9acUtOL28vY0lwSWxUZ3FzUGpORjhMOUYwMHNrOHduRVdhZE03RjBwNEJUditNeUV5NVJTTHJTMDdBRzQvNUlNQm10WEN4T3dGdGs3ZzhGTnpoOVpKM1BJcDVuU1JWUVgzZVlTTmJYbUJneVRxZWJhRTh1NlVFQjNuWWExN3pXaGtxQ21zV29nL2JudDN3cVVNaXF0VENYcjEzK0wrZjJXdEkzcnBSS2FKbWNyeWpaTzNDVUZnZmpMUVBhVFhobXJRdVpBQ1ZGTytkaGtBYk8yeWg3dFNGRFJUN3prOFJ1Rk9Lb2ZnMFRsMUlCNDJZaE1ZK09mbXFnQjZnaDhWMklCcGd2MXRPVU5mVnhyMmdpaDBjYjJ6ZWV3bXErSzZPUEJvQm5JanhlU3UxTnVFKzBiSElYWTdKZFJoQm0wMExDMUNqTlNFenA5bGJVYzF4UE9uQ1lXZHhQNXVkcnJJWVh6dVBpNGZXN3FFY0x3YkxJN0xUTGxLR2trbEtDcUZnQmdkb0RkWnpISDhjRmQrUVBPblRBd1VMdXErM3Q1QmZmUmY2cFF1aDNaY3o3NElPL1RCVm5zZ3lNZzNjaTNobmJ5QjBOQmc2WTlNUlVQTEd6OE92QXNvTmNPeE9IZUo0SEo1UE9rNVVzclM4VWd2RGgyY1QyV2tvZVQ0UFFPNHY5eFo3N0ZlMG9nQVVoOTNKbm1DU1ZyeDFMdGJ2REl1WEEwOUc4SFpkSnI3aitIamNZRkNrMm1pSlh1ampwNnIyN29YYjhGVW9RMm9TeU9vOFNoL0lHQlplNzBhWkNhVFpLRVlzSkVBYmdsWG0vemhiOXprUzBjc0tjcnlkbG5YREdLRDIrcHBiU0hhOHIwdTNBd2twOXFzazE0U1EwQ3J5T1loWGUwdnlBVmd2TkhRVnQvOTBKdG8vbE9QbXk1Y3hzR3ZCcitnT1BoUHVleXFTZ0JkdkE2TUJ5RU5Qb3hiUHhEeUc4TDVaZWd5ZmxsSWpnME9TaFliV0twbjAzczl6NTFBcDRoQlAyZFQ2am5mcER3UThEYnVoQU9ENHpFMEV1SytEVWxhMGEwMVRmbk95U3p5UEhFQi9OUkFHWWwzVDZMblY2NVhGdnpjOUZDVDFvNFkrbnIrSVliNXFJM2poUE5BNVhGWFY0TGtSYU9EVWhEa244OUg3YVlzenpKWGY4M3hBMkdXVTNjeUJDTU1tbzNCZWVwZ3ZVclVPZlluV2tteXFUalVJQVlwV0p6djhNRlVzUTdrUUFLMkxVRmNXd3lITTZjUndIV2ZTTFJjUnV1K25DcEJYSlxcXCIpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuoznuqdcIixcInBhdGhcIjpcImVyXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZMKgID0gW107XFxuTVlfVVJMID0gYmFzZTY0RGVjb2RlKGdldFBhcmFtKCd1JykucmVwbGFjZSgvI2ltbWVyc2l2ZVRoZW1lIy9nLCAnJykpO1xcbi8vbG9nKE1ZX1VSTClcXG52YXLCoCBodG1swqAgPSDCoGZldGNoKE1ZX1VSTClcXG5cXG5pZiAoZ2V0UGFnZVRpdGxlKCkgPT0gJ+ivpuaDhScpIHtcXG4gICAgc2V0UGFnZVRpdGxlKHBkZmgoaHRtbCwgJ3RpdGxlJiZUZXh0JykpXFxufVxcblxcbmZ1bmN0aW9uIGRlbGVsKGh0bWwsIHNlbGVjdCkge1xcbiAgICBsZXQgSnNvdXAgPSBvcmcuanNvdXAuSnNvdXA7XFxuICAgIHZhciBkb2MgPSBKc291cC5wYXJzZShodG1sKTtcXG4gICAgdmFyIGVsZW1lbnRUb1JlbW92ZSA9IGRvYy5zZWxlY3Qoc2VsZWN0KTtcXG4gICAgaWYgKGVsZW1lbnRUb1JlbW92ZSAhPSBudWxsKSB7XFxuICAgICAgICBlbGVtZW50VG9SZW1vdmUucmVtb3ZlKCk7XFxuICAgIH1cXG4gICAgcmV0dXJuIFN0cmluZyhkb2MuaHRtbCgpKTtcXG59XFxuXFxuZnVuY3Rpb24gc21hbGwoc3RyKSB7XFxuICAgIHJldHVybiAn4oCc4oCc4oCd4oCdPHNtYWxsPicgKyBzdHIgKyAnPC9zbWFsbD4nXFxufVxcblxcbnZhciBmdWxsID0gcGRmaChodG1sLCAnLnRfZiYmSHRtbCcpLnJlcGxhY2UoL2ZpbGU9L2csICdzcmM9Jyk7XFxudmFyIHpmdWxsID0gZGVsZWwoZnVsbCwgJ3NjcmlwdCcpO1xcbi8vbG9nKHpmdWxsKVxcblxcblxcbnZhciBsYXp5ID0gJCgnJykubGF6eVJ1bGUoKE1ZX0hPTUUsIHJ1bGUpID0+IHtcXG4gICAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoJ2h0dHBzOi8vd3d3LjRraGRyLmNuL3RocmVhZCcpKSB7XFxuICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vcGFnZS9lcj9ydWxlPVxcXCIgKyBydWxlICsgXFxcIiZ1PVxcXCIgKyBiYXNlNjRFbmNvZGUoaW5wdXQpICsgXFxcIiNpbW1lcnNpdmVUaGVtZSNcXFwiXFxuICAgIH1cXG4gICAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoJ2h0dHBzOi8vd3d3LmFsaXl1bmRyaXZlLmNvbS9zLycpfHxpbnB1dC5zdGFydHNXaXRoKFxcXCJodHRwczovL3d3dy5hbGlwYW4uY29tL3MvXFxcIikpIHtcXG4gICAgICAgIC8vcmV0dXJuICdoaWtlcjovL3BhZ2UvZGV0YWlsP3J1bGU95LqR55uY5rGH5b2xJnVybD0nICsgaW5wdXQgKyAnPz9meXBhZ2UnXFxuICAgICAgICAvL3JldHVybiAnaGlrZXI6Ly9wYWdlL3B1c2g/cnVsZT3kupHnm5jlkJso5o6o6YCBKSZ1cmw9aGlrZXI6Ly9lbXB0eSMjJyArIGVuY29kZVVSSUNvbXBvbmVudChpbnB1dCkgKyAnPz8/ZnlwYWdlJztcXG4gICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL2FsaXl1bj9ydWxlPeS6keebmOWQmy7nroAmcGFnZT1meXBhZ2UmcmVhbHVybD1cXFwiICsgZW5jb2RlVVJJQ29tcG9uZW50KGlucHV0KTtcXG4gICAgfSBlbHNlIGlmIChpbnB1dC5pbmNsdWRlcygnYWN0aW9uPXJlcGx5JykgJiYgaW5wdXQuc3RhcnRzV2l0aCgnaHR0cHM6Ly93d3cuNGtoZHIuY24vJykpIHtcXG5cXG4gICAgICAgIHJldHVybiBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9yZXBseT9ydWxlPScgKyBydWxlKSkucnVsZSlcXG5cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJlcXVpcmUoXFxcImh0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTQ4MzFcXFwiKTtcXG4gICAgICAgIHJldHVybiBpbnB1dFxcbiAgICB9XFxufSwgTVlfSE9NRSwgTVlfUlVMRS50aXRsZSlcXG5cXG52YXIgcmVnZXgxID0gLzxpbWcuKj8+L2c7XFxudmFyIHJlZ2V4MiA9IC8oPGJyPikuXFxcXDEvZztcXG52YXIgcmVnZXgzID0gL2NvbG9yPVxcXCIuKz9cXFwiL2c7XFxudmFyIHJlZ2V4NCA9IC/nroDku4soXFxcXHPCtyl7MSx9Lio/L2c7XFxudmFyIHJlZ2V4NSA9IC8g44CA44CAL2c7XFxudmFyIHJlZ2V4NiA9IC/nroDku4vvvJovZztcXG52YXIgcmVnZXg3ID0gL+eugOS7iy4rL2c7XFxudHJ5IHtcXG5cXG4gICAgdmFyIHRpdGxlID0gcGRmaChodG1sLCAnLnRfZiYmZm9udDptYXRjaGVzKOWvvOa8lHzkuLvmvJQpJiYqOm5vdChicikmJkh0bWwnKS5yZXBsYWNlKHJlZ2V4MSwgJycpLnJlcGxhY2UocmVnZXgyLCAnJykucmVwbGFjZShyZWdleDMsICcnKS5yZXBsYWNlKHJlZ2V4NywgJycpXFxuICAgIC8vbG9nKHRpdGxlKVxcbn0gY2F0Y2gge1xcbiAgICB2YXIgdGl0bGUgPSAnJ1xcbn1cXG50cnkge1xcbiAgICAvL3ZhciBkZXNjID0gcGRmaChodG1sLCAnLnRfZiYmZm9udFtjb2xvcj1cXFwiIzAwMDAwMFxcXCJdLC0xJiZUZXh0JylcXG4gICAgdmFyIHhkZXNjID0gcGRmaChodG1sLCAnLnRfZiYmZm9udDptYXRjaGVzKOeugOS7iykmJio6bm90KGJyKSYmSHRtbCcpXFxuICAgIHZhciBkZXNjID0geGRlc2MubWF0Y2goL+eugOS7iyg/OlxcXFxzKT8oPzo6fO+8mnzCtykuKy9nKVswXS5yZXBsYWNlKC88W14+XSs+L2csICcnKS5yZXBsYWNlKHJlZ2V4NCwgJycpLnJlcGxhY2UocmVnZXg1LCAnJykucmVwbGFjZShyZWdleDYsICcnKVxcbiAgICAvL2xvZyhkZXNjKVxcbn0gY2F0Y2gge1xcbiAgICB2YXIgZGVzYyA9ICcnXFxufVxcblxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2V4P3J1bGU9JyArIE1ZX1JVTEUudGl0bGUpKS5ydWxlKVxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPHNtYWxsPicgKyB0aXRsZSArICc8L3NtYWxsPicsXFxuICAgIMKgwqDCoMKgZGVzYzogwqBkZXNjLFxcbiAgICDCoMKgwqDCoHBpY191cmw6IHBkKGh0bWwsICcuem9vbSYmZmlsZScpICsgJ0BSZWZlcmVyPScgKyBNWV9VUkwsXFxuICAgIMKgwqDCoMKgY29sX3R5cGU6IMKgICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJyxcXG4gICAgdXJsOiBNWV9VUkwsXFxufSlcXG5cXG5leE1ldGhvZC5zZXREZXNjKHpmdWxsLCAwLCBmYWxzZSk7XFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLigJzigJzigJ3igJ08Zm9udCBjb2xvcj0nYmx1ZSc+4o+s6ZW/5oyJ5pu05aSa6YCJ6aG54o+sPGZvbnQ+XFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIixcXG4gICAgdXJsOiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2UsXFxuICAgICAgICB0ZXh0U2l6ZTogMThcXG4gICAgfVxcbn0pO1xcblxcbmZ1bmN0aW9uIGZsYXRBcnJheShhcnIsIGkpIHtcXG4gICAgaSA9IGkgfHwgMTtcXG4gICAgY29uc3QgZmxhdCA9IChhcnIsIGRlZXApID0+IHtcXG4gICAgICAgIGlmIChkZWVwID4gMClcXG4gICAgICAgICAgICByZXR1cm4gYXJyLnJlZHVjZSgocHJlLCBjdXIpID0+IHByZS5jb25jYXQoQXJyYXkuaXNBcnJheShjdXIpID8gZmxhdChjdXIsIGRlZXAgLSAxKSA6IGN1ciksIFtdKTtcXG4gICAgICAgIHJldHVybiBhcnIuc2xpY2UoKTtcXG4gICAgfVxcbiAgICByZXR1cm4gZmxhdChhcnIsIGkpO1xcbn1cXG5cXG4vL3ZhciDnur/ot68gPSBwZGZhKGh0bWwsJy50X2YmJnRyOmhhcyhhW2hyZWZePVxcXCJtYWdcXFwiXSk6bm90KDpoYXMoOm1hdGNoZXMo4o+sKSkpfHx0cjpoYXMoYVtocmVmXj1cXFwiaHR0cHM6Ly93XFxcIl0pLDE6MicpXFxudmFyIOe6v+i3ryA9IHBkZmEoaHRtbCwgJyNwb3N0bGlzdCYmLnRfdGFibGU6aGFzKGEpJylcXG7nur/ot68gPSDnur/ot68ubWFwKHggPT4ge1xcbiAgICB2YXIgbGlzdCA9IHBkZmEoeCwgJ2JvZHkmJnRyJyk7XFxuICAgIHJldHVybiBsaXN0O1xcbn0pXFxuXFxudmFyIOe6v+i3rzIgPSBwZGZhKGh0bWwsICdib2R5JiZkaXZbYWxpZ249bGVmdF0nKTtcXG5cXG7nur/ot68gPSDnur/ot68uY29uY2F0KOe6v+i3rzIpO1xcblxcbue6v+i3ryA9IGZsYXRBcnJheSjnur/ot68pO1xcblxcblxcbmlmICjnur/ot68ubGVuZ3RoID09IDApIHtcXG4gICAg57q/6LevID0gcGRmYShodG1sLCAnI3Bvc3RsaXN0JiYudF9mJiZhJykuZmlsdGVyKHggPT4gLyhtYWduZXQ6KS8udGVzdCh4KSlcXG5cXG59XFxuaWYgKOe6v+i3ry5sZW5ndGggPT0gMCkge1xcbiAgICDnur/ot68gPSBwZGZhKGh0bWwsICcudF9mc3omJmFbaHJlZio9aHR0cHM6Ly80a2hkci5jbi90aHJlYWRdJylcXG59XFxuXFxudmFyIG9wZW4gPSB7XFxuICAgIGNvcHk6IGZ1bmN0aW9uKHVybCkge1xcbiAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICB0aXRsZTogXFxcIuWkjeWItumTvuaOpVxcXCIsXFxuICAgICAgICAgICAganM6IEpTT04uc3RyaW5naWZ5KFxcXCJjb3B5Oi8vXFxcIiArIHVybCksXFxuICAgICAgICB9XFxuICAgIH0sXFxuICAgIG1hZ25ldDogZnVuY3Rpb24odXJsKSB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIHRpdGxlOiBcXFwi5YW25a6D5bqU55So5omT5byAXFxcIixcXG4gICAgICAgICAgICBqczogSlNPTi5zdHJpbmdpZnkoXFxcIm1hZ25ldDovL1xcXCIgKyB1cmwpLFxcbiAgICAgICAgfVxcbiAgICB9LFxcbiAgICBhbGk6IGZ1bmN0aW9uKHVybCkge1xcbiAgICAgICAgcmV0dXJuIFt7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLkupHnm5jlkJso5o6o6YCBKVxcXCIsXFxuICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKGlucHV0KSA9PiB7XFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9wYWdlL3B1c2g/cnVsZT3kupHnm5jlkJso5o6o6YCBKSZ1cmw9aGlrZXI6Ly9lbXB0eSMjJyArIGVuY29kZVVSSUNvbXBvbmVudChpbnB1dCkgKyAnPz8/ZnlwYWdlJztcXG4gICAgICAgICAgICB9LCB1cmwpXFxuICAgICAgICB9LCB7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLkupHnm5jmsYflvbFcXFwiLFxcbiAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKChpbnB1dCkgPT4ge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS9kZXRhaWw/cnVsZT3kupHnm5jmsYflvbEmdXJsPScgKyBpbnB1dCArICc/P2Z5cGFnZSdcXG4gICAgICAgICAgICB9LCB1cmwpXFxuICAgICAgICB9LCB7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLkv53lrZhcXFwiLFxcbiAgICAgICAgICAgIGpzOiBKU09OLnN0cmluZ2lmeSgnc21hcnRkcml2ZTovL3NoYXJlL2Jyb3dzZT9zaGFyZUlkPScgKyB1cmwucmVwbGFjZSgvLio/KFxcXFx3KykkL2csICckMScpICsgJyZzaGFyZVB3ZD0nKVxcbiAgICAgICAgfV1cXG4gICAgfVxcbn1cXG5cXG52YXIgdXJscyA9IFtdO1xcbmZvciAobGV0IGkgaW4g57q/6LevKSB7XFxuICAgIGlmICgh57q/6LevW2ldLmluY2x1ZGVzKCdocmVmJykpIHtcXG4gICAgICAgIGNvbnRpbnVlO1xcbiAgICB9XFxuXFxuICAgIGxldCBsaXN0ID0gW107XFxuICAgIHZhciBhY3Rpb24gPSBbXTtcXG4gICAgdmFyIHVybCA9IHBkKOe6v+i3r1tpXSwgJ2EmJmhyZWYnKTtcXG4gICAgaWYgKHVybCA9PSAnaHR0cHM6Ly96bWsucHcvJykge1xcbiAgICAgICAgY29udGludWU7XFxuICAgIH1cXG5cXG5cXG4gICAgaWYgKHVybHMuaW5jbHVkZXModXJsKSkge1xcbiAgICAgICAgY29udGludWU7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB1cmxzLnB1c2godXJsKTtcXG4gICAgfVxcbiAgICB2YXIgdGVtcCA9IFxcXCI8dGFibGU+XFxcIiArIOe6v+i3r1tpXSArIFxcXCI8L3RhYmxlPlxcXCJcXG5cXG4gICAgLy9sb2codGVtcClcXG4gICAgbGlzdCA9IHBkZmEodGVtcCwgJ2JvZHkmJnRyJylcXG5cXG4gICAgbGlzdCA9IGxpc3QubGVuZ3RoID09IDAgPyBwZGZhKOe6v+i3r1tpXSwgJ2JvZHkmJmEnKSA6IGxpc3Q7XFxuICAgIGxpc3QgPSBsaXN0Lm1hcCh4ID0+IHBkZmgoeCwgJ1RleHQnKSkuZmlsdGVyKHkgPT4gIXkuaW5jbHVkZXMoJ21hZ25ldDo/eHQnKSAmJiB5ICE9IFxcXCJcXFwiKTtcXG4gICAgaWYobGlzdC5qb2luKCcnKS5pbmNsdWRlcyhcXFwiRW1haWzvvJpNYWluLjRLSERSQEZveE1haWwuQ29tXFxcIikpe1xcbiAgICAgICAgY29udGludWU7XFxuICAgIH1cXG5cXG5cXG4gICAgYWN0aW9uLnB1c2gob3Blbi5jb3B5KHVybCkpO1xcbiAgICBpZiAodXJsLmluY2x1ZGVzKCdtYWduZXQnKSkge1xcbiAgICAgICAgYWN0aW9uLnB1c2gob3Blbi5tYWduZXQodXJsKSk7XFxuICAgIH1cXG4gICAgaWYgKHVybC5zdGFydHNXaXRoKCdodHRwczovL3d3dy5hbGl5dW5kcml2ZS5jb20vcy8nKSkge1xcbiAgICAgICAgdmFyIGFyciA9IG9wZW4uYWxpKHVybCk7XFxuICAgICAgICBhY3Rpb24gPSBhY3Rpb24uY29uY2F0KGFycik7XFxuICAgIH1cXG5cXG4gICAgaWYgKGxpc3QgPT0gJycpIHtcXG4gICAgICAgIGxpc3QgPSBbdXJsXTtcXG4gICAgfVxcblxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHNtYWxsKGxpc3Quam9pbignXFxcXG4nKS5yZXBsYWNlKCfotYTmupDkuIvovb3lnLDlnYDij6wnLCAnJykpLFxcbiAgICAgICAgdXJsOiB1cmwgKyBsYXp5LFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICAgICAgLy8gZGVzYzogJ+KAnOKAnCcrcGRmaCjnur/ot69baV0sJ2ZvbnQsLTEmJlRleHQnKSsn4oCd4oCdJyxcXG4gICAgICAgIC8vcGljX3VybDogXFxcIlxcXCJcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgbG9uZ0NsaWNrOiBhY3Rpb25cXG4gICAgICAgIH1cXG4gICAgfSk7XFxufVxcblxcbmlmIChodG1sLmluY2x1ZGVzKCdpZD1cXFwiaGlkZGVuTWFya2VyXFxcIicpKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogXFxcIumcgOimgemqjOivgeeggeeahOWcsOWdgDxpbWcgc3JjPVxcXFxcXFwiXFxcIiArIGNvbmZpZy5ob21lICsgXFxcIi9pbWcvZndoLmdpZlxcXFxcXFwiJy8+XFxcIixcXG4gICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0JyxcXG4gICAgfSlcXG4gICAgdmFyIHl6bW9iaiA9IHtcXG4gICAgICAgIFxcXCJ0aWRcXFwiOiBwZGZoKGh0bWwsICcjaGlkZGVuTWFya2VyJiZkYXRhLXRpZCcpLFxcbiAgICAgICAgXFxcImZvcm1oYXNoXFxcIjogcGRmaChodG1sLCAnaW5wdXRbbmFtZT1mb3JtaGFzaF0mJnZhbHVlJyksXFxuICAgICAgICBcXFwicGFzc1xcXCI6IHBkZmgoaHRtbCwgJyNoaWRkZW5NYXJrZXImJmRhdGEtcGFzcycpLFxcbiAgICAgICAgXFxcImNvZGVcXFwiOiAnJ1xcbiAgICB9XFxuXFxuICAgIHZhciBob21lID0gY29uZmlnLmhvbWU7XFxuICAgIHZhciBjb29raWUgPSBnZXRDb29raWUoaG9tZSk7XFxuICAgIHZhciBoZWFkZXJzID0ge1xcbiAgICAgICAgQ29va2llOiBjb29raWUsXFxuICAgICAgICBPcmlnaW46IGNvbmZpZy5ob21lLFxcbiAgICAgICAgUmVmZXJlcjogTVlfVVJMLFxcbiAgICB9XFxuXFxuICAgIGxldCB5em11cmwgPSBnZXRIb21lKE1ZX1VSTCkgKyAnL3BsdWdpbi5waHA/aWQ9YnBocF9wYXNzOmNoZWNrJztcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn56Gu6K6kJyxcXG4gICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxcbiAgICAgICAgZGVzYzogJ+iOt+WPluWIsOeahOmqjOivgeeggScsXFxuICAgICAgICB1cmw6ICQudG9TdHJpbmcoKHUsIG8sIHIsIGgpID0+IHtcXG4gICAgICAgICAgICBpZiAoaW5wdXQgPT0gJycpIHtcXG4gICAgICAgICAgICAgICAgdG9hc3QoJ+mqjOivgeeggeS4uuepuicpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBvWydjb2RlJ10gPSBpbnB1dDtcXG4gICAgICAgICAgICAvL2xvZyhvKVxcbiAgICAgICAgICAgIHZhciBkYXRhID0gcG9zdCh1LCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGgsXFxuICAgICAgICAgICAgICAgIGJvZHk6IG9cXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIC8vbG9nKGRhdGEpO1xcbiAgICAgICAgICAgIGlmIChkYXRhID09IDEpIHtcXG4gICAgICAgICAgICAgICAgdG9hc3QoJ+ivgeaIkOWKn+WKnyDiiJonKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHRvYXN0KCfpqozor4HnoIHkuI3mraPnoa4nKVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcbiAgICAgICAgfSwgeXptdXJsLCB5em1vYmosIE1ZX1VSTCwgaGVhZGVycyksXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ3l6bWNvZGUnLCAnJykgfHwgXFxcIlxcXCIsXFxuICAgICAgICAgICAgb25DaGFuZ2U6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcigneXptY29kZScsIGlucHV0KTtcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcbiAgICB9KVxcbn1cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLova7mkq1cIixcInBhdGhcIjpcImx1bmJvXCIsXCJydWxlXCI6XCJqczpcXG5mdW5jdGlvbiBiYW5uZXIodGl0bGUsIHN0YXJ0LCBhcnIsIGRhdGEsIGNmZykge1xcbiAgICBsZXQgaWQgPSB0aXRsZSArICdsdW5ibyc7XFxuICAgIHZhciBybnVtID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZGF0YS5sZW5ndGgpO1xcbiAgICB2YXIgaXRlbSA9IGRhdGFbcm51bV07XFxuICAgIHB1dE15VmFyKCdybnVtJywgcm51bSk7XFxuICAgIGxldCB0aW1lID0gNTAwMDtcXG4gICAgbGV0IGNvbF90eXBlID0gJ3BpY18xX2NhcmQnO1xcbiAgICBsZXQgY29sb3IgPSBcXFwid2hpdGVcXFwiO1xcbiAgICBsZXQgZGVzYyA9ICcnO1xcbiAgICBpZiAoY2ZnICE9IHVuZGVmaW5lZCkge1xcbiAgICAgICAgdGltZSA9IGNmZy50aW1lID8gY2ZnLnRpbWUgOiB0aW1lO1xcbiAgICAgICAgY29sX3R5cGUgPSBjZmcuY29sX3R5cGUgPyBjZmcuY29sX3R5cGUgOiBjb2xfdHlwZTtcXG4gICAgICAgIGRlc2MgPSBjZmcuZGVzYyA/IGNmZy5kZXNjIDogZGVzYztcXG4gICAgfVxcblxcbiAgICBhcnIucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogY29sX3R5cGUsXFxuICAgICAgICBpbWc6IGl0ZW0uaW1nLFxcbiAgICAgICAgZGVzYzogZGVzYyxcXG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxcbiAgICAgICAgdXJsOiBpdGVtLnVybCxcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgaWQ6IGlkKydiYXInLFxcbiAgICAgICAgfVxcbiAgICB9KVxcblxcbiAgICBpZiAoc3RhcnQgPT0gZmFsc2UgfHwgZ2V0TXlWYXIoJ2JlbnN0YXJ0JywgJ3RydWUnKSA9PSAnZmFsc2UnKSB7XFxuICAgICAgICB1blJlZ2lzdGVyVGFzayhpZClcXG4gICAgICAgIHJldHVyblxcbiAgICB9XFxuICAgIFxcbiAgICAvL2xvZyhkYXRhKVxcblxcbiAgICBsZXQgb2JqID0ge1xcbiAgICAgICAgZGF0YTogZGF0YSxcXG4gICAgfTtcXG5cXG4gICAgcmVnaXN0ZXJUYXNrKGlkLCB0aW1lLCAkLnRvU3RyaW5nKChvYmosaWQpID0+IHtcXG4gICAgICAgIHZhciBkYXRhID0gb2JqLmRhdGE7XFxuICAgICAgICB2YXIgcnVtID0gZ2V0TXlWYXIoJ3JudW0nKTtcXG5cXG4gICAgICAgIHZhciBpID0gTnVtYmVyKGdldE15VmFyKCdiYW5uZXJpJywgJzAnKSk7XFxuICAgICAgICBpZiAocnVtICE9ICcnKSB7XFxuICAgICAgICAgICAgaSA9IE51bWJlcihydW0pICsgMVxcbiAgICAgICAgICAgIGNsZWFyTXlWYXIoJ3JudW0nKVxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBpID0gaSArIDE7XFxuICAgICAgICB9XFxuICAgICAgICAvL2xvZyhpKVxcbiAgICAgICAgLy9sb2coZGF0YS5sZW5ndGgpXFxuXFxuICAgICAgICBpZiAoaSA+IGRhdGEubGVuZ3RoIC0gMSkge1xcbiAgICAgICAgICAgIGkgPSAwXFxuICAgICAgICB9XFxuICAgICAgICB2YXIgaXRlbSA9IGRhdGFbaV07XFxuICAgICAgICAvL2xvZyhpdGVtKVxcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICB1cGRhdGVJdGVtKGlkKydiYXInLCB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxcbiAgICAgICAgICAgICAgICBpbWc6IGl0ZW0uaW1nLFxcbiAgICAgICAgICAgICAgICB1cmw6IGl0ZW0udXJsLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgLy9uYW1lOiBpdGVtLnRpdGxlLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgLy9zbmFtZTogaXRlbS5leHRyYS5zbmFtZSxcXG4gICAgICAgICAgICAgICAgICAgIC8vc3R5cGU6IGl0ZW0uZXh0cmEuc3R5cGUsXFxuICAgICAgICAgICAgICAgICAgICAvL3N1cmw6IGl0ZW0udXJsLFxcbiAgICAgICAgICAgICAgICAgICAgLy9pbWc6aXRlbS5pbWcsXFxuICAgICAgICAgICAgICAgICAgICAvL3BhZ2VUaXRsZTogaXRlbS50aXRsZS5yZXBsYWNlKC88W14+XSs+L2csICcnKSxcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgbG9nKGUubWVzc2FnZSlcXG4gICAgICAgICAgICB1blJlZ2lzdGVyVGFzayhpZClcXG4gICAgICAgIH1cXG4gICAgICAgIHB1dE15VmFyKCdiYW5uZXJpJywgaSk7XFxuXFxuICAgIH0sIG9iaixpZCkpXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Zue5aSNXCIsXCJwYXRoXCI6XCJyZXBseVwiLFwicnVsZVwiOlwianM6XFxudmFyIGhvbWUgPSBjb25maWcuaG9tZTtcXG52YXIgY29va2llID0gZ2V0Q29va2llKGhvbWUpO1xcbnZhciB1cmwgPSBpbnB1dDtcXG52YXIgaHRtbCA9IGZldGNoKHVybCwge1xcbiAgICBoZWFkZXJzOiB7XFxuICAgICAgICBSZWZlcmVyOiB1cmwsXFxuICAgICAgICBDb29raWU6IGNvb2tpZSxcXG4gICAgfVxcbn0pXFxuXFxuLy9sb2coaHRtbClcXG52YXIgaGVhZGVycyA9IHtcXG4gICAgQWNjZXB0OiBcXFwidGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksaW1hZ2UvYXZpZixpbWFnZS93ZWJwLGltYWdlL2FwbmcsaW1hZ2UvdHBnLCovKjtxPTAuOCxhcHBsaWNhdGlvbi9zaWduZWQtZXhjaGFuZ2U7dj1iMztxPTAuOVxcXCIsXFxuICAgIENvb2tpZTogY29va2llLFxcbiAgICBPcmlnaW46IGNvbmZpZy5ob21lLFxcbiAgICBSZWZlcmVyOiB1cmwsXFxufVxcbi8vbG9nKGhlYWRlcnMpXFxuXFxudmFyIG9iaiA9IHtcXG4gICAgZm9ybWhhc2g6IHBkZmgoaHRtbCwgJyNmb3JtaGFzaCYmdmFsdWUnKSxcXG4gICAgcG9zdHRpbWU6IHBkZmgoaHRtbCwgJyNwb3N0dGltZSYmdmFsdWUnKSxcXG4gICAgd3lzaXd5ZzogcGRmaChodG1sLCAnI2VfbW9kZSYmdmFsdWUnKSxcXG4gICAgbm90aWNlYXV0aG9yOiBwZGZoKGh0bWwsICdpbnB1dFtuYW1lPW5vdGljZWF1dGhvcl0mJnZhbHVlJyksXFxuICAgIG5vdGljZXRyaW1zdHI6IHBkZmgoaHRtbCwgJ2lucHV0W25hbWU9bm90aWNldHJpbXN0cl0mJnZhbHVlJyksXFxuICAgIG5vdGljZWF1dGhvcm1zZzogcGRmaChodG1sLCAnaW5wdXRbbmFtZT1ub3RpY2VhdXRob3Jtc2ddJiZ2YWx1ZScpLFxcbiAgICBzdWJqZWN0OiBwZGZoKGh0bWwsICcjc3ViamVjdCYmdmFsdWUnKSxcXG4gICAgbWVzc2FnZTogJycsXFxuICAgIHVzZXNpZzogcGRmaChodG1sLCAnI3VzZXNpZyYmdmFsdWUnKSxcXG4gICAgc2F2ZTogcGRmaChodG1sLCAnI3Bvc3RzYXZlJiZUZXh0JyksXFxufVxcbi8vbG9nKG9iailcXG5cXG4kKCcnLCAn6K+35Yu/5rC05biWJykuaW5wdXQoKGgsIHUsIG9iaikgPT4ge1xcbiAgICBsb2coaW5wdXQpXFxuICAgIGlmIChpbnB1dC5sZW5ndGggPiA4KSB7XFxuICAgICAgICBvYmpbJ21lc3NhZ2UnXSA9IGlucHV0O1xcbiAgICAgICAgcG9zdCh1ICsgJyZleHRyYT0mcmVwbHlzdWJtaXQ9eWVzJywge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IGgsXFxuICAgICAgICAgICAgYm9keTogb2JqLFxcbiAgICAgICAgfSlcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdG9hc3QoJ+WbnuWkjeS4jeWwkeS6jjjkuKrlrZcnKVxcbiAgICB9XFxuICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG59LCBoZWFkZXJzLCB1cmwsIG9iailcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaJqeWxlVwiLFwicGF0aFwiOlwiZXhcIixcInJ1bGVcIjpcImpzOlxcbnZhciBjdXN0b21zID0ge307XFxuXFxubGV0IGV4TWV0aG9kID0ge1xcbiAgICBzdWJzdHI6IGZ1bmN0aW9uKHN0ciwgbWF4TGVuZ3RoKSB7XFxuICAgICAgICBsZXQgbGVuID0gMDtcXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgaWYgKHN0ci5jaGFyQ29kZUF0KGkpID4gMjU1KSB7XFxuICAgICAgICAgICAgICAgIGxlbiArPSAyO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGxlbisrO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAobGVuID4gbWF4TGVuZ3RoKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBzdHIuc2xpY2UoMCwgaSkgLy8rICcuLi4nO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiBzdHI7XFxuICAgIH0sXFxuICAgIGdldFByZXNldDogZnVuY3Rpb24oY3VzdG9tKSB7XFxuICAgICAgICBpZiAodHlwZW9mIGN1c3RvbXMgPT0gJ29iamVjdCcgJiYgIWN1c3RvbSkge1xcbiAgICAgICAgICAgIGN1c3RvbSA9IGN1c3RvbXM7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIGN1c3RvbSA9IGN1c3RvbSA/IGN1c3RvbSA6IHt9XFxuICAgICAgICB9XFxuICAgICAgICBjdXN0b20u5q2j5bqP6aKc6ImyID0gKGN1c3RvbS7mraPluo/popzoibIgJiYgdGhpcy5pc0NvbG9yKGN1c3RvbS7mraPluo/popzoibIpKSA/IGN1c3RvbS7mraPluo/popzoibIgOiAnIzFBQUQxOSc7XFxuICAgICAgICBjdXN0b20u6YCG5bqP6aKc6ImyID0gKGN1c3RvbS7pgIbluo/popzoibIgJiYgdGhpcy5pc0NvbG9yKGN1c3RvbS7pgIbluo/popzoibIpKSA/IGN1c3RvbS7pgIbluo/popzoibIgOiAnI0ZGMDAwMCc7XFxuICAgICAgICBjdXN0b20u5Zu+5qCHID0gY3VzdG9tLuWbvuaghyA/IGN1c3RvbS7lm77moIcgOiAnaHR0cHM6Ly9pMi4xMDAwMjQueHl6LzIwMjMvMDYvMTAvaDR6NjI3LndlYnAnO1xcbiAgICAgICAgY3VzdG9tLue6v+i3r+mAieS4rSA9IGN1c3RvbS7nur/ot6/pgInkuK0gPyBjdXN0b20u57q/6Lev6YCJ5LitIDogJyMwMDhCOEInO1xcbiAgICAgICAgY3VzdG9tLue6v+i3r+agt+W8jyA9IGN1c3RvbS7nur/ot6/moLflvI8gPyBjdXN0b20u57q/6Lev5qC35byPIDogJ3Njcm9sbF9idXR0b24nO1xcbiAgICAgICAgY3VzdG9tLuWIhuWJsuagt+W8jyA9IGN1c3RvbS7liIblibLmoLflvI8gPyBjdXN0b20u5YiG5Ymy5qC35byPIDogJ2JsYW5rX2Jsb2NrJztcXG4gICAgICAgIGN1c3RvbS7nroDku4vlsZXlvIAgPSBjdXN0b20u566A5LuL5bGV5byAID8gY3VzdG9tLueugOS7i+WxleW8gCA6ICdibGFjayc7XFxuICAgICAgICBjdXN0b20u566A5LuL5pS26LW3ID0gY3VzdG9tLueugOS7i+aUtui1tyA/IGN1c3RvbS7nroDku4vmlLbotbcgOiAnZ3JleSc7XFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBjdXN0b21zLCBjdXN0b20pO1xcbiAgICAgICAgLy9sb2coY3VzdG9tKVxcbiAgICAgICAgcmV0dXJuIGN1c3RvbTtcXG4gICAgfSxcXG4gICAgc2V0RGVzYzogZnVuY3Rpb24oZGVzYywgbnVtLCBlbXB0eSkge1xcbiAgICAgICAgdmFyIGN1c3RvbSA9IHRoaXMuZ2V0UHJlc2V0KCk7XFxuICAgICAgICBkZXNjID0gZGVzYy5jb25zdHJ1Y3RvciA9PSBBcnJheSA/IGRlc2Muam9pbignPGJyPicpIDogZGVzYztcXG4gICAgICAgIGlmIChkZXNjLnJlcGxhY2UoLyg8YnI+fFxcXFxzKykvZywgJycpLmxlbmd0aCA9PSAwKSB7XFxuICAgICAgICAgICAgcmV0dXJuXFxuICAgICAgICB9XFxuICAgICAgICB2YXIgaW5mbyA9IHN0b3JhZ2UwLmdldE15VmFyKCdlcl9pbmZvJywgJ3t9JylcXG4gICAgICAgIGlmIChpbmZvWydkZXNjJ10gIT0gdW5kZWZpbmVkKSB7XFxuICAgICAgICAgICAgaW5mb1snZGVzYyddID0gaW5mb1snZGVzYyddICsgJyDnroDku4s6JyArIGRlc2M7XFxuICAgICAgICAgICAgc3RvcmFnZTAucHV0TXlWYXIoJ2VyX2luZm8nLCBpbmZvKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGVtcHR5ID0gZW1wdHkgIT0gJ3VuZGVmaW5lZCcgPyBlbXB0eSA6IHRydWU7XFxuICAgICAgICBjb25zdCBtYXJrID0gJ2Rlc2MnO1xcbiAgICAgICAgbnVtID0gdHlwZW9mKG51bSkgPT0gJ3VuZGVmaW5lZCcgPyAxMDAgOiBudW1cXG4gICAgICAgIGlmIChlbXB0eSkge1xcbiAgICAgICAgICAgIGRlc2MgPSBkZXNjLnN0YXJ0c1dpdGgoJ+OAgOOAgCcpID8gZGVzYyA6ICfjgIDjgIAnICsgZGVzYztcXG4gICAgICAgIH1cXG4gICAgICAgIGRlc2MgPSBkZXNjLnJlcGxhY2UoLycvZywgXFxcIiYjMzk7XFxcIik7XFxuICAgICAgICBkZXNjID0gZGVzYy5yZXBsYWNlKC9cXFxcclxcXFxuL2csIFxcXCI8YnI+XFxcIik7XFxuXFxuICAgICAgICBsZXQgc2Rlc2MgPSB0aGlzLnN1YnN0cihkZXNjLCBudW0pO1xcblxcbiAgICAgICAgdmFyIGNvbG9ycyA9IHtcXG4gICAgICAgICAgICBzaG93OiBjdXN0b20u566A5LuL5bGV5byALFxcbiAgICAgICAgICAgIGhpZGU6IGN1c3RvbS7nroDku4vmlLbotbdcXG4gICAgICAgIH1cXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6ICfliafmg4XnroDku4s8c3BhbiBzdHlsZT1cXFwiY29sb3I6I2ZmMDAwMDtcXFwiPjxiPjxzbWFsbD4nICsgKHN0b3JhZ2UwLmdldEl0ZW0obWFyaywgJzAnKSA9PSAnMCcgPyAn5bGV5byAJyA6ICfmlLbotbcnKSArICc8L3NtYWxsPjwvYj48L3NwYW4+OicsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdhdmF0YXInLFxcbiAgICAgICAgICAgIGltZzogJ2h0dHBzOi8vaGlrZXJmYW5zLmNvbS90dWJpYW8vc3lzdGVtLzc1LnBuZycsXFxuICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChtYXJrLCBkYywgc2RjLCBjcykgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgbz1zdG9yYWdlMC5nZXRNeVZhcignZHNob3dvYmonLCcnKTtcXG5cXG4gICAgICAgICAgICAgICAgdmFyIGRzID0gc3RvcmFnZTAuZ2V0SXRlbShtYXJrLCAnMCcpO1xcbiAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBmaW5kSXRlbSgnZHNob3cnKS50aXRsZTtcXG4gICAgICAgICAgICAgICAgLy92YXIgZHRpdGxlID0gZmluZEl0ZW0oJ2Rjb250ZW50JykudGl0bGU7XFxuICAgICAgICAgICAgICAgIGlmIChkcyA9PSAnMCcpIHtcXG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnNldEl0ZW0obWFyaywgJzEnKVxcbiAgICAgICAgICAgICAgICAgICAgLyp1cGRhdGVJdGVtKCdkY29udGVudCcsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZGNcXG4gICAgICAgICAgICAgICAgICAgIH0pOyovXFxuICAgICAgICAgICAgICAgICAgICBhZGRJdGVtQWZ0ZXIoJ2RzaG93JyxvKTtcXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZW0oJ2RzaG93Jywge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZS5yZXBsYWNlKCflsZXlvIAnLCAn5pS26LW3JylcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcblxcblxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShtYXJrLCAnMCcpXFxuICAgICAgICAgICAgICAgICAgICAvKnVwZGF0ZUl0ZW0oJ2Rjb250ZW50Jywge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBzZGNcXG4gICAgICAgICAgICAgICAgICAgIH0pOyovXFxuICAgICAgICAgICAgICAgICAgICBkZWxldGVJdGVtKCdkY29udGVudCcpO1xcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbSgnZHNob3cnLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLnJlcGxhY2UoJ+aUtui1tycsICflsZXlvIAnKVxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgIH0sIG1hcmssIGRlc2MsIHNkZXNjLCBjb2xvcnMpLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIGlkOiAnZHNob3cnLFxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pXFxuICAgICAgICB2YXIgc2MgPSBzdG9yYWdlMC5nZXRJdGVtKG1hcmssICcwJykgPT0gJzAnID8gc2Rlc2MuZm9udGNvbG9yKGNvbG9ycy5oaWRlKSA6IGRlc2MuZm9udGNvbG9yKGNvbG9ycy5zaG93KTtcXG4gICAgICAgIHZhciBzb2JqPXtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRlc2MsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0JyxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgIGlkOiAnZGNvbnRlbnQnLFxcbiAgICAgICAgICAgICAgICAgICAgbGluZVNwYWNpbmc6IDYsXFxuICAgICAgICAgICAgICAgICAgICB0ZXh0U2l6ZTogMTUsXFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogdHJ1ZSxcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0gICAgICAgICAgICBcXG4gICAgICAgICAgICBzdG9yYWdlMC5wdXRNeVZhcignZHNob3dvYmonLHNvYmopXFxuICAgICAgICBpZiAoc3RvcmFnZTAuZ2V0SXRlbShtYXJrLCAnMCcpID09ICcxJykge1xcbiAgICAgICAgICAgIGQucHVzaChzb2JqKVxcbiAgICAgICAgICAgIC8vdmFyIHhvYmo9ZmluZEl0ZW0oJ2Rjb250ZW50Jyk7ICAgICAgICAgICAgXFxuICAgICAgICB9XFxuICAgfSxcXG59XCJ9XSIsImljb24iOiJodHRwczovL3d3dy40a2hkci5jbi9mYXZpY29uLmljbyIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment