{"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\\EventManagement\\components\\AppointDialog\\components\\RescueInfoDialog\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\EventManagement\\components\\AppointDialog\\components\\RescueInfoDialog\\index.vue","mtime":1753934291033},{"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:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5qb2luLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5zb21lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JzsKaW1wb3J0IFN1cGVyRGlhbG9nIGZyb20gJ0AvY29tcG9uZW50cy9TdXBlckRpYWxvZy9pbmRleC52dWUnOwppbXBvcnQgQ2FyQ2hvaWNlRGlhbG9nIGZyb20gJy4uL0NhckNob2ljZURpYWxvZyc7CmltcG9ydCBVc2VyQ2hvaWNlRGlhbG9nIGZyb20gJy4uL1VzZXJDaG9pY2VEaWFsb2cnOwppbXBvcnQgeyByZWZpbmVSZXF1ZXN0Qm9keSB9IGZyb20gJ0AvdXRpbHMvcmVxdWVzdFdyYXBwZXJzJzsKaW1wb3J0IHsgZ2V0RGljdGlvbmFyeUJ5Q29kZSB9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeSc7CmltcG9ydCB7IHRhYmxlRGF0YSBhcyByb2FkU2VjdGlvbkluZm9JbnRlciB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3JvYWRTZWN0aW9uSW5mbyc7CmltcG9ydCB7IHRhYmxlRGF0YSBhcyB0ZWFtRGF0YSB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3BhdHJvbEFuZFJlc2N1ZVRlYW1zTWdtdCc7CmltcG9ydCB7IHRhYmxlRGF0YSBhcyBhbG9uZ1JvdXRlSW5mb0ludGVyIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvYWxvbmdSb3V0ZUluZm8nOwppbXBvcnQgeyBwZXJzb25BbmRDYXJJbmZvIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2NvbW1hbmREaXNwYXRjaC9ldmVudFJlZ2lzdHJhdGlvbic7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnUmVzY3VlSW5mb0RpYWxvZycsCiAgaW5oZXJpdEF0dHJzOiBmYWxzZSwKICAvLyAgIG1peGluczogW1RhYmxlTWl4aW5dLAogIHByb3BzOiB7CiAgICBpc1Nob3c6IHsKICAgICAgZGVmYXVsdDogZmFsc2UsCiAgICAgIHR5cGU6IEJvb2xlYW4KICAgIH0sCiAgICB0b3A6IHsKICAgICAgZGVmYXVsdDogJzE0dmgnLAogICAgICB0eXBlOiBTdHJpbmcKICAgIH0sCiAgICB3aWR0aDogewogICAgICBkZWZhdWx0OiAnNjAlJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9LAogICAgaGVpZ2h0OiB7CiAgICAgIGRlZmF1bHQ6ICc2NXZoJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9LAogICAgY29uZmlybUNsb3NlRGlhbG9nOiB7CiAgICAgIGRlZmF1bHQ6IHRydWUsCiAgICAgIHR5cGU6IEJvb2xlYW4KICAgIH0sCiAgICByZXNjdWVJbmZvRGV0YWlsOiB7CiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkge30sCiAgICAgIHR5cGU6IE9iamVjdAogICAgfSwKICAgIGJhc2VJbmZvOiB7CiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkge30sCiAgICAgIHR5cGU6IE9iamVjdAogICAgfQogIH0sCiAgY29tcG9uZW50czogewogICAgU3VwZXJEaWFsb2c6IFN1cGVyRGlhbG9nLAogICAgQ2FyQ2hvaWNlRGlhbG9nOiBDYXJDaG9pY2VEaWFsb2csCiAgICBVc2VyQ2hvaWNlRGlhbG9nOiBVc2VyQ2hvaWNlRGlhbG9nCiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIHZhciB2YWxpZGF0ZVN0YXRpb24gPSBmdW5jdGlvbiB2YWxpZGF0ZVN0YXRpb24ocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSB7CiAgICAgIGlmIChfdGhpcy5yZXNjdWVJbmZvLnN0YXJ0UGVnID09PSB1bmRlZmluZWQgfHwgX3RoaXMucmVzY3VlSW5mby5zdGFydFBlZyA9PT0gJycgfHwgX3RoaXMucmVzY3VlSW5mby5zdGFydFBlZyA9PT0gbnVsbCkgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcign6K+36L6T5YWl5byA5aeL54K55L2N5qGp5Y+35YWo5YC8JykpOwogICAgICB9IGVsc2UgaWYgKF90aGlzLnJlc2N1ZUluZm8uc3RhcnRQZWdBZGQgPT09IHVuZGVmaW5lZCB8fCBfdGhpcy5yZXNjdWVJbmZvLnN0YXJ0UGVnQWRkID09PSAnJyB8fCBfdGhpcy5yZXNjdWVJbmZvLnN0YXJ0UGVnQWRkID09PSBudWxsKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7fovpPlhaXlvIDlp4vngrnkvY3moanlj7flhajlgLwhJykpOwogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CiAgICByZXR1cm4gewogICAgICB0YWJsZUxvYWRpbmc6IGZhbHNlLAogICAgICB0YWJsZU1heEhlaWdodDogJzYwMHB4JywKICAgICAgdGVhbURhdGFMaXN0OiBbXSwKICAgICAgcm9hZE9wdGlvbnM6IFtdLAogICAgICBhbG9uZ1JvdXRlSW5mb0RhdGE6IFtdLAogICAgICByZXNjdWVJbmZvOiB7CiAgICAgICAgcm9hZElkOiAnJywKICAgICAgICB0ZWFtSWQ6ICcnLAogICAgICAgIG9jY3VweTogWycwJ10sCiAgICAgICAgcmVzY3VlVHlwZTogMSwKICAgICAgICBjYXJDbGFzczogMSwKICAgICAgICBkaXJlY3Rpb246ICcxJywKICAgICAgICBjYXJUeXBlOiAxLAogICAgICAgIHJlc2N1ZVRpbWU6IG5ldyBEYXRlKCksCiAgICAgICAgY2FyOiB7fSwKICAgICAgICB1c2VyTmFtZTogJycsCiAgICAgICAgZGlzcGF0Y2hDYXJDb2RlOiAnJywKICAgICAgICB1c2VyOiBbXQogICAgICB9LAogICAgICByZXNjdWVJbmZvUnVsZXM6IHsKICAgICAgICByZXNjdWVUZWw6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmiqXmoYjnlLXor53kuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgcmVzY3VlVGltZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+aKpeahiOaXtumXtOS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XSwKICAgICAgICBldmVudFR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nkuovku7bnsbvlnosnLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIHJlc2N1ZVR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmlZHmj7TnsbvlnovkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIHJvYWRJZDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+i3r+auteS/oeaBr+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZSddCiAgICAgICAgfV0sCiAgICAgICAgdGVhbUlkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5rS+6YGj6Zif5LyN5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6IFsnY2hhbmdlJ10KICAgICAgICB9XSwKICAgICAgICBldmVudFRpbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfkuovku7blj5HnlJ/ml7bpl7TkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIGNhclVzZXJUZWw6IFt7CiAgICAgICAgICBwYXR0ZXJuOiAvXjEoM1swLTldfDRbNTddfDVbMC0zNS05XXw3WzA2NzhdfDhbMC05XSlcZHs4fSQvLAogICAgICAgICAgbWVzc2FnZTogJ+i9puS4u+eUteivnei+k+WFpeacieivrycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICAvLyB1c2VyTmFtZTogWwogICAgICAgIC8vICAgewogICAgICAgIC8vICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAvLyAgICAgbWVzc2FnZTogJ+a0vumBo+S6uuWRmOS4jeiDveS4uuepuicsCiAgICAgICAgLy8gICAgIHRyaWdnZXI6IFsnY2hhbmdlJywgJ2JsdXInXQogICAgICAgIC8vICAgfQogICAgICAgIC8vIF0sCiAgICAgICAgLy8gZGlzcGF0Y2hDYXJDb2RlOiBbCiAgICAgICAgLy8gICB7CiAgICAgICAgLy8gICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgIC8vICAgICBtZXNzYWdlOiAn5rS+6YGj6L2m6L6G5LiN6IO95Li656m6JywKICAgICAgICAvLyAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddCiAgICAgICAgLy8gICB9CiAgICAgICAgLy8gXSwKICAgICAgICByZXNjdWVTdGF0dXM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nmlZHmj7TnirbmgIEnLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIHN0YXJ0UGVnOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB2YWxpZGF0b3I6IHZhbGlkYXRlU3RhdGlvbiwKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIC8vIOi9pui+hgogICAgICBjYXJEYXRhOiBbXSwKICAgICAgY2FyQ2hvaWNlRGlhbG9nOiBmYWxzZSwKICAgICAgLy8g5Lq65ZGYCiAgICAgIHVzZXJDaG9pY2VEaWFsb2c6IGZhbHNlLAogICAgICBkaXNwYXRjaGVzOiBbXSwKICAgICAgcGVyc29uT3B0aW9uczogW10KICAgIH07CiAgfSwKICBjb21wdXRlZDogewogICAgaXNTaG93RGlhbG9nOiB7CiAgICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICAgIHJldHVybiB0aGlzLmlzU2hvdzsKICAgICAgfSwKICAgICAgc2V0OiBmdW5jdGlvbiBzZXQodmFsKSB7CiAgICAgICAgdGhpcy4kZW1pdCgndXBkYXRlOmlzU2hvdycsIHZhbCk7CiAgICAgIH0KICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIGdldERpY3Rpb25hcnlCeUNvZGU6IGdldERpY3Rpb25hcnlCeUNvZGUsCiAgICBjaGVja0Rpc2FibGVkOiBmdW5jdGlvbiBjaGVja0Rpc2FibGVkKCkgewogICAgICByZXR1cm4gdGhpcy5yZXNjdWVJbmZvLm9jY3VweS5pbmNsdWRlcygnMCcpOwogICAgfSwKICAgIGdldENhckNsYXNzaWZ5OiBmdW5jdGlvbiBnZXRDYXJDbGFzc2lmeSh2YWx1ZSkgewogICAgICB2YXIgX2RpY3QkOwogICAgICB2YXIgZGljdF9hcnIgPSBnZXREaWN0aW9uYXJ5QnlDb2RlKCdnemNsJyk7CiAgICAgIHZhciBkaWN0ID0gZGljdF9hcnIuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0udmFsdWUgPT0gdmFsdWU7CiAgICAgIH0pOwogICAgICByZXR1cm4gZGljdC5sZW5ndGggPyAoX2RpY3QkID0gZGljdFswXSkgPT09IG51bGwgfHwgX2RpY3QkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZGljdCQubG93ZXJEaWNbJ2d6Y3gnXSA6IFtdOwogICAgfSwKICAgIGNoYWVja0NoYW5nZTogZnVuY3Rpb24gY2hhZWNrQ2hhbmdlKGUpIHsKICAgICAgaWYgKHRoaXMucmVzY3VlSW5mby5vY2N1cHkuaW5jbHVkZXMoJzAnKSkgewogICAgICAgIHRoaXMucmVzY3VlSW5mby5vY2N1cHkgPSBbJzAnXTsKICAgICAgfQogICAgfSwKICAgIC8vIOaJk+W8gOW8ueWxguaXtuinpuWPkQogICAgb3BlbjogZnVuY3Rpb24gb3BlbigpIHsKICAgICAgdGhpcy5nZXRSb2FkRGF0YSgpOwogICAgICBpZiAodGhpcy5yZXNjdWVJbmZvRGV0YWlsLnR5cGUgPT09ICdlZGl0JykgewogICAgICAgIHRoaXMucmVzY3VlSW5mb0RldGFpbC5vY2N1cHkgPSB0aGlzLnJlc2N1ZUluZm9EZXRhaWwub2NjdXB5LnNwbGl0KCcsJyk7CiAgICAgICAgaWYgKHRoaXMucmVzY3VlSW5mb0RldGFpbC5wZWdWYWwpIHsKICAgICAgICAgIHZhciBzdGFydFBlZ0FyciA9IHRoaXMucmVzY3VlSW5mb0RldGFpbC5wZWdWYWwuc3BsaXQoJysnKTsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdzdGFydFBlZycsIHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdzdGFydFBlZ0FkZCcsIHN0YXJ0UGVnQXJyWzFdKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kc2V0KHRoaXMucmVzY3VlSW5mbywgJ3N0YXJ0UGVnJywgJycpOwogICAgICAgICAgdGhpcy4kc2V0KHRoaXMucmVzY3VlSW5mbywgJ3N0YXJ0UGVnQWRkJywgJycpOwogICAgICAgIH0KICAgICAgICB0aGlzLiRzZXQodGhpcywgJ3Jlc2N1ZUluZm8nLCBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucmVzY3VlSW5mb0RldGFpbCkpKTsKICAgICAgICB0aGlzLnJvYWRDaGFuZ2UodGhpcy5yZXNjdWVJbmZvRGV0YWlsLnJvYWRJZCwgdHJ1ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc29sZS5sb2codGhpcy5iYXNlSW5mbywgJ3RoaXMuYmFzZUluZm8nKTsKICAgICAgICAvLyDpu5jorqTotYvlgLwKICAgICAgICB0aGlzLnJlc2N1ZUluZm8ucm9hZElkID0gdGhpcy5iYXNlSW5mby5yb2FkSWQ7CiAgICAgICAgdGhpcy5yb2FkQ2hhbmdlKHRoaXMucmVzY3VlSW5mby5yb2FkSWQsIGZhbHNlKTsKICAgICAgICBpZiAodGhpcy5yZXNjdWVJbmZvLnJlc2N1ZVRlbCkgewogICAgICAgICAgdGhpcy5yZXNjdWVJbmZvLnJlc2N1ZVRlbCA9IHRoaXMuYmFzZUluZm8uZXZlbnRUZWw7CiAgICAgICAgfQogICAgICAgIHRoaXMucmVzY3VlSW5mby5yZXNjdWVUaW1lID0gdGhpcy5iYXNlSW5mby5ldmVudFRpbWU7CiAgICAgICAgdGhpcy5yZXNjdWVJbmZvLmRpcmVjdGlvbiA9IHRoaXMuYmFzZUluZm8uZGlyZWN0aW9uOwogICAgICAgIGlmICh0aGlzLmJhc2VJbmZvLnBlZ1NWYWwpIHsKICAgICAgICAgIHZhciBfc3RhcnRQZWdBcnIgPSB0aGlzLmJhc2VJbmZvLnBlZ1NWYWwuc3BsaXQoJysnKTsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdzdGFydFBlZycsIF9zdGFydFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgICB0aGlzLiRzZXQodGhpcy5yZXNjdWVJbmZvLCAnc3RhcnRQZWdBZGQnLCBfc3RhcnRQZWdBcnJbMV0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRzZXQodGhpcy5yZXNjdWVJbmZvLCAnc3RhcnRQZWcnLCAnJyk7CiAgICAgICAgICB0aGlzLiRzZXQodGhpcy5yZXNjdWVJbmZvLCAnc3RhcnRQZWdBZGQnLCAnJyk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLy8g5bGV56S65by55bGCCiAgICBzaG93RGlhbG9nOiBmdW5jdGlvbiBzaG93RGlhbG9nKGRpYWxvZ05hbWUpIHsKICAgICAgaWYgKCFkaWFsb2dOYW1lKSByZXR1cm47CiAgICAgIGlmIChkaWFsb2dOYW1lID09PSAndXNlckNob2ljZScpIHsKICAgICAgICBpZiAoIXRoaXMucmVzY3VlSW5mby50ZWFtSWQpIHsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+WFiOmAieaLqeaVkeaPtOWkhOe9rumYn+S8jScpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzW2RpYWxvZ05hbWUgKyAnRGlhbG9nJ10gPSB0cnVlOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzW2RpYWxvZ05hbWUgKyAnRGlhbG9nJ10gPSB0cnVlOwogICAgICB9CiAgICB9LAogICAgLy8g6Lev5q615YiX6KGoCiAgICBnZXRSb2FkRGF0YTogZnVuY3Rpb24gZ2V0Um9hZERhdGEoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRyb2FkU2VjdGlvbkluZiwgX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiwgcm93czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gcm9hZFNlY3Rpb25JbmZvSW50ZXIoewogICAgICAgICAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IC0xCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkcm9hZFNlY3Rpb25JbmYgPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIF95aWVsZCRyb2FkU2VjdGlvbkluZjIgPSBfeWllbGQkcm9hZFNlY3Rpb25JbmYucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkcm9hZFNlY3Rpb25JbmYyOwogICAgICAgICAgICAgIF90aGlzMi5yb2FkT3B0aW9ucyA9IHJvd3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICBpdGVtLnJvYWROYW1lID0gaXRlbS5uYW1lICsgJyAnICsgaXRlbS5jb2RlOwogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDot6/mrrXmlrnms5UKICAgIHJvYWRDaGFuZ2U6IGZ1bmN0aW9uIHJvYWRDaGFuZ2UodmFsdWUpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHZhciB0eXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTsKICAgICAgaWYgKCF0eXBlKSB7CiAgICAgICAgdGhpcy5yZXNjdWVJbmZvLnRlYW1JZCA9ICcnOwogICAgICB9CiAgICAgIHRoaXMuZ2V0VGVhbURhdGEodmFsdWUsIHR5cGUpOwogICAgICAvLyDpgJrov4fot6/mrrXkv6Hmga/ojrflj5bmsr/nur/orr7lpIfkv6Hmga8KICAgICAgdGhpcy5nZXRBbG9uZ1JvdXRlSW5mbyh2YWx1ZSwgZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICB2YXIgX3RoaXMzJHJlc2N1ZUluZm8gPSBfdGhpczMucmVzY3VlSW5mbywKICAgICAgICAgIHN0YXJ0UGF0cm9sSWQgPSBfdGhpczMkcmVzY3VlSW5mby5zdGFydFBhdHJvbElkLAogICAgICAgICAgZW5kUGF0cm9sSWQgPSBfdGhpczMkcmVzY3VlSW5mby5lbmRQYXRyb2xJZDsKICAgICAgICAvKg0KICAgICAgICAgKiDlt6Hmo4DlvIDlp4vvvIznu5PmnZ/nq5kNCiAgICAgICAgICogKi8KICAgICAgICBpZiAoc3RhcnRQYXRyb2xJZCkgewogICAgICAgICAgaWYgKCFkYXRhLnNvbWUoZnVuY3Rpb24gKGkpIHsKICAgICAgICAgICAgcmV0dXJuIGkuaWQgPT09IHN0YXJ0UGF0cm9sSWQ7CiAgICAgICAgICB9KSkgewogICAgICAgICAgICBfdGhpczMucmVzY3VlSW5mby5zdGFydFBhdHJvbElkID0gJyc7CiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKF8pIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mHjeaWsOmAieaLqeW8gOWni+ermS4uJyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZW5kUGF0cm9sSWQpIHsKICAgICAgICAgIGlmICghZGF0YS5zb21lKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgIHJldHVybiBpLmlkID09PSBlbmRQYXRyb2xJZDsKICAgICAgICAgIH0pKSB7CiAgICAgICAgICAgIF90aGlzMy5yZXNjdWVJbmZvLmVuZFBhdHJvbElkID0gJyc7CiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKF8pIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mHjeaWsOmAieaLqee7k+adn+ermS4uJyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy8g6YCa6L+H6Lev5q615L+h5oGv6I635Y+W5rK/57q/6K6+5aSH5L+h5oGvCiAgICBnZXRBbG9uZ1JvdXRlSW5mbzogZnVuY3Rpb24gZ2V0QWxvbmdSb3V0ZUluZm8odmFsdWUsIGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHZhciBfd2lwZURhdGEsIF95aWVsZCRhbG9uZ1JvdXRlSW5mbywgX3lpZWxkJGFsb25nUm91dGVJbmZvMiwgcm93czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX3dpcGVEYXRhID0gZnVuY3Rpb24gX3dpcGVEYXRhKCkgewogICAgICAgICAgICAgICAgX3RoaXM0LmFsb25nUm91dGVJbmZvRGF0YSA9IFtdOwogICAgICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soX3RoaXM0LmFsb25nUm91dGVJbmZvRGF0YSk7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDE7CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSA0OwogICAgICAgICAgICAgIHJldHVybiBhbG9uZ1JvdXRlSW5mb0ludGVyKHJlZmluZVJlcXVlc3RCb2R5KHsKICAgICAgICAgICAgICAgIHF1ZXJ5czogW3sKICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3JvYWRfc2VnbWVudF9pZF8nLAogICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUKICAgICAgICAgICAgICAgIH1dCiAgICAgICAgICAgICAgfSksICdhZGRFZGl0Jyk7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfeWllbGQkYWxvbmdSb3V0ZUluZm8gPSBfY29udGV4dDIuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkYWxvbmdSb3V0ZUluZm8yID0gX3lpZWxkJGFsb25nUm91dGVJbmZvLnJvd3M7CiAgICAgICAgICAgICAgcm93cyA9IF95aWVsZCRhbG9uZ1JvdXRlSW5mbzIgPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJGFsb25nUm91dGVJbmZvMjsKICAgICAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhyb3dzKTsKICAgICAgICAgICAgICBfdGhpczQuYWxvbmdSb3V0ZUluZm9EYXRhID0gcm93czsKICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDE0OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gMTE7CiAgICAgICAgICAgICAgX2NvbnRleHQyLnQwID0gX2NvbnRleHQyWyJjYXRjaCJdKDEpOwogICAgICAgICAgICAgIC8vIOS4jeS4uuivt+axgui/h+W/q+e7k+adn+eahOaDheWGteS4i++8jOmHjee9rgogICAgICAgICAgICAgIGlmIChfY29udGV4dDIudDAubWVzc2FnZSAhPT0gJ2NhbmNlbGVkJykgX3dpcGVEYXRhKCk7CiAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIsIG51bGwsIFtbMSwgMTFdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOmAmui/h+i3r+auteS/oeaBr+iOt+WPluW3oeafpeaVkeaPtOmYn+S8jeS/oeaBrwogICAgZ2V0VGVhbURhdGE6IGZ1bmN0aW9uIGdldFRlYW1EYXRhKHZhbHVlLCB0eXBlKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKCkgewogICAgICAgIHZhciBfeWllbGQkdGVhbURhdGEsIF95aWVsZCR0ZWFtRGF0YSRyb3dzLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHRlYW1EYXRhKHJlZmluZVJlcXVlc3RCb2R5KHsKICAgICAgICAgICAgICAgIHF1ZXJ5czogW3sKICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3IuaWRfJywKICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlCiAgICAgICAgICAgICAgICB9XQogICAgICAgICAgICAgIH0pLCAnYWRkRWRpdCcpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3lpZWxkJHRlYW1EYXRhID0gX2NvbnRleHQzLnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHRlYW1EYXRhJHJvd3MgPSBfeWllbGQkdGVhbURhdGEucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHRlYW1EYXRhJHJvd3MgPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJHRlYW1EYXRhJHJvd3M7CiAgICAgICAgICAgICAgX3RoaXM1LnRlYW1PcHRpb25zID0gcm93czsKICAgICAgICAgICAgICBfdGhpczUudGVhbURhdGFMaXN0ID0gcm93cy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnR5cGUgPT09ICcyJzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBpZiAoX3RoaXM1LnRlYW1EYXRhTGlzdC5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICBpZiAoIXR5cGUpIHsKICAgICAgICAgICAgICAgICAgX3RoaXM1LnJlc2N1ZUluZm8udGVhbUlkID0gX3RoaXM1LnRlYW1EYXRhTGlzdFswXS5pZDsKICAgICAgICAgICAgICAgICAgX3RoaXM1LnRlYW1JZENoYW5nZShfdGhpczUudGVhbURhdGFMaXN0WzBdLmlkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMyk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIHRlYW1JZENoYW5nZTogZnVuY3Rpb24gdGVhbUlkQ2hhbmdlKHZhbHVlKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICB0aGlzLmdldFBlcnNvbkFuZENhckluZm8odmFsdWUpOwogICAgICB2YXIgdGVhbUluZm8gPSB0aGlzLnRlYW1PcHRpb25zLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkID09PSBfdGhpczYucmVzY3VlSW5mby50ZWFtSWQ7CiAgICAgIH0pWzBdOwogICAgICB0aGlzLnJlc2N1ZUluZm8udGVhbU5hbWUgPSB0ZWFtSW5mby5uYW1lOwogICAgICB0aGlzLiRzZXQodGhpcy5yZXNjdWVJbmZvLCAndXNlck5hbWUnLCAnJyk7CiAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdkaXNwYXRjaENhckNvZGUnLCAnJyk7CiAgICAgIHRoaXMucmVzY3VlSW5mby51c2VyID0gW107CiAgICAgIHRoaXMuZGlzcGF0Y2hlcyA9IFtdOwogICAgfSwKICAgIC8vIOagueaNrumYn+S8jWlk5p+l6K+i5Lq65ZGY5L+h5oGv5Y+K6L2m6L6G5L+h5oGvCiAgICBnZXRQZXJzb25BbmRDYXJJbmZvOiBmdW5jdGlvbiBnZXRQZXJzb25BbmRDYXJJbmZvKGlkKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICBwZXJzb25BbmRDYXJJbmZvKGlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICB2YXIgX3JlcyR2YWx1ZSA9IHJlcy52YWx1ZSwKICAgICAgICAgIF9yZXMkdmFsdWUkbWVtYmVycyA9IF9yZXMkdmFsdWUubWVtYmVycywKICAgICAgICAgIG1lbWJlcnMgPSBfcmVzJHZhbHVlJG1lbWJlcnMgPT09IHZvaWQgMCA/IFtdIDogX3JlcyR2YWx1ZSRtZW1iZXJzLAogICAgICAgICAgX3JlcyR2YWx1ZSRjYXJzID0gX3JlcyR2YWx1ZS5jYXJzLAogICAgICAgICAgY2FycyA9IF9yZXMkdmFsdWUkY2FycyA9PT0gdm9pZCAwID8gW10gOiBfcmVzJHZhbHVlJGNhcnM7CiAgICAgICAgX3RoaXM3LnBlcnNvbk9wdGlvbnMgPSBtZW1iZXJzLm1hcChmdW5jdGlvbiAocGVyc29uKSB7CiAgICAgICAgICBwZXJzb24ubGFiZWwgPSBwZXJzb24udGVsICsgJyAnICsgcGVyc29uLm5hbWU7CiAgICAgICAgICByZXR1cm4gcGVyc29uOwogICAgICAgIH0pOwogICAgICAgIF90aGlzNy5jYXJEYXRhID0gY2FyczsKICAgICAgfSk7CiAgICB9LAogICAgc2l0ZUNoYW5nZTogZnVuY3Rpb24gc2l0ZUNoYW5nZShlLCB0eXBlKSB7CiAgICAgIHZhciBzaXRlSW5mbyA9IHRoaXMuYWxvbmdSb3V0ZUluZm9EYXRhLmZpbmQoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5pZCA9PT0gZTsKICAgICAgfSk7CiAgICAgIHRoaXMucmVzY3VlSW5mb1siIi5jb25jYXQodHlwZSwgIk5hbWUiKV0gPSBzaXRlSW5mby5uYW1lOwogICAgfSwKICAgIGhhbmRsZUNhclNlbGVjdDogZnVuY3Rpb24gaGFuZGxlQ2FyU2VsZWN0KF9yZWYpIHsKICAgICAgdmFyIGNhck51bWJlciA9IF9yZWYuY2FyTnVtYmVyLAogICAgICAgIGNhckNsYXNzID0gX3JlZi5jYXJDbGFzczsKICAgICAgdGhpcy4kc2V0KHRoaXMucmVzY3VlSW5mbywgJ2Rpc3BhdGNoQ2FyQ29kZScsIGNhck51bWJlcik7CiAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdkaXNwYXRjaENhclR5cGUnLCBjYXJDbGFzcyk7CiAgICAgIHRoaXMuZGlzcGF0Y2hlcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgaXRlbS5kaXNwYXRjaENhckNvZGUgPSBjYXJOdW1iZXI7CiAgICAgICAgaXRlbS5kaXNwYXRjaENhclR5cGUgPSBjYXJDbGFzczsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlVXNlclNlbGVjdDogZnVuY3Rpb24gaGFuZGxlVXNlclNlbGVjdCh1c2VyKSB7CiAgICAgIHZhciBfdGhpcyRyZXNjdWVJbmZvID0gdGhpcy5yZXNjdWVJbmZvLAogICAgICAgIF90aGlzJHJlc2N1ZUluZm8kZGlzcCA9IF90aGlzJHJlc2N1ZUluZm8uZGlzcGF0Y2hDYXJDb2RlLAogICAgICAgIGRpc3BhdGNoQ2FyQ29kZSA9IF90aGlzJHJlc2N1ZUluZm8kZGlzcCA9PT0gdm9pZCAwID8gJycgOiBfdGhpcyRyZXNjdWVJbmZvJGRpc3AsCiAgICAgICAgX3RoaXMkcmVzY3VlSW5mbyRkaXNwMiA9IF90aGlzJHJlc2N1ZUluZm8uZGlzcGF0Y2hDYXJUeXBlLAogICAgICAgIGRpc3BhdGNoQ2FyVHlwZSA9IF90aGlzJHJlc2N1ZUluZm8kZGlzcDIgPT09IHZvaWQgMCA/ICcnIDogX3RoaXMkcmVzY3VlSW5mbyRkaXNwMjsKICAgICAgaWYgKHVzZXIubGVuZ3RoID4gMCkgewogICAgICAgIHRoaXMucmVzY3VlSW5mby51c2VyID0gdXNlcjsKICAgICAgICB0aGlzLnJlc2N1ZUluZm8udXNlck5hbWUgPSB1c2VyLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZTsKICAgICAgICB9KS5qb2luKCcsJyk7CiAgICAgICAgdGhpcy5kaXNwYXRjaGVzID0gdXNlci5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGRpc3BhdGNoQ2FyQ29kZTogZGlzcGF0Y2hDYXJDb2RlLAogICAgICAgICAgICBkaXNwYXRjaENhclR5cGU6IGRpc3BhdGNoQ2FyVHlwZSwKICAgICAgICAgICAgZGlzcGF0Y2hVc2VySWQ6IGl0ZW0uaWQsCiAgICAgICAgICAgIGRpc3BhdGNoVXNlck5hbWU6IGl0ZW0ubmFtZSwKICAgICAgICAgICAgZGlzcGF0Y2hVc2VyVGVsOiBpdGVtLnRlbAogICAgICAgICAgfTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGhhbmRsZUFwcG9pbnQ6IGZ1bmN0aW9uIGhhbmRsZUFwcG9pbnQoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICB0aGlzLiRyZWZzLnJlc2N1ZUluZm8udmFsaWRhdGUoLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZjIgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUodmFsaWQsIG9iamVjdCkgewogICAgICAgICAgdmFyIGRhdGEsIHJvYWRJbmZvOwogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGlmICghdmFsaWQpIHsKICAgICAgICAgICAgICAgICAgX3RoaXM4LiRtZXNzYWdlLndhcm5pbmcoIlx1NjcwOSIuY29uY2F0KE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoLCAiXHU0RTJBXHU1QjU3XHU2QkI1XHU2NzJBXHU5MDFBXHU4RkM3XHU2ODIxXHU5QThDXHVGRjBDXHU4QkY3XHU2QjYzXHU3ODZFXHU1ODZCXHU1MTk5XHU4ODY4XHU1MzU1XHU1MTg1XHU1QkI5XHUzMDAyIikpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoX3RoaXM4LnJlc2N1ZUluZm8pKTsKICAgICAgICAgICAgICAgICAgZGF0YS5vY2N1cHkgPSBkYXRhLm9jY3VweS5qb2luKCcsJyk7CiAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnN0YXJ0UGVnICYmIGRhdGEuc3RhcnRQZWdBZGQpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhLnBlZ1ZhbCA9ICdrJyArIChkYXRhLnN0YXJ0UGVnIHx8ICcnKSArICcrJyArIChkYXRhLnN0YXJ0UGVnQWRkIHx8ICcnKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBkYXRhLnJlc2N1ZVRpbWUgPSBtb21lbnQoZGF0YS5yZXNjdWVUaW1lKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKTsKICAgICAgICAgICAgICAgICAgcm9hZEluZm8gPSBfdGhpczgucm9hZE9wdGlvbnMuZmluZChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmlkID09PSBkYXRhLnJvYWRJZDsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIGRhdGEucm9hZE5hbWUgPSByb2FkSW5mby5uYW1lOwogICAgICAgICAgICAgICAgICBkYXRhLnJvYWRDb2RlID0gcm9hZEluZm8uY29kZTsKICAgICAgICAgICAgICAgICAgZGF0YS5jYXIgPSB7CiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hDYXJDb2RlOiBkYXRhLmRpc3BhdGNoQ2FyQ29kZSB8fCAnJywKICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaENhclR5cGU6IGRhdGEuZGlzcGF0Y2hDYXJUeXBlCiAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIGRhdGEuZGlzcGF0Y2hlcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoX3RoaXM4LmRpc3BhdGNoZXMpKTsKICAgICAgICAgICAgICAgICAgX3RoaXM4LiRjb25maXJtKCfnoa7orqTkv53lrZjmlZHmj7TljZXkv6Hmga/lkJfvvJ8nLCAn5o+Q56S6JywgewogICAgICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu6K6kJywKICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICAgICAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICAgICAgICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU0KCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNCQoX2NvbnRleHQ0KSB7CiAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDQucHJldiA9IF9jb250ZXh0NC5uZXh0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczguJGVtaXQoJ2NvbmZpcm0nLCBkYXRhKTsKICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczguY2xvc2VkKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9LCBfY2FsbGVlNCk7CiAgICAgICAgICAgICAgICAgIH0pKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LnN0b3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTUpOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94LCBfeDIpIHsKICAgICAgICAgIHJldHVybiBfcmVmMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSk7CiAgICB9LAogICAgLy8g5YWz6Zet5by55bGC6Kem5Y+RCiAgICBjbG9zZWQ6IGZ1bmN0aW9uIGNsb3NlZCgpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CiAgICAgIHZhciBvcmdEYXRhID0gdGhpcy5vcmdEYXRhOwogICAgICAvLyDph43nva5kYXRh5Lit55qE5pWw5o2uCiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy4kZGF0YSwgdGhpcy4kb3B0aW9ucy5kYXRhLmNhbGwodGhpcyksIHsKICAgICAgICBvcmdEYXRhOiBvcmdEYXRhCiAgICAgIH0pOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF90aGlzOSQkcmVmcyRyZXNjdWVJbjsKICAgICAgICAoX3RoaXM5JCRyZWZzJHJlc2N1ZUluID0gX3RoaXM5LiRyZWZzLnJlc2N1ZUluZm8pID09PSBudWxsIHx8IF90aGlzOSQkcmVmcyRyZXNjdWVJbiA9PT0gdm9pZCAwIHx8IF90aGlzOSQkcmVmcyRyZXNjdWVJbi5jbGVhclZhbGlkYXRlKCk7CiAgICAgIH0pOwogICAgICBpZiAodGhpcy5jb25maXJtQ2xvc2VEaWFsb2cpIHRoaXMuaXNTaG93RGlhbG9nID0gZmFsc2U7CiAgICB9CiAgfQp9Ow=="},null]}