project
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
25 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":1642058110822},{"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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IER1aWRpZUNoYXJ0IGZyb20gIi4uLy4uL2Rhc2hib2FyZC9EdWlkaWVDaGFydCI7CmltcG9ydCBQaWVDaGFydCBmcm9tICIuLi8uLi9kYXNoYm9hcmQvRGVwdFBpZUNoYXJ0IjsKaW1wb3J0IEFkdmlzZU5hbWVDaGFydCBmcm9tICIuLi8uLi9kYXNoYm9hcmQvQWR2aXNlTmFtZUNoYXJ0IjsKaW1wb3J0IHsgc3RhdGlzdGljcyB9IGZyb20gIkAvYXBpL3Byb2plY3QvaW5mbzMiOwppbXBvcnQgeyBsZWZ0RGF0YTEsIGNlbnRlcjJEYXRhLCBpbXBvcnRUZW1wbGF0ZSBhcyBfaW1wb3J0VGVtcGxhdGUsIGNlbnRlcjhEYXRhLCBsaXN0SW5zdHJ1Y3Rpb24sIGdldEluc3RydWN0aW9uLCBkZWxJbnN0cnVjdGlvbiwgYWRkSW5zdHJ1Y3Rpb24sIHVwZGF0ZUluc3RydWN0aW9uLCBleHBvcnRJbnN0cnVjdGlvbiB9IGZyb20gIkAvYXBpL3Byb2plY3QvaW5zdHJ1Y3Rpb24iOwppbXBvcnQgeyBnZXRUb2tlbiB9IGZyb20gIkAvdXRpbHMvYXV0aCI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiSW5zdHJ1Y3Rpb24iLAogIGNvbXBvbmVudHM6IHsKICAgIER1aWRpZUNoYXJ0OiBEdWlkaWVDaGFydCwKICAgIFBpZUNoYXJ0OiBQaWVDaGFydCwKICAgIEFkdmlzZU5hbWVDaGFydDogQWR2aXNlTmFtZUNoYXJ0CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgcHJvcG9zYWw6IG51bGwsCiAgICAgIGluc3RydWN0aW9uczogbnVsbCwKICAgICAgLy8g5LiK5Lyg5Y+C5pWwCiAgICAgIHVwbG9hZFByb2plY3Q6IHsKICAgICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYLvvIjnlKjmiLflr7zlhaXvvIkKICAgICAgICBvcGVuOiBmYWxzZSwKICAgICAgICAvLyDlvLnlh7rlsYLmoIfpopjvvIjnlKjmiLflr7zlhaXvvIkKICAgICAgICB0aXRsZTogIiIsCiAgICAgICAgLy8g5piv5ZCm56aB55So5LiK5LygCiAgICAgICAgaXNVcGxvYWRpbmc6IGZhbHNlLAogICAgICAgIC8vIOaYr+WQpuabtOaWsOW3sue7j+WtmOWcqOeahOeUqOaIt+aVsOaNrgogICAgICAgIHVwZGF0ZVN1cHBvcnQ6IDAsCiAgICAgICAgLy8g6K6+572u5LiK5Lyg55qE6K+35rGC5aS06YOoCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgZ2V0VG9rZW4oKQogICAgICAgIH0sCiAgICAgICAgLy8g5LiK5Lyg55qE5Zyw5Z2ACiAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgIi9zeXN0ZW0vaW5zdHJ1Y3Rpb24vaW1wb3J0RGF0YSIKICAgICAgfSwKICAgICAgLy8g5LiK5Lyg5Y+C5pWwCiAgICAgIHVwbG9hZDogewogICAgICAgIHRpdGxlOiAiIiwKICAgICAgICBvcGVuOiBmYWxzZSwKICAgICAgICAvLyDmmK/lkKbnpoHnlKjkuIrkvKAKICAgICAgICBpc1VwbG9hZGluZzogZmFsc2UsCiAgICAgICAgLy8g6K6+572u5LiK5Lyg55qE6K+35rGC5aS06YOoCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgZ2V0VG9rZW4oKQogICAgICAgIH0sCiAgICAgICAgLy8g5LiK5Lyg55qE5Zyw5Z2ACiAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgIi9wcm9qZWN0L2luZm8vY29tbW9uL3VwbG9hZCIsCiAgICAgICAgLy8g5LiK5Lyg55qE5paH5Lu25YiX6KGoCiAgICAgICAgZmlsZUxpc3Q6IFtdCiAgICAgIH0sCiAgICAgIC8vIOS4iuS8oOWPguaVsAogICAgICB1cGxvYWQyOiB7CiAgICAgICAgdGl0bGU6ICIiLAogICAgICAgIG9wZW46IGZhbHNlLAogICAgICAgIC8vIOaYr+WQpuemgeeUqOS4iuS8oAogICAgICAgIGlzVXBsb2FkaW5nOiBmYWxzZSwKICAgICAgICAvLyDorr7nva7kuIrkvKDnmoTor7fmsYLlpLTpg6gKICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICBBdXRob3JpemF0aW9uOiAiQmVhcmVyICIgKyBnZXRUb2tlbigpCiAgICAgICAgfSwKICAgICAgICAvLyDkuIrkvKDnmoTlnLDlnYAKICAgICAgICB1cmw6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyAiL3N5c3RlbS9pbmZvL2NvbW1vbi91cGxvYWQiLAogICAgICAgIC8vIOS4iuS8oOeahOaWh+S7tuWIl+ihqAogICAgICAgIGZpbGVMaXN0OiBbXQogICAgICB9LAogICAgICAvLyDpga7nvanlsYIKICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgLy8g6YCJ5Lit5pWw57uECiAgICAgIGlkczogW10sCiAgICAgIC8vIOmdnuWNleS4quemgeeUqAogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIC8vIOmdnuWkmuS4quemgeeUqAogICAgICBtdWx0aXBsZTogdHJ1ZSwKICAgICAgLy8g5pi+56S65pCc57Si5p2h5Lu2CiAgICAgIHNob3dTZWFyY2g6IHRydWUsCiAgICAgIC8vIOaAu+adoeaVsAogICAgICB0b3RhbDogMCwKICAgICAgLy8g44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CR6KGo5qC85pWw5o2uCiAgICAgIGluc3RydWN0aW9uTGlzdDogW10sCiAgICAgIC8vIOW8ueWHuuWxguagh+mimAogICAgICB0aXRsZTogIiIsCiAgICAgIC8vIOaYr+WQpuaYvuekuuW8ueWHuuWxggogICAgICBvcGVuOiBmYWxzZSwKICAgICAgbmFtZVR1T3BlbjogZmFsc2UsCiAgICAgIHVzZXJOYW1lVHVPcGVuOiBmYWxzZSwKICAgICAgeWVhck9wdGlvbnM6IFtdLAogICAgICBkZFg6IFtdLAogICAgICBkZExnOiBbXSwKICAgICAgZGRTZXI6IFtdLAogICAgICBkZXB0TGc6IFtdLAogICAgICBkZXB0RGF0YTogW10sCiAgICAgIHNlcmllc0NlbnRlcjg6IFtdLAogICAgICB4QXhpc0NlbnRlcjg6IFtdLAogICAgICBzZWNyZXRPcHRpb25zOiBbXSwKICAgICAgb3RUaXRsZTogIiIsCiAgICAgIC8vIOafpeivouWPguaVsAogICAgICBxdWVyeVBhcmFtczogewogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDEwLAogICAgICAgIHllYXI6IG51bGwsCiAgICAgICAgbnVtOiBudWxsLAogICAgICAgIHRvdGFsTnVtOiBudWxsLAogICAgICAgIHRpdGxlOiBudWxsLAogICAgICAgIHNlY3JldExldmVsOiBudWxsLAogICAgICAgIHNlY3JldFllYXI6IG51bGwsCiAgICAgICAgdXNlck5hbWU6IG51bGwsCiAgICAgICAgZGVwdElkOiBudWxsLAogICAgICAgIGRlcHROYW1lOiBudWxsLAogICAgICAgIHByaW50RGF0ZTogbnVsbAogICAgICB9LAogICAgICAvLyDooajljZXlj4LmlbAKICAgICAgZm9ybToge30sCiAgICAgIC8vIOihqOWNleagoemqjAogICAgICBydWxlczoge30KICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKCiAgICBpZiAodGhpcy4kcm91dGUucXVlcnkueWVhclJhZGlvMikgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnllYXIgPSB0aGlzLiRyb3V0ZS5xdWVyeS55ZWFyUmFkaW8yOwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnN0YXR1cyA9ICIxIjsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMueWVhciA9ICIwIjsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5zdGF0dXMgPSAiMCI7CiAgICB9CgogICAgaWYgKHRoaXMuJHJvdXRlLnF1ZXJ5LnVzZXJOYW1lKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMudXNlck5hbWUgPSB0aGlzLiRyb3V0ZS5xdWVyeS51c2VyTmFtZTsKICAgIH0KCiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CiAgICB2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsKICAgIHRoaXMueWVhck9wdGlvbnNbMF0gPSB5ZWFyOwogICAgdGhpcy55ZWFyT3B0aW9uc1sxXSA9IHllYXIgLSAxOwogICAgdGhpcy55ZWFyT3B0aW9uc1syXSA9IHllYXIgLSAyOwogICAgdGhpcy55ZWFyT3B0aW9uc1szXSA9IHllYXIgLSAzOwogICAgdGhpcy55ZWFyT3B0aW9uc1s0XSA9IHllYXIgLSA0OwogICAgdGhpcy55ZWFyT3B0aW9uc1s1XSA9IHllYXIgLSA1OwogICAgdGhpcy5xdWVyeVBhcmFtcy5kZXB0SWQgPSAiMCI7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLnNlY3JldExldmVsID0gIjAiOyAvLwogICAgLy8gdGhpcy5nZXRMZWZ0MSgpOwogICAgLy8gdGhpcy5nZXRDZW50ZXIyKHRoaXMucXVlcnlQYXJhbXMpOwogICAgLy8gdGhpcy5nZXRDZW50ZXI4KHRoaXMucXVlcnlQYXJhbXMpOwoKICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgdGhpcy5nZXREaWN0cygicHJvX3NlY3JldF9sZXZlbCIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnNlY3JldE9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICB0YWJsZVJvd0NsYXNzTmFtZTogZnVuY3Rpb24gdGFibGVSb3dDbGFzc05hbWUoX3JlZikgewogICAgICB2YXIgcm93ID0gX3JlZi5yb3csCiAgICAgICAgICByb3dJbmRleCA9IF9yZWYucm93SW5kZXg7CgogICAgICBpZiAoKHJvd0luZGV4ICsgMSkgJSAyID09PSAwKSB7CiAgICAgICAgcmV0dXJuICJ3YXJuaW5nLXJvdyI7IC8v57G75ZCNCiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICJzdWNjZXNzLXJvdyI7IC8v57G75ZCNCiAgICAgIH0KICAgIH0sCiAgICBnZXRTdGF0aXN0aWNzOiBmdW5jdGlvbiBnZXRTdGF0aXN0aWNzKHF1ZXJ5UGFyYW1zKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwoKICAgICAgc3RhdGlzdGljcyhxdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcCkgewogICAgICAgIF90aGlzMi5wcm9wb3NhbCA9IHJlc3AuZGF0YS5wcm9wb3NhbDsKICAgICAgICBfdGhpczIuaW5zdHJ1Y3Rpb25zID0gcmVzcC5kYXRhLmluc3RydWN0aW9uczsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlUXVlcnlCdXR0b246IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5QnV0dG9uKCkgewogICAgICB0aGlzLnVzZXJOYW1lVHVPcGVuID0gdHJ1ZTsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5nZXRDZW50ZXI4KHRoaXMucXVlcnlQYXJhbXMpOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICBoYW5kbGVOYW1lUXVlcnk6IGZ1bmN0aW9uIGhhbmRsZU5hbWVRdWVyeSgpIHsKICAgICAgdGhpcy5uYW1lVHVPcGVuID0gdHJ1ZTsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICAgIHRoaXMuZ2V0TGVmdDEoKTsKICAgICAgdGhpcy5nZXRDZW50ZXIyKHRoaXMucXVlcnlQYXJhbXMpOwogICAgfSwKCiAgICAvKiog5a+85YWl5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVJbXBvcnQ6IGZ1bmN0aW9uIGhhbmRsZUltcG9ydCgpIHsKICAgICAgdGhpcy51cGxvYWRQcm9qZWN0LnRpdGxlID0gIumhueebruWvvOWFpSI7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5vcGVuID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDmlofku7bkuIrkvKDkuK3lpITnkIYKICAgIGhhbmRsZVByb2plY3RGaWxlVXBsb2FkUHJvZ3Jlc3M6IGZ1bmN0aW9uIGhhbmRsZVByb2plY3RGaWxlVXBsb2FkUHJvZ3Jlc3MoZXZlbnQsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5pc1VwbG9hZGluZyA9IHRydWU7CiAgICB9LAogICAgYmVmb3JlUHJvamVjdEZpbGVVcGxvYWQ6IGZ1bmN0aW9uIGJlZm9yZVByb2plY3RGaWxlVXBsb2FkKGZpbGUpIHsKICAgICAgdmFyIGlzTHQyMDBNID0gZmlsZS5zaXplIC8gMTAyNCAvIDEwMjQgPCAzMDA7CgogICAgICBpZiAoIWlzTHQyMDBNKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign5LiK5Lyg5aSn5bCP5LiN6IO96LaF6L+HIDIwME1CIScpOwogICAgICB9CgogICAgICByZXR1cm4gaXNMdDIwME07CiAgICB9LAogICAgLy8g5paH5Lu25LiK5Lyg5oiQ5Yqf5aSE55CGCiAgICBoYW5kbGVQcm9qZWN0RmlsZVN1Y2Nlc3M6IGZ1bmN0aW9uIGhhbmRsZVByb2plY3RGaWxlU3VjY2VzcyhyZXNwb25zZSwgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy51cGxvYWRQcm9qZWN0Lm9wZW4gPSBmYWxzZTsKICAgICAgdGhpcy51cGxvYWRQcm9qZWN0LmlzVXBsb2FkaW5nID0gZmFsc2U7CiAgICAgIHRoaXMuJHJlZnMudXBsb2FkUHJvamVjdC5jbGVhckZpbGVzKCk7CiAgICAgIHRoaXMuJGFsZXJ0KHJlc3BvbnNlLm1zZywgIuWvvOWFpee7k+aenCIsIHsKICAgICAgICBkYW5nZXJvdXNseVVzZUhUTUxTdHJpbmc6IHRydWUKICAgICAgfSk7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIC8vIOaPkOS6pOS4iuS8oOaWh+S7tgogICAgc3VibWl0RmlsZUZvcm06IGZ1bmN0aW9uIHN1Ym1pdEZpbGVGb3JtKCkgewogICAgICB0aGlzLiRyZWZzLnVwbG9hZFByb2plY3Quc3VibWl0KCk7CiAgICB9LAogICAgaW1wb3J0VGVtcGxhdGU6IGZ1bmN0aW9uIGltcG9ydFRlbXBsYXRlKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKCiAgICAgIF9pbXBvcnRUZW1wbGF0ZSgpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMzLmRvd25sb2FkKHJlc3BvbnNlLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIHNlY3JldEZvcm1hdDogZnVuY3Rpb24gc2VjcmV0Rm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLnNlY3JldE9wdGlvbnMsIHJvdy5zZWNyZXRMZXZlbCk7CiAgICB9LAogICAgZ2V0TGVmdDE6IGZ1bmN0aW9uIGdldExlZnQxKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKCiAgICAgIGxlZnREYXRhMSgpLnRoZW4oZnVuY3Rpb24gKHJzcCkgewogICAgICAgIF90aGlzNC5kZFggPSByc3AuZGF0YS55ZWFyQXJyYXk7CiAgICAgICAgX3RoaXM0LmRkTGcgPSBbJ+acieaJueekuicsICfml6DmibnnpLonXTsKICAgICAgICB2YXIgdGVtcCA9IFtdOwogICAgICAgIHZhciBpdGVtID0ge307CiAgICAgICAgaXRlbS5uYW1lID0gJ+acieaJueekuic7CiAgICAgICAgaXRlbS50eXBlID0gJ2Jhcic7CiAgICAgICAgaXRlbS5zdGFjayA9ICdvbmUnOwogICAgICAgIGl0ZW0uZGF0YSA9IHJzcC5kYXRhLnlvdUFycmF5OwogICAgICAgIGl0ZW0uaXRlbVN0eWxlID0gewogICAgICAgICAgbm9ybWFsOiB7CiAgICAgICAgICAgIC8v6L+Z6YeM5piv6YeN54K5CiAgICAgICAgICAgIGNvbG9yOiAncmdiKDIxLDExMiwxOTgpJwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgdGVtcC5wdXNoKGl0ZW0pOwogICAgICAgIHZhciBpdGVtMiA9IHt9OwogICAgICAgIGl0ZW0yLm5hbWUgPSAn5peg5om556S6JzsKICAgICAgICBpdGVtMi50eXBlID0gJ2Jhcic7CiAgICAgICAgaXRlbTIuc3RhY2sgPSAnb25lJzsKICAgICAgICBpdGVtMi5kYXRhID0gcnNwLmRhdGEud3VBcnJheTsKICAgICAgICBpdGVtMi5pdGVtU3R5bGUgPSB7CiAgICAgICAgICBub3JtYWw6IHsKICAgICAgICAgICAgLy/ov5nph4zmmK/ph43ngrkKICAgICAgICAgICAgY29sb3I6ICdyZ2IoMjIyLDE3Nyw2MiknCiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICB0ZW1wLnB1c2goaXRlbTIpOwogICAgICAgIF90aGlzNC5kZFNlciA9IHRlbXA7CiAgICAgIH0pOwogICAgfSwKICAgIGdldENlbnRlcjI6IGZ1bmN0aW9uIGdldENlbnRlcjIocXVlcnlQYXJhbSkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKCiAgICAgIGNlbnRlcjJEYXRhKHF1ZXJ5UGFyYW0pLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHsKICAgICAgICBpZiAoIXF1ZXJ5UGFyYW0ueWVhciB8fCBxdWVyeVBhcmFtLnllYXIgPT0gJzAnKSB7CiAgICAgICAgICBfdGhpczUub3RUaXRsZSA9ICcnOwogICAgICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbS55ZWFyID09ICcyMDE1JykgewogICAgICAgICAgX3RoaXM1Lm90VGl0bGUgPSAiMjAxNuW5tOS7peWJjSI7CiAgICAgICAgfSBlbHNlIGlmIChxdWVyeVBhcmFtLnllYXIgPT0gJzk5OScpIHsKICAgICAgICAgIF90aGlzNS5vdFRpdGxlID0gIjIwMTYt5LuKIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM1Lm90VGl0bGUgPSBxdWVyeVBhcmFtLnllYXIgKyAi5bm0IjsKICAgICAgICB9CgogICAgICAgIF90aGlzNS5kZXB0TGcgPSByZXNwLmRhdGEubGdEYXRhOwogICAgICAgIF90aGlzNS5kZXB0RGF0YSA9IHJlc3AuZGF0YS5waWVEYXRhOwogICAgICB9KTsKICAgIH0sCiAgICBnZXRDZW50ZXI4OiBmdW5jdGlvbiBnZXRDZW50ZXI4KHF1ZXJ5UGFyYW1zKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwoKICAgICAgY2VudGVyOERhdGEocXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHsKICAgICAgICBpZiAoIXF1ZXJ5UGFyYW1zLnllYXIgfHwgcXVlcnlQYXJhbXMueWVhciA9PSAnMCcpIHsKICAgICAgICAgIF90aGlzNi5vdFRpdGxlID0gJyc7CiAgICAgICAgfSBlbHNlIGlmIChxdWVyeVBhcmFtcy55ZWFyID09ICcyMDE1JykgewogICAgICAgICAgX3RoaXM2Lm90VGl0bGUgPSAiMjAxNuW5tOS7peWJjSI7CiAgICAgICAgfSBlbHNlIGlmIChxdWVyeVBhcmFtcy55ZWFyID09ICc5OTknKSB7CiAgICAgICAgICBfdGhpczYub3RUaXRsZSA9ICIyMDE2LeS7iiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF90aGlzNi5vdFRpdGxlID0gcXVlcnlQYXJhbXMueWVhciArICLlubQiOwogICAgICAgIH0KCiAgICAgICAgX3RoaXM2LnNlcmllc0NlbnRlcjggPSByZXNwLmRhdGEueEF4aXNBcnJheTsKICAgICAgICBfdGhpczYueEF4aXNDZW50ZXI4ID0gcmVzcC5kYXRhLnlBeGlzQXJyYXk7CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5p+l6K+i44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CR5YiX6KGoICovCiAgICBnZXRMaXN0OiBmdW5jdGlvbiBnZXRMaXN0KCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIGxpc3RJbnN0cnVjdGlvbih0aGlzLnF1ZXJ5UGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzNy5pbnN0cnVjdGlvbkxpc3QgPSByZXNwb25zZS5yb3dzOwogICAgICAgIF90aGlzNy50b3RhbCA9IHJlc3BvbnNlLnRvdGFsOwogICAgICAgIF90aGlzNy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgICB0aGlzLmdldFN0YXRpc3RpY3ModGhpcy5xdWVyeVBhcmFtcyk7CiAgICB9LAogICAgLy8g5Y+W5raI5oyJ6ZKuCiAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHsKICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgIH0sCiAgICAvLyDooajljZXph43nva4KICAgIHJlc2V0OiBmdW5jdGlvbiByZXNldCgpIHsKICAgICAgdGhpcy5mb3JtID0gewogICAgICAgIGlkOiBudWxsLAogICAgICAgIHllYXI6IG51bGwsCiAgICAgICAgbnVtOiBudWxsLAogICAgICAgIHRvdGFsTnVtOiBudWxsLAogICAgICAgIHRpdGxlOiBudWxsLAogICAgICAgIHNlY3JldExldmVsOiBudWxsLAogICAgICAgIHNlY3JldFllYXI6IG51bGwsCiAgICAgICAgdXNlck5hbWU6IG51bGwsCiAgICAgICAgZGVwdElkOiBudWxsLAogICAgICAgIGRlcHROYW1lOiBudWxsLAogICAgICAgIHByaW50RGF0ZTogbnVsbCwKICAgICAgICByZW1hcms6IG51bGwsCiAgICAgICAgY3JlYXRlQnk6IG51bGwsCiAgICAgICAgY3JlYXRlVGltZTogbnVsbCwKICAgICAgICB1cGRhdGVCeTogbnVsbCwKICAgICAgICB1cGRhdGVUaW1lOiBudWxsLAogICAgICAgIGRlbEZsYWc6IG51bGwsCiAgICAgICAgYWR2aXNlRmlsZVBhdGg6IG51bGwsCiAgICAgICAgYWR2aXNlRmlsZTogbnVsbCwKICAgICAgICBzdGF0dXM6IG51bGwKICAgICAgfTsKICAgICAgdGhpcy51cGxvYWQyLmZpbGVMaXN0ID0gW107CiAgICAgIHRoaXMucmVzZXRGb3JtKCJmb3JtIik7CiAgICB9LAoKICAgIC8qKiDmkJzntKLmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVF1ZXJ5OiBmdW5jdGlvbiBoYW5kbGVRdWVyeSgpIHsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICAgIHRoaXMuZ2V0TGVmdDEoKTsKICAgICAgdGhpcy5nZXRDZW50ZXIyKHRoaXMucXVlcnlQYXJhbXMpOwogICAgICB0aGlzLmdldENlbnRlcjgodGhpcy5xdWVyeVBhcmFtcyk7CiAgICB9LAoKICAgIC8qKiDph43nva7mjInpkq7mk43kvZwgKi8KICAgIHJlc2V0UXVlcnk6IGZ1bmN0aW9uIHJlc2V0UXVlcnkoKSB7CiAgICAgIHRoaXMucmVzZXRGb3JtKCJxdWVyeUZvcm0iKTsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5zdGF0dXMgPSAiMCI7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMuZGVwdElkID0gIjAiOwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnNlY3JldExldmVsID0gIjAiOwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnllYXIgPSAiMCI7CiAgICAgIHRoaXMuaGFuZGxlUXVlcnkoKTsKICAgIH0sCiAgICAvLyDlpJrpgInmoYbpgInkuK3mlbDmja4KICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZTogZnVuY3Rpb24gaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbikgewogICAgICB0aGlzLmlkcyA9IHNlbGVjdGlvbi5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgfSk7CiAgICAgIHRoaXMuc2luZ2xlID0gc2VsZWN0aW9uLmxlbmd0aCAhPT0gMTsKICAgICAgdGhpcy5tdWx0aXBsZSA9ICFzZWxlY3Rpb24ubGVuZ3RoOwogICAgfSwKCiAgICAvKiog5paw5aKe5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVBZGQ6IGZ1bmN0aW9uIGhhbmRsZUFkZCgpIHsKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB0aGlzLm9wZW4gPSB0cnVlOwogICAgICB0aGlzLnRpdGxlID0gIua3u+WKoOmZouWjq+W7uuiuriI7CiAgICB9LAoKICAgIC8qKiDkv67mlLnmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVVwZGF0ZTogZnVuY3Rpb24gaGFuZGxlVXBkYXRlKHJvdykgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKCiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdmFyIGlkID0gcm93LmlkIHx8IHRoaXMuaWRzOwogICAgICBnZXRJbnN0cnVjdGlvbihpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczguZm9ybSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgICAgX3RoaXM4Lm9wZW4gPSB0cnVlOwogICAgICAgIF90aGlzOC50aXRsZSA9ICLkv67mlLnpmaLlo6vlu7rorq4iOwogICAgICB9KTsKICAgIH0sCgogICAgLyoqIOaPkOS6pOaMiemSriAqLwogICAgc3VibWl0Rm9ybTogZnVuY3Rpb24gc3VibWl0Rm9ybSgpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CgogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICBpZiAoX3RoaXM5LmZvcm0uaWQgIT0gbnVsbCkgewogICAgICAgICAgICB1cGRhdGVJbnN0cnVjdGlvbihfdGhpczkuZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczkubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXM5Lm9wZW4gPSBmYWxzZTsKCiAgICAgICAgICAgICAgICBfdGhpczkuZ2V0TGlzdCgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhZGRJbnN0cnVjdGlvbihfdGhpczkuZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczkubXNnU3VjY2Vzcygi5paw5aKe5oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXM5Lm9wZW4gPSBmYWxzZTsKCiAgICAgICAgICAgICAgICBfdGhpczkuZ2V0TGlzdCgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCgogICAgLyoqIOWIoOmZpOaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlRGVsZXRlOiBmdW5jdGlvbiBoYW5kbGVEZWxldGUocm93KSB7CiAgICAgIHZhciBfdGhpczEwID0gdGhpczsKCiAgICAgIHZhciBpZHMgPSByb3cuaWQgfHwgdGhpcy5pZHM7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpOOAkOivt+Whq+WGmeWKn+iDveWQjeensOOAkee8luWPt+S4uiInICsgaWRzICsgJyLnmoTmlbDmja7pobk/JywgIuitpuWRiiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBkZWxJbnN0cnVjdGlvbihpZHMpOwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczEwLmdldExpc3QoKTsKCiAgICAgICAgX3RoaXMxMC5tc2dTdWNjZXNzKCLliKDpmaTmiJDlip8iKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfSwKCiAgICAvKiog5a+85Ye65oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVFeHBvcnQ6IGZ1bmN0aW9uIGhhbmRsZUV4cG9ydCgpIHsKICAgICAgdmFyIF90aGlzMTEgPSB0aGlzOwoKICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gdGhpcy5xdWVyeVBhcmFtczsKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5a+85Ye65omA5pyJ44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CR5pWw5o2u6aG5PycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gZXhwb3J0SW5zdHJ1Y3Rpb24ocXVlcnlQYXJhbXMpOwogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMTEuZG93bmxvYWQocmVzcG9uc2UubXNnKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfSwKICAgIHZpZXdBbm5leEFkdmlzZUZpbGVGaWxlOiBmdW5jdGlvbiB2aWV3QW5uZXhBZHZpc2VGaWxlRmlsZShyb3cpIHsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgICAgdGhpcy5mb3JtYXRVcGxvYWRBbm5leChyb3cuYWR2aXNlRmlsZSwgcm93LmFkdmlzZUZpbGVQYXRoKTsKICAgICAgdGhpcy51cGxvYWQub3BlbiA9IHRydWU7CiAgICB9LAogICAgLy/moLzlvI/ljJbkuIrkvKDpmYTku7YKICAgIGZvcm1hdFVwbG9hZEFubmV4OiBmdW5jdGlvbiBmb3JtYXRVcGxvYWRBbm5leChhbm5leE5hbWUsIGFubmV4UGF0aCkgewogICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdCA9IFtdOwoKICAgICAgaWYgKGFubmV4UGF0aCAhPSBudWxsICYmIGFubmV4UGF0aCAhPT0gJycpIHsKICAgICAgICB2YXIgYSA9IFtdLAogICAgICAgICAgICBiID0gW107CgogICAgICAgIHRyeSB7CiAgICAgICAgICBhID0gSlNPTi5wYXJzZShhbm5leE5hbWUpOwogICAgICAgICAgYiA9IEpTT04ucGFyc2UoYW5uZXhQYXRoKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBhID0gW107CiAgICAgICAgICBiID0gW107CiAgICAgICAgfQoKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHRoaXMudXBsb2FkLmZpbGVMaXN0LnB1c2goewogICAgICAgICAgICAnbmFtZSc6IGFbaV0sCiAgICAgICAgICAgICd1cmwnOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgYltpXQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMudXBsb2FkLmZpbGVMaXN0ID0gW107CiAgICAgIH0KICAgIH0sCiAgICBoYW5kbGVQcmV2aWV3OiBmdW5jdGlvbiBoYW5kbGVQcmV2aWV3KGZpbGUpIHsKICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgIHZhciBldmVudCA9IG5ldyBNb3VzZUV2ZW50KCdjbGljaycpOwogICAgICBhLmRvd25sb2FkID0gZmlsZS5uYW1lOwogICAgICBhLnRhcmdldCA9ICdfYmxhbmsnOwogICAgICBhLmhyZWYgPSBmaWxlLnVybDsKICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgIH0sCiAgICBmb3JtYXRVcGxvYWRBbm5leDI6IGZ1bmN0aW9uIGZvcm1hdFVwbG9hZEFubmV4Mihhbm5leE5hbWUsIGFubmV4UGF0aCkgewogICAgICB0aGlzLnVwbG9hZDIuZmlsZUxpc3QgPSBbXTsKCiAgICAgIGlmIChhbm5leFBhdGggIT0gbnVsbCAmJiBhbm5leFBhdGggIT0gJycpIHsKICAgICAgICB2YXIgYSA9IEpTT04ucGFyc2UoYW5uZXhOYW1lKTsKICAgICAgICB2YXIgYiA9IEpTT04ucGFyc2UoYW5uZXhQYXRoKTsKCiAgICAgICAgaWYgKGEgPT0gbnVsbCkgewogICAgICAgICAgYSA9IFtdOwogICAgICAgICAgYiA9IFtdOwogICAgICAgIH0KCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB0aGlzLnVwbG9hZDIuZmlsZUxpc3QucHVzaCh7CiAgICAgICAgICAgICduYW1lJzogYVtpXSwKICAgICAgICAgICAgJ3VybCc6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyBiW2ldCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy51cGxvYWQyLmZpbGVMaXN0ID0gW107CiAgICAgIH0KICAgIH0sCiAgICAvL+afpeeci+aIkOaenAogICAgdmlld0FubmV4MjogZnVuY3Rpb24gdmlld0FubmV4Mihyb3cpIHsKICAgICAgdGhpcy51cGxvYWQyLmZpbGVMaXN0ID0gW107CiAgICAgIHRoaXMuZm9ybWF0VXBsb2FkQW5uZXgyKHJvdy5hZHZpc2VGaWxlLCByb3cuYWR2aXNlRmlsZVBhdGgpOwogICAgICB0aGlzLnVwbG9hZDIub3BlbiA9IHRydWU7CiAgICB9LAogICAgaGFuZGxlUHJldmlldzI6IGZ1bmN0aW9uIGhhbmRsZVByZXZpZXcyKGZpbGUpIHsKICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgIHZhciBldmVudCA9IG5ldyBNb3VzZUV2ZW50KCdjbGljaycpOwogICAgICBhLmRvd25sb2FkID0gZmlsZS5uYW1lOwogICAgICBhLnRhcmdldCA9ICdfYmxhbmsnOwogICAgICBhLmhyZWYgPSBmaWxlLnVybDsKICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgIH0sCiAgICBoYW5kbGVfcmVtb3ZlMjogZnVuY3Rpb24gaGFuZGxlX3JlbW92ZTIoZmlsZSwgZmlsZUxpc3QsIHR5cGUpIHsKICAgICAgdmFyIF90bXAgPSB0aGlzLnVwbG9hZDIuZmlsZUxpc3Q7CgogICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gX3RtcC5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgIGlmIChfdG1wW2ldLm5hbWUgPSBmaWxlLm5hbWUpIHsKICAgICAgICAgIF90bXAuc3BsaWNlKGksIDEpOwoKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQoKICAgICAgdGhpcy51cGxvYWQyLmZpbGVMaXN0ID0gX3RtcDsKICAgICAgdmFyIGEgPSBbXTsKICAgICAgdmFyIGIgPSBbXTsKICAgICAgdGhpcy51cGxvYWQyLmZpbGVMaXN0LmZvckVhY2goZnVuY3Rpb24gKHMpIHsKICAgICAgICB2YXIgdXJsID0gc1sndXJsJ107CiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UocHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSwgJycpOwogICAgICAgIGEucHVzaChzWyduYW1lJ10pOwogICAgICAgIGIucHVzaCh1cmwpOwogICAgICB9KTsKICAgICAgdGhpcy5mb3JtLmFkdmlzZUZpbGUgPSBKU09OLnN0cmluZ2lmeShhKTsKICAgICAgdGhpcy5mb3JtLmFkdmlzZUZpbGVQYXRoID0gSlNPTi5zdHJpbmdpZnkoYik7CiAgICB9LAogICAgaGFuZGxlRmlsZVVwbG9hZFByb2dyZXNzMjogZnVuY3Rpb24gaGFuZGxlRmlsZVVwbG9hZFByb2dyZXNzMihldmVudCwgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy51cGxvYWQyLmlzVXBsb2FkaW5nID0gdHJ1ZTsKICAgIH0sCiAgICBoYW5kbGVGaWxlU3VjY2VzczI6IGZ1bmN0aW9uIGhhbmRsZUZpbGVTdWNjZXNzMihyZXNwb25zZSwgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy51cGxvYWQyLmlzVXBsb2FkaW5nID0gZmFsc2U7CiAgICAgIHZhciBhID0gSlNPTi5wYXJzZSh0aGlzLmZvcm0uYWR2aXNlRmlsZSk7CiAgICAgIHZhciBiID0gSlNPTi5wYXJzZSh0aGlzLmZvcm0uYWR2aXNlRmlsZVBhdGgpOwoKICAgICAgaWYgKGEgPT0gbnVsbCkgewogICAgICAgIGEgPSBbXTsKICAgICAgICBiID0gW107CiAgICAgIH0KCiAgICAgIGEucHVzaChyZXNwb25zZS5maWxlTmFtZSk7CiAgICAgIGIucHVzaChyZXNwb25zZS51cmwpOwogICAgICB0aGlzLmZvcm0uYWR2aXNlRmlsZSA9IEpTT04uc3RyaW5naWZ5KGEpOwogICAgICB0aGlzLmZvcm0uYWR2aXNlRmlsZVBhdGggPSBKU09OLnN0cmluZ2lmeShiKTsgLy8gIHRoaXMuZm9ybS5hbm5leE5hbWUgPSByZXNwb25zZS5maWxlTmFtZTsKICAgICAgLy8gIHRoaXMuZm9ybS5hbm5leFBhdGggPSByZXNwb25zZS51cmw7CgogICAgICB0aGlzLm1zZ1N1Y2Nlc3MocmVzcG9uc2UubXNnKTsKICAgIH0KICB9Cn07"},null]}