@igo2/geo 18.0.0-next.9 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +4 -6
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +13 -10
  3. package/esm2022/lib/datasource/shared/capabilities.service.mjs +1 -1
  4. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +2 -1
  5. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  6. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  7. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +151 -102
  8. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +177 -83
  9. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +93 -44
  10. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  11. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  12. package/esm2022/lib/directions/directions.component.mjs +55 -31
  13. package/esm2022/lib/directions/shared/directions.enum.mjs +51 -7
  14. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  15. package/esm2022/lib/directions/shared/directions.service.mjs +122 -96
  16. package/esm2022/lib/directions/shared/directions.utils.mjs +281 -318
  17. package/esm2022/lib/directions/shared/store.mjs +2 -2
  18. package/esm2022/lib/download/download-button/download-button.component.mjs +8 -20
  19. package/esm2022/lib/download/shared/download.service.mjs +1 -1
  20. package/esm2022/lib/draw/draw/draw-popup.component.mjs +1 -1
  21. package/esm2022/lib/draw/draw/draw.component.mjs +5 -12
  22. package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
  23. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  24. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +2 -2
  25. package/esm2022/lib/feature/shared/feature-store.utils.mjs +7 -6
  26. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  27. package/esm2022/lib/feature/shared/store.mjs +1 -1
  28. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +3 -3
  29. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +7 -4
  30. package/esm2022/lib/feature/shared/strategies/selection.mjs +5 -4
  31. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
  32. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
  33. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +5 -3
  34. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +1 -1
  35. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +8 -1
  36. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1 -1
  37. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +2 -8
  38. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -8
  39. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  40. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +13 -10
  41. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  42. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +4 -2
  43. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +5 -16
  44. package/esm2022/lib/import-export/export-button/export-button.component.mjs +4 -17
  45. package/esm2022/lib/import-export/import-export/import-export.component.mjs +23 -12
  46. package/esm2022/lib/import-export/shared/export.service.mjs +7 -4
  47. package/esm2022/lib/import-export/shared/import.utils.mjs +3 -3
  48. package/esm2022/lib/layer/index.mjs +10 -5
  49. package/esm2022/lib/layer/layer-group/index.mjs +2 -0
  50. package/esm2022/lib/layer/layer-group/layer-group.component.mjs +103 -0
  51. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +76 -161
  52. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +5 -8
  53. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +5 -6
  54. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +14 -21
  55. package/esm2022/lib/layer/layer-list/index.mjs +1 -3
  56. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +176 -785
  57. package/esm2022/lib/layer/layer-list-tool/index.mjs +1 -2
  58. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +51 -84
  59. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +7 -2
  60. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +56 -16
  61. package/esm2022/lib/layer/layer-search/index.mjs +2 -0
  62. package/esm2022/lib/layer/layer-search/layer-search.component.mjs +65 -0
  63. package/esm2022/lib/layer/layer-unavailable/index.mjs +3 -0
  64. package/esm2022/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.mjs +25 -0
  65. package/esm2022/lib/layer/layer-unavailable/layer-unavailable.component.mjs +35 -0
  66. package/esm2022/lib/layer/layer-viewer/index.mjs +3 -0
  67. package/esm2022/lib/layer/layer-viewer/layer-viewer.component.mjs +226 -0
  68. package/esm2022/lib/layer/layer-viewer/layer-viewer.interface.mjs +2 -0
  69. package/esm2022/lib/layer/layer-viewer-bottom-actions/index.mjs +2 -0
  70. package/esm2022/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.mjs +207 -0
  71. package/esm2022/lib/layer/layer-visibility-button/index.mjs +2 -0
  72. package/esm2022/lib/layer/layer-visibility-button/layer-visibility-button.component.mjs +83 -0
  73. package/esm2022/lib/layer/layer.module.mjs +51 -33
  74. package/esm2022/lib/layer/shared/index.mjs +2 -1
  75. package/esm2022/lib/layer/shared/layer-controller.mjs +316 -0
  76. package/esm2022/lib/layer/shared/layer-selection.mjs +38 -0
  77. package/esm2022/lib/layer/shared/layer.service.mjs +31 -16
  78. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  79. package/esm2022/lib/layer/shared/layers/any-layer.mjs +1 -1
  80. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  81. package/esm2022/lib/layer/shared/layers/image-layer.mjs +8 -3
  82. package/esm2022/lib/layer/shared/layers/index.mjs +6 -1
  83. package/esm2022/lib/layer/shared/layers/layer-base.mjs +199 -0
  84. package/esm2022/lib/layer/shared/layers/layer-group.interface.mjs +2 -0
  85. package/esm2022/lib/layer/shared/layers/layer-group.mjs +120 -0
  86. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -11
  87. package/esm2022/lib/layer/shared/layers/layer.mjs +108 -117
  88. package/esm2022/lib/layer/shared/layers/linked/index.mjs +4 -0
  89. package/esm2022/lib/layer/shared/layers/linked/linked-layer.interface.mjs +12 -0
  90. package/esm2022/lib/layer/shared/layers/linked/linked-layer.mjs +242 -0
  91. package/esm2022/lib/layer/shared/layers/linked/linked-layer.utils.mjs +70 -0
  92. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +8 -3
  93. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +9 -3
  94. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +8 -3
  95. package/esm2022/lib/layer/utils/layer.utils.mjs +47 -1
  96. package/esm2022/lib/layer/utils/outputLegend.mjs +5 -1
  97. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
  98. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +8 -6
  99. package/esm2022/lib/map/map-center/map-center.component.mjs +1 -2
  100. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +1 -1
  101. package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
  102. package/esm2022/lib/map/shared/hover-feature.directive.mjs +1 -9
  103. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +113 -123
  104. package/esm2022/lib/map/shared/map.abstract.mjs +4 -3
  105. package/esm2022/lib/map/shared/map.mjs +7 -243
  106. package/esm2022/lib/map/shared/map.service.mjs +1 -1
  107. package/esm2022/lib/map/shared/map.utils.mjs +3 -3
  108. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -5
  109. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +1 -3
  110. package/esm2022/lib/map/utils/index.mjs +2 -0
  111. package/esm2022/lib/map/utils/layer-watcher.mjs +45 -13
  112. package/esm2022/lib/measure/measurer/measurer.component.mjs +7 -25
  113. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +6 -18
  114. package/esm2022/lib/offline/offline.provider.mjs +10 -11
  115. package/esm2022/lib/print/shared/print.service.mjs +3 -3
  116. package/esm2022/lib/query/shared/query.directive.mjs +9 -5
  117. package/esm2022/lib/query/shared/query.service.mjs +7 -7
  118. package/esm2022/lib/query/shared/query.utils.mjs +5 -1
  119. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +15 -9
  120. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +1 -10
  121. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
  122. package/esm2022/lib/search/shared/sources/workspace.mjs +1 -1
  123. package/esm2022/lib/workspace/shared/edition-workspace.mjs +6 -4
  124. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +19 -17
  125. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +17 -2
  126. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +22 -4
  127. package/esm2022/lib/workspace/shared/workspace.utils.mjs +6 -3
  128. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  129. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +6 -2
  130. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +4 -3
  131. package/fesm2022/igo2-geo.mjs +22952 -22018
  132. package/fesm2022/igo2-geo.mjs.map +1 -1
  133. package/lib/datasource/shared/capabilities.service.d.ts +7 -2
  134. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +2 -2
  135. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +5 -5
  136. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +57 -20
  137. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +115 -13
  138. package/lib/directions/directions-results/directions-results.component.d.ts +50 -16
  139. package/lib/directions/directions-sources/directions-source.d.ts +2 -2
  140. package/lib/directions/directions-sources/osrm-directions-source.d.ts +2 -2
  141. package/lib/directions/directions.component.d.ts +5 -5
  142. package/lib/directions/shared/directions.enum.d.ts +42 -1
  143. package/lib/directions/shared/directions.interface.d.ts +50 -25
  144. package/lib/directions/shared/directions.service.d.ts +46 -8
  145. package/lib/directions/shared/directions.utils.d.ts +102 -23
  146. package/lib/directions/shared/store.d.ts +3 -3
  147. package/lib/download/download-button/download-button.component.d.ts +4 -8
  148. package/lib/download/shared/download.service.d.ts +1 -1
  149. package/lib/draw/draw/draw.component.d.ts +2 -2
  150. package/lib/draw/shared/draw.utils.d.ts +2 -1
  151. package/lib/environment/environment.interface.d.ts +2 -0
  152. package/lib/feature/shared/feature-store.utils.d.ts +1 -1
  153. package/lib/feature/shared/feature.interfaces.d.ts +1 -1
  154. package/lib/feature/shared/store.d.ts +1 -1
  155. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  156. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  157. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +2 -2
  158. package/lib/filter/shared/filterable-datasource.pipe.d.ts +2 -2
  159. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +3 -3
  160. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +3 -5
  161. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -5
  162. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  163. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +5 -5
  164. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  165. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +2 -7
  166. package/lib/import-export/export-button/export-button.component.d.ts +3 -7
  167. package/lib/import-export/import-export/import-export.component.d.ts +1 -2
  168. package/lib/import-export/shared/export.service.d.ts +2 -2
  169. package/lib/layer/index.d.ts +9 -4
  170. package/lib/layer/layer-group/index.d.ts +1 -0
  171. package/lib/layer/layer-group/layer-group.component.d.ts +30 -0
  172. package/lib/layer/layer-item/layer-item.component.d.ts +19 -42
  173. package/lib/layer/layer-legend/layer-legend.component.d.ts +2 -5
  174. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +6 -7
  175. package/lib/layer/layer-list/index.d.ts +0 -2
  176. package/lib/layer/layer-list/layer-list.component.d.ts +51 -128
  177. package/lib/layer/layer-list-tool/index.d.ts +0 -1
  178. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +19 -26
  179. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +5 -1
  180. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +9 -8
  181. package/lib/layer/layer-search/index.d.ts +1 -0
  182. package/lib/layer/layer-search/layer-search.component.d.ts +16 -0
  183. package/lib/layer/layer-unavailable/index.d.ts +2 -0
  184. package/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.d.ts +10 -0
  185. package/lib/layer/layer-unavailable/layer-unavailable.component.d.ts +11 -0
  186. package/lib/layer/layer-viewer/index.d.ts +2 -0
  187. package/lib/layer/layer-viewer/layer-viewer.component.d.ts +52 -0
  188. package/lib/layer/layer-viewer/layer-viewer.interface.d.ts +22 -0
  189. package/lib/layer/layer-viewer-bottom-actions/index.d.ts +1 -0
  190. package/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.d.ts +44 -0
  191. package/lib/layer/layer-visibility-button/index.d.ts +1 -0
  192. package/lib/layer/layer-visibility-button/layer-visibility-button.component.d.ts +22 -0
  193. package/lib/layer/layer.module.d.ts +18 -6
  194. package/lib/layer/shared/index.d.ts +1 -0
  195. package/lib/layer/shared/layer-controller.d.ts +81 -0
  196. package/lib/layer/shared/layer-selection.d.ts +14 -0
  197. package/lib/layer/shared/layer.service.d.ts +9 -5
  198. package/lib/layer/shared/layers/any-layer.d.ts +3 -6
  199. package/lib/layer/shared/layers/any-layer.interface.d.ts +8 -6
  200. package/lib/layer/shared/layers/image-layer.d.ts +5 -2
  201. package/lib/layer/shared/layers/image-layer.interface.d.ts +1 -4
  202. package/lib/layer/shared/layers/index.d.ts +5 -0
  203. package/lib/layer/shared/layers/layer-base.d.ts +75 -0
  204. package/lib/layer/shared/layers/layer-group.d.ts +32 -0
  205. package/lib/layer/shared/layers/layer-group.interface.d.ts +8 -0
  206. package/lib/layer/shared/layers/layer.d.ts +27 -45
  207. package/lib/layer/shared/layers/layer.interface.d.ts +23 -41
  208. package/lib/layer/shared/layers/linked/index.d.ts +3 -0
  209. package/lib/layer/shared/layers/linked/linked-layer.d.ts +35 -0
  210. package/lib/layer/shared/layers/linked/linked-layer.interface.d.ts +32 -0
  211. package/lib/layer/shared/layers/linked/linked-layer.utils.d.ts +9 -0
  212. package/lib/layer/shared/layers/tile-layer.d.ts +5 -2
  213. package/lib/layer/shared/layers/vector-layer.d.ts +7 -3
  214. package/lib/layer/shared/layers/vectortile-layer.d.ts +5 -2
  215. package/lib/layer/utils/layer.utils.d.ts +12 -2
  216. package/lib/layer/utils/outputLegend.d.ts +2 -2
  217. package/lib/map/shared/controllers/geolocation.interface.d.ts +2 -1
  218. package/lib/map/shared/hover-feature.directive.d.ts +0 -1
  219. package/lib/map/shared/linkedLayers.utils.d.ts +13 -17
  220. package/lib/map/shared/map.abstract.d.ts +12 -29
  221. package/lib/map/shared/map.d.ts +10 -85
  222. package/lib/map/shared/map.service.d.ts +1 -1
  223. package/lib/map/shared/map.utils.d.ts +5 -3
  224. package/lib/map/utils/index.d.ts +1 -0
  225. package/lib/map/utils/layer-watcher.d.ts +18 -8
  226. package/lib/measure/measurer/measurer.component.d.ts +0 -8
  227. package/lib/metadata/metadata-button/metadata-button.component.d.ts +3 -7
  228. package/lib/offline/offline.provider.d.ts +1 -1
  229. package/lib/query/shared/query.service.d.ts +1 -1
  230. package/lib/query/shared/query.utils.d.ts +2 -1
  231. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  232. package/lib/search/shared/search-pointer-summary.directive.d.ts +0 -1
  233. package/lib/search/shared/sources/workspace.interfaces.d.ts +1 -1
  234. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  235. package/locale/en.geo.json +104 -89
  236. package/locale/fr.geo.json +103 -89
  237. package/package.json +5 -5
  238. package/src/geo-theme.scss +1 -1
  239. package/src/lib/directions/directions-inputs/directions-inputs.theming.scss +21 -0
  240. package/src/lib/directions/directions.theming.scss +2 -0
  241. package/src/lib/layer/layer-group/layer-group.theme.scss +28 -0
  242. package/src/lib/layer/layer-item/layer-item.theme.scss +4 -9
  243. package/src/lib/layer/layer-legend/layer-legend.theme.scss +30 -0
  244. package/src/lib/layer/layer-list/layer-list.theme.scss +50 -0
  245. package/src/lib/layer/layer-unavailable/layer-unavailable.theme.scss +19 -0
  246. package/src/lib/layer/layer-viewer/_layer-viewer.theme.scss +16 -0
  247. package/src/lib/layer/layer-visibility-button/layer-visibility-button.theme.scss +27 -0
  248. package/src/lib/layer/layer.theming.scss +14 -3
  249. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +0 -70
  250. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +0 -19
  251. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +0 -7
  252. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +0 -19
  253. package/lib/layer/layer-list/layer-list.enum.d.ts +0 -15
  254. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +0 -5
  255. package/src/lib/layer/layer-legend/layer-legend.theming.scss +0 -10
