@igo2/geo 17.0.1-next.2 → 18.0.0-next.2

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 (206) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +4 -4
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +4 -4
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +4 -4
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +5 -5
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +4 -4
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +4 -4
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +4 -4
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +5 -5
  9. package/esm2022/lib/catalog/catalog.module.mjs +5 -5
  10. package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
  11. package/esm2022/lib/catalog/shared/catalog.service.mjs +4 -4
  12. package/esm2022/lib/datasource/shared/capabilities.service.mjs +4 -4
  13. package/esm2022/lib/datasource/shared/datasource.service.mjs +4 -4
  14. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +4 -4
  15. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +4 -4
  16. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -4
  17. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +4 -4
  18. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +4 -4
  19. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +4 -4
  20. package/esm2022/lib/directions/directions.component.mjs +4 -4
  21. package/esm2022/lib/directions/directions.module.mjs +5 -5
  22. package/esm2022/lib/directions/shared/directions.service.mjs +4 -4
  23. package/esm2022/lib/download/download-button/download-button.component.mjs +4 -4
  24. package/esm2022/lib/download/download.module.mjs +5 -5
  25. package/esm2022/lib/download/shared/download.service.mjs +4 -4
  26. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +4 -4
  27. package/esm2022/lib/draw/draw/draw-popup.component.mjs +4 -4
  28. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +4 -4
  29. package/esm2022/lib/draw/draw/draw.component.mjs +4 -4
  30. package/esm2022/lib/draw/draw/draw.module.mjs +5 -5
  31. package/esm2022/lib/draw/drawingTool.module.mjs +5 -5
  32. package/esm2022/lib/draw/shared/draw-icon.service.mjs +4 -4
  33. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +4 -4
  34. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +4 -4
  35. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +5 -5
  36. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +4 -4
  37. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +5 -5
  38. package/esm2022/lib/feature/feature.module.mjs +5 -5
  39. package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
  40. package/esm2022/lib/feature/shared/store.mjs +1 -1
  41. package/esm2022/lib/filter/filter.module.mjs +5 -5
  42. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +4 -4
  43. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +4 -4
  44. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +4 -4
  45. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +4 -4
  46. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +4 -4
  47. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +4 -4
  48. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +4 -4
  49. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +4 -4
  50. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +4 -4
  51. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +4 -4
  52. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +4 -4
  53. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +4 -4
  54. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +4 -4
  55. package/esm2022/lib/filter/shared/time-filter.service.mjs +4 -4
  56. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +4 -4
  57. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +4 -4
  58. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +4 -4
  59. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +4 -4
  60. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +4 -4
  61. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +4 -4
  62. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +4 -4
  63. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +4 -4
  64. package/esm2022/lib/geo.module.mjs +5 -5
  65. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +4 -4
  66. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +4 -4
  67. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +5 -5
  68. package/esm2022/lib/geometry/geometry.module.mjs +5 -5
  69. package/esm2022/lib/import-export/export-button/export-button.component.mjs +4 -4
  70. package/esm2022/lib/import-export/import-export/import-export.component.mjs +4 -4
  71. package/esm2022/lib/import-export/import-export.module.mjs +5 -5
  72. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +4 -4
  73. package/esm2022/lib/import-export/shared/export.service.mjs +4 -4
  74. package/esm2022/lib/import-export/shared/import.service.mjs +4 -4
  75. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +4 -4
  76. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +4 -4
  77. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +4 -4
  78. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +4 -4
  79. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +4 -4
  80. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +4 -4
  81. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +4 -4
  82. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +4 -4
  83. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +4 -4
  84. package/esm2022/lib/layer/layer.module.mjs +5 -5
  85. package/esm2022/lib/layer/shared/layer.service.mjs +18 -14
  86. package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
  87. package/esm2022/lib/layer/shared/layers/layer.mjs +2 -6
  88. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
  89. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +3 -3
  90. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  91. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +4 -4
  92. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +4 -4
  93. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +4 -4
  94. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +4 -4
  95. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +4 -4
  96. package/esm2022/lib/map/info-section/info-section.component.mjs +4 -4
  97. package/esm2022/lib/map/map-browser/map-browser.component.mjs +4 -4
  98. package/esm2022/lib/map/map-center/map-center.component.mjs +4 -4
  99. package/esm2022/lib/map/map.module.mjs +5 -5
  100. package/esm2022/lib/map/menu-button/menu-button.component.mjs +4 -4
  101. package/esm2022/lib/map/offline-button/offline-button.component.mjs +4 -4
  102. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +4 -4
  103. package/esm2022/lib/map/shared/hover-feature.directive.mjs +6 -6
  104. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +4 -4
  105. package/esm2022/lib/map/shared/map.mjs +2 -2
  106. package/esm2022/lib/map/shared/map.service.mjs +4 -4
  107. package/esm2022/lib/map/shared/mapOffline.directive.mjs +4 -4
  108. package/esm2022/lib/map/shared/projection.service.mjs +4 -4
  109. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +4 -4
  110. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +4 -4
  111. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +4 -4
  112. package/esm2022/lib/measure/measure.module.mjs +5 -5
  113. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +4 -4
  114. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +4 -4
  115. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +4 -4
  116. package/esm2022/lib/measure/measurer/measurer.component.mjs +4 -4
  117. package/esm2022/lib/measure/measurer/measurer.module.mjs +5 -5
  118. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +7 -7
  119. package/esm2022/lib/metadata/metadata.module.mjs +5 -5
  120. package/esm2022/lib/metadata/shared/metadata.service.mjs +4 -4
  121. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +5 -8
  122. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +21 -22
  123. package/esm2022/lib/offline/index.mjs +3 -1
  124. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +16 -17
  125. package/esm2022/lib/offline/offline.interface.mjs +2 -0
  126. package/esm2022/lib/offline/offline.provider.mjs +51 -0
  127. package/esm2022/lib/offline/shared/geo-network.service.mjs +15 -16
  128. package/esm2022/lib/overlay/shared/overlay.mjs +3 -2
  129. package/esm2022/lib/print/print/print.component.mjs +4 -4
  130. package/esm2022/lib/print/print-form/print-form.component.mjs +4 -4
  131. package/esm2022/lib/print/print.module.mjs +5 -5
  132. package/esm2022/lib/print/shared/print.service.mjs +4 -4
  133. package/esm2022/lib/query/query.module.mjs +5 -5
  134. package/esm2022/lib/query/shared/query-search-source.mjs +4 -4
  135. package/esm2022/lib/query/shared/query.directive.mjs +4 -4
  136. package/esm2022/lib/query/shared/query.service.mjs +4 -4
  137. package/esm2022/lib/search/search-bar/search-bar.component.mjs +4 -4
  138. package/esm2022/lib/search/search-bar/search-bar.module.mjs +5 -5
  139. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +4 -4
  140. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +4 -4
  141. package/esm2022/lib/search/search-results/search-results-item.component.mjs +4 -4
  142. package/esm2022/lib/search/search-results/search-results.component.mjs +4 -4
  143. package/esm2022/lib/search/search-results/search-results.module.mjs +5 -5
  144. package/esm2022/lib/search/search-selector/search-selector.component.mjs +4 -4
  145. package/esm2022/lib/search/search-selector/search-selector.module.mjs +5 -5
  146. package/esm2022/lib/search/search-settings/search-settings.component.mjs +4 -4
  147. package/esm2022/lib/search/search-settings/search-settings.module.mjs +5 -5
  148. package/esm2022/lib/search/search.module.mjs +5 -5
  149. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +6 -6
  150. package/esm2022/lib/search/shared/search.service.mjs +4 -4
  151. package/esm2022/lib/search/shared/sources/cadastre.mjs +4 -4
  152. package/esm2022/lib/search/shared/sources/coordinates.mjs +7 -7
  153. package/esm2022/lib/search/shared/sources/icherche.mjs +10 -10
  154. package/esm2022/lib/search/shared/sources/ilayer.mjs +7 -7
  155. package/esm2022/lib/search/shared/sources/nominatim.mjs +4 -4
  156. package/esm2022/lib/search/shared/sources/storedqueries.mjs +7 -7
  157. package/esm2022/lib/search/shared/sources/workspace.mjs +4 -4
  158. package/esm2022/lib/style/style-list/style-list.module.mjs +5 -5
  159. package/esm2022/lib/style/style-list/style-list.service.mjs +4 -4
  160. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +4 -4
  161. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +4 -4
  162. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +4 -4
  163. package/esm2022/lib/style/style-service/draw-style.service.mjs +4 -4
  164. package/esm2022/lib/style/style-service/style.service.mjs +4 -4
  165. package/esm2022/lib/style/style.module.mjs +5 -5
  166. package/esm2022/lib/toast/toast.component.mjs +4 -4
  167. package/esm2022/lib/toast/toast.module.mjs +5 -5
  168. package/esm2022/lib/utils/id-generator.mjs +1 -1
  169. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +4 -4
  170. package/esm2022/lib/wkt/shared/wkt.service.mjs +4 -4
  171. package/esm2022/lib/wkt/wkt.module.mjs +5 -5
  172. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +4 -4
  173. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +5 -5
  174. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +4 -4
  175. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +4 -4
  176. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +4 -4
  177. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +4 -4
  178. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +4 -4
  179. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +5 -5
  180. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +4 -4
  181. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +5 -5
  182. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +4 -4
  183. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +5 -5
  184. package/esm2022/lib/workspace/workspace.module.mjs +5 -5
  185. package/fesm2022/igo2-geo.mjs +6095 -6054
  186. package/fesm2022/igo2-geo.mjs.map +1 -1
  187. package/lib/catalog/shared/catalog.enum.d.ts +1 -3
  188. package/lib/feature/shared/feature-store.utils.d.ts +1 -1
  189. package/lib/feature/shared/store.d.ts +1 -1
  190. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -1
  191. package/lib/layer/shared/layer.service.d.ts +5 -5
  192. package/lib/layer/shared/layers/image-layer.d.ts +1 -1
  193. package/lib/layer/shared/layers/layer.d.ts +1 -5
  194. package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
  195. package/lib/layer/shared/layers/vector-layer.d.ts +2 -2
  196. package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
  197. package/lib/map/shared/map.d.ts +1 -1
  198. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  199. package/lib/offline/index.d.ts +2 -0
  200. package/lib/offline/layerDB/layerDB.service.d.ts +1 -1
  201. package/lib/offline/offline.interface.d.ts +3 -0
  202. package/lib/offline/offline.provider.d.ts +3 -0
  203. package/lib/offline/shared/geo-network.service.d.ts +3 -3
  204. package/lib/overlay/shared/overlay.d.ts +2 -1
  205. package/lib/utils/id-generator.d.ts +5 -5
  206. package/package.json +5 -5
@@ -11,7 +11,7 @@ import { fromEvent, of, zip } from 'rxjs';
11
11
  import { catchError, concatMap, debounceTime, delay, first } from 'rxjs/operators';
12
12
  import { FeatureDataSource } from '../../../datasource/shared/datasources/feature-datasource';
13
13
  import { buildUrl, defaultMaxFeatures } from '../../../datasource/shared/datasources/wms-wfs.utils';
14
- import { getResolutionFromScale } from '../../../map/shared';
14
+ import { getResolutionFromScale } from '../../../map/shared/map.utils';
15
15
  import { InsertSourceInsertDBEnum } from '../../../offline/geoDB/geoDB.enums';
16
16
  import { olStyleToBasicIgoStyle } from '../../../style/shared/vector/conversion.utils';
17
17
  import { VectorWatcher } from '../../utils/vector-watcher';
@@ -35,7 +35,7 @@ export class VectorLayer extends Layer {
35
35
  return this.options.exportable !== false;
36
36
  }
37
37
  constructor(options, messageService, authInterceptor, geoNetworkService, geoDBService, layerDBService) {
38
- super(options, messageService, authInterceptor, geoDBService, layerDBService);
38
+ super(options, messageService, authInterceptor);
39
39
  this.messageService = messageService;
40
40
  this.authInterceptor = authInterceptor;
41
41
  this.geoNetworkService = geoNetworkService;
@@ -570,4 +570,4 @@ export class VectorLayer extends Layer {
570
570
  }
571
571
  }
572
572
  }
