Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@Mikan Project@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiTWlrYW4gUHJvamVjdCIsImF1dGhvciI6IkBMb3lEZ0lrIiwidXJsIjoiaHR0cHM6Ly9taWthbmltZS50di8iLCJ2ZXJzaW9uIjo2LCJjb2xfdHlwZSI6Im1vdmllXzEiLCJjbGFzc19uYW1lIjoiIiwidHlwZSI6Im90aGVyIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG5sZXQgaHRtbCA9IHBkZmgoZ2V0UmVzQ29kZSgpLCBcIiNzay1tb2JpbGUtY29udGFpbmVyJiZIdG1sXCIpO1xuXG5sZXQgTGlzdDEgPSBwZGZhKGh0bWwsIFwiLm0taG9tZS13ZWVrJiYubS1ob21lLXdlZWstaXRlbVwiKTtcblxuXG5sZXQgZCA9IFtdO1xuXG5kLnB1c2goe1xuICAgIGNvbF90eXBlOiBcImlucHV0XCIsXG4gICAgdXJsOiBcImlucHV0PWlucHV0LnRyaW0oKTtpZihpbnB1dCknaGlrZXI6Ly9wYWdlL3NlYXJjaCNub1JlZnJlc2gjP3NlYXJjaHN0cj0nK2VuY29kZVVSSUNvbXBvbmVudChpbnB1dCk7XCJcbn0pO1xubGV0IHdlZWsgPSBMaXN0MS5tYXAodiA9PiBwZGZoKHYsIFwiLm1vbmRheSYmVGV4dFwiKSk7XG53ZWVrLnVuc2hpZnQoXCLlhajpg6hcIik7XG5sZXQgc2VsZWN0V2VlayA9IE51bWJlcihnZXRNeVZhcihcInNlbGVjdFdlZWtcIiwgXCIxXCIpKTtcbmlmKGdldEl0ZW0oXCJzaG93TW9kZVwiLCBcIlwiKSl7XG4gICAgc2VsZWN0V2Vlaz0wO1xufVxuYWRkTGlzdGVuZXIoXCJvbkNsb3NlXCIsICgpID0+IHtcbiAgICBjbGVhck15VmFyKFwic2VsZWN0V2Vla1wiKTtcbn0pO1xud2Vlay5mb3JFYWNoKCh2LCBpKSA9PiB7XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHNlbGVjdFdlZWsgPT09IGkgPyBcIuKAnOKAnFwiICsgdiArIFwi4oCd4oCdXCIgOiB2LFxuICAgICAgICB1cmw6ICQoXCIjbm9Mb2FkaW5nI1wiKS5sYXp5UnVsZSgoaSkgPT4ge1xuICAgICAgICAgICAgcHV0TXlWYXIoXCJzZWxlY3RXZWVrXCIsIGkgKyBcIlwiKTtcbiAgICAgICAgICAgIGlmKGk9PT0wKXtcbiAgICAgICAgICAgICAgICBzZXRJdGVtKFwic2hvd01vZGVcIiwgXCIxXCIpO1xuICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgY2xlYXJJdGVtKFwic2hvd01vZGVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xuICAgICAgICAgICAgcmV0dXJuIFwiaGlrZXI6Ly9lbXB0eVwiO1xuICAgICAgICB9LCBpKSxcbiAgICAgICAgY29sX3R5cGU6IFwic2Nyb2xsX2J1dHRvblwiXG4gICAgfSlcbn0pO1xuZm9yIChsZXQgaSA9IDA7IGkgPCBMaXN0MS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzZWxlY3RXZWVrICE9PSAwICYmIHNlbGVjdFdlZWsgLSAxICE9PSBpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBsZXQgaXRlbSA9IExpc3QxW2ldO1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiB3ZWVrW2kgKyAxXS5mb250Y29sb3IoXCIjZmZmZTk3MDBcIikgKyAoaSA/IFwiXCIgOiBcIiAo5LuK5aSpKVwiKSxcbiAgICAgICAgY29sX3R5cGU6IFwicmljaF90ZXh0XCIsXG4gICAgfSk7XG4gICAgbGV0IHVsTGlzdCA9IHBkZmEoaXRlbSwgXCIuZGV0YWlsJiYubS13ZWVrLXNxdWFyZVwiKTtcbiAgICBmb3IgKGxldCBsaSBvZiB1bExpc3QpIHtcbiAgICAgICAgbGV0IHVybCA9IHBkKGxpLCBcImEmJmhyZWZcIik7XG4gICAgICAgIGxldCB0aXRsZSA9IHBkZmgobGksIFwiLnNtYWxsLXRpdGxlJiZUZXh0XCIpO1xuICAgICAgICBsZXQgcmVzID0ge1xuICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgICAgY29sX3R5cGU6IFwibW92aWVfM19tYXJxdWVlXCIsXG4gICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgIGR1cmw6IHVybCxcbiAgICAgICAgICAgICAgICBsb25nQ2xpY2s6IFt7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuWcqOWKqOa8q+iKseWbreaQnOe0olwiLFxuICAgICAgICAgICAgICAgICAgICBqczogSlNPTi5zdHJpbmdpZnkoXCJoaWtlcjovL3BhZ2Uv5pCc57Si57uT5p6cI25vUmVjb3JkSGlzdG9yeSMjbm9IaXN0b3J5Iz9wYWdlPWZ5cGFnZSZydWxlPeWKqOa8q+iKseWbreWQjOatpeermSZrZXl3b3JkPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHRpdGxlLnJlcGxhY2UoL+esrC4qP+Wtoy8sIFwiXCIpLnNsaWNlKDAsIDYpKSlcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh1cmwgPT09IE1ZX1VSTCkge1xuICAgICAgICAgICAgcmVzLnVybCA9IFwidG9hc3Q6Ly/mnKrlvIDmkq1cIjtcbiAgICAgICAgICAgIHJlcy5kZXNjID0gXCLmnKrlvIDmkq1cIjtcbiAgICAgICAgICAgIHJlcy5waWNfdXJsID0gJChwZChsaSwgXCJpbWcmJmRhdGEtc3JjXCIpK1wiJlwiKS5pbWFnZSgoKSA9PiAkLnJlcXVpcmUoXCJJbWc/cnVsZT1cIiArIE1ZX1RJVExFKS50b0dyYXlzY2FsZSgpKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzLnVybCA9IFwiaGlrZXI6Ly9wYWdlL2RldGFpbCNpbW1lcnNpdmVUaGVtZSMjbm9SZWZyZXNoI1wiO1xuICAgICAgICAgICAgcmVzLnBpY191cmwgPSAkKHBkKGxpLCBcImltZyYmZGF0YS1zcmNcIikpLmltYWdlKCgpID0+ICQucmVxdWlyZShcIkltZz9ydWxlPVwiICsgTVlfVElUTEUpLmNvbXByZXNzKCkpO1xuICAgICAgICB9XG4gICAgICAgIGQucHVzaChyZXMpO1xuICAgIH1cbiAgICBkLnB1c2goe1xuICAgICAgICBjb2xfdHlwZTogXCJsaW5lX2JsYW5rXCJcbiAgICB9KTtcbn1cblxuc2V0UmVzdWx0KGQpO1xuIiwic2VhcmNoX3VybCI6Imhpa2VyOi8vZW1wdHk/c2VhcmNoc3RyPSoqIiwiZ3JvdXAiOiLop4bpopEiLCJzZWFyY2hGaW5kIjoianM6bGV0IGtleSA9IGdldFBhcmFtKFwic2VhcmNoc3RyXCIpO1xubGV0IGh0bWwgPSByZXF1ZXN0KFwiaHR0cHM6Ly9taWthbmltZS50di9Ib21lL1NlYXJjaD9zZWFyY2hzdHI9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoa2V5KSk7XG5sZXQgbGlzdCA9IHBkZmEoaHRtbCwgXCIubS1zZWFyY2gtY29udGVudCYmLm0tc2VhcmNoLWl0ZW1cIik7XG5sZXQgZCA9IFtdO1xuZm9yIChsZXQgaXRlbSBvZiBsaXN0KSB7XG4gICAgbGV0IHVybD0gcGRmaChpdGVtLCBcImEmJmhyZWZcIik7XG4gICAgXG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHBkZmgoaXRlbSwgXCIudGV4dCYmVGV4dFwiKSxcbiAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgIGNvbF90eXBlOiBcInRleHRfMVwiLFxuICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sIFwiLmRhdGUmJlRleHRcIilcbiAgICB9KTtcbiAgICBcbn1cbnNldFJlc3VsdChkKTsiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiIiLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6K+m57uGXCIsXCJwYXRoXCI6XCJkZXRhaWxcIixcInJ1bGVcIjpcImpzOlxcbmxldCBkID0gW107XFxuTVlfVVJMID0gTVlfUEFSQU1TLmR1cmw7XFxubGV0IGh0bWwgPSBwZGZoKGZldGNoKE1ZX1BBUkFNUy5kdXJsKSwgXFxcIiNzay1tb2JpbGUtY29udGFpbmVyJiZIdG1sXFxcIik7XFxubGV0IHBpYyA9IHBkKGh0bWwsIFxcXCJpbWcmJnNyY1xcXCIpO1xcbmxldCBuYW1lO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAobmFtZSA9IHBkZmgoaHRtbCwgXFxcIi50aXRsZSYmVGV4dFxcXCIpKSxcXG4gICAgZGVzYzogcGRmYShodG1sLCBcXFwic2VjdGlvbiYmc3BhblxcXCIpLm1hcChzcGFuID0+IHBkZmgoc3BhbiwgXFxcIlRleHRcXFwiKSkuam9pbihcXFwiXFxcXG5cXFwiKSxcXG4gICAgcGljX3VybDogcGljLFxcbiAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyXFxcIixcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIGdyYWRpZW50OiB0cnVlXFxuICAgIH1cXG59KTtcXG5sZXQgaW50cm9kdWNlID0gXFxcIuamguWGteS7i+e7jVxcXCIuYmlnKCkgKyBcXFwiPGJyPlxcXCIgKyBwZGZoKGh0bWwsIFxcXCIuaW5mbyYmVGV4dFxcXCIpO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBpbnRyb2R1Y2Uuc2xpY2UoMCwgNDkpICsgKGludHJvZHVjZS5sZW5ndGggPCA0MCA/IFxcXCJcXFwiIDogXFxcIi4uLiDmm7TlpJror6bnu4Y+XFxcIi5saW5rKFxcXCJoaWtlcjovL3BhZ2UvaW50cm9kdWNlI25vUmVjb3JkSGlzdG9yeSMjbm9IaXN0b3J5I1xcXCIpKSxcXG4gICAgY29sX3R5cGU6IFxcXCJyaWNoX3RleHRcXFwiLFxcbiAgICBleHRyYToge1xcbiAgICAgICAgaW50cm9kdWNlOiBpbnRyb2R1Y2UsXFxuICAgIH1cXG59KTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogXFxcImxpbmVfYmxhbmtcXFwiXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLlrZfluZXnu4TliJfooahcXFwiLmJpZygpLFxcbiAgICBjb2xfdHlwZTogXFxcInJpY2hfdGV4dFxcXCIsXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6IFxcXCJsaW5lXFxcIlxcbn0pO1xcbmxldCBzdWJ0aXRsZWdyb3VwID0gcGRmYShodG1sLCBcXFwiI3N1Ymdyb3VwLWxpc3QmJi5pdGVtXFxcIik7XFxuZm9yIChsZXQgaXRlbSBvZiBzdWJ0aXRsZWdyb3VwKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogcGRmaChpdGVtLCBcXFwiLnRpdGxlJiZUZXh0XFxcIiksXFxuICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sIFxcXCIucmVtYXJrJiZUZXh0XFxcIiksXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2UvbGlzdFxcXCIsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfMVxcXCIsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGJhbmd1bWlJZDogcGRmaChpdGVtLCBcXFwiaSYmZGF0YS1iYW5ndW1paWRcXFwiKSxcXG4gICAgICAgICAgICBzdWJ0aXRsZUdyb3VwSWQ6IHBkZmgoaXRlbSwgXFxcImkmJmRhdGEtc3VidGl0bGVncm91cGlkXFxcIiksXFxuICAgICAgICAgICAgcGljOiBwaWMsXFxuICAgICAgICAgICAgbmFtZTogbmFtZSxcXG4gICAgICAgIH1cXG4gICAgfSk7XFxufVxcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiBcXFwiYmlnX2JpZ19ibGFua19ibG9ja1xcXCJcXG59KTtcXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLliJfooahcIixcInBhdGhcIjpcImxpc3RcIixcInJ1bGVcIjpcImpzOlxcbnNldFBhZ2VQaWNVcmwoTVlfUEFSQU1TLnBpYyk7XFxuTVlfUEFSQU1TLnBpYyA9IHVuZGVmaW5lZDtcXG5NWV9QQVJBTVMudGFrZSA9IDEwMDAwO1xcbk1ZX0hPTUUgPSBcXFwiaHR0cHM6Ly9taWthbmltZS50dlxcXCI7XFxubGV0IGh0bWwgPSByZXF1ZXN0KGJ1aWxkVXJsKFxcXCJodHRwczovL21pa2FuaW1lLnR2L0hvbWUvRXhwYW5kTW9iaWxlRXBpc29kZVRhYmxlXFxcIiwgTVlfUEFSQU1TKSk7XFxubGV0IGxpc3QgPSBwZGZhKGh0bWwsIFxcXCJib2R5JiYubS1iYW5ndW1pLWl0ZW1cXFwiKTtcXG5sZXQgZCA9IFtdO1xcbmZvciAobGV0IGl0ZW0gb2YgbGlzdCkge1xcbiAgICBsZXQgdXJsID0gTVlfSE9NRSArIHBkZmgoaXRlbSwgXFxcImEmJmhyZWZcXFwiKTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHVybDogJChNWV9QQVJBTVMubmFtZSxcXFwi5pCc57Si5by55bmVXFxcIikuaW5wdXQoKCk9PntcXG4gICAgICAgICAgICBpZighaW5wdXQpIHJldHVybiBcXFwidG9hc3Q6Ly/ov5nmoLfmkJzkuI3liLDlk6ZcXFwiO1xcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9wYWdlL2xvYWREbSNub0hpc3RvcnkjI25vUmVjb3JkSGlzdG9yeSM/bmFtZT1cXFwiK2VuY29kZVVSSUNvbXBvbmVudChpbnB1dCk7XFxuICAgICAgICB9KSxcXG4gICAgICAgIGRlc2M6IFxcXCJETVxcXCIsXFxuICAgICAgICBwaWNfdXJsOiBcXFwiaHR0cHM6Ly9oaWtlcmZhbnMuY29tL3R1Ymlhby9tb3ZpZS83MC5zdmdcXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLFxcbiAgICAgICAgZXh0cmE6e1xcbiAgICAgICAgICAgIHBhZ2VUaXRsZTpcXFwi5by55bmV5pCc57Si57uR5a6aXFxcIixcXG4gICAgICAgICAgICBkdXJsOnVybFxcbiAgICAgICAgfVxcbiAgICB9KTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sIFxcXCIudGV4dCYmVGV4dFxcXCIpLFxcbiAgICAgICAgdXJsOiB1cmwsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfMVxcXCIsXFxuICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sIFxcXCIuZGF0ZSYmVGV4dFxcXCIpLFxcbiAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICBsb25nQ2xpY2s6IFt7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBcXFwi5LiL6L29XFxcIixcXG4gICAgICAgICAgICAgICAganM6IEpTT04uc3RyaW5naWZ5KFxcXCJtYWduZXQ6Ly9cXFwiICsgdXJsLnJlcGxhY2UoXFxcIi50b3JyZW50XFxcIiwgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgIH1dXFxuICAgICAgICB9XFxuICAgIH0pO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJsaW5lXFxcIlxcbiAgICB9KTtcXG59XFxuc2V0TGFzdENoYXB0ZXJSdWxlKCdqczonICsgJC50b1N0cmluZygoTVlfUEFSQU1TKSA9PiB7XFxuICAgIE1ZX1BBUkFNUy50YWtlID0gMTtcXG4gICAgbGV0IGh0bWwgPSByZXF1ZXN0KGJ1aWxkVXJsKFxcXCJodHRwczovL21pa2FuaW1lLnR2L0hvbWUvRXhwYW5kTW9iaWxlRXBpc29kZVRhYmxlXFxcIiwgTVlfUEFSQU1TKSk7XFxuICAgIGxldCBsaXN0ID0gcGRmYShodG1sLCBcXFwiYm9keSYmLm0tYmFuZ3VtaS1pdGVtXFxcIik7XFxuICAgIHNldFJlc3VsdChcXFwi56ysXFxcIiArIChwZGZoKGxpc3RbMF0sIFxcXCIudGV4dCYmVGV4dFxcXCIpLnJlcGxhY2UoL1xcXFxkK1vmnIhwXS8sIFxcXCJcXFwiKS5tYXRjaCgvXFxcXGQrLykgfHwgWy0xXSlbMF0gKyBcXFwi6ZuGXFxcIik7XFxufSwgTVlfUEFSQU1TKSk7XFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwicmljaF90ZXh0XCIsXCJuYW1lXCI6XCLku4vnu41cIixcInBhdGhcIjpcImludHJvZHVjZVwiLFwicnVsZVwiOlwianM6XFxuc2V0UGFnZVRpdGxlKFxcXCLor6bnu4bku4vnu41cXFwiKTtcXG5zZXRSZXN1bHQoW3tcXG4gICAgdGl0bGU6IE1ZX1BBUkFNUy5pbnRyb2R1Y2VcXG59XSk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmkJzntKJcIixcInBhdGhcIjpcInNlYXJjaFwiLFwicnVsZVwiOlwianM6XFxubGV0IGtleSA9IGdldFBhcmFtKFxcXCJzZWFyY2hzdHJcXFwiKTtcXG5zZXRQYWdlVGl0bGUoXFxcIuaQnOe0ojrjgIxcXFwiK2RlY29kZVVSSUNvbXBvbmVudChrZXkpK1xcXCLjgI1cXFwiKTtcXG5sZXQgaHRtbCA9IHJlcXVlc3QoXFxcImh0dHBzOi8vbWlrYW5pbWUudHYvSG9tZS9TZWFyY2g/c2VhcmNoc3RyPVxcXCIgKyBrZXkpO1xcbmxldCBsaXN0ID0gcGRmYShodG1sLCBcXFwiLm0tc2VhcmNoLWNvbnRlbnQmJi5tLXNlYXJjaC1pdGVtXFxcIik7XFxubGV0IGQgPSBbXTtcXG5mb3IgKGxldCBpdGVtIG9mIGxpc3QpIHtcXG4gICAgbGV0IHVybD0gcGRmaChpdGVtLCBcXFwiYSYmaHJlZlxcXCIpO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdXJsOiBcXFwibWFnbmV0Oi8vXFxcIit1cmwsXFxuICAgICAgICBwaWNfdXJsOlxcXCJodHRwczovL2hpa2VyZmFucy5jb20vdHViaWFvL21vdmllLzcwLnN2Z1xcXCIsXFxuICAgICAgICBjb2xfdHlwZTpcXFwiYXZhdGFyXFxcIlxcbiAgICB9KTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sIFxcXCIudGV4dCYmVGV4dFxcXCIpLFxcbiAgICAgICAgdXJsOiB1cmwsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfMVxcXCIsXFxuICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sIFxcXCIuZGF0ZSYmVGV4dFxcXCIpXFxuICAgIH0pO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6XFxcImxpbmVcXFwiXFxuICAgIH0pO1xcbn1cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlvLnluZXliqDovb1cIixcInBhdGhcIjpcImxvYWREbVwiLFwicnVsZVwiOlwianM6XFxubGV0IGQgPSBbXTtcXG5jb25zdCBkYW5tdSA9ICQucmVxdWlyZShcXFwiZGFubXVcXFwiKTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTpcXFwicmljaF90ZXh0XFxcIixcXG4gICAgdGl0bGU6XFxcIjxmb250IGNvbG9yPSdHcmF5Jz7inZflpoLkvZXkvb/nlKjlvLnluZU8YnI+PHNtYWxsPuaSreaUvueVjOmdoi0+5pu05aSa5Yqf6IO9LT7lpJbmjILmnKzlnLDlvLnluZUtPuebruagh+W8ueW5lTwvc21hbGw+PC9mb250PlxcXCJcXG59KTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTpcXFwibGluZVxcXCJcXG59KTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTpcXFwibGluZVxcXCJcXG59KTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTpcXFwibGluZVxcXCJcXG59KTtcXG5sZXQgZG1MaXN0ID0gZGFubXUuZ2V0RGFuTXUoZ2V0UGFyYW0oXFxcIm5hbWVcXFwiLCBNWV9QQVJBTVMubmFtZSkpO1xcbmZvciAobGV0IGFuaW1lIG9mIGRtTGlzdC5hbmltZXMpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBhbmltZS5hbmltZVRpdGxlLFxcbiAgICAgICAgZGVzYzogYW5pbWUudHlwZURlc2NyaXB0aW9uLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJhdmF0YXJcXFwiLFxcbiAgICAgICAgdXJsOlxcXCJoaWtlcjovL2VtcHR5XFxcIixcXG4gICAgICAgIHBpY191cmw6IFxcXCJodHRwczovL2hpa2VyZmFucy5jb20vdHViaWFvL21vdmllLzE0LnN2Z1xcXCJcXG4gICAgfSk7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogXFxcImxpbmVcXFwiXFxuICAgIH0pO1xcbiAgICBmb3IgKGxldCBlcGlzb2RlIG9mIGFuaW1lLmVwaXNvZGVzKSB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBlcGlzb2RlLmVwaXNvZGVUaXRsZSxcXG4gICAgICAgICAgICB1cmw6ICQoZXBpc29kZS5lcGlzb2RlSWQpLmxhenlSdWxlKCh1cmwsIHRpdGxlKSA9PiB7XFxuICAgICAgICAgICAgICAgIGNvbnN0IGRhbm11ID0gJC5yZXF1aXJlKFxcXCJkYW5tdVxcXCIpO1xcbiAgICAgICAgICAgICAgICBsZXQgcGF0aCA9IGRhbm11LmdldExvY2FsRGFuTXUoaW5wdXQsIHRpdGxlKSB8fCBkYW5tdS5kb3dubG9hZERhbk11KGlucHV0LCB0aXRsZSk7XFxuICAgICAgICAgICAgICAgIHJldHVybiB1cmw7XFxuICAgICAgICAgICAgfSwgTVlfUEFSQU1TLmR1cmwsIGFuaW1lLmFuaW1lVGl0bGUrXFxcIl9cXFwiK2VwaXNvZGUuZXBpc29kZVRpdGxlKSxcXG5cXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfMVxcXCIsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgbG9uZ0NsaWNrOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLlvLrliLbkuIvovb1cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKGVwaXNvZGVUaXRsZSxlcGlzb2RlSWQpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93TG9hZGluZyhcXFwi6K+3562J5b6FXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGFubXUgPSAkLnJlcXVpcmUoXFxcImRhbm11XFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZGFubXUuZG93bmxvYWREYW5NdShlcGlzb2RlSWQsIGVwaXNvZGVUaXRsZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUxvYWRpbmcoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6YeN5paw5LiL6L295a6M5oiQXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIH0sIGVwaXNvZGUuZXBpc29kZVRpdGxlLCBlcGlzb2RlLmVwaXNvZGVJZClcXG4gICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgfVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJsaW5lX2JsYW5rXFxcIlxcbiAgICB9KTtcXG59XFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5by55bmV5bel5YW3XCIsXCJwYXRoXCI6XCJkYW5tdVwiLFwicnVsZVwiOlwianM6XFxubGV0IGJhc2ljVXJsID0gXFxcImh0dHBzOi8vYXBpLmRhbmRhbnBsYXkubmV0L1xcXCI7XFxubGV0IHNldmVQYXRoID0gXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvZGFubXUvXFxcIjtcXG4kLmV4cG9ydHMuZ2V0RGFuTXUgPSBmdW5jdGlvbihrZXkpIHtcXG4gICAgcmV0dXJuIEpTT04ucGFyc2UocmVxdWVzdChiYXNpY1VybCArIFxcXCJhcGkvdjIvc2VhcmNoL2VwaXNvZGVzP2FuaW1lPVxcXCIgKyBlbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KGtleSkpKSk7XFxufVxcblxcbmZ1bmN0aW9uIGVuY29kZUh0bWwocykge1xcbiAgICBsZXQgUkVHWF9IVE1MX0VOQ09ERSA9IC/igJx8JnzigJl8XFxcXHUwMDNDfD58W1xcXFx4MDAtXFxcXHgyMF18W1xcXFx4N0YtXFxcXHhGRl18W1xcXFx1MDEwMC1cXFxcdTI3MDBdL2c7XFxuICAgIHJldHVybiBzLnJlcGxhY2UoUkVHWF9IVE1MX0VOQ09ERSwgZnVuY3Rpb24oJDApIHtcXG4gICAgICAgIHZhciBjID0gJDAuY2hhckNvZGVBdCgwKSxcXG4gICAgICAgICAgICByID0gW1xcXCImI1xcXCJdO1xcbiAgICAgICAgYyA9IChjID09IDB4MjApID8gMHhBMCA6IGM7XFxuICAgICAgICByLnB1c2goYyk7XFxuICAgICAgICByLnB1c2goXFxcIjtcXFwiKTtcXG4gICAgICAgIHJldHVybiByLmpvaW4oXFxcIlxcXCIpO1xcbiAgICB9KTtcXG59XFxuXFxuXFxuXFxuLy8w6buY6K6kIDHnroDkvZMgMue5geS9k1xcbiQuZXhwb3J0cy5kb3dubG9hZERhbk11ID0gZnVuY3Rpb24oZXBpc29kZUlkLCBuYW1lKSB7XFxuICAgIGxldCBkYW5NdURhdGEgPSBKU09OLnBhcnNlKHJlcXVlc3QoYnVpbGRVcmwoYmFzaWNVcmwgKyBcXFwiL2FwaS92Mi9jb21tZW50L1xcXCIgKyBlcGlzb2RlSWQsIHtcXG4gICAgICAgIHdpdGhSZWxhdGVkOiB0cnVlLFxcbiAgICAgICAgY2hDb252ZXJ0OiAxXFxuICAgIH0pKSk7XFxuICAgIGxldCBkTWNvbnRleHQgPSBcXFwiXFxcIjtcXG4gICAgZm9yIChsZXQgY29tbWVudCBvZiBkYW5NdURhdGEuY29tbWVudHMpIHtcXG4gICAgICAgIC8vZE1jb250ZXh0ICs9IGA8ZCBwPVxcXCIke01hdGgucm91bmQodGltZXBvaW50KX0sJHtjdH0sJHtzaXplfSwke2NvbG9yfSwwXFxcIj4ke2NvbnRlbnR9PC9kPlxcXFxuYDtcXG4gICAgICAgIGxldCBwYXJhbVRleHQgPSBjb21tZW50LnA7XFxuICAgICAgICBsZXQgY29tbWVudFRleHQgPSBjb21tZW50Lm07XFxuICAgICAgICBpZiAocGFyYW1UZXh0ID09IG51bGwgfHwgY29tbWVudFRleHQgPT0gbnVsbCkgY29udGludWU7XFxuICAgICAgICBsZXQgcGFyYW1zID0gcGFyYW1UZXh0LnNwbGl0KFxcXCIsXFxcIik7XFxuICAgICAgICBsZXQgcGFyYW1zVCA9IFtdO1xcbiAgICAgICAgZm9yIChsZXQgaSBpbiBwYXJhbXMpIHtcXG4gICAgICAgICAgICBpZiAoaSA9PSAzKSB7XFxuICAgICAgICAgICAgICAgIC8v6aKc6Imy5YC85Li6MOaXtu+8jOm7mOiupOiuvue9ruS4uueZveiJslxcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zW2ldID09IFxcXCIwXFxcIiB8fCBwYXJhbXNbaV0gPT0gXFxcIi0xXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zVC5wdXNoKFxcXCIxNjc3NzIxNVxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgY29udGludWVcXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoaSA9PSAyKSB7XFxuICAgICAgICAgICAgICAgIHBhcmFtc1QucHVzaChcXFwiMjVcXFwiKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcGFyYW1zVC5wdXNoKHBhcmFtc1tpXSk7XFxuXFxuICAgICAgICB9XFxuICAgICAgICBwYXJhbXNULnB1c2goXFxcIjBcXFwiLCBcXFwiMFxcXCIsIFxcXCIwXFxcIik7XFxuICAgICAgICBkTWNvbnRleHQgKz0gYDxkIHA9XFxcIiR7cGFyYW1zVC5qb2luKCcsJyl9XFxcIj4ke2VuY29kZUh0bWwoY29tbWVudFRleHQpfTwvZD5cXFxcbmA7XFxuICAgIH1cXG4gICAgaWYgKCFkTWNvbnRleHQpIHJldHVybjtcXG4gICAgZE1jb250ZXh0ID0gYDw/eG1sIHZlcnNpb249XFxcIjEuMFxcXCIgZW5jb2Rpbmc9XFxcIlVURi04XFxcIj8+PGk+XFxcXG4ke2RNY29udGV4dH08L2k+YDtcXG4gICAgbGV0IHBhdGggPSBzZXZlUGF0aCArIG5hbWUgKyBcXFwiX1xcXCIgKyBlcGlzb2RlSWQgKyBcXFwiLnhtbFxcXCI7XFxuICAgIHdyaXRlRmlsZShwYXRoLCBkTWNvbnRleHQpO1xcbiAgICByZXR1cm4gcGF0aDtcXG59XFxuJC5leHBvcnRzLmdldExvY2FsRGFuTXUgPSBmdW5jdGlvbihlcGlzb2RlSWQsIG5hbWUpIHtcXG4gICAgbGV0IHBhdGggPSBzZXZlUGF0aCArIG5hbWUgKyBcXFwiX1xcXCIgKyBlcGlzb2RlSWQgKyBcXFwiLnhtbFxcXCI7XFxuICAgIGlmIChmaWxlRXhpc3QocGF0aCkpIHtcXG4gICAgICAgIHJldHVybiBwYXRoO1xcbiAgICB9XFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfMVwiLFwibmFtZVwiOlwi5Zu+54mH5aSE55CGXCIsXCJwYXRoXCI6XCJJbWdcIixcInJ1bGVcIjpcImpzOlxcbmNvbnN0IEJ5dGVBcnJheU91dHB1dFN0cmVhbSA9IGphdmEuaW8uQnl0ZUFycmF5T3V0cHV0U3RyZWFtO1xcbmNvbnN0IEJ5dGVBcnJheUlucHV0U3RyZWFtID0gamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTtcXG5jb25zdCBCaXRtYXAgPSBhbmRyb2lkLmdyYXBoaWNzLkJpdG1hcDtcXG5jb25zdCBCaXRtYXBGYWN0b3J5ID0gYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBGYWN0b3J5O1xcbmNvbnN0IENhbnZhcyA9IGFuZHJvaWQuZ3JhcGhpY3MuQ2FudmFzO1xcbmNvbnN0IENvbG9yID0gYW5kcm9pZC5ncmFwaGljcy5Db2xvcjtcXG5jb25zdCBDb2xvck1hdHJpeCA9IGFuZHJvaWQuZ3JhcGhpY3MuQ29sb3JNYXRyaXg7XFxuY29uc3QgQ29sb3JNYXRyaXhDb2xvckZpbHRlciA9IGFuZHJvaWQuZ3JhcGhpY3MuQ29sb3JNYXRyaXhDb2xvckZpbHRlcjtcXG5jb25zdCBQYWludCA9IGFuZHJvaWQuZ3JhcGhpY3MuUGFpbnQ7XFxuXFxuZnVuY3Rpb24gdG9HcmF5c2NhbGUoYm1wT3JpZ2luYWwpIHtcXG4gICAgYm1wT3JpZ2luYWwgPSBCaXRtYXBGYWN0b3J5LmRlY29kZVN0cmVhbShibXBPcmlnaW5hbCwgbnVsbCwgZ2V0T3B0aW9ucygpKTtcXG4gICAgbGV0IHdpZHRoLCBoZWlnaHQ7XFxuICAgIGhlaWdodCA9IGJtcE9yaWdpbmFsLmdldEhlaWdodCgpO1xcbiAgICB3aWR0aCA9IGJtcE9yaWdpbmFsLmdldFdpZHRoKCk7XFxuXFxuICAgIGxldCBibXBHcmF5c2NhbGUgPSBCaXRtYXAuY3JlYXRlQml0bWFwKHdpZHRoLCBoZWlnaHQsIEJpdG1hcC5Db25maWcuUkdCXzU2NSk7XFxuICAgIGxldCBjID0gbmV3IENhbnZhcyhibXBHcmF5c2NhbGUpO1xcbiAgICBsZXQgcGFpbnQgPSBuZXcgUGFpbnQoKTtcXG4gICAgbGV0IGNtID0gbmV3IENvbG9yTWF0cml4KCk7XFxuICAgIGNtLnNldFNhdHVyYXRpb24oMCk7XFxuICAgIGxldCBmID0gbmV3IENvbG9yTWF0cml4Q29sb3JGaWx0ZXIoY20pO1xcbiAgICBwYWludC5zZXRDb2xvckZpbHRlcihmKTtcXG4gICAgYy5kcmF3Qml0bWFwKGJtcE9yaWdpbmFsLCAwLCAwLCBwYWludCk7XFxuICAgIHJldHVybiBvdXRJbnB1dChibXBHcmF5c2NhbGUpO1xcbn1cXG5cXG5mdW5jdGlvbiBnZXRPcHRpb25zKCkge1xcbiAgICBsZXQgb3B0aW9ucyA9IG5ldyBCaXRtYXBGYWN0b3J5Lk9wdGlvbnMoKTtcXG4gICAgb3B0aW9ucy5pblNhbXBsZVNpemUgPSAyLjg7XFxuICAgIHJldHVybiBvcHRpb25zO1xcbn1cXG5mdW5jdGlvbiBvdXRJbnB1dChiaXRtYXApe1xcbiAgICBsZXQgYmFvcyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTtcXG4gICAgYml0bWFwLmNvbXByZXNzKEJpdG1hcC5Db21wcmVzc0Zvcm1hdC5KUEVHLCA4MCwgYmFvcyk7XFxuICAgIHJldHVybiBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYmFvcy50b0J5dGVBcnJheSgpKTtcXG59XFxuZnVuY3Rpb24gY29tcHJlc3MoYm1wT3JpZ2luYWwpIHtcXG4gICAgYm1wT3JpZ2luYWwgPSBCaXRtYXBGYWN0b3J5LmRlY29kZVN0cmVhbShibXBPcmlnaW5hbCwgbnVsbCwgZ2V0T3B0aW9ucygpKTtcXG4gICAgcmV0dXJuIG91dElucHV0KGJtcE9yaWdpbmFsKTtcXG59XFxuJC5leHBvcnRzLmNvbXByZXNzID0gKCkgPT4gY29tcHJlc3MoaW5wdXQpO1xcbiQuZXhwb3J0cy50b0dyYXlzY2FsZSA9ICgpID0+IHRvR3JheXNjYWxlKGlucHV0KTtcIn1dIiwiaWNvbiI6Imh0dHBzOi8vbWlrYW5pbWUudHYvaW1hZ2VzL2Zhdmljb24uaWNvP3Y9MiIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment