5002e95875c690c7e5fdd60300c3d8db.json 26 KB

1
  1. {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\components\\startNodeInfo\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\components\\startNodeInfo\\index.vue","mtime":1619607677281},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkU6L2JvbWFuLWZyYW13b3JrL3J1b3lpLXVpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yIjsKaW1wb3J0ICJyZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5yZWR1Y2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCmltcG9ydCBQcm9jZXNzTm9kZUNvbmZpZyBmcm9tICdAL2NvbXBvbmVudHMvUHJvY2Vzc05vZGVDb25maWcnOwppbXBvcnQgUnVsZUNvbmZpZ3VyYXRpb25Db21wb25lbnQgZnJvbSAnQC9jb21wb25lbnRzL1J1bGVDb25maWd1cmF0aW9uQ29tcG9uZW50JzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdzdGFydE5vZGVJbmZvJywKICBjb21wb25lbnRzOiB7CiAgICBSdWxlQ29uZmlndXJhdGlvbkNvbXBvbmVudDogUnVsZUNvbmZpZ3VyYXRpb25Db21wb25lbnQKICB9LAogIHByb3BzOiB7CiAgICBjb25maWdEYXRhOiB7fSwKICAgIFRBQkxFX0lEOiB7fSwKICAgIC8v5Li76KGo5pWw5o2uCiAgICBzdGF0dXM6IG51bGwsCiAgICByZWFkT25seTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIG1vZHVsZVR5cGU6IHsKICAgICAgdHlwZTogTnVtYmVyLAogICAgICBkZWZhdWx0OiAwCiAgICB9CiAgfSwKICBjb21wdXRlZDogewogICAgZGVmYXVsdERhdGE6IGZ1bmN0aW9uIGRlZmF1bHREYXRhKCkgewogICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdnVlL25vLXNpZGUtZWZmZWN0cy1pbi1jb21wdXRlZC1wcm9wZXJ0aWVzCiAgICAgIHRoaXMuaW5mb0RhdGEgPSB0aGlzLmNvbmZpZ0RhdGE7CiAgICAgIHJldHVybiB0aGlzLmNvbmZpZ0RhdGE7CiAgICB9LAogICAgY3VycmVudENvbXBvbmVudDogZnVuY3Rpb24gY3VycmVudENvbXBvbmVudCgpIHsKICAgICAgcmV0dXJuIFByb2Nlc3NOb2RlQ29uZmlnOwogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgIGRlZmF1bHREYXRhOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoKSB7CiAgICAgICAgdGhpcy5pbmZvRGF0YSA9IHRoaXMuZGVmYXVsdERhdGE7CiAgICAgIH0sCiAgICAgIGRlZXA6IHRydWUKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgIHJldHVybiB7CiAgICAgIGluZm9EYXRhOiBbXSwKICAgICAgZGVmYXVsdE9iajoge30sCiAgICAgIHRyaWdnZXJCdXR0b25zOiBbXSwKICAgICAgLy8g6Kem5Y+R5oyJ6ZKuCiAgICAgIHZpc2libGVCdXR0b25zOiBbXSwKICAgICAgLy8g5Y+v6KeB5oyJ6ZKuCiAgICAgIC8v6IqC54K56KGo55qE6YWN572uCiAgICAgIHRhYmxlQ29uZmlnOiB7CiAgICAgICAgcHJvcHM6IHsKICAgICAgICAgIGNvbHVtbnNLZXk6IFsnTkFNRSddLAogICAgICAgICAgQXV0b0RhdGE6IFtdLAogICAgICAgICAgaGlkZWNvbHVtbnM6IFsnaWQnXSwKICAgICAgICAgIGRhdGE6IHt9LAogICAgICAgICAgdG90YWxSb3dDb3VudDogMCwKICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZDogW10sCiAgICAgICAgICBpc0JhY2tSb3dJdGVtOiB0cnVlCiAgICAgICAgfSwKICAgICAgICBldmVudDogewogICAgICAgICAgJ29uLWlucHV0LXZhbHVlLWNoYW5nZSc6IGZ1bmN0aW9uIG9uSW5wdXRWYWx1ZUNoYW5nZSh2YWx1ZSkgewogICAgICAgICAgICAvLyDlpJbplK7nmoTmqKHns4rmkJzntKIKICAgICAgICAgICAgX3RoaXMudGFibGVDb25maWcucHJvcHMuQXV0b0RhdGEgPSBbXTsKCiAgICAgICAgICAgIF90aGlzLiRuZXR3b3JrLnBvc3QoJy9wL2MvbWV0YS90YWJsZS9saXN0JywgewogICAgICAgICAgICAgIERFU0NSSVBUSU9OOiB2YWx1ZQogICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuY29kZSA9PT0gMCkgewogICAgICAgICAgICAgICAgLy8gdGhpcy5yb3cgPSByZXMuZGF0YS5kYXRhLnJvdy5jb25jYXQoW10pCiAgICAgICAgICAgICAgICBfdGhpcy50YWJsZUNvbmZpZy5wcm9wcy5BdXRvRGF0YSA9IHJlcy5kYXRhLmRhdGEucm93LnJlZHVjZShmdW5jdGlvbiAoYXJyLCBpdGVtKSB7CiAgICAgICAgICAgICAgICAgIGFyci5wdXNoKHsKICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS5OQU1FLnZhbCwKICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5JRC52YWwsCiAgICAgICAgICAgICAgICAgICAgTkFNRTogaXRlbS5ERVNDUklQVElPTi52YWwKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBhcnI7CiAgICAgICAgICAgICAgICB9LCBbXSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICAnb24tcG9wcGVyLXNob3cnOiBmdW5jdGlvbiBvblBvcHBlclNob3coJHRoaXMpIHsKICAgICAgICAgICAgLy8g5b2T5aSW6ZSu5LiL5ouJ56uZ5byA5aeL5Y676K+35rGC5pWw5o2uCiAgICAgICAgICAgIC8vIHRoaXMuZnJlc2hEcm9wRG93blNlbGVjdEZpbHRlckRhdGEoJHRoaXMpCiAgICAgICAgICAgIF90aGlzLiRuZXR3b3JrLnBvc3QoJy9wL2MvbWV0YS90YWJsZS9saXN0JywgewogICAgICAgICAgICAgIHBhZ2VTaXplOiAkdGhpcy5wYWdlU2l6ZSwKICAgICAgICAgICAgICBwYWdlOiAxCiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7CiAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLnRhYnRoLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uY29sbmFtZSA9PT0gJ0RFU0NSSVBUSU9OJykgewogICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNhayA9IHRydWU7CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBfdGhpcy50YWJsZUNvbmZpZy5wcm9wcy5kYXRhID0gcmVzLmRhdGEuZGF0YTsKICAgICAgICAgICAgICAgIF90aGlzLnRhYmxlQ29uZmlnLnByb3BzLnRvdGFsUm93Q291bnQgPSByZXMuZGF0YS5kYXRhLnRvdGFsUm93Q291bnQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICAnb24tcGFnZS1jaGFuZ2UnOiBmdW5jdGlvbiBvblBhZ2VDaGFuZ2UoY3VycmVudFBhZ2UsICR0aGlzKSB7CiAgICAgICAgICAgIC8vIOWklumUrueahOWIhumhteafpeivogogICAgICAgICAgICAvLyB0aGlzLmZyZXNoRHJvcERvd25TZWxlY3RGaWx0ZXJEYXRhKCR0aGlzLGN1cnJlbnRQYWdlKQogICAgICAgICAgICBfdGhpcy4kbmV0d29yay5wb3N0KCcvcC9jL21ldGEvdGFibGUvbGlzdCcsIHsKICAgICAgICAgICAgICBwYWdlU2l6ZTogJHRoaXMucGFnZVNpemUsCiAgICAgICAgICAgICAgcGFnZTogY3VycmVudFBhZ2UKICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmNvZGUgPT09IDApIHsKICAgICAgICAgICAgICAgIHJlcy5kYXRhLmRhdGEudGFidGguZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICBpZiAoaXRlbS5jb2xuYW1lID09PSAnREVTQ1JJUFRJT04nKSB7CiAgICAgICAgICAgICAgICAgICAgaXRlbS5pc2FrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIF90aGlzLnRhYmxlQ29uZmlnLnByb3BzLmRhdGEgPSByZXMuZGF0YS5kYXRhOwogICAgICAgICAgICAgICAgX3RoaXMudGFibGVDb25maWcucHJvcHMudG90YWxSb3dDb3VudCA9IHJlcy5kYXRhLmRhdGEudG90YWxSb3dDb3VudDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwKICAgICAgICAgICdvbi1ibHVyJzogZnVuY3Rpb24gb25CbHVyKGV2ZW50LCBpbnN0YW5jZSkgey8vIGlmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzLmRhdGEuYnVzaW5lc3NUeXBlKSAhPT0gJ1tvYmplY3QgQXJyYXldJyB8fCB0aGlzLmRhdGEuYnVzaW5lc3NUeXBlLmxlbmd0aCA9PT0gMCl7CiAgICAgICAgICAgIC8vICAgaW5zdGFuY2UuaW5wdXRWYWx1ZSA9ICcnCiAgICAgICAgICAgIC8vICAgLyogCiAgICAgICAgICAgIC8vICAgICB0b2RvCiAgICAgICAgICAgIC8vICAgICDmuIXnqbrmiYDmnInlkozkuLvooajmnInlhbPnmoTmlbDmja4KICAgICAgICAgICAgLy8gICAqLwogICAgICAgICAgICAvLyB9CiAgICAgICAgICB9LAogICAgICAgICAgJ29uLWZrcnAtc2VsZWN0ZWQnOiBmdW5jdGlvbiBvbkZrcnBTZWxlY3RlZCh2YWx1ZSkgewogICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgIF90aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlTmFtZSA9IHZhbHVlWzBdLnJvd0l0ZW0uTkFNRS52YWwgPyB2YWx1ZVswXS5yb3dJdGVtLk5BTUUudmFsIDogdmFsdWVbMF0ucm93SXRlbS5OQU1FOwogICAgICAgICAgICAgIF90aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlID0gdmFsdWVbMF0uSUQ7CiAgICAgICAgICAgICAgX3RoaXMuY29uZmlnRGF0YS5idXNpbmVzc1R5cGVUZXh0ID0gdmFsdWVbMF0uTGFiZWw7CgogICAgICAgICAgICAgIF90aGlzLmdldFRyaWdnZXJCdXR0b25zKCk7CgogICAgICAgICAgICAgIF90aGlzLmdldFZpc2libGVCdXR0b25zKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgX3RoaXMuY29uZmlnRGF0YS5idXNpbmVzc1R5cGVOYW1lID0gbnVsbDsKICAgICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzVHlwZSA9IG51bGw7CiAgICAgICAgICAgICAgX3RoaXMuY29uZmlnRGF0YS5idXNpbmVzc1R5cGVUZXh0ID0gbnVsbDsKICAgICAgICAgICAgfSAvLyDmuIXpmaTlj6/mmL7npLrlrZfmrrXmlbDmja4KICAgICAgICAgICAgLy8gdGhpcy5vbkNsZWFyKCkKCgogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLnZpc2libGVCdCA9IFtdOwogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLnRyaWdnZXJCdCA9IFtdOwogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5SWQgPSBudWxsOwogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5ID0gbnVsbDsKICAgICAgICAgICAgX3RoaXMuY29uZmlnRGF0YS5idXNpbmVzc0tleU5hbWUgPSBudWxsOwogICAgICAgICAgICBfdGhpcy5pbmRleFF1ZXJ5LmRlZmF1bHRTZWxlY3RlZCA9IFtdOwogICAgICAgICAgfSwKICAgICAgICAgICdvbi1jbGVhcic6IGZ1bmN0aW9uIG9uQ2xlYXIoKSB7CiAgICAgICAgICAgIC8vIOa4hemZpOWPr+aYvuekuuWtl+auteaVsOaNrgogICAgICAgICAgICAvLyB0aGlzLm9uQ2xlYXIoKQogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLnZpc2libGVCdCA9IFtdOwogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLnRyaWdnZXJCdCA9IFtdOwogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5SWQgPSBudWxsOwogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5ID0gbnVsbDsKICAgICAgICAgICAgX3RoaXMuY29uZmlnRGF0YS5idXNpbmVzc0tleU5hbWUgPSBudWxsOwogICAgICAgICAgICBfdGhpcy5pbmRleFF1ZXJ5LmRlZmF1bHRTZWxlY3RlZCA9IFtdOwogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzVHlwZU5hbWUgPSBudWxsOwogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzVHlwZSA9IG51bGw7CiAgICAgICAgICAgIF90aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlVGV4dCA9IG51bGw7CiAgICAgICAgICAgIF90aGlzLnRhYmxlQ29uZmlnLnByb3BzLkF1dG9EYXRhID0gW107CgogICAgICAgICAgICBfdGhpcy4kbmV0d29yay5wb3N0KCcvcC9jL21ldGEvdGFibGUvbGlzdCcsIHsKICAgICAgICAgICAgICBERVNDUklQVElPTjogJycKICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmNvZGUgPT09IDApIHsKICAgICAgICAgICAgICAgIF90aGlzLnRhYmxlQ29uZmlnLnByb3BzLkF1dG9EYXRhID0gcmVzLmRhdGEuZGF0YS5yb3cucmVkdWNlKGZ1bmN0aW9uIChhcnIsIGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgYXJyLnB1c2goewogICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLk5BTUUudmFsLAogICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLklELnZhbCwKICAgICAgICAgICAgICAgICAgICBOQU1FOiBpdGVtLkRFU0NSSVBUSU9OLnZhbAogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycjsKICAgICAgICAgICAgICAgIH0sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgLy8g5p+l6K+i57Si5byVCiAgICAgIGluZGV4UXVlcnk6IHsKICAgICAgICBwcm9wczogewogICAgICAgICAgY29sdW1uc0tleTogWydOQU1FJ10sCiAgICAgICAgICBBdXRvRGF0YTogW10sCiAgICAgICAgICBoaWRlY29sdW1uczogWydpZCddLAogICAgICAgICAgZGF0YToge30sCiAgICAgICAgICB0b3RhbFJvd0NvdW50OiAwLAogICAgICAgICAgZGVmYXVsdFNlbGVjdGVkOiBbXSwKICAgICAgICAgIGlzQmFja1Jvd0l0ZW06IHRydWUKICAgICAgICB9LAogICAgICAgIGV2ZW50OiB7CiAgICAgICAgICAnb24taW5wdXQtdmFsdWUtY2hhbmdlJzogZnVuY3Rpb24gb25JbnB1dFZhbHVlQ2hhbmdlKHZhbHVlLCBpbnN0YW5jZSkgewogICAgICAgICAgICBpZiAoIV90aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlKSB7CiAgICAgICAgICAgICAgX3RoaXMuJE1vZGFsLmZjV2FybmluZyh7CiAgICAgICAgICAgICAgICB0aXRsZTogJ+itpuWRiicsCiAgICAgICAgICAgICAgICBjb250ZW50OiAn6K+35YWI6YCJ5oup6IqC54K56KGoIScKICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgX3RoaXMuY29uZmlnRGF0YS5idXNpbmVzc0tleUlkID0gbnVsbDsKICAgICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5ID0gbnVsbDsKICAgICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5TmFtZSA9IG51bGw7CiAgICAgICAgICAgICAgaW5zdGFuY2UuaW5wdXRWYWx1ZSA9ICcnOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfSAvLyDlpJbplK7nmoTmqKHns4rmkJzntKIKCgogICAgICAgICAgICBfdGhpcy5pbmRleFF1ZXJ5LnByb3BzLkF1dG9EYXRhID0gW107CgogICAgICAgICAgICBfdGhpcy4kbmV0d29yay5wb3N0KCcvcC9jL21ldGEvY29sdW1uL2xpc3QnLCB7CiAgICAgICAgICAgICAgREVTQ1JJUFRJT046IHZhbHVlLAogICAgICAgICAgICAgIEFEX1RBQkxFX0lEOiBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzVHlwZQogICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuY29kZSA9PT0gMCkgewogICAgICAgICAgICAgICAgLy8gdGhpcy5yb3cgPSByZXMuZGF0YS5kYXRhLnJvdy5jb25jYXQoW10pCiAgICAgICAgICAgICAgICBfdGhpcy5pbmRleFF1ZXJ5LnByb3BzLkF1dG9EYXRhID0gcmVzLmRhdGEuZGF0YS5yb3cucmVkdWNlKGZ1bmN0aW9uIChhcnIsIGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgYXJyLnB1c2goewogICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLk5BTUUudmFsLAogICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLklELnZhbCwKICAgICAgICAgICAgICAgICAgICBOQU1FOiBpdGVtLkRFU0NSSVBUSU9OLnZhbAogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycjsKICAgICAgICAgICAgICAgIH0sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwKICAgICAgICAgICdvbi1wb3BwZXItc2hvdyc6IGZ1bmN0aW9uIG9uUG9wcGVyU2hvdygkdGhpcykgewogICAgICAgICAgICBpZiAoIV90aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlKSB7CiAgICAgICAgICAgICAgX3RoaXMuJE1vZGFsLmZjV2FybmluZyh7CiAgICAgICAgICAgICAgICB0aXRsZTogJ+itpuWRiicsCiAgICAgICAgICAgICAgICBjb250ZW50OiAn6K+35YWI6YCJ5oup6IqC54K56KGoIScKICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgX3RoaXMuY29uZmlnRGF0YS5idXNpbmVzc0tleUlkID0gbnVsbDsKICAgICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5ID0gbnVsbDsKICAgICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5TmFtZSA9IG51bGw7CiAgICAgICAgICAgICAgJHRoaXMuaW5wdXRWYWx1ZSA9ICcnOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfSAvLyDlvZPlpJbplK7kuIvmi4nnq5nlvIDlp4vljrvor7fmsYLmlbDmja4KICAgICAgICAgICAgLy8gdGhpcy5mcmVzaERyb3BEb3duU2VsZWN0RmlsdGVyRGF0YSgkdGhpcykKCgogICAgICAgICAgICBfdGhpcy4kbmV0d29yay5wb3N0KCcvcC9jL21ldGEvY29sdW1uL2xpc3QnLCB7CiAgICAgICAgICAgICAgcGFnZVNpemU6ICR0aGlzLnBhZ2VTaXplLAogICAgICAgICAgICAgIHBhZ2U6IDEsCiAgICAgICAgICAgICAgQURfVEFCTEVfSUQ6IF90aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlCiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7CiAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLnRhYnRoLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uY29sbmFtZSA9PT0gJ0RFU0NSSVBUSU9OJykgewogICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNhayA9IHRydWU7CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBfdGhpcy5pbmRleFF1ZXJ5LnByb3BzLmRhdGEgPSByZXMuZGF0YS5kYXRhOwogICAgICAgICAgICAgICAgX3RoaXMuaW5kZXhRdWVyeS5wcm9wcy50b3RhbFJvd0NvdW50ID0gcmVzLmRhdGEuZGF0YS50b3RhbFJvd0NvdW50OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9LAogICAgICAgICAgJ29uLXBhZ2UtY2hhbmdlJzogZnVuY3Rpb24gb25QYWdlQ2hhbmdlKGN1cnJlbnRQYWdlLCAkdGhpcykgewogICAgICAgICAgICAvLyDlpJbplK7nmoTliIbpobXmn6Xor6IKICAgICAgICAgICAgLy8gdGhpcy5mcmVzaERyb3BEb3duU2VsZWN0RmlsdGVyRGF0YSgkdGhpcyxjdXJyZW50UGFnZSkKICAgICAgICAgICAgX3RoaXMuJG5ldHdvcmsucG9zdCgnL3AvYy9tZXRhL2NvbHVtbi9saXN0JywgewogICAgICAgICAgICAgIHBhZ2VTaXplOiAkdGhpcy5wYWdlU2l6ZSwKICAgICAgICAgICAgICBwYWdlOiAxLAogICAgICAgICAgICAgIEFEX1RBQkxFX0lEOiBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzVHlwZQogICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuY29kZSA9PT0gMCkgewogICAgICAgICAgICAgICAgcmVzLmRhdGEuZGF0YS50YWJ0aC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmNvbG5hbWUgPT09ICdERVNDUklQVElPTicpIHsKICAgICAgICAgICAgICAgICAgICBpdGVtLmlzYWsgPSB0cnVlOwogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgX3RoaXMuaW5kZXhRdWVyeS5wcm9wcy5kYXRhID0gcmVzLmRhdGEuZGF0YTsKICAgICAgICAgICAgICAgIF90aGlzLmluZGV4UXVlcnkucHJvcHMudG90YWxSb3dDb3VudCA9IHJlcy5kYXRhLmRhdGEudG90YWxSb3dDb3VudDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwKICAgICAgICAgICdvbi1ibHVyJzogZnVuY3Rpb24gb25CbHVyKGV2ZW50LCBpbnN0YW5jZSkgey8vIGlmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzLmRhdGEuYnVzaW5lc3NUeXBlKSAhPT0gJ1tvYmplY3QgQXJyYXldJyB8fCB0aGlzLmRhdGEuYnVzaW5lc3NUeXBlLmxlbmd0aCA9PT0gMCl7CiAgICAgICAgICAgIC8vICAgaW5zdGFuY2UuaW5wdXRWYWx1ZSA9ICcnCiAgICAgICAgICAgIC8vICAgLyogCiAgICAgICAgICAgIC8vICAgICB0b2RvCiAgICAgICAgICAgIC8vICAgICDmuIXnqbrmiYDmnInlkozkuLvooajmnInlhbPnmoTmlbDmja4KICAgICAgICAgICAgLy8gICAqLwogICAgICAgICAgICAvLyB9CiAgICAgICAgICB9LAogICAgICAgICAgJ29uLWZrcnAtc2VsZWN0ZWQnOiBmdW5jdGlvbiBvbkZrcnBTZWxlY3RlZCh2YWx1ZSkgewogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5ID0gdmFsdWVbMF0ucm93SXRlbS5OQU1FLnZhbCA/IHZhbHVlWzBdLnJvd0l0ZW0uTkFNRS52YWwgOiB2YWx1ZVswXS5yb3dJdGVtLk5BTUU7CiAgICAgICAgICAgIF90aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NLZXlJZCA9IHZhbHVlWzBdLklEOwogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5TmFtZSA9IHZhbHVlWzBdLkxhYmVsOwogICAgICAgICAgfSwKICAgICAgICAgICdvbi1jbGVhcic6IGZ1bmN0aW9uIG9uQ2xlYXIoKSB7CiAgICAgICAgICAgIC8vIOa4hemZpOWPr+aYvuekuuWtl+auteaVsOaNrgogICAgICAgICAgICAvLyB0aGlzLm9uQ2xlYXIoKQogICAgICAgICAgICBfdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5ID0gbnVsbDsKICAgICAgICAgICAgX3RoaXMuY29uZmlnRGF0YS5idXNpbmVzc0tleUlkID0gbnVsbDsKICAgICAgICAgICAgX3RoaXMuY29uZmlnRGF0YS5idXNpbmVzc0tleU5hbWUgPSBudWxsOwogICAgICAgICAgICBfdGhpcy5pbmRleFF1ZXJ5LnByb3BzLkF1dG9EYXRhID0gW107CgogICAgICAgICAgICBfdGhpcy4kbmV0d29yay5wb3N0KCcvcC9jL21ldGEvY29sdW1uL2xpc3QnLCB7CiAgICAgICAgICAgICAgREVTQ1JJUFRJT046ICcnCiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7CiAgICAgICAgICAgICAgICBfdGhpcy5pbmRleFF1ZXJ5LnByb3BzLkF1dG9EYXRhID0gcmVzLmRhdGEuZGF0YS5yb3cucmVkdWNlKGZ1bmN0aW9uIChhcnIsIGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgYXJyLnB1c2goewogICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLk5BTUUudmFsLAogICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLklELnZhbCwKICAgICAgICAgICAgICAgICAgICBOQU1FOiBpdGVtLkRFU0NSSVBUSU9OLnZhbAogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycjsKICAgICAgICAgICAgICAgIH0sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfTsKICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmRlZmF1bHRPYmogPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnRGF0YSkpOwoKICAgIGlmICh0aGlzLlRBQkxFX0lEKSB7CiAgICAgIC8v5aaC5p6c5Li65Zu65a6a5qih54mICiAgICAgIHRoaXMuY29uZmlnRGF0YS5idXNpbmVzc1R5cGUgPSB0aGlzLlRBQkxFX0lEWzBdLklEOwogICAgICB0aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlTmFtZSA9IHRoaXMuVEFCTEVfSURbMF0uTGFiZWw7CiAgICB9CgogICAgaWYgKHRoaXMuY29uZmlnRGF0YS5idXNpbmVzc1R5cGUpIHsKICAgICAgdGhpcy50YWJsZUNvbmZpZy5wcm9wcy5kZWZhdWx0U2VsZWN0ZWQgPSBbewogICAgICAgIElEOiB0aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlLAogICAgICAgIExhYmVsOiB0aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlTmFtZQogICAgICB9XTsKICAgICAgdGhpcy5nZXRUcmlnZ2VyQnV0dG9ucygpOwogICAgICB0aGlzLmdldFZpc2libGVCdXR0b25zKCk7CiAgICB9CgogICAgaWYgKHRoaXMuY29uZmlnRGF0YS5idXNpbmVzc0tleUlkKSB7CiAgICAgIHRoaXMuaW5kZXhRdWVyeS5wcm9wcy5kZWZhdWx0U2VsZWN0ZWQgPSBbewogICAgICAgIElEOiB0aGlzLmNvbmZpZ0RhdGEuYnVzaW5lc3NLZXlJZCwKICAgICAgICBMYWJlbDogdGhpcy5jb25maWdEYXRhLmJ1c2luZXNzS2V5CiAgICAgIH1dOwogICAgfQogIH0sCiAgbWV0aG9kczogewogICAgYWRkUnVsZTogZnVuY3Rpb24gYWRkUnVsZSgpIHsKICAgICAgLy/mt7vliqDop4TliJkKICAgICAgdGhpcy5jb25maWdEYXRhLnJ1bGVMaXN0LnB1c2goewogICAgICAgIG5hbWU6IG51bGwsCiAgICAgICAgcnVsZTogbnVsbCwKICAgICAgICBydWxlVHlwZTogMCwKICAgICAgICB0aHJlc2hvbGQ6IHsKICAgICAgICAgIGlkOiAnJywKICAgICAgICAgIGxhYmVsOiAnJwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgZGVsZWN0UnVsZTogZnVuY3Rpb24gZGVsZWN0UnVsZShpdGVtSW5kZXgpIHsKICAgICAgLy/liKDpmaTop4TliJkKICAgICAgY29uc29sZS5sb2coaXRlbUluZGV4KTsKICAgICAgdGhpcy5jb25maWdEYXRhLnJ1bGVMaXN0LnNwbGljZShpdGVtSW5kZXgsIDEpOwogICAgICB0aGlzLmNvbmZpZ0RhdGEucnVsZUxpc3QuY29uY2F0KFtdKTsKICAgICAgdGhpcy4kc2V0KHRoaXMuY29uZmlnRGF0YS5ydWxlTGlzdCwgdGhpcy5jb25maWdEYXRhLnJ1bGVMaXN0KTsKICAgIH0sCiAgICBzYXZlQ29uZmlnOiBmdW5jdGlvbiBzYXZlQ29uZmlnKCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKCiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvciggLyojX19QVVJFX18qL3JlZ2VuZXJhdG9yUnVudGltZS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDI7CiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMyLmlucHV0Q2hhbmdlKCkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIC8v5Yik5pat5a6M5LyY5YWI57qnCiAgICAgICAgICAgICAgICAgIC8vIOWtmOWcqOmFjee9ruinhOWIme+8jOagoemqjOWQhOmhueaYr+WQpuW/heWhqwogICAgICAgICAgICAgICAgICB2YXIgZXJyb3JGbGFnID0gZmFsc2U7IC8v5Yik5pat5qCH5b+XCiAgICAgICAgICAgICAgICAgIC8vIOWIpOaWreWNleaNruexu+Wei+aYr+WQpuW/heWhqwoKICAgICAgICAgICAgICAgICAgaWYgKCFfdGhpczIuY29uZmlnRGF0YS5idXNpbmVzc1R5cGUpIHsKICAgICAgICAgICAgICAgICAgICBfdGhpczIuJE1vZGFsLmZjRXJyb3IoewogICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfplJnor68nLAogICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ+WNleaNruexu+Wei+S4jeiDveS4uuepuiEnLAogICAgICAgICAgICAgICAgICAgICAgbWFzazogdHJ1ZQogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICBlcnJvckZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgaWYgKF90aGlzMi5jb25maWdEYXRhLnJ1bGVMaXN0ICYmIF90aGlzMi5jb25maWdEYXRhLnJ1bGVMaXN0Lmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICBfdGhpczIuY29uZmlnRGF0YS5ydWxlTGlzdC5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLnJ1bGVUeXBlID09PSAwICYmICghaXRlbS5mVGFibGVJbmZvIHx8ICFpdGVtLnJ1bGUgfHwgIWl0ZW0udGhyZXNob2xkLmlkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAvL+ebtOaOpemAieaLqQogICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIuJE1vZGFsLmZjRXJyb3IoewogICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn6ZSZ6K+vJywKICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAn6K+35a6M5ZaE6KeE5YiZ6YWN572uJywKICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JGbGFnID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLnJ1bGVUeXBlID09PSAxICYmICFpdGVtLmJ1c2luZXNzRXhwYW5zaW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi4kTW9kYWwuZmNFcnJvcih7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfplJnor68nLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfor7flrozlloTop4TliJnphY3nva4nLAogICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2s6IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgICAgICBlcnJvckZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIGlmICghZXJyb3JGbGFnKSB7CiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLiRlbWl0KCdjbG9zZURyYXdlcicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIGNsb3NlRHJhd2VyOiBmdW5jdGlvbiBjbG9zZURyYXdlcigpIHsKICAgICAgLy/lj5bmtojmjInpkq7ngrnlh7sKICAgICAgdGhpcy4kcGFyZW50LiRwYXJlbnQubm9kZU1zZ1tOdW1iZXIodGhpcy5jb25maWdEYXRhLmtleSldID0gdGhpcy5kZWZhdWx0T2JqOwogICAgICB0aGlzLiRlbWl0KCdjbG9zZURyYXdlcicpOwogICAgfSwKICAgIGlucHV0Q2hhbmdlOiBmdW5jdGlvbiBpbnB1dENoYW5nZSgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CgogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9yZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiBfY2FsbGVlMigpIHsKICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgICAgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5hYnJ1cHQoInJldHVybiIsIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7CiAgICAgICAgICAgICAgICAgIF90aGlzMy4kbmV0d29yay5wb3N0KCcvcC9jcy9ub2RlL3ByaW9yaXR5JywgewogICAgICAgICAgICAgICAgICAgIGRlZmF1bHRQcmlvcml0eTogX3RoaXMzLmNvbmZpZ0RhdGEucHJpb3JpdHksCiAgICAgICAgICAgICAgICAgICAgQlVTSU5FU1NfVFlQRTogX3RoaXMzLmNvbmZpZ0RhdGEuYnVzaW5lc3NUeXBlLAogICAgICAgICAgICAgICAgICAgIGlkOiBfdGhpczMuY29uZmlnRGF0YS5pZAogICAgICAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEucmVzdWx0Q29kZSA9PT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy4kTW9kYWwuZmNFcnJvcih7CiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn6ZSZ6K+vJywKICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogcmVzLmRhdGEucmVzdWx0TXNnLAogICAgICAgICAgICAgICAgICAgICAgICBtYXNrOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5yZXN1bHRDb2RlID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlcyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLnN0b3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgZ2V0VHJpZ2dlckJ1dHRvbnM6IGZ1bmN0aW9uIGdldFRyaWdnZXJCdXR0b25zKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKCiAgICAgIC8v6I635Y+W6Kem5Y+R5oyJ6ZKuCiAgICAgIHRoaXMuJG5ldHdvcmsucG9zdCgnL3AvY3Mvbm9kZS9kZWZpbmUvYnQnLCB7CiAgICAgICAgaWQ6IHRoaXMuY29uZmlnRGF0YS5idXNpbmVzc1R5cGUsCiAgICAgICAgdnVlRGlzcGFseTogMQogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmRhdGEucmVzdWx0Q29kZSA9PT0gMCkgewogICAgICAgICAgX3RoaXM0LnRyaWdnZXJCdXR0b25zID0gcmVzLmRhdGEuZGF0YS5kaWZpbmVEYXRhOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczQudHJpZ2dlckJ1dHRvbnMgPSBbXTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHRyaWdnZXJCdENoYW5nZTogZnVuY3Rpb24gdHJpZ2dlckJ0Q2hhbmdlKHZhbHVlKSB7CiAgICAgIC8v6Kem5Y+R5oyJ6ZKu6YCJ5oupCiAgICAgIGlmICh2YWx1ZVswXSA9PT0gJ2JTZWxlY3QtYWxsJykgewogICAgICAgIHRoaXMuY29uZmlnRGF0YS50cmlnZ2VyQnQgPSB0aGlzLnRyaWdnZXJCdXR0b25zLnJlZHVjZShmdW5jdGlvbiAoYXJyLCBjdXJyZW50KSB7CiAgICAgICAgICBhcnIucHVzaChjdXJyZW50LklEKTsKICAgICAgICAgIHJldHVybiBhcnI7CiAgICAgICAgfSwgW10pOwogICAgICB9CiAgICB9LAogICAgZ2V0VmlzaWJsZUJ1dHRvbnM6IGZ1bmN0aW9uIGdldFZpc2libGVCdXR0b25zKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKCiAgICAgIC8v6I635Y+W5Y+v6KeB5oyJ6ZKuCiAgICAgIHRoaXMuJG5ldHdvcmsucG9zdCgnL3AvY3Mvbm9kZS9kZWZpbmUvYnQnLCB7CiAgICAgICAgaWQ6IHRoaXMuY29uZmlnRGF0YS5idXNpbmVzc1R5cGUsCiAgICAgICAgdnVlRGlzcGFseTogMAogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmRhdGEucmVzdWx0Q29kZSA9PT0gMCkgewogICAgICAgICAgX3RoaXM1LnZpc2libGVCdXR0b25zID0gcmVzLmRhdGEuZGF0YS5kaWZpbmVEYXRhOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczUudmlzaWJsZUJ1dHRvbnMgPSBbXTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHZpc2libGVCdENoYW5nZTogZnVuY3Rpb24gdmlzaWJsZUJ0Q2hhbmdlKHZhbHVlKSB7CiAgICAgIC8v5Y+v6KeB5oyJ6ZKu6YCJ5oupCiAgICAgIGlmICh2YWx1ZVswXSA9PT0gJ2JTZWxlY3QtYWxsJykgewogICAgICAgIHRoaXMuY29uZmlnRGF0YS52aXNpYmxlQnQgPSB0aGlzLnZpc2libGVCdXR0b25zLnJlZHVjZShmdW5jdGlvbiAoYXJyLCBjdXJyZW50KSB7CiAgICAgICAgICBhcnIucHVzaChjdXJyZW50LklEKTsKICAgICAgICAgIHJldHVybiBhcnI7CiAgICAgICAgfSwgW10pOwogICAgICB9CiAgICB9CiAgfQp9Ow=="},null]}