{"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\\AppointDialog\\components\\RescueInfoDialog\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\EventRegistration\\components\\AppointDialog\\components\\RescueInfoDialog\\index.vue","mtime":1752142511495},{"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:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5qb2luLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5zb21lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JzsKaW1wb3J0IFN1cGVyRGlhbG9nIGZyb20gJ0AvY29tcG9uZW50cy9TdXBlckRpYWxvZy9pbmRleC52dWUnOwppbXBvcnQgQ2FyQ2hvaWNlRGlhbG9nIGZyb20gJy4uL0NhckNob2ljZURpYWxvZyc7CmltcG9ydCBVc2VyQ2hvaWNlRGlhbG9nIGZyb20gJy4uL1VzZXJDaG9pY2VEaWFsb2cnOwppbXBvcnQgeyByZWZpbmVSZXF1ZXN0Qm9keSB9IGZyb20gJ0AvdXRpbHMvcmVxdWVzdFdyYXBwZXJzJzsKaW1wb3J0IHsgZ2V0RGljdGlvbmFyeUJ5Q29kZSB9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeSc7CmltcG9ydCB7IHRhYmxlRGF0YSBhcyByb2FkU2VjdGlvbkluZm9JbnRlciB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3JvYWRTZWN0aW9uSW5mbyc7CmltcG9ydCB7IHRhYmxlRGF0YSBhcyB0ZWFtRGF0YSB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3BhdHJvbEFuZFJlc2N1ZVRlYW1zTWdtdCc7CmltcG9ydCB7IHRhYmxlRGF0YSBhcyBhbG9uZ1JvdXRlSW5mb0ludGVyIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvYWxvbmdSb3V0ZUluZm8nOwppbXBvcnQgeyBwZXJzb25BbmRDYXJJbmZvIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2NvbW1hbmREaXNwYXRjaC9ldmVudFJlZ2lzdHJhdGlvbic7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnUmVzY3VlSW5mb0RpYWxvZycsCiAgaW5oZXJpdEF0dHJzOiBmYWxzZSwKICAvLyAgIG1peGluczogW1RhYmxlTWl4aW5dLAogIHByb3BzOiB7CiAgICBpc1Nob3c6IHsKICAgICAgZGVmYXVsdDogZmFsc2UsCiAgICAgIHR5cGU6IEJvb2xlYW4KICAgIH0sCiAgICB0b3A6IHsKICAgICAgZGVmYXVsdDogJzE0dmgnLAogICAgICB0eXBlOiBTdHJpbmcKICAgIH0sCiAgICB3aWR0aDogewogICAgICBkZWZhdWx0OiAnNjAlJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9LAogICAgaGVpZ2h0OiB7CiAgICAgIGRlZmF1bHQ6ICc2NXZoJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9LAogICAgY29uZmlybUNsb3NlRGlhbG9nOiB7CiAgICAgIGRlZmF1bHQ6IHRydWUsCiAgICAgIHR5cGU6IEJvb2xlYW4KICAgIH0sCiAgICByZXNjdWVJbmZvRGV0YWlsOiB7CiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkge30sCiAgICAgIHR5cGU6IE9iamVjdAogICAgfSwKICAgIGJhc2VJbmZvOiB7CiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkge30sCiAgICAgIHR5cGU6IE9iamVjdAogICAgfQogIH0sCiAgY29tcG9uZW50czogewogICAgU3VwZXJEaWFsb2c6IFN1cGVyRGlhbG9nLAogICAgQ2FyQ2hvaWNlRGlhbG9nOiBDYXJDaG9pY2VEaWFsb2csCiAgICBVc2VyQ2hvaWNlRGlhbG9nOiBVc2VyQ2hvaWNlRGlhbG9nCiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIHZhciB2YWxpZGF0ZVN0YXRpb24gPSBmdW5jdGlvbiB2YWxpZGF0ZVN0YXRpb24ocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSB7CiAgICAgIGlmIChfdGhpcy5yZXNjdWVJbmZvLnN0YXJ0UGVnID09PSB1bmRlZmluZWQgfHwgX3RoaXMucmVzY3VlSW5mby5zdGFydFBlZyA9PT0gJycgfHwgX3RoaXMucmVzY3VlSW5mby5zdGFydFBlZyA9PT0gbnVsbCkgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcign6K+36L6T5YWl5byA5aeL54K55L2N5qGp5Y+35YWo5YC8JykpOwogICAgICB9IGVsc2UgaWYgKF90aGlzLnJlc2N1ZUluZm8uc3RhcnRQZWdBZGQgPT09IHVuZGVmaW5lZCB8fCBfdGhpcy5yZXNjdWVJbmZvLnN0YXJ0UGVnQWRkID09PSAnJyB8fCBfdGhpcy5yZXNjdWVJbmZvLnN0YXJ0UGVnQWRkID09PSBudWxsKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7fovpPlhaXlvIDlp4vngrnkvY3moanlj7flhajlgLwhJykpOwogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CiAgICByZXR1cm4gewogICAgICB0YWJsZUxvYWRpbmc6IGZhbHNlLAogICAgICB0YWJsZU1heEhlaWdodDogJzYwMHB4JywKICAgICAgdGVhbURhdGFMaXN0OiBbXSwKICAgICAgcm9hZE9wdGlvbnM6IFtdLAogICAgICBhbG9uZ1JvdXRlSW5mb0RhdGE6IFtdLAogICAgICByZXNjdWVJbmZvOiB7CiAgICAgICAgcm9hZElkOiAnJywKICAgICAgICB0ZWFtSWQ6ICcnLAogICAgICAgIG9jY3VweTogWycwJ10sCiAgICAgICAgcmVzY3VlVHlwZTogMSwKICAgICAgICBjYXJDbGFzczogMSwKICAgICAgICBkaXJlY3Rpb246ICcxJywKICAgICAgICBjYXJUeXBlOiAxLAogICAgICAgIHJlc2N1ZVRpbWU6IG5ldyBEYXRlKCksCiAgICAgICAgY2FyOiB7fSwKICAgICAgICB1c2VyTmFtZTogJycsCiAgICAgICAgZGlzcGF0Y2hDYXJDb2RlOiAnJywKICAgICAgICB1c2VyOiBbXQogICAgICB9LAogICAgICByZXNjdWVJbmZvUnVsZXM6IHsKICAgICAgICByZXNjdWVUZWw6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmiqXmoYjnlLXor53kuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgcmVzY3VlVGltZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+aKpeahiOaXtumXtOS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XSwKICAgICAgICBldmVudFR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nkuovku7bnsbvlnosnLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIHJlc2N1ZVR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmlZHmj7TnsbvlnovkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIHJvYWRJZDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+i3r+auteS/oeaBr+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZSddCiAgICAgICAgfV0sCiAgICAgICAgdGVhbUlkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5rS+6YGj6Zif5LyN5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6IFsnY2hhbmdlJ10KICAgICAgICB9XSwKICAgICAgICBldmVudFRpbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfkuovku7blj5HnlJ/ml7bpl7TkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIGNhclVzZXJUZWw6IFt7CiAgICAgICAgICBwYXR0ZXJuOiAvXjEoM1swLTldfDRbNTddfDVbMC0zNS05XXw3WzA2NzhdfDhbMC05XSlcZHs4fSQvLAogICAgICAgICAgbWVzc2FnZTogJ+i9puS4u+eUteivnei+k+WFpeacieivrycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICB1c2VyTmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+a0vumBo+S6uuWRmOS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XSwKICAgICAgICBkaXNwYXRjaENhckNvZGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmtL7pgaPovabovobkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddCiAgICAgICAgfV0sCiAgICAgICAgcmVzY3VlU3RhdHVzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5pWR5o+054q25oCBJywKICAgICAgICAgIHRyaWdnZXI6IFsnY2hhbmdlJ10KICAgICAgICB9XSwKICAgICAgICBzdGFydFBlZzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0ZVN0YXRpb24sCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XQogICAgICB9LAogICAgICAvLyDovabovoYKICAgICAgY2FyRGF0YTogW10sCiAgICAgIGNhckNob2ljZURpYWxvZzogZmFsc2UsCiAgICAgIC8vIOS6uuWRmAogICAgICB1c2VyQ2hvaWNlRGlhbG9nOiBmYWxzZSwKICAgICAgZGlzcGF0Y2hlczogW10sCiAgICAgIHBlcnNvbk9wdGlvbnM6IFtdCiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IHsKICAgIGlzU2hvd0RpYWxvZzogewogICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5pc1Nob3c7CiAgICAgIH0sCiAgICAgIHNldDogZnVuY3Rpb24gc2V0KHZhbCkgewogICAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZTppc1Nob3cnLCB2YWwpOwogICAgICB9CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBnZXREaWN0aW9uYXJ5QnlDb2RlOiBnZXREaWN0aW9uYXJ5QnlDb2RlLAogICAgY2hlY2tEaXNhYmxlZDogZnVuY3Rpb24gY2hlY2tEaXNhYmxlZCgpIHsKICAgICAgcmV0dXJuIHRoaXMucmVzY3VlSW5mby5vY2N1cHkuaW5jbHVkZXMoJzAnKTsKICAgIH0sCiAgICBnZXRDYXJDbGFzc2lmeTogZnVuY3Rpb24gZ2V0Q2FyQ2xhc3NpZnkodmFsdWUpIHsKICAgICAgdmFyIF9kaWN0JDsKICAgICAgdmFyIGRpY3RfYXJyID0gZ2V0RGljdGlvbmFyeUJ5Q29kZSgnZ3pjbCcpOwogICAgICB2YXIgZGljdCA9IGRpY3RfYXJyLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnZhbHVlID09IHZhbHVlOwogICAgICB9KTsKICAgICAgcmV0dXJuIGRpY3QubGVuZ3RoID8gKF9kaWN0JCA9IGRpY3RbMF0pID09PSBudWxsIHx8IF9kaWN0JCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2RpY3QkLmxvd2VyRGljWydnemN4J10gOiBbXTsKICAgIH0sCiAgICBjaGFlY2tDaGFuZ2U6IGZ1bmN0aW9uIGNoYWVja0NoYW5nZShlKSB7CiAgICAgIGlmICh0aGlzLnJlc2N1ZUluZm8ub2NjdXB5LmluY2x1ZGVzKCcwJykpIHsKICAgICAgICB0aGlzLnJlc2N1ZUluZm8ub2NjdXB5ID0gWycwJ107CiAgICAgIH0KICAgIH0sCiAgICAvLyDmiZPlvIDlvLnlsYLml7bop6blj5EKICAgIG9wZW46IGZ1bmN0aW9uIG9wZW4oKSB7CiAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVzY3VlSW5mb0RldGFpbCwgJ3Jlc2N1ZUluZm9EZXRhaWxyZXNjdWVJbmZvRGV0YWlsJyk7CiAgICAgIHRoaXMuZ2V0Um9hZERhdGEoKTsKICAgICAgaWYgKHRoaXMucmVzY3VlSW5mb0RldGFpbC50eXBlID09PSAnZWRpdCcpIHsKICAgICAgICB0aGlzLnJlc2N1ZUluZm9EZXRhaWwub2NjdXB5ID0gdGhpcy5yZXNjdWVJbmZvRGV0YWlsLm9jY3VweS5zcGxpdCgnLCcpOwogICAgICAgIGlmICh0aGlzLnJlc2N1ZUluZm9EZXRhaWwucGVnVmFsKSB7CiAgICAgICAgICB2YXIgc3RhcnRQZWdBcnIgPSB0aGlzLnJlc2N1ZUluZm9EZXRhaWwucGVnVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICB0aGlzLiRzZXQodGhpcy5yZXNjdWVJbmZvLCAnc3RhcnRQZWcnLCBzdGFydFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgICB0aGlzLiRzZXQodGhpcy5yZXNjdWVJbmZvLCAnc3RhcnRQZWdBZGQnLCBzdGFydFBlZ0FyclsxXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdzdGFydFBlZycsICcnKTsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdzdGFydFBlZ0FkZCcsICcnKTsKICAgICAgICB9CiAgICAgICAgdGhpcy4kc2V0KHRoaXMsICdyZXNjdWVJbmZvJywgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnJlc2N1ZUluZm9EZXRhaWwpKSk7CiAgICAgICAgdGhpcy5yb2FkQ2hhbmdlKHRoaXMucmVzY3VlSW5mb0RldGFpbC5yb2FkSWQsIHRydWUpOwogICAgICB9IGVsc2UgewogICAgICAgIC8vIOm7mOiupOi1i+WAvAogICAgICAgIHRoaXMucmVzY3VlSW5mby5yb2FkSWQgPSB0aGlzLmJhc2VJbmZvLnJvYWRJZDsKICAgICAgICB0aGlzLnJvYWRDaGFuZ2UodGhpcy5yZXNjdWVJbmZvLnJvYWRJZCwgZmFsc2UpOwogICAgICAgIGlmICh0aGlzLnJlc2N1ZUluZm8ucmVzY3VlVGVsKSB7CiAgICAgICAgICB0aGlzLnJlc2N1ZUluZm8ucmVzY3VlVGVsID0gdGhpcy5iYXNlSW5mby5ldmVudFRlbDsKICAgICAgICB9CiAgICAgICAgdGhpcy5yZXNjdWVJbmZvLnJlc2N1ZVRpbWUgPSB0aGlzLmJhc2VJbmZvLmV2ZW50VGltZTsKICAgICAgICB0aGlzLnJlc2N1ZUluZm8uZGlyZWN0aW9uID0gdGhpcy5iYXNlSW5mby5kaXJlY3Rpb247CiAgICAgICAgaWYgKHRoaXMuYmFzZUluZm8ucGVnU1ZhbCkgewogICAgICAgICAgdmFyIF9zdGFydFBlZ0FyciA9IHRoaXMuYmFzZUluZm8ucGVnU1ZhbC5zcGxpdCgnKycpOwogICAgICAgICAgdGhpcy4kc2V0KHRoaXMucmVzY3VlSW5mbywgJ3N0YXJ0UGVnJywgX3N0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdzdGFydFBlZ0FkZCcsIF9zdGFydFBlZ0FyclsxXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdzdGFydFBlZycsICcnKTsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICdzdGFydFBlZ0FkZCcsICcnKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAvLyDlsZXnpLrlvLnlsYIKICAgIHNob3dEaWFsb2c6IGZ1bmN0aW9uIHNob3dEaWFsb2coZGlhbG9nTmFtZSkgewogICAgICBpZiAoIWRpYWxvZ05hbWUpIHJldHVybjsKICAgICAgaWYgKGRpYWxvZ05hbWUgPT09ICd1c2VyQ2hvaWNlJykgewogICAgICAgIGlmICghdGhpcy5yZXNjdWVJbmZvLnRlYW1JZCkgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign6K+35YWI6YCJ5oup5pWR5o+05aSE572u6Zif5LyNJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXNbZGlhbG9nTmFtZSArICdEaWFsb2cnXSA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHRoaXNbZGlhbG9nTmFtZSArICdEaWFsb2cnXSA9IHRydWU7CiAgICAgIH0KICAgIH0sCiAgICAvLyDot6/mrrXliJfooagKICAgIGdldFJvYWREYXRhOiBmdW5jdGlvbiBnZXRSb2FkRGF0YSgpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICB2YXIgX3lpZWxkJHJvYWRTZWN0aW9uSW5mLCBfeWllbGQkcm9hZFNlY3Rpb25JbmYyLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiByb2FkU2VjdGlvbkluZm9JbnRlcih7CiAgICAgICAgICAgICAgICBwYWdlQmVhbjogewogICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogLTEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCRyb2FkU2VjdGlvbkluZiA9IF9jb250ZXh0LnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiA9IF95aWVsZCRyb2FkU2VjdGlvbkluZi5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkcm9hZFNlY3Rpb25JbmYyID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCRyb2FkU2VjdGlvbkluZjI7CiAgICAgICAgICAgICAgX3RoaXMyLnJvYWRPcHRpb25zID0gcm93cy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIGl0ZW0ucm9hZE5hbWUgPSBpdGVtLm5hbWUgKyAnICcgKyBpdGVtLmNvZGU7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOi3r+auteaWueazlQogICAgcm9hZENoYW5nZTogZnVuY3Rpb24gcm9hZENoYW5nZSh2YWx1ZSkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgdmFyIHR5cGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlOwogICAgICBpZiAoIXR5cGUpIHsKICAgICAgICB0aGlzLnJlc2N1ZUluZm8udGVhbUlkID0gJyc7CiAgICAgIH0KICAgICAgdGhpcy5nZXRUZWFtRGF0YSh2YWx1ZSwgdHlwZSk7CiAgICAgIC8vIOmAmui/h+i3r+auteS/oeaBr+iOt+WPluayv+e6v+iuvuWkh+S/oeaBrwogICAgICB0aGlzLmdldEFsb25nUm91dGVJbmZvKHZhbHVlLCBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgIHZhciBfdGhpczMkcmVzY3VlSW5mbyA9IF90aGlzMy5yZXNjdWVJbmZvLAogICAgICAgICAgc3RhcnRQYXRyb2xJZCA9IF90aGlzMyRyZXNjdWVJbmZvLnN0YXJ0UGF0cm9sSWQsCiAgICAgICAgICBlbmRQYXRyb2xJZCA9IF90aGlzMyRyZXNjdWVJbmZvLmVuZFBhdHJvbElkOwogICAgICAgIC8qDQogICAgICAgICAqIOW3oeajgOW8gOWni++8jOe7k+adn+ermQ0KICAgICAgICAgKiAqLwogICAgICAgIGlmIChzdGFydFBhdHJvbElkKSB7CiAgICAgICAgICBpZiAoIWRhdGEuc29tZShmdW5jdGlvbiAoaSkgewogICAgICAgICAgICByZXR1cm4gaS5pZCA9PT0gc3RhcnRQYXRyb2xJZDsKICAgICAgICAgIH0pKSB7CiAgICAgICAgICAgIF90aGlzMy5yZXNjdWVJbmZvLnN0YXJ0UGF0cm9sSWQgPSAnJzsKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoXykgewogICAgICAgICAgICAgIHJldHVybiBfdGhpczMuJG1lc3NhZ2Uud2FybmluZygn6K+36YeN5paw6YCJ5oup5byA5aeL56uZLi4nKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChlbmRQYXRyb2xJZCkgewogICAgICAgICAgaWYgKCFkYXRhLnNvbWUoZnVuY3Rpb24gKGkpIHsKICAgICAgICAgICAgcmV0dXJuIGkuaWQgPT09IGVuZFBhdHJvbElkOwogICAgICAgICAgfSkpIHsKICAgICAgICAgICAgX3RoaXMzLnJlc2N1ZUluZm8uZW5kUGF0cm9sSWQgPSAnJzsKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoXykgewogICAgICAgICAgICAgIHJldHVybiBfdGhpczMuJG1lc3NhZ2Uud2FybmluZygn6K+36YeN5paw6YCJ5oup57uT5p2f56uZLi4nKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvLyDpgJrov4fot6/mrrXkv6Hmga/ojrflj5bmsr/nur/orr7lpIfkv6Hmga8KICAgIGdldEFsb25nUm91dGVJbmZvOiBmdW5jdGlvbiBnZXRBbG9uZ1JvdXRlSW5mbyh2YWx1ZSwgY2FsbGJhY2spIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIF93aXBlRGF0YSwgX3lpZWxkJGFsb25nUm91dGVJbmZvLCBfeWllbGQkYWxvbmdSb3V0ZUluZm8yLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfd2lwZURhdGEgPSBmdW5jdGlvbiBfd2lwZURhdGEoKSB7CiAgICAgICAgICAgICAgICBfdGhpczQuYWxvbmdSb3V0ZUluZm9EYXRhID0gW107CiAgICAgICAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhfdGhpczQuYWxvbmdSb3V0ZUluZm9EYXRhKTsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gMTsKICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIGFsb25nUm91dGVJbmZvSW50ZXIocmVmaW5lUmVxdWVzdEJvZHkoewogICAgICAgICAgICAgICAgcXVlcnlzOiBbewogICAgICAgICAgICAgICAgICBvcGVyYXRpb246ICdJTicsCiAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAncm9hZF9zZWdtZW50X2lkXycsCiAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZQogICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICB9KSwgJ2FkZEVkaXQnKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF95aWVsZCRhbG9uZ1JvdXRlSW5mbyA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIF95aWVsZCRhbG9uZ1JvdXRlSW5mbzIgPSBfeWllbGQkYWxvbmdSb3V0ZUluZm8ucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJGFsb25nUm91dGVJbmZvMiA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkYWxvbmdSb3V0ZUluZm8yOwogICAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJvd3MpOwogICAgICAgICAgICAgIF90aGlzNC5hbG9uZ1JvdXRlSW5mb0RhdGEgPSByb3dzOwogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMTQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAxMTsKICAgICAgICAgICAgICBfY29udGV4dDIudDAgPSBfY29udGV4dDJbImNhdGNoIl0oMSk7CiAgICAgICAgICAgICAgLy8g5LiN5Li66K+35rGC6L+H5b+r57uT5p2f55qE5oOF5Ya15LiL77yM6YeN572uCiAgICAgICAgICAgICAgaWYgKF9jb250ZXh0Mi50MC5tZXNzYWdlICE9PSAnY2FuY2VsZWQnKSBfd2lwZURhdGEoKTsKICAgICAgICAgICAgY2FzZSAxNDoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMiwgbnVsbCwgW1sxLCAxMV1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g6YCa6L+H6Lev5q615L+h5oGv6I635Y+W5beh5p+l5pWR5o+06Zif5LyN5L+h5oGvCiAgICBnZXRUZWFtRGF0YTogZnVuY3Rpb24gZ2V0VGVhbURhdGEodmFsdWUsIHR5cGUpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0ZWFtRGF0YSwgX3lpZWxkJHRlYW1EYXRhJHJvd3MsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGVhbURhdGEocmVmaW5lUmVxdWVzdEJvZHkoewogICAgICAgICAgICAgICAgcXVlcnlzOiBbewogICAgICAgICAgICAgICAgICBvcGVyYXRpb246ICdJTicsCiAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnci5pZF8nLAogICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUKICAgICAgICAgICAgICAgIH1dCiAgICAgICAgICAgICAgfSksICdhZGRFZGl0Jyk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkdGVhbURhdGEgPSBfY29udGV4dDMuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGVhbURhdGEkcm93cyA9IF95aWVsZCR0ZWFtRGF0YS5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkdGVhbURhdGEkcm93cyA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkdGVhbURhdGEkcm93czsKICAgICAgICAgICAgICBfdGhpczUudGVhbU9wdGlvbnMgPSByb3dzOwogICAgICAgICAgICAgIF90aGlzNS50ZWFtRGF0YUxpc3QgPSByb3dzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gJzInOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIGlmIChfdGhpczUudGVhbURhdGFMaXN0Lmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgIGlmICghdHlwZSkgewogICAgICAgICAgICAgICAgICBfdGhpczUucmVzY3VlSW5mby50ZWFtSWQgPSBfdGhpczUudGVhbURhdGFMaXN0WzBdLmlkOwogICAgICAgICAgICAgICAgICBfdGhpczUudGVhbUlkQ2hhbmdlKF90aGlzNS50ZWFtRGF0YUxpc3RbMF0uaWQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgdGVhbUlkQ2hhbmdlOiBmdW5jdGlvbiB0ZWFtSWRDaGFuZ2UodmFsdWUpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMuZ2V0UGVyc29uQW5kQ2FySW5mbyh2YWx1ZSk7CiAgICAgIHZhciB0ZWFtSW5mbyA9IHRoaXMudGVhbU9wdGlvbnMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgPT09IF90aGlzNi5yZXNjdWVJbmZvLnRlYW1JZDsKICAgICAgfSlbMF07CiAgICAgIHRoaXMucmVzY3VlSW5mby50ZWFtTmFtZSA9IHRlYW1JbmZvLm5hbWU7CiAgICAgIHRoaXMuJHNldCh0aGlzLnJlc2N1ZUluZm8sICd1c2VyTmFtZScsICcnKTsKICAgICAgdGhpcy4kc2V0KHRoaXMucmVzY3VlSW5mbywgJ2Rpc3BhdGNoQ2FyQ29kZScsICcnKTsKICAgICAgdGhpcy5yZXNjdWVJbmZvLnVzZXIgPSBbXTsKICAgICAgdGhpcy5kaXNwYXRjaGVzID0gW107CiAgICB9LAogICAgLy8g5qC55o2u6Zif5LyNaWTmn6Xor6LkurrlkZjkv6Hmga/lj4rovabovobkv6Hmga8KICAgIGdldFBlcnNvbkFuZENhckluZm86IGZ1bmN0aW9uIGdldFBlcnNvbkFuZENhckluZm8oaWQpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHBlcnNvbkFuZENhckluZm8oaWQpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIHZhciBfcmVzJHZhbHVlID0gcmVzLnZhbHVlLAogICAgICAgICAgX3JlcyR2YWx1ZSRtZW1iZXJzID0gX3JlcyR2YWx1ZS5tZW1iZXJzLAogICAgICAgICAgbWVtYmVycyA9IF9yZXMkdmFsdWUkbWVtYmVycyA9PT0gdm9pZCAwID8gW10gOiBfcmVzJHZhbHVlJG1lbWJlcnMsCiAgICAgICAgICBfcmVzJHZhbHVlJGNhcnMgPSBfcmVzJHZhbHVlLmNhcnMsCiAgICAgICAgICBjYXJzID0gX3JlcyR2YWx1ZSRjYXJzID09PSB2b2lkIDAgPyBbXSA6IF9yZXMkdmFsdWUkY2FyczsKICAgICAgICBfdGhpczcucGVyc29uT3B0aW9ucyA9IG1lbWJlcnMubWFwKGZ1bmN0aW9uIChwZXJzb24pIHsKICAgICAgICAgIHBlcnNvbi5sYWJlbCA9IHBlcnNvbi50ZWwgKyAnICcgKyBwZXJzb24ubmFtZTsKICAgICAgICAgIHJldHVybiBwZXJzb247CiAgICAgICAgfSk7CiAgICAgICAgX3RoaXM3LmNhckRhdGEgPSBjYXJzOwogICAgICB9KTsKICAgIH0sCiAgICBzaXRlQ2hhbmdlOiBmdW5jdGlvbiBzaXRlQ2hhbmdlKGUsIHR5cGUpIHsKICAgICAgdmFyIHNpdGVJbmZvID0gdGhpcy5hbG9uZ1JvdXRlSW5mb0RhdGEuZmluZChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkID09PSBlOwogICAgICB9KTsKICAgICAgdGhpcy5yZXNjdWVJbmZvWyIiLmNvbmNhdCh0eXBlLCAiTmFtZSIpXSA9IHNpdGVJbmZvLm5hbWU7CiAgICB9LAogICAgaGFuZGxlQ2FyU2VsZWN0OiBmdW5jdGlvbiBoYW5kbGVDYXJTZWxlY3QoX3JlZikgewogICAgICB2YXIgY2FyTnVtYmVyID0gX3JlZi5jYXJOdW1iZXIsCiAgICAgICAgY2FyQ2xhc3MgPSBfcmVmLmNhckNsYXNzOwogICAgICB0aGlzLiRzZXQodGhpcy5yZXNjdWVJbmZvLCAnZGlzcGF0Y2hDYXJDb2RlJywgY2FyTnVtYmVyKTsKICAgICAgdGhpcy4kc2V0KHRoaXMucmVzY3VlSW5mbywgJ2Rpc3BhdGNoQ2FyVHlwZScsIGNhckNsYXNzKTsKICAgICAgdGhpcy5kaXNwYXRjaGVzLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICBpdGVtLmRpc3BhdGNoQ2FyQ29kZSA9IGNhck51bWJlcjsKICAgICAgICBpdGVtLmRpc3BhdGNoQ2FyVHlwZSA9IGNhckNsYXNzOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVVc2VyU2VsZWN0OiBmdW5jdGlvbiBoYW5kbGVVc2VyU2VsZWN0KHVzZXIpIHsKICAgICAgdmFyIF90aGlzJHJlc2N1ZUluZm8gPSB0aGlzLnJlc2N1ZUluZm8sCiAgICAgICAgX3RoaXMkcmVzY3VlSW5mbyRkaXNwID0gX3RoaXMkcmVzY3VlSW5mby5kaXNwYXRjaENhckNvZGUsCiAgICAgICAgZGlzcGF0Y2hDYXJDb2RlID0gX3RoaXMkcmVzY3VlSW5mbyRkaXNwID09PSB2b2lkIDAgPyAnJyA6IF90aGlzJHJlc2N1ZUluZm8kZGlzcCwKICAgICAgICBfdGhpcyRyZXNjdWVJbmZvJGRpc3AyID0gX3RoaXMkcmVzY3VlSW5mby5kaXNwYXRjaENhclR5cGUsCiAgICAgICAgZGlzcGF0Y2hDYXJUeXBlID0gX3RoaXMkcmVzY3VlSW5mbyRkaXNwMiA9PT0gdm9pZCAwID8gJycgOiBfdGhpcyRyZXNjdWVJbmZvJGRpc3AyOwogICAgICBpZiAodXNlci5sZW5ndGggPiAwKSB7CiAgICAgICAgdGhpcy5yZXNjdWVJbmZvLnVzZXIgPSB1c2VyOwogICAgICAgIHRoaXMucmVzY3VlSW5mby51c2VyTmFtZSA9IHVzZXIubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICByZXR1cm4gaXRlbS5uYW1lOwogICAgICAgIH0pLmpvaW4oJywnKTsKICAgICAgICB0aGlzLmRpc3BhdGNoZXMgPSB1c2VyLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZGlzcGF0Y2hDYXJDb2RlOiBkaXNwYXRjaENhckNvZGUsCiAgICAgICAgICAgIGRpc3BhdGNoQ2FyVHlwZTogZGlzcGF0Y2hDYXJUeXBlLAogICAgICAgICAgICBkaXNwYXRjaFVzZXJJZDogaXRlbS5pZCwKICAgICAgICAgICAgZGlzcGF0Y2hVc2VyTmFtZTogaXRlbS5uYW1lLAogICAgICAgICAgICBkaXNwYXRjaFVzZXJUZWw6IGl0ZW0udGVsCiAgICAgICAgICB9OwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlQXBwb2ludDogZnVuY3Rpb24gaGFuZGxlQXBwb2ludCgpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIHRoaXMuJHJlZnMucmVzY3VlSW5mby52YWxpZGF0ZSgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmMiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNSh2YWxpZCwgb2JqZWN0KSB7CiAgICAgICAgICB2YXIgZGF0YSwgcm9hZEluZm87CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkgewogICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUucHJldiA9IF9jb250ZXh0NS5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgaWYgKCF2YWxpZCkgewogICAgICAgICAgICAgICAgICBfdGhpczguJG1lc3NhZ2Uud2FybmluZygiXHU2NzA5Ii5jb25jYXQoT2JqZWN0LmtleXMob2JqZWN0KS5sZW5ndGgsICJcdTRFMkFcdTVCNTdcdTZCQjVcdTY3MkFcdTkwMUFcdThGQzdcdTY4MjFcdTlBOENcdUZGMENcdThCRjdcdTZCNjNcdTc4NkVcdTU4NkJcdTUxOTlcdTg4NjhcdTUzNTVcdTUxODVcdTVCQjlcdTMwMDIiKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShfdGhpczgucmVzY3VlSW5mbykpOwogICAgICAgICAgICAgICAgICBkYXRhLm9jY3VweSA9IGRhdGEub2NjdXB5LmpvaW4oJywnKTsKICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhcnRQZWcgJiYgZGF0YS5zdGFydFBlZ0FkZCkgewogICAgICAgICAgICAgICAgICAgIGRhdGEucGVnVmFsID0gJ2snICsgKGRhdGEuc3RhcnRQZWcgfHwgJycpICsgJysnICsgKGRhdGEuc3RhcnRQZWdBZGQgfHwgJycpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGRhdGEucmVzY3VlVGltZSA9IG1vbWVudChkYXRhLnJlc2N1ZVRpbWUpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpOwogICAgICAgICAgICAgICAgICByb2FkSW5mbyA9IF90aGlzOC5yb2FkT3B0aW9ucy5maW5kKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaWQgPT09IGRhdGEucm9hZElkOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgZGF0YS5yb2FkTmFtZSA9IHJvYWRJbmZvLm5hbWU7CiAgICAgICAgICAgICAgICAgIGRhdGEucm9hZENvZGUgPSByb2FkSW5mby5jb2RlOwogICAgICAgICAgICAgICAgICBkYXRhLmNhciA9IHsKICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaENhckNvZGU6IGRhdGEuZGlzcGF0Y2hDYXJDb2RlIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoQ2FyVHlwZTogZGF0YS5kaXNwYXRjaENhclR5cGUKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgZGF0YS5kaXNwYXRjaGVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShfdGhpczguZGlzcGF0Y2hlcykpOwogICAgICAgICAgICAgICAgICBfdGhpczguJGNvbmZpcm0oJ+ehruiupOS/neWtmOaVkeaPtOWNleS/oeaBr+WQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgICAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgICAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgICAgICAgICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzOC4kZW1pdCgnY29uZmlybScsIGRhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzOC5jbG9zZWQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0sIF9jYWxsZWU0KTsKICAgICAgICAgICAgICAgICAgfSkpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gsIF94MikgewogICAgICAgICAgcmV0dXJuIF9yZWYyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKTsKICAgIH0sCiAgICAvLyDlhbPpl63lvLnlsYLop6blj5EKICAgIGNsb3NlZDogZnVuY3Rpb24gY2xvc2VkKCkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKICAgICAgdmFyIG9yZ0RhdGEgPSB0aGlzLm9yZ0RhdGE7CiAgICAgIC8vIOmHjee9rmRhdGHkuK3nmoTmlbDmja4KICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiRkYXRhLCB0aGlzLiRvcHRpb25zLmRhdGEuY2FsbCh0aGlzKSwgewogICAgICAgIG9yZ0RhdGE6IG9yZ0RhdGEKICAgICAgfSk7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3RoaXM5JCRyZWZzJHJlc2N1ZUluOwogICAgICAgIChfdGhpczkkJHJlZnMkcmVzY3VlSW4gPSBfdGhpczkuJHJlZnMucmVzY3VlSW5mbykgPT09IG51bGwgfHwgX3RoaXM5JCRyZWZzJHJlc2N1ZUluID09PSB2b2lkIDAgfHwgX3RoaXM5JCRyZWZzJHJlc2N1ZUluLmNsZWFyVmFsaWRhdGUoKTsKICAgICAgfSk7CiAgICAgIGlmICh0aGlzLmNvbmZpcm1DbG9zZURpYWxvZykgdGhpcy5pc1Nob3dEaWFsb2cgPSBmYWxzZTsKICAgIH0KICB9Cn07"},null]}