@igo2/geo 18.0.0-next.8 → 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 (308) 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/any-datasource.interface.mjs +1 -1
  5. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +9 -1
  6. package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  7. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +8 -1
  8. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  9. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +8 -1
  10. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  11. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +8 -1
  12. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  13. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +8 -1
  14. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  15. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +8 -1
  16. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  17. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +4 -1
  18. package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +8 -1
  21. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  22. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  23. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +8 -1
  24. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  25. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +8 -1
  26. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  27. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  28. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +151 -102
  29. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +177 -83
  30. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +93 -44
  31. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  32. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  33. package/esm2022/lib/directions/directions.component.mjs +55 -31
  34. package/esm2022/lib/directions/shared/directions.enum.mjs +51 -7
  35. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  36. package/esm2022/lib/directions/shared/directions.service.mjs +122 -96
  37. package/esm2022/lib/directions/shared/directions.utils.mjs +281 -318
  38. package/esm2022/lib/directions/shared/store.mjs +2 -2
  39. package/esm2022/lib/download/download-button/download-button.component.mjs +8 -20
  40. package/esm2022/lib/download/shared/download.service.mjs +1 -1
  41. package/esm2022/lib/draw/draw/draw-popup.component.mjs +1 -1
  42. package/esm2022/lib/draw/draw/draw.component.mjs +5 -12
  43. package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
  44. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  45. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +2 -2
  46. package/esm2022/lib/feature/shared/feature-store.utils.mjs +7 -6
  47. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  48. package/esm2022/lib/feature/shared/store.mjs +1 -1
  49. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +3 -3
  50. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +7 -4
  51. package/esm2022/lib/feature/shared/strategies/selection.mjs +5 -4
  52. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
  53. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
  54. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +5 -3
  55. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +1 -1
  56. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +8 -1
  57. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1 -1
  58. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +2 -8
  59. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -8
  60. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  61. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +13 -10
  62. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  63. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +4 -2
  64. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +5 -16
  65. package/esm2022/lib/import-export/export-button/export-button.component.mjs +4 -17
  66. package/esm2022/lib/import-export/import-export/import-export.component.mjs +23 -12
  67. package/esm2022/lib/import-export/shared/export.service.mjs +7 -4
  68. package/esm2022/lib/import-export/shared/import.utils.mjs +3 -3
  69. package/esm2022/lib/layer/index.mjs +10 -5
  70. package/esm2022/lib/layer/layer-group/index.mjs +2 -0
  71. package/esm2022/lib/layer/layer-group/layer-group.component.mjs +103 -0
  72. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +61 -128
  73. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +5 -8
  74. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +5 -6
  75. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +14 -21
  76. package/esm2022/lib/layer/layer-list/index.mjs +1 -3
  77. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +176 -775
  78. package/esm2022/lib/layer/layer-list-tool/index.mjs +1 -2
  79. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +51 -84
  80. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +7 -2
  81. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +56 -16
  82. package/esm2022/lib/layer/layer-search/index.mjs +2 -0
  83. package/esm2022/lib/layer/layer-search/layer-search.component.mjs +65 -0
  84. package/esm2022/lib/layer/layer-unavailable/index.mjs +3 -0
  85. package/esm2022/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.mjs +25 -0
  86. package/esm2022/lib/layer/layer-unavailable/layer-unavailable.component.mjs +35 -0
  87. package/esm2022/lib/layer/layer-viewer/index.mjs +3 -0
  88. package/esm2022/lib/layer/layer-viewer/layer-viewer.component.mjs +226 -0
  89. package/esm2022/lib/layer/layer-viewer/layer-viewer.interface.mjs +2 -0
  90. package/esm2022/lib/layer/layer-viewer-bottom-actions/index.mjs +2 -0
  91. package/esm2022/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.mjs +207 -0
  92. package/esm2022/lib/layer/layer-visibility-button/index.mjs +2 -0
  93. package/esm2022/lib/layer/layer-visibility-button/layer-visibility-button.component.mjs +83 -0
  94. package/esm2022/lib/layer/layer.module.mjs +51 -33
  95. package/esm2022/lib/layer/shared/index.mjs +2 -1
  96. package/esm2022/lib/layer/shared/layer-controller.mjs +316 -0
  97. package/esm2022/lib/layer/shared/layer-selection.mjs +38 -0
  98. package/esm2022/lib/layer/shared/layer.service.mjs +56 -14
  99. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  100. package/esm2022/lib/layer/shared/layers/any-layer.mjs +1 -1
  101. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  102. package/esm2022/lib/layer/shared/layers/image-layer.mjs +8 -3
  103. package/esm2022/lib/layer/shared/layers/index.mjs +6 -1
  104. package/esm2022/lib/layer/shared/layers/layer-base.mjs +199 -0
  105. package/esm2022/lib/layer/shared/layers/layer-group.interface.mjs +2 -0
  106. package/esm2022/lib/layer/shared/layers/layer-group.mjs +120 -0
  107. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -11
  108. package/esm2022/lib/layer/shared/layers/layer.mjs +113 -113
  109. package/esm2022/lib/layer/shared/layers/linked/index.mjs +4 -0
  110. package/esm2022/lib/layer/shared/layers/linked/linked-layer.interface.mjs +12 -0
  111. package/esm2022/lib/layer/shared/layers/linked/linked-layer.mjs +242 -0
  112. package/esm2022/lib/layer/shared/layers/linked/linked-layer.utils.mjs +70 -0
  113. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +8 -3
  114. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +9 -3
  115. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +8 -3
  116. package/esm2022/lib/layer/utils/layer.utils.mjs +47 -1
  117. package/esm2022/lib/layer/utils/outputLegend.mjs +5 -1
  118. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
  119. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +8 -6
  120. package/esm2022/lib/map/map-center/map-center.component.mjs +1 -2
  121. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +1 -1
  122. package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
  123. package/esm2022/lib/map/shared/hover-feature.directive.mjs +1 -9
  124. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +113 -123
  125. package/esm2022/lib/map/shared/map.abstract.mjs +4 -3
  126. package/esm2022/lib/map/shared/map.mjs +7 -243
  127. package/esm2022/lib/map/shared/map.service.mjs +1 -1
  128. package/esm2022/lib/map/shared/map.utils.mjs +3 -3
  129. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -5
  130. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +1 -3
  131. package/esm2022/lib/map/utils/index.mjs +2 -0
  132. package/esm2022/lib/map/utils/layer-watcher.mjs +45 -13
  133. package/esm2022/lib/measure/measurer/measurer.component.mjs +7 -25
  134. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +6 -18
  135. package/esm2022/lib/offline/offline.provider.mjs +10 -11
  136. package/esm2022/lib/print/shared/print.service.mjs +3 -3
  137. package/esm2022/lib/query/shared/query.directive.mjs +9 -5
  138. package/esm2022/lib/query/shared/query.service.mjs +7 -7
  139. package/esm2022/lib/query/shared/query.utils.mjs +5 -1
  140. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +15 -9
  141. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +1 -10
  142. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  143. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
  144. package/esm2022/lib/search/shared/sources/workspace.mjs +1 -1
  145. package/esm2022/lib/workspace/shared/edition-workspace.mjs +6 -4
  146. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +19 -17
  147. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +17 -2
  148. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +22 -4
  149. package/esm2022/lib/workspace/shared/workspace.utils.mjs +6 -3
  150. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  151. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +6 -2
  152. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +4 -3
  153. package/fesm2022/igo2-geo.mjs +22502 -21440
  154. package/fesm2022/igo2-geo.mjs.map +1 -1
  155. package/lib/datasource/shared/capabilities.service.d.ts +7 -2
  156. package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +1 -0
  157. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +1 -0
  158. package/lib/datasource/shared/datasources/carto-datasource.d.ts +1 -0
  159. package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +0 -2
  160. package/lib/datasource/shared/datasources/cluster-datasource.d.ts +1 -0
  161. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +0 -1
  162. package/lib/datasource/shared/datasources/datasource.d.ts +1 -0
  163. package/lib/datasource/shared/datasources/datasource.interface.d.ts +1 -2
  164. package/lib/datasource/shared/datasources/feature-datasource.d.ts +1 -0
  165. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +0 -3
  166. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +1 -0
  167. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +0 -2
  168. package/lib/datasource/shared/datasources/mvt-datasource.d.ts +1 -0
  169. package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +0 -2
  170. package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +0 -2
  171. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +1 -0
  172. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +0 -2
  173. package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +0 -2
  174. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +1 -0
  175. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +3 -4
  176. package/lib/datasource/shared/datasources/wms-datasource.d.ts +1 -0
  177. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +6 -6
  178. package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +0 -2
  179. package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +0 -2
  180. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +57 -20
  181. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +115 -13
  182. package/lib/directions/directions-results/directions-results.component.d.ts +50 -16
  183. package/lib/directions/directions-sources/directions-source.d.ts +2 -2
  184. package/lib/directions/directions-sources/osrm-directions-source.d.ts +2 -2
  185. package/lib/directions/directions.component.d.ts +5 -5
  186. package/lib/directions/shared/directions.enum.d.ts +42 -1
  187. package/lib/directions/shared/directions.interface.d.ts +50 -25
  188. package/lib/directions/shared/directions.service.d.ts +46 -8
  189. package/lib/directions/shared/directions.utils.d.ts +102 -23
  190. package/lib/directions/shared/store.d.ts +3 -3
  191. package/lib/download/download-button/download-button.component.d.ts +4 -8
  192. package/lib/download/shared/download.service.d.ts +1 -1
  193. package/lib/draw/draw/draw.component.d.ts +2 -2
  194. package/lib/draw/shared/draw.utils.d.ts +2 -1
  195. package/lib/environment/environment.interface.d.ts +2 -0
  196. package/lib/feature/shared/feature-store.utils.d.ts +1 -1
  197. package/lib/feature/shared/feature.interfaces.d.ts +1 -1
  198. package/lib/feature/shared/store.d.ts +1 -1
  199. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  200. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -1
  201. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  202. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +2 -2
  203. package/lib/filter/shared/filterable-datasource.pipe.d.ts +2 -2
  204. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +3 -3
  205. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +3 -5
  206. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -5
  207. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  208. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +5 -5
  209. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  210. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +2 -7
  211. package/lib/import-export/export-button/export-button.component.d.ts +3 -7
  212. package/lib/import-export/import-export/import-export.component.d.ts +1 -2
  213. package/lib/import-export/shared/export.service.d.ts +2 -2
  214. package/lib/layer/index.d.ts +9 -4
  215. package/lib/layer/layer-group/index.d.ts +1 -0
  216. package/lib/layer/layer-group/layer-group.component.d.ts +30 -0
  217. package/lib/layer/layer-item/layer-item.component.d.ts +19 -38
  218. package/lib/layer/layer-legend/layer-legend.component.d.ts +2 -5
  219. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +6 -7
  220. package/lib/layer/layer-list/index.d.ts +0 -2
  221. package/lib/layer/layer-list/layer-list.component.d.ts +51 -123
  222. package/lib/layer/layer-list-tool/index.d.ts +0 -1
  223. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +19 -26
  224. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +5 -1
  225. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +9 -8
  226. package/lib/layer/layer-search/index.d.ts +1 -0
  227. package/lib/layer/layer-search/layer-search.component.d.ts +16 -0
  228. package/lib/layer/layer-unavailable/index.d.ts +2 -0
  229. package/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.d.ts +10 -0
  230. package/lib/layer/layer-unavailable/layer-unavailable.component.d.ts +11 -0
  231. package/lib/layer/layer-viewer/index.d.ts +2 -0
  232. package/lib/layer/layer-viewer/layer-viewer.component.d.ts +52 -0
  233. package/lib/layer/layer-viewer/layer-viewer.interface.d.ts +22 -0
  234. package/lib/layer/layer-viewer-bottom-actions/index.d.ts +1 -0
  235. package/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.d.ts +44 -0
  236. package/lib/layer/layer-visibility-button/index.d.ts +1 -0
  237. package/lib/layer/layer-visibility-button/layer-visibility-button.component.d.ts +22 -0
  238. package/lib/layer/layer.module.d.ts +18 -6
  239. package/lib/layer/shared/index.d.ts +1 -0
  240. package/lib/layer/shared/layer-controller.d.ts +81 -0
  241. package/lib/layer/shared/layer-selection.d.ts +14 -0
  242. package/lib/layer/shared/layer.service.d.ts +12 -3
  243. package/lib/layer/shared/layers/any-layer.d.ts +3 -6
  244. package/lib/layer/shared/layers/any-layer.interface.d.ts +8 -6
  245. package/lib/layer/shared/layers/image-layer.d.ts +5 -2
  246. package/lib/layer/shared/layers/image-layer.interface.d.ts +1 -4
  247. package/lib/layer/shared/layers/index.d.ts +5 -0
  248. package/lib/layer/shared/layers/layer-base.d.ts +75 -0
  249. package/lib/layer/shared/layers/layer-group.d.ts +32 -0
  250. package/lib/layer/shared/layers/layer-group.interface.d.ts +8 -0
  251. package/lib/layer/shared/layers/layer.d.ts +27 -44
  252. package/lib/layer/shared/layers/layer.interface.d.ts +23 -41
  253. package/lib/layer/shared/layers/linked/index.d.ts +3 -0
  254. package/lib/layer/shared/layers/linked/linked-layer.d.ts +35 -0
  255. package/lib/layer/shared/layers/linked/linked-layer.interface.d.ts +32 -0
  256. package/lib/layer/shared/layers/linked/linked-layer.utils.d.ts +9 -0
  257. package/lib/layer/shared/layers/tile-layer.d.ts +5 -2
  258. package/lib/layer/shared/layers/vector-layer.d.ts +7 -3
  259. package/lib/layer/shared/layers/vectortile-layer.d.ts +5 -2
  260. package/lib/layer/utils/layer.utils.d.ts +12 -2
  261. package/lib/layer/utils/outputLegend.d.ts +2 -2
  262. package/lib/map/shared/controllers/geolocation.interface.d.ts +2 -1
  263. package/lib/map/shared/hover-feature.directive.d.ts +0 -1
  264. package/lib/map/shared/linkedLayers.utils.d.ts +13 -17
  265. package/lib/map/shared/map.abstract.d.ts +12 -29
  266. package/lib/map/shared/map.d.ts +10 -85
  267. package/lib/map/shared/map.service.d.ts +1 -1
  268. package/lib/map/shared/map.utils.d.ts +5 -3
  269. package/lib/map/utils/index.d.ts +1 -0
  270. package/lib/map/utils/layer-watcher.d.ts +18 -8
  271. package/lib/measure/measurer/measurer.component.d.ts +0 -8
  272. package/lib/metadata/metadata-button/metadata-button.component.d.ts +3 -7
  273. package/lib/offline/offline.provider.d.ts +1 -1
  274. package/lib/query/shared/query.service.d.ts +1 -1
  275. package/lib/query/shared/query.utils.d.ts +2 -1
  276. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  277. package/lib/search/shared/search-pointer-summary.directive.d.ts +0 -1
  278. package/lib/search/shared/sources/cadastre.providers.d.ts +1 -1
  279. package/lib/search/shared/sources/coordinates.providers.d.ts +1 -1
  280. package/lib/search/shared/sources/icherche.providers.d.ts +1 -1
  281. package/lib/search/shared/sources/ilayer.interfaces.d.ts +1 -1
  282. package/lib/search/shared/sources/ilayer.providers.d.ts +1 -1
  283. package/lib/search/shared/sources/nominatim.providers.d.ts +1 -1
  284. package/lib/search/shared/sources/storedqueries.providers.d.ts +2 -2
  285. package/lib/search/shared/sources/workspace.interfaces.d.ts +1 -1
  286. package/lib/search/shared/sources/workspace.providers.d.ts +1 -1
  287. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  288. package/locale/en.geo.json +106 -89
  289. package/locale/fr.geo.json +105 -89
  290. package/package.json +5 -5
  291. package/src/geo-theme.scss +1 -1
  292. package/src/lib/directions/directions-inputs/directions-inputs.theming.scss +21 -0
  293. package/src/lib/directions/directions.theming.scss +2 -0
  294. package/src/lib/layer/layer-group/layer-group.theme.scss +28 -0
  295. package/src/lib/layer/layer-item/layer-item.theme.scss +12 -9
  296. package/src/lib/layer/layer-legend/layer-legend.theme.scss +30 -0
  297. package/src/lib/layer/layer-list/layer-list.theme.scss +50 -0
  298. package/src/lib/layer/layer-unavailable/layer-unavailable.theme.scss +19 -0
  299. package/src/lib/layer/layer-viewer/_layer-viewer.theme.scss +16 -0
  300. package/src/lib/layer/layer-visibility-button/layer-visibility-button.theme.scss +27 -0
  301. package/src/lib/layer/layer.theming.scss +14 -3
  302. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +0 -70
  303. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +0 -19
  304. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +0 -7
  305. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +0 -19
  306. package/lib/layer/layer-list/layer-list.enum.d.ts +0 -15
  307. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +0 -5
  308. package/src/lib/layer/layer-legend/layer-legend.theming.scss +0 -10
