Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥番剧@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueVquWJpyjliIbnsbspXCIsXCJwYXRoXCI6XCJjYXRlZ29yeVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5jb25zdCBiYXNlX3VybCA9ICdodHRwczovL20ua2F3YXlpLm9uZS9tb3ZpZS9pbmRleCNjYXRlZ29yeT0wJnZlcnNpb249MCZhcmVhPTAmc3RhdGU9MCZtb250aD0wJnllYXI9MCZzdHlsZT0wJm9yZGVyPTEmc29ydD0wJnBhZ2U9MSc7XFxudmFyIGdldFJhbmdlQ29sb3JzID0gZnVuY3Rpb24oKSB7wqDCoMKgwqDCoMKgwqBcXG4gICAgcmV0dXJuICcjJyArICgnMDAwMDAnICsgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAgPDwgMCkudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTYpO8KgwqDCoMKgwqBcXG59XFxuY29uc3Qg5YiG57G76aKc6ImyID0gZ2V0UmFuZ2VDb2xvcnMoKVxcbmNvbnN0IOWkp+exu+WumuS9jSA9ICcub3JkZXItd3JhcCdcXG5jb25zdCDlrZDnsbvlrprkvY0gPSAnYm9keSYmLm9yZGVyLWl0ZW0nXFxuY29uc3Qg5ou85o6l5YiG57G7ID0gJ2JvZHkmJi5maWx0ZXItbGlzdCdcXG5jb25zdCDmi7zmjqXlrprkvY0gPSAndWwmJmxpOm5vdCg6bWF0Y2hlcyheJCkpJ1xcbmNvbnN0IOWIhuexu+agh+mimCA9ICdUZXh0J1xcbmNvbnN0IOWIhuexu+mTvuaOpSA9ICcnXFxuY29uc3QgcGFnZSA9IE1ZX1BBR0U7XFxudmFyIGh0bWwgPSBmZXRjaChiYXNlX3VybCwge1xcbiAgICBoZWFkZXJzOiB7XFxuICAgICAgICAnVXNlci1BZ2VudCc6IE1PQklMRV9VQVxcbiAgICB9XFxufSk7XFxubGV0IGpkYXRhID0gSlNPTi5wYXJzZShodG1sLm1hdGNoKC93aW5kb3cuX19JTklUSUFMX1NUQVRFX189KC4qPyk8LylbMV0pO1xcbmxldCBpbmYgPSBqZGF0YS5pbmRleC5maWx0ZXJzO1xcbmxldCBvcmRlciA9IFt7XFxuICAgIFxcXCJrZXlcXFwiOiBcXFwib3JkZXJcXFwiLFxcbiAgICBcXFwibGlzdFxcXCI6IFt7XFxuICAgICAgICAgICAgXFxcIm5hbWVcXFwiOiBcXFwi5byA5pKt5pe26Ze0XFxcIixcXG4gICAgICAgICAgICBcXFwidmFsdWVcXFwiOiAxXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJuYW1lXFxcIjogXFxcIuacgOi/keabtOaWsFxcXCIsXFxuICAgICAgICAgICAgXFxcInZhbHVlXFxcIjogMlxcbiAgICAgICAgfSxcXG4gICAgICAgIHtcXG4gICAgICAgICAgICBcXFwibmFtZVxcXCI6IFxcXCLmnIDlpJrov73nlapcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ2YWx1ZVxcXCI6IDRcXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgXFxcIm5hbWVcXFwiOiBcXFwi5Lq65rCU5oyH5pWwXFxcIixcXG4gICAgICAgICAgICBcXFwidmFsdWVcXFwiOiA1XFxuICAgICAgICB9XFxuICAgIF0sXFxuICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmjpLluo9cXFwiXFxufV1cXG52YXIgY2F0ZWEgPSBvcmRlci5jb25jYXQoaW5mKTtcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2R0ZmwnKSkucnVsZSk7XFxuYm9keSA9IGJvZHkucmVwbGFjZSgn5o6S5bqPJywgZ2V0TXlWYXIoJ29yZGVyJywgJzEnKSkucmVwbGFjZSgn5YiG57G7JywgZ2V0TXlWYXIoJ2NhdGVnb3J5JywgJzAnKSkucmVwbGFjZSgn54mI5pysJywgZ2V0TXlWYXIoJ3ZlcnNpb24nLCAnMCcpKS5yZXBsYWNlKCflnLDljLonLCBnZXRNeVZhcignYXJlYScsICcwJykpLnJlcGxhY2UoJ+eKtuaAgScsIGdldE15VmFyKCdzdGF0ZScsICcwJykpLnJlcGxhY2UoJ+mjjuagvCcsIGdldE15VmFyKCdzdHlsZScsICcwJykpLnJlcGxhY2UoJ+Wto+W6picsIGdldE15VmFyKCdtb250aCcsICcwJykpLnJlcGxhY2UoJ+aXtumXtCcsIGdldE15VmFyKCd5ZWFyJywgJzAnKSk7XFxuLy9sb2coYm9keSlcXG4vL2xvZyhjYXRlYSlcXG5sZXQgdHJ1ZV91cmwgPSAnaHR0cHM6Ly9tLmthd2F5aS5vbmUvYXBpL21lZGlhL2luZGV4JyArIGJvZHk7XFxuLy9sb2cocGFnZSlcXG4vL2xvZyh0cnVlX3VybClcXG5sZXQgZGh0bWwgPSBmZXRjaCh0cnVlX3VybCwge1xcbiAgICBoZWFkZXJzOiB7XFxuICAgICAgICAnVXNlci1BZ2VudCc6IE1PQklMRV9VQSxcXG4gICAgICAgICdyZWZlcmVyJzogJ2h0dHBzOi8vbS5rYXdheWkub25lL21vdmllL2luZGV4J1xcbiAgICB9XFxufSk7XFxuLy9sb2coZGh0bWwpXFxuZnVuY3Rpb24gZ2V0TG9jYWxUaW1lKG5TKSB7ICAgICBcXG4gICByZXR1cm4gbmV3IERhdGUocGFyc2VJbnQoblMpICogMTAwMCkudG9Mb2NhbGVTdHJpbmcoKS5yZXBsYWNlKC86XFxcXGR7MSwyfSQvLCcgJyk7ICAgICBcXG59ICBcXG5jb25zdCBkbGlzdCA9IEpTT04ucGFyc2UoZGh0bWwpLnJlc3VsdC5saXN0O1xcbi8vbG9nKGRsaXN0KVxcbmRsaXN0LmZvckVhY2goaXRlbSA9PiB7XFxuICAgIGlmKGdldE15VmFyKCdvcmRlcicsICcxJykgPT0gMSl7XFxuICAgICAgICB2YXIgZGVzYyA9IGdldExvY2FsVGltZShpdGVtLnB1Yl90aW1lKSArICflvIDmkq0nO1xcbiAgICB9ZWxzZXtcXG4gICAgICAgIHZhciBkZXNjID0gXFxcIuabtOaWsOiHs1xcXCIgKyBpdGVtLmVwX2luZGV4ICsgXFxcIi/lhahcXFwiICsgaXRlbS5lcF90b3RhbDtcXG4gICAgfVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXFxuICAgICAgICB1cmw6ICdoaWtlcjovL3BhZ2UvZXJqaSNub0hpc3RvcnkjI2ltbWVyc2l2ZVRoZW1lIycsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGlkOiBpdGVtLm1lZGlhX2lkLFxcbiAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlXFxuICAgICAgICB9LFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8zX21hcnF1ZWVcXFwiLFxcbiAgICAgICAgZGVzYzogZGVzYyxcXG4gICAgICAgIHBpY191cmw6IGl0ZW0uY292ZXJcXG4gICAgfSk7XFxufSlcXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmjpLooYzmppxcIixcInBhdGhcIjpcInRvcFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxiPjxmb250IGNvbG9yPSNmYjcyOTk+5o6S6KGM5qacPC9mb250PjwvYj4nLFxcbiAgICB1cmw6ICd0b2FzdDovL+WVpeS5n+ayoeacieWTpicsXFxuICAgIGNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCJcXG59KTtcXG5cXG5sZXQgZGh0bWwgPSBmZXRjaCgnaHR0cHM6Ly9tLmthd2F5aS5vbmUvYXBpL3ZpZXcvcmFuaz90b3A9OTknLCB7XFxuICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICdVc2VyLUFnZW50JzogTU9CSUxFX1VBLFxcbiAgICAgICAgJ3JlZmVyZXInOiAnaHR0cHM6Ly9tLmthd2F5aS5vbmUvcmFua2luZydcXG4gICAgfVxcbn0pO1xcbi8vbG9nKGRodG1sKVxcbmNvbnN0IGRsaXN0ID0gSlNPTi5wYXJzZShkaHRtbCkucmVzdWx0O1xcbmRsaXN0LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxiPicgKyBpdGVtLnRpdGxlICsgJzwvYj4gPHNtYWxsPlxcXFxu5o6S5ZCN77yaPGZvbnQgY29sb3I9XFxcIiNGQTcyOThcXFwiPvCfj4U8Yj4gJyArIChwYXJzZUludChpbmRleCkgKyAxKSArICcgIOWQjTwvYj48L2ZvbnQ+XFxcXG7nirbmgIHvvJonICsgKGl0ZW0uaXNfZmluaXNoID09IDEgPyAn6L+e6L295LitJzon5bey5a6M57uTJyksXFxuICAgICAgICB1cmw6ICdoaWtlcjovL3BhZ2UvZXJqaSNub0hpc3RvcnkjI2ltbWVyc2l2ZVRoZW1lIycsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGlkOiBpdGVtLm1lZGlhX2lkLFxcbiAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlXFxuICAgICAgICB9LFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY1xcXCIsXFxuICAgICAgICBkZXNjOiBcXFwi5rWP6KeI6YeP77yaXFxcIiArIGl0ZW0udmlld3MgKyBcXFwiXFxcXG7mm7TmlrDoh7NcXFwiICsgaXRlbS5lcF9pbmRleCArIFxcXCIv5YWoXFxcIiArIGl0ZW0uZXBfdG90YWwsXFxuICAgICAgICBwaWNfdXJsOiBpdGVtLmNvdmVyK1xcXCJAUmVmZXJlcj1cXFwiXFxuICAgIH0pO1xcbn0pXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Yqo5oCB5YiG57G7XCIsXCJwYXRoXCI6XCJkdGZsXCIsXCJydWxlXCI6XCJjb25zdCBlbXB0eSA9IFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcblxcbnRyeSB7XFxuICAgIHZhciBjYXRlZ29yaWVzID0gcGRmYShodG1sLCDlpKfnsbvlrprkvY0pLmNvbmNhdChwZGZhKGh0bWwsIOaLvOaOpeWIhuexuykpXFxufSBjYXRjaCAoZSkge1xcbiAgICB2YXIgY2F0ZWdvcmllcyA9IHBkZmEoaHRtbCwg5aSn57G75a6a5L2NKVxcbn1cXG4vL2xvZyhjYXRlZ29yaWVzKVxcbnZhciBpbml0X2NhdGUgPSBbXVxcblxcbmZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykge1xcbiAgICBpbml0X2NhdGUucHVzaChcXFwiMFxcXCIpXFxufVxcblxcbmNvbnN0IGZvbGQgPSBnZXRNeVZhcignaGVhZGVyLmdyb3VwJywgXFxcIjBcXFwiKVxcbmNvbnN0IGNhdGVfdGVtcF9qc29uID0gZ2V0TXlWYXIoJ2hlYWRlci5jYXRlZ29yeScsIEpTT04uc3RyaW5naWZ5KGluaXRfY2F0ZSkpXFxuY29uc3QgY2F0ZV90ZW1wID0gSlNPTi5wYXJzZShjYXRlX3RlbXBfanNvbilcXG52YXIgYm9keSA9ICc/Y2F0ZWdvcnk95YiG57G7JnZlcnNpb24954mI5pysJmFyZWE95Zyw5Yy6JnN0YXRlPeeKtuaAgSZtb250aD3lraPluqYmeWVhcj3ml7bpl7Qmc3R5bGU96aOO5qC8Jm9yZGVyPeaOkuW6jyZzb3J0PTAmcGFnZT0nICsgcGFnZSArICcmcGFnZXNpemU9NDUnO1xcblxcbmlmIChwYXJzZUludChwYWdlKSA9PT0gMSkge1xcblxcbiAgICBkLnB1c2goe1xcbiAgICB0aXRsZTogXFxcIvCflI1cXFwiLFxcbiAgICB1cmw6IFxcXCInaGlrZXI6Ly9zZWFyY2g/cz0nK2lucHV0KycmcnVsZT3ljaHlk4fkvIouZHInXFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJpbnB1dFxcXCIsXFxuICAgIGRlc2M6IFxcXCLmkJzntKJcXFwiLFxcbiAgICB9KTtcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBmb2xkID09PSAnMScgPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjMTlCODlEXFxcIj46ICg8L3NwYW4+PC9iPicgOiAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjOTEwMTEzXFxcIj46ICk8L3NwYW4+PC9iPicsXFxuICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgoZm9sZCkgPT4ge1xcbiAgICAgICAgICAgIHB1dE15VmFyKCdoZWFkZXIuZ3JvdXAnLCBmb2xkID09PSAnMScgPyAnMCcgOiAnMScpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICB9LCBmb2xkKSxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxuICAgIH0pXFxuXFxuICAgIGNhdGVnb3JpZXMuZm9yRWFjaCgoY2F0ZWdvcnksIGluZGV4KSA9PiB7XFxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcXG4gICAgICAgICAgICBsZXQgb2NhdGUgPSBwZGZhKGNhdGVnb3J5LCDlrZDnsbvlrprkvY0pO1xcbiAgICAgICAgICAgIG9jYXRlLmZvckVhY2goKGl0ZW0sIGtleSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKGl0ZW0sIOWIhuexu+agh+mimCk7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZToga2V5LnRvU3RyaW5nKCkgPT09IGNhdGVfdGVtcFtpbmRleF0gPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAnICsg5YiG57G76aKc6ImyICsgJ1xcXCI+JyArIHRpdGxlICsgJzwvc3Bhbj48L2I+JyA6IHRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhwYXJhbXMudGl0bGUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNhdGVhLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKGl0ZW0ubGlzdClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXQgb2YgaXRlbS5saXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXQubmFtZSA9PSBwYXJhbXMudGl0bGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhpdC52YWx1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignb3JkZXInLCBpdC52YWx1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfY2F0ZSA9IFtdXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNhdGVfdGVtcC5mb3JFYWNoKChjYXRlLCBpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfY2F0ZS5wdXNoKGluZGV4ID09PSAwID8gcGFyYW1zLmtleS50b1N0cmluZygpIDogXFxcIjBcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coSlNPTi5zdHJpbmdpZnkobmV3X2NhdGUpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdoZWFkZXIuY2F0ZWdvcnknLCBKU09OLnN0cmluZ2lmeShuZXdfY2F0ZSkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9wdXRNeVZhcihNWV9SVUxFLnVybCwgaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVhOiBjYXRlYSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlX3RlbXA6IGNhdGVfdGVtcCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYWdlLFxcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCJcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0gZWxzZSBpZiAoZm9sZCA9PT0gJzEnKSB7XFxuICAgICAgICAgICAgbGV0IHRjYXRlID0gcGRmYShjYXRlZ29yeSwg5ou85o6l5a6a5L2NKTtcXG4gICAgICAgICAgICB0Y2F0ZS5mb3JFYWNoKChpdGVtLCBrZXkpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChpdGVtLCDliIbnsbvmoIfpopgpXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZToga2V5LnRvU3RyaW5nKCkgPT09IGNhdGVfdGVtcFtpbmRleF0gPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAnICsg5YiG57G76aKc6ImyICsgJ1xcXCI+JyArIHRpdGxlICsgJzwvc3Bhbj48L2I+JyA6IHRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhwYXJhbXMuaW5kZXgpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNhdGVhLmZpbHRlcigoaXQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coaXQubGlzdClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBpdC5saXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5uYW1lID09IHBhcmFtcy50aXRsZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKGl0ZW0udmFsdWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5pbmRleCA9PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdjYXRlZ29yeScsIGl0ZW0udmFsdWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbXMuaW5kZXggPT0gMikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndmVyc2lvbicsIGl0ZW0udmFsdWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbXMuaW5kZXggPT0gMykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignYXJlYScsIGl0ZW0udmFsdWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbXMuaW5kZXggPT0gNCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignc3RhdGUnLCBpdGVtLnZhbHVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1zLmluZGV4ID09IDUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ21vbnRoJywgaXRlbS52YWx1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5pbmRleCA9PSA2KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd5ZWFyJywgaXRlbS52YWx1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignc3R5bGUnLCBpdGVtLnZhbHVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlX3RlbXBbcGFyYW1zLmluZGV4XSA9IHBhcmFtcy5rZXkudG9TdHJpbmcoKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdoZWFkZXIuY2F0ZWdvcnknLCBKU09OLnN0cmluZ2lmeShwYXJhbXMuY2F0ZV90ZW1wKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3B1dE15VmFyKE1ZX1JVTEUudXJsLCBpbnB1dClcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWE6IGNhdGVhLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVfdGVtcDogY2F0ZV90ZW1wLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYWdlLFxcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIGlmIChpbmRleCA9PSA3KSB7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJyxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn6YeN572u6YCJ6aG5JyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChcXFwiaGlrZXI6Ly9lbXB0eVxcXCIpLmxhenlSdWxlKChpbml0X2NhdGUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignaGVhZGVyLmNhdGVnb3J5JywgSlNPTi5zdHJpbmdpZnkoaW5pdF9jYXRlKSkgICAgICAgICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdvcmRlcicsIDEpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NhdGVnb3J5JywgMClcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndmVyc2lvbicsIDApXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2FyZWEnLCAwKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzdGF0ZScsIDApXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ21vbnRoJywgMClcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigneWVhcicsIDApXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3N0eWxlJywgMClcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ph43nva7miJDlip9+J1xcbiAgICAgICAgICAgICAgICAgICAgfSwgaW5pdF9jYXRlKVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCJcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgfSlcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuoznuqdcIixcInBhdGhcIjpcImVyamlcIixcInJ1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuc2V0UGFnZVRpdGxlKE1ZX1BBUkFNUy50aXRsZSk7XFxuTVlfVVJMID0gJ2h0dHBzOi8vbS5rYXdheWkub25lL2Jhbmd1bWkvcGxheS9zcycgKyBNWV9QQVJBTVMuaWQ7XFxuLy9sb2coTVlfVVJMKVxcbnZhciBodG1sID0gcmVxdWVzdChNWV9VUkwsIHtcXG4gICAgaGVhZGVyczoge1xcbiAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgfVxcbn0pO1xcblxcbmxldCBqZGF0YSA9IEpTT04ucGFyc2UoaHRtbC5tYXRjaCgvd2luZG93Ll9fSU5JVElBTF9TVEFURV9fPSguKj8pPC8pWzFdKTtcXG5sZXQgaW5mbyA9IGpkYXRhLmJhbmd1bWkubWVkaWFJbmZvO1xcbi8vbG9nKGluZm8pXFxudHJ5IHtcXG4gICAgdmFyIGl0aXQgPSAnXFxcXG7nsbvlnos6ICcgKyBpbmZvLnN0eWxlc1swXS50aXRsZSArICcvJyArIGluZm8uc3R5bGVzWzFdLnRpdGxlICsgJy8nICsgaW5mby5zdHlsZXNbMl0udGl0bGU7XFxufSBjYXRjaCAoZSkge1xcbiAgICB2YXIgaXRpdCA9ICcnXFxufVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBpbmZvLmtleXdvcmRzICsgaXRpdCxcXG4gICAgdXJsOiBNWV9VUkwsXFxuICAgIGNvbF90eXBlOiBcXFwibW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1clxcXCIsXFxuICAgIGRlc2M6IGluZm8uc3RhZmYgKyAnXFxcXG4nICsgaW5mby5jYXN0LFxcbiAgICBwaWNfdXJsOiBpbmZvLmNvdmVyICsgXFxcIkBSZWZlcmVyPVxcXCJcXG59KTtcXG5sZXQgY29udGVudHMgPSBpbmZvLnN0b3J5O1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGZvbnQgY29sb3I9XFxcIiMwOThBQzFcXFwiPuWJp+aDheeugOS7izwvZm9udD4nLFxcbiAgICBkZXNjOiAn4oCY4oCY4oCZ4oCZPGZvbnQgY29sb3I9XFxcIlxcXCI+JyArIGNvbnRlbnRzLnN1YnN0cigwLCA3MCkgKyAnPC9mb250PicgKyAnPHNtYWxsPjxmb250IGNvbG9yPVxcXCJyZWRcXFwiPuivpuaDhTwvZm9udD48L3NtYWxsPicsXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIC8vbGluZVZpc2libGU6IGZhbHNlXFxuICAgIH0sXFxuICAgIHVybDogJCgpLnJ1bGUoKHRleHQpID0+IHtcXG4gICAgICAgIHNldFJlc3VsdChbe1xcbiAgICAgICAgICAgIHRpdGxlOiB0ZXh0LFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0JyxcXG4gICAgICAgIH1dKVxcbiAgICB9LCBjb250ZW50cylcXG59KTtcXG5cXG52YXIgbGlzdCA9IGluZm8uZXBpc29kZXM7XFxuLy9sb2coanNvbilcXG4vL2V2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvbGF6eScpKS5ydWxlKVxcbi8v5Zu+5qCH5p2l6Ieq6aG65L2s5bCP56iL5bqPXFxudmFyIGljb25fcyA9ICdodHRwOi8vODIuMTU2LjIyMi43Ny93ZWlzeXIvaWNvbi8nO1xcbmlmIChnZXRNeVZhcign6aG65bqPJywgJ+ato+W6jycpID09ICfmraPluo8nKSB7XFxuICAgIHZhciBhdmF0YXIgPSBpY29uX3MgKyAn5q2j5bqPLnN2Zyc7XFxuICAgIHZhciBvcmR0ZXh0ID0gXFxcIuKYheato+W6j+KGk1xcXCI7XFxufSBlbHNlIHtcXG4gICAgdmFyIGF2YXRhciA9IGljb25fcyArICflj43luo8uc3ZnJztcXG4gICAgdmFyIG9yZHRleHQgPSBcXFwi4piG6YCG5bqP4oaRXFxcIjtcXG59XFxuXFxuZnVuY3Rpb24gc2V0TGlzdHMobGlzdHMpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNwYW4gc3R5bGU9XFxcImNvbG9yOiMwOThBQzFcXFwiPjxzbWFsbD7pgInpm4bliJfooag8L3NtYWxsPicgKyAnXFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0PHNwYW4gc3R5bGU9XFxcImZsb2F0OnJpZ2h0XFxcIj4nICsgJzxzbWFsbD4nICsgb3JkdGV4dCArICc8L3NtYWxsPicsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIGlmIChnZXRNeVZhcign6aG65bqPJywgJ+ato+W6jycpID09ICfpgIbluo8nKSB7XFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKCfpobrluo8nLCAn5q2j5bqPJyk7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ+mhuuW6jycsICfpgIbluo8nKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSk7XFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suWIh+aNoumhuuW6j+S4ujonICsgZ2V0TXlWYXIoJ+mhuuW6jycsICfmraPluo8nKVxcbiAgICAgICAgfSksXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxuICAgIH0pXFxuXFxuICAgIGlmIChnZXRNeVZhcign6aG65bqPJywgJ+ato+W6jycpID09ICfmraPluo8nKSB7XFxuICAgICAgICBpZiAobGlzdHMubGVuZ3RoID09IDApIHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+eVquWJp+aaguacquW8gOaSreWTpu+8jOS4jeS/oeeCueWbvueJh+WOu+eci+eci/CfkYAnLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGl0IG9mIGxpc3RzKSB7XFxuICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGl0LmZvcm1hdF90aXRsZSArICcgJyArIGl0LnRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogaXQudnVybC5zdGFydHNXaXRoKFxcXCJodHRwXFxcIikgPyBpdC52dXJsOidodHRwczovL20ua2F3YXlpLm9uZScgKyBpdC52dXJsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+ayoeaciemAiembhuWTn++8jOS4jeS/oeeCueWbvueJh+WOu+eci+eci/CfkYAnLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBsaXN0cyA9IGxpc3RzLnJldmVyc2UoKTtcXG4gICAgICAgIGlmIChsaXN0cy5sZW5ndGggPT0gMCkge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn55Wq5Ymn5pqC5pyq5byA5pKt5ZOm77yM5LiN5L+h54K55Zu+54mH5Y6755yL55yL8J+RgCcsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaXQgb2YgbGlzdHMpIHtcXG4gICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGl0LmZvcm1hdF90aXRsZSArICcgJyArIGl0LnRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogaXQudnVybC5zdGFydHNXaXRoKFxcXCJodHRwXFxcIikgPyBpdC52dXJsOidodHRwczovL20ua2F3YXlpLm9uZScgKyBpdC52dXJsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+ayoeaciemAiembhuWTn++8jOS4jeS/oeeCueWbvueJh+WOu+eci+eci/CfkYAnLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH1cXG59XFxuc2V0TGlzdHMobGlzdCk7XFxuc2V0UmVzdWx0KGQpO1wifV0sXCJzYXZlZFwiOmZhbHNlLFwidGl0bGVcIjpcIuWNoeWTh+S8ii5kclwiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImhpa2VyOi8vcGFnZS9jYXRlZ29yeT9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjXCIsXCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwiZmluZF9ydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbmNvbnN0IGJhc2VfdXJsID0gJ2h0dHBzOi8vbS5rYXdheWkub25lL21vdmllL2luZGV4I2NhdGVnb3J5PTAmdmVyc2lvbj0wJmFyZWE9MCZzdGF0ZT0wJm1vbnRoPTAmeWVhcj0wJnN0eWxlPTAmb3JkZXI9MSZzb3J0PTAmcGFnZT0xJztcXG52YXIgZ2V0UmFuZ2VDb2xvcnMgPSBmdW5jdGlvbigpIHvCoMKgwqDCoMKgwqDCoFxcbiAgICByZXR1cm4gJyMnICsgKCcwMDAwMCcgKyAoTWF0aC5yYW5kb20oKSAqIDB4MTAwMDAwMCA8PCAwKS50b1N0cmluZygxNikpLnN1YnN0cigtNik7wqDCoMKgwqDCoFxcbn1cXG5jb25zdCDliIbnsbvpopzoibIgPSBnZXRSYW5nZUNvbG9ycygpXFxuY29uc3Qg5aSn57G75a6a5L2NID0gJy5vcmRlci13cmFwJ1xcbmNvbnN0IOWtkOexu+WumuS9jSA9ICdib2R5JiYub3JkZXItaXRlbSdcXG5jb25zdCDmi7zmjqXliIbnsbsgPSAnYm9keSYmLmZpbHRlci1saXN0J1xcbmNvbnN0IOaLvOaOpeWumuS9jSA9ICd1bCYmbGk6bm90KDptYXRjaGVzKF4kKSknXFxuY29uc3Qg5YiG57G75qCH6aKYID0gJ1RleHQnXFxuY29uc3Qg5YiG57G76ZO+5o6lID0gJydcXG5jb25zdCBwYWdlID0gTVlfUEFHRTtcXG52YXIgaHRtbCA9IGZldGNoKGJhc2VfdXJsLCB7XFxuICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICdVc2VyLUFnZW50JzogTU9CSUxFX1VBXFxuICAgIH1cXG59KTtcXG5sZXQgamRhdGEgPSBKU09OLnBhcnNlKGh0bWwubWF0Y2goL3dpbmRvdy5fX0lOSVRJQUxfU1RBVEVfXz0oLio/KTwvKVsxXSk7XFxubGV0IGluZiA9IGpkYXRhLmluZGV4LmZpbHRlcnM7XFxubGV0IG9yZGVyID0gW3tcXG4gICAgXFxcImtleVxcXCI6IFxcXCJvcmRlclxcXCIsXFxuICAgIFxcXCJsaXN0XFxcIjogW3tcXG4gICAgICAgICAgICBcXFwibmFtZVxcXCI6IFxcXCLlvIDmkq3ml7bpl7RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ2YWx1ZVxcXCI6IDFcXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgXFxcIm5hbWVcXFwiOiBcXFwi5pyA6L+R5pu05pawXFxcIixcXG4gICAgICAgICAgICBcXFwidmFsdWVcXFwiOiAyXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJuYW1lXFxcIjogXFxcIuacgOWkmui/veeVqlxcXCIsXFxuICAgICAgICAgICAgXFxcInZhbHVlXFxcIjogNFxcbiAgICAgICAgfSxcXG4gICAgICAgIHtcXG4gICAgICAgICAgICBcXFwibmFtZVxcXCI6IFxcXCLkurrmsJTmjIfmlbBcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ2YWx1ZVxcXCI6IDVcXG4gICAgICAgIH1cXG4gICAgXSxcXG4gICAgXFxcInRpdGxlXFxcIjogXFxcIuaOkuW6j1xcXCJcXG59XVxcbnZhciBjYXRlYSA9IG9yZGVyLmNvbmNhdChpbmYpO1xcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZHRmbCcpKS5ydWxlKTtcXG5ib2R5ID0gYm9keS5yZXBsYWNlKCfmjpLluo8nLCBnZXRNeVZhcignb3JkZXInLCAnMScpKS5yZXBsYWNlKCfliIbnsbsnLCBnZXRNeVZhcignY2F0ZWdvcnknLCAnMCcpKS5yZXBsYWNlKCfniYjmnKwnLCBnZXRNeVZhcigndmVyc2lvbicsICcwJykpLnJlcGxhY2UoJ+WcsOWMuicsIGdldE15VmFyKCdhcmVhJywgJzAnKSkucmVwbGFjZSgn54q25oCBJywgZ2V0TXlWYXIoJ3N0YXRlJywgJzAnKSkucmVwbGFjZSgn6aOO5qC8JywgZ2V0TXlWYXIoJ3N0eWxlJywgJzAnKSkucmVwbGFjZSgn5a2j5bqmJywgZ2V0TXlWYXIoJ21vbnRoJywgJzAnKSkucmVwbGFjZSgn5pe26Ze0JywgZ2V0TXlWYXIoJ3llYXInLCAnMCcpKTtcXG4vL2xvZyhib2R5KVxcbi8vbG9nKGNhdGVhKVxcbmxldCB0cnVlX3VybCA9ICdodHRwczovL20ua2F3YXlpLm9uZS9hcGkvbWVkaWEvaW5kZXgnICsgYm9keTtcXG4vL2xvZyhwYWdlKVxcbi8vbG9nKHRydWVfdXJsKVxcbmxldCBkaHRtbCA9IGZldGNoKHRydWVfdXJsLCB7XFxuICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICdVc2VyLUFnZW50JzogTU9CSUxFX1VBLFxcbiAgICAgICAgJ3JlZmVyZXInOiAnaHR0cHM6Ly9tLmthd2F5aS5vbmUvbW92aWUvaW5kZXgnXFxuICAgIH1cXG59KTtcXG4vL2xvZyhkaHRtbClcXG5mdW5jdGlvbiBnZXRMb2NhbFRpbWUoblMpIHsgICAgIFxcbiAgIHJldHVybiBuZXcgRGF0ZShwYXJzZUludChuUykgKiAxMDAwKS50b0xvY2FsZVN0cmluZygpLnJlcGxhY2UoLzpcXFxcZHsxLDJ9JC8sJyAnKTsgICAgIFxcbn0gIFxcbmNvbnN0IGRsaXN0ID0gSlNPTi5wYXJzZShkaHRtbCkucmVzdWx0Lmxpc3Q7XFxuLy9sb2coZGxpc3QpXFxuZGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgaWYoZ2V0TXlWYXIoJ29yZGVyJywgJzEnKSA9PSAxKXtcXG4gICAgICAgIHZhciBkZXNjID0gZ2V0TG9jYWxUaW1lKGl0ZW0ucHViX3RpbWUpICsgJ+W8gOaSrSc7XFxuICAgIH1lbHNle1xcbiAgICAgICAgdmFyIGRlc2MgPSBcXFwi5pu05paw6IezXFxcIiArIGl0ZW0uZXBfaW5kZXggKyBcXFwiL+WFqFxcXCIgKyBpdGVtLmVwX3RvdGFsO1xcbiAgICB9XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vcGFnZS9lcmppI25vSGlzdG9yeSMjaW1tZXJzaXZlVGhlbWUjJyxcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgaWQ6IGl0ZW0ubWVkaWFfaWQsXFxuICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGVcXG4gICAgICAgIH0sXFxuICAgICAgICBjb2xfdHlwZTogXFxcIm1vdmllXzNfbWFycXVlZVxcXCIsXFxuICAgICAgICBkZXNjOiBkZXNjLFxcbiAgICAgICAgcGljX3VybDogaXRlbS5jb3ZlclxcbiAgICB9KTtcXG59KVxcbnNldFJlc3VsdChkKTtcIixcImdyb3VwXCI6XCJBIOS8mOi0qFwiLFwidWFcIjpcIm1vYmlsZVwiLFwicHJlUnVsZVwiOlwiXCIsXCJwYWdlc1wiOlwiW3tcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIueVquWJpyjliIbnsbspXFxcIixcXFwicGF0aFxcXCI6XFxcImNhdGVnb3J5XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxudmFyIGQgPSBbXTtcXFxcbmNvbnN0IGJhc2VfdXJsID0gJ2h0dHBzOi8vbS5rYXdheWkub25lL21vdmllL2luZGV4I2NhdGVnb3J5PTAmdmVyc2lvbj0wJmFyZWE9MCZzdGF0ZT0wJm1vbnRoPTAmeWVhcj0wJnN0eWxlPTAmb3JkZXI9MSZzb3J0PTAmcGFnZT0xJztcXFxcbnZhciBnZXRSYW5nZUNvbG9ycyA9IGZ1bmN0aW9uKCkge8KgwqDCoMKgwqDCoMKgXFxcXG4gICAgcmV0dXJuICcjJyArICgnMDAwMDAnICsgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAgPDwgMCkudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTYpO8KgwqDCoMKgwqBcXFxcbn1cXFxcbmNvbnN0IOWIhuexu+minOiJsiA9IGdldFJhbmdlQ29sb3JzKClcXFxcbmNvbnN0IOWkp+exu+WumuS9jSA9ICcub3JkZXItd3JhcCdcXFxcbmNvbnN0IOWtkOexu+WumuS9jSA9ICdib2R5JiYub3JkZXItaXRlbSdcXFxcbmNvbnN0IOaLvOaOpeWIhuexuyA9ICdib2R5JiYuZmlsdGVyLWxpc3QnXFxcXG5jb25zdCDmi7zmjqXlrprkvY0gPSAndWwmJmxpOm5vdCg6bWF0Y2hlcyheJCkpJ1xcXFxuY29uc3Qg5YiG57G75qCH6aKYID0gJ1RleHQnXFxcXG5jb25zdCDliIbnsbvpk77mjqUgPSAnJ1xcXFxuY29uc3QgcGFnZSA9IE1ZX1BBR0U7XFxcXG52YXIgaHRtbCA9IGZldGNoKGJhc2VfdXJsLCB7XFxcXG4gICAgaGVhZGVyczoge1xcXFxuICAgICAgICAnVXNlci1BZ2VudCc6IE1PQklMRV9VQVxcXFxuICAgIH1cXFxcbn0pO1xcXFxubGV0IGpkYXRhID0gSlNPTi5wYXJzZShodG1sLm1hdGNoKC93aW5kb3cuX19JTklUSUFMX1NUQVRFX189KC4qPyk8LylbMV0pO1xcXFxubGV0IGluZiA9IGpkYXRhLmluZGV4LmZpbHRlcnM7XFxcXG5sZXQgb3JkZXIgPSBbe1xcXFxuICAgIFxcXFxcXFwia2V5XFxcXFxcXCI6IFxcXFxcXFwib3JkZXJcXFxcXFxcIixcXFxcbiAgICBcXFxcXFxcImxpc3RcXFxcXFxcIjogW3tcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibmFtZVxcXFxcXFwiOiBcXFxcXFxcIuW8gOaSreaXtumXtFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ2YWx1ZVxcXFxcXFwiOiAxXFxcXG4gICAgICAgIH0sXFxcXG4gICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibmFtZVxcXFxcXFwiOiBcXFxcXFxcIuacgOi/keabtOaWsFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ2YWx1ZVxcXFxcXFwiOiAyXFxcXG4gICAgICAgIH0sXFxcXG4gICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibmFtZVxcXFxcXFwiOiBcXFxcXFxcIuacgOWkmui/veeVqlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ2YWx1ZVxcXFxcXFwiOiA0XFxcXG4gICAgICAgIH0sXFxcXG4gICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibmFtZVxcXFxcXFwiOiBcXFxcXFxcIuS6uuawlOaMh+aVsFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ2YWx1ZVxcXFxcXFwiOiA1XFxcXG4gICAgICAgIH1cXFxcbiAgICBdLFxcXFxuICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmjpLluo9cXFxcXFxcIlxcXFxufV1cXFxcbnZhciBjYXRlYSA9IG9yZGVyLmNvbmNhdChpbmYpO1xcXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9kdGZsJykpLnJ1bGUpO1xcXFxuYm9keSA9IGJvZHkucmVwbGFjZSgn5o6S5bqPJywgZ2V0TXlWYXIoJ29yZGVyJywgJzEnKSkucmVwbGFjZSgn5YiG57G7JywgZ2V0TXlWYXIoJ2NhdGVnb3J5JywgJzAnKSkucmVwbGFjZSgn54mI5pysJywgZ2V0TXlWYXIoJ3ZlcnNpb24nLCAnMCcpKS5yZXBsYWNlKCflnLDljLonLCBnZXRNeVZhcignYXJlYScsICcwJykpLnJlcGxhY2UoJ+eKtuaAgScsIGdldE15VmFyKCdzdGF0ZScsICcwJykpLnJlcGxhY2UoJ+mjjuagvCcsIGdldE15VmFyKCdzdHlsZScsICcwJykpLnJlcGxhY2UoJ+Wto+W6picsIGdldE15VmFyKCdtb250aCcsICcwJykpLnJlcGxhY2UoJ+aXtumXtCcsIGdldE15VmFyKCd5ZWFyJywgJzAnKSk7XFxcXG4vL2xvZyhib2R5KVxcXFxuLy9sb2coY2F0ZWEpXFxcXG5sZXQgdHJ1ZV91cmwgPSAnaHR0cHM6Ly9tLmthd2F5aS5vbmUvYXBpL21lZGlhL2luZGV4JyArIGJvZHk7XFxcXG4vL2xvZyhwYWdlKVxcXFxuLy9sb2codHJ1ZV91cmwpXFxcXG5sZXQgZGh0bWwgPSBmZXRjaCh0cnVlX3VybCwge1xcXFxuICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgJ1VzZXItQWdlbnQnOiBNT0JJTEVfVUEsXFxcXG4gICAgICAgICdyZWZlcmVyJzogJ2h0dHBzOi8vbS5rYXdheWkub25lL21vdmllL2luZGV4J1xcXFxuICAgIH1cXFxcbn0pO1xcXFxuLy9sb2coZGh0bWwpXFxcXG5mdW5jdGlvbiBnZXRMb2NhbFRpbWUoblMpIHsgICAgIFxcXFxuICAgcmV0dXJuIG5ldyBEYXRlKHBhcnNlSW50KG5TKSAqIDEwMDApLnRvTG9jYWxlU3RyaW5nKCkucmVwbGFjZSgvOlxcXFxcXFxcZHsxLDJ9JC8sJyAnKTsgICAgIFxcXFxufSAgXFxcXG5jb25zdCBkbGlzdCA9IEpTT04ucGFyc2UoZGh0bWwpLnJlc3VsdC5saXN0O1xcXFxuLy9sb2coZGxpc3QpXFxcXG5kbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcXFxuICAgIGlmKGdldE15VmFyKCdvcmRlcicsICcxJykgPT0gMSl7XFxcXG4gICAgICAgIHZhciBkZXNjID0gZ2V0TG9jYWxUaW1lKGl0ZW0ucHViX3RpbWUpICsgJ+W8gOaSrSc7XFxcXG4gICAgfWVsc2V7XFxcXG4gICAgICAgIHZhciBkZXNjID0gXFxcXFxcXCLmm7TmlrDoh7NcXFxcXFxcIiArIGl0ZW0uZXBfaW5kZXggKyBcXFxcXFxcIi/lhahcXFxcXFxcIiArIGl0ZW0uZXBfdG90YWw7XFxcXG4gICAgfVxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxcXFxuICAgICAgICB1cmw6ICdoaWtlcjovL3BhZ2UvZXJqaSNub0hpc3RvcnkjI2ltbWVyc2l2ZVRoZW1lIycsXFxcXG4gICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICBpZDogaXRlbS5tZWRpYV9pZCxcXFxcbiAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlXFxcXG4gICAgICAgIH0sXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcIm1vdmllXzNfbWFycXVlZVxcXFxcXFwiLFxcXFxuICAgICAgICBkZXNjOiBkZXNjLFxcXFxuICAgICAgICBwaWNfdXJsOiBpdGVtLmNvdmVyXFxcXG4gICAgfSk7XFxcXG59KVxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuaOkuihjOamnFxcXCIsXFxcInBhdGhcXFwiOlxcXCJ0b3BcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG52YXIgZCA9IFtdO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxiPjxmb250IGNvbG9yPSNmYjcyOTk+5o6S6KGM5qacPC9mb250PjwvYj4nLFxcXFxuICAgIHVybDogJ3RvYXN0Oi8v5ZWl5Lmf5rKh5pyJ5ZOmJyxcXFxcbiAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0X2NlbnRlcl8xXFxcXFxcXCJcXFxcbn0pO1xcXFxuXFxcXG5sZXQgZGh0bWwgPSBmZXRjaCgnaHR0cHM6Ly9tLmthd2F5aS5vbmUvYXBpL3ZpZXcvcmFuaz90b3A9OTknLCB7XFxcXG4gICAgaGVhZGVyczoge1xcXFxuICAgICAgICAnVXNlci1BZ2VudCc6IE1PQklMRV9VQSxcXFxcbiAgICAgICAgJ3JlZmVyZXInOiAnaHR0cHM6Ly9tLmthd2F5aS5vbmUvcmFua2luZydcXFxcbiAgICB9XFxcXG59KTtcXFxcbi8vbG9nKGRodG1sKVxcXFxuY29uc3QgZGxpc3QgPSBKU09OLnBhcnNlKGRodG1sKS5yZXN1bHQ7XFxcXG5kbGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+JyArIGl0ZW0udGl0bGUgKyAnPC9iPiA8c21hbGw+XFxcXFxcXFxu5o6S5ZCN77yaPGZvbnQgY29sb3I9XFxcXFxcXCIjRkE3Mjk4XFxcXFxcXCI+8J+PhTxiPiAnICsgKHBhcnNlSW50KGluZGV4KSArIDEpICsgJyAg5ZCNPC9iPjwvZm9udD5cXFxcXFxcXG7nirbmgIHvvJonICsgKGl0ZW0uaXNfZmluaXNoID09IDEgPyAn6L+e6L295LitJzon5bey5a6M57uTJyksXFxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vcGFnZS9lcmppI25vSGlzdG9yeSMjaW1tZXJzaXZlVGhlbWUjJyxcXFxcbiAgICAgICAgZXh0cmE6IHtcXFxcbiAgICAgICAgICAgIGlkOiBpdGVtLm1lZGlhX2lkLFxcXFxuICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGVcXFxcbiAgICAgICAgfSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwibW92aWVfMV92ZXJ0aWNhbF9waWNcXFxcXFxcIixcXFxcbiAgICAgICAgZGVzYzogXFxcXFxcXCLmtY/op4jph4/vvJpcXFxcXFxcIiArIGl0ZW0udmlld3MgKyBcXFxcXFxcIlxcXFxcXFxcbuabtOaWsOiHs1xcXFxcXFwiICsgaXRlbS5lcF9pbmRleCArIFxcXFxcXFwiL+WFqFxcXFxcXFwiICsgaXRlbS5lcF90b3RhbCxcXFxcbiAgICAgICAgcGljX3VybDogaXRlbS5jb3ZlcitcXFxcXFxcIkBSZWZlcmVyPVxcXFxcXFwiXFxcXG4gICAgfSk7XFxcXG59KVxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuWKqOaAgeWIhuexu1xcXCIsXFxcInBhdGhcXFwiOlxcXCJkdGZsXFxcIixcXFwicnVsZVxcXCI6XFxcImNvbnN0IGVtcHR5ID0gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcblxcXFxudHJ5IHtcXFxcbiAgICB2YXIgY2F0ZWdvcmllcyA9IHBkZmEoaHRtbCwg5aSn57G75a6a5L2NKS5jb25jYXQocGRmYShodG1sLCDmi7zmjqXliIbnsbspKVxcXFxufSBjYXRjaCAoZSkge1xcXFxuICAgIHZhciBjYXRlZ29yaWVzID0gcGRmYShodG1sLCDlpKfnsbvlrprkvY0pXFxcXG59XFxcXG4vL2xvZyhjYXRlZ29yaWVzKVxcXFxudmFyIGluaXRfY2F0ZSA9IFtdXFxcXG5cXFxcbmZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykge1xcXFxuICAgIGluaXRfY2F0ZS5wdXNoKFxcXFxcXFwiMFxcXFxcXFwiKVxcXFxufVxcXFxuXFxcXG5jb25zdCBmb2xkID0gZ2V0TXlWYXIoJ2hlYWRlci5ncm91cCcsIFxcXFxcXFwiMFxcXFxcXFwiKVxcXFxuY29uc3QgY2F0ZV90ZW1wX2pzb24gPSBnZXRNeVZhcignaGVhZGVyLmNhdGVnb3J5JywgSlNPTi5zdHJpbmdpZnkoaW5pdF9jYXRlKSlcXFxcbmNvbnN0IGNhdGVfdGVtcCA9IEpTT04ucGFyc2UoY2F0ZV90ZW1wX2pzb24pXFxcXG52YXIgYm9keSA9ICc/Y2F0ZWdvcnk95YiG57G7JnZlcnNpb24954mI5pysJmFyZWE95Zyw5Yy6JnN0YXRlPeeKtuaAgSZtb250aD3lraPluqYmeWVhcj3ml7bpl7Qmc3R5bGU96aOO5qC8Jm9yZGVyPeaOkuW6jyZzb3J0PTAmcGFnZT0nICsgcGFnZSArICcmcGFnZXNpemU9NDUnO1xcXFxuXFxcXG5pZiAocGFyc2VJbnQocGFnZSkgPT09IDEpIHtcXFxcblxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgdGl0bGU6IFxcXFxcXFwi8J+UjVxcXFxcXFwiLFxcXFxuICAgIHVybDogXFxcXFxcXCInaGlrZXI6Ly9zZWFyY2g/cz0nK2lucHV0KycmcnVsZT3ljaHlk4fkvIouZHInXFxcXFxcXCIsXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwiaW5wdXRcXFxcXFxcIixcXFxcbiAgICBkZXNjOiBcXFxcXFxcIuaQnOe0olxcXFxcXFwiLFxcXFxuICAgIH0pO1xcXFxuXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IGZvbGQgPT09ICcxJyA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFxcXFxcImNvbG9yOiAjMTlCODlEXFxcXFxcXCI+OiAoPC9zcGFuPjwvYj4nIDogJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVxcXFxcXFwiY29sb3I6ICM5MTAxMTNcXFxcXFxcIj46ICk8L3NwYW4+PC9iPicsXFxcXG4gICAgICAgIHVybDogJCgpLmxhenlSdWxlKChmb2xkKSA9PiB7XFxcXG4gICAgICAgICAgICBwdXRNeVZhcignaGVhZGVyLmdyb3VwJywgZm9sZCA9PT0gJzEnID8gJzAnIDogJzEnKTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICB9LCBmb2xkKSxcXFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXFxcbiAgICB9KVxcXFxuXFxcXG4gICAgY2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeSwgaW5kZXgpID0+IHtcXFxcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XFxcXG4gICAgICAgICAgICBsZXQgb2NhdGUgPSBwZGZhKGNhdGVnb3J5LCDlrZDnsbvlrprkvY0pO1xcXFxuICAgICAgICAgICAgb2NhdGUuZm9yRWFjaCgoaXRlbSwga2V5KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChpdGVtLCDliIbnsbvmoIfpopgpO1xcXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXkudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2luZGV4XSA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFxcXFxcImNvbG9yOiAnICsg5YiG57G76aKc6ImyICsgJ1xcXFxcXFwiPicgKyB0aXRsZSArICc8L3NwYW4+PC9iPicgOiB0aXRsZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKHBhcmFtcy50aXRsZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlYS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKGl0ZW0ubGlzdClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdCBvZiBpdGVtLmxpc3QpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0Lm5hbWUgPT0gcGFyYW1zLnRpdGxlKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhpdC52YWx1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdvcmRlcicsIGl0LnZhbHVlKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld19jYXRlID0gW11cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlX3RlbXAuZm9yRWFjaCgoY2F0ZSwgaW5kZXgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfY2F0ZS5wdXNoKGluZGV4ID09PSAwID8gcGFyYW1zLmtleS50b1N0cmluZygpIDogXFxcXFxcXCIwXFxcXFxcXCIpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coSlNPTi5zdHJpbmdpZnkobmV3X2NhdGUpKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2hlYWRlci5jYXRlZ29yeScsIEpTT04uc3RyaW5naWZ5KG5ld19jYXRlKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vcHV0TXlWYXIoTVlfUlVMRS51cmwsIGlucHV0KVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlYTogY2F0ZWEsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlX3RlbXA6IGNhdGVfdGVtcCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleToga2V5LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogcGFnZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImJsYW5rX2Jsb2NrXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICB9IGVsc2UgaWYgKGZvbGQgPT09ICcxJykge1xcXFxuICAgICAgICAgICAgbGV0IHRjYXRlID0gcGRmYShjYXRlZ29yeSwg5ou85o6l5a6a5L2NKTtcXFxcbiAgICAgICAgICAgIHRjYXRlLmZvckVhY2goKGl0ZW0sIGtleSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IHBkZmgoaXRlbSwg5YiG57G75qCH6aKYKVxcXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXkudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2luZGV4XSA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFxcXFxcImNvbG9yOiAnICsg5YiG57G76aKc6ImyICsgJ1xcXFxcXFwiPicgKyB0aXRsZSArICc8L3NwYW4+PC9iPicgOiB0aXRsZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKHBhcmFtcy5pbmRleClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlYS5maWx0ZXIoKGl0KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coaXQubGlzdClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIGl0Lmxpc3QpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ubmFtZSA9PSBwYXJhbXMudGl0bGUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKGl0ZW0udmFsdWUpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zLmluZGV4ID09IDEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignY2F0ZWdvcnknLCBpdGVtLnZhbHVlKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbXMuaW5kZXggPT0gMikge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd2ZXJzaW9uJywgaXRlbS52YWx1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1zLmluZGV4ID09IDMpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignYXJlYScsIGl0ZW0udmFsdWUpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5pbmRleCA9PSA0KSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3N0YXRlJywgaXRlbS52YWx1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1zLmluZGV4ID09IDUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignbW9udGgnLCBpdGVtLnZhbHVlKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbXMuaW5kZXggPT0gNikge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd5ZWFyJywgaXRlbS52YWx1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3N0eWxlJywgaXRlbS52YWx1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuY2F0ZV90ZW1wW3BhcmFtcy5pbmRleF0gPSBwYXJhbXMua2V5LnRvU3RyaW5nKClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdoZWFkZXIuY2F0ZWdvcnknLCBKU09OLnN0cmluZ2lmeShwYXJhbXMuY2F0ZV90ZW1wKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vcHV0TXlWYXIoTVlfUlVMRS51cmwsIGlucHV0KVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlYTogY2F0ZWEsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlX3RlbXA6IGNhdGVfdGVtcCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleToga2V5LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogcGFnZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgaWYgKGluZGV4ID09IDcpIHtcXFxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfph43nva7pgInpobknLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCIpLmxhenlSdWxlKChpbml0X2NhdGUpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdoZWFkZXIuY2F0ZWdvcnknLCBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUpKSAgICAgICAgICAgICAgICAgICAgICAgXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignb3JkZXInLCAxKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NhdGVnb3J5JywgMClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd2ZXJzaW9uJywgMClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdhcmVhJywgMClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzdGF0ZScsIDApXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignbW9udGgnLCAwKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3llYXInLCAwKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3N0eWxlJywgMClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v6YeN572u5oiQ5YqffidcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgaW5pdF9jYXRlKVxcXFxuICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJibGFua19ibG9ja1xcXFxcXFwiXFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgfVxcXFxuICAgIH0pXFxcXG59XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5LqM57qnXFxcIixcXFwicGF0aFxcXCI6XFxcImVyamlcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG52YXIgZCA9IFtdO1xcXFxuc2V0UGFnZVRpdGxlKE1ZX1BBUkFNUy50aXRsZSk7XFxcXG5NWV9VUkwgPSAnaHR0cHM6Ly9tLmthd2F5aS5vbmUvYmFuZ3VtaS9wbGF5L3NzJyArIE1ZX1BBUkFNUy5pZDtcXFxcbi8vbG9nKE1ZX1VSTClcXFxcbnZhciBodG1sID0gcmVxdWVzdChNWV9VUkwsIHtcXFxcbiAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBNT0JJTEVfVUFcXFxcbiAgICB9XFxcXG59KTtcXFxcblxcXFxubGV0IGpkYXRhID0gSlNPTi5wYXJzZShodG1sLm1hdGNoKC93aW5kb3cuX19JTklUSUFMX1NUQVRFX189KC4qPyk8LylbMV0pO1xcXFxubGV0IGluZm8gPSBqZGF0YS5iYW5ndW1pLm1lZGlhSW5mbztcXFxcbi8vbG9nKGluZm8pXFxcXG50cnkge1xcXFxuICAgIHZhciBpdGl0ID0gJ1xcXFxcXFxcbuexu+WeizogJyArIGluZm8uc3R5bGVzWzBdLnRpdGxlICsgJy8nICsgaW5mby5zdHlsZXNbMV0udGl0bGUgKyAnLycgKyBpbmZvLnN0eWxlc1syXS50aXRsZTtcXFxcbn0gY2F0Y2ggKGUpIHtcXFxcbiAgICB2YXIgaXRpdCA9ICcnXFxcXG59XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiBpbmZvLmtleXdvcmRzICsgaXRpdCxcXFxcbiAgICB1cmw6IE1ZX1VSTCxcXFxcbiAgICBjb2xfdHlwZTogXFxcXFxcXCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyXFxcXFxcXCIsXFxcXG4gICAgZGVzYzogaW5mby5zdGFmZiArICdcXFxcXFxcXG4nICsgaW5mby5jYXN0LFxcXFxuICAgIHBpY191cmw6IGluZm8uY292ZXIgKyBcXFxcXFxcIkBSZWZlcmVyPVxcXFxcXFwiXFxcXG59KTtcXFxcbmxldCBjb250ZW50cyA9IGluZm8uc3Rvcnk7XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGZvbnQgY29sb3I9XFxcXFxcXCIjMDk4QUMxXFxcXFxcXCI+5Ymn5oOF566A5LuLPC9mb250PicsXFxcXG4gICAgZGVzYzogJ+KAmOKAmOKAmeKAmTxmb250IGNvbG9yPVxcXFxcXFwiXFxcXFxcXCI+JyArIGNvbnRlbnRzLnN1YnN0cigwLCA3MCkgKyAnPC9mb250PicgKyAnPHNtYWxsPjxmb250IGNvbG9yPVxcXFxcXFwicmVkXFxcXFxcXCI+6K+m5oOFPC9mb250Pjwvc21hbGw+JyxcXFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxcXG4gICAgZXh0cmE6IHtcXFxcbiAgICAgICAgLy9saW5lVmlzaWJsZTogZmFsc2VcXFxcbiAgICB9LFxcXFxuICAgIHVybDogJCgpLnJ1bGUoKHRleHQpID0+IHtcXFxcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICB0aXRsZTogdGV4dCxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0JyxcXFxcbiAgICAgICAgfV0pXFxcXG4gICAgfSwgY29udGVudHMpXFxcXG59KTtcXFxcblxcXFxudmFyIGxpc3QgPSBpbmZvLmVwaXNvZGVzO1xcXFxuLy9sb2coanNvbilcXFxcbi8vZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9sYXp5JykpLnJ1bGUpXFxcXG4vL+Wbvuagh+adpeiHqumhuuS9rOWwj+eoi+W6j1xcXFxudmFyIGljb25fcyA9ICdodHRwOi8vODIuMTU2LjIyMi43Ny93ZWlzeXIvaWNvbi8nO1xcXFxuaWYgKGdldE15VmFyKCfpobrluo8nLCAn5q2j5bqPJykgPT0gJ+ato+W6jycpIHtcXFxcbiAgICB2YXIgYXZhdGFyID0gaWNvbl9zICsgJ+ato+W6jy5zdmcnO1xcXFxuICAgIHZhciBvcmR0ZXh0ID0gXFxcXFxcXCLimIXmraPluo/ihpNcXFxcXFxcIjtcXFxcbn0gZWxzZSB7XFxcXG4gICAgdmFyIGF2YXRhciA9IGljb25fcyArICflj43luo8uc3ZnJztcXFxcbiAgICB2YXIgb3JkdGV4dCA9IFxcXFxcXFwi4piG6YCG5bqP4oaRXFxcXFxcXCI7XFxcXG59XFxcXG5cXFxcbmZ1bmN0aW9uIHNldExpc3RzKGxpc3RzKSB7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6ICfigJjigJjigJnigJk8c3BhbiBzdHlsZT1cXFxcXFxcImNvbG9yOiMwOThBQzFcXFxcXFxcIj48c21hbGw+6YCJ6ZuG5YiX6KGoPC9zbWFsbD4nICsgJ1xcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdDxzcGFuIHN0eWxlPVxcXFxcXFwiZmxvYXQ6cmlnaHRcXFxcXFxcIj4nICsgJzxzbWFsbD4nICsgb3JkdGV4dCArICc8L3NtYWxsPicsXFxcXG4gICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ+mhuuW6jycsICfmraPluo8nKSA9PSAn6YCG5bqPJykge1xcXFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKCfpobrluo8nLCAn5q2j5bqPJyk7XFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKCfpobrluo8nLCAn6YCG5bqPJyk7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKTtcXFxcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LliIfmjaLpobrluo/kuLo6JyArIGdldE15VmFyKCfpobrluo8nLCAn5q2j5bqPJylcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXFxcbiAgICB9KVxcXFxuXFxcXG4gICAgaWYgKGdldE15VmFyKCfpobrluo8nLCAn5q2j5bqPJykgPT0gJ+ato+W6jycpIHtcXFxcbiAgICAgICAgaWYgKGxpc3RzLmxlbmd0aCA9PSAwKSB7XFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn55Wq5Ymn5pqC5pyq5byA5pKt5ZOm77yM5LiN5L+h54K55Zu+54mH5Y6755yL55yL8J+RgCcsXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGl0IG9mIGxpc3RzKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxuICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGl0LmZvcm1hdF90aXRsZSArICcgJyArIGl0LnRpdGxlLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBpdC52dXJsLnN0YXJ0c1dpdGgoXFxcXFxcXCJodHRwXFxcXFxcXCIpID8gaXQudnVybDonaHR0cHM6Ly9tLmthd2F5aS5vbmUnICsgaXQudnVybCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXFxcblxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+ayoeaciemAiembhuWTn++8jOS4jeS/oeeCueWbvueJh+WOu+eci+eci/CfkYAnLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH1cXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICBsaXN0cyA9IGxpc3RzLnJldmVyc2UoKTtcXFxcbiAgICAgICAgaWYgKGxpc3RzLmxlbmd0aCA9PSAwKSB7XFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn55Wq5Ymn5pqC5pyq5byA5pKt5ZOm77yM5LiN5L+h54K55Zu+54mH5Y6755yL55yL8J+RgCcsXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGl0IG9mIGxpc3RzKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogaXQuZm9ybWF0X3RpdGxlICsgJyAnICsgaXQudGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGl0LnZ1cmwuc3RhcnRzV2l0aChcXFxcXFxcImh0dHBcXFxcXFxcIikgPyBpdC52dXJsOidodHRwczovL20ua2F3YXlpLm9uZScgKyBpdC52dXJsLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzInXFxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5rKh5pyJ6YCJ6ZuG5ZOf77yM5LiN5L+h54K55Zu+54mH5Y6755yL55yL8J+RgCcsXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXFxcbiAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfVxcXFxuICAgIH1cXFxcbn1cXFxcbnNldExpc3RzKGxpc3QpO1xcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9XVwifSIsInBpY1VybCI6Imh0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9xLzcucG5nQFJlZmVyZXI9IiwidGl0bGUiOiLnlarliacifQ==
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement