{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\EventRegistration\\components\\ScopeClassify\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\EventRegistration\\components\\ScopeClassify\\index.vue","mtime":1751880370789},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5qb2luLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IucmVkdWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmluY2x1ZGVzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLm1hdGNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnBhZC1zdGFydC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgeyBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IHsgcmVmaW5lUmVxdWVzdEJvZHkgfSBmcm9tICdAL3V0aWxzL3JlcXVlc3RXcmFwcGVycyc7CmltcG9ydCB7IHRhYmxlRGF0YSB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL2Fsb25nUm91dGVJbmZvJzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHR1bm5lbERhdGEgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvaW5mb01nbXRQYXRyb2xzUmVzY3Vlcy90dW5uZWxJbmZvJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdTY29wZUNsYXNzaWZ5JywKICBwcm9wczogewogICAgdHlwZTogewogICAgICBkZWZhdWx0OiAnMScsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfSwKICAgIHJvYWRJZDogewogICAgICBkZWZhdWx0OiAnJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9LAogICAgcGlsZU51bWJlclJhbmdlOiB7CiAgICAgIGRlZmF1bHQ6ICcnLAogICAgICB0eXBlOiBTdHJpbmcKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgLy8g6Ieq5a6a5LmJ6aqM6K+B6KeE5YiZ77ya5pyJ5YC85pe25b+F6aG75Zyo6IyD5Zu05YaFCiAgICB2YXIgdmFsaWRhdGVSYW5nZTEgPSBmdW5jdGlvbiB2YWxpZGF0ZVJhbmdlMSgpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIChydWxlLCB2YWx1ZSwgY2FsbGJhY2spIHsKICAgICAgICBpZiAoX3RoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcgPT09IHVuZGVmaW5lZCAmJiBfdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZCA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0gZWxzZSBpZiAoIV90aGlzLmlzVmFsdWVJblJhbmdlKF90aGlzLmNvbWJpbmVkVmFsdWUxLCBfdGhpcy5zdGFydFZhbHVlLCBfdGhpcy5lbmRWYWx1ZSkpIHsKICAgICAgICAgIF90aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnID0gdW5kZWZpbmVkOwogICAgICAgICAgX3RoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgICAgICBfdGhpcy5wbGFjZURhdGEuc3RhcnRQZWcgPSAnJzsKICAgICAgICAgIHZhciBwbGFjZURhdGEgPSBfdGhpcy5mb3JtYXRQYWxjZURhdGEoKTsKICAgICAgICAgIF90aGlzLiRlbWl0KCdjaGFuZ2UnLCBwbGFjZURhdGEpOwogICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCJcdTYyNDBcdTU4NkJcdTUxOTlcdTc2ODRcdTY4NjlcdTUzRjdcdTRFMERcdTU3MjgiLmNvbmNhdChfdGhpcy5zdGFydFZhbHVlLCAiLSIpLmNvbmNhdChfdGhpcy5lbmRWYWx1ZSwgIlx1ODMwM1x1NTZGNFx1NTE4NSIpKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgfQogICAgICB9OwogICAgfTsKICAgIHZhciB2YWxpZGF0ZVJhbmdlMiA9IGZ1bmN0aW9uIHZhbGlkYXRlUmFuZ2UyKCkgewogICAgICByZXR1cm4gZnVuY3Rpb24gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgewogICAgICAgIGlmIChfdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWcgPT09IHVuZGVmaW5lZCAmJiBfdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWdBZGQgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICB9IGVsc2UgaWYgKCFfdGhpcy5pc1ZhbHVlSW5SYW5nZShfdGhpcy5jb21iaW5lZFZhbHVlMiwgX3RoaXMuc3RhcnRWYWx1ZSwgX3RoaXMuZW5kVmFsdWUpKSB7CiAgICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWcgPSB1bmRlZmluZWQ7CiAgICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgICAgICBfdGhpcy5wbGFjZURhdGEuZW5kUGVnID0gJyc7CiAgICAgICAgICB2YXIgcGxhY2VEYXRhID0gX3RoaXMuZm9ybWF0UGFsY2VEYXRhKCk7CiAgICAgICAgICBfdGhpcy4kZW1pdCgnY2hhbmdlJywgcGxhY2VEYXRhKTsKICAgICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigiXHU2MjQwXHU1ODZCXHU1MTk5XHU3Njg0XHU2ODY5XHU1M0Y3XHU0RTBEXHU1NzI4Ii5jb25jYXQoX3RoaXMuc3RhcnRWYWx1ZSwgIi0iKS5jb25jYXQoX3RoaXMuZW5kVmFsdWUsICJcdTgzMDNcdTU2RjRcdTUxODUiKSkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0KICAgICAgfTsKICAgIH07CiAgICByZXR1cm4gewogICAgICAvLyDmlLbotLnnq5kKICAgICAgdG9sbFN0YXRpb25EYXRhOiBbXSwKICAgICAgLy8g6Zqn6YGTCiAgICAgIHR1bm5lbERhdGE6IFtdLAogICAgICAvLyDkupLpgJrnq4vkuqQKICAgICAgZ3JhZGVPdmVyRGF0YTogW10sCiAgICAgIC8vIOacjeWKoeWMugogICAgICBzZXJ2aWNlQXJlYURhdGE6IFtdLAogICAgICBhZGRFZGl0Rm9ybTogewogICAgICAgIHN0YXJ0UGVnOiB1bmRlZmluZWQsCiAgICAgICAgc3RhcnRQZWdBZGQ6IHVuZGVmaW5lZCwKICAgICAgICBlbmRQZWc6IHVuZGVmaW5lZCwKICAgICAgICBlbmRQZWdBZGQ6IHVuZGVmaW5lZCwKICAgICAgICBzdGFydFBhdHJvbElkOiAnJywKICAgICAgICBlbmRQYXRyb2xJZDogJycsCiAgICAgICAgcGxhY2VEZXRhaWw6IFtdLAogICAgICAgIHN3elBsYWNlRGV0YWlsOiBbXSwKICAgICAgICBsalBsYWNlRGV0YWlsOiBbXSwKICAgICAgICBzZFBsYWNlRGV0YWlsOiBbXSwKICAgICAgICBmd3FQbGFjZURldGFpbDogW10KICAgICAgfSwKICAgICAgcnVsZXM6IHsKICAgICAgICBzdGFydFBlZzogW3sKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVSYW5nZTEoKSwKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGVuZFBlZzogW3sKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVSYW5nZTIoKSwKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHBsYWNlRGF0YToge30sCiAgICAgIHN0YXJ0VmFsdWU6IDAsCiAgICAgIGVuZFZhbHVlOiAwCiAgICB9OwogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHt9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7fSwKICBjb21wdXRlZDogewogICAgY29tYmluZWRWYWx1ZTE6IGZ1bmN0aW9uIGNvbWJpbmVkVmFsdWUxKCkgewogICAgICByZXR1cm4gcGFyc2VGbG9hdCgiIi5jb25jYXQodGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZywgIi4iKS5jb25jYXQoU3RyaW5nKHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQpLnBhZFN0YXJ0KDMsICcwJykpKSB8fCAwOwogICAgfSwKICAgIGNvbWJpbmVkVmFsdWUyOiBmdW5jdGlvbiBjb21iaW5lZFZhbHVlMigpIHsKICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIiIuY29uY2F0KHRoaXMuYWRkRWRpdEZvcm0uZW5kUGVnLCAiLiIpLmNvbmNhdChTdHJpbmcodGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWdBZGQpLnBhZFN0YXJ0KDMsICcwJykpKSB8fCAwOwogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgIHR5cGU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihuZXdWYWwsIG9sZFZhbCkgewogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcgPSB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZCA9IHVuZGVmaW5lZDsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBlZyA9IHVuZGVmaW5lZDsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBlZ0FkZCA9IHVuZGVmaW5lZDsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGF0cm9sSWQgPSAnJzsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBhdHJvbElkID0gJyc7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5wbGFjZURldGFpbCA9IFtdOwogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3d6UGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmxqUGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnNkUGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmZ3cVBsYWNlRGV0YWlsID0gW107CiAgICAgIH0sCiAgICAgIGltbWVkaWF0ZTogdHJ1ZQogICAgfSwKICAgIHJvYWRJZDogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKG5ld1ZhbCwgb2xkVmFsKSB7CiAgICAgICAgaWYgKG5ld1ZhbCkgewogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZyA9IHVuZGVmaW5lZDsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBlZyA9IHVuZGVmaW5lZDsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZW5kUGVnQWRkID0gdW5kZWZpbmVkOwogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBhdHJvbElkID0gJyc7CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBhdHJvbElkID0gJyc7CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnBsYWNlRGV0YWlsID0gW107CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnN3elBsYWNlRGV0YWlsID0gW107CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmxqUGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc2RQbGFjZURldGFpbCA9IFtdOwogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5md3FQbGFjZURldGFpbCA9IFtdOwogICAgICAgICAgdGhpcy5nZXRBbG9uZ1JvdXRlSW5mbyhuZXdWYWwpOwogICAgICAgICAgdGhpcy5nZXRUdW5uZWxEYXRhKG5ld1ZhbCk7CiAgICAgICAgICB0aGlzLnBhcnNlU3RyaW5nKCk7CiAgICAgICAgfQogICAgICB9LAogICAgICBkZWVwOiB0cnVlLAogICAgICAvLyDlvIDlkK/mt7Hluqbnm5HlkKwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBnZXREaWN0aW9uYXJ5QnlDb2RlOiBnZXREaWN0aW9uYXJ5QnlDb2RlLAogICAgcGFyc2VTdHJpbmc6IGZ1bmN0aW9uIHBhcnNlU3RyaW5nKCkgewogICAgICBpZiAodGhpcy5waWxlTnVtYmVyUmFuZ2UpIHsKICAgICAgICB2YXIgbWF0Y2ggPSB0aGlzLnBpbGVOdW1iZXJSYW5nZS5tYXRjaCgvXltrS10oXGQrKSg/OlwrKFxkezEsM30pKT9+W2tLXShcZCspKD86XCsoXGR7MSwzfSkpPyQvKTsKICAgICAgICB0aGlzLnN0YXJ0VmFsdWUgPSBwYXJzZUZsb2F0KCIiLmNvbmNhdChtYXRjaFsxXSwgIi4iKS5jb25jYXQoU3RyaW5nKG1hdGNoWzJdKS5wYWRTdGFydCgzLCAnMCcpKSkgfHwgMDsKICAgICAgICB0aGlzLmVuZFZhbHVlID0gcGFyc2VGbG9hdCgiIi5jb25jYXQobWF0Y2hbM10sICIuIikuY29uY2F0KFN0cmluZyhtYXRjaFs0XSkucGFkU3RhcnQoMywgJzAnKSkpIHx8IDA7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0gMDsKICAgICAgICB0aGlzLmVuZFZhbHVlID0gTnVtYmVyLk1BWF9WQUxVRTsKICAgICAgfQogICAgfSwKICAgIGlzVmFsdWVJblJhbmdlOiBmdW5jdGlvbiBpc1ZhbHVlSW5SYW5nZSh2YWx1ZSwgYm91bmQxLCBib3VuZDIpIHsKICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicgfHwgaXNOYU4odmFsdWUpKSByZXR1cm4gZmFsc2U7CiAgICAgIGlmICghU3RyaW5nKHZhbHVlKS5pbmNsdWRlcygnLicpKSByZXR1cm4gdHJ1ZTsKICAgICAgdmFyIF9yZWYgPSBbTWF0aC5taW4oYm91bmQxLCBib3VuZDIpLCBNYXRoLm1heChib3VuZDEsIGJvdW5kMildLAogICAgICAgIG1pbiA9IF9yZWZbMF0sCiAgICAgICAgbWF4ID0gX3JlZlsxXTsKICAgICAgcmV0dXJuIHZhbHVlID49IG1pbiAmJiB2YWx1ZSA8PSBtYXg7CiAgICB9LAogICAgc3RhcnRQZWdDaGFuZ2U6IGZ1bmN0aW9uIHN0YXJ0UGVnQ2hhbmdlKHZhbCkgewogICAgICBpZiAodGhpcy5pc1ZhbHVlSW5SYW5nZSh0aGlzLmNvbWJpbmVkVmFsdWUxLCB0aGlzLnN0YXJ0VmFsdWUsIHRoaXMuZW5kVmFsdWUpKSB7CiAgICAgICAgdGhpcy5wbGFjZURhdGEuc3RhcnRQZWcgPSB2YWw7CiAgICAgICAgdmFyIHBsYWNlRGF0YSA9IHRoaXMuZm9ybWF0UGFsY2VEYXRhKCk7CiAgICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgcGxhY2VEYXRhKTsKICAgICAgfQogICAgfSwKICAgIHN0YXJ0UGVnQWRkQ2hhbmdlOiBmdW5jdGlvbiBzdGFydFBlZ0FkZENoYW5nZSh2YWwpIHsKICAgICAgaWYgKHRoaXMuaXNWYWx1ZUluUmFuZ2UodGhpcy5jb21iaW5lZFZhbHVlMSwgdGhpcy5zdGFydFZhbHVlLCB0aGlzLmVuZFZhbHVlKSkgewogICAgICAgIHRoaXMucGxhY2VEYXRhLnN0YXJ0UGVnQWRkID0gdmFsOwogICAgICAgIHZhciBwbGFjZURhdGEgPSB0aGlzLmZvcm1hdFBhbGNlRGF0YSgpOwogICAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZScsIHBsYWNlRGF0YSk7CiAgICAgIH0KICAgIH0sCiAgICBlbmRQZWdDaGFuZ2U6IGZ1bmN0aW9uIGVuZFBlZ0NoYW5nZSh2YWwpIHsKICAgICAgaWYgKHRoaXMuaXNWYWx1ZUluUmFuZ2UodGhpcy5jb21iaW5lZFZhbHVlMiwgdGhpcy5zdGFydFZhbHVlLCB0aGlzLmVuZFZhbHVlKSkgewogICAgICAgIHRoaXMucGxhY2VEYXRhLmVuZFBlZyA9IHZhbDsKICAgICAgICB2YXIgcGxhY2VEYXRhID0gdGhpcy5mb3JtYXRQYWxjZURhdGEoKTsKICAgICAgICB0aGlzLiRlbWl0KCdjaGFuZ2UnLCBwbGFjZURhdGEpOwogICAgICB9CiAgICB9LAogICAgZW5kUGVnQWRkQ2hhbmdlOiBmdW5jdGlvbiBlbmRQZWdBZGRDaGFuZ2UodmFsKSB7CiAgICAgIGlmICh0aGlzLmlzVmFsdWVJblJhbmdlKHRoaXMuY29tYmluZWRWYWx1ZTIsIHRoaXMuc3RhcnRWYWx1ZSwgdGhpcy5lbmRWYWx1ZSkpIHsKICAgICAgICB0aGlzLnBsYWNlRGF0YS5lbmRQZWdBZGQgPSB2YWw7CiAgICAgICAgdmFyIHBsYWNlRGF0YSA9IHRoaXMuZm9ybWF0UGFsY2VEYXRhKCk7CiAgICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgcGxhY2VEYXRhKTsKICAgICAgfQogICAgfSwKICAgIGZvcm1hdFBhbGNlRGF0YTogZnVuY3Rpb24gZm9ybWF0UGFsY2VEYXRhKCkgewogICAgICB2YXIgX3RoaXMkcGxhY2VEYXRhID0gdGhpcy5wbGFjZURhdGEsCiAgICAgICAgX3RoaXMkcGxhY2VEYXRhJHN0YXJ0ID0gX3RoaXMkcGxhY2VEYXRhLnN0YXJ0UGVnLAogICAgICAgIHN0YXJ0UGVnID0gX3RoaXMkcGxhY2VEYXRhJHN0YXJ0ID09PSB2b2lkIDAgPyAnJyA6IF90aGlzJHBsYWNlRGF0YSRzdGFydCwKICAgICAgICBfdGhpcyRwbGFjZURhdGEkc3RhcnQyID0gX3RoaXMkcGxhY2VEYXRhLnN0YXJ0UGVnQWRkLAogICAgICAgIHN0YXJ0UGVnQWRkID0gX3RoaXMkcGxhY2VEYXRhJHN0YXJ0MiA9PT0gdm9pZCAwID8gJycgOiBfdGhpcyRwbGFjZURhdGEkc3RhcnQyLAogICAgICAgIF90aGlzJHBsYWNlRGF0YSRlbmRQZSA9IF90aGlzJHBsYWNlRGF0YS5lbmRQZWcsCiAgICAgICAgZW5kUGVnID0gX3RoaXMkcGxhY2VEYXRhJGVuZFBlID09PSB2b2lkIDAgPyAnJyA6IF90aGlzJHBsYWNlRGF0YSRlbmRQZSwKICAgICAgICBfdGhpcyRwbGFjZURhdGEkZW5kUGUyID0gX3RoaXMkcGxhY2VEYXRhLmVuZFBlZ0FkZCwKICAgICAgICBlbmRQZWdBZGQgPSBfdGhpcyRwbGFjZURhdGEkZW5kUGUyID09PSB2b2lkIDAgPyAnJyA6IF90aGlzJHBsYWNlRGF0YSRlbmRQZTIsCiAgICAgICAgX3RoaXMkcGxhY2VEYXRhJHN0YXJ0MyA9IF90aGlzJHBsYWNlRGF0YS5zdGFydFBhdHJvbCwKICAgICAgICBzdGFydFBhdHJvbCA9IF90aGlzJHBsYWNlRGF0YSRzdGFydDMgPT09IHZvaWQgMCA/ICcnIDogX3RoaXMkcGxhY2VEYXRhJHN0YXJ0MywKICAgICAgICBfdGhpcyRwbGFjZURhdGEkZW5kUGEgPSBfdGhpcyRwbGFjZURhdGEuZW5kUGF0cm9sLAogICAgICAgIGVuZFBhdHJvbCA9IF90aGlzJHBsYWNlRGF0YSRlbmRQYSA9PT0gdm9pZCAwID8gJycgOiBfdGhpcyRwbGFjZURhdGEkZW5kUGEsCiAgICAgICAgX3RoaXMkcGxhY2VEYXRhJHBsYWNlID0gX3RoaXMkcGxhY2VEYXRhLnBsYWNlRGV0YWlsLAogICAgICAgIHBsYWNlRGV0YWlsID0gX3RoaXMkcGxhY2VEYXRhJHBsYWNlID09PSB2b2lkIDAgPyBbXSA6IF90aGlzJHBsYWNlRGF0YSRwbGFjZTsKICAgICAgdmFyIHN0YXJ0ID0gc3RhcnRQZWcgPyAnSycgKyBzdGFydFBlZyArIChzdGFydFBlZ0FkZCAhPT0gJycgPyAnKycgKyBzdGFydFBlZ0FkZCA6ICcnKSA6ICcnOwogICAgICB2YXIgZW5kID0gZW5kUGVnID8gJ0snICsgZW5kUGVnICsgKGVuZFBlZ0FkZCAhPT0gJycgPyAnKycgKyBlbmRQZWdBZGQgOiAnJykgOiAnJzsKICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJzEnKSB7CiAgICAgICAgcmV0dXJuIChzdGFydFBhdHJvbCA/IHN0YXJ0UGF0cm9sIDogJycpICsgKGVuZFBhdHJvbCA/ICfoh7MnICsgZW5kUGF0cm9sIDogJycpICsgKHN0YXJ0ID8gJycgKyBzdGFydCA6ICcnKSArIChlbmQgPyAnLScgKyBlbmQgOiAnJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICIgIi5jb25jYXQocGxhY2VEZXRhaWwuam9pbign44CBJykpOwogICAgICB9CiAgICB9LAogICAgLy8g5qC55o2u6Lev5q615p+l6K+i5rK/57q/5L+h5oGvCiAgICBnZXRBbG9uZ1JvdXRlSW5mbzogZnVuY3Rpb24gZ2V0QWxvbmdSb3V0ZUluZm8ocm9hZElkKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIGRhdGEsIF95aWVsZCR0YWJsZURhdGEsIF95aWVsZCR0YWJsZURhdGEkdG90YSwgdG90YWwsIF95aWVsZCR0YWJsZURhdGEkcm93cywgcm93czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMDsKICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IC0xLAogICAgICAgICAgICAgICAgICBwYWdlOiAxLAogICAgICAgICAgICAgICAgICB0b3RhbDogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHF1ZXJ5czogW3sKICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3JvYWRTZWdtZW50SWQnLAogICAgICAgICAgICAgICAgICB2YWx1ZTogcm9hZElkCiAgICAgICAgICAgICAgICB9XQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlRGF0YShyZWZpbmVSZXF1ZXN0Qm9keShkYXRhKSk7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEYXRhID0gX2NvbnRleHQuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEYXRhJHRvdGEgPSBfeWllbGQkdGFibGVEYXRhLnRvdGFsOwogICAgICAgICAgICAgIHRvdGFsID0gX3lpZWxkJHRhYmxlRGF0YSR0b3RhID09PSB2b2lkIDAgPyAwIDogX3lpZWxkJHRhYmxlRGF0YSR0b3RhOwogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEkcm93cyA9IF95aWVsZCR0YWJsZURhdGEucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHRhYmxlRGF0YSRyb3dzID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCR0YWJsZURhdGEkcm93czsKICAgICAgICAgICAgICAvLyDmlLbotLnnq5kKICAgICAgICAgICAgICBfdGhpczIudG9sbFN0YXRpb25EYXRhID0gcm93cy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnR5cGUgPT09ICczJyB8fCBpdGVtLnR5cGUgPT09ICcxJzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAvLyDnq4vkuqQKICAgICAgICAgICAgICBfdGhpczIuZ3JhZGVPdmVyRGF0YSA9IHJvd3MuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS50eXBlIDwgMzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAvLyDmnI3liqHljLoKICAgICAgICAgICAgICBfdGhpczIuc2VydmljZUFyZWFEYXRhID0gcm93cy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnR5cGUgPT09ICc0JzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMTI7CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmZpbmlzaCgxMik7CiAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzAsLCAxMiwgMTRdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOagueaNrui3r+auteafpeivoumap+mBk+S/oeaBrwogICAgZ2V0VHVubmVsRGF0YTogZnVuY3Rpb24gZ2V0VHVubmVsRGF0YShyb2FkSWQpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIGRhdGEsIF95aWVsZCR0dW5uZWxEYXRhLCBfeWllbGQkdHVubmVsRGF0YSR0b3QsIHRvdGFsLCBfeWllbGQkdHVubmVsRGF0YSRyb3csIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gMDsKICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IC0xLAogICAgICAgICAgICAgICAgICBwYWdlOiAxLAogICAgICAgICAgICAgICAgICB0b3RhbDogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHF1ZXJ5czogW3sKICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3JvYWRTZWdtZW50SWQnLAogICAgICAgICAgICAgICAgICB2YWx1ZTogcm9hZElkCiAgICAgICAgICAgICAgICB9XQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSA0OwogICAgICAgICAgICAgIHJldHVybiB0dW5uZWxEYXRhKHJlZmluZVJlcXVlc3RCb2R5KGRhdGEpKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF95aWVsZCR0dW5uZWxEYXRhID0gX2NvbnRleHQyLnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHR1bm5lbERhdGEkdG90ID0gX3lpZWxkJHR1bm5lbERhdGEudG90YWw7CiAgICAgICAgICAgICAgdG90YWwgPSBfeWllbGQkdHVubmVsRGF0YSR0b3QgPT09IHZvaWQgMCA/IDAgOiBfeWllbGQkdHVubmVsRGF0YSR0b3Q7CiAgICAgICAgICAgICAgX3lpZWxkJHR1bm5lbERhdGEkcm93ID0gX3lpZWxkJHR1bm5lbERhdGEucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHR1bm5lbERhdGEkcm93ID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCR0dW5uZWxEYXRhJHJvdzsKICAgICAgICAgICAgICAvLyDpmqfpgZMKICAgICAgICAgICAgICBfdGhpczMudHVubmVsRGF0YSA9IHJvd3M7CiAgICAgICAgICAgICAgLy8g5qC55o2ubmFtZeWOu+mHjQogICAgICAgICAgICAgIF90aGlzMy50dW5uZWxEYXRhID0gX3RoaXMzLnR1bm5lbERhdGEucmVkdWNlKGZ1bmN0aW9uIChhY2N1bXVsYXRvciwgY3VycmVudCkgewogICAgICAgICAgICAgICAgdmFyIHggPSBhY2N1bXVsYXRvci5maW5kKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWUgPT09IGN1cnJlbnQubmFtZTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgaWYgKCF4KSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvci5jb25jYXQoW2N1cnJlbnRdKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LCBbXSk7CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAxMTsKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLmZpbmlzaCgxMSk7CiAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIsIG51bGwsIFtbMCwsIDExLCAxM11dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgc2l0ZUNoYW5nZTogZnVuY3Rpb24gc2l0ZUNoYW5nZShlLCB0eXBlKSB7CiAgICAgIHZhciBzaXRlSW5mbyA9IHRoaXMudG9sbFN0YXRpb25EYXRhLmZpbmQoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5pZCA9PT0gZTsKICAgICAgfSk7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm1bIiIuY29uY2F0KHR5cGUsICJOYW1lIildID0gc2l0ZUluZm8ubmFtZTsKICAgICAgdGhpcy5wbGFjZURhdGFbdHlwZV0gPSBzaXRlSW5mby5uYW1lOwogICAgICB2YXIgcGxhY2VEYXRhID0gdGhpcy5mb3JtYXRQYWxjZURhdGEoKTsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgcGxhY2VEYXRhKTsKICAgIH0sCiAgICAvLyDmlLbotLnnq5kKICAgIHRvbGxTdGF0aW9uQ2hhbmdlOiBmdW5jdGlvbiB0b2xsU3RhdGlvbkNoYW5nZSgpIHsKICAgICAgdGhpcy5wbGFjZURhdGEucGxhY2VEZXRhaWwgPSB0aGlzLmFkZEVkaXRGb3JtLnN3elBsYWNlRGV0YWlsOwogICAgICB2YXIgcGxhY2VEYXRhID0gdGhpcy5mb3JtYXRQYWxjZURhdGEoKTsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgcGxhY2VEYXRhKTsKICAgIH0sCiAgICAvLyDpmqfpgZMKICAgIHR1bm5lbENoYW5nZTogZnVuY3Rpb24gdHVubmVsQ2hhbmdlKCkgewogICAgICB0aGlzLnBsYWNlRGF0YS5wbGFjZURldGFpbCA9IHRoaXMuYWRkRWRpdEZvcm0uc2RQbGFjZURldGFpbDsKICAgICAgdmFyIHBsYWNlRGF0YSA9IHRoaXMuZm9ybWF0UGFsY2VEYXRhKCk7CiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZScsIHBsYWNlRGF0YSk7CiAgICB9LAogICAgLy8g56uL5LqkCiAgICBncmFkZU92ZXJDaGFuZ2U6IGZ1bmN0aW9uIGdyYWRlT3ZlckNoYW5nZShlKSB7CiAgICAgIHRoaXMucGxhY2VEYXRhLnBsYWNlRGV0YWlsID0gdGhpcy5hZGRFZGl0Rm9ybS5salBsYWNlRGV0YWlsOwogICAgICB2YXIgcGxhY2VEYXRhID0gdGhpcy5mb3JtYXRQYWxjZURhdGEoKTsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgcGxhY2VEYXRhKTsKICAgIH0sCiAgICAvLyDmnI3liqHljLoKICAgIHNlcnZpY2VBcmVhQ2hhbmdlOiBmdW5jdGlvbiBzZXJ2aWNlQXJlYUNoYW5nZSgpIHsKICAgICAgdGhpcy5wbGFjZURhdGEucGxhY2VEZXRhaWwgPSB0aGlzLmFkZEVkaXRGb3JtLmZ3cVBsYWNlRGV0YWlsOwogICAgICB2YXIgcGxhY2VEYXRhID0gdGhpcy5mb3JtYXRQYWxjZURhdGEoKTsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgcGxhY2VEYXRhKTsKICAgIH0sCiAgICBzZW5kRGF0YTogZnVuY3Rpb24gc2VuZERhdGEoKSB7CiAgICAgIHZhciBmbGFnID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB0cnVlOwogICAgICB2YXIgX3RoaXMkYWRkRWRpdEZvcm0gPSB0aGlzLmFkZEVkaXRGb3JtLAogICAgICAgIHBsYWNlTmFtZSA9IF90aGlzJGFkZEVkaXRGb3JtLnBsYWNlTmFtZSwKICAgICAgICBwbGFjZURldGFpbCA9IF90aGlzJGFkZEVkaXRGb3JtLnBsYWNlRGV0YWlsLAogICAgICAgIHN0YXJ0UGVnID0gX3RoaXMkYWRkRWRpdEZvcm0uc3RhcnRQZWcsCiAgICAgICAgc3RhcnRQZWdBZGQgPSBfdGhpcyRhZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZCwKICAgICAgICBlbmRQZWcgPSBfdGhpcyRhZGRFZGl0Rm9ybS5lbmRQZWcsCiAgICAgICAgZW5kUGVnQWRkID0gX3RoaXMkYWRkRWRpdEZvcm0uZW5kUGVnQWRkLAogICAgICAgIHN0YXJ0UGF0cm9sSWQgPSBfdGhpcyRhZGRFZGl0Rm9ybS5zdGFydFBhdHJvbElkLAogICAgICAgIHN0YXJ0UGF0cm9sTmFtZSA9IF90aGlzJGFkZEVkaXRGb3JtLnN0YXJ0UGF0cm9sTmFtZSwKICAgICAgICBlbmRQYXRyb2xJZCA9IF90aGlzJGFkZEVkaXRGb3JtLmVuZFBhdHJvbElkLAogICAgICAgIGVuZFBhdHJvbE5hbWUgPSBfdGhpcyRhZGRFZGl0Rm9ybS5lbmRQYXRyb2xOYW1lOwogICAgICB2YXIgcGVnU1ZhbCA9ICcnOwogICAgICB2YXIgcGVnRVZhbCA9ICcnOwogICAgICBpZiAoc3RhcnRQZWcgIT09ICcnICYmIHN0YXJ0UGVnICE9PSB1bmRlZmluZWQgJiYgc3RhcnRQZWdBZGQgIT09ICcnICYmIHN0YXJ0UGVnQWRkICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBwZWdTVmFsID0gJ2snICsgKHN0YXJ0UGVnICE9PSAnJyA/IHN0YXJ0UGVnIDogJycpICsgJysnICsgKHN0YXJ0UGVnQWRkICE9PSAnJyA/IHN0YXJ0UGVnQWRkIDogJycpOwogICAgICB9CiAgICAgIGlmIChlbmRQZWcgIT09ICcnICYmIGVuZFBlZyAhPT0gdW5kZWZpbmVkICYmIGVuZFBlZ0FkZCAhPT0gJycgJiYgZW5kUGVnQWRkICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBwZWdFVmFsID0gJ2snICsgKGVuZFBlZyAhPT0gJycgPyBlbmRQZWcgOiAnJykgKyAnKycgKyAoZW5kUGVnQWRkICE9PSAnJyA/IGVuZFBlZ0FkZCA6ICcnKTsKICAgICAgfQogICAgICBpZiAodGhpcy50eXBlID09ICcxJykgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBwZWdTVmFsOiBwZWdTVmFsLAogICAgICAgICAgcGVnRVZhbDogcGVnRVZhbCwKICAgICAgICAgIHN0YXJ0UGF0cm9sSWQ6IHN0YXJ0UGF0cm9sSWQsCiAgICAgICAgICBzdGFydFBhdHJvbE5hbWU6IHN0YXJ0UGF0cm9sTmFtZSwKICAgICAgICAgIGVuZFBhdHJvbElkOiBlbmRQYXRyb2xJZCwKICAgICAgICAgIGVuZFBhdHJvbE5hbWU6IGVuZFBhdHJvbE5hbWUKICAgICAgICB9OwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBuYW1lID0gdGhpcy50eXBlID09ICczJyA/ICdzZCcgOiB0aGlzLnR5cGUgPT0gJzQnID8gJ2xqJyA6IHRoaXMudHlwZSA9PSAnMicgPyAnc3d6JyA6ICdmd3EnOwogICAgICAgIHZhciBhcnJheSA9IFtdOwogICAgICAgIGlmICh0aGlzLmFkZEVkaXRGb3JtWyIiLmNvbmNhdChuYW1lLCAiUGxhY2VEZXRhaWwiKV0ubGVuZ3RoID4gMCkgewogICAgICAgICAgYXJyYXkgPSB0aGlzLmFkZEVkaXRGb3JtWyIiLmNvbmNhdChuYW1lLCAiUGxhY2VEZXRhaWwiKV0ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgcGxhY2VOYW1lOiBpdGVtLAogICAgICAgICAgICAgIHBlZ1NWYWw6IHBlZ1NWYWwsCiAgICAgICAgICAgICAgcGVnRVZhbDogcGVnRVZhbAogICAgICAgICAgICB9OwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBhcnJheTsKICAgICAgfQogICAgfSwKICAgIC8v5riF56m65pWw5o2uCiAgICBjbGVhckNoYW5nZTogZnVuY3Rpb24gY2xlYXJDaGFuZ2UoKSB7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcgPSB1bmRlZmluZWQ7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZW5kUGVnID0gdW5kZWZpbmVkOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBlZ0FkZCA9IHVuZGVmaW5lZDsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBhdHJvbElkID0gJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQYXRyb2xOYW1lID0gJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZW5kUGF0cm9sSWQgPSAnJzsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQYXRyb2xOYW1lID0gJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucGxhY2VEZXRhaWwgPSBbXTsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zd3pQbGFjZURldGFpbCA9IFtdOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLmxqUGxhY2VEZXRhaWwgPSBbXTsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zZFBsYWNlRGV0YWlsID0gW107CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZndxUGxhY2VEZXRhaWwgPSBbXTsKICAgIH0sCiAgICAvLyDor6bmg4XotYvlgLxlCiAgICBnZXREZXRhaWw6IGZ1bmN0aW9uIGdldERldGFpbChyb3cpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHZhciBwbGFjZURldGFpbCA9IHJvdy5wbGFjZURldGFpbCwKICAgICAgICBwZWdTVmFsID0gcm93LnBlZ1NWYWwsCiAgICAgICAgcGVnRVZhbCA9IHJvdy5wZWdFVmFsLAogICAgICAgIHN0YXJ0UGF0cm9sSWQgPSByb3cuc3RhcnRQYXRyb2xJZCwKICAgICAgICBzdGFydFBhdHJvbE5hbWUgPSByb3cuc3RhcnRQYXRyb2xOYW1lLAogICAgICAgIGVuZFBhdHJvbElkID0gcm93LmVuZFBhdHJvbElkLAogICAgICAgIGVuZFBhdHJvbE5hbWUgPSByb3cuZW5kUGF0cm9sTmFtZTsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChfdGhpczQudHlwZSA9PSAnMScpIHsKICAgICAgICAgIHZhciBkYXRhID0gewogICAgICAgICAgICBzdGFydFBhdHJvbElkOiBzdGFydFBhdHJvbElkLAogICAgICAgICAgICBzdGFydFBhdHJvbE5hbWU6IHN0YXJ0UGF0cm9sTmFtZSwKICAgICAgICAgICAgZW5kUGF0cm9sSWQ6IGVuZFBhdHJvbElkLAogICAgICAgICAgICBlbmRQYXRyb2xOYW1lOiBlbmRQYXRyb2xOYW1lCiAgICAgICAgICB9OwogICAgICAgICAgaWYgKHBlZ1NWYWwpIHsKICAgICAgICAgICAgdmFyIHN0YXJ0UGVnQXJyID0gcGVnU1ZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICBkYXRhLnN0YXJ0UGVnID0gc3RhcnRQZWdBcnJbMF0uc2xpY2UoMSk7CiAgICAgICAgICAgIGRhdGEuc3RhcnRQZWdBZGQgPSBzdGFydFBlZ0FyclsxXTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwZWdFVmFsKSB7CiAgICAgICAgICAgIHZhciBlbmRQZWdBcnIgPSBwZWdFVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgIGRhdGEuZW5kUGVnID0gZW5kUGVnQXJyWzBdLnNsaWNlKDEpOwogICAgICAgICAgICBkYXRhLmVuZFBlZ0FkZCA9IGVuZFBlZ0FyclsxXTsKICAgICAgICAgIH0KICAgICAgICAgIF90aGlzNC5hZGRFZGl0Rm9ybSA9IGRhdGE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vIOaPkOWPliBwZWdTVmFsIOWSjCBwZWdFVmFsCiAgICAgICAgICB2YXIgcGVnU1ZhbHMgPSByb3cucGxhY2VEZXRhaWxbMF0ucGVnU1ZhbDsKICAgICAgICAgIHZhciBwZWdFVmFscyA9IHJvdy5wbGFjZURldGFpbFswXS5wZWdFVmFsOwogICAgICAgICAgaWYgKHBlZ1NWYWxzKSB7CiAgICAgICAgICAgIHZhciBfc3RhcnRQZWdBcnIgPSBwZWdTVmFscy5zcGxpdCgnKycpOwogICAgICAgICAgICBfdGhpczQuYWRkRWRpdEZvcm0uc3RhcnRQZWcgPSBfc3RhcnRQZWdBcnJbMF0uc2xpY2UoMSk7CiAgICAgICAgICAgIF90aGlzNC5hZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZCA9IF9zdGFydFBlZ0FyclsxXTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwZWdFVmFscykgewogICAgICAgICAgICB2YXIgX2VuZFBlZ0FyciA9IHBlZ0VWYWxzLnNwbGl0KCcrJyk7CiAgICAgICAgICAgIF90aGlzNC5hZGRFZGl0Rm9ybS5lbmRQZWcgPSBfZW5kUGVnQXJyWzBdLnNsaWNlKDEpOwogICAgICAgICAgICBfdGhpczQuYWRkRWRpdEZvcm0uZW5kUGVnQWRkID0gX2VuZFBlZ0FyclsxXTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBuYW1lID0gX3RoaXM0LnR5cGUgPT0gJzMnID8gJ3NkJyA6IF90aGlzNC50eXBlID09ICc0JyA/ICdsaicgOiBfdGhpczQudHlwZSA9PSAnMicgPyAnc3d6JyA6ICdmd3EnOwogICAgICAgICAgLy8g5bCGIHBsYWNlRGV0YWlsIOi9rOaNouS4uuWcsOeCueWQjeensOaVsOe7hAogICAgICAgICAgX3RoaXM0LmFkZEVkaXRGb3JtWyIiLmNvbmNhdChuYW1lLCAiUGxhY2VEZXRhaWwiKV0gPSByb3cucGxhY2VEZXRhaWwubWFwKGZ1bmN0aW9uIChwbGFjZSkgewogICAgICAgICAgICByZXR1cm4gcGxhY2UucGxhY2VOYW1lOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICB9Cn07"},null]}