{"remainingRequest":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/thread-loader/dist/cjs.js!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js??ref--1-0!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js??vue-loader-options!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/flatmapvuer/src/components/FlatmapVuer.vue?vue&type=script&lang=js&","dependencies":[{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/flatmapvuer/src/components/FlatmapVuer.vue","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/babel.config.js","mtime":1684261475125},{"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:aW1wb3J0IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIGZyb20gIi9ob21lL2NtaXNzL0plbmtpbnMvd29ya3NwYWNlL21hcGludGVncmF0ZWR2dWVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiL2hvbWUvY21pc3MvSmVua2lucy93b3Jrc3BhY2UvbWFwaW50ZWdyYXRlZHZ1ZXIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yUnVudGltZS5qcyI7CmltcG9ydCBfYXN5bmNUb0dlbmVyYXRvciBmcm9tICIvaG9tZS9jbWlzcy9KZW5raW5zL3dvcmtzcGFjZS9tYXBpbnRlZ3JhdGVkdnVlci9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfUm93MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9yb3cuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfUm93IGZyb20gImVsZW1lbnQtdWkvbGliL3JvdyI7CmltcG9ydCBfUmFkaW9Hcm91cDIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvcmFkaW8tZ3JvdXAuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfUmFkaW9Hcm91cCBmcm9tICJlbGVtZW50LXVpL2xpYi9yYWRpby1ncm91cCI7CmltcG9ydCBfUmFkaW8yIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL3JhZGlvLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX1JhZGlvIGZyb20gImVsZW1lbnQtdWkvbGliL3JhZGlvIjsKaW1wb3J0IF9Mb2FkaW5nMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9sb2FkaW5nLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX0xvYWRpbmcgZnJvbSAiZWxlbWVudC11aS9saWIvbG9hZGluZyI7CmltcG9ydCBfQ29sMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9jb2wuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfQ29sIGZyb20gImVsZW1lbnQtdWkvbGliL2NvbCI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZnJvbS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnNldC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zZWFyY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiOwovKiBlc2xpbnQtZGlzYWJsZSBuby1hbGVydCwgbm8tY29uc29sZSAqLwppbXBvcnQgVnVlIGZyb20gInZ1ZSI7CmltcG9ydCBUb29sdGlwIGZyb20gIi4vVG9vbHRpcCI7CmltcG9ydCBTZWxlY3Rpb25zR3JvdXAgZnJvbSAiLi9TZWxlY3Rpb25zR3JvdXAudnVlIjsKaW1wb3J0IHsgTWFwU3ZnSWNvbiwgTWFwU3ZnU3ByaXRlQ29sb3IgfSBmcm9tICJAYWJpLXNvZnR3YXJlL3N2Zy1zcHJpdGUiOwppbXBvcnQgU3ZnTGVnZW5kcyBmcm9tICIuL2xlZ2VuZHMvU3ZnTGVnZW5kcyI7CmltcG9ydCBsYW5nIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZS9sYW5nL2VuIjsKaW1wb3J0IGxvY2FsZSBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2NhbGUiOwppbXBvcnQgZmxhdG1hcE1hcmtlciBmcm9tICIuLi9pY29ucy9mbGF0bWFwLW1hcmtlciI7CmltcG9ydCB7IEZsYXRtYXBRdWVyaWVzIH0gZnJvbSAiLi4vc2VydmljZXMvZmxhdG1hcFF1ZXJpZXMuanMiOwpsb2NhbGUudXNlKGxhbmcpOwpWdWUudXNlKF9Db2wpOwpWdWUudXNlKF9Mb2FkaW5nLmRpcmVjdGl2ZSk7ClZ1ZS51c2UoX1JhZGlvKTsKVnVlLnVzZShfUmFkaW9Hcm91cCk7ClZ1ZS51c2UoX1Jvdyk7CnZhciBSZXNpemVTZW5zb3IgPSByZXF1aXJlKCJjc3MtZWxlbWVudC1xdWVyaWVzL3NyYy9SZXNpemVTZW5zb3IiKTsKdmFyIGNyZWF0ZVVuZmlsbGVkVG9vbHRpcERhdGEgPSBmdW5jdGlvbiBjcmVhdGVVbmZpbGxlZFRvb2x0aXBEYXRhKCkgewogIHJldHVybiB7CiAgICBkZXN0aW5hdGlvbnM6IFtdLAogICAgb3JpZ2luczogW10sCiAgICBjb21wb25lbnRzOiBbXSwKICAgIGRlc3RpbmF0aW9uc1dpdGhEYXRhc2V0czogW10sCiAgICBvcmlnaW5zV2l0aERhdGFzZXRzOiBbXSwKICAgIGNvbXBvbmVudHNXaXRoRGF0YXNldHM6IFtdLAogICAgcmVzb3VyY2U6IHVuZGVmaW5lZAogIH07Cn07CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiRmxhdG1hcFZ1ZXIiLAogIGNvbXBvbmVudHM6IHsKICAgIE1hcFN2Z0ljb246IE1hcFN2Z0ljb24sCiAgICBNYXBTdmdTcHJpdGVDb2xvcjogTWFwU3ZnU3ByaXRlQ29sb3IsCiAgICBUb29sdGlwOiBUb29sdGlwLAogICAgU2VsZWN0aW9uc0dyb3VwOiBTZWxlY3Rpb25zR3JvdXAsCiAgICBTdmdMZWdlbmRzOiBTdmdMZWdlbmRzCiAgfSwKICBiZWZvcmVDcmVhdGU6IGZ1bmN0aW9uIGJlZm9yZUNyZWF0ZSgpIHsKICAgIHRoaXMubWFwTWFuYWdlciA9IHVuZGVmaW5lZDsKICAgIHRoaXMubWFwSW1wID0gdW5kZWZpbmVkOwogICAgLy9UaGUgc3RhdGUgd2F0Y2hlciBtYXkgdHJpZ2dlcmVkIGJlZm9yZQogICAgLy9jcmVhdGVkIGNhdXNpbmcgaXNzdWUsIFRoaXMgZmxhZyB3aWxsCiAgICAvL3Jlc29sdmUgdGhpcyBpc3N1ZS4KICAgIHRoaXMuc2V0U3RhdGVSZXF1aXJlZCA9IGZhbHNlOwogIH0sCiAgbWV0aG9kczogewogICAgdmlld0xhdGVzdE1hcDogZnVuY3Rpb24gdmlld0xhdGVzdE1hcCgpIHsKICAgICAgdmFyIGJpb2xvZ2ljYWxTZXggPSB0aGlzLmJpb2xvZ2ljYWxTZXggPyB0aGlzLmJpb2xvZ2ljYWxTZXggOiB1bmRlZmluZWQ7CiAgICAgIC8vSHVtYW4gcmVxdWlyZXMgc3BlY2lhbCBoYW5kbGluZwogICAgICBpZiAodGhpcy5lbnRyeSA9PT0gIk5DQklUYXhvbjo5NjA2IikgewogICAgICAgIGJpb2xvZ2ljYWxTZXggPSAiUEFUTzowMDAwMzg0IjsKICAgICAgfQogICAgICB2YXIgc3RhdGUgPSB7CiAgICAgICAgZW50cnk6IHRoaXMuZW50cnksCiAgICAgICAgYmlvbG9naWNhbFNleDogYmlvbG9naWNhbFNleCwKICAgICAgICB2aWV3cG9ydDogdGhpcy5tYXBJbXAuZ2V0U3RhdGUoKQogICAgICB9OwogICAgICB0aGlzLiRlbWl0KCJ2aWV3LWxhdGVzdC1tYXAiLCBzdGF0ZSk7CiAgICB9LAogICAgYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrOiBmdW5jdGlvbiBiYWNrZ3JvdW5kQ2hhbmdlQ2FsbGJhY2soY29sb3VyKSB7CiAgICAgIHRoaXMuY3VycmVudEJhY2tncm91bmQgPSBjb2xvdXI7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNldEJhY2tncm91bmRDb2xvdXIodGhpcy5jdXJyZW50QmFja2dyb3VuZCwgMSk7CiAgICAgIH0KICAgIH0sCiAgICB0b2dnbGVEcmF3ZXI6IGZ1bmN0aW9uIHRvZ2dsZURyYXdlcigpIHsKICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gIXRoaXMuZHJhd2VyT3BlbjsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHRvZ2dsZSBjb2xvdXIvZ3JleXNjYWxlIG9mIG9yZ2Fucy4KICAgICAqLwogICAgc2V0Q29sb3VyOiBmdW5jdGlvbiBzZXRDb2xvdXIoZmxhZykgewogICAgICB0aGlzLmNvbG91clJhZGlvID0gZmxhZzsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuc2V0Q29sb3VyKHsKICAgICAgICAgIGNvbG91cjogZmxhZywKICAgICAgICAgIG91dGxpbmU6IHRoaXMub3V0bGluZXNSYWRpbwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgb3V0bGluZXMgZiBvcmdhbnMuCiAgICAgKi8KICAgIHNldE91dGxpbmVzOiBmdW5jdGlvbiBzZXRPdXRsaW5lcyhmbGFnKSB7CiAgICAgIHRoaXMub3V0bGluZVJhZGlvID0gZmxhZzsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuc2V0Q29sb3VyKHsKICAgICAgICAgIGNvbG91cjogdGhpcy5jb2xvdXJSYWRpbywKICAgICAgICAgIG91dGxpbmU6IGZsYWcKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIHBhdGhzIHRvIGRlZmF1bHQuCiAgICAgKiBBbHNvIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGJ1dHRvbiBpcyBwcmVzc2VkLgogICAgICovCiAgICByZXNldFZpZXc6IGZ1bmN0aW9uIHJlc2V0VmlldygpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAucmVzZXRNYXAoKTsKICAgICAgICBpZiAodGhpcy4kcmVmcy5jZW50cmVsaW5lc1NlbGVjdGlvbikgewogICAgICAgICAgdGhpcy4kcmVmcy5jZW50cmVsaW5lc1NlbGVjdGlvbi5yZXNldCgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy4kcmVmcy5za2NhblNlbGVjdGlvbikgewogICAgICAgICAgdGhpcy4kcmVmcy5za2NhblNlbGVjdGlvbi5yZXNldCgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy4kcmVmcy5sYXllcnNTZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMubGF5ZXJzU2VsZWN0aW9uLnJlc2V0KCk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLiRyZWZzLnN5c3RlbXNTZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMucGF0aHdheXNTZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuJHJlZnMucGF0aHdheXNTZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMucGF0aHdheXNTZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gaW4uCiAgICAgKiBBbHNvIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGJ1dHRvbiBpcyBwcmVzc2VkLgogICAgICovCiAgICB6b29tSW46IGZ1bmN0aW9uIHpvb21JbigpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuem9vbUluKCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gb3V0LgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqLwogICAgem9vbU91dDogZnVuY3Rpb24gem9vbU91dCgpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuem9vbU91dCgpOwogICAgICB9CiAgICB9LAogICAgY2VudHJlTGluZXNTZWxlY3RlZDogZnVuY3Rpb24gY2VudHJlTGluZXNTZWxlY3RlZChwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUNlbnRyZWxpbmVzKHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgc2NrYW5TZWxlY3RlZDogZnVuY3Rpb24gc2NrYW5TZWxlY3RlZChwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVNja2FuUGF0aChwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBjaGVja0FsbFNDS0FOOiBmdW5jdGlvbiBjaGVja0FsbFNDS0FOKHBheWxvYWQpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgcmV0dXJuIF90aGlzLm1hcEltcC5lbmFibGVTY2thblBhdGgoa2V5LCBwYXlsb2FkLnZhbHVlKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIHN5c3RlbVNlbGVjdGVkOiBmdW5jdGlvbiBzeXN0ZW1TZWxlY3RlZChwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVN5c3RlbShwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBjaGVja0FsbFN5c3RlbXM6IGZ1bmN0aW9uIGNoZWNrQWxsU3lzdGVtcyhwYXlsb2FkKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBwYXlsb2FkLmtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgICByZXR1cm4gX3RoaXMyLm1hcEltcC5lbmFibGVTeXN0ZW0oa2V5LCBwYXlsb2FkLnZhbHVlKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGxheWVyc1NlbGVjdGVkOiBmdW5jdGlvbiBsYXllcnNTZWxlY3RlZChwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUxheWVyKHBheWxvYWQua2V5LCBwYXlsb2FkLnZhbHVlKTsKICAgICAgfQogICAgfSwKICAgIGNoZWNrQWxsTGF5ZXJzOiBmdW5jdGlvbiBjaGVja0FsbExheWVycyhwYXlsb2FkKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBwYXlsb2FkLmtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgICByZXR1cm4gX3RoaXMzLm1hcEltcC5lbmFibGVMYXllcihrZXksIHBheWxvYWQudmFsdWUpOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgcGF0aHdheXNTZWxlY3RlZDogZnVuY3Rpb24gcGF0aHdheXNTZWxlY3RlZChwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVBhdGgocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxQYXRod2F5czogZnVuY3Rpb24gY2hlY2tBbGxQYXRod2F5cyhwYXlsb2FkKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBwYXlsb2FkLmtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgICByZXR1cm4gX3RoaXM0Lm1hcEltcC5lbmFibGVQYXRoKGtleSwgcGF5bG9hZC52YWx1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICBlbmFibGVQYW5ab29tRXZlbnRzOiBmdW5jdGlvbiBlbmFibGVQYW5ab29tRXZlbnRzKGZsYWcpIHsKICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlUGFuWm9vbUV2ZW50cyhmbGFnKTsKICAgIH0sCiAgICBldmVudENhbGxiYWNrOiBmdW5jdGlvbiBldmVudENhbGxiYWNrKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIChldmVudFR5cGUsIGRhdGEpIHsKICAgICAgICBpZiAoZXZlbnRUeXBlICE9PSAicGFuLXpvb20iKSB7CiAgICAgICAgICB2YXIgbGFiZWwgPSBkYXRhLmxhYmVsOwogICAgICAgICAgdmFyIHJlc291cmNlID0gW2RhdGEubW9kZWxzXTsKICAgICAgICAgIHZhciB0YXhvbm9teSA9IF90aGlzNS5lbnRyeTsKICAgICAgICAgIHZhciBiaW9sb2dpY2FsU2V4ID0gX3RoaXM1LmJpb2xvZ2ljYWxTZXg7CiAgICAgICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMiA/IF9sZW4gLSAyIDogMCksIF9rZXkgPSAyOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7CiAgICAgICAgICAgIGFyZ3NbX2tleSAtIDJdID0gYXJndW1lbnRzW19rZXldOwogICAgICAgICAgfQogICAgICAgICAgdmFyIHBheWxvYWQgPSB7CiAgICAgICAgICAgIGRhdGFzZXQ6IGRhdGEuZGF0YXNldCwKICAgICAgICAgICAgYmlvbG9naWNhbFNleDogYmlvbG9naWNhbFNleCwKICAgICAgICAgICAgdGF4b25vbXk6IHRheG9ub215LAogICAgICAgICAgICByZXNvdXJjZTogcmVzb3VyY2UsCiAgICAgICAgICAgIGxhYmVsOiBsYWJlbCwKICAgICAgICAgICAgZmVhdHVyZTogZGF0YSwKICAgICAgICAgICAgdXNlckRhdGE6IGFyZ3MsCiAgICAgICAgICAgIGV2ZW50VHlwZTogZXZlbnRUeXBlCiAgICAgICAgICB9OwogICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS50eXBlICE9PSAibWFya2VyIiAmJiBldmVudFR5cGUgPT09ICJjbGljayIpIHsKICAgICAgICAgICAgX3RoaXM1LmNoZWNrQW5kQ3JlYXRlUG9wdXBzKHBheWxvYWQpOwogICAgICAgICAgfQogICAgICAgICAgX3RoaXM1LiRlbWl0KCJyZXNvdXJjZS1zZWxlY3RlZCIsIHBheWxvYWQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczUuJGVtaXQoInBhbi16b29tLWNhbGxiYWNrIiwgZGF0YSk7CiAgICAgICAgfQogICAgICB9OwogICAgfSwKICAgIC8vIGNoZWNrTmV1cm9uQ2xpY2tlZCBzaG93cyBhIG5ldXJvbiBwYXRoIHBvcCB1cCBpZiBhIHBhdGggd2FzIHJlY2VudGx5IGNsaWNrZWQKICAgIGNoZWNrQW5kQ3JlYXRlUG9wdXBzOiBmdW5jdGlvbiAoKSB7CiAgICAgIHZhciBfY2hlY2tBbmRDcmVhdGVQb3B1cHMgPSBfYXN5bmNUb0dlbmVyYXRvciggLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoZGF0YSkgewogICAgICAgIHZhciByZXN1bHRzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiB0aGlzLmZsYXRtYXBRdWVyaWVzLnJldHJpZXZlRmxhdG1hcEtub3dsZWRnZUZvckV2ZW50KGRhdGEpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgcmVzdWx0cyA9IF9jb250ZXh0LnNlbnQ7CiAgICAgICAgICAgICAgLy8gVGhlIGxpbmUgYmVsb3cgb25seSBjcmVhdGVzIHRoZSB0b29sdGlwIGlmIHNvbWUgZGF0YSB3YXMgZm91bmQgb24gdGhlIHBhdGggCiAgICAgICAgICAgICAgLy8gcmVzdWx0IDAgaXMgdGhlIGNvbm5lY3Rpb24sIHJlc3VsdCAxIGlzIHRoZSBwdWJtZWQgcmVzdWx0cyBmcm9tIGZsYXRtYXAKICAgICAgICAgICAgICBpZiAocmVzdWx0c1swXSB8fCByZXN1bHRzWzFdIHx8IGRhdGEuZmVhdHVyZS5oeXBlcmxpbmtzICYmIGRhdGEuZmVhdHVyZS5oeXBlcmxpbmtzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgIHRoaXMucmVzb3VyY2VGb3JUb29sdGlwID0gZGF0YS5yZXNvdXJjZVswXTsKICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcEZyb21OZXVyb25DdXJhdGlvbihkYXRhKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUsIHRoaXMpOwogICAgICB9KSk7CiAgICAgIGZ1bmN0aW9uIGNoZWNrQW5kQ3JlYXRlUG9wdXBzKF94KSB7CiAgICAgICAgcmV0dXJuIF9jaGVja0FuZENyZWF0ZVBvcHVwcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICB9CiAgICAgIHJldHVybiBjaGVja0FuZENyZWF0ZVBvcHVwczsKICAgIH0oKSwKICAgIHBvcFVwQ3NzSGFja3M6IGZ1bmN0aW9uIHBvcFVwQ3NzSGFja3MoKSB7CiAgICAgIC8vIEJlbG93IGlzIGEgaGFjayB0byByZW1vdmUgZmxhdG1hcCB0b29sdGlwcyB3aGlsZSBwb3B1cCBpcyBvcGVuCiAgICAgIHZhciBmdG9vbHRpcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mbGF0bWFwLXRvb2x0aXAtcG9wdXAiKTsKICAgICAgaWYgKGZ0b29sdGlwKSBmdG9vbHRpcC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFwbGlicmVnbC1wb3B1cC1jbG9zZS1idXR0b24iKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgdGhpcy4kcmVmcy50b29sdGlwLiRlbC5zdHlsZS5kaXNwbGF5ID0gImZsZXgiOwogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFwbGlicmVnbC1wb3B1cC1jbG9zZS1idXR0b24iKS5vbmNsaWNrID0gZnVuY3Rpb24gKCkgewogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mbGF0bWFwLXRvb2x0aXAtcG9wdXAiKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgfTsKICAgIH0sCiAgICByZXNvdXJjZVNlbGVjdGVkOiBmdW5jdGlvbiByZXNvdXJjZVNlbGVjdGVkKGFjdGlvbikgewogICAgICB0aGlzLiRlbWl0KCJyZXNvdXJjZS1zZWxlY3RlZCIsIGFjdGlvbik7CiAgICB9LAogICAgY3JlYXRlVG9vbHRpcEZyb21OZXVyb25DdXJhdGlvbjogZnVuY3Rpb24gY3JlYXRlVG9vbHRpcEZyb21OZXVyb25DdXJhdGlvbihkYXRhKSB7CiAgICAgIHRoaXMudG9vbHRpcEVudHJ5ID0gdGhpcy5mbGF0bWFwUXVlcmllcy5jcmVhdGVUb29sdGlwRGF0YShkYXRhKTsKICAgICAgdGhpcy5kaXNwbGF5VG9vbHRpcCgpOwogICAgfSwKICAgIC8vIEtlZXBpbmcgdGhpcyBhcyBhbiBBUEkKICAgIHNob3dQb3B1cDogZnVuY3Rpb24gc2hvd1BvcHVwKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucykgewogICAgICB2YXIgbXlPcHRpb25zID0gb3B0aW9uczsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgaWYgKG15T3B0aW9ucykgewogICAgICAgICAgaWYgKCFteU9wdGlvbnMuY2xhc3NOYW1lKSBteU9wdGlvbnMuY2xhc3NOYW1lID0gImN1c3RvbS1wb3B1cCI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIG15T3B0aW9ucyA9IHsKICAgICAgICAgICAgY2xhc3NOYW1lOiAiY3VzdG9tLXBvcHVwIiwKICAgICAgICAgICAgcG9zaXRpb25BdExhc3RDbGljazogdHJ1ZQogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKGZlYXR1cmVJZCwgbm9kZSwgbXlPcHRpb25zKTsKICAgICAgfQogICAgfSwKICAgIHNob3dNYXJrZXJQb3B1cDogZnVuY3Rpb24gc2hvd01hcmtlclBvcHVwKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucykgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5zaG93TWFya2VyUG9wdXAoZmVhdHVyZUlkLCBub2RlLCBvcHRpb25zKTsKICAgICAgfQogICAgfSwKICAgIGNsb3NlTWluaW1hcDogZnVuY3Rpb24gY2xvc2VNaW5pbWFwKCkgewogICAgICB2YXIgbWluaW1hcEVsID0gdGhpcy4kcmVmcy5mbGF0bWFwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5tYXBsaWJyZWdsLWN0cmwtbWluaW1hcCcpOyAvLyBmaW5kIG1pbmltYXAKICAgICAgaWYgKHRoaXMubWluaW1hcFNtYWxsKSB7CiAgICAgICAgLy9zd2l0Y2ggdGhlIGNsYXNzZXMgb24gdGhlIG1pbmltYXAKICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LmFkZCgnZW5sYXJnZScpOwogICAgICAgIG1pbmltYXBFbC5jbGFzc0xpc3QucmVtb3ZlKCdzaHJpbmsnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LmFkZCgnc2hyaW5rJyk7CiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5yZW1vdmUoJ2VubGFyZ2UnKTsKICAgICAgfQogICAgICB0aGlzLm1pbmltYXBTbWFsbCA9ICF0aGlzLm1pbmltYXBTbWFsbDsKICAgIH0sCiAgICBhZGRSZXNpemVCdXR0b25Ub01pbmltYXA6IGZ1bmN0aW9uIGFkZFJlc2l6ZUJ1dHRvblRvTWluaW1hcCgpIHsKICAgICAgdmFyIG1pbmltYXBFbCA9IHRoaXMuJHJlZnMuZmxhdG1hcENvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcubWFwbGlicmVnbC1jdHJsLW1pbmltYXAnKTsKICAgICAgaWYgKG1pbmltYXBFbCkgewogICAgICAgIHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZSk7CiAgICAgICAgbWluaW1hcEVsLmFwcGVuZENoaWxkKHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZSk7CiAgICAgICAgdGhpcy5taW5pbWFwUmVzaXplU2hvdyA9IHRydWU7CiAgICAgIH0KICAgIH0sCiAgICBzZXRIZWxwTW9kZTogZnVuY3Rpb24gc2V0SGVscE1vZGUoaGVscE1vZGUpIHsKICAgICAgaWYgKGhlbHBNb2RlKSB7CiAgICAgICAgdGhpcy5pbkhlbHAgPSB0cnVlOwogICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaXRlbS52YWx1ZSA9IHRydWU7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5vcGVuRmxhdG1hcEhlbHBQb3B1cCgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuaW5IZWxwID0gZmFsc2U7CiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5jbG9zZUZsYXRtYXBIZWxwUG9wdXAoKTsKICAgICAgfQogICAgfSwKICAgIHNob3dUb29saXRpcDogZnVuY3Rpb24gc2hvd1Rvb2xpdGlwKHRvb2x0aXBOdW1iZXIpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsKICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50b29sdGlwV2FpdFt0b29sdGlwTnVtYmVyXSk7CiAgICAgICAgdGhpcy50b29sdGlwV2FpdFt0b29sdGlwTnVtYmVyXSA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXM2LmhvdmVyVmlzaWJpbGl0aWVzW3Rvb2x0aXBOdW1iZXJdLnZhbHVlID0gdHJ1ZTsKICAgICAgICB9LCA1MDApOwogICAgICB9CiAgICB9LAogICAgaGlkZVRvb2xpdGlwOiBmdW5jdGlvbiBoaWRlVG9vbGl0aXAodG9vbHRpcE51bWJlcikgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgaWYgKCF0aGlzLmluSGVscCkgewogICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdKTsKICAgICAgICB0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczcuaG92ZXJWaXNpYmlsaXRpZXNbdG9vbHRpcE51bWJlcl0udmFsdWUgPSBmYWxzZTsKICAgICAgICB9LCA1MDApOwogICAgICB9CiAgICB9LAogICAgZGlzcGxheVRvb2x0aXA6IGZ1bmN0aW9uIGRpc3BsYXlUb29sdGlwKCkgewogICAgICB0aGlzLm1hcEltcC5zaG93UG9wdXAodGhpcy5tYXBJbXAubW9kZWxGZWF0dXJlSWRzKHRoaXMucmVzb3VyY2VGb3JUb29sdGlwKVswXSwgdGhpcy4kcmVmcy50b29sdGlwLiRlbCwgewogICAgICAgIGNsYXNzTmFtZTogImZsYXRtYXB2dWVyLXBvcG92ZXIiLAogICAgICAgIHBvc2l0aW9uQXRMYXN0Q2xpY2s6IHRydWUKICAgICAgfSk7CiAgICAgIHRoaXMucG9wVXBDc3NIYWNrcygpOwogICAgfSwKICAgIG9wZW5GbGF0bWFwSGVscFBvcHVwOiBmdW5jdGlvbiBvcGVuRmxhdG1hcEhlbHBQb3B1cCgpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdmFyIGhlYXJ0SWQgPSB0aGlzLm1hcEltcC5mZWF0dXJlSWRzRm9yTW9kZWwoIlVCRVJPTjowMDAwOTQ4IilbMF07CiAgICAgICAgdmFyIGVsbSA9ICJDbGljayBmb3IgbW9yZSBpbmZvcm1hdGlvbiI7CiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKGhlYXJ0SWQsIGVsbSwgewogICAgICAgICAgYW5jaG9yOiAidG9wIiwKICAgICAgICAgIGNsYXNzTmFtZTogImZsYXRtYXAtcG9wdXAtcG9wcGVyIgogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgY2xvc2VGbGF0bWFwSGVscFBvcHVwOiBmdW5jdGlvbiBjbG9zZUZsYXRtYXBIZWxwUG9wdXAoKSB7CiAgICAgIHRoaXMuJGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tYXBsaWJyZWdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIpLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICBpdGVtLmNsaWNrKCk7CiAgICAgIH0pOwogICAgfSwKICAgIGdldExhYmVsczogZnVuY3Rpb24gZ2V0TGFiZWxzKCkgewogICAgICB2YXIgbGFiZWxzID0gW107CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHZhciBhbm5vdGF0aW9ucyA9IHRoaXMubWFwSW1wLmFubm90YXRpb25zOwogICAgICAgIHZhciBfaXRlcmF0b3IgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlcihhbm5vdGF0aW9ucy52YWx1ZXMoKSksCiAgICAgICAgICBfc3RlcDsKICAgICAgICB0cnkgewogICAgICAgICAgZm9yIChfaXRlcmF0b3IucygpOyAhKF9zdGVwID0gX2l0ZXJhdG9yLm4oKSkuZG9uZTspIHsKICAgICAgICAgICAgdmFyIHZhbHVlID0gX3N0ZXAudmFsdWU7CiAgICAgICAgICAgIGlmICh2YWx1ZS5sYWJlbCkgbGFiZWxzLnB1c2godmFsdWUubGFiZWwpOwogICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgX2l0ZXJhdG9yLmUoZXJyKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgX2l0ZXJhdG9yLmYoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChsYWJlbHMpKTsKICAgICAgfQogICAgfSwKICAgIGdldFN0YXRlOiBmdW5jdGlvbiBnZXRTdGF0ZSgpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdmFyIHN0YXRlID0gewogICAgICAgICAgZW50cnk6IHRoaXMuZW50cnksCiAgICAgICAgICB2aWV3cG9ydDogdGhpcy5tYXBJbXAuZ2V0U3RhdGUoKQogICAgICAgIH07CiAgICAgICAgdmFyIGlkZW50aWZpZXIgPSB0aGlzLm1hcEltcC5nZXRJZGVudGlmaWVyKCk7CiAgICAgICAgaWYgKHRoaXMuYmlvbG9naWNhbFNleCkgc3RhdGVbJ2Jpb2xvZ2ljYWxTZXgnXSA9IHRoaXMuYmlvbG9naWNhbFNleDtlbHNlIGlmIChpZGVudGlmaWVyICYmIGlkZW50aWZpZXIuYmlvbG9naWNhbFNleCkgc3RhdGVbJ2Jpb2xvZ2ljYWxTZXgnXSA9IGlkZW50aWZpZXIuYmlvbG9naWNhbFNleDsKICAgICAgICBpZiAoaWRlbnRpZmllciAmJiBpZGVudGlmaWVyLnV1aWQpIHN0YXRlWyd1dWlkJ10gPSBpZGVudGlmaWVyLnV1aWQ7CiAgICAgICAgcmV0dXJuIHN0YXRlOwogICAgICB9CiAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICB9LAogICAgc2V0U3RhdGU6IGZ1bmN0aW9uIHNldFN0YXRlKHN0YXRlKSB7CiAgICAgIGlmIChzdGF0ZSkgewogICAgICAgIGlmICh0aGlzLm1hcEltcCAmJiBzdGF0ZS5lbnRyeSAmJiB0aGlzLmVudHJ5ID09IHN0YXRlLmVudHJ5ICYmICghc3RhdGUuYmlvbG9naWNhbFNleCB8fCBzdGF0ZS5iaW9sb2dpY2FsU2V4ID09PSB0aGlzLmJpb2xvZ2ljYWxTZXgpKSB7CiAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpIHsKICAgICAgICAgICAgdGhpcy5tYXBJbXAuc2V0U3RhdGUoc3RhdGUudmlld3BvcnQpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmNyZWF0ZUZsYXRtYXAoc3RhdGUpOwogICAgICAgIH0KICAgICAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsKICAgICAgfQogICAgfSwKICAgIHJlc3RvcmVNYXBTdGF0ZTogZnVuY3Rpb24gcmVzdG9yZU1hcFN0YXRlKHN0YXRlKSB7CiAgICAgIGlmIChzdGF0ZSkgewogICAgICAgIGlmIChzdGF0ZS52aWV3cG9ydCkgdGhpcy5tYXBJbXAuc2V0U3RhdGUoc3RhdGUudmlld3BvcnQpOwogICAgICAgIGlmIChzdGF0ZS5zZWFyY2hUZXJtKSB0aGlzLnNlYXJjaEFuZFNob3dSZXN1bHQoc3RhdGUuc2VhcmNoVGVybSwgdHJ1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBjcmVhdGVGbGF0bWFwOiBmdW5jdGlvbiBjcmVhdGVGbGF0bWFwKHN0YXRlKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICBpZiAoIXRoaXMubWFwSW1wICYmICF0aGlzLmxvYWRpbmcpIHsKICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICAgIHZhciBtaW5pbWFwID0gZmFsc2U7CiAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1pbmltYXApIHsKICAgICAgICAgIG1pbmltYXAgPSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiAidG9wLXJpZ2h0IgogICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIC8vQXMgZm9yIGZsYXRtYXAtdmlld2VyQDIuMi43LCBzZWUgYmVsb3cgZm9yIHRoZSBkb2N1bWVudGF0aW9uIAogICAgICAgIC8vZm9yIHRoZSBpZGVudGlmaWVyOgoKICAgICAgICAvL0BhcmcgaWRlbnRpZmllciB7c3RyaW5nfE9iamVjdH0KICAgICAgICAvLyBBIHN0cmluZyBvciBvYmplY3QgaWRlbnRpZnlpbmcgdGhlIG1hcCB0byBsb2FkLiBJZiBhIHN0cmluZyBpdHMKICAgICAgICAvLyB2YWx1ZSBjYW4gYmUgZWl0aGVyIHRoZSBtYXAncyBgYHV1aWRgYCwgYXNzaWduZWQgYXQgZ2VuZXJhdGlvbiB0aW1lLAogICAgICAgIC8vIG9yIHRheG9uIGFuZCBiaW9sb2dpY2FsIHNleCBpZGVudGlmaWVycyBvZiB0aGUgc3BlY2llcyB0aGF0IHRoZSBtYXAKICAgICAgICAvLyByZXByZXNlbnRzLiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgYSBtYXAgaXMgbG9hZGVkIHVubGVzcyBpdCBoYXMgYmVlbgogICAgICAgIC8vIGlkZW50aWZpZWQgdXNpbmcgYSBgYHV1aWRgYCAoc2VlIGJlbG93KS4KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIudGF4b24ge3N0cmluZ30gVGhlIHRheG9uIGlkZW50aWZpZXIgb2YgdGhlIHNwZWNpZXMgCiAgICAgICAgLy8gIHJlcHJlc2VudGVkIGJ5IHRoZSBtYXAuIFRoaXMgaXMgc3BlY2lmaWVkIGFzIG1ldGFkYXRhIGluIHRoZSBtYXAncyBzb3VyY2UgZmlsZS4KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIuYmlvbG9naWNhbFNleCB7c3RyaW5nfSBUaGUgYmlvbG9naWNhbCBzZXggb2YgdGhlIHNwZWNpZXMKICAgICAgICAvLyByZXByZXNlbnRlZCBieSB0aGUgbWFwLiBUaGlzIGlzIHNwZWNpZmllZCBhcyBtZXRhZGF0YWluIHRoZSBtYXAncyBzb3VyY2UgZmlsZS4KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIudXVpZCB7c3RyaW5nfSBUaGUgdW5pcXVlIHV1aWQgdGhlIGZsYXRtYXAuIElmIGdpdmVuIHRoZW4gdGhpcyBleGFjdCBtYXAgd2lsbAogICAgICAgIC8vICBiZSBsb2FkZWQsIG92ZXJyaWRpbmcgYGB0YXhvbmBgIGFuZCBgYGJpb2xvZ2ljYWxTZXhgYC4KCiAgICAgICAgdmFyIGlkZW50aWZpZXIgPSB7CiAgICAgICAgICB0YXhvbjogdGhpcy5lbnRyeQogICAgICAgIH07CiAgICAgICAgLy9UaGlzIG5vdyBoYW5kbGUgdGhlIHVzZXMgb2YgdXVpZCB3aGVuIHJlc3VtaW5nIHN0YXRlcwogICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgaWYgKHN0YXRlLnV1aWQpIHsKICAgICAgICAgICAgaWRlbnRpZmllciA9IHsKICAgICAgICAgICAgICB1dWlkOiBzdGF0ZS51dWlkCiAgICAgICAgICAgIH07CiAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmVudHJ5KSB7CiAgICAgICAgICAgIGlkZW50aWZpZXIudGF4b24gPSBzdGF0ZS5lbnRyeTsKICAgICAgICAgICAgaWYgKHN0YXRlLmJpb2xvZ2ljYWxTZXgpIHsKICAgICAgICAgICAgICBpZGVudGlmaWVyWyJiaW9sb2dpY2FsU2V4Il0gPSBzdGF0ZS5iaW9sb2dpY2FsU2V4OwogICAgICAgICAgICB9IGVsc2UgaWYgKGlkZW50aWZpZXIudGF4b24gPT09ICJOQ0JJVGF4b246OTYwNiIpIHsKICAgICAgICAgICAgICAvL0ZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CiAgICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0gIlBBVE86MDAwMDM4NCI7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgLy8gU2V0IHRoZSBiaW9sb2ljYWxTZXggbm93IGlmIG1hcCBpcyBub3QgcmVzdW1lZCBmcm9tCiAgICAgICAgICAvLyBhIHNhdmVkIHN0YXRlCiAgICAgICAgICBpZiAodGhpcy5iaW9sb2dpY2FsU2V4KSB7CiAgICAgICAgICAgIGlkZW50aWZpZXJbImJpb2xvZ2ljYWxTZXgiXSA9IHRoaXMuYmlvbG9naWNhbFNleDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdmFyIHByb21pc2UxID0gdGhpcy5tYXBNYW5hZ2VyLmxvYWRNYXAoaWRlbnRpZmllciwgdGhpcy4kcmVmcy5kaXNwbGF5LCB0aGlzLmV2ZW50Q2FsbGJhY2soKSwgewogICAgICAgICAgLy9mdWxsc2NyZWVuQ29udHJvbDogZmFsc2UsCiAgICAgICAgICAvL2Fubm90YXRhYmxlOiBmYWxzZSwKICAgICAgICAgIC8vZGVidWc6IHRydWUsCiAgICAgICAgICBmZWF0dXJlSW5mbzogdGhpcy5mZWF0dXJlSW5mbywKICAgICAgICAgICJtaW4tem9vbSI6IHRoaXMubWluWm9vbSwKICAgICAgICAgIGxheWVyQ29udHJvbDogdHJ1ZSwKICAgICAgICAgIHBhdGhDb250cm9sczogdHJ1ZSwKICAgICAgICAgIHNlYXJjaGFibGU6IHRoaXMuc2VhcmNoYWJsZSwKICAgICAgICAgIHRvb2x0aXBzOiB0aGlzLnRvb2x0aXBzLAogICAgICAgICAgbWluaW1hcDogbWluaW1hcAogICAgICAgIH0pOwogICAgICAgIHByb21pc2UxLnRoZW4oZnVuY3Rpb24gKHJldHVybmVkT2JqZWN0KSB7CiAgICAgICAgICBfdGhpczgubWFwSW1wID0gcmV0dXJuZWRPYmplY3Q7CiAgICAgICAgICBfdGhpczgub25GbGF0bWFwUmVhZHkoKTsKICAgICAgICAgIGlmIChfdGhpczguX3N0YXRlVG9CZVNldCkgX3RoaXM4LnJlc3RvcmVNYXBTdGF0ZShfdGhpczguX3N0YXRlVG9CZVNldCk7ZWxzZSB7CiAgICAgICAgICAgIF90aGlzOC5yZXN0b3JlTWFwU3RhdGUoc3RhdGUpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgaWYgKHN0YXRlKSB7CiAgICAgICAgdGhpcy5fc3RhdGVUb0JlU2V0ID0gewogICAgICAgICAgdmlld3BvcnQ6IHN0YXRlLnZpZXdwb3J0LAogICAgICAgICAgc2VhcmNoVGVybTogc3RhdGUuc2VhcmNoVGVybQogICAgICAgIH07CiAgICAgICAgaWYgKHRoaXMubWFwSW1wICYmICF0aGlzLmxvYWRpbmcpIHRoaXMucmVzdG9yZU1hcFN0YXRlKHRoaXMuX3N0YXRlVG9CZVNldCk7CiAgICAgIH0KICAgIH0sCiAgICBjb21wdXRlUGF0aENvbnRyb2xzTWF4aW11bUhlaWdodDogZnVuY3Rpb24gY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKSB7CiAgICAgIHZhciBlbGVtID0gdGhpcy4kcmVmcy5kaXNwbGF5OwogICAgICBpZiAoZWxlbSkgewogICAgICAgIHZhciBjb21wdXRlZCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbSk7CiAgICAgICAgdmFyIHBhZGRpbmcgPSBwYXJzZUludChjb21wdXRlZC5wYWRkaW5nVG9wKSArIHBhcnNlSW50KGNvbXB1dGVkLnBhZGRpbmdCb3R0b20pOwogICAgICAgIHZhciBoZWlnaHQgPSBlbGVtLmNsaWVudEhlaWdodCAtIHBhZGRpbmc7CiAgICAgICAgdGhpcy5wYXRod2F5c01heEhlaWdodCA9IGhlaWdodCAtIDE3MDsKICAgICAgfQogICAgfSwKICAgIG1hcFJlc2l6ZTogZnVuY3Rpb24gbWFwUmVzaXplKCkgewogICAgICB0cnkgewogICAgICAgIHRoaXMuY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKTsKICAgICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICAgIHRoaXMubWFwSW1wLnJlc2l6ZSgpOwogICAgICAgICAgdGhpcy5zaG93TWluaW1hcCh0aGlzLmRpc3BsYXlNaW5pbWFwKTsKICAgICAgICAgIGlmICh0aGlzLm1hcEltcC5fbWluaW1hcCkgewogICAgICAgICAgICB0aGlzLm1hcEltcC5fbWluaW1hcC5yZXNpemUoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKF91bnVzZWQpIHsKICAgICAgICBjb25zb2xlLmVycm9yKCJNYXAgcmVzaXplIGVycm9yIik7CiAgICAgIH0KICAgIH0sCiAgICBvbkZsYXRtYXBSZWFkeTogZnVuY3Rpb24gb25GbGF0bWFwUmVhZHkoKSB7CiAgICAgIC8vIG9uRmxhdG1hcFJlYWR5IGlzIHVzZWQgZm9yIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gcnVuIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBmbGF0bWFwIGlzIGxvYWRlZAogICAgICB0aGlzLnNlbnNvciA9IG5ldyBSZXNpemVTZW5zb3IodGhpcy4kcmVmcy5kaXNwbGF5LCB0aGlzLm1hcFJlc2l6ZSk7CiAgICAgIGlmICh0aGlzLm1hcEltcC5vcHRpb25zICYmIHRoaXMubWFwSW1wLm9wdGlvbnMuc3R5bGUgPT09ICJmdW5jdGlvbmFsIikgewogICAgICAgIHRoaXMuaXNGQyA9IHRydWU7CiAgICAgIH0KICAgICAgdGhpcy5tYXBJbXAuc2V0QmFja2dyb3VuZE9wYWNpdHkoMSk7CiAgICAgIHRoaXMuYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrKHRoaXMuY3VycmVudEJhY2tncm91bmQpOwogICAgICB0aGlzLnBhdGh3YXlzID0gdGhpcy5tYXBJbXAucGF0aFR5cGVzKCk7CiAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUNlbnRyZWxpbmVzKGZhbHNlKTsKICAgICAgLy9EaXNhYmxlIGxheWVycyBmb3Igbm93CiAgICAgIC8vdGhpcy5sYXllcnMgPSB0aGlzLm1hcEltcC5nZXRMYXllcnMoKTsKICAgICAgdGhpcy5zeXN0ZW1zID0gdGhpcy5tYXBJbXAuZ2V0U3lzdGVtcygpOwogICAgICB0aGlzLmFkZFJlc2l6ZUJ1dHRvblRvTWluaW1hcCgpOwogICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy5jb21wdXRlUGF0aENvbnRyb2xzTWF4aW11bUhlaWdodCgpOwogICAgICB0aGlzLmRyYXdlck9wZW4gPSB0cnVlOwogICAgICB0aGlzLm1hcFJlc2l6ZSgpOwogICAgICB0aGlzLiRlbWl0KCJyZWFkeSIsIHRoaXMpOwogICAgfSwKICAgIHNob3dNaW5pbWFwOiBmdW5jdGlvbiBzaG93TWluaW1hcChmbGFnKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgdGhpcy5tYXBJbXAuc2hvd01pbmltYXAoZmxhZyk7CiAgICB9LAogICAgc2hvd1BhdGh3YXlzRHJhd2VyOiBmdW5jdGlvbiBzaG93UGF0aHdheXNEcmF3ZXIoZmxhZykgewogICAgICB0aGlzLmRyYXdlck9wZW4gPSBmbGFnOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gZGlzcGxheSBmZWF0dXJlcyB3aXRoIGFubm90YXRpb24gbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIHRlcm0sCiAgICAgKiB3aXRoIHRoZSBvcHRpb24gdG8gZGlzcGxheSB0aGUgbGFiZWwgdXNpbmcgZGlzcGxheUxhYmVsIGZsYWcuIAogICAgICovCiAgICBzZWFyY2hBbmRTaG93UmVzdWx0OiBmdW5jdGlvbiBzZWFyY2hBbmRTaG93UmVzdWx0KHRlcm0sIGRpc3BsYXlMYWJlbCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBpZiAodGVybSA9PT0gdW5kZWZpbmVkIHx8IHRlcm0gPT09ICIiKSB7CiAgICAgICAgICB0aGlzLm1hcEltcC5jbGVhclNlYXJjaFJlc3VsdHMoKTsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2YXIgc2VhcmNoUmVzdWx0cyA9IHRoaXMubWFwSW1wLnNlYXJjaCh0ZXJtKTsKICAgICAgICAgIGlmIChzZWFyY2hSZXN1bHRzICYmIHNlYXJjaFJlc3VsdHMucmVzdWx0cyAmJiBzZWFyY2hSZXN1bHRzLnJlc3VsdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0aGlzLm1hcEltcC5zaG93U2VhcmNoUmVzdWx0cyhzZWFyY2hSZXN1bHRzKTsKICAgICAgICAgICAgaWYgKGRpc3BsYXlMYWJlbCAmJiBzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0uZmVhdHVyZUlkICYmIHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS50ZXh0KSB7CiAgICAgICAgICAgICAgdmFyIGFubm90YXRpb24gPSB0aGlzLm1hcEltcC5hbm5vdGF0aW9uKHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS5mZWF0dXJlSWQpOwogICAgICAgICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cChzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0uZmVhdHVyZUlkLCBhbm5vdGF0aW9uLmxhYmVsLCB7CiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjdXN0b20tcG9wdXAiLAogICAgICAgICAgICAgICAgcG9zaXRpb25BdExhc3RDbGljazogZmFsc2UsCiAgICAgICAgICAgICAgICBwcmVzZXJ2ZVNlbGVjdGlvbjogdHJ1ZQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfSBlbHNlIHRoaXMubWFwSW1wLmNsZWFyU2VhcmNoUmVzdWx0cygpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgLyoqCiAgICAgKiBHZXQgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGVkIHRlcm1zCiAgICAgKi8KICAgIHNlYXJjaFN1Z2dlc3Rpb25zOiBmdW5jdGlvbiBzZWFyY2hTdWdnZXN0aW9ucyh0ZXJtKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgcmV0dXJuIHRoaXMubWFwSW1wLnNlYXJjaCh0ZXJtKTsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0sCiAgcHJvcHM6IHsKICAgIGVudHJ5OiBTdHJpbmcsCiAgICBiaW9sb2dpY2FsU2V4OiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIiIKICAgIH0sCiAgICBmZWF0dXJlSW5mbzogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIG1pblpvb206IHsKICAgICAgdHlwZTogTnVtYmVyLAogICAgICBkZWZhdWx0OiA0CiAgICB9LAogICAgcGF0aENvbnRyb2xzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgc2VhcmNoYWJsZTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIGxheWVyQ29udHJvbDogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIHRvb2x0aXBzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICBoZWxwTW9kZTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIHJlbmRlckF0TW91bnRlZDogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgZGlzcGxheU1pbmltYXA6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBkaXNwbGF5V2FybmluZzogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIGlzTGVnYWN5OiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgZGlzcGxheUxhdGVzdENoYW5nZXM6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBsYXRlc3RDaGFuZ2VzTWVzc2FnZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJTZWFyY2ggbm93IHByb3ZpZGUgc3VnZ2VzdGVkIHRlcm1zLiBBZGQgbmV3IGxlZ2VuZHMuIE5ldyB0aWxlc2V0cy4gTmV3IGZlbWFsZSBtYXAuIEltcHJvdmUgdXBzdHJlYW0gZG93bnN0cmVhbSBpbmZvcm1hdGlvbi4iCiAgICB9LAogICAgLyoqCiAgICAgKiBTdGF0ZSBjb250YWluaW5nIHN0YXRlIG9mIHRoZSBmbGF0bWFwLgogICAgICovCiAgICBzdGF0ZTogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZAogICAgfSwKICAgIC8qKgogICAgICogU3BlY2lmeSB0aGUgZW5kcG9pbnQgb2YgdGhlIGZsYXRtYXAgc2VydmVyLgogICAgICovCiAgICBmbGF0bWFwQVBJOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogImh0dHBzOi8vbWFwY29yZS1kZW1vLm9yZy9jdXJyZW50L2ZsYXRtYXAvdjMvIgogICAgfSwKICAgIHNwYXJjQVBJOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogImh0dHBzOi8vYXBpLnNwYXJjLnNjaWVuY2UvIgogICAgfQogIH0sCiAgcHJvdmlkZTogZnVuY3Rpb24gcHJvdmlkZSgpIHsKICAgIHJldHVybiB7CiAgICAgIHNwYXJjQVBJOiB0aGlzLnNwYXJjQVBJLAogICAgICBmbGF0bWFwQVBJOiB0aGlzLmZsYXRtYXBBUEkKICAgIH07CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgbGF5ZXJzOiBbXSwKICAgICAgcGF0aHdheXM6IFtdLAogICAgICBzY2thbkRpc3BsYXk6IFt7CiAgICAgICAgbGFiZWw6ICJEaXNwbGF5IFBhdGggd2l0aCBTQ0tBTiIsCiAgICAgICAga2V5OiAiVkFMSUQiCiAgICAgIH1dLAogICAgICBjZW50cmVMaW5lczogW3sKICAgICAgICBsYWJlbDogIkRpc3BsYXkgTmVydmVzIiwKICAgICAgICBrZXk6ICJjZW50cmVsaW5lcyIsCiAgICAgICAgZW5hYmxlZDogZmFsc2UKICAgICAgfV0sCiAgICAgIHN5c3RlbXM6IFtdLAogICAgICBwYXRod2F5c01heEhlaWdodDogMTAwMCwKICAgICAgaG92ZXJWaXNpYmlsaXRpZXM6IFt7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfV0sCiAgICAgIGlzRkM6IGZhbHNlLAogICAgICBpbkhlbHA6IGZhbHNlLAogICAgICBjdXJyZW50QmFja2dyb3VuZDogIndoaXRlIiwKICAgICAgYXZhaWxhYmxlQmFja2dyb3VuZDogWyJ3aGl0ZSIsICJsaWdodHNreWJsdWUiLCAiYmxhY2siXSwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIGZsYXRtYXBNYXJrZXI6IGZsYXRtYXBNYXJrZXIsCiAgICAgIHRvb2x0aXBFbnRyeTogY3JlYXRlVW5maWxsZWRUb29sdGlwRGF0YSgpLAogICAgICBjb25uZWN0aXZpdHlUb29sdGlwVmlzaWJsZTogZmFsc2UsCiAgICAgIHJlc291cmNlRm9yVG9vbHRpcDogdW5kZWZpbmVkLAogICAgICBkcmF3ZXJPcGVuOiBmYWxzZSwKICAgICAgY29sb3VyUmFkaW86IHRydWUsCiAgICAgIG91dGxpbmVzUmFkaW86IHRydWUsCiAgICAgIG1pbmltYXBSZXNpemVTaG93OiBmYWxzZSwKICAgICAgbWluaW1hcFNtYWxsOiBmYWxzZQogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICBlbnRyeTogZnVuY3Rpb24gZW50cnkoKSB7CiAgICAgIGlmICghdGhpcy5zdGF0ZSkgdGhpcy5jcmVhdGVGbGF0bWFwKCk7CiAgICB9LAogICAgaGVscE1vZGU6IGZ1bmN0aW9uIGhlbHBNb2RlKHZhbCkgewogICAgICB0aGlzLnNldEhlbHBNb2RlKHZhbCk7CiAgICB9LAogICAgc3RhdGU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihzdGF0ZSkgewogICAgICAgIGlmICh0aGlzLm1hcE1hbmFnZXIpIHsKICAgICAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvL3RoaXMgY29tcG9uZW50IGhhcyBub3QgYmVlbiBtb3VudGVkIHlldAogICAgICAgICAgdGhpcy5zZXRTdGF0ZVJlcXVpcmVkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGltbWVkaWF0ZTogdHJ1ZSwKICAgICAgZGVlcDogdHJ1ZQogICAgfQogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBmbGF0bWFwID0gcmVxdWlyZSgiQGFiaS1zb2Z0d2FyZS9mbGF0bWFwLXZpZXdlciIpOwogICAgdGhpcy50b29sdGlwV2FpdCA9IFtdOwogICAgdGhpcy50b29sdGlwV2FpdC5sZW5ndGggPSB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzLmxlbmd0aDsKICAgIHRoaXMubWFwTWFuYWdlciA9IG5ldyBmbGF0bWFwLk1hcE1hbmFnZXIodGhpcy5mbGF0bWFwQVBJKTsKICAgIHRoaXMuZmxhdG1hcFF1ZXJpZXMgPSBuZXcgRmxhdG1hcFF1ZXJpZXMoKTsKICAgIHRoaXMuZmxhdG1hcFF1ZXJpZXMuaW5pdGlhbGlzZSh0aGlzLmZsYXRtYXBBUEkpOwogICAgaWYgKHRoaXMuc3RhdGUpIHsKICAgICAgLy9TdGF0ZSBpcyBzZXQgYW5kIHJlcXVpcmUgdG8gc2V0IHRoZSBzdGF0ZQogICAgICBpZiAodGhpcy5zZXRTdGF0ZVJlcXVpcmVkKSB7CiAgICAgICAgdGhpcy5zZXRTdGF0ZSh0aGlzLnN0YXRlKTsKICAgICAgfQogICAgfSBlbHNlIGlmICh0aGlzLnJlbmRlckF0TW91bnRlZCkgewogICAgICB0aGlzLmNyZWF0ZUZsYXRtYXAoKTsKICAgIH0KICB9Cn07"},{"version":3,"names":["Vue","Tooltip","SelectionsGroup","MapSvgIcon","MapSvgSpriteColor","SvgLegends","lang","locale","flatmapMarker","FlatmapQueries","use","_Col","_Loading","directive","_Radio","_RadioGroup","_Row","ResizeSensor","require","createUnfilledTooltipData","destinations","origins","components","destinationsWithDatasets","originsWithDatasets","componentsWithDatasets","resource","undefined","name","beforeCreate","mapManager","mapImp","setStateRequired","methods","viewLatestMap","biologicalSex","entry","state","viewport","getState","$emit","backgroundChangeCallback","colour","currentBackground","setBackgroundColour","toggleDrawer","drawerOpen","setColour","flag","colourRadio","outline","outlinesRadio","setOutlines","outlineRadio","resetView","resetMap","$refs","centrelinesSelection","reset","skcanSelection","layersSelection","systemsSelection","pathwaysSelection","zoomIn","zoomOut","centreLinesSelected","payload","enableCentrelines","value","sckanSelected","enableSckanPath","key","checkAllSCKAN","_this","keys","forEach","systemSelected","enableSystem","checkAllSystems","_this2","layersSelected","enableLayer","checkAllLayers","_this3","pathwaysSelected","enablePath","checkAllPathways","_this4","enablePanZoomEvents","eventCallback","_this5","eventType","data","label","models","taxonomy","_len","arguments","length","args","Array","_key","dataset","feature","userData","type","checkAndCreatePopups","_checkAndCreatePopups","_asyncToGenerator","_regeneratorRuntime","mark","_callee","results","wrap","_callee$","_context","prev","next","flatmapQueries","retrieveFlatmapKnowledgeForEvent","sent","hyperlinks","resourceForTooltip","createTooltipFromNeuronCuration","stop","_x","apply","popUpCssHacks","ftooltip","document","querySelector","style","display","tooltip","$el","onclick","resourceSelected","action","tooltipEntry","createTooltipData","displayTooltip","showPopup","featureId","node","options","myOptions","className","positionAtLastClick","showMarkerPopup","closeMinimap","minimapEl","flatmapContainer","minimapSmall","classList","add","remove","addResizeButtonToMinimap","minimapResize","parentNode","removeChild","appendChild","minimapResizeShow","setHelpMode","helpMode","inHelp","hoverVisibilities","item","openFlatmapHelpPopup","closeFlatmapHelpPopup","showToolitip","tooltipNumber","_this6","clearTimeout","tooltipWait","setTimeout","hideToolitip","_this7","modelFeatureIds","heartId","featureIdsForModel","elm","anchor","querySelectorAll","click","getLabels","labels","annotations","_iterator","_createForOfIteratorHelper","values","_step","s","n","done","push","err","e","f","from","Set","identifier","getIdentifier","uuid","setState","createFlatmap","restoreMapState","searchTerm","searchAndShowResult","_this8","loading","minimap","displayMinimap","position","taxon","promise1","loadMap","featureInfo","minZoom","layerControl","pathControls","searchable","tooltips","then","returnedObject","onFlatmapReady","_stateToBeSet","computePathControlsMaximumHeight","elem","computed","getComputedStyle","padding","parseInt","paddingTop","paddingBottom","height","clientHeight","pathwaysMaxHeight","mapResize","resize","showMinimap","_minimap","_unused","console","error","sensor","isFC","setBackgroundOpacity","pathways","pathTypes","systems","getSystems","showPathwaysDrawer","term","displayLabel","clearSearchResults","searchResults","search","showSearchResults","text","annotation","preserveSelection","searchSuggestions","props","String","default","Boolean","Number","renderAtMounted","displayWarning","isLegacy","displayLatestChanges","latestChangesMessage","Object","flatmapAPI","sparcAPI","provide","layers","sckanDisplay","centreLines","enabled","availableBackground","connectivityTooltipVisible","watch","val","handler","immediate","deep","mounted","flatmap","MapManager","initialise"],"sources":["node_modules/@abi-software/flatmapvuer/src/components/FlatmapVuer.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"mappings":"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"}]}