573
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBSzlGLE9BQU8sRUFDTCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ25CLE1BQU0sc0RBQXNELENBQUM7QUFLOUQsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBUTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxD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QU0sR0FBRyxPQUFPLENBQUM7b0JBQ25CLENBQUM7eUJBQU0sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7d0JBQzFCLE1BQU0sR0FBRyxPQUFPLENBQUM7d0JBQ2pCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzs0QkFDWixNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQ3RDLE9BQU8sRUFDUCxpQkFBaUIsQ0FDbEIsQ0FBQzt3QkFDSixDQUFDO29CQUNILENBQUM7eUJBQU0sSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7d0JBQ2xDLE1BQU0sR0FBRyxPQUFPLENBQUM7b0JBQ25CLENBQUM7b0JBQ0QsSUFBSSxNQUFNLEVBQUUsQ0FBQzt3QkFDWCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTs0QkFDM0MsTUFBTTs0QkFDTixpQkFBaUIsRUFBRSxVQUFVO3lCQUM5QixDQUFDLENBQUM7d0JBQ0gsWUFBWSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO3dCQUNsRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3BCLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLEVBQUUsQ0FBQztvQkFDWixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCB7IHVuQnlLZXkgfSBmcm9tICdvbC9PYnNlcnZhYmxlJztcbmltcG9ydCB7IGFzQXJyYXkgYXMgQ29sb3JBc0FycmF5IH0gZnJvbSAnb2wvY29sb3InO1xuaW1wb3J0IHsgZWFzZU91dCB9IGZyb20gJ29sL2Vhc2luZyc7XG5pbXBvcnQgQmFzZUV2ZW50IGZyb20gJ29sL2V2ZW50cy9FdmVudCc7XG5pbXBvcnQgeyBFeHRlbnQgfSBmcm9tICdvbC9leHRlbnQnO1xuaW1wb3J0IHsgRmVhdHVyZUxvYWRlciB9IGZyb20gJ29sL2ZlYXR1cmVsb2FkZXInO1xuaW1wb3J0ICogYXMgb2xmb3JtYXQgZnJvbSAnb2wvZm9ybWF0JztcbmltcG9ydCBvbExheWVyVmVjdG9yIGZyb20gJ29sL2xheWVyL1ZlY3Rvcic7XG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgb2xQcm9qZWN0aW9uIGZyb20gJ29sL3Byb2ovUHJvamVjdGlvbic7XG5pbXBvcnQgeyBnZXRWZWN0b3JDb250ZXh0IH0gZnJvbSAnb2wvcmVuZGVyJztcbmltcG9ydCBvbFNvdXJjZVZlY3RvciBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcblxuaW1wb3J0IHsgZnJvbUV2ZW50LCBvZiwgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBjb25jYXRNYXAsXG4gIGRlYm91bmNlVGltZSxcbiAgZGVsYXksXG4gIGZpcnN0XG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXJjR0lTUmVzdERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9hcmNnaXNyZXN0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXREYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2Vic29ja2V0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgV0ZTRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dmcy1kYXRhc291cmNlJztcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIGJ1aWxkVXJsLFxuICBkZWZhdWx0TWF4RmVhdHVyZXNcbn0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLXdmcy51dGlscyc7XG5pbXBvcnQge1xuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMsXG4gIE9nY0ZpbHRlcnNPcHRpb25zXG59IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWdvTWFwLCBNYXBFeHRlbnQsIGdldFJlc29sdXRpb25Gcm9tU2NhbGUgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkJztcbmltcG9ydCB7IEluc2VydFNvdXJjZUluc2VydERCRW51bSB9IGZyb20gJy4uLy4uLy4uL29mZmxpbmUvZ2VvREIvZ2VvREIuZW51bXMnO1xuaW1wb3J0IHsgR2VvREJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9nZW9EQi9nZW9EQi5zZXJ2aWNlJztcbmltcG9ydCB7IExheWVyREJEYXRhIH0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9sYXllckRCL2xheWVyREIuaW50ZXJmYWNlJztcbmltcG9ydCB7IExheWVyREJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9sYXllckRCL2xheWVyREIuc2VydmljZSc7XG5pbXBvcnQge1xuICBHZW9OZXR3b3JrU2VydmljZSxcbiAgU2ltcGxlR2V0T3B0aW9uc1xufSBmcm9tICcuLi8uLi8uLi9vZmZsaW5lL3NoYXJlZC9nZW8tbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7IG9sU3R5bGVUb0Jhc2ljSWdvU3R5bGUgfSBmcm9tICcuLi8uLi8uLi9zdHlsZS9zaGFyZWQvdmVjdG9yL2NvbnZlcnNpb24udXRpbHMnO1xuaW1wb3J0IHsgVmVjdG9yV2F0Y2hlciB9IGZyb20gJy4uLy4uL3V0aWxzL3ZlY3Rvci13YXRjaGVyJztcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi9sYXllcic7XG5pbXBvcnQgeyBWZWN0b3JMYXllck9wdGlvbnMgfSBmcm9tICcuL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgVmVjdG9yTGF5ZXIgZXh0ZW5kcyBMYXllciB7XG4gIHByaXZhdGUgcHJldmlvdXNMb2FkRXh0ZW50OiBFeHRlbnQ7XG4gIHByaXZhdGUgcHJldmlvdXNMb2FkUmVzb2x1dGlvbjogbnVtYmVyO1xuICBwcml2YXRlIHByZXZpb3VzT2djRmlsdGVyczogT2djRmlsdGVyc09wdGlvbnM7XG4gIHByaXZhdGUgeGhyQWNjdW11bGF0b3I6IFhNTEh0dHBSZXF1ZXN0W10gPSBbXTtcbiAgcHVibGljIGRlY2xhcmUgZGF0YVNvdXJjZTpcbiAgICB8IEZlYXR1cmVEYXRhU291cmNlXG4gICAgfCBXRlNEYXRhU291cmNlXG4gICAgfCBBcmNHSVNSZXN0RGF0YVNvdXJjZVxuICAgIHwgV2ViU29ja2V0RGF0YVNvdXJjZVxuICAgIHwgQ2x1c3RlckRhdGFTb3VyY2U7XG4gIHB1YmxpYyBkZWNsYXJlIG9wdGlvbnM6IFZlY3RvckxheWVyT3B0aW9ucztcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sTGF5ZXJWZWN0b3I8b2xTb3VyY2VWZWN0b3I+O1xuICBwcml2YXRlIHdhdGNoZXI6IFZlY3RvcldhdGNoZXI7XG4gIHByaXZhdGUgdHJhY2tGZWF0dXJlTGlzdGVuZXJJZDtcblxuICBnZXQgYnJvd3NhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYnJvd3NhYmxlICE9PSBmYWxzZTtcbiAgfVxuXG4gIGdldCBleHBvcnRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZXhwb3J0YWJsZSAhPT0gZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBvcHRpb25zOiBWZWN0b3JMYXllck9wdGlvbnMsXG4gICAgcHVibGljIG1lc3NhZ2VTZXJ2aWNlPzogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHVibGljIGF1dGhJbnRlcmNlcHRvcj86IEF1dGhJbnRlcmNlcHRvcixcbiAgICBwcml2YXRlIGdlb05ldHdvcmtTZXJ2aWNlPzogR2VvTmV0d29ya1NlcnZpY2UsXG4gICAgcHVibGljIGdlb0RCU2VydmljZT86IEdlb0RCU2VydmljZSxcbiAgICBwdWJsaWMgbGF5ZXJEQlNlcnZpY2U/OiBMYXllckRCU2VydmljZVxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIG9wdGlvbnMsXG4gICAgICBtZXNzYWdlU2VydmljZSxcbiAgICAgIGF1dGhJbnRlcmNlcHRvcixcbiAgICAgIGdlb0RCU2VydmljZSxcbiAgICAgIGxheWVyREJTZXJ2aWNlXG4gICAgKTtcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgVmVjdG9yV2F0Y2hlcih0aGlzKTtcbiAgICB0aGlzLnN0YXR1cyQgPSB0aGlzLndhdGNoZXIuc3RhdHVzJDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVPbExheWVyKCk6IG9sTGF5ZXJWZWN0b3I8b2xTb3VyY2VWZWN0b3I+IHtcbiAgICBjb25zdCBpbml0aWFsT3BhY2l0eVZhbHVlID0gdGhpcy5vcHRpb25zLm9wYWNpdHkgfHwgMTtcbiAgICBjb25zdCBpbml0aWFsVmlzaWJsZVZhbHVlID0gdGhpcy5vcHRpb25zLnZpc2libGUgIT09IGZhbHNlO1xuICAgIGNvbnN0IGluaXRpYWxNaW5SZXNWYWx1ZSA9XG4gICAgICB0aGlzLm9wdGlvbnMubWluUmVzb2x1dGlvbiB8fFxuICAgICAgZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShOdW1iZXIodGhpcy5vcHRpb25zLm1pblNjYWxlRGVub20pKTtcbiAgICBjb25zdCBpbml0aWFsTWF4UmVzVmFsdWUgPVxuICAgICAgdGhpcy5vcHRpb25zLm1heFJlc29sdXRpb24gfHxcbiAgICAgIGdldFJlc29sdXRpb25Gcm9tU2NhbGUoTnVtYmVyKHRoaXMub3B0aW9ucy5tYXhTY2FsZURlbm9tKSk7XG4gICAgY29uc3Qgc28gPSB0aGlzLm9wdGlvbnMuc291cmNlT3B0aW9ucyBhcyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSBpbnN0YW5jZW9mIEZlYXR1cmVEYXRhU291cmNlKSB7XG4gICAgICBpZiAoc28/LnByZWxvYWQ/LmJ5cGFzc1Jlc29sdXRpb24gfHwgc28/LnByZWxvYWQ/LmJ5cGFzc1Zpc2libGUpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm9wYWNpdHkgPSAwO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc28ucHJlbG9hZC5ieXBhc3NSZXNvbHV0aW9uICYmXG4gICAgICAgICAgKHRoaXMub3B0aW9ucy5taW5SZXNvbHV0aW9uIHx8IHRoaXMub3B0aW9ucy5tYXhSZXNvbHV0aW9uKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMubWluUmVzb2x1dGlvbiA9IDA7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLm1heFJlc29sdXRpb24gPSBJbmZpbml0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc28ucHJlbG9hZC5ieXBhc3NWaXNpYmxlICYmICFpbml0aWFsVmlzaWJsZVZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLnZpc2libGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb2xPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7XG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5zb3VyY2Uub2wgYXMgb2xTb3VyY2VWZWN0b3IsXG4gICAgICBzb3VyY2VPcHRpb25zOiB0aGlzLm9wdGlvbnMuc291cmNlT3B0aW9ucyB8fCB0aGlzLm9wdGlvbnMuc291cmNlLm9wdGlvbnNcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub24oXG4gICAgICAgICdhZGRmZWF0dXJlJyxcbiAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICB0aGlzLmZsYXNoKGUuZmVhdHVyZSk7XG4gICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9ucy5pZGJJbmZvPy5zdG9yZVRvSWRiICYmIHRoaXMuZ2VvREJTZXJ2aWNlKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8uZmlyc3RMb2FkKSB7XG4gICAgICAgIHRoaXMubWFpbnRhaW5GZWF0dXJlc0luSWRiKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub25jZSgnZmVhdHVyZXNsb2FkZW5kJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub24oJ2FkZGZlYXR1cmUnLCAoKSA9PiB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uKCdjaGFuZ2VmZWF0dXJlJywgKCkgPT5cbiAgICAgICAgICB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5vbC5vbignY2xlYXInLCAoKSA9PiB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uKCdyZW1vdmVmZWF0dXJlJywgKCkgPT5cbiAgICAgICAgICB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgaW5zdGFuY2VvZiBGZWF0dXJlRGF0YVNvdXJjZSAmJlxuICAgICAgKHNvPy5wcmVsb2FkPy5ieXBhc3NSZXNvbHV0aW9uIHx8IHNvPy5wcmVsb2FkPy5ieXBhc3NWaXNpYmxlKVxuICAgICkge1xuICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uY2UoJ2ZlYXR1cmVzbG9hZGVuZCcsICgpID0+IHtcbiAgICAgICAgaWYgKGluaXRpYWxPcGFjaXR5VmFsdWUpIHtcbiAgICAgICAgICB0aGlzLm9wYWNpdHkgPSBpbml0aWFsT3BhY2l0eVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzby5wcmVsb2FkLmJ5cGFzc1Jlc29sdXRpb24pIHtcbiAgICAgICAgICB0aGlzLm1pblJlc29sdXRpb24gPSBpbml0aWFsTWluUmVzVmFsdWU7XG4gICAgICAgICAgdGhpcy5tYXhSZXNvbHV0aW9uID0gaW5pdGlhbE1heFJlc1ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzby5wcmVsb2FkLmJ5cGFzc1Zpc2libGUpIHtcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBpbml0aWFsVmlzaWJsZVZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnRyYWNrRmVhdHVyZSkge1xuICAgICAgdGhpcy5lbmFibGVUcmFja0ZlYXR1cmUodGhpcy5vcHRpb25zLnRyYWNrRmVhdHVyZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdmVjdG9yID0gbmV3IG9sTGF5ZXJWZWN0b3Iob2xPcHRpb25zKTtcbiAgICBjb25zdCB2ZWN0b3JTb3VyY2UgPSB2ZWN0b3IuZ2V0U291cmNlKCkgYXMgb2xTb3VyY2VWZWN0b3I7XG4gICAgY29uc3QgdXJsID0gdmVjdG9yU291cmNlLmdldFVybCgpO1xuICAgIGlmICh0eXBlb2YgdXJsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdmVjdG9yO1xuICAgIH1cbiAgICBpZiAodXJsIHx8IG9sT3B0aW9ucy5zb3VyY2VPcHRpb25zPy50eXBlID09PSAnd2ZzJykge1xuICAgICAgbGV0IGxvYWRlcjogRmVhdHVyZUxvYWRlcjtcbiAgICAgIGNvbnN0IHdmc09wdGlvbnMgPSBvbE9wdGlvbnMuc291cmNlT3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9ucztcbiAgICAgIGlmIChcbiAgICAgICAgd2ZzT3B0aW9ucz8udHlwZSA9PT0gJ3dmcycgJiZcbiAgICAgICAgKHdmc09wdGlvbnMucGFyYW1zIHx8IHdmc09wdGlvbnMucGFyYW1zV0ZTKVxuICAgICAgKSB7XG4gICAgICAgIGxvYWRlciA9IChleHRlbnQsIHJlc29sdXRpb24sIHByb2osIHN1Y2Nlc3MsIGZhaWx1cmUpID0+IHtcbiAgICAgICAgICB0aGlzLmN1c3RvbVdGU0xvYWRlcihcbiAgICAgICAgICAgIHZlY3RvclNvdXJjZSxcbiAgICAgICAgICAgIHdmc09wdGlvbnMsXG4gICAgICAgICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvcixcbiAgICAgICAgICAgIGV4dGVudCxcbiAgICAgICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgICAgICBwcm9qLFxuICAgICAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9hZGVyID0gKGV4dGVudCwgcmVzb2x1dGlvbiwgcHJvaiwgc3VjY2VzcywgZmFpbHVyZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY3VzdG9tTG9hZGVyKFxuICAgICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3IsXG4gICAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgICByZXNvbHV0aW9uLFxuICAgICAgICAgICAgcHJvaixcbiAgICAgICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgICAgICBmYWlsdXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2FkZXIpIHtcbiAgICAgICAgdmVjdG9yU291cmNlLnNldExvYWRlcihsb2FkZXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8/LnN0b3JlVG9JZGIgJiYgdGhpcy5nZW9EQlNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGlkYkxvYWRlciA9IChleHRlbnQsIHJlc29sdXRpb24sIHByb2osIHN1Y2Nlc3MsIGZhaWx1cmUpID0+IHtcbiAgICAgICAgdGhpcy5jdXN0b21JREJMb2FkZXIoXG4gICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgIG9sT3B0aW9ucy5pZCxcbiAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgcHJvaixcbiAgICAgICAgICBzdWNjZXNzLFxuICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBpZiAoaWRiTG9hZGVyKSB7XG4gICAgICAgIHZlY3RvclNvdXJjZS5zZXRMb2FkZXIoaWRiTG9hZGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8/LnN0b3JlVG9JZGIgJiYgdGhpcy5nZW9EQlNlcnZpY2UpIHtcbiAgICAgIHZlY3Rvci5vbmNlKCdzb3VyY2VyZWFkeScsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pZGJJbmZvLmZpcnN0TG9hZCkge1xuICAgICAgICAgIHRoaXMubWFpbnRhaW5PcHRpb25zSW5JZGIoKTtcbiAgICAgICAgfVxuICAgICAgICBmcm9tRXZlbnQ8QmFzZUV2ZW50Pih2ZWN0b3IsICdjaGFuZ2UnKVxuICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5tYWludGFpbk9wdGlvbnNJbklkYigpKTtcbiAgICAgICAgdmVjdG9yLm9uKCdjaGFuZ2U6ekluZGV4JywgKCkgPT4gdGhpcy5tYWludGFpbk9wdGlvbnNJbklkYigpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdmVjdG9yO1xuICB9XG5cbiAgcmVtb3ZlTGF5ZXJGcm9tSURCKCkge1xuICAgIGlmICh0aGlzLmdlb0RCU2VydmljZSAmJiB0aGlzLmxheWVyREJTZXJ2aWNlKSB7XG4gICAgICB6aXAoXG4gICAgICAgIHRoaXMuZ2VvREJTZXJ2aWNlLmRlbGV0ZUJ5S2V5KHRoaXMuaWQpLFxuICAgICAgICB0aGlzLmxheWVyREJTZXJ2aWNlLmRlbGV0ZUJ5S2V5KHRoaXMuaWQpXG4gICAgICApLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWFpbnRhaW5PcHRpb25zSW5JZGIoKSB7XG4gICAgdGhpcy5vcHRpb25zLmlnb1N0eWxlLmlnb1N0eWxlT2JqZWN0ID0gb2xTdHlsZVRvQmFzaWNJZ29TdHlsZSh0aGlzLm9sKTtcbiAgICBjb25zdCBsYXllckRhdGE6IExheWVyREJEYXRhID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgIGxheWVySWQ6IHRoaXMuaWQsXG4gICAgICBkZXRhaWxlZENvbnRleHRVcmk6IHRoaXMub3B0aW9ucy5pZGJJbmZvLmNvbnRleHRVcmksXG4gICAgICBzb3VyY2VPcHRpb25zOiB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICB0eXBlOiAndmVjdG9yJyxcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgbGF5ZXJPcHRpb25zOiB7XG4gICAgICAgIHdvcmtzcGFjZTogdGhpcy5vcHRpb25zLndvcmtzcGFjZSxcbiAgICAgICAgekluZGV4OiB0aGlzLm9sID8gdGhpcy56SW5kZXggOiAxMDAwMDAwLFxuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgaXNJZ29JbnRlcm5hbExheWVyOiB0aGlzLmlzSWdvSW50ZXJuYWxMYXllcixcbiAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICAgIGlnb1N0eWxlOiB0aGlzLm9wdGlvbnMuaWdvU3R5bGUsXG4gICAgICAgIGlkYkluZm86IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucy5pZGJJbmZvLCB7IGZpcnN0TG9hZDogZmFsc2UgfSlcbiAgICAgIH0sXG4gICAgICBpbnNlcnRFdmVudDogYCR7dGhpcy50aXRsZX0tJHt0aGlzLmlkfS0ke25ldyBEYXRlKCl9YFxuICAgIH0pO1xuICAgIHRoaXMubGF5ZXJEQlNlcnZpY2UudXBkYXRlKGxheWVyRGF0YSk7XG4gIH1cblxuICBwcml2YXRlIG1haW50YWluRmVhdHVyZXNJbklkYigpIHtcbiAgICBjb25zdCBkc0ZlYXR1cmVzID0gdGhpcy5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVzKCk7XG4gICAgY29uc3QgZ2VvanNvbk9iamVjdCA9IEpTT04ucGFyc2UoXG4gICAgICBuZXcgb2xmb3JtYXQuR2VvSlNPTigpLndyaXRlRmVhdHVyZXMoZHNGZWF0dXJlcywge1xuICAgICAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLmRhdGFTb3VyY2Uub2wuZ2V0UHJvamVjdGlvbigpIHx8ICdFUFNHOjM4NTcnXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5nZW9EQlNlcnZpY2UudXBkYXRlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMuaWQsXG4gICAgICBnZW9qc29uT2JqZWN0LFxuICAgICAgSW5zZXJ0U291cmNlSW5zZXJ0REJFbnVtLlVzZXIsXG4gICAgICBgJHt0aGlzLnRpdGxlfS0ke3RoaXMuaWR9LSR7bmV3IERhdGUoKX1gXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmbGFzaChmZWF0dXJlKSB7XG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBsaXN0ZW5lcktleSA9IHRoaXMub2wub24oJ3Bvc3RyZW5kZXInLCBhbmltYXRlLmJpbmQodGhpcykpO1xuXG4gICAgZnVuY3Rpb24gYW5pbWF0ZShldmVudCkge1xuICAgICAgY29uc3QgdmVjdG9yQ29udGV4dCA9IGdldFZlY3RvckNvbnRleHQoZXZlbnQpO1xuICAgICAgY29uc3QgZnJhbWVTdGF0ZSA9IGV2ZW50LmZyYW1lU3RhdGU7XG4gICAgICBjb25zdCBmbGFzaEdlb20gPSBmZWF0dXJlLmdldEdlb21ldHJ5KCkuY2xvbmUoKTtcbiAgICAgIGNvbnN0IGVsYXBzZWQgPSBmcmFtZVN0YXRlLnRpbWUgLSBzdGFydDtcbiAgICAgIGNvbnN0IGVsYXBzZWRSYXRpbyA9IGVsYXBzZWQgLyB0aGlzLm9wdGlvbnMuYW5pbWF0aW9uLmR1cmF0aW9uO1xuICAgICAgY29uc3Qgb3BhY2l0eSA9IGVhc2VPdXQoMSAtIGVsYXBzZWRSYXRpbyk7XG4gICAgICBjb25zdCBuZXdDb2xvciA9IENvbG9yQXNBcnJheSh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uLmNvbG9yIHx8ICdyZWQnKTtcbiAgICAgIG5ld0NvbG9yWzNdID0gb3BhY2l0eTtcbiAgICAgIGxldCBzdHlsZSA9IHRoaXMub2xcbiAgICAgICAgLmdldFN0eWxlRnVuY3Rpb24oKVxuICAgICAgICAuY2FsbCh0aGlzLCBmZWF0dXJlKVxuICAgICAgICAuZmluZCgoc3R5bGUyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0eWxlMi5nZXRJbWFnZSgpO1xuICAgICAgICB9KTtcbiAgICAgIGlmICghc3R5bGUpIHtcbiAgICAgICAgc3R5bGUgPSB0aGlzLm9sLmdldFN0eWxlRnVuY3Rpb24oKS5jYWxsKHRoaXMsIGZlYXR1cmUpWzBdO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3R5bGVDbG9uZSA9IHN0eWxlLmNsb25lKCk7XG5cbiAgICAgIHN3aXRjaCAoZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSkge1xuICAgICAgICBjYXNlICdQb2ludCc6XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpICE9PSBudWxsICYmXG4gICAgICAgICAgICB0eXBlb2Ygc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldFJhZGl1cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcmFkaXVzID1cbiAgICAgICAgICAgICAgZWFzZU91dChlbGFwc2VkUmF0aW8pICogKHN0eWxlQ2xvbmUuZ2V0SW1hZ2UoKS5nZXRSYWRpdXMoKSAqIDMpO1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLnNldFJhZGl1cyhyYWRpdXMpO1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLnNldE9wYWNpdHkob3BhY2l0eSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0xpbmVTdHJpbmcnOlxuICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICBpZiAoc3R5bGVDbG9uZS5nZXRJbWFnZSgpKSB7XG4gICAgICAgICAgICBzdHlsZUNsb25lLmdldEltYWdlKCkuZ2V0U3Ryb2tlKCkuc2V0Q29sb3IobmV3Q29sb3IpO1xuICAgICAgICAgICAgc3R5bGVDbG9uZVxuICAgICAgICAgICAgICAuZ2V0SW1hZ2UoKVxuICAgICAgICAgICAgICAuZ2V0U3Ryb2tlKClcbiAgICAgICAgICAgICAgLnNldFdpZHRoKFxuICAgICAgICAgICAgICAgIGVhc2VPdXQoZWxhcHNlZFJhdGlvKSAqXG4gICAgICAgICAgICAgICAgICAoc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldFN0cm9rZSgpLmdldFdpZHRoKCkgKiAzKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3R5bGVDbG9uZS5nZXRTdHJva2UoKSkge1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRTdHJva2UoKS5zZXRDb2xvcihuZXdDb2xvcik7XG4gICAgICAgICAgICBzdHlsZUNsb25lXG4gICAgICAgICAgICAgIC5nZXRTdHJva2UoKVxuICAgICAgICAgICAgICAuc2V0V2lkdGgoXG4gICAgICAgICAgICAgICAgZWFzZU91dChlbGFwc2VkUmF0aW8pICogKHN0eWxlQ2xvbmUuZ2V0U3Ryb2tlKCkuZ2V0V2lkdGgoKSAqIDMpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgaWYgKHN0eWxlQ2xvbmUuZ2V0SW1hZ2UoKSkge1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldEZpbGwoKS5zZXRDb2xvcihuZXdDb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdHlsZUNsb25lLmdldEZpbGwoKSkge1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRGaWxsKCkuc2V0Q29sb3IobmV3Q29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgc3R5bGVDbG9uZS5zZXRUZXh0KCcnKTtcbiAgICAgIHZlY3RvckNvbnRleHQuc2V0U3R5bGUoc3R5bGVDbG9uZSk7XG4gICAgICB2ZWN0b3JDb250ZXh0LmRyYXdHZW9tZXRyeShmbGFzaEdlb20pO1xuXG4gICAgICBpZiAoZWxhcHNlZCA+IHRoaXMub3B0aW9ucy5hbmltYXRpb24uZHVyYXRpb24pIHtcbiAgICAgICAgdW5CeUtleShsaXN0ZW5lcktleSk7XG4gICAgICAgIC8vIHJlbW92ZSBsYXN0IGdlb21ldHJ5XG4gICAgICAgIC8vIHRoZXJlIGlzIGEgbGl0dGxlIGZsYXNoIGJlZm9yZSBmZWF0dXJlIGRpc2FwcGVhciwgYmV0dGVyIHNvbHV0aW9uID9cbiAgICAgICAgdGhpcy5tYXAub2wucmVuZGVyKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIHRlbGwgT3BlbkxheWVycyB0byBjb250aW51ZSBwb3N0Y29tcG9zZSBhbmltYXRpb25cbiAgICAgIHRoaXMubWFwLm9sLnJlbmRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXAobWFwOiBJZ29NYXAgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAobWFwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMud2F0Y2hlci51bnN1YnNjcmliZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndhdGNoZXIuc3Vic2NyaWJlKCgpID0+IHZvaWQgMSk7XG4gICAgfVxuICAgIHN1cGVyLnNldE1hcChtYXApO1xuICB9XG5cbiAgcHVibGljIHNldEV4dGVudChleHRlbnQ6IE1hcEV4dGVudCk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucy5leHRlbnQgPSBleHRlbnQ7XG4gIH1cblxuICBwdWJsaWMgb25VbndhdGNoKCkge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5vblVud2F0Y2goKTtcbiAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wQW5pbWF0aW9uKCkge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5vbC51bihcbiAgICAgICdhZGRmZWF0dXJlJyxcbiAgICAgIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGlmICh0aGlzLnZpc2libGUpIHtcbiAgICAgICAgICB0aGlzLmZsYXNoKGUuZmVhdHVyZSk7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlVHJhY2tGZWF0dXJlKGlkOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLnRyYWNrRmVhdHVyZUxpc3RlbmVySWQgPSB0aGlzLmRhdGFTb3VyY2Uub2wub24oXG4gICAgICAnYWRkZmVhdHVyZScsXG4gICAgICB0aGlzLnRyYWNrRmVhdHVyZS5iaW5kKHRoaXMsIGlkKVxuICAgICk7XG4gIH1cbiAgcHVibGljIGNlbnRlck1hcE9uRmVhdHVyZShpZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgY29uc3QgZmVhdCA9IHRoaXMuZGF0YVNvdXJjZS5vbC5nZXRGZWF0dXJlQnlJZChpZCk7XG4gICAgaWYgKGZlYXQpIHtcbiAgICAgIHRoaXMubWFwLm9sXG4gICAgICAgIC5nZXRWaWV3KClcbiAgICAgICAgLnNldENlbnRlcigoZmVhdC5nZXRHZW9tZXRyeSgpIGFzIGFueSkuZ2V0Q29vcmRpbmF0ZXMoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyYWNrRmVhdHVyZShpZCwgZmVhdCkge1xuICAgIGlmIChmZWF0LmZlYXR1cmUuZ2V0SWQoKSA9PT0gaWQgJiYgdGhpcy52aXNpYmxlKSB7XG4gICAgICB0aGlzLmNlbnRlck1hcE9uRmVhdHVyZShpZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRpc2FibGVUcmFja0ZlYXR1cmUoKSB7XG4gICAgdW5CeUtleSh0aGlzLnRyYWNrRmVhdHVyZUxpc3RlbmVySWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBsb2FkZXIgZm9yIGEgV0ZTIGRhdGFzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqIEBwYXJhbSB2ZWN0b3JTb3VyY2UgdGhlIHZlY3RvciBzb3VyY2UgdG8gYmUgY3JlYXRlZFxuICAgKiBAcGFyYW0gb3B0aW9ucyBvbE9wdGlvbnMgZnJvbSBzb3VyY2VcbiAgICogQHBhcmFtIGludGVyY2VwdG9yIHRoZSBpbnRlcmNlcHRvciBvZiB0aGUgZGF0YVxuICAgKiBAcGFyYW0gZXh0ZW50IHRoZSBleHRlbnQgb2YgdGhlIHJlcXVlc3RlZCBkYXRhXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIHRoZSBjdXJyZW50IHJlc29sdXRpb25cbiAgICogQHBhcmFtIHByb2ogdGhlIHByb2plY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICogQHBhcmFtIHN1Y2Nlc3Mgc3VjY2VzcyBjYWxsYmFja1xuICAgKiBAcGFyYW0gZmFpbHVyZSBmYWlsdXJlIGNhbGxiYWNrXG4gICAqIEBwYXJhbSByYW5kb21QYXJhbSByYW5kb20gcGFyYW1ldGVyIHRvIGVuc3VyZSBjYWNoZSBpcyBub3QgY2F1c2luZyBwcm9ibGVtcyBpbiByZXRyaWV2aW5nIG5ldyBkYXRhXG4gICAqL1xuICBwdWJsaWMgY3VzdG9tV0ZTTG9hZGVyKFxuICAgIHZlY3RvclNvdXJjZTogb2xTb3VyY2VWZWN0b3IsXG4gICAgb3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgaW50ZXJjZXB0b3I6IEF1dGhJbnRlcmNlcHRvcixcbiAgICBleHRlbnQ6IEV4dGVudCxcbiAgICByZXNvbHV0aW9uOiBudW1iZXIsXG4gICAgcHJvajogb2xQcm9qZWN0aW9uLFxuICAgIHN1Y2Nlc3M6IChmZWF0dXJlczogb2xGZWF0dXJlW10pID0+IHZvaWQsXG4gICAgZmFpbHVyZTogKCkgPT4gdm9pZCxcbiAgICByYW5kb21QYXJhbT86IGJvb2xlYW5cbiAgKSB7XG4gICAge1xuICAgICAgY29uc3QgcGFyYW1zV0ZTID0gb3B0aW9ucy5wYXJhbXNXRlM7XG4gICAgICBjb25zdCB3ZnNQcm9qID0gcGFyYW1zV0ZTLnNyc05hbWVcbiAgICAgICAgPyBuZXcgb2xQcm9qZWN0aW9uKHsgY29kZTogcGFyYW1zV0ZTLnNyc05hbWUgfSlcbiAgICAgICAgOiBwcm9qO1xuICAgICAgY29uc3QgY3VycmVudEV4dGVudCA9IG9scHJvai50cmFuc2Zvcm1FeHRlbnQoZXh0ZW50LCBwcm9qLCB3ZnNQcm9qKTtcbiAgICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSAob3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLm9nY0ZpbHRlcnM7XG5cbiAgICAgIGlmIChcbiAgICAgICAgKHRoaXMucHJldmlvdXNMb2FkRXh0ZW50ICYmXG4gICAgICAgICAgdGhpcy5wcmV2aW91c0xvYWRFeHRlbnQgIT09IGN1cnJlbnRFeHRlbnQpIHx8XG4gICAgICAgICh0aGlzLnByZXZpb3VzTG9hZFJlc29sdXRpb24gJiZcbiAgICAgICAgICB0aGlzLnByZXZpb3VzTG9hZFJlc29sdXRpb24gIT09IHJlc29sdXRpb24pIHx8XG4gICAgICAgICh0aGlzLnByZXZpb3VzT2djRmlsdGVycyAmJiB0aGlzLnByZXZpb3VzT2djRmlsdGVycyAhPT0gb2djRmlsdGVycylcbiAgICAgICkge1xuICAgICAgICB2ZWN0b3JTb3VyY2UucmVtb3ZlTG9hZGVkRXh0ZW50KHRoaXMucHJldmlvdXNMb2FkRXh0ZW50KTtcbiAgICAgICAgZm9yIChjb25zdCB4aHIgb2YgdGhpcy54aHJBY2N1bXVsYXRvcikge1xuICAgICAgICAgIHhoci5hYm9ydCgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJldmlvdXNMb2FkRXh0ZW50ID0gY3VycmVudEV4dGVudDtcbiAgICAgIHRoaXMucHJldmlvdXNMb2FkUmVzb2x1dGlvbiA9IHJlc29sdXRpb247XG4gICAgICB0aGlzLnByZXZpb3VzT2djRmlsdGVycyA9IG9nY0ZpbHRlcnM7XG5cbiAgICAgIHBhcmFtc1dGUy5zcnNOYW1lID0gcGFyYW1zV0ZTLnNyc05hbWUgfHwgcHJvai5nZXRDb2RlKCk7XG4gICAgICBjb25zdCB1cmwgPSBidWlsZFVybChcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgY3VycmVudEV4dGVudCxcbiAgICAgICAgd2ZzUHJvaixcbiAgICAgICAgb2djRmlsdGVycyxcbiAgICAgICAgcmFuZG9tUGFyYW1cbiAgICAgICk7XG4gICAgICBsZXQgc3RhcnRJbmRleCA9IDA7XG4gICAgICBpZiAoXG4gICAgICAgIHBhcmFtc1dGUy52ZXJzaW9uID09PSAnMi4wLjAnICYmXG4gICAgICAgIHBhcmFtc1dGUy5tYXhGZWF0dXJlcyA+IGRlZmF1bHRNYXhGZWF0dXJlc1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IG5iT2ZGZWF0dXJlID0gMTAwMDtcbiAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBwYXJhbXNXRlMubWF4RmVhdHVyZXMpIHtcbiAgICAgICAgICBsZXQgYWx0ZXJlZFVybCA9IHVybC5yZXBsYWNlKFxuICAgICAgICAgICAgJ2NvdW50PScgKyBwYXJhbXNXRlMubWF4RmVhdHVyZXMsXG4gICAgICAgICAgICAnY291bnQ9JyArIG5iT2ZGZWF0dXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhbHRlcmVkVXJsID0gYWx0ZXJlZFVybC5yZXBsYWNlKCdzdGFydEluZGV4PTAnLCAnMCcpO1xuICAgICAgICAgIGFsdGVyZWRVcmwgKz0gJyZzdGFydEluZGV4PScgKyBzdGFydEluZGV4O1xuICAgICAgICAgIGFsdGVyZWRVcmwucmVwbGFjZSgvJiYvZywgJyYnKTtcbiAgICAgICAgICB0aGlzLmdldEZlYXR1cmVzKFxuICAgICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgICAgaW50ZXJjZXB0b3IsXG4gICAgICAgICAgICBjdXJyZW50RXh0ZW50LFxuICAgICAgICAgICAgd2ZzUHJvaixcbiAgICAgICAgICAgIHByb2osXG4gICAgICAgICAgICBhbHRlcmVkVXJsLFxuICAgICAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgICApO1xuICAgICAgICAgIHN0YXJ0SW5kZXggKz0gbmJPZkZlYXR1cmU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ2V0RmVhdHVyZXMoXG4gICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgIGludGVyY2VwdG9yLFxuICAgICAgICAgIGN1cnJlbnRFeHRlbnQsXG4gICAgICAgICAgd2ZzUHJvaixcbiAgICAgICAgICBwcm9qLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICBzdWNjZXNzLFxuICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3VzdG9tIGxvYWRlciB0byBnZXQgZmVhdHVyZSBmcm9tIGEgV0ZTIGRhdGFzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqIEBwYXJhbSB2ZWN0b3JTb3VyY2UgdGhlIHZlY3RvciBzb3VyY2UgdG8gYmUgY3JlYXRlZFxuICAgKiBAcGFyYW0gaW50ZXJjZXB0b3IgdGhlIGludGVyY2VwdG9yIG9mIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBleHRlbnQgdGhlIGV4dGVudCBvZiB0aGUgcmVxdWVzdGVkIGRhdGFcbiAgICogQHBhcmFtIGRhdGFQcm9qZWN0aW9uIHRoZSBwcm9qZWN0aW9uIG9mIHRoZSByZXRyaWV2ZWQgZGF0YVxuICAgKiBAcGFyYW0gZmVhdHVyZVByb2plY3Rpb24gdGhlIHByb2plY3Rpb24gb2YgdGhlIGNyZWF0ZWQgZmVhdHVyZXNcbiAgICogQHBhcmFtIHVybCB0aGUgdXJsIHN0cmluZyB0byByZXRyaWV2ZSB0aGUgZGF0YVxuICAgKiBAcGFyYW0gc3VjY2VzcyBzdWNjZXNzIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBmYWlsdXJlIGZhaWx1cmUgY2FsbGJhY2tcbiAgICovXG4gIHByaXZhdGUgZ2V0RmVhdHVyZXMoXG4gICAgdmVjdG9yU291cmNlOiBvbFNvdXJjZVZlY3RvcixcbiAgICBpbnRlcmNlcHRvcjogQXV0aEludGVyY2VwdG9yLFxuICAgIGV4dGVudDogRXh0ZW50LFxuICAgIGRhdGFQcm9qZWN0aW9uOiBvbFByb2plY3Rpb24sXG4gICAgZmVhdHVyZVByb2plY3Rpb246IG9sUHJvamVjdGlvbixcbiAgICB1cmw6IHN0cmluZyxcbiAgICBzdWNjZXNzOiAoZmVhdHVyZXM6IG9sRmVhdHVyZVtdKSA9PiB2b2lkLFxuICAgIGZhaWx1cmU6ICgpID0+IHZvaWRcbiAgKSB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgY29uc3QgYWx0ZXJlZFVybFdpdGhLZXlBdXRoID0gaW50ZXJjZXB0b3IuYWx0ZXJVcmxXaXRoS2V5QXV0aCh1cmwpO1xuICAgIGxldCBtb2RpZmllZFVybCA9IHVybDtcbiAgICBpZiAoYWx0ZXJlZFVybFdpdGhLZXlBdXRoKSB7XG4gICAgICBtb2RpZmllZFVybCA9IGFsdGVyZWRVcmxXaXRoS2V5QXV0aDtcbiAgICB9XG4gICAgeGhyLm9wZW4oJ0dFVCcsIG1vZGlmaWVkVXJsKTtcbiAgICBpZiAoaW50ZXJjZXB0b3IpIHtcbiAgICAgIGludGVyY2VwdG9yLmludGVyY2VwdFhocih4aHIsIG1vZGlmaWVkVXJsKTtcbiAgICB9XG4gICAgY29uc3Qgb25FcnJvciA9ICgpID0+IHtcbiAgICAgIHZlY3RvclNvdXJjZS5yZW1vdmVMb2FkZWRFeHRlbnQoZXh0ZW50KTtcbiAgICAgIGZhaWx1cmUoKTtcbiAgICB9O1xuICAgIHhoci5vbmVycm9yID0gb25FcnJvcjtcbiAgICB4aHIub25sb2FkID0gKCkgPT4ge1xuICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCAmJiB4aHIucmVzcG9uc2VUZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSB2ZWN0b3JTb3VyY2VcbiAgICAgICAgICAuZ2V0Rm9ybWF0KClcbiAgICAgICAgICAucmVhZEZlYXR1cmVzKHhoci5yZXNwb25zZVRleHQsIHtcbiAgICAgICAgICAgIGRhdGFQcm9qZWN0aW9uLFxuICAgICAgICAgICAgZmVhdHVyZVByb2plY3Rpb25cbiAgICAgICAgICB9KSBhcyBvbEZlYXR1cmVbXTtcbiAgICAgICAgaWYgKGZlYXR1cmVzKSB7XG4gICAgICAgICAgdmVjdG9yU291cmNlLmFkZEZlYXR1cmVzKGZlYXR1cmVzKTtcbiAgICAgICAgICBzdWNjZXNzKGZlYXR1cmVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdWNjZXNzKFtdKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25FcnJvcigpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy54aHJBY2N1bXVsYXRvci5wdXNoKHhocik7XG4gICAgeGhyLnNlbmQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gbG9hZGVyIGZvciB2ZWN0b3IgbGF5ZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gdmVjdG9yU291cmNlIHRoZSB2ZWN0b3Igc291cmNlIHRvIGJlIGNyZWF0ZWRcbiAgICogQHBhcmFtIHVybCB0aGUgdXJsIHN0cmluZyBvciBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgZGF0YVxuICAgKiBAcGFyYW0gaW50ZXJjZXB0b3IgdGhlIGludGVyY2VwdG9yIG9mIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBleHRlbnQgdGhlIGV4dGVudCBvZiB0aGUgcmVxdWVzdGVkIGRhdGFcbiAgICogQHBhcmFtIHJlc29sdXRpb24gdGhlIGN1cnJlbnQgcmVzb2x1dGlvblxuICAgKiBAcGFyYW0gcHJvamVjdGlvbiB0aGUgcHJvamVjdGlvbiB0byByZXRyaWV2ZSB0aGUgZGF0YVxuICAgKi9cbiAgcHJpdmF0ZSBjdXN0b21Mb2FkZXIoXG4gICAgdmVjdG9yU291cmNlOiBvbFNvdXJjZVZlY3RvcixcbiAgICB1cmw6IHN0cmluZyxcbiAgICBpbnRlcmNlcHRvcjogQXV0aEludGVyY2VwdG9yLFxuICAgIGV4dGVudDogRXh0ZW50LFxuICAgIHJlc29sdXRpb246IG51bWJlcixcbiAgICBwcm9qZWN0aW9uOiBvbFByb2plY3Rpb24sXG4gICAgc3VjY2VzczogKGZlYXR1cmVzOiBvbEZlYXR1cmVbXSkgPT4gdm9pZCxcbiAgICBmYWlsdXJlOiAoKSA9PiB2b2lkXG4gICkge1xuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIGxldCBtb2RpZmllZFVybCA9IHVybDtcbiAgICBpZiAodHlwZW9mIHVybCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgYWx0ZXJlZFVybFdpdGhLZXlBdXRoID0gaW50ZXJjZXB0b3IuYWx0ZXJVcmxXaXRoS2V5QXV0aCh1cmwpO1xuICAgICAgaWYgKGFsdGVyZWRVcmxXaXRoS2V5QXV0aCkge1xuICAgICAgICBtb2RpZmllZFVybCA9IGFsdGVyZWRVcmxXaXRoS2V5QXV0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZW9OZXR3b3JrU2VydmljZSAmJiB0eXBlb2YgdXJsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBmb3JtYXQgPSB2ZWN0b3JTb3VyY2UuZ2V0Rm9ybWF0KCk7XG4gICAgICBjb25zdCB0eXBlID0gZm9ybWF0LmdldFR5cGUoKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2VUeXBlID0gdHlwZTtcbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHZlY3RvclNvdXJjZS5yZW1vdmVMb2FkZWRFeHRlbnQoZXh0ZW50KTtcbiAgICAgICAgZmFpbHVyZSgpO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb3B0aW9uczogU2ltcGxlR2V0T3B0aW9ucyA9IHsgcmVzcG9uc2VUeXBlIH07XG4gICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlLmdlb0RCU2VydmljZVxuICAgICAgICAuZ2V0KHVybClcbiAgICAgICAgLnBpcGUoZGVsYXkoNzUwKSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY29uY2F0TWFwKChyKSA9PlxuICAgICAgICAgICAgclxuICAgICAgICAgICAgICA/IG9mKHIpXG4gICAgICAgICAgICAgIDogdGhpcy5nZW9OZXR3b3JrU2VydmljZS5nZXQobW9kaWZpZWRVcmwgYXMgc3RyaW5nLCBvcHRpb25zKS5waXBlKFxuICAgICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlcztcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChjb250ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBmb3JtYXQuZ2V0VHlwZSgpO1xuICAgICAgICAgICAgbGV0IHNvdXJjZTtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnanNvbicgfHwgdHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XG4gICAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgICAgICAgICAgc291cmNlID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veG1sJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FycmF5YnVmZmVyJykge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IGZvcm1hdC5yZWFkRmVhdHVyZXMoc291cmNlLCB7XG4gICAgICAgICAgICAgICAgZXh0ZW50LFxuICAgICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uXG4gICAgICAgICAgICAgIH0pIGFzIE9sRmVhdHVyZVtdO1xuICAgICAgICAgICAgICB2ZWN0b3JTb3VyY2UuYWRkRmVhdHVyZXMoZmVhdHVyZXMpO1xuICAgICAgICAgICAgICBzdWNjZXNzKGZlYXR1cmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB4aHIub3BlbignR0VUJywgbW9kaWZpZWRVcmwgYXMgc3RyaW5nKTtcbiAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgIGlmIChmb3JtYXQuZ2V0VHlwZSgpID09PSAnYXJyYXlidWZmZXInKSB7XG4gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInO1xuICAgICAgfVxuICAgICAgaWYgKGludGVyY2VwdG9yKSB7XG4gICAgICAgIGludGVyY2VwdG9yLmludGVyY2VwdFhocih4aHIsIG1vZGlmaWVkVXJsIGFzIHN0cmluZyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHZlY3RvclNvdXJjZS5yZW1vdmVMb2FkZWRFeHRlbnQoZXh0ZW50KTtcbiAgICAgICAgZmFpbHVyZSgpO1xuICAgICAgfTtcbiAgICAgIHhoci5vbmVycm9yID0gb25FcnJvcjtcbiAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIHN0YXR1cyB3aWxsIGJlIDAgZm9yIGZpbGU6Ly8gdXJsc1xuICAgICAgICBpZiAoIXhoci5zdGF0dXMgfHwgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApKSB7XG4gICAgICAgICAgY29uc3QgdHlwZSA9IGZvcm1hdC5nZXRUeXBlKCk7XG4gICAgICAgICAgbGV0IHNvdXJjZTtcbiAgICAgICAgICBpZiAodHlwZSA9PT0gJ2pzb24nIHx8IHR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICAgICAgc291cmNlID0geGhyLnJlc3BvbnNlVGV4dDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB4aHIucmVzcG9uc2VYTUw7XG4gICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIHhoci5yZXNwb25zZVRleHQsXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IHhoci5yZXNwb25zZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBmb3JtYXQucmVhZEZlYXR1cmVzKHNvdXJjZSwge1xuICAgICAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uXG4gICAgICAgICAgICB9KSBhcyBPbEZlYXR1cmVbXTtcbiAgICAgICAgICAgIHZlY3RvclNvdXJjZS5hZGRGZWF0dXJlcyhmZWF0dXJlcyk7XG4gICAgICAgICAgICBzdWNjZXNzKGZlYXR1cmVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb25FcnJvcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIuc2VuZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gbG9hZGVyIGZvciB2ZWN0b3IgbGF5ZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gdmVjdG9yU291cmNlIHRoZSB2ZWN0b3Igc291cmNlIHRvIGJlIGNyZWF0ZWRcbiAgICogQHBhcmFtIGxheWVySUQgdGhlIHVybCBzdHJpbmcgb3IgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICogQHBhcmFtIGludGVyY2VwdG9yIHRoZSBpbnRlcmNlcHRvciBvZiB0aGUgZGF0YVxuICAgKiBAcGFyYW0gZXh0ZW50IHRoZSBleHRlbnQgb2YgdGhlIHJlcXVlc3RlZCBkYXRhXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIHRoZSBjdXJyZW50IHJlc29sdXRpb25cbiAgICogQHBhcmFtIHByb2plY3Rpb24gdGhlIHByb2plY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICovXG4gIHByaXZhdGUgY3VzdG9tSURCTG9hZGVyKFxuICAgIHZlY3RvclNvdXJjZSxcbiAgICBsYXllcklELFxuICAgIGV4dGVudCxcbiAgICBwcm9qZWN0aW9uLFxuICAgIHN1Y2Nlc3MsXG4gICAgZmFpbHVyZVxuICApIHtcbiAgICBpZiAodGhpcy5nZW9OZXR3b3JrU2VydmljZSkge1xuICAgICAgY29uc3Qgb25FcnJvciA9ICgpID0+IHtcbiAgICAgICAgdmVjdG9yU291cmNlLnJlbW92ZUxvYWRlZEV4dGVudChleHRlbnQpO1xuICAgICAgICBmYWlsdXJlKCk7XG4gICAgICB9O1xuICAgICAgdGhpcy5nZW9OZXR3b3JrU2VydmljZS5nZW9EQlNlcnZpY2UuZ2V0KGxheWVySUQpLnN1YnNjcmliZSgoY29udGVudCkgPT4ge1xuICAgICAgICBpZiAoY29udGVudCkge1xuICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgICAgICBjb25zdCB0eXBlID0gZm9ybWF0LmdldFR5cGUoKTtcbiAgICAgICAgICBsZXQgc291cmNlO1xuICAgICAgICAgIGlmICh0eXBlID09PSAnanNvbicgfHwgdHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSBjb250ZW50O1xuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3htbCcpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVzID0gZm9ybWF0LnJlYWRGZWF0dXJlcyhzb3VyY2UsIHtcbiAgICAgICAgICAgICAgZXh0ZW50LFxuICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2ZWN0b3JTb3VyY2UuYWRkRmVhdHVyZXMoZmVhdHVyZXMsIGZvcm1hdC5yZWFkUHJvamVjdGlvbihzb3VyY2UpKTtcbiAgICAgICAgICAgIHN1Y2Nlc3MoZmVhdHVyZXMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvbkVycm9yKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
573
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBSzlGLE9BQU8sRUFDTCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ25CLE1BQU0sc0RBQXNELENBQUM7QUFNOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFROUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0NBQStDLENB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QUNuQixDQUFDO3lCQUFNLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO3dCQUMxQixNQUFNLEdBQUcsT0FBTyxDQUFDO3dCQUNqQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ1osTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsZUFBZSxDQUN0QyxPQUFPLEVBQ1AsaUJBQWlCLENBQ2xCLENBQUM7d0JBQ0osQ0FBQztvQkFDSCxDQUFDO3lCQUFNLElBQUksSUFBSSxLQUFLLGFBQWEsRUFBRSxDQUFDO3dCQUNsQyxNQUFNLEdBQUcsT0FBTyxDQUFDO29CQUNuQixDQUFDO29CQUNELElBQUksTUFBTSxFQUFFLENBQUM7d0JBQ1gsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7NEJBQzNDLE1BQU07NEJBQ04saUJBQWlCLEVBQUUsVUFBVTt5QkFDOUIsQ0FBQyxDQUFDO3dCQUNILFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzt3QkFDbEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNwQixDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxFQUFFLENBQUM7b0JBQ1osQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEludGVyY2VwdG9yIH0gZnJvbSAnQGlnbzIvYXV0aCc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVzc2FnZSc7XG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBhc0FycmF5IGFzIENvbG9yQXNBcnJheSB9IGZyb20gJ29sL2NvbG9yJztcbmltcG9ydCB7IGVhc2VPdXQgfSBmcm9tICdvbC9lYXNpbmcnO1xuaW1wb3J0IEJhc2VFdmVudCBmcm9tICdvbC9ldmVudHMvRXZlbnQnO1xuaW1wb3J0IHsgRXh0ZW50IH0gZnJvbSAnb2wvZXh0ZW50JztcbmltcG9ydCB7IEZlYXR1cmVMb2FkZXIgfSBmcm9tICdvbC9mZWF0dXJlbG9hZGVyJztcbmltcG9ydCAqIGFzIG9sZm9ybWF0IGZyb20gJ29sL2Zvcm1hdCc7XG5pbXBvcnQgb2xMYXllclZlY3RvciBmcm9tICdvbC9sYXllci9WZWN0b3InO1xuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IG9sUHJvamVjdGlvbiBmcm9tICdvbC9wcm9qL1Byb2plY3Rpb24nO1xuaW1wb3J0IHsgZ2V0VmVjdG9yQ29udGV4dCB9IGZyb20gJ29sL3JlbmRlcic7XG5pbXBvcnQgb2xTb3VyY2VWZWN0b3IgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgb2YsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgY29uY2F0TWFwLFxuICBkZWJvdW5jZVRpbWUsXG4gIGRlbGF5LFxuICBmaXJzdFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFyY0dJU1Jlc3REYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYXJjZ2lzcmVzdC1kYXRhc291cmNlJztcbmltcG9ydCB7IENsdXN0ZXJEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvY2x1c3Rlci1kYXRhc291cmNlJztcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlJztcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2ViU29ja2V0RGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dlYnNvY2tldC1kYXRhc291cmNlJztcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZnMtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dmcy1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBidWlsZFVybCxcbiAgZGVmYXVsdE1heEZlYXR1cmVzXG59IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy13ZnMudXRpbHMnO1xuaW1wb3J0IHtcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLFxuICBPZ2NGaWx0ZXJzT3B0aW9uc1xufSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHsgSWdvTWFwLCBNYXBFeHRlbnQgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkJztcbmltcG9ydCB7IGdldFJlc29sdXRpb25Gcm9tU2NhbGUgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XG5pbXBvcnQgeyBJbnNlcnRTb3VyY2VJbnNlcnREQkVudW0gfSBmcm9tICcuLi8uLi8uLi9vZmZsaW5lL2dlb0RCL2dlb0RCLmVudW1zJztcbmltcG9ydCB7IEdlb0RCU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL29mZmxpbmUvZ2VvREIvZ2VvREIuc2VydmljZSc7XG5pbXBvcnQgeyBMYXllckRCRGF0YSB9IGZyb20gJy4uLy4uLy4uL29mZmxpbmUvbGF5ZXJEQi9sYXllckRCLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMYXllckRCU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL29mZmxpbmUvbGF5ZXJEQi9sYXllckRCLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgR2VvTmV0d29ya1NlcnZpY2UsXG4gIFNpbXBsZUdldE9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9zaGFyZWQvZ2VvLW5ldHdvcmsuc2VydmljZSc7XG5pbXBvcnQgeyBvbFN0eWxlVG9CYXNpY0lnb1N0eWxlIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGUvc2hhcmVkL3ZlY3Rvci9jb252ZXJzaW9uLnV0aWxzJztcbmltcG9ydCB7IFZlY3RvcldhdGNoZXIgfSBmcm9tICcuLi8uLi91dGlscy92ZWN0b3Itd2F0Y2hlcic7XG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4vbGF5ZXInO1xuaW1wb3J0IHR5cGUgeyBWZWN0b3JMYXllck9wdGlvbnMgfSBmcm9tICcuL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgVmVjdG9yTGF5ZXIgZXh0ZW5kcyBMYXllciB7XG4gIHByaXZhdGUgcHJldmlvdXNMb2FkRXh0ZW50OiBFeHRlbnQ7XG4gIHByaXZhdGUgcHJldmlvdXNMb2FkUmVzb2x1dGlvbjogbnVtYmVyO1xuICBwcml2YXRlIHByZXZpb3VzT2djRmlsdGVyczogT2djRmlsdGVyc09wdGlvbnM7XG4gIHByaXZhdGUgeGhyQWNjdW11bGF0b3I6IFhNTEh0dHBSZXF1ZXN0W10gPSBbXTtcbiAgcHVibGljIGRlY2xhcmUgZGF0YVNvdXJjZTpcbiAgICB8IEZlYXR1cmVEYXRhU291cmNlXG4gICAgfCBXRlNEYXRhU291cmNlXG4gICAgfCBBcmNHSVNSZXN0RGF0YVNvdXJjZVxuICAgIHwgV2ViU29ja2V0RGF0YVNvdXJjZVxuICAgIHwgQ2x1c3RlckRhdGFTb3VyY2U7XG4gIHB1YmxpYyBkZWNsYXJlIG9wdGlvbnM6IFZlY3RvckxheWVyT3B0aW9ucztcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sTGF5ZXJWZWN0b3I8b2xTb3VyY2VWZWN0b3I+O1xuICBwcml2YXRlIHdhdGNoZXI6IFZlY3RvcldhdGNoZXI7XG4gIHByaXZhdGUgdHJhY2tGZWF0dXJlTGlzdGVuZXJJZDtcblxuICBnZXQgYnJvd3NhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYnJvd3NhYmxlICE9PSBmYWxzZTtcbiAgfVxuXG4gIGdldCBleHBvcnRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZXhwb3J0YWJsZSAhPT0gZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBvcHRpb25zOiBWZWN0b3JMYXllck9wdGlvbnMsXG4gICAgcHVibGljIG1lc3NhZ2VTZXJ2aWNlPzogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHVibGljIGF1dGhJbnRlcmNlcHRvcj86IEF1dGhJbnRlcmNlcHRvcixcbiAgICBwcml2YXRlIGdlb05ldHdvcmtTZXJ2aWNlPzogR2VvTmV0d29ya1NlcnZpY2UsXG4gICAgcHVibGljIGdlb0RCU2VydmljZT86IEdlb0RCU2VydmljZSxcbiAgICBwdWJsaWMgbGF5ZXJEQlNlcnZpY2U/OiBMYXllckRCU2VydmljZVxuICApIHtcbiAgICBzdXBlcihvcHRpb25zLCBtZXNzYWdlU2VydmljZSwgYXV0aEludGVyY2VwdG9yKTtcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgVmVjdG9yV2F0Y2hlcih0aGlzKTtcbiAgICB0aGlzLnN0YXR1cyQgPSB0aGlzLndhdGNoZXIuc3RhdHVzJDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVPbExheWVyKCk6IG9sTGF5ZXJWZWN0b3I8b2xTb3VyY2VWZWN0b3I+IHtcbiAgICBjb25zdCBpbml0aWFsT3BhY2l0eVZhbHVlID0gdGhpcy5vcHRpb25zLm9wYWNpdHkgfHwgMTtcbiAgICBjb25zdCBpbml0aWFsVmlzaWJsZVZhbHVlID0gdGhpcy5vcHRpb25zLnZpc2libGUgIT09IGZhbHNlO1xuICAgIGNvbnN0IGluaXRpYWxNaW5SZXNWYWx1ZSA9XG4gICAgICB0aGlzLm9wdGlvbnMubWluUmVzb2x1dGlvbiB8fFxuICAgICAgZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShOdW1iZXIodGhpcy5vcHRpb25zLm1pblNjYWxlRGVub20pKTtcbiAgICBjb25zdCBpbml0aWFsTWF4UmVzVmFsdWUgPVxuICAgICAgdGhpcy5vcHRpb25zLm1heFJlc29sdXRpb24gfHxcbiAgICAgIGdldFJlc29sdXRpb25Gcm9tU2NhbGUoTnVtYmVyKHRoaXMub3B0aW9ucy5tYXhTY2FsZURlbm9tKSk7XG4gICAgY29uc3Qgc28gPSB0aGlzLm9wdGlvbnMuc291cmNlT3B0aW9ucyBhcyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSBpbnN0YW5jZW9mIEZlYXR1cmVEYXRhU291cmNlKSB7XG4gICAgICBpZiAoc28/LnByZWxvYWQ/LmJ5cGFzc1Jlc29sdXRpb24gfHwgc28/LnByZWxvYWQ/LmJ5cGFzc1Zpc2libGUpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm9wYWNpdHkgPSAwO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc28ucHJlbG9hZC5ieXBhc3NSZXNvbHV0aW9uICYmXG4gICAgICAgICAgKHRoaXMub3B0aW9ucy5taW5SZXNvbHV0aW9uIHx8IHRoaXMub3B0aW9ucy5tYXhSZXNvbHV0aW9uKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMubWluUmVzb2x1dGlvbiA9IDA7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLm1heFJlc29sdXRpb24gPSBJbmZpbml0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc28ucHJlbG9hZC5ieXBhc3NWaXNpYmxlICYmICFpbml0aWFsVmlzaWJsZVZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLnZpc2libGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb2xPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7XG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5zb3VyY2Uub2wgYXMgb2xTb3VyY2VWZWN0b3IsXG4gICAgICBzb3VyY2VPcHRpb25zOiB0aGlzLm9wdGlvbnMuc291cmNlT3B0aW9ucyB8fCB0aGlzLm9wdGlvbnMuc291cmNlLm9wdGlvbnNcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub24oXG4gICAgICAgICdhZGRmZWF0dXJlJyxcbiAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICB0aGlzLmZsYXNoKGUuZmVhdHVyZSk7XG4gICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9ucy5pZGJJbmZvPy5zdG9yZVRvSWRiICYmIHRoaXMuZ2VvREJTZXJ2aWNlKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8uZmlyc3RMb2FkKSB7XG4gICAgICAgIHRoaXMubWFpbnRhaW5GZWF0dXJlc0luSWRiKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub25jZSgnZmVhdHVyZXNsb2FkZW5kJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub24oJ2FkZGZlYXR1cmUnLCAoKSA9PiB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uKCdjaGFuZ2VmZWF0dXJlJywgKCkgPT5cbiAgICAgICAgICB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5vbC5vbignY2xlYXInLCAoKSA9PiB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uKCdyZW1vdmVmZWF0dXJlJywgKCkgPT5cbiAgICAgICAgICB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgaW5zdGFuY2VvZiBGZWF0dXJlRGF0YVNvdXJjZSAmJlxuICAgICAgKHNvPy5wcmVsb2FkPy5ieXBhc3NSZXNvbHV0aW9uIHx8IHNvPy5wcmVsb2FkPy5ieXBhc3NWaXNpYmxlKVxuICAgICkge1xuICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uY2UoJ2ZlYXR1cmVzbG9hZGVuZCcsICgpID0+IHtcbiAgICAgICAgaWYgKGluaXRpYWxPcGFjaXR5VmFsdWUpIHtcbiAgICAgICAgICB0aGlzLm9wYWNpdHkgPSBpbml0aWFsT3BhY2l0eVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzby5wcmVsb2FkLmJ5cGFzc1Jlc29sdXRpb24pIHtcbiAgICAgICAgICB0aGlzLm1pblJlc29sdXRpb24gPSBpbml0aWFsTWluUmVzVmFsdWU7XG4gICAgICAgICAgdGhpcy5tYXhSZXNvbHV0aW9uID0gaW5pdGlhbE1heFJlc1ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzby5wcmVsb2FkLmJ5cGFzc1Zpc2libGUpIHtcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBpbml0aWFsVmlzaWJsZVZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnRyYWNrRmVhdHVyZSkge1xuICAgICAgdGhpcy5lbmFibGVUcmFja0ZlYXR1cmUodGhpcy5vcHRpb25zLnRyYWNrRmVhdHVyZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdmVjdG9yID0gbmV3IG9sTGF5ZXJWZWN0b3Iob2xPcHRpb25zKTtcbiAgICBjb25zdCB2ZWN0b3JTb3VyY2UgPSB2ZWN0b3IuZ2V0U291cmNlKCkgYXMgb2xTb3VyY2VWZWN0b3I7XG4gICAgY29uc3QgdXJsID0gdmVjdG9yU291cmNlLmdldFVybCgpO1xuICAgIGlmICh0eXBlb2YgdXJsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdmVjdG9yO1xuICAgIH1cbiAgICBpZiAodXJsIHx8IG9sT3B0aW9ucy5zb3VyY2VPcHRpb25zPy50eXBlID09PSAnd2ZzJykge1xuICAgICAgbGV0IGxvYWRlcjogRmVhdHVyZUxvYWRlcjtcbiAgICAgIGNvbnN0IHdmc09wdGlvbnMgPSBvbE9wdGlvbnMuc291cmNlT3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9ucztcbiAgICAgIGlmIChcbiAgICAgICAgd2ZzT3B0aW9ucz8udHlwZSA9PT0gJ3dmcycgJiZcbiAgICAgICAgKHdmc09wdGlvbnMucGFyYW1zIHx8IHdmc09wdGlvbnMucGFyYW1zV0ZTKVxuICAgICAgKSB7XG4gICAgICAgIGxvYWRlciA9IChleHRlbnQsIHJlc29sdXRpb24sIHByb2osIHN1Y2Nlc3MsIGZhaWx1cmUpID0+IHtcbiAgICAgICAgICB0aGlzLmN1c3RvbVdGU0xvYWRlcihcbiAgICAgICAgICAgIHZlY3RvclNvdXJjZSxcbiAgICAgICAgICAgIHdmc09wdGlvbnMsXG4gICAgICAgICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvcixcbiAgICAgICAgICAgIGV4dGVudCxcbiAgICAgICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgICAgICBwcm9qLFxuICAgICAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9hZGVyID0gKGV4dGVudCwgcmVzb2x1dGlvbiwgcHJvaiwgc3VjY2VzcywgZmFpbHVyZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY3VzdG9tTG9hZGVyKFxuICAgICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3IsXG4gICAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgICByZXNvbHV0aW9uLFxuICAgICAgICAgICAgcHJvaixcbiAgICAgICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgICAgICBmYWlsdXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2FkZXIpIHtcbiAgICAgICAgdmVjdG9yU291cmNlLnNldExvYWRlcihsb2FkZXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8/LnN0b3JlVG9JZGIgJiYgdGhpcy5nZW9EQlNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGlkYkxvYWRlciA9IChleHRlbnQsIHJlc29sdXRpb24sIHByb2osIHN1Y2Nlc3MsIGZhaWx1cmUpID0+IHtcbiAgICAgICAgdGhpcy5jdXN0b21JREJMb2FkZXIoXG4gICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgIG9sT3B0aW9ucy5pZCxcbiAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgcHJvaixcbiAgICAgICAgICBzdWNjZXNzLFxuICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBpZiAoaWRiTG9hZGVyKSB7XG4gICAgICAgIHZlY3RvclNvdXJjZS5zZXRMb2FkZXIoaWRiTG9hZGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8/LnN0b3JlVG9JZGIgJiYgdGhpcy5nZW9EQlNlcnZpY2UpIHtcbiAgICAgIHZlY3Rvci5vbmNlKCdzb3VyY2VyZWFkeScsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pZGJJbmZvLmZpcnN0TG9hZCkge1xuICAgICAgICAgIHRoaXMubWFpbnRhaW5PcHRpb25zSW5JZGIoKTtcbiAgICAgICAgfVxuICAgICAgICBmcm9tRXZlbnQ8QmFzZUV2ZW50Pih2ZWN0b3IsICdjaGFuZ2UnKVxuICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5tYWludGFpbk9wdGlvbnNJbklkYigpKTtcbiAgICAgICAgdmVjdG9yLm9uKCdjaGFuZ2U6ekluZGV4JywgKCkgPT4gdGhpcy5tYWludGFpbk9wdGlvbnNJbklkYigpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdmVjdG9yO1xuICB9XG5cbiAgcmVtb3ZlTGF5ZXJGcm9tSURCKCkge1xuICAgIGlmICh0aGlzLmdlb0RCU2VydmljZSAmJiB0aGlzLmxheWVyREJTZXJ2aWNlKSB7XG4gICAgICB6aXAoXG4gICAgICAgIHRoaXMuZ2VvREJTZXJ2aWNlLmRlbGV0ZUJ5S2V5KHRoaXMuaWQpLFxuICAgICAgICB0aGlzLmxheWVyREJTZXJ2aWNlLmRlbGV0ZUJ5S2V5KHRoaXMuaWQpXG4gICAgICApLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWFpbnRhaW5PcHRpb25zSW5JZGIoKSB7XG4gICAgdGhpcy5vcHRpb25zLmlnb1N0eWxlLmlnb1N0eWxlT2JqZWN0ID0gb2xTdHlsZVRvQmFzaWNJZ29TdHlsZSh0aGlzLm9sKTtcbiAgICBjb25zdCBsYXllckRhdGE6IExheWVyREJEYXRhID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgIGxheWVySWQ6IHRoaXMuaWQsXG4gICAgICBkZXRhaWxlZENvbnRleHRVcmk6IHRoaXMub3B0aW9ucy5pZGJJbmZvLmNvbnRleHRVcmksXG4gICAgICBzb3VyY2VPcHRpb25zOiB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICB0eXBlOiAndmVjdG9yJyxcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgbGF5ZXJPcHRpb25zOiB7XG4gICAgICAgIHdvcmtzcGFjZTogdGhpcy5vcHRpb25zLndvcmtzcGFjZSxcbiAgICAgICAgekluZGV4OiB0aGlzLm9sID8gdGhpcy56SW5kZXggOiAxMDAwMDAwLFxuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgaXNJZ29JbnRlcm5hbExheWVyOiB0aGlzLmlzSWdvSW50ZXJuYWxMYXllcixcbiAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICAgIGlnb1N0eWxlOiB0aGlzLm9wdGlvbnMuaWdvU3R5bGUsXG4gICAgICAgIGlkYkluZm86IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucy5pZGJJbmZvLCB7IGZpcnN0TG9hZDogZmFsc2UgfSlcbiAgICAgIH0sXG4gICAgICBpbnNlcnRFdmVudDogYCR7dGhpcy50aXRsZX0tJHt0aGlzLmlkfS0ke25ldyBEYXRlKCl9YFxuICAgIH0pO1xuICAgIHRoaXMubGF5ZXJEQlNlcnZpY2UudXBkYXRlKGxheWVyRGF0YSk7XG4gIH1cblxuICBwcml2YXRlIG1haW50YWluRmVhdHVyZXNJbklkYigpIHtcbiAgICBjb25zdCBkc0ZlYXR1cmVzID0gdGhpcy5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVzKCk7XG4gICAgY29uc3QgZ2VvanNvbk9iamVjdCA9IEpTT04ucGFyc2UoXG4gICAgICBuZXcgb2xmb3JtYXQuR2VvSlNPTigpLndyaXRlRmVhdHVyZXMoZHNGZWF0dXJlcywge1xuICAgICAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLmRhdGFTb3VyY2Uub2wuZ2V0UHJvamVjdGlvbigpIHx8ICdFUFNHOjM4NTcnXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5nZW9EQlNlcnZpY2UudXBkYXRlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMuaWQsXG4gICAgICBnZW9qc29uT2JqZWN0LFxuICAgICAgSW5zZXJ0U291cmNlSW5zZXJ0REJFbnVtLlVzZXIsXG4gICAgICBgJHt0aGlzLnRpdGxlfS0ke3RoaXMuaWR9LSR7bmV3IERhdGUoKX1gXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmbGFzaChmZWF0dXJlKSB7XG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBsaXN0ZW5lcktleSA9IHRoaXMub2wub24oJ3Bvc3RyZW5kZXInLCBhbmltYXRlLmJpbmQodGhpcykpO1xuXG4gICAgZnVuY3Rpb24gYW5pbWF0ZShldmVudCkge1xuICAgICAgY29uc3QgdmVjdG9yQ29udGV4dCA9IGdldFZlY3RvckNvbnRleHQoZXZlbnQpO1xuICAgICAgY29uc3QgZnJhbWVTdGF0ZSA9IGV2ZW50LmZyYW1lU3RhdGU7XG4gICAgICBjb25zdCBmbGFzaEdlb20gPSBmZWF0dXJlLmdldEdlb21ldHJ5KCkuY2xvbmUoKTtcbiAgICAgIGNvbnN0IGVsYXBzZWQgPSBmcmFtZVN0YXRlLnRpbWUgLSBzdGFydDtcbiAgICAgIGNvbnN0IGVsYXBzZWRSYXRpbyA9IGVsYXBzZWQgLyB0aGlzLm9wdGlvbnMuYW5pbWF0aW9uLmR1cmF0aW9uO1xuICAgICAgY29uc3Qgb3BhY2l0eSA9IGVhc2VPdXQoMSAtIGVsYXBzZWRSYXRpbyk7XG4gICAgICBjb25zdCBuZXdDb2xvciA9IENvbG9yQXNBcnJheSh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uLmNvbG9yIHx8ICdyZWQnKTtcbiAgICAgIG5ld0NvbG9yWzNdID0gb3BhY2l0eTtcbiAgICAgIGxldCBzdHlsZSA9IHRoaXMub2xcbiAgICAgICAgLmdldFN0eWxlRnVuY3Rpb24oKVxuICAgICAgICAuY2FsbCh0aGlzLCBmZWF0dXJlKVxuICAgICAgICAuZmluZCgoc3R5bGUyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0eWxlMi5nZXRJbWFnZSgpO1xuICAgICAgICB9KTtcbiAgICAgIGlmICghc3R5bGUpIHtcbiAgICAgICAgc3R5bGUgPSB0aGlzLm9sLmdldFN0eWxlRnVuY3Rpb24oKS5jYWxsKHRoaXMsIGZlYXR1cmUpWzBdO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3R5bGVDbG9uZSA9IHN0eWxlLmNsb25lKCk7XG5cbiAgICAgIHN3aXRjaCAoZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSkge1xuICAgICAgICBjYXNlICdQb2ludCc6XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpICE9PSBudWxsICYmXG4gICAgICAgICAgICB0eXBlb2Ygc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldFJhZGl1cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcmFkaXVzID1cbiAgICAgICAgICAgICAgZWFzZU91dChlbGFwc2VkUmF0aW8pICogKHN0eWxlQ2xvbmUuZ2V0SW1hZ2UoKS5nZXRSYWRpdXMoKSAqIDMpO1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLnNldFJhZGl1cyhyYWRpdXMpO1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLnNldE9wYWNpdHkob3BhY2l0eSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0xpbmVTdHJpbmcnOlxuICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICBpZiAoc3R5bGVDbG9uZS5nZXRJbWFnZSgpKSB7XG4gICAgICAgICAgICBzdHlsZUNsb25lLmdldEltYWdlKCkuZ2V0U3Ryb2tlKCkuc2V0Q29sb3IobmV3Q29sb3IpO1xuICAgICAgICAgICAgc3R5bGVDbG9uZVxuICAgICAgICAgICAgICAuZ2V0SW1hZ2UoKVxuICAgICAgICAgICAgICAuZ2V0U3Ryb2tlKClcbiAgICAgICAgICAgICAgLnNldFdpZHRoKFxuICAgICAgICAgICAgICAgIGVhc2VPdXQoZWxhcHNlZFJhdGlvKSAqXG4gICAgICAgICAgICAgICAgICAoc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldFN0cm9rZSgpLmdldFdpZHRoKCkgKiAzKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3R5bGVDbG9uZS5nZXRTdHJva2UoKSkge1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRTdHJva2UoKS5zZXRDb2xvcihuZXdDb2xvcik7XG4gICAgICAgICAgICBzdHlsZUNsb25lXG4gICAgICAgICAgICAgIC5nZXRTdHJva2UoKVxuICAgICAgICAgICAgICAuc2V0V2lkdGgoXG4gICAgICAgICAgICAgICAgZWFzZU91dChlbGFwc2VkUmF0aW8pICogKHN0eWxlQ2xvbmUuZ2V0U3Ryb2tlKCkuZ2V0V2lkdGgoKSAqIDMpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgaWYgKHN0eWxlQ2xvbmUuZ2V0SW1hZ2UoKSkge1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldEZpbGwoKS5zZXRDb2xvcihuZXdDb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdHlsZUNsb25lLmdldEZpbGwoKSkge1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRGaWxsKCkuc2V0Q29sb3IobmV3Q29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgc3R5bGVDbG9uZS5zZXRUZXh0KCcnKTtcbiAgICAgIHZlY3RvckNvbnRleHQuc2V0U3R5bGUoc3R5bGVDbG9uZSk7XG4gICAgICB2ZWN0b3JDb250ZXh0LmRyYXdHZW9tZXRyeShmbGFzaEdlb20pO1xuXG4gICAgICBpZiAoZWxhcHNlZCA+IHRoaXMub3B0aW9ucy5hbmltYXRpb24uZHVyYXRpb24pIHtcbiAgICAgICAgdW5CeUtleShsaXN0ZW5lcktleSk7XG4gICAgICAgIC8vIHJlbW92ZSBsYXN0IGdlb21ldHJ5XG4gICAgICAgIC8vIHRoZXJlIGlzIGEgbGl0dGxlIGZsYXNoIGJlZm9yZSBmZWF0dXJlIGRpc2FwcGVhciwgYmV0dGVyIHNvbHV0aW9uID9cbiAgICAgICAgdGhpcy5tYXAub2wucmVuZGVyKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIHRlbGwgT3BlbkxheWVycyB0byBjb250aW51ZSBwb3N0Y29tcG9zZSBhbmltYXRpb25cbiAgICAgIHRoaXMubWFwLm9sLnJlbmRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXAobWFwOiBJZ29NYXAgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAobWFwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMud2F0Y2hlci51bnN1YnNjcmliZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndhdGNoZXIuc3Vic2NyaWJlKCgpID0+IHZvaWQgMSk7XG4gICAgfVxuICAgIHN1cGVyLnNldE1hcChtYXApO1xuICB9XG5cbiAgcHVibGljIHNldEV4dGVudChleHRlbnQ6IE1hcEV4dGVudCk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucy5leHRlbnQgPSBleHRlbnQ7XG4gIH1cblxuICBwdWJsaWMgb25VbndhdGNoKCkge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5vblVud2F0Y2goKTtcbiAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wQW5pbWF0aW9uKCkge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5vbC51bihcbiAgICAgICdhZGRmZWF0dXJlJyxcbiAgICAgIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGlmICh0aGlzLnZpc2libGUpIHtcbiAgICAgICAgICB0aGlzLmZsYXNoKGUuZmVhdHVyZSk7XG4gICAgICAgIH1cbiAgICAgIH0uYmluZCh0aGlzKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlVHJhY2tGZWF0dXJlKGlkOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLnRyYWNrRmVhdHVyZUxpc3RlbmVySWQgPSB0aGlzLmRhdGFTb3VyY2Uub2wub24oXG4gICAgICAnYWRkZmVhdHVyZScsXG4gICAgICB0aGlzLnRyYWNrRmVhdHVyZS5iaW5kKHRoaXMsIGlkKVxuICAgICk7XG4gIH1cbiAgcHVibGljIGNlbnRlck1hcE9uRmVhdHVyZShpZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgY29uc3QgZmVhdCA9IHRoaXMuZGF0YVNvdXJjZS5vbC5nZXRGZWF0dXJlQnlJZChpZCk7XG4gICAgaWYgKGZlYXQpIHtcbiAgICAgIHRoaXMubWFwLm9sXG4gICAgICAgIC5nZXRWaWV3KClcbiAgICAgICAgLnNldENlbnRlcigoZmVhdC5nZXRHZW9tZXRyeSgpIGFzIGFueSkuZ2V0Q29vcmRpbmF0ZXMoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyYWNrRmVhdHVyZShpZCwgZmVhdCkge1xuICAgIGlmIChmZWF0LmZlYXR1cmUuZ2V0SWQoKSA9PT0gaWQgJiYgdGhpcy52aXNpYmxlKSB7XG4gICAgICB0aGlzLmNlbnRlck1hcE9uRmVhdHVyZShpZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRpc2FibGVUcmFja0ZlYXR1cmUoKSB7XG4gICAgdW5CeUtleSh0aGlzLnRyYWNrRmVhdHVyZUxpc3RlbmVySWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBsb2FkZXIgZm9yIGEgV0ZTIGRhdGFzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqIEBwYXJhbSB2ZWN0b3JTb3VyY2UgdGhlIHZlY3RvciBzb3VyY2UgdG8gYmUgY3JlYXRlZFxuICAgKiBAcGFyYW0gb3B0aW9ucyBvbE9wdGlvbnMgZnJvbSBzb3VyY2VcbiAgICogQHBhcmFtIGludGVyY2VwdG9yIHRoZSBpbnRlcmNlcHRvciBvZiB0aGUgZGF0YVxuICAgKiBAcGFyYW0gZXh0ZW50IHRoZSBleHRlbnQgb2YgdGhlIHJlcXVlc3RlZCBkYXRhXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIHRoZSBjdXJyZW50IHJlc29sdXRpb25cbiAgICogQHBhcmFtIHByb2ogdGhlIHByb2plY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICogQHBhcmFtIHN1Y2Nlc3Mgc3VjY2VzcyBjYWxsYmFja1xuICAgKiBAcGFyYW0gZmFpbHVyZSBmYWlsdXJlIGNhbGxiYWNrXG4gICAqIEBwYXJhbSByYW5kb21QYXJhbSByYW5kb20gcGFyYW1ldGVyIHRvIGVuc3VyZSBjYWNoZSBpcyBub3QgY2F1c2luZyBwcm9ibGVtcyBpbiByZXRyaWV2aW5nIG5ldyBkYXRhXG4gICAqL1xuICBwdWJsaWMgY3VzdG9tV0ZTTG9hZGVyKFxuICAgIHZlY3RvclNvdXJjZTogb2xTb3VyY2VWZWN0b3IsXG4gICAgb3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgaW50ZXJjZXB0b3I6IEF1dGhJbnRlcmNlcHRvcixcbiAgICBleHRlbnQ6IEV4dGVudCxcbiAgICByZXNvbHV0aW9uOiBudW1iZXIsXG4gICAgcHJvajogb2xQcm9qZWN0aW9uLFxuICAgIHN1Y2Nlc3M6IChmZWF0dXJlczogb2xGZWF0dXJlW10pID0+IHZvaWQsXG4gICAgZmFpbHVyZTogKCkgPT4gdm9pZCxcbiAgICByYW5kb21QYXJhbT86IGJvb2xlYW5cbiAgKSB7XG4gICAge1xuICAgICAgY29uc3QgcGFyYW1zV0ZTID0gb3B0aW9ucy5wYXJhbXNXRlM7XG4gICAgICBjb25zdCB3ZnNQcm9qID0gcGFyYW1zV0ZTLnNyc05hbWVcbiAgICAgICAgPyBuZXcgb2xQcm9qZWN0aW9uKHsgY29kZTogcGFyYW1zV0ZTLnNyc05hbWUgfSlcbiAgICAgICAgOiBwcm9qO1xuICAgICAgY29uc3QgY3VycmVudEV4dGVudCA9IG9scHJvai50cmFuc2Zvcm1FeHRlbnQoZXh0ZW50LCBwcm9qLCB3ZnNQcm9qKTtcbiAgICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSAob3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLm9nY0ZpbHRlcnM7XG5cbiAgICAgIGlmIChcbiAgICAgICAgKHRoaXMucHJldmlvdXNMb2FkRXh0ZW50ICYmXG4gICAgICAgICAgdGhpcy5wcmV2aW91c0xvYWRFeHRlbnQgIT09IGN1cnJlbnRFeHRlbnQpIHx8XG4gICAgICAgICh0aGlzLnByZXZpb3VzTG9hZFJlc29sdXRpb24gJiZcbiAgICAgICAgICB0aGlzLnByZXZpb3VzTG9hZFJlc29sdXRpb24gIT09IHJlc29sdXRpb24pIHx8XG4gICAgICAgICh0aGlzLnByZXZpb3VzT2djRmlsdGVycyAmJiB0aGlzLnByZXZpb3VzT2djRmlsdGVycyAhPT0gb2djRmlsdGVycylcbiAgICAgICkge1xuICAgICAgICB2ZWN0b3JTb3VyY2UucmVtb3ZlTG9hZGVkRXh0ZW50KHRoaXMucHJldmlvdXNMb2FkRXh0ZW50KTtcbiAgICAgICAgZm9yIChjb25zdCB4aHIgb2YgdGhpcy54aHJBY2N1bXVsYXRvcikge1xuICAgICAgICAgIHhoci5hYm9ydCgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJldmlvdXNMb2FkRXh0ZW50ID0gY3VycmVudEV4dGVudDtcbiAgICAgIHRoaXMucHJldmlvdXNMb2FkUmVzb2x1dGlvbiA9IHJlc29sdXRpb247XG4gICAgICB0aGlzLnByZXZpb3VzT2djRmlsdGVycyA9IG9nY0ZpbHRlcnM7XG5cbiAgICAgIHBhcmFtc1dGUy5zcnNOYW1lID0gcGFyYW1zV0ZTLnNyc05hbWUgfHwgcHJvai5nZXRDb2RlKCk7XG4gICAgICBjb25zdCB1cmwgPSBidWlsZFVybChcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgY3VycmVudEV4dGVudCxcbiAgICAgICAgd2ZzUHJvaixcbiAgICAgICAgb2djRmlsdGVycyxcbiAgICAgICAgcmFuZG9tUGFyYW1cbiAgICAgICk7XG4gICAgICBsZXQgc3RhcnRJbmRleCA9IDA7XG4gICAgICBpZiAoXG4gICAgICAgIHBhcmFtc1dGUy52ZXJzaW9uID09PSAnMi4wLjAnICYmXG4gICAgICAgIHBhcmFtc1dGUy5tYXhGZWF0dXJlcyA+IGRlZmF1bHRNYXhGZWF0dXJlc1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IG5iT2ZGZWF0dXJlID0gMTAwMDtcbiAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBwYXJhbXNXRlMubWF4RmVhdHVyZXMpIHtcbiAgICAgICAgICBsZXQgYWx0ZXJlZFVybCA9IHVybC5yZXBsYWNlKFxuICAgICAgICAgICAgJ2NvdW50PScgKyBwYXJhbXNXRlMubWF4RmVhdHVyZXMsXG4gICAgICAgICAgICAnY291bnQ9JyArIG5iT2ZGZWF0dXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhbHRlcmVkVXJsID0gYWx0ZXJlZFVybC5yZXBsYWNlKCdzdGFydEluZGV4PTAnLCAnMCcpO1xuICAgICAgICAgIGFsdGVyZWRVcmwgKz0gJyZzdGFydEluZGV4PScgKyBzdGFydEluZGV4O1xuICAgICAgICAgIGFsdGVyZWRVcmwucmVwbGFjZSgvJiYvZywgJyYnKTtcbiAgICAgICAgICB0aGlzLmdldEZlYXR1cmVzKFxuICAgICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgICAgaW50ZXJjZXB0b3IsXG4gICAgICAgICAgICBjdXJyZW50RXh0ZW50LFxuICAgICAgICAgICAgd2ZzUHJvaixcbiAgICAgICAgICAgIHByb2osXG4gICAgICAgICAgICBhbHRlcmVkVXJsLFxuICAgICAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgICApO1xuICAgICAgICAgIHN0YXJ0SW5kZXggKz0gbmJPZkZlYXR1cmU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ2V0RmVhdHVyZXMoXG4gICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgIGludGVyY2VwdG9yLFxuICAgICAgICAgIGN1cnJlbnRFeHRlbnQsXG4gICAgICAgICAgd2ZzUHJvaixcbiAgICAgICAgICBwcm9qLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICBzdWNjZXNzLFxuICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3VzdG9tIGxvYWRlciB0byBnZXQgZmVhdHVyZSBmcm9tIGEgV0ZTIGRhdGFzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqIEBwYXJhbSB2ZWN0b3JTb3VyY2UgdGhlIHZlY3RvciBzb3VyY2UgdG8gYmUgY3JlYXRlZFxuICAgKiBAcGFyYW0gaW50ZXJjZXB0b3IgdGhlIGludGVyY2VwdG9yIG9mIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBleHRlbnQgdGhlIGV4dGVudCBvZiB0aGUgcmVxdWVzdGVkIGRhdGFcbiAgICogQHBhcmFtIGRhdGFQcm9qZWN0aW9uIHRoZSBwcm9qZWN0aW9uIG9mIHRoZSByZXRyaWV2ZWQgZGF0YVxuICAgKiBAcGFyYW0gZmVhdHVyZVByb2plY3Rpb24gdGhlIHByb2plY3Rpb24gb2YgdGhlIGNyZWF0ZWQgZmVhdHVyZXNcbiAgICogQHBhcmFtIHVybCB0aGUgdXJsIHN0cmluZyB0byByZXRyaWV2ZSB0aGUgZGF0YVxuICAgKiBAcGFyYW0gc3VjY2VzcyBzdWNjZXNzIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBmYWlsdXJlIGZhaWx1cmUgY2FsbGJhY2tcbiAgICovXG4gIHByaXZhdGUgZ2V0RmVhdHVyZXMoXG4gICAgdmVjdG9yU291cmNlOiBvbFNvdXJjZVZlY3RvcixcbiAgICBpbnRlcmNlcHRvcjogQXV0aEludGVyY2VwdG9yLFxuICAgIGV4dGVudDogRXh0ZW50LFxuICAgIGRhdGFQcm9qZWN0aW9uOiBvbFByb2plY3Rpb24sXG4gICAgZmVhdHVyZVByb2plY3Rpb246IG9sUHJvamVjdGlvbixcbiAgICB1cmw6IHN0cmluZyxcbiAgICBzdWNjZXNzOiAoZmVhdHVyZXM6IG9sRmVhdHVyZVtdKSA9PiB2b2lkLFxuICAgIGZhaWx1cmU6ICgpID0+IHZvaWRcbiAgKSB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgY29uc3QgYWx0ZXJlZFVybFdpdGhLZXlBdXRoID0gaW50ZXJjZXB0b3IuYWx0ZXJVcmxXaXRoS2V5QXV0aCh1cmwpO1xuICAgIGxldCBtb2RpZmllZFVybCA9IHVybDtcbiAgICBpZiAoYWx0ZXJlZFVybFdpdGhLZXlBdXRoKSB7XG4gICAgICBtb2RpZmllZFVybCA9IGFsdGVyZWRVcmxXaXRoS2V5QXV0aDtcbiAgICB9XG4gICAgeGhyLm9wZW4oJ0dFVCcsIG1vZGlmaWVkVXJsKTtcbiAgICBpZiAoaW50ZXJjZXB0b3IpIHtcbiAgICAgIGludGVyY2VwdG9yLmludGVyY2VwdFhocih4aHIsIG1vZGlmaWVkVXJsKTtcbiAgICB9XG4gICAgY29uc3Qgb25FcnJvciA9ICgpID0+IHtcbiAgICAgIHZlY3RvclNvdXJjZS5yZW1vdmVMb2FkZWRFeHRlbnQoZXh0ZW50KTtcbiAgICAgIGZhaWx1cmUoKTtcbiAgICB9O1xuICAgIHhoci5vbmVycm9yID0gb25FcnJvcjtcbiAgICB4aHIub25sb2FkID0gKCkgPT4ge1xuICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCAmJiB4aHIucmVzcG9uc2VUZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSB2ZWN0b3JTb3VyY2VcbiAgICAgICAgICAuZ2V0Rm9ybWF0KClcbiAgICAgICAgICAucmVhZEZlYXR1cmVzKHhoci5yZXNwb25zZVRleHQsIHtcbiAgICAgICAgICAgIGRhdGFQcm9qZWN0aW9uLFxuICAgICAgICAgICAgZmVhdHVyZVByb2plY3Rpb25cbiAgICAgICAgICB9KSBhcyBvbEZlYXR1cmVbXTtcbiAgICAgICAgaWYgKGZlYXR1cmVzKSB7XG4gICAgICAgICAgdmVjdG9yU291cmNlLmFkZEZlYXR1cmVzKGZlYXR1cmVzKTtcbiAgICAgICAgICBzdWNjZXNzKGZlYXR1cmVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdWNjZXNzKFtdKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25FcnJvcigpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy54aHJBY2N1bXVsYXRvci5wdXNoKHhocik7XG4gICAgeGhyLnNlbmQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gbG9hZGVyIGZvciB2ZWN0b3IgbGF5ZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gdmVjdG9yU291cmNlIHRoZSB2ZWN0b3Igc291cmNlIHRvIGJlIGNyZWF0ZWRcbiAgICogQHBhcmFtIHVybCB0aGUgdXJsIHN0cmluZyBvciBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgZGF0YVxuICAgKiBAcGFyYW0gaW50ZXJjZXB0b3IgdGhlIGludGVyY2VwdG9yIG9mIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBleHRlbnQgdGhlIGV4dGVudCBvZiB0aGUgcmVxdWVzdGVkIGRhdGFcbiAgICogQHBhcmFtIHJlc29sdXRpb24gdGhlIGN1cnJlbnQgcmVzb2x1dGlvblxuICAgKiBAcGFyYW0gcHJvamVjdGlvbiB0aGUgcHJvamVjdGlvbiB0byByZXRyaWV2ZSB0aGUgZGF0YVxuICAgKi9cbiAgcHJpdmF0ZSBjdXN0b21Mb2FkZXIoXG4gICAgdmVjdG9yU291cmNlOiBvbFNvdXJjZVZlY3RvcixcbiAgICB1cmw6IHN0cmluZyxcbiAgICBpbnRlcmNlcHRvcjogQXV0aEludGVyY2VwdG9yLFxuICAgIGV4dGVudDogRXh0ZW50LFxuICAgIHJlc29sdXRpb246IG51bWJlcixcbiAgICBwcm9qZWN0aW9uOiBvbFByb2plY3Rpb24sXG4gICAgc3VjY2VzczogKGZlYXR1cmVzOiBvbEZlYXR1cmVbXSkgPT4gdm9pZCxcbiAgICBmYWlsdXJlOiAoKSA9PiB2b2lkXG4gICkge1xuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIGxldCBtb2RpZmllZFVybCA9IHVybDtcbiAgICBpZiAodHlwZW9mIHVybCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgYWx0ZXJlZFVybFdpdGhLZXlBdXRoID0gaW50ZXJjZXB0b3IuYWx0ZXJVcmxXaXRoS2V5QXV0aCh1cmwpO1xuICAgICAgaWYgKGFsdGVyZWRVcmxXaXRoS2V5QXV0aCkge1xuICAgICAgICBtb2RpZmllZFVybCA9IGFsdGVyZWRVcmxXaXRoS2V5QXV0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZW9OZXR3b3JrU2VydmljZSAmJiB0eXBlb2YgdXJsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBmb3JtYXQgPSB2ZWN0b3JTb3VyY2UuZ2V0Rm9ybWF0KCk7XG4gICAgICBjb25zdCB0eXBlID0gZm9ybWF0LmdldFR5cGUoKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2VUeXBlID0gdHlwZTtcbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHZlY3RvclNvdXJjZS5yZW1vdmVMb2FkZWRFeHRlbnQoZXh0ZW50KTtcbiAgICAgICAgZmFpbHVyZSgpO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb3B0aW9uczogU2ltcGxlR2V0T3B0aW9ucyA9IHsgcmVzcG9uc2VUeXBlIH07XG4gICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlLmdlb0RCU2VydmljZVxuICAgICAgICAuZ2V0KHVybClcbiAgICAgICAgLnBpcGUoZGVsYXkoNzUwKSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY29uY2F0TWFwKChyKSA9PlxuICAgICAgICAgICAgclxuICAgICAgICAgICAgICA/IG9mKHIpXG4gICAgICAgICAgICAgIDogdGhpcy5nZW9OZXR3b3JrU2VydmljZS5nZXQobW9kaWZpZWRVcmwgYXMgc3RyaW5nLCBvcHRpb25zKS5waXBlKFxuICAgICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlcztcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChjb250ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBmb3JtYXQuZ2V0VHlwZSgpO1xuICAgICAgICAgICAgbGV0IHNvdXJjZTtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnanNvbicgfHwgdHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XG4gICAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgICAgICAgICAgc291cmNlID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veG1sJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FycmF5YnVmZmVyJykge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IGZvcm1hdC5yZWFkRmVhdHVyZXMoc291cmNlLCB7XG4gICAgICAgICAgICAgICAgZXh0ZW50LFxuICAgICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uXG4gICAgICAgICAgICAgIH0pIGFzIE9sRmVhdHVyZVtdO1xuICAgICAgICAgICAgICB2ZWN0b3JTb3VyY2UuYWRkRmVhdHVyZXMoZmVhdHVyZXMpO1xuICAgICAgICAgICAgICBzdWNjZXNzKGZlYXR1cmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB4aHIub3BlbignR0VUJywgbW9kaWZpZWRVcmwgYXMgc3RyaW5nKTtcbiAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgIGlmIChmb3JtYXQuZ2V0VHlwZSgpID09PSAnYXJyYXlidWZmZXInKSB7XG4gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInO1xuICAgICAgfVxuICAgICAgaWYgKGludGVyY2VwdG9yKSB7XG4gICAgICAgIGludGVyY2VwdG9yLmludGVyY2VwdFhocih4aHIsIG1vZGlmaWVkVXJsIGFzIHN0cmluZyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHZlY3RvclNvdXJjZS5yZW1vdmVMb2FkZWRFeHRlbnQoZXh0ZW50KTtcbiAgICAgICAgZmFpbHVyZSgpO1xuICAgICAgfTtcbiAgICAgIHhoci5vbmVycm9yID0gb25FcnJvcjtcbiAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIHN0YXR1cyB3aWxsIGJlIDAgZm9yIGZpbGU6Ly8gdXJsc1xuICAgICAgICBpZiAoIXhoci5zdGF0dXMgfHwgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApKSB7XG4gICAgICAgICAgY29uc3QgdHlwZSA9IGZvcm1hdC5nZXRUeXBlKCk7XG4gICAgICAgICAgbGV0IHNvdXJjZTtcbiAgICAgICAgICBpZiAodHlwZSA9PT0gJ2pzb24nIHx8IHR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICAgICAgc291cmNlID0geGhyLnJlc3BvbnNlVGV4dDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB4aHIucmVzcG9uc2VYTUw7XG4gICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIHhoci5yZXNwb25zZVRleHQsXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IHhoci5yZXNwb25zZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBmb3JtYXQucmVhZEZlYXR1cmVzKHNvdXJjZSwge1xuICAgICAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uXG4gICAgICAgICAgICB9KSBhcyBPbEZlYXR1cmVbXTtcbiAgICAgICAgICAgIHZlY3RvclNvdXJjZS5hZGRGZWF0dXJlcyhmZWF0dXJlcyk7XG4gICAgICAgICAgICBzdWNjZXNzKGZlYXR1cmVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb25FcnJvcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIuc2VuZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gbG9hZGVyIGZvciB2ZWN0b3IgbGF5ZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gdmVjdG9yU291cmNlIHRoZSB2ZWN0b3Igc291cmNlIHRvIGJlIGNyZWF0ZWRcbiAgICogQHBhcmFtIGxheWVySUQgdGhlIHVybCBzdHJpbmcgb3IgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICogQHBhcmFtIGludGVyY2VwdG9yIHRoZSBpbnRlcmNlcHRvciBvZiB0aGUgZGF0YVxuICAgKiBAcGFyYW0gZXh0ZW50IHRoZSBleHRlbnQgb2YgdGhlIHJlcXVlc3RlZCBkYXRhXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIHRoZSBjdXJyZW50IHJlc29sdXRpb25cbiAgICogQHBhcmFtIHByb2plY3Rpb24gdGhlIHByb2plY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICovXG4gIHByaXZhdGUgY3VzdG9tSURCTG9hZGVyKFxuICAgIHZlY3RvclNvdXJjZSxcbiAgICBsYXllcklELFxuICAgIGV4dGVudCxcbiAgICBwcm9qZWN0aW9uLFxuICAgIHN1Y2Nlc3MsXG4gICAgZmFpbHVyZVxuICApIHtcbiAgICBpZiAodGhpcy5nZW9OZXR3b3JrU2VydmljZSkge1xuICAgICAgY29uc3Qgb25FcnJvciA9ICgpID0+IHtcbiAgICAgICAgdmVjdG9yU291cmNlLnJlbW92ZUxvYWRlZEV4dGVudChleHRlbnQpO1xuICAgICAgICBmYWlsdXJlKCk7XG4gICAgICB9O1xuICAgICAgdGhpcy5nZW9OZXR3b3JrU2VydmljZS5nZW9EQlNlcnZpY2UuZ2V0KGxheWVySUQpLnN1YnNjcmliZSgoY29udGVudCkgPT4ge1xuICAgICAgICBpZiAoY29udGVudCkge1xuICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgICAgICBjb25zdCB0eXBlID0gZm9ybWF0LmdldFR5cGUoKTtcbiAgICAgICAgICBsZXQgc291cmNlO1xuICAgICAgICAgIGlmICh0eXBlID09PSAnanNvbicgfHwgdHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSBjb250ZW50O1xuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3htbCcpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVzID0gZm9ybWF0LnJlYWRGZWF0dXJlcyhzb3VyY2UsIHtcbiAgICAgICAgICAgICAgZXh0ZW50LFxuICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2ZWN0b3JTb3VyY2UuYWRkRmVhdHVyZXMoZmVhdHVyZXMsIGZvcm1hdC5yZWFkUHJvamVjdGlvbihzb3VyY2UpKTtcbiAgICAgICAgICAgIHN1Y2Nlc3MoZmVhdHVyZXMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvbkVycm9yKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -104,4 +104,4 @@ export class VectorTileLayer extends Layer {
104
104
  super.setMap(map);
105
105
  }
106
106
  }
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9ydGlsZS1sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9ydGlsZS1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLGlCQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBS3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2hDLE1BQU0sT0FBTyxlQUFnQixTQUFRLEtBQUs7SUFTL0I7SUFDQTtJQUxELE9BQU8sQ0FBYztJQUU3QixZQUNFLE9BQStCLEVBQ3hCLGNBQStCLEVBQy9CLGVBQWlDO1FBRXhDLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSHpDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFHeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxhQUFhO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQXdCO1NBQ3JELENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUF3QixDQUFDO1FBRXRFLGdCQUFnQixDQUFDLG1CQUFtQixD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QU0sQ0FBQyxDQUM5QixDQUFDO29CQUNKLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPO3dCQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3JCLENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU87b0JBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNILENBQUMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUNqQixPQUFPO2dCQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDO1lBQ0YsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUF1QjtRQUNuQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcblxuaW1wb3J0IFZlY3RvclRpbGUgZnJvbSAnb2wvVmVjdG9yVGlsZSc7XG5pbXBvcnQgb2xMYXllclZlY3RvclRpbGUgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yVGlsZSc7XG5pbXBvcnQgb2xTb3VyY2VWZWN0b3JUaWxlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3JUaWxlJztcblxuaW1wb3J0IHsgTVZURGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL212dC1kYXRhc291cmNlJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IFRpbGVXYXRjaGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGlsZS13YXRjaGVyJztcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi9sYXllcic7XG5pbXBvcnQgeyBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi92ZWN0b3J0aWxlLWxheWVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBWZWN0b3JUaWxlTGF5ZXIgZXh0ZW5kcyBMYXllciB7XG4gIHB1YmxpYyBkZWNsYXJlIGRhdGFTb3VyY2U6IE1WVERhdGFTb3VyY2U7XG4gIHB1YmxpYyBkZWNsYXJlIG9wdGlvbnM6IFZlY3RvclRpbGVMYXllck9wdGlvbnM7XG4gIHB1YmxpYyBkZWNsYXJlIG9sOiBvbExheWVyVmVjdG9yVGlsZTtcblxuICBwcml2YXRlIHdhdGNoZXI6IFRpbGVXYXRjaGVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdGlvbnM6IFZlY3RvclRpbGVMYXllck9wdGlvbnMsXG4gICAgcHVibGljIG1lc3NhZ2VTZXJ2aWNlPzogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHVibGljIGF1dGhJbnRlcmNlcHRvcj86IEF1dGhJbnRlcmNlcHRvclxuICApIHtcbiAgICBzdXBlcihvcHRpb25zLCBtZXNzYWdlU2VydmljZSwgYXV0aEludGVyY2VwdG9yKTtcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgVGlsZVdhdGNoZXIodGhpcyk7XG4gICAgdGhpcy5zdGF0dXMkID0gdGhpcy53YXRjaGVyLnN0YXR1cyQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlT2xMYXllcigpOiBvbExheWVyVmVjdG9yVGlsZSB7XG4gICAgY29uc3Qgb2xPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7XG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5zb3VyY2Uub2wgYXMgb2xTb3VyY2VWZWN0b3JUaWxlXG4gICAgfSk7XG5cbiAgICBjb25zdCB2ZWN0b3JUaWxlID0gbmV3IG9sTGF5ZXJWZWN0b3JUaWxlKG9sT3B0aW9ucyk7XG4gICAgY29uc3QgdmVjdG9yVGlsZVNvdXJjZSA9IHZlY3RvclRpbGUuZ2V0U291cmNlKCkgYXMgb2xTb3VyY2VWZWN0b3JUaWxlO1xuXG4gICAgdmVjdG9yVGlsZVNvdXJjZS5zZXRUaWxlTG9hZEZ1bmN0aW9uKCh0aWxlOiBWZWN0b3JUaWxlLCB1cmw6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgbG9hZGVyID0gdGhpcy5jdXN0b21Mb2FkZXIoXG4gICAgICAgIHVybCxcbiAgICAgICAgdGlsZS5nZXRGb3JtYXQoKSxcbiAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3IsXG4gICAgICAgIHRpbGUub25Mb2FkLmJpbmQodGlsZSlcbiAgICAgICk7XG4gICAgICBpZiAobG9hZGVyKSB7XG4gICAgICAgIHRpbGUuc2V0TG9hZGVyKGxvYWRlcik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmVjdG9yVGlsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gbG9hZGVyIGZvciB2ZWN0b3IgdGlsZSBsYXllci4gTW9kaWZpZWQgZnJvbSB0aGUgbG9hZEZlYXR1cmVzWGhyIGZ1bmN0aW9uIGluIG9sXFxmZWF0dXJlbG9hZGVyLmpzXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gdXJsIHRoZSB1cmwgc3RyaW5nIG9yIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBmb3JtYXQgdGhlIGZvcm1hdCBvZiB0aGUgdGlsZVxuICAgKiBAcGFyYW0gaW50ZXJjZXB0b3IgdGhlIGludGVyY2VwdG9yIG9mIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBzdWNjZXNzIE9uIHN1Y2Nlc3MgZXZlbnQgYWN0aW9uIHRvIHRyaWdnZXJcbiAgICogQHBhcmFtIGZhaWx1cmUgT24gZmFpbHVyZSBldmVudCBhY3Rpb24gdG8gdHJpZ2dlciBUT0RPXG4gICAqL1xuICBjdXN0b21Mb2FkZXIodXJsLCBmb3JtYXQsIGludGVyY2VwdG9yLCBzdWNjZXNzLCBmYWlsdXJlPykge1xuICAgIHJldHVybiAoZXh0ZW50LCByZXNvbHV0aW9uLCBwcm9qZWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgIGxldCBtb2RpZmllZFVybCA9IHVybDtcbiAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGFsdGVyZWRVcmxXaXRoS2V5QXV0aCA9IGludGVyY2VwdG9yLmFsdGVyVXJsV2l0aEtleUF1dGgodXJsKTtcbiAgICAgICAgaWYgKGFsdGVyZWRVcmxXaXRoS2V5QXV0aCkge1xuICAgICAgICAgIG1vZGlmaWVkVXJsID0gYWx0ZXJlZFVybFdpdGhLZXlBdXRoO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb2RpZmllZFVybCA9IHVybChleHRlbnQsIHJlc29sdXRpb24sIHByb2plY3Rpb24pO1xuICAgICAgfVxuICAgICAgeGhyLm9wZW4oJ0dFVCcsIG1vZGlmaWVkVXJsKTtcbiAgICAgIGlmIChpbnRlcmNlcHRvcikge1xuICAgICAgICBpbnRlcmNlcHRvci5pbnRlcmNlcHRYaHIoeGhyLCBtb2RpZmllZFVybCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3JtYXQuZ2V0VHlwZSgpID09PSAnYXJyYXlidWZmZXInKSB7XG4gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInO1xuICAgICAgfVxuICAgICAgeGhyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgaWYgKCF4aHIuc3RhdHVzIHx8ICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSkge1xuICAgICAgICAgIGNvbnN0IHR5cGUgPSBmb3JtYXQuZ2V0VHlwZSgpO1xuICAgICAgICAgIGxldCBzb3VyY2U7XG4gICAgICAgICAgaWYgKHR5cGUgPT09ICdqc29uJyB8fCB0eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IHhoci5yZXNwb25zZVRleHQ7XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAneG1sJykge1xuICAgICAgICAgICAgc291cmNlID0geGhyLnJlc3BvbnNlWE1MO1xuICAgICAgICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgICAgICAgc291cmNlID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VUZXh0LFxuICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94bWwnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnYXJyYXlidWZmZXInKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB4aHIucmVzcG9uc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3MuY2FsbChcbiAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgZm9ybWF0LnJlYWRGZWF0dXJlcyhzb3VyY2UsIHtcbiAgICAgICAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHByb2plY3Rpb25cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGZvcm1hdC5yZWFkUHJvamVjdGlvbihzb3VyY2UpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBmYWlsdXJlLmNhbGwodGhpcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICBmYWlsdXJlLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgLy8gVE9ET1xuICAgICAgICBmYWlsdXJlLmNhbGwodGhpcyk7XG4gICAgICB9O1xuICAgICAgeGhyLnNlbmQoKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNldE1hcChtYXA6IElnb01hcCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChtYXAgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy53YXRjaGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud2F0Y2hlci5zdWJzY3JpYmUoKCkgPT4gdm9pZCAxKTtcbiAgICB9XG4gICAgc3VwZXIuc2V0TWFwKG1hcCk7XG4gIH1cbn1cbiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9ydGlsZS1sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9ydGlsZS1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLGlCQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBS3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2hDLE1BQU0sT0FBTyxlQUFnQixTQUFRLEtBQUs7SUFTL0I7SUFDQTtJQUxELE9BQU8sQ0FBYztJQUU3QixZQUNFLE9BQStCLEVBQ3hCLGNBQStCLEVBQy9CLGVBQWlDO1FBRXhDLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSHpDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFHeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxhQUFhO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQXdCO1NBQ3JELENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUF3QixDQUFDO1FBRXRFLGdCQUFnQixDQUFDLG1CQUFtQixD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QU0sQ0FBQyxDQUM5QixDQUFDO29CQUNKLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPO3dCQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3JCLENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU87b0JBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNILENBQUMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUNqQixPQUFPO2dCQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDO1lBQ0YsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUF1QjtRQUNuQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcblxuaW1wb3J0IFZlY3RvclRpbGUgZnJvbSAnb2wvVmVjdG9yVGlsZSc7XG5pbXBvcnQgb2xMYXllclZlY3RvclRpbGUgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yVGlsZSc7XG5pbXBvcnQgb2xTb3VyY2VWZWN0b3JUaWxlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3JUaWxlJztcblxuaW1wb3J0IHsgTVZURGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL212dC1kYXRhc291cmNlJztcbmltcG9ydCB0eXBlIHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgVGlsZVdhdGNoZXIgfSBmcm9tICcuLi8uLi91dGlscy90aWxlLXdhdGNoZXInO1xuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuL2xheWVyJztcbmltcG9ydCB7IFZlY3RvclRpbGVMYXllck9wdGlvbnMgfSBmcm9tICcuL3ZlY3RvcnRpbGUtbGF5ZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIFZlY3RvclRpbGVMYXllciBleHRlbmRzIExheWVyIHtcbiAgcHVibGljIGRlY2xhcmUgZGF0YVNvdXJjZTogTVZURGF0YVNvdXJjZTtcbiAgcHVibGljIGRlY2xhcmUgb3B0aW9uczogVmVjdG9yVGlsZUxheWVyT3B0aW9ucztcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sTGF5ZXJWZWN0b3JUaWxlO1xuXG4gIHByaXZhdGUgd2F0Y2hlcjogVGlsZVdhdGNoZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgb3B0aW9uczogVmVjdG9yVGlsZUxheWVyT3B0aW9ucyxcbiAgICBwdWJsaWMgbWVzc2FnZVNlcnZpY2U/OiBNZXNzYWdlU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aEludGVyY2VwdG9yPzogQXV0aEludGVyY2VwdG9yXG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMsIG1lc3NhZ2VTZXJ2aWNlLCBhdXRoSW50ZXJjZXB0b3IpO1xuICAgIHRoaXMud2F0Y2hlciA9IG5ldyBUaWxlV2F0Y2hlcih0aGlzKTtcbiAgICB0aGlzLnN0YXR1cyQgPSB0aGlzLndhdGNoZXIuc3RhdHVzJDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVPbExheWVyKCk6IG9sTGF5ZXJWZWN0b3JUaWxlIHtcbiAgICBjb25zdCBvbE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm9wdGlvbnMsIHtcbiAgICAgIHNvdXJjZTogdGhpcy5vcHRpb25zLnNvdXJjZS5vbCBhcyBvbFNvdXJjZVZlY3RvclRpbGVcbiAgICB9KTtcblxuICAgIGNvbnN0IHZlY3RvclRpbGUgPSBuZXcgb2xMYXllclZlY3RvclRpbGUob2xPcHRpb25zKTtcbiAgICBjb25zdCB2ZWN0b3JUaWxlU291cmNlID0gdmVjdG9yVGlsZS5nZXRTb3VyY2UoKSBhcyBvbFNvdXJjZVZlY3RvclRpbGU7XG5cbiAgICB2ZWN0b3JUaWxlU291cmNlLnNldFRpbGVMb2FkRnVuY3Rpb24oKHRpbGU6IFZlY3RvclRpbGUsIHVybDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLmN1c3RvbUxvYWRlcihcbiAgICAgICAgdXJsLFxuICAgICAgICB0aWxlLmdldEZvcm1hdCgpLFxuICAgICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvcixcbiAgICAgICAgdGlsZS5vbkxvYWQuYmluZCh0aWxlKVxuICAgICAgKTtcbiAgICAgIGlmIChsb2FkZXIpIHtcbiAgICAgICAgdGlsZS5zZXRMb2FkZXIobG9hZGVyKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB2ZWN0b3JUaWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBsb2FkZXIgZm9yIHZlY3RvciB0aWxlIGxheWVyLiBNb2RpZmllZCBmcm9tIHRoZSBsb2FkRmVhdHVyZXNYaHIgZnVuY3Rpb24gaW4gb2xcXGZlYXR1cmVsb2FkZXIuanNcbiAgICogQGludGVybmFsXG4gICAqIEBwYXJhbSB1cmwgdGhlIHVybCBzdHJpbmcgb3IgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICogQHBhcmFtIGZvcm1hdCB0aGUgZm9ybWF0IG9mIHRoZSB0aWxlXG4gICAqIEBwYXJhbSBpbnRlcmNlcHRvciB0aGUgaW50ZXJjZXB0b3Igb2YgdGhlIGRhdGFcbiAgICogQHBhcmFtIHN1Y2Nlc3MgT24gc3VjY2VzcyBldmVudCBhY3Rpb24gdG8gdHJpZ2dlclxuICAgKiBAcGFyYW0gZmFpbHVyZSBPbiBmYWlsdXJlIGV2ZW50IGFjdGlvbiB0byB0cmlnZ2VyIFRPRE9cbiAgICovXG4gIGN1c3RvbUxvYWRlcih1cmwsIGZvcm1hdCwgaW50ZXJjZXB0b3IsIHN1Y2Nlc3MsIGZhaWx1cmU/KSB7XG4gICAgcmV0dXJuIChleHRlbnQsIHJlc29sdXRpb24sIHByb2plY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgbGV0IG1vZGlmaWVkVXJsID0gdXJsO1xuICAgICAgaWYgKHR5cGVvZiB1cmwgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgYWx0ZXJlZFVybFdpdGhLZXlBdXRoID0gaW50ZXJjZXB0b3IuYWx0ZXJVcmxXaXRoS2V5QXV0aCh1cmwpO1xuICAgICAgICBpZiAoYWx0ZXJlZFVybFdpdGhLZXlBdXRoKSB7XG4gICAgICAgICAgbW9kaWZpZWRVcmwgPSBhbHRlcmVkVXJsV2l0aEtleUF1dGg7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1vZGlmaWVkVXJsID0gdXJsKGV4dGVudCwgcmVzb2x1dGlvbiwgcHJvamVjdGlvbik7XG4gICAgICB9XG4gICAgICB4aHIub3BlbignR0VUJywgbW9kaWZpZWRVcmwpO1xuICAgICAgaWYgKGludGVyY2VwdG9yKSB7XG4gICAgICAgIGludGVyY2VwdG9yLmludGVyY2VwdFhocih4aHIsIG1vZGlmaWVkVXJsKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZvcm1hdC5nZXRUeXBlKCkgPT09ICdhcnJheWJ1ZmZlcicpIHtcbiAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcic7XG4gICAgICB9XG4gICAgICB4aHIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXhoci5zdGF0dXMgfHwgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApKSB7XG4gICAgICAgICAgY29uc3QgdHlwZSA9IGZvcm1hdC5nZXRUeXBlKCk7XG4gICAgICAgICAgbGV0IHNvdXJjZTtcbiAgICAgICAgICBpZiAodHlwZSA9PT0gJ2pzb24nIHx8IHR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICAgICAgc291cmNlID0geGhyLnJlc3BvbnNlVGV4dDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB4aHIucmVzcG9uc2VYTUw7XG4gICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIHhoci5yZXNwb25zZVRleHQsXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IHhoci5yZXNwb25zZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgc3VjY2Vzcy5jYWxsKFxuICAgICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgICBmb3JtYXQucmVhZEZlYXR1cmVzKHNvdXJjZSwge1xuICAgICAgICAgICAgICAgIGV4dGVudCxcbiAgICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvblxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZm9ybWF0LnJlYWRQcm9qZWN0aW9uKHNvdXJjZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIGZhaWx1cmUuY2FsbCh0aGlzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgIGZhaWx1cmUuY2FsbCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHhoci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAvLyBUT0RPXG4gICAgICAgIGZhaWx1cmUuY2FsbCh0aGlzKTtcbiAgICAgIH07XG4gICAgICB4aHIuc2VuZCgpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc2V0TWFwKG1hcDogSWdvTWFwIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG1hcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLndhdGNoZXIudW5zdWJzY3JpYmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53YXRjaGVyLnN1YnNjcmliZSgoKSA9PiB2b2lkIDEpO1xuICAgIH1cbiAgICBzdXBlci5zZXRNYXAobWFwKTtcbiAgfVxufVxuIl19
@@ -34,10 +34,10 @@ export class TrackFeatureButtonComponent {
34
34
  }
