Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥奇妙工具箱-海阔视界新手指南@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcInBpY1wiLFwicGF0aFwiOlwicGljXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbmxldCB4ID0gZ2V0SXRlbShcXFwieFxcXCIsIFxcXCLlkKZcXFwiKTtcXG5sZXQgZGVzYyA9IHggPT0gXFxcIuaYr1xcXCIgPyBcXFwiZmxvYXQmJjMwMFxcXCIgOiBcXFwiZmxvYXQmJjFcXFwiO1xcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiBcXFwieDVfd2Vidmlld19zaW5nbGVcXFwiLFxcbiAgICB1cmw6IFxcXCJcXFwiLFxcbiAgICBkZXNjOiBkZXNjLFxcbiAgICB0aXRsZTogXFxcIlxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgZnVuY3Rpb24gZ2V0aW1ncygpIHtcXG4gICAgICAgICAgICAgICAgdmFyIHZpZGVvRWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcXFwiaW1nXFxcIik7XFxuICAgICAgICAgICAgICAgIGlmICh2aWRlb0VsZW1lbnRzID09IG51bGwpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBsZXQgdXJscyA9IFtdO1xcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZpZGVvRWxlbWVudHMubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh2aWRlb0VsZW1lbnRzW2ldLndpZHRoID4gNzAgJiYgdmlkZW9FbGVtZW50c1tpXS5oZWlnaHQgPiA3MCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNyYyA9IHZpZGVvRWxlbWVudHNbaV0uc3JjO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcmMgPT0gbnVsbCB8fCBzcmMubGVuZ3RoIDwgNSB8fCB1cmxzLmluY2x1ZGVzKHNyYykgfHwgc3JjLmluZGV4T2YoXFxcImRhdGE6XFxcIikgPT0gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coc3JjKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmxzLnB1c2gobmV3IFVSTChzcmMpLnRvU3RyaW5nKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiB1cmxzO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBmdW5jdGlvbiBjaGVjaygpIHtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmxzID0gZ2V0aW1ncygpO1xcbiAgICAgICAgICAgICAgICAgICAgLy9mYmEubG9nKFxcXCJnZXRpbWdz77yaXFxcIiArIHVybHMubGVuZ3RoKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY2hlY2tlZFVybHMgPT0gbnVsbCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jaGVja2VkVXJscyA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNoZWNrZWRVcmxzID0gd2luZG93LmNoZWNrZWRVcmxzO1xcbiAgICAgICAgICAgICAgICAgICAgdXJscyA9IHVybHMuZmlsdGVyKGl0ID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWNoZWNrZWRVcmxzLmluY2x1ZGVzKGl0KVxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuXFxuICAgICAgICAgICAgICAgICAgICBpZiAodXJscy5sZW5ndGggPiAwKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBpY3MgPSB1cmxzLmZpbHRlcihpdCA9PiBpdCAhPSBudWxsICYmIGl0ICE9IFxcXCJcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGl0ID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1ID0gZmJhLmdldEhlYWRlclVybChpdCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXUgPSB1LnNwbGl0KFxcXCI7XFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGljID0gdTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1dS5sZW5ndGggPiAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHUxID0gdXVbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHUyID0gdXVbMV0uc2xpY2UoMSwgLTEpLnNwbGl0KFxcXCImJlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWZlcmVyID0gbnVsbDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdWEgPSBudWxsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb29raWUwID0gbnVsbDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpaSBvZiB1Mikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXQyID0gaWkuc3BsaXQoXFxcIkBcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0MlswXSA9PSBcXFwiUmVmZXJlclxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZXIgPSBpdDJbMV0ucmVwbGFjZSgv77yb77ybL2csIFxcXCI7XFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0MlswXSA9PSBcXFwiVXNlci1BZ2VudFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVhID0gaXQyWzFdLnJlcGxhY2UoL++8m++8my9nLCBcXFwiO1xcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdDJbMF0gPT0gXFxcIkNvb2tpZVxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tpZTAgPSBpdDJbMV0ucmVwbGFjZSgv77yb77ybL2csIFxcXCI7XFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gdTE7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlZmVyZXIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gcGljICsgXFxcIkBSZWZlcmVyPVxcXCIgKyByZWZlcmVyO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodWEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gcGljICsgXFxcIkBVc2VyLUFnZW50PVxcXCIgKyB1YTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvb2tpZTApIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gcGljICsgXFxcIkBDb29raWU9XFxcIiArIGNvb2tpZTBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpYyA9IGl0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWM6IHBpYyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhwaWNzLmxlbmd0aCArIFxcXCJcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBmYmEucGFyc2VMYXp5UnVsZUFzeW5jKCQkJCgpLmxhenlSdWxlKCh1cmxzKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKHVybHMpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXJyID0gdXJscy5tYXAoaXQgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBpdC5waWMsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljX3VybDogaXQucGljLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiY2FyZF9waWNfM1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzOiBcXFwicGljc1xcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRJdGVtQmVmb3JlKFxcXCJwaWNfbGluZVxcXCIsIGFycik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgcGljcyksIGZ1bmN0aW9uKCkge1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0IG9mIHVybHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmNoZWNrZWRVcmxzLnB1c2goaXQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhlLnRvU3RyaW5nKCkpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2ssIDMwMCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGNoZWNrKCk7XFxuICAgICAgICB9KVxcbiAgICB9XFxufSk7XFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLmj5Dlj5ZcXFwiLFxcbiAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgcHV0TXlWYXIoXFxcImlcXFwiLCBpbnB1dCk7XFxuICAgICAgICBkZWxldGVJdGVtQnlDbHMoXFxcInBpY3NcXFwiKTtcXG4gICAgICAgIHJlZnJlc2hYNVdlYlZpZXcoaW5wdXQpO1xcbiAgICB9KSxcXG4gICAgY29sX3R5cGU6IFxcXCJpbnB1dFxcXCIsXFxuICAgIGRlc2M6IFxcXCLor7fovpPlhaXnvZHpobXlnLDlnYBcXFwiLFxcbiAgICBwaWNfdXJsOiBcXFwiXFxcIixcXG4gICAgZXh0cmE6IHtcXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoXFxcImlcXFwiLCBcXFwiXFxcIilcXG4gICAgfVxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiBcXFwi5pi+56S6572R6aG157uE5Lu277yaXFxcIiArIHgsXFxuICAgIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICBsZXQgeCA9IGdldEl0ZW0oXFxcInhcXFwiLCBcXFwi5ZCmXFxcIik7XFxuICAgICAgICBsZXQgbmV4dCA9IHggPT0gXFxcIuWQplxcXCIgPyBcXFwi5pivXFxcIiA6IFxcXCLlkKZcXFwiO1xcbiAgICAgICAgc2V0SXRlbShcXFwieFxcXCIsIG5leHQpO1xcbiAgICAgICAgbGV0IGRlc2MgPSB4ID09IFxcXCLlkKZcXFwiID8gXFxcImZsb2F0JiYzMDBcXFwiIDogXFxcImZsb2F0JiYxXFxcIjtcXG4gICAgICAgIHVwZGF0ZUl0ZW0oXFxcInBpY190aXBcXFwiLCB7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLmmL7npLrnvZHpobXnu4Tku7bvvJpcXFwiICsgbmV4dFxcbiAgICAgICAgfSk7XFxuICAgICAgICByZWZyZXNoWDVEZXNjKGRlc2MpO1xcbiAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICB9KSxcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICBkZXNjOiBcXFwiXFxcIixcXG4gICAgcGljX3VybDogXFxcIlxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBpZDogXFxcInBpY190aXBcXFwiXFxuICAgIH1cXG59KTtcXG5cXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogXFxcImxpbmVfYmxhbmtcXFwiLFxcbiAgICBleHRyYToge1xcbiAgICAgICAgaWQ6IFxcXCJwaWNfbGluZVxcXCJcXG4gICAgfVxcbn0pO1xcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcInRleHRfMVwiLFwibmFtZVwiOlwiZXB1YlwiLFwicGF0aFwiOlwiZXB1YlwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5sZXQgcGF0aCA9IGJhc2U2NERlY29kZShnZXRQYXJhbShcXFwicFxcXCIpKTtcXG5sb2cocGF0aCk7XFxubGV0IG1ldGEgPSBnZXRFcHViTWV0YWRhdGEocGF0aCk7XFxuLy9zZXRQYWdlVGl0bGUobWV0YS5maXJzdFRpdGxlKTtcXG5sZXQgY2hhcHRlcnMgPSBnZXRFcHViQ2hhcHRlcnMocGF0aCk7XFxuLy9sb2coY2hhcHRlcnMpO1xcbmZvciAobGV0IGl0IG9mIGNoYXB0ZXJzKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogaXQudGl0bGUsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2UvY29udGVudCNyZWFkVGhlbWUjI2F1dG9QYWdlI1xcXCIsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGhyZWY6IGl0LnVybCxcXG4gICAgICAgICAgICBwYXRoOiBwYXRoXFxuICAgICAgICB9XFxuICAgIH0pO1xcbn1cXG5zZXRSZXN1bHQoZCk7XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJyaWNoX3RleHRcIixcIm5hbWVcIjpcIuato+aWh1wiLFwicGF0aFwiOlwiY29udGVudFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXTtcXG5sZXQgcGF0aCA9IE1ZX1BBUkFNUy5wYXRoO1xcbmxldCB1cmwgPSBNWV9QQVJBTVMuaHJlZjtcXG5sZXQgYyA9IGdldEVwdWJDb250ZW50KHBhdGgsIHVybCk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IGMsXFxuICAgIHVybDogXFxcIlxcXCIsXFxufSk7XFxuc2V0UmVzdWx0KGQpO1wifV0sXCJzYXZlZFwiOmZhbHNlLFwidGl0bGVcIjpcIuWlh+WmmeW3peWFt+eusVwiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImhpa2VyOi8vZW1wdHlcIixcImNvbF90eXBlXCI6XCJ4NV93ZWJ2aWV3X3NpbmdsZVwiLFwiZmluZF9ydWxlXCI6XCJqczpzZXRSZXN1bHQoW3tcXG4gICAgdXJsOlxcXCJodHRwczovL2hhaWt1b3NoaWppZS5jbi9hcmNoaXZlcy9oYWkta3VvLXNoaS1qaWUteGluLXNob3UtemhpLW5hblxcXCIsXFxuZGVzYzpcXFwiMTAwJSYmZmxvYXRcXFwiLFxcbmV4dHJhOntjYW5CYWNrOiB0cnVlfVxcbn1dKTtcIixcImdyb3VwXCI6XCLikaDmjqjojZBcIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwicGljXFxcIixcXFwicGF0aFxcXCI6XFxcInBpY1xcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbnZhciBkID0gW107XFxcXG5sZXQgeCA9IGdldEl0ZW0oXFxcXFxcXCJ4XFxcXFxcXCIsIFxcXFxcXFwi5ZCmXFxcXFxcXCIpO1xcXFxubGV0IGRlc2MgPSB4ID09IFxcXFxcXFwi5pivXFxcXFxcXCIgPyBcXFxcXFxcImZsb2F0JiYzMDBcXFxcXFxcIiA6IFxcXFxcXFwiZmxvYXQmJjFcXFxcXFxcIjtcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwieDVfd2Vidmlld19zaW5nbGVcXFxcXFxcIixcXFxcbiAgICB1cmw6IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgZGVzYzogZGVzYyxcXFxcbiAgICB0aXRsZTogXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICBleHRyYToge1xcXFxuICAgICAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxcXG4gICAgICAgICAgICBmdW5jdGlvbiBnZXRpbWdzKCkge1xcXFxuICAgICAgICAgICAgICAgIHZhciB2aWRlb0VsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXFxcXFxcXCJpbWdcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgaWYgKHZpZGVvRWxlbWVudHMgPT0gbnVsbCkge1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIGxldCB1cmxzID0gW107XFxcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aWRlb0VsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICh2aWRlb0VsZW1lbnRzW2ldLndpZHRoID4gNzAgJiYgdmlkZW9FbGVtZW50c1tpXS5oZWlnaHQgPiA3MCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3JjID0gdmlkZW9FbGVtZW50c1tpXS5zcmM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3JjID09IG51bGwgfHwgc3JjLmxlbmd0aCA8IDUgfHwgdXJscy5pbmNsdWRlcyhzcmMpIHx8IHNyYy5pbmRleE9mKFxcXFxcXFwiZGF0YTpcXFxcXFxcIikgPT0gMCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coc3JjKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybHMucHVzaChuZXcgVVJMKHNyYykudG9TdHJpbmcoKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVybHM7XFxcXG4gICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrKCkge1xcXFxuICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmxzID0gZ2V0aW1ncygpO1xcXFxuICAgICAgICAgICAgICAgICAgICAvL2ZiYS5sb2coXFxcXFxcXCJnZXRpbWdz77yaXFxcXFxcXCIgKyB1cmxzLmxlbmd0aCk7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY2hlY2tlZFVybHMgPT0gbnVsbCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmNoZWNrZWRVcmxzID0gW107XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNoZWNrZWRVcmxzID0gd2luZG93LmNoZWNrZWRVcmxzO1xcXFxuICAgICAgICAgICAgICAgICAgICB1cmxzID0gdXJscy5maWx0ZXIoaXQgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFjaGVja2VkVXJscy5pbmNsdWRlcyhpdClcXFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVybHMubGVuZ3RoID4gMCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBpY3MgPSB1cmxzLmZpbHRlcihpdCA9PiBpdCAhPSBudWxsICYmIGl0ICE9IFxcXFxcXFwiXFxcXFxcXCIpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChpdCA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1ID0gZmJhLmdldEhlYWRlclVybChpdCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1dSA9IHUuc3BsaXQoXFxcXFxcXCI7XFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGljID0gdTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHV1Lmxlbmd0aCA+IDEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1MSA9IHV1WzBdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHUyID0gdXVbMV0uc2xpY2UoMSwgLTEpLnNwbGl0KFxcXFxcXFwiJiZcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVmZXJlciA9IG51bGw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdWEgPSBudWxsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvb2tpZTAgPSBudWxsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaWkgb2YgdTIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXQyID0gaWkuc3BsaXQoXFxcXFxcXCJAXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdDJbMF0gPT0gXFxcXFxcXCJSZWZlcmVyXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlciA9IGl0MlsxXS5yZXBsYWNlKC/vvJvvvJsvZywgXFxcXFxcXCI7XFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXQyWzBdID09IFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVhID0gaXQyWzFdLnJlcGxhY2UoL++8m++8my9nLCBcXFxcXFxcIjtcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdDJbMF0gPT0gXFxcXFxcXCJDb29raWVcXFxcXFxcIikge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWUwID0gaXQyWzFdLnJlcGxhY2UoL++8m++8my9nLCBcXFxcXFxcIjtcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gdTE7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVmZXJlcikge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpYyA9IHBpYyArIFxcXFxcXFwiQFJlZmVyZXI9XFxcXFxcXCIgKyByZWZlcmVyO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVhKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gcGljICsgXFxcXFxcXCJAVXNlci1BZ2VudD1cXFxcXFxcIiArIHVhO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvb2tpZTApIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWMgPSBwaWMgKyBcXFxcXFxcIkBDb29raWU9XFxcXFxcXCIgKyBjb29raWUwXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpYyA9IGl0O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWM6IHBpYyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKHBpY3MubGVuZ3RoICsgXFxcXFxcXCJcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBmYmEucGFyc2VMYXp5UnVsZUFzeW5jKCQkJCgpLmxhenlSdWxlKCh1cmxzKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2codXJscyk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXJyID0gdXJscy5tYXAoaXQgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGl0LnBpYyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IGl0LnBpYyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImNhcmRfcGljXzNcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzOiBcXFxcXFxcInBpY3NcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkSXRlbUJlZm9yZShcXFxcXFxcInBpY19saW5lXFxcXFxcXCIsIGFycik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBwaWNzKSwgZnVuY3Rpb24oKSB7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXQgb2YgdXJscykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jaGVja2VkVXJscy5wdXNoKGl0KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBmYmEubG9nKGUudG9TdHJpbmcoKSk7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2ssIDMwMCk7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBjaGVjaygpO1xcXFxuICAgICAgICB9KVxcXFxuICAgIH1cXFxcbn0pO1xcXFxuXFxcXG5cXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6IFxcXFxcXFwi5o+Q5Y+WXFxcXFxcXCIsXFxcXG4gICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICAgICAgcHV0TXlWYXIoXFxcXFxcXCJpXFxcXFxcXCIsIGlucHV0KTtcXFxcbiAgICAgICAgZGVsZXRlSXRlbUJ5Q2xzKFxcXFxcXFwicGljc1xcXFxcXFwiKTtcXFxcbiAgICAgICAgcmVmcmVzaFg1V2ViVmlldyhpbnB1dCk7XFxcXG4gICAgfSksXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwiaW5wdXRcXFxcXFxcIixcXFxcbiAgICBkZXNjOiBcXFxcXFxcIuivt+i+k+WFpee9kemhteWcsOWdgFxcXFxcXFwiLFxcXFxuICAgIHBpY191cmw6IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgZXh0cmE6IHtcXFxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcihcXFxcXFxcImlcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIilcXFxcbiAgICB9XFxcXG59KTtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6IFxcXFxcXFwi5pi+56S6572R6aG157uE5Lu277yaXFxcXFxcXCIgKyB4LFxcXFxuICAgIHVybDogJChcXFxcXFxcIiNub0xvYWRpbmcjXFxcXFxcXCIpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgbGV0IHggPSBnZXRJdGVtKFxcXFxcXFwieFxcXFxcXFwiLCBcXFxcXFxcIuWQplxcXFxcXFwiKTtcXFxcbiAgICAgICAgbGV0IG5leHQgPSB4ID09IFxcXFxcXFwi5ZCmXFxcXFxcXCIgPyBcXFxcXFxcIuaYr1xcXFxcXFwiIDogXFxcXFxcXCLlkKZcXFxcXFxcIjtcXFxcbiAgICAgICAgc2V0SXRlbShcXFxcXFxcInhcXFxcXFxcIiwgbmV4dCk7XFxcXG4gICAgICAgIGxldCBkZXNjID0geCA9PSBcXFxcXFxcIuWQplxcXFxcXFwiID8gXFxcXFxcXCJmbG9hdCYmMzAwXFxcXFxcXCIgOiBcXFxcXFxcImZsb2F0JiYxXFxcXFxcXCI7XFxcXG4gICAgICAgIHVwZGF0ZUl0ZW0oXFxcXFxcXCJwaWNfdGlwXFxcXFxcXCIsIHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuaYvuekuue9kemhtee7hOS7tu+8mlxcXFxcXFwiICsgbmV4dFxcXFxuICAgICAgICB9KTtcXFxcbiAgICAgICAgcmVmcmVzaFg1RGVzYyhkZXNjKTtcXFxcbiAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgfSksXFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF8xXFxcXFxcXCIsXFxcXG4gICAgZGVzYzogXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICBwaWNfdXJsOiBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgIGV4dHJhOiB7XFxcXG4gICAgICAgIGlkOiBcXFxcXFxcInBpY190aXBcXFxcXFxcIlxcXFxuICAgIH1cXFxcbn0pO1xcXFxuXFxcXG5kLnB1c2goe1xcXFxuICAgIGNvbF90eXBlOiBcXFxcXFxcImxpbmVfYmxhbmtcXFxcXFxcIixcXFxcbiAgICBleHRyYToge1xcXFxuICAgICAgICBpZDogXFxcXFxcXCJwaWNfbGluZVxcXFxcXFwiXFxcXG4gICAgfVxcXFxufSk7XFxcXG5cXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwidGV4dF8xXFxcIixcXFwibmFtZVxcXCI6XFxcImVwdWJcXFwiLFxcXCJwYXRoXFxcIjpcXFwiZXB1YlxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbnZhciBkID0gW107XFxcXG5sZXQgcGF0aCA9IGJhc2U2NERlY29kZShnZXRQYXJhbShcXFxcXFxcInBcXFxcXFxcIikpO1xcXFxubG9nKHBhdGgpO1xcXFxubGV0IG1ldGEgPSBnZXRFcHViTWV0YWRhdGEocGF0aCk7XFxcXG4vL3NldFBhZ2VUaXRsZShtZXRhLmZpcnN0VGl0bGUpO1xcXFxubGV0IGNoYXB0ZXJzID0gZ2V0RXB1YkNoYXB0ZXJzKHBhdGgpO1xcXFxuLy9sb2coY2hhcHRlcnMpO1xcXFxuZm9yIChsZXQgaXQgb2YgY2hhcHRlcnMpIHtcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogaXQudGl0bGUsXFxcXG4gICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL3BhZ2UvY29udGVudCNyZWFkVGhlbWUjI2F1dG9QYWdlI1xcXFxcXFwiLFxcXFxuICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgaHJlZjogaXQudXJsLFxcXFxuICAgICAgICAgICAgcGF0aDogcGF0aFxcXFxuICAgICAgICB9XFxcXG4gICAgfSk7XFxcXG59XFxcXG5zZXRSZXN1bHQoZCk7XFxcXG5cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwicmljaF90ZXh0XFxcIixcXFwibmFtZVxcXCI6XFxcIuato+aWh1xcXCIsXFxcInBhdGhcXFwiOlxcXCJjb250ZW50XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxudmFyIGQgPSBbXTtcXFxcbmxldCBwYXRoID0gTVlfUEFSQU1TLnBhdGg7XFxcXG5sZXQgdXJsID0gTVlfUEFSQU1TLmhyZWY7XFxcXG5sZXQgYyA9IGdldEVwdWJDb250ZW50KHBhdGgsIHVybCk7XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiBjLFxcXFxuICAgIHVybDogXFxcXFxcXCJcXFxcXFxcIixcXFxcbn0pO1xcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9XVwifSIsInRpdGxlIjoi5aWH5aaZ5bel5YW3566xLea1t+mYlOinhueVjOaWsOaJi+aMh+WNlyJ9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement