Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@九一@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi5Lmd5LiAIiwiYXV0aG9yIjoiIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMje1wiX2hhc2hcIjpcIjE3Mjk5NDgxMjJcIixcImJ1bmRsZUlkXCI6XCJjb20ucHdhLnpwY3BqXCIsXCJzb3J0XCI6XCJmeWFyZWFcIixcImxpbWl0XCI6XCIxNlwiLFwib2F1dGhfdHlwZVwiOlwid2ViXCIsXCJvYXV0aF9pZFwiOlwiNmQzY2JiZTY2NjVjMDhlZjRlN2ZlNTRiZWEyNzhiYzFcIixcImxhbmd1YWdlXCI6XCJ6aFwiLFwiaWRcIjpcImZ5Y2xhc3NcIixcInBhZ2VcIjpcImZ5cGFnZVwiLFwidmVyc2lvblwiOlwiMS43LjBcIixcInZpYVwiOlwicHdhXCIsXCJ0b2tlblwiOlwiXCJ9IiwidmVyc2lvbiI6MywiY29sX3R5cGUiOiJtb3ZpZV8yIiwiY2xhc3NfbmFtZSI6IueDremXqOaOqOiNkCbljY7or63ljp/liJsm5a625bqt5LmxIOS8piblm73kuqfnsr7pgIkm572R6buE5aWz56WeJuaXpemfqeasp+e+jibliqjmvKvlpKnloIIm5Yi25pyN5pyA54ixIiwidHlwZSI6InZpZGVvIiwiY2xhc3NfdXJsIjoiMSYxNTUmNjkmMTU2JjE2OCYxNTcmMTU4Jjc1IiwiYXJlYV9uYW1lIjoi5pyA54OtJuacgOaWsCIsImFyZWFfdXJsIjoiaG90Jm5ldyIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczogXG52YXIgZCA9IFtdO1xuXG5pZiAoTVlfUEFHRSA9PSAxKSB7XG4gICAgZC5wdXNoKHvCoMKgwqBcbiAgICAgICAgdGl0bGU6IFwi5pCc57SiXCIsXG4gICAgICAgIMKgwqDCoHVybDogXCInaGlrZXI6Ly9zZWFyY2g/cz0nK2lucHV0KycmcnVsZT0nKyBNWV9SVUxFLnRpdGxlXCIsXG4gICAgICAgIMKgwqDCoGRlc2M6IFwi6K+36L6T5YWl5pCc57Si5YWz6ZSu6K+NKOWLv+mikee5geaQnOe0oilcIixcbiAgICAgICAgwqDCoMKgY29sX3R5cGU6IFwiaW5wdXRcIixcbiAgICB9KVxufTtcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xuXG4vL+eUn+aIkOaXtumXtOaIs1xuZnVuY3Rpb24gZ2V0Q3VycmVudFRpbWVzdGFtcCgpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG59XG4vL21kNeWKoOWvhlxuZnVuY3Rpb24gbWQ1KHN0cikge1xuICAgIHJldHVybiBDcnlwdG9KUy5NRDUoc3RyKS50b1N0cmluZygpO1xufVxuLy9zaGEyNTbliqDlr4ZcbmZ1bmN0aW9uIHNoYTI1NihzdHIpIHtcbiAgICByZXR1cm4gQ3J5cHRvSlMuU0hBMjU2KHN0cikudG9TdHJpbmcoKTtcbn1cbnZhciB0ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7IC8vbG9nKHQpXG4vL3ZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDA7IC8vbG9nKHRpbWVzdGFtcClcbi8vdmFyIHQgPSB0aW1lc3RhbXAudG9TdHJpbmcoKS5zcGxpdCgnLicpWzBdOyAvL2xvZyh0KVxuLy92YXIgZGF0YTEgPSBNWV9VUkwucmVwbGFjZSgnaGlrZXI6Ly9lbXB0eSMjJywgJycpOyAvL2xvZyhkYXRhMSlcbnZhciBkYXRhID0gRW5jcnlwdChNWV9VUkwucmVwbGFjZSgnaGlrZXI6Ly9lbXB0eSMjJywgJycpKTsgXG4vL2xvZyhkYXRhKVxudmFyIHNpZ24gPSBtZDUoc2hhMjU2KCdjbGllbnQ9cHdhJmRhdGE9JytkYXRhKycmdGltZXN0YW1wPScrdCsnNTU4OWQ0MWY5MmE1OTdkMDE2YjAzN2FjMzdkYjI0M2QnKSk7IC8vbG9nKHNpZ24pXG52YXIgYm9keSA9ICdkYXRhPScrZGF0YSsnJnNpZ249JytzaWduKycmY2xpZW50PXB3YSZ0aW1lc3RhbXA9Jyt0OyBcbi8vbG9nKGJvZHkpXG52YXIgdXJsID0gJ2h0dHBzOi8vYXBpMi5waWlmdmx5LmNvbS9hcGkucGhwL2FwaS9tdi9saXN0X2NvbnN0cnVjdCc7XG52YXIgaHRtbCA9IGZldGNoKHVybCwge1xuICAgIGhlYWRlcnM6IHtcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbiAgICB9LFxuICAgIGJvZHk6IGJvZHksXG4gICAgbWV0aG9kOiAnUE9TVCdcbn0pOyBcbi8vbG9nKGh0bWwpXG5cbmxldCBodG1sMSA9IEpTT04ucGFyc2UoaHRtbCkuZGF0YTsgXG4vL2xvZyhodG1sMSlcbmxldCBodG1sMiA9IERlY3J5cHQoaHRtbDEpOyBcbi8vbG9nKGh0bWwyKVxuXG52YXIgTGFiZWxiID0gSlNPTi5wYXJzZShodG1sMikuZGF0YS5uYXY7XG4vL2xvZyhMYWJlbGIpXG5cbmlmKExhYmVsYiE9bnVsbCl7XG5cbmxldCBhcmVhPSBNWV9BUkVBX1VSTFxuTGFiZWxiLmZvckVhY2goKGRhdGEpID0+IHtcbiAgaWYoZGF0YS5jbGlja2VkPT1udWxsKXtcclxuICAgICAgICAgICAgZC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLm5hbWUsXHJcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXCJpY29uXzJfcm91bmRcIixcbiAgICAgICAgICAgICAgICB1cmwgOiAgJ2hpa2VyOi8vZW1wdHkjI2Z5cGFnZSMjJytkYXRhLmxpbmtfdXJsKydAcnVsZT1qczokLnJlcXVpcmUoXCJoaWtlcjovL3BhZ2UvZXJqaVwiKScsXG59KVxufVxufSlcblxufTtcbnZhciBsaXN0ID0gSlNPTi5wYXJzZShodG1sMikuZGF0YS5saXN0O1xuLy9sb2cobGlzdCk7XG5cbmlmKGxpc3QhPW51bGwpe1xubGlzdC5mb3JFYWNoKGRhdGEgPT4ge1xuICBpZihkYXRhLmNsaWNrZWQ9PW51bGwpe1xuICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXG4gICAgICAgICAgICBkZXNjOiAgZGF0YS5jcmVhdGVkX2F0KydcXHRcXHRcXHRcXHQnK3BhcnNlSW50KGRhdGEuZHVyYXRpb24vNjApKyc6JytwYXJzZUludChkYXRhLmR1cmF0aW9uJTYwKSxcbiAgICAgICAgICAgaW1nOiBkYXRhLmNvdmVyX2hvcml6b250YWwgKyBsYXp5LFxuICAgICAgICAgICAgdXJsOiBkYXRhLmlkICsgbGF6eTFcbiAgICAgICAgfSlcbn1cbiAgICB9KVxufVxuc2V0UmVzdWx0KGQpIiwic2VhcmNoX3VybCI6Imhpa2VyOi8vZW1wdHkjI3tcIl9oYXNoXCI6XCIxNzI5OTQ5MzE0XCIsXCJidW5kbGVJZFwiOlwiY29tLnB3YS56cGNwalwiLFwibGltaXRcIjpcIjE4XCIsXCJvYXV0aF90eXBlXCI6XCJ3ZWJcIixcIm9hdXRoX2lkXCI6XCJjMjAxNGJkYTk3Y2ZmNDVkZTU0YjFhYjQ5ZTIyN2YxM1wiLFwibGFuZ3VhZ2VcIjpcInpoXCIsXCJwYWdlXCI6XCIxXCIsXCJ0eXBlXCI6XCIxXCIsXCJ2ZXJzaW9uXCI6XCIxLjcuMFwiLFwid29yZFwiOlwiY29zXCIsXCJ2aWFcIjpcInB3YVwiLFwidG9rZW5cIjpcIlwifSIsImdyb3VwIjoi4pGk6KeG6aKRIiwic2VhcmNoRmluZCI6ImpzOiBcbnZhciBkID0gW107XG5cbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xuXG4vL+eUn+aIkOmaj+acunV1aWRcbmZ1bmN0aW9uIGdlbmVyYXRlVVVJRCgpIHtcbiAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XG4gICAgICAgIHZhciByID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMDtcbiAgICAgICAgdmFyIHYgPSBjID09PSAneCcgPyByIDogKHIgJiAweDMgfCAweDgpO1xuICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XG4gICAgfSk7XG59XG4vL+eUn+aIkOaXtumXtOaIs1xuZnVuY3Rpb24gZ2V0Q3VycmVudFRpbWVzdGFtcCgpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG59XG4vL21kNeWKoOWvhlxuZnVuY3Rpb24gbWQ1KHN0cikge1xuICAgIHJldHVybiBDcnlwdG9KUy5NRDUoc3RyKS50b1N0cmluZygpO1xufVxuLy9zaGEyNTbliqDlr4ZcbmZ1bmN0aW9uIHNoYTI1NihzdHIpIHtcbiAgICByZXR1cm4gQ3J5cHRvSlMuU0hBMjU2KHN0cikudG9TdHJpbmcoKTtcbn1cbnZhciB0ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7IC8vbG9nKHQpXG4vL3ZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDA7IC8vbG9nKHRpbWVzdGFtcClcbi8vdmFyIHQgPSB0aW1lc3RhbXAudG9TdHJpbmcoKS5zcGxpdCgnLicpWzBdOyAvL2xvZyh0KVxuLy92YXIgZGF0YTEgPSBNWV9VUkwucmVwbGFjZSgnaGlrZXI6Ly9lbXB0eSMjJywgJycpOyAvL2xvZyhkYXRhMSlcbnZhciBkYXRhID0gRW5jcnlwdChNWV9VUkwucmVwbGFjZSgnaGlrZXI6Ly9lbXB0eSMjJywgJycpKTsgXG4vL2xvZyhkYXRhKVxudmFyIHNpZ24gPSBtZDUoc2hhMjU2KCdjbGllbnQ9cHdhJmRhdGE9JytkYXRhKycmdGltZXN0YW1wPScrdCsnNTU4OWQ0MWY5MmE1OTdkMDE2YjAzN2FjMzdkYjI0M2QnKSk7IC8vbG9nKHNpZ24pXG52YXIgYm9keSA9ICdkYXRhPScrZGF0YSsnJnNpZ249JytzaWduKycmY2xpZW50PXB3YSZ0aW1lc3RhbXA9Jyt0OyBcbi8vbG9nKGJvZHkpXG52YXIgdXJsID0gJ2h0dHBzOi8vYXBpMi5waWlmdmx5LmNvbS9hcGkucGhwL2FwaS9tdi9zZWFyY2gnO1xudmFyIGh0bWwgPSBmZXRjaCh1cmwsIHtcbiAgICBoZWFkZXJzOiB7XG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG4gICAgfSxcbiAgICBib2R5OiBib2R5LFxuICAgIG1ldGhvZDogJ1BPU1QnXG59KTsgXG4vL2xvZyhodG1sKVxuXG5sZXQgaHRtbDEgPSBKU09OLnBhcnNlKGh0bWwpLmRhdGE7IFxuLy9sb2coaHRtbDEpXG5sZXQgaHRtbDIgPSBEZWNyeXB0KGh0bWwxKTsgXG5sb2coaHRtbDIpXG5cbnZhciBsaXN0ID0gSlNPTi5wYXJzZShodG1sMikuZGF0YTtcbi8vbG9nKGxpc3QpO1xuaWYobGlzdCE9bnVsbCl7XG5saXN0LmZvckVhY2goZGF0YSA9PiB7XG4gIGlmKGRhdGEuY2xpY2tlZD09bnVsbCl7XG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcbiAgICAgICAgICAgIGRlc2M6ICBkYXRhLmNyZWF0ZWRfYXQrJ1xcdFxcdFxcdFxcdCcrcGFyc2VJbnQoZGF0YS5kdXJhdGlvbi82MCkrJzonK3BhcnNlSW50KGRhdGEuZHVyYXRpb24lNjApLFxuICAgICAgICAgICBpbWc6IGRhdGEuY292ZXJfaG9yaXpvbnRhbCArIGxhenksXG4gICAgICAgICAgICB1cmw6IGRhdGEuaWQgKyBsYXp5MVxuICAgICAgICB9KVxufWVsc2V7XG5yZXR1cm4gJ3RvYXN0Oi8v5Lik5qyh5pCc57Si6Ze06ZqU5LiN6IO95bCP5LqONeenkidcbn1cbiAgICB9KVxufVxuc2V0UmVzdWx0KGQpIiwiZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMiIsImRldGFpbF9maW5kX3J1bGUiOiIiLCJzZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsInNkZXRhaWxfZmluZF9ydWxlIjoiKiIsInVhIjoibW9iaWxlIiwicHJlUnVsZSI6IiIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJhZXNcIixcInBhdGhcIjpcImFlc1wiLFwicnVsZVwiOlwiLy/liqDovb1DcnlwdG9KU+W6k1xcbmV2YWwoZ2V0Q3J5cHRvSlMoKSlcXG5cXG4vLyDop6Plr4blh73mlbBcXG5mdW5jdGlvbiBEZWNyeXB0KHdvcmQpIHtcXG4gICAgY29uc3Qga2V5ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoXFxcIjJhY2Y3ZTkxZTk4NjQ2NzNcXFwiKTtcXG4gICAgY29uc3QgaXYgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShcXFwiMWMyOTg4MmQzZGRmY2ZkNlxcXCIpO1xcbiAgICBsZXQgZW5jcnlwdGVkSGV4U3RyID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSh3b3JkKTtcXG4gICAgbGV0IGRlY3J5cHQgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdCh7XFxuICAgICAgICBjaXBoZXJ0ZXh0OiBlbmNyeXB0ZWRIZXhTdHJcXG4gICAgfSwga2V5LCB7XFxuICAgICAgICBpdjogaXYsXFxuICAgICAgICBtb2RlOiBDcnlwdG9KUy5tb2RlLkNCQyxcXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzNyAvLyDms6jmhI/ov5nph4zlupTor6XmmK9DcnlwdG9KUy5wYWQuTm9QYWRkaW5nXFxuICAgIH0pO1xcbiAgICBpZiAoZGVjcnlwdCkge1xcbiAgICAgICAgbGV0IGRlY3J5cHRlZFN0ciA9IGRlY3J5cHQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xcbiAgICAgICAgcmV0dXJuIGRlY3J5cHRlZFN0cjtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIC8vIOino+WvhuWksei0pe+8jOi/lOWbnm51bGzmiJbplJnor6/kv6Hmga9cXG4gICAgICAgIHJldHVybiBudWxsO1xcbiAgICB9XFxufVxcblxcbi8vIOWKoOWvhuWHveaVsFxcbmZ1bmN0aW9uIEVuY3J5cHQocGxhaW50ZXh0KSB7XFxuICAgIGNvbnN0IGtleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXCIyYWNmN2U5MWU5ODY0NjczXFxcIik7XFxuICAgIGNvbnN0IGl2ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoXFxcIjFjMjk4ODJkM2RkZmNmZDZcXFwiKTtcXG4gICAgdmFyIGVuY3J5cHRlZCA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KHBsYWludGV4dCwga2V5LCB7XFxuICAgICAgICBpdjogaXYsXFxuICAgICAgICBtb2RlOiBDcnlwdG9KUy5tb2RlLkNCQyxcXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzNyAvLyDms6jmhI/ov5nph4zlupTor6XmmK9DcnlwdG9KUy5wYWQuTm9QYWRkaW5nXFxuICAgIH0pO1xcbiAgICB2YXIgY2lwaGVydGV4dCA9IGVuY3J5cHRlZC5jaXBoZXJ0ZXh0LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5CYXNlNjQpO1xcbiAgICByZXR1cm4gY2lwaGVydGV4dDtcXG59XFxuXFxuXFxuXFxudmFyIGxhenkgPSAkKCcnKS5pbWFnZSgoKSA9PiB7XFxuY29uc3QgQ3J5cHRvVXRpbCA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9hc3NldHMvY3J5cHRvLWphdmEuanNcXFwiKTtcXG5cXHRsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFwiZjVkOTY1ZGY3NTMzNjI3MFxcXCIpO1xcblxcdGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcIjk3YjYwMzk0YWJjMmZiZTFcXFwiKTtcXG5cXHRsZXQgdGV4dERhdGEgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VJbnB1dFN0cmVhbShpbnB1dCk7XFxuXFx0bGV0IGVuY3J5cHRlZCA9IENyeXB0b1V0aWwuQUVTLmRlY3J5cHQodGV4dERhdGEsIGtleSwge1xcbiAgXFx0bW9kZTogXFxcIkFFUy9DQkMvUEtDUzdQYWRkaW5nXFxcIixcXG5cXHRcXHRpdjogaXZcXG5cXHR9KTtcXG5cXHRyZXR1cm4gZW5jcnlwdGVkLnRvSW5wdXRTdHJlYW0oKTtcXG59KVxcblxcbnZhciBsYXp5MSA9ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXG4vL21kNeWKoOWvhlxcbmZ1bmN0aW9uIG1kNShzdHIpIHtcXG4gICAgcmV0dXJuIENyeXB0b0pTLk1ENShzdHIpLnRvU3RyaW5nKCk7XFxufVxcbi8vc2hhMjU25Yqg5a+GXFxuZnVuY3Rpb24gc2hhMjU2KHN0cikge1xcbiAgICByZXR1cm4gQ3J5cHRvSlMuU0hBMjU2KHN0cikudG9TdHJpbmcoKTtcXG59XFxubGV0IHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkpLnRvU3RyaW5nKCk7XFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxubGV0IGRhdGEwPSd7XFxcIl9oYXNoXFxcIjpcXFwiMTcyOTk0OTAyNVxcXCIsXFxcImJ1bmRsZUlkXFxcIjpcXFwiY29tLnB3YS56cGNwalxcXCIsXFxcIm9hdXRoX3R5cGVcXFwiOlxcXCJ3ZWJcXFwiLFxcXCJvYXV0aF9pZFxcXCI6XFxcIjEwNTk4NmViYTBmY2E0YTRmNDM2ZmJlMTc5ODE1YTBkXFxcIixcXFwibGFuZ3VhZ2VcXFwiOlxcXCJ6aFxcXCIsXFxcImlkXFxcIjpcXFwiJytpbnB1dCsnXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjEuNy4wXFxcIixcXFwidmlhXFxcIjpcXFwicHdhXFxcIixcXFwidG9rZW5cXFwiOlxcXCJcXFwifSdcXG52YXIgZGF0YSA9IEVuY3J5cHQoZGF0YTApOyBcXG4vL2xvZyhkYXRhKVxcbnZhciBzaWduID0gbWQ1KHNoYTI1NignY2xpZW50PXB3YSZkYXRhPScrZGF0YSsnJnRpbWVzdGFtcD0nK3QrJzU1ODlkNDFmOTJhNTk3ZDAxNmIwMzdhYzM3ZGIyNDNkJykpOyAvL2xvZyhzaWduKVxcbnZhciBib2R5ID0gJ2RhdGE9JytkYXRhKycmc2lnbj0nK3NpZ24rJyZjbGllbnQ9cHdhJnRpbWVzdGFtcD0nK3Q7IFxcbi8vbG9nKGJvZHkpXFxudmFyIHVybDEgPSAnaHR0cHM6Ly9hcGkyLnBpaWZ2bHkuY29tL2FwaS5waHAvYXBpL212L2dldERldGFpbCc7XFxudmFyIHVybDIgPSBmZXRjaCh1cmwxLCB7XFxuICAgIGhlYWRlcnM6IHtcXG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXFxuICAgIH0sXFxuICAgIGJvZHk6IGJvZHksXFxuICAgIG1ldGhvZDogJ1BPU1QnXFxufSk7IFxcblxcbmxldCB1cmwzID0gSlNPTi5wYXJzZSh1cmwyKS5kYXRhOyBcXG5sZXQgdXJsNCA9IERlY3J5cHQodXJsMyk7IFxcbmxldCB1cmw1PUpTT04ucGFyc2UodXJsNCkuZGF0YS5kZXRhaWwucHJldmlld191cmwucmVwbGFjZSgvXFxcXC9cXFxcLy4qcGxheVxcXFwuLywnLy9sb25nLicpO1xcbnJldHVybiB1cmw1XFxufSlcXG5mdW5jdGlvbiBzdHJvbmcoZCwgYykge1xcbiAgICByZXR1cm4gJ+KAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9IycgKyAoYyB8fCAnMDAwMDAwJykgKyAnPicgKyBkICsgJzwvZm9udD48L3N0cm9uZz4nO1xcbn1cXG5mdW5jdGlvbiBDYXRlZ29yeShsaXN0LCBtb2RlLCBkKSB7XFxuICAgIGZvciAodmFyIGkgaW4gbGlzdCkge1xcbiAgICAgICAgdmFyIExpc3QgPSBsaXN0W2ldO1xcbiAgICAgICAgdmFyIHRpdGxlID0gTGlzdC50aXRsZTtcXG4gICAgICAgIHZhciBUaXRsZSA9IChnZXRNeVZhcignY29sb3InLCAnLTEnKSA9PSBpKSA/IHN0cm9uZyh0aXRsZSwgJ0ZGNjY5OScpIDogdGl0bGU7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBUaXRsZSxcXG4gICAgICAgICAgICB1cmw6ICQoTGlzdC50eXBlKS5sYXp5UnVsZSgoaSwgbW9kZSwgTGlzdCkgPT4ge1xcbiAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSAwKSB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndHlwZScsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RlID09IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd0eXBlUycsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RlID09IDIpIHtcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd0eXBlU1MnLCBpbnB1dCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NvbG9yJywgaSk7XFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxuICAgICAgICAgICAgfSwgaSwgbW9kZSwgTGlzdCksXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICAgIH0pO1xcbiAgICB9XFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJyxcXG4gICAgfSk7XFxuICAgIHJldHVybiBkO1xcbn1cXG4kLmV4cG9ydHMuQ2F0ZWdvcnkgPSBDYXRlZ29yeTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaXtumXtOaIs+i9rOaNolwiLFwicGF0aFwiOlwi5pe26Ze05oiz6L2s5o2iXCIsXCJydWxlXCI6XCJmdW5jdGlvbiB0aW1lc3RhbXBUb1RpbWUodG0sIHRzKSB7XFxuXFx0XFx0dW5kZWZpbmVkXFxuXFx0XFx0dmFyIGRhdGUgPSBuZXcgRGF0ZSh0bSAqIDEwMDApOyAvL+aXtumXtOaIs+S4ujEw5L2N6ZyAKjEwMDDvvIzml7bpl7TmiLPkuLoxM+S9jeeahOivneS4jemcgOS5mDEwMDBcXG5cXHRcXHR2YXIgWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJztcXG5cXHRcXHR2YXIgTSA9IChkYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyAnMCcgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgOiBkYXRlLmdldE1vbnRoKCkgKyAxKSArICctJztcXG5cXHRcXHR2YXIgRCA9IGRhdGUuZ2V0RGF0ZSgpO1xcblxcdFxcdHZhciBoID0gJyB8ICcgKyBkYXRlLmdldEhvdXJzKCkgKyAnOic7XFxuXFx0XFx0dmFyIG0gPSBkYXRlLmdldE1pbnV0ZXMoKTtcXG5cXHRcXHRpZihtPDEwKSBtID0gJzAnK207XFxuXFx0XFx0bSA9IG0gKyAnOidcXG5cXHRcXHR2YXIgcyA9IGRhdGUuZ2V0U2Vjb25kcygpO1xcblxcdFxcdGlmKHM8MTApIHMgPSAnMCcrcztcXG5cXHRcXHRpZiAodHMgPT0gMCkgcmV0dXJuIFkgKyBNICsgRDtcXG5cXHRcXHRpZiAodHMgPT0gMSkgcmV0dXJuIFkgKyBNICsgRCArIGggKyBtICsgcztcXG5cXHR9XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuoznuqdcIixcInBhdGhcIjpcImVyamlcIixcInJ1bGVcIjpcImpzOiBcXG52YXIgZCA9IFtdO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xcblxcbi8v55Sf5oiQ5pe26Ze05oizXFxuZnVuY3Rpb24gZ2V0Q3VycmVudFRpbWVzdGFtcCgpIHtcXG4gICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xcbn1cXG4vL21kNeWKoOWvhlxcbmZ1bmN0aW9uIG1kNShzdHIpIHtcXG4gICAgcmV0dXJuIENyeXB0b0pTLk1ENShzdHIpLnRvU3RyaW5nKCk7XFxufVxcbi8vc2hhMjU25Yqg5a+GXFxuZnVuY3Rpb24gc2hhMjU2KHN0cikge1xcbiAgICByZXR1cm4gQ3J5cHRvSlMuU0hBMjU2KHN0cikudG9TdHJpbmcoKTtcXG59XFxuXFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTsgLy9sb2codClcXG5sZXQgaWQ9TVlfVVJMLnNwbGl0KCcjIycpWzJdO1xcbmxldCBwPU1ZX1VSTC5zcGxpdCgnIyMnKVsxXTtcXG5cXG52YXIgdHlwZWxpc3QgPSBbe1xcbiAgICB0aXRsZTogJ+acgOaWsCcsXFxuICAgIHR5cGU6ICduZXcnXFxufSwge1xcbiAgICB0aXRsZTogJ+acgOeDrScsXFxuICAgIHR5cGU6ICdob3QnXFxufV07XFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICAkLnJlcXVpcmUoXFxcImFlc1xcXCIpLkNhdGVnb3J5KHR5cGVsaXN0LDAsZCk7XFxufVxcblxcbmxldCBkYXRhMD0ne1xcXCJpZFxcXCI6XFxcIicraWQrJ1xcXCIsXFxcImxpbWl0XFxcIjpcXFwiMzBcXFwiLFxcXCJwYWdlXFxcIjpcXFwiJytwKydcXFwiLFxcXCJzb3J0XFxcIjpcXFwiJytnZXRNeVZhcigndHlwZScsICduZXcnKSsnXFxcIixcXFwib2F1dGhfaWRcXFwiOlxcXCJjMjAxNGJkYTk3Y2ZmNDVkZTU0YjFhYjQ5ZTIyN2YxM1xcXCIsXFxcImJ1bmRsZUlkXFxcIjpcXFwiY29tLnB3YS56cGNwalxcXCIsXFxcInZlcnNpb25cXFwiOlxcXCIzLjkuMFxcXCIsXFxcIm9hdXRoX3R5cGVcXFwiOlxcXCJ3ZWJcXFwiLFxcXCJsYW5ndWFnZVxcXCI6XFxcInpoXFxcIixcXFwidmlhXFxcIjpcXFwicHdhXFxcIixcXFwidG9rZW5cXFwiOlxcXCJcXFwifSdcXG4vL2xvZyhkYXRhMClcXG52YXIgZGF0YSA9IEVuY3J5cHQoZGF0YTApOyBcXG4vL2xvZyhkYXRhKVxcbnZhciBzaWduID0gbWQ1KHNoYTI1NignY2xpZW50PXB3YSZkYXRhPScrZGF0YSsnJnRpbWVzdGFtcD0nK3QrJzU1ODlkNDFmOTJhNTk3ZDAxNmIwMzdhYzM3ZGIyNDNkJykpOyAvL2xvZyhzaWduKVxcbnZhciBib2R5ID0gJ2RhdGE9JytkYXRhKycmc2lnbj0nK3NpZ24rJyZjbGllbnQ9cHdhJnRpbWVzdGFtcD0nK3Q7IFxcbi8vbG9nKGJvZHkpXFxudmFyIHVybCA9ICdodHRwczovL2FwaTIucGlpZnZseS5jb20vYXBpLnBocC9hcGkvbXYvbGlzdF9jb25zdHJ1Y3QnO1xcbnZhciBodG1sID0gZmV0Y2godXJsLCB7XFxuICAgIGhlYWRlcnM6IHtcXG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXFxuICAgIH0sXFxuICAgIGJvZHk6IGJvZHksXFxuICAgIG1ldGhvZDogJ1BPU1QnXFxufSk7IFxcbi8vbG9nKGh0bWwpXFxuXFxubGV0IGh0bWwxID0gSlNPTi5wYXJzZShodG1sKS5kYXRhOyBcXG4vL2xvZyhodG1sMSlcXG5sZXQgaHRtbDIgPSBEZWNyeXB0KGh0bWwxKTsgXFxuLy9sb2coaHRtbDIpXFxuXFxudmFyIGxpc3QgPSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhLmxpc3Q7XFxuLy9sb2cobGlzdCk7XFxuaWYobGlzdCE9bnVsbCl7XFxubGlzdC5mb3JFYWNoKGRhdGEgPT4ge1xcbiAgICAgICAgaWYoZGF0YS5jbGlja2VkPT1udWxsKXtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgZGVzYzogIGRhdGEuY3JlYXRlZF9hdCsnXFxcXHRcXFxcdFxcXFx0XFxcXHQnK3BhcnNlSW50KGRhdGEuZHVyYXRpb24vNjApKyc6JytwYXJzZUludChkYXRhLmR1cmF0aW9uJTYwKSxcXG4gICAgICAgICAgIGltZzogZGF0YS5jb3Zlcl9ob3Jpem9udGFsICsgbGF6eSxcXG4gICAgICAgICAgIC8vIGltZzogZGF0YS5jb3Zlcl90aHVtYl91cmwgKyArICdAanM9JyArIGltZ0RlYyhrZXksIGl2LCAnQUVTJyksXFxuICAgICAgICAgICAgdXJsOiBkYXRhLmlkICsgbGF6eTFcXG4gICAgICAgIH0pXFxufVxcbiAgICB9KVxcbn1cXG5zZXRSZXN1bHQoZClcIn1dIiwiaWNvbiI6IiIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment