{"remainingRequest":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceMonitor\\components\\videoPlayPlugin.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceMonitor\\components\\videoPlayPlugin.vue","mtime":1667545182489},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgdXRpbHMgZnJvbSAnQC9ob3RlbnQtdWktdXRpbCcNCmltcG9ydCB2aWRlb1BsdWdpbkJyb3dzZXJTZXR0aW5nIGZyb20gJy4vbW9kZWwvVmlkZW9QbHVnaW5Ccm93c2VyU2V0dGluZy52dWUnDQpleHBvcnQgZGVmYXVsdCB7DQogICAgY29tcG9uZW50czogew0KICAgICAgICB2aWRlb1BsdWdpbkJyb3dzZXJTZXR0aW5nLA0KICAgIH0sDQogICAgcHJvcHM6IHsNCiAgICAgICAgb3B0aW9uczogew0KICAgICAgICAgICAgdHlwZTogT2JqZWN0LA0KICAgICAgICAgICAgZGVmYXVsdDogKCkgPT4gew0KICAgICAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgICAgIGxheW91dDogJzJ4MicsDQogICAgICAgICAgICAgICAgICAgIHNob3dUb29sYmFyOiAxLA0KICAgICAgICAgICAgICAgICAgICBzaW1wbGVUaXBzOiBmYWxzZSwNCiAgICAgICAgICAgICAgICAgICAgbW91bnRlZEluaXQ6IHRydWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICB9LA0KICAgIH0sDQogICAgZGF0YSgpIHsNCiAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgIHRleHQ6ICcnLA0KICAgICAgICAgICAgZG93bmxvYWRVcmw6ICcuLy4uL3N0YXRpYy9wbHVnaW4vVmlkZW9XZWJQbHVnaW4uZXhlJywNCiAgICAgICAgICAgIHNob3dTZXR0aW5nOiBmYWxzZSwNCiAgICAgICAgICAgIHNpbXBsZVRpcHM6IHRoaXMub3B0aW9ucy5zaW1wbGVUaXBzLA0KICAgICAgICAgICAgd2lkdGg6IDAsDQogICAgICAgICAgICBoZWlnaHQ6IDAsDQogICAgICAgICAgICAvLyDmj5Lku7blr7nosaHlrp7kvovvvIzliJ3lp4vljJbkuLpudWxs77yM6ZyA6KaB5Yib5bu65aSa5Liq5o+S5Lu256qX5Y+j5pe277yM6ZyA6KaB5a6a5LmJ5aSa5Liq5o+S5Lu25a+56LGh5a6e5L6L5Y+Y6YeP77yM5ZCE5Liq5Y+Y6YeP5ZSv5LiA5qCH5b+X5a+55bqU55qE5o+S5Lu25a6e5L6LDQogICAgICAgICAgICBvV2ViQ29udHJvbDogbnVsbCwNCiAgICAgICAgICAgIGJJRTogISF3aW5kb3cuQWN0aXZlWE9iamVjdCB8fCAnQWN0aXZlWE9iamVjdCcgaW4gd2luZG93LCAvLyDmmK/lkKbkuLpJRea1j+iniOWZqA0KICAgICAgICAgICAgcHViS2V5OiAnJywgLy8gZGVtb+S4reacquS9v+eUqOWKoOWvhu+8jOWPr+agueaNrumcgOaxguWPgueFp+W8gOWPkeaMh+WNl+iHquihjOS9v+eUqOWKoOWvhuWKn+iDvQ0KICAgICAgICAgICAgaW5pdENvdW50OiAwLA0KICAgICAgICAgICAgcGxheU1vZGU6IDAsIC8vIOaSreaUvuexu+Wei++8jDAt6aKE6KeI77yMMS3lm57mlL4NCiAgICAgICAgICAgIHNob3dEaXZJbnN0cnVjdGlvbjogZmFsc2UsIC8vIOagh+W/l+aYr+WQpuaYvuekuuS9v+eUqOivtOaYjuW8ueahhg0KICAgICAgICAgICAgZW5kVGltZTogJycsDQogICAgICAgICAgICBzdGFydFRpbWU6ICcnLA0KICAgICAgICAgICAgcGxheVRpbWU6ICcnLA0KICAgICAgICAgICAgcGFyYW06IHsNCiAgICAgICAgICAgICAgICBhcmd1bWVudDogew0KICAgICAgICAgICAgICAgICAgICBhcHBrZXk6IHdpbmRvdy5jb250ZXh0LnZpZGVvQXBwa2V5LA0KICAgICAgICAgICAgICAgICAgICBpcDogd2luZG93LmNvbnRleHQudmlkZW9JcCwNCiAgICAgICAgICAgICAgICAgICAgcG9ydDogd2luZG93LmNvbnRleHQudmlkZW9Qb3J0LA0KICAgICAgICAgICAgICAgICAgICBzZWNyZXQ6IHdpbmRvdy5jb250ZXh0LnZpZGVvU2VjcmV0LA0KICAgICAgICAgICAgICAgICAgICBlbmFibGVIVFRQUzogMSwNCiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2U6ICd6aF9DTicsDQogICAgICAgICAgICAgICAgICAgIGxheW91dDogdGhpcy5vcHRpb25zLmxheW91dCwNCiAgICAgICAgICAgICAgICAgICAgcGxheU1vZGU6IDAsDQogICAgICAgICAgICAgICAgICAgIHJlY29ubmVjdER1cmF0aW9uOiA1LA0KICAgICAgICAgICAgICAgICAgICByZWNvbm5lY3RUaW1lczogNSwNCiAgICAgICAgICAgICAgICAgICAgc2hvd1NtYXJ0OiAwLA0KICAgICAgICAgICAgICAgICAgICBzaG93VG9vbGJhcjogdGhpcy5vcHRpb25zLnNob3dUb29sYmFyLA0KICAgICAgICAgICAgICAgICAgICB0b29sQmFyQnV0dG9uSURzOg0KICAgICAgICAgICAgICAgICAgICAgICAgJzIwNDgsMjA0OSwyMDUwLDIzMDQsMjMwNiwyMzA1LDIzMDcsMjMwOCwyMzA5LDQwOTYsNDYwOCw0MDk3LDQwOTksNDA5OCw0NjA5LDQxMDAnLA0KICAgICAgICAgICAgICAgICAgICBzbmFwRGlyOiAnRDovc25hcCcsDQogICAgICAgICAgICAgICAgICAgIHZpZGVvRGlyOiAnRDovdmlkZW8nLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgZnVuY05hbWU6ICdpbml0JywNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBwYXJhbVBsYXk6IHsNCiAgICAgICAgICAgICAgICBhcmd1bWVudDogew0KICAgICAgICAgICAgICAgICAgICBhdXRoVXVpZDogJycsDQogICAgICAgICAgICAgICAgICAgIGNhbWVyYUluZGV4Q29kZTogJycsDQogICAgICAgICAgICAgICAgICAgIGV6dml6RGlyZWN0OiAwLA0KICAgICAgICAgICAgICAgICAgICBncHVNb2RlOiAwLA0KICAgICAgICAgICAgICAgICAgICBzdHJlYW1Nb2RlOiAwLA0KICAgICAgICAgICAgICAgICAgICB0cmFuc01vZGU6IDEsDQogICAgICAgICAgICAgICAgICAgIHduZElkOiAtMSwNCiAgICAgICAgICAgICAgICAgICAgY2FzY2FkZTogMSwNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGZ1bmNOYW1lOiAnc3RhcnRQcmV2aWV3JywNCiAgICAgICAgICAgIH0sDQogICAgICAgIH0NCiAgICB9LA0KICAgIGNyZWF0ZWQoKSB7fSwNCiAgICBtb3VudGVkKCkgew0KICAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICAgICAgICB0aGlzLmdldFdpbmRvd1NpemUoKQ0KICAgICAgICB9KQ0KICAgICAgICBpZih0aGlzLm9wdGlvbnMubW91bnRlZEluaXQpew0KICAgICAgICAgICAgdGhpcy5vcGVuKCkNCiAgICAgICAgfQ0KICAgICAgICB0aGlzLiRyb290LiRvbigncmVzaXplJywgKCkgPT4gew0KICAgICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gew0KICAgICAgICAgICAgICAgIHRoaXMuZ2V0V2luZG93U2l6ZSgpDQogICAgICAgICAgICAgICAgaWYgKHRoaXMub1dlYkNvbnRyb2wpIHsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbC5KU19SZXNpemUodGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSkNCiAgICAgICAgfSkNCiAgICB9LA0KICAgIGJlZm9yZURlc3Ryb3koKSB7DQogICAgICAgIHRoaXMuZGlzY29ubmVjdCgpDQogICAgfSwNCiAgICBtZXRob2RzOiB7DQogICAgICAgIHJlc2l6ZSh3aWR0aCwgaGVpZ2h0KSB7DQogICAgICAgICAgICBpZighdGhpcy5vV2ViQ29udHJvbClyZXR1cm4NCiAgICAgICAgICAgIGxldCBpd2lkdGggPSB3aWR0aCA/IHdpZHRoIDogdGhpcy53aWR0aA0KICAgICAgICAgICAgbGV0IGloZWlnaHQgPSBoZWlnaHQgPyBoZWlnaHQgOiB0aGlzLmhlaWdodA0KICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbC5KU19SZXNpemUoaXdpZHRoLCBpaGVpZ2h0KQ0KICAgICAgICB9LA0KICAgICAgICBjdXRXaW5kb3cobGVmdCA9IDAsIHRvcCA9IDAsIHdpZHRoID0gMCwgaGVpZ2h0ID0gMCkgew0KICAgICAgICAgICAgaWYoIXRoaXMub1dlYkNvbnRyb2wpcmV0dXJuDQogICAgICAgICAgICB0aGlzLm9XZWJDb250cm9sLkpTX0N1dHRpbmdQYXJ0V2luZG93KGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCkNCiAgICAgICAgfSwNCiAgICAgICAgcmVwYWlyV2luZG93KCkgew0KICAgICAgICAgICAgaWYoIXRoaXMub1dlYkNvbnRyb2wpcmV0dXJuDQogICAgICAgICAgICB0aGlzLm9XZWJDb250cm9sLkpTX1JlcGFpclBhcnRXaW5kb3coMCwgMCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpDQogICAgICAgIH0sDQogICAgICAgIG9wZW4oKSB7DQogICAgICAgICAgICB0aGlzLmluaXRUaW1lKCkNCiAgICAgICAgICAgIHRoaXMuaW5pdFBsdWdpbigpDQoJCQlyZXR1cm4NCiAgICAgICAgICAgIHRoaXMuZ2V0V2luZG93U2l6ZSgpDQogICAgICAgIH0sDQogICAgICAgIGRlc3Ryb3koKSB7DQogICAgICAgICAgICBpZighdGhpcy5vV2ViQ29udHJvbClyZXR1cm4NCiAgICAgICAgICAgIHRoaXMub1dlYkNvbnRyb2wuSlNfRGVzdHJveVduZCgpOw0KICAgICAgICB9LA0KICAgICAgICBIaWRlV25kKCkgew0KICAgICAgICAgICAgaWYoIXRoaXMub1dlYkNvbnRyb2wpcmV0dXJuDQogICAgICAgICAgICB0aGlzLm9XZWJDb250cm9sLkpTX0hpZGVXbmQoKTsNCiAgICAgICAgfSwNCiAgICAgICAgU2hvd1duZCgpIHsNCiAgICAgICAgICAgIGlmKCF0aGlzLm9XZWJDb250cm9sKXJldHVybg0KICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbC5KU19TaG93V25kKCk7DQogICAgICAgIH0sDQogICAgICAgIGRpc2Nvbm5lY3QoKSB7DQogICAgICAgICAgICBpZighdGhpcy5vV2ViQ29udHJvbClyZXR1cm4NCiAgICAgICAgICAgIHRoaXMub1dlYkNvbnRyb2wuSlNfSGlkZVduZCgpOw0KICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbC5KU19EaXNjb25uZWN0KCkudGhlbigNCiAgICAgICAgICAgICAgICAoKT0+ew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn6ZSA5q+B5oiQ5YqfJykNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbCA9IG51bGwNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICApDQogICAgICAgIH0sDQogICAgICAgIHBsYXkoY29kZSkgew0KICAgICAgICAgICAgaWYgKCFjb2RlKSByZXR1cm4NCiAgICAgICAgICAgIHRoaXMucGFyYW1QbGF5LmFyZ3VtZW50LmNhbWVyYUluZGV4Q29kZSA9IGNvZGUNCiAgICAgICAgICAgIGxldCBwYXJhbXMgPSB1dGlscy5kZWVwQ2xvbmUodGhpcy5wYXJhbVBsYXkpDQogICAgICAgICAgICB0aGlzLnJlcXVlc3RJbnRlcmZhY2UocGFyYW1zKQ0KICAgICAgICB9LA0KICAgICAgICByZXF1ZXN0SW50ZXJmYWNlKHBhcmFtKSB7DQogICAgICAgICAgICBsZXQgSnNvblBhcmFtID0gcGFyYW0NCiAgICAgICAgICAgIGxldCBKc29uQXJndW1lbnQgPSBKc29uUGFyYW0uYXJndW1lbnQNCiAgICAgICAgICAgIEpzb25QYXJhbS5hcmd1bWVudCA9IEpTT04uc3RyaW5naWZ5KEpzb25Bcmd1bWVudCkNCg0KICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbC5KU19SZXF1ZXN0SW50ZXJmYWNlKEpzb25QYXJhbSkudGhlbigob0RhdGEpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhvRGF0YSkNCiAgICAgICAgICAgICAgICB0aGlzLnNob3dDQkluZm8oSlNPTi5zdHJpbmdpZnkob0RhdGEgPyBvRGF0YS5yZXNwb25zZU1zZyA6ICcnKSkNCiAgICAgICAgICAgIH0pDQogICAgICAgIH0sDQogICAgICAgIGF1dG9Jbml0KCkgew0KICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHV0aWxzLmRlZXBDbG9uZSh0aGlzLnBhcmFtKQ0KICAgICAgICAgICAgbGV0IEpzb25QYXJhbSA9IHBhcmFtcw0KDQogICAgICAgICAgICBpZiAoSnNvblBhcmFtLmFyZ3VtZW50Lmhhc093blByb3BlcnR5KCdwbGF5TW9kZScpKSB7DQogICAgICAgICAgICAgICAgdGhpcy5wbGF5TW9kZSA9IEpzb25QYXJhbS5hcmd1bWVudC5wbGF5TW9kZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy/pmpDol48v5pi+56S66L2u5beh5Yqf6IO95qih5Z2XDQogICAgICAgICAgICAvLyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVG91clByZXZpZXcnKS5zdHlsZS5kaXNwbGF5ID0NCiAgICAgICAgICAgIC8vICAgICAwID09IHBsYXlNb2RlICYmIEpzb25QYXJhbS5hcmd1bWVudC5oYXNPd25Qcm9wZXJ0eSgnYXBwa2V5JykNCiAgICAgICAgICAgIC8vICAgICAgICAgPyAnJw0KICAgICAgICAgICAgLy8gICAgICAgICA6ICdub25lJw0KDQogICAgICAgICAgICAvL+WmguaenOWMheWQq+WKoOWvhuWkhOeQhu+8jOWkhOeQhuWKoOWvhuWtl+autQ0KICAgICAgICAgICAgaWYgKEpzb25QYXJhbS5hcmd1bWVudC5oYXNPd25Qcm9wZXJ0eSgnZW5jcnlwdGVkRmllbGRzJykpIHsNCiAgICAgICAgICAgICAgICB2YXIgZW5GaWVsZHMgPSBKc29uUGFyYW0uYXJndW1lbnQuZW5jcnlwdGVkRmllbGRzDQogICAgICAgICAgICAgICAgdmFyIHN0ckFycmF5ID0gbmV3IEFycmF5KCkNCiAgICAgICAgICAgICAgICBzdHJBcnJheSA9IGVuRmllbGRzLnNwbGl0KCcsJykNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gc3RyQXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCdhcHBrZXknID09IHN0ckFycmF5W2ldKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoSnNvblBhcmFtLmFyZ3VtZW50Lmhhc093blByb3BlcnR5KCdhcHBrZXknKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcHBrZXkgPSBKc29uUGFyYW0uYXJndW1lbnQuYXBwa2V5DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwa2V5ID0gc2V0RW5jcnlwdChhcHBrZXkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSnNvblBhcmFtLmFyZ3VtZW50LmFwcGtleSA9IGFwcGtleQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCdzZWNyZXQnID09IHN0ckFycmF5W2ldKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoSnNvblBhcmFtLmFyZ3VtZW50Lmhhc093blByb3BlcnR5KCdzZWNyZXQnKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzZWNyZXQgPSBKc29uUGFyYW0uYXJndW1lbnQuc2VjcmV0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjcmV0ID0gc2V0RW5jcnlwdChzZWNyZXQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSnNvblBhcmFtLmFyZ3VtZW50LnNlY3JldCA9IHNlY3JldA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCdpcCcgPT0gc3RyQXJyYXlbaV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChKc29uUGFyYW0uYXJndW1lbnQuaGFzT3duUHJvcGVydHkoJ2lwJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXAgPSBKc29uUGFyYW0uYXJndW1lbnQuaXANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcCA9IHNldEVuY3J5cHQoaXApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSnNvblBhcmFtLmFyZ3VtZW50LmlwID0gaXANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIGlmICgnc25hcERpcicgPT0gc3RyQXJyYXlbaV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChKc29uUGFyYW0uYXJndW1lbnQuaGFzT3duUHJvcGVydHkoJ3NuYXBEaXInKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzbmFwRGlyID0gSnNvblBhcmFtLmFyZ3VtZW50LnNuYXBEaXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbmFwRGlyID0gc2V0RW5jcnlwdChzbmFwRGlyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpzb25QYXJhbS5hcmd1bWVudC5zbmFwRGlyID0gc25hcERpcg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCdsYXlvdXQnID09IHN0ckFycmF5W2ldKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoSnNvblBhcmFtLmFyZ3VtZW50Lmhhc093blByb3BlcnR5KCdsYXlvdXQnKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYXlvdXQgPSBKc29uUGFyYW0uYXJndW1lbnQubGF5b3V0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0ID0gc2V0RW5jcnlwdChsYXlvdXQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSnNvblBhcmFtLmFyZ3VtZW50LmxheW91dCA9IGxheW91dA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCd2aWRlb0RpcicgPT0gc3RyQXJyYXlbaV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChKc29uUGFyYW0uYXJndW1lbnQuaGFzT3duUHJvcGVydHkoJ3ZpZGVvRGlyJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9EaXIgPSBKc29uUGFyYW0uYXJndW1lbnQudmlkZW9EaXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0RpciA9IHNldEVuY3J5cHQodmlkZW9EaXIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSnNvblBhcmFtLmFyZ3VtZW50LnZpZGVvRGlyID0gdmlkZW9EaXINCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8xLjQuMeWPiuS7peS4iueJiOacrOaUr+aMgWFyZ3VtZW505a2X5q615Li6anNvbu+8jOS7peS4i+eJiOacrGFyZ3VtZW505b+F6aG75Li6c3RyaW5nDQogICAgICAgICAgICBsZXQgSnNvbkFyZ3VtZW50ID0gSnNvblBhcmFtLmFyZ3VtZW50DQogICAgICAgICAgICBKc29uUGFyYW0uYXJndW1lbnQgPSBKU09OLnN0cmluZ2lmeShKc29uQXJndW1lbnQpDQoNCiAgICAgICAgICAgIC8vcGFyYW0gPSB7DQogICAgICAgICAgICAvLyAgICAiYXJndW1lbnQiOiAneyJhcHBrZXkiOiAiMjEyMTYwOTkiLCJpcCI6ICIxNzIuNy4xMy4yNDIiLCJwb3J0IjogNDQzLCJzZWNyZXQiOiAiZFg1R3QwQzBobUtiUTl1Y0huV1kiLCJlbmFibGVIVFRQUyI6IDEsImxhbmd1YWdlIjogInpoX0NOIiwibGF5b3V0IjogIjJ4MiIsInBsYXlNb2RlIjogMCwicmVjb25uZWN0RHVyYXRpb24iOiA1LCJyZWNvbm5lY3RUaW1lcyI6IDUsInNob3dTbWFydCI6IDAsInNob3dUb29sYmFyIjogMSwic25hcERpciI6ICJEOi9zbmFwIiwidmlkZW9EaXIiOiAiRDovdmlkZW8ifScsDQogICAgICAgICAgICAvLyAgICAiZnVuY05hbWUiOiAiaW5pdCINCiAgICAgICAgICAgIC8vfQ0KDQogICAgICAgICAgICB0aGlzLm9XZWJDb250cm9sLkpTX1JlcXVlc3RJbnRlcmZhY2UoSnNvblBhcmFtKS50aGVuKChvRGF0YSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG9EYXRhKQ0KICAgICAgICAgICAgICAgIHRoaXMuJGVtaXQoJ3JlYWR5JykNCiAgICAgICAgICAgICAgICB0aGlzLnNob3dDQkluZm8oSlNPTi5zdHJpbmdpZnkob0RhdGEgPyBvRGF0YS5yZXNwb25zZU1zZyA6ICcnKSkNCiAgICAgICAgICAgICAgICAvLyBVcGRhdGVQbGF5UGFyYW1WYWx1ZSgpDQogICAgICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbC5KU19SZXNpemUodGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpDQogICAgICAgICAgICB9KQ0KICAgICAgICB9LA0KICAgICAgICAvLyDliJ3lp4vljJbmj5Lku7YNCiAgICAgICAgaW5pdFBsdWdpbigpIHsNCiAgICAgICAgICAgIGlmKHRoaXMub1dlYkNvbnRyb2whPT1udWxsKSByZXR1cm4NCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCLliJ3lp4vljJbmj5Lku7YiKQ0KICAgICAgICAgICAgLy8g5Yib5bu65o+S5Lu25a6e5L6L77yM5bm25ZCv5Yqo5pys5Zyw5pyN5Yqh5bu656uLd2Vic29ja2V06L+e5o6l77yM5Yib5bu65o+S5Lu256qX5Y+jDQogICAgICAgICAgICB0aGlzLm9XZWJDb250cm9sID0gbmV3IFdlYkNvbnRyb2woew0KICAgICAgICAgICAgICAgIHN6UGx1Z2luQ29udGFpbmVyOiAncGxheVduZCcsDQogICAgICAgICAgICAgICAgaVNlcnZpY2VQb3J0U3RhcnQ6IDE1OTAwLA0KICAgICAgICAgICAgICAgIGlTZXJ2aWNlUG9ydEVuZDogMTU5MDksDQogICAgICAgICAgICAgICAgc3pDbGFzc0lkOiAnMjNCRjNCMEEtMkM1Ni00RDk3LTlDMDMtMENCMTAzQUE4RjExJywgLy8g55So5LqOSUUxMOS9v+eUqEFjdGl2ZVjnmoRjbHNpZA0KICAgICAgICAgICAgICAgIGNiQ29ubmVjdFN1Y2Nlc3M6ICgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0Q291bnQgPSAwDQogICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q2FsbGJhY2tzKCkNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbA0KICAgICAgICAgICAgICAgICAgICAgICAgLkpTX1N0YXJ0U2VydmljZSgnd2luZG93Jywgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRsbFBhdGg6ICcuL1ZpZGVvUGx1Z2luQ29ubmVjdC5kbGwnLA0KICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkpTX0NyZWF0ZVduZCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGxheVduZCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53aWR0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhlaWdodA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdKU19DcmVhdGVXbmQgc3VjY2VzcycpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRvSW5pdCgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSlNfUmVxdWVzdEludGVyZmFjZSh7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jTmFtZTogJ2dldFJTQVB1YktleScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudDogSlNPTi5zdHJpbmdpZnkoew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleUxlbmd0aDogMTAyNCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigob0RhdGEpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG9EYXRhKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9EYXRhLnJlc3BvbnNlTXNnLmRhdGEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnB1YktleSA9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9EYXRhLnJlc3BvbnNlTXNnLmRhdGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7fQ0KICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY2JDb25uZWN0RXJyb3I6ICgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NiQ29ubmVjdEVycm9yJykNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vV2ViQ29udHJvbCA9IG51bGwNCiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gJ+aPkuS7tuacquWQr+WKqO+8jOato+WcqOWwneivleWQr+WKqO+8jOivt+eojeWAmS4uLicNCiAgICAgICAgICAgICAgICAgICAgLy8gJCgnI3BsYXlXbmQnKS5odG1sKCfmj5Lku7bmnKrlkK/liqjvvIzmraPlnKjlsJ3or5XlkK/liqjvvIzor7fnqI3lgJkuLi4nKQ0KICAgICAgICAgICAgICAgICAgICBXZWJDb250cm9sLkpTX1dha2VVcCgnVmlkZW9XZWJQbHVnaW46Ly8nKQ0KICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRDb3VudCsrDQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmluaXRDb3VudCA8IDMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFBsdWdpbigpDQogICAgICAgICAgICAgICAgICAgICAgICB9LCAzMDAwKQ0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93U2V0dGluZyA9IHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9ICcnDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNiQ29ubmVjdENsb3NlOiAoYk5vcm1hbENsb3NlKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIC8vIOW8guW4uOaWreW8gO+8mmJOb3JtYWxDbG9zZSA9IGZhbHNlDQogICAgICAgICAgICAgICAgICAgIC8vIEpTX0Rpc2Nvbm5lY3TmraPluLjmlq3lvIDvvJpiTm9ybWFsQ2xvc2UgPSB0cnVlDQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYkNvbm5lY3RDbG9zZScpDQogICAgICAgICAgICAgICAgICAgIHRoaXMub1dlYkNvbnRyb2wgPSBudWxsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIH0pDQogICAgICAgIH0sDQogICAgICAgIC8vIOiOt+WPlueql+WPo+WuvemrmA0KICAgICAgICBnZXRXaW5kb3dTaXplKCkgew0KICAgICAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMuJHJlZnMucGxheWVyQ29udGFpbmVyLmNsaWVudFdpZHRoDQogICAgICAgICAgICB0aGlzLmhlaWdodCA9IHRoaXMuJHJlZnMucGxheWVyQ29udGFpbmVyLmNsaWVudEhlaWdodA0KICAgICAgICB9LA0KICAgICAgICAvLyDliJ3lp4vljJbml7bpl7Tlj5jph48NCiAgICAgICAgaW5pdFRpbWUoKSB7DQogICAgICAgICAgICB0aGlzLmVuZFRpbWUgPSBNYXRoLmZsb29yKA0KICAgICAgICAgICAgICAgIG5ldyBEYXRlKA0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQobmV3IERhdGUoKSwgJ3l5eXktTU0tZGQgMjM6NTk6NTknKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJy0nLCAnLycpDQogICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnLScsICcvJykNCiAgICAgICAgICAgICAgICApLmdldFRpbWUoKSAvIDEwMDANCiAgICAgICAgICAgICkudG9TdHJpbmcoKQ0KICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBNYXRoLmZsb29yKA0KICAgICAgICAgICAgICAgIG5ldyBEYXRlKA0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQobmV3IERhdGUoKSwgJ3l5eXktTU0tZGQgMDA6MDA6MDAnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJy0nLCAnLycpDQogICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnLScsICcvJykNCiAgICAgICAgICAgICAgICApLmdldFRpbWUoKSAvIDEwMDANCiAgICAgICAgICAgICkudG9TdHJpbmcoKQ0KICAgICAgICAgICAgdGhpcy5wbGF5VGltZSA9IE1hdGguZmxvb3IoDQogICAgICAgICAgICAgICAgbmV3IERhdGUoDQogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdChuZXcgRGF0ZSgpLCAneXl5eS1NTS1kZCAwMDowMDowMCcpDQogICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnLScsICcvJykNCiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCctJywgJy8nKQ0KICAgICAgICAgICAgICAgICkuZ2V0VGltZSgpIC8gMTAwMA0KICAgICAgICAgICAgKS50b1N0cmluZygpDQogICAgICAgIH0sDQogICAgICAgIC8vIOiuvue9rueql+WPo+aOp+WItuWbnuiwgw0KICAgICAgICBzZXRDYWxsYmFja3MoKSB7DQogICAgICAgICAgICB0aGlzLm9XZWJDb250cm9sLkpTX1NldFdpbmRvd0NvbnRyb2xDYWxsYmFjayh7DQogICAgICAgICAgICAgICAgY2JJbnRlZ3JhdGlvbkNhbGxCYWNrOiB0aGlzLmNiSW50ZWdyYXRpb25DYWxsQmFjaywNCiAgICAgICAgICAgIH0pDQogICAgICAgIH0sDQoNCiAgICAgICAgLy8g5o6o6YCB5raI5oGvDQogICAgICAgIGNiSW50ZWdyYXRpb25DYWxsQmFjayhvRGF0YSkgew0KICAgICAgICAgICAgdGhpcy5zaG93Q0JJbmZvKEpTT04uc3RyaW5naWZ5KG9EYXRhLnJlc3BvbnNlTXNnKSkNCiAgICAgICAgfSwNCiAgICAgICAgLy8g5pi+56S65o6l5Y+j6L+U5Zue55qE5raI5oGv5Y+K5o+S5Lu25Zue6LCD5L+h5oGvDQogICAgICAgIHNob3dDQkluZm8oc3pJbmZvLCB0eXBlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygn5o6l5Y+j6L+U5Zue55qE5raI5oGv5Y+K5o+S5Lu25Zue6LCD5L+h5oGvOicgKyB0eXBlICsgc3pJbmZvKQ0KICAgICAgICB9LA0KDQogICAgICAgIC8vIOagvOW8j+WMluaXtumXtA0KICAgICAgICBkYXRlRm9ybWF0KG9EYXRlLCBmbXQpIHsNCiAgICAgICAgICAgIHZhciBvID0gew0KICAgICAgICAgICAgICAgICdNKyc6IG9EYXRlLmdldE1vbnRoKCkgKyAxLCAvL+aciOS7vQ0KICAgICAgICAgICAgICAgICdkKyc6IG9EYXRlLmdldERhdGUoKSwgLy/ml6UNCiAgICAgICAgICAgICAgICAnaCsnOiBvRGF0ZS5nZXRIb3VycygpLCAvL+Wwj+aXtg0KICAgICAgICAgICAgICAgICdtKyc6IG9EYXRlLmdldE1pbnV0ZXMoKSwgLy/liIYNCiAgICAgICAgICAgICAgICAncysnOiBvRGF0ZS5nZXRTZWNvbmRzKCksIC8v56eSDQogICAgICAgICAgICAgICAgJ3ErJzogTWF0aC5mbG9vcigob0RhdGUuZ2V0TW9udGgoKSArIDMpIC8gMyksIC8v5a2j5bqmDQogICAgICAgICAgICAgICAgUzogb0RhdGUuZ2V0TWlsbGlzZWNvbmRzKCksIC8v5q+r56eSDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoLyh5KykvLnRlc3QoZm10KSkgew0KICAgICAgICAgICAgICAgIGZtdCA9IGZtdC5yZXBsYWNlKA0KICAgICAgICAgICAgICAgICAgICBSZWdFeHAuJDEsDQogICAgICAgICAgICAgICAgICAgIChvRGF0ZS5nZXRGdWxsWWVhcigpICsgJycpLnN1YnN0cig0IC0gUmVnRXhwLiQxLmxlbmd0aCkNCiAgICAgICAgICAgICAgICApDQogICAgICAgICAgICB9DQogICAgICAgICAgICBmb3IgKHZhciBrIGluIG8pIHsNCiAgICAgICAgICAgICAgICBpZiAobmV3IFJlZ0V4cCgnKCcgKyBrICsgJyknKS50ZXN0KGZtdCkpIHsNCiAgICAgICAgICAgICAgICAgICAgZm10ID0gZm10LnJlcGxhY2UoDQogICAgICAgICAgICAgICAgICAgICAgICBSZWdFeHAuJDEsDQogICAgICAgICAgICAgICAgICAgICAgICBSZWdFeHAuJDEubGVuZ3RoID09IDENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG9ba10NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgnMDAnICsgb1trXSkuc3Vic3RyKCgnJyArIG9ba10pLmxlbmd0aCkNCiAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmbXQNCiAgICAgICAgfSwNCg0KICAgICAgICB0ZXh0Ym94KG9iaiwgbWluLCBtYXgpIHsNCiAgICAgICAgICAgIG9iai52YWx1ZSA9IG9iai52YWx1ZS5yZXBsYWNlKC9bXlxkXS9nLCAnJykNCiAgICAgICAgICAgIGlmICgNCiAgICAgICAgICAgICAgICBwYXJzZUludChvYmoudmFsdWUpID09IG9iai52YWx1ZSAmJg0KICAgICAgICAgICAgICAgIHBhcnNlSW50KG9iai52YWx1ZSkgPj0gbWluICYmDQogICAgICAgICAgICAgICAgcGFyc2VJbnQob2JqLnZhbHVlKSA8PSBtYXgNCiAgICAgICAgICAgICkgew0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAocGFyc2VJbnQob2JqLnZhbHVlKSA8IG1pbikgew0KICAgICAgICAgICAgICAgICAgICBvYmoudmFsdWUgPSBtaW4NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKHBhcnNlSW50KG9iai52YWx1ZSkgPiBtYXgpIHsNCiAgICAgICAgICAgICAgICAgICAgb2JqLnZhbHVlID0gbWF4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICBvcGVuTW9kZWwoKSB7DQogICAgICAgICAgICB0aGlzLiRyZWZzLkJyb3dzZXJTZXR0aW5nLm9wZW4oKQ0KICAgICAgICB9LA0KICAgIH0sDQp9DQo="},null]}