@@ -0,0 +1,38 @@
1
+ import { SelectionModel } from '@angular/cdk/collections';
2
+ import { isLayerGroup } from '../utils/layer.utils';
3
+ export class LayerSelectionModel {
4
+ selection = new SelectionModel(true);
5
+ descendantSelection = new SelectionModel(true);
6
+ get selected() {
7
+ return this.selection.selected;
8
+ }
9
+ get hasSelection() {
10
+ return this.selection.hasValue();
11
+ }
12
+ get isSelectionEmpty() {
13
+ return this.selection.isEmpty();
14
+ }
15
+ clearSelection() {
16
+ this.selection.clear();
17
+ this.descendantSelection.clear();
18
+ }
19
+ select(...layers) {
20
+ this.selection.select(...layers);
21
+ this.descendantSelection.select(...this.getDescendants(...layers));
22
+ }
23
+ deselect(...layers) {
24
+ this.selection.deselect(...layers);
25
+ this.descendantSelection.deselect(...this.getDescendants(...layers));
26
+ }
27
+ isSelected = (layer) => this.selection.isSelected(layer);
28
+ isDescendantSelection = (layer) => this.descendantSelection.isSelected(layer);
29
+ getDescendants(...layers) {
30
+ return layers.reduce((descendants, layer) => {
31
+ if (isLayerGroup(layer)) {
32
+ return descendants.concat(layer.descendants);
33
+ }
34
+ return descendants;
35
+ }, []);
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItc2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVyLXNlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3BELE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsU0FBUyxHQUFHLElBQUksY0FBYyxDQUFXLElBQUksQ0FBQyxDQUFDO0lBQy9DLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFXLElBQUksQ0FBQyxDQUFDO0lBRWpFLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLE1BQWtCO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRyxNQUFrQjtRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsVUFBVSxHQUFHLENBQUMsS0FBZSxFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RSxxQkFBcUIsR0FBRyxDQUFDLEtBQWUsRUFBVyxFQUFFLENBQ25ELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFckMsY0FBYyxDQUFDLEdBQUcsTUFBa0I7UUFDMUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBdUIsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0RCxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN4QixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5cbmltcG9ydCB7IGlzTGF5ZXJHcm91cCB9IGZyb20gJy4uL3V0aWxzL2xheWVyLnV0aWxzJztcbmltcG9ydCB7IEFueUxheWVyIH0gZnJvbSAnLi9sYXllcnMvYW55LWxheWVyJztcblxuZXhwb3J0IGNsYXNzIExheWVyU2VsZWN0aW9uTW9kZWwge1xuICBwcml2YXRlIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxBbnlMYXllcj4odHJ1ZSk7XG4gIHByaXZhdGUgZGVzY2VuZGFudFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxBbnlMYXllcj4odHJ1ZSk7XG5cbiAgZ2V0IHNlbGVjdGVkKCk6IEFueUxheWVyW10ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZDtcbiAgfVxuXG4gIGdldCBoYXNTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLmhhc1ZhbHVlKCk7XG4gIH1cblxuICBnZXQgaXNTZWxlY3Rpb25FbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24uaXNFbXB0eSgpO1xuICB9XG5cbiAgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICB0aGlzLmRlc2NlbmRhbnRTZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxuXG4gIHNlbGVjdCguLi5sYXllcnM6IEFueUxheWVyW10pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QoLi4ubGF5ZXJzKTtcbiAgICB0aGlzLmRlc2NlbmRhbnRTZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMuZ2V0RGVzY2VuZGFudHMoLi4ubGF5ZXJzKSk7XG4gIH1cblxuICBkZXNlbGVjdCguLi5sYXllcnM6IEFueUxheWVyW10pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdCguLi5sYXllcnMpO1xuICAgIHRoaXMuZGVzY2VuZGFudFNlbGVjdGlvbi5kZXNlbGVjdCguLi50aGlzLmdldERlc2NlbmRhbnRzKC4uLmxheWVycykpO1xuICB9XG5cbiAgaXNTZWxlY3RlZCA9IChsYXllcjogQW55TGF5ZXIpOiBib29sZWFuID0+IHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobGF5ZXIpO1xuICBpc0Rlc2NlbmRhbnRTZWxlY3Rpb24gPSAobGF5ZXI6IEFueUxheWVyKTogYm9vbGVhbiA9PlxuICAgIHRoaXMuZGVzY2VuZGFudFNlbGVjdGlvbi5pc1NlbGVjdGVkKGxheWVyKTtcblxuICBwcml2YXRlIGdldERlc2NlbmRhbnRzKC4uLmxheWVyczogQW55TGF5ZXJbXSk6IEFueUxheWVyW10ge1xuICAgIHJldHVybiBsYXllcnMucmVkdWNlKChkZXNjZW5kYW50czogQW55TGF5ZXJbXSwgbGF5ZXIpID0+IHtcbiAgICAgIGlmIChpc0xheWVyR3JvdXAobGF5ZXIpKSB7XG4gICAgICAgIHJldHVybiBkZXNjZW5kYW50cy5jb25jYXQobGF5ZXIuZGVzY2VuZGFudHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRlc2NlbmRhbnRzO1xuICAgIH0sIFtdKTtcbiAgfVxufVxuIl19
@@ -12,8 +12,9 @@ import { ArcGISRestDataSource, CartoDataSource, ClusterDataSource, FeatureDataSo
12
12
  import { LayerDBService } from '../../offline/layerDB/layerDB.service';
13
13
  import { GeoNetworkService } from '../../offline/shared/geo-network.service';
14
14
  import { StyleService } from '../../style/style-service/style.service';
15
- import { computeMVTOptionsOnHover } from '../utils/layer.utils';
15
+ import { computeMVTOptionsOnHover, isLayerGroupOptions } from '../utils/layer.utils';
16
16
  import { ImageLayer, TileLayer, VectorLayer, VectorTileLayer } from './layers';
17
+ import { LayerGroup } from './layers/layer-group';
17
18
  import * as i0 from "@angular/core";
18
19
  import * as i1 from "@angular/common/http";
19
20
  import * as i2 from "../../style/style-service/style.service";
@@ -30,6 +31,7 @@ export class LayerService {
30
31
  geoNetworkService;
31
32
  layerDBService;
32
33
  authInterceptor;
34
+ unavailableLayers = [];
33
35
  constructor(http, styleService, dataSourceService, messageService, geoNetworkService, layerDBService, authInterceptor) {
34
36
  this.http = http;
35
37
  this.styleService = styleService;
@@ -39,12 +41,16 @@ export class LayerService {
39
41
  this.layerDBService = layerDBService;
40
42
  this.authInterceptor = authInterceptor;
41
43
  }
44
+ createLayers(layersOption, contextUri) {
45
+ const arrayObsLayers = layersOption.map((option) => {
46
+ return isLayerGroupOptions(option)
47
+ ? this.createAsyncGroup(option)
48
+ : this.createAsyncLayer(option, contextUri);
49
+ });
50
+ return combineLatest(arrayObsLayers);
51
+ }
42
52
  createLayer(layerOptions) {
43
- if (!layerOptions.source) {
44
- return;
45
- }
46
- if (layerOptions.source.options &&
47
- layerOptions.source.options._layerOptionsFromSource) {
53
+ if (layerOptions.source?.options?._layerOptionsFromSource) {
48
54
  layerOptions = ObjectUtils.mergeDeep(layerOptions.source.options._layerOptionsFromSource, layerOptions || {});
49
55
  }
50
56
  let layer;
@@ -78,20 +84,35 @@ export class LayerService {
78
84
  }
79
85
  return layer;
80
86
  }
81
- createAsyncLayer(_layerOptions, detailedContextUri) {
82
- const layerOptions = computeMVTOptionsOnHover(_layerOptions);
83
- if (layerOptions.source) {
84
- return new Observable((d) => d.next(this.createLayer(layerOptions)));
87
+ createAsyncLayer(options, detailedContextUri) {
88
+ const optionsCloned = { ...options };
89
+ computeMVTOptionsOnHover(optionsCloned);
90
+ if (optionsCloned.source) {
91
+ return new Observable((d) => d.next(this.createLayer(optionsCloned)));
85
92
  }
86
93
  return this.dataSourceService
87
- .createAsyncDataSource(layerOptions.sourceOptions, detailedContextUri)
94
+ .createAsyncDataSource(optionsCloned.sourceOptions, detailedContextUri)
88
95
  .pipe(map((source) => {
89
96
  if (source === undefined) {
97
+ const found = this.unavailableLayers.some((el) => el === optionsCloned);
98
+ if (!found) {
99
+ this.unavailableLayers.push(optionsCloned);
100
+ }
90
101
  return undefined;
91
102
  }
92
- return this.createLayer(Object.assign(layerOptions, { source }));
103
+ return this.createLayer(Object.assign(optionsCloned, { source }));
93
104
  }));
94
105
  }
106
+ createAsyncGroup(options, detailedContextUri) {
107
+ if (!options.children?.length) {
108
+ return of(this.createGroup(null, options));
109
+ }
110
+ return this.createLayers(options.children, detailedContextUri).pipe(map((layers) => this.createGroup(layers.filter(Boolean), options)));
111
+ }
112
+ createGroup(layers, options) {
113
+ const group = new LayerGroup(layers, options);
114
+ return group;
115
+ }
95
116
  createImageLayer(layerOptions) {
96
117
  return new ImageLayer(layerOptions, this.messageService, this.authInterceptor);
97
118
  }
@@ -119,7 +140,6 @@ export class LayerService {
119
140
  }
120
141
  else if (layerOptions.igoStyle.igoStyleObject &&
121
142
  layerOptions.idbInfo?.storeToIdb) {
122
- // temporary fix todo : handle it with geostyler.
123
143
  style = this.styleService.parseStyle('style', layerOptions.igoStyle.igoStyleObject);
124
144
  }
125
145
  if (layerOptions.source instanceof ArcGISRestDataSource) {
@@ -255,6 +275,28 @@ export class LayerService {
255
275
  return combineLatest(layersOptions.map((layerOptions) => this.createAsyncLayer(layerOptions)));
256
276
  }));
257
277
  }
278
+ deleteUnavailableLayers(anyLayerOptions) {
279
+ const anyLayerSourceOptions = anyLayerOptions.sourceOptions;
280
+ const index = this.unavailableLayers.findIndex((item) => {
281
+ const baseSourceOptions = item.sourceOptions;
282
+ if (this.sourceOptionsWithParams(baseSourceOptions) &&
283
+ this.sourceOptionsWithParams(anyLayerSourceOptions)) {
284
+ return (baseSourceOptions.params.LAYERS ===
285
+ anyLayerSourceOptions.params.LAYERS);
286
+ }
287
+ else if (this.sourceOptionsWithLayer(baseSourceOptions) &&
288
+ this.sourceOptionsWithLayer(anyLayerSourceOptions)) {
289
+ return baseSourceOptions.layer === anyLayerSourceOptions.layer;
290
+ }
291
+ });
292
+ this.unavailableLayers.splice(index, index >= 0 ? 1 : 0);
293
+ }
294
+ sourceOptionsWithParams(sourceOptions) {
295
+ return 'params' in sourceOptions;
296
+ }
297
+ sourceOptionsWithLayer(sourceOptions) {
298
+ return 'layer' in sourceOptions;
299
+ }
258
300
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayerService, deps: [{ token: i1.HttpClient }, { token: i2.StyleService }, { token: i3.DataSourceService }, { token: i4.MessageService }, { token: i5.GeoNetworkService, optional: true }, { token: i6.LayerDBService, optional: true }, { token: i7.AuthInterceptor, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
259
301
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayerService, providedIn: 'root' });
260
302
  }
@@ -270,4 +312,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
270
312
  }] }, { type: i7.AuthInterceptor, decorators: [{
271
313
  type: Optional
272
314
  }] }] });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTFDLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsYUFBYSxFQUNiLGFBQWEsRUFDYix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixhQUFhLEVBQ2IsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixhQUFhLEVBQ2QsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENB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QUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDbEMsQ0FBQyxDQUNILENBQUM7WUFDRixPQUFPLGFBQWEsQ0FDbEIsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FDcEMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7d0dBcFdVLFlBQVk7NEdBQVosWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9IGZyb20gJ0BpZ28yL2F1dGgnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCBvbExheWVyVmVjdG9yVGlsZSBmcm9tICdvbC9sYXllci9WZWN0b3JUaWxlJztcbmltcG9ydCB7IFN0eWxlIH0gZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0ICogYXMgb2xTdHlsZSBmcm9tICdvbC9zdHlsZSc7XG5pbXBvcnQgeyBTdHlsZUxpa2UgYXMgT2xTdHlsZUxpa2UgfSBmcm9tICdvbC9zdHlsZS9TdHlsZSc7XG5cbmltcG9ydCB7IHN0eWxlZnVuY3Rpb24gfSBmcm9tICdvbC1tYXBib3gtc3R5bGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGNvbmNhdE1hcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge1xuICBBcmNHSVNSZXN0RGF0YVNvdXJjZSxcbiAgQ2FydG9EYXRhU291cmNlLFxuICBDbHVzdGVyRGF0YVNvdXJjZSxcbiAgRmVhdHVyZURhdGFTb3VyY2UsXG4gIEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2UsXG4gIE1WVERhdGFTb3VyY2UsXG4gIE9TTURhdGFTb3VyY2UsXG4gIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZSxcbiAgVGlsZURlYnVnRGF0YVNvdXJjZSxcbiAgV0ZTRGF0YVNvdXJjZSxcbiAgV01TRGF0YVNvdXJjZSxcbiAgV01UU0RhdGFTb3VyY2UsXG4gIFdlYlNvY2tldERhdGFTb3VyY2UsXG4gIFhZWkRhdGFTb3VyY2Vcbn0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMnO1xuaW1wb3J0IHsgTGF5ZXJEQlNlcnZpY2UgfSBmcm9tICcuLi8uLi9vZmZsaW5lL2xheWVyREIvbGF5ZXJEQi5zZXJ2aWNlJztcbmltcG9ydCB7IEdlb05ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vb2ZmbGluZS9zaGFyZWQvZ2VvLW5ldHdvcmsuc2VydmljZSc7XG5pbXBvcnQgeyBTdHlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdHlsZS9zdHlsZS1zZXJ2aWNlL3N0eWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29tcHV0ZU1WVE9wdGlvbnNPbkhvdmVyIH0gZnJvbSAnLi4vdXRpbHMvbGF5ZXIudXRpbHMnO1xuaW1wb3J0IHtcbiAgQW55TGF5ZXJPcHRpb25zLFxuICBJbWFnZUxheWVyLFxuICBJbWFnZUxheWVyT3B0aW9ucyxcbiAgTGF5ZXIsXG4gIExheWVyT3B0aW9ucyxcbiAgVGlsZUxheWVyLFxuICBUaWxlTGF5ZXJPcHRpb25zLFxuICBWZWN0b3JMYXllcixcbiAgVmVjdG9yTGF5ZXJPcHRpb25zLFxuICBWZWN0b3JUaWxlTGF5ZXIsXG4gIFZlY3RvclRpbGVMYXllck9wdGlvbnNcbn0gZnJvbSAnLi9sYXllcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMYXllclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBzdHlsZVNlcnZpY2U6IFN0eWxlU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFTb3VyY2VTZXJ2aWNlOiBEYXRhU291cmNlU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGdlb05ldHdvcmtTZXJ2aWNlPzogR2VvTmV0d29ya1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBsYXllckRCU2VydmljZT86IExheWVyREJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgYXV0aEludGVyY2VwdG9yPzogQXV0aEludGVyY2VwdG9yXG4gICkge31cblxuICBjcmVhdGVMYXllcihsYXllck9wdGlvbnM6IEFueUxheWVyT3B0aW9ucyk6IExheWVyIHtcbiAgICBpZiAoIWxheWVyT3B0aW9ucy5zb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBsYXllck9wdGlvbnMuc291cmNlLm9wdGlvbnMgJiZcbiAgICAgIGxheWVyT3B0aW9ucy5zb3VyY2Uub3B0aW9ucy5fbGF5ZXJPcHRpb25zRnJvbVNvdXJjZVxuICAgICkge1xuICAgICAgbGF5ZXJPcHRpb25zID0gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKFxuICAgICAgICBsYXllck9wdGlvbnMuc291cmNlLm9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UsXG4gICAgICAgIGxheWVyT3B0aW9ucyB8fCB7fVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgbGF5ZXI7XG4gICAgc3dpdGNoIChsYXllck9wdGlvbnMuc291cmNlLmNvbnN0cnVjdG9yKSB7XG4gICAgICBjYXNlIE9TTURhdGFTb3VyY2U6XG4gICAgICBjYXNlIFdNVFNEYXRhU291cmNlOlxuICAgICAgY2FzZSBYWVpEYXRhU291cmNlOlxuICAgICAgY2FzZSBUaWxlRGVidWdEYXRhU291cmNlOlxuICAgICAgY2FzZSBDYXJ0b0RhdGFTb3VyY2U6XG4gICAgICBjYXNlIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZTpcbiAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZVRpbGVMYXllcihsYXllck9wdGlvbnMgYXMgVGlsZUxheWVyT3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGZWF0dXJlRGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgV0ZTRGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgQXJjR0lTUmVzdERhdGFTb3VyY2U6XG4gICAgICBjYXNlIFdlYlNvY2tldERhdGFTb3VyY2U6XG4gICAgICBjYXNlIENsdXN0ZXJEYXRhU291cmNlOlxuICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlVmVjdG9yTGF5ZXIobGF5ZXJPcHRpb25zIGFzIFZlY3RvckxheWVyT3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlOlxuICAgICAgY2FzZSBXTVNEYXRhU291cmNlOlxuICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlSW1hZ2VMYXllcihsYXllck9wdGlvbnMgYXMgSW1hZ2VMYXllck9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTVZURGF0YVNvdXJjZToge1xuICAgICAgICBjb25zdCBfbGF5ZXJPcHRpb25zID0gY29tcHV0ZU1WVE9wdGlvbnNPbkhvdmVyKGxheWVyT3B0aW9ucyk7XG4gICAgICAgIGxheWVyID0gdGhpcy5jcmVhdGVWZWN0b3JUaWxlTGF5ZXIoXG4gICAgICAgICAgX2xheWVyT3B0aW9ucyBhcyBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxheWVyO1xuICB9XG5cbiAgY3JlYXRlQXN5bmNMYXllcihcbiAgICBfbGF5ZXJPcHRpb25zOiBBbnlMYXllck9wdGlvbnMsXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8TGF5ZXI+IHtcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSBjb21wdXRlTVZUT3B0aW9uc09uSG92ZXIoX2xheWVyT3B0aW9ucyk7XG4gICAgaWYgKGxheWVyT3B0aW9ucy5zb3VyY2UpIHtcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KHRoaXMuY3JlYXRlTGF5ZXIobGF5ZXJPcHRpb25zKSkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlXG4gICAgICAuY3JlYXRlQXN5bmNEYXRhU291cmNlKGxheWVyT3B0aW9ucy5zb3VyY2VPcHRpb25zLCBkZXRhaWxlZENvbnRleHRVcmkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChzb3VyY2UpID0+IHtcbiAgICAgICAgICBpZiAoc291cmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUxheWVyKE9iamVjdC5hc3NpZ24obGF5ZXJPcHRpb25zLCB7IHNvdXJjZSB9KSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbWFnZUxheWVyKGxheWVyT3B0aW9uczogSW1hZ2VMYXllck9wdGlvbnMpOiBJbWFnZUxheWVyIHtcbiAgICByZXR1cm4gbmV3IEltYWdlTGF5ZXIoXG4gICAgICBsYXllck9wdGlvbnMsXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3JcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUaWxlTGF5ZXIobGF5ZXJPcHRpb25zOiBUaWxlTGF5ZXJPcHRpb25zKTogVGlsZUxheWVyIHtcbiAgICByZXR1cm4gbmV3IFRpbGVMYXllcihcbiAgICAgIGxheWVyT3B0aW9ucyxcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UsXG4gICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvclxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVZlY3RvckxheWVyKGxheWVyT3B0aW9uczogVmVjdG9yTGF5ZXJPcHRpb25zKTogVmVjdG9yTGF5ZXIge1xuICAgIGxldCBzdHlsZTogU3R5bGVbXSB8IFN0eWxlIHwgT2xTdHlsZUxpa2UgPSBsYXllck9wdGlvbnMuc3R5bGU7XG4gICAgbGV0IGlnb0xheWVyOiBWZWN0b3JMYXllcjtcblxuICAgIGlmICghbGF5ZXJPcHRpb25zLmlnb1N0eWxlKSB7XG4gICAgICBsYXllck9wdGlvbnMuaWdvU3R5bGUgPSB7fTtcbiAgICB9XG4gICAgY29uc3QgbGVnYWN5U3R5bGVPcHRpb25zID0gW1xuICAgICAgJ3N0eWxlQnlBdHRyaWJ1dGUnLFxuICAgICAgJ2hvdmVyU3R5bGUnLFxuICAgICAgJ21hcGJveFN0eWxlJyxcbiAgICAgICdjbHVzdGVyQmFzZVN0eWxlJyxcbiAgICAgICdzdHlsZSdcbiAgICBdO1xuICAgIC8vIGhhbmRsaW5nIGxlZ2FjeSBwcm9wZXJ0eS5cbiAgICB0aGlzLmhhbmRsZUxlZ2FjeVN0eWxlcyhsYXllck9wdGlvbnMsIGxlZ2FjeVN0eWxlT3B0aW9ucyk7XG4gICAgaWYgKFxuICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlLmlnb1N0eWxlT2JqZWN0ICYmXG4gICAgICAhbGF5ZXJPcHRpb25zLmlkYkluZm8/LnN0b3JlVG9JZGJcbiAgICApIHtcbiAgICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+XG4gICAgICAgIHRoaXMuc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxuICAgICAgICAgIGxheWVyT3B0aW9ucy5pZ29TdHlsZS5pZ29TdHlsZU9iamVjdCxcbiAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlLmlnb1N0eWxlT2JqZWN0ICYmXG4gICAgICBsYXllck9wdGlvbnMuaWRiSW5mbz8uc3RvcmVUb0lkYlxuICAgICkge1xuICAgICAgLy8gdGVtcG9yYXJ5IGZpeCB0b2RvIDogaGFuZGxlIGl0IHdpdGggZ2Vvc3R5bGVyLlxuICAgICAgc3R5bGUgPSB0aGlzLnN0eWxlU2VydmljZS5wYXJzZVN0eWxlKFxuICAgICAgICAnc3R5bGUnLFxuICAgICAgICBsYXllck9wdGlvbnMuaWdvU3R5bGUuaWdvU3R5bGVPYmplY3RcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGxheWVyT3B0aW9ucy5zb3VyY2UgaW5zdGFuY2VvZiBBcmNHSVNSZXN0RGF0YVNvdXJjZSkge1xuICAgICAgY29uc3Qgc291cmNlID0gbGF5ZXJPcHRpb25zLnNvdXJjZSBhcyBBcmNHSVNSZXN0RGF0YVNvdXJjZTtcbiAgICAgIHN0eWxlID0gc291cmNlLm9wdGlvbnMucGFyYW1zLnN0eWxlO1xuICAgIH0gZWxzZSBpZiAobGF5ZXJPcHRpb25zLmlnb1N0eWxlPy5zdHlsZUJ5QXR0cmlidXRlKSB7XG4gICAgICBjb25zdCBzZXJ2aWNlU3R5bGUgPSB0aGlzLnN0eWxlU2VydmljZTtcbiAgICAgIGxheWVyT3B0aW9ucy5zdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlU3R5bGUuY3JlYXRlU3R5bGVCeUF0dHJpYnV0ZShcbiAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgIGxheWVyT3B0aW9ucy5pZ29TdHlsZS5zdHlsZUJ5QXR0cmlidXRlLFxuICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgKTtcbiAgICAgIH07XG5cbiAgICAgIGlnb0xheWVyID0gbmV3IFZlY3RvckxheWVyKFxuICAgICAgICBsYXllck9wdGlvbnMsXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yLFxuICAgICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlLFxuICAgICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlPy5nZW9EQlNlcnZpY2UsXG4gICAgICAgIHRoaXMubGF5ZXJEQlNlcnZpY2VcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGxheWVyT3B0aW9ucy5zb3VyY2UgaW5zdGFuY2VvZiBDbHVzdGVyRGF0YVNvdXJjZSkge1xuICAgICAgY29uc3Qgc2VydmljZVN0eWxlID0gdGhpcy5zdHlsZVNlcnZpY2U7XG4gICAgICBjb25zdCBiYXNlU3R5bGUgPSBsYXllck9wdGlvbnMuaWdvU3R5bGUuY2x1c3RlckJhc2VTdHlsZTtcbiAgICAgIGxheWVyT3B0aW9ucy5zdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlU3R5bGUuY3JlYXRlQ2x1c3RlclN0eWxlKFxuICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgcmVzb2x1dGlvbixcbiAgICAgICAgICBsYXllck9wdGlvbnMuY2x1c3RlclBhcmFtLFxuICAgICAgICAgIGJhc2VTdHlsZVxuICAgICAgICApO1xuICAgICAgfTtcblxuICAgICAgaWdvTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoXG4gICAgICAgIGxheWVyT3B0aW9ucyxcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZSxcbiAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3IsXG4gICAgICAgIHRoaXMuZ2VvTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIHRoaXMuZ2VvTmV0d29ya1NlcnZpY2U/Lmdlb0RCU2VydmljZSxcbiAgICAgICAgdGhpcy5sYXllckRCU2VydmljZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXllck9wdGlvbnNPbCA9IE9iamVjdC5hc3NpZ24oe30sIGxheWVyT3B0aW9ucywge1xuICAgICAgc3R5bGVcbiAgICB9KTtcblxuICAgIGlmICghaWdvTGF5ZXIpIHtcbiAgICAgIGlnb0xheWVyID0gbmV3IFZlY3RvckxheWVyKFxuICAgICAgICBsYXllck9wdGlvbnNPbCxcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZSxcbiAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3IsXG4gICAgICAgIHRoaXMuZ2VvTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIHRoaXMuZ2VvTmV0d29ya1NlcnZpY2U/Lmdlb0RCU2VydmljZSxcbiAgICAgICAgdGhpcy5sYXllckRCU2VydmljZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcGx5TWFwYm94U3R5bGUoaWdvTGF5ZXIsIGxheWVyT3B0aW9uc09sIGFzIGFueSk7XG5cbiAgICByZXR1cm4gaWdvTGF5ZXI7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUxlZ2FjeVN0eWxlcyhsYXllck9wdGlvbnMsIGxlZ2FjeVN0eWxlT3B0aW9uczogc3RyaW5nW10pIHtcbiAgICBsZWdhY3lTdHlsZU9wdGlvbnMubWFwKChsZWdhY3lPcHRpb24pID0+IHtcbiAgICAgIGlmIChsYXllck9wdGlvbnNbbGVnYWN5T3B0aW9uXSkge1xuICAgICAgICBsZXQgbmV3S2V5ID0gbGVnYWN5T3B0aW9uO1xuICAgICAgICBpZiAobGVnYWN5T3B0aW9uID09PSAnc3R5bGUnKSB7XG4gICAgICAgICAgaWYgKGxheWVyT3B0aW9uc1tsZWdhY3lPcHRpb25dIGluc3RhbmNlb2Ygb2xTdHlsZS5TdHlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGxheWVyT3B0aW9uc1tsZWdhY3lPcHRpb25dID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgbmV3S2V5ID0gJ2lnb1N0eWxlT2JqZWN0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsYXllck9wdGlvbnMuaWdvU3R5bGVbbmV3S2V5XSA9IGxheWVyT3B0aW9uc1tsZWdhY3lPcHRpb25dO1xuICAgICAgICBkZWxldGUgbGF5ZXJPcHRpb25zW2xlZ2FjeU9wdGlvbl07XG4gICAgICAgIGNvbnNvbGUud2FybihgXG4gICAgICAgIFRoZSBsb2NhdGlvbiBvZiB0aGlzIHN0eWxlIG9wdGlvbiAoJHtsZWdhY3lPcHRpb259KSBpcyBkZXByZWNhdGVkLlxuICAgICAgICBQbGVhc2UgbW92ZSB0aGlzIHByb3BlcnR5IHdpdGhpbiBpZ29TdHlsZSBwcm9wZXJ0eS5cbiAgICAgICAgRXg6ICR7bGVnYWN5T3B0aW9ufTogey4uLn0gbXVzdCBiZSB0cmFuc2ZlcmVkIHRvIGlnb1N0eWxlOiB7ICR7bmV3S2V5fTogey4uLn0gfVxuICAgICAgICBUaGlzIGxlZ2FjeSBjb252ZXJzaW9uIHdpbGwgYmUgZGVsZXRlZCBpbiAyMDI0LlxuICAgICAgICBgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVmVjdG9yVGlsZUxheWVyKFxuICAgIGxheWVyT3B0aW9uczogVmVjdG9yVGlsZUxheWVyT3B0aW9uc1xuICApOiBWZWN0b3JUaWxlTGF5ZXIge1xuICAgIGxldCBzdHlsZTogU3R5bGVbXSB8IFN0eWxlIHwgT2xTdHlsZUxpa2U7XG4gICAgbGV0IGlnb0xheWVyOiBWZWN0b3JUaWxlTGF5ZXI7XG5cbiAgICBpZiAoIWxheWVyT3B0aW9ucy5pZ29TdHlsZSkge1xuICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlID0ge307XG4gICAgfVxuICAgIGNvbnN0IGxlZ2FjeVN0eWxlT3B0aW9ucyA9IFtcbiAgICAgICdzdHlsZUJ5QXR0cmlidXRlJyxcbiAgICAgICdob3ZlclN0eWxlJyxcbiAgICAgICdtYXBib3hTdHlsZScsXG4gICAgICAnc3R5bGUnXG4gICAgXTtcbiAgICAvLyBoYW5kbGluZyBsZWdhY3kgcHJvcGVydHkuXG4gICAgdGhpcy5oYW5kbGVMZWdhY3lTdHlsZXMobGF5ZXJPcHRpb25zLCBsZWdhY3lTdHlsZU9wdGlvbnMpO1xuXG4gICAgaWYgKGxheWVyT3B0aW9ucy5pZ29TdHlsZS5pZ29TdHlsZU9iamVjdCkge1xuICAgICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT5cbiAgICAgICAgdGhpcy5zdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoXG4gICAgICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlLmlnb1N0eWxlT2JqZWN0LFxuICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgcmVzb2x1dGlvblxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChsYXllck9wdGlvbnMuaWdvU3R5bGUuc3R5bGVCeUF0dHJpYnV0ZSkge1xuICAgICAgY29uc3Qgc2VydmljZVN0eWxlID0gdGhpcy5zdHlsZVNlcnZpY2U7XG4gICAgICBsYXllck9wdGlvbnMuc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gc2VydmljZVN0eWxlLmNyZWF0ZVN0eWxlQnlBdHRyaWJ1dGUoXG4gICAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgICBsYXllck9wdGlvbnMuaWdvU3R5bGUuc3R5bGVCeUF0dHJpYnV0ZSxcbiAgICAgICAgICByZXNvbHV0aW9uXG4gICAgICAgICk7XG4gICAgICB9O1xuICAgICAgaWdvTGF5ZXIgPSBuZXcgVmVjdG9yVGlsZUxheWVyKFxuICAgICAgICBsYXllck9wdGlvbnMsXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxheWVyT3B0aW9uc09sID0gT2JqZWN0LmFzc2lnbih7fSwgbGF5ZXJPcHRpb25zLCB7XG4gICAgICBzdHlsZVxuICAgIH0pO1xuXG4gICAgaWYgKCFpZ29MYXllcikge1xuICAgICAgaWdvTGF5ZXIgPSBuZXcgVmVjdG9yVGlsZUxheWVyKFxuICAgICAgICBsYXllck9wdGlvbnNPbCxcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZSxcbiAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3JcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hcHBseU1hcGJveFN0eWxlKGlnb0xheWVyLCBsYXllck9wdGlvbnNPbCk7XG4gICAgcmV0dXJuIGlnb0xheWVyO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseU1hcGJveFN0eWxlKGxheWVyOiBMYXllciwgbGF5ZXJPcHRpb25zOiBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zKSB7XG4gICAgaWYgKGxheWVyT3B0aW9ucy5pZ29TdHlsZT8ubWFwYm94U3R5bGUpIHtcbiAgICAgIHRoaXMuZ2V0U3R1ZmYobGF5ZXJPcHRpb25zLmlnb1N0eWxlLm1hcGJveFN0eWxlLnVybCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcy5zcHJpdGUpIHtcbiAgICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldEFic29sdXRlVXJsKFxuICAgICAgICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlLm1hcGJveFN0eWxlLnVybCxcbiAgICAgICAgICAgIHJlcy5zcHJpdGVcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuZ2V0U3R1ZmYodXJsICsgJy5qc29uJykuc3Vic2NyaWJlKChyZXMyKSA9PiB7XG4gICAgICAgICAgICBzdHlsZWZ1bmN0aW9uKFxuICAgICAgICAgICAgICBsYXllci5vbCBhcyBvbExheWVyVmVjdG9yVGlsZSxcbiAgICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgICBsYXllck9wdGlvbnMuaWdvU3R5bGUubWFwYm94U3R5bGUuc291cmNlLFxuICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHJlczIsXG4gICAgICAgICAgICAgIHVybCArICcucG5nJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHlsZWZ1bmN0aW9uKFxuICAgICAgICAgICAgbGF5ZXIub2wgYXMgb2xMYXllclZlY3RvclRpbGUsXG4gICAgICAgICAgICByZXMsXG4gICAgICAgICAgICBsYXllck9wdGlvbnMuaWdvU3R5bGUubWFwYm94U3R5bGUuc291cmNlXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdHVmZih1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkucGlwZShcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHJlcyksXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ05vIHN0eWxlIHdhcyBmb3VuZCcpO1xuICAgICAgICByZXR1cm4gb2YoZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWJzb2x1dGVVcmwoc291cmNlLCB1cmwpIHtcbiAgICBjb25zdCByID0gbmV3IFJlZ0V4cCgnXmh0dHB8Ly8nLCAnaScpO1xuICAgIGlmIChyLnRlc3QodXJsKSkge1xuICAgICAgcmV0dXJuIHVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHNvdXJjZS5zdWJzdHIoc291cmNlLmxlbmd0aCAtIDEpID09PSAnLycpIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZSArIHVybDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzb3VyY2UgKyAnLycgKyB1cmw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQXN5bmNJZGJMYXllcnMoY29udGV4dFVyaSA9ICcqJyk6IE9ic2VydmFibGU8TGF5ZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLmxheWVyREJTZXJ2aWNlPy5nZXRBbGwoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChyZXMpID0+IHtcbiAgICAgICAgY29uc3QgaWRiTGF5ZXJzID1cbiAgICAgICAgICBjb250ZXh0VXJpICE9PSAnKidcbiAgICAgICAgICAgID8gcmVzLmZpbHRlcigobCkgPT4gbC5kZXRhaWxlZENvbnRleHRVcmkgPT09IGNvbnRleHRVcmkpXG4gICAgICAgICAgICA6IHJlcztcbiAgICAgICAgY29uc3QgbGF5ZXJzT3B0aW9uczogTGF5ZXJPcHRpb25zW10gPSBpZGJMYXllcnMubWFwKChpZGJsKSA9PlxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIGlkYmwubGF5ZXJPcHRpb25zLCB7XG4gICAgICAgICAgICBzb3VyY2VPcHRpb25zOiBpZGJsLnNvdXJjZU9wdGlvbnNcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgICAgICBsYXllcnNPcHRpb25zLm1hcCgobGF5ZXJPcHRpb25zKSA9PlxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBc3luY0xheWVyKGxheWVyT3B0aW9ucylcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