35
35
  this.trackFeature = !this.trackFeature;
36
36
  }
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TrackFeatureButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: TrackFeatureButtonComponent, isStandalone: true, selector: "igo-track-feature-button", inputs: { layer: "layer", trackFeature: "trackFeature" }, ngImport: i0, template: "<button\n *ngIf=\"options.trackFeature\"\n mat-icon-button\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.trackFeature' | translate\"\n [color]=\"color\"\n (click)=\"toggleTrackFeature()\"\n>\n <mat-icon>my_location</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TrackFeatureButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: TrackFeatureButtonComponent, isStandalone: true, selector: "igo-track-feature-button", inputs: { layer: "layer", trackFeature: "trackFeature" }, ngImport: i0, template: "<button\n *ngIf=\"options.trackFeature\"\n mat-icon-button\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.trackFeature' | translate\"\n [color]=\"color\"\n (click)=\"toggleTrackFeature()\"\n>\n <mat-icon>my_location</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TrackFeatureButtonComponent, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TrackFeatureButtonComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: 'igo-track-feature-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
43
43
  NgIf,
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
51
51
  }], trackFeature: [{
52
52
  type: Input
53
53
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvdHJhY2stZmVhdHVyZS1idXR0b24vdHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvdHJhY2stZmVhdHVyZS1idXR0b24vdHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBaUI1RCxNQUFNLE9BQU8sMkJBQTJCO0lBQzdCLEtBQUssQ0FBYztJQUVuQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRTlCLElBQUksT0FBTztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFTSxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBRXpCLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDekMsQ0FBQzt1R0EzQlUsMkJBQTJCOzJGQUEzQiwyQkFBMkIsOElDOUJ4QywwVEFZQSwwRERXSSxJQUFJLDRGQUNKLGVBQWUsMklBQ2YsZ0JBQWdCLDRUQUNoQixhQUFhLG1MQUNiLGlCQUFpQjs7MkZBR1IsMkJBQTJCO2tCQWR2QyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ2xCOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcblxuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllcic7XG5pbXBvcnQgeyBWZWN0b3JMYXllck9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tdHJhY2stZmVhdHVyZS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmFjay1mZWF0dXJlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBJZ29MYW5ndWFnZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRyYWNrRmVhdHVyZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxheWVyOiBWZWN0b3JMYXllcjtcblxuICBASW5wdXQoKSB0cmFja0ZlYXR1cmUgPSBmYWxzZTtcblxuICBnZXQgb3B0aW9ucygpOiBWZWN0b3JMYXllck9wdGlvbnMge1xuICAgIGlmICghdGhpcy5sYXllcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYXllci5vcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGNvbG9yID0gJ3ByaW1hcnknO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sb3IgPSB0aGlzLnRyYWNrRmVhdHVyZSA/ICdwcmltYXJ5JyA6ICdiYXNpYyc7XG4gIH1cblxuICB0b2dnbGVUcmFja0ZlYXR1cmUoKSB7XG4gICAgaWYgKHRoaXMudHJhY2tGZWF0dXJlKSB7XG4gICAgICB0aGlzLmxheWVyLmRpc2FibGVUcmFja0ZlYXR1cmUoKTtcbiAgICAgIHRoaXMuY29sb3IgPSAnYmFzaWMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxheWVyLmVuYWJsZVRyYWNrRmVhdHVyZSh0aGlzLmxheWVyLm9wdGlvbnMudHJhY2tGZWF0dXJlKTtcbiAgICAgIHRoaXMuY29sb3IgPSAncHJpbWFyeSc7XG4gICAgfVxuICAgIHRoaXMudHJhY2tGZWF0dXJlID0gIXRoaXMudHJhY2tGZWF0dXJlO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gICpuZ0lmPVwib3B0aW9ucy50cmFja0ZlYXR1cmVcIlxuICBtYXQtaWNvbi1idXR0b25cbiAgY29sbGFwc2libGVCdXR0b25cbiAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLnRyYWNrRmVhdHVyZScgfCB0cmFuc2xhdGVcIlxuICBbY29sb3JdPVwiY29sb3JcIlxuICAoY2xpY2spPVwidG9nZ2xlVHJhY2tGZWF0dXJlKClcIlxuPlxuICA8bWF0LWljb24+bXlfbG9jYXRpb248L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvdHJhY2stZmVhdHVyZS1idXR0b24vdHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvdHJhY2stZmVhdHVyZS1idXR0b24vdHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBaUI1RCxNQUFNLE9BQU8sMkJBQTJCO0lBQzdCLEtBQUssQ0FBYztJQUVuQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRTlCLElBQUksT0FBTztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFTSxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBRXpCLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDekMsQ0FBQzt3R0EzQlUsMkJBQTJCOzRGQUEzQiwyQkFBMkIsOElDOUJ4QywwVEFZQSwwRERXSSxJQUFJLDRGQUNKLGVBQWUsMklBQ2YsZ0JBQWdCLDRUQUNoQixhQUFhLG1MQUNiLGlCQUFpQjs7NEZBR1IsMkJBQTJCO2tCQWR2QyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ2xCOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcblxuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllcic7XG5pbXBvcnQgeyBWZWN0b3JMYXllck9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tdHJhY2stZmVhdHVyZS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmFjay1mZWF0dXJlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBJZ29MYW5ndWFnZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRyYWNrRmVhdHVyZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxheWVyOiBWZWN0b3JMYXllcjtcblxuICBASW5wdXQoKSB0cmFja0ZlYXR1cmUgPSBmYWxzZTtcblxuICBnZXQgb3B0aW9ucygpOiBWZWN0b3JMYXllck9wdGlvbnMge1xuICAgIGlmICghdGhpcy5sYXllcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYXllci5vcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGNvbG9yID0gJ3ByaW1hcnknO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sb3IgPSB0aGlzLnRyYWNrRmVhdHVyZSA/ICdwcmltYXJ5JyA6ICdiYXNpYyc7XG4gIH1cblxuICB0b2dnbGVUcmFja0ZlYXR1cmUoKSB7XG4gICAgaWYgKHRoaXMudHJhY2tGZWF0dXJlKSB7XG4gICAgICB0aGlzLmxheWVyLmRpc2FibGVUcmFja0ZlYXR1cmUoKTtcbiAgICAgIHRoaXMuY29sb3IgPSAnYmFzaWMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxheWVyLmVuYWJsZVRyYWNrRmVhdHVyZSh0aGlzLmxheWVyLm9wdGlvbnMudHJhY2tGZWF0dXJlKTtcbiAgICAgIHRoaXMuY29sb3IgPSAncHJpbWFyeSc7XG4gICAgfVxuICAgIHRoaXMudHJhY2tGZWF0dXJlID0gIXRoaXMudHJhY2tGZWF0dXJlO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gICpuZ0lmPVwib3B0aW9ucy50cmFja0ZlYXR1cmVcIlxuICBtYXQtaWNvbi1idXR0b25cbiAgY29sbGFwc2libGVCdXR0b25cbiAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLnRyYWNrRmVhdHVyZScgfCB0cmFuc2xhdGVcIlxuICBbY29sb3JdPVwiY29sb3JcIlxuICAoY2xpY2spPVwidG9nZ2xlVHJhY2tGZWF0dXJlKClcIlxuPlxuICA8bWF0LWljb24+bXlfbG9jYXRpb248L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
@@ -64,10 +64,10 @@ export class BaseLayersSwitcherComponent {
64
64
  const blHidden = bl.filter((l) => !l.visible);
65
65
  return blHidden.length + 1 === bl.length ? blHidden : bl;
66
66
  }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: BaseLayersSwitcherComponent, deps: [{ token: i1.MediaService }], target: i0.ɵɵFactoryTarget.Component });
