You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
24 KiB
1 lines
24 KiB
{"remainingRequest":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\project\\instruction\\indexShow.vue?vue&type=script&lang=js&","dependencies":[{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\project\\instruction\\indexShow.vue","mtime":1638931538238},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IER1aWRpZUNoYXJ0IGZyb20gIi4uLy4uL2Rhc2hib2FyZC9EdWlkaWVDaGFydCI7CmltcG9ydCBQaWVDaGFydCBmcm9tICIuLi8uLi9kYXNoYm9hcmQvRGVwdFBpZUNoYXJ0IjsKaW1wb3J0IEFkdmlzZU5hbWVDaGFydCBmcm9tICIuLi8uLi9kYXNoYm9hcmQvQWR2aXNlTmFtZUNoYXJ0IjsKaW1wb3J0IHsgc3RhdGlzdGljcyB9IGZyb20gIkAvYXBpL3Byb2plY3QvaW5mbzMiOwppbXBvcnQgeyBsZWZ0RGF0YTEsIGNlbnRlcjJEYXRhLCBpbXBvcnRUZW1wbGF0ZSBhcyBfaW1wb3J0VGVtcGxhdGUsIGNlbnRlcjhEYXRhLCBsaXN0SW5zdHJ1Y3Rpb24sIGdldEluc3RydWN0aW9uLCBkZWxJbnN0cnVjdGlvbiwgYWRkSW5zdHJ1Y3Rpb24sIHVwZGF0ZUluc3RydWN0aW9uLCBleHBvcnRJbnN0cnVjdGlvbiB9IGZyb20gIkAvYXBpL3Byb2plY3QvaW5zdHJ1Y3Rpb24iOwppbXBvcnQgeyBnZXRUb2tlbiB9IGZyb20gIkAvdXRpbHMvYXV0aCI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiSW5zdHJ1Y3Rpb24iLAogIGNvbXBvbmVudHM6IHsKICAgIER1aWRpZUNoYXJ0OiBEdWlkaWVDaGFydCwKICAgIFBpZUNoYXJ0OiBQaWVDaGFydCwKICAgIEFkdmlzZU5hbWVDaGFydDogQWR2aXNlTmFtZUNoYXJ0CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgcHJvcG9zYWw6IG51bGwsCiAgICAgIGluc3RydWN0aW9uczogbnVsbCwKICAgICAgLy8g5LiK5Lyg5Y+C5pWwCiAgICAgIHVwbG9hZFByb2plY3Q6IHsKICAgICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYLvvIjnlKjmiLflr7zlhaXvvIkKICAgICAgICBvcGVuOiBmYWxzZSwKICAgICAgICAvLyDlvLnlh7rlsYLmoIfpopjvvIjnlKjmiLflr7zlhaXvvIkKICAgICAgICB0aXRsZTogIiIsCiAgICAgICAgLy8g5piv5ZCm56aB55So5LiK5LygCiAgICAgICAgaXNVcGxvYWRpbmc6IGZhbHNlLAogICAgICAgIC8vIOaYr+WQpuabtOaWsOW3sue7j+WtmOWcqOeahOeUqOaIt+aVsOaNrgogICAgICAgIHVwZGF0ZVN1cHBvcnQ6IDAsCiAgICAgICAgLy8g6K6+572u5LiK5Lyg55qE6K+35rGC5aS06YOoCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgZ2V0VG9rZW4oKQogICAgICAgIH0sCiAgICAgICAgLy8g5LiK5Lyg55qE5Zyw5Z2ACiAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgIi9zeXN0ZW0vaW5zdHJ1Y3Rpb24vaW1wb3J0RGF0YSIKICAgICAgfSwKICAgICAgLy8g5LiK5Lyg5Y+C5pWwCiAgICAgIHVwbG9hZDogewogICAgICAgIHRpdGxlOiAiIiwKICAgICAgICBvcGVuOiBmYWxzZSwKICAgICAgICAvLyDmmK/lkKbnpoHnlKjkuIrkvKAKICAgICAgICBpc1VwbG9hZGluZzogZmFsc2UsCiAgICAgICAgLy8g6K6+572u5LiK5Lyg55qE6K+35rGC5aS06YOoCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgZ2V0VG9rZW4oKQogICAgICAgIH0sCiAgICAgICAgLy8g5LiK5Lyg55qE5Zyw5Z2ACiAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgIi9wcm9qZWN0L2luZm8vY29tbW9uL3VwbG9hZCIsCiAgICAgICAgLy8g5LiK5Lyg55qE5paH5Lu25YiX6KGoCiAgICAgICAgZmlsZUxpc3Q6IFtdCiAgICAgIH0sCiAgICAgIC8vIOS4iuS8oOWPguaVsAogICAgICB1cGxvYWQyOiB7CiAgICAgICAgdGl0bGU6ICIiLAogICAgICAgIG9wZW46IGZhbHNlLAogICAgICAgIC8vIOaYr+WQpuemgeeUqOS4iuS8oAogICAgICAgIGlzVXBsb2FkaW5nOiBmYWxzZSwKICAgICAgICAvLyDorr7nva7kuIrkvKDnmoTor7fmsYLlpLTpg6gKICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICBBdXRob3JpemF0aW9uOiAiQmVhcmVyICIgKyBnZXRUb2tlbigpCiAgICAgICAgfSwKICAgICAgICAvLyDkuIrkvKDnmoTlnLDlnYAKICAgICAgICB1cmw6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyAiL3N5c3RlbS9pbmZvL2NvbW1vbi91cGxvYWQiLAogICAgICAgIC8vIOS4iuS8oOeahOaWh+S7tuWIl+ihqAogICAgICAgIGZpbGVMaXN0OiBbXQogICAgICB9LAogICAgICAvLyDpga7nvanlsYIKICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgLy8g6YCJ5Lit5pWw57uECiAgICAgIGlkczogW10sCiAgICAgIC8vIOmdnuWNleS4quemgeeUqAogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIC8vIOmdnuWkmuS4quemgeeUqAogICAgICBtdWx0aXBsZTogdHJ1ZSwKICAgICAgLy8g5pi+56S65pCc57Si5p2h5Lu2CiAgICAgIHNob3dTZWFyY2g6IHRydWUsCiAgICAgIC8vIOaAu+adoeaVsAogICAgICB0b3RhbDogMCwKICAgICAgLy8g44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CR6KGo5qC85pWw5o2uCiAgICAgIGluc3RydWN0aW9uTGlzdDogW10sCiAgICAgIC8vIOW8ueWHuuWxguagh+mimAogICAgICB0aXRsZTogIiIsCiAgICAgIC8vIOaYr+WQpuaYvuekuuW8ueWHuuWxggogICAgICBvcGVuOiBmYWxzZSwKICAgICAgbmFtZVR1T3BlbjogZmFsc2UsCiAgICAgIHVzZXJOYW1lVHVPcGVuOiBmYWxzZSwKICAgICAgeWVhck9wdGlvbnM6IFtdLAogICAgICBkZFg6IFtdLAogICAgICBkZExnOiBbXSwKICAgICAgZGRTZXI6IFtdLAogICAgICBkZXB0TGc6IFtdLAogICAgICBkZXB0RGF0YTogW10sCiAgICAgIHNlcmllc0NlbnRlcjg6IFtdLAogICAgICB4QXhpc0NlbnRlcjg6IFtdLAogICAgICBzZWNyZXRPcHRpb25zOiBbXSwKICAgICAgb3RUaXRsZTogIiIsCiAgICAgIC8vIOafpeivouWPguaVsAogICAgICBxdWVyeVBhcmFtczogewogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDEwLAogICAgICAgIHllYXI6IG51bGwsCiAgICAgICAgbnVtOiBudWxsLAogICAgICAgIHRvdGFsTnVtOiBudWxsLAogICAgICAgIHRpdGxlOiBudWxsLAogICAgICAgIHNlY3JldExldmVsOiBudWxsLAogICAgICAgIHNlY3JldFllYXI6IG51bGwsCiAgICAgICAgdXNlck5hbWU6IG51bGwsCiAgICAgICAgZGVwdElkOiBudWxsLAogICAgICAgIGRlcHROYW1lOiBudWxsLAogICAgICAgIHByaW50RGF0ZTogbnVsbAogICAgICB9LAogICAgICAvLyDooajljZXlj4LmlbAKICAgICAgZm9ybToge30sCiAgICAgIC8vIOihqOWNleagoemqjAogICAgICBydWxlczoge30KICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKCiAgICBpZiAodGhpcy4kcm91dGUucXVlcnkueWVhclJhZGlvMikgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnllYXIgPSB0aGlzLiRyb3V0ZS5xdWVyeS55ZWFyUmFkaW8yOwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnN0YXR1cyA9ICIxIjsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMueWVhciA9ICIwIjsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5zdGF0dXMgPSAiMCI7CiAgICB9CgogICAgaWYgKHRoaXMuJHJvdXRlLnF1ZXJ5LnVzZXJOYW1lKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMudXNlck5hbWUgPSB0aGlzLiRyb3V0ZS5xdWVyeS51c2VyTmFtZTsKICAgIH0KCiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CiAgICB2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsKICAgIGNvbnNvbGUubG9nKHllYXIsIHllYXIgLSAxLCB5ZWFyIC0gMik7CiAgICB0aGlzLnllYXJPcHRpb25zWzBdID0geWVhcjsKICAgIHRoaXMueWVhck9wdGlvbnNbMV0gPSB5ZWFyIC0gMTsKICAgIHRoaXMueWVhck9wdGlvbnNbMl0gPSB5ZWFyIC0gMjsKICAgIHRoaXMueWVhck9wdGlvbnNbM10gPSB5ZWFyIC0gMzsKICAgIHRoaXMueWVhck9wdGlvbnNbNF0gPSB5ZWFyIC0gNDsKICAgIHRoaXMueWVhck9wdGlvbnNbNV0gPSB5ZWFyIC0gNTsKICAgIHRoaXMucXVlcnlQYXJhbXMuZGVwdElkID0gIjAiOwogICAgdGhpcy5xdWVyeVBhcmFtcy5zZWNyZXRMZXZlbCA9ICIwIjsgLy8KICAgIC8vIHRoaXMuZ2V0TGVmdDEoKTsKICAgIC8vIHRoaXMuZ2V0Q2VudGVyMih0aGlzLnF1ZXJ5UGFyYW1zKTsKICAgIC8vIHRoaXMuZ2V0Q2VudGVyOCh0aGlzLnF1ZXJ5UGFyYW1zKTsKCiAgICB0aGlzLmdldExpc3QoKTsKICAgIHRoaXMuZ2V0RGljdHMoInByb19zZWNyZXRfbGV2ZWwiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy5zZWNyZXRPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogIH0sCiAgbWV0aG9kczogewogICAgZ2V0U3RhdGlzdGljczogZnVuY3Rpb24gZ2V0U3RhdGlzdGljcyhxdWVyeVBhcmFtcykgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKCiAgICAgIHN0YXRpc3RpY3MocXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHsKICAgICAgICBfdGhpczIucHJvcG9zYWwgPSByZXNwLmRhdGEucHJvcG9zYWw7CiAgICAgICAgX3RoaXMyLmluc3RydWN0aW9ucyA9IHJlc3AuZGF0YS5pbnN0cnVjdGlvbnM7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZVF1ZXJ5QnV0dG9uOiBmdW5jdGlvbiBoYW5kbGVRdWVyeUJ1dHRvbigpIHsKICAgICAgdGhpcy51c2VyTmFtZVR1T3BlbiA9IHRydWU7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0Q2VudGVyOCh0aGlzLnF1ZXJ5UGFyYW1zKTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgaGFuZGxlTmFtZVF1ZXJ5OiBmdW5jdGlvbiBoYW5kbGVOYW1lUXVlcnkoKSB7CiAgICAgIHRoaXMubmFtZVR1T3BlbiA9IHRydWU7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICB0aGlzLmdldExlZnQxKCk7CiAgICAgIHRoaXMuZ2V0Q2VudGVyMih0aGlzLnF1ZXJ5UGFyYW1zKTsKICAgIH0sCgogICAgLyoqIOWvvOWFpeaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlSW1wb3J0OiBmdW5jdGlvbiBoYW5kbGVJbXBvcnQoKSB7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC50aXRsZSA9ICLpobnnm67lr7zlhaUiOwogICAgICB0aGlzLnVwbG9hZFByb2plY3Qub3BlbiA9IHRydWU7CiAgICB9LAogICAgLy8g5paH5Lu25LiK5Lyg5Lit5aSE55CGCiAgICBoYW5kbGVQcm9qZWN0RmlsZVVwbG9hZFByb2dyZXNzOiBmdW5jdGlvbiBoYW5kbGVQcm9qZWN0RmlsZVVwbG9hZFByb2dyZXNzKGV2ZW50LCBmaWxlLCBmaWxlTGlzdCkgewogICAgICB0aGlzLnVwbG9hZFByb2plY3QuaXNVcGxvYWRpbmcgPSB0cnVlOwogICAgfSwKICAgIGJlZm9yZVByb2plY3RGaWxlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVQcm9qZWN0RmlsZVVwbG9hZChmaWxlKSB7CiAgICAgIHZhciBpc0x0MjAwTSA9IGZpbGUuc2l6ZSAvIDEwMjQgLyAxMDI0IDwgMzAwOwoKICAgICAgaWYgKCFpc0x0MjAwTSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+S4iuS8oOWkp+Wwj+S4jeiDvei2hei/hyAyMDBNQiEnKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGlzTHQyMDBNOwogICAgfSwKICAgIC8vIOaWh+S7tuS4iuS8oOaIkOWKn+WkhOeQhgogICAgaGFuZGxlUHJvamVjdEZpbGVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVQcm9qZWN0RmlsZVN1Y2Nlc3MocmVzcG9uc2UsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5pc1VwbG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRyZWZzLnVwbG9hZFByb2plY3QuY2xlYXJGaWxlcygpOwogICAgICB0aGlzLiRhbGVydChyZXNwb25zZS5tc2csICLlr7zlhaXnu5PmnpwiLCB7CiAgICAgICAgZGFuZ2Vyb3VzbHlVc2VIVE1MU3RyaW5nOiB0cnVlCiAgICAgIH0pOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDmj5DkuqTkuIrkvKDmlofku7YKICAgIHN1Ym1pdEZpbGVGb3JtOiBmdW5jdGlvbiBzdWJtaXRGaWxlRm9ybSgpIHsKICAgICAgdGhpcy4kcmVmcy51cGxvYWRQcm9qZWN0LnN1Ym1pdCgpOwogICAgfSwKICAgIGltcG9ydFRlbXBsYXRlOiBmdW5jdGlvbiBpbXBvcnRUZW1wbGF0ZSgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CgogICAgICBfaW1wb3J0VGVtcGxhdGUoKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMy5kb3dubG9hZChyZXNwb25zZS5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICBzZWNyZXRGb3JtYXQ6IGZ1bmN0aW9uIHNlY3JldEZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zZWNyZXRPcHRpb25zLCByb3cuc2VjcmV0TGV2ZWwpOwogICAgfSwKICAgIGdldExlZnQxOiBmdW5jdGlvbiBnZXRMZWZ0MSgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CgogICAgICBsZWZ0RGF0YTEoKS50aGVuKGZ1bmN0aW9uIChyc3ApIHsKICAgICAgICBfdGhpczQuZGRYID0gcnNwLmRhdGEueWVhckFycmF5OwogICAgICAgIF90aGlzNC5kZExnID0gWyfmnInmibnnpLonLCAn5peg5om556S6J107CiAgICAgICAgdmFyIHRlbXAgPSBbXTsKICAgICAgICB2YXIgaXRlbSA9IHt9OwogICAgICAgIGl0ZW0ubmFtZSA9ICfmnInmibnnpLonOwogICAgICAgIGl0ZW0udHlwZSA9ICdiYXInOwogICAgICAgIGl0ZW0uc3RhY2sgPSAnb25lJzsKICAgICAgICBpdGVtLmRhdGEgPSByc3AuZGF0YS55b3VBcnJheTsKICAgICAgICB0ZW1wLnB1c2goaXRlbSk7CiAgICAgICAgdmFyIGl0ZW0yID0ge307CiAgICAgICAgaXRlbTIubmFtZSA9ICfml6DmibnnpLonOwogICAgICAgIGl0ZW0yLnR5cGUgPSAnYmFyJzsKICAgICAgICBpdGVtMi5zdGFjayA9ICdvbmUnOwogICAgICAgIGl0ZW0yLmRhdGEgPSByc3AuZGF0YS53dUFycmF5OwogICAgICAgIHRlbXAucHVzaChpdGVtMik7CiAgICAgICAgX3RoaXM0LmRkU2VyID0gdGVtcDsKICAgICAgfSk7CiAgICB9LAogICAgZ2V0Q2VudGVyMjogZnVuY3Rpb24gZ2V0Q2VudGVyMihxdWVyeVBhcmFtKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwoKICAgICAgY2VudGVyMkRhdGEocXVlcnlQYXJhbSkudGhlbihmdW5jdGlvbiAocmVzcCkgewogICAgICAgIGlmICghcXVlcnlQYXJhbS55ZWFyIHx8IHF1ZXJ5UGFyYW0ueWVhciA9PSAnMCcpIHsKICAgICAgICAgIF90aGlzNS5vdFRpdGxlID0gJyc7CiAgICAgICAgfSBlbHNlIGlmIChxdWVyeVBhcmFtLnllYXIgPT0gJzIwMTUnKSB7CiAgICAgICAgICBfdGhpczUub3RUaXRsZSA9ICIyMDE25bm05Lul5YmNIjsKICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW0ueWVhciA9PSAnOTk5JykgewogICAgICAgICAgX3RoaXM1Lm90VGl0bGUgPSAiMjAxNi3ku4oiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczUub3RUaXRsZSA9IHF1ZXJ5UGFyYW0ueWVhciArICLlubQiOwogICAgICAgIH0KCiAgICAgICAgX3RoaXM1LmRlcHRMZyA9IHJlc3AuZGF0YS5sZ0RhdGE7CiAgICAgICAgX3RoaXM1LmRlcHREYXRhID0gcmVzcC5kYXRhLnBpZURhdGE7CiAgICAgIH0pOwogICAgfSwKICAgIGdldENlbnRlcjg6IGZ1bmN0aW9uIGdldENlbnRlcjgocXVlcnlQYXJhbXMpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CgogICAgICBjZW50ZXI4RGF0YShxdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcCkgewogICAgICAgIGlmICghcXVlcnlQYXJhbXMueWVhciB8fCBxdWVyeVBhcmFtcy55ZWFyID09ICcwJykgewogICAgICAgICAgX3RoaXM2Lm90VGl0bGUgPSAnJzsKICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLnllYXIgPT0gJzIwMTUnKSB7CiAgICAgICAgICBfdGhpczYub3RUaXRsZSA9ICIyMDE25bm05Lul5YmNIjsKICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLnllYXIgPT0gJzk5OScpIHsKICAgICAgICAgIF90aGlzNi5vdFRpdGxlID0gIjIwMTYt5LuKIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM2Lm90VGl0bGUgPSBxdWVyeVBhcmFtcy55ZWFyICsgIuW5tCI7CiAgICAgICAgfQoKICAgICAgICBfdGhpczYuc2VyaWVzQ2VudGVyOCA9IHJlc3AuZGF0YS54QXhpc0FycmF5OwogICAgICAgIF90aGlzNi54QXhpc0NlbnRlcjggPSByZXNwLmRhdGEueUF4aXNBcnJheTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8qKiDmn6Xor6LjgJDor7floavlhpnlip/og73lkI3np7DjgJHliJfooaggKi8KICAgIGdldExpc3Q6IGZ1bmN0aW9uIGdldExpc3QoKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwoKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgbGlzdEluc3RydWN0aW9uKHRoaXMucXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM3Lmluc3RydWN0aW9uTGlzdCA9IHJlc3BvbnNlLnJvd3M7CiAgICAgICAgX3RoaXM3LnRvdGFsID0gcmVzcG9uc2UudG90YWw7CiAgICAgICAgX3RoaXM3LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICAgIHRoaXMuZ2V0U3RhdGlzdGljcyh0aGlzLnF1ZXJ5UGFyYW1zKTsKICAgIH0sCiAgICAvLyDlj5bmtojmjInpkq4KICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkgewogICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgdGhpcy5yZXNldCgpOwogICAgfSwKICAgIC8vIOihqOWNlemHjee9rgogICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KCkgewogICAgICB0aGlzLmZvcm0gPSB7CiAgICAgICAgaWQ6IG51bGwsCiAgICAgICAgeWVhcjogbnVsbCwKICAgICAgICBudW06IG51bGwsCiAgICAgICAgdG90YWxOdW06IG51bGwsCiAgICAgICAgdGl0bGU6IG51bGwsCiAgICAgICAgc2VjcmV0TGV2ZWw6IG51bGwsCiAgICAgICAgc2VjcmV0WWVhcjogbnVsbCwKICAgICAgICB1c2VyTmFtZTogbnVsbCwKICAgICAgICBkZXB0SWQ6IG51bGwsCiAgICAgICAgZGVwdE5hbWU6IG51bGwsCiAgICAgICAgcHJpbnREYXRlOiBudWxsLAogICAgICAgIHJlbWFyazogbnVsbCwKICAgICAgICBjcmVhdGVCeTogbnVsbCwKICAgICAgICBjcmVhdGVUaW1lOiBudWxsLAogICAgICAgIHVwZGF0ZUJ5OiBudWxsLAogICAgICAgIHVwZGF0ZVRpbWU6IG51bGwsCiAgICAgICAgZGVsRmxhZzogbnVsbCwKICAgICAgICBhZHZpc2VGaWxlUGF0aDogbnVsbCwKICAgICAgICBhZHZpc2VGaWxlOiBudWxsLAogICAgICAgIHN0YXR1czogbnVsbAogICAgICB9OwogICAgICB0aGlzLnVwbG9hZDIuZmlsZUxpc3QgPSBbXTsKICAgICAgdGhpcy5yZXNldEZvcm0oImZvcm0iKTsKICAgIH0sCgogICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlUXVlcnk6IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5KCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSAxOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgICAgdGhpcy5nZXRMZWZ0MSgpOwogICAgICB0aGlzLmdldENlbnRlcjIodGhpcy5xdWVyeVBhcmFtcyk7CiAgICAgIHRoaXMuZ2V0Q2VudGVyOCh0aGlzLnF1ZXJ5UGFyYW1zKTsKICAgIH0sCgogICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqLwogICAgcmVzZXRRdWVyeTogZnVuY3Rpb24gcmVzZXRRdWVyeSgpIHsKICAgICAgdGhpcy5yZXNldEZvcm0oInF1ZXJ5Rm9ybSIpOwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnN0YXR1cyA9ICIwIjsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZXB0SWQgPSAiMCI7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMuc2VjcmV0TGV2ZWwgPSAiMCI7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMueWVhciA9ICIwIjsKICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpOwogICAgfSwKICAgIC8vIOWkmumAieahhumAieS4reaVsOaNrgogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uKSB7CiAgICAgIHRoaXMuaWRzID0gc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICB9KTsKICAgICAgdGhpcy5zaW5nbGUgPSBzZWxlY3Rpb24ubGVuZ3RoICE9PSAxOwogICAgICB0aGlzLm11bHRpcGxlID0gIXNlbGVjdGlvbi5sZW5ndGg7CiAgICB9LAoKICAgIC8qKiDmlrDlop7mjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUFkZDogZnVuY3Rpb24gaGFuZGxlQWRkKCkgewogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgIHRoaXMudGl0bGUgPSAi5re75Yqg6Zmi5aOr5bu66K6uIjsKICAgIH0sCgogICAgLyoqIOS/ruaUueaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlVXBkYXRlOiBmdW5jdGlvbiBoYW5kbGVVcGRhdGUocm93KSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwoKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB2YXIgaWQgPSByb3cuaWQgfHwgdGhpcy5pZHM7CiAgICAgIGdldEluc3RydWN0aW9uKGlkKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzOC5mb3JtID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICBfdGhpczgub3BlbiA9IHRydWU7CiAgICAgICAgX3RoaXM4LnRpdGxlID0gIuS/ruaUuemZouWjq+W7uuiuriI7CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5o+Q5Lqk5oyJ6ZKuICovCiAgICBzdWJtaXRGb3JtOiBmdW5jdGlvbiBzdWJtaXRGb3JtKCkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKCiAgICAgIHRoaXMuJHJlZnNbImZvcm0iXS52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIGlmIChfdGhpczkuZm9ybS5pZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHVwZGF0ZUluc3RydWN0aW9uKF90aGlzOS5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAyMDApIHsKICAgICAgICAgICAgICAgIF90aGlzOS5tc2dTdWNjZXNzKCLkv67mlLnmiJDlip8iKTsKCiAgICAgICAgICAgICAgICBfdGhpczkub3BlbiA9IGZhbHNlOwoKICAgICAgICAgICAgICAgIF90aGlzOS5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGFkZEluc3RydWN0aW9uKF90aGlzOS5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAyMDApIHsKICAgICAgICAgICAgICAgIF90aGlzOS5tc2dTdWNjZXNzKCLmlrDlop7miJDlip8iKTsKCiAgICAgICAgICAgICAgICBfdGhpczkub3BlbiA9IGZhbHNlOwoKICAgICAgICAgICAgICAgIF90aGlzOS5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5Yig6Zmk5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzMTAgPSB0aGlzOwoKICAgICAgdmFyIGlkcyA9IHJvdy5pZCB8fCB0aGlzLmlkczsKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5Yig6Zmk44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CR57yW5Y+35Li6IicgKyBpZHMgKyAnIueahOaVsOaNrumhuT8nLCAi6K2m5ZGKIiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIGRlbEluc3RydWN0aW9uKGlkcyk7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMTAuZ2V0TGlzdCgpOwoKICAgICAgICBfdGhpczEwLm1zZ1N1Y2Nlc3MoIuWIoOmZpOaIkOWKnyIpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAoKICAgIC8qKiDlr7zlh7rmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUV4cG9ydDogZnVuY3Rpb24gaGFuZGxlRXhwb3J0KCkgewogICAgICB2YXIgX3RoaXMxMSA9IHRoaXM7CgogICAgICB2YXIgcXVlcnlQYXJhbXMgPSB0aGlzLnF1ZXJ5UGFyYW1zOwogICAgICB0aGlzLiRjb25maXJtKCfmmK/lkKbnoa7orqTlr7zlh7rmiYDmnInjgJDor7floavlhpnlip/og73lkI3np7DjgJHmlbDmja7pobk/JywgIuitpuWRiiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBleHBvcnRJbnN0cnVjdGlvbihxdWVyeVBhcmFtcyk7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMxMS5kb3dubG9hZChyZXNwb25zZS5tc2cpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgdmlld0FubmV4QWR2aXNlRmlsZUZpbGU6IGZ1bmN0aW9uIHZpZXdBbm5leEFkdmlzZUZpbGVGaWxlKHJvdykgewogICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdCA9IFtdOwogICAgICB0aGlzLmZvcm1hdFVwbG9hZEFubmV4KHJvdy5hZHZpc2VGaWxlLCByb3cuYWR2aXNlRmlsZVBhdGgpOwogICAgICB0aGlzLnVwbG9hZC5vcGVuID0gdHJ1ZTsKICAgIH0sCiAgICAvL+agvOW8j+WMluS4iuS8oOmZhOS7tgogICAgZm9ybWF0VXBsb2FkQW5uZXg6IGZ1bmN0aW9uIGZvcm1hdFVwbG9hZEFubmV4KGFubmV4TmFtZSwgYW5uZXhQYXRoKSB7CiAgICAgIHRoaXMudXBsb2FkLmZpbGVMaXN0ID0gW107CgogICAgICBpZiAoYW5uZXhQYXRoICE9IG51bGwgJiYgYW5uZXhQYXRoICE9PSAnJykgewogICAgICAgIHZhciBhID0gW10sCiAgICAgICAgICAgIGIgPSBbXTsKCiAgICAgICAgdHJ5IHsKICAgICAgICAgIGEgPSBKU09OLnBhcnNlKGFubmV4TmFtZSk7CiAgICAgICAgICBiID0gSlNPTi5wYXJzZShhbm5leFBhdGgpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGEgPSBbXTsKICAgICAgICAgIGIgPSBbXTsKICAgICAgICB9CgogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykgewogICAgICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QucHVzaCh7CiAgICAgICAgICAgICduYW1lJzogYVtpXSwKICAgICAgICAgICAgJ3VybCc6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyBiW2ldCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgICAgfQogICAgfSwKICAgIGhhbmRsZVByZXZpZXc6IGZ1bmN0aW9uIGhhbmRsZVByZXZpZXcoZmlsZSkgewogICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgdmFyIGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJyk7CiAgICAgIGEuZG93bmxvYWQgPSBmaWxlLm5hbWU7CiAgICAgIGEudGFyZ2V0ID0gJ19ibGFuayc7CiAgICAgIGEuaHJlZiA9IGZpbGUudXJsOwogICAgICBhLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAgICBjb25zb2xlLmxvZyhmaWxlLm5hbWUpOwogICAgfSwKICAgIGZvcm1hdFVwbG9hZEFubmV4MjogZnVuY3Rpb24gZm9ybWF0VXBsb2FkQW5uZXgyKGFubmV4TmFtZSwgYW5uZXhQYXRoKSB7CiAgICAgIHRoaXMudXBsb2FkMi5maWxlTGlzdCA9IFtdOwoKICAgICAgaWYgKGFubmV4UGF0aCAhPSBudWxsICYmIGFubmV4UGF0aCAhPSAnJykgewogICAgICAgIHZhciBhID0gSlNPTi5wYXJzZShhbm5leE5hbWUpOwogICAgICAgIHZhciBiID0gSlNPTi5wYXJzZShhbm5leFBhdGgpOwoKICAgICAgICBpZiAoYSA9PSBudWxsKSB7CiAgICAgICAgICBhID0gW107CiAgICAgICAgICBiID0gW107CiAgICAgICAgfQoKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHRoaXMudXBsb2FkMi5maWxlTGlzdC5wdXNoKHsKICAgICAgICAgICAgJ25hbWUnOiBhW2ldLAogICAgICAgICAgICAndXJsJzogcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArIGJbaV0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnVwbG9hZDIuZmlsZUxpc3QgPSBbXTsKICAgICAgfQogICAgfSwKICAgIC8v5p+l55yL5oiQ5p6cCiAgICB2aWV3QW5uZXgyOiBmdW5jdGlvbiB2aWV3QW5uZXgyKHJvdykgewogICAgICB0aGlzLnVwbG9hZDIuZmlsZUxpc3QgPSBbXTsKICAgICAgdGhpcy5mb3JtYXRVcGxvYWRBbm5leDIocm93LmFkdmlzZUZpbGUsIHJvdy5hZHZpc2VGaWxlUGF0aCk7CiAgICAgIHRoaXMudXBsb2FkMi5vcGVuID0gdHJ1ZTsKICAgIH0sCiAgICBoYW5kbGVQcmV2aWV3MjogZnVuY3Rpb24gaGFuZGxlUHJldmlldzIoZmlsZSkgewogICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgdmFyIGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJyk7CiAgICAgIGEuZG93bmxvYWQgPSBmaWxlLm5hbWU7CiAgICAgIGEudGFyZ2V0ID0gJ19ibGFuayc7CiAgICAgIGEuaHJlZiA9IGZpbGUudXJsOwogICAgICBhLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAgICBjb25zb2xlLmxvZyhmaWxlLm5hbWUpOwogICAgfSwKICAgIGhhbmRsZV9yZW1vdmUyOiBmdW5jdGlvbiBoYW5kbGVfcmVtb3ZlMihmaWxlLCBmaWxlTGlzdCwgdHlwZSkgewogICAgICB2YXIgX3RtcCA9IHRoaXMudXBsb2FkMi5maWxlTGlzdDsKCiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBfdG1wLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgaWYgKF90bXBbaV0ubmFtZSA9IGZpbGUubmFtZSkgewogICAgICAgICAgX3RtcC5zcGxpY2UoaSwgMSk7CgogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CgogICAgICB0aGlzLnVwbG9hZDIuZmlsZUxpc3QgPSBfdG1wOwogICAgICB2YXIgYSA9IFtdOwogICAgICB2YXIgYiA9IFtdOwogICAgICB0aGlzLnVwbG9hZDIuZmlsZUxpc3QuZm9yRWFjaChmdW5jdGlvbiAocykgewogICAgICAgIHZhciB1cmwgPSBzWyd1cmwnXTsKICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJLCAnJyk7CiAgICAgICAgYS5wdXNoKHNbJ25hbWUnXSk7CiAgICAgICAgYi5wdXNoKHVybCk7CiAgICAgIH0pOwogICAgICB0aGlzLmZvcm0uYWR2aXNlRmlsZSA9IEpTT04uc3RyaW5naWZ5KGEpOwogICAgICB0aGlzLmZvcm0uYWR2aXNlRmlsZVBhdGggPSBKU09OLnN0cmluZ2lmeShiKTsKICAgIH0sCiAgICBoYW5kbGVGaWxlVXBsb2FkUHJvZ3Jlc3MyOiBmdW5jdGlvbiBoYW5kbGVGaWxlVXBsb2FkUHJvZ3Jlc3MyKGV2ZW50LCBmaWxlLCBmaWxlTGlzdCkgewogICAgICB0aGlzLnVwbG9hZDIuaXNVcGxvYWRpbmcgPSB0cnVlOwogICAgfSwKICAgIGhhbmRsZUZpbGVTdWNjZXNzMjogZnVuY3Rpb24gaGFuZGxlRmlsZVN1Y2Nlc3MyKHJlc3BvbnNlLCBmaWxlLCBmaWxlTGlzdCkgewogICAgICB0aGlzLnVwbG9hZDIuaXNVcGxvYWRpbmcgPSBmYWxzZTsKICAgICAgdmFyIGEgPSBKU09OLnBhcnNlKHRoaXMuZm9ybS5hZHZpc2VGaWxlKTsKICAgICAgdmFyIGIgPSBKU09OLnBhcnNlKHRoaXMuZm9ybS5hZHZpc2VGaWxlUGF0aCk7CgogICAgICBpZiAoYSA9PSBudWxsKSB7CiAgICAgICAgYSA9IFtdOwogICAgICAgIGIgPSBbXTsKICAgICAgfQoKICAgICAgYS5wdXNoKHJlc3BvbnNlLmZpbGVOYW1lKTsKICAgICAgYi5wdXNoKHJlc3BvbnNlLnVybCk7CiAgICAgIGNvbnNvbGUubG9nKGEsICctLS0tLS0tLScpOwogICAgICB0aGlzLmZvcm0uYWR2aXNlRmlsZSA9IEpTT04uc3RyaW5naWZ5KGEpOwogICAgICB0aGlzLmZvcm0uYWR2aXNlRmlsZVBhdGggPSBKU09OLnN0cmluZ2lmeShiKTsKICAgICAgY29uc29sZS5sb2codGhpcy5mb3JtLmFkdmlzZUZpbGVQYXRoKTsgLy8gIHRoaXMuZm9ybS5hbm5leE5hbWUgPSByZXNwb25zZS5maWxlTmFtZTsKICAgICAgLy8gIHRoaXMuZm9ybS5hbm5leFBhdGggPSByZXNwb25zZS51cmw7CgogICAgICB0aGlzLm1zZ1N1Y2Nlc3MocmVzcG9uc2UubXNnKTsKICAgIH0KICB9Cn07"},null]} |