315
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTFDLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUdMLG9CQUFvQixFQUVwQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsYUFBYSxFQUNiLGFBQWEsRUFDYix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixhQUFhLEVBQ2IsY0FBYyxFQUVkLG1CQUFtQixFQUNuQixhQUFhLEVBQ2QsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENB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LENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsdUJBQXVCLENBQ3JCLGFBQW1DO1FBRW5DLE9BQU8sUUFBUSxJQUFJLGFBQWEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsc0JBQXNCLENBQ3BCLGFBQW1DO1FBRW5DLE9BQU8sT0FBTyxJQUFJLGFBQWEsQ0FBQztJQUNsQyxDQUFDO3dHQTNhVSxZQUFZOzRHQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgb2xMYXllclZlY3RvclRpbGUgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yVGlsZSc7XG5pbXBvcnQgeyBTdHlsZSB9IGZyb20gJ29sL3N0eWxlJztcbmltcG9ydCAqIGFzIG9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0IHsgU3R5bGVMaWtlIGFzIE9sU3R5bGVMaWtlIH0gZnJvbSAnb2wvc3R5bGUvU3R5bGUnO1xuXG5pbXBvcnQgeyBzdHlsZWZ1bmN0aW9uIH0gZnJvbSAnb2wtbWFwYm94LXN0eWxlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBjb25jYXRNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRGF0YVNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQW55RGF0YVNvdXJjZU9wdGlvbnMsXG4gIEFueURhdGFTb3VyY2VPcHRpb25zV2l0aFBhcmFtcyxcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2UsXG4gIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcbiAgQ2FydG9EYXRhU291cmNlLFxuICBDbHVzdGVyRGF0YVNvdXJjZSxcbiAgRmVhdHVyZURhdGFTb3VyY2UsXG4gIEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2UsXG4gIE1WVERhdGFTb3VyY2UsXG4gIE9TTURhdGFTb3VyY2UsXG4gIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZSxcbiAgVGlsZURlYnVnRGF0YVNvdXJjZSxcbiAgV0ZTRGF0YVNvdXJjZSxcbiAgV01TRGF0YVNvdXJjZSxcbiAgV01UU0RhdGFTb3VyY2UsXG4gIFdNVFNEYXRhU291cmNlT3B0aW9ucyxcbiAgV2ViU29ja2V0RGF0YVNvdXJjZSxcbiAgWFlaRGF0YVNvdXJjZVxufSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcyc7XG5pbXBvcnQgeyBMYXllckRCU2VydmljZSB9IGZyb20gJy4uLy4uL29mZmxpbmUvbGF5ZXJEQi9sYXllckRCLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VvTmV0d29ya1NlcnZpY2UgfSBmcm9tICcuLi8uLi9vZmZsaW5lL3NoYXJlZC9nZW8tbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7IFN0eWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3N0eWxlL3N0eWxlLXNlcnZpY2Uvc3R5bGUuc2VydmljZSc7XG5pbXBvcnQge1xuICBjb21wdXRlTVZUT3B0aW9uc09uSG92ZXIsXG4gIGlzTGF5ZXJHcm91cE9wdGlvbnNcbn0gZnJvbSAnLi4vdXRpbHMvbGF5ZXIudXRpbHMnO1xuaW1wb3J0IHtcbiAgQW55TGF5ZXIsXG4gIEFueUxheWVySXRlbU9wdGlvbnMsXG4gIEFueUxheWVyT3B0aW9ucyxcbiAgSW1hZ2VMYXllcixcbiAgSW1hZ2VMYXllck9wdGlvbnMsXG4gIExheWVyLFxuICBMYXllckdyb3VwT3B0aW9ucyxcbiAgTGF5ZXJPcHRpb25zLFxuICBUaWxlTGF5ZXIsXG4gIFRpbGVMYXllck9wdGlvbnMsXG4gIFZlY3RvckxheWVyLFxuICBWZWN0b3JMYXllck9wdGlvbnMsXG4gIFZlY3RvclRpbGVMYXllcixcbiAgVmVjdG9yVGlsZUxheWVyT3B0aW9uc1xufSBmcm9tICcuL2xheWVycyc7XG5pbXBvcnQgeyBMYXllckdyb3VwIH0gZnJvbSAnLi9sYXllcnMvbGF5ZXItZ3JvdXAnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMYXllclNlcnZpY2Uge1xuICBwdWJsaWMgdW5hdmFpbGFibGVMYXllcnM6IEFueUxheWVySXRlbU9wdGlvbnNbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNvdXJjZVNlcnZpY2U6IERhdGFTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZ2VvTmV0d29ya1NlcnZpY2U/OiBHZW9OZXR3b3JrU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGxheWVyREJTZXJ2aWNlPzogTGF5ZXJEQlNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhdXRoSW50ZXJjZXB0b3I/OiBBdXRoSW50ZXJjZXB0b3JcbiAgKSB7fVxuXG4gIGNyZWF0ZUxheWVycyhcbiAgICBsYXllcnNPcHRpb246IEFueUxheWVyT3B0aW9uc1tdLFxuICAgIGNvbnRleHRVcmk/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTwoQW55TGF5ZXIgfCB1bmRlZmluZWQpW10+IHtcbiAgICBjb25zdCBhcnJheU9ic0xheWVycyA9IGxheWVyc09wdGlvbi5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGlzTGF5ZXJHcm91cE9wdGlvbnMob3B0aW9uKVxuICAgICAgICA/IHRoaXMuY3JlYXRlQXN5bmNHcm91cChvcHRpb24pXG4gICAgICAgIDogdGhpcy5jcmVhdGVBc3luY0xheWVyKG9wdGlvbiwgY29udGV4dFVyaSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChhcnJheU9ic0xheWVycyk7XG4gIH1cblxuICBjcmVhdGVMYXllcihsYXllck9wdGlvbnM6IEFueUxheWVySXRlbU9wdGlvbnMpOiBMYXllciB7XG4gICAgaWYgKGxheWVyT3B0aW9ucy5zb3VyY2U/Lm9wdGlvbnM/Ll9sYXllck9wdGlvbnNGcm9tU291cmNlKSB7XG4gICAgICBsYXllck9wdGlvbnMgPSBPYmplY3RVdGlscy5tZXJnZURlZXAoXG4gICAgICAgIGxheWVyT3B0aW9ucy5zb3VyY2Uub3B0aW9ucy5fbGF5ZXJPcHRpb25zRnJvbVNvdXJjZSxcbiAgICAgICAgbGF5ZXJPcHRpb25zIHx8IHt9XG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBsYXllcjogTGF5ZXI7XG4gICAgc3dpdGNoIChsYXllck9wdGlvbnMuc291cmNlLmNvbnN0cnVjdG9yKSB7XG4gICAgICBjYXNlIE9TTURhdGFTb3VyY2U6XG4gICAgICBjYXNlIFdNVFNEYXRhU291cmNlOlxuICAgICAgY2FzZSBYWVpEYXRhU291cmNlOlxuICAgICAgY2FzZSBUaWxlRGVidWdEYXRhU291cmNlOlxuICAgICAgY2FzZSBDYXJ0b0RhdGFTb3VyY2U6XG4gICAgICBjYXNlIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZTpcbiAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZVRpbGVMYXllcihsYXllck9wdGlvbnMgYXMgVGlsZUxheWVyT3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGZWF0dXJlRGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgV0ZTRGF0YVNvdXJjZTpcbiAgICAgIGNhc2UgQXJjR0lTUmVzdERhdGFTb3VyY2U6XG4gICAgICBjYXNlIFdlYlNvY2tldERhdGFTb3VyY2U6XG4gICAgICBjYXNlIENsdXN0ZXJEYXRhU291cmNlOlxuICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlVmVjdG9yTGF5ZXIobGF5ZXJPcHRpb25zIGFzIFZlY3RvckxheWVyT3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlOlxuICAgICAgY2FzZSBXTVNEYXRhU291cmNlOlxuICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlSW1hZ2VMYXllcihsYXllck9wdGlvbnMgYXMgSW1hZ2VMYXllck9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTVZURGF0YVNvdXJjZToge1xuICAgICAgICBjb25zdCBfbGF5ZXJPcHRpb25zID0gY29tcHV0ZU1WVE9wdGlvbnNPbkhvdmVyKGxheWVyT3B0aW9ucyk7XG4gICAgICAgIGxheWVyID0gdGhpcy5jcmVhdGVWZWN0b3JUaWxlTGF5ZXIoXG4gICAgICAgICAgX2xheWVyT3B0aW9ucyBhcyBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxheWVyO1xuICB9XG5cbiAgY3JlYXRlQXN5bmNMYXllcihcbiAgICBvcHRpb25zOiBBbnlMYXllckl0ZW1PcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPExheWVyIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3Qgb3B0aW9uc0Nsb25lZCA9IHsgLi4ub3B0aW9ucyB9O1xuXG4gICAgY29tcHV0ZU1WVE9wdGlvbnNPbkhvdmVyKG9wdGlvbnNDbG9uZWQpO1xuICAgIGlmIChvcHRpb25zQ2xvbmVkLnNvdXJjZSkge1xuICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQodGhpcy5jcmVhdGVMYXllcihvcHRpb25zQ2xvbmVkKSkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlXG4gICAgICAuY3JlYXRlQXN5bmNEYXRhU291cmNlKG9wdGlvbnNDbG9uZWQuc291cmNlT3B0aW9ucywgZGV0YWlsZWRDb250ZXh0VXJpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoc291cmNlKSA9PiB7XG4gICAgICAgICAgaWYgKHNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZCA9IHRoaXMudW5hdmFpbGFibGVMYXllcnMuc29tZShcbiAgICAgICAgICAgICAgKGVsKSA9PiBlbCA9PT0gb3B0aW9uc0Nsb25lZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgICAgICAgdGhpcy51bmF2YWlsYWJsZUxheWVycy5wdXNoKG9wdGlvbnNDbG9uZWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVMYXllcihPYmplY3QuYXNzaWduKG9wdGlvbnNDbG9uZWQsIHsgc291cmNlIH0pKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBjcmVhdGVBc3luY0dyb3VwKFxuICAgIG9wdGlvbnM6IExheWVyR3JvdXBPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPExheWVyR3JvdXA+IHtcbiAgICBpZiAoIW9wdGlvbnMuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuY3JlYXRlR3JvdXAobnVsbCwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxheWVycyhvcHRpb25zLmNoaWxkcmVuLCBkZXRhaWxlZENvbnRleHRVcmkpLnBpcGUoXG4gICAgICBtYXAoKGxheWVycykgPT4gdGhpcy5jcmVhdGVHcm91cChsYXllcnMuZmlsdGVyKEJvb2xlYW4pLCBvcHRpb25zKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVHcm91cChcbiAgICBsYXllcnM6IEFueUxheWVyW10sXG4gICAgb3B0aW9uczogTGF5ZXJHcm91cE9wdGlvbnNcbiAgKTogTGF5ZXJHcm91cCB7XG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgTGF5ZXJHcm91cChsYXllcnMsIG9wdGlvbnMpO1xuICAgIHJldHVybiBncm91cDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSW1hZ2VMYXllcihsYXllck9wdGlvbnM6IEltYWdlTGF5ZXJPcHRpb25zKTogSW1hZ2VMYXllciB7XG4gICAgcmV0dXJuIG5ldyBJbWFnZUxheWVyKFxuICAgICAgbGF5ZXJPcHRpb25zLFxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZSxcbiAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGlsZUxheWVyKGxheWVyT3B0aW9uczogVGlsZUxheWVyT3B0aW9ucyk6IFRpbGVMYXllciB7XG4gICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoXG4gICAgICBsYXllck9wdGlvbnMsXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3JcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVWZWN0b3JMYXllcihsYXllck9wdGlvbnM6IFZlY3RvckxheWVyT3B0aW9ucyk6IFZlY3RvckxheWVyIHtcbiAgICBsZXQgc3R5bGU6IFN0eWxlW10gfCBTdHlsZSB8IE9sU3R5bGVMaWtlID0gbGF5ZXJPcHRpb25zLnN0eWxlO1xuICAgIGxldCBpZ29MYXllcjogVmVjdG9yTGF5ZXI7XG5cbiAgICBpZiAoIWxheWVyT3B0aW9ucy5pZ29TdHlsZSkge1xuICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlID0ge307XG4gICAgfVxuICAgIGNvbnN0IGxlZ2FjeVN0eWxlT3B0aW9ucyA9IFtcbiAgICAgICdzdHlsZUJ5QXR0cmlidXRlJyxcbiAgICAgICdob3ZlclN0eWxlJyxcbiAgICAgICdtYXBib3hTdHlsZScsXG4gICAgICAnY2x1c3RlckJhc2VTdHlsZScsXG4gICAgICAnc3R5bGUnXG4gICAgXTtcbiAgICAvLyBoYW5kbGluZyBsZWdhY3kgcHJvcGVydHkuXG4gICAgdGhpcy5oYW5kbGVMZWdhY3lTdHlsZXMobGF5ZXJPcHRpb25zLCBsZWdhY3lTdHlsZU9wdGlvbnMpO1xuICAgIGlmIChcbiAgICAgIGxheWVyT3B0aW9ucy5pZ29TdHlsZS5pZ29TdHlsZU9iamVjdCAmJlxuICAgICAgIWxheWVyT3B0aW9ucy5pZGJJbmZvPy5zdG9yZVRvSWRiXG4gICAgKSB7XG4gICAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PlxuICAgICAgICB0aGlzLnN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShcbiAgICAgICAgICBsYXllck9wdGlvbnMuaWdvU3R5bGUuaWdvU3R5bGVPYmplY3QsXG4gICAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgICByZXNvbHV0aW9uXG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxheWVyT3B0aW9ucy5pZ29TdHlsZS5pZ29TdHlsZU9iamVjdCAmJlxuICAgICAgbGF5ZXJPcHRpb25zLmlkYkluZm8/LnN0b3JlVG9JZGJcbiAgICApIHtcbiAgICAgIHN0eWxlID0gdGhpcy5zdHlsZVNlcnZpY2UucGFyc2VTdHlsZShcbiAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlLmlnb1N0eWxlT2JqZWN0XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChsYXllck9wdGlvbnMuc291cmNlIGluc3RhbmNlb2YgQXJjR0lTUmVzdERhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IGxheWVyT3B0aW9ucy5zb3VyY2UgYXMgQXJjR0lTUmVzdERhdGFTb3VyY2U7XG4gICAgICBzdHlsZSA9IHNvdXJjZS5vcHRpb25zLnBhcmFtcy5zdHlsZTtcbiAgICB9IGVsc2UgaWYgKGxheWVyT3B0aW9ucy5pZ29TdHlsZT8uc3R5bGVCeUF0dHJpYnV0ZSkge1xuICAgICAgY29uc3Qgc2VydmljZVN0eWxlID0gdGhpcy5zdHlsZVNlcnZpY2U7XG4gICAgICBsYXllck9wdGlvbnMuc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gc2VydmljZVN0eWxlLmNyZWF0ZVN0eWxlQnlBdHRyaWJ1dGUoXG4gICAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgICBsYXllck9wdGlvbnMuaWdvU3R5bGUuc3R5bGVCeUF0dHJpYnV0ZSxcbiAgICAgICAgICByZXNvbHV0aW9uXG4gICAgICAgICk7XG4gICAgICB9O1xuXG4gICAgICBpZ29MYXllciA9IG5ldyBWZWN0b3JMYXllcihcbiAgICAgICAgbGF5ZXJPcHRpb25zLFxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvcixcbiAgICAgICAgdGhpcy5nZW9OZXR3b3JrU2VydmljZSxcbiAgICAgICAgdGhpcy5nZW9OZXR3b3JrU2VydmljZT8uZ2VvREJTZXJ2aWNlLFxuICAgICAgICB0aGlzLmxheWVyREJTZXJ2aWNlXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChsYXllck9wdGlvbnMuc291cmNlIGluc3RhbmNlb2YgQ2x1c3RlckRhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNlcnZpY2VTdHlsZSA9IHRoaXMuc3R5bGVTZXJ2aWNlO1xuICAgICAgY29uc3QgYmFzZVN0eWxlID0gbGF5ZXJPcHRpb25zLmlnb1N0eWxlLmNsdXN0ZXJCYXNlU3R5bGU7XG4gICAgICBsYXllck9wdGlvbnMuc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gc2VydmljZVN0eWxlLmNyZWF0ZUNsdXN0ZXJTdHlsZShcbiAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgICAgbGF5ZXJPcHRpb25zLmNsdXN0ZXJQYXJhbSxcbiAgICAgICAgICBiYXNlU3R5bGVcbiAgICAgICAgKTtcbiAgICAgIH07XG5cbiAgICAgIGlnb0xheWVyID0gbmV3IFZlY3RvckxheWVyKFxuICAgICAgICBsYXllck9wdGlvbnMsXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yLFxuICAgICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlLFxuICAgICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlPy5nZW9EQlNlcnZpY2UsXG4gICAgICAgIHRoaXMubGF5ZXJEQlNlcnZpY2VcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbGF5ZXJPcHRpb25zT2wgPSBPYmplY3QuYXNzaWduKHt9LCBsYXllck9wdGlvbnMsIHtcbiAgICAgIHN0eWxlXG4gICAgfSk7XG5cbiAgICBpZiAoIWlnb0xheWVyKSB7XG4gICAgICBpZ29MYXllciA9IG5ldyBWZWN0b3JMYXllcihcbiAgICAgICAgbGF5ZXJPcHRpb25zT2wsXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yLFxuICAgICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlLFxuICAgICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlPy5nZW9EQlNlcnZpY2UsXG4gICAgICAgIHRoaXMubGF5ZXJEQlNlcnZpY2VcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hcHBseU1hcGJveFN0eWxlKGlnb0xheWVyLCBsYXllck9wdGlvbnNPbCBhcyBhbnkpO1xuXG4gICAgcmV0dXJuIGlnb0xheWVyO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVMZWdhY3lTdHlsZXMobGF5ZXJPcHRpb25zLCBsZWdhY3lTdHlsZU9wdGlvbnM6IHN0cmluZ1tdKSB7XG4gICAgbGVnYWN5U3R5bGVPcHRpb25zLm1hcCgobGVnYWN5T3B0aW9uKSA9PiB7XG4gICAgICBpZiAobGF5ZXJPcHRpb25zW2xlZ2FjeU9wdGlvbl0pIHtcbiAgICAgICAgbGV0IG5ld0tleSA9IGxlZ2FjeU9wdGlvbjtcbiAgICAgICAgaWYgKGxlZ2FjeU9wdGlvbiA9PT0gJ3N0eWxlJykge1xuICAgICAgICAgIGlmIChsYXllck9wdGlvbnNbbGVnYWN5T3B0aW9uXSBpbnN0YW5jZW9mIG9sU3R5bGUuU3R5bGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiBsYXllck9wdGlvbnNbbGVnYWN5T3B0aW9uXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIG5ld0tleSA9ICdpZ29TdHlsZU9iamVjdCc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlW25ld0tleV0gPSBsYXllck9wdGlvbnNbbGVnYWN5T3B0aW9uXTtcbiAgICAgICAgZGVsZXRlIGxheWVyT3B0aW9uc1tsZWdhY3lPcHRpb25dO1xuICAgICAgICBjb25zb2xlLndhcm4oYFxuICAgICAgICBUaGUgbG9jYXRpb24gb2YgdGhpcyBzdHlsZSBvcHRpb24gKCR7bGVnYWN5T3B0aW9ufSkgaXMgZGVwcmVjYXRlZC5cbiAgICAgICAgUGxlYXNlIG1vdmUgdGhpcyBwcm9wZXJ0eSB3aXRoaW4gaWdvU3R5bGUgcHJvcGVydHkuXG4gICAgICAgIEV4OiAke2xlZ2FjeU9wdGlvbn06IHsuLi59IG11c3QgYmUgdHJhbnNmZXJlZCB0byBpZ29TdHlsZTogeyAke25ld0tleX06IHsuLi59IH1cbiAgICAgICAgVGhpcyBsZWdhY3kgY29udmVyc2lvbiB3aWxsIGJlIGRlbGV0ZWQgaW4gMjAyNC5cbiAgICAgICAgYCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVZlY3RvclRpbGVMYXllcihcbiAgICBsYXllck9wdGlvbnM6IFZlY3RvclRpbGVMYXllck9wdGlvbnNcbiAgKTogVmVjdG9yVGlsZUxheWVyIHtcbiAgICBsZXQgc3R5bGU6IFN0eWxlW10gfCBTdHlsZSB8IE9sU3R5bGVMaWtlO1xuICAgIGxldCBpZ29MYXllcjogVmVjdG9yVGlsZUxheWVyO1xuXG4gICAgaWYgKCFsYXllck9wdGlvbnMuaWdvU3R5bGUpIHtcbiAgICAgIGxheWVyT3B0aW9ucy5pZ29TdHlsZSA9IHt9O1xuICAgIH1cbiAgICBjb25zdCBsZWdhY3lTdHlsZU9wdGlvbnMgPSBbXG4gICAgICAnc3R5bGVCeUF0dHJpYnV0ZScsXG4gICAgICAnaG92ZXJTdHlsZScsXG4gICAgICAnbWFwYm94U3R5bGUnLFxuICAgICAgJ3N0eWxlJ1xuICAgIF07XG4gICAgLy8gaGFuZGxpbmcgbGVnYWN5IHByb3BlcnR5LlxuICAgIHRoaXMuaGFuZGxlTGVnYWN5U3R5bGVzKGxheWVyT3B0aW9ucywgbGVnYWN5U3R5bGVPcHRpb25zKTtcblxuICAgIGlmIChsYXllck9wdGlvbnMuaWdvU3R5bGUuaWdvU3R5bGVPYmplY3QpIHtcbiAgICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+XG4gICAgICAgIHRoaXMuc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxuICAgICAgICAgIGxheWVyT3B0aW9ucy5pZ29TdHlsZS5pZ29TdHlsZU9iamVjdCxcbiAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobGF5ZXJPcHRpb25zLmlnb1N0eWxlLnN0eWxlQnlBdHRyaWJ1dGUpIHtcbiAgICAgIGNvbnN0IHNlcnZpY2VTdHlsZSA9IHRoaXMuc3R5bGVTZXJ2aWNlO1xuICAgICAgbGF5ZXJPcHRpb25zLnN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHNlcnZpY2VTdHlsZS5jcmVhdGVTdHlsZUJ5QXR0cmlidXRlKFxuICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlLnN0eWxlQnlBdHRyaWJ1dGUsXG4gICAgICAgICAgcmVzb2x1dGlvblxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIGlnb0xheWVyID0gbmV3IFZlY3RvclRpbGVMYXllcihcbiAgICAgICAgbGF5ZXJPcHRpb25zLFxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXllck9wdGlvbnNPbCA9IE9iamVjdC5hc3NpZ24oe30sIGxheWVyT3B0aW9ucywge1xuICAgICAgc3R5bGVcbiAgICB9KTtcblxuICAgIGlmICghaWdvTGF5ZXIpIHtcbiAgICAgIGlnb0xheWVyID0gbmV3IFZlY3RvclRpbGVMYXllcihcbiAgICAgICAgbGF5ZXJPcHRpb25zT2wsXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbHlNYXBib3hTdHlsZShpZ29MYXllciwgbGF5ZXJPcHRpb25zT2wpO1xuICAgIHJldHVybiBpZ29MYXllcjtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlNYXBib3hTdHlsZShsYXllcjogTGF5ZXIsIGxheWVyT3B0aW9uczogVmVjdG9yVGlsZUxheWVyT3B0aW9ucykge1xuICAgIGlmIChsYXllck9wdGlvbnMuaWdvU3R5bGU/Lm1hcGJveFN0eWxlKSB7XG4gICAgICB0aGlzLmdldFN0dWZmKGxheWVyT3B0aW9ucy5pZ29TdHlsZS5tYXBib3hTdHlsZS51cmwpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMuc3ByaXRlKSB7XG4gICAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRBYnNvbHV0ZVVybChcbiAgICAgICAgICAgIGxheWVyT3B0aW9ucy5pZ29TdHlsZS5tYXBib3hTdHlsZS51cmwsXG4gICAgICAgICAgICByZXMuc3ByaXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmdldFN0dWZmKHVybCArICcuanNvbicpLnN1YnNjcmliZSgocmVzMikgPT4ge1xuICAgICAgICAgICAgc3R5bGVmdW5jdGlvbihcbiAgICAgICAgICAgICAgbGF5ZXIub2wgYXMgb2xMYXllclZlY3RvclRpbGUsXG4gICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlLm1hcGJveFN0eWxlLnNvdXJjZSxcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICByZXMyLFxuICAgICAgICAgICAgICB1cmwgKyAnLnBuZydcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3R5bGVmdW5jdGlvbihcbiAgICAgICAgICAgIGxheWVyLm9sIGFzIG9sTGF5ZXJWZWN0b3JUaWxlLFxuICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgbGF5ZXJPcHRpb25zLmlnb1N0eWxlLm1hcGJveFN0eWxlLnNvdXJjZVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3R1ZmYodXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdObyBzdHlsZSB3YXMgZm91bmQnKTtcbiAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEFic29sdXRlVXJsKHNvdXJjZSwgdXJsKSB7XG4gICAgY29uc3QgciA9IG5ldyBSZWdFeHAoJ15odHRwfC8vJywgJ2knKTtcbiAgICBpZiAoci50ZXN0KHVybCkpIHtcbiAgICAgIHJldHVybiB1cmw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzb3VyY2Uuc3Vic3RyKHNvdXJjZS5sZW5ndGggLSAxKSA9PT0gJy8nKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2UgKyB1cmw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc291cmNlICsgJy8nICsgdXJsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUFzeW5jSWRiTGF5ZXJzKGNvbnRleHRVcmkgPSAnKicpOiBPYnNlcnZhYmxlPExheWVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5sYXllckRCU2VydmljZT8uZ2V0QWxsKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgocmVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkYkxheWVycyA9XG4gICAgICAgICAgY29udGV4dFVyaSAhPT0gJyonXG4gICAgICAgICAgICA/IHJlcy5maWx0ZXIoKGwpID0+IGwuZGV0YWlsZWRDb250ZXh0VXJpID09PSBjb250ZXh0VXJpKVxuICAgICAgICAgICAgOiByZXM7XG4gICAgICAgIGNvbnN0IGxheWVyc09wdGlvbnM6IExheWVyT3B0aW9uc1tdID0gaWRiTGF5ZXJzLm1hcCgoaWRibCkgPT5cbiAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBpZGJsLmxheWVyT3B0aW9ucywge1xuICAgICAgICAgICAgc291cmNlT3B0aW9uczogaWRibC5zb3VyY2VPcHRpb25zXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgbGF5ZXJzT3B0aW9ucy5tYXAoKGxheWVyT3B0aW9ucykgPT5cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQXN5bmNMYXllcihsYXllck9wdGlvbnMpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlVW5hdmFpbGFibGVMYXllcnMoYW55TGF5ZXJPcHRpb25zOiBBbnlMYXllckl0ZW1PcHRpb25zKSB7XG4gICAgY29uc3QgYW55TGF5ZXJTb3VyY2VPcHRpb25zID0gYW55TGF5ZXJPcHRpb25zLnNvdXJjZU9wdGlvbnM7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnVuYXZhaWxhYmxlTGF5ZXJzLmZpbmRJbmRleCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgYmFzZVNvdXJjZU9wdGlvbnMgPSBpdGVtLnNvdXJjZU9wdGlvbnM7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuc291cmNlT3B0aW9uc1dpdGhQYXJhbXMoYmFzZVNvdXJjZU9wdGlvbnMpICYmXG4gICAgICAgIHRoaXMuc291cmNlT3B0aW9uc1dpdGhQYXJhbXMoYW55TGF5ZXJTb3VyY2VPcHRpb25zKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgYmFzZVNvdXJjZU9wdGlvbnMucGFyYW1zLkxBWUVSUyA9PT1cbiAgICAgICAgICBhbnlMYXllclNvdXJjZU9wdGlvbnMucGFyYW1zLkxBWUVSU1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5zb3VyY2VPcHRpb25zV2l0aExheWVyKGJhc2VTb3VyY2VPcHRpb25zKSAmJlxuICAgICAgICB0aGlzLnNvdXJjZU9wdGlvbnNXaXRoTGF5ZXIoYW55TGF5ZXJTb3VyY2VPcHRpb25zKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBiYXNlU291cmNlT3B0aW9ucy5sYXllciA9PT0gYW55TGF5ZXJTb3VyY2VPcHRpb25zLmxheWVyO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudW5hdmFpbGFibGVMYXllcnMuc3BsaWNlKGluZGV4LCBpbmRleCA+PSAwID8gMSA6IDApO1xuICB9XG5cbiAgc291cmNlT3B0aW9uc1dpdGhQYXJhbXMoXG4gICAgc291cmNlT3B0aW9uczogQW55RGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogc291cmNlT3B0aW9ucyBpcyBBbnlEYXRhU291cmNlT3B0aW9uc1dpdGhQYXJhbXMge1xuICAgIHJldHVybiAncGFyYW1zJyBpbiBzb3VyY2VPcHRpb25zO1xuICB9XG5cbiAgc291cmNlT3B0aW9uc1dpdGhMYXllcihcbiAgICBzb3VyY2VPcHRpb25zOiBBbnlEYXRhU291cmNlT3B0aW9uc1xuICApOiBzb3VyY2VPcHRpb25zIGlzIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB8IFdNVFNEYXRhU291cmNlT3B0aW9ucyB7XG4gICAgcmV0dXJuICdsYXllcicgaW4gc291cmNlT3B0aW9ucztcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWxheWVyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvYW55LWxheWVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW1hZ2VMYXllck9wdGlvbnMgfSBmcm9tICcuL2ltYWdlLWxheWVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMYXllck9wdGlvbnMgfSBmcm9tICcuL2xheWVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaWxlTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi90aWxlLWxheWVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBWZWN0b3JMYXllck9wdGlvbnMgfSBmcm9tICcuL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmVjdG9yVGlsZUxheWVyT3B0aW9ucyB9IGZyb20gJy4vdmVjdG9ydGlsZS1sYXllci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBBbnlMYXllck9wdGlvbnMgPVxuICB8IExheWVyT3B0aW9uc1xuICB8IEltYWdlTGF5ZXJPcHRpb25zXG4gIHwgVGlsZUxheWVyT3B0aW9uc1xuICB8IFZlY3RvckxheWVyT3B0aW9uc1xuICB8IFZlY3RvclRpbGVMYXllck9wdGlvbnM7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWxheWVyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvYW55LWxheWVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBJbWFnZUxheWVyT3B0aW9ucyB9IGZyb20gJy4vaW1hZ2UtbGF5ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IHR5cGUgTGF5ZXJHcm91cE9wdGlvbnMgfSBmcm9tICcuL2xheWVyLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyB0eXBlIExheWVyT3B0aW9ucyB9IGZyb20gJy4vbGF5ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IHR5cGUgVGlsZUxheWVyT3B0aW9ucyB9IGZyb20gJy4vdGlsZS1sYXllci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdHlwZSBWZWN0b3JMYXllck9wdGlvbnMgfSBmcm9tICcuL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdHlwZSBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi92ZWN0b3J0aWxlLWxheWVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIEFueUxheWVyT3B0aW9ucyA9IEFueUxheWVySXRlbU9wdGlvbnMgfCBMYXllckdyb3VwT3B0aW9ucztcblxuZXhwb3J0IHR5cGUgQW55TGF5ZXJJdGVtT3B0aW9ucyA9XG4gIHwgTGF5ZXJPcHRpb25zXG4gIHwgSW1hZ2VMYXllck9wdGlvbnNcbiAgfCBUaWxlTGF5ZXJPcHRpb25zXG4gIHwgVmVjdG9yTGF5ZXJPcHRpb25zXG4gIHwgVmVjdG9yVGlsZUxheWVyT3B0aW9ucztcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy9hbnktbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEltYWdlTGF5ZXIgfSBmcm9tICcuL2ltYWdlLWxheWVyJztcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi9sYXllcic7XG5pbXBvcnQgeyBUaWxlTGF5ZXIgfSBmcm9tICcuL3RpbGUtbGF5ZXInO1xuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuL3ZlY3Rvci1sYXllcic7XG5pbXBvcnQgeyBWZWN0b3JUaWxlTGF5ZXIgfSBmcm9tICcuL3ZlY3RvcnRpbGUtbGF5ZXInO1xuXG5leHBvcnQgdHlwZSBBbnlMYXllciA9XG4gIHwgTGF5ZXJcbiAgfCBJbWFnZUxheWVyXG4gIHwgVGlsZUxheWVyXG4gIHwgVmVjdG9yTGF5ZXJcbiAgfCBWZWN0b3JUaWxlTGF5ZXI7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy9hbnktbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgTGF5ZXIgfSBmcm9tICcuL2xheWVyJztcbmltcG9ydCB7IHR5cGUgTGF5ZXJHcm91cCB9IGZyb20gJy4vbGF5ZXItZ3JvdXAnO1xuXG5leHBvcnQgdHlwZSBBbnlMYXllciA9IExheWVyIHwgTGF5ZXJHcm91cDtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtbGF5ZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy9pbWFnZS1sYXllci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvbExheWVySW1hZ2UgZnJvbSAnb2wvbGF5ZXIvSW1hZ2UnO1xuaW1wb3J0IG9sU291cmNlSW1hZ2UgZnJvbSAnb2wvc291cmNlL0ltYWdlJztcblxuaW1wb3J0IHsgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ltYWdlYXJjZ2lzcmVzdC1kYXRhc291cmNlJztcbmltcG9ydCB7IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvaW1hZ2VhcmNnaXNyZXN0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMYXllck9wdGlvbnMgfSBmcm9tICcuL2xheWVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VMYXllck9wdGlvbnMgZXh0ZW5kcyBMYXllck9wdGlvbnMge1xuICBzb3VyY2U/OiBXTVNEYXRhU291cmNlIHwgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZTtcbiAgc291cmNlT3B0aW9ucz86IFdNU0RhdGFTb3VyY2VPcHRpb25zIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnM7XG4gIHRva2VuS2V5Pzogc3RyaW5nO1xuICBvbD86IG9sTGF5ZXJJbWFnZTxvbFNvdXJjZUltYWdlPjtcbiAgbWV0YWRhdGE/OiB7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIGV4dGVybj86IGJvb2xlYW47XG4gICAgYWJzdHJhY3Q/OiBzdHJpbmc7XG4gICAga2V5d29yZExpc3Q/OiBzdHJpbmdbXTtcbiAgfTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtbGF5ZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy9pbWFnZS1sYXllci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvbExheWVySW1hZ2UgZnJvbSAnb2wvbGF5ZXIvSW1hZ2UnO1xuaW1wb3J0IG9sU291cmNlSW1hZ2UgZnJvbSAnb2wvc291cmNlL0ltYWdlJztcblxuaW1wb3J0IHtcbiAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXG4gIEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2UsXG4gIFdNU0RhdGFTb3VyY2UsXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zXG59IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzJztcbmltcG9ydCB7IExheWVyT3B0aW9ucyB9IGZyb20gJy4vbGF5ZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUxheWVyT3B0aW9ucyBleHRlbmRzIExheWVyT3B0aW9ucyB7XG4gIHNvdXJjZT86IFdNU0RhdGFTb3VyY2UgfCBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlO1xuICBzb3VyY2VPcHRpb25zPzogV01TRGF0YVNvdXJjZU9wdGlvbnMgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucztcbiAgdG9rZW5LZXk/OiBzdHJpbmc7XG4gIG9sPzogb2xMYXllckltYWdlPG9sU291cmNlSW1hZ2U+O1xuICBtZXRhZGF0YT86IHtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgZXh0ZXJuPzogYm9vbGVhbjtcbiAgICBhYnN0cmFjdD86IHN0cmluZztcbiAgICBrZXl3b3JkTGlzdD86IHN0cmluZ1tdO1xuICB9O1xufVxuIl19
@@ -4,6 +4,7 @@ import { Layer } from './layer';
4
4
  export class ImageLayer extends Layer {
5
5
  messageService;
6
6
  authInterceptor;
7
+ type = 'raster';
7
8
  watcher;
8
9
  constructor(options, messageService, authInterceptor) {
9
10
  super(options, messageService, authInterceptor);
@@ -29,14 +30,18 @@ export class ImageLayer extends Layer {
29
30
  }
30
31
  return image;
31
32
  }
32
- setMap(map) {
33
+ init(map) {
33
34
  if (map === undefined) {
34
35
  this.watcher.unsubscribe();
35
36
  }
36
37
  else {
37
38
  this.watcher.subscribe(() => void 1);
38
39
  }
39
- super.setMap(map);
40
+ super.init(map);
41
+ }
42
+ remove() {
43
+ this.watcher.unsubscribe();
44
+ super.remove();
40
45
  }
41
46
  customLoader(tile, src, interceptor, messageService) {
42
47
  const xhr = new XMLHttpRequest();
@@ -67,4 +72,4 @@ export class ImageLayer extends Layer {
67
72
  xhr.send();
68
73
  }
69
74
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtbGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL2ltYWdlLWxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBTTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxVQUFXLFNBQVEsS0FBSztJQVMxQjtJQUNBO0lBTEQsT0FBTyxDQUFlO0lBRTlCLFlBQ0UsT0FBMEIsRUFDbkIsY0FBOEIsRUFDOUIsZUFBaUM7UUFFeEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFIekMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUd4QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ25DLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxhQUFhO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQW1CO1NBQ2hELENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxTQUFTLEVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUF1QjtRQUNuQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRU8sWUFBWSxDQUNsQixJQUFJLEVBQ0osR0FBVyxFQUNYLFdBQTRCLEVBQzVCLGNBQThCO1FBRTlCLE1BQU0sR0FBRyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFFakMsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2QsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQzFCLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQztRQUM5QixDQUFDO1FBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckIsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBRUQsR0FBRyxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7UUFFakMsR0FBRyxDQUFDLE1BQU0sR0FBRztZQUNYLE1BQU0sZUFBZSxHQUFHLElBQUksVUFBVSxDQUFFLElBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRCxNQUFNLGNBQWMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNqRSxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDO2dCQUN0RCxjQUFjLENBQUMsS0FBSyxDQUNsQiwwQ0FBMEMsRUFDMUMscUNBQXFDLENBQ3RDLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQztRQUNqQyxDQUFDLENBQUM7UUFDRixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcblxuaW1wb3J0IG9sTGF5ZXJJbWFnZSBmcm9tICdvbC9sYXllci9JbWFnZSc7XG5pbXBvcnQgb2xTb3VyY2VJbWFnZSBmcm9tICdvbC9zb3VyY2UvSW1hZ2UnO1xuXG5pbXBvcnQgeyBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvaW1hZ2VhcmNnaXNyZXN0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgV01TRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy1kYXRhc291cmNlJztcbmltcG9ydCB0eXBlIHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgSW1hZ2VXYXRjaGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvaW1hZ2Utd2F0Y2hlcic7XG5pbXBvcnQgeyBJbWFnZUxheWVyT3B0aW9ucyB9IGZyb20gJy4vaW1hZ2UtbGF5ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi9sYXllcic7XG5cbmV4cG9ydCBjbGFzcyBJbWFnZUxheWVyIGV4dGVuZHMgTGF5ZXIge1xuICBkZWNsYXJlIHB1YmxpYyBkYXRhU291cmNlOiBXTVNEYXRhU291cmNlIHwgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZTtcbiAgZGVjbGFyZSBwdWJsaWMgb3B0aW9uczogSW1hZ2VMYXllck9wdGlvbnM7XG4gIGRlY2xhcmUgcHVibGljIG9sOiBvbExheWVySW1hZ2U8b2xTb3VyY2VJbWFnZT47XG5cbiAgcHJpdmF0ZSB3YXRjaGVyOiBJbWFnZVdhdGNoZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgb3B0aW9uczogSW1hZ2VMYXllck9wdGlvbnMsXG4gICAgcHVibGljIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aEludGVyY2VwdG9yPzogQXV0aEludGVyY2VwdG9yXG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMsIG1lc3NhZ2VTZXJ2aWNlLCBhdXRoSW50ZXJjZXB0b3IpO1xuICAgIHRoaXMud2F0Y2hlciA9IG5ldyBJbWFnZVdhdGNoZXIodGhpcywgdGhpcy5tZXNzYWdlU2VydmljZSk7XG4gICAgdGhpcy5zdGF0dXMkID0gdGhpcy53YXRjaGVyLnN0YXR1cyQ7XG4gICAgdGhpcy5zdGF0dXMkLnN1YnNjcmliZSgodmFsU3RhdHVzKSA9PiB7XG4gICAgICBpZiAodmFsU3RhdHVzID09PSAwKSB7XG4gICAgICAgIHRoaXMub2xMb2FkaW5nUHJvYmxlbSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlT2xMYXllcigpOiBvbExheWVySW1hZ2U8b2xTb3VyY2VJbWFnZT4ge1xuICAgIGNvbnN0IG9sT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucywge1xuICAgICAgc291cmNlOiB0aGlzLm9wdGlvbnMuc291cmNlLm9sIGFzIG9sU291cmNlSW1hZ2VcbiAgICB9KTtcblxuICAgIGNvbnN0IGltYWdlID0gbmV3IG9sTGF5ZXJJbWFnZShvbE9wdGlvbnMpO1xuICAgIGlmICh0aGlzLmF1dGhJbnRlcmNlcHRvcikge1xuICAgICAgKGltYWdlLmdldFNvdXJjZSgpIGFzIGFueSkuc2V0SW1hZ2VMb2FkRnVuY3Rpb24oKHRpbGUsIHNyYykgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbUxvYWRlcih0aWxlLCBzcmMsIHRoaXMuYXV0aEludGVyY2VwdG9yLCB0aGlzLm1lc3NhZ2VTZXJ2aWNlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBpbWFnZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXAobWFwOiBJZ29NYXAgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAobWFwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMud2F0Y2hlci51bnN1YnNjcmliZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndhdGNoZXIuc3Vic2NyaWJlKCgpID0+IHZvaWQgMSk7XG4gICAgfVxuICAgIHN1cGVyLnNldE1hcChtYXApO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXN0b21Mb2FkZXIoXG4gICAgdGlsZSxcbiAgICBzcmM6IHN0cmluZyxcbiAgICBpbnRlcmNlcHRvcjogQXV0aEludGVyY2VwdG9yLFxuICAgIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuICApIHtcbiAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICAgIGNvbnN0IGFsdGVyZWRVcmxXaXRoS2V5QXV0aCA9IGludGVyY2VwdG9yLmFsdGVyVXJsV2l0aEtleUF1dGgoc3JjKTtcbiAgICBsZXQgdXJsID0gc3JjO1xuICAgIGlmIChhbHRlcmVkVXJsV2l0aEtleUF1dGgpIHtcbiAgICAgIHVybCA9IGFsdGVyZWRVcmxXaXRoS2V5QXV0aDtcbiAgICB9XG4gICAgeGhyLm9wZW4oJ0dFVCcsIHVybCk7XG4gICAgY29uc3QgaW50ZXJjZXB0ZWQgPSBpbnRlcmNlcHRvci5pbnRlcmNlcHRYaHIoeGhyLCB1cmwpO1xuICAgIGlmICghaW50ZXJjZXB0ZWQpIHtcbiAgICAgIHhoci5hYm9ydCgpO1xuICAgICAgdGlsZS5nZXRJbWFnZSgpLnNyYyA9IHVybDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcblxuICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBhcnJheUJ1ZmZlclZpZXcgPSBuZXcgVWludDhBcnJheSgodGhpcyBhcyBhbnkpLnJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlU3RyaW5nID0gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGFycmF5QnVmZmVyVmlldyk7XG4gICAgICBpZiAocmVzcG9uc2VTdHJpbmcuaW5jbHVkZXMoJ1NlcnZpY2VFeGNlcHRpb25SZXBvcnQnKSkge1xuICAgICAgICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZScsXG4gICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJheUJ1ZmZlclZpZXddLCB7IHR5cGU6ICdpbWFnZS9wbmcnIH0pO1xuICAgICAgY29uc3QgdXJsQ3JlYXRvciA9IHdpbmRvdy5VUkw7XG4gICAgICBjb25zdCBpbWFnZVVybCA9IHVybENyZWF0b3IuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgdGlsZS5nZXRJbWFnZSgpLnNyYyA9IGltYWdlVXJsO1xuICAgIH07XG4gICAgeGhyLnNlbmQoKTtcbiAgfVxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtbGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL2ltYWdlLWxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBTTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2hDLE1BQU0sT0FBTyxVQUFXLFNBQVEsS0FBSztJQVUxQjtJQUNBO0lBVlQsSUFBSSxHQUFjLFFBQVEsQ0FBQztJQUtuQixPQUFPLENBQWU7SUFFOUIsWUFDRSxPQUEwQixFQUNuQixjQUE4QixFQUM5QixlQUFpQztRQUV4QyxLQUFLLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUh6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBR3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxTQUFTLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGFBQWE7UUFDckIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZ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LElBQUksRUFBRSxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEludGVyY2VwdG9yIH0gZnJvbSAnQGlnbzIvYXV0aCc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVzc2FnZSc7XG5cbmltcG9ydCBvbExheWVySW1hZ2UgZnJvbSAnb2wvbGF5ZXIvSW1hZ2UnO1xuaW1wb3J0IG9sU291cmNlSW1hZ2UgZnJvbSAnb2wvc291cmNlL0ltYWdlJztcblxuaW1wb3J0IHsgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ltYWdlYXJjZ2lzcmVzdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyB0eXBlIE1hcEJhc2UgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC5hYnN0cmFjdCc7XG5pbXBvcnQgeyBJbWFnZVdhdGNoZXIgfSBmcm9tICcuLi8uLi91dGlscy9pbWFnZS13YXRjaGVyJztcbmltcG9ydCB7IEltYWdlTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi9pbWFnZS1sYXllci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuL2xheWVyJztcbmltcG9ydCB7IExheWVyVHlwZSB9IGZyb20gJy4vbGF5ZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIEltYWdlTGF5ZXIgZXh0ZW5kcyBMYXllciB7XG4gIHR5cGU6IExheWVyVHlwZSA9ICdyYXN0ZXInO1xuICBkZWNsYXJlIHB1YmxpYyBkYXRhU291cmNlOiBXTVNEYXRhU291cmNlIHwgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZTtcbiAgZGVjbGFyZSBwdWJsaWMgb3B0aW9uczogSW1hZ2VMYXllck9wdGlvbnM7XG4gIGRlY2xhcmUgcHVibGljIG9sOiBvbExheWVySW1hZ2U8b2xTb3VyY2VJbWFnZT47XG5cbiAgcHJpdmF0ZSB3YXRjaGVyOiBJbWFnZVdhdGNoZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgb3B0aW9uczogSW1hZ2VMYXllck9wdGlvbnMsXG4gICAgcHVibGljIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aEludGVyY2VwdG9yPzogQXV0aEludGVyY2VwdG9yXG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMsIG1lc3NhZ2VTZXJ2aWNlLCBhdXRoSW50ZXJjZXB0b3IpO1xuICAgIHRoaXMud2F0Y2hlciA9IG5ldyBJbWFnZVdhdGNoZXIodGhpcywgdGhpcy5tZXNzYWdlU2VydmljZSk7XG4gICAgdGhpcy5zdGF0dXMkID0gdGhpcy53YXRjaGVyLnN0YXR1cyQ7XG4gICAgdGhpcy5zdGF0dXMkLnN1YnNjcmliZSgodmFsU3RhdHVzKSA9PiB7XG4gICAgICBpZiAodmFsU3RhdHVzID09PSAwKSB7XG4gICAgICAgIHRoaXMub2xMb2FkaW5nUHJvYmxlbSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlT2xMYXllcigpOiBvbExheWVySW1hZ2U8b2xTb3VyY2VJbWFnZT4ge1xuICAgIGNvbnN0IG9sT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucywge1xuICAgICAgc291cmNlOiB0aGlzLm9wdGlvbnMuc291cmNlLm9sIGFzIG9sU291cmNlSW1hZ2VcbiAgICB9KTtcblxuICAgIGNvbnN0IGltYWdlID0gbmV3IG9sTGF5ZXJJbWFnZShvbE9wdGlvbnMpO1xuICAgIGlmICh0aGlzLmF1dGhJbnRlcmNlcHRvcikge1xuICAgICAgKGltYWdlLmdldFNvdXJjZSgpIGFzIGFueSkuc2V0SW1hZ2VMb2FkRnVuY3Rpb24oKHRpbGUsIHNyYykgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbUxvYWRlcih0aWxlLCBzcmMsIHRoaXMuYXV0aEludGVyY2VwdG9yLCB0aGlzLm1lc3NhZ2VTZXJ2aWNlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBpbWFnZTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KG1hcDogTWFwQmFzZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChtYXAgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy53YXRjaGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud2F0Y2hlci5zdWJzY3JpYmUoKCkgPT4gdm9pZCAxKTtcbiAgICB9XG4gICAgc3VwZXIuaW5pdChtYXApO1xuICB9XG5cbiAgcmVtb3ZlKCk6IHZvaWQge1xuICAgIHRoaXMud2F0Y2hlci51bnN1YnNjcmliZSgpO1xuICAgIHN1cGVyLnJlbW92ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXN0b21Mb2FkZXIoXG4gICAgdGlsZSxcbiAgICBzcmM6IHN0cmluZyxcbiAgICBpbnRlcmNlcHRvcjogQXV0aEludGVyY2VwdG9yLFxuICAgIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuICApIHtcbiAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICAgIGNvbnN0IGFsdGVyZWRVcmxXaXRoS2V5QXV0aCA9IGludGVyY2VwdG9yLmFsdGVyVXJsV2l0aEtleUF1dGgoc3JjKTtcbiAgICBsZXQgdXJsID0gc3JjO1xuICAgIGlmIChhbHRlcmVkVXJsV2l0aEtleUF1dGgpIHtcbiAgICAgIHVybCA9IGFsdGVyZWRVcmxXaXRoS2V5QXV0aDtcbiAgICB9XG4gICAgeGhyLm9wZW4oJ0dFVCcsIHVybCk7XG4gICAgY29uc3QgaW50ZXJjZXB0ZWQgPSBpbnRlcmNlcHRvci5pbnRlcmNlcHRYaHIoeGhyLCB1cmwpO1xuICAgIGlmICghaW50ZXJjZXB0ZWQpIHtcbiAgICAgIHhoci5hYm9ydCgpO1xuICAgICAgdGlsZS5nZXRJbWFnZSgpLnNyYyA9IHVybDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcblxuICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBhcnJheUJ1ZmZlclZpZXcgPSBuZXcgVWludDhBcnJheSgodGhpcyBhcyBhbnkpLnJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlU3RyaW5nID0gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGFycmF5QnVmZmVyVmlldyk7XG4gICAgICBpZiAocmVzcG9uc2VTdHJpbmcuaW5jbHVkZXMoJ1NlcnZpY2VFeGNlcHRpb25SZXBvcnQnKSkge1xuICAgICAgICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZScsXG4gICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJheUJ1ZmZlclZpZXddLCB7IHR5cGU6ICdpbWFnZS9wbmcnIH0pO1xuICAgICAgY29uc3QgdXJsQ3JlYXRvciA9IHdpbmRvdy5VUkw7XG4gICAgICBjb25zdCBpbWFnZVVybCA9IHVybENyZWF0b3IuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgdGlsZS5nZXRJbWFnZSgpLnNyYyA9IGltYWdlVXJsO1xuICAgIH07XG4gICAgeGhyLnNlbmQoKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,8 @@
1
+ export * from './linked';
1
2
  export * from './layer';
3
+ export * from './layer-base';
2
4
  export * from './layer.interface';
5
+ export * from './legend.interface';
3
6
  export * from './image-layer';
4
7
  export * from './image-layer.interface';
5
8
  export * from './tile-layer';
@@ -10,4 +13,6 @@ export * from './vectortile-layer';
10
13
  export * from './vectortile-layer.interface';
11
14
  export * from './any-layer';
12
15
  export * from './any-layer.interface';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGF5ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9sYXllci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS1sYXllcic7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLWxheWVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3RpbGUtbGF5ZXInO1xuZXhwb3J0ICogZnJvbSAnLi90aWxlLWxheWVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZlY3Rvci1sYXllcic7XG5leHBvcnQgKiBmcm9tICcuL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi92ZWN0b3J0aWxlLWxheWVyJztcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9ydGlsZS1sYXllci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hbnktbGF5ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hbnktbGF5ZXIuaW50ZXJmYWNlJztcbiJdfQ==
16
+ export * from './layer-group.interface';
17
+ export * from './layer-group';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpbmtlZCc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xlZ2VuZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS1sYXllcic7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLWxheWVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3RpbGUtbGF5ZXInO1xuZXhwb3J0ICogZnJvbSAnLi90aWxlLWxheWVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZlY3Rvci1sYXllcic7XG5leHBvcnQgKiBmcm9tICcuL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi92ZWN0b3J0aWxlLWxheWVyJztcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9ydGlsZS1sYXllci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hbnktbGF5ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hbnktbGF5ZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItZ3JvdXAuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItZ3JvdXAnO1xuIl19