{"remainingRequest":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js??vue-loader-options!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue?vue&type=script&lang=js&","dependencies":[{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ci8qIGVzbGludC1kaXNhYmxlIG5vLWFsZXJ0LCBuby1jb25zb2xlICovCmltcG9ydCBWdWUgZnJvbSAidnVlIjsKaW1wb3J0IE9wYWNpdHlDb250cm9scyBmcm9tICIuL09wYWNpdHlDb250cm9scyI7CmltcG9ydCBTY2FmZm9sZFRvb2x0aXAgZnJvbSAiLi9TY2FmZm9sZFRvb2x0aXAiOwppbXBvcnQgVHJlZUNvbnRyb2xzIGZyb20gIi4vVHJlZUNvbnRyb2xzIjsKaW1wb3J0IHsgTWFwU3ZnSWNvbiwgTWFwU3ZnU3ByaXRlQ29sb3IgfSBmcm9tICJAYWJpLXNvZnR3YXJlL3N2Zy1zcHJpdGUiOwppbXBvcnQgeyBmaW5kT2JqZWN0c1dpdGhOYW1lcywgZ2V0T2JqZWN0c0Zyb21Bbm5vdGF0aW9ucyB9IGZyb20gIi4uL3NjcmlwdHMvdXRpbGl0aWVzLmpzIjsKaW1wb3J0IHsgU2VhcmNoSW5kZXggfSBmcm9tICIuLi9zY3JpcHRzL3NlYXJjaC5qcyI7CmltcG9ydCB7CiAgQnV0dG9uLAogIENvbCwKICBMb2FkaW5nLAogIE9wdGlvbiwKICBQb3BvdmVyLAogIFJvdywKICBTZWxlY3QsCiAgU2xpZGVyLAogIFRhYlBhbmUsCiAgVGFicywKfSBmcm9tICJlbGVtZW50LXVpIjsKaW1wb3J0IGxhbmcgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlL2xhbmcvZW4iOwppbXBvcnQgbG9jYWxlIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZSI7Cgpsb2NhbGUudXNlKGxhbmcpOwpWdWUudXNlKEJ1dHRvbik7ClZ1ZS51c2UoQ29sKTsKVnVlLnVzZShMb2FkaW5nLmRpcmVjdGl2ZSk7ClZ1ZS51c2UoT3B0aW9uKTsKVnVlLnVzZShQb3BvdmVyKTsKVnVlLnVzZShSb3cpOwpWdWUudXNlKFNlbGVjdCk7ClZ1ZS51c2UoU2xpZGVyKTsKVnVlLnVzZShUYWJQYW5lKTsKVnVlLnVzZShUYWJzKTsKCmNvbnN0IE9yZ2Fuc1ZpZXdlciA9IHJlcXVpcmUoIi4uL3NjcmlwdHMvb3JnYW5zUmVuZGVyZXIiKS5PcmdhbnNWaWV3ZXI7CmNvbnN0IEV2ZW50Tm90aWZpZXIgPSByZXF1aXJlKCIuLi9zY3JpcHRzL2V2ZW50Tm90aWZpZXIiKS5FdmVudE5vdGlmaWVyOwoKLyoqCiAqIEEgdnVlIGNvbXBvbmVudCBvZiB0aGUgc2NhZmZvbGQgdmlld2VyLgogKgogKiBAcmVxdWlyZXMgLi9PcGFjaXR5Q29udHJvbHMudnVlCiAqIEByZXF1aXJlcyAuL1RyZWVDb250cm9scy52dWUKICovCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiU2NhZmZvbGRWdWVyIiwKICBjb21wb25lbnRzOiB7CiAgICBNYXBTdmdJY29uLAogICAgTWFwU3ZnU3ByaXRlQ29sb3IsCiAgICBPcGFjaXR5Q29udHJvbHMsCiAgICBTY2FmZm9sZFRvb2x0aXAsCiAgICBUcmVlQ29udHJvbHMsCiAgfSwKICBwcm9wczogewogICAgLyoqCiAgICAgKiBVUkwgb2YgdGhlIHppbmNqcyBtZXRhZGF0YS4gVGhpcyB2YWx1ZSB3aWxsIGJlIGlnbm9yZWQgaWYgYSB2YWxpZAogICAgICogc3RhdGUgcHJvcCBpcyBhbHNvIHByb3ZpZGVkLgogICAgICogSWYgdGhlIHVybCBuZWVkcyB0byBiZSB1cGRhdGVkIHdpdGggc3RhdGUgcHJlc2VudCwgcGxlYXNlIHVzZQogICAgICogdGhlIHNldFVSTCBtZXRob2QuCiAgICAgKi8KICAgIHVybDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICIiLAogICAgfSwKICAgIC8qKgogICAgICogU2hvdyB0aGUgY29sb3VyIGNvbnRyb2wgb2Ygc2V0IHRvIHRydWUuCiAgICAgKi8KICAgIHNob3dDb2xvdXJQaWNrZXI6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UsCiAgICB9LAogICAgLyoqCiAgICAgKiBGbGFnIHRvIHNob3cvaGlkZSB0aGUgVUkuCiAgICAgKi8KICAgIGRpc3BsYXlVSTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlLAogICAgfSwKICAgIC8qKgogICAgICogRGlzcGxheSBhbGwgZ3JhcGhpY3MgYXQgc3RhcnQuCiAgICAgKgogICAgICogVGhpcyBzZXR0aW5nIG9ubHkgd29ya3Mgd2hlbiB0cmFkaXRpb25hbCBpcyBzZXQgdG8gZmFsc2UuCiAgICAgKi8KICAgIGRpc3BsYXlBdFN0YXJ0VXA6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogdHJ1ZSwKICAgIH0sCiAgICAvKioKICAgICAqIFVzZSBmb3IgdG9nZ2xpbmcgdGhlIGhlbHAgdG9vbHRpcHMuCiAgICAgKi8KICAgIGhlbHBNb2RlOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlLAogICAgfSwKICAgIC8qKgogICAgICogVXNlIGZvciBzaG93L2Rpc3BsYXkgYmV0YSB3YXJuaW5nIGljb24uCiAgICAgKi8KICAgIGRpc3BsYXlXYXJuaW5nOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUsCiAgICB9LAogICAgLyoqCiAgICAgKiBXYXJuaW5nIG1lc3NhZ2UgZm9yIHRoZSBob3ZlcmVkIG92ZXIgdGV4dAogICAgICogb24gdGhlIHdhcm5pbmcgaWNvbi4KICAgICAqLwogICAgd2FybmluZ01lc3NhZ2U6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiQmV0YSBmZWF0dXJlIC0gdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50IiwKICAgIH0sCiAgICBkaXNwbGF5TGF0ZXN0Q2hhbmdlczogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZSwKICAgIH0sCiAgICBsYXRlc3RDaGFuZ2VzTWVzc2FnZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJOZXcgZmVhdHVyZSAtIExvY2FsIHNlYXJjaCBpcyBub3cgYXZhaWxhYmxlIiwKICAgIH0sCiAgICAvKioKICAgICAqIFNob3cvaGlkZSBwaWNrYWJsZSBtYXJrZXJzIGZvciByZWdpb25zLgogICAgICovCiAgICBkaXNwbGF5TWFya2VyczogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZSwKICAgIH0sCiAgICBtYXJrZXJMYWJlbHMgOiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIFtdCiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIFNob3cvaGlkZSBtaW5pbWFwLgogICAgICovCiAgICBkaXNwbGF5TWluaW1hcDogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZSwKICAgIH0sCiAgICAvKioKICAgICAqIEZvcm1hdCBvZiB0aGUgaW5wdXQgVVJMCiAgICAgKi8KICAgIGZvcm1hdDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJtZXRhZGF0YSIsCiAgICB9LAogICAgLyoqCiAgICAgKiBTZXR0aW5ncyBmb3IgbWluaW1hcCBwb3NpdGlvbiwgc2l6ZSBhbmQgYWxpZ25tZW50LgogICAgICovCiAgICBtaW5pbWFwU2V0dGluZ3M6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHhfb2Zmc2V0OiAxNiwKICAgICAgICAgIHlfb2Zmc2V0OiAxNiwKICAgICAgICAgIHdpZHRoOiAxMjgsCiAgICAgICAgICBoZWlnaHQ6IDEyOCwKICAgICAgICAgIGFsaWduOiAidG9wLXJpZ2h0IiwKICAgICAgICB9OwogICAgICB9LAogICAgfSwKICAgIC8qKgogICAgICogRmxhZyB0byBkZXRlcm1pbmUgcmF0aGVyIG9wZW4gbWFwIFVJIHNob3VsZCBiZQogICAgICogcHJlc2VudGVkIG9yIG5vdC4KICAgICAqLwogICAgZW5hYmxlT3Blbk1hcFVJOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlLAogICAgfSwKICAgIG9wZW5NYXBPcHRpb25zOiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIHsKICAgICAgICAgICAgZGlzcGxheTogIk9wZW4gQUMgTWFwIiwKICAgICAgICAgICAga2V5OiAiQUMiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICBkaXNwbGF5OiAiT3BlbiBGQyBNYXAiLAogICAgICAgICAgICBrZXk6ICJGQyIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIDNEIEh1bWFuIE1hcCIsCiAgICAgICAgICAgIGtleTogIjNEIgogICAgICAgICAgfSwKICAgICAgICBdCiAgICAgIH0sCiAgICB9LAogICAgLyoqCiAgICAgKiBTdGF0ZSBjb250YWluaW5nIHN0YXRlIG9mIHRoZSBzY2FmZm9sZC4KICAgICAqLwogICAgc3RhdGU6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiB1bmRlZmluZWQsCiAgICB9LAogICAgLyoqCiAgICAgKiBPcHRpb25hbCBwcm9wIGZvciB0aGUgbmFtZSBvZiB0aGUgcmVnaW9uIHRvIGZvY3VzIG9uLAogICAgICogdGhpcyBvcHRpb24gaXMgaWdub3JlZCBpZiBzdGF0ZSBvciB2aWV3VVJMIGlzIGFsc28gcHJvdmlkZWQuCiAgICAgKi8KICAgIHJlZ2lvbjogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICIiLAogICAgfSwKICAgIC8qKgogICAgICogT3B0aW9uYWwgcHJvcCBmb3IgYW4gVVJMIG9mIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb2YgYSB2aWV3cG9ydC4KICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgaWYgc3RhdGUgaXMgYWxzbyBwcm92aWRlZC4KICAgICAqIEl0IHdpbGwgdXNlIHRoZSBwcm92aWRlZCBVUkwgYXMgYmFzZSBpZiBhIHJlbGF0aXZlIHBhcnRoIGlzIHByb3ZpZGVkLgogICAgICovCiAgICB2aWV3VVJMOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIiIsCiAgICB9LAogICAgLyoqCiAgICAgKiBTZXR0aW5ncyBmb3IgdHVybmluZyBvbi9vZmYgcmVuZGVyaW5nCiAgICAgKi8KICAgIHJlbmRlcjogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlLAogICAgfSwKICB9LAogIGRhdGE6IGZ1bmN0aW9uICgpIHsKICAgIHJldHVybiB7CiAgICAgIHNjZW5lRGF0YTogdGhpcy4kbW9kdWxlLnNjZW5lRGF0YSwKICAgICAgaXNQbGF5aW5nOiBmYWxzZSwKICAgICAgaXNSZWFkeTogZmFsc2UsCiAgICAgIC8qKgogICAgICAgKiBUaGlzIGlzIHNldCB3aGVuIHNjZW5lIGlzIHRyYW5zaXRpb25pbmcuCiAgICAgICAqLwogICAgICBpc1RyYW5zaXRpb25pbmc6IGZhbHNlLAogICAgICB0b29sdGlwQXBwZW5kVG9Cb2R5OiBmYWxzZSwKICAgICAgaG92ZXJWaXNpYmlsaXRpZXM6IFsKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgXSwKICAgICAgaW5IZWxwOiBmYWxzZSwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIGR1cmF0aW9uOiAzMDAwLAogICAgICBkcmF3ZXJPcGVuOiB0cnVlLAogICAgICBjdXJyZW50QmFja2dyb3VuZDogIndoaXRlIiwKICAgICAgYXZhaWxhYmxlQmFja2dyb3VuZDogWyJ3aGl0ZSIsICJsaWdodHNreWJsdWUiLCAiYmxhY2siXSwKICAgICAgbWluaW1pc2VkU2xpZGVyOiBmYWxzZSwKICAgICAgc2xpZGVyUG9zaXRpb246ICIiLAogICAgICB0aW1lTWF4OiAxMDAsCiAgICAgIG9yZ2luYWxEdXJhdGlvbjogIiIsCiAgICAgIGFuaW1hdGVEdXJhdGlvbjogIjZzZWNzIiwKICAgICAgcGxheVNwZWVkOiBbCiAgICAgICAgewogICAgICAgICAgdmFsdWU6IDAuMSwKICAgICAgICAgIGxhYmVsOiAiMC4xeCIsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB2YWx1ZTogMC41LAogICAgICAgICAgbGFiZWw6ICIwLjV4IiwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHZhbHVlOiAxLAogICAgICAgICAgbGFiZWw6ICIxeCIsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICB2YWx1ZTogMiwKICAgICAgICAgIGxhYmVsOiAiMngiLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgdmFsdWU6IDUsCiAgICAgICAgICBsYWJlbDogIjV4IiwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHZhbHVlOiAxMCwKICAgICAgICAgIGxhYmVsOiAiMTB4IiwKICAgICAgICB9LAogICAgICBdLAogICAgICBjdXJyZW50U3BlZWQ6IDEsCiAgICAgIHRpbWVTdGFtcHM6IHt9LAogICAgICBkZWZhdWx0Q2hlY2tlZEtleXM6IFtdLAogICAgICB0RGF0YTogewogICAgICAgIGxhYmVsOiAiIiwKICAgICAgICByZWdpb246ICIiLAogICAgICAgIHZpc2libGU6IGZhbHNlLAogICAgICAgIHg6IDIwMCwKICAgICAgICB5OiAyMDAsCiAgICAgIH0sCiAgICAgIGZpbGVGb3JtYXQ6ICJtZXRhZGF0YSIsCiAgICAgIHByZXZpb3VzTWFya2VyTGFiZWxzOiBbXSwKICAgIH07CiAgfSwKICB3YXRjaDogewogICAgZm9ybWF0OiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgIHRoaXMuZmlsZUZvcm1hdCA9IHZhbHVlOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICB9LAogICAgdXJsOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIChuZXdWYWx1ZSkgewogICAgICAgIGlmICh0aGlzLnN0YXRlID09PSB1bmRlZmluZWQgfHwgdGhpcy5zdGF0ZS51cmwgPT09IHVuZGVmaW5lZCkKICAgICAgICAgIHRoaXMuc2V0VVJMKG5ld1ZhbHVlKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlLAogICAgfSwKICAgIHJlZ2lvbjogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiAocmVnaW9uKSB7CiAgICAgICAgaWYgKCEodGhpcy5zdGF0ZSB8fCB0aGlzLnZpZXdVUkwpKSB0aGlzLnNldEZvY3VzZWRSZWdpb24ocmVnaW9uKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlLAogICAgfSwKICAgIHN0YXRlOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIChzdGF0ZSkgewogICAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICAgIGRlZXA6IHRydWUsCiAgICB9LAogICAgdmlld1VSTDogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiAodmlld1VSTCkgewogICAgICAgIHRoaXMudXBkYXRlVmlld1VSTCh2aWV3VVJMKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlLAogICAgfSwKICAgIGhlbHBNb2RlOiBmdW5jdGlvbiAodmFsKSB7CiAgICAgIHRoaXMuc2V0SGVscE1vZGUodmFsKTsKICAgIH0sCiAgICBkaXNwbGF5TWFya2VyczogZnVuY3Rpb24gKHZhbCkgewogICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1hcmtlcnMgPSB2YWw7CiAgICAgIC8vVXBkYXRlIHBpY2thYmxlIG9iamVjdHMKICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmZvcmNlUGlja2FibGVPYmplY3RzVXBkYXRlID0gdHJ1ZTsKICAgIH0sCiAgICBkaXNwbGF5TWluaW1hcDogZnVuY3Rpb24gKHZhbCkgewogICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1pbmltYXAgPSB2YWw7CiAgICB9LAogICAgInNjZW5lRGF0YS5jdXJyZW50VGltZSI6IGZ1bmN0aW9uICgpIHsKICAgICAgLyoqCiAgICAgICAqIFRyaWdnZXJzIHdoZW4gc2NlbmUgdGltZSBjaGFuZ2VzLgogICAgICAgKgogICAgICAgKiBAcHJvcGVydHkge251bWJlcn0gdGltZSBDdXJyZW50IGJ1aWxkLWluIHRpbWUgb2Ygc2NlbmUuCiAgICAgICAqIG9mIHNlbGVjdGVkIG9iamVjdC4KICAgICAgICovCiAgICAgIHRoaXMuJGVtaXQoInRpbWVDaGFuZ2VkIiwgdGhpcy5zY2VuZURhdGEuY3VycmVudFRpbWUpOwogICAgfSwKICAgIGR1cmF0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5zZXREdXJhdGlvbih0aGlzLmR1cmF0aW9uKTsKICAgIH0sCiAgICBtaW5pbWFwU2V0dGluZ3M6IHsKICAgICAgZGVlcDogdHJ1ZSwKICAgICAgaGFuZGxlcjogInVwZGF0ZU1pbmltYXBTY2lzc29yIiwKICAgIH0sCiAgICByZW5kZXI6IGZ1bmN0aW9uICh2YWwpIHsKICAgICAgdGhpcy50b2dnbGVSZW5kZXJpbmcodmFsKTsKICAgIH0sCiAgICBtYXJrZXJMYWJlbHM6IGZ1bmN0aW9uKGxhYmVscykgewogICAgICB0aGlzLnByZXZpb3VzTWFya2VyTGFiZWxzLmZvckVhY2goKHBtbCk9PnsKICAgICAgICB0aGlzLnNldE1hcmtlck1vZGVGb3JPYmplY3RzV2l0aE5hbWUocG1sLCAib2ZmIik7CiAgICAgIH0pCiAgICAgIGxhYmVscy5mb3JFYWNoKChsKT0+ewogICAgICAgIHRoaXMuc2V0TWFya2VyTW9kZUZvck9iamVjdHNXaXRoTmFtZShsLCAib24iKTsKICAgICAgfSkKICAgICAgdGhpcy5wcmV2aW91c01hcmtlckxhYmVscyA9IGxhYmVsczsKICAgIH0KICB9LAogIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24gKCkgewogICAgdGhpcy4kbW9kdWxlID0gbmV3IE9yZ2Fuc1ZpZXdlcigpOwogICAgdGhpcy5zZWxlY3RlZE9iamVjdHMgPSBbXTsKICAgIHRoaXMuaG92ZXJlZE9iamVjdHMgPSBbXTsKICAgIHRoaXMuY3VycmVudEJhY2tncm91bmQgPSAid2hpdGUiOwogICAgdGhpcy5fY3VycmVudFVSTCA9IHVuZGVmaW5lZDsKICAgIHRoaXMuYXZhaWxhYmxlQmFja2dyb3VuZCA9IFsid2hpdGUiLCAiYmxhY2siLCAibGlnaHRza3libHVlIl07CiAgICB0aGlzLiRfc2VhcmNoSW5kZXggPSBuZXcgU2VhcmNoSW5kZXgoKTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uICgpIHsKICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnNldE1vZHVsZSh0aGlzLiRtb2R1bGUpOwogICAgbGV0IGV2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcigpOwogICAgZXZlbnROb3RpZmllci5zdWJzY3JpYmUodGhpcywgdGhpcy5ldmVudE5vdGlmaWVyQ2FsbGJhY2spOwogICAgdGhpcy4kbW9kdWxlLmFkZE5vdGlmaWVyKGV2ZW50Tm90aWZpZXIpOwogICAgdGhpcy4kbW9kdWxlLmFkZE9yZ2FuUGFydEFkZGVkQ2FsbGJhY2sodGhpcy56aW5jT2JqZWN0QWRkZWQpOwogICAgdGhpcy4kbW9kdWxlLmluaXRpYWxpc2VSZW5kZXJlcih0aGlzLiRyZWZzLmRpc3BsYXkpOwogICAgdGhpcy50b2dnbGVSZW5kZXJpbmcodGhpcy5yZW5kZXIpOwogICAgdGhpcy5ybyA9IG5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmFkanVzdExheW91dCkub2JzZXJ2ZSgKICAgICAgdGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lcgogICAgKTsKICAgIHRoaXMuZGVmYXVsdFJhdGUgPSB0aGlzLiRtb2R1bGUuZ2V0UGxheVJhdGUoKTsKICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLnJvKSB0aGlzLnJvLmRpc2Nvbm5lY3QoKTsKICAgIHRoaXMuJG1vZHVsZS5kZXN0cm95KCk7CiAgICB0aGlzLiRtb2R1bGUgPSB1bmRlZmluZWQ7CiAgfSwKICBtZXRob2RzOiB7CiAgICBhZGRaaW5jT2JqZWN0OiBmdW5jdGlvbiAoemluY09iamVjdCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmFkZFppbmNPYmplY3QoemluY09iamVjdCk7CiAgICAgICAgdGhpcy56aW5jT2JqZWN0QWRkZWQoemluY09iamVjdCk7CiAgICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzKSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy56aW5jT2JqZWN0QWRkZWQoemluY09iamVjdCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIFRoaXMgaXMgY2FsbGVkIHdoZW4gYSBuZXcgemluYyBvYmplY3QgaXMgcmVhZCBpbnRvIHRoZSBzY2VuZS4KICAgICAqLwogICAgemluY09iamVjdEFkZGVkOiBmdW5jdGlvbiAoemluY09iamVjdCkgewogICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy4kX3NlYXJjaEluZGV4LmFkZFppbmNPYmplY3QoemluY09iamVjdCwgemluY09iamVjdC51dWlkKTsKICAgICAgdGhpcy4kZW1pdCgiemluYy1vYmplY3QtYWRkZWQiLCB6aW5jT2JqZWN0KTsKICAgIH0sCiAgICAvKioKICAgICAqIAogICAgICovCiAgICBhZGRSZWdpb25zVG9TZWFyY2hJbmRleDogZnVuY3Rpb24gKCkgewogICAgICBjb25zdCByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgY29uc3QgcmVnaW9ucyA9IHJvb3RSZWdpb24uZ2V0Q2hpbGRSZWdpb25zKHRydWUpOwogICAgICByZWdpb25zLmZvckVhY2gocmVnaW9uID0+IHsKICAgICAgICB0aGlzLiRfc2VhcmNoSW5kZXguYWRkUmVnaW9uKHJlZ2lvbiwgcmVnaW9uLnV1aWQpOwogICAgICB9KTsKICAgIH0sCiAgICAvKioKICAgICAqIFRoaXMgaXMgY2FsbGVkIHdoZW4gQ2hhbmdlIGJhY2tnc3BlZWRyb3VuZCBjb2xvdXIgYnV0dG9uCiAgICAgKiBpcyBwcmVzc2VkIGFuIGNhdXNlcyB0aGUgYmFja2dyb3VDb2xvcm5kIGNvbG91ciB0byBiZSBjaGFuZ2VkCiAgICAgKiB0byBvbmUgb2YgdGhlIHRocmVlIHByZXNldCBjb2xvdXI6IHdoaXRlLCBibGFjayBhbmQKICAgICAqIGxpZ2h0c2t5Ymx1ZS4KICAgICAqLwogICAgYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrOiBmdW5jdGlvbiAoY29sb3VyKSB7CiAgICAgIHRoaXMuY3VycmVudEJhY2tncm91bmQgPSBjb2xvdXI7CiAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIKICAgICAgICAuZ2V0VGhyZWVKU1JlbmRlcmVyKCkKICAgICAgICAuc2V0Q2xlYXJDb2xvcih0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kLCAxKTsKICAgIH0sCiAgICAvKioKICAgICAqIFRoaXMgaXMgY2FsbGVkIGJ5IGNhcHR1ZWVTY3JlZW5zaG90IGFuZCBhZnRlciB0aGUgbGFzdCByZW5kZXIKICAgICAqIGxvb3AsIGl0IGRvd25sb2FkIGEgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCBzY2VuZSB3aXRoIG5vIFVJLgogICAgICovCiAgICBjYXB0dXJlU2NyZWVuc2hvdENhbGxiYWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgIC8vUmVtb3ZlIHRoZSBjYWxsYmFjaywgb25seSBuZWVkcyB0byBoYXBwZW4gb25jZQogICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKAogICAgICAgIHRoaXMuY2FwdHVyZUlECiAgICAgICk7CiAgICAgIGxldCBzY3JlZW5zaG90ID0gdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcgogICAgICAgIC5nZXRUaHJlZUpTUmVuZGVyZXIoKQogICAgICAgIC5kb21FbGVtZW50LnRvRGF0YVVSTCgiaW1hZ2UvcG5nIik7CiAgICAgIGxldCBocmVmRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoaHJlZkVsZW1lbnQpOwogICAgICBpZiAoIXRoaXMuY2FwdHVyZUZpbGVuYW1lKSBocmVmRWxlbWVudC5kb3dubG9hZCA9IGBzY3JlZW5zaG90LnBuZ2A7CiAgICAgIGVsc2UgaHJlZkVsZW1lbnQuZG93bmxvYWQgPSB0aGlzLmNhcHR1cmVGaWxlbmFtZTsKICAgICAgaHJlZkVsZW1lbnQuaHJlZiA9IHNjcmVlbnNob3Q7CiAgICAgIGhyZWZFbGVtZW50LmNsaWNrKCk7CiAgICAgIGhyZWZFbGVtZW50LnJlbW92ZSgpOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gZm9yIGNhcHR1cmluZyBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgcmVuZGVyaW5nLgogICAgICoKICAgICAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlbmFtZSBmaWxlbmFtZSBnaXZlbiB0byB0aGUgc2NyZWVuc2hvdC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGNhcHR1cmVTY3JlZW5zaG90OiBmdW5jdGlvbiAoZmlsZW5hbWUpIHsKICAgICAgdGhpcy5jYXB0dXJlRmlsZW5hbWUgPSBmaWxlbmFtZTsKICAgICAgdGhpcy5jYXB0dXJlSUQgPSB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmFkZFBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKAogICAgICAgIHRoaXMuY2FwdHVyZVNjcmVlbnNob3RDYWxsYmFjawogICAgICApOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gY2xlYXIgY3VycmVudCBzY2VuZSwgdGhlIHRyZWUgY29udHJvbHMgYW5kIHRoZSBzZWFyY2ggaW5kZXguCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBjbGVhclNjZW5lOiBmdW5jdGlvbiAoKSB7CiAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2xlYXIoKTsKICAgICAgaWYgKHRoaXMuJF9zZWFyY2hJbmRleCkgdGhpcy4kX3NlYXJjaEluZGV4LnJlbW92ZUFsbCgpOwogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB0aGlzLiRtb2R1bGUuc2NlbmUuY2xlYXJBbGwoKTsKICAgIH0sCiAgICBmb3JtYXRUb29sdGlwKHZhbCkgewogICAgICBpZiAodGhpcy50aW1lTWF4ID49IDEwMDApIHsKICAgICAgICBpZiAodmFsKSB7CiAgICAgICAgICBsZXQgc2VjID0gKCh2YWwgJSA2MDAwMCkgLyAxMDAwKS50b0ZpeGVkKDIpICsgInMiOwogICAgICAgICAgbGV0IG1pbiA9IHZhbCA+IDYwMDAwID8gKHZhbCAvIDYwMDAwKS50b0ZpeGVkKDApICsgIm0gIiA6ICIiOwogICAgICAgICAgcmV0dXJuIG1pbiArIHNlYzsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHZhbCA/IHZhbC50b0ZpeGVkKDIpICsgIiBtcyIgOiAiMCBtcyI7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byByZXNldCB0aGUgdmlldyB0byBkZWZhdWx0LgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGZpdFdpbmRvdzogZnVuY3Rpb24gKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLnZpZXdBbGwoKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gem9vbSBpbi4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICB6b29tSW46IGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5jaGFuZ2Vab29tQnlTY3JvbGxSYXRlVW5pdCgtMSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gb3V0LgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHpvb21PdXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5jaGFuZ2Vab29tQnlTY3JvbGxSYXRlVW5pdCgxKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gY2hhbmdlIHRoZSBjdXJyZW50IHBsYXkgc3BlZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBzcGVlZENoYW5nZWQ6IGZ1bmN0aW9uIChzcGVlZCkgewogICAgICB0aGlzLmN1cnJlbnRTcGVlZCA9IHNwZWVkOwogICAgICB0aGlzLiRtb2R1bGUuc2V0UGxheVJhdGUodGhpcy5kZWZhdWx0UmF0ZSAqIHRoaXMuY3VycmVudFNwZWVkKTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gc3RvcCB0aGUgZnJlZSBzcGluCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBzdG9wRnJlZVNwaW46IGZ1bmN0aW9uICgpIHsKICAgICAgbGV0IGNhbWVyYWNvbnRyb2wgPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0WmluY0NhbWVyYUNvbnRyb2xzKCk7CiAgICAgIGNhbWVyYWNvbnRyb2wuc3RvcEF1dG9UdW1ibGUoKTsKICAgICAgdGhpcy5pc1RyYW5zaXRpb25pbmcgPSBmYWxzZTsKICAgIH0sCiAgICBmaW5kT2JqZWN0c1dpdGhHcm91cE5hbWU6IGZ1bmN0aW9uIChuYW1lKSB7CiAgICAgIGxldCBvYmplY3RzID0gW107CiAgICAgIGlmIChuYW1lICYmIG5hbWUgIT0gIiIgJiYgdGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgb2JqZWN0cyA9IHRoaXMuJG1vZHVsZS5zY2VuZS5maW5kT2JqZWN0c1dpdGhHcm91cE5hbWUobmFtZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIG9iamVjdHM7CiAgICB9LAogICAgLyoqCiAgICAgKiBGb2N1cyBvbiBuYW1lZCByZWdpb24KICAgICAqLwogICAgdmlld1JlZ2lvbjogZnVuY3Rpb24gKG5hbWVzKSB7CiAgICAgIGNvbnN0IHJvb3RSZWdpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0Um9vdFJlZ2lvbigpOwogICAgICBjb25zdCBncm91cHMgPSBBcnJheS5pc0FycmF5KG5hbWVzKSA/IG5hbWVzIDogW25hbWVzXTsKICAgICAgY29uc3Qgb2JqZWN0cyA9IGZpbmRPYmplY3RzV2l0aE5hbWVzKHJvb3RSZWdpb24sIGdyb3VwcywgIiIsIHRydWUpOwogICAgICBsZXQgYm94ID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldEJvdW5kaW5nQm94T2ZaaW5jT2JqZWN0cyhvYmplY3RzKTsKICAgICAgaWYgKGJveCkgewogICAgICAgIGlmICh0aGlzLiRtb2R1bGUuaXNTeW5jQ29udHJvbCgpKSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0U3luY0NvbnRyb2xab29tVG9Cb3goYm94KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29uc3QgZGlzdCA9CiAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEuZmFyIC0gdGhpcy4kbW9kdWxlLnNjZW5lLmNhbWVyYS5uZWFyOwogICAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLnZpZXdBbGxXaXRoQm91bmRpbmdCb3goYm94KTsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEuZmFyID0gdGhpcy4kbW9kdWxlLnNjZW5lLmNhbWVyYS5uZWFyICsgZGlzdDsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgc2V0Rm9jdXNlZFJlZ2lvbjogZnVuY3Rpb24gKG5hbWUpIHsKICAgICAgaWYgKG5hbWUpIHsKICAgICAgICBpZiAodGhpcy5pc1JlYWR5KSB7CiAgICAgICAgICB0aGlzLnZpZXdSZWdpb24obmFtZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zZXRGaW5pc2hEb3dubG9hZENhbGxiYWNrKAogICAgICAgICAgICB0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsgcmVnaW9uOiBuYW1lIH0pCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIHVwZGF0ZVZpZXdVUkw6IGZ1bmN0aW9uICh2aWV3VVJMKSB7CiAgICAgIGlmICh2aWV3VVJMKSB7CiAgICAgICAgaWYgKHRoaXMuaXNSZWFkeSkgewogICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh2aWV3VVJMLCB0aGlzLnVybCk7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUubG9hZFZpZXdVUkwodXJsKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbW9kdWxlLnNldEZpbmlzaERvd25sb2FkQ2FsbGJhY2soCiAgICAgICAgICAgIHRoaXMuc2V0VVJMRmluaXNoQ2FsbGJhY2soeyB2aWV3VVJMOiB2aWV3VVJMIH0pCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGdldFJlbmRlcmVySW5mbzogZnVuY3Rpb24gKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmdldFRocmVlSlNSZW5kZXJlcigpLmluZm87CiAgICAgIH0KICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gcm90YXRlIHRoZSBzY2VuZS4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBmcmVlU3BpbjogZnVuY3Rpb24gKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgbGV0IGNhbWVyYWNvbnRyb2wgPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0WmluY0NhbWVyYUNvbnRyb2xzKCk7CiAgICAgICAgdGhpcy5pc1RyYW5zaXRpb25pbmcgPSB0cnVlOwogICAgICAgIGNhbWVyYWNvbnRyb2wuZW5hYmxlQXV0b1R1bWJsZSgpOwogICAgICAgIGNhbWVyYWNvbnRyb2wuYXV0b1R1bWJsZShbMS4wLCAwLjBdLCBNYXRoLlBJLCB0cnVlKTsKICAgICAgICBzZXRUaW1lb3V0KHRoaXMuc3RvcEZyZWVTcGluLCA0MDAwKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogQ2FsbGJhY2sgd2hlbiBhIHJlZ2lvbiBpcyBzZWxlY3RlZC9oaWdobGlnaHRlZC4KICAgICAqIEl0IHdpbGwgYWxzbyB1cGRhdGUgb3RoZXIgY29udHJvbHMuCiAgICAgKgogICAgICovCiAgICBldmVudE5vdGlmaWVyQ2FsbGJhY2s6IGZ1bmN0aW9uIChldmVudCkgewogICAgICBjb25zdCBuYW1lcyA9IFtdOwogICAgICBsZXQgemluY09iamVjdHMgPSBbXTsKICAgICAgY29uc3QgcmVnaW9uID0gdW5kZWZpbmVkOwogICAgICBpZiAoZXZlbnQuZXZlbnRUeXBlID09IDEgfHwgZXZlbnQuZXZlbnRUeXBlID09IDIpIHsKICAgICAgICBldmVudC5pZGVudGlmaWVycy5mb3JFYWNoKChpZGVudGlmaWVyKSA9PiB7CiAgICAgICAgICBpZiAoaWRlbnRpZmllcikgewogICAgICAgICAgICBsZXQgaWQgPSBpZGVudGlmaWVyLmRhdGEuaWQKICAgICAgICAgICAgICA/IGlkZW50aWZpZXIuZGF0YS5pZAogICAgICAgICAgICAgIDogaWRlbnRpZmllci5kYXRhLmdyb3VwOwogICAgICAgICAgICBuYW1lcy5wdXNoKGlkKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB6aW5jT2JqZWN0cyA9IGV2ZW50LnppbmNPYmplY3RzOwogICAgICB9CiAgICAgIC8qCiAgICAgICAqIEV2ZW50IFR5cGUgMTogU2VsZWN0ZWQKICAgICAgICogRXZlbnQgVHlwZSAyOiBIaWdobGlnaHRlZAogICAgICAgKiBFdmVudCBUeXBlIDE6IE1vdmUKICAgICAgICovCiAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT0gMSkgewogICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgewogICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgLy90aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VBY3RpdmVCeU5hbWVzKG5hbWVzLCByZWdpb24sIGZhbHNlKTsKICAgICAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMudXBkYXRlQWN0aXZlVUkoemluY09iamVjdHMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5yZW1vdmVBY3RpdmUodHJ1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIFRyaWdnZXJzIHdoZW4gYW4gb2JqZWN0IGhhcyBiZWVuIHNlbGVjdGVkCiAgICAgICAgdGhpcy4kZW1pdCgic2NhZmZvbGQtc2VsZWN0ZWQiLCBldmVudC5pZGVudGlmaWVycyk7CiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZXZlbnRUeXBlID09IDIpIHsKICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9iamVjdHMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgICAgICAvLyBjb25zdCBvZmZzZXRzID0gdGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgewogICAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgIC8vdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2hhbmdlSG92ZXJCeU5hbWVzKG5hbWVzLCByZWdpb24sIGZhbHNlKTsKICAgICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy51cGRhdGVIb3ZlclVJKHppbmNPYmplY3RzKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5yZW1vdmVIb3Zlcih0cnVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzLmxlbmd0aCA+IDAgJiYgZXZlbnQuaWRlbnRpZmllcnNbMF0pIHsKICAgICAgICAgICAgbGV0IGlkID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5pZAogICAgICAgICAgICAgID8gZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5pZAogICAgICAgICAgICAgIDogZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5ncm91cDsKICAgICAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3JkcykgewogICAgICAgICAgICAgIHRoaXMudERhdGEudmlzaWJsZSA9IHRydWU7CiAgICAgICAgICAgICAgdGhpcy50RGF0YS5sYWJlbCA9IGlkOwogICAgICAgICAgICAgIGlmIChldmVudC5pZGVudGlmaWVyc1swXS5kYXRhLnJlZ2lvbikKICAgICAgICAgICAgICAgIHRoaXMudERhdGEucmVnaW9uID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5yZWdpb247CiAgICAgICAgICAgICAgZWxzZSB0aGlzLnREYXRhLnJlZ2lvbiA9IHVuZGVmaW5lZDsKICAgICAgICAgICAgICB0aGlzLnREYXRhLnggPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueDsKICAgICAgICAgICAgICB0aGlzLnREYXRhLnkgPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgLy8gVHJpZ2dlcnMgd2hlbiBhbiBvYmplY3QgaGFzIGJlZW4gaGlnaGxpZ2h0ZWQKICAgICAgICAgIHRoaXMuJGVtaXQoInNjYWZmb2xkLWhpZ2hsaWdodGVkIiwgZXZlbnQuaWRlbnRpZmllcnMpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChldmVudC5ldmVudFR5cGUgPT0gMykgewogICAgICAgIC8vTU9WRQogICAgICAgIGlmIChldmVudC5pZGVudGlmaWVycy5sZW5ndGggPiAwICYmIGV2ZW50LmlkZW50aWZpZXJzWzBdKSB7CiAgICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzKSB7CiAgICAgICAgICAgIGNvbnN0IG9mZnNldHMgPQogICAgICAgICAgICAgIHRoaXMuJHJlZnMuc2NhZmZvbGRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgICAgIHRoaXMudERhdGEueCA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3Jkcy54IC0gb2Zmc2V0cy5sZWZ0OwogICAgICAgICAgICB0aGlzLnREYXRhLnkgPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueSAtIG9mZnNldHMudG9wOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogR2V0IHRoZSBjb29yZGluYXRlcyBvZiB0aGUgY3VycmVudCBzZWxlY3RlZCByZWdpb24uCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBnZXRDb29yZGluYXRlc09mU2VsZWN0ZWQ6IGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPYmplY3RzICYmIHRoaXMuc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICByZXR1cm4gdGhpcy4kbW9kdWxlLnNjZW5lLmdldE9iamVjdHNTY3JlZW5YWSh0aGlzLnNlbGVjdGVkT2JqZWN0cyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0sCiAgICAvKioKICAgICAqIFJldHVybiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgd2luZG93IGNvb3JkaW5hdGVzIG9mIHRoZQogICAgICogY3VycmVudCBzZWxlY3RlZCByZWdpb24gd2hpY2ggd2lsbCBiZSB1cGRhdGVkIGFmdGVyIGVhY2ggcmVuZGVyCiAgICAgKiBsb29wLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgZ2V0RHluYW1pY1NlbGVjdGVkQ29vcmRpbmF0ZXM6IGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIHRoaXMuJG1vZHVsZS5zZWxlY3RlZFNjcmVlbkNvb3JkaW5hdGVzOwogICAgfSwKICAgIC8qKgogICAgICogQ2FsbGJhY2sgd2hlbiB0aW1lIGlzIGNoYW5nZWQgdGhyb3VnaCB0aGUgVUkuCiAgICAgKi8KICAgIHRpbWVDaGFuZ2U6IGZ1bmN0aW9uIChldmVudCkgewogICAgICBsZXQgbm9ybWFsaXplZFRpbWUgPSAoZXZlbnQgLyB0aGlzLnRpbWVNYXgpICogMTAwOwogICAgICBpZiAobm9ybWFsaXplZFRpbWUgIT0gdGhpcy5zY2VuZURhdGEuY3VycmVudFRpbWUpCiAgICAgICAgdGhpcy4kbW9kdWxlLnVwZGF0ZVRpbWUobm9ybWFsaXplZFRpbWUpOwogICAgfSwKICAgIC8qKgogICAgICogQSBjYWxsYmFjayB1c2VkIGJ5IGNoaWxkcmVuIGNvbXBvbmVudHMuIFNldCB0aGUgc2VsZWN0ZWQgemluYyBvYmplY3QKICAgICAqCiAgICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IFppbmMgb2JqZWN0CiAgICAgKi8KICAgIG9iamVjdFNlbGVjdGVkOiBmdW5jdGlvbiAob2JqZWN0cywgcHJvcGFnYXRlKSB7CiAgICAgIHRoaXMuc2VsZWN0ZWRPYmplY3RzID0gb2JqZWN0czsKICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPYmplY3RzICYmIHRoaXMuc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA+IDApCiAgICAgICAgdGhpcy4kcmVmcy5vcGFjaXR5Q29udHJvbC5zZXRPYmplY3QodGhpcy5zZWxlY3RlZE9iamVjdHNbMF0pOwogICAgICB0aGlzLiRtb2R1bGUuc2V0U2VsZWN0ZWRCeVppbmNPYmplY3RzKG9iamVjdHMsIHVuZGVmaW5lZCwgcHJvcGFnYXRlKTsKICAgIH0sCiAgICAvKioKICAgICAqIEEgY2FsbGJhY2sgdXNlZCBieSBjaGlsZHJlbiBjb21wb25lbnRzLiBTZXQgdGhlIGhpZ2hsaWdodGVkIHppbmMgb2JqZWN0CiAgICAgKgogICAgICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCBaaW5jIG9iamVjdAogICAgICovCiAgICBvYmplY3RIb3ZlcmVkOiBmdW5jdGlvbiAob2JqZWN0cywgcHJvcGFnYXRlKSB7CiAgICAgIHRoaXMuaG92ZXJlZE9iamVjdHMgPSBvYmplY3RzOwogICAgICB0aGlzLiRtb2R1bGUuc2V0SGlnaGxpZ2h0ZWRCeVppbmNPYmplY3RzKG9iamVjdHMsIHVuZGVmaW5lZCwgcHJvcGFnYXRlKTsKICAgIH0sCiAgICAvKioKICAgICAqIFNldCB0aGUgc2VsZWN0ZWQgYnkgbmFtZS4KICAgICAqCiAgICAgKiBAcGFyYW0ge30gbmFtZSBOYW1lIG9mIHRoZSBncm91cAogICAgICovCiAgICBjaGFuZ2VBY3RpdmVCeU5hbWU6IGZ1bmN0aW9uIChuYW1lcywgcmVnaW9uLCBwcm9wYWdhdGUpIHsKICAgICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkobmFtZXMpOwogICAgICBpZiAobmFtZXMgPT09IHVuZGVmaW5lZCB8fCAoaXNBcnJheSAmJiBuYW1lcy5sZW5ndGggPT09IDApKSB7CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMucmVtb3ZlQWN0aXZlKHByb3BhZ2F0ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbGV0IGFycmF5ID0gbmFtZXM7CiAgICAgICAgaWYgKCFpc0FycmF5KSBhcnJheSA9IFthcnJheV07CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2hhbmdlQWN0aXZlQnlOYW1lcyhhcnJheSwgcmVnaW9uLCBwcm9wYWdhdGUpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBTZXQgdGhlIGhpZ2hsaWdodGVkIGJ5IG5hbWUuCiAgICAgKgogICAgICogQHBhcmFtIHtuYW1lfSBuYW1lIE5hbWUgb2YgdGhlIGdyb3VwCiAgICAgKi8KICAgIGNoYW5nZUhpZ2hsaWdodGVkQnlOYW1lOiBmdW5jdGlvbiAobmFtZXMsIHJlZ2lvbiwgcHJvcGFnYXRlKSB7CiAgICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KG5hbWVzKTsKICAgICAgaWYgKG5hbWVzID09PSB1bmRlZmluZWQgfHwgKGlzQXJyYXkgJiYgbmFtZXMubGVuZ3RoID09PSAwKSkgewogICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnJlbW92ZUhvdmVyKHByb3BhZ2F0ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbGV0IGFycmF5ID0gbmFtZXM7CiAgICAgICAgaWYgKCFpc0FycmF5KSBhcnJheSA9IFthcnJheV07CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2hhbmdlSG92ZXJCeU5hbWVzKGFycmF5LCByZWdpb24sIHByb3BhZ2F0ZSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIFN0YXJ0IHRoZSBhbmltYXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCBaaW5jIG9iamVjdAogICAgICovCiAgICBwbGF5OiBmdW5jdGlvbiAoZmxhZykgewogICAgICB0aGlzLiRtb2R1bGUucGxheUFuaW1hdGlvbihmbGFnKTsKICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmbGFnOwogICAgICAvL0hpZGUgdG9vbHRpcCBhcyBsb2NhdGlvbiBtYXkKICAgICAgLy90aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgb24vb2ZmIG92ZXJsYXkgaGVscC4KICAgICAqLwogICAgc2V0SGVscE1vZGU6IGZ1bmN0aW9uIChoZWxwTW9kZSkgewogICAgICBpZiAoaGVscE1vZGUpIHsKICAgICAgICB0aGlzLmluSGVscCA9IHRydWU7CiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllcy5mb3JFYWNoKChpdGVtKSA9PiB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gdHJ1ZTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmluSGVscCA9IGZhbHNlOwogICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMuZm9yRWFjaCgoaXRlbSkgPT4gewogICAgICAgICAgaXRlbS52YWx1ZSA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB1c2VkIGJ5IHNob3dSZWdpb25Ub29sdGlwIGluIHRoZSBjYXNlIHdoZW4gdGhlIHRvb2x0aXAKICAgICAqIGlzIG91dCBvZiB2aWV3LgogICAgICovCiAgICBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0c0NhbGxiYWNrOiBmdW5jdGlvbiAoCiAgICAgIG5hbWUsCiAgICAgIG9iamVjdHMsCiAgICAgIHJlZ2lvblBhdGgsCiAgICAgIHJlc2V0VmlldywKICAgICAgbGl2ZVVwZGF0ZXMKICAgICkgewogICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXM7CiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgaW5zdGFuY2UuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24oCiAgICAgICAgICBpbnN0YW5jZS4kX3JlZ2lvblRvb2x0aXBDYWxsYmFjawogICAgICAgICk7CiAgICAgICAgaW5zdGFuY2UuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2sgPSB1bmRlZmluZWQ7CiAgICAgICAgaW5zdGFuY2UuZGlzcGxheVRvb2x0aXBPZk9iamVjdHMobmFtZSwgb2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcyk7CiAgICAgIH07CiAgICB9LAogICAgbGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbjogZnVuY3Rpb24gKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNlbGVjdGVkQ2VudGVyKSB7CiAgICAgICAgdGhpcy50RGF0YS54ID0gdGhpcy4kbW9kdWxlLnNlbGVjdGVkU2NyZWVuQ29vcmRpbmF0ZXMueDsKICAgICAgICB0aGlzLnREYXRhLnkgPSB0aGlzLiRtb2R1bGUuc2VsZWN0ZWRTY3JlZW5Db29yZGluYXRlcy55OwogICAgICB9CiAgICB9LAogICAgZGlzcGxheVRvb2x0aXBPZk9iamVjdHM6IGZ1bmN0aW9uIChuYW1lLCBvYmplY3RzLCByZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIGlmIChvYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICBsZXQgY29vcmRzID0gb2JqZWN0c1swXS5nZXRDbG9zZXN0VmVydGV4RE9NRWxlbWVudENvb3JkcygKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZQogICAgICAgICk7CiAgICAgICAgaWYgKGNvb3JkcykgewogICAgICAgICAgLy9UaGUgY29vcmRzIGlzIG5vdCBpbiB2aWV3LCB2aWV3IGFsbCBpZiByZXNldFZpZXcgZmxhZyBpcyB0cnVlCiAgICAgICAgICBpZiAoIWNvb3Jkcy5pblZpZXcpIHsKICAgICAgICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICAgICAgICBpZiAocmVzZXRWaWV3KSB7CiAgICAgICAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLnZpZXdBbGwoKTsKICAgICAgICAgICAgICAvL1VzZSB0aGUgcG9zdCByZW5kZXIgY2FsbGJhY2sgdG8gbWFrZSBzdXJlIHRoZSBzY2VuZSBoYXMgYmVlbiB1cGRhdGVkCiAgICAgICAgICAgICAgLy9iZWZvcmUgZ2V0dGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuCiAgICAgICAgICAgICAgaWYgKHRoaXMuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2spIHsKICAgICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24oCiAgICAgICAgICAgICAgICAgIHRoaXMuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2sKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRoaXMuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2sgPQogICAgICAgICAgICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5hZGRQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbigKICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VG9vbHRpcE9mT2JqZWN0c0NhbGxiYWNrKAogICAgICAgICAgICAgICAgICAgIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgb2JqZWN0cywKICAgICAgICAgICAgICAgICAgICByZWdpb25QYXRoLAogICAgICAgICAgICAgICAgICAgIHJlc2V0VmlldywKICAgICAgICAgICAgICAgICAgICBsaXZlVXBkYXRlcwogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLnREYXRhLnZpc2libGUgPSB0cnVlOwogICAgICAgICAgICB0aGlzLnREYXRhLmxhYmVsID0gbmFtZTsKICAgICAgICAgICAgdGhpcy50RGF0YS54ID0gY29vcmRzLnBvc2l0aW9uLng7CiAgICAgICAgICAgIHRoaXMudERhdGEueSA9IGNvb3Jkcy5wb3NpdGlvbi55OwogICAgICAgICAgICB0aGlzLnREYXRhLnJlZ2lvbiA9IHJlZ2lvblBhdGg7CiAgICAgICAgICAgIGlmICh0aGlzLiRfbGl2ZUNvb3JkaW5hdGVzVXBkYXRlZCkgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24oCiAgICAgICAgICAgICAgICB0aGlzLiRfbGl2ZUNvb3JkaW5hdGVzVXBkYXRlZAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGxpdmVVcGRhdGVzKSB7CiAgICAgICAgICAgICAgdGhpcy4kbW9kdWxlLnNldHVwTGl2ZUNvb3JkaW5hdGVzKG9iamVjdHMpOwogICAgICAgICAgICAgIHRoaXMuJF9saXZlQ29vcmRpbmF0ZXNVcGRhdGVkID0KICAgICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuYWRkUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24oCiAgICAgICAgICAgICAgICAgIHRoaXMubGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKgogICAgICogRGlzcGxheSB0aGUgdG9vbHRpcCB1c2VkIGZvciBkaXNwbGF5aW5nIHNlYXJjaCByZXN1bHQuCiAgICAgKiBXaGVuIHJlc2V0VmlldyBpcyBzZXQgdG8gdHJ1ZSwgaXQgd2lsbAogICAgICogcmVzZXQgdmlldyBpZiB0aGUgdG9vbHRpcCBpcyBub3QgaW4gdmlldy4KICAgICAqIFNldHRpbmcgbGl2ZVVwZGF0ZXMgdG8gdHJ1ZSB3aWxsIHVwZGF0ZSB0aGUgdG9vbHRpcCBsb2NhdGlvbgogICAgICogYXQgZXZlcnkgcmVuZGVyaW5nIGxvb3AuCiAgICAgKi8KICAgIHNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHM6IGZ1bmN0aW9uIChsYWJlbCwgemluY09iamVjdHMsIHJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpIHsKICAgICAgaWYgKGxhYmVsICYmIHppbmNPYmplY3RzICYmIHppbmNPYmplY3RzLmxlbmd0aCA+IDAgJiYgdGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheVRvb2x0aXBPZk9iamVjdHMoCiAgICAgICAgICBsYWJlbCwKICAgICAgICAgIHppbmNPYmplY3RzLAogICAgICAgICAgcmVnaW9uUGF0aCwKICAgICAgICAgIHJlc2V0VmlldywKICAgICAgICAgIGxpdmVVcGRhdGVzCiAgICAgICAgKTsKICAgICAgfQogICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICAvKioKICAgICAqIERpc3BsYXkgdGhlIHRvb2x0aXAuIFdoZW4gcmVzZXRWaWV3IGlzIHNldCB0byB0cnVlLCBpdCB3aWxsCiAgICAgKiByZXNldCB2aWV3IGlmIHRoZSB0b29sdGlwIGlzIG5vdCBpbiB2aWV3LgogICAgICogU2V0dGluZyBsaXZlVXBkYXRlcyB0byB0cnVlIHdpbGwgdXBkYXRlIHRoZSB0b29sdGlwIGxvY2F0aW9uCiAgICAgKiBhdCBldmVyeSByZW5kZXJpbmcgbG9vcC4KICAgICAqLwogICAgc2hvd1JlZ2lvblRvb2x0aXA6IGZ1bmN0aW9uIChuYW1lLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIGlmIChuYW1lICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIGNvbnN0IHJvb3RSZWdpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0Um9vdFJlZ2lvbigpOwogICAgICAgIGNvbnN0IGdyb3VwcyA9IFtuYW1lXTsKICAgICAgICBjb25zdCBvYmplY3RzID0gZmluZE9iamVjdHNXaXRoTmFtZXMocm9vdFJlZ2lvbiwgZ3JvdXBzLCAiIiwgdHJ1ZSk7CiAgICAgICAgbGV0IHJlZ2lvblBhdGggPSB1bmRlZmluZWQ7CiAgICAgICAgaWYgKG9iamVjdHMgJiYgb2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICByZWdpb25QYXRoID0gb2JqZWN0c1swXS5nZXRSZWdpb24oKS5nZXRGdWxsUGF0aCgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5zaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzKAogICAgICAgICAgbmFtZSwKICAgICAgICAgIG9iamVjdHMsCiAgICAgICAgICByZWdpb25QYXRoLAogICAgICAgICAgcmVzZXRWaWV3LAogICAgICAgICAgbGl2ZVVwZGF0ZXMKICAgICAgICApOwogICAgICB9CiAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKgogICAgICogRGlzcGxheSB0aGUgdG9vbHRpcCB1c2luZyB0aGUgbGlzdCBvZiBhbm5vdGF0aW9ucy4KICAgICAqIFdoZW4gcmVzZXRWaWV3IGlzIHNldCB0byB0cnVlLCBpdCB3aWxsCiAgICAgKiByZXNldCB2aWV3IGlmIHRoZSB0b29sdGlwIGlzIG5vdCBpbiB2aWV3LgogICAgICogU2V0dGluZyBsaXZlVXBkYXRlcyB0byB0cnVlIHdpbGwgdXBkYXRlIHRoZSB0b29sdGlwIGxvY2F0aW9uCiAgICAgKiBhdCBldmVyeSByZW5kZXJpbmcgbG9vcC4KICAgICAqLwogICAgc2hvd1JlZ2lvblRvb2x0aXBXaXRoQW5ub3RhdGlvbnM6IGZ1bmN0aW9uIChhbm5vdGF0aW9ucywgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gZ2V0T2JqZWN0c0Zyb21Bbm5vdGF0aW9ucyh0aGlzLiRtb2R1bGUuc2NlbmUsIGFubm90YXRpb25zKTsKICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5vYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICAgIHJldHVybiB0aGlzLnNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHMoCiAgICAgICAgICAgIHJlc3VsdC5sYWJlbCwKICAgICAgICAgICAgcmVzdWx0Lm9iamVjdHMsCiAgICAgICAgICAgIHJlc3VsdC5yZWdpb25QYXRoLAogICAgICAgICAgICByZXNldFZpZXcsCiAgICAgICAgICAgIGxpdmVVcGRhdGVzCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQogICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICBoaWRlUmVnaW9uVG9vbHRpcDogZnVuY3Rpb24gKCkgewogICAgICBpZiAodGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKAogICAgICAgICAgdGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQKICAgICAgICApOwogICAgICAgIC8vVW5zZXQgdGhlIHRyYWNraW5nCiAgICAgICAgdGhpcy4kbW9kdWxlLnNldHVwTGl2ZUNvb3JkaW5hdGVzKHVuZGVmaW5lZCk7CiAgICAgIH0KICAgICAgdGhpcy50RGF0YS52aXNpYmxlID0gZmFsc2U7CiAgICAgIHRoaXMudERhdGEucmVnaW9uID0gdW5kZWZpbmVkOwogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBtYXJrZXIgbW9kZXMgZm9yIG9iamVjdHMgd2l0aCB0aGUgcHJvdmlkZWQgbmFtZSwgbW9kZSBjYW4KICAgICAqIGJlICJvbiIsICJvZmYiIG9yICJpbmhlcml0ZWQiLgogICAgICovCiAgICBzZXRNYXJrZXJNb2RlRm9yT2JqZWN0c1dpdGhOYW1lOiBmdW5jdGlvbiAobmFtZSwgbW9kZSkgewogICAgICBpZiAobmFtZSAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICBjb25zdCByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgICBjb25zdCBncm91cHMgPSBbbmFtZV07CiAgICAgICAgY29uc3Qgb2JqZWN0cyA9IGZpbmRPYmplY3RzV2l0aE5hbWVzKHJvb3RSZWdpb24sIGdyb3VwcywgIiIsIHRydWUpOwogICAgICAgIG9iamVjdHMuZm9yRWFjaChvYmplY3QgPT4gb2JqZWN0LnNldE1hcmtlck1vZGUobW9kZSkpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBTZXQgdGhlIG1hcmtlciBtb2RlcyBmb3Igb2JqZWN0cyBzcGVjaWZpZWQgYnkgdGhlIGxpc3Qgb2YgYW5ub3RhdGlvbnMKICAgICAqLwogICAgc2V0TWFya2VyTW9kZVdpdGhBbm5vdGF0aW9uczogZnVuY3Rpb24gKGFubm90YXRpb25zLCBtb2RlKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICBjb25zdCByZXN1bHQgPSBnZXRPYmplY3RzRnJvbUFubm90YXRpb25zKHRoaXMuJG1vZHVsZS5zY2VuZSwgYW5ub3RhdGlvbnMpOwogICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lm9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgcmVzdWx0Lm9iamVjdHMuZm9yRWFjaChvYmplY3QgPT4gb2JqZWN0LnNldE1hcmtlck1vZGUobW9kZSkpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBtb3VzZSBjdXJzb3IgZW50ZXJzIHN1cHBvcnRlZCBlbGVtZW50cwogICAgICogd2l0aCBoZWxwIHRvb3RsdGlwcy4KICAgICAqLwogICAgc2hvd0hlbHBUZXh0OiBmdW5jdGlvbiAoaGVscFRleHROdW1iZXIpIHsKICAgICAgaWYgKCF0aGlzLmluSGVscCkgewogICAgICAgIHRoaXMuaGVscFRleHRXYWl0ID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzW2hlbHBUZXh0TnVtYmVyXS52YWx1ZSA9IHRydWU7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBtb3VzZSBjdXJzb3IgZXhpdHMgc3VwcG9ydGVkIGVsZW1lbnQuLgogICAgICovCiAgICBoaWRlSGVscFRleHQ6IGZ1bmN0aW9uIChoZWxwVGV4dE51bWJlcikgewogICAgICBpZiAoIXRoaXMuaW5IZWxwKSB7CiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllc1toZWxwVGV4dE51bWJlcl0udmFsdWUgPSBmYWxzZTsKICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oZWxwVGV4dFdhaXQpOwogICAgICB9CiAgICB9LAogICAgc2VhcmNoOiBmdW5jdGlvbiAodGV4dCwgZGlzcGxheUxhYmVsKSB7CiAgICAgIGlmICh0aGlzLiRfc2VhcmNoSW5kZXgpIHsKICAgICAgICBpZiAodGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRleHQgPT09ICIiIHx8CiAgICAgICAgICAoKEFycmF5LmlzQXJyYXkodGV4dCkgJiYgdGV4dC5sZW5ndGggPT09IDApKQogICAgICAgICkgewogICAgICAgICAgdGhpcy5vYmplY3RTZWxlY3RlZChbXSwgdHJ1ZSk7IAogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLiRfc2VhcmNoSW5kZXguc2VhcmNoQW5kUHJvY2Vzc1Jlc3VsdCh0ZXh0KTsKICAgICAgICAgIGNvbnN0IHppbmNPYmplY3RzID0gcmVzdWx0LnppbmNPYmplY3RzOwogICAgICAgICAgaWYgKHppbmNPYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdGhpcy5vYmplY3RTZWxlY3RlZCh6aW5jT2JqZWN0cywgdHJ1ZSk7CiAgICAgICAgICAgIGlmIChkaXNwbGF5TGFiZWwpIHsKICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHppbmNPYmplY3RzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoemluY09iamVjdHNbaV0gJiYgemluY09iamVjdHNbaV0uZ3JvdXBOYW1lKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1JlZ2lvblRvb2x0aXBXaXRoT2JqZWN0cygKICAgICAgICAgICAgICAgICAgICByZXN1bHQubGFiZWwsCiAgICAgICAgICAgICAgICAgICAgemluY09iamVjdHMsCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnJlZ2lvblBhdGgsCiAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKICAgICAgICAgICAgICAgICAgICB0cnVlCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5vYmplY3RTZWxlY3RlZChbXSwgdHJ1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICAvKioKICAgICAqIEdldCB0aGUgbGlzdCBvZiBzdWdnZXN0ZWQgdGVybXMKICAgICAqLwogICAgZmV0Y2hTdWdnZXN0aW9uczogZnVuY3Rpb24gKHRlcm0pIHsKICAgICAgaWYgKHRoaXMuJF9zZWFyY2hJbmRleCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW107CiAgICAgIHJldHVybiB0aGlzLiRfc2VhcmNoSW5kZXguYXV0b19zdWdnZXN0KHRlcm0pOwogICAgfSwKICAgIC8qKgogICAgICogQ2FsbGVkIHdoZW4gbWluaW1hcCBzZXR0aW5ncyBoYXMgY2hhbmdlZC4gUGFzcyB0aGUKICAgICAqIHBhcmFtZXRlcnMgdG8gWmluY0pTIGFuZCBtYXJrZWQgaXQgZm9yIHVwZGF0ZS4KICAgICAqLwogICAgdXBkYXRlTWluaW1hcFNjaXNzb3I6IGZ1bmN0aW9uICgpIHsKICAgICAgT2JqZWN0LmtleXModGhpcy5taW5pbWFwU2V0dGluZ3MpLmZvckVhY2goKGtleSkgPT4gewogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5taW5pbWFwU2Npc3NvcltrZXldID0gdGhpcy5taW5pbWFwU2V0dGluZ3Nba2V5XTsKICAgICAgfSk7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5taW5pbWFwU2Npc3Nvci51cGRhdGVSZXF1aXJlZCA9IHRydWU7CiAgICB9LAogICAgdXBkYXRlU2V0dGluZ3Nmcm9tU2NlbmU6IGZ1bmN0aW9uICgpIHsKICAgICAgdGhpcy5jdXJyZW50U3BlZWQgPSAxOwogICAgICB0aGlzLiRtb2R1bGUuc2V0UGxheVJhdGUodGhpcy5kZWZhdWx0UmF0ZSk7CiAgICAgIHRoaXMub3JnaW5hbER1cmF0aW9uID0KICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0TWV0YWRhdGFUYWcoIk9yaWdpbmFsRHVyYXRpb24iKTsKICAgICAgdGhpcy5hbmltYXRlRHVyYXRpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0TWV0YWRhdGFUYWcoIkR1cmF0aW9uIik7CiAgICAgIGxldCB0aW1lU3RhbXBzID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldE1ldGFkYXRhVGFnKCJUaW1lU3RhbXBzIik7CiAgICAgIHRoaXMudGltZVN0YW1wcyA9IHt9OwogICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aW1lU3RhbXBzKSB7CiAgICAgICAgdGhpcy50aW1lU3RhbXBzW3RpbWVTdGFtcHNba2V5XV0gPSBrZXk7CiAgICAgIH0KICAgICAgdGhpcy50aW1lTWF4ID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldER1cmF0aW9uKCk7CiAgICB9LAogICAgc2V0VVJMRmluaXNoQ2FsbGJhY2s6IGZ1bmN0aW9uIChvcHRpb25zKSB7CiAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgaWYgKG9wdGlvbnMpIHsKICAgICAgICAgIGlmIChvcHRpb25zLnZpZXdwb3J0KSB7CiAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZQogICAgICAgICAgICAgIC5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKQogICAgICAgICAgICAgIC5zZXRDdXJyZW50Q2FtZXJhU2V0dGluZ3Mob3B0aW9ucy52aWV3cG9ydCk7CiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudmlld1VSTCAmJiBvcHRpb25zLnZpZXdVUkwgIT09ICIiKSB7CiAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwob3B0aW9ucy52aWV3VVJMLCB0aGlzLnVybCk7CiAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5sb2FkVmlld1VSTCh1cmwpOwogICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnJlZ2lvbiAmJiBvcHRpb25zLnJlZ2lvbiAhPT0gIiIpIHsKICAgICAgICAgICAgdGhpcy52aWV3UmVnaW9uKG9wdGlvbnMucmVnaW9uKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChvcHRpb25zLnZpc2liaWxpdHkpIHsKICAgICAgICAgICAgLy8gU29tZSBVSXMgbWF5IG5vdCBiZSByZWFkeSBhdCB0aGlzIHRpbWUuCiAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5zZXRTdGF0ZShvcHRpb25zLnZpc2liaWxpdHkpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGhpcy51cGRhdGVTZXR0aW5nc2Zyb21TY2VuZSgpOwogICAgICAgIHRoaXMuJG1vZHVsZS51cGRhdGVUaW1lKDAuMDEpOwogICAgICAgIHRoaXMuJG1vZHVsZS51cGRhdGVUaW1lKDApOwogICAgICAgIHRoaXMuJG1vZHVsZS51bnNldEZpbmlzaERvd25sb2FkQ2FsbGJhY2soKTsKICAgICAgICB0aGlzLmFkZFJlZ2lvbnNUb1NlYXJjaEluZGV4KCk7CiAgICAgICAgdGhpcy4kZW1pdCgib24tcmVhZHkiKTsKICAgICAgICB0aGlzLnNldE1hcmtlcnMoKTsKICAgICAgICB0aGlzLmlzUmVhZHkgPSB0cnVlOwogICAgICB9OwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCBmb3IgZ2V0dGluZyB0aGUgY3VycmVudCBzdGF0ZXMgb2YgdGhlIHNjZW5lLiBUaGlzIGV4cG9ydGVkIHN0YXRlcwogICAgICogY2FuIGJlIGltcG9ydGVkIHVzaW5nIHRoZSBpbXBvcnRTdGF0ZXMgbWV0aG9kLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgZ2V0U3RhdGU6IGZ1bmN0aW9uICgpIHsKICAgICAgbGV0IHN0YXRlID0gewogICAgICAgIGZvcm1hdDogdGhpcy5maWxlRm9ybWF0LAogICAgICAgIHVybDogdGhpcy5fY3VycmVudFVSTCwKICAgICAgICB2aWV3cG9ydDogdW5kZWZpbmVkLAogICAgICAgIHZpc2liaWxpdHk6IHVuZGVmaW5lZCwKICAgICAgfTsKICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzKQogICAgICAgIHN0YXRlLnZpc2liaWxpdHkgPSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5nZXRTdGF0ZSgpOwogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgbGV0IHppbmNDYW1lcmFDb250cm9scyA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgICBzdGF0ZS52aWV3cG9ydCA9IHppbmNDYW1lcmFDb250cm9scy5nZXRDdXJyZW50Vmlld3BvcnQoKTsKICAgICAgfQogICAgICByZXR1cm4gc3RhdGU7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB1c2VkIGZvciBpbXBvcnRpbmcgdGhlIHN0YXRlcyBvZiB0aGUgc2NlbmUuIFRoaXMgZXhwb3J0ZWQgc3RhdGVzCiAgICAgKiBjYW4gYmUgaW1wb3J0ZWQgdXNpbmcgdGhlIHJlYWQgc3RhdGVzIG1ldGhvZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHNldFN0YXRlOiBmdW5jdGlvbiAoc3RhdGUpIHsKICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgaWYgKHN0YXRlLnVybCAmJiBzdGF0ZS51cmwgIT09IHRoaXMuX2N1cnJlbnRVUkwpIHsKICAgICAgICAgIHRoaXMuc2V0VVJMQW5kU3RhdGUoc3RhdGUudXJsLCB7CiAgICAgICAgICAgIGZpbGVGb3JtYXQ6IHN0YXRlLmZpbGVGb3JtYXQsCiAgICAgICAgICAgIHZpZXdwb3J0OiBzdGF0ZS52aWV3cG9ydCwKICAgICAgICAgICAgdmlzaWJpbGl0eTogc3RhdGUudmlzaWJpbGl0eSwKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQgfHwgc3RhdGUudmlzaWJpbGl0eSkgewogICAgICAgICAgICBpZiAodGhpcy5pc1JlYWR5ICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgICAgICAgIGlmIChzdGF0ZS52aWV3cG9ydCkKICAgICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZQogICAgICAgICAgICAgICAgICAuZ2V0WmluY0NhbWVyYUNvbnRyb2xzKCkKICAgICAgICAgICAgICAgICAgLnNldEN1cnJlbnRDYW1lcmFTZXR0aW5ncyhzdGF0ZS52aWV3cG9ydCk7CiAgICAgICAgICAgICAgaWYgKHN0YXRlLnZpc2liaWxpdHkpCiAgICAgICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5zZXRTdGF0ZShzdGF0ZS52aXNpYmlsaXR5KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjaygKICAgICAgICAgICAgICAgIHRoaXMuc2V0VVJMRmluaXNoQ2FsbGJhY2soewogICAgICAgICAgICAgICAgICB2aWV3cG9ydDogc3RhdGUudmlld3BvcnQsCiAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHN0YXRlLnZpc2liaWxpdHksCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBleHBvcnRHTFRGOiBmdW5jdGlvbiAoYmluYXJ5KSB7CiAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2NlbmUuZXhwb3J0R0xURihiaW5hcnkpOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCBmb3IgcmVhZGluZyBpbiBuZXcgc2NhZmZvbGQgbWV0YWRhdGEgYW5kIGEgY3VzdG9tCiAgICAgKiB2aWV3cG9ydC4gVGhpcyBmdW5jdGlvbiB3aWxsIGlnbm9yZSB0aGUgc3RhdGUgcHJvcCBhbmQKICAgICAqIHJlYWQgaW4gdGhlIG5ldyB1cmwuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBzZXRVUkxBbmRTdGF0ZTogZnVuY3Rpb24gKG5ld1ZhbHVlLCBzdGF0ZSkgewogICAgICBpZiAobmV3VmFsdWUgIT0gdGhpcy5fY3VycmVudFVSTCkgewogICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5mb3JtYXQpIHRoaXMuZmlsZUZvcm1hdCA9IHN0YXRlLmZvcm1hdDsKICAgICAgICBsZXQgdmlld3BvcnQgPSBzdGF0ZSAmJiBzdGF0ZS52aWV3cG9ydCA/IHN0YXRlLnZpZXdwb3J0IDogdW5kZWZpbmVkOwogICAgICAgIGxldCB2aXNpYmlsaXR5ID0KICAgICAgICAgIHN0YXRlICYmIHN0YXRlLnZpc2liaWxpdHkgPyBzdGF0ZS52aXNpYmlsaXR5IDogdW5kZWZpbmVkOwogICAgICAgIHRoaXMuX2N1cnJlbnRVUkwgPSBuZXdWYWx1ZTsKICAgICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLmNsZWFyKCk7CiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgICB0aGlzLmlzUmVhZHkgPSBmYWxzZTsKICAgICAgICB0aGlzLiRfc2VhcmNoSW5kZXgucmVtb3ZlQWxsKCk7CiAgICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICAgIHRoaXMuJG1vZHVsZS5zZXRGaW5pc2hEb3dubG9hZENhbGxiYWNrKAogICAgICAgICAgdGhpcy5zZXRVUkxGaW5pc2hDYWxsYmFjayh7CiAgICAgICAgICAgIHZpZXdwb3J0OiB2aWV3cG9ydCwKICAgICAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbiwKICAgICAgICAgICAgdmlld1VSTDogdGhpcy52aWV3VVJMLAogICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmlsaXR5LAogICAgICAgICAgfSkKICAgICAgICApOwogICAgICAgIGlmICh0aGlzLmZpbGVGb3JtYXQgPT09ICJnbHRmIikgewogICAgICAgICAgdGhpcy4kbW9kdWxlLmxvYWRHTFRGRnJvbVVSTChuZXdWYWx1ZSwgInNjZW5lIiwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5sb2FkT3JnYW5zRnJvbVVSTCgKICAgICAgICAgICAgbmV3VmFsdWUsCiAgICAgICAgICAgIHVuZGVmaW5lZCwKICAgICAgICAgICAgdW5kZWZpbmVkLAogICAgICAgICAgICAic2NlbmUiLAogICAgICAgICAgICB1bmRlZmluZWQsCiAgICAgICAgICAgIHRydWUKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5kaXNwbGF5TWFya2VycyA9IHRoaXMuZGlzcGxheU1hcmtlcnM7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmZvcmNlUGlja2FibGVPYmplY3RzVXBkYXRlID0gdHJ1ZTsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1pbmltYXAgPSB0aGlzLmRpc3BsYXlNaW5pbWFwOwogICAgICAgIHRoaXMudXBkYXRlTWluaW1hcFNjaXNzb3IoKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCBmb3IgcmVhZGluZyBpbiBuZXcgc2NhZmZvbGQgbWV0YWRhdGEuIFRoaXMgZnVuY3Rpb24gd2lsbCBpZ25vcmUKICAgICAqIHRoZSBzdGF0ZSBwcm9wIGFuZCByZWFkIGluIHRoZSBuZXcgdXJsLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgc2V0VVJMOiBmdW5jdGlvbiAobmV3VmFsdWUpIHsKICAgICAgdGhpcy5zZXRVUkxBbmRTdGF0ZShuZXdWYWx1ZSwgdW5kZWZpbmVkKTsKICAgIH0sCiAgICAvKioKICAgICAqIENhbGxiYWNrIHdoZW4gZHJhd2VyIGlzIHRvZ2dsZWQuCiAgICAgKi8KICAgIGRyYXdlclRvZ2dsZWQ6IGZ1bmN0aW9uIChmbGFnKSB7CiAgICAgIHRoaXMuZHJhd2VyT3BlbiA9IGZsYWc7CiAgICAgIHRoaXMuYWRqdXN0TGF5b3V0KCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayB1c2luZyBSZXNpemVPYnNlcnZlci4KICAgICAqLwogICAgYWRqdXN0TGF5b3V0OiBmdW5jdGlvbiAoKSB7CiAgICAgIGxldCB3aWR0aCA9IHRoaXMuJHJlZnMuc2NhZmZvbGRDb250YWluZXIuY2xpZW50V2lkdGg7CiAgICAgIHRoaXMubWluaW1pc2VkU2xpZGVyID0gd2lkdGggPCA4MTI7CiAgICAgIGlmICh0aGlzLm1pbmltaXNlZFNsaWRlcikgewogICAgICAgIHRoaXMuc2xpZGVyUG9zaXRpb24gPSB0aGlzLmRyYXdlck9wZW4gPyAicmlnaHQiIDogImxlZnQiOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuc2xpZGVyUG9zaXRpb24gPSAiIjsKICAgICAgfQogICAgfSwKICAgIHRvZ2dsZVJlbmRlcmluZzogZnVuY3Rpb24gKGZsYWcpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIpIHsKICAgICAgICBpZiAoZmxhZykgewogICAgICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5hbmltYXRlKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuc3RvcEFuaW1hdGUoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBmb3JjZVJlc2l6ZTogZnVuY3Rpb24gKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIub25XaW5kb3dSZXNpemUoKTsKICAgICAgfQogICAgfSwKICAgIHN5bmNDb250cm9sQ2FsbGJhY2s6IGZ1bmN0aW9uICgpIHsKICAgICAgY29uc3QgcGF5bG9hZCA9IHRoaXMuJG1vZHVsZS5ORENDYW1lcmFDb250cm9sLmdldFBhblpvb20oKTsKICAgICAgaWYgKHRoaXMudERhdGEudmlzaWJsZSkgewogICAgICAgIHRoaXMuc2hvd1JlZ2lvblRvb2x0aXAodGhpcy50RGF0YS5sYWJlbCwgdHJ1ZSwgdHJ1ZSk7CiAgICAgIH0KICAgICAgdGhpcy4kZW1pdCgic2NhZmZvbGQtbmF2aWdhdGVkIiwgcGF5bG9hZCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBSb3RhdGUgbW9kZSAtICJub25lIiwgImhvcml6b250YWwiLCAidmVydGljYWwiLCAiZnJlZSIgYnV0CiAgICAgKiBpdCB3aWxsIGJlIGlnbm9yZWQgaWYgZmxhZyBpcyBzZXQgdG8gZmFsc2UuCiAgICAgKi8KICAgIHRvZ2dsZVN5bmNDb250cm9sOiBmdW5jdGlvbiAoZmxhZywgcm90YXRlTW9kZSkgewogICAgICB0aGlzLiRtb2R1bGUudG9nZ2xlU3luY0NvbnRyb2woZmxhZywgcm90YXRlTW9kZSk7CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRTeW5jQ29udHJvbENhbGxiYWNrKHRoaXMuc3luY0NvbnRyb2xDYWxsYmFjayk7CiAgICB9LAoKICAgIC8qKgogICAgICogU2V0IHRoZSBtYXJrZXJzIGZvciB0aGUgc2NlbmUuCiAgICAgKi8KICAgIHNldE1hcmtlcnM6IGZ1bmN0aW9uICgpIHsKICAgICAgdGhpcy5tYXJrZXJMYWJlbHMuZm9yRWFjaCgobCk9PnsKICAgICAgICB0aGlzLnNldE1hcmtlck1vZGVGb3JPYmplY3RzV2l0aE5hbWUobCwgIm9uIik7CiAgICAgIH0pCiAgICB9LAogIH0sCn07Cg=="},{"version":3,"sources":["ScaffoldVuer.vue"],"names":[],"mappings":";AAuTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"ScaffoldVuer.vue","sourceRoot":"node_modules/@abi-software/scaffoldvuer/src/components","sourcesContent":["\n \n \n \n \n \n \n \n Beta\n \n \n \n What's new?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Original duration:\n \n {{ orginalDuration }}\n \n \n \n Animation duration:\n \n {{ animateDuration }}\n \n \n \n Playback speed\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Fit to\n \n window\n \n \n \n \n \n \n \n {{ item.display }}\n \n \n \n \n Change background \n \n \n \n \n \n \n \n 0\"\n slot=\"reference\"\n v-popover:open-map-popover\n icon=\"openMap\"\n class=\"icon-button\"\n @mouseover.native=\"showHelpText(8)\"\n @mouseout.native=\"hideHelpText(8)\"\n />\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n"]}]}