{"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/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/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:DQovKiBlc2xpbnQtZGlzYWJsZSBuby1hbGVydCwgbm8tY29uc29sZSAqLw0KaW1wb3J0IFZ1ZSBmcm9tICJ2dWUiOw0KaW1wb3J0IFRvb2x0aXAgZnJvbSAiLi9Ub29sdGlwIjsNCmltcG9ydCBTZWxlY3Rpb25zR3JvdXAgZnJvbSAiLi9TZWxlY3Rpb25zR3JvdXAiOw0KaW1wb3J0IFRyZWVDb250cm9scyBmcm9tICIuL1RyZWVDb250cm9scyI7DQppbXBvcnQgeyBNYXBTdmdJY29uLCBNYXBTdmdTcHJpdGVDb2xvciB9IGZyb20gIkBhYmktc29mdHdhcmUvc3ZnLXNwcml0ZSI7DQppbXBvcnQgU3ZnTGVnZW5kcyBmcm9tICIuL2xlZ2VuZHMvU3ZnTGVnZW5kcyI7DQppbXBvcnQgew0KICBCdXR0b24sDQogIENvbCwNCiAgTG9hZGluZywNCiAgUmFkaW8sDQogIFJhZGlvR3JvdXAsDQogIFJvdw0KfSBmcm9tICJlbGVtZW50LXVpIjsNCmltcG9ydCBsYW5nIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZS9sYW5nL2VuIjsNCmltcG9ydCBsb2NhbGUgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlIjsNCmltcG9ydCBmbGF0bWFwTWFya2VyIGZyb20gIi4uL2ljb25zL2ZsYXRtYXAtbWFya2VyIjsNCmltcG9ydCB7RmxhdG1hcFF1ZXJpZXMsIGZpbmRUYXhvbm9teUxhYmVsfSBmcm9tICIuLi9zZXJ2aWNlcy9mbGF0bWFwUXVlcmllcy5qcyI7DQoNCmxvY2FsZS51c2UobGFuZyk7DQpWdWUudXNlKEJ1dHRvbik7DQpWdWUudXNlKENvbCk7DQpWdWUudXNlKExvYWRpbmcuZGlyZWN0aXZlKTsNClZ1ZS51c2UoUmFkaW8pOw0KVnVlLnVzZShSYWRpb0dyb3VwKTsNClZ1ZS51c2UoUm93KTsNCmNvbnN0IFJlc2l6ZVNlbnNvciA9IHJlcXVpcmUoImNzcy1lbGVtZW50LXF1ZXJpZXMvc3JjL1Jlc2l6ZVNlbnNvciIpOw0KDQpjb25zdCBwcm9jZXNzVGF4b24gPSAoZmxhdG1hcEFQSSwgdGF4b25JZGVudGlmaWVycykgPT4gew0KICBsZXQgcHJvY2Vzc2VkID0gW107DQogIHRheG9uSWRlbnRpZmllcnMuZm9yRWFjaCh0YXhvbiA9PiB7DQogICAgZmluZFRheG9ub215TGFiZWwoZmxhdG1hcEFQSSwgdGF4b24pLnRoZW4odmFsdWUgPT4gew0KICAgICAgY29uc3QgaXRlbSA9IHsgdGF4b24sIGxhYmVsOiB2YWx1ZX07DQogICAgICBwcm9jZXNzZWQucHVzaChpdGVtKTsNCiAgICB9KTsNCiAgfSk7DQoNCiAgcmV0dXJuIHByb2Nlc3NlZDsNCn0NCg0KY29uc3QgcHJvY2Vzc0ZUVXMgPSAocGFyZW50LCBrZXkpID0+IHsNCiAgY29uc3QgZnR1cyA9IFtdOw0KICBsZXQgaXRlbXMgPSBwYXJlbnQub3JnYW5zID8gcGFyZW50Lm9yZ2FucyA6IHBhcmVudC5mdHVzOw0KICBjb25zdCBjaGlsZHJlbiA9IGl0ZW1zID8gaXRlbXMuZmlsdGVyKA0KICAgIChvYmosIGluZGV4KSA9Pg0KICAgICAgaXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmxhYmVsID09PSBvYmoubGFiZWwpID09PSBpbmRleA0KICAgICkgOiB1bmRlZmluZWQNCiAgaWYgKGNoaWxkcmVuKSB7DQogICAgY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7DQogICAgICBjb25zdCBkYXRhID0gew0KICAgICAgICBsYWJlbDogY2hpbGQubGFiZWwsDQogICAgICAgIG1vZGVsczogY2hpbGQubW9kZWxzLA0KICAgICAgICBrZXk6IGAke2tleX0uJHtjaGlsZC5sYWJlbH1gLA0KICAgICAgfTsNCiAgICAgIGNvbnN0IGdyYW5kQ2hpbGRyZW4gPSBwcm9jZXNzRlRVcyhjaGlsZCwgZGF0YS5rZXkpOw0KICAgICAgaWYgKGdyYW5kQ2hpbGRyZW4ubGVuZ3RoID4gMCkgew0KICAgICAgICBkYXRhLmNoaWxkcmVuID0gZ3JhbmRDaGlsZHJlbjsNCiAgICAgIH0NCiAgICAgIGZ0dXMucHVzaChkYXRhKTsNCiAgICB9KQ0KICB9DQogIHJldHVybiBmdHVzOw0KfQ0KDQpjb25zdCBwcm9jZXNzU3lzdGVtcyA9IHN5c3RlbXMgPT4gew0KICBjb25zdCBhbGxTeXN0ZW1zID0gW107DQogIGlmIChzeXN0ZW1zICYmIHN5c3RlbXMubGVuZ3RoID4gMCkgew0KICAgIGNvbnN0IGRhdGEgPSB7IGxhYmVsOiAiQWxsIiwga2V5OiAiQWxsIiwgY2hpbGRyZW46IFtdIH07DQogICAgc3lzdGVtcy5mb3JFYWNoKHN5c3RlbSA9PiB7DQogICAgICBjb25zdCBjaGlsZCA9IHsNCiAgICAgICAgY29sb3VyOiBzeXN0ZW0uY29sb3VyLA0KICAgICAgICBlbmFibGVkOiBzeXN0ZW0uZW5hYmxlZCwNCiAgICAgICAgbGFiZWw6IHN5c3RlbS5pZCwNCiAgICAgICAga2V5OiBzeXN0ZW0uaWQsDQogICAgICB9Ow0KICAgICAgY29uc3QgY2hpbGRyZW4gPSBwcm9jZXNzRlRVcyhzeXN0ZW0sIGNoaWxkLmtleSk7DQogICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkNCiAgICAgICAgY2hpbGQuY2hpbGRyZW4gPSBjaGlsZHJlbjsNCiAgICAgIGRhdGEuY2hpbGRyZW4ucHVzaChjaGlsZCk7DQogICAgfSk7DQoNCiAgICBhbGxTeXN0ZW1zLnB1c2goZGF0YSk7DQogIH0NCiAgDQogIHJldHVybiBhbGxTeXN0ZW1zOw0KfQ0KDQpjb25zdCBjcmVhdGVVbmZpbGxlZFRvb2x0aXBEYXRhID0gZnVuY3Rpb24gKCl7DQogIHJldHVybiB7DQogICAgZGVzdGluYXRpb25zOiBbXSwNCiAgICBvcmlnaW5zOiBbXSwNCiAgICBjb21wb25lbnRzOiBbXSwNCiAgICBkZXN0aW5hdGlvbnNXaXRoRGF0YXNldHM6IFtdLA0KICAgIG9yaWdpbnNXaXRoRGF0YXNldHM6IFtdLA0KICAgIGNvbXBvbmVudHNXaXRoRGF0YXNldHM6IFtdLA0KICAgIHJlc291cmNlOiB1bmRlZmluZWQNCiAgfQ0KfQ0KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICJGbGF0bWFwVnVlciIsDQogIGNvbXBvbmVudHM6IHsNCiAgICBNYXBTdmdJY29uLA0KICAgIE1hcFN2Z1Nwcml0ZUNvbG9yLA0KICAgIFRvb2x0aXAsDQogICAgVHJlZUNvbnRyb2xzLA0KICAgIFNlbGVjdGlvbnNHcm91cCwNCiAgICBTdmdMZWdlbmRzDQogIH0sDQogIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24oKSB7DQogICAgdGhpcy5tYXBNYW5hZ2VyID0gdW5kZWZpbmVkOw0KICAgIHRoaXMubWFwSW1wID0gdW5kZWZpbmVkOw0KICAgIC8vVGhlIHN0YXRlIHdhdGNoZXIgbWF5IHRyaWdnZXJlZCBiZWZvcmUNCiAgICAvL2NyZWF0ZWQgY2F1c2luZyBpc3N1ZSwgVGhpcyBmbGFnIHdpbGwNCiAgICAvL3Jlc29sdmUgdGhpcyBpc3N1ZS4NCiAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIHZpZXdMYXRlc3RNYXA6IGZ1bmN0aW9uKCkgew0KICAgICAgbGV0IGJpb2xvZ2ljYWxTZXggPSB0aGlzLmJpb2xvZ2ljYWxTZXggPyB0aGlzLmJpb2xvZ2ljYWxTZXggOiB1bmRlZmluZWQ7DQogICAgICAvL0h1bWFuIHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcNCiAgICAgIGlmICh0aGlzLmVudHJ5ID09PSAiTkNCSVRheG9uOjk2MDYiKSB7DQogICAgICAgIGJpb2xvZ2ljYWxTZXggPSAiUEFUTzowMDAwMzg0IjsNCiAgICAgIH0NCiAgICAgIGNvbnN0IHN0YXRlID0gew0KICAgICAgICBlbnRyeTogdGhpcy5lbnRyeSwNCiAgICAgICAgYmlvbG9naWNhbFNleCwNCiAgICAgICAgdmlld3BvcnQ6IHRoaXMubWFwSW1wLmdldFN0YXRlKCkNCiAgICAgIH07DQogICAgICB0aGlzLiRlbWl0KCJ2aWV3LWxhdGVzdC1tYXAiLCBzdGF0ZSk7DQogICAgfSwNCiAgICBiYWNrZ3JvdW5kQ2hhbmdlQ2FsbGJhY2s6IGZ1bmN0aW9uKGNvbG91cikgew0KICAgICAgdGhpcy5jdXJyZW50QmFja2dyb3VuZCA9IGNvbG91cjsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5zZXRCYWNrZ3JvdW5kQ29sb3VyKHRoaXMuY3VycmVudEJhY2tncm91bmQsIDEpOw0KICAgICAgfQ0KICAgIH0sDQogICAgdG9nZ2xlRHJhd2VyOiBmdW5jdGlvbigpIHsNCiAgICAgIHRoaXMuZHJhd2VyT3BlbiA9ICF0aGlzLmRyYXdlck9wZW47DQogICAgfSwNCiAgICAvKioNCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgY29sb3VyL2dyZXlzY2FsZSBvZiBvcmdhbnMuDQogICAgICovDQogICAgc2V0Q29sb3VyOiBmdW5jdGlvbihmbGFnKSB7DQogICAgICB0aGlzLmNvbG91clJhZGlvID0gZmxhZzsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5zZXRDb2xvdXIoeyBjb2xvdXI6IGZsYWcsIG91dGxpbmU6IHRoaXMub3V0bGluZXNSYWRpbyB9KTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHRvIHRvZ2dsZSBvdXRsaW5lcyBmIG9yZ2Fucy4NCiAgICAgKi8NCiAgICBzZXRPdXRsaW5lczogZnVuY3Rpb24oZmxhZykgew0KICAgICAgdGhpcy5vdXRsaW5lUmFkaW8gPSBmbGFnOw0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnNldENvbG91cih7IGNvbG91cjogdGhpcy5jb2xvdXJSYWRpbywgb3V0bGluZTogZmxhZyB9KTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHRvIHRvZ2dsZSBwYXRocyB0byBkZWZhdWx0Lg0KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuDQogICAgICovDQogICAgcmVzZXRWaWV3OiBmdW5jdGlvbigpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5yZXNldE1hcCgpOw0KICAgICAgICBpZiAodGhpcy4kcmVmcy5jZW50cmVsaW5lc1NlbGVjdGlvbikgew0KICAgICAgICAgIHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24ucmVzZXQoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy4kcmVmcy5za2NhblNlbGVjdGlvbikgew0KICAgICAgICAgIHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24ucmVzZXQoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy4kcmVmcy5sYXllcnNTZWxlY3Rpb24pIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLmxheWVyc1NlbGVjdGlvbi5yZXNldCgpOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLiRyZWZzLnN5c3RlbXNTZWxlY3Rpb24pIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMuJHJlZnMucGF0aHdheXNTZWxlY3Rpb24pIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gaW4uDQogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4NCiAgICAgKi8NCiAgICB6b29tSW46IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnpvb21JbigpOw0KICAgICAgfQ0KICAgIH0sDQogICAgLyoqDQogICAgICogRnVuY3Rpb24gdG8gem9vbSBvdXQuDQogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4NCiAgICAgKi8NCiAgICB6b29tT3V0OiBmdW5jdGlvbigpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC56b29tT3V0KCk7DQogICAgICB9DQogICAgfSwNCiAgICBjZW50cmVMaW5lc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlQ2VudHJlbGluZXMocGF5bG9hZC52YWx1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBzY2thblNlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlU2NrYW5QYXRoKHBheWxvYWQua2V5LCBwYXlsb2FkLnZhbHVlKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGNoZWNrQWxsU0NLQU46IGZ1bmN0aW9uKHBheWxvYWQpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICBwYXlsb2FkLmtleXMuZm9yRWFjaChrZXkgPT4gdGhpcy5tYXBJbXAuZW5hYmxlU2NrYW5QYXRoKGtleSwgcGF5bG9hZC52YWx1ZSkpOw0KICAgICAgfQ0KICAgIH0sDQogICAgc3lzdGVtU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVTeXN0ZW0ocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOw0KICAgICAgfQ0KICAgIH0sDQogICAgY2hlY2tBbGxTeXN0ZW1zOiBmdW5jdGlvbihmbGFnKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5zeXN0ZW1zWzBdLmNoaWxkcmVuLmZvckVhY2goa2V5ID0+IHRoaXMubWFwSW1wLmVuYWJsZVN5c3RlbShrZXkubGFiZWwsIGZsYWcpKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGZ0dVNlbGVjdGVkOiBmdW5jdGlvbihtb2RlbHMpIHsNCiAgICAgIHRoaXMuc2VhcmNoQW5kU2hvd1Jlc3VsdChtb2RlbHMsIHRydWUpOw0KICAgIH0sDQogICAgbGF5ZXJzU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVMYXllcihwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBjaGVja0FsbExheWVyczogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVMYXllcihrZXksIHBheWxvYWQudmFsdWUpKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHRheG9uc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlQ29ubmVjdGl2aXR5QnlUYXhvbklkcyhwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBjaGVja0FsbFRheG9uczogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVDb25uZWN0aXZpdHlCeVRheG9uSWRzKGtleSwgcGF5bG9hZC52YWx1ZSkpOw0KICAgICAgfQ0KICAgIH0sDQogICAgcGF0aHdheXNTZWxlY3RlZDogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVBhdGgocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOw0KICAgICAgfQ0KICAgIH0sDQogICAgY2hlY2tBbGxQYXRod2F5czogZnVuY3Rpb24ocGF5bG9hZCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVQYXRoKGtleSwgcGF5bG9hZC52YWx1ZSkpOw0KICAgICAgfQ0KICAgIH0sDQogICAgZW5hYmxlUGFuWm9vbUV2ZW50czogZnVuY3Rpb24oZmxhZykgew0KICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlUGFuWm9vbUV2ZW50cyhmbGFnKTsNCiAgICB9LA0KICAgIGV2ZW50Q2FsbGJhY2s6IGZ1bmN0aW9uKCkgew0KICAgICAgcmV0dXJuIChldmVudFR5cGUsIGRhdGEsIC4uLmFyZ3MpID0+IHsNCiAgICAgICAgaWYgKGV2ZW50VHlwZSAhPT0gInBhbi16b29tIikgew0KICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YS5sYWJlbDsNCiAgICAgICAgICBjb25zdCByZXNvdXJjZSA9IFtkYXRhLm1vZGVsc107DQogICAgICAgICAgY29uc3QgdGF4b25vbXkgPSB0aGlzLmVudHJ5Ow0KICAgICAgICAgIGNvbnN0IGJpb2xvZ2ljYWxTZXggPSB0aGlzLmJpb2xvZ2ljYWxTZXg7DQogICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHsNCiAgICAgICAgICAgIGRhdGFzZXQ6IGRhdGEuZGF0YXNldCwNCiAgICAgICAgICAgIGJpb2xvZ2ljYWxTZXg6IGJpb2xvZ2ljYWxTZXgsDQogICAgICAgICAgICB0YXhvbm9teTogdGF4b25vbXksDQogICAgICAgICAgICByZXNvdXJjZTogcmVzb3VyY2UsDQogICAgICAgICAgICBsYWJlbDogbGFiZWwsDQogICAgICAgICAgICBmZWF0dXJlOiBkYXRhLA0KICAgICAgICAgICAgdXNlckRhdGE6IGFyZ3MsDQogICAgICAgICAgICBldmVudFR5cGU6IGV2ZW50VHlwZSwNCiAgICAgICAgICAgIHByb3ZlbmFuY2VUYXhvbm9teTogZGF0YS50YXhvbnMgPyBKU09OLnBhcnNlKGRhdGEudGF4b25zKSA6IHVuZGVmaW5lZA0KICAgICAgICAgIH07DQogICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PT0gImNsaWNrIikgew0KICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlID0gZGF0YS5tb2RlbHMgPyBkYXRhLm1vZGVscyA6ICIiOw0KICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSAibW91c2VlbnRlciIpIHsNCiAgICAgICAgICAgIHRoaXMuY3VycmVudEhvdmVyID0gZGF0YS5tb2RlbHMgPyBkYXRhLm1vZGVscyA6ICIiOw0KICAgICAgICAgIH0NCiAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnR5cGUgIT09ICJtYXJrZXIiICYmIGV2ZW50VHlwZSA9PT0gImNsaWNrIil7DQogICAgICAgICAgICB0aGlzLmNoZWNrQW5kQ3JlYXRlUG9wdXBzKHBheWxvYWQpOw0KICAgICAgICAgIH0NCiAgICAgICAgICB0aGlzLiRlbWl0KCJyZXNvdXJjZS1zZWxlY3RlZCIsIHBheWxvYWQpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuJGVtaXQoInBhbi16b29tLWNhbGxiYWNrIiwgZGF0YSk7DQogICAgICAgIH0NCiAgICAgIH07DQogICAgfSwNCiAgICAvLyBjaGVja05ldXJvbkNsaWNrZWQgc2hvd3MgYSBuZXVyb24gcGF0aCBwb3AgdXAgaWYgYSBwYXRoIHdhcyByZWNlbnRseSBjbGlja2VkDQogICAgY2hlY2tBbmRDcmVhdGVQb3B1cHM6ICBhc3luYyBmdW5jdGlvbihkYXRhKSB7DQogICAgICAvLyBDYWxsIGZsYXRtYXAgZGF0YWJhc2UgdG8gZ2V0IHRoZSBjb25uZWN0aW9uIGRhdGENCiAgICAgIGxldCByZXN1bHRzID0gYXdhaXQgdGhpcy5mbGF0bWFwUXVlcmllcy5yZXRyaWV2ZUZsYXRtYXBLbm93bGVkZ2VGb3JFdmVudChkYXRhKQ0KICAgICAgLy8gVGhlIGxpbmUgYmVsb3cgb25seSBjcmVhdGVzIHRoZSB0b29sdGlwIGlmIHNvbWUgZGF0YSB3YXMgZm91bmQgb24gdGhlIHBhdGggDQogICAgICAvLyByZXN1bHQgMCBpcyB0aGUgY29ubmVjdGlvbiwgcmVzdWx0IDEgaXMgdGhlIHB1Ym1lZCByZXN1bHRzIGZyb20gZmxhdG1hcA0KICAgICAgaWYocmVzdWx0c1swXSB8fCByZXN1bHRzWzFdIHx8KCBkYXRhLmZlYXR1cmUuaHlwZXJsaW5rcyAmJiBkYXRhLmZlYXR1cmUuaHlwZXJsaW5rcy5sZW5ndGggPiAwKSl7DQogICAgICAgIHRoaXMucmVzb3VyY2VGb3JUb29sdGlwID0gIGRhdGEucmVzb3VyY2VbMF07DQogICAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcEZyb21OZXVyb25DdXJhdGlvbihkYXRhKTsNCiAgICAgIH0gDQogICAgfSwNCiAgICBwb3BVcENzc0hhY2tzOiBmdW5jdGlvbigpIHsNCiAgICAgIC8vIEJlbG93IGlzIGEgaGFjayB0byByZW1vdmUgZmxhdG1hcCB0b29sdGlwcyB3aGlsZSBwb3B1cCBpcyBvcGVuDQogICAgICBsZXQgZnRvb2x0aXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZmxhdG1hcC10b29sdGlwLXBvcHVwIik7DQogICAgICBpZiAoZnRvb2x0aXApIGZ0b29sdGlwLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFwbGlicmVnbC1wb3B1cC1jbG9zZS1idXR0b24iKS5zdHlsZS5kaXNwbGF5ID0NCiAgICAgICAgImJsb2NrIjsNCiAgICAgIHRoaXMuJHJlZnMudG9vbHRpcC4kZWwuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsNCiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYXBsaWJyZWdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIpLm9uY2xpY2sgPSAoKSA9PiB7DQogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mbGF0bWFwLXRvb2x0aXAtcG9wdXAiKS5zdHlsZS5kaXNwbGF5ID0NCiAgICAgICAgICAiYmxvY2siOw0KICAgICAgfTsNCiAgICB9LA0KICAgIGNyZWF0ZVRvb2x0aXBGcm9tTmV1cm9uQ3VyYXRpb246IGFzeW5jIGZ1bmN0aW9uKGRhdGEpIHsNCiAgICAgIHRoaXMudG9vbHRpcEVudHJ5ID0gYXdhaXQgdGhpcy5mbGF0bWFwUXVlcmllcy5jcmVhdGVUb29sdGlwRGF0YShkYXRhKTsNCiAgICAgIHRoaXMuZGlzcGxheVRvb2x0aXAoKTsNCiAgICB9LA0KICAgIC8vIEtlZXBpbmcgdGhpcyBhcyBhbiBBUEkNCiAgICBzaG93UG9wdXA6IGZ1bmN0aW9uKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucykgew0KICAgICAgbGV0IG15T3B0aW9ucyA9IG9wdGlvbnM7DQogICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgaWYgKG15T3B0aW9ucykgew0KICAgICAgICAgIGlmICghbXlPcHRpb25zLmNsYXNzTmFtZSkgbXlPcHRpb25zLmNsYXNzTmFtZSA9ICJjdXN0b20tcG9wdXAiOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIG15T3B0aW9ucyA9IHsgY2xhc3NOYW1lOiAiY3VzdG9tLXBvcHVwIiwgcG9zaXRpb25BdExhc3RDbGljazogdHJ1ZSB9Ow0KICAgICAgICB9DQogICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cChmZWF0dXJlSWQsIG5vZGUsIG15T3B0aW9ucyk7DQogICAgICB9DQogICAgfSwNCiAgICBzaG93TWFya2VyUG9wdXA6IGZ1bmN0aW9uKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucykgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIHRoaXMubWFwSW1wLnNob3dNYXJrZXJQb3B1cChmZWF0dXJlSWQsIG5vZGUsIG9wdGlvbnMpOw0KICAgICAgfQ0KICAgIH0sDQogICAgY2xvc2VNaW5pbWFwOiBmdW5jdGlvbigpew0KICAgICAgbGV0IG1pbmltYXBFbCA9IHRoaXMuJHJlZnMuZmxhdG1hcENvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcubWFwbGlicmVnbC1jdHJsLW1pbmltYXAnKTsgLy8gZmluZCBtaW5pbWFwDQogICAgICBpZiAodGhpcy5taW5pbWFwU21hbGwpIHsgLy9zd2l0Y2ggdGhlIGNsYXNzZXMgb24gdGhlIG1pbmltYXANCiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ2VubGFyZ2UnKTsNCiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5yZW1vdmUoJ3NocmluaycpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ3NocmluaycpOw0KICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LnJlbW92ZSgnZW5sYXJnZScpOw0KICAgICAgfQ0KICAgICAgdGhpcy5taW5pbWFwU21hbGwgPSAhdGhpcy5taW5pbWFwU21hbGw7DQogICAgfSwNCiAgICBhZGRSZXNpemVCdXR0b25Ub01pbmltYXA6IGZ1bmN0aW9uKCl7DQogICAgICBsZXQgbWluaW1hcEVsID0gdGhpcy4kcmVmcy5mbGF0bWFwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5tYXBsaWJyZWdsLWN0cmwtbWluaW1hcCcpOw0KICAgICAgaWYgKG1pbmltYXBFbCl7DQogICAgICAgIHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuJHJlZnMubWluaW1hcFJlc2l6ZSk7DQogICAgICAgIG1pbmltYXBFbC5hcHBlbmRDaGlsZCh0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUpOw0KICAgICAgICB0aGlzLm1pbmltYXBSZXNpemVTaG93ID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHNldEhlbHBNb2RlOiBmdW5jdGlvbihoZWxwTW9kZSkgew0KICAgICAgaWYgKGhlbHBNb2RlKSB7DQogICAgICAgIHRoaXMuaW5IZWxwID0gdHJ1ZTsNCiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllcy5mb3JFYWNoKGl0ZW0gPT4gew0KICAgICAgICAgIGl0ZW0udmFsdWUgPSB0cnVlOw0KICAgICAgICB9KTsNCiAgICAgICAgdGhpcy5vcGVuRmxhdG1hcEhlbHBQb3B1cCgpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpcy5pbkhlbHAgPSBmYWxzZTsNCiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllcy5mb3JFYWNoKGl0ZW0gPT4gew0KICAgICAgICAgIGl0ZW0udmFsdWUgPSBmYWxzZTsNCiAgICAgICAgfSk7DQogICAgICAgIHRoaXMuY2xvc2VGbGF0bWFwSGVscFBvcHVwKCk7DQogICAgICB9DQogICAgfSwNCiAgICBzaG93VG9vbGl0aXA6IGZ1bmN0aW9uKHRvb2x0aXBOdW1iZXIpIHsNCiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsNCiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0pOw0KICAgICAgICB0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdID0gc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllc1t0b29sdGlwTnVtYmVyXS52YWx1ZSA9IHRydWU7DQogICAgICAgIH0sIDUwMCk7DQogICAgICB9DQogICAgfSwNCiAgICBoaWRlVG9vbGl0aXA6IGZ1bmN0aW9uKHRvb2x0aXBOdW1iZXIpIHsNCiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsNCiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0pOw0KICAgICAgICB0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdID0gc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllc1t0b29sdGlwTnVtYmVyXS52YWx1ZSA9IGZhbHNlOw0KICAgICAgICB9LCA1MDApOw0KICAgICAgfQ0KICAgIH0sDQogICAgZGlzcGxheVRvb2x0aXA6IGZ1bmN0aW9uKCkgew0KICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKA0KICAgICAgICB0aGlzLm1hcEltcC5tb2RlbEZlYXR1cmVJZHModGhpcy5yZXNvdXJjZUZvclRvb2x0aXApWzBdLA0KICAgICAgICB0aGlzLiRyZWZzLnRvb2x0aXAuJGVsLA0KICAgICAgICB7IGNsYXNzTmFtZTogImZsYXRtYXB2dWVyLXBvcG92ZXIiLCBwb3NpdGlvbkF0TGFzdENsaWNrOiB0cnVlIH0NCiAgICAgICk7DQogICAgICB0aGlzLnBvcFVwQ3NzSGFja3MoKTsNCiAgICB9LA0KICAgIG9wZW5GbGF0bWFwSGVscFBvcHVwOiBmdW5jdGlvbigpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICBsZXQgaGVhcnRJZCA9IHRoaXMubWFwSW1wLmZlYXR1cmVJZHNGb3JNb2RlbCgiVUJFUk9OOjAwMDA5NDgiKVswXTsNCiAgICAgICAgY29uc3QgZWxtID0gIkNsaWNrIGZvciBtb3JlIGluZm9ybWF0aW9uIjsNCiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKGhlYXJ0SWQsIGVsbSwgew0KICAgICAgICAgIGFuY2hvcjogInRvcCIsDQogICAgICAgICAgY2xhc3NOYW1lOiAiZmxhdG1hcC1wb3B1cC1wb3BwZXIiDQogICAgICAgIH0pOw0KICAgICAgfQ0KICAgIH0sDQogICAgY2xvc2VGbGF0bWFwSGVscFBvcHVwOiBmdW5jdGlvbigpIHsNCiAgICAgIHRoaXMuJGVsDQogICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCIubWFwbGlicmVnbC1wb3B1cC1jbG9zZS1idXR0b24iKQ0KICAgICAgICAuZm9yRWFjaChpdGVtID0+IHsNCiAgICAgICAgICBpdGVtLmNsaWNrKCk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgZ2V0TGFiZWxzOiBmdW5jdGlvbigpIHsNCiAgICAgIGxldCBsYWJlbHMgPSBbXTsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkgew0KICAgICAgICBsZXQgYW5ub3RhdGlvbnMgPSB0aGlzLm1hcEltcC5hbm5vdGF0aW9uczsNCiAgICAgICAgZm9yIChsZXQgdmFsdWUgb2YgYW5ub3RhdGlvbnMudmFsdWVzKCkpIHsNCiAgICAgICAgICBpZiAodmFsdWUubGFiZWwpIGxhYmVscy5wdXNoKHZhbHVlLmxhYmVsKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGxhYmVscykpOw0KICAgICAgfQ0KICAgIH0sDQogICAgZ2V0U3RhdGU6IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIGxldCBzdGF0ZSA9IHsNCiAgICAgICAgICBlbnRyeTogdGhpcy5lbnRyeSwNCiAgICAgICAgICB2aWV3cG9ydDogdGhpcy5tYXBJbXAuZ2V0U3RhdGUoKQ0KICAgICAgICB9Ow0KICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gdGhpcy5tYXBJbXAuZ2V0SWRlbnRpZmllcigpOw0KICAgICAgICBpZiAodGhpcy5iaW9sb2dpY2FsU2V4KQ0KICAgICAgICAgIHN0YXRlWydiaW9sb2dpY2FsU2V4J10gPSB0aGlzLmJpb2xvZ2ljYWxTZXg7DQogICAgICAgIGVsc2UgaWYgKGlkZW50aWZpZXIgJiYgaWRlbnRpZmllci5iaW9sb2dpY2FsU2V4KQ0KICAgICAgICAgIHN0YXRlWydiaW9sb2dpY2FsU2V4J10gPSBpZGVudGlmaWVyLmJpb2xvZ2ljYWxTZXg7DQogICAgICAgIGlmIChpZGVudGlmaWVyICYmIGlkZW50aWZpZXIudXVpZCkNCiAgICAgICAgICBzdGF0ZVsndXVpZCddID0gaWRlbnRpZmllci51dWlkOw0KICAgICAgICByZXR1cm4gc3RhdGU7DQogICAgICB9DQogICAgICByZXR1cm4gdW5kZWZpbmVkOw0KICAgIH0sDQogICAgc2V0U3RhdGU6IGZ1bmN0aW9uKHN0YXRlKSB7DQogICAgICBpZiAoc3RhdGUpIHsNCiAgICAgICAgaWYgKHRoaXMubWFwSW1wICYmIA0KICAgICAgICAgIChzdGF0ZS5lbnRyeSAmJiAodGhpcy5lbnRyeSA9PSBzdGF0ZS5lbnRyeSkpICYmDQogICAgICAgICAgKCFzdGF0ZS5iaW9sb2dpY2FsU2V4IHx8IChzdGF0ZS5iaW9sb2dpY2FsU2V4ID09PSB0aGlzLmJpb2xvZ2ljYWxTZXgpKSkgDQogICAgICAgIHsNCiAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpIHsNCiAgICAgICAgICAgIHRoaXMubWFwSW1wLnNldFN0YXRlKHN0YXRlLnZpZXdwb3J0KTsNCiAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy5jcmVhdGVGbGF0bWFwKHN0YXRlKTsNCiAgICAgICAgfQ0KICAgICAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsNCiAgICAgIH0NCiAgICB9LA0KICAgIHJlc3RvcmVNYXBTdGF0ZTogZnVuY3Rpb24oc3RhdGUpIHsNCiAgICAgIGlmIChzdGF0ZSkgew0KICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpDQogICAgICAgICAgdGhpcy5tYXBJbXAuc2V0U3RhdGUoc3RhdGUudmlld3BvcnQpOw0KICAgICAgICBpZiAoc3RhdGUuc2VhcmNoVGVybSkNCiAgICAgICAgICB0aGlzLnNlYXJjaEFuZFNob3dSZXN1bHQoc3RhdGUuc2VhcmNoVGVybSwgdHJ1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBjcmVhdGVGbGF0bWFwOiBmdW5jdGlvbihzdGF0ZSkgew0KICAgICAgaWYgKCF0aGlzLm1hcEltcCAmJiAhdGhpcy5sb2FkaW5nKSB7DQogICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7DQogICAgICAgIGxldCBtaW5pbWFwID0gZmFsc2U7DQogICAgICAgIGlmICh0aGlzLmRpc3BsYXlNaW5pbWFwKSB7DQogICAgICAgICAgbWluaW1hcCA9IHsgcG9zaXRpb246ICJ0b3AtcmlnaHQiIH07DQogICAgICAgIH0NCg0KICAgICAgICAvL0FzIGZvciBmbGF0bWFwLXZpZXdlckAyLjIuNywgc2VlIGJlbG93IGZvciB0aGUgZG9jdW1lbnRhdGlvbiANCiAgICAgICAgLy9mb3IgdGhlIGlkZW50aWZpZXI6DQoNCiAgICAgICAgLy9AYXJnIGlkZW50aWZpZXIge3N0cmluZ3xPYmplY3R9DQogICAgICAgIC8vIEEgc3RyaW5nIG9yIG9iamVjdCBpZGVudGlmeWluZyB0aGUgbWFwIHRvIGxvYWQuIElmIGEgc3RyaW5nIGl0cw0KICAgICAgICAvLyB2YWx1ZSBjYW4gYmUgZWl0aGVyIHRoZSBtYXAncyBgYHV1aWRgYCwgYXNzaWduZWQgYXQgZ2VuZXJhdGlvbiB0aW1lLA0KICAgICAgICAvLyBvciB0YXhvbiBhbmQgYmlvbG9naWNhbCBzZXggaWRlbnRpZmllcnMgb2YgdGhlIHNwZWNpZXMgdGhhdCB0aGUgbWFwDQogICAgICAgIC8vIHJlcHJlc2VudHMuIFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBhIG1hcCBpcyBsb2FkZWQgdW5sZXNzIGl0IGhhcyBiZWVuDQogICAgICAgIC8vIGlkZW50aWZpZWQgdXNpbmcgYSBgYHV1aWRgYCAoc2VlIGJlbG93KS4NCiAgICAgICAgLy8gQGFyZyBpZGVudGlmaWVyLnRheG9uIHtzdHJpbmd9IFRoZSB0YXhvbiBpZGVudGlmaWVyIG9mIHRoZSBzcGVjaWVzIA0KICAgICAgICAvLyAgcmVwcmVzZW50ZWQgYnkgdGhlIG1hcC4gVGhpcyBpcyBzcGVjaWZpZWQgYXMgbWV0YWRhdGEgaW4gdGhlIG1hcCdzIHNvdXJjZSBmaWxlLg0KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIuYmlvbG9naWNhbFNleCB7c3RyaW5nfSBUaGUgYmlvbG9naWNhbCBzZXggb2YgdGhlIHNwZWNpZXMNCiAgICAgICAgLy8gcmVwcmVzZW50ZWQgYnkgdGhlIG1hcC4gVGhpcyBpcyBzcGVjaWZpZWQgYXMgbWV0YWRhdGFpbiB0aGUgbWFwJ3Mgc291cmNlIGZpbGUuDQogICAgICAgIC8vIEBhcmcgaWRlbnRpZmllci51dWlkIHtzdHJpbmd9IFRoZSB1bmlxdWUgdXVpZCB0aGUgZmxhdG1hcC4gSWYgZ2l2ZW4gdGhlbiB0aGlzIGV4YWN0IG1hcCB3aWxsDQogICAgICAgIC8vICBiZSBsb2FkZWQsIG92ZXJyaWRpbmcgYGB0YXhvbmBgIGFuZCBgYGJpb2xvZ2ljYWxTZXhgYC4NCg0KICAgICAgICBsZXQgaWRlbnRpZmllciA9IHsgdGF4b246IHRoaXMuZW50cnkgfTsNCiAgICAgICAgLy9UaGlzIG5vdyBoYW5kbGUgdGhlIHVzZXMgb2YgdXVpZCB3aGVuIHJlc3VtaW5nIHN0YXRlcw0KICAgICAgICBpZiAoc3RhdGUpIHsNCiAgICAgICAgICBpZiAoc3RhdGUudXVpZCkgew0KICAgICAgICAgICAgaWRlbnRpZmllciA9IHsgdXVpZDogc3RhdGUudXVpZCB9Ow0KICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUuZW50cnkpIHsNCiAgICAgICAgICAgIGlkZW50aWZpZXIudGF4b24gPSBzdGF0ZS5lbnRyeTsNCiAgICAgICAgICAgIGlmIChzdGF0ZS5iaW9sb2dpY2FsU2V4KSB7DQogICAgICAgICAgICAgIGlkZW50aWZpZXJbImJpb2xvZ2ljYWxTZXgiXSA9IHN0YXRlLmJpb2xvZ2ljYWxTZXg7DQogICAgICAgICAgICB9IGVsc2UgaWYgKGlkZW50aWZpZXIudGF4b24gPT09ICJOQ0JJVGF4b246OTYwNiIpIHsNCiAgICAgICAgICAgICAgLy9Gb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQ0KICAgICAgICAgICAgICBpZGVudGlmaWVyWyJiaW9sb2dpY2FsU2V4Il0gPSJQQVRPOjAwMDAzODQiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAvLyBTZXQgdGhlIGJpb2xvaWNhbFNleCBub3cgaWYgbWFwIGlzIG5vdCByZXN1bWVkIGZyb20NCiAgICAgICAgICAvLyBhIHNhdmVkIHN0YXRlDQogICAgICAgICAgaWYgKHRoaXMuYmlvbG9naWNhbFNleCkgew0KICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0gdGhpcy5iaW9sb2dpY2FsU2V4Ow0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGxldCBwcm9taXNlMSA9IHRoaXMubWFwTWFuYWdlci5sb2FkTWFwKA0KICAgICAgICAgIGlkZW50aWZpZXIsDQogICAgICAgICAgdGhpcy4kcmVmcy5kaXNwbGF5LA0KICAgICAgICAgIHRoaXMuZXZlbnRDYWxsYmFjaygpLA0KICAgICAgICAgIHsNCiAgICAgICAgICAgIC8vZnVsbHNjcmVlbkNvbnRyb2w6IGZhbHNlLA0KICAgICAgICAgICAgLy9hbm5vdGF0YWJsZTogZmFsc2UsDQogICAgICAgICAgICAvL2RlYnVnOiB0cnVlLA0KICAgICAgICAgICAgZmVhdHVyZUluZm86IHRoaXMuZmVhdHVyZUluZm8sDQogICAgICAgICAgICAibWluLXpvb20iOiB0aGlzLm1pblpvb20sDQogICAgICAgICAgICBsYXllckNvbnRyb2w6IHRydWUsDQogICAgICAgICAgICBwYXRoQ29udHJvbHM6IHRydWUsDQogICAgICAgICAgICBzZWFyY2hhYmxlOiB0aGlzLnNlYXJjaGFibGUsDQogICAgICAgICAgICB0b29sdGlwczogdGhpcy50b29sdGlwcywNCiAgICAgICAgICAgIG1pbmltYXA6IG1pbmltYXANCiAgICAgICAgICB9DQogICAgICAgICk7DQogICAgICAgIHByb21pc2UxLnRoZW4ocmV0dXJuZWRPYmplY3QgPT4gew0KICAgICAgICAgIHRoaXMubWFwSW1wID0gcmV0dXJuZWRPYmplY3Q7DQogICAgICAgICAgdGhpcy5vbkZsYXRtYXBSZWFkeSgpOw0KICAgICAgICAgIGlmICh0aGlzLl9zdGF0ZVRvQmVTZXQpDQogICAgICAgICAgICB0aGlzLnJlc3RvcmVNYXBTdGF0ZSh0aGlzLl9zdGF0ZVRvQmVTZXQpOw0KICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGhpcy5yZXN0b3JlTWFwU3RhdGUoc3RhdGUpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICB9IGVsc2UgaWYgKHN0YXRlKSB7DQogICAgICAgIHRoaXMuX3N0YXRlVG9CZVNldCA9IHsgdmlld3BvcnQ6IHN0YXRlLnZpZXdwb3J0LCBzZWFyY2hUZXJtOiBzdGF0ZS5zZWFyY2hUZXJtIH07DQogICAgICAgIGlmICh0aGlzLm1hcEltcCAmJiAhdGhpcy5sb2FkaW5nKQ0KICAgICAgICAgIHRoaXMucmVzdG9yZU1hcFN0YXRlKHRoaXMuX3N0YXRlVG9CZVNldCk7DQogICAgICB9DQogICAgfSwNCiAgICBjb21wdXRlUGF0aENvbnRyb2xzTWF4aW11bUhlaWdodCgpIHsNCiAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLiRyZWZzLmRpc3BsYXk7DQogICAgICBpZiAoZWxlbSkgew0KICAgICAgICBjb25zdCBjb21wdXRlZCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbSk7DQogICAgICAgIGNvbnN0IHBhZGRpbmcgPSBwYXJzZUludChjb21wdXRlZC5wYWRkaW5nVG9wKSArIHBhcnNlSW50KGNvbXB1dGVkLnBhZGRpbmdCb3R0b20pOw0KICAgICAgICBjb25zdCBoZWlnaHQgPSBlbGVtLmNsaWVudEhlaWdodCAtIHBhZGRpbmc7DQogICAgICAgIHRoaXMucGF0aHdheXNNYXhIZWlnaHQgPSBoZWlnaHQgLSAxNzA7DQogICAgICB9DQogICAgfSwNCiAgICBtYXBSZXNpemU6IGZ1bmN0aW9uKCkgew0KICAgICAgdHJ5IHsNCiAgICAgICAgdGhpcy5jb21wdXRlUGF0aENvbnRyb2xzTWF4aW11bUhlaWdodCgpOw0KICAgICAgICBpZiAodGhpcy5tYXBJbXApIHsNCiAgICAgICAgICB0aGlzLm1hcEltcC5yZXNpemUoKTsNCiAgICAgICAgICB0aGlzLnNob3dNaW5pbWFwKHRoaXMuZGlzcGxheU1pbmltYXApOw0KICAgICAgICAgIGlmICh0aGlzLm1hcEltcC5fbWluaW1hcCkgew0KICAgICAgICAgICAgICB0aGlzLm1hcEltcC5fbWluaW1hcC5yZXNpemUoKTsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0gY2F0Y2ggew0KICAgICAgICBjb25zb2xlLmVycm9yKCJNYXAgcmVzaXplIGVycm9yIik7DQogICAgICB9DQogICAgfSwNCiAgICBvbkZsYXRtYXBSZWFkeTogZnVuY3Rpb24oKXsNCiAgICAgIC8vIG9uRmxhdG1hcFJlYWR5IGlzIHVzZWQgZm9yIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gcnVuIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBmbGF0bWFwIGlzIGxvYWRlZA0KICAgICAgdGhpcy5zZW5zb3IgPSBuZXcgUmVzaXplU2Vuc29yKA0KICAgICAgICB0aGlzLiRyZWZzLmRpc3BsYXksDQogICAgICAgIHRoaXMubWFwUmVzaXplDQogICAgICApOw0KICAgICAgaWYgKHRoaXMubWFwSW1wLm9wdGlvbnMgJiYgdGhpcy5tYXBJbXAub3B0aW9ucy5zdHlsZSA9PT0gImZ1bmN0aW9uYWwiKSB7DQogICAgICAgIHRoaXMuaXNGQyA9IHRydWU7DQogICAgICB9DQogICAgICB0aGlzLm1hcEltcC5zZXRCYWNrZ3JvdW5kT3BhY2l0eSgxKTsNCiAgICAgIHRoaXMuYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrKHRoaXMuY3VycmVudEJhY2tncm91bmQpOw0KICAgICAgdGhpcy5wYXRod2F5cyA9IHRoaXMubWFwSW1wLnBhdGhUeXBlcygpOw0KICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlQ2VudHJlbGluZXMoZmFsc2UpOw0KICAgICAgLy9EaXNhYmxlIGxheWVycyBmb3Igbm93DQogICAgICAvL3RoaXMubGF5ZXJzID0gdGhpcy5tYXBJbXAuZ2V0TGF5ZXJzKCk7DQogICAgICB0aGlzLnN5c3RlbXMgPSBwcm9jZXNzU3lzdGVtcyh0aGlzLm1hcEltcC5nZXRTeXN0ZW1zKCkpOw0KICAgICAgdGhpcy50YXhvbkNvbm5lY3Rpdml0eSA9IHByb2Nlc3NUYXhvbih0aGlzLmZsYXRtYXBBUEksIHRoaXMubWFwSW1wLnRheG9uSWRlbnRpZmllcnMpOw0KICAgICAgdGhpcy5hZGRSZXNpemVCdXR0b25Ub01pbmltYXAoKTsNCiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOw0KICAgICAgdGhpcy5jb21wdXRlUGF0aENvbnRyb2xzTWF4aW11bUhlaWdodCgpOw0KICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gdHJ1ZTsNCiAgICAgIHRoaXMubWFwUmVzaXplKCk7DQogICAgICB0aGlzLiRlbWl0KCJyZWFkeSIsIHRoaXMpOw0KICAgIH0sDQogICAgc2hvd01pbmltYXA6IGZ1bmN0aW9uKGZsYWcpIHsNCiAgICAgIGlmICh0aGlzLm1hcEltcCkNCiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd01pbmltYXAoZmxhZyk7DQogICAgfSwNCiAgICBzaG93UGF0aHdheXNEcmF3ZXI6IGZ1bmN0aW9uKGZsYWcpIHsNCiAgICAgIHRoaXMuZHJhd2VyT3BlbiA9IGZsYWc7DQogICAgfSwNCiAgICAvKioNCiAgICAgKiBGdW5jdGlvbiB0byBkaXNwbGF5IGZlYXR1cmVzIHdpdGggYW5ub3RhdGlvbiBtYXRjaGluZyB0aGUgcHJvdmlkZWQgdGVybSwNCiAgICAgKiB3aXRoIHRoZSBvcHRpb24gdG8gZGlzcGxheSB0aGUgbGFiZWwgdXNpbmcgZGlzcGxheUxhYmVsIGZsYWcuIA0KICAgICAqLw0KICAgIHNlYXJjaEFuZFNob3dSZXN1bHQ6IGZ1bmN0aW9uKHRlcm0sIGRpc3BsYXlMYWJlbCkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKSB7DQogICAgICAgIGlmICh0ZXJtID09PSB1bmRlZmluZWQgfHwgdGVybSA9PT0gIiIpIHsNCiAgICAgICAgICB0aGlzLm1hcEltcC5jbGVhclNlYXJjaFJlc3VsdHMoKTsNCiAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHRzID0gdGhpcy5tYXBJbXAuc2VhcmNoKHRlcm0pOw0KICAgICAgICAgIGlmIChzZWFyY2hSZXN1bHRzICYmIHNlYXJjaFJlc3VsdHMucmVzdWx0cyAmJg0KICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5yZXN1bHRzLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgIHRoaXMubWFwSW1wLnNob3dTZWFyY2hSZXN1bHRzKHNlYXJjaFJlc3VsdHMpOw0KICAgICAgICAgICAgaWYgKGRpc3BsYXlMYWJlbCAmJiANCiAgICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5yZXN1bHRzWzBdLmZlYXR1cmVJZCAmJiANCiAgICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5yZXN1bHRzWzBdLnRleHQpIHsNCiAgICAgICAgICAgICAgY29uc3QgYW5ub3RhdGlvbiA9IHRoaXMubWFwSW1wLmFubm90YXRpb24oc2VhcmNoUmVzdWx0cy5yZXN1bHRzWzBdLmZlYXR1cmVJZCk7DQogICAgICAgICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cCgNCiAgICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0uZmVhdHVyZUlkLA0KICAgICAgICAgICAgICAgIGFubm90YXRpb24ubGFiZWwsDQogICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICJjdXN0b20tcG9wdXAiLCBwb3NpdGlvbkF0TGFzdENsaWNrOiBmYWxzZSwgcHJlc2VydmVTZWxlY3Rpb246IHRydWUgfQ0KICAgICAgICAgICAgICApDQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICB9DQogICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgdGhpcy5tYXBJbXAuY2xlYXJTZWFyY2hSZXN1bHRzKCk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEdldCB0aGUgbGlzdCBvZiBzdWdnZXN0ZWQgdGVybXMNCiAgICAgKi8NCiAgICBzZWFyY2hTdWdnZXN0aW9uczogZnVuY3Rpb24odGVybSkgew0KICAgICAgaWYgKHRoaXMubWFwSW1wKQ0KICAgICAgICByZXR1cm4gdGhpcy5tYXBJbXAuc2VhcmNoKHRlcm0pOw0KICAgICAgcmV0dXJuIFtdOw0KICAgIH0sDQogIH0sDQogIHByb3BzOiB7DQogICAgZW50cnk6IFN0cmluZywNCiAgICBiaW9sb2dpY2FsU2V4OiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAiIg0KICAgIH0sDQogICAgZmVhdHVyZUluZm86IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgbWluWm9vbTogew0KICAgICAgdHlwZTogTnVtYmVyLA0KICAgICAgZGVmYXVsdDogNA0KICAgIH0sDQogICAgcGF0aENvbnRyb2xzOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIHNlYXJjaGFibGU6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgbGF5ZXJDb250cm9sOiB7DQogICAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICAgIGRlZmF1bHQ6IGZhbHNlDQogICAgfSwNCiAgICB0b29sdGlwczogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IHRydWUNCiAgICB9LA0KICAgIGhlbHBNb2RlOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIHJlbmRlckF0TW91bnRlZDogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IHRydWUNCiAgICB9LA0KICAgIGRpc3BsYXlNaW5pbWFwOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIGRpc3BsYXlXYXJuaW5nOiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UNCiAgICB9LA0KICAgIC8qKg0KICAgICAqIEZsYWcgdG8gZGV0ZXJtaW5lIHJhdGhlciBvcGVuIG1hcCBVSSBzaG91bGQgYmUNCiAgICAgKiBwcmVzZW50ZWQgb3Igbm90Lg0KICAgICAqLw0KICAgIGVuYWJsZU9wZW5NYXBVSTogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IGZhbHNlLA0KICAgIH0sDQogICAgb3Blbk1hcE9wdGlvbnM6IHsNCiAgICAgIHR5cGU6IEFycmF5LA0KICAgICAgZGVmYXVsdDogZnVuY3Rpb24gKCkgew0KICAgICAgICByZXR1cm4gWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIEFDIE1hcCIsDQogICAgICAgICAgICBrZXk6ICJBQyINCiAgICAgICAgICB9LA0KICAgICAgICAgIHsNCiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIEZDIE1hcCIsDQogICAgICAgICAgICBrZXk6ICJGQyINCiAgICAgICAgICB9LA0KICAgICAgICAgIHsNCiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIDNEIEh1bWFuIE1hcCIsDQogICAgICAgICAgICBrZXk6ICIzRCINCiAgICAgICAgICB9LA0KICAgICAgICBdDQogICAgICB9LA0KICAgIH0sDQogICAgaXNMZWdhY3k6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZQ0KICAgIH0sDQogICAgZGlzcGxheUxhdGVzdENoYW5nZXM6IHsNCiAgICAgIHR5cGU6IEJvb2xlYW4sDQogICAgICBkZWZhdWx0OiBmYWxzZSwNCiAgICB9LA0KICAgIGxhdGVzdENoYW5nZXNNZXNzYWdlOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAiJ09ic2VydmVkIEluJyBjb250cm9scyBhbmQgaW5mb3JtYXRpb24gYXJlIG5vdyBpbmNsdWRlZCBpbiBBQyBtYXBzLiBTeXN0ZW0gY29udHJvbCB3aXRoIEZUVSBpbmZvcm1hdGlvbiBoYXMgYmVlbiBhZGRlZCB0byB0aGUgRkMgbWFwLiIsDQogICAgfSwNCiAgICAvKioNCiAgICAgKiBTdGF0ZSBjb250YWluaW5nIHN0YXRlIG9mIHRoZSBmbGF0bWFwLg0KICAgICAqLw0KICAgIHN0YXRlOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgICBkZWZhdWx0OiB1bmRlZmluZWQNCiAgICB9LA0KICAgIC8qKg0KICAgICAqIFNwZWNpZnkgdGhlIGVuZHBvaW50IG9mIHRoZSBmbGF0bWFwIHNlcnZlci4NCiAgICAgKi8NCiAgICBmbGF0bWFwQVBJOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAiaHR0cHM6Ly9tYXBjb3JlLWRlbW8ub3JnL2N1cnJlbnQvZmxhdG1hcC92My8iDQogICAgfSwNCiAgICBzcGFyY0FQSTogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgZGVmYXVsdDogImh0dHBzOi8vYXBpLnNwYXJjLnNjaWVuY2UvIg0KICAgIH0sDQogIH0sDQogIHByb3ZpZGUoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIHNwYXJjQVBJOiB0aGlzLnNwYXJjQVBJLA0KICAgICAgZmxhdG1hcEFQSTogdGhpcy5mbGF0bWFwQVBJDQogICAgfQ0KICB9LA0KICBkYXRhOiBmdW5jdGlvbigpIHsNCiAgICByZXR1cm4gew0KICAgICAgbGF5ZXJzOiBbXSwNCiAgICAgIHBhdGh3YXlzOiBbXSwNCiAgICAgIHNja2FuRGlzcGxheTogWw0KICAgICAgICB7DQogICAgICAgICAgbGFiZWw6ICJEaXNwbGF5IFBhdGggd2l0aCBTQ0tBTiIsDQogICAgICAgICAga2V5OiAiVkFMSUQiLA0KICAgICAgICB9LA0KICAgICAgXSwNCiAgICAgIGNlbnRyZUxpbmVzOiBbDQogICAgICAgIHsNCiAgICAgICAgICBsYWJlbDogIkRpc3BsYXkgTmVydmVzIiwNCiAgICAgICAgICBrZXk6ICJjZW50cmVsaW5lcyIsDQogICAgICAgICAgZW5hYmxlZDogZmFsc2UNCiAgICAgICAgfQ0KICAgICAgXSwNCiAgICAgIHN5c3RlbXM6IFtdLA0KICAgICAgdGF4b25Db25uZWN0aXZpdHk6IFtdLA0KICAgICAgcGF0aHdheXNNYXhIZWlnaHQ6IDEwMDAsDQogICAgICBob3ZlclZpc2liaWxpdGllczogWw0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LA0KICAgICAgXSwNCiAgICAgIGlzRkM6IGZhbHNlLA0KICAgICAgaW5IZWxwOiBmYWxzZSwNCiAgICAgIGN1cnJlbnRCYWNrZ3JvdW5kOiAid2hpdGUiLA0KICAgICAgYXZhaWxhYmxlQmFja2dyb3VuZDogWyJ3aGl0ZSIsICJsaWdodHNreWJsdWUiLCAiYmxhY2siXSwNCiAgICAgIGxvYWRpbmc6IGZhbHNlLA0KICAgICAgZmxhdG1hcE1hcmtlcjogZmxhdG1hcE1hcmtlciwNCiAgICAgIHRvb2x0aXBFbnRyeTogY3JlYXRlVW5maWxsZWRUb29sdGlwRGF0YSgpLA0KICAgICAgY29ubmVjdGl2aXR5VG9vbHRpcFZpc2libGU6IGZhbHNlLA0KICAgICAgcmVzb3VyY2VGb3JUb29sdGlwOiB1bmRlZmluZWQsDQogICAgICBkcmF3ZXJPcGVuOiBmYWxzZSwNCiAgICAgIGNvbG91clJhZGlvOiB0cnVlLA0KICAgICAgb3V0bGluZXNSYWRpbzogdHJ1ZSwNCiAgICAgIG1pbmltYXBSZXNpemVTaG93OiBmYWxzZSwNCiAgICAgIG1pbmltYXBTbWFsbDogZmFsc2UsDQogICAgICBjdXJyZW50QWN0aXZlOiAiIiwNCiAgICAgIGN1cnJlbnRIb3ZlcjogIiIsDQogICAgfTsNCiAgfSwNCiAgd2F0Y2g6IHsNCiAgICBlbnRyeTogZnVuY3Rpb24oKSB7DQogICAgICBpZiAoIXRoaXMuc3RhdGUpIHRoaXMuY3JlYXRlRmxhdG1hcCgpOw0KICAgIH0sDQogICAgaGVscE1vZGU6IGZ1bmN0aW9uKHZhbCkgew0KICAgICAgdGhpcy5zZXRIZWxwTW9kZSh2YWwpOw0KICAgIH0sDQogICAgc3RhdGU6IHsNCiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKHN0YXRlKSB7DQogICAgICAgIGlmICh0aGlzLm1hcE1hbmFnZXIpIHsNCiAgICAgICAgICB0aGlzLnNldFN0YXRlKHN0YXRlKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAvL3RoaXMgY29tcG9uZW50IGhhcyBub3QgYmVlbiBtb3VudGVkIHlldA0KICAgICAgICAgIHRoaXMuc2V0U3RhdGVSZXF1aXJlZCA9IHRydWU7DQogICAgICAgIH0NCiAgICAgIH0sDQogICAgICBpbW1lZGlhdGU6IHRydWUsDQogICAgICBkZWVwOiB0cnVlDQogICAgfQ0KICB9LA0KICBtb3VudGVkOiBmdW5jdGlvbigpIHsNCiAgICBjb25zdCBmbGF0bWFwID0gcmVxdWlyZSgiQGFiaS1zb2Z0d2FyZS9mbGF0bWFwLXZpZXdlciIpOw0KICAgIHRoaXMudG9vbHRpcFdhaXQgPSBbXTsNCiAgICB0aGlzLnRvb2x0aXBXYWl0Lmxlbmd0aCA9IHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMubGVuZ3RoOw0KICAgIHRoaXMubWFwTWFuYWdlciA9IG5ldyBmbGF0bWFwLk1hcE1hbmFnZXIodGhpcy5mbGF0bWFwQVBJKTsNCiAgICB0aGlzLmZsYXRtYXBRdWVyaWVzID0gbmV3IEZsYXRtYXBRdWVyaWVzKCk7DQogICAgdGhpcy5mbGF0bWFwUXVlcmllcy5pbml0aWFsaXNlKHRoaXMuZmxhdG1hcEFQSSk7DQogICAgaWYgKHRoaXMuc3RhdGUpIHsNCiAgICAgIC8vU3RhdGUgaXMgc2V0IGFuZCByZXF1aXJlIHRvIHNldCB0aGUgc3RhdGUNCiAgICAgIGlmICh0aGlzLnNldFN0YXRlUmVxdWlyZWQpIHsNCiAgICAgICAgdGhpcy5zZXRTdGF0ZSh0aGlzLnN0YXRlKTsNCiAgICAgIH0NCiAgICB9IGVsc2UgaWYodGhpcy5yZW5kZXJBdE1vdW50ZWQpIHsNCiAgICAgIHRoaXMuY3JlYXRlRmxhdG1hcCgpOw0KICAgIH0NCiAgfQ0KfTsNCg=="},{"version":3,"sources":["FlatmapVuer.vue"],"names":[],"mappings":";AA0WA;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;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"FlatmapVuer.vue","sourceRoot":"node_modules/@abi-software/flatmapvuer/src/components","sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n\r\n"]}]}