Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥灵魂摆渡@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZGlzcGxheU5hbWVcIjpcIuW9seinhuW3peWOgvCfpKFcIixcImZpZWxkc1RvU2V0VG9EZWZhdWx0XCI6W10sXCJnbXRNb2RpZmllZFwiOjAsXCJpZFwiOjAsXCJsYXN0X2NoYXB0ZXJfcnVsZVwiOlwianM6XFxucmVxdWlyZUNhY2hlKGNvbmZpZy7kvp3otZYsIGNvbmZpZy7mm7TmlrDpl7TpmpQpO1xcbnZhciDpm4bmlbDmgLvliJfooaggPSAnYm9keSYmLm15dWktY29udGVudF9fbGlzdCdcXG52YXIg6ZuG5pWw5YiX6KGoID0gJ2JvZHkmJmEnXFxu56ug6IqCLkEoKVwiLFwibGlzdFRvQ2xlYXJBc3NvY2lhdGVkRktcIjpbXSxcImxpc3RUb0NsZWFyU2VsZkZLXCI6W10sXCJwYWdlTGlzdFwiOlt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwibGF6eVwiLFwicGF0aFwiOlwibGF6eVwiLFwicnVsZVwiOlwidmFyIGxhenkgPSAkKFxcXCJcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICB2YXIgYWNjZSA9ICd0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSxpbWFnZS93ZWJwLGltYWdlL2FwbmcsKi8qO3E9MC44JztcXG4gICAgICAgIHZhciBwbGF5ZXIgPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQse2hlYWRlcnM6IHsgICAgICAgICAgICAgIFxcbiAgICAgICAgJ0FjY2VwdCc6IGFjY2UsICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgIC8vJ1VzZXItQWdlbnQnOiBQQ19VQSwgICAgIFxcbiAgICB9fSkubWF0Y2goL3IgcGxheWVyXy4qPz0oLio/KTwvKVsxXSk7XFxuICAgICAgICB2YXIganN1cmwgPSBwbGF5ZXIudXJsO1xcbiAgICAgICAgdmFyIGZyb20gPSBwbGF5ZXIuZnJvbTtcXG4gICAgICAgIHZhciBuYW1lID0gcGxheWVyLnZvZF9kYXRhLnZvZF9uYW1lKycrJytwbGF5ZXIudm9kX3RpdGxlX25hbWVcXG4gICAgICAgIHZhciBqeCA9IHJlcXVlc3QoJ2h0dHBzOi8vd3d3LnlzZ2MxLmNjL3N0YXRpYy9wbGF5ZXIvJytmcm9tKycuanMnLCB7aGVhZGVyczogeyAgICAgICAgICAgICAgXFxuICAgICAgICAnQWNjZXB0JzogYWNjZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgfX0pLm1hdGNoKC9zcmM9XFxcIiguKj8pJy8pWzFdOyAgXFxuICAgICAgICB2YXIgcGFyc2UgPSAnaHR0cHM6Ly93d3cueXNnYzEuY2MnICsganggKyBqc3VybCsnJmp1bXA9dGl0bGU9JytuYW1lKycmdGh1bWI9JmlkPScrcGxheWVyLmlkKycmbmlkPScrcGxheWVyLm5pZDtcXG50cnkge1xcbiAgICAgICAgdmFyIHVybCA9IGV2YWwocmVxdWVzdChwYXJzZSx7aGVhZGVyczogeyAgICAgICAgICAgICAgXFxuICAgICAgICAnQWNjZXB0JzogYWNjZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxuICAgIH19KS5tYXRjaCgvdmFyIHVybHNbXFxcXHNcXFxcU10qP3VybHMgPShbXFxcXHNcXFxcU10qPyk7LylbMV0pO1xcbi8vbG9nKHVybClcXG4gICAgICAgIHZhciB1cmwgPSAoYmFzZTY0RGVjb2RlKHVybCkpLm1hdGNoKC9odHRwLiovKVswXTtcXG4gICAgICAgIHZhciB1cmwgPSB1cmwuc3Vic3RyaW5nKDAsIHVybC5sZW5ndGggLSA4KTtcXG4gICAgICAgIHJldHVybiB1cmxcXG4gICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgXFxuICAgIGZ1bmN0aW9uIHg1cnVsZShqaWV4dXJsKSB7XFxuICAgIHNob3dMb2FkaW5nKFxcXCLnvZHpobXorr/pl67mo4DntKLkuK3vvIzor7fnqI3lgJkuLi5cXFwiKTtcXG4gICAgdmFyIHZpZGVvID0gJ3dlYlJ1bGU6Ly8nICsgamlleHVybCArICdAJyArICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgZmJhLmxvZyhmYmEuZ2V0VXJscygpKTtcXG4gICAgICAgIHZhciB1cmxzID0gX2dldFVybHMoKTtcXG4gICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA9PSBudWxsIHx8IHdpbmRvdy5fX2NvdW50ID09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgIHdpbmRvdy5fX2NvdW50ID0gMFxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHdpbmRvdy5fX2NvdW50ID49IDEwKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uLmhyZWZcXG4gICAgICAgIH1cXG4gICAgICAgIHdpbmRvdy5fX2NvdW50ID0gd2luZG93Ll9fY291bnQgKyAxO1xcbiAgICAgICAgIGlmKHdpbmRvdy5fX2NvdW50ID4gMCAmJiB3aW5kb3cuX19jb3VudCAhPSBudWxsICYmIHdpbmRvdy5fX2NvdW50ICE9IHVuZGVmaW5lZCl7XFxuICAgICAgICAgICAgICAgIGZiYS5sb2coJ+aXpeW/l+ajgOe0ouesrCcgKyB3aW5kb3cuX19jb3VudCArICfmrKEnKTtcXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiB1cmxzKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1tpXS5tYXRjaCgvXFxcXC5tNGF8XFxcXC5tM3U4fFxcXFwubXAzfFxcXFwuZmx2fFxcXFwubXA0LykgJiYgIXVybHNbaV0ubWF0Y2goL2RtLykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2Z5X2JyaWRnZV9hcHAubG9nKHVybHNbaV0pOyAgICAgICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmxzW2ldICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSAvL2VuZCBmb3IgaVxcbiAgICAgICAgfVxcbiAgICB9KTtcXG4gICAgcmV0dXJuIHZpZGVvXFxufVxcbnJldHVybiB4NXJ1bGUoaW5wdXQpO1xcbiAgICB9XFxufSk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJsYXp5MVwiLFwicGF0aFwiOlwibGF6eTFcIixcInJ1bGVcIjpcInZhciBsYXp5ID0gJCgnJykubGF6eVJ1bGUoKE1ZX0hPTUUpID0+IHtcXHJcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxyXFxuICAgIHZhciB1cmwgPSBodG1sLnVybFxcclxcbiAgICBpZiAoaHRtbC5lbmNyeXB0ID09ICcxJykge1xcclxcbiAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXHJcXG4gICAgfSBlbHNlIGlmIChodG1sLmVuY3J5cHQgPT0gJzInKSB7XFxyXFxuICAgICAgICB1cmwgPSB1bmVzY2FwZShiYXNlNjREZWNvZGUodXJsKSk7XFxyXFxuICAgIH1cXHJcXG4gICAgdmFyIGp4ID0gZmV0Y2goTVlfSE9NRSArICcvc3RhdGljL3BsYXllci8nICsgaHRtbC5mcm9tICsgJy5qcycpLm1hdGNoKC9zcmM9XFxcIiguKj8pJy8pWzFdXFxyXFxuICAgIGV2YWwocmVxdWVzdChqeCArIHVybCkubWF0Y2goL3ZhciBjb25maWcgPSB7W1xcXFxzXFxcXFNdKj99LylbMF0pXFxyXFxuICAgIGp4ID0gangucmVwbGFjZSgnP3VybD0nLCAnJylcXHJcXG4gICAgZXZhbCgnanhrID0gJyArIHJlcXVlc3QoanggKyAnanMvc2V0dGluZy5qcycpLm1hdGNoKC92YXIuKj0oXFxcXFsuKj8pOy8pWzFdKVxcclxcblxcclxcbiAgICBqeCArPSBqeGtbNF1cXHJcXG4gICAgY29uZmlnLnNpZ24gPSBqeGtbOF1cXHJcXG4gICAgZXZhbChyZXF1ZXN0KCdodHRwczovL3ZrY2V5dWd1LmNkbi5ic3BhcHAuY29tL1ZLQ0VZVUdVLTAzZWUxZjg5LWYwZDQtNDlhYS1hMmIzLTUwZTIwMzUxNGQ4YS8yZTU0Y2M0Mi05YjRjLTQ1N2QtYjJkZS0wY2RmM2UyYWVlYWEuanMnKSlcXHJcXG5cXHJcXG4gICAgZnVuY3Rpb24gZGQodXJsLCBqeCkge1xcclxcbiAgICAgICAgcmV0dXJuIGdldFZpZGVvSW5mbyhKU09OLnBhcnNlKHBvc3QoangsIHtcXHJcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxyXFxuICAgICAgICAgICAgICAgICdSZWZlcmVyJzogTVlfVVJMXFxyXFxuICAgICAgICAgICAgfSxcXHJcXG4gICAgICAgICAgICBib2R5OiBjb25maWcsXFxyXFxuICAgICAgICB9KSkudXJsKTtcXHJcXG4gICAgfVxcclxcbiAgICBpZiAoL20zdTh8bXA0Ly50ZXN0KHVybCkpIHtcXHJcXG4gICAgICAgIHJldHVybiB1cmxcXHJcXG4gICAgfSBlbHNlIHtcXHJcXG4gICAgICAgIHJldHVybiBkZCh1cmwsIGp4KSArICcjaXNWaWRlbz10cnVlIydcXHJcXG4gICAgfVxcclxcbn0sIE1ZX0hPTUUpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5LqM57qnXCIsXCJwYXRoXCI6XCLkuoznuqdcIixcInJ1bGVcIjpcInZhciBjb29raWUgPSBnZXRJdGVtKFxcXCJjb29raWVcXFwiLCBcXFwiXFxcIik7XFxudmFyIGNvb2tpZSA9IGNvb2tpZS5yZXBsYWNlKC8gc3NlYTJfc2VhcmNoLio/Oy8sICcnKTtcXG5sb2coTVlfVVJMKVxcbnZhciBodG1sID0gcmVxdWVzdChNWV9VUkwse2hlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAnQ29va2llJzogY29va2llLCBcXG4gICAgICAgICAgICAgICAnQWNjZXB0JzogJ3RleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LGltYWdlL3dlYnAsaW1hZ2UvYXBuZywqLyo7cT0wLjgnXFxuICAgICAgICAgICAgfX0pXFxuXFxudmFyIGFydHMgPSBwZGZhKGh0bWwsICcubmF2LXRhYnMmJmxpJyk7XFxuXFxudmFyIHRhYnMgPSBbXTtcXG5mb3IgKHZhciBpIGluIGFydHMpIHtcXG4gICAgdGFicy5wdXNoKHBkZmgoYXJ0c1tpXSwgJ1RleHQnKSlcXG59XFxuXFxudmFyIGNvbnRzID0gcGRmYShodG1sLCAnYm9keSYmLm15dWktY29udGVudF9fbGlzdCcpO1xcblxcbnZhciBsaXN0cyA9IFtdO1xcbmZvciAodmFyIGkgaW4gY29udHMpIHtcXG4gICAgbGlzdHMucHVzaChwZGZhKGNvbnRzW2ldLCAnYm9keSYmYScpKVxcbn1cXG50cnkge1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBwZGZoKGh0bWwsICcubXl1aS1jb250ZW50X19kZXRhaWwmJi5kYXRhLDImJlRleHQnKS5zdWJzdHJpbmcoMCwgMTgpICtcXG4gICAgICAgICdcXFxcbicgK1xcbiAgICAgICAgJ1xcXFxuJyArXFxuICAgICAgICBwZGZoKGh0bWwsXFxuICAgICAgICAgICAgJycpLnN1YnN0cmluZygwLCAxOCksXFxuICAgIGRlc2M6IHBkZmgoaHRtbCwgJy5teXVpLWNvbnRlbnRfX2RldGFpbCYmLmRhdGEmJlRleHQnKSxcXG4gICAgaW1nOiBwZChodG1sLFxcbiAgICAgICAgJy5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbCcpICsgJ0BSZWZlcmVyPScsXFxuICAgIHVybDogcGQoaHRtbCxcXG4gICAgICAgICcubGF6eWxvYWQmJmRhdGEtb3JpZ2luYWwnKSsnLmpwZycsXFxuICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cicsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBncmFkaWVudDogdHJ1ZVxcbiAgICB9XFxufSk7XFxufSBjYXRjaCAoZSkge1xcbmQucHVzaCh7IFxcbiAgICBpbWc6IHBkKGh0bWwsIFxcbicubGF6eWxvYWQmJmRhdGEtb3JpZ2luYWwnKSArJ0BSZWZlcmVyPScsXFxuICAgIHVybDogTVlfVVJMLFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLGV4dHJhOiB7Z3JhZGllbnQ6IHRydWV9XFxufSk7XFxufVxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2xhenknLCB7fSkpLnJ1bGUpO1xcblxcbmZ1bmN0aW9uIHNldFRhYnModGFicywgdmFyaSkge1xcblxcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYnMubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgIHZhciB1cmwgPSBcXFwiI25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnB1dFZhcignXFxcIiArIHZhcmkgKyBcXFwiJyAsICAnXFxcIiArIGkgKyBcXFwiJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSc7JyNub0hpc3RvcnkjaGlrZXI6Ly9lbXB0eSdcXFwiO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZ2V0VmFyKHZhcmksICcwJykgPT0gaSA/ICc8Zm9udCBjb2xvcj1cXFwiIzFhYWQxOVxcXCI+JyArIHRhYnNbaV0gKyAnPC9mb250PicgOiB0YWJzW2ldLFxcbiAgICAgICAgICAgIGltZzogcGQoYXJ0c1tpXSwgJ2ltZyYmc3JjJyksXFxuICAgICAgICAgICAgdXJsOiB1cmwsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdpY29uX3NtYWxsXzMnXFxuICAgICAgICB9KVxcbiAgICB9XFxuICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IChnZXRWYXIoJ3Noc29ydCcpID09ICcxJykgPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjRkYwMDAwXFxcIj7pgIbluo88L3NwYW4+PC9iPicgOiAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjMWFhZDE5XFxcIj7mraPluo88L3NwYW4+PC9iPicsXFxuICAgICAgICB1cmw6IGBAbGF6eVJ1bGU9LmpzOmxldCBjb25mID0gZ2V0VmFyKCdzaHNvcnQnKTtpZihjb25mPT0nMScpe3B1dFZhcih7a2V5OidzaHNvcnQnLCB2YWx1ZTonMCd9KTt9ZWxzZXtwdXRWYXIoe2tleTonc2hzb3J0JywgdmFsdWU6JzEnfSl9O3JlZnJlc2hQYWdlKCk7J3RvYXN0Oi8v5YiH5o2i5o6S5bqP5oiQ5YqfJ2AsXFxuICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICB9KSAgXFxufVxcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snXFxufSlcXG5cXG5mdW5jdGlvbiBzZXRMaXN0cyhsaXN0cywgaW5kZXgpIHtcXG4gICAgdmFyIGxpc3QgPSBsaXN0c1tpbmRleF07XFxuICAgIGlmIChnZXRWYXIoJ3Noc29ydCcpID09ICcxJykge1xcbiAgICAgICAgdmFyIGxpc3QgPSBsaXN0c1tpbmRleF0ucmV2ZXJzZSgpO1xcbiAgICB9XFxuICAgIGZvciAodmFyIGogaW4gbGlzdCkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogcGRmaChsaXN0W2pdLCAnYSYmVGV4dCcpXFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/nrKwoXFxcXGQrKembhi8sICckMScpXFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKCfnrKwnLCAnJylcXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ+acnycsICcnKSxcXG4gICAgICAgICAgICB1cmw6IHBkKGxpc3Rbal0sICdhJiZocmVmJykgKyBsYXp5LFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBsaXN0Lmxlbmd0aCA+IDMgPyAndGV4dF80JyA6ICd0ZXh0XzInXFxuICAgICAgICB9KTtcXG4gICAgfVxcbn1cXG5cXG5zZXRUYWJzKHRhYnMsIE1ZX1VSTCk7XFxuc2V0TGlzdHMobGlzdHMsIGdldFZhcihNWV9VUkwsICcwJykpO1xcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Li76aG1XCIsXCJwYXRoXCI6XCLkuLvpobVcIixcInJ1bGVcIjpcInJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9wYXN0ZWJpbi5jb20vcmF3L0QyaWltVkhrJywyNCk7XFxu5aSn57G75a6a5L2NID0gJ2JvZHkmJi5uYXYtbGlzdCdcXG7mi7zmjqXliIbnsbsgPSAnLm15dWktcGFuZWxfYmQmJnVsJ1xcbuWwj+exu+WumuS9jSA9ICdib2R5LS1hJiZhOm5vdCg6bWF0Y2hlcyjotYR85piOfEEpKSdcXG7liIbnsbvmoIfpopggPSAnYSYmVGV4dCdcXG7liIbnsbvpk77mjqUgPSAnYSYmaHJlZidcXG5NWV9VUkwgPSBNWV9VUkwucmVwbGFjZSgnaGlrZXI6Ly9lbXB0eSMjJywgJycpXFxuXFxubGV0IHRydWVfdXJsID0gZ2V0TXlWYXIoXFxcInVybFxcXCIsIE1ZX1VSTClcXG5cXG5jb25zdCBwYWdlID0gTVlfUEFHRVxcbmlmIChnZXRNeVZhcihcXFwidXJsXFxcIikpIHtcXG4gICAgdHJ1ZV91cmwgPSB0cnVlX3VybC5yZXBsYWNlKC92b2R0eXBlKFxcXFwvXFxcXGQrKVxcXFwuaHRtbC8sICd2b2RzaG93JDEtLS0tLS0tLS0tLS5odG1sJykucmVwbGFjZSgnLS0tLmh0bWwnLCBwYWdlICsgJy0tLS5odG1sJykucmVwbGFjZSgvKC0tLVxcXFxkKy5odG1sKS8sIHBhZ2UgKyAnJDEnKVxcbn1cXG52YXIgaHRtbCA9IGZldGNoKHRydWVfdXJsKVxcblxcbnZhciDliJfooaggPSAnLm15dWktdm9kbGlzdCYmbGknXFxudmFyIOagh+mimCA9ICdhJiZ0aXRsZSdcXG52YXIg5o+P6L+wID0gJy5waWMtdGV4dCYmVGV4dCdcXG52YXIg5Zu+54mHID0gJy5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbCdcXG52YXIg6ZO+5o6lID0gJ2EmJmhyZWYnXFxu5LiA57qnMS5BKClcIn1dLFwic2F2ZWRcIjpmYWxzZSxcInRpdGxlXCI6XCLlvbHop4blkIjpm4ZcIixcInZlcnNpb25cIjowLFwidXJsXCI6XCJodHRwczovL3d3dy55c2djMS5jYy92b2RkZXRhaWwvNjM0My5odG1sI2ltbWVyc2l2ZVRoZW1lIztnZXQ7VVRGLTg7e0FjY2VwdEB0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbO+8m++8m3E9MC45LGltYWdlL2F2aWYsaW1hZ2Uvd2VicCxpbWFnZS9hcG5nLCovKu+8m++8m3E9MC44LGFwcGxpY2F0aW9uL3NpZ25lZC1leGNoYW5nZe+8m++8m3Y9YjPvvJvvvJtxPTAuNyYmQWNjZXB0LUxhbmd1YWdlQHpoLUNOLHpo77yb77ybcT0wLjkmJlVzZXItQWdlbnRATW96aWxsYS81LjAgKExpbnV477yb77ybIEFuZHJvaWQgMTHvvJvvvJsgTWkgMTAgUHJvKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODguMC40MzI0LjE1MiBNb2JpbGUgU2FmYXJpLzUzNy4zNn1cIixcImNvbF90eXBlXCI6XCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyXCIsXCJmaW5kX3J1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxudmFyIGNvb2tpZSA9IGdldEl0ZW0oXFxcImNvb2tpZVxcXCIsIFxcXCJcXFwiKTtcXG52YXIgY29va2llID0gY29va2llLnJlcGxhY2UoLyBzc2VhMl9zZWFyY2guKj87LywgJycpO1xcblxcbnZhciBodG1sID0gZmV0Y2goTVlfVVJMLHtoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgJ0Nvb2tpZSc6IGNvb2tpZSwgXFxuICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICd0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSxpbWFnZS93ZWJwLGltYWdlL2FwbmcsKi8qO3E9MC44J1xcbiAgICAgICAgICAgIH19KVxcblxcbnZhciBhcnRzID0gcGRmYShodG1sLCAnLm5hdi10YWJzJiZsaScpO1xcblxcbnZhciB0YWJzID0gW107XFxuZm9yICh2YXIgaSBpbiBhcnRzKSB7XFxuICAgIHRhYnMucHVzaChwZGZoKGFydHNbaV0sICdUZXh0JykpXFxufVxcblxcbnZhciBjb250cyA9IHBkZmEoaHRtbCwgJ2JvZHkmJi5teXVpLWNvbnRlbnRfX2xpc3QnKTtcXG5cXG52YXIgbGlzdHMgPSBbXTtcXG5mb3IgKHZhciBpIGluIGNvbnRzKSB7XFxuICAgIGxpc3RzLnB1c2gocGRmYShjb250c1tpXSwgJ2JvZHkmJmEnKSlcXG59XFxudHJ5IHtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogcGRmaChodG1sLCAnLm15dWktY29udGVudF9fZGV0YWlsJiYuZGF0YSwyJiZUZXh0Jykuc3Vic3RyaW5nKDAsIDE4KSArXFxuICAgICAgICAnXFxcXG4nICtcXG4gICAgICAgICdcXFxcbicgK1xcbiAgICAgICAgcGRmaChodG1sLFxcbiAgICAgICAgICAgICcnKS5zdWJzdHJpbmcoMCwgMTgpLFxcbiAgICBkZXNjOiBwZGZoKGh0bWwsICcubXl1aS1jb250ZW50X19kZXRhaWwmJi5kYXRhJiZUZXh0JyksXFxuICAgIGltZzogcGQoaHRtbCxcXG4gICAgICAgICcubGF6eWxvYWQmJmRhdGEtb3JpZ2luYWwnKSArICdAUmVmZXJlcj0nLFxcbiAgICB1cmw6IHBkKGh0bWwsXFxuICAgICAgICAnLmxhenlsb2FkJiZkYXRhLW9yaWdpbmFsJykrJy5qcGcnLFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLFxcbiAgICBleHRyYToge1xcbiAgICAgICAgZ3JhZGllbnQ6IHRydWVcXG4gICAgfVxcbn0pO1xcbn0gY2F0Y2ggKGUpIHtcXG5kLnB1c2goeyBcXG4gICAgaW1nOiBwZChodG1sLCBcXG4nLmxhenlsb2FkJiZkYXRhLW9yaWdpbmFsJykgKydAUmVmZXJlcj0nLFxcbiAgICB1cmw6IE1ZX1VSTCxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJyxleHRyYToge2dyYWRpZW50OiB0cnVlfVxcbn0pO1xcbn1cXG52YXIg566A5LuLID0gcGRmaChodG1sLCAnLnRleHQtY29sbGFwc2UmJlRleHQnKVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNtYWxsPjxmb250IGNvbG9yPVxcXCIjZmYxNDhlOGVcXFwiPueugOS7i++8micgKyDnroDku4suc3Vic3RyKDAsIDU1KSArICcuLi48L2ZvbnQ+PHNtYWxsPjxmb250IGNvbG9yPVxcXCJyZWRcXFwiPuivpuaDhTwvZm9udD48L3NtYWxsPjwvc21hbGw+JyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eSMnICsgJ1xcXFxuJyArIOeugOS7iyArJyNub0hpc3RvcnkjI25vUmVjb3JkSGlzdG9yeSMnICsgYEBydWxlPWpzOiB2YXIgZCA9IFtdO2QucHVzaCh7dGl0bGU6J+W9seeJh+eugOS7i++8micrIE1ZX1VSTC5zcGxpdCgnIycpWzFdLGNvbF90eXBlOiAnbG9uZ190ZXh0J30pOyBzZXRSZXN1bHQoZCk7YCxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxufSk7XFxuZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvbGF6eScsIHt9KSkucnVsZSk7XFxuXFxuZnVuY3Rpb24gc2V0VGFicyh0YWJzLCB2YXJpKSB7XFxuXFxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFicy5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgdmFyIHVybCA9IFxcXCIjbm9Mb2FkaW5nI0BsYXp5UnVsZT0uanM6cHV0VmFyKCdcXFwiICsgdmFyaSArIFxcXCInICwgICdcXFwiICsgaSArIFxcXCInKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJzsnI25vSGlzdG9yeSNoaWtlcjovL2VtcHR5J1xcXCI7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBnZXRWYXIodmFyaSwgJzAnKSA9PSBpID8gJzxmb250IGNvbG9yPVxcXCIjMWFhZDE5XFxcIj4nICsgdGFic1tpXSArICc8L2ZvbnQ+JyA6IHRhYnNbaV0sXFxuICAgICAgICAgICAgaW1nOiBwZChhcnRzW2ldLCAnaW1nJiZzcmMnKSxcXG4gICAgICAgICAgICB1cmw6IHVybCxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ljb25fc21hbGxfMydcXG4gICAgICAgIH0pXFxuICAgIH1cXG4gIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogKGdldFZhcignc2hzb3J0JykgPT0gJzEnKSA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICNGRjAwMDBcXFwiPumAhuW6jzwvc3Bhbj48L2I+JyA6ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICMxYWFkMTlcXFwiPuato+W6jzwvc3Bhbj48L2I+JyxcXG4gICAgICAgIHVybDogYEBsYXp5UnVsZT0uanM6bGV0IGNvbmYgPSBnZXRWYXIoJ3Noc29ydCcpO2lmKGNvbmY9PScxJyl7cHV0VmFyKHtrZXk6J3Noc29ydCcsIHZhbHVlOicwJ30pO31lbHNle3B1dFZhcih7a2V5OidzaHNvcnQnLCB2YWx1ZTonMSd9KX07cmVmcmVzaFBhZ2UoKTsndG9hc3Q6Ly/liIfmjaLmjpLluo/miJDlip8nYCxcXG4gICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxuICAgIH0pICBcXG59XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdibGFua19ibG9jaydcXG59KVxcblxcbmZ1bmN0aW9uIHNldExpc3RzKGxpc3RzLCBpbmRleCkge1xcbiAgICB2YXIgbGlzdCA9IGxpc3RzW2luZGV4XTtcXG4gICAgaWYgKGdldFZhcignc2hzb3J0JykgPT0gJzEnKSB7XFxuICAgICAgICB2YXIgbGlzdCA9IGxpc3RzW2luZGV4XS5yZXZlcnNlKCk7XFxuICAgIH1cXG4gICAgZm9yICh2YXIgaiBpbiBsaXN0KSB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBwZGZoKGxpc3Rbal0sICdhJiZUZXh0JylcXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL+esrChcXFxcZCsp6ZuGLywgJyQxJylcXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ+esrCcsICcnKVxcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgn5pyfJywgJycpLFxcbiAgICAgICAgICAgIHVybDogcGQobGlzdFtqXSwgJ2EmJmhyZWYnKSArIGxhenksXFxuICAgICAgICAgICAgY29sX3R5cGU6IGxpc3QubGVuZ3RoID4gMyA/ICd0ZXh0XzQnIDogJ3RleHRfMidcXG4gICAgICAgIH0pO1xcbiAgICB9XFxufVxcblxcbnNldFRhYnModGFicywgTVlfVVJMKTtcXG5zZXRMaXN0cyhsaXN0cywgZ2V0VmFyKE1ZX1VSTCwgJzAnKSk7XFxuXFxuZm9yICh2YXIgYiA9IDA7IGIgPCA1OyBiKyspIHtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2JpZ19ibGFua19ibG9jaydcXG59KVxcbn1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNtYWxsPjxmb250IGNvbG9yPSMyMGIyYWE+5pWw5o2u6LWE5rqQ5pS26ZuG5LqO572R57uc77yM5rW36ZiU5LiN5o+Q5L6b5Lu75L2V6LWE5rqQ77yBPC9mb250Pjwvc21hbGw+JyxcXG4gICAgICAgIGRlc2M6ICfigJjigJjigJnigJk8c21hbGw+PGZvbnQgY29sb3I9I2ZmN2Y1MD7mnKzop4TliJnku4XpmZDlrabkuaDkuI7kuqTmtYHvvIzor7flr7zlhaXlkI4yNOWwj+aXtuWGheWIoOmZpO+8jOivt+WLv+S8oOaSre+8gTwvZm9udD48L3NtYWxsPicsXFxuICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcbiAgICAgICAgfVxcbiAgICB9KTtcXG5zZXRSZXN1bHQoZClcIixcImdyb3VwXCI6XCLlvbHop4blkIjpm4ZcIixcInVhXCI6XCJtb2JpbGVcIixcInByZVJ1bGVcIjpcImluaXRDb25maWcoe1xcbiAgICDkvp3otZY6ICdodHRwczovL3Bhc3RlYmluLmNvbS9yYXcvRDJpaW1WSGsnLFxcbiAgICDmm7TmlrDpl7TpmpQ6IDQ4XFxufSk7XCIsXCJwYWdlc1wiOlwiW3tcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcImxhenlcXFwiLFxcXCJwYXRoXFxcIjpcXFwibGF6eVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJ2YXIgbGF6eSA9ICQoXFxcXFxcXCJcXFxcXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICB2YXIgYWNjZSA9ICd0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSxpbWFnZS93ZWJwLGltYWdlL2FwbmcsKi8qO3E9MC44JztcXFxcbiAgICAgICAgdmFyIHBsYXllciA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCx7aGVhZGVyczogeyAgICAgICAgICAgICAgXFxcXG4gICAgICAgICdBY2NlcHQnOiBhY2NlLCAgICAgICAgICAgICAgICAgICAgICAgXFxcXG4gICAgICAgIC8vJ1VzZXItQWdlbnQnOiBQQ19VQSwgICAgIFxcXFxuICAgIH19KS5tYXRjaCgvciBwbGF5ZXJfLio/PSguKj8pPC8pWzFdKTtcXFxcbiAgICAgICAgdmFyIGpzdXJsID0gcGxheWVyLnVybDtcXFxcbiAgICAgICAgdmFyIGZyb20gPSBwbGF5ZXIuZnJvbTtcXFxcbiAgICAgICAgdmFyIG5hbWUgPSBwbGF5ZXIudm9kX2RhdGEudm9kX25hbWUrJysnK3BsYXllci52b2RfdGl0bGVfbmFtZVxcXFxuICAgICAgICB2YXIganggPSByZXF1ZXN0KCdodHRwczovL3d3dy55c2djMS5jYy9zdGF0aWMvcGxheWVyLycrZnJvbSsnLmpzJywge2hlYWRlcnM6IHsgICAgICAgICAgICAgIFxcXFxuICAgICAgICAnQWNjZXB0JzogYWNjZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcbiAgICB9fSkubWF0Y2goL3NyYz1cXFxcXFxcIiguKj8pJy8pWzFdOyAgXFxcXG4gICAgICAgIHZhciBwYXJzZSA9ICdodHRwczovL3d3dy55c2djMS5jYycgKyBqeCArIGpzdXJsKycmanVtcD10aXRsZT0nK25hbWUrJyZ0aHVtYj0maWQ9JytwbGF5ZXIuaWQrJyZuaWQ9JytwbGF5ZXIubmlkO1xcXFxudHJ5IHtcXFxcbiAgICAgICAgdmFyIHVybCA9IGV2YWwocmVxdWVzdChwYXJzZSx7aGVhZGVyczogeyAgICAgICAgICAgICAgXFxcXG4gICAgICAgICdBY2NlcHQnOiBhY2NlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcbiAgICB9fSkubWF0Y2goL3ZhciB1cmxzW1xcXFxcXFxcc1xcXFxcXFxcU10qP3VybHMgPShbXFxcXFxcXFxzXFxcXFxcXFxTXSo/KTsvKVsxXSk7XFxcXG4vL2xvZyh1cmwpXFxcXG4gICAgICAgIHZhciB1cmwgPSAoYmFzZTY0RGVjb2RlKHVybCkpLm1hdGNoKC9odHRwLiovKVswXTtcXFxcbiAgICAgICAgdmFyIHVybCA9IHVybC5zdWJzdHJpbmcoMCwgdXJsLmxlbmd0aCAtIDgpO1xcXFxuICAgICAgICByZXR1cm4gdXJsXFxcXG4gICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICBcXFxcbiAgICBmdW5jdGlvbiB4NXJ1bGUoamlleHVybCkge1xcXFxuICAgIHNob3dMb2FkaW5nKFxcXFxcXFwi572R6aG16K6/6Zeu5qOA57Si5Lit77yM6K+356iN5YCZLi4uXFxcXFxcXCIpO1xcXFxuICAgIHZhciB2aWRlbyA9ICd3ZWJSdWxlOi8vJyArIGppZXh1cmwgKyAnQCcgKyAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICAgICAgZmJhLmxvZyhmYmEuZ2V0VXJscygpKTtcXFxcbiAgICAgICAgdmFyIHVybHMgPSBfZ2V0VXJscygpO1xcXFxuICAgICAgICBpZiAod2luZG93Ll9fY291bnQgPT0gbnVsbCB8fCB3aW5kb3cuX19jb3VudCA9PSB1bmRlZmluZWQpIHtcXFxcbiAgICAgICAgICAgIHdpbmRvdy5fX2NvdW50ID0gMFxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA+PSAxMCkge1xcXFxuICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uLmhyZWZcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICB3aW5kb3cuX19jb3VudCA9IHdpbmRvdy5fX2NvdW50ICsgMTtcXFxcbiAgICAgICAgIGlmKHdpbmRvdy5fX2NvdW50ID4gMCAmJiB3aW5kb3cuX19jb3VudCAhPSBudWxsICYmIHdpbmRvdy5fX2NvdW50ICE9IHVuZGVmaW5lZCl7XFxcXG4gICAgICAgICAgICAgICAgZmJhLmxvZygn5pel5b+X5qOA57Si56ysJyArIHdpbmRvdy5fX2NvdW50ICsgJ+asoScpO1xcXFxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4gdXJscykge1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1tpXS5tYXRjaCgvXFxcXFxcXFwubTRhfFxcXFxcXFxcLm0zdTh8XFxcXFxcXFwubXAzfFxcXFxcXFxcLmZsdnxcXFxcXFxcXC5tcDQvKSAmJiAhdXJsc1tpXS5tYXRjaCgvZG0vKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9meV9icmlkZ2VfYXBwLmxvZyh1cmxzW2ldKTsgICAgICAgICAgICAgICAgICAgIFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmxzW2ldICAgICAgICAgICAgICAgICAgICAgICBcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0gLy9lbmQgZm9yIGlcXFxcbiAgICAgICAgfVxcXFxuICAgIH0pO1xcXFxuICAgIHJldHVybiB2aWRlb1xcXFxufVxcXFxucmV0dXJuIHg1cnVsZShpbnB1dCk7XFxcXG4gICAgfVxcXFxufSk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwibGF6eTFcXFwiLFxcXCJwYXRoXFxcIjpcXFwibGF6eTFcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIGxhenkgPSAkKCcnKS5sYXp5UnVsZSgoTVlfSE9NRSkgPT4ge1xcXFxyXFxcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxcXHJcXFxcbiAgICB2YXIgdXJsID0gaHRtbC51cmxcXFxcclxcXFxuICAgIGlmIChodG1sLmVuY3J5cHQgPT0gJzEnKSB7XFxcXHJcXFxcbiAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXFxcclxcXFxuICAgIH0gZWxzZSBpZiAoaHRtbC5lbmNyeXB0ID09ICcyJykge1xcXFxyXFxcXG4gICAgICAgIHVybCA9IHVuZXNjYXBlKGJhc2U2NERlY29kZSh1cmwpKTtcXFxcclxcXFxuICAgIH1cXFxcclxcXFxuICAgIHZhciBqeCA9IGZldGNoKE1ZX0hPTUUgKyAnL3N0YXRpYy9wbGF5ZXIvJyArIGh0bWwuZnJvbSArICcuanMnKS5tYXRjaCgvc3JjPVxcXFxcXFwiKC4qPyknLylbMV1cXFxcclxcXFxuICAgIGV2YWwocmVxdWVzdChqeCArIHVybCkubWF0Y2goL3ZhciBjb25maWcgPSB7W1xcXFxcXFxcc1xcXFxcXFxcU10qP30vKVswXSlcXFxcclxcXFxuICAgIGp4ID0gangucmVwbGFjZSgnP3VybD0nLCAnJylcXFxcclxcXFxuICAgIGV2YWwoJ2p4ayA9ICcgKyByZXF1ZXN0KGp4ICsgJ2pzL3NldHRpbmcuanMnKS5tYXRjaCgvdmFyLio9KFxcXFxcXFxcWy4qPyk7LylbMV0pXFxcXHJcXFxcblxcXFxyXFxcXG4gICAganggKz0ganhrWzRdXFxcXHJcXFxcbiAgICBjb25maWcuc2lnbiA9IGp4a1s4XVxcXFxyXFxcXG4gICAgZXZhbChyZXF1ZXN0KCdodHRwczovL3ZrY2V5dWd1LmNkbi5ic3BhcHAuY29tL1ZLQ0VZVUdVLTAzZWUxZjg5LWYwZDQtNDlhYS1hMmIzLTUwZTIwMzUxNGQ4YS8yZTU0Y2M0Mi05YjRjLTQ1N2QtYjJkZS0wY2RmM2UyYWVlYWEuanMnKSlcXFxcclxcXFxuXFxcXHJcXFxcbiAgICBmdW5jdGlvbiBkZCh1cmwsIGp4KSB7XFxcXHJcXFxcbiAgICAgICAgcmV0dXJuIGdldFZpZGVvSW5mbyhKU09OLnBhcnNlKHBvc3QoangsIHtcXFxcclxcXFxuICAgICAgICAgICAgaGVhZGVyczoge1xcXFxyXFxcXG4gICAgICAgICAgICAgICAgJ1JlZmVyZXInOiBNWV9VUkxcXFxcclxcXFxuICAgICAgICAgICAgfSxcXFxcclxcXFxuICAgICAgICAgICAgYm9keTogY29uZmlnLFxcXFxyXFxcXG4gICAgICAgIH0pKS51cmwpO1xcXFxyXFxcXG4gICAgfVxcXFxyXFxcXG4gICAgaWYgKC9tM3U4fG1wNC8udGVzdCh1cmwpKSB7XFxcXHJcXFxcbiAgICAgICAgcmV0dXJuIHVybFxcXFxyXFxcXG4gICAgfSBlbHNlIHtcXFxcclxcXFxuICAgICAgICByZXR1cm4gZGQodXJsLCBqeCkgKyAnI2lzVmlkZW89dHJ1ZSMnXFxcXHJcXFxcbiAgICB9XFxcXHJcXFxcbn0sIE1ZX0hPTUUpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuS6jOe6p1xcXCIsXFxcInBhdGhcXFwiOlxcXCLkuoznuqdcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIGNvb2tpZSA9IGdldEl0ZW0oXFxcXFxcXCJjb29raWVcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIik7XFxcXG52YXIgY29va2llID0gY29va2llLnJlcGxhY2UoLyBzc2VhMl9zZWFyY2guKj87LywgJycpO1xcXFxubG9nKE1ZX1VSTClcXFxcbnZhciBodG1sID0gcmVxdWVzdChNWV9VUkwse2hlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICdDb29raWUnOiBjb29raWUsIFxcXFxuICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICd0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSxpbWFnZS93ZWJwLGltYWdlL2FwbmcsKi8qO3E9MC44J1xcXFxuICAgICAgICAgICAgfX0pXFxcXG5cXFxcbnZhciBhcnRzID0gcGRmYShodG1sLCAnLm5hdi10YWJzJiZsaScpO1xcXFxuXFxcXG52YXIgdGFicyA9IFtdO1xcXFxuZm9yICh2YXIgaSBpbiBhcnRzKSB7XFxcXG4gICAgdGFicy5wdXNoKHBkZmgoYXJ0c1tpXSwgJ1RleHQnKSlcXFxcbn1cXFxcblxcXFxudmFyIGNvbnRzID0gcGRmYShodG1sLCAnYm9keSYmLm15dWktY29udGVudF9fbGlzdCcpO1xcXFxuXFxcXG52YXIgbGlzdHMgPSBbXTtcXFxcbmZvciAodmFyIGkgaW4gY29udHMpIHtcXFxcbiAgICBsaXN0cy5wdXNoKHBkZmEoY29udHNbaV0sICdib2R5JiZhJykpXFxcXG59XFxcXG50cnkge1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogcGRmaChodG1sLCAnLm15dWktY29udGVudF9fZGV0YWlsJiYuZGF0YSwyJiZUZXh0Jykuc3Vic3RyaW5nKDAsIDE4KSArXFxcXG4gICAgICAgICdcXFxcXFxcXG4nICtcXFxcbiAgICAgICAgJ1xcXFxcXFxcbicgK1xcXFxuICAgICAgICBwZGZoKGh0bWwsXFxcXG4gICAgICAgICAgICAnJykuc3Vic3RyaW5nKDAsIDE4KSxcXFxcbiAgICBkZXNjOiBwZGZoKGh0bWwsICcubXl1aS1jb250ZW50X19kZXRhaWwmJi5kYXRhJiZUZXh0JyksXFxcXG4gICAgaW1nOiBwZChodG1sLFxcXFxuICAgICAgICAnLmxhenlsb2FkJiZkYXRhLW9yaWdpbmFsJykgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICB1cmw6IHBkKGh0bWwsXFxcXG4gICAgICAgICcubGF6eWxvYWQmJmRhdGEtb3JpZ2luYWwnKSsnLmpwZycsXFxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJyxcXFxcbiAgICBleHRyYToge1xcXFxuICAgICAgICBncmFkaWVudDogdHJ1ZVxcXFxuICAgIH1cXFxcbn0pO1xcXFxufSBjYXRjaCAoZSkge1xcXFxuZC5wdXNoKHsgXFxcXG4gICAgaW1nOiBwZChodG1sLCBcXFxcbicubGF6eWxvYWQmJmRhdGEtb3JpZ2luYWwnKSArJ0BSZWZlcmVyPScsXFxcXG4gICAgdXJsOiBNWV9VUkwsXFxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJyxleHRyYToge2dyYWRpZW50OiB0cnVlfVxcXFxufSk7XFxcXG59XFxcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9sYXp5Jywge30pKS5ydWxlKTtcXFxcblxcXFxuZnVuY3Rpb24gc2V0VGFicyh0YWJzLCB2YXJpKSB7XFxcXG5cXFxcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYnMubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgdmFyIHVybCA9IFxcXFxcXFwiI25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnB1dFZhcignXFxcXFxcXCIgKyB2YXJpICsgXFxcXFxcXCInICwgICdcXFxcXFxcIiArIGkgKyBcXFxcXFxcIicpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnOycjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknXFxcXFxcXCI7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogZ2V0VmFyKHZhcmksICcwJykgPT0gaSA/ICc8Zm9udCBjb2xvcj1cXFxcXFxcIiMxYWFkMTlcXFxcXFxcIj4nICsgdGFic1tpXSArICc8L2ZvbnQ+JyA6IHRhYnNbaV0sXFxcXG4gICAgICAgICAgICBpbWc6IHBkKGFydHNbaV0sICdpbWcmJnNyYycpLFxcXFxuICAgICAgICAgICAgdXJsOiB1cmwsXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ljb25fc21hbGxfMydcXFxcbiAgICAgICAgfSlcXFxcbiAgICB9XFxcXG4gIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAoZ2V0VmFyKCdzaHNvcnQnKSA9PSAnMScpID8gJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVxcXFxcXFwiY29sb3I6ICNGRjAwMDBcXFxcXFxcIj7pgIbluo88L3NwYW4+PC9iPicgOiAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcXFxcXCJjb2xvcjogIzFhYWQxOVxcXFxcXFwiPuato+W6jzwvc3Bhbj48L2I+JyxcXFxcbiAgICAgICAgdXJsOiBgQGxhenlSdWxlPS5qczpsZXQgY29uZiA9IGdldFZhcignc2hzb3J0Jyk7aWYoY29uZj09JzEnKXtwdXRWYXIoe2tleTonc2hzb3J0JywgdmFsdWU6JzAnfSk7fWVsc2V7cHV0VmFyKHtrZXk6J3Noc29ydCcsIHZhbHVlOicxJ30pfTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WIh+aNouaOkuW6j+aIkOWKnydgLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcXFxuICAgIH0pICBcXFxcbn1cXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6ICdibGFua19ibG9jaydcXFxcbn0pXFxcXG5cXFxcbmZ1bmN0aW9uIHNldExpc3RzKGxpc3RzLCBpbmRleCkge1xcXFxuICAgIHZhciBsaXN0ID0gbGlzdHNbaW5kZXhdO1xcXFxuICAgIGlmIChnZXRWYXIoJ3Noc29ydCcpID09ICcxJykge1xcXFxuICAgICAgICB2YXIgbGlzdCA9IGxpc3RzW2luZGV4XS5yZXZlcnNlKCk7XFxcXG4gICAgfVxcXFxuICAgIGZvciAodmFyIGogaW4gbGlzdCkge1xcXFxuICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6IHBkZmgobGlzdFtqXSwgJ2EmJlRleHQnKVxcXFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/nrKwoXFxcXFxcXFxkKynpm4YvLCAnJDEnKVxcXFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKCfnrKwnLCAnJylcXFxcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgn5pyfJywgJycpLFxcXFxuICAgICAgICAgICAgdXJsOiBwZChsaXN0W2pdLCAnYSYmaHJlZicpICsgbGF6eSxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBsaXN0Lmxlbmd0aCA+IDMgPyAndGV4dF80JyA6ICd0ZXh0XzInXFxcXG4gICAgICAgIH0pO1xcXFxuICAgIH1cXFxcbn1cXFxcblxcXFxuc2V0VGFicyh0YWJzLCBNWV9VUkwpO1xcXFxuc2V0TGlzdHMobGlzdHMsIGdldFZhcihNWV9VUkwsICcwJykpO1xcXFxuXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5Li76aG1XFxcIixcXFwicGF0aFxcXCI6XFxcIuS4u+mhtVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJyZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vcGFzdGViaW4uY29tL3Jhdy9EMmlpbVZIaycsMjQpO1xcXFxu5aSn57G75a6a5L2NID0gJ2JvZHkmJi5uYXYtbGlzdCdcXFxcbuaLvOaOpeWIhuexuyA9ICcubXl1aS1wYW5lbF9iZCYmdWwnXFxcXG7lsI/nsbvlrprkvY0gPSAnYm9keS0tYSYmYTpub3QoOm1hdGNoZXMo6LWEfOaYjnxBKSknXFxcXG7liIbnsbvmoIfpopggPSAnYSYmVGV4dCdcXFxcbuWIhuexu+mTvuaOpSA9ICdhJiZocmVmJ1xcXFxuTVlfVVJMID0gTVlfVVJMLnJlcGxhY2UoJ2hpa2VyOi8vZW1wdHkjIycsICcnKVxcXFxuXFxcXG5sZXQgdHJ1ZV91cmwgPSBnZXRNeVZhcihcXFxcXFxcInVybFxcXFxcXFwiLCBNWV9VUkwpXFxcXG5cXFxcbmNvbnN0IHBhZ2UgPSBNWV9QQUdFXFxcXG5pZiAoZ2V0TXlWYXIoXFxcXFxcXCJ1cmxcXFxcXFxcIikpIHtcXFxcbiAgICB0cnVlX3VybCA9IHRydWVfdXJsLnJlcGxhY2UoL3ZvZHR5cGUoXFxcXFxcXFwvXFxcXFxcXFxkKylcXFxcXFxcXC5odG1sLywgJ3ZvZHNob3ckMS0tLS0tLS0tLS0tLmh0bWwnKS5yZXBsYWNlKCctLS0uaHRtbCcsIHBhZ2UgKyAnLS0tLmh0bWwnKS5yZXBsYWNlKC8oLS0tXFxcXFxcXFxkKy5odG1sKS8sIHBhZ2UgKyAnJDEnKVxcXFxufVxcXFxudmFyIGh0bWwgPSBmZXRjaCh0cnVlX3VybClcXFxcblxcXFxudmFyIOWIl+ihqCA9ICcubXl1aS12b2RsaXN0JiZsaSdcXFxcbnZhciDmoIfpopggPSAnYSYmdGl0bGUnXFxcXG52YXIg5o+P6L+wID0gJy5waWMtdGV4dCYmVGV4dCdcXFxcbnZhciDlm77niYcgPSAnLmxhenlsb2FkJiZkYXRhLW9yaWdpbmFsJ1xcXFxudmFyIOmTvuaOpSA9ICdhJiZocmVmJ1xcXFxu5LiA57qnMS5BKClcXFwifV1cIn0iLCJwaWNVcmwiOiJodHRwczovL2luZXdzLmd0aW1nLmNvbS9uZXdzYXBwX2xzLzAvMTM2MjU3MTM4NjMvMEBSZWZlcmVyPSIsInRpdGxlIjoi54G16a2C5pGG5rihIn0=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement