| 1 |
- {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\thread-loader\\dist\\cjs.js!D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\notify\\smsConfig\\tableList.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\notify\\smsConfig\\tableList.vue","mtime":1761614939043},{"path":"D:\\front\\item\\zyAdmin\\babel.config.js","mtime":1761614925168},{"path":"D:\\front\\item\\zyAdmin\\.babelrc","mtime":1761614925165},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1761614937017},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvciBmcm9tICJEOi9mcm9udC9pdGVtL3p5QWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L2Zyb250L2l0ZW0venlBZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmVycm9yLmNhdXNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRlc3QuanMiOwppbXBvcnQgeyBzbXNSZWNvcmRBcGksIHNlcnZlSW5mb0FwaSwgc2VydmVTbXNPcGVuQXBpLCBzZXJ2ZU9wbkV4cHJlc3NBcGksIHNlcnZlT3BuT3RoZXJBcGksIHNlcnZlUmVjb3JkTGlzdEFwaSwgZXhwb3J0VGVtcEFwaSwgZXhwb3J0QWxsQXBpLCBzZXJ2ZVNpZ24sIGNhcHRjaGFBcGksIHNlcnZlT3BlbiB9IGZyb20gJ0AvYXBpL3NldHRpbmcnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ3RhYmxlTGlzdCcsCiAgcHJvcHM6IHsKICAgIGNvcHk6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBudWxsCiAgICB9LAogICAgZHVtcDogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IG51bGwKICAgIH0sCiAgICBxdWVyeTogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IG51bGwKICAgIH0sCiAgICBzbXM6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBudWxsCiAgICB9LAogICAgYWNjb3VudEluZm86IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBudWxsCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgdmFyIHZhbGlkYXRlUGhvbmUgPSBmdW5jdGlvbiB2YWxpZGF0ZVBob25lKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgewogICAgICBpZiAoIXZhbHVlKSB7CiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcign6K+35aGr5YaZ5omL5py65Y+3JykpOwogICAgICB9IGVsc2UgaWYgKCEvXjFbMzQ1Njc4OV1cZHs5fSQvLnRlc3QodmFsdWUpKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfmiYvmnLrlj7fmoLzlvI/kuI3mraPnoa4hJykpOwogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CiAgICByZXR1cm4gewogICAgICBjdXROVW06ICfojrflj5bpqozor4HnoIEnLAogICAgICBjYW5DbGljazogdHJ1ZSwKICAgICAgc3BpblNob3c6IHRydWUsCiAgICAgIGZvcm1JbmxpbmU6IHsKICAgICAgICBzaWduOiAnJywKICAgICAgICBwaG9uZTogJycsCiAgICAgICAgY29kZTogJycKICAgICAgfSwKICAgICAgcnVsZUlubGluZTogewogICAgICAgIHNpZ246IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXnn63kv6Hnrb7lkI0nLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgcGhvbmU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVQaG9uZSwKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGNvZGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXpqozor4HnoIEnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgaXNDaGVja2VkOiAnMScsCiAgICAgIGNvbHVtbnMyOiBbXSwKICAgICAgdGFibGVGcm9tOiB7CiAgICAgICAgcGFnZTogMSwKICAgICAgICBsaW1pdDogMjAsCiAgICAgICAgdHlwZTogJycKICAgICAgfSwKICAgICAgdG90YWw6IDAsCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICB0YWJsZUxpc3Q6IFtdLAogICAgICBmb3JtSW5saW5lRHVtcDogewogICAgICAgIHRlbXBfaWQ6ICcnLAogICAgICAgIGNvbTogJycsCiAgICAgICAgdG9fbmFtZTogJycsCiAgICAgICAgdG9fdGVsOiAnJywKICAgICAgICBzaWlkOiAnJywKICAgICAgICB0b19hZGRyZXNzOiAnJwogICAgICB9LAogICAgICBydWxlSW5saW5lRHVtcDogewogICAgICAgIGNvbTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeW/q+mAkuWFrOWPuCcsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHRlbXBfaWQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nmiZPljbDmqKHmnb8nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB0b19uYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5a+E5Lu25Lq65aeT5ZCNJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHRvX3RlbDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0ZVBob25lLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgc2lpZDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeS6keaJk+WNsOacuue8luWPtycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICB0b19hZGRyZXNzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5a+E5Lu25Lq65Zyw5Z2AJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHRlbXBJbWc6ICcnLAogICAgICAvLyDlm77niYcKICAgICAgZXhwb3J0VGVtcExpc3Q6IFtdLAogICAgICAvLyDnlLXlrZDpnaLljZXmqKHmnb8KICAgICAgZXhwb3J0TGlzdDogW10sCiAgICAgIC8vIOW/q+mAkuWFrOWPuOWIl+ihqAogICAgICBpc1NtczogZmFsc2UsCiAgICAgIC8vIOaYr+WQpuW8gOmAmuefreS/oQogICAgICBpc0R1bXA6IGZhbHNlLAogICAgICAvLyDmmK/lkKblvIDpgJrnlLXlrZDpnaLljZUKICAgICAgaXNDb3B5OiBmYWxzZSwKICAgICAgLy8g5piv5ZCm5byA6YCa5ZWG5ZOB6YeH6ZuGCiAgICAgIG1vZGFsczogZmFsc2UsCiAgICAgIGlzTG9naXN0aWNzOiBmYWxzZSAvL+aYr+WQpuW8gOmAmueJqea1geafpeivogogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICBzbXM6IGZ1bmN0aW9uIHNtcyhuKSB7CiAgICAgIGlmIChuLm9wZW4gPT09IDEpIHRoaXMuZ2V0TGlzdCgpOwogICAgfQogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIGlmICh0aGlzLmlzQ2hlY2tlZCA9PT0gJzEnICYmIHRoaXMuc21zLm9wZW4gPT09IDEpIHRoaXMuZ2V0TGlzdCgpOwogIH0sCiAgLy8gbW91bnRlZCgpIHsKICAvLyAgICAgc2VydmVEdW1wT3BlbigpLnRoZW4ocmVzPT57CiAgLy8gICAgICAgICB0aGlzLmlzTG9naXN0aWNzID0gcmVzLmRhdGEuaXNPcGVuCiAgLy8gICAgIH0pCiAgLy8gfSwKICBtZXRob2RzOiB7CiAgICAvL+efreS/oeaooeadv+mhtQogICAgc2hvcnRNZXM6IGZ1bmN0aW9uIHNob3J0TWVzKCkgewogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgcGF0aDogdGhpcy4kcm91dGVQcm9TdHIgKyAnL3NldHRpbmcvc21zL3Ntc190ZW1wbGF0ZV9hcHBseS9pbmRleCcKICAgICAgfSk7CiAgICB9LAogICAgLy8g55+t5L+h6aqM6K+B56CBCiAgICBjdXREb3duOiBmdW5jdGlvbiBjdXREb3duKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICBpZiAodGhpcy5mb3JtSW5saW5lLnBob25lKSB7CiAgICAgICAgaWYgKCF0aGlzLmNhbkNsaWNrKSByZXR1cm47CiAgICAgICAgdGhpcy5jYW5DbGljayA9IGZhbHNlOwogICAgICAgIHRoaXMuY3V0TlVtID0gNjA7CiAgICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgICBwaG9uZTogdGhpcy5mb3JtSW5saW5lLnBob25lCiAgICAgICAgfTsKICAgICAgICBjYXB0Y2hhQXBpKGRhdGEpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBfcmVmID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZShyZXMpIHsKICAgICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0KSB7CiAgICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQubikgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICBfdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYSgyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIF9jYWxsZWUpOwogICAgICAgICAgfSkpOwogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCkgewogICAgICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgfTsKICAgICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAgIH0pOwogICAgICAgIHZhciB0aW1lID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXMuY3V0TlVtLS07CiAgICAgICAgICBpZiAoX3RoaXMuY3V0TlVtID09PSAwKSB7CiAgICAgICAgICAgIF90aGlzLmN1dE5VbSA9ICfojrflj5bpqozor4HnoIEnOwogICAgICAgICAgICBfdGhpcy5jYW5DbGljayA9IHRydWU7CiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGltZSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgMTAwMCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7floavlhpnmiYvmnLrlj7chJyk7CiAgICAgIH0KICAgIH0sCiAgICBlZGl0U2lnbjogZnVuY3Rpb24gZWRpdFNpZ24oKSB7CiAgICAgIHRoaXMuZm9ybUlubGluZS5zaWduID0gdGhpcy5hY2NvdW50SW5mby5zbXMuc2lnbjsKICAgICAgdGhpcy5tb2RhbHMgPSB0cnVlOwogICAgfSwKICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKG5hbWUpIHsKICAgICAgdGhpcy5tb2RhbHMgPSBmYWxzZTsKICAgICAgdGhpcy4kcmVmc1tuYW1lXS5yZXNldEZpZWxkcygpOwogICAgfSwKICAgIC8vIOaPkOS6pAogICAgZWRpdFN1Ym1pdDogZnVuY3Rpb24gZWRpdFN1Ym1pdChuYW1lKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzW25hbWVdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgc2VydmVTaWduKF90aGlzMi5mb3JtSW5saW5lKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXMyLm1vZGFscyA9IGZhbHNlOwogICAgICAgICAgICBfdGhpczIuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICAgICAgX3RoaXMyLiRyZWZzW25hbWVdLnJlc2V0RmllbGRzKCk7CiAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgb25DaGFuZ2VJbWc6IGZ1bmN0aW9uIG9uQ2hhbmdlSW1nKGl0ZW0pIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHRoaXMuZXhwb3J0VGVtcExpc3QubWFwKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgaWYgKGkudGVtcF9pZCA9PT0gaXRlbSkgX3RoaXMzLnRlbXBJbWcgPSBpLnBpYzsKICAgICAgfSk7CiAgICB9LAogICAgLy8g54mp5rWB5YWs5Y+4CiAgICBleHBvcnRUZW1wQWxsTGlzdDogZnVuY3Rpb24gZXhwb3J0VGVtcEFsbExpc3QoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICBleHBvcnRBbGxBcGkoKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYyID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTIocmVzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQyKSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5uKSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgX3RoaXM0LmV4cG9ydExpc3QgPSByZXMuZGF0YTsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLmEoMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDIpIHsKICAgICAgICAgIHJldHVybiBfcmVmMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNC4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5b+r6YCS5YWs5Y+46YCJ5oupCiAgICBvbkNoYW5nZUV4cG9ydDogZnVuY3Rpb24gb25DaGFuZ2VFeHBvcnQodmFsKSB7CiAgICAgIHRoaXMuZm9ybUlubGluZUR1bXAudGVtcF9pZCA9ICcnOwogICAgICB0aGlzLmV4cG9ydFRlbXAodmFsKTsKICAgIH0sCiAgICAvLyDnlLXlrZDpnaLljZXmqKHmnb8KICAgIGV4cG9ydFRlbXA6IGZ1bmN0aW9uIGV4cG9ydFRlbXAodmFsKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICBleHBvcnRUZW1wQXBpKHsKICAgICAgICBjb206IHZhbAogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYzID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTMocmVzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQzKSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5uKSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgX3RoaXM1LmV4cG9ydFRlbXBMaXN0ID0gcmVzLmRhdGEuZGF0YTsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmEoMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWUzKTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDMpIHsKICAgICAgICAgIHJldHVybiBfcmVmMy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNS4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgb25DaGFuZ2VUeXBlOiBmdW5jdGlvbiBvbkNoYW5nZVR5cGUoKSB7CiAgICAgIGlmICh0aGlzLmlzQ2hlY2tlZCA9PT0gJzEnICYmIHRoaXMuc21zLm9wZW4gPT09IDEpIHsKICAgICAgICB0aGlzLnRhYmxlRnJvbS50eXBlID0gJyc7CiAgICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gaWYgKCh0aGlzLmlzQ2hlY2tlZCA9PT0gJzInICYmIHRoaXMucXVlcnkub3BlbiA9PT0gMCkgfHwgKHRoaXMuZHVtcC5vcGVuID09PSAwICYmIHRoaXMuaXNDaGVja2VkID09PSAnMycpKSB0aGlzLmlzRHVtcCA9IGZhbHNlCiAgICAgICAgaWYgKHRoaXMuaXNDaGVja2VkID09PSAnMicgJiYgdGhpcy5xdWVyeS5vcGVuID09PSAwKSB0aGlzLmlzRHVtcCA9IGZhbHNlOwogICAgICAgIGlmICh0aGlzLmlzQ2hlY2tlZCA9PT0gJzMnICYmIHRoaXMucXVlcnkub3BlbiA9PT0gMCkgdGhpcy5pc0xvZ2lzdGljcyA9IGZhbHNlOwogICAgICAgIGlmICh0aGlzLmR1bXAub3BlbiA9PT0gMSB8fCB0aGlzLnF1ZXJ5Lm9wZW4gPT09IDEgfHwgdGhpcy5jb3B5Lm9wZW4gPT09IDEpIHRoaXMuZ2V0UmVjb3JkTGlzdCgpOwogICAgICB9CiAgICB9LAogICAgLy8g5YW25LuW5YiX6KGoCiAgICBnZXRSZWNvcmRMaXN0OiBmdW5jdGlvbiBnZXRSZWNvcmRMaXN0KCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgdGhpcy50YWJsZUZyb20udHlwZSA9IHRoaXMuaXNDaGVja2VkOwogICAgICBzZXJ2ZVJlY29yZExpc3RBcGkodGhpcy50YWJsZUZyb20pLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZjQgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlNChyZXMpIHsKICAgICAgICAgIHZhciBkYXRhLCBfdDsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0Lm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBfdGhpczYudGFibGVMaXN0ID0gZGF0YS5kYXRhOwogICAgICAgICAgICAgICAgX3RoaXM2LnRvdGFsID0gcmVzLmRhdGEuY291bnQ7CiAgICAgICAgICAgICAgICBfdCA9IF90aGlzNi5pc0NoZWNrZWQ7CiAgICAgICAgICAgICAgICBfY29udGV4dDQubiA9IF90ID09PSAnMicgPyAxIDogX3QgPT09ICczJyA/IDIgOiAzOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgX3RoaXM2LmNvbHVtbnMyID0gW3sKICAgICAgICAgICAgICAgICAgdGl0bGU6ICforqLljZXlj7cnLAogICAgICAgICAgICAgICAgICBrZXk6ICdvcmRlcl9pZCcsCiAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAxNTAKICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgdGl0bGU6ICflj5HotKfkuronLAogICAgICAgICAgICAgICAgICBrZXk6ICdmcm9tX25hbWUnLAogICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMTIwCiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5pS26LSn5Lq6JywKICAgICAgICAgICAgICAgICAga2V5OiAndG9fbmFtZScsCiAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAxMjAKICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgdGl0bGU6ICflv6vpgJLljZXlj7cnLAogICAgICAgICAgICAgICAgICBrZXk6ICdudW0nLAogICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMTIwCiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5b+r6YCS5YWs5Y+457yW56CBJywKICAgICAgICAgICAgICAgICAga2V5OiAnY29kZScsCiAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAxMjAKICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgdGl0bGU6ICfnirbmgIEnLAogICAgICAgICAgICAgICAgICBrZXk6ICdfcmVzdWx0Y29kZScsCiAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAxMDAKICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgdGl0bGU6ICfmiZPljbDml7bpl7QnLAogICAgICAgICAgICAgICAgICBrZXk6ICdhZGRfdGltZScsCiAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAxNTAKICAgICAgICAgICAgICAgIH1dOwogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5hKDMsIDQpOwogICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIF90aGlzNi5jb2x1bW5zMiA9IFt7CiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5b+r6YCS5Y2V5Y+3JywKICAgICAgICAgICAgICAgICAgc2xvdDogJ251bScsCiAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAxMjAKICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgdGl0bGU6ICflv6vpgJLlhazlj7jnvJbnoIEnLAogICAgICAgICAgICAgICAgICBrZXk6ICdjb2RlJywKICAgICAgICAgICAgICAgICAgbWluV2lkdGg6IDEyMAogICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICB0aXRsZTogJ+eKtuaAgScsCiAgICAgICAgICAgICAgICAgIGtleTogJ19yZXN1bHRjb2RlJywKICAgICAgICAgICAgICAgICAgbWluV2lkdGg6IDEyMAogICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICB0aXRsZTogJ+a3u+WKoOaXtumXtCcsCiAgICAgICAgICAgICAgICAgIGtleTogJ2FkZF90aW1lJywKICAgICAgICAgICAgICAgICAgbWluV2lkdGg6IDE1MAogICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LmEoMywgNCk7CiAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgX3RoaXM2LmNvbHVtbnMyID0gW3sKICAgICAgICAgICAgICAgICAgdGl0bGU6ICflpI3liLZVUkwnLAogICAgICAgICAgICAgICAgICBrZXk6ICd1cmwnLAogICAgICAgICAgICAgICAgICBtaW5XaWR0aDogNDAwCiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn6K+35rGC54q25oCBJywKICAgICAgICAgICAgICAgICAga2V5OiAnX3Jlc3VsdGNvZGUnLAogICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMTIwCiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5re75Yqg5pe26Ze0JywKICAgICAgICAgICAgICAgICAga2V5OiAnYWRkX3RpbWUnLAogICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMTUwCiAgICAgICAgICAgICAgICB9XTsKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuYSgzLCA0KTsKICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICBfdGhpczYubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuYSgyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTQpOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94NCkgewogICAgICAgICAgcmV0dXJuIF9yZWY0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM2LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICBfdGhpczYuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOW8gOmAmuefreS/oeaPkOS6pAogICAgaGFuZGxlU3VibWl0OiBmdW5jdGlvbiBoYW5kbGVTdWJtaXQobmFtZSkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdGhpcy4kcmVmc1tuYW1lXS52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIHNlcnZlU21zT3BlbkFwaShfdGhpczcuZm9ybUlubGluZSkudGhlbigvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgX3JlZjUgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlNShyZXMpIHsKICAgICAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQ1KSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUubikgewogICAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgX3RoaXM3LiRtZXNzYWdlLnN1Y2Nlc3MoJ+W8gOmAmuaIkOWKnyEnKTsKICAgICAgICAgICAgICAgICAgICBfdGhpczcuZ2V0TGlzdCgpOwogICAgICAgICAgICAgICAgICAgIF90aGlzNy4kZW1pdCgnb3BlblNlcnZpY2UnLCAnc21zJyk7CiAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LmEoMik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwgX2NhbGxlZTUpOwogICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3g1KSB7CiAgICAgICAgICAgICAgcmV0dXJuIF9yZWY1LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXM3LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOmmlumhteWOu+W8gOmAmgogICAgb25PcGVuSW5kZXg6IGZ1bmN0aW9uIG9uT3BlbkluZGV4KHZhbCkgewogICAgICBzd2l0Y2ggKHZhbCkgewogICAgICAgIGNhc2UgJ3Ntcyc6CiAgICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9ICcxJzsKICAgICAgICAgIHRoaXMuaXNTbXMgPSB0cnVlOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY29weSc6CiAgICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9ICc0JzsKICAgICAgICAgIHRoaXMub3Blbk90aGVyKCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdxdWVyeSc6CiAgICAgICAgICB0aGlzLmlzQ2hlY2tlZCA9ICczJzsKICAgICAgICAgIHRoaXMub25EdW1wT3BlbigpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIHRoaXMuaXNDaGVja2VkID0gJzInOwogICAgICAgICAgdGhpcy5vcGVuRHVtcCgpOwogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0sCiAgICAvLyDlvIDpgJrmjInpkq4KICAgIG9uT3BlbjogZnVuY3Rpb24gb25PcGVuKCkgewogICAgICBpZiAodGhpcy5pc0NoZWNrZWQgPT09ICcxJykgdGhpcy5pc1NtcyA9IHRydWU7CiAgICAgIGlmICh0aGlzLmlzQ2hlY2tlZCA9PT0gJzInKSB0aGlzLm9wZW5EdW1wKCk7CiAgICAgIGlmICh0aGlzLmlzQ2hlY2tlZCA9PT0gJzMnKSB0aGlzLm9uRHVtcE9wZW4oKTsKICAgICAgaWYgKHRoaXMuaXNDaGVja2VkID09PSAnNCcpIHRoaXMub3Blbk90aGVyKCk7CiAgICB9LAogICAgLy8g5byA6YCa54mp5rWBCiAgICBvbkR1bXBPcGVuOiBmdW5jdGlvbiBvbkR1bXBPcGVuKCkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgdGhpcy4kbXNnYm94KHsKICAgICAgICB0aXRsZTogJ+W8gOmAmueJqea1geafpeivouWQlycsCiAgICAgICAgbWVzc2FnZTogJ+ehruWumuimgeW8gOmAmueJqea1geafpeivouWQl++8nycsCiAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgaWNvbkNsYXNzOiAnZWwtaWNvbi13YXJuaW5nJywKICAgICAgICBjb25maXJtQnV0dG9uQ2xhc3M6ICdidG4tY3VzdG9tLWNhbmNlbCcKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VydmVPcGVuKCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczguZ2V0UmVjb3JkTGlzdCgpOwogICAgICAgICAgX3RoaXM4LmlzTG9naXN0aWNzID0gdHJ1ZTsKICAgICAgICAgIF90aGlzOC4kbWVzc2FnZS5pbmZvKHJlcy5tc2cpOwogICAgICAgICAgX3RoaXM4LiRlbWl0KCdvcGVuU2VydmljZScsICdxdWVyeScpOwogICAgICAgIH0pOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgLy8g5byA6YCa5YW25LuWCiAgICBvcGVuT3RoZXI6IGZ1bmN0aW9uIG9wZW5PdGhlcigpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CiAgICAgIHRoaXMuJG1zZ2JveCh7CiAgICAgICAgdGl0bGU6ICflvIDpgJrllYblk4Hph4fpm4blkJcnLAogICAgICAgIG1lc3NhZ2U6ICfnoa7lrpropoHlvIDpgJrllYblk4Hph4fpm4blkJfvvJ8nLAogICAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGljb25DbGFzczogJ2VsLWljb24td2FybmluZycsCiAgICAgICAgY29uZmlybUJ1dHRvbkNsYXNzOiAnYnRuLWN1c3RvbS1jYW5jZWwnCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgc2VydmVPcG5PdGhlckFwaSh7CiAgICAgICAgICAgIHR5cGU6IDEKICAgICAgICAgIH0pLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIF9yZWY2ID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTYocmVzKSB7CiAgICAgICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0NikgewogICAgICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ2Lm4pIHsKICAgICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIF90aGlzOS5nZXRSZWNvcmRMaXN0KCk7CiAgICAgICAgICAgICAgICAgICAgX3RoaXM5LiRlbWl0KCdvcGVuU2VydmljZScsICdjb3B5Jyk7CiAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ2LmEoMik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwgX2NhbGxlZTYpOwogICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3g2KSB7CiAgICAgICAgICAgICAgcmV0dXJuIF9yZWY2LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXM5LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAgICAgfSk7CiAgICAgICAgfSwgMzAwKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfSwKICAgIC8vIOW8gOmAmueUteWtkOmdouWNlQogICAgb3BlbkR1bXA6IGZ1bmN0aW9uIG9wZW5EdW1wKCkgewogICAgICB0aGlzLmV4cG9ydFRlbXBBbGxMaXN0KCk7CiAgICAgIHRoaXMuaXNEdW1wID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDpgInmi6kKICAgIHNlbGVjdENoYW5nZTogZnVuY3Rpb24gc2VsZWN0Q2hhbmdlKHRhYikgewogICAgICB0aGlzLnRhYmxlRnJvbS50eXBlID0gdGFiOwogICAgICB0aGlzLnRhYmxlRnJvbS5wYWdlID0gMTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgLy8g5YiX6KGoCiAgICBnZXRMaXN0OiBmdW5jdGlvbiBnZXRMaXN0KCkgewogICAgICB2YXIgX3RoaXMwID0gdGhpczsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgc21zUmVjb3JkQXBpKHRoaXMudGFibGVGcm9tKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWY3ID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTcocmVzKSB7CiAgICAgICAgICB2YXIgZGF0YTsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDcpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ3Lm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBfdGhpczAudGFibGVMaXN0ID0gZGF0YS5kYXRhOwogICAgICAgICAgICAgICAgX3RoaXMwLnRvdGFsID0gcmVzLmRhdGEuY291bnQ7CiAgICAgICAgICAgICAgICBfdGhpczAuc3BpblNob3cgPSBmYWxzZTsKICAgICAgICAgICAgICAgIF90aGlzMC5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ny5hKDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNyk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3g3KSB7CiAgICAgICAgICByZXR1cm4gX3JlZjcuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczAuc3BpblNob3cgPSBmYWxzZTsKICAgICAgICBfdGhpczAubG9hZGluZyA9IGZhbHNlOwogICAgICAgIF90aGlzMC4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6KGo5qC85pCc57SiCiAgICB1c2VyU2VhcmNoczogZnVuY3Rpb24gdXNlclNlYXJjaHMoKSB7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIGhhbmRsZVN1Ym1pdER1bXA6IGZ1bmN0aW9uIGhhbmRsZVN1Ym1pdER1bXAobmFtZSkgewogICAgICB2YXIgX3RoaXMxID0gdGhpczsKICAgICAgdGhpcy4kcmVmc1tuYW1lXS52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIHNlcnZlT3BuRXhwcmVzc0FwaShfdGhpczEuZm9ybUlubGluZUR1bXApLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIF9yZWY4ID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTgocmVzKSB7CiAgICAgICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0OCkgewogICAgICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ4Lm4pIHsKICAgICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIF90aGlzMS4kbWVzc2FnZS5zdWNjZXNzKCflvIDpgJrmiJDlip8hJyk7CiAgICAgICAgICAgICAgICAgICAgX3RoaXMxLmdldFJlY29yZExpc3QoKTsKICAgICAgICAgICAgICAgICAgICBfdGhpczEuJGVtaXQoJ29wZW5TZXJ2aWNlJywgJ2R1bXAnKTsKICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDguYSgyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LCBfY2FsbGVlOCk7CiAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDgpIHsKICAgICAgICAgICAgICByZXR1cm4gX3JlZjguYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICBfdGhpczEuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},null]}
|