@@ -369,8 +369,9 @@ export class FeatureStoreSelectionStrategy extends EntityStoreStrategy {
369
369
  * features.
370
370
  */
371
371
  addOverlayLayer() {
372
- if (this.overlayStore.layer.map === undefined) {
373
- this.map.addLayer(this.overlayStore.layer);
372
+ const layer = this.overlayStore.layer;
373
+ if (!this.map.layerController.getById(layer.id)) {
374
+ this.map.layerController.add(layer);
374
375
  }
375
376
  }
376
377
  /**
@@ -378,7 +379,7 @@ export class FeatureStoreSelectionStrategy extends EntityStoreStrategy {
378
379
  */
379
380
  removeOverlayLayer() {
380
381
  this.overlayStore.source.ol.clear();
381
- this.map.removeLayer(this.overlayStore.layer);
382
+ this.map.layerController.remove(this.overlayStore.layer);
382
383
  }
383
384
  }
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLG1CQUFtQixFQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBSTdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEMsT0FBTyxvQkFBc0MsTUFBTSx3QkFBd0IsQ0FBQztBQUc1RSxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUtqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxvQkFBb0I7SUFDL0QsWUFBWSxPQUFPO1FBQ2pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsbUJBQW1CO0lBa0M5QztJQWpDdEI7OztPQUdHO0lBQ0ssZ0JBQWdCLENBQUM7SUFFakIsdUJBQXVCLENBQTBCO0lBRWpELDZCQUE2QixDQUEwQjtJQUUvRDs7T0FFRztJQUNLLFFBQVEsQ0FBZTtJQUV2QixNQUFNLENBQWdCO0lBRTlCOztPQUVHO0lBQ0gsSUFB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O1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5S2V5LFxuICBFbnRpdHlSZWNvcmQsXG4gIEVudGl0eVN0b3JlU3RyYXRlZ3lcbn0gZnJvbSAnQGlnbzIvY29tbW9uL2VudGl0eSc7XG5cbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xuaW1wb3J0IHsgdW5CeUtleSB9IGZyb20gJ29sL09ic2VydmFibGUnO1xuaW1wb3J0IHsgRXZlbnRzS2V5IH0gZnJvbSAnb2wvZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgT2xEcmFnQm94SW50ZXJhY3Rpb24sIHsgRHJhZ0JveEV2ZW50IH0gZnJvbSAnb2wvaW50ZXJhY3Rpb24vRHJhZ0JveCc7XG5pbXBvcnQgeyBEcmFnQm94RXZlbnQgYXMgT2xEcmFnQm94RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmFnQm94JztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgc2tpcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcyc7XG5pbXBvcnQgeyBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9yLWxheWVyJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IGN0cmxLZXlEb3duIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xuaW1wb3J0IHsgRmVhdHVyZU1vdGlvbiB9IGZyb20gJy4uL2ZlYXR1cmUuZW51bXMnO1xuaW1wb3J0IHtcbiAgRmVhdHVyZSxcbiAgRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3lPcHRpb25zXG59IGZyb20gJy4uL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5cbmV4cG9ydCBjbGFzcyBPbERyYWdTZWxlY3RJbnRlcmFjdGlvbiBleHRlbmRzIE9sRHJhZ0JveEludGVyYWN0aW9uIHtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBzdHJhdGVneSBzeW5jaHJvbml6ZXMgYSBzdG9yZSBhbmQgYSBsYXllciBzZWxlY3RlZCBlbnRpdGllcy5cbiAqIFRoZSBzdG9yZSA8LT4gbGF5ZXIgYmluZGluZyBpcyBhIHR3by13YXkgYmluZGluZy5cbiAqXG4gKiBJbiBtYW55IGNhc2VzLCBhIHNpbmdsZSBzdHJhdGVneSBib3VuZCB0byBtdWx0aXBsZSBzdG9yZXNcbiAqIHdpbGwgeWllbGQgYmV0dGVyIHJlc3VsdHMgdGhhdCBtdWx0aXBsZSBzdHJhdGVnaWVzIHdpdGggZWFjaCB0aGVpclxuICogb3duIHN0b3JlLiBJbiB0aGUgbGF0dGVyIHNjZW5hcmlvLCBhIGNsaWNrIG9uIG92ZXJsYXBwaW5nIGZlYXR1cmVzXG4gKiB3b3VsZCB0cmlnZ2VyIHRoZSBzdHJhdGVneSBvZiBlYWNoIGxheWVyIGFuZCB0aGV5IHdvdWxkIGNhbmNlbFxuICogZWFjaCBvdGhlciBhcyB3ZWxsIGFzIG1vdmUgdGhlIG1hcCB2aWV3IGFyb3VuZCBuZWVkbGVzc2x5LlxuICovXG5leHBvcnQgY2xhc3MgRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBFbnRpdHlTdG9yZVN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIExpc3RlbmVyIHRvIHRoZSBtYXAgY2xpY2sgZXZlbnQgdGhhdCBhbGxvd3Mgc2VsZWN0aW5nIGEgZmVhdHVyZVxuICAgKiBieSBjbGlja2luZyBvbiB0aGUgbWFwXG4gICAqL1xuICBwcml2YXRlIG1hcENsaWNrTGlzdGVuZXI7XG5cbiAgcHJpdmF0ZSBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbjogT2xEcmFnU2VsZWN0SW50ZXJhY3Rpb247XG5cbiAgcHJpdmF0ZSBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbkVuZEtleTogRXZlbnRzS2V5IHwgRXZlbnRzS2V5W107XG5cbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbiB0byBhbGwgc3RvcmVzIHNlbGVjdGVkIGVudGl0aWVzXG4gICAqL1xuICBwcml2YXRlIHN0b3JlcyQkOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBtb3Rpb246IEZlYXR1cmVNb3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBtYXAgdGhlIGxheWVycyBiZWxvbmcgdG9cbiAgICovXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZlYXR1cmUgc3RvcmUgdGhhdCdsbCBjb250YWluIHRoZSBzZWxlY3RlZCBmZWF0dXJlcy4gSXQgaGFzIGl0J3Mgb3duXG4gICAqIGxheWVyLCBzaGFyZWQgYnkgYWxsIHRoZSBzdG9yZXMgdGhpcyBzdGFyZXRneSBpcyBib3VuZCB0by5cbiAgICovXG4gIGdldCBvdmVybGF5U3RvcmUoKTogRmVhdHVyZVN0b3JlIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVN0b3JlO1xuICB9XG4gIHByaXZhdGUgX292ZXJsYXlTdG9yZTogRmVhdHVyZVN0b3JlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneU9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgICB0aGlzLnNldE1vdGlvbihvcHRpb25zLm1vdGlvbik7XG4gICAgdGhpcy5fb3ZlcmxheVN0b3JlID0gdGhpcy5jcmVhdGVPdmVybGF5U3RvcmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgZm9yY2UgdGhpcyBzdHJhdGVneSdzXG4gICAqIHJlYWN0aXZhdGlvbiB0byBwcm9wZXJseSBzZXR1cCB3YXRjaGVycy5cbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcbiAgICovXG4gIGJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgIC8vIEZvcmNlIHJlYWN0aXZhdGlvblxuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIGZvcmNlIHRoaXMgc3RyYXRlZ3knc1xuICAgKiByZWFjdGl2YXRpb24gdG8gcHJvcGVybHkgc2V0dXAgd2F0Y2hlcnMuXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXG4gICAqL1xuICB1bmJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgLy8gRm9yY2UgcmVhY3RpdmF0aW9uXG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbW90aW9uIHRvIGFwcGx5IG9uIHNlbGVjdFxuICAgKiBAcGFyYW0gbW90aW9uIEZlYXR1cmUgbW90aW9uXG4gICAqL1xuICBzZXRNb3Rpb24obW90aW9uOiBGZWF0dXJlTW90aW9uKSB7XG4gICAgdGhpcy5tb3Rpb24gPSBtb3Rpb247XG4gIH1cblxuICAvKipcbiAgICogVW5zZWxlY3QgYWxsIGVudGl0aWVzLCBmcm9tIGFsbCBzdG9yZXNcbiAgICovXG4gIHVuc2VsZWN0QWxsKCkge1xuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHtcbiAgICAgIHN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7IHNlbGVjdGVkOiBmYWxzZSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgb3ZlcmxheVxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5vdmVybGF5U3RvcmUuc291cmNlLm9sLmNsZWFyKCk7XG4gICAgdGhpcy5vdmVybGF5U3RvcmUuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIHRoZSBzZWxlY3Rpb24gd2l0aG91dCByZW1vdmluZyB0aGUgc2VsZWN0aW9uXG4gICAqIG92ZXJsYXkuXG4gICAqL1xuICBkZWFjdGl2YXRlU2VsZWN0aW9uKCkge1xuICAgIHRoaXMudW5saXN0ZW5Ub01hcENsaWNrKCk7XG4gICAgdGhpcy5yZW1vdmVEcmFnQm94SW50ZXJhY3Rpb24oKTtcbiAgICB0aGlzLnVud2F0Y2hBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIG92ZXJsYXkgbGF5ZXIsIHNldHVwIHRoZSBtYXAgY2xpY2sgbHNpdGVuZXIgYW5kXG4gICAqIHN0YXJ0IHdhdGNoaW5nIGZvciBzdG9yZXMgc2VsZWN0aW9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvQWN0aXZhdGUoKSB7XG4gICAgdGhpcy5hZGRPdmVybGF5TGF5ZXIoKTtcbiAgICB0aGlzLmxpc3RlblRvTWFwQ2xpY2soKTtcbiAgICBpZiAodGhpcy5vcHRpb25zLmRyYWdCb3ggPT09IHRydWUpIHtcbiAgICAgIHRoaXMuYWRkRHJhZ0JveEludGVyYWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMud2F0Y2hBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIG92ZXJsYXkgbGF5ZXIsIHJlbW92ZSB0aGUgbWFwIGNsaWNrIGxzaXRlbmVyIGFuZFxuICAgKiBzdG9wIHdhdGNoaW5nIGZvciBzdG9yZXMgc2VsZWN0aW9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvRGVhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLmRlYWN0aXZhdGVTZWxlY3Rpb24oKTtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlMYXllcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHNpbmdsZSBvYnNlcnZhYmxlIG9mIGFsbCB0aGUgc3RvcmVzLiBXaXRoIGEgc2luZ2xlIG9ic2VydmFibGUsXG4gICAqIGZlYXR1cmVzIGNhbiBiZSBhZGRlZCBhbGwgYXQgb25jZSB0byB0aGUgb3ZlcmxheSBsYXllciBhbmQgYSBzaW5nbGVcbiAgICogbW90aW9uIGNhbiBiZSBwZXJmb3JtZWQuIE11bHRpcGxlIG9ic2VydmFibGUgd291bGQgaGF2ZVxuICAgKiBhIGNhbmNlbGxpbmcgZWZmZWN0IG9uIGVhY2ggb3RoZXIuXG4gICAqL1xuICBwcml2YXRlIHdhdGNoQWxsKCkge1xuICAgIHRoaXMudW53YXRjaEFsbCgpO1xuXG4gICAgY29uc3Qgc3RvcmVzJCA9IHRoaXMuc3RvcmVzLm1hcCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xuICAgICAgcmV0dXJuIHN0b3JlLnN0YXRlVmlld1xuICAgICAgICAubWFueUJ5JCgocmVjb3JkOiBFbnRpdHlSZWNvcmQ8RmVhdHVyZT4pID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVjb3JkLnN0YXRlLnNlbGVjdGVkID09PSB0cnVlO1xuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlY29yZHM6IEVudGl0eVJlY29yZDxGZWF0dXJlPltdKSA9PlxuICAgICAgICAgICAgcmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gcmVjb3JkLmVudGl0eSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfSk7XG4gICAgdGhpcy5zdG9yZXMkJCA9IGNvbWJpbmVMYXRlc3Qoc3RvcmVzJClcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoNSksXG4gICAgICAgIHNraXAoMSksIC8vIFNraXAgaW50aWFsIHNlbGVjdGlvblxuICAgICAgICBtYXAoKGZlYXR1cmVzOiBGZWF0dXJlW11bXSkgPT4gZmVhdHVyZXMucmVkdWNlKChhLCBiKSA9PiBhLmNvbmNhdChiKSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChmZWF0dXJlczogRmVhdHVyZVtdKSA9PiB0aGlzLm9uU2VsZWN0RnJvbVN0b3JlKGZlYXR1cmVzKSk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCB3YXRjaGluZyBmb3Igc2VsZWN0aW9uIGluIGFsbCBzdG9yZXMuXG4gICAqL1xuICBwcml2YXRlIHVud2F0Y2hBbGwoKSB7XG4gICAgaWYgKHRoaXMuc3RvcmVzJCQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zdG9yZXMkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSAnc2luZ2xlY2xpY2snIGxpc3RlbmVyIHRvIHRoZSBtYXAgdGhhdCdsbCBhbGxvdyBzZWxlY3RpbmdcbiAgICogZmVhdHVyZXMgYnkgY2xpY2tpbmcgb24gdGhlIG1hcC4gVGhlIHNlbGVjdGlvbiB3aWxsIGJlIHBlcmZvcm1lZFxuICAgKiBvbmx5IG9uIHRoZSBsYXllcnMgYm91bmQgdG8gdGhpcyBzdHJhdGVneS5cbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9NYXBDbGljaygpIHtcbiAgICB0aGlzLm1hcENsaWNrTGlzdGVuZXIgPSB0aGlzLm1hcC5vbC5vbihcbiAgICAgICdzaW5nbGVjbGljaycsXG4gICAgICAoZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55PikgPT4ge1xuICAgICAgICB0aGlzLm9uTWFwQ2xpY2soZXZlbnQpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBtYXAgY2xpY2sgbGlzdGVuZXJcbiAgICovXG4gIHByaXZhdGUgdW5saXN0ZW5Ub01hcENsaWNrKCkge1xuICAgIHVuQnlLZXkodGhpcy5tYXBDbGlja0xpc3RlbmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBtYXAgY2xpY2ssIHNlbGVjdCBmZWF0dXJlIGF0IHBpeGVsXG4gICAqIEBwYXJhbSBldmVudCBPTCBNYXBCcm93c2VyUG9pbnRlckV2ZW50XG4gICAqL1xuICBwcml2YXRlIG9uTWFwQ2xpY2soZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55Pikge1xuICAgIGNvbnN0IGV4Y2x1c2l2ZSA9ICFjdHJsS2V5RG93bihldmVudCk7XG4gICAgY29uc3QgcmV2ZXJzZSA9ICFleGNsdXNpdmU7XG4gICAgY29uc3Qgb2xGZWF0dXJlcyA9IGV2ZW50Lm1hcC5nZXRGZWF0dXJlc0F0UGl4ZWwoZXZlbnQucGl4ZWwsIHtcbiAgICAgIGhpdFRvbGVyYW5jZTogdGhpcy5vcHRpb25zLmhpdFRvbGVyYW5jZSB8fCAwLFxuICAgICAgbGF5ZXJGaWx0ZXI6IChvbExheWVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0b3JlT2xMYXllciA9IHRoaXMuc3RvcmVzLmZpbmQoKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHtcbiAgICAgICAgICByZXR1cm4gc3RvcmUubGF5ZXI/Lm9sID09PSBvbExheWVyO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHN0b3JlT2xMYXllciAhPT0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0pIGFzIE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdO1xuICAgIHRoaXMub25TZWxlY3RGcm9tTWFwKG9sRmVhdHVyZXMsIGV4Y2x1c2l2ZSwgcmV2ZXJzZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZHJhZyBib3ggaW50ZXJhY3Rpb24gYW5kLCBvbiBkcmFnIGJveCBlbmQsIHNlbGVjdCBmZWF0dXJlc1xuICAgKi9cbiAgcHJpdmF0ZSBhZGREcmFnQm94SW50ZXJhY3Rpb24oKSB7XG4gICAgbGV0IG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uO1xuICAgIGNvbnN0IG9sSW50ZXJhY3Rpb25zID0gdGhpcy5tYXAub2wuZ2V0SW50ZXJhY3Rpb25zKCkuZ2V0QXJyYXkoKTtcblxuICAgIC8vIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBkcmFnYm94IGludGVyYWN0aW9uLCBzbyBmaW5kIHRoZSBjdXJyZW50IG9uZSwgaWYgYW55XG4gICAgLy8gRG9uJ3Qga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBkcmFnYm94IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudFxuICAgIC8vIHRvIHJlbW92ZSBpdCB3aGVuIHRoaXMgc3RhcnRlZ3kgaXMgZGVhY3RpdmF0ZWRcbiAgICBmb3IgKGNvbnN0IG9sSW50ZXJhY3Rpb24gb2Ygb2xJbnRlcmFjdGlvbnMpIHtcbiAgICAgIGlmIChvbEludGVyYWN0aW9uIGluc3RhbmNlb2YgT2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24pIHtcbiAgICAgICAgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBvbEludGVyYWN0aW9uO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gSWYgbm8gZHJhZyBib3ggaW50ZXJhY3Rpb24gaXMgZm91bmQsIGNyZWF0ZSBhIG5ldyBvbmUgYW5kIGFkZCBpdCB0byB0aGUgbWFwXG4gICAgaWYgKG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uID0gbmV3IE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uKHtcbiAgICAgICAgY29uZGl0aW9uOiBjdHJsS2V5RG93blxuICAgICAgfSk7XG4gICAgICB0aGlzLm1hcC5vbC5hZGRJbnRlcmFjdGlvbihvbERyYWdTZWxlY3RJbnRlcmFjdGlvbik7XG4gICAgICB0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uID0gb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb247XG4gICAgfVxuXG4gICAgdGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbkVuZEtleSA9IG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uLm9uKFxuICAgICAgJ2JveGVuZCcsXG4gICAgICAoZXZlbnQ6IERyYWdCb3hFdmVudCkgPT4gdGhpcy5vbkRyYWdCb3hFbmQoZXZlbnQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgZHJhZyBib3ggaW50ZXJhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlRHJhZ0JveEludGVyYWN0aW9uKCkge1xuICAgIGlmICh0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHVuQnlLZXkodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbkVuZEtleSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIGRyYWdib3ggZW5kLCBzZWxlY3QgZmVhdHVyZXMgaW4gZHJhZyBib3hcbiAgICogQHBhcmFtIGV2ZW50IE9MIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcbiAgICovXG4gIHByaXZhdGUgb25EcmFnQm94RW5kKGV2ZW50OiBPbERyYWdCb3hFdmVudCkge1xuICAgIGNvbnN0IGV4Y2x1c2l2ZSA9ICFjdHJsS2V5RG93bihldmVudC5tYXBCcm93c2VyRXZlbnQpO1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBhbnk7XG4gICAgY29uc3QgZXh0ZW50ID0gdGFyZ2V0LmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XG4gICAgY29uc3Qgb2xGZWF0dXJlcyA9IHRoaXMuc3RvcmVzLnJlZHVjZShcbiAgICAgIChhY2M6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLCBzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB7XG4gICAgICAgIGNvbnN0IG9sU291cmNlID0gc3RvcmUubGF5ZXIub2wuZ2V0U291cmNlKCk7XG4gICAgICAgIGFjYy5wdXNoKC4uLm9sU291cmNlLmdldEZlYXR1cmVzSW5FeHRlbnQoZXh0ZW50KSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAgW11cbiAgICApO1xuICAgIHRoaXMub25TZWxlY3RGcm9tTWFwKG9sRmVhdHVyZXMsIGV4Y2x1c2l2ZSwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gZmVhdHVyZXMgYXJlIHNlbGVjdGVkIGZyb20gdGhlIHN0b3JlLCBhZGRcbiAgICogdGhlbSB0byB0aGlzIHN0YXJ0ZWd5J3Mgb3ZlcmxheSBsYXllciAoc2VsZWN0IG9uIG1hcClcbiAgICogQHBhcmFtIGZlYXR1cmVzIFN0b3JlIGZlYXR1cmVzXG4gICAqL1xuICBwcml2YXRlIG9uU2VsZWN0RnJvbVN0b3JlKGZlYXR1cmVzOiBGZWF0dXJlW10pIHtcbiAgICBjb25zdCBtb3Rpb24gPSB0aGlzLm1vdGlvbjtcbiAgICBjb25zdCBvbE92ZXJsYXlGZWF0dXJlcyA9IHRoaXMub3ZlcmxheVN0b3JlLmxheWVyLm9sXG4gICAgICAuZ2V0U291cmNlKClcbiAgICAgIC5nZXRGZWF0dXJlcygpO1xuICAgIGNvbnN0IG92ZXJsYXlGZWF0dXJlc0tleXMgPSBvbE92ZXJsYXlGZWF0dXJlcy5tYXAoXG4gICAgICAob2xGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pID0+IG9sRmVhdHVyZS5nZXRJZCgpXG4gICAgKTtcbiAgICBjb25zdCBmZWF0dXJlc0tleXMgPSBmZWF0dXJlcy5tYXAodGhpcy5vdmVybGF5U3RvcmUuZ2V0S2V5KTtcblxuICAgIGxldCBkb01vdGlvbjtcbiAgICBpZiAoZmVhdHVyZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkb01vdGlvbiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBkb01vdGlvbiA9XG4gICAgICAgIG92ZXJsYXlGZWF0dXJlc0tleXMubGVuZ3RoICE9PSBmZWF0dXJlc0tleXMubGVuZ3RoIHx8XG4gICAgICAgICFvdmVybGF5RmVhdHVyZXNLZXlzLmV2ZXJ5KFxuICAgICAgICAgIChrZXk6IEVudGl0eUtleSkgPT4gZmVhdHVyZXNLZXlzLmluZGV4T2Yoa2V5KSA+PSAwXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5vdmVybGF5U3RvcmUuc2V0TGF5ZXJGZWF0dXJlcyhcbiAgICAgIGZlYXR1cmVzLFxuICAgICAgZG9Nb3Rpb24gPyBtb3Rpb24gOiBGZWF0dXJlTW90aW9uLk5vbmUsXG4gICAgICB0aGlzLm9wdGlvbnMudmlld1NjYWxlLFxuICAgICAgdGhpcy5vcHRpb25zLmFyZWFSYXRpbyxcbiAgICAgIHRoaXMub3B0aW9ucy5nZXRGZWF0dXJlSWRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gZmVhdHVyZXMgYXJlIHNlbGVjdGVkIGZyb20gdGhlIG1hcCwgYWxzbyBzZWxlY3QgdGhlbVxuICAgKiBpbiB0aGVpciBzdG9yZS5cbiAgICogQHBhcmFtIG9sRmVhdHVyZXMgT0wgZmVhdHVyZSBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIG9uU2VsZWN0RnJvbU1hcChcbiAgICBvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSxcbiAgICBleGNsdXNpdmU6IGJvb2xlYW4sXG4gICAgcmV2ZXJzZTogYm9vbGVhblxuICApIHtcbiAgICBjb25zdCBncm91cGVkRmVhdHVyZXMgPSB0aGlzLmdyb3VwRmVhdHVyZXNCeVN0b3JlKG9sRmVhdHVyZXMpO1xuXG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xuICAgICAgY29uc3QgZmVhdHVyZXMgPSBncm91cGVkRmVhdHVyZXMuZ2V0KHN0b3JlKTtcbiAgICAgIGlmIChmZWF0dXJlcyA9PT0gdW5kZWZpbmVkICYmIGV4Y2x1c2l2ZSA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnVuc2VsZWN0QWxsRmVhdHVyZXNGcm9tU3RvcmUoc3RvcmUpO1xuICAgICAgfSBlbHNlIGlmIChmZWF0dXJlcyA9PT0gdW5kZWZpbmVkICYmIGV4Y2x1c2l2ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RGZWF0dXJlc0Zyb21TdG9yZShzdG9yZSwgZmVhdHVyZXMsIGV4Y2x1c2l2ZSwgcmV2ZXJzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGZlYXR1cmVzIGluIHN0b3JlXG4gICAqIEBwYXJhbSBzdG9yZTogRmVhdHVyZSBzdG9yZVxuICAgKiBAcGFyYW0gZmVhdHVyZXMgRmVhdHVyZXNcbiAgICovXG4gIHByaXZhdGUgc2VsZWN0RmVhdHVyZXNGcm9tU3RvcmUoXG4gICAgc3RvcmU6IEZlYXR1cmVTdG9yZSxcbiAgICBmZWF0dXJlczogRmVhdHVyZVtdLFxuICAgIGV4Y2x1c2l2ZTogYm9vbGVhbixcbiAgICByZXZlcnNlOiBib29sZWFuXG4gICkge1xuICAgIGlmIChyZXZlcnNlID09PSB0cnVlKSB7XG4gICAgICBzdG9yZS5zdGF0ZS5yZXZlcnNlTWFueShmZWF0dXJlcywgWydzZWxlY3RlZCddKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RvcmUuc3RhdGUudXBkYXRlTWFueShmZWF0dXJlcywgeyBzZWxlY3RlZDogdHJ1ZSB9LCBleGNsdXNpdmUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbnNlbGVjdCBhbGwgZmVhdHVyZXMgZnJvbSBzdG9yZVxuICAgKiBAcGFyYW0gc3RvcmU6IEZlYXR1cmUgc3RvcmVcbiAgICovXG4gIHByaXZhdGUgdW5zZWxlY3RBbGxGZWF0dXJlc0Zyb21TdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XG4gICAgc3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgc2VsZWN0ZWQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdG9yZSAtPiBmZWF0dXJlcyBtYXBwaW5nIGZyb20gYSBsaXN0XG4gICAqIG9mIE9MIHNlbGVjdGVkIGZlYXR1cmVzLiBPTCBmZWF0dXJlcyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBzdG9yZVxuICAgKiB0aGV5IGFyZSBmcm9tLlxuICAgKiBAcGFyYW0gb2xGZWF0dXJlczogT0wgZmVhdHVyZSBvYmplY3RzXG4gICAqIEByZXR1cm5zIFN0b3JlIC0+IGZlYXR1cmVzIG1hcHBpbmdcbiAgICovXG4gIHByaXZhdGUgZ3JvdXBGZWF0dXJlc0J5U3RvcmUoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W11cbiAgKTogTWFwPEZlYXR1cmVTdG9yZSwgRmVhdHVyZVtdPiB7XG4gICAgY29uc3QgZ3JvdXBlZEZlYXR1cmVzID0gbmV3IE1hcDxGZWF0dXJlU3RvcmUsIEZlYXR1cmVbXT4oKTtcbiAgICBpZiAob2xGZWF0dXJlcyA9PT0gbnVsbCB8fCBvbEZlYXR1cmVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBncm91cGVkRmVhdHVyZXM7XG4gICAgfVxuXG4gICAgb2xGZWF0dXJlcy5mb3JFYWNoKChvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PikgPT4ge1xuICAgICAgY29uc3Qgc3RvcmUgPSBvbEZlYXR1cmUuZ2V0KCdfZmVhdHVyZVN0b3JlJyk7XG4gICAgICBpZiAoc3RvcmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGxldCBmZWF0dXJlcyA9IGdyb3VwZWRGZWF0dXJlcy5nZXQoc3RvcmUpO1xuICAgICAgaWYgKGZlYXR1cmVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZmVhdHVyZXMgPSBbXTtcbiAgICAgICAgZ3JvdXBlZEZlYXR1cmVzLnNldChzdG9yZSwgZmVhdHVyZXMpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmZWF0dXJlID0gc3RvcmUuZ2V0KG9sRmVhdHVyZS5nZXRJZCgpKTtcbiAgICAgIGlmIChmZWF0dXJlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZmVhdHVyZXMucHVzaChmZWF0dXJlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBncm91cGVkRmVhdHVyZXM7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG92ZXJsYXkgc3RvcmUgdGhhdCdsbCBjb250YWluIHRoZSBzZWxlY3RlZCBmZWF0dXJlcy5cbiAgICogQHJldHVybnMgT3ZlcmxheSBzdG9yZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5U3RvcmUoKTogRmVhdHVyZVN0b3JlIHtcbiAgICBjb25zdCBvdmVybGF5TGF5ZXIgPSB0aGlzLm9wdGlvbnMubGF5ZXJcbiAgICAgID8gdGhpcy5vcHRpb25zLmxheWVyXG4gICAgICA6IHRoaXMuY3JlYXRlT3ZlcmxheUxheWVyKCk7XG4gICAgcmV0dXJuIG5ldyBGZWF0dXJlU3RvcmUoW10sIHsgbWFwOiB0aGlzLm1hcCB9KS5iaW5kTGF5ZXIob3ZlcmxheUxheWVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3ZlcmxheSBzdG9yZSB0aGF0J2xsIGNvbnRhaW4gdGhlIHNlbGVjdGVkIGZlYXR1cmVzLlxuICAgKiBAcmV0dXJucyBPdmVybGF5IGxheWVyXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZU92ZXJsYXlMYXllcigpOiBWZWN0b3JMYXllciB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JMYXllcih7XG4gICAgICB6SW5kZXg6IDMwMCxcbiAgICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXG4gICAgICBzdHlsZTogdW5kZWZpbmVkLFxuICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcbiAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxuICAgICAgYnJvd3NhYmxlOiBmYWxzZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgb3ZlcmxheSBzdG9yZSdzIGxheWVyIHRvIHRoZSBtYXAgdG8gZGlzcGxheSB0aGUgc2VsZWN0ZWRcbiAgICogZmVhdHVyZXMuXG4gICAqL1xuICBwcml2YXRlIGFkZE92ZXJsYXlMYXllcigpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5U3RvcmUubGF5ZXIubWFwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWFwLmFkZExheWVyKHRoaXMub3ZlcmxheVN0b3JlLmxheWVyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBvdmVybGF5IGxheWVyIGZyb20gdGhlIG1hcFxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVPdmVybGF5TGF5ZXIoKSB7XG4gICAgdGhpcy5vdmVybGF5U3RvcmUuc291cmNlLm9sLmNsZWFyKCk7XG4gICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIodGhpcy5vdmVybGF5U3RvcmUubGF5ZXIpO1xuICB9XG59XG4iXX0=
385
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLG1CQUFtQixFQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBSTdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEMsT0FBTyxvQkFBc0MsTUFBTSx3QkFBd0IsQ0FBQztBQUc1RSxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUtqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxvQkFBb0I7SUFDL0QsWUFBWSxPQUFPO1FBQ2pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsbUJBQW1CO0lBa0M5QztJQWpDdEI7OztPQUdHO0lBQ0ssZ0JBQWdCLENBQUM7SUFFakIsdUJBQXVCLENBQTBCO0lBRWpELDZCQUE2QixDQUEwQjtJQUUvRDs7T0FFRztJQUNLLFFBQVEsQ0FBZTtJQUV2QixNQUFNLENBQWdCO0lBRTlCOztPQUVHO0lBQ0gsSUFB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O1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbnRpdHlLZXksXG4gIEVudGl0eVJlY29yZCxcbiAgRW50aXR5U3RvcmVTdHJhdGVneVxufSBmcm9tICdAaWdvMi9jb21tb24vZW50aXR5JztcblxuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCBNYXBCcm93c2VyUG9pbnRlckV2ZW50IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCc7XG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBFdmVudHNLZXkgfSBmcm9tICdvbC9ldmVudHMnO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCBPbERyYWdCb3hJbnRlcmFjdGlvbiwgeyBEcmFnQm94RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmFnQm94JztcbmltcG9ydCB7IERyYWdCb3hFdmVudCBhcyBPbERyYWdCb3hFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL0RyYWdCb3gnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzJztcbmltcG9ydCB7IFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXInO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgY3RybEtleURvd24gfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XG5pbXBvcnQgeyBGZWF0dXJlTW90aW9uIH0gZnJvbSAnLi4vZmVhdHVyZS5lbnVtcyc7XG5pbXBvcnQge1xuICBGZWF0dXJlLFxuICBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneU9wdGlvbnNcbn0gZnJvbSAnLi4vZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcblxuZXhwb3J0IGNsYXNzIE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uIGV4dGVuZHMgT2xEcmFnQm94SW50ZXJhY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIHN0cmF0ZWd5IHN5bmNocm9uaXplcyBhIHN0b3JlIGFuZCBhIGxheWVyIHNlbGVjdGVkIGVudGl0aWVzLlxuICogVGhlIHN0b3JlIDwtPiBsYXllciBiaW5kaW5nIGlzIGEgdHdvLXdheSBiaW5kaW5nLlxuICpcbiAqIEluIG1hbnkgY2FzZXMsIGEgc2luZ2xlIHN0cmF0ZWd5IGJvdW5kIHRvIG11bHRpcGxlIHN0b3Jlc1xuICogd2lsbCB5aWVsZCBiZXR0ZXIgcmVzdWx0cyB0aGF0IG11bHRpcGxlIHN0cmF0ZWdpZXMgd2l0aCBlYWNoIHRoZWlyXG4gKiBvd24gc3RvcmUuIEluIHRoZSBsYXR0ZXIgc2NlbmFyaW8sIGEgY2xpY2sgb24gb3ZlcmxhcHBpbmcgZmVhdHVyZXNcbiAqIHdvdWxkIHRyaWdnZXIgdGhlIHN0cmF0ZWd5IG9mIGVhY2ggbGF5ZXIgYW5kIHRoZXkgd291bGQgY2FuY2VsXG4gKiBlYWNoIG90aGVyIGFzIHdlbGwgYXMgbW92ZSB0aGUgbWFwIHZpZXcgYXJvdW5kIG5lZWRsZXNzbHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xuICAvKipcbiAgICogTGlzdGVuZXIgdG8gdGhlIG1hcCBjbGljayBldmVudCB0aGF0IGFsbG93cyBzZWxlY3RpbmcgYSBmZWF0dXJlXG4gICAqIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXBcbiAgICovXG4gIHByaXZhdGUgbWFwQ2xpY2tMaXN0ZW5lcjtcblxuICBwcml2YXRlIG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uOiBPbERyYWdTZWxlY3RJbnRlcmFjdGlvbjtcblxuICBwcml2YXRlIG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5OiBFdmVudHNLZXkgfCBFdmVudHNLZXlbXTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIGFsbCBzdG9yZXMgc2VsZWN0ZWQgZW50aXRpZXNcbiAgICovXG4gIHByaXZhdGUgc3RvcmVzJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIG1vdGlvbjogRmVhdHVyZU1vdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1hcCB0aGUgbGF5ZXJzIGJlbG9uZyB0b1xuICAgKi9cbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZmVhdHVyZSBzdG9yZSB0aGF0J2xsIGNvbnRhaW4gdGhlIHNlbGVjdGVkIGZlYXR1cmVzLiBJdCBoYXMgaXQncyBvd25cbiAgICogbGF5ZXIsIHNoYXJlZCBieSBhbGwgdGhlIHN0b3JlcyB0aGlzIHN0YXJldGd5IGlzIGJvdW5kIHRvLlxuICAgKi9cbiAgZ2V0IG92ZXJsYXlTdG9yZSgpOiBGZWF0dXJlU3RvcmUge1xuICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3RvcmU7XG4gIH1cbiAgcHJpdmF0ZSBfb3ZlcmxheVN0b3JlOiBGZWF0dXJlU3RvcmU7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9wdGlvbnM6IEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5T3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMuc2V0TW90aW9uKG9wdGlvbnMubW90aW9uKTtcbiAgICB0aGlzLl9vdmVybGF5U3RvcmUgPSB0aGlzLmNyZWF0ZU92ZXJsYXlTdG9yZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmQgdGhpcyBzdHJhdGVneSB0byBhIHN0b3JlIGFuZCBmb3JjZSB0aGlzIHN0cmF0ZWd5J3NcbiAgICogcmVhY3RpdmF0aW9uIHRvIHByb3Blcmx5IHNldHVwIHdhdGNoZXJzLlxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxuICAgKi9cbiAgYmluZFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcbiAgICBzdXBlci5iaW5kU3RvcmUoc3RvcmUpO1xuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgLy8gRm9yY2UgcmVhY3RpdmF0aW9uXG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVuYmluZCB0aGlzIHN0cmF0ZWd5IGZyb20gYSBzdG9yZSBhbmQgZm9yY2UgdGhpcyBzdHJhdGVneSdzXG4gICAqIHJlYWN0aXZhdGlvbiB0byBwcm9wZXJseSBzZXR1cCB3YXRjaGVycy5cbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcbiAgICovXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcbiAgICBzdXBlci51bmJpbmRTdG9yZShzdG9yZSk7XG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XG4gICAgICAvLyBGb3JjZSByZWFjdGl2YXRpb25cbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBtb3Rpb24gdG8gYXBwbHkgb24gc2VsZWN0XG4gICAqIEBwYXJhbSBtb3Rpb24gRmVhdHVyZSBtb3Rpb25cbiAgICovXG4gIHNldE1vdGlvbihtb3Rpb246IEZlYXR1cmVNb3Rpb24pIHtcbiAgICB0aGlzLm1vdGlvbiA9IG1vdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnNlbGVjdCBhbGwgZW50aXRpZXMsIGZyb20gYWxsIHN0b3Jlc1xuICAgKi9cbiAgdW5zZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xuICAgICAgc3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgc2VsZWN0ZWQ6IGZhbHNlIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBvdmVybGF5XG4gICAqL1xuICBjbGVhcigpIHtcbiAgICB0aGlzLm92ZXJsYXlTdG9yZS5zb3VyY2Uub2wuY2xlYXIoKTtcbiAgICB0aGlzLm92ZXJsYXlTdG9yZS5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgdGhlIHNlbGVjdGlvbiB3aXRob3V0IHJlbW92aW5nIHRoZSBzZWxlY3Rpb25cbiAgICogb3ZlcmxheS5cbiAgICovXG4gIGRlYWN0aXZhdGVTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy51bmxpc3RlblRvTWFwQ2xpY2soKTtcbiAgICB0aGlzLnJlbW92ZURyYWdCb3hJbnRlcmFjdGlvbigpO1xuICAgIHRoaXMudW53YXRjaEFsbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgb3ZlcmxheSBsYXllciwgc2V0dXAgdGhlIG1hcCBjbGljayBsc2l0ZW5lciBhbmRcbiAgICogc3RhcnQgd2F0Y2hpbmcgZm9yIHN0b3JlcyBzZWxlY3Rpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcbiAgICB0aGlzLmFkZE92ZXJsYXlMYXllcigpO1xuICAgIHRoaXMubGlzdGVuVG9NYXBDbGljaygpO1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZHJhZ0JveCA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5hZGREcmFnQm94SW50ZXJhY3Rpb24oKTtcbiAgICB9XG4gICAgdGhpcy53YXRjaEFsbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgb3ZlcmxheSBsYXllciwgcmVtb3ZlIHRoZSBtYXAgY2xpY2sgbHNpdGVuZXIgYW5kXG4gICAqIHN0b3Agd2F0Y2hpbmcgZm9yIHN0b3JlcyBzZWxlY3Rpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xuICAgIHRoaXMuZGVhY3RpdmF0ZVNlbGVjdGlvbigpO1xuICAgIHRoaXMucmVtb3ZlT3ZlcmxheUxheWVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2luZ2xlIG9ic2VydmFibGUgb2YgYWxsIHRoZSBzdG9yZXMuIFdpdGggYSBzaW5nbGUgb2JzZXJ2YWJsZSxcbiAgICogZmVhdHVyZXMgY2FuIGJlIGFkZGVkIGFsbCBhdCBvbmNlIHRvIHRoZSBvdmVybGF5IGxheWVyIGFuZCBhIHNpbmdsZVxuICAgKiBtb3Rpb24gY2FuIGJlIHBlcmZvcm1lZC4gTXVsdGlwbGUgb2JzZXJ2YWJsZSB3b3VsZCBoYXZlXG4gICAqIGEgY2FuY2VsbGluZyBlZmZlY3Qgb24gZWFjaCBvdGhlci5cbiAgICovXG4gIHByaXZhdGUgd2F0Y2hBbGwoKSB7XG4gICAgdGhpcy51bndhdGNoQWxsKCk7XG5cbiAgICBjb25zdCBzdG9yZXMkID0gdGhpcy5zdG9yZXMubWFwKChzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB7XG4gICAgICByZXR1cm4gc3RvcmUuc3RhdGVWaWV3XG4gICAgICAgIC5tYW55QnkkKChyZWNvcmQ6IEVudGl0eVJlY29yZDxGZWF0dXJlPikgPT4ge1xuICAgICAgICAgIHJldHVybiByZWNvcmQuc3RhdGUuc2VsZWN0ZWQgPT09IHRydWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVjb3JkczogRW50aXR5UmVjb3JkPEZlYXR1cmU+W10pID0+XG4gICAgICAgICAgICByZWNvcmRzLm1hcCgocmVjb3JkKSA9PiByZWNvcmQuZW50aXR5KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLnN0b3JlcyQkID0gY29tYmluZUxhdGVzdChzdG9yZXMkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1KSxcbiAgICAgICAgc2tpcCgxKSwgLy8gU2tpcCBpbnRpYWwgc2VsZWN0aW9uXG4gICAgICAgIG1hcCgoZmVhdHVyZXM6IEZlYXR1cmVbXVtdKSA9PiBmZWF0dXJlcy5yZWR1Y2UoKGEsIGIpID0+IGEuY29uY2F0KGIpKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGZlYXR1cmVzOiBGZWF0dXJlW10pID0+IHRoaXMub25TZWxlY3RGcm9tU3RvcmUoZmVhdHVyZXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBzZWxlY3Rpb24gaW4gYWxsIHN0b3Jlcy5cbiAgICovXG4gIHByaXZhdGUgdW53YXRjaEFsbCgpIHtcbiAgICBpZiAodGhpcy5zdG9yZXMkJCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0b3JlcyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhICdzaW5nbGVjbGljaycgbGlzdGVuZXIgdG8gdGhlIG1hcCB0aGF0J2xsIGFsbG93IHNlbGVjdGluZ1xuICAgKiBmZWF0dXJlcyBieSBjbGlja2luZyBvbiB0aGUgbWFwLiBUaGUgc2VsZWN0aW9uIHdpbGwgYmUgcGVyZm9ybWVkXG4gICAqIG9ubHkgb24gdGhlIGxheWVycyBib3VuZCB0byB0aGlzIHN0cmF0ZWd5LlxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ub01hcENsaWNrKCkge1xuICAgIHRoaXMubWFwQ2xpY2tMaXN0ZW5lciA9IHRoaXMubWFwLm9sLm9uKFxuICAgICAgJ3NpbmdsZWNsaWNrJyxcbiAgICAgIChldmVudDogTWFwQnJvd3NlclBvaW50ZXJFdmVudDxhbnk+KSA9PiB7XG4gICAgICAgIHRoaXMub25NYXBDbGljayhldmVudCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIG1hcCBjbGljayBsaXN0ZW5lclxuICAgKi9cbiAgcHJpdmF0ZSB1bmxpc3RlblRvTWFwQ2xpY2soKSB7XG4gICAgdW5CeUtleSh0aGlzLm1hcENsaWNrTGlzdGVuZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIG1hcCBjbGljaywgc2VsZWN0IGZlYXR1cmUgYXQgcGl4ZWxcbiAgICogQHBhcmFtIGV2ZW50IE9MIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcbiAgICovXG4gIHByaXZhdGUgb25NYXBDbGljayhldmVudDogTWFwQnJvd3NlclBvaW50ZXJFdmVudDxhbnk+KSB7XG4gICAgY29uc3QgZXhjbHVzaXZlID0gIWN0cmxLZXlEb3duKGV2ZW50KTtcbiAgICBjb25zdCByZXZlcnNlID0gIWV4Y2x1c2l2ZTtcbiAgICBjb25zdCBvbEZlYXR1cmVzID0gZXZlbnQubWFwLmdldEZlYXR1cmVzQXRQaXhlbChldmVudC5waXhlbCwge1xuICAgICAgaGl0VG9sZXJhbmNlOiB0aGlzLm9wdGlvbnMuaGl0VG9sZXJhbmNlIHx8IDAsXG4gICAgICBsYXllckZpbHRlcjogKG9sTGF5ZXIpID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmVPbExheWVyID0gdGhpcy5zdG9yZXMuZmluZCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBzdG9yZS5sYXllcj8ub2wgPT09IG9sTGF5ZXI7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc3RvcmVPbExheWVyICE9PSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSkgYXMgT2xGZWF0dXJlPE9sR2VvbWV0cnk+W107XG4gICAgdGhpcy5vblNlbGVjdEZyb21NYXAob2xGZWF0dXJlcywgZXhjbHVzaXZlLCByZXZlcnNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBkcmFnIGJveCBpbnRlcmFjdGlvbiBhbmQsIG9uIGRyYWcgYm94IGVuZCwgc2VsZWN0IGZlYXR1cmVzXG4gICAqL1xuICBwcml2YXRlIGFkZERyYWdCb3hJbnRlcmFjdGlvbigpIHtcbiAgICBsZXQgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb247XG4gICAgY29uc3Qgb2xJbnRlcmFjdGlvbnMgPSB0aGlzLm1hcC5vbC5nZXRJbnRlcmFjdGlvbnMoKS5nZXRBcnJheSgpO1xuXG4gICAgLy8gVGhlcmUgY2FuIG9ubHkgYmUgb25lIGRyYWdib3ggaW50ZXJhY3Rpb24sIHNvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCBpZiBhbnlcbiAgICAvLyBEb24ndCBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGRyYWdib3ggYmVjYXVzZSB3ZSBkb24ndCB3YW50XG4gICAgLy8gdG8gcmVtb3ZlIGl0IHdoZW4gdGhpcyBzdGFydGVneSBpcyBkZWFjdGl2YXRlZFxuICAgIGZvciAoY29uc3Qgb2xJbnRlcmFjdGlvbiBvZiBvbEludGVyYWN0aW9ucykge1xuICAgICAgaWYgKG9sSW50ZXJhY3Rpb24gaW5zdGFuY2VvZiBPbERyYWdTZWxlY3RJbnRlcmFjdGlvbikge1xuICAgICAgICBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbiA9IG9sSW50ZXJhY3Rpb247XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBJZiBubyBkcmFnIGJveCBpbnRlcmFjdGlvbiBpcyBmb3VuZCwgY3JlYXRlIGEgbmV3IG9uZSBhbmQgYWRkIGl0IHRvIHRoZSBtYXBcbiAgICBpZiAob2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBuZXcgT2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24oe1xuICAgICAgICBjb25kaXRpb246IGN0cmxLZXlEb3duXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWFwLm9sLmFkZEludGVyYWN0aW9uKG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5ID0gb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24ub24oXG4gICAgICAnYm94ZW5kJyxcbiAgICAgIChldmVudDogRHJhZ0JveEV2ZW50KSA9PiB0aGlzLm9uRHJhZ0JveEVuZChldmVudClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkcmFnIGJveCBpbnRlcmFjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVEcmFnQm94SW50ZXJhY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb25FbmRLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdW5CeUtleSh0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbik7XG4gICAgfVxuICAgIHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogT24gZHJhZ2JveCBlbmQsIHNlbGVjdCBmZWF0dXJlcyBpbiBkcmFnIGJveFxuICAgKiBAcGFyYW0gZXZlbnQgT0wgTWFwQnJvd3NlclBvaW50ZXJFdmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbkRyYWdCb3hFbmQoZXZlbnQ6IE9sRHJhZ0JveEV2ZW50KSB7XG4gICAgY29uc3QgZXhjbHVzaXZlID0gIWN0cmxLZXlEb3duKGV2ZW50Lm1hcEJyb3dzZXJFdmVudCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIGFueTtcbiAgICBjb25zdCBleHRlbnQgPSB0YXJnZXQuZ2V0R2VvbWV0cnkoKS5nZXRFeHRlbnQoKTtcbiAgICBjb25zdCBvbEZlYXR1cmVzID0gdGhpcy5zdG9yZXMucmVkdWNlKFxuICAgICAgKGFjYzogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sIHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHtcbiAgICAgICAgY29uc3Qgb2xTb3VyY2UgPSBzdG9yZS5sYXllci5vbC5nZXRTb3VyY2UoKTtcbiAgICAgICAgYWNjLnB1c2goLi4ub2xTb3VyY2UuZ2V0RmVhdHVyZXNJbkV4dGVudChleHRlbnQpKTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICBbXVxuICAgICk7XG4gICAgdGhpcy5vblNlbGVjdEZyb21NYXAob2xGZWF0dXJlcywgZXhjbHVzaXZlLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBmZWF0dXJlcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgc3RvcmUsIGFkZFxuICAgKiB0aGVtIHRvIHRoaXMgc3RhcnRlZ3kncyBvdmVybGF5IGxheWVyIChzZWxlY3Qgb24gbWFwKVxuICAgKiBAcGFyYW0gZmVhdHVyZXMgU3RvcmUgZmVhdHVyZXNcbiAgICovXG4gIHByaXZhdGUgb25TZWxlY3RGcm9tU3RvcmUoZmVhdHVyZXM6IEZlYXR1cmVbXSkge1xuICAgIGNvbnN0IG1vdGlvbiA9IHRoaXMubW90aW9uO1xuICAgIGNvbnN0IG9sT3ZlcmxheUZlYXR1cmVzID0gdGhpcy5vdmVybGF5U3RvcmUubGF5ZXIub2xcbiAgICAgIC5nZXRTb3VyY2UoKVxuICAgICAgLmdldEZlYXR1cmVzKCk7XG4gICAgY29uc3Qgb3ZlcmxheUZlYXR1cmVzS2V5cyA9IG9sT3ZlcmxheUZlYXR1cmVzLm1hcChcbiAgICAgIChvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PikgPT4gb2xGZWF0dXJlLmdldElkKClcbiAgICApO1xuICAgIGNvbnN0IGZlYXR1cmVzS2V5cyA9IGZlYXR1cmVzLm1hcCh0aGlzLm92ZXJsYXlTdG9yZS5nZXRLZXkpO1xuXG4gICAgbGV0IGRvTW90aW9uO1xuICAgIGlmIChmZWF0dXJlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRvTW90aW9uID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvTW90aW9uID1cbiAgICAgICAgb3ZlcmxheUZlYXR1cmVzS2V5cy5sZW5ndGggIT09IGZlYXR1cmVzS2V5cy5sZW5ndGggfHxcbiAgICAgICAgIW92ZXJsYXlGZWF0dXJlc0tleXMuZXZlcnkoXG4gICAgICAgICAgKGtleTogRW50aXR5S2V5KSA9PiBmZWF0dXJlc0tleXMuaW5kZXhPZihrZXkpID49IDBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLm92ZXJsYXlTdG9yZS5zZXRMYXllckZlYXR1cmVzKFxuICAgICAgZmVhdHVyZXMsXG4gICAgICBkb01vdGlvbiA/IG1vdGlvbiA6IEZlYXR1cmVNb3Rpb24uTm9uZSxcbiAgICAgIHRoaXMub3B0aW9ucy52aWV3U2NhbGUsXG4gICAgICB0aGlzLm9wdGlvbnMuYXJlYVJhdGlvLFxuICAgICAgdGhpcy5vcHRpb25zLmdldEZlYXR1cmVJZFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBmZWF0dXJlcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgbWFwLCBhbHNvIHNlbGVjdCB0aGVtXG4gICAqIGluIHRoZWlyIHN0b3JlLlxuICAgKiBAcGFyYW0gb2xGZWF0dXJlcyBPTCBmZWF0dXJlIG9iamVjdHNcbiAgICovXG4gIHByaXZhdGUgb25TZWxlY3RGcm9tTWFwKFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLFxuICAgIGV4Y2x1c2l2ZTogYm9vbGVhbixcbiAgICByZXZlcnNlOiBib29sZWFuXG4gICkge1xuICAgIGNvbnN0IGdyb3VwZWRGZWF0dXJlcyA9IHRoaXMuZ3JvdXBGZWF0dXJlc0J5U3RvcmUob2xGZWF0dXJlcyk7XG5cbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGdyb3VwZWRGZWF0dXJlcy5nZXQoc3RvcmUpO1xuICAgICAgaWYgKGZlYXR1cmVzID09PSB1bmRlZmluZWQgJiYgZXhjbHVzaXZlID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMudW5zZWxlY3RBbGxGZWF0dXJlc0Zyb21TdG9yZShzdG9yZSk7XG4gICAgICB9IGVsc2UgaWYgKGZlYXR1cmVzID09PSB1bmRlZmluZWQgJiYgZXhjbHVzaXZlID09PSBmYWxzZSkge1xuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEZlYXR1cmVzRnJvbVN0b3JlKHN0b3JlLCBmZWF0dXJlcywgZXhjbHVzaXZlLCByZXZlcnNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgZmVhdHVyZXMgaW4gc3RvcmVcbiAgICogQHBhcmFtIHN0b3JlOiBGZWF0dXJlIHN0b3JlXG4gICAqIEBwYXJhbSBmZWF0dXJlcyBGZWF0dXJlc1xuICAgKi9cbiAgcHJpdmF0ZSBzZWxlY3RGZWF0dXJlc0Zyb21TdG9yZShcbiAgICBzdG9yZTogRmVhdHVyZVN0b3JlLFxuICAgIGZlYXR1cmVzOiBGZWF0dXJlW10sXG4gICAgZXhjbHVzaXZlOiBib29sZWFuLFxuICAgIHJldmVyc2U6IGJvb2xlYW5cbiAgKSB7XG4gICAgaWYgKHJldmVyc2UgPT09IHRydWUpIHtcbiAgICAgIHN0b3JlLnN0YXRlLnJldmVyc2VNYW55KGZlYXR1cmVzLCBbJ3NlbGVjdGVkJ10pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVNYW55KGZlYXR1cmVzLCB7IHNlbGVjdGVkOiB0cnVlIH0sIGV4Y2x1c2l2ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVuc2VsZWN0IGFsbCBmZWF0dXJlcyBmcm9tIHN0b3JlXG4gICAqIEBwYXJhbSBzdG9yZTogRmVhdHVyZSBzdG9yZVxuICAgKi9cbiAgcHJpdmF0ZSB1bnNlbGVjdEFsbEZlYXR1cmVzRnJvbVN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcbiAgICBzdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBzZWxlY3RlZDogZmFsc2UgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0b3JlIC0+IGZlYXR1cmVzIG1hcHBpbmcgZnJvbSBhIGxpc3RcbiAgICogb2YgT0wgc2VsZWN0ZWQgZmVhdHVyZXMuIE9MIGZlYXR1cmVzIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIHN0b3JlXG4gICAqIHRoZXkgYXJlIGZyb20uXG4gICAqIEBwYXJhbSBvbEZlYXR1cmVzOiBPTCBmZWF0dXJlIG9iamVjdHNcbiAgICogQHJldHVybnMgU3RvcmUgLT4gZmVhdHVyZXMgbWFwcGluZ1xuICAgKi9cbiAgcHJpdmF0ZSBncm91cEZlYXR1cmVzQnlTdG9yZShcbiAgICBvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXVxuICApOiBNYXA8RmVhdHVyZVN0b3JlLCBGZWF0dXJlW10+IHtcbiAgICBjb25zdCBncm91cGVkRmVhdHVyZXMgPSBuZXcgTWFwPEZlYXR1cmVTdG9yZSwgRmVhdHVyZVtdPigpO1xuICAgIGlmIChvbEZlYXR1cmVzID09PSBudWxsIHx8IG9sRmVhdHVyZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGdyb3VwZWRGZWF0dXJlcztcbiAgICB9XG5cbiAgICBvbEZlYXR1cmVzLmZvckVhY2goKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XG4gICAgICBjb25zdCBzdG9yZSA9IG9sRmVhdHVyZS5nZXQoJ19mZWF0dXJlU3RvcmUnKTtcbiAgICAgIGlmIChzdG9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IGZlYXR1cmVzID0gZ3JvdXBlZEZlYXR1cmVzLmdldChzdG9yZSk7XG4gICAgICBpZiAoZmVhdHVyZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmZWF0dXJlcyA9IFtdO1xuICAgICAgICBncm91cGVkRmVhdHVyZXMuc2V0KHN0b3JlLCBmZWF0dXJlcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZlYXR1cmUgPSBzdG9yZS5nZXQob2xGZWF0dXJlLmdldElkKCkpO1xuICAgICAgaWYgKGZlYXR1cmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmZWF0dXJlcy5wdXNoKGZlYXR1cmUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdyb3VwZWRGZWF0dXJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3ZlcmxheSBzdG9yZSB0aGF0J2xsIGNvbnRhaW4gdGhlIHNlbGVjdGVkIGZlYXR1cmVzLlxuICAgKiBAcmV0dXJucyBPdmVybGF5IHN0b3JlXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZU92ZXJsYXlTdG9yZSgpOiBGZWF0dXJlU3RvcmUge1xuICAgIGNvbnN0IG92ZXJsYXlMYXllciA9IHRoaXMub3B0aW9ucy5sYXllclxuICAgICAgPyB0aGlzLm9wdGlvbnMubGF5ZXJcbiAgICAgIDogdGhpcy5jcmVhdGVPdmVybGF5TGF5ZXIoKTtcbiAgICByZXR1cm4gbmV3IEZlYXR1cmVTdG9yZShbXSwgeyBtYXA6IHRoaXMubWFwIH0pLmJpbmRMYXllcihvdmVybGF5TGF5ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBvdmVybGF5IHN0b3JlIHRoYXQnbGwgY29udGFpbiB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMuXG4gICAqIEByZXR1cm5zIE92ZXJsYXkgbGF5ZXJcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheUxheWVyKCk6IFZlY3RvckxheWVyIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgIHpJbmRleDogMzAwLFxuICAgICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcbiAgICAgIHN0eWxlOiB1bmRlZmluZWQsXG4gICAgICBzaG93SW5MYXllckxpc3Q6IGZhbHNlLFxuICAgICAgZXhwb3J0YWJsZTogZmFsc2UsXG4gICAgICBicm93c2FibGU6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSBvdmVybGF5IHN0b3JlJ3MgbGF5ZXIgdG8gdGhlIG1hcCB0byBkaXNwbGF5IHRoZSBzZWxlY3RlZFxuICAgKiBmZWF0dXJlcy5cbiAgICovXG4gIHByaXZhdGUgYWRkT3ZlcmxheUxheWVyKCkge1xuICAgIGNvbnN0IGxheWVyID0gdGhpcy5vdmVybGF5U3RvcmUubGF5ZXI7XG4gICAgaWYgKCF0aGlzLm1hcC5sYXllckNvbnRyb2xsZXIuZ2V0QnlJZChsYXllci5pZCkpIHtcbiAgICAgIHRoaXMubWFwLmxheWVyQ29udHJvbGxlci5hZGQobGF5ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIG92ZXJsYXkgbGF5ZXIgZnJvbSB0aGUgbWFwXG4gICAqL1xuICBwcml2YXRlIHJlbW92ZU92ZXJsYXlMYXllcigpIHtcbiAgICB0aGlzLm92ZXJsYXlTdG9yZS5zb3VyY2Uub2wuY2xlYXIoKTtcbiAgICB0aGlzLm1hcC5sYXllckNvbnRyb2xsZXIucmVtb3ZlKHRoaXMub3ZlcmxheVN0b3JlLmxheWVyKTtcbiAgfVxufVxuIl19
@@ -6,9 +6,9 @@ import { MatIconModule } from '@angular/material/icon';
6
6
  import { MatTooltipModule } from '@angular/material/tooltip';
7
7
  import { ListItemDirective } from '@igo2/common/list';
8
8
  import { IgoLanguageModule } from '@igo2/core/language';
9
- import { Layer } from '../../layer/shared/layers/layer';
9
+ import { Layer } from '../../layer';
10
10
  import { MapBase } from '../../map';
11
- import { OgcFilterableItemComponent } from '../ogc-filterable-item/ogc-filterable-item.component';
11
+ import { OgcFilterableItemComponent } from '../ogc-filterable-item';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "@angular/material/button";
14
14
  import * as i2 from "@angular/material/tooltip";
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
138
138
  }], header: [{
139
139
  type: Input
140
140
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmlsdGVyL29nYy1maWx0ZXItYnV0dG9uL29nYy1maWx0ZXItYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLWJ1dHRvbi9vZ2MtZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7Ozs7O0FBdUJsRyxNQUFNLE9BQU8sd0JBQXdCO0lBQzVCLE9BQU8sQ0FBaUM7SUFFL0MsSUFBSSxLQUFLO1FBQ1AsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FB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XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBMaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9saXN0JztcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XG5pbXBvcnQgeyBNYXBCYXNlIH0gZnJvbSAnLi4vLi4vbWFwJztcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vb2djLWZpbHRlcmFibGUtaXRlbS9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBJZ29PZ2NTZWxlY3RvcixcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zXG59IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29nYy1maWx0ZXItYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50LFxuICAgIExpc3RJdGVtRGlyZWN0aXZlLFxuICAgIElnb0xhbmd1YWdlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIG9wdGlvbnM6IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucztcblxuICBnZXQgYmFkZ2UoKSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5vcHRpb25zLm9nY0ZpbHRlcnMgYXMgYW55O1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGlmIChmaWx0ZXIgJiYgIWZpbHRlci5hZHZhbmNlZE9nY0ZpbHRlcnMpIHtcbiAgICAgIGlmIChmaWx0ZXIucHVzaEJ1dHRvbnMpIHtcbiAgICAgICAgY29uc3QgcHVzaEJ1dHRvbnMgPSBmaWx0ZXIucHVzaEJ1dHRvbnMgYXMgSWdvT2djU2VsZWN0b3I7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQdXNoQnV0dG9uR3JvdXAgPSBwdXNoQnV0dG9ucy5ncm91cHMuZmluZChcbiAgICAgICAgICAoZ3IpID0+IGdyLmVuYWJsZWRcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IGNudFB1c2hCdXR0b25zID0gMDtcbiAgICAgICAgaWYgKGN1cnJlbnRQdXNoQnV0dG9uR3JvdXApIHtcbiAgICAgICAgICBjdXJyZW50UHVzaEJ1dHRvbkdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzPy5tYXAoXG4gICAgICAgICAgICAoY2IpID0+XG4gICAgICAgICAgICAgIChjbnRQdXNoQnV0dG9ucyArPSAoY2Iuc2VsZWN0b3JzIGFzIGFueSk/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAoYnV0dG9uKSA9PiBidXR0b24uZW5hYmxlZFxuICAgICAgICAgICAgICApLmxlbmd0aClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNudCArPSBjbnRQdXNoQnV0dG9ucztcbiAgICAgIH1cbiAgICAgIGlmIChmaWx0ZXIuY2hlY2tib3hlcykge1xuICAgICAgICBjb25zdCBjaGVja2JveGVzID0gZmlsdGVyLmNoZWNrYm94ZXMgYXMgSWdvT2djU2VsZWN0b3I7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaGVja2JveEdyb3VwID0gY2hlY2tib3hlcy5ncm91cHMuZmluZCgoZ3IpID0+IGdyLmVuYWJsZWQpO1xuICAgICAgICBsZXQgY250Q2hlY2tib3hlcyA9IDA7XG4gICAgICAgIGlmIChjdXJyZW50Q2hlY2tib3hHcm91cCkge1xuICAgICAgICAgIGN1cnJlbnRDaGVja2JveEdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzPy5tYXAoXG4gICAgICAgICAgICAoY2IpID0+XG4gICAgICAgICAgICAgIChjbnRDaGVja2JveGVzICs9IChjYi5zZWxlY3RvcnMgYXMgYW55KT8uZmlsdGVyKFxuICAgICAgICAgICAgICAgIChjaGVja2JveCkgPT4gY2hlY2tib3guZW5hYmxlZFxuICAgICAgICAgICAgICApLmxlbmd0aClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNudCArPSBjbnRDaGVja2JveGVzO1xuICAgICAgfVxuICAgICAgaWYgKGZpbHRlci5yYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgY29uc3QgcmFkaW9CdXR0b25zID0gZmlsdGVyLnJhZGlvQnV0dG9ucyBhcyBJZ29PZ2NTZWxlY3RvcjtcbiAgICAgICAgY29uc3QgY3VycmVudFJhZGlvQnV0dG9uc0dyb3VwID0gcmFkaW9CdXR0b25zLmdyb3Vwcy5maW5kKFxuICAgICAgICAgIChncikgPT4gZ3IuZW5hYmxlZFxuICAgICAgICApO1xuICAgICAgICBsZXQgY250UmFkaW9CdXR0b25zID0gMDtcbiAgICAgICAgaWYgKGN1cnJlbnRSYWRpb0J1dHRvbnNHcm91cCkge1xuICAgICAgICAgIGN1cnJlbnRSYWRpb0J1dHRvbnNHcm91cC5jb21wdXRlZFNlbGVjdG9ycz8ubWFwKFxuICAgICAgICAgICAgKGNiKSA9PlxuICAgICAgICAgICAgICAoY250UmFkaW9CdXR0b25zICs9IChjYi5zZWxlY3RvcnMgYXMgYW55KT8uZmlsdGVyKFxuICAgICAgICAgICAgICAgIChyYWRpbykgPT4gcmFkaW8uZW5hYmxlZFxuICAgICAgICAgICAgICApLmxlbmd0aClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNudCArPSBjbnRSYWRpb0J1dHRvbnM7XG4gICAgICB9XG4gICAgICBpZiAoZmlsdGVyLnNlbGVjdCkge1xuICAgICAgICBjb25zdCBzZWxlY3QgPSBmaWx0ZXIuc2VsZWN0IGFzIElnb09nY1NlbGVjdG9yO1xuICAgICAgICBjb25zdCBjdXJyZW50U2VsZWN0R3JvdXAgPSBzZWxlY3QuZ3JvdXBzLmZpbmQoKGdyKSA9PiBnci5lbmFibGVkKTtcbiAgICAgICAgbGV0IGNudFNlbGVjdCA9IDA7XG4gICAgICAgIGlmIChjdXJyZW50U2VsZWN0R3JvdXApIHtcbiAgICAgICAgICBjdXJyZW50U2VsZWN0R3JvdXAuY29tcHV0ZWRTZWxlY3RvcnM/Lm1hcChcbiAgICAgICAgICAgIChjYikgPT5cbiAgICAgICAgICAgICAgKGNudFNlbGVjdCArPSAoY2Iuc2VsZWN0b3JzIGFzIGFueSk/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAobXVsdGkpID0+IG11bHRpLmVuYWJsZWRcbiAgICAgICAgICAgICAgKS5sZW5ndGgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjbnQgKz0gY250U2VsZWN0O1xuICAgICAgfVxuICAgICAgaWYgKGZpbHRlci5hdXRvY29tcGxldGUpIHtcbiAgICAgICAgY29uc3QgYXV0b2NvbXBsZXRlID0gZmlsdGVyLmF1dG9jb21wbGV0ZSBhcyBJZ29PZ2NTZWxlY3RvcjtcbiAgICAgICAgY29uc3QgY3VycmVudEF1dG9jb21wbGV0ZUdyb3VwID0gYXV0b2NvbXBsZXRlLmdyb3Vwcy5maW5kKFxuICAgICAgICAgIChncikgPT4gZ3IuZW5hYmxlZFxuICAgICAgICApO1xuICAgICAgICBsZXQgY250QXV0b2NvbXBsZXRlID0gMDtcbiAgICAgICAgaWYgKGN1cnJlbnRBdXRvY29tcGxldGVHcm91cCkge1xuICAgICAgICAgIGN1cnJlbnRBdXRvY29tcGxldGVHcm91cC5jb21wdXRlZFNlbGVjdG9ycz8ubWFwKFxuICAgICAgICAgICAgKGNiKSA9PlxuICAgICAgICAgICAgICAoY250QXV0b2NvbXBsZXRlICs9IChjYi5zZWxlY3RvcnMgYXMgYW55KT8uZmlsdGVyKFxuICAgICAgICAgICAgICAgIChhdXRvY29tcGxldGUpID0+IGF1dG9jb21wbGV0ZS5lbmFibGVkXG4gICAgICAgICAgICAgICkubGVuZ3RoKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY250ICs9IGNudEF1dG9jb21wbGV0ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZpbHRlciAmJiBmaWx0ZXIuZmlsdGVycyAmJiAhZmlsdGVyLmZpbHRlcnMuZmlsdGVycykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChmaWx0ZXIgJiYgZmlsdGVyLmZpbHRlcnMgJiYgZmlsdGVyLmZpbHRlcnMuZmlsdGVycykge1xuICAgICAgcmV0dXJuIGZpbHRlci5maWx0ZXJzLmZpbHRlcnMubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBmaWx0ZXIuZmlsdGVycyAmJlxuICAgICAgZmlsdGVyLmZpbHRlcnMub3BlcmF0b3IgPT09ICdEdXJpbmcnICYmXG4gICAgICBmaWx0ZXIuZmlsdGVycy5hY3RpdmUgJiZcbiAgICAgIGZpbHRlci5pbnRlcmZhY2VPZ2NGaWx0ZXJzICYmXG4gICAgICBmaWx0ZXIuaW50ZXJmYWNlT2djRmlsdGVyc1swXS5hY3RpdmVcbiAgICApIHtcbiAgICAgIGNvbnN0IGZpbHRlckFjdGl2ZVZhbHVlID0gZmlsdGVyLmludGVyZmFjZU9nY0ZpbHRlcnNbMF07XG4gICAgICBpZiAoZmlsdGVyLmZpbHRlcnMuY2FsZW5kYXJNb2RlWWVhcikge1xuICAgICAgICAvLyB5ZWFyIG1vZGUgY2hlY2sganVzdCB5ZWFyXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmaWx0ZXJBY3RpdmVWYWx1ZS5iZWdpbi5zdWJzdHJpbmcoMCwgNCkgIT09XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubWluRGF0ZS5zdWJzdHJpbmcoMCwgNCkgfHxcbiAgICAgICAgICBmaWx0ZXJBY3RpdmVWYWx1ZS5lbmQuc3Vic3RyaW5nKDAsIDQpICE9PVxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm1heERhdGUuc3Vic3RyaW5nKDAsIDQpXG4gICAgICAgICkge1xuICAgICAgICAgIGNudCArPSAxO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBmaWx0ZXJBY3RpdmVWYWx1ZS5iZWdpbiAhPT0gdGhpcy5vcHRpb25zLm1pbkRhdGUgfHxcbiAgICAgICAgZmlsdGVyQWN0aXZlVmFsdWUuZW5kICE9PSB0aGlzLm9wdGlvbnMubWF4RGF0ZVxuICAgICAgKSB7XG4gICAgICAgIGNudCArPSAxO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY250ID4gMCA/IGNudCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBsYXllcigpOiBMYXllciB7XG4gICAgcmV0dXJuIHRoaXMuX2xheWVyO1xuICB9XG4gIHNldCBsYXllcih2YWx1ZTogTGF5ZXIpIHtcbiAgICB0aGlzLl9sYXllciA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5sYXllci5kYXRhU291cmNlXG4gICAgICAgIC5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucztcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfbGF5ZXI7XG5cbiAgQElucHV0KCkgbWFwOiBNYXBCYXNlO1xuXG4gIEBJbnB1dCgpIGNvbG9yID0gJ3ByaW1hcnknO1xuXG4gIEBJbnB1dCgpIGhlYWRlcjogYm9vbGVhbjtcblxuICBwdWJsaWMgb2djRmlsdGVyQ29sbGFwc2UgPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2VcbiAgICAgIC5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucztcbiAgfVxufVxuIiwiPGJ1dHRvblxuICAqbmdJZj1cIlxuICAgIGhlYWRlciAmJlxuICAgIG9wdGlvbnMub2djRmlsdGVycyAmJlxuICAgIG9wdGlvbnMub2djRmlsdGVycy5lbmFibGVkICYmXG4gICAgKG9wdGlvbnMub2djRmlsdGVycy5wdXNoQnV0dG9ucyB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLmNoZWNrYm94ZXMgfHxcbiAgICAgIG9wdGlvbnMub2djRmlsdGVycy5yYWRpb0J1dHRvbnMgfHxcbiAgICAgIG9wdGlvbnMub2djRmlsdGVycy5zZWxlY3QgfHxcbiAgICAgIG9wdGlvbnMub2djRmlsdGVycy5hdXRvY29tcGxldGUgfHxcbiAgICAgIG9wdGlvbnMub2djRmlsdGVycy5lZGl0YWJsZSlcbiAgXCJcbiAgbWF0LWljb24tYnV0dG9uXG4gIGNvbGxhcHNpYmxlQnV0dG9uXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIuZmlsdGVyQnknIHwgdHJhbnNsYXRlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbj5cbiAgPG1hdC1pY29uXG4gICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXG4gICAgW21hdEJhZGdlXT1cImJhZGdlXCJcbiAgICBtYXRCYWRnZUNvbG9yPVwid2FyblwiXG4gICAgbWF0QmFkZ2VTaXplPVwibWVkaXVtXCJcbiAgICA+ZmlsdGVyX2FsdDwvbWF0LWljb25cbiAgPlxuPC9idXR0b24+XG5cbjxkaXZcbiAgI29nY0ZpbHRlclxuICBjbGFzcz1cImlnby1sYXllci1hY3Rpb25zLWNvbnRhaW5lclwiXG4gICpuZ0lmPVwiXG4gICAgb3B0aW9ucy5vZ2NGaWx0ZXJzICYmXG4gICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLmVuYWJsZWQgJiZcbiAgICAob3B0aW9ucy5vZ2NGaWx0ZXJzLnB1c2hCdXR0b25zIHx8XG4gICAgICBvcHRpb25zLm9nY0ZpbHRlcnMuY2hlY2tib3hlcyB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucyB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLnNlbGVjdCB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZSB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLmVkaXRhYmxlKVxuICBcIlxuPlxuICA8aWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW1cbiAgICAqbmdJZj1cIm9nY0ZpbHRlckNvbGxhcHNlICYmIG9wdGlvbnMub2djRmlsdGVycy5lbmFibGVkXCJcbiAgICBpZ29MaXN0SXRlbVxuICAgIFtoZWFkZXJdPVwiZmFsc2VcIlxuICAgIFttYXBdPVwibGF5ZXIubWFwXCJcbiAgICBbbGF5ZXJdPVwibGF5ZXJcIlxuICA+XG4gIDwvaWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW0+XG48L2Rpdj5cbiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmlsdGVyL29nYy1maWx0ZXItYnV0dG9uL29nYy1maWx0ZXItYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLWJ1dHRvbi9vZ2MtZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQXVCcEUsTUFBTSxPQUFPLHdCQUF3QjtJQUM1QixPQUFPLENBQWlDO0lBRS9DLElBQUksS0FBSztRQUNQLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMs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aW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgTGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAaWdvMi9jb21tb24vbGlzdCc7XG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyJztcbmltcG9ydCB7IE1hcEJhc2UgfSBmcm9tICcuLi8uLi9tYXAnO1xuaW1wb3J0IHsgT2djRmlsdGVyYWJsZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9vZ2MtZmlsdGVyYWJsZS1pdGVtJztcbmltcG9ydCB7XG4gIElnb09nY1NlbGVjdG9yLFxuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnNcbn0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLW9nYy1maWx0ZXItYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29nYy1maWx0ZXItYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2djLWZpbHRlci1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgT2djRmlsdGVyYWJsZUl0ZW1Db21wb25lbnQsXG4gICAgTGlzdEl0ZW1EaXJlY3RpdmUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPZ2NGaWx0ZXJCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgb3B0aW9uczogT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zO1xuXG4gIGdldCBiYWRnZSgpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLm9wdGlvbnMub2djRmlsdGVycyBhcyBhbnk7XG4gICAgbGV0IGNudCA9IDA7XG4gICAgaWYgKGZpbHRlciAmJiAhZmlsdGVyLmFkdmFuY2VkT2djRmlsdGVycykge1xuICAgICAgaWYgKGZpbHRlci5wdXNoQnV0dG9ucykge1xuICAgICAgICBjb25zdCBwdXNoQnV0dG9ucyA9IGZpbHRlci5wdXNoQnV0dG9ucyBhcyBJZ29PZ2NTZWxlY3RvcjtcbiAgICAgICAgY29uc3QgY3VycmVudFB1c2hCdXR0b25Hcm91cCA9IHB1c2hCdXR0b25zLmdyb3Vwcy5maW5kKFxuICAgICAgICAgIChncikgPT4gZ3IuZW5hYmxlZFxuICAgICAgICApO1xuICAgICAgICBsZXQgY250UHVzaEJ1dHRvbnMgPSAwO1xuICAgICAgICBpZiAoY3VycmVudFB1c2hCdXR0b25Hcm91cCkge1xuICAgICAgICAgIGN1cnJlbnRQdXNoQnV0dG9uR3JvdXAuY29tcHV0ZWRTZWxlY3RvcnM/Lm1hcChcbiAgICAgICAgICAgIChjYikgPT5cbiAgICAgICAgICAgICAgKGNudFB1c2hCdXR0b25zICs9IChjYi5zZWxlY3RvcnMgYXMgYW55KT8uZmlsdGVyKFxuICAgICAgICAgICAgICAgIChidXR0b24pID0+IGJ1dHRvbi5lbmFibGVkXG4gICAgICAgICAgICAgICkubGVuZ3RoKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY250ICs9IGNudFB1c2hCdXR0b25zO1xuICAgICAgfVxuICAgICAgaWYgKGZpbHRlci5jaGVja2JveGVzKSB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94ZXMgPSBmaWx0ZXIuY2hlY2tib3hlcyBhcyBJZ29PZ2NTZWxlY3RvcjtcbiAgICAgICAgY29uc3QgY3VycmVudENoZWNrYm94R3JvdXAgPSBjaGVja2JveGVzLmdyb3Vwcy5maW5kKChncikgPT4gZ3IuZW5hYmxlZCk7XG4gICAgICAgIGxldCBjbnRDaGVja2JveGVzID0gMDtcbiAgICAgICAgaWYgKGN1cnJlbnRDaGVja2JveEdyb3VwKSB7XG4gICAgICAgICAgY3VycmVudENoZWNrYm94R3JvdXAuY29tcHV0ZWRTZWxlY3RvcnM/Lm1hcChcbiAgICAgICAgICAgIChjYikgPT5cbiAgICAgICAgICAgICAgKGNudENoZWNrYm94ZXMgKz0gKGNiLnNlbGVjdG9ycyBhcyBhbnkpPy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGNoZWNrYm94KSA9PiBjaGVja2JveC5lbmFibGVkXG4gICAgICAgICAgICAgICkubGVuZ3RoKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY250ICs9IGNudENoZWNrYm94ZXM7XG4gICAgICB9XG4gICAgICBpZiAoZmlsdGVyLnJhZGlvQnV0dG9ucykge1xuICAgICAgICBjb25zdCByYWRpb0J1dHRvbnMgPSBmaWx0ZXIucmFkaW9CdXR0b25zIGFzIElnb09nY1NlbGVjdG9yO1xuICAgICAgICBjb25zdCBjdXJyZW50UmFkaW9CdXR0b25zR3JvdXAgPSByYWRpb0J1dHRvbnMuZ3JvdXBzLmZpbmQoXG4gICAgICAgICAgKGdyKSA9PiBnci5lbmFibGVkXG4gICAgICAgICk7XG4gICAgICAgIGxldCBjbnRSYWRpb0J1dHRvbnMgPSAwO1xuICAgICAgICBpZiAoY3VycmVudFJhZGlvQnV0dG9uc0dyb3VwKSB7XG4gICAgICAgICAgY3VycmVudFJhZGlvQnV0dG9uc0dyb3VwLmNvbXB1dGVkU2VsZWN0b3JzPy5tYXAoXG4gICAgICAgICAgICAoY2IpID0+XG4gICAgICAgICAgICAgIChjbnRSYWRpb0J1dHRvbnMgKz0gKGNiLnNlbGVjdG9ycyBhcyBhbnkpPy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKHJhZGlvKSA9PiByYWRpby5lbmFibGVkXG4gICAgICAgICAgICAgICkubGVuZ3RoKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY250ICs9IGNudFJhZGlvQnV0dG9ucztcbiAgICAgIH1cbiAgICAgIGlmIChmaWx0ZXIuc2VsZWN0KSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdCA9IGZpbHRlci5zZWxlY3QgYXMgSWdvT2djU2VsZWN0b3I7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3RHcm91cCA9IHNlbGVjdC5ncm91cHMuZmluZCgoZ3IpID0+IGdyLmVuYWJsZWQpO1xuICAgICAgICBsZXQgY250U2VsZWN0ID0gMDtcbiAgICAgICAgaWYgKGN1cnJlbnRTZWxlY3RHcm91cCkge1xuICAgICAgICAgIGN1cnJlbnRTZWxlY3RHcm91cC5jb21wdXRlZFNlbGVjdG9ycz8ubWFwKFxuICAgICAgICAgICAgKGNiKSA9PlxuICAgICAgICAgICAgICAoY250U2VsZWN0ICs9IChjYi5zZWxlY3RvcnMgYXMgYW55KT8uZmlsdGVyKFxuICAgICAgICAgICAgICAgIChtdWx0aSkgPT4gbXVsdGkuZW5hYmxlZFxuICAgICAgICAgICAgICApLmxlbmd0aClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNudCArPSBjbnRTZWxlY3Q7XG4gICAgICB9XG4gICAgICBpZiAoZmlsdGVyLmF1dG9jb21wbGV0ZSkge1xuICAgICAgICBjb25zdCBhdXRvY29tcGxldGUgPSBmaWx0ZXIuYXV0b2NvbXBsZXRlIGFzIElnb09nY1NlbGVjdG9yO1xuICAgICAgICBjb25zdCBjdXJyZW50QXV0b2NvbXBsZXRlR3JvdXAgPSBhdXRvY29tcGxldGUuZ3JvdXBzLmZpbmQoXG4gICAgICAgICAgKGdyKSA9PiBnci5lbmFibGVkXG4gICAgICAgICk7XG4gICAgICAgIGxldCBjbnRBdXRvY29tcGxldGUgPSAwO1xuICAgICAgICBpZiAoY3VycmVudEF1dG9jb21wbGV0ZUdyb3VwKSB7XG4gICAgICAgICAgY3VycmVudEF1dG9jb21wbGV0ZUdyb3VwLmNvbXB1dGVkU2VsZWN0b3JzPy5tYXAoXG4gICAgICAgICAgICAoY2IpID0+XG4gICAgICAgICAgICAgIChjbnRBdXRvY29tcGxldGUgKz0gKGNiLnNlbGVjdG9ycyBhcyBhbnkpPy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGF1dG9jb21wbGV0ZSkgPT4gYXV0b2NvbXBsZXRlLmVuYWJsZWRcbiAgICAgICAgICAgICAgKS5sZW5ndGgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjbnQgKz0gY250QXV0b2NvbXBsZXRlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZmlsdGVyICYmIGZpbHRlci5maWx0ZXJzICYmICFmaWx0ZXIuZmlsdGVycy5maWx0ZXJzKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKGZpbHRlciAmJiBmaWx0ZXIuZmlsdGVycyAmJiBmaWx0ZXIuZmlsdGVycy5maWx0ZXJzKSB7XG4gICAgICByZXR1cm4gZmlsdGVyLmZpbHRlcnMuZmlsdGVycy5sZW5ndGg7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGZpbHRlci5maWx0ZXJzICYmXG4gICAgICBmaWx0ZXIuZmlsdGVycy5vcGVyYXRvciA9PT0gJ0R1cmluZycgJiZcbiAgICAgIGZpbHRlci5maWx0ZXJzLmFjdGl2ZSAmJlxuICAgICAgZmlsdGVyLmludGVyZmFjZU9nY0ZpbHRlcnMgJiZcbiAgICAgIGZpbHRlci5pbnRlcmZhY2VPZ2NGaWx0ZXJzWzBdLmFjdGl2ZVxuICAgICkge1xuICAgICAgY29uc3QgZmlsdGVyQWN0aXZlVmFsdWUgPSBmaWx0ZXIuaW50ZXJmYWNlT2djRmlsdGVyc1swXTtcbiAgICAgIGlmIChmaWx0ZXIuZmlsdGVycy5jYWxlbmRhck1vZGVZZWFyKSB7XG4gICAgICAgIC8vIHllYXIgbW9kZSBjaGVjayBqdXN0IHllYXJcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGZpbHRlckFjdGl2ZVZhbHVlLmJlZ2luLnN1YnN0cmluZygwLCA0KSAhPT1cbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5taW5EYXRlLnN1YnN0cmluZygwLCA0KSB8fFxuICAgICAgICAgIGZpbHRlckFjdGl2ZVZhbHVlLmVuZC5zdWJzdHJpbmcoMCwgNCkgIT09XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubWF4RGF0ZS5zdWJzdHJpbmcoMCwgNClcbiAgICAgICAgKSB7XG4gICAgICAgICAgY250ICs9IDE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGZpbHRlckFjdGl2ZVZhbHVlLmJlZ2luICE9PSB0aGlzLm9wdGlvbnMubWluRGF0ZSB8fFxuICAgICAgICBmaWx0ZXJBY3RpdmVWYWx1ZS5lbmQgIT09IHRoaXMub3B0aW9ucy5tYXhEYXRlXG4gICAgICApIHtcbiAgICAgICAgY250ICs9IDE7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjbnQgPiAwID8gY250IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxheWVyKCk6IExheWVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGF5ZXI7XG4gIH1cbiAgc2V0IGxheWVyKHZhbHVlOiBMYXllcikge1xuICAgIHRoaXMuX2xheWVyID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2VcbiAgICAgICAgLm9wdGlvbnMgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9sYXllcjogTGF5ZXI7XG5cbiAgQElucHV0KCkgbWFwOiBNYXBCYXNlO1xuXG4gIEBJbnB1dCgpIGNvbG9yID0gJ3ByaW1hcnknO1xuXG4gIEBJbnB1dCgpIGhlYWRlcjogYm9vbGVhbjtcblxuICBwdWJsaWMgb2djRmlsdGVyQ29sbGFwc2UgPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2VcbiAgICAgIC5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucztcbiAgfVxufVxuIiwiPGJ1dHRvblxuICAqbmdJZj1cIlxuICAgIGhlYWRlciAmJlxuICAgIG9wdGlvbnMub2djRmlsdGVycyAmJlxuICAgIG9wdGlvbnMub2djRmlsdGVycy5lbmFibGVkICYmXG4gICAgKG9wdGlvbnMub2djRmlsdGVycy5wdXNoQnV0dG9ucyB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLmNoZWNrYm94ZXMgfHxcbiAgICAgIG9wdGlvbnMub2djRmlsdGVycy5yYWRpb0J1dHRvbnMgfHxcbiAgICAgIG9wdGlvbnMub2djRmlsdGVycy5zZWxlY3QgfHxcbiAgICAgIG9wdGlvbnMub2djRmlsdGVycy5hdXRvY29tcGxldGUgfHxcbiAgICAgIG9wdGlvbnMub2djRmlsdGVycy5lZGl0YWJsZSlcbiAgXCJcbiAgbWF0LWljb24tYnV0dG9uXG4gIGNvbGxhcHNpYmxlQnV0dG9uXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIuZmlsdGVyQnknIHwgdHJhbnNsYXRlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbj5cbiAgPG1hdC1pY29uXG4gICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXG4gICAgW21hdEJhZGdlXT1cImJhZGdlXCJcbiAgICBtYXRCYWRnZUNvbG9yPVwid2FyblwiXG4gICAgbWF0QmFkZ2VTaXplPVwibWVkaXVtXCJcbiAgICA+ZmlsdGVyX2FsdDwvbWF0LWljb25cbiAgPlxuPC9idXR0b24+XG5cbjxkaXZcbiAgI29nY0ZpbHRlclxuICBjbGFzcz1cImlnby1sYXllci1hY3Rpb25zLWNvbnRhaW5lclwiXG4gICpuZ0lmPVwiXG4gICAgb3B0aW9ucy5vZ2NGaWx0ZXJzICYmXG4gICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLmVuYWJsZWQgJiZcbiAgICAob3B0aW9ucy5vZ2NGaWx0ZXJzLnB1c2hCdXR0b25zIHx8XG4gICAgICBvcHRpb25zLm9nY0ZpbHRlcnMuY2hlY2tib3hlcyB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucyB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLnNlbGVjdCB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZSB8fFxuICAgICAgb3B0aW9ucy5vZ2NGaWx0ZXJzLmVkaXRhYmxlKVxuICBcIlxuPlxuICA8aWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW1cbiAgICAqbmdJZj1cIm9nY0ZpbHRlckNvbGxhcHNlICYmIG9wdGlvbnMub2djRmlsdGVycy5lbmFibGVkXCJcbiAgICBpZ29MaXN0SXRlbVxuICAgIFtoZWFkZXJdPVwiZmFsc2VcIlxuICAgIFttYXBdPVwibGF5ZXIubWFwXCJcbiAgICBbbGF5ZXJdPVwibGF5ZXJcIlxuICA+XG4gIDwvaWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW0+XG48L2Rpdj5cbiJdfQ==
@@ -11,8 +11,8 @@ import { CollapseDirective } from '@igo2/common/collapsible';
11
11
  import { IgoLanguageModule } from '@igo2/core/language';
12
12
  import { BehaviorSubject } from 'rxjs';
13
13
  import { OgcFilterOperator } from '../../filter/shared/ogc-filter.enum';
14
+ import { Layer } from '../../layer';
14
15
  import { LayerLegendComponent } from '../../layer/layer-legend/layer-legend.component';
15
- import { Layer } from '../../layer/shared/layers/layer';
16
16
  import { MapBase } from '../../map';
17
17
  import { OgcFilterableFormComponent } from '../ogc-filterable-form/ogc-filterable-form.component';
18
18
  import { OgcFilterWriter } from '../shared/ogc-filter';
@@ -241,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
241
241
  }], header: [{
242
242
  type: Input
243
243
  }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtaXRlbS9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFJckQsT0FBTyxFQUFFLGlCQUFpQixFQUFF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cG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdJZiwgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7IENvbGxhcHNlRGlyZWN0aXZlIH0gZnJvbSAnQGlnbzIvY29tbW9uL2NvbGxhcHNpYmxlJztcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zUGFyYW1zIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5lbnVtJztcbmltcG9ydCB7IExheWVyTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbGF5ZXIvbGF5ZXItbGVnZW5kL2xheWVyLWxlZ2VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcbmltcG9ydCB7IE1hcEJhc2UgfSBmcm9tICcuLi8uLi9tYXAnO1xuaW1wb3J0IHsgT2djRmlsdGVyYWJsZUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9vZ2MtZmlsdGVyYWJsZS1mb3JtL29nYy1maWx0ZXJhYmxlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE9nY0ZpbHRlcldyaXRlciB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyJztcbmltcG9ydCB7XG4gIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlLFxuICBPZ2NGaWx0ZXJzT3B0aW9ucyxcbiAgT2djSW50ZXJmYWNlRmlsdGVyT3B0aW9uc1xufSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT0dDRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tb2djLWZpbHRlcmFibGUtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBDb2xsYXBzZURpcmVjdGl2ZSxcbiAgICBOZ1N0eWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIExheWVyTGVnZW5kQ29tcG9uZW50LFxuICAgIE9nY0ZpbHRlcmFibGVGb3JtQ29tcG9uZW50LFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIElnb0xhbmd1YWdlTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW09HQ0ZpbHRlclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgY29sb3IgPSAncHJpbWFyeSc7XG4gIHByaXZhdGUgbGFzdFJ1bk9nY0ZpbHRlcjtcbiAgcHJpdmF0ZSBkZWZhdWx0TG9naWNhbFBhcmVudCA9IE9nY0ZpbHRlck9wZXJhdG9yLkFuZDtcbiAgcHVibGljIGhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSBmYWxzZTtcbiAgcHVibGljIGZpbHRlcnNBcmVFZGl0YWJsZSA9IHRydWU7XG4gIHB1YmxpYyBmaWx0ZXJzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgcHVibGljIGhhc1NlbGVjdG9yID0gZmFsc2U7XG4gIHNob3dMZWdlbmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGluUmVzb2x1dGlvblJhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb2djRmlsdGVyV3JpdGVyO1xuXG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcblxuICBASW5wdXQoKSBtYXA6IE1hcEJhc2U7XG5cbiAgQElucHV0KCkgaGVhZGVyID0gdHJ1ZTtcblxuICBnZXQgcmVmcmVzaEZ1bmMoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaEZpbHRlcnMuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGdldCBkYXRhc291cmNlKCk6IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5sYXllci5kYXRhU291cmNlIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvZ2NGaWx0ZXJTZXJ2aWNlOiBPR0NGaWx0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5vZ2NGaWx0ZXJXcml0ZXIgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5sYXllci52aXNpYmxlKSB7XG4gICAgICB0aGlzLmZpbHRlcnNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBvZ2NGaWx0ZXJzID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICBpZiAoXG4gICAgICAob2djRmlsdGVycy5wdXNoQnV0dG9ucyAmJiBvZ2NGaWx0ZXJzLnB1c2hCdXR0b25zLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcbiAgICAgIChvZ2NGaWx0ZXJzLmNoZWNrYm94ZXMgJiYgb2djRmlsdGVycy5jaGVja2JveGVzLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcbiAgICAgIChvZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucyAmJiBvZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucy5idW5kbGVzLmxlbmd0aCA+IDApIHx8XG4gICAgICAob2djRmlsdGVycy5zZWxlY3QgJiYgb2djRmlsdGVycy5zZWxlY3QuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxuICAgICAgKG9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlICYmIG9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlLmJ1bmRsZXMubGVuZ3RoID4gMClcbiAgICApIHtcbiAgICAgIGlmIChvZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmhhc1NlbGVjdG9yID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgIHRoaXMub2djRmlsdGVyU2VydmljZS5zZXRPZ2NXTVNGaWx0ZXJzT3B0aW9ucyh0aGlzLmRhdGFzb3VyY2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dmcyc6XG4gICAgICAgIHRoaXMub2djRmlsdGVyU2VydmljZS5zZXRPZ2NXRlNGaWx0ZXJzT3B0aW9ucyh0aGlzLmRhdGFzb3VyY2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChvZ2NGaWx0ZXJzKSB7XG4gICAgICBpZiAob2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzKSB7XG4gICAgICAgIHRoaXMubGFzdFJ1bk9nY0ZpbHRlciA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkob2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzKVxuICAgICAgICApO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgb2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzLmZpbHRlcigoZikgPT4gZi53a3RfZ2VvbWV0cnkpLmxlbmd0aCA+PVxuICAgICAgICAgIDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5oYXNBY3RpdmVTcGF0aWFsRmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmZpbHRlcnNBcmVFZGl0YWJsZSA9IG9nY0ZpbHRlcnMuZWRpdGFibGVcbiAgICAgICAgPyBvZ2NGaWx0ZXJzLmVkaXRhYmxlXG4gICAgICAgIDogZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb2x1dGlvbiQgPSB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJDtcbiAgICB0aGlzLnJlc29sdXRpb24kJCA9IHJlc29sdXRpb24kLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KHRoaXMubGF5ZXIuaXNJblJlc29sdXRpb25zUmFuZ2UpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZXNvbHV0aW9uJCQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGFkZEZpbHRlclRvU2VxdWVuY2UoKSB7XG4gICAgdGhpcy5maWx0ZXJzQ29sbGFwc2VkID0gZmFsc2U7XG4gICAgY29uc3QgaW50ZXJmYWNlT2djRmlsdGVyczogT2djSW50ZXJmYWNlRmlsdGVyT3B0aW9uc1tdID1cbiAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycztcbiAgICBjb25zdCBhcnIgPSBpbnRlcmZhY2VPZ2NGaWx0ZXJzIHx8IFtdO1xuICAgIGNvbnN0IGxhc3RMZXZlbCA9IGFyci5sZW5ndGggPT09IDAgPyAwIDogYXJyW2Fyci5sZW5ndGggLSAxXS5sZXZlbDtcbiAgICBsZXQgZmlyc3RGaWVsZE5hbWUgPSAnJztcbiAgICBjb25zdCBpbmNsdWRlZEZpZWxkcyA9IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcy5maWx0ZXIoXG4gICAgICAoZikgPT4gIWYuZXhjbHVkZUZyb21PZ2NGaWx0ZXJzXG4gICAgKTtcbiAgICBpZiAoaW5jbHVkZWRGaWVsZHMubGVuZ3RoID4gMCkge1xuICAgICAgZmlyc3RGaWVsZE5hbWUgPVxuICAgICAgICBpbmNsdWRlZEZpZWxkc1swXS5uYW1lID09PSB1bmRlZmluZWQgPyAnJyA6IGluY2x1ZGVkRmllbGRzWzBdLm5hbWU7XG4gICAgfVxuICAgIGxldCBmaWVsZE5hbWVHZW9tZXRyeTtcbiAgICBjb25zdCBkYXRhc291cmNlT3B0aW9ucyA9IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgLm9wdGlvbnMgYXMgV0ZTRGF0YVNvdXJjZU9wdGlvbnNQYXJhbXM7XG4gICAgaWYgKGRhdGFzb3VyY2VPcHRpb25zLmZpZWxkTmFtZUdlb21ldHJ5KSB7XG4gICAgICBmaWVsZE5hbWVHZW9tZXRyeSA9IGRhdGFzb3VyY2VPcHRpb25zLmZpZWxkTmFtZUdlb21ldHJ5O1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlMgJiZcbiAgICAgICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucyBhcyBhbnkpLnBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeVxuICAgICkge1xuICAgICAgZmllbGROYW1lR2VvbWV0cnkgPSAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlNcbiAgICAgICAgLmZpZWxkTmFtZUdlb21ldHJ5O1xuICAgIH1cbiAgICBjb25zdCBhbGxvd2VkT3BlcmF0b3JzID0gdGhpcy5vZ2NGaWx0ZXJXcml0ZXIuY29tcHV0ZUFsbG93ZWRPcGVyYXRvcnMoXG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5zb3VyY2VGaWVsZHMsXG4gICAgICBmaXJzdEZpZWxkTmFtZSxcbiAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuYWxsb3dlZE9wZXJhdG9yc1R5cGVcbiAgICApO1xuICAgIGNvbnN0IGZpcnN0T3BlcmF0b3JOYW1lID0gT2JqZWN0LmtleXMoYWxsb3dlZE9wZXJhdG9ycylbMF07XG5cbiAgICBhcnIucHVzaChcbiAgICAgIHRoaXMub2djRmlsdGVyV3JpdGVyLmFkZEludGVyZmFjZUZpbHRlcihcbiAgICAgICAge1xuICAgICAgICAgIHByb3BlcnR5TmFtZTogZmlyc3RGaWVsZE5hbWUsXG4gICAgICAgICAgb3BlcmF0b3I6IGZpcnN0T3BlcmF0b3JOYW1lLFxuICAgICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICBpZ29TcGF0aWFsU2VsZWN0b3I6ICdmaXhlZEV4dGVudCcsXG4gICAgICAgICAgc3JzTmFtZTogdGhpcy5tYXAucHJvamVjdGlvblxuICAgICAgICB9IGFzIE9nY0ludGVyZmFjZUZpbHRlck9wdGlvbnMsXG4gICAgICAgIGZpZWxkTmFtZUdlb21ldHJ5LFxuICAgICAgICBsYXN0TGV2ZWwsXG4gICAgICAgIHRoaXMuZGVmYXVsdExvZ2ljYWxQYXJlbnRcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycyA9IGFycjtcbiAgfVxuXG4gIHJlZnJlc2hGaWx0ZXJzKGZvcmNlPzogYm9vbGVhbikge1xuICAgIGlmIChmb3JjZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5sYXN0UnVuT2djRmlsdGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBvZ2NGaWx0ZXJzOiBPZ2NGaWx0ZXJzT3B0aW9ucyA9IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnM7XG4gICAgY29uc3QgYWN0aXZlRmlsdGVycyA9IG9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVyc1xuICAgICAgPyBvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmlsdGVyKChmKSA9PiBmLmFjdGl2ZSA9PT0gdHJ1ZSlcbiAgICAgIDogW107XG4gICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBvZ2NGaWx0ZXJzLmZpbHRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICBvZ2NGaWx0ZXJzLmZpbHRlcmVkID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhY3RpdmVGaWx0ZXJzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGFjdGl2ZUZpbHRlcnNbMF0ucGFyZW50TG9naWNhbCA9IGFjdGl2ZUZpbHRlcnNbMV0ucGFyZW50TG9naWNhbDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgYWN0aXZlRmlsdGVycy5maWx0ZXIoXG4gICAgICAgIChhZikgPT4gWydDb250YWlucycsICdJbnRlcnNlY3RzJywgJ1dpdGhpbiddLmluZGV4T2YoYWYub3BlcmF0b3IpICE9PSAtMVxuICAgICAgKS5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICEoSlNPTi5zdHJpbmdpZnkodGhpcy5sYXN0UnVuT2djRmlsdGVyKSA9PT0gSlNPTi5zdHJpbmdpZnkoYWN0aXZlRmlsdGVycykpXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMudHlwZSA9PT0gJ3dmcycpIHtcbiAgICAgICAgY29uc3Qgb2djRGF0YVNvdXJjZTogYW55ID0gdGhpcy5sYXllci5kYXRhU291cmNlO1xuICAgICAgICBjb25zdCBvZ2NMYXllcjogT2djRmlsdGVyc09wdGlvbnMgPSBvZ2NEYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICAgICAgb2djTGF5ZXIuZmlsdGVycyA9XG4gICAgICAgICAgdGhpcy5vZ2NGaWx0ZXJXcml0ZXIucmVidWlsdElnb09nY0ZpbHRlck9iamVjdEZyb21TZXF1ZW5jZShcbiAgICAgICAgICAgIGFjdGl2ZUZpbHRlcnNcbiAgICAgICAgICApO1xuICAgICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wucmVmcmVzaCgpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMudHlwZSA9PT0gJ3dtcycgJiZcbiAgICAgICAgb2djRmlsdGVycy5lbmFibGVkXG4gICAgICApIHtcbiAgICAgICAgbGV0IHJlYnVpbGRGaWx0ZXIgPSAnJztcbiAgICAgICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICBjb25zdCBvZ2NEYXRhU291cmNlOiBhbnkgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2U7XG4gICAgICAgICAgY29uc3Qgb2djTGF5ZXI6IE9nY0ZpbHRlcnNPcHRpb25zID0gb2djRGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnM7XG4gICAgICAgICAgb2djTGF5ZXIuZmlsdGVycyA9XG4gICAgICAgICAgICB0aGlzLm9nY0ZpbHRlcldyaXRlci5yZWJ1aWx0SWdvT2djRmlsdGVyT2JqZWN0RnJvbVNlcXVlbmNlKFxuICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXJzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJlYnVpbGRGaWx0ZXIgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5idWlsZEZpbHRlcihcbiAgICAgICAgICAgIG9nY0xheWVyLmZpbHRlcnMsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAodGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5maWVsZE5hbWVHZW9tZXRyeSxcbiAgICAgICAgICAgIG9nY0RhdGFTb3VyY2Uub3B0aW9uc1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLmZpbHRlckJ5T2djKFxuICAgICAgICAgIHRoaXMuZGF0YXNvdXJjZSBhcyBXTVNEYXRhU291cmNlLFxuICAgICAgICAgIHJlYnVpbGRGaWx0ZXJcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5maWx0ZXJlZCA9XG4gICAgICAgICAgYWN0aXZlRmlsdGVycy5sZW5ndGggPT09IDAgPyBmYWxzZSA6IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGFzdFJ1bk9nY0ZpbHRlciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYWN0aXZlRmlsdGVycykpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZGVudGljYWwgZmlsdGVyLiBOb3RoaW5nIHRyaWdnZXJlZFxuICAgIH1cbiAgICAodGhpcy5sYXllci5kYXRhU291cmNlIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlKS5zZXRPZ2NGaWx0ZXJzKFxuICAgICAgb2djRmlsdGVycyxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldFZpc2libGUoKSB7XG4gICAgdGhpcy5sYXllci52aXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0FkdmFuY2VkT2djRmlsdGVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnM7XG4gIH1cblxuICBwdWJsaWMgYWRkRmlsdGVyRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5zb3VyY2VGaWVsZHMgfHxcbiAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcy5sZW5ndGggPT09IDBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VPZ2NGaWx0ZXJzQWR2YW5jZWRPZ2NGaWx0ZXJzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgPSB2YWx1ZTtcbiAgfVxuXG4gIGNoYW5nZU9nY0ZpbHRlclR5cGUoaXNBZHZhbmNlZE9nY0ZpbHRlcnMpIHtcbiAgICB0aGlzLmNoYW5nZU9nY0ZpbHRlcnNBZHZhbmNlZE9nY0ZpbHRlcnMoaXNBZHZhbmNlZE9nY0ZpbHRlcnMuY2hlY2tlZCk7XG4gICAgaWYgKGlzQWR2YW5jZWRPZ2NGaWx0ZXJzLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMucmVmcmVzaEZpbHRlcnModHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVMZWdlbmQoY29sbGFwc2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XG4gICAgdGhpcy5zaG93TGVnZW5kJC5uZXh0KCFjb2xsYXBzZWQpO1xuICB9XG5cbiAgdG9nZ2xlTGVnZW5kT25DbGljaygpIHtcbiAgICBpZiAoIXRoaXMuZmlsdGVyc0NvbGxhcHNlZCkge1xuICAgICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5zaG93TGVnZW5kJC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyc0NvbGxhcHNlZCgpIHtcbiAgICB0aGlzLmZpbHRlcnNDb2xsYXBzZWQgPSAhdGhpcy5maWx0ZXJzQ29sbGFwc2VkO1xuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInsgJ3NlcGFyYXRlLWl0ZW0nOiBoZWFkZXIgPT09IHRydWUgfVwiPlxuICA8bWF0LWxpc3QtaXRlbT5cbiAgICA8bWF0LWljb25cbiAgICAgICpuZ0lmPVwiaGVhZGVyXCJcbiAgICAgIGNsYXNzPVwiaWdvLWNoZXZyb25cIlxuICAgICAgbWF0TGlzdEl0ZW1JY29uXG4gICAgICBpZ29Db2xsYXBzZVxuICAgICAgW3RhcmdldF09XCJvZ2NGaWx0ZXJzXCJcbiAgICAgIFtjb2xsYXBzZWRdPVwiZmlsdGVyc0NvbGxhcHNlZFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlRmlsdGVyc0NvbGxhcHNlZCgpXCJcbiAgICAgID5leHBhbmRfbGVzc1xuICAgIDwvbWF0LWljb24+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiaGVhZGVyXCJcbiAgICAgIG1hdExpc3RJdGVtVGl0bGVcbiAgICAgIFtuZ1N0eWxlXT1cInsgY3Vyc29yOiBmaWx0ZXJzQ29sbGFwc2VkID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInIH1cIlxuICAgICAgW21hdFRvb2x0aXBdPVwibGF5ZXIudGl0bGVcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlTGVnZW5kT25DbGljaygpXCJcbiAgICA+XG4gICAgICB7eyBsYXllci50aXRsZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8ZGl2IG1hdExpc3RJdGVtTWV0YT5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJpc0FkdmFuY2VkT2djRmlsdGVycygpICYmIGZpbHRlcnNBcmVFZGl0YWJsZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhZGRGaWx0ZXJEaXNhYmxlZCgpXCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIuYWRkRmlsdGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgIChjbGljayk9XCJhZGRGaWx0ZXJUb1NlcXVlbmNlKClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImhlYWRlclwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBbY29sb3JdPVwibGF5ZXIudmlzaWJsZSA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXG4gICAgICAgIGNvbGxhcHNpYmxlQnV0dG9uXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgICAgICBsYXllci52aXNpYmxlXG4gICAgICAgICAgICA/ICgnaWdvLmdlby5sYXllci5oaWRlTGF5ZXInIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgOiAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgXCJcbiAgICAgICAgKGNsaWNrKT1cImxheWVyLnZpc2libGUgPSAhbGF5ZXIudmlzaWJsZVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxuICAgICAgICAgID57eyBsYXllci52aXNpYmxlID8gJ3Zpc2liaWxpdHknIDogJ3Zpc2liaWxpdHlfb2ZmJyB9fVxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWxpc3QtaXRlbT5cblxuICA8ZGl2ICNvZ2NGaWx0ZXJzPlxuICAgIDxkaXYgKm5nSWY9XCJoZWFkZXJcIiAjbGVnZW5kIGNsYXNzPVwiaWdvLWxheWVyLWxlZ2VuZC1jb250YWluZXJcIj5cbiAgICAgIDxpZ28tbGF5ZXItbGVnZW5kICpuZ0lmPVwic2hvd0xlZ2VuZCQgfCBhc3luY1wiIFtsYXllcl09XCJsYXllclwiPlxuICAgICAgPC9pZ28tbGF5ZXItbGVnZW5kPlxuICAgIDwvZGl2PlxuICAgIDxpZ28tb2djLWZpbHRlcmFibGUtZm9ybVxuICAgICAgW2RhdGFzb3VyY2VdPVwiZGF0YXNvdXJjZVwiXG4gICAgICBbbWFwXT1cIm1hcFwiXG4gICAgICBbcmVmcmVzaEZpbHRlcnNdPVwicmVmcmVzaEZ1bmNcIlxuICAgID5cbiAgICA8L2lnby1vZ2MtZmlsdGVyYWJsZS1mb3JtPlxuXG4gICAgPHNlY3Rpb25cbiAgICAgICpuZ0lmPVwiaGFzU2VsZWN0b3IgJiYgZmlsdGVyc0FyZUVkaXRhYmxlXCJcbiAgICAgIGNsYXNzPVwibWF0LXR5cG9ncmFwaHkgYWR2YW5jZWRPZ2NGaWx0ZXJzXCJcbiAgICA+XG4gICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VPZ2NGaWx0ZXJUeXBlKCRldmVudClcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVyc1wiXG4gICAgICA+XG4gICAgICAgIHt7ICdpZ28uZ2VvLmZpbHRlci5hZHZhbmNlZE9nY0ZpbHRlcnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L3NlY3Rpb24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtaXRlbS9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFJckQsT0FBTyxFQUFFLGlCQUFpQixFQUFF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cnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nSWYsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBDb2xsYXBzZURpcmVjdGl2ZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9jb2xsYXBzaWJsZSc7XG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9uc1BhcmFtcyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dmcy1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXTVNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgT2djRmlsdGVyT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuZW51bSc7XG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyJztcbmltcG9ydCB7IExheWVyTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbGF5ZXIvbGF5ZXItbGVnZW5kL2xheWVyLWxlZ2VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFwQmFzZSB9IGZyb20gJy4uLy4uL21hcCc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJhYmxlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL29nYy1maWx0ZXJhYmxlLWZvcm0vb2djLWZpbHRlcmFibGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXInO1xuaW1wb3J0IHtcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UsXG4gIE9nY0ZpbHRlcnNPcHRpb25zLFxuICBPZ2NJbnRlcmZhY2VGaWx0ZXJPcHRpb25zXG59IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPR0NGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyYWJsZS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTmdJZixcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIENvbGxhcHNlRGlyZWN0aXZlLFxuICAgIE5nU3R5bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTGF5ZXJMZWdlbmRDb21wb25lbnQsXG4gICAgT2djRmlsdGVyYWJsZUZvcm1Db21wb25lbnQsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbT0dDRmlsdGVyU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyYWJsZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBjb2xvciA9ICdwcmltYXJ5JztcbiAgcHJpdmF0ZSBsYXN0UnVuT2djRmlsdGVyO1xuICBwcml2YXRlIGRlZmF1bHRMb2dpY2FsUGFyZW50ID0gT2djRmlsdGVyT3BlcmF0b3IuQW5kO1xuICBwdWJsaWMgaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IGZhbHNlO1xuICBwdWJsaWMgZmlsdGVyc0FyZUVkaXRhYmxlID0gdHJ1ZTtcbiAgcHVibGljIGZpbHRlcnNDb2xsYXBzZWQgPSB0cnVlO1xuICBwdWJsaWMgaGFzU2VsZWN0b3IgPSBmYWxzZTtcbiAgc2hvd0xlZ2VuZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSByZXNvbHV0aW9uJCQ6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBvZ2NGaWx0ZXJXcml0ZXI7XG5cbiAgQElucHV0KCkgbGF5ZXI6IExheWVyO1xuXG4gIEBJbnB1dCgpIG1hcDogTWFwQmFzZTtcblxuICBASW5wdXQoKSBoZWFkZXIgPSB0cnVlO1xuXG4gIGdldCByZWZyZXNoRnVuYygpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoRmlsdGVycy5iaW5kKHRoaXMpO1xuICB9XG5cbiAgZ2V0IGRhdGFzb3VyY2UoKTogT2djRmlsdGVyYWJsZURhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLmxheWVyLmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2U7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9nY0ZpbHRlclNlcnZpY2U6IE9HQ0ZpbHRlclNlcnZpY2UpIHtcbiAgICB0aGlzLm9nY0ZpbHRlcldyaXRlciA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmxheWVyLnZpc2libGUpIHtcbiAgICAgIHRoaXMuZmlsdGVyc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzO1xuICAgIGlmIChcbiAgICAgIChvZ2NGaWx0ZXJzLnB1c2hCdXR0b25zICYmIG9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxuICAgICAgKG9nY0ZpbHRlcnMuY2hlY2tib3hlcyAmJiBvZ2NGaWx0ZXJzLmNoZWNrYm94ZXMuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxuICAgICAgKG9nY0ZpbHRlcnMucmFkaW9CdXR0b25zICYmIG9nY0ZpbHRlcnMucmFkaW9CdXR0b25zLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcbiAgICAgIChvZ2NGaWx0ZXJzLnNlbGVjdCAmJiBvZ2NGaWx0ZXJzLnNlbGVjdC5idW5kbGVzLmxlbmd0aCA+IDApIHx8XG4gICAgICAob2djRmlsdGVycy5hdXRvY29tcGxldGUgJiYgb2djRmlsdGVycy5hdXRvY29tcGxldGUuYnVuZGxlcy5sZW5ndGggPiAwKVxuICAgICkge1xuICAgICAgaWYgKG9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgb2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGFzU2VsZWN0b3IgPSB0cnVlO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMudHlwZSkge1xuICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLnNldE9nY1dNU0ZpbHRlcnNPcHRpb25zKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnd2ZzJzpcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLnNldE9nY1dGU0ZpbHRlcnNPcHRpb25zKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKG9nY0ZpbHRlcnMpIHtcbiAgICAgIGlmIChvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMpIHtcbiAgICAgICAgdGhpcy5sYXN0UnVuT2djRmlsdGVyID0gSlNPTi5wYXJzZShcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMpXG4gICAgICAgICk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmlsdGVyKChmKSA9PiBmLndrdF9nZW9tZXRyeSkubGVuZ3RoID49XG4gICAgICAgICAgMVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmlsdGVyc0FyZUVkaXRhYmxlID0gb2djRmlsdGVycy5lZGl0YWJsZVxuICAgICAgICA/IG9nY0ZpbHRlcnMuZWRpdGFibGVcbiAgICAgICAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHV0aW9uJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kO1xuICAgIHRoaXMucmVzb2x1dGlvbiQkID0gcmVzb2x1dGlvbiQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc29sdXRpb24kJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgYWRkRmlsdGVyVG9TZXF1ZW5jZSgpIHtcbiAgICB0aGlzLmZpbHRlcnNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICBjb25zdCBpbnRlcmZhY2VPZ2NGaWx0ZXJzOiBPZ2NJbnRlcmZhY2VGaWx0ZXJPcHRpb25zW10gPVxuICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzO1xuICAgIGNvbnN0IGFyciA9IGludGVyZmFjZU9nY0ZpbHRlcnMgfHwgW107XG4gICAgY29uc3QgbGFzdExldmVsID0gYXJyLmxlbmd0aCA9PT0gMCA/IDAgOiBhcnJbYXJyLmxlbmd0aCAtIDFdLmxldmVsO1xuICAgIGxldCBmaXJzdEZpZWxkTmFtZSA9ICcnO1xuICAgIGNvbnN0IGluY2x1ZGVkRmllbGRzID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzLmZpbHRlcihcbiAgICAgIChmKSA9PiAhZi5leGNsdWRlRnJvbU9nY0ZpbHRlcnNcbiAgICApO1xuICAgIGlmIChpbmNsdWRlZEZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICBmaXJzdEZpZWxkTmFtZSA9XG4gICAgICAgIGluY2x1ZGVkRmllbGRzWzBdLm5hbWUgPT09IHVuZGVmaW5lZCA/ICcnIDogaW5jbHVkZWRGaWVsZHNbMF0ubmFtZTtcbiAgICB9XG4gICAgbGV0IGZpZWxkTmFtZUdlb21ldHJ5O1xuICAgIGNvbnN0IGRhdGFzb3VyY2VPcHRpb25zID0gdGhpcy5kYXRhc291cmNlXG4gICAgICAub3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9uc1BhcmFtcztcbiAgICBpZiAoZGF0YXNvdXJjZU9wdGlvbnMuZmllbGROYW1lR2VvbWV0cnkpIHtcbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5ID0gZGF0YXNvdXJjZU9wdGlvbnMuZmllbGROYW1lR2VvbWV0cnk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucyBhcyBhbnkpLnBhcmFtc1dGUyAmJlxuICAgICAgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zIGFzIGFueSkucGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5XG4gICAgKSB7XG4gICAgICBmaWVsZE5hbWVHZW9tZXRyeSA9ICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucyBhcyBhbnkpLnBhcmFtc1dGU1xuICAgICAgICAuZmllbGROYW1lR2VvbWV0cnk7XG4gICAgfVxuICAgIGNvbnN0IGFsbG93ZWRPcGVyYXRvcnMgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5jb21wdXRlQWxsb3dlZE9wZXJhdG9ycyhcbiAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcyxcbiAgICAgIGZpcnN0RmllbGROYW1lLFxuICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hbGxvd2VkT3BlcmF0b3JzVHlwZVxuICAgICk7XG4gICAgY29uc3QgZmlyc3RPcGVyYXRvck5hbWUgPSBPYmplY3Qua2V5cyhhbGxvd2VkT3BlcmF0b3JzKVswXTtcblxuICAgIGFyci5wdXNoKFxuICAgICAgdGhpcy5vZ2NGaWx0ZXJXcml0ZXIuYWRkSW50ZXJmYWNlRmlsdGVyKFxuICAgICAgICB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBmaXJzdEZpZWxkTmFtZSxcbiAgICAgICAgICBvcGVyYXRvcjogZmlyc3RPcGVyYXRvck5hbWUsXG4gICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgIGlnb1NwYXRpYWxTZWxlY3RvcjogJ2ZpeGVkRXh0ZW50JyxcbiAgICAgICAgICBzcnNOYW1lOiB0aGlzLm1hcC5wcm9qZWN0aW9uXG4gICAgICAgIH0gYXMgT2djSW50ZXJmYWNlRmlsdGVyT3B0aW9ucyxcbiAgICAgICAgZmllbGROYW1lR2VvbWV0cnksXG4gICAgICAgIGxhc3RMZXZlbCxcbiAgICAgICAgdGhpcy5kZWZhdWx0TG9naWNhbFBhcmVudFxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzID0gYXJyO1xuICB9XG5cbiAgcmVmcmVzaEZpbHRlcnMoZm9yY2U/OiBib29sZWFuKSB7XG4gICAgaWYgKGZvcmNlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmxhc3RSdW5PZ2NGaWx0ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IG9nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICBjb25zdCBhY3RpdmVGaWx0ZXJzID0gb2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzXG4gICAgICA/IG9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycy5maWx0ZXIoKGYpID0+IGYuYWN0aXZlID09PSB0cnVlKVxuICAgICAgOiBbXTtcbiAgICBpZiAoYWN0aXZlRmlsdGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIG9nY0ZpbHRlcnMuZmlsdGVycyA9IHVuZGVmaW5lZDtcbiAgICAgIG9nY0ZpbHRlcnMuZmlsdGVyZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoID4gMSkge1xuICAgICAgYWN0aXZlRmlsdGVyc1swXS5wYXJlbnRMb2dpY2FsID0gYWN0aXZlRmlsdGVyc1sxXS5wYXJlbnRMb2dpY2FsO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBhY3RpdmVGaWx0ZXJzLmZpbHRlcihcbiAgICAgICAgKGFmKSA9PiBbJ0NvbnRhaW5zJywgJ0ludGVyc2VjdHMnLCAnV2l0aGluJ10uaW5kZXhPZihhZi5vcGVyYXRvcikgIT09IC0xXG4gICAgICApLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgdGhpcy5oYXNBY3RpdmVTcGF0aWFsRmlsdGVyID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIShKU09OLnN0cmluZ2lmeSh0aGlzLmxhc3RSdW5PZ2NGaWx0ZXIpID09PSBKU09OLnN0cmluZ2lmeShhY3RpdmVGaWx0ZXJzKSlcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy50eXBlID09PSAnd2ZzJykge1xuICAgICAgICBjb25zdCBvZ2NEYXRhU291cmNlOiBhbnkgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2U7XG4gICAgICAgIGNvbnN0IG9nY0xheWVyOiBPZ2NGaWx0ZXJzT3B0aW9ucyA9IG9nY0RhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzO1xuICAgICAgICBvZ2NMYXllci5maWx0ZXJzID1cbiAgICAgICAgICB0aGlzLm9nY0ZpbHRlcldyaXRlci5yZWJ1aWx0SWdvT2djRmlsdGVyT2JqZWN0RnJvbVNlcXVlbmNlKFxuICAgICAgICAgICAgYWN0aXZlRmlsdGVyc1xuICAgICAgICAgICk7XG4gICAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vbC5yZWZyZXNoKCk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy50eXBlID09PSAnd21zJyAmJlxuICAgICAgICBvZ2NGaWx0ZXJzLmVuYWJsZWRcbiAgICAgICkge1xuICAgICAgICBsZXQgcmVidWlsZEZpbHRlciA9ICcnO1xuICAgICAgICBpZiAoYWN0aXZlRmlsdGVycy5sZW5ndGggPj0gMSkge1xuICAgICAgICAgIGNvbnN0IG9nY0RhdGFTb3VyY2U6IGFueSA9IHRoaXMubGF5ZXIuZGF0YVNvdXJjZTtcbiAgICAgICAgICBjb25zdCBvZ2NMYXllcjogT2djRmlsdGVyc09wdGlvbnMgPSBvZ2NEYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICAgICAgICBvZ2NMYXllci5maWx0ZXJzID1cbiAgICAgICAgICAgIHRoaXMub2djRmlsdGVyV3JpdGVyLnJlYnVpbHRJZ29PZ2NGaWx0ZXJPYmplY3RGcm9tU2VxdWVuY2UoXG4gICAgICAgICAgICAgIGFjdGl2ZUZpbHRlcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcmVidWlsZEZpbHRlciA9IHRoaXMub2djRmlsdGVyV3JpdGVyLmJ1aWxkRmlsdGVyKFxuICAgICAgICAgICAgb2djTGF5ZXIuZmlsdGVycyxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICh0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucyBhcyBhbnkpLmZpZWxkTmFtZUdlb21ldHJ5LFxuICAgICAgICAgICAgb2djRGF0YVNvdXJjZS5vcHRpb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9nY0ZpbHRlclNlcnZpY2UuZmlsdGVyQnlPZ2MoXG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlIGFzIFdNU0RhdGFTb3VyY2UsXG4gICAgICAgICAgcmVidWlsZEZpbHRlclxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmZpbHRlcmVkID1cbiAgICAgICAgICBhY3RpdmVGaWx0ZXJzLmxlbmd0aCA9PT0gMCA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0UnVuT2djRmlsdGVyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhY3RpdmVGaWx0ZXJzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlkZW50aWNhbCBmaWx0ZXIuIE5vdGhpbmcgdHJpZ2dlcmVkXG4gICAgfVxuICAgICh0aGlzLmxheWVyLmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UpLnNldE9nY0ZpbHRlcnMoXG4gICAgICBvZ2NGaWx0ZXJzLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0VmlzaWJsZSgpIHtcbiAgICB0aGlzLmxheWVyLnZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGlzQWR2YW5jZWRPZ2NGaWx0ZXJzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycztcbiAgfVxuXG4gIHB1YmxpYyBhZGRGaWx0ZXJEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcyB8fFxuICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzLmxlbmd0aCA9PT0gMFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZU9nY0ZpbHRlcnNBZHZhbmNlZE9nY0ZpbHRlcnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9IHZhbHVlO1xuICB9XG5cbiAgY2hhbmdlT2djRmlsdGVyVHlwZShpc0FkdmFuY2VkT2djRmlsdGVycykge1xuICAgIHRoaXMuY2hhbmdlT2djRmlsdGVyc0FkdmFuY2VkT2djRmlsdGVycyhpc0FkdmFuY2VkT2djRmlsdGVycy5jaGVja2VkKTtcbiAgICBpZiAoaXNBZHZhbmNlZE9nY0ZpbHRlcnMuY2hlY2tlZCkge1xuICAgICAgdGhpcy5yZWZyZXNoRmlsdGVycyh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUxlZ2VuZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxheWVyLmxlZ2VuZENvbGxhcHNlZCA9IGNvbGxhcHNlZDtcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XG4gIH1cblxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xuICAgIGlmICghdGhpcy5maWx0ZXJzQ29sbGFwc2VkKSB7XG4gICAgICB0aGlzLnRvZ2dsZUxlZ2VuZCh0aGlzLnNob3dMZWdlbmQkLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKCkge1xuICAgIHRoaXMuZmlsdGVyc0NvbGxhcHNlZCA9ICF0aGlzLmZpbHRlcnNDb2xsYXBzZWQ7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwieyAnc2VwYXJhdGUtaXRlbSc6IGhlYWRlciA9PT0gdHJ1ZSB9XCI+XG4gIDxtYXQtbGlzdC1pdGVtPlxuICAgIDxtYXQtaWNvblxuICAgICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgICAgY2xhc3M9XCJpZ28tY2hldnJvblwiXG4gICAgICBtYXRMaXN0SXRlbUljb25cbiAgICAgIGlnb0NvbGxhcHNlXG4gICAgICBbdGFyZ2V0XT1cIm9nY0ZpbHRlcnNcIlxuICAgICAgW2NvbGxhcHNlZF09XCJmaWx0ZXJzQ29sbGFwc2VkXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKClcIlxuICAgICAgPmV4cGFuZF9sZXNzXG4gICAgPC9tYXQtaWNvbj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgICAgbWF0TGlzdEl0ZW1UaXRsZVxuICAgICAgW25nU3R5bGVdPVwieyBjdXJzb3I6IGZpbHRlcnNDb2xsYXBzZWQgPyAnZGVmYXVsdCcgOiAncG9pbnRlcicgfVwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJsYXllci50aXRsZVwiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVMZWdlbmRPbkNsaWNrKClcIlxuICAgID5cbiAgICAgIHt7IGxheWVyLnRpdGxlIH19XG4gICAgPC9zcGFuPlxuICAgIDxkaXYgbWF0TGlzdEl0ZW1NZXRhPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImlzQWR2YW5jZWRPZ2NGaWx0ZXJzKCkgJiYgZmlsdGVyc0FyZUVkaXRhYmxlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImFkZEZpbHRlckRpc2FibGVkKClcIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci5hZGRGaWx0ZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgKGNsaWNrKT1cImFkZEZpbHRlclRvU2VxdWVuY2UoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiaGVhZGVyXCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIFtjb2xvcl09XCJsYXllci52aXNpYmxlID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgICAgICAgY29sbGFwc2libGVCdXR0b25cbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIlxuICAgICAgICAgIGxheWVyLnZpc2libGVcbiAgICAgICAgICAgID8gKCdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcicgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICA6ICgnaWdvLmdlby5sYXllci5zaG93TGF5ZXInIHwgdHJhbnNsYXRlKVxuICAgICAgICBcIlxuICAgICAgICAoY2xpY2spPVwibGF5ZXIudmlzaWJsZSA9ICFsYXllci52aXNpYmxlXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKSA9PT0gZmFsc2UgfVwiXG4gICAgICAgICAgPnt7IGxheWVyLnZpc2libGUgPyAndmlzaWJpbGl0eScgOiAndmlzaWJpbGl0eV9vZmYnIH19XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtbGlzdC1pdGVtPlxuXG4gIDxkaXYgI29nY0ZpbHRlcnM+XG4gICAgPGRpdiAqbmdJZj1cImhlYWRlclwiICNsZWdlbmQgY2xhc3M9XCJpZ28tbGF5ZXItbGVnZW5kLWNvbnRhaW5lclwiPlxuICAgICAgPGlnby1sYXllci1sZWdlbmQgKm5nSWY9XCJzaG93TGVnZW5kJCB8IGFzeW5jXCIgW2xheWVyXT1cImxheWVyXCI+XG4gICAgICA8L2lnby1sYXllci1sZWdlbmQ+XG4gICAgPC9kaXY+XG4gICAgPGlnby1vZ2MtZmlsdGVyYWJsZS1mb3JtXG4gICAgICBbZGF0YXNvdXJjZV09XCJkYXRhc291cmNlXCJcbiAgICAgIFttYXBdPVwibWFwXCJcbiAgICAgIFtyZWZyZXNoRmlsdGVyc109XCJyZWZyZXNoRnVuY1wiXG4gICAgPlxuICAgIDwvaWdvLW9nYy1maWx0ZXJhYmxlLWZvcm0+XG5cbiAgICA8c2VjdGlvblxuICAgICAgKm5nSWY9XCJoYXNTZWxlY3RvciAmJiBmaWx0ZXJzQXJlRWRpdGFibGVcIlxuICAgICAgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeSBhZHZhbmNlZE9nY0ZpbHRlcnNcIlxuICAgID5cbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAoY2hhbmdlKT1cImNoYW5nZU9nY0ZpbHRlclR5cGUoJGV2ZW50KVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2lnby5nZW8uZmlsdGVyLmFkdmFuY2VkT2djRmlsdGVycycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgIDwvc2VjdGlvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -15,8 +15,10 @@ export class OgcFilterableListBindingDirective {
15
15
  ngOnInit() {
16
16
  // Override input layers
17
17
  this.component.layers = [];
18
- this.layers$$ = this.mapService.getMap().layers$.subscribe((layers) => {
19
- this.component.layers = layers.filter((layer) => layer.showInLayerList);
18
+ this.layers$$ = this.mapService
19
+ .getMap()
20
+ .layerController.layersFlattened$.subscribe((layers) => {
21
+ this.component.layers = layers;
20
22
  });
21
23
  }
22
24
  ngOnDestroy() {
@@ -34,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
34
36
  }], ctorParameters: () => [{ type: i1.OgcFilterableListComponent, decorators: [{
35
37
  type: Self
36
38
  }] }, { type: i2.MapService }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtbGlzdC1iaW5kaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QtYmluZGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQU03RSxNQUFNLE9BQU8saUNBQWlDO0lBTWxDO0lBTEYsU0FBUyxDQUE2QjtJQUN0QyxRQUFRLENBQWU7SUFFL0IsWUFDVSxTQUFxQyxFQUNyQyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRTlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDO3dHQXRCVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFKN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQU1JLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSwgT25Jbml0LCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNYXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAuc2VydmljZSc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJhYmxlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vb2djLWZpbHRlcmFibGUtbGlzdC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaWdvT2djRmlsdGVyYWJsZUxpc3RCaW5kaW5nXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyYWJsZUxpc3RCaW5kaW5nRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGNvbXBvbmVudDogT2djRmlsdGVyYWJsZUxpc3RDb21wb25lbnQ7XG4gIHByaXZhdGUgbGF5ZXJzJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIGNvbXBvbmVudDogT2djRmlsdGVyYWJsZUxpc3RDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gT3ZlcnJpZGUgaW5wdXQgbGF5ZXJzXG4gICAgdGhpcy5jb21wb25lbnQubGF5ZXJzID0gW107XG5cbiAgICB0aGlzLmxheWVycyQkID0gdGhpcy5tYXBTZXJ2aWNlLmdldE1hcCgpLmxheWVycyQuc3Vic2NyaWJlKChsYXllcnMpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50LmxheWVycyA9IGxheWVycy5maWx0ZXIoKGxheWVyKSA9PiBsYXllci5zaG93SW5MYXllckxpc3QpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5sYXllcnMkJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtbGlzdC1iaW5kaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QtYmluZGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQU03RSxNQUFNLE9BQU8saUNBQWlDO0lBTWxDO0lBTEYsU0FBUyxDQUE2QjtJQUN0QyxRQUFRLENBQWU7SUFFL0IsWUFDVSxTQUFxQyxFQUNyQyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRTlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVO2FBQzVCLE1BQU0sRUFBRTthQUNSLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzt3R0F4QlUsaUNBQWlDOzRGQUFqQyxpQ0FBaUM7OzRGQUFqQyxpQ0FBaUM7a0JBSjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFNSSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWFwU2VydmljZSB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2djRmlsdGVyYWJsZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL29nYy1maWx0ZXJhYmxlLWxpc3QuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2lnb09nY0ZpbHRlcmFibGVMaXN0QmluZGluZ10nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE9nY0ZpbHRlcmFibGVMaXN0QmluZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjb21wb25lbnQ6IE9nY0ZpbHRlcmFibGVMaXN0Q29tcG9uZW50O1xuICBwcml2YXRlIGxheWVycyQkOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBjb21wb25lbnQ6IE9nY0ZpbHRlcmFibGVMaXN0Q29tcG9uZW50LFxuICAgIHByaXZhdGUgbWFwU2VydmljZTogTWFwU2VydmljZVxuICApIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIE92ZXJyaWRlIGlucHV0IGxheWVyc1xuICAgIHRoaXMuY29tcG9uZW50LmxheWVycyA9IFtdO1xuXG4gICAgdGhpcy5sYXllcnMkJCA9IHRoaXMubWFwU2VydmljZVxuICAgICAgLmdldE1hcCgpXG4gICAgICAubGF5ZXJDb250cm9sbGVyLmxheWVyc0ZsYXR0ZW5lZCQuc3Vic2NyaWJlKChsYXllcnMpID0+IHtcbiAgICAgICAgdGhpcy5jb21wb25lbnQubGF5ZXJzID0gbGF5ZXJzO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxheWVycyQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
29
29
  }], map: [{
30
30
  type: Input
31
31
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtbGlzdC9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7QUFrQmhGLE1BQU0sT0FBTywwQkFBMEI7SUFDNUIsTUFBTSxDQUFVO0lBRWhCLEdBQUcsQ0FBVTt3R0FIWCwwQkFBMEI7NEZBQTFCLDBCQUEwQiw2SEMzQnZDLDhmQWdCQSw0SURFSSxhQUFhLDBGQUNiLElBQUksNkZBQ0osS0FBSyxtSEFDTCwwQkFBMEIsd0dBQzFCLGlCQUFpQiw0UkFDakIsaUJBQWlCLHVGQUNqQix3QkFBd0I7OzRGQUdmLDBCQUEwQjtrQkFoQnRDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxhQUFhO3dCQUNiLElBQUk7d0JBQ0osS0FBSzt3QkFDTCwwQkFBMEI7d0JBQzFCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQix3QkFBd0I7cUJBQ3pCOzhCQUdRLE1BQU07c0JBQWQsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50LCBMaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9saXN0JztcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XG5pbXBvcnQgeyBNYXBCYXNlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAuYWJzdHJhY3QnO1xuaW1wb3J0IHsgT2djRmlsdGVyYWJsZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlcmFibGVEYXRhU291cmNlUGlwZSB9IGZyb20gJy4uL3NoYXJlZC9maWx0ZXJhYmxlLWRhdGFzb3VyY2UucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyYWJsZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29nYy1maWx0ZXJhYmxlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBOZ0lmLFxuICAgIE5nRm9yLFxuICAgIE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50LFxuICAgIExpc3RJdGVtRGlyZWN0aXZlLFxuICAgIElnb0xhbmd1YWdlTW9kdWxlLFxuICAgIEZpbHRlcmFibGVEYXRhU291cmNlUGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9nY0ZpbHRlcmFibGVMaXN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbGF5ZXJzOiBMYXllcltdO1xuXG4gIEBJbnB1dCgpIG1hcDogTWFwQmFzZTtcbn1cbiIsIjxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJmYWxzZVwiIFtzZWxlY3Rpb25dPVwiZmFsc2VcIj5cbiAgPGRpdlxuICAgIGlkPVwibm8tbGF5ZXItbWVzc2FnZVwiXG4gICAgKm5nSWY9XCIobGF5ZXJzIHwgZmlsdGVyYWJsZURhdGFTb3VyY2U6ICdvZ2MnKS5sZW5ndGggPT09IDBcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uZmlsdGVyLm5vRmlsdGVyYWJsZUxheWVyJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1sYXllciBbbmdGb3JPZl09XCJsYXllcnMgfCBmaWx0ZXJhYmxlRGF0YVNvdXJjZTogJ29nYydcIj5cbiAgICA8aWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW1cbiAgICAgIGlnb0xpc3RJdGVtXG4gICAgICBbaGVhZGVyXT1cInRydWVcIlxuICAgICAgW2xheWVyXT1cImxheWVyXCJcbiAgICAgIFttYXBdPVwibGF5ZXIubWFwXCJcbiAgICA+PC9pZ28tb2djLWZpbHRlcmFibGUtaXRlbT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvaWdvLWxpc3Q+XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtbGlzdC9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7QUFrQmhGLE1BQU0sT0FBTywwQkFBMEI7SUFDNUIsTUFBTSxDQUFhO0lBRW5CLEdBQUcsQ0FBVTt3R0FIWCwwQkFBMEI7NEZBQTFCLDBCQUEwQiw2SEMzQnZDLDhmQWdCQSw0SURFSSxhQUFhLDBGQUNiLElBQUksNkZBQ0osS0FBSyxtSEFDTCwwQkFBMEIsd0dBQzFCLGlCQUFpQiw0UkFDakIsaUJBQWlCLHVGQUNqQix3QkFBd0I7OzRGQUdmLDBCQUEwQjtrQkFoQnRDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxhQUFhO3dCQUNiLElBQUk7d0JBQ0osS0FBSzt3QkFDTCwwQkFBMEI7d0JBQzFCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQix3QkFBd0I7cUJBQ3pCOzhCQUdRLE1BQU07c0JBQWQsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50LCBMaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9saXN0JztcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCB7IEFueUxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHsgTWFwQmFzZSB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwLmFic3RyYWN0JztcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vb2djLWZpbHRlcmFibGUtaXRlbS9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJhYmxlRGF0YVNvdXJjZVBpcGUgfSBmcm9tICcuLi9zaGFyZWQvZmlsdGVyYWJsZS1kYXRhc291cmNlLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tb2djLWZpbHRlcmFibGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2djLWZpbHRlcmFibGUtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIExpc3RDb21wb25lbnQsXG4gICAgTmdJZixcbiAgICBOZ0ZvcixcbiAgICBPZ2NGaWx0ZXJhYmxlSXRlbUNvbXBvbmVudCxcbiAgICBMaXN0SXRlbURpcmVjdGl2ZSxcbiAgICBJZ29MYW5ndWFnZU1vZHVsZSxcbiAgICBGaWx0ZXJhYmxlRGF0YVNvdXJjZVBpcGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPZ2NGaWx0ZXJhYmxlTGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGxheWVyczogQW55TGF5ZXJbXTtcblxuICBASW5wdXQoKSBtYXA6IE1hcEJhc2U7XG59XG4iLCI8aWdvLWxpc3QgW25hdmlnYXRpb25dPVwiZmFsc2VcIiBbc2VsZWN0aW9uXT1cImZhbHNlXCI+XG4gIDxkaXZcbiAgICBpZD1cIm5vLWxheWVyLW1lc3NhZ2VcIlxuICAgICpuZ0lmPVwiKGxheWVycyB8IGZpbHRlcmFibGVEYXRhU291cmNlOiAnb2djJykubGVuZ3RoID09PSAwXCJcbiAgPlxuICAgIHt7ICdpZ28uZ2VvLmZpbHRlci5ub0ZpbHRlcmFibGVMYXllcicgfCB0cmFuc2xhdGUgfX1cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtbGF5ZXIgW25nRm9yT2ZdPVwibGF5ZXJzIHwgZmlsdGVyYWJsZURhdGFTb3VyY2U6ICdvZ2MnXCI+XG4gICAgPGlnby1vZ2MtZmlsdGVyYWJsZS1pdGVtXG4gICAgICBpZ29MaXN0SXRlbVxuICAgICAgW2hlYWRlcl09XCJ0cnVlXCJcbiAgICAgIFtsYXllcl09XCJsYXllclwiXG4gICAgICBbbWFwXT1cImxheWVyLm1hcFwiXG4gICAgPjwvaWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW0+XG4gIDwvbmctdGVtcGxhdGU+XG48L2lnby1saXN0PlxuIl19
@@ -1,10 +1,14 @@
1
1
  import { Pipe } from '@angular/core';
2
+ import { isLayerGroup } from '../../layer';
2
3
  import * as i0 from "@angular/core";
3
4
  export class FilterableDataSourcePipe {
4
5
  transform(value, arg) {
5
6
  let layers;
6
7
  if (arg === 'time') {
7
8
  layers = value.filter((layer) => {
9
+ if (isLayerGroup(layer)) {
10
+ return false;
11
+ }
8
12
  const datasource = layer.dataSource;
9
13
  return (this.isTimeFilterable(datasource) &&
10
14
  datasource.options.timeFilter !== undefined &&
@@ -13,6 +17,9 @@ export class FilterableDataSourcePipe {
13
17
  }
14
18
  if (arg === 'ogc') {
15
19
  layers = value.filter((layer) => {
20
+ if (isLayerGroup(layer)) {
21
+ return false;
22
+ }
16
23
  const datasource = layer.dataSource;
17
24
  return this.isOgcFilterable(datasource);
18
25
  });
@@ -53,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
53
60
  standalone: true
54
61
  }]
55
62
  }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyYWJsZS1kYXRhc291cmNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvc2hhcmVkL2ZpbHRlcmFibGUtZGF0YXNvdXJjZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVVwRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFNBQVMsQ0FBQyxLQUFjLEVBQUUsR0FBVztRQUNuQyxJQUFJLE1BQU0sQ0FBQztRQUVYLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ3JDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFzQyxDQUFDO2dCQUNoRSxPQUFPLENBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztvQkFDakMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUztvQkFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FDbEQsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ3JDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFxQyxDQUFDO2dCQUMvRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFVBQW9DO1FBQzNELElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDdEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sZUFBZSxDQUFDLFVBQW1DO1FBQ3pELElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUNFLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUM3QixVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPO1lBQ3JDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFDdEMsQ0FBQztZQUNELGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQztRQUNELElBQ0UsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQzdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDckMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXO2dCQUN4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVO2dCQUN4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZO2dCQUMxQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNO2dCQUNwQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFDN0MsQ0FBQztZQUNELGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7d0dBbkRVLHdCQUF3QjtzR0FBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQUpwQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxzQkFBc0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVGltZUZpbHRlcmFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlIH0gZnJvbSAnLi9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2ZpbHRlcmFibGVEYXRhU291cmNlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJhYmxlRGF0YVNvdXJjZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbHVlOiBMYXllcltdLCBhcmc6IHN0cmluZyk6IExheWVyW10ge1xuICAgIGxldCBsYXllcnM7XG5cbiAgICBpZiAoYXJnID09PSAndGltZScpIHtcbiAgICAgIGxheWVycyA9IHZhbHVlLmZpbHRlcigobGF5ZXI6IExheWVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSBsYXllci5kYXRhU291cmNlIGFzIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLmlzVGltZUZpbHRlcmFibGUoZGF0YXNvdXJjZSkgJiZcbiAgICAgICAgICBkYXRhc291cmNlLm9wdGlvbnMudGltZUZpbHRlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgT2JqZWN0LmtleXMoZGF0YXNvdXJjZS5vcHRpb25zLnRpbWVGaWx0ZXIpLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChhcmcgPT09ICdvZ2MnKSB7XG4gICAgICBsYXllcnMgPSB2YWx1ZS5maWx0ZXIoKGxheWVyOiBMYXllcikgPT4ge1xuICAgICAgICBjb25zdCBkYXRhc291cmNlID0gbGF5ZXIuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPZ2NGaWx0ZXJhYmxlKGRhdGFzb3VyY2UpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBsYXllcnM7XG4gIH1cblxuICBwcml2YXRlIGlzVGltZUZpbHRlcmFibGUoZGF0YVNvdXJjZTogVGltZUZpbHRlcmFibGVEYXRhU291cmNlKSB7XG4gICAgaWYgKGRhdGFTb3VyY2Uub3B0aW9ucy50eXBlICE9PSAnd21zJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YVNvdXJjZS5vcHRpb25zLnRpbWVGaWx0ZXJhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc09nY0ZpbHRlcmFibGUoZGF0YVNvdXJjZTogT2djRmlsdGVyYWJsZURhdGFTb3VyY2UpOiBib29sZWFuIHtcbiAgICBsZXQgaXNPZ2NGaWx0ZXJhYmxlID0gZmFsc2U7XG4gICAgaWYgKFxuICAgICAgZGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMgJiZcbiAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmVuYWJsZWQgJiZcbiAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmVkaXRhYmxlXG4gICAgKSB7XG4gICAgICBpc09nY0ZpbHRlcmFibGUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBkYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycyAmJlxuICAgICAgZGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuZW5hYmxlZCAmJlxuICAgICAgKGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnB1c2hCdXR0b25zIHx8XG4gICAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmNoZWNrYm94ZXMgfHxcbiAgICAgICAgZGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMucmFkaW9CdXR0b25zIHx8XG4gICAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnNlbGVjdCB8fFxuICAgICAgICBkYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hdXRvY29tcGxldGUpXG4gICAgKSB7XG4gICAgICBpc09nY0ZpbHRlcmFibGUgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaXNPZ2NGaWx0ZXJhYmxlO1xuICB9XG59XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyYWJsZS1kYXRhc291cmNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvc2hhcmVkL2ZpbHRlcmFibGUtZGF0YXNvdXJjZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3BELE9BQU8sRUFBbUIsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU81RCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFNBQVMsQ0FBQyxLQUFpQixFQUFFLEdBQVc7UUFDdEMsSUFBSSxNQUFlLENBQUM7UUFDcEIsSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDbkIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBc0MsQ0FBQztnQkFDaEUsT0FBTyxDQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7b0JBQ2pDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVM7b0JBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQ2xELENBQUM7WUFDSixDQUFDLENBQVksQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBcUMsQ0FBQztnQkFDL0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBWSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsVUFBb0M7UUFDM0QsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO0lBQzNDLENBQUM7SUFFTyxlQUFlLENBQUMsVUFBbUM7UUFDekQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQ0UsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQzdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDckMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUN0QyxDQUFDO1lBQ0QsZUFBZSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFDRSxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVU7WUFDN0IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTztZQUNyQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVc7Z0JBQ3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVU7Z0JBQ3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVk7Z0JBQzFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU07Z0JBQ3BDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUM3QyxDQUFDO1lBQ0QsZUFBZSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQzt3R0F4RFUsd0JBQXdCO3NHQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSnBDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHNCQUFzQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBBbnlMYXllciwgTGF5ZXIsIGlzTGF5ZXJHcm91cCB9IGZyb20gJy4uLy4uL2xheWVyJztcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlIH0gZnJvbSAnLi9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2ZpbHRlcmFibGVEYXRhU291cmNlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJhYmxlRGF0YVNvdXJjZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbHVlOiBBbnlMYXllcltdLCBhcmc6IHN0cmluZyk6IExheWVyW10ge1xuICAgIGxldCBsYXllcnM6IExheWVyW107XG4gICAgaWYgKGFyZyA9PT0gJ3RpbWUnKSB7XG4gICAgICBsYXllcnMgPSB2YWx1ZS5maWx0ZXIoKGxheWVyKSA9PiB7XG4gICAgICAgIGlmIChpc0xheWVyR3JvdXAobGF5ZXIpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSBsYXllci5kYXRhU291cmNlIGFzIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLmlzVGltZUZpbHRlcmFibGUoZGF0YXNvdXJjZSkgJiZcbiAgICAgICAgICBkYXRhc291cmNlLm9wdGlvbnMudGltZUZpbHRlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgT2JqZWN0LmtleXMoZGF0YXNvdXJjZS5vcHRpb25zLnRpbWVGaWx0ZXIpLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfSkgYXMgTGF5ZXJbXTtcbiAgICB9XG4gICAgaWYgKGFyZyA9PT0gJ29nYycpIHtcbiAgICAgIGxheWVycyA9IHZhbHVlLmZpbHRlcigobGF5ZXIpID0+IHtcbiAgICAgICAgaWYgKGlzTGF5ZXJHcm91cChsYXllcikpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YXNvdXJjZSA9IGxheWVyLmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2U7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT2djRmlsdGVyYWJsZShkYXRhc291cmNlKTtcbiAgICAgIH0pIGFzIExheWVyW107XG4gICAgfVxuICAgIHJldHVybiBsYXllcnM7XG4gIH1cblxuICBwcml2YXRlIGlzVGltZUZpbHRlcmFibGUoZGF0YVNvdXJjZTogVGltZUZpbHRlcmFibGVEYXRhU291cmNlKSB7XG4gICAgaWYgKGRhdGFTb3VyY2Uub3B0aW9ucy50eXBlICE9PSAnd21zJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YVNvdXJjZS5vcHRpb25zLnRpbWVGaWx0ZXJhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc09nY0ZpbHRlcmFibGUoZGF0YVNvdXJjZTogT2djRmlsdGVyYWJsZURhdGFTb3VyY2UpOiBib29sZWFuIHtcbiAgICBsZXQgaXNPZ2NGaWx0ZXJhYmxlID0gZmFsc2U7XG4gICAgaWYgKFxuICAgICAgZGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMgJiZcbiAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmVuYWJsZWQgJiZcbiAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmVkaXRhYmxlXG4gICAgKSB7XG4gICAgICBpc09nY0ZpbHRlcmFibGUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBkYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycyAmJlxuICAgICAgZGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuZW5hYmxlZCAmJlxuICAgICAgKGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnB1c2hCdXR0b25zIHx8XG4gICAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmNoZWNrYm94ZXMgfHxcbiAgICAgICAgZGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMucmFkaW9CdXR0b25zIHx8XG4gICAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnNlbGVjdCB8fFxuICAgICAgICBkYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hdXRvY29tcGxldGUpXG4gICAgKSB7XG4gICAgICBpc09nY0ZpbHRlcmFibGUgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaXNPZ2NGaWx0ZXJhYmxlO1xuICB9XG59XG4iXX0=