68
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: BaseLayersSwitcherComponent, isStandalone: true, selector: "igo-baselayers-switcher", inputs: { map: "map", useStaticIcon: "useStaticIcon" }, ngImport: i0, template: "<div\n *ngIf=\"baseLayers.length > 0\"\n class=\"igo-baselayers-switcher-container\"\n [ngClass]=\"{ 'container-expand': expand }\"\n [@baseLayerSwitcherState]=\"\n expand ? 'expand' : useStaticIcon ? 'collapseIcon' : 'collapseMap'\n \"\n (@baseLayerSwitcherState.start)=\"showButton = false\"\n (@baseLayerSwitcherState.done)=\"showButton = true\"\n (click)=\"collapseOrExpand()\"\n>\n <div\n *ngIf=\"useStaticIcon && !expand && showButton\"\n class=\"igo-baselayers-switcher-button-container\"\n >\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.baselayerSwitcher' | translate\"\n matTooltipPosition=\"right\"\n color=\"primary\"\n >\n <mat-icon>photo_library</mat-icon>\n </button>\n </div>\n\n <div class=\"basemap-list\">\n <igo-mini-basemap\n *ngFor=\"let baseLayer of baseLayers; let i = index\"\n [map]=\"map\"\n [baseLayer]=\"baseLayer\"\n [title]=\"\n baseLayers.length > 2 && !expand\n ? ('igo.geo.baselayersSwitcher.title' | translate)\n : baseLayer.title\n \"\n [display]=\"expand || (i === 0 && !useStaticIcon)\"\n [disabled]=\"!expand && baseLayers.length > 1\"\n >\n </igo-mini-basemap>\n </div>\n\n <div *ngIf=\"hasMoreThanTwo\" class=\"more-baselayers\">\n <mat-icon class=\"material-icons mat-icon\" color=\"primary\"\n >arrow_drop_down</mat-icon\n >\n </div>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}.basemap-list igo-mini-basemap{display:block}.basemap-list igo-mini-basemap:not(:first-child){margin-top:4px}.igo-baselayers-switcher-container{height:auto;position:relative}.container-expand{overflow:hidden;border-width:0}.more-baselayers{width:80px;height:20px;background-color:#fff;text-align:center;cursor:pointer}.more-baselayers:hover{background-color:#efefef}.igo-baselayers-switcher-button-container{width:40px;background-color:#fff}.igo-baselayers-switcher-button-container:hover{background-color:#efefef}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MiniBaseMapComponent, selector: "igo-mini-basemap", inputs: ["map", "disabled", "title", "display", "baseLayer"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [baseLayersSwitcherSlideInOut()] });
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: BaseLayersSwitcherComponent, deps: [{ token: i1.MediaService }], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: BaseLayersSwitcherComponent, isStandalone: true, selector: "igo-baselayers-switcher", inputs: { map: "map", useStaticIcon: "useStaticIcon" }, ngImport: i0, template: "<div\n *ngIf=\"baseLayers.length > 0\"\n class=\"igo-baselayers-switcher-container\"\n [ngClass]=\"{ 'container-expand': expand }\"\n [@baseLayerSwitcherState]=\"\n expand ? 'expand' : useStaticIcon ? 'collapseIcon' : 'collapseMap'\n \"\n (@baseLayerSwitcherState.start)=\"showButton = false\"\n (@baseLayerSwitcherState.done)=\"showButton = true\"\n (click)=\"collapseOrExpand()\"\n>\n <div\n *ngIf=\"useStaticIcon && !expand && showButton\"\n class=\"igo-baselayers-switcher-button-container\"\n >\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.baselayerSwitcher' | translate\"\n matTooltipPosition=\"right\"\n color=\"primary\"\n >\n <mat-icon>photo_library</mat-icon>\n </button>\n </div>\n\n <div class=\"basemap-list\">\n <igo-mini-basemap\n *ngFor=\"let baseLayer of baseLayers; let i = index\"\n [map]=\"map\"\n [baseLayer]=\"baseLayer\"\n [title]=\"\n baseLayers.length > 2 && !expand\n ? ('igo.geo.baselayersSwitcher.title' | translate)\n : baseLayer.title\n \"\n [display]=\"expand || (i === 0 && !useStaticIcon)\"\n [disabled]=\"!expand && baseLayers.length > 1\"\n >\n </igo-mini-basemap>\n </div>\n\n <div *ngIf=\"hasMoreThanTwo\" class=\"more-baselayers\">\n <mat-icon class=\"material-icons mat-icon\" color=\"primary\"\n >arrow_drop_down</mat-icon\n >\n </div>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}.basemap-list igo-mini-basemap{display:block}.basemap-list igo-mini-basemap:not(:first-child){margin-top:4px}.igo-baselayers-switcher-container{height:auto;position:relative}.container-expand{overflow:hidden;border-width:0}.more-baselayers{width:80px;height:20px;background-color:#fff;text-align:center;cursor:pointer}.more-baselayers:hover{background-color:#efefef}.igo-baselayers-switcher-button-container{width:40px;background-color:#fff}.igo-baselayers-switcher-button-container:hover{background-color:#efefef}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MiniBaseMapComponent, selector: "igo-mini-basemap", inputs: ["map", "disabled", "title", "display", "baseLayer"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [baseLayersSwitcherSlideInOut()] });
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: BaseLayersSwitcherComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: BaseLayersSwitcherComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'igo-baselayers-switcher', animations: [baseLayersSwitcherSlideInOut()], standalone: true, imports: [
73
73
  NgIf,
@@ -84,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
84
84
  }], useStaticIcon: [{
85
85
  type: Input
86
86
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWxheWVycy1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvYmFzZWxheWVycy1zd2l0Y2hlci9iYXNlbGF5ZXJzLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9iYXNlbGF5ZXJzLXN3aXRjaGVyL2Jhc2VsYXllcnMtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUt2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBbUJoRSxNQUFNLE9BQU8sMkJBQTJCO0lBY2xCO0lBYlgsR0FBRyxDQUFTO0lBQ1osYUFBYSxDQUFVO0lBRXpCLFdBQVcsR0FBWSxFQUFFLENBQUM7SUFDMUIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNm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RkFDUCxlQUFlLDJJQUNmLGdCQUFnQiw0VEFDaEIsYUFBYSxvTEFDYixLQUFLLG1IQUNMLG9CQUFvQiwwSEFDcEIsaUJBQWlCLDhFQVZQLENBQUMsNEJBQTRCLEVBQUUsQ0FBQzs7MkZBYWpDLDJCQUEyQjtrQkFqQnZDLFNBQVM7K0JBQ0UseUJBQXlCLGNBR3ZCLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxjQUNoQyxJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLEtBQUs7d0JBQ0wsb0JBQW9CO3dCQUNwQixpQkFBaUI7cUJBQ2xCO2lGQUdRLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgTWVkaWEsIE1lZGlhU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVkaWEnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vc2hhcmVkL21hcCc7XG5pbXBvcnQgeyBiYXNlTGF5ZXJzU3dpdGNoZXJTbGlkZUluT3V0IH0gZnJvbSAnLi9iYXNlbGF5ZXJzLXN3aXRjaGVyLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBNaW5pQmFzZU1hcENvbXBvbmVudCB9IGZyb20gJy4vbWluaS1iYXNlbWFwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1iYXNlbGF5ZXJzLXN3aXRjaGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2VsYXllcnMtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNlbGF5ZXJzLXN3aXRjaGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtiYXNlTGF5ZXJzU3dpdGNoZXJTbGlkZUluT3V0KCldLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0NsYXNzLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgTWluaUJhc2VNYXBDb21wb25lbnQsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXNlTGF5ZXJzU3dpdGNoZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBtYXA6IElnb01hcDtcbiAgQElucHV0KCkgdXNlU3RhdGljSWNvbjogYm9vbGVhbjtcblxuICBwdWJsaWMgX2Jhc2VMYXllcnM6IExheWVyW10gPSBbXTtcbiAgcHVibGljIGV4cGFuZCA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0J1dHRvbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBsYXllcnMkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBoYXNNb3JlVGhhblR3bygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlTGF5ZXJzLmxlbmd0aCA+IDE7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlKSB7XG4gICAgY29uc3QgbWVkaWEgPSB0aGlzLm1lZGlhU2VydmljZS5tZWRpYSQudmFsdWU7XG4gICAgaWYgKG1lZGlhID09PSBNZWRpYS5Nb2JpbGUgJiYgdGhpcy51c2VTdGF0aWNJY29uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXNlU3RhdGljSWNvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubGF5ZXJzJCQgPSB0aGlzLm1hcC5sYXllcnMkLnN1YnNjcmliZSgoYXJyYXlMYXllcnMpID0+IHtcbiAgICAgIHRoaXMuX2Jhc2VMYXllcnMgPSBhcnJheUxheWVycy5maWx0ZXIoKGwpID0+IGwuYmFzZUxheWVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNvbGxhcHNlT3JFeHBhbmQoKSB7XG4gICAgaWYgKHRoaXMuaGFzTW9yZVRoYW5Ud28gfHwgdGhpcy51c2VTdGF0aWNJY29uKSB7XG4gICAgICB0aGlzLmV4cGFuZCA9ICF0aGlzLmV4cGFuZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leHBhbmQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXQgYmFzZUxheWVycygpOiBMYXllcltdIHtcbiAgICBjb25zdCBtYXBSZXNvbHV0aW9uID0gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0UmVzb2x1dGlvbigpO1xuICAgIGNvbnN0IG1hcFpvb20gPSB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5nZXRab29tKCk7XG5cbiAgICBjb25zdCBibCA9IHRoaXMuX2Jhc2VMYXllcnMuZmlsdGVyKChsKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoIWwub3B0aW9ucy5tYXhSZXNvbHV0aW9uIHx8XG4gICAgICAgICAgbWFwUmVzb2x1dGlvbiA8PSBsLm9wdGlvbnMubWF4UmVzb2x1dGlvbikgJiZcbiAgICAgICAgKCFsLm9wdGlvbnMubWluUmVzb2x1dGlvbiB8fFxuICAgICAgICAgIG1hcFJlc29sdXRpb24gPj0gbC5vcHRpb25zLm1pblJlc29sdXRpb24pICYmXG4gICAgICAgICghbC5vcHRpb25zLnNvdXJjZS5vcHRpb25zLm1heFpvb20gfHxcbiAgICAgICAgICBtYXBab29tIDw9IGwub3B0aW9ucy5zb3VyY2Uub3B0aW9ucy5tYXhab29tKSAmJlxuICAgICAgICAoIWwub3B0aW9ucy5zb3VyY2Uub3B0aW9ucy5taW5ab29tIHx8XG4gICAgICAgICAgbWFwWm9vbSA+PSBsLm9wdGlvbnMuc291cmNlLm9wdGlvbnMubWluWm9vbSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBibEhpZGRlbiA9IGJsLmZpbHRlcigobCkgPT4gIWwudmlzaWJsZSk7XG4gICAgcmV0dXJuIGJsSGlkZGVuLmxlbmd0aCArIDEgPT09IGJsLmxlbmd0aCA/IGJsSGlkZGVuIDogYmw7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJiYXNlTGF5ZXJzLmxlbmd0aCA+IDBcIlxuICBjbGFzcz1cImlnby1iYXNlbGF5ZXJzLXN3aXRjaGVyLWNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cInsgJ2NvbnRhaW5lci1leHBhbmQnOiBleHBhbmQgfVwiXG4gIFtAYmFzZUxheWVyU3dpdGNoZXJTdGF0ZV09XCJcbiAgICBleHBhbmQgPyAnZXhwYW5kJyA6IHVzZVN0YXRpY0ljb24gPyAnY29sbGFwc2VJY29uJyA6ICdjb2xsYXBzZU1hcCdcbiAgXCJcbiAgKEBiYXNlTGF5ZXJTd2l0Y2hlclN0YXRlLnN0YXJ0KT1cInNob3dCdXR0b24gPSBmYWxzZVwiXG4gIChAYmFzZUxheWVyU3dpdGNoZXJTdGF0ZS5kb25lKT1cInNob3dCdXR0b24gPSB0cnVlXCJcbiAgKGNsaWNrKT1cImNvbGxhcHNlT3JFeHBhbmQoKVwiXG4+XG4gIDxkaXZcbiAgICAqbmdJZj1cInVzZVN0YXRpY0ljb24gJiYgIWV4cGFuZCAmJiBzaG93QnV0dG9uXCJcbiAgICBjbGFzcz1cImlnby1iYXNlbGF5ZXJzLXN3aXRjaGVyLWJ1dHRvbi1jb250YWluZXJcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5tYXBCdXR0b25zLmJhc2VsYXllclN3aXRjaGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj5waG90b19saWJyYXJ5PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImJhc2VtYXAtbGlzdFwiPlxuICAgIDxpZ28tbWluaS1iYXNlbWFwXG4gICAgICAqbmdGb3I9XCJsZXQgYmFzZUxheWVyIG9mIGJhc2VMYXllcnM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgW21hcF09XCJtYXBcIlxuICAgICAgW2Jhc2VMYXllcl09XCJiYXNlTGF5ZXJcIlxuICAgICAgW3RpdGxlXT1cIlxuICAgICAgICBiYXNlTGF5ZXJzLmxlbmd0aCA+IDIgJiYgIWV4cGFuZFxuICAgICAgICAgID8gKCdpZ28uZ2VvLmJhc2VsYXllcnNTd2l0Y2hlci50aXRsZScgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiBiYXNlTGF5ZXIudGl0bGVcbiAgICAgIFwiXG4gICAgICBbZGlzcGxheV09XCJleHBhbmQgfHwgKGkgPT09IDAgJiYgIXVzZVN0YXRpY0ljb24pXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhZXhwYW5kICYmIGJhc2VMYXllcnMubGVuZ3RoID4gMVwiXG4gICAgPlxuICAgIDwvaWdvLW1pbmktYmFzZW1hcD5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImhhc01vcmVUaGFuVHdvXCIgY2xhc3M9XCJtb3JlLWJhc2VsYXllcnNcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBtYXQtaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICA+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvblxuICAgID5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWxheWVycy1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvYmFzZWxheWVycy1zd2l0Y2hlci9iYXNlbGF5ZXJzLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9iYXNlbGF5ZXJzLXN3aXRjaGVyL2Jhc2VsYXllcnMtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUt2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBbUJoRSxNQUFNLE9BQU8sMkJBQTJCO0lBY2xCO0lBYlgsR0FBRyxDQUFTO0lBQ1osYUFBYSxDQUFVO0lBRXpCLFdBQVcsR0FBWSxFQUFFLENBQUM7SUFDMUIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNm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RkFDUCxlQUFlLDJJQUNmLGdCQUFnQiw0VEFDaEIsYUFBYSxvTEFDYixLQUFLLG1IQUNMLG9CQUFvQiwwSEFDcEIsaUJBQWlCLDhFQVZQLENBQUMsNEJBQTRCLEVBQUUsQ0FBQzs7NEZBYWpDLDJCQUEyQjtrQkFqQnZDLFNBQVM7K0JBQ0UseUJBQXlCLGNBR3ZCLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxjQUNoQyxJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLEtBQUs7d0JBQ0wsb0JBQW9CO3dCQUNwQixpQkFBaUI7cUJBQ2xCO2lGQUdRLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgTWVkaWEsIE1lZGlhU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVkaWEnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vc2hhcmVkL21hcCc7XG5pbXBvcnQgeyBiYXNlTGF5ZXJzU3dpdGNoZXJTbGlkZUluT3V0IH0gZnJvbSAnLi9iYXNlbGF5ZXJzLXN3aXRjaGVyLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBNaW5pQmFzZU1hcENvbXBvbmVudCB9IGZyb20gJy4vbWluaS1iYXNlbWFwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1iYXNlbGF5ZXJzLXN3aXRjaGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2VsYXllcnMtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNlbGF5ZXJzLXN3aXRjaGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtiYXNlTGF5ZXJzU3dpdGNoZXJTbGlkZUluT3V0KCldLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0NsYXNzLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgTWluaUJhc2VNYXBDb21wb25lbnQsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXNlTGF5ZXJzU3dpdGNoZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBtYXA6IElnb01hcDtcbiAgQElucHV0KCkgdXNlU3RhdGljSWNvbjogYm9vbGVhbjtcblxuICBwdWJsaWMgX2Jhc2VMYXllcnM6IExheWVyW10gPSBbXTtcbiAgcHVibGljIGV4cGFuZCA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0J1dHRvbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBsYXllcnMkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBoYXNNb3JlVGhhblR3bygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlTGF5ZXJzLmxlbmd0aCA+IDE7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlKSB7XG4gICAgY29uc3QgbWVkaWEgPSB0aGlzLm1lZGlhU2VydmljZS5tZWRpYSQudmFsdWU7XG4gICAgaWYgKG1lZGlhID09PSBNZWRpYS5Nb2JpbGUgJiYgdGhpcy51c2VTdGF0aWNJY29uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXNlU3RhdGljSWNvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubGF5ZXJzJCQgPSB0aGlzLm1hcC5sYXllcnMkLnN1YnNjcmliZSgoYXJyYXlMYXllcnMpID0+IHtcbiAgICAgIHRoaXMuX2Jhc2VMYXllcnMgPSBhcnJheUxheWVycy5maWx0ZXIoKGwpID0+IGwuYmFzZUxheWVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNvbGxhcHNlT3JFeHBhbmQoKSB7XG4gICAgaWYgKHRoaXMuaGFzTW9yZVRoYW5Ud28gfHwgdGhpcy51c2VTdGF0aWNJY29uKSB7XG4gICAgICB0aGlzLmV4cGFuZCA9ICF0aGlzLmV4cGFuZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leHBhbmQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXQgYmFzZUxheWVycygpOiBMYXllcltdIHtcbiAgICBjb25zdCBtYXBSZXNvbHV0aW9uID0gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0UmVzb2x1dGlvbigpO1xuICAgIGNvbnN0IG1hcFpvb20gPSB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5nZXRab29tKCk7XG5cbiAgICBjb25zdCBibCA9IHRoaXMuX2Jhc2VMYXllcnMuZmlsdGVyKChsKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoIWwub3B0aW9ucy5tYXhSZXNvbHV0aW9uIHx8XG4gICAgICAgICAgbWFwUmVzb2x1dGlvbiA8PSBsLm9wdGlvbnMubWF4UmVzb2x1dGlvbikgJiZcbiAgICAgICAgKCFsLm9wdGlvbnMubWluUmVzb2x1dGlvbiB8fFxuICAgICAgICAgIG1hcFJlc29sdXRpb24gPj0gbC5vcHRpb25zLm1pblJlc29sdXRpb24pICYmXG4gICAgICAgICghbC5vcHRpb25zLnNvdXJjZS5vcHRpb25zLm1heFpvb20gfHxcbiAgICAgICAgICBtYXBab29tIDw9IGwub3B0aW9ucy5zb3VyY2Uub3B0aW9ucy5tYXhab29tKSAmJlxuICAgICAgICAoIWwub3B0aW9ucy5zb3VyY2Uub3B0aW9ucy5taW5ab29tIHx8XG4gICAgICAgICAgbWFwWm9vbSA+PSBsLm9wdGlvbnMuc291cmNlLm9wdGlvbnMubWluWm9vbSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBibEhpZGRlbiA9IGJsLmZpbHRlcigobCkgPT4gIWwudmlzaWJsZSk7XG4gICAgcmV0dXJuIGJsSGlkZGVuLmxlbmd0aCArIDEgPT09IGJsLmxlbmd0aCA/IGJsSGlkZGVuIDogYmw7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJiYXNlTGF5ZXJzLmxlbmd0aCA+IDBcIlxuICBjbGFzcz1cImlnby1iYXNlbGF5ZXJzLXN3aXRjaGVyLWNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cInsgJ2NvbnRhaW5lci1leHBhbmQnOiBleHBhbmQgfVwiXG4gIFtAYmFzZUxheWVyU3dpdGNoZXJTdGF0ZV09XCJcbiAgICBleHBhbmQgPyAnZXhwYW5kJyA6IHVzZVN0YXRpY0ljb24gPyAnY29sbGFwc2VJY29uJyA6ICdjb2xsYXBzZU1hcCdcbiAgXCJcbiAgKEBiYXNlTGF5ZXJTd2l0Y2hlclN0YXRlLnN0YXJ0KT1cInNob3dCdXR0b24gPSBmYWxzZVwiXG4gIChAYmFzZUxheWVyU3dpdGNoZXJTdGF0ZS5kb25lKT1cInNob3dCdXR0b24gPSB0cnVlXCJcbiAgKGNsaWNrKT1cImNvbGxhcHNlT3JFeHBhbmQoKVwiXG4+XG4gIDxkaXZcbiAgICAqbmdJZj1cInVzZVN0YXRpY0ljb24gJiYgIWV4cGFuZCAmJiBzaG93QnV0dG9uXCJcbiAgICBjbGFzcz1cImlnby1iYXNlbGF5ZXJzLXN3aXRjaGVyLWJ1dHRvbi1jb250YWluZXJcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5tYXBCdXR0b25zLmJhc2VsYXllclN3aXRjaGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj5waG90b19saWJyYXJ5PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImJhc2VtYXAtbGlzdFwiPlxuICAgIDxpZ28tbWluaS1iYXNlbWFwXG4gICAgICAqbmdGb3I9XCJsZXQgYmFzZUxheWVyIG9mIGJhc2VMYXllcnM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgW21hcF09XCJtYXBcIlxuICAgICAgW2Jhc2VMYXllcl09XCJiYXNlTGF5ZXJcIlxuICAgICAgW3RpdGxlXT1cIlxuICAgICAgICBiYXNlTGF5ZXJzLmxlbmd0aCA+IDIgJiYgIWV4cGFuZFxuICAgICAgICAgID8gKCdpZ28uZ2VvLmJhc2VsYXllcnNTd2l0Y2hlci50aXRsZScgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiBiYXNlTGF5ZXIudGl0bGVcbiAgICAgIFwiXG4gICAgICBbZGlzcGxheV09XCJleHBhbmQgfHwgKGkgPT09IDAgJiYgIXVzZVN0YXRpY0ljb24pXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhZXhwYW5kICYmIGJhc2VMYXllcnMubGVuZ3RoID4gMVwiXG4gICAgPlxuICAgIDwvaWdvLW1pbmktYmFzZW1hcD5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImhhc01vcmVUaGFuVHdvXCIgY2xhc3M9XCJtb3JlLWJhc2VsYXllcnNcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBtYXQtaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICA+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvblxuICAgID5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -100,10 +100,10 @@ export class MiniBaseMapComponent {
100
100
  });
101
101
  }
102
102
  }
103
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MiniBaseMapComponent, deps: [{ token: i1.LayerService }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });
104
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: MiniBaseMapComponent, isStandalone: true, selector: "igo-mini-basemap", inputs: { map: "map", disabled: "disabled", title: "title", display: "display", baseLayer: "baseLayer" }, ngImport: i0, template: "<div class=\"igo-mini-basemap-container\">\n <div *ngIf=\"display\" (click)=\"changeBaseLayer(baseLayer)\">\n <igo-map-browser [map]=\"basemap\"></igo-map-browser>\n <div *ngIf=\"title\" class=\"igo-mini-basemap-title\">{{ title }}</div>\n </div>\n</div>\n", styles: [".igo-mini-basemap-container{width:80px;height:80px;background-color:#ffffff03;border:2px solid white;box-shadow:0 1px 4px #0000004d;cursor:pointer}.igo-mini-basemap-container:hover .igo-mini-basemap-title{color:#000;text-shadow:0 0 5px white}.igo-mini-basemap-container>div{width:100%;height:100%}.igo-mini-basemap-title{position:relative;top:-76px;height:76px;width:76px;text-align:center;vertical-align:bottom;color:#fff;text-shadow:0 0 5px black;white-space:normal;display:flex;align-items:flex-end;justify-content:center}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MapBrowserComponent, selector: "igo-map-browser", inputs: ["map", "view"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
103
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: MiniBaseMapComponent, deps: [{ token: i1.LayerService }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });
104
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: MiniBaseMapComponent, isStandalone: true, selector: "igo-mini-basemap", inputs: { map: "map", disabled: "disabled", title: "title", display: "display", baseLayer: "baseLayer" }, ngImport: i0, template: "<div class=\"igo-mini-basemap-container\">\n <div *ngIf=\"display\" (click)=\"changeBaseLayer(baseLayer)\">\n <igo-map-browser [map]=\"basemap\"></igo-map-browser>\n <div *ngIf=\"title\" class=\"igo-mini-basemap-title\">{{ title }}</div>\n </div>\n</div>\n", styles: [".igo-mini-basemap-container{width:80px;height:80px;background-color:#ffffff03;border:2px solid white;box-shadow:0 1px 4px #0000004d;cursor:pointer}.igo-mini-basemap-container:hover .igo-mini-basemap-title{color:#000;text-shadow:0 0 5px white}.igo-mini-basemap-container>div{width:100%;height:100%}.igo-mini-basemap-title{position:relative;top:-76px;height:76px;width:76px;text-align:center;vertical-align:bottom;color:#fff;text-shadow:0 0 5px black;white-space:normal;display:flex;align-items:flex-end;justify-content:center}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MapBrowserComponent, selector: "igo-map-browser", inputs: ["map", "view"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
105
  }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MiniBaseMapComponent, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: MiniBaseMapComponent, decorators: [{
107
107
  type: Component,
108
108
  args: [{ selector: 'igo-mini-basemap', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, MapBrowserComponent], template: "<div class=\"igo-mini-basemap-container\">\n <div *ngIf=\"display\" (click)=\"changeBaseLayer(baseLayer)\">\n <igo-map-browser [map]=\"basemap\"></igo-map-browser>\n <div *ngIf=\"title\" class=\"igo-mini-basemap-title\">{{ title }}</div>\n </div>\n</div>\n", styles: [".igo-mini-basemap-container{width:80px;height:80px;background-color:#ffffff03;border:2px solid white;box-shadow:0 1px 4px #0000004d;cursor:pointer}.igo-mini-basemap-container:hover .igo-mini-basemap-title{color:#000;text-shadow:0 0 5px white}.igo-mini-basemap-container>div{width:100%;height:100%}.igo-mini-basemap-title{position:relative;top:-76px;height:76px;width:76px;text-align:center;vertical-align:bottom;color:#fff;text-shadow:0 0 5px black;white-space:normal;display:flex;align-items:flex-end;justify-content:center}\n"] }]
109
109
  }], ctorParameters: () => [{ type: i1.LayerService }, { type: i0.ApplicationRef }], propDecorators: { map: [{
@@ -117,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
117
117
  }], baseLayer: [{
118
118
  type: Input
119
119
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1iYXNlbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9iYXNlbGF5ZXJzLXN3aXRjaGVyL21pbmktYmFzZW1hcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvYmFzZWxheWVycy1zd2l0Y2hlci9taW5pLWJhc2VtYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRU4sTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUNMLEtBQUssRUFJTixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVdkMsTUFBTSxPQUFPLG9CQUFvQjtJQStCckI7SUFDQTtJQS9CRCxHQUFHLENBQVM7SUFDWixRQUFRLENBQVU7SUFDbEIsS0FBSyxDQUFTO0lBRXZCLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ08sUUFBUSxDQUFVO0lBRTFCLElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNPLFVBQVUsQ0FBUTtJQUVuQixPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDMUIsUUFBUSxFQUFFLEVBQUU7UUFDWixZQUFZLEVBQUUsS0FBSztLQUNwQixDQUFDLENBQUM7SUFFSCxZQUNVLFlBQTBCLEVBQzFCLE1BQXNCO1FBRHRCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBQzdCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLE1BQWdCLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsdUJBQXVCLENBQUUsTUFBTSxDQUFDLE1BQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLE1BQWdCLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsdUJBQXVCLENBQUUsTUFBTSxDQUFDLE1BQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBZ0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxXQUFXO1FBQ3pDLE1BQU0scUJBQXFCLEdBQUcsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQzlDLHFCQUFxQixDQUFDLFVBQVUsQ0FDakMsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQzVDLHFCQUFxQixDQUFDLFFBQVEsQ0FDL0IsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQWdCO1FBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFL0IsTUFBTSxPQUFPLEdBQVEsTUFBTSxDQUFDLE1BQU0sQ0FDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQ2hDLFNBQVMsQ0FBQyxPQUFPLEVBQ2pCO1lBQ0UsT0FBTyxFQUFFLElBQUk7WUFDYixTQUFTLEVBQUUsS0FBSztTQUNqQixDQUNGLENBQUM7UUFFRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFNBQWdCO1FBQzVDLE1BQU0sWUFBWSxHQUFlLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUEyQixZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3pELE1BQU0sYUFBYSxHQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDcEQsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQiwwQkFBMEI7WUFDMUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQTBCLEVBQUUsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7b0JBQ3RDLE1BQU0sWUFBWSxHQUFVLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDOUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sS0FBSyxRQUFRLENBQ2xFLENBQUM7b0JBQ0YsSUFBSSxZQUFZLEVBQUUsQ0FBQzt3QkFDakIsTUFBTSxrQkFBa0IsR0FBaUIsTUFBTSxDQUFDLE1BQU0sQ0FDcEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQ25DLFlBQVksQ0FBQyxPQUFPLEVBQ3BCOzRCQUNFLE1BQU0sRUFBRSxJQUFJOzRCQUNaLE9BQU8sRUFDTCxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsSUFBSSxJQUFJOzRCQUM5RCxTQUFTLEVBQUUsS0FBSzt5QkFDRCxDQUNsQixDQUFDO3dCQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUNsRCxDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3VHQTVIVSxvQkFBb0I7MkZBQXBCLG9CQUFvQixzTEMvQmpDLDBRQU1BLHlrQkR1QlksSUFBSSw2RkFBRSxtQkFBbUI7OzJGQUV4QixvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDOzhHQUczQixHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQVdGLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCBPbE1hcCBmcm9tICdvbC9NYXAnO1xuaW1wb3J0IE9sVmlldyBmcm9tICdvbC9WaWV3JztcblxuaW1wb3J0IHtcbiAgTGF5ZXIsXG4gIExheWVyT3B0aW9ucyxcbiAgTGF5ZXJzTGluayxcbiAgTGF5ZXJzTGlua1Byb3BlcnRpZXNcbn0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkJztcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcEJyb3dzZXJDb21wb25lbnQgfSBmcm9tICcuLi9tYXAtYnJvd3Nlci9tYXAtYnJvd3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vc2hhcmVkL21hcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1taW5pLWJhc2VtYXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWluaS1iYXNlbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWluaS1iYXNlbWFwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgTWFwQnJvd3NlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTWluaUJhc2VNYXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBtYXA6IElnb01hcDtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc3BsYXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXk7XG4gIH1cbiAgc2V0IGRpc3BsYXkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNwbGF5ID0gdmFsdWU7XG4gICAgdGhpcy5iYXNlbWFwLm9sLmdldFZpZXcoKS5jaGFuZ2VkKCk7XG4gIH1cbiAgcHJpdmF0ZSBfZGlzcGxheTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBnZXQgYmFzZUxheWVyKCk6IExheWVyIHtcbiAgICByZXR1cm4gdGhpcy5fYmFzZUxheWVyO1xuICB9XG4gIHNldCBiYXNlTGF5ZXIodmFsdWU6IExheWVyKSB7XG4gICAgdGhpcy5fYmFzZUxheWVyID0gdmFsdWU7XG4gICAgdGhpcy5oYW5kbGVCYXNlTGF5ZXJDaGFuZ2VkKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9iYXNlTGF5ZXI6IExheWVyO1xuXG4gIHB1YmxpYyBiYXNlbWFwID0gbmV3IElnb01hcCh7XG4gICAgY29udHJvbHM6IHt9LFxuICAgIGludGVyYWN0aW9uczogZmFsc2VcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWZcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKHRoaXMubWFwLm9sLmdldFZpZXcoKSk7XG4gICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIub2xWaWV3Lm9uKCdjaGFuZ2UnLCAoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKGNoYW5nZS50YXJnZXQgYXMgT2xWaWV3KTtcbiAgICB9KTtcbiAgICB0aGlzLm1hcC5vbC5vbigncG9pbnRlcmRyYWcnLCAoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKChjaGFuZ2UudGFyZ2V0IGFzIE9sTWFwKS5nZXRWaWV3KCkpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LnVuKCdjaGFuZ2UnLCAoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKGNoYW5nZS50YXJnZXQgYXMgT2xWaWV3KTtcbiAgICB9KTtcbiAgICB0aGlzLm1hcC5vbC51bigncG9pbnRlcmRyYWcnLCAoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKChjaGFuZ2UudGFyZ2V0IGFzIE9sTWFwKS5nZXRWaWV3KCkpO1xuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlQmFzZUxheWVyKGJhc2VMYXllcjogTGF5ZXIpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hcC5jaGFuZ2VCYXNlTGF5ZXIoYmFzZUxheWVyKTtcbiAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKG1haW5NYXBWaWV3KSB7XG4gICAgY29uc3QgbWFpbk1hcFZpZXdQcm9wZXJ0aWVzID0gbWFpbk1hcFZpZXcuZ2V0UHJvcGVydGllcygpO1xuICAgIHRoaXMuYmFzZW1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuc2V0UmVzb2x1dGlvbihcbiAgICAgIG1haW5NYXBWaWV3UHJvcGVydGllcy5yZXNvbHV0aW9uXG4gICAgKTtcbiAgICB0aGlzLmJhc2VtYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LnNldFJvdGF0aW9uKFxuICAgICAgbWFpbk1hcFZpZXdQcm9wZXJ0aWVzLnJvdGF0aW9uXG4gICAgKTtcbiAgICB0aGlzLmJhc2VtYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LnNldENlbnRlcihcbiAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldENlbnRlcigpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQmFzZUxheWVyQ2hhbmdlZChiYXNlbGF5ZXI6IExheWVyKSB7XG4gICAgdGhpcy5iYXNlbWFwLnJlbW92ZUFsbExheWVycygpO1xuXG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIE9iamVjdC5jcmVhdGUoYmFzZWxheWVyLm9wdGlvbnMpLFxuICAgICAgYmFzZWxheWVyLm9wdGlvbnMsXG4gICAgICB7XG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIGJhc2VMYXllcjogZmFsc2VcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgbGF5ZXIgPSB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcihvcHRpb25zKTtcbiAgICB0aGlzLmJhc2VtYXAuYWRkTGF5ZXIobGF5ZXIpO1xuICAgIHRoaXMuaGFuZGxlTGlua2VkQmFzZUxheWVyKGxheWVyKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTGlua2VkQmFzZUxheWVyKGJhc2VsYXllcjogTGF5ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5rZWRMYXllcnM6IExheWVyc0xpbmsgPSBiYXNlbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM7XG4gICAgaWYgKCFsaW5rZWRMYXllcnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbGlua3M6IExheWVyc0xpbmtQcm9wZXJ0aWVzW10gPSBsaW5rZWRMYXllcnMubGlua3M7XG4gICAgY29uc3QgaXNQYXJlbnRMYXllcjogYm9vbGVhbiA9IGxpbmtzID8gdHJ1ZSA6IGZhbHNlO1xuICAgIGlmIChpc1BhcmVudExheWVyKSB7XG4gICAgICAvLyBzZWFyY2ggZm9yIGNoaWxkIGxheWVyc1xuICAgICAgbGlua3MubWFwKChsaW5rOiBMYXllcnNMaW5rUHJvcGVydGllcykgPT4ge1xuICAgICAgICBsaW5rLmxpbmtlZElkcy5tYXAoKGxpbmtlZElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBsYXllclRvQXBwbHk6IExheWVyID0gdGhpcy5tYXAubGF5ZXJzLmZpbmQoXG4gICAgICAgICAgICAobGF5ZXI6IExheWVyKSA9PiBsYXllci5vcHRpb25zLmxpbmtlZExheWVycz8ubGlua0lkID09PSBsaW5rZWRJZFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGxheWVyVG9BcHBseSkge1xuICAgICAgICAgICAgY29uc3QgbGlua2VkTGF5ZXJPcHRpb25zOiBMYXllck9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICBPYmplY3QuY3JlYXRlKGxheWVyVG9BcHBseS5vcHRpb25zKSxcbiAgICAgICAgICAgICAgbGF5ZXJUb0FwcGx5Lm9wdGlvbnMsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB6SW5kZXg6IDkwMDAsXG4gICAgICAgICAgICAgICAgdmlzaWJsZTpcbiAgICAgICAgICAgICAgICAgIGxheWVyVG9BcHBseS5vcHRpb25zLmxpbmtlZExheWVycz8uc2hvd0luTWluaUJhc2VNYXAgPz8gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlTGF5ZXI6IGZhbHNlXG4gICAgICAgICAgICAgIH0gYXMgTGF5ZXJPcHRpb25zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5iYXNlbWFwLmFkZExheWVyKFxuICAgICAgICAgICAgICB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcihsaW5rZWRMYXllck9wdGlvbnMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ28tbWluaS1iYXNlbWFwLWNvbnRhaW5lclwiPlxuICA8ZGl2ICpuZ0lmPVwiZGlzcGxheVwiIChjbGljayk9XCJjaGFuZ2VCYXNlTGF5ZXIoYmFzZUxheWVyKVwiPlxuICAgIDxpZ28tbWFwLWJyb3dzZXIgW21hcF09XCJiYXNlbWFwXCI+PC9pZ28tbWFwLWJyb3dzZXI+XG4gICAgPGRpdiAqbmdJZj1cInRpdGxlXCIgY2xhc3M9XCJpZ28tbWluaS1iYXNlbWFwLXRpdGxlXCI+e3sgdGl0bGUgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1iYXNlbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9iYXNlbGF5ZXJzLXN3aXRjaGVyL21pbmktYmFzZW1hcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvYmFzZWxheWVycy1zd2l0Y2hlci9taW5pLWJhc2VtYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRU4sTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUNMLEtBQUssRUFJTixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVdkMsTUFBTSxPQUFPLG9CQUFvQjtJQStCckI7SUFDQTtJQS9CRCxHQUFHLENBQVM7SUFDWixRQUFRLENBQVU7SUFDbEIsS0FBSyxDQUFTO0lBRXZCLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ08sUUFBUSxDQUFVO0lBRTFCLElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFD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OzRCQUNFLE1BQU0sRUFBRSxJQUFJOzRCQUNaLE9BQU8sRUFDTCxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsSUFBSSxJQUFJOzRCQUM5RCxTQUFTLEVBQUUsS0FBSzt5QkFDRCxDQUNsQixDQUFDO3dCQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUNsRCxDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3dHQTVIVSxvQkFBb0I7NEZBQXBCLG9CQUFvQixzTEMvQmpDLDBRQU1BLHlrQkR1QlksSUFBSSw2RkFBRSxtQkFBbUI7OzRGQUV4QixvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDOzhHQUczQixHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQVdGLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCBPbE1hcCBmcm9tICdvbC9NYXAnO1xuaW1wb3J0IE9sVmlldyBmcm9tICdvbC9WaWV3JztcblxuaW1wb3J0IHtcbiAgTGF5ZXIsXG4gIExheWVyT3B0aW9ucyxcbiAgTGF5ZXJzTGluayxcbiAgTGF5ZXJzTGlua1Byb3BlcnRpZXNcbn0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkJztcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcEJyb3dzZXJDb21wb25lbnQgfSBmcm9tICcuLi9tYXAtYnJvd3Nlci9tYXAtYnJvd3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vc2hhcmVkL21hcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1taW5pLWJhc2VtYXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWluaS1iYXNlbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWluaS1iYXNlbWFwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgTWFwQnJvd3NlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTWluaUJhc2VNYXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBtYXA6IElnb01hcDtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc3BsYXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXk7XG4gIH1cbiAgc2V0IGRpc3BsYXkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNwbGF5ID0gdmFsdWU7XG4gICAgdGhpcy5iYXNlbWFwLm9sLmdldFZpZXcoKS5jaGFuZ2VkKCk7XG4gIH1cbiAgcHJpdmF0ZSBfZGlzcGxheTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBnZXQgYmFzZUxheWVyKCk6IExheWVyIHtcbiAgICByZXR1cm4gdGhpcy5fYmFzZUxheWVyO1xuICB9XG4gIHNldCBiYXNlTGF5ZXIodmFsdWU6IExheWVyKSB7XG4gICAgdGhpcy5fYmFzZUxheWVyID0gdmFsdWU7XG4gICAgdGhpcy5oYW5kbGVCYXNlTGF5ZXJDaGFuZ2VkKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9iYXNlTGF5ZXI6IExheWVyO1xuXG4gIHB1YmxpYyBiYXNlbWFwID0gbmV3IElnb01hcCh7XG4gICAgY29udHJvbHM6IHt9LFxuICAgIGludGVyYWN0aW9uczogZmFsc2VcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWZcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKHRoaXMubWFwLm9sLmdldFZpZXcoKSk7XG4gICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIub2xWaWV3Lm9uKCdjaGFuZ2UnLCAoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKGNoYW5nZS50YXJnZXQgYXMgT2xWaWV3KTtcbiAgICB9KTtcbiAgICB0aGlzLm1hcC5vbC5vbigncG9pbnRlcmRyYWcnLCAoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKChjaGFuZ2UudGFyZ2V0IGFzIE9sTWFwKS5nZXRWaWV3KCkpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LnVuKCdjaGFuZ2UnLCAoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKGNoYW5nZS50YXJnZXQgYXMgT2xWaWV3KTtcbiAgICB9KTtcbiAgICB0aGlzLm1hcC5vbC51bigncG9pbnRlcmRyYWcnLCAoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKChjaGFuZ2UudGFyZ2V0IGFzIE9sTWFwKS5nZXRWaWV3KCkpO1xuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlQmFzZUxheWVyKGJhc2VMYXllcjogTGF5ZXIpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hcC5jaGFuZ2VCYXNlTGF5ZXIoYmFzZUxheWVyKTtcbiAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU1haW5NYXBWaWV3Q2hhbmdlKG1haW5NYXBWaWV3KSB7XG4gICAgY29uc3QgbWFpbk1hcFZpZXdQcm9wZXJ0aWVzID0gbWFpbk1hcFZpZXcuZ2V0UHJvcGVydGllcygpO1xuICAgIHRoaXMuYmFzZW1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuc2V0UmVzb2x1dGlvbihcbiAgICAgIG1haW5NYXBWaWV3UHJvcGVydGllcy5yZXNvbHV0aW9uXG4gICAgKTtcbiAgICB0aGlzLmJhc2VtYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LnNldFJvdGF0aW9uKFxuICAgICAgbWFpbk1hcFZpZXdQcm9wZXJ0aWVzLnJvdGF0aW9uXG4gICAgKTtcbiAgICB0aGlzLmJhc2VtYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LnNldENlbnRlcihcbiAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldENlbnRlcigpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQmFzZUxheWVyQ2hhbmdlZChiYXNlbGF5ZXI6IExheWVyKSB7XG4gICAgdGhpcy5iYXNlbWFwLnJlbW92ZUFsbExheWVycygpO1xuXG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIE9iamVjdC5jcmVhdGUoYmFzZWxheWVyLm9wdGlvbnMpLFxuICAgICAgYmFzZWxheWVyLm9wdGlvbnMsXG4gICAgICB7XG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIGJhc2VMYXllcjogZmFsc2VcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgbGF5ZXIgPSB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcihvcHRpb25zKTtcbiAgICB0aGlzLmJhc2VtYXAuYWRkTGF5ZXIobGF5ZXIpO1xuICAgIHRoaXMuaGFuZGxlTGlua2VkQmFzZUxheWVyKGxheWVyKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTGlua2VkQmFzZUxheWVyKGJhc2VsYXllcjogTGF5ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5rZWRMYXllcnM6IExheWVyc0xpbmsgPSBiYXNlbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM7XG4gICAgaWYgKCFsaW5rZWRMYXllcnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbGlua3M6IExheWVyc0xpbmtQcm9wZXJ0aWVzW10gPSBsaW5rZWRMYXllcnMubGlua3M7XG4gICAgY29uc3QgaXNQYXJlbnRMYXllcjogYm9vbGVhbiA9IGxpbmtzID8gdHJ1ZSA6IGZhbHNlO1xuICAgIGlmIChpc1BhcmVudExheWVyKSB7XG4gICAgICAvLyBzZWFyY2ggZm9yIGNoaWxkIGxheWVyc1xuICAgICAgbGlua3MubWFwKChsaW5rOiBMYXllcnNMaW5rUHJvcGVydGllcykgPT4ge1xuICAgICAgICBsaW5rLmxpbmtlZElkcy5tYXAoKGxpbmtlZElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBsYXllclRvQXBwbHk6IExheWVyID0gdGhpcy5tYXAubGF5ZXJzLmZpbmQoXG4gICAgICAgICAgICAobGF5ZXI6IExheWVyKSA9PiBsYXllci5vcHRpb25zLmxpbmtlZExheWVycz8ubGlua0lkID09PSBsaW5rZWRJZFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGxheWVyVG9BcHBseSkge1xuICAgICAgICAgICAgY29uc3QgbGlua2VkTGF5ZXJPcHRpb25zOiBMYXllck9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICBPYmplY3QuY3JlYXRlKGxheWVyVG9BcHBseS5vcHRpb25zKSxcbiAgICAgICAgICAgICAgbGF5ZXJUb0FwcGx5Lm9wdGlvbnMsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB6SW5kZXg6IDkwMDAsXG4gICAgICAgICAgICAgICAgdmlzaWJsZTpcbiAgICAgICAgICAgICAgICAgIGxheWVyVG9BcHBseS5vcHRpb25zLmxpbmtlZExheWVycz8uc2hvd0luTWluaUJhc2VNYXAgPz8gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlTGF5ZXI6IGZhbHNlXG4gICAgICAgICAgICAgIH0gYXMgTGF5ZXJPcHRpb25zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5iYXNlbWFwLmFkZExheWVyKFxuICAgICAgICAgICAgICB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllcihsaW5rZWRMYXllck9wdGlvbnMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ28tbWluaS1iYXNlbWFwLWNvbnRhaW5lclwiPlxuICA8ZGl2ICpuZ0lmPVwiZGlzcGxheVwiIChjbGljayk9XCJjaGFuZ2VCYXNlTGF5ZXIoYmFzZUxheWVyKVwiPlxuICAgIDxpZ28tbWFwLWJyb3dzZXIgW21hcF09XCJiYXNlbWFwXCI+PC9pZ28tbWFwLWJyb3dzZXI+XG4gICAgPGRpdiAqbmdJZj1cInRpdGxlXCIgY2xhc3M9XCJpZ28tbWluaS1iYXNlbWFwLXRpdGxlXCI+e3sgdGl0bGUgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==