@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
@@ -376,10 +376,10 @@ export class DirectionsComponent {
376
376
  }
377
377
  this.getRoutes();
378
378
  }
379
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.LanguageService }, { token: i3.DirectionsService }, { token: i4.DirectionsSourceService }, { token: i5.SearchService }, { token: i6.QueryService }, { token: i7.MessageService }], target: i0.ɵɵFactoryTarget.Component });
380
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: DirectionsComponent, isStandalone: true, selector: "igo-directions", inputs: { contextUri: "contextUri", stopsStore: "stopsStore", stopsFeatureStore: "stopsFeatureStore", routesFeatureStore: "routesFeatureStore", stepFeatureStore: "stepFeatureStore", debounce: "debounce", length: "length", coordRoundedDecimals: "coordRoundedDecimals", zoomToActiveRoute$: "zoomToActiveRoute$", authenticated$: "authenticated$" }, ngImport: i0, template: "<div class=\"directions-options\">\n <mat-slide-toggle\n [checked]=\"directionControlIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleDirectionsControl($event.checked)\"\n >\n {{ 'igo.geo.directionsForm.toggleActive' | translate }}\n </mat-slide-toggle>\n <mat-slide-toggle\n *ngIf=\"hasOsrmPrivateAccess && twoSourcesAvailable\"\n [checked]=\"enabledProfileHasAuthorization\"\n [labelPosition]=\"'before'\"\n (change)=\"onTogglePrivateModeControl($event.checked)\"\n >\n {{ 'igo.geo.directionsForm.toggleType' | translate }}\n </mat-slide-toggle>\n</div>\n\n<igo-directions-buttons\n [stepFeatureStore]=\"stepFeatureStore\"\n [contextUri]=\"contextUri\"\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"\n [routesFeatureStore]=\"routesFeatureStore\"\n [stopsStore]=\"stopsStore\"\n></igo-directions-buttons>\n\n<igo-directions-inputs\n (stopInputHasFocus)=\"onStopInputHasFocusChange($event)\"\n [coordRoundedDecimals]=\"coordRoundedDecimals\"\n [projection]=\"projection\"\n [stopsFeatureStore]=\"stopsFeatureStore\"\n [stopsStore]=\"stopsStore\"\n [debounce]=\"debounce\"\n [length]=\"length\"\n></igo-directions-inputs>\n\n<igo-directions-results\n [stepFeatureStore]=\"stepFeatureStore\"\n [routesFeatureStore]=\"routesFeatureStore\"\n></igo-directions-results>\n", styles: [".directions-options mat-slide-toggle{width:100%;padding:10px}.directions-options mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}.directions-options mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i9.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: DirectionsButtonsComponent, selector: "igo-directions-buttons", inputs: ["contextUri", "zoomToActiveRoute$", "stopsStore", "routesFeatureStore", "stepFeatureStore"] }, { kind: "component", type: DirectionsInputsComponent, selector: "igo-directions-inputs", inputs: ["stopsStore", "stopsFeatureStore", "projection", "coordRoundedDecimals", "debounce", "length"], outputs: ["stopInputHasFocus"] }, { kind: "component", type: DirectionsResultsComponent, selector: "igo-directions-results", inputs: ["routesFeatureStore", "stepFeatureStore"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
379
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DirectionsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.LanguageService }, { token: i3.DirectionsService }, { token: i4.DirectionsSourceService }, { token: i5.SearchService }, { token: i6.QueryService }, { token: i7.MessageService }], target: i0.ɵɵFactoryTarget.Component });
380
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: DirectionsComponent, isStandalone: true, selector: "igo-directions", inputs: { contextUri: "contextUri", stopsStore: "stopsStore", stopsFeatureStore: "stopsFeatureStore", routesFeatureStore: "routesFeatureStore", stepFeatureStore: "stepFeatureStore", debounce: "debounce", length: "length", coordRoundedDecimals: "coordRoundedDecimals", zoomToActiveRoute$: "zoomToActiveRoute$", authenticated$: "authenticated$" }, ngImport: i0, template: "<div class=\"directions-options\">\n <mat-slide-toggle\n [checked]=\"directionControlIsActive\"\n [labelPosition]=\"'before'\"\n (change)=\"onToggleDirectionsControl($event.checked)\"\n >\n {{ 'igo.geo.directionsForm.toggleActive' | translate }}\n </mat-slide-toggle>\n <mat-slide-toggle\n *ngIf=\"hasOsrmPrivateAccess && twoSourcesAvailable\"\n [checked]=\"enabledProfileHasAuthorization\"\n [labelPosition]=\"'before'\"\n (change)=\"onTogglePrivateModeControl($event.checked)\"\n >\n {{ 'igo.geo.directionsForm.toggleType' | translate }}\n </mat-slide-toggle>\n</div>\n\n<igo-directions-buttons\n [stepFeatureStore]=\"stepFeatureStore\"\n [contextUri]=\"contextUri\"\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"\n [routesFeatureStore]=\"routesFeatureStore\"\n [stopsStore]=\"stopsStore\"\n></igo-directions-buttons>\n\n<igo-directions-inputs\n (stopInputHasFocus)=\"onStopInputHasFocusChange($event)\"\n [coordRoundedDecimals]=\"coordRoundedDecimals\"\n [projection]=\"projection\"\n [stopsFeatureStore]=\"stopsFeatureStore\"\n [stopsStore]=\"stopsStore\"\n [debounce]=\"debounce\"\n [length]=\"length\"\n></igo-directions-inputs>\n\n<igo-directions-results\n [stepFeatureStore]=\"stepFeatureStore\"\n [routesFeatureStore]=\"routesFeatureStore\"\n></igo-directions-results>\n", styles: [".directions-options mat-slide-toggle{width:100%;padding:10px}.directions-options mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}.directions-options mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i9.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: DirectionsButtonsComponent, selector: "igo-directions-buttons", inputs: ["contextUri", "zoomToActiveRoute$", "stopsStore", "routesFeatureStore", "stepFeatureStore"] }, { kind: "component", type: DirectionsInputsComponent, selector: "igo-directions-inputs", inputs: ["stopsStore", "stopsFeatureStore", "projection", "coordRoundedDecimals", "debounce", "length"], outputs: ["stopInputHasFocus"] }, { kind: "component", type: DirectionsResultsComponent, selector: "igo-directions-results", inputs: ["routesFeatureStore", "stepFeatureStore"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
381
381
  }
382
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionsComponent, decorators: [{
382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DirectionsComponent, decorators: [{
383
383
  type: Component,
384
384
  args: [{ selector: 'igo-directions', standalone: true, imports: [
385
385
  CommonModule,
@@ -410,4 +410,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
410
410
  }], authenticated$: [{
411
411
  type: Input
412
412
  }] } });
413
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdkQsT0FBTyxLQUFLLFdBQVcsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssYUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBR2hELE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pF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SUFDWixvQkFBb0IsMFhBQ3BCLDBCQUEwQix5S0FDMUIseUJBQXlCLDJNQUN6QiwwQkFBMEIsc0hBQzFCLGlCQUFpQjs7MkZBR1IsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLGdCQUFnQixjQUdkLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsaUJBQWlCO3FCQUNsQjt1U0F5QlEsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuXG5pbXBvcnQgeyBFbnRpdHlTdG9yZVdhdGNoZXIgfSBmcm9tICdAaWdvMi9jb21tb24vZW50aXR5JztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcbmltcG9ydCB7IENoYW5nZVV0aWxzLCBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IENvbGxlY3Rpb24gZnJvbSAnb2wvQ29sbGVjdGlvbic7XG5pbXBvcnQgKiBhcyBvbENvbmRpdGlvbiBmcm9tICdvbC9ldmVudHMvY29uZGl0aW9uJztcbmltcG9ydCAqIGFzIG9sSW50ZXJhY3Rpb24gZnJvbSAnb2wvaW50ZXJhY3Rpb24nO1xuaW1wb3J0IHsgU2VsZWN0RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9TZWxlY3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlRXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9UcmFuc2xhdGUnO1xuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4uL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZyc7XG5pbXBvcnQgeyByb3VuZENvb3JkVG8sIHN0cmluZ1RvTG9uTGF0IH0gZnJvbSAnLi4vbWFwJztcbmltcG9ydCB7IFF1ZXJ5U2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaC9zaGFyZWQvc2VhcmNoLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uL3NlYXJjaC9zaGFyZWQvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlyZWN0aW9uc0J1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtYnV0dG9ucy9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IERpcmVjdGlvbnNJbnB1dHNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZURpcmVjdGlvbnNTb3VyY2VPcHRpb25zUHJvZmlsZSB9IGZyb20gJy4vZGlyZWN0aW9ucy1zb3VyY2VzJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy1zb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25UeXBlLCBQcm9wb3NhbFR5cGUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xuaW1wb3J0IHtcbiAgRGlyZWN0aW9uT3B0aW9ucyxcbiAgRmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcyxcbiAgU3RvcFxufSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGlvbnMuc2VydmljZSc7XG5pbXBvcnQge1xuICBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZSxcbiAgYWRkU3RvcFRvU3RvcHNGZWF0dXJlU3RvcmUsXG4gIGFkZFN0b3BUb1N0b3JlLFxuICBpbml0Um91dGVzRmVhdHVyZVN0b3JlLFxuICBpbml0U3RlcEZlYXR1cmVTdG9yZSxcbiAgaW5pdFN0b3BzRmVhdHVyZVN0b3JlLFxuICB1cGRhdGVTdG9yZVNvcnRpbmdcbn0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy51dGlscyc7XG5pbXBvcnQge1xuICBSb3V0ZXNGZWF0dXJlU3RvcmUsXG4gIFN0ZXBGZWF0dXJlU3RvcmUsXG4gIFN0b3BzRmVhdHVyZVN0b3JlLFxuICBTdG9wc1N0b3JlXG59IGZyb20gJy4vc2hhcmVkL3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlyZWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpcmVjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBEaXJlY3Rpb25zQnV0dG9uc0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50LFxuICAgIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50LFxuICAgIElnb0xhbmd1YWdlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB3YXRjaGVyOiBFbnRpdHlTdG9yZVdhdGNoZXI8U3RvcD47XG5cbiAgcHVibGljIHByb2plY3Rpb24gPSAnRVBTRzo0MzI2JztcbiAgcHVibGljIGhhc09zcm1Qcml2YXRlQWNjZXNzID0gZmFsc2U7XG4gIHB1YmxpYyB0d29Tb3VyY2VzQXZhaWxhYmxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB6b29tUm91dGUkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHN0b3JlRW1wdHkkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHN0b3JlQ2hhbmdlJCQ6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByb3V0ZXNRdWVyaWVzJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBzZWxlY3RTdG9wSW50ZXJhY3Rpb246IG9sSW50ZXJhY3Rpb24uU2VsZWN0O1xuICBwcml2YXRlIHRyYW5zbGF0ZVN0b3A6IG9sSW50ZXJhY3Rpb24uVHJhbnNsYXRlO1xuICBwcml2YXRlIHNlbGVjdGVkUm91dGU6IG9sSW50ZXJhY3Rpb24uU2VsZWN0O1xuICBwcml2YXRlIGZvY3VzT25TdG9wID0gZmFsc2U7XG4gIHByaXZhdGUgaXNUcmFuc2xhdGluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwcmV2aW91c1N0b3BzOiBTdG9wW10gPSBbXTtcblxuICBwcml2YXRlIHNlYXJjaHMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGVkJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoKSBjb250ZXh0VXJpOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0b3BzU3RvcmU6IFN0b3BzU3RvcmU7XG4gIEBJbnB1dCgpIHN0b3BzRmVhdHVyZVN0b3JlOiBTdG9wc0ZlYXR1cmVTdG9yZTtcbiAgQElucHV0KCkgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmU7XG4gIEBJbnB1dCgpIHN0ZXBGZWF0dXJlU3RvcmU6IFN0ZXBGZWF0dXJlU3RvcmU7XG4gIEBJbnB1dCgpIGRlYm91bmNlID0gMjAwO1xuICBASW5wdXQoKSBsZW5ndGggPSAyO1xuICBASW5wdXQoKSBjb29yZFJvdW5kZWREZWNpbWFscyA9IDY7XG4gIEBJbnB1dCgpIHpvb21Ub0FjdGl2ZVJvdXRlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIEBJbnB1dCgpIGF1dGhlbnRpY2F0ZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFdoZXRlciBvbmUgb2YgdGhlIGRpcmVjdGlvbiBjb250cm9sIGlzIGFjdGl2ZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBkaXJlY3Rpb25Db250cm9sSXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnF1ZXJ5U2VydmljZS5xdWVyeUVuYWJsZWQ7XG4gIH1cblxuICBnZXQgaW50ZXJhY3Rpb25zKCk6IG9sSW50ZXJhY3Rpb24uSW50ZXJhY3Rpb25bXSB7XG4gICAgcmV0dXJuIFt0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbiwgdGhpcy50cmFuc2xhdGVTdG9wLCB0aGlzLnNlbGVjdGVkUm91dGVdO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWRQcm9maWxlSGFzQXV0aG9yaXphdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb25zU291cmNlU2VydmljZS5zb3VyY2VzWzBdLmdldEVuYWJsZWRQcm9maWxlKClcbiAgICAgIC5hdXRob3JpemF0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU2VydmljZTogRGlyZWN0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU291cmNlU2VydmljZTogRGlyZWN0aW9uc1NvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVlcnlTZXJ2aWNlOiBRdWVyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXV0aGVudGljYXRlZCQkID0gdGhpcy5hdXRoZW50aWNhdGVkJC5zdWJzY3JpYmUoXG4gICAgICAoYXV0aGVudGljYXRlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgIGNvbnN0IHByb2ZpbGVXaXRoQXV0aDogQmFzZURpcmVjdGlvbnNTb3VyY2VPcHRpb25zUHJvZmlsZSA9XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlLnNvdXJjZXNbMF0uZ2V0UHJvZmlsZVdpdGhBdXRob3JpemF0aW9uKCk7XG4gICAgICAgICAgaWYgKHByb2ZpbGVXaXRoQXV0aCkge1xuICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgIC5nZXQocHJvZmlsZVdpdGhBdXRoLmF1dGhvcml6YXRpb24udXJsKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNPc3JtUHJpdmF0ZUFjY2VzcyA9XG4gICAgICAgICAgICAgICAgICB1c2VyW3Byb2ZpbGVXaXRoQXV0aC5hdXRob3JpemF0aW9uLnByb3BlcnR5XTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnR3b1NvdXJjZXNBdmFpbGFibGUgPVxuICAgICAgdGhpcy5kaXJlY3Rpb25zU291cmNlU2VydmljZS5zb3VyY2VzWzBdLnByb2ZpbGVzLmxlbmd0aCA9PT0gMlxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBmYWxzZTtcbiAgICB0aGlzLnF1ZXJ5U2VydmljZS5xdWVyeUVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRFbnRpdHlTdG9yZXMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGluaXRTdG9wc0ZlYXR1cmVTdG9yZSh0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLCB0aGlzLmxhbmd1YWdlU2VydmljZSk7XG4gICAgICBpbml0Um91dGVzRmVhdHVyZVN0b3JlKHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLCB0aGlzLmxhbmd1YWdlU2VydmljZSk7XG4gICAgICBpbml0U3RlcEZlYXR1cmVTdG9yZSh0aGlzLnN0ZXBGZWF0dXJlU3RvcmUpO1xuICAgICAgdGhpcy5pbml0T2xJbnRlcmFjdGlvbigpO1xuICAgIH0sIDEpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlcnZpY2UucXVlcnlFbmFibGVkID0gdHJ1ZTtcbiAgICB0aGlzLnN0b3JlRW1wdHkkJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3RvcmVDaGFuZ2UkJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucm91dGVzUXVlcmllcyQkLm1hcCgodSkgPT4gdS51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnpvb21Sb3V0ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5hdXRoZW50aWNhdGVkJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZyZWV6ZVN0b3JlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmcmVlemVTdG9yZXMoKSB7XG4gICAgdGhpcy5pbnRlcmFjdGlvbnMubWFwKChpbnRlcmFjdGlvbikgPT5cbiAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcbiAgICApO1xuICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKFxuICAgICAgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5XG4gICAgKTtcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5kZWFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUoXG4gICAgICBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3lcbiAgICApO1xuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5kZWFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUoRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEVudGl0eVN0b3JlcygpIHtcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgRW50aXR5U3RvcmVXYXRjaGVyKHRoaXMuc3RvcHNTdG9yZSwgdGhpcy5jZFJlZik7XG4gICAgdGhpcy5tb25pdG9yRW1wdHlFbnRpdHlTdG9yZSgpO1xuICAgIHRoaXMubW9uaXRvckVudGl0eVN0b3JlQ2hhbmdlKCk7XG4gICAgdGhpcy5tb25pdG9yQWN0aXZlUm91dGVab29tKCk7XG4gIH1cblxuICBwcml2YXRlIG1vbml0b3JBY3RpdmVSb3V0ZVpvb20oKSB7XG4gICAgdGhpcy56b29tUm91dGUkJCA9IHRoaXMuem9vbVRvQWN0aXZlUm91dGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQgPj0gMSkge1xuICAgICAgICBjb25zdCBhY3RpdmVSb3V0ZSA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlXG4gICAgICAgICAgLmFsbCgpXG4gICAgICAgICAgLmZpbmQoKHJvdXRlKSA9PiByb3V0ZS5wcm9wZXJ0aWVzLmFjdGl2ZSk7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVJvdXRlKSB7XG4gICAgICAgICAgYWN0aXZlUm91dGUub2wuZ2V0R2VvbWV0cnkoKTtcbiAgICAgICAgICBjb25zdCByb3V0ZUV4dGVudCA9IGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XG4gICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnpvb21Ub0V4dGVudChcbiAgICAgICAgICAgIHJvdXRlRXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0T2xJbnRlcmFjdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbiA9IG5ldyBvbEludGVyYWN0aW9uLlNlbGVjdCh7XG4gICAgICBsYXllcnM6IFt0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm9sXSxcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcbiAgICAgIGNvbmRpdGlvbjogKGV2ZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBldmVudC50eXBlID09PSAncG9pbnRlcm1vdmUnICYmICFldmVudC5kcmFnZ2luZztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudHJhbnNsYXRlU3RvcCA9IG5ldyBvbEludGVyYWN0aW9uLlRyYW5zbGF0ZSh7XG4gICAgICBmZWF0dXJlczogdGhpcy5zZWxlY3RTdG9wSW50ZXJhY3Rpb24uZ2V0RmVhdHVyZXMoKVxuICAgIH0pO1xuICAgIHRoaXMudHJhbnNsYXRlU3RvcC5vbigndHJhbnNsYXRpbmcnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xuICAgICAgdGhpcy5pc1RyYW5zbGF0aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZXhlY3V0ZVN0b3BUcmFuc2xhdGlvbihldnQuZmVhdHVyZXMpO1xuICAgIH0pO1xuICAgIHRoaXMudHJhbnNsYXRlU3RvcC5vbigndHJhbnNsYXRlZW5kJywgKGV2dDogVHJhbnNsYXRlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuaXNUcmFuc2xhdGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5leGVjdXRlU3RvcFRyYW5zbGF0aW9uKGV2dC5mZWF0dXJlcyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkUm91dGUgPSBuZXcgb2xJbnRlcmFjdGlvbi5TZWxlY3Qoe1xuICAgICAgbGF5ZXJzOiBbdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIub2xdLFxuICAgICAgY29uZGl0aW9uOiBvbENvbmRpdGlvbi5jbGljayxcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcbiAgICAgIGZpbHRlcjogKGZlYXR1cmUpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBmZWF0dXJlLmdldCgndHlwZScpID09PSBEaXJlY3Rpb25UeXBlLlJvdXRlICYmXG4gICAgICAgICAgZmVhdHVyZS5nZXQoJ2FjdGl2ZScpICYmXG4gICAgICAgICAgIXRoaXMuaXNUcmFuc2xhdGluZ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5vbignc2VsZWN0JywgKGV2dDogU2VsZWN0RXZlbnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvY3VzT25TdG9wID09PSBmYWxzZSkge1xuICAgICAgICBjb25zdCBzZWxlY3RDb29yZGluYXRlcyA9IHJvdW5kQ29vcmRUbyhcbiAgICAgICAgICBvbFByb2oudHJhbnNmb3JtKFxuICAgICAgICAgICAgKGV2dCBhcyBhbnkpLm1hcEJyb3dzZXJFdmVudC5jb29yZGluYXRlLFxuICAgICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24sXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25cbiAgICAgICAgICApIGFzIFtudW1iZXIsIG51bWJlcl0sXG4gICAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBhZGRlZFN0b3AgPSBhZGRTdG9wVG9TdG9yZSh0aGlzLnN0b3BzU3RvcmUpO1xuICAgICAgICBhZGRlZFN0b3AudGV4dCA9IHNlbGVjdENvb3JkaW5hdGVzLmpvaW4oJywnKTtcbiAgICAgICAgYWRkZWRTdG9wLmNvb3JkaW5hdGVzID0gW3NlbGVjdENvb3JkaW5hdGVzWzBdLCBzZWxlY3RDb29yZGluYXRlc1sxXV07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmludGVyYWN0aW9ucy5tYXAoKGludGVyYWN0aW9uKSA9PlxuICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLmFkZEludGVyYWN0aW9uKGludGVyYWN0aW9uKVxuICAgICk7XG4gIH1cblxuICBvblN0b3BJbnB1dEhhc0ZvY3VzQ2hhbmdlKHN0b3BJbnB1dEhhc0ZvY3VzOiBib29sZWFuKSB7XG4gICAgc3RvcElucHV0SGFzRm9jdXNcbiAgICAgID8gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKFxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZVxuICAgICAgICApXG4gICAgICA6IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLnNlbGVjdGVkUm91dGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlU3RvcFRyYW5zbGF0aW9uKGZlYXR1cmVzOiBDb2xsZWN0aW9uPGFueT4pIHtcbiAgICBpZiAoZmVhdHVyZXMuZ2V0TGVuZ3RoKCkgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZmlyc3RGZWF0dXJlID0gZmVhdHVyZXMuZ2V0QXJyYXkoKVswXTtcbiAgICBjb25zdCB0cmFuc2xhdGVkU3RvcElkID0gZmlyc3RGZWF0dXJlLmdldElkKCk7XG5cbiAgICBjb25zdCB0cmFuc2xhdGlvbkNvb3JkaW5hdGVzID0gb2xQcm9qLnRyYW5zZm9ybShcbiAgICAgIGZpcnN0RmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldENvb3JkaW5hdGVzKCksXG4gICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxuICAgICAgdGhpcy5wcm9qZWN0aW9uXG4gICAgKTtcbiAgICBjb25zdCB0cmFuc2xhdGVkU3RvcCA9IHRoaXMuc3RvcHNTdG9yZS5nZXQodHJhbnNsYXRlZFN0b3BJZCk7XG4gICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxuICAgICAgdHJhbnNsYXRpb25Db29yZGluYXRlcyBhcyBbbnVtYmVyLCBudW1iZXJdLFxuICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xuICAgICk7XG4gICAgdHJhbnNsYXRlZFN0b3AuY29vcmRpbmF0ZXMgPSByb3VuZGVkQ29vcmQ7XG4gICAgdHJhbnNsYXRlZFN0b3AudGV4dCA9IHJvdW5kZWRDb29yZC5qb2luKCcsJyk7XG4gICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZSh0cmFuc2xhdGVkU3RvcCk7XG4gIH1cblxuICBwcml2YXRlIG1vbml0b3JFbXB0eUVudGl0eVN0b3JlKCkge1xuICAgIC8vIFdhdGNoIGlmIHRoZSBzdG9yZSBpcyBlbXB0eSB0byByZXNldCBpdFxuICAgIHRoaXMuc3RvcmVFbXB0eSQkID0gdGhpcy5zdG9wc1N0b3JlLmNvdW50JFxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvdW50KSA9PiB7XG4gICAgICAgIGlmIChjb3VudCA8IDIpIHtcbiAgICAgICAgICBhZGRTdG9wVG9TdG9yZSh0aGlzLnN0b3BzU3RvcmUpO1xuICAgICAgICAgIGlmICh0aGlzLnN0b3BzU3RvcmUuY291bnQgPT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcHNTdG9yZS5zdG9yZUluaXRpYWxpemVkJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yb3V0ZXNRdWVyaWVzJCQubWFwKCh1KSA9PiB1LnVuc3Vic2NyaWJlKCkpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG1vbml0b3JFbnRpdHlTdG9yZUNoYW5nZSgpIHtcbiAgICB0aGlzLnN0b3JlQ2hhbmdlJCQgPSB0aGlzLnN0b3BzU3RvcmUuZW50aXRpZXMkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZSkpXG4gICAgICAuc3Vic2NyaWJlKChzdG9wczogU3RvcFtdKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlU3RvcERpZmYoc3RvcHMpO1xuICAgICAgICB1cGRhdGVTdG9yZVNvcnRpbmcodGhpcy5zdG9wc1N0b3JlKTtcbiAgICAgICAgdGhpcy5oYW5kbGVTdG9wc0ZlYXR1cmUoKTtcbiAgICAgICAgdGhpcy5nZXRSb3V0ZXModGhpcy5pc1RyYW5zbGF0aW5nKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgY2FuY2VsU2VhcmNoKCkge1xuICAgIHRoaXMuc2VhcmNocyQkLm1hcCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RvcERpZmYoc3RvcHM6IFN0b3BbXSkge1xuICAgIGNvbnN0IHNpbXBsaWZpZWRTdG9wcyA9IHN0b3BzLm1hcCgoc3RvcDogU3RvcCkgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XG4gICAgICAgIC4uLnsgaWQ6IHN0b3AuaWQsIHRleHQ6IHN0b3AudGV4dCwgY29vcmRpbmF0ZXM6IHN0b3AuY29vcmRpbmF0ZXMgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgZGlmZiA9IENoYW5nZVV0aWxzLmZpbmRDaGFuZ2VzKHRoaXMucHJldmlvdXNTdG9wcywgc2ltcGxpZmllZFN0b3BzLCBbXG4gICAgICAnY29vcmRpbmF0ZXMnXG4gICAgXSk7XG4gICAgY29uc3Qgc3RvcElkVG9Qcm9jZXNzID0gZGlmZi5hZGRlZC5jb25jYXQoZGlmZi5tb2RpZmllZCk7XG4gICAgaWYgKHN0b3BJZFRvUHJvY2Vzcykge1xuICAgICAgc3RvcElkVG9Qcm9jZXNzLm1hcCgoY2hhbmdlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRTdG9wID0gY2hhbmdlLm5ld1ZhbHVlIGFzIFN0b3A7XG4gICAgICAgIGlmIChjaGFuZ2VkU3RvcCkge1xuICAgICAgICAgIGNvbnN0IHN0b3A6IFN0b3AgPSB0aGlzLnN0b3BzU3RvcmUuZ2V0KGNoYW5nZWRTdG9wLmlkKTtcbiAgICAgICAgICBjb25zdCB0ZXJtID0gc3RvcC50ZXh0O1xuICAgICAgICAgIGlmICghdGVybSB8fCB0ZXJtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHN0cmluZ1RvTG9uTGF0KFxuICAgICAgICAgICAgdGVybSxcbiAgICAgICAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb25cbiAgICAgICAgICApO1xuICAgICAgICAgIGxldCBpc0Nvb3JkID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmxvbkxhdCkge1xuICAgICAgICAgICAgaXNDb29yZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlc2VhcmNoZXMgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRlcm0sIHtcbiAgICAgICAgICAgIHNlYXJjaFR5cGU6ICdGZWF0dXJlJ1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY2FuY2VsU2VhcmNoKCk7XG4gICAgICAgICAgY29uc3QgcmVxdWVzdHMkID0gcmVzZWFyY2hlcy5tYXAoKHJlcykgPT5cbiAgICAgICAgICAgIHJlcy5yZXF1ZXN0LnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XG4gICAgICAgICAgICAgICAgcmVzdWx0cy5maWx0ZXIoKHIpID0+XG4gICAgICAgICAgICAgICAgICBpc0Nvb3JkXG4gICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XG4gICAgICAgICAgICAgICAgICAgIDogci5kYXRhLmdlb21ldHJ5XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnNlYXJjaHMkJCA9IHJlcXVlc3RzJC5tYXAoKHJlcXVlc3QpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0XG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XG4gICAgICAgICAgICAgICAgICByZXN1bHRzLmZpbHRlcigocikgPT5cbiAgICAgICAgICAgICAgICAgICAgaXNDb29yZFxuICAgICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XG4gICAgICAgICAgICAgICAgICAgICAgOiByLmRhdGEuZ2VvbWV0cnlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBTZWFyY2hSZXN1bHRbXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gcmVzWzBdLnNvdXJjZTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG1ldGEgPSByZXNbMF0ubWV0YTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXMubWFwKChyKSA9PiByLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgaWYgKCFzdG9wLnNlYXJjaFByb3Bvc2Fscykge1xuICAgICAgICAgICAgICAgICAgICBzdG9wLnNlYXJjaFByb3Bvc2FscyA9IFtdO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMgPSBzdG9wLnNlYXJjaFByb3Bvc2Fscy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChzcCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBzcC50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgIChpc0Nvb3JkID8gUHJvcG9zYWxUeXBlLkNvb3JkIDogUHJvcG9zYWxUeXBlLlRleHQpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc3RvcmVkU291cmNlID0gc3RvcC5zZWFyY2hQcm9wb3NhbHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgKHNwKSA9PiBzcC5zb3VyY2UgPT09IHNvdXJjZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzdG9yZWRTb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVkU291cmNlLnJlc3VsdHMgPSByZXN1bHRzO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogaXNDb29yZCA/IFByb3Bvc2FsVHlwZS5Db29yZCA6IFByb3Bvc2FsVHlwZS5UZXh0LFxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICBtZXRhLFxuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucHJldmlvdXNTdG9wcyA9IHNpbXBsaWZpZWRTdG9wcztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RvcHNGZWF0dXJlKCkge1xuICAgIGNvbnN0IHN0b3BzID0gdGhpcy5zdG9wc1N0b3JlLmFsbCgpO1xuICAgIGNvbnN0IHN0b3BzV2l0aENvb3JkaW5hdGVzID0gc3RvcHMuZmlsdGVyKChzdG9wKSA9PiBzdG9wLmNvb3JkaW5hdGVzKTtcbiAgICBzdG9wc1dpdGhDb29yZGluYXRlcy5tYXAoKHN0b3ApID0+IHRoaXMuYWRkU3RvcE92ZXJsYXkoc3RvcCkpO1xuICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmVcbiAgICAgIC5hbGwoKVxuICAgICAgLm1hcCgoc3RvcEZlYXR1cmU6IEZlYXR1cmU8RmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcz4pID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3BzU3RvcmUuZ2V0KHN0b3BGZWF0dXJlLnByb3BlcnRpZXMuaWQpKSB7XG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5kZWxldGUoc3RvcEZlYXR1cmUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBjb25zdCBzdG9wc1dpdGhvdXRDb29yZGluYXRlcyA9IHN0b3BzLmZpbHRlcigoc3RvcCkgPT4gIXN0b3AuY29vcmRpbmF0ZXMpO1xuICAgIHN0b3BzV2l0aG91dENvb3JkaW5hdGVzLm1hcCgoc3RvcCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcEZlYXR1cmUgPSB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmdldChzdG9wLmlkKTtcbiAgICAgIGlmIChzdG9wRmVhdHVyZSkge1xuICAgICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmRlbGV0ZShzdG9wRmVhdHVyZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFJvdXRlcyhpc092ZXJ2aWV3ID0gZmFsc2UpIHtcbiAgICBjb25zdCBzdG9wc1dpdGhDb29yZGluYXRlcyA9IHRoaXMuc3RvcHNTdG9yZS52aWV3XG4gICAgICAuYWxsKClcbiAgICAgIC5maWx0ZXIoKHN0b3ApID0+IHN0b3AuY29vcmRpbmF0ZXMpO1xuICAgIGlmIChzdG9wc1dpdGhDb29yZGluYXRlcy5sZW5ndGggPCAyKSB7XG4gICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5kZWxldGVNYW55KHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmFsbCgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByb3VuZGVkQ29vcmRpbmF0ZXMgPSBzdG9wc1dpdGhDb29yZGluYXRlcy5tYXAoKHN0b3ApID0+IHtcbiAgICAgIGNvbnN0IHJvdW5kZWRDb29yZCA9IHJvdW5kQ29vcmRUbyhcbiAgICAgICAgc3RvcC5jb29yZGluYXRlcyxcbiAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xuICAgICAgKTtcbiAgICAgIHJldHVybiByb3VuZGVkQ29vcmQ7XG4gICAgfSk7XG4gICAgY29uc3Qgb3ZlcnZpZXdEaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHtcbiAgICAgIG92ZXJ2aWV3OiB0cnVlLFxuICAgICAgc3RlcHM6IGZhbHNlLFxuICAgICAgYWx0ZXJuYXRpdmVzOiBmYWxzZSxcbiAgICAgIGNvbnRpbnVlX3N0cmFpZ2h0OiBmYWxzZVxuICAgIH07XG4gICAgdGhpcy5yb3V0ZXNRdWVyaWVzJCQubWFwKCh1KSA9PiB1LnVuc3Vic2NyaWJlKCkpO1xuICAgIGNvbnN0IHJvdXRlUmVzcG9uc2UgPSB0aGlzLmRpcmVjdGlvbnNTZXJ2aWNlLnJvdXRlKFxuICAgICAgcm91bmRlZENvb3JkaW5hdGVzLFxuICAgICAgaXNPdmVydmlldyA/IG92ZXJ2aWV3RGlyZWN0aW9uc09wdGlvbnMgOiB1bmRlZmluZWRcbiAgICApO1xuICAgIGlmIChyb3V0ZVJlc3BvbnNlKSB7XG4gICAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5wdXNoKFxuICAgICAgICByb3V0ZVJlc3BvbnNlLnN1YnNjcmliZSgoZGlyZWN0aW9ucykgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmRlbGV0ZU1hbnkodGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuYWxsKCkpO1xuICAgICAgICAgIGRpcmVjdGlvbnMubWFwKChkaXJlY3Rpb24pID0+XG4gICAgICAgICAgICBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZShcbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUsXG4gICAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uLFxuICAgICAgICAgICAgICBkaXJlY3Rpb24gPT09IGRpcmVjdGlvbnNbMF0gPyB0cnVlIDogZmFsc2VcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkU3RvcE92ZXJsYXkoc3RvcDogU3RvcCkge1xuICAgIGFkZFN0b3BUb1N0b3BzRmVhdHVyZVN0b3JlKFxuICAgICAgc3RvcCxcbiAgICAgIHRoaXMuc3RvcHNTdG9yZSxcbiAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsXG4gICAgICB0aGlzLnByb2plY3Rpb24sXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZVxuICAgICk7XG4gIH1cblxuICBvblRvZ2dsZURpcmVjdGlvbnNDb250cm9sKGlzQWN0aXZlOiBib29sZWFuKSB7XG4gICAgdGhpcy5xdWVyeVNlcnZpY2UucXVlcnlFbmFibGVkID0gIWlzQWN0aXZlO1xuICAgIGNvbnN0IG9sID0gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sO1xuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XG4gICAgICBpc0FjdGl2ZVxuICAgICAgICA/IG9sLmFkZEludGVyYWN0aW9uKGludGVyYWN0aW9uKVxuICAgICAgICA6IG9sLnJlbW92ZUludGVyYWN0aW9uKGludGVyYWN0aW9uKVxuICAgICk7XG4gIH1cblxuICBvblRvZ2dsZVByaXZhdGVNb2RlQ29udHJvbChpc0FjdGl2ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZGlyZWN0aW9uc1NvdXJjZVNlcnZpY2Uuc291cmNlc1swXS5wcm9maWxlcy5mb3JFYWNoKFxuICAgICAgKHByb2ZpbGUpID0+IChwcm9maWxlLmVuYWJsZWQgPSBmYWxzZSlcbiAgICApO1xuICAgIGlmIChpc0FjdGl2ZSkge1xuICAgICAgdGhpcy5kaXJlY3Rpb25zU291cmNlU2VydmljZS5zb3VyY2VzWzBdLnByb2ZpbGVzLmZpbmQoXG4gICAgICAgIChwcm9maWxlKSA9PiBwcm9maWxlLmF1dGhvcml6YXRpb25cbiAgICAgICkuZW5hYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5mb3Jlc3RSb2Fkc1dhcm5pbmcudGV4dCdcbiAgICAgICAgKSxcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZm9yZXN0Um9hZHNXYXJuaW5nLnRpdGxlJ1xuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlLnNvdXJjZXNbMF0ucHJvZmlsZXMuZmluZChcbiAgICAgICAgKHByb2ZpbGUpID0+ICFwcm9maWxlLmF1dGhvcml6YXRpb25cbiAgICAgICkuZW5hYmxlZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuZ2V0Um91dGVzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaXJlY3Rpb25zLW9wdGlvbnNcIj5cbiAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICBbY2hlY2tlZF09XCJkaXJlY3Rpb25Db250cm9sSXNBY3RpdmVcIlxuICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcbiAgICAoY2hhbmdlKT1cIm9uVG9nZ2xlRGlyZWN0aW9uc0NvbnRyb2woJGV2ZW50LmNoZWNrZWQpXCJcbiAgPlxuICAgIHt7ICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnRvZ2dsZUFjdGl2ZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICpuZ0lmPVwiaGFzT3NybVByaXZhdGVBY2Nlc3MgJiYgdHdvU291cmNlc0F2YWlsYWJsZVwiXG4gICAgW2NoZWNrZWRdPVwiZW5hYmxlZFByb2ZpbGVIYXNBdXRob3JpemF0aW9uXCJcbiAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiXG4gICAgKGNoYW5nZSk9XCJvblRvZ2dsZVByaXZhdGVNb2RlQ29udHJvbCgkZXZlbnQuY2hlY2tlZClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0udG9nZ2xlVHlwZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuPC9kaXY+XG5cbjxpZ28tZGlyZWN0aW9ucy1idXR0b25zXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxuICBbY29udGV4dFVyaV09XCJjb250ZXh0VXJpXCJcbiAgW3pvb21Ub0FjdGl2ZVJvdXRlJF09XCJ6b29tVG9BY3RpdmVSb3V0ZSRcIlxuICBbcm91dGVzRmVhdHVyZVN0b3JlXT1cInJvdXRlc0ZlYXR1cmVTdG9yZVwiXG4gIFtzdG9wc1N0b3JlXT1cInN0b3BzU3RvcmVcIlxuPjwvaWdvLWRpcmVjdGlvbnMtYnV0dG9ucz5cblxuPGlnby1kaXJlY3Rpb25zLWlucHV0c1xuICAoc3RvcElucHV0SGFzRm9jdXMpPVwib25TdG9wSW5wdXRIYXNGb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgW2Nvb3JkUm91bmRlZERlY2ltYWxzXT1cImNvb3JkUm91bmRlZERlY2ltYWxzXCJcbiAgW3Byb2plY3Rpb25dPVwicHJvamVjdGlvblwiXG4gIFtzdG9wc0ZlYXR1cmVTdG9yZV09XCJzdG9wc0ZlYXR1cmVTdG9yZVwiXG4gIFtzdG9wc1N0b3JlXT1cInN0b3BzU3RvcmVcIlxuICBbZGVib3VuY2VdPVwiZGVib3VuY2VcIlxuICBbbGVuZ3RoXT1cImxlbmd0aFwiXG4+PC9pZ28tZGlyZWN0aW9ucy1pbnB1dHM+XG5cbjxpZ28tZGlyZWN0aW9ucy1yZXN1bHRzXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxuICBbcm91dGVzRmVhdHVyZVN0b3JlXT1cInJvdXRlc0ZlYXR1cmVTdG9yZVwiXG4+PC9pZ28tZGlyZWN0aW9ucy1yZXN1bHRzPlxuIl19
413
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdkQsT0FBTyxLQUFLLFdBQVcsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssYUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBR2hELE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pF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SUFDWixvQkFBb0IsMFhBQ3BCLDBCQUEwQix5S0FDMUIseUJBQXlCLDJNQUN6QiwwQkFBMEIsc0hBQzFCLGlCQUFpQjs7NEZBR1IsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLGdCQUFnQixjQUdkLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsaUJBQWlCO3FCQUNsQjt1U0F5QlEsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuXG5pbXBvcnQgeyBFbnRpdHlTdG9yZVdhdGNoZXIgfSBmcm9tICdAaWdvMi9jb21tb24vZW50aXR5JztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcbmltcG9ydCB7IENoYW5nZVV0aWxzLCBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IENvbGxlY3Rpb24gZnJvbSAnb2wvQ29sbGVjdGlvbic7XG5pbXBvcnQgKiBhcyBvbENvbmRpdGlvbiBmcm9tICdvbC9ldmVudHMvY29uZGl0aW9uJztcbmltcG9ydCAqIGFzIG9sSW50ZXJhY3Rpb24gZnJvbSAnb2wvaW50ZXJhY3Rpb24nO1xuaW1wb3J0IHsgU2VsZWN0RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9TZWxlY3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlRXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9UcmFuc2xhdGUnO1xuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4uL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZyc7XG5pbXBvcnQgeyByb3VuZENvb3JkVG8sIHN0cmluZ1RvTG9uTGF0IH0gZnJvbSAnLi4vbWFwJztcbmltcG9ydCB7IFF1ZXJ5U2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaC9zaGFyZWQvc2VhcmNoLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uL3NlYXJjaC9zaGFyZWQvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlyZWN0aW9uc0J1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtYnV0dG9ucy9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IERpcmVjdGlvbnNJbnB1dHNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZURpcmVjdGlvbnNTb3VyY2VPcHRpb25zUHJvZmlsZSB9IGZyb20gJy4vZGlyZWN0aW9ucy1zb3VyY2VzJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy1zb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25UeXBlLCBQcm9wb3NhbFR5cGUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xuaW1wb3J0IHtcbiAgRGlyZWN0aW9uT3B0aW9ucyxcbiAgRmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcyxcbiAgU3RvcFxufSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGlvbnMuc2VydmljZSc7XG5pbXBvcnQge1xuICBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZSxcbiAgYWRkU3RvcFRvU3RvcHNGZWF0dXJlU3RvcmUsXG4gIGFkZFN0b3BUb1N0b3JlLFxuICBpbml0Um91dGVzRmVhdHVyZVN0b3JlLFxuICBpbml0U3RlcEZlYXR1cmVTdG9yZSxcbiAgaW5pdFN0b3BzRmVhdHVyZVN0b3JlLFxuICB1cGRhdGVTdG9yZVNvcnRpbmdcbn0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy51dGlscyc7XG5pbXBvcnQge1xuICBSb3V0ZXNGZWF0dXJlU3RvcmUsXG4gIFN0ZXBGZWF0dXJlU3RvcmUsXG4gIFN0b3BzRmVhdHVyZVN0b3JlLFxuICBTdG9wc1N0b3JlXG59IGZyb20gJy4vc2hhcmVkL3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlyZWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpcmVjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBEaXJlY3Rpb25zQnV0dG9uc0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50LFxuICAgIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50LFxuICAgIElnb0xhbmd1YWdlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB3YXRjaGVyOiBFbnRpdHlTdG9yZVdhdGNoZXI8U3RvcD47XG5cbiAgcHVibGljIHByb2plY3Rpb24gPSAnRVBTRzo0MzI2JztcbiAgcHVibGljIGhhc09zcm1Qcml2YXRlQWNjZXNzID0gZmFsc2U7XG4gIHB1YmxpYyB0d29Tb3VyY2VzQXZhaWxhYmxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB6b29tUm91dGUkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHN0b3JlRW1wdHkkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHN0b3JlQ2hhbmdlJCQ6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByb3V0ZXNRdWVyaWVzJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBzZWxlY3RTdG9wSW50ZXJhY3Rpb246IG9sSW50ZXJhY3Rpb24uU2VsZWN0O1xuICBwcml2YXRlIHRyYW5zbGF0ZVN0b3A6IG9sSW50ZXJhY3Rpb24uVHJhbnNsYXRlO1xuICBwcml2YXRlIHNlbGVjdGVkUm91dGU6IG9sSW50ZXJhY3Rpb24uU2VsZWN0O1xuICBwcml2YXRlIGZvY3VzT25TdG9wID0gZmFsc2U7XG4gIHByaXZhdGUgaXNUcmFuc2xhdGluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwcmV2aW91c1N0b3BzOiBTdG9wW10gPSBbXTtcblxuICBwcml2YXRlIHNlYXJjaHMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGVkJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoKSBjb250ZXh0VXJpOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0b3BzU3RvcmU6IFN0b3BzU3RvcmU7XG4gIEBJbnB1dCgpIHN0b3BzRmVhdHVyZVN0b3JlOiBTdG9wc0ZlYXR1cmVTdG9yZTtcbiAgQElucHV0KCkgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmU7XG4gIEBJbnB1dCgpIHN0ZXBGZWF0dXJlU3RvcmU6IFN0ZXBGZWF0dXJlU3RvcmU7XG4gIEBJbnB1dCgpIGRlYm91bmNlID0gMjAwO1xuICBASW5wdXQoKSBsZW5ndGggPSAyO1xuICBASW5wdXQoKSBjb29yZFJvdW5kZWREZWNpbWFscyA9IDY7XG4gIEBJbnB1dCgpIHpvb21Ub0FjdGl2ZVJvdXRlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIEBJbnB1dCgpIGF1dGhlbnRpY2F0ZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFdoZXRlciBvbmUgb2YgdGhlIGRpcmVjdGlvbiBjb250cm9sIGlzIGFjdGl2ZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBkaXJlY3Rpb25Db250cm9sSXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnF1ZXJ5U2VydmljZS5xdWVyeUVuYWJsZWQ7XG4gIH1cblxuICBnZXQgaW50ZXJhY3Rpb25zKCk6IG9sSW50ZXJhY3Rpb24uSW50ZXJhY3Rpb25bXSB7XG4gICAgcmV0dXJuIFt0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbiwgdGhpcy50cmFuc2xhdGVTdG9wLCB0aGlzLnNlbGVjdGVkUm91dGVdO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWRQcm9maWxlSGFzQXV0aG9yaXphdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb25zU291cmNlU2VydmljZS5zb3VyY2VzWzBdLmdldEVuYWJsZWRQcm9maWxlKClcbiAgICAgIC5hdXRob3JpemF0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU2VydmljZTogRGlyZWN0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU291cmNlU2VydmljZTogRGlyZWN0aW9uc1NvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVlcnlTZXJ2aWNlOiBRdWVyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXV0aGVudGljYXRlZCQkID0gdGhpcy5hdXRoZW50aWNhdGVkJC5zdWJzY3JpYmUoXG4gICAgICAoYXV0aGVudGljYXRlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgIGNvbnN0IHByb2ZpbGVXaXRoQXV0aDogQmFzZURpcmVjdGlvbnNTb3VyY2VPcHRpb25zUHJvZmlsZSA9XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlLnNvdXJjZXNbMF0uZ2V0UHJvZmlsZVdpdGhBdXRob3JpemF0aW9uKCk7XG4gICAgICAgICAgaWYgKHByb2ZpbGVXaXRoQXV0aCkge1xuICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgIC5nZXQocHJvZmlsZVdpdGhBdXRoLmF1dGhvcml6YXRpb24udXJsKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNPc3JtUHJpdmF0ZUFjY2VzcyA9XG4gICAgICAgICAgICAgICAgICB1c2VyW3Byb2ZpbGVXaXRoQXV0aC5hdXRob3JpemF0aW9uLnByb3BlcnR5XTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnR3b1NvdXJjZXNBdmFpbGFibGUgPVxuICAgICAgdGhpcy5kaXJlY3Rpb25zU291cmNlU2VydmljZS5zb3VyY2VzWzBdLnByb2ZpbGVzLmxlbmd0aCA9PT0gMlxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBmYWxzZTtcbiAgICB0aGlzLnF1ZXJ5U2VydmljZS5xdWVyeUVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRFbnRpdHlTdG9yZXMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGluaXRTdG9wc0ZlYXR1cmVTdG9yZSh0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLCB0aGlzLmxhbmd1YWdlU2VydmljZSk7XG4gICAgICBpbml0Um91dGVzRmVhdHVyZVN0b3JlKHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLCB0aGlzLmxhbmd1YWdlU2VydmljZSk7XG4gICAgICBpbml0U3RlcEZlYXR1cmVTdG9yZSh0aGlzLnN0ZXBGZWF0dXJlU3RvcmUpO1xuICAgICAgdGhpcy5pbml0T2xJbnRlcmFjdGlvbigpO1xuICAgIH0sIDEpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlcnZpY2UucXVlcnlFbmFibGVkID0gdHJ1ZTtcbiAgICB0aGlzLnN0b3JlRW1wdHkkJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3RvcmVDaGFuZ2UkJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucm91dGVzUXVlcmllcyQkLm1hcCgodSkgPT4gdS51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnpvb21Sb3V0ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5hdXRoZW50aWNhdGVkJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZyZWV6ZVN0b3JlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmcmVlemVTdG9yZXMoKSB7XG4gICAgdGhpcy5pbnRlcmFjdGlvbnMubWFwKChpbnRlcmFjdGlvbikgPT5cbiAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcbiAgICApO1xuICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKFxuICAgICAgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5XG4gICAgKTtcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5kZWFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUoXG4gICAgICBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3lcbiAgICApO1xuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5kZWFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUoRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEVudGl0eVN0b3JlcygpIHtcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgRW50aXR5U3RvcmVXYXRjaGVyKHRoaXMuc3RvcHNTdG9yZSwgdGhpcy5jZFJlZik7XG4gICAgdGhpcy5tb25pdG9yRW1wdHlFbnRpdHlTdG9yZSgpO1xuICAgIHRoaXMubW9uaXRvckVudGl0eVN0b3JlQ2hhbmdlKCk7XG4gICAgdGhpcy5tb25pdG9yQWN0aXZlUm91dGVab29tKCk7XG4gIH1cblxuICBwcml2YXRlIG1vbml0b3JBY3RpdmVSb3V0ZVpvb20oKSB7XG4gICAgdGhpcy56b29tUm91dGUkJCA9IHRoaXMuem9vbVRvQWN0aXZlUm91dGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQgPj0gMSkge1xuICAgICAgICBjb25zdCBhY3RpdmVSb3V0ZSA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlXG4gICAgICAgICAgLmFsbCgpXG4gICAgICAgICAgLmZpbmQoKHJvdXRlKSA9PiByb3V0ZS5wcm9wZXJ0aWVzLmFjdGl2ZSk7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVJvdXRlKSB7XG4gICAgICAgICAgYWN0aXZlUm91dGUub2wuZ2V0R2VvbWV0cnkoKTtcbiAgICAgICAgICBjb25zdCByb3V0ZUV4dGVudCA9IGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XG4gICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnpvb21Ub0V4dGVudChcbiAgICAgICAgICAgIHJvdXRlRXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0T2xJbnRlcmFjdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbiA9IG5ldyBvbEludGVyYWN0aW9uLlNlbGVjdCh7XG4gICAgICBsYXllcnM6IFt0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm9sXSxcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcbiAgICAgIGNvbmRpdGlvbjogKGV2ZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBldmVudC50eXBlID09PSAncG9pbnRlcm1vdmUnICYmICFldmVudC5kcmFnZ2luZztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudHJhbnNsYXRlU3RvcCA9IG5ldyBvbEludGVyYWN0aW9uLlRyYW5zbGF0ZSh7XG4gICAgICBmZWF0dXJlczogdGhpcy5zZWxlY3RTdG9wSW50ZXJhY3Rpb24uZ2V0RmVhdHVyZXMoKVxuICAgIH0pO1xuICAgIHRoaXMudHJhbnNsYXRlU3RvcC5vbigndHJhbnNsYXRpbmcnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xuICAgICAgdGhpcy5pc1RyYW5zbGF0aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZXhlY3V0ZVN0b3BUcmFuc2xhdGlvbihldnQuZmVhdHVyZXMpO1xuICAgIH0pO1xuICAgIHRoaXMudHJhbnNsYXRlU3RvcC5vbigndHJhbnNsYXRlZW5kJywgKGV2dDogVHJhbnNsYXRlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuaXNUcmFuc2xhdGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5leGVjdXRlU3RvcFRyYW5zbGF0aW9uKGV2dC5mZWF0dXJlcyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkUm91dGUgPSBuZXcgb2xJbnRlcmFjdGlvbi5TZWxlY3Qoe1xuICAgICAgbGF5ZXJzOiBbdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIub2xdLFxuICAgICAgY29uZGl0aW9uOiBvbENvbmRpdGlvbi5jbGljayxcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcbiAgICAgIGZpbHRlcjogKGZlYXR1cmUpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBmZWF0dXJlLmdldCgndHlwZScpID09PSBEaXJlY3Rpb25UeXBlLlJvdXRlICYmXG4gICAgICAgICAgZmVhdHVyZS5nZXQoJ2FjdGl2ZScpICYmXG4gICAgICAgICAgIXRoaXMuaXNUcmFuc2xhdGluZ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5vbignc2VsZWN0JywgKGV2dDogU2VsZWN0RXZlbnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvY3VzT25TdG9wID09PSBmYWxzZSkge1xuICAgICAgICBjb25zdCBzZWxlY3RDb29yZGluYXRlcyA9IHJvdW5kQ29vcmRUbyhcbiAgICAgICAgICBvbFByb2oudHJhbnNmb3JtKFxuICAgICAgICAgICAgKGV2dCBhcyBhbnkpLm1hcEJyb3dzZXJFdmVudC5jb29yZGluYXRlLFxuICAgICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24sXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25cbiAgICAgICAgICApIGFzIFtudW1iZXIsIG51bWJlcl0sXG4gICAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBhZGRlZFN0b3AgPSBhZGRTdG9wVG9TdG9yZSh0aGlzLnN0b3BzU3RvcmUpO1xuICAgICAgICBhZGRlZFN0b3AudGV4dCA9IHNlbGVjdENvb3JkaW5hdGVzLmpvaW4oJywnKTtcbiAgICAgICAgYWRkZWRTdG9wLmNvb3JkaW5hdGVzID0gW3NlbGVjdENvb3JkaW5hdGVzWzBdLCBzZWxlY3RDb29yZGluYXRlc1sxXV07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmludGVyYWN0aW9ucy5tYXAoKGludGVyYWN0aW9uKSA9PlxuICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLmFkZEludGVyYWN0aW9uKGludGVyYWN0aW9uKVxuICAgICk7XG4gIH1cblxuICBvblN0b3BJbnB1dEhhc0ZvY3VzQ2hhbmdlKHN0b3BJbnB1dEhhc0ZvY3VzOiBib29sZWFuKSB7XG4gICAgc3RvcElucHV0SGFzRm9jdXNcbiAgICAgID8gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKFxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZVxuICAgICAgICApXG4gICAgICA6IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLnNlbGVjdGVkUm91dGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlU3RvcFRyYW5zbGF0aW9uKGZlYXR1cmVzOiBDb2xsZWN0aW9uPGFueT4pIHtcbiAgICBpZiAoZmVhdHVyZXMuZ2V0TGVuZ3RoKCkgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZmlyc3RGZWF0dXJlID0gZmVhdHVyZXMuZ2V0QXJyYXkoKVswXTtcbiAgICBjb25zdCB0cmFuc2xhdGVkU3RvcElkID0gZmlyc3RGZWF0dXJlLmdldElkKCk7XG5cbiAgICBjb25zdCB0cmFuc2xhdGlvbkNvb3JkaW5hdGVzID0gb2xQcm9qLnRyYW5zZm9ybShcbiAgICAgIGZpcnN0RmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldENvb3JkaW5hdGVzKCksXG4gICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxuICAgICAgdGhpcy5wcm9qZWN0aW9uXG4gICAgKTtcbiAgICBjb25zdCB0cmFuc2xhdGVkU3RvcCA9IHRoaXMuc3RvcHNTdG9yZS5nZXQodHJhbnNsYXRlZFN0b3BJZCk7XG4gICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxuICAgICAgdHJhbnNsYXRpb25Db29yZGluYXRlcyBhcyBbbnVtYmVyLCBudW1iZXJdLFxuICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xuICAgICk7XG4gICAgdHJhbnNsYXRlZFN0b3AuY29vcmRpbmF0ZXMgPSByb3VuZGVkQ29vcmQ7XG4gICAgdHJhbnNsYXRlZFN0b3AudGV4dCA9IHJvdW5kZWRDb29yZC5qb2luKCcsJyk7XG4gICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZSh0cmFuc2xhdGVkU3RvcCk7XG4gIH1cblxuICBwcml2YXRlIG1vbml0b3JFbXB0eUVudGl0eVN0b3JlKCkge1xuICAgIC8vIFdhdGNoIGlmIHRoZSBzdG9yZSBpcyBlbXB0eSB0byByZXNldCBpdFxuICAgIHRoaXMuc3RvcmVFbXB0eSQkID0gdGhpcy5zdG9wc1N0b3JlLmNvdW50JFxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvdW50KSA9PiB7XG4gICAgICAgIGlmIChjb3VudCA8IDIpIHtcbiAgICAgICAgICBhZGRTdG9wVG9TdG9yZSh0aGlzLnN0b3BzU3RvcmUpO1xuICAgICAgICAgIGlmICh0aGlzLnN0b3BzU3RvcmUuY291bnQgPT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcHNTdG9yZS5zdG9yZUluaXRpYWxpemVkJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yb3V0ZXNRdWVyaWVzJCQubWFwKCh1KSA9PiB1LnVuc3Vic2NyaWJlKCkpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG1vbml0b3JFbnRpdHlTdG9yZUNoYW5nZSgpIHtcbiAgICB0aGlzLnN0b3JlQ2hhbmdlJCQgPSB0aGlzLnN0b3BzU3RvcmUuZW50aXRpZXMkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZSkpXG4gICAgICAuc3Vic2NyaWJlKChzdG9wczogU3RvcFtdKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlU3RvcERpZmYoc3RvcHMpO1xuICAgICAgICB1cGRhdGVTdG9yZVNvcnRpbmcodGhpcy5zdG9wc1N0b3JlKTtcbiAgICAgICAgdGhpcy5oYW5kbGVTdG9wc0ZlYXR1cmUoKTtcbiAgICAgICAgdGhpcy5nZXRSb3V0ZXModGhpcy5pc1RyYW5zbGF0aW5nKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgY2FuY2VsU2VhcmNoKCkge1xuICAgIHRoaXMuc2VhcmNocyQkLm1hcCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RvcERpZmYoc3RvcHM6IFN0b3BbXSkge1xuICAgIGNvbnN0IHNpbXBsaWZpZWRTdG9wcyA9IHN0b3BzLm1hcCgoc3RvcDogU3RvcCkgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XG4gICAgICAgIC4uLnsgaWQ6IHN0b3AuaWQsIHRleHQ6IHN0b3AudGV4dCwgY29vcmRpbmF0ZXM6IHN0b3AuY29vcmRpbmF0ZXMgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgZGlmZiA9IENoYW5nZVV0aWxzLmZpbmRDaGFuZ2VzKHRoaXMucHJldmlvdXNTdG9wcywgc2ltcGxpZmllZFN0b3BzLCBbXG4gICAgICAnY29vcmRpbmF0ZXMnXG4gICAgXSk7XG4gICAgY29uc3Qgc3RvcElkVG9Qcm9jZXNzID0gZGlmZi5hZGRlZC5jb25jYXQoZGlmZi5tb2RpZmllZCk7XG4gICAgaWYgKHN0b3BJZFRvUHJvY2Vzcykge1xuICAgICAgc3RvcElkVG9Qcm9jZXNzLm1hcCgoY2hhbmdlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRTdG9wID0gY2hhbmdlLm5ld1ZhbHVlIGFzIFN0b3A7XG4gICAgICAgIGlmIChjaGFuZ2VkU3RvcCkge1xuICAgICAgICAgIGNvbnN0IHN0b3A6IFN0b3AgPSB0aGlzLnN0b3BzU3RvcmUuZ2V0KGNoYW5nZWRTdG9wLmlkKTtcbiAgICAgICAgICBjb25zdCB0ZXJtID0gc3RvcC50ZXh0O1xuICAgICAgICAgIGlmICghdGVybSB8fCB0ZXJtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHN0cmluZ1RvTG9uTGF0KFxuICAgICAgICAgICAgdGVybSxcbiAgICAgICAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb25cbiAgICAgICAgICApO1xuICAgICAgICAgIGxldCBpc0Nvb3JkID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmxvbkxhdCkge1xuICAgICAgICAgICAgaXNDb29yZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlc2VhcmNoZXMgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRlcm0sIHtcbiAgICAgICAgICAgIHNlYXJjaFR5cGU6ICdGZWF0dXJlJ1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY2FuY2VsU2VhcmNoKCk7XG4gICAgICAgICAgY29uc3QgcmVxdWVzdHMkID0gcmVzZWFyY2hlcy5tYXAoKHJlcykgPT5cbiAgICAgICAgICAgIHJlcy5yZXF1ZXN0LnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XG4gICAgICAgICAgICAgICAgcmVzdWx0cy5maWx0ZXIoKHIpID0+XG4gICAgICAgICAgICAgICAgICBpc0Nvb3JkXG4gICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XG4gICAgICAgICAgICAgICAgICAgIDogci5kYXRhLmdlb21ldHJ5XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnNlYXJjaHMkJCA9IHJlcXVlc3RzJC5tYXAoKHJlcXVlc3QpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0XG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XG4gICAgICAgICAgICAgICAgICByZXN1bHRzLmZpbHRlcigocikgPT5cbiAgICAgICAgICAgICAgICAgICAgaXNDb29yZFxuICAgICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XG4gICAgICAgICAgICAgICAgICAgICAgOiByLmRhdGEuZ2VvbWV0cnlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBTZWFyY2hSZXN1bHRbXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gcmVzWzBdLnNvdXJjZTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG1ldGEgPSByZXNbMF0ubWV0YTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXMubWFwKChyKSA9PiByLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgaWYgKCFzdG9wLnNlYXJjaFByb3Bvc2Fscykge1xuICAgICAgICAgICAgICAgICAgICBzdG9wLnNlYXJjaFByb3Bvc2FscyA9IFtdO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMgPSBzdG9wLnNlYXJjaFByb3Bvc2Fscy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChzcCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBzcC50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgIChpc0Nvb3JkID8gUHJvcG9zYWxUeXBlLkNvb3JkIDogUHJvcG9zYWxUeXBlLlRleHQpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc3RvcmVkU291cmNlID0gc3RvcC5zZWFyY2hQcm9wb3NhbHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgKHNwKSA9PiBzcC5zb3VyY2UgPT09IHNvdXJjZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzdG9yZWRTb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVkU291cmNlLnJlc3VsdHMgPSByZXN1bHRzO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogaXNDb29yZCA/IFByb3Bvc2FsVHlwZS5Db29yZCA6IFByb3Bvc2FsVHlwZS5UZXh0LFxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICBtZXRhLFxuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucHJldmlvdXNTdG9wcyA9IHNpbXBsaWZpZWRTdG9wcztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RvcHNGZWF0dXJlKCkge1xuICAgIGNvbnN0IHN0b3BzID0gdGhpcy5zdG9wc1N0b3JlLmFsbCgpO1xuICAgIGNvbnN0IHN0b3BzV2l0aENvb3JkaW5hdGVzID0gc3RvcHMuZmlsdGVyKChzdG9wKSA9PiBzdG9wLmNvb3JkaW5hdGVzKTtcbiAgICBzdG9wc1dpdGhDb29yZGluYXRlcy5tYXAoKHN0b3ApID0+IHRoaXMuYWRkU3RvcE92ZXJsYXkoc3RvcCkpO1xuICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmVcbiAgICAgIC5hbGwoKVxuICAgICAgLm1hcCgoc3RvcEZlYXR1cmU6IEZlYXR1cmU8RmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcz4pID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3BzU3RvcmUuZ2V0KHN0b3BGZWF0dXJlLnByb3BlcnRpZXMuaWQpKSB7XG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5kZWxldGUoc3RvcEZlYXR1cmUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBjb25zdCBzdG9wc1dpdGhvdXRDb29yZGluYXRlcyA9IHN0b3BzLmZpbHRlcigoc3RvcCkgPT4gIXN0b3AuY29vcmRpbmF0ZXMpO1xuICAgIHN0b3BzV2l0aG91dENvb3JkaW5hdGVzLm1hcCgoc3RvcCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcEZlYXR1cmUgPSB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmdldChzdG9wLmlkKTtcbiAgICAgIGlmIChzdG9wRmVhdHVyZSkge1xuICAgICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmRlbGV0ZShzdG9wRmVhdHVyZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFJvdXRlcyhpc092ZXJ2aWV3ID0gZmFsc2UpIHtcbiAgICBjb25zdCBzdG9wc1dpdGhDb29yZGluYXRlcyA9IHRoaXMuc3RvcHNTdG9yZS52aWV3XG4gICAgICAuYWxsKClcbiAgICAgIC5maWx0ZXIoKHN0b3ApID0+IHN0b3AuY29vcmRpbmF0ZXMpO1xuICAgIGlmIChzdG9wc1dpdGhDb29yZGluYXRlcy5sZW5ndGggPCAyKSB7XG4gICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5kZWxldGVNYW55KHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmFsbCgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByb3VuZGVkQ29vcmRpbmF0ZXMgPSBzdG9wc1dpdGhDb29yZGluYXRlcy5tYXAoKHN0b3ApID0+IHtcbiAgICAgIGNvbnN0IHJvdW5kZWRDb29yZCA9IHJvdW5kQ29vcmRUbyhcbiAgICAgICAgc3RvcC5jb29yZGluYXRlcyxcbiAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xuICAgICAgKTtcbiAgICAgIHJldHVybiByb3VuZGVkQ29vcmQ7XG4gICAgfSk7XG4gICAgY29uc3Qgb3ZlcnZpZXdEaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHtcbiAgICAgIG92ZXJ2aWV3OiB0cnVlLFxuICAgICAgc3RlcHM6IGZhbHNlLFxuICAgICAgYWx0ZXJuYXRpdmVzOiBmYWxzZSxcbiAgICAgIGNvbnRpbnVlX3N0cmFpZ2h0OiBmYWxzZVxuICAgIH07XG4gICAgdGhpcy5yb3V0ZXNRdWVyaWVzJCQubWFwKCh1KSA9PiB1LnVuc3Vic2NyaWJlKCkpO1xuICAgIGNvbnN0IHJvdXRlUmVzcG9uc2UgPSB0aGlzLmRpcmVjdGlvbnNTZXJ2aWNlLnJvdXRlKFxuICAgICAgcm91bmRlZENvb3JkaW5hdGVzLFxuICAgICAgaXNPdmVydmlldyA/IG92ZXJ2aWV3RGlyZWN0aW9uc09wdGlvbnMgOiB1bmRlZmluZWRcbiAgICApO1xuICAgIGlmIChyb3V0ZVJlc3BvbnNlKSB7XG4gICAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5wdXNoKFxuICAgICAgICByb3V0ZVJlc3BvbnNlLnN1YnNjcmliZSgoZGlyZWN0aW9ucykgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmRlbGV0ZU1hbnkodGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuYWxsKCkpO1xuICAgICAgICAgIGRpcmVjdGlvbnMubWFwKChkaXJlY3Rpb24pID0+XG4gICAgICAgICAgICBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZShcbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUsXG4gICAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uLFxuICAgICAgICAgICAgICBkaXJlY3Rpb24gPT09IGRpcmVjdGlvbnNbMF0gPyB0cnVlIDogZmFsc2VcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkU3RvcE92ZXJsYXkoc3RvcDogU3RvcCkge1xuICAgIGFkZFN0b3BUb1N0b3BzRmVhdHVyZVN0b3JlKFxuICAgICAgc3RvcCxcbiAgICAgIHRoaXMuc3RvcHNTdG9yZSxcbiAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsXG4gICAgICB0aGlzLnByb2plY3Rpb24sXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZVxuICAgICk7XG4gIH1cblxuICBvblRvZ2dsZURpcmVjdGlvbnNDb250cm9sKGlzQWN0aXZlOiBib29sZWFuKSB7XG4gICAgdGhpcy5xdWVyeVNlcnZpY2UucXVlcnlFbmFibGVkID0gIWlzQWN0aXZlO1xuICAgIGNvbnN0IG9sID0gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sO1xuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XG4gICAgICBpc0FjdGl2ZVxuICAgICAgICA/IG9sLmFkZEludGVyYWN0aW9uKGludGVyYWN0aW9uKVxuICAgICAgICA6IG9sLnJlbW92ZUludGVyYWN0aW9uKGludGVyYWN0aW9uKVxuICAgICk7XG4gIH1cblxuICBvblRvZ2dsZVByaXZhdGVNb2RlQ29udHJvbChpc0FjdGl2ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZGlyZWN0aW9uc1NvdXJjZVNlcnZpY2Uuc291cmNlc1swXS5wcm9maWxlcy5mb3JFYWNoKFxuICAgICAgKHByb2ZpbGUpID0+IChwcm9maWxlLmVuYWJsZWQgPSBmYWxzZSlcbiAgICApO1xuICAgIGlmIChpc0FjdGl2ZSkge1xuICAgICAgdGhpcy5kaXJlY3Rpb25zU291cmNlU2VydmljZS5zb3VyY2VzWzBdLnByb2ZpbGVzLmZpbmQoXG4gICAgICAgIChwcm9maWxlKSA9PiBwcm9maWxlLmF1dGhvcml6YXRpb25cbiAgICAgICkuZW5hYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5mb3Jlc3RSb2Fkc1dhcm5pbmcudGV4dCdcbiAgICAgICAgKSxcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZm9yZXN0Um9hZHNXYXJuaW5nLnRpdGxlJ1xuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlLnNvdXJjZXNbMF0ucHJvZmlsZXMuZmluZChcbiAgICAgICAgKHByb2ZpbGUpID0+ICFwcm9maWxlLmF1dGhvcml6YXRpb25cbiAgICAgICkuZW5hYmxlZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuZ2V0Um91dGVzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaXJlY3Rpb25zLW9wdGlvbnNcIj5cbiAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICBbY2hlY2tlZF09XCJkaXJlY3Rpb25Db250cm9sSXNBY3RpdmVcIlxuICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcbiAgICAoY2hhbmdlKT1cIm9uVG9nZ2xlRGlyZWN0aW9uc0NvbnRyb2woJGV2ZW50LmNoZWNrZWQpXCJcbiAgPlxuICAgIHt7ICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnRvZ2dsZUFjdGl2ZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICpuZ0lmPVwiaGFzT3NybVByaXZhdGVBY2Nlc3MgJiYgdHdvU291cmNlc0F2YWlsYWJsZVwiXG4gICAgW2NoZWNrZWRdPVwiZW5hYmxlZFByb2ZpbGVIYXNBdXRob3JpemF0aW9uXCJcbiAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiXG4gICAgKGNoYW5nZSk9XCJvblRvZ2dsZVByaXZhdGVNb2RlQ29udHJvbCgkZXZlbnQuY2hlY2tlZClcIlxuICA+XG4gICAge3sgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0udG9nZ2xlVHlwZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuPC9kaXY+XG5cbjxpZ28tZGlyZWN0aW9ucy1idXR0b25zXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxuICBbY29udGV4dFVyaV09XCJjb250ZXh0VXJpXCJcbiAgW3pvb21Ub0FjdGl2ZVJvdXRlJF09XCJ6b29tVG9BY3RpdmVSb3V0ZSRcIlxuICBbcm91dGVzRmVhdHVyZVN0b3JlXT1cInJvdXRlc0ZlYXR1cmVTdG9yZVwiXG4gIFtzdG9wc1N0b3JlXT1cInN0b3BzU3RvcmVcIlxuPjwvaWdvLWRpcmVjdGlvbnMtYnV0dG9ucz5cblxuPGlnby1kaXJlY3Rpb25zLWlucHV0c1xuICAoc3RvcElucHV0SGFzRm9jdXMpPVwib25TdG9wSW5wdXRIYXNGb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgW2Nvb3JkUm91bmRlZERlY2ltYWxzXT1cImNvb3JkUm91bmRlZERlY2ltYWxzXCJcbiAgW3Byb2plY3Rpb25dPVwicHJvamVjdGlvblwiXG4gIFtzdG9wc0ZlYXR1cmVTdG9yZV09XCJzdG9wc0ZlYXR1cmVTdG9yZVwiXG4gIFtzdG9wc1N0b3JlXT1cInN0b3BzU3RvcmVcIlxuICBbZGVib3VuY2VdPVwiZGVib3VuY2VcIlxuICBbbGVuZ3RoXT1cImxlbmd0aFwiXG4+PC9pZ28tZGlyZWN0aW9ucy1pbnB1dHM+XG5cbjxpZ28tZGlyZWN0aW9ucy1yZXN1bHRzXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxuICBbcm91dGVzRmVhdHVyZVN0b3JlXT1cInJvdXRlc0ZlYXR1cmVTdG9yZVwiXG4+PC9pZ28tZGlyZWN0aW9ucy1yZXN1bHRzPlxuIl19
@@ -13,20 +13,20 @@ export class IgoDirectionsModule {
13
13
  ngModule: IgoDirectionsModule
14
14
  };
15
15
  }
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoDirectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoDirectionsModule, imports: [DirectionsComponent,
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IgoDirectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: IgoDirectionsModule, imports: [DirectionsComponent,
18
18
  DirectionsInputsComponent,
19
19
  DirectionsButtonsComponent,
20
20
  DirectionsResultsComponent], exports: [DirectionsComponent,
21
21
  DirectionsInputsComponent,
22
22
  DirectionsButtonsComponent,
23
23
  DirectionsResultsComponent] });
24
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoDirectionsModule, imports: [DirectionsComponent,
24
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IgoDirectionsModule, imports: [DirectionsComponent,
25
25
  DirectionsInputsComponent,
26
26
  DirectionsButtonsComponent,
27
27
  DirectionsResultsComponent] });
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoDirectionsModule, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IgoDirectionsModule, decorators: [{
30
30
  type: NgModule,
31
31
  args: [{
32
32
  imports: [
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
43
43
  ]
44
44
  }]
45
45
  }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWdCN0QsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7U0FDOUIsQ0FBQztJQUNKLENBQUM7dUdBUlUsbUJBQW1CO3dHQUFuQixtQkFBbUIsWUFaNUIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIsMEJBQTBCLGFBRzFCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLDBCQUEwQjt3R0FHakIsbUJBQW1CLFlBWjVCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLDBCQUEwQjs7MkZBU2pCLG1CQUFtQjtrQkFkL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3FCQUMzQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWJ1dHRvbnMvZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlyZWN0aW9uc1Jlc3VsdHNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtcmVzdWx0cy9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50JztcbmltcG9ydCB7IERpcmVjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIERpcmVjdGlvbnNDb21wb25lbnQsXG4gICAgRGlyZWN0aW9uc0lucHV0c0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zQnV0dG9uc0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRGlyZWN0aW9uc0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50LFxuICAgIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50LFxuICAgIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSWdvRGlyZWN0aW9uc01vZHVsZSB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBpdCBoYXMgbm8gZWZmZWN0XG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb0RpcmVjdGlvbnNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IElnb0RpcmVjdGlvbnNNb2R1bGVcbiAgICB9O1xuICB9XG59XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWdCN0QsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7U0FDOUIsQ0FBQztJQUNKLENBQUM7d0dBUlUsbUJBQW1CO3lHQUFuQixtQkFBbUIsWUFaNUIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIsMEJBQTBCLGFBRzFCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLDBCQUEwQjt5R0FHakIsbUJBQW1CLFlBWjVCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLDBCQUEwQjs7NEZBU2pCLG1CQUFtQjtrQkFkL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3FCQUMzQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWJ1dHRvbnMvZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlyZWN0aW9uc1Jlc3VsdHNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtcmVzdWx0cy9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50JztcbmltcG9ydCB7IERpcmVjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIERpcmVjdGlvbnNDb21wb25lbnQsXG4gICAgRGlyZWN0aW9uc0lucHV0c0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zQnV0dG9uc0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRGlyZWN0aW9uc0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50LFxuICAgIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50LFxuICAgIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSWdvRGlyZWN0aW9uc01vZHVsZSB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBpdCBoYXMgbm8gZWZmZWN0XG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb0RpcmVjdGlvbnNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IElnb0RpcmVjdGlvbnNNb2R1bGVcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -201,13 +201,13 @@ export class DirectionsService {
201
201
  doc.text('Page ' + doc.getCurrentPageInfo().pageNumber + ' / ' + pageCount, width - 20, pageHeight - 10);
202
202
  }
203
203
  }
204
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionsService, deps: [{ token: i1.DirectionsSourceService }, { token: i2.ConfigService }, { token: i3.LanguageService }, { token: i4.PrintService }, { token: DOCUMENT }, { token: i5.ActivityService }], target: i0.ɵɵFactoryTarget.Injectable });
205
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionsService });
204
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DirectionsService, deps: [{ token: i1.DirectionsSourceService }, { token: i2.ConfigService }, { token: i3.LanguageService }, { token: i4.PrintService }, { token: DOCUMENT }, { token: i5.ActivityService }], target: i0.ɵɵFactoryTarget.Injectable });
205
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DirectionsService });
206
206
  }
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DirectionsService, decorators: [{
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DirectionsService, decorators: [{
208
208
  type: Injectable
209
209
  }], ctorParameters: () => [{ type: i1.DirectionsSourceService }, { type: i2.ConfigService }, { type: i3.LanguageService }, { type: i4.PrintService }, { type: Document, decorators: [{
210
210
  type: Inject,
211
211
  args: [DOCUMENT]
212
212
  }] }, { type: i5.ActivityService }] });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2xCLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFHNUIsTUFBTSxPQUFPLGlCQUFpQjtJQUVsQjtJQUNBO0lBQ0E7SUFDQTtJQUNrQjtJQUNsQjtJQU5WLFlBQ1UsdUJBQWdELEVBQ2hELGFBQTRCLEVBQzVCLGVBQWdDLEVBQ2hDLFlBQTBCLEVBQ1IsUUFBa0IsRUFDcEMsZUFBZ0M7UUFMaEMsNEJBQXVC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LENBQUMsUUFBUSxDQUFDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNO2dCQUNoQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQ2pCLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM1QyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDcEMsR0FBRyxDQUFDLElBQUksQ0FDTixPQUFPLEdBQUcsR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxTQUFTLEVBQ2pFLEtBQUssR0FBRyxFQUFFLEVBQ1YsVUFBVSxHQUFHLEVBQUUsQ0FDaEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO3VHQWpQVSxpQkFBaUIsaUpBTWxCLFFBQVE7MkdBTlAsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOzswQkFPTixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9hY3Rpdml0eSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5pbXBvcnQgeyBTdWJqZWN0U3RhdHVzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJ2dlb2pzb24nO1xuaW1wb3J0IGh0bWwyY2FudmFzIGZyb20gJ2h0bWwyY2FudmFzJztcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgeyBVc2VyT3B0aW9ucyB9IGZyb20gJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ByaW50L3NoYXJlZC9wcmludC5zZXJ2aWNlJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuLi9kaXJlY3Rpb25zLXNvdXJjZXMvZGlyZWN0aW9ucy1zb3VyY2UnO1xuaW1wb3J0IHsgRGlyZWN0aW9uLCBEaXJlY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGZvcm1hdERpc3RhbmNlLFxuICBmb3JtYXREdXJhdGlvbixcbiAgZm9ybWF0SW5zdHJ1Y3Rpb25cbn0gZnJvbSAnLi9kaXJlY3Rpb25zLnV0aWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU291cmNlU2VydmljZTogRGlyZWN0aW9uc1NvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmludFNlcnZpY2U6IFByaW50U2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIGFjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlXG4gICkge31cblxuICByb3V0ZShcbiAgICBjb29yZGluYXRlczogUG9zaXRpb25bXSxcbiAgICBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8RGlyZWN0aW9uW10+IHtcbiAgICBpZiAoY29vcmRpbmF0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJvdXRlU291cmNlKFxuICAgICAgdGhpcy5kaXJlY3Rpb25zU291cmNlU2VydmljZS5zb3VyY2VzWzBdLFxuICAgICAgY29vcmRpbmF0ZXMsXG4gICAgICBkaXJlY3Rpb25zT3B0aW9uc1xuICAgICk7XG4gIH1cblxuICByb3V0ZVNvdXJjZShcbiAgICBzb3VyY2U6IERpcmVjdGlvbnNTb3VyY2UsXG4gICAgY29vcmRpbmF0ZXM6IFBvc2l0aW9uW10sXG4gICAgZGlyZWN0aW9uc09wdGlvbnM6IERpcmVjdGlvbk9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPERpcmVjdGlvbltdPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHNvdXJjZS5yb3V0ZShjb29yZGluYXRlcywgZGlyZWN0aW9uc09wdGlvbnMpO1xuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgZG93bmxvYWREaXJlY3Rpb24oXG4gICAgbWFwOiBJZ29NYXAsXG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb25cbiAgKTogT2JzZXJ2YWJsZTxTdWJqZWN0U3RhdHVzPiB7XG4gICAgY29uc3QgYWN0aXZpdHlJZCA9IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnJlZ2lzdGVyKCk7XG4gICAgY29uc3Qgc3RhdHVzJCA9IG5ldyBTdWJqZWN0PFN1YmplY3RTdGF0dXM+KCk7XG5cbiAgICBjb25zdCBkb2M6IGpzUERGID0gbmV3IGpzUERGKHtcbiAgICAgIG9yaWVudGF0aW9uOiAncCcsXG4gICAgICBmb3JtYXQ6ICdMZXR0ZXInLFxuICAgICAgdW5pdDogJ21tJyAvLyBkZWZhdWx0XG4gICAgfSk7XG5cbiAgICBjb25zdCB7IHdpZHRoOiBwYWdlV2lkdGgsIGhlaWdodDogcGFnZUhlaWdodCB9ID0gZG9jLmludGVybmFsLnBhZ2VTaXplO1xuXG4gICAgLyoqIHRvcCB8IHJpZ2h0IHwgYm90dG9tIHwgbGVmdCAqL1xuICAgIGNvbnN0IG1hcmdpbnM6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0gWzIwLCAxMCwgMjAsIDEwXTtcbiAgICB0aGlzLmFkZEF0dHJpYnV0aW9uKG1hcCwgZG9jLCBtYXJnaW5zKTtcbiAgICBjb25zdCB3aWR0aCA9IHBhZ2VXaWR0aCAtIG1hcmdpbnNbM10gLSBtYXJnaW5zWzFdO1xuICAgIGNvbnN0IGhlaWdodCA9IHBhZ2VIZWlnaHQgLSBtYXJnaW5zWzBdIC0gbWFyZ2luc1syXTtcbiAgICBjb25zdCBpbWFnZURpbWVuc2lvbnM6IFtudW1iZXIsIG51bWJlcl0gPSBbd2lkdGgsIGhlaWdodF07XG4gICAgY29uc3QgdGl0bGUgPSBgJHtkaXJlY3Rpb24udGl0bGV9ICgke2Zvcm1hdERpc3RhbmNlKFxuICAgICAgZGlyZWN0aW9uLmRpc3RhbmNlXG4gICAgKX0sICR7Zm9ybWF0RHVyYXRpb24oZGlyZWN0aW9uLmR1cmF0aW9uKX0pYDtcbiAgICBjb25zdCB0aXRsZVBvc2l0aW9uID0gMjU7XG5cbiAgICBkb2MudGV4dCh0aXRsZSwgZG9jLmludGVybmFsLnBhZ2VTaXplLndpZHRoIC8gMiwgdGl0bGVQb3NpdGlvbiwge1xuICAgICAgYWxpZ246ICdjZW50ZXInXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvbHV0aW9uID0gOTY7IC8vIERlZmF1bHQgaXMgOTZcbiAgICB0aGlzLnByaW50U2VydmljZVxuICAgICAgLmFkZE1hcChkb2MsIG1hcCwgcmVzb2x1dGlvbiwgaW1hZ2VEaW1lbnNpb25zLCBtYXJnaW5zKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoc3RhdHVzOiBTdWJqZWN0U3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFN1YmplY3RTdGF0dXMuRG9uZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWRkSW5zdHJ1Y3Rpb25zKGRvYywgZGlyZWN0aW9uLCB0aXRsZSk7XG4gICAgICAgICAgdGhpcy5zZXRQYWdlSGVhZGVyRm9vdGVyKGRvYyk7XG4gICAgICAgICAgYXdhaXQgZG9jLnNhdmUoYCR7dGl0bGV9LnBkZmAsIHsgcmV0dXJuUHJvbWlzZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnVucmVnaXN0ZXIoYWN0aXZpdHlJZCk7XG4gICAgICAgIHN0YXR1cyQubmV4dChzdGF0dXMpO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gc3RhdHVzJDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQXR0cmlidXRpb24oXG4gICAgbWFwOiBJZ29NYXAsXG4gICAgZG9jOiBqc1BERixcbiAgICBtYXJnaW5zOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICApIHtcbiAgICBjb25zdCB2ZXJ0aWNhbFNwYWNpbmcgPSA1O1xuICAgIGNvbnN0IGF0dHJpYnV0aW9uVGV4dDogc3RyaW5nID0gdGhpcy5wcmludFNlcnZpY2UuZ2V0QXR0cmlidXRpb25UZXh0KG1hcCk7XG4gICAgaWYgKGF0dHJpYnV0aW9uVGV4dCkge1xuICAgICAgbWFyZ2luc1syXSArPSB2ZXJ0aWNhbFNwYWNpbmc7XG4gICAgICBjb25zdCB4UG9zaXRpb24gPSBtYXJnaW5zWzNdO1xuICAgICAgY29uc3QgbWFyZ2luQm90dG9tID0gbWFyZ2luc1syXTtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0ZXh0IHBvc2l0aW9uIFlcbiAgICAgIGNvbnN0IHlQb3NpdGlvbiA9XG4gICAgICAgIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5oZWlnaHQgLSBtYXJnaW5Cb3R0b20gKyB2ZXJ0aWNhbFNwYWNpbmc7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoMTApO1xuICAgICAgZG9jLnRleHQoYXR0cmlidXRpb25UZXh0LCB4UG9zaXRpb24sIHlQb3NpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRIVE1MVGFibGVDb250ZW50KFxuICAgIGRpcmVjdGlvbjogRGlyZWN0aW9uXG4gICk6IFByb21pc2U8SFRNTFRhYmxlRWxlbWVudD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmRpcmVjdGlvbnNJbnN0cnVjdGlvbihkaXJlY3Rpb24pO1xuICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTtcbiAgICBjb25zdCB0YmxCb2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGJvZHknKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mb3Itb2ZcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkYXRhW2luZGV4XTtcbiAgICAgIGNvbnN0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7XG4gICAgICBjb25zdCBjZWxsSW1hZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpO1xuICAgICAgY29uc3QgY2VsbFRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpO1xuICAgICAgLy8gaWNvblxuICAgICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICAgIGltZy5zcmMgPSBlbGVtZW50Lmljb247XG4gICAgICAvLyBpbnN0cnVjdGlvbiB0ZXh0XG4gICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgc3Bhbi5pbm5lckhUTUwgPSBlbGVtZW50Lmluc3RydWN0aW9uO1xuICAgICAgY2VsbEltYWdlLmFwcGVuZENoaWxkKGltZyk7XG4gICAgICBjZWxsVGV4dC5hcHBlbmRDaGlsZChzcGFuKTtcbiAgICAgIGlmIChlbGVtZW50LmRpc3RhbmNlKSB7XG4gICAgICAgIGNvbnN0IHNwYW5EaXN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgc3BhbkRpc3RhbmNlLnN0eWxlLnZlcnRpY2FsQWxpZ24gPSAnbWlkZGxlJztcbiAgICAgICAgc3BhbkRpc3RhbmNlLmlubmVySFRNTCA9XG4gICAgICAgICAgJyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOycgKyBlbGVtZW50LmRpc3RhbmNlO1xuICAgICAgICBjZWxsVGV4dC5hcHBlbmRDaGlsZChzcGFuRGlzdGFuY2UpO1xuICAgICAgfVxuICAgICAgcm93LmFwcGVuZChjZWxsSW1hZ2UpO1xuICAgICAgcm93LmFwcGVuZChjZWxsVGV4dCk7XG4gICAgICB0YmxCb2R5LmFwcGVuZENoaWxkKHJvdyk7XG4gICAgfVxuICAgIHRhYmxlLmFwcGVuZENoaWxkKHRibEJvZHkpO1xuICAgIHJldHVybiB0YWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGlyZWN0aW9uc0luc3RydWN0aW9uKFxuICAgIGRpcmVjdGlvbjogRGlyZWN0aW9uXG4gICk6IFByb21pc2U8eyBpbnN0cnVjdGlvbjogc3RyaW5nOyBpY29uOiBzdHJpbmc7IGRpc3RhbmNlOiBzdHJpbmcgfVtdPiB7XG4gICAgY29uc3QgbWF0TGlzdEl0ZW1zID0gdGhpcy5kb2N1bWVudFxuICAgICAgLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZ28tZGlyZWN0aW9ucy1yZXN1bHRzJylbMF1cbiAgICAgIC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbWF0LWxpc3QnKVswXTtcbiAgICBjb25zdCBtYXRMaXN0SXRlbSA9IG1hdExpc3RJdGVtcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbWF0LWxpc3QtaXRlbScpO1xuICAgIC8vIGNvbnZlcnQgaWNvbiBsaXN0IHRvIGJhc2U2NFxuICAgIGNvbnN0IGljb25zQXJyYXk6IHsgbmFtZTogc3RyaW5nOyBpY29uOiBzdHJpbmcgfVtdID0gW107XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZm9yLW9mXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hdExpc3RJdGVtLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgZWxlbWVudCA9IG1hdExpc3RJdGVtW2luZGV4XTtcbiAgICAgIGNvbnN0IGljb24gPSBlbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtYXQtaWNvbicpWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaWNvbk5hbWUgPSBpY29uLmlubmVyVGV4dDtcbiAgICAgIGNvbnN0IGZvdW5kID0gaWNvbnNBcnJheS5zb21lKChlbCkgPT4gZWwubmFtZSA9PT0gaWNvbk5hbWUpO1xuICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICBjb25zdCBpY29uQ2FudmFzID0gYXdhaXQgaHRtbDJjYW52YXMoaWNvbiwgeyBzY2FsZTogMyB9KTtcbiAgICAgICAgaWNvbnNBcnJheS5wdXNoKHsgbmFtZTogaWNvbk5hbWUsIGljb246IGljb25DYW52YXMudG9EYXRhVVJMKCkgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkRGlyZWN0aW9uOiB7XG4gICAgICBpbnN0cnVjdGlvbjogc3RyaW5nO1xuICAgICAgaWNvbjogc3RyaW5nO1xuICAgICAgZGlzdGFuY2U6IHN0cmluZztcbiAgICB9W10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpcmVjdGlvbi5zdGVwcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qgc3RlcCA9IGRpcmVjdGlvbi5zdGVwc1tpXTtcbiAgICAgIGNvbnN0IGluc3RydWN0aW9uID0gZm9ybWF0SW5zdHJ1Y3Rpb24oXG4gICAgICAgIHN0ZXAubWFuZXV2ZXIudHlwZSxcbiAgICAgICAgc3RlcC5tYW5ldXZlci5tb2RpZmllcixcbiAgICAgICAgc3RlcC5uYW1lLFxuICAgICAgICBzdGVwLm1hbmV1dmVyLmJlYXJpbmdfYWZ0ZXIsXG4gICAgICAgIGksXG4gICAgICAgIChzdGVwLm1hbmV1dmVyIGFzIGFueSkuZXhpdCxcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UsXG4gICAgICAgIGkgPT09IGRpcmVjdGlvbi5zdGVwcy5sZW5ndGggLSAxXG4gICAgICApO1xuXG4gICAgICBjb25zdCBkaXN0YW5jZSA9IGZvcm1hdERpc3RhbmNlKHN0ZXAuZGlzdGFuY2UpO1xuICAgICAgZm9ybWF0dGVkRGlyZWN0aW9uLnB1c2goe1xuICAgICAgICBpbnN0cnVjdGlvbjogaSArIDEgKyAnLiAnICsgaW5zdHJ1Y3Rpb24uaW5zdHJ1Y3Rpb24sXG4gICAgICAgIGljb246IGljb25zQXJyYXkuZmluZCgoaWNvbikgPT4gaWNvbi5uYW1lID09PSBpbnN0cnVjdGlvbi5pbWFnZSkuaWNvbixcbiAgICAgICAgZGlzdGFuY2U6IGRpc3RhbmNlID8gJygnICsgZGlzdGFuY2UgKyAnKScgOiB1bmRlZmluZWRcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGVkRGlyZWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhZGRJbnN0cnVjdGlvbnMoXG4gICAgZG9jOiBqc1BERixcbiAgICBkaXJlY3Rpb246IERpcmVjdGlvbixcbiAgICB0aXRsZTogc3RyaW5nXG4gICkge1xuICAgIGRvYy5hZGRQYWdlKCk7XG4gICAgY29uc3QgdGl0bGVQb3NpdGlvbiA9IDI1O1xuICAgIGRvYy50ZXh0KHRpdGxlLCBkb2MuaW50ZXJuYWwucGFnZVNpemUud2lkdGggLyAyLCB0aXRsZVBvc2l0aW9uLCB7XG4gICAgICBhbGlnbjogJ2NlbnRlcidcbiAgICB9KTtcbiAgICBjb25zdCBIVE1MdGFibGUgPSBhd2FpdCB0aGlzLnNldEhUTUxUYWJsZUNvbnRlbnQoZGlyZWN0aW9uKTtcbiAgICBjb25zdCB0YWJsZVBvcyA9IHRpdGxlUG9zaXRpb24gKyA1O1xuICAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xuICAgICAgaHRtbDogSFRNTHRhYmxlLFxuICAgICAgc3RhcnRZOiB0YWJsZVBvcyxcbiAgICAgIG1hcmdpbjogeyB0b3A6IDIwLCBib3R0b206IDIwIH0sXG4gICAgICBjb2x1bW5TdHlsZXM6IHtcbiAgICAgICAgMDogeyBjZWxsV2lkdGg6IDEwIH1cbiAgICAgIH0sXG4gICAgICB0aGVtZTogJ3BsYWluJyxcbiAgICAgIHN0eWxlczoge1xuICAgICAgICBmb250U2l6ZTogMTJcbiAgICAgIH0sXG4gICAgICBkaWREcmF3Q2VsbDogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEuY29sdW1uLmluZGV4ID09PSAwICYmIGRhdGEuY2VsbC5zZWN0aW9uID09PSAnYm9keScpIHtcbiAgICAgICAgICBkYXRhLnJvdy5oZWlnaHQgPSAxMDtcbiAgICAgICAgICBjb25zdCB0ZCA9IGRhdGEuY2VsbC5yYXcgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgaW1nID0gdGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpWzBdO1xuICAgICAgICAgIGRvYy5hZGRJbWFnZShpbWcuc3JjLCBkYXRhLmNlbGwueCwgZGF0YS5jZWxsLnksIDgsIDgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBzYXRpc2ZpZXMgVXNlck9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYWdlSGVhZGVyRm9vdGVyKGRvYzoganNQREYpIHtcbiAgICBjb25zdCBwYWdlQ291bnQgPSBkb2MuZ2V0TnVtYmVyT2ZQYWdlcygpO1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoRGF0ZS5ub3coKSkuZm9ybWF0KCdERC9NTS9ZWVlZIGhoOm1tJykudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IGxvZ29Db25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdkaXJlY3Rpb25zU291cmNlcy5sb2dvJyk7XG4gICAgY29uc3QgbG9nbyA9IGxvZ29Db25maWcgPyBsb2dvQ29uZmlnIDogJ2Fzc2V0cy9sb2dvLnBuZyc7XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcGFnZUNvdW50OyBpbmRleCsrKSB7XG4gICAgICBkb2Muc2V0UGFnZShpbmRleCk7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoOCk7XG4gICAgICBjb25zdCBwYWdlU2l6ZSA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZTtcbiAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSBwYWdlU2l6ZS5oZWlnaHRcbiAgICAgICAgPyBwYWdlU2l6ZS5oZWlnaHRcbiAgICAgICAgOiBwYWdlU2l6ZS5nZXRIZWlnaHQoKTtcbiAgICAgIGNvbnN0IHdpZHRoID0gcGFnZVNpemUud2lkdGggPyBwYWdlU2l6ZS53aWR0aCA6IHBhZ2VTaXplLmdldFdpZHRoKCk7XG4gICAgICBkb2MudGV4dChkYXRlLCAxMCwgMTAsIHsgYmFzZWxpbmU6ICd0b3AnIH0pO1xuICAgICAgZG9jLmFkZEltYWdlKGxvZ28sICdQTkcnLCB3aWR0aCAtIDIwLCA1LCAxMCwgMTApO1xuICAgICAgZG9jLnRleHQoZGF0ZSwgMTAsIHBhZ2VIZWlnaHQgLSAxMCk7XG4gICAgICBkb2MudGV4dChcbiAgICAgICAgJ1BhZ2UgJyArIGRvYy5nZXRDdXJyZW50UGFnZUluZm8oKS5wYWdlTnVtYmVyICsgJyAvICcgKyBwYWdlQ291bnQsXG4gICAgICAgIHdpZHRoIC0gMjAsXG4gICAgICAgIHBhZ2VIZWlnaHQgLSAxMFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2xCLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFHNUIsTUFBTSxPQUFPLGlCQUFpQjtJQUVsQjtJQUNBO0lBQ0E7SUFDQTtJQUNrQjtJQUNsQjtJQU5WLFlBQ1UsdUJBQWdELEVBQ2hELGFBQTRCLEVBQzVCLGVBQWdDLEVBQ2hDLFlBQTBCLEVBQ1IsUUFBa0IsRUFDcEMsZUFBZ0M7UUFMaEMsNEJBQXVC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LENBQUMsUUFBUSxDQUFDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNO2dCQUNoQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQ2pCLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM1QyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDcEMsR0FBRyxDQUFDLElBQUksQ0FDTixPQUFPLEdBQUcsR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxTQUFTLEVBQ2pFLEtBQUssR0FBRyxFQUFFLEVBQ1YsVUFBVSxHQUFHLEVBQUUsQ0FDaEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO3dHQWpQVSxpQkFBaUIsaUpBTWxCLFFBQVE7NEdBTlAsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOzswQkFPTixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9hY3Rpdml0eSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5pbXBvcnQgeyBTdWJqZWN0U3RhdHVzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJ2dlb2pzb24nO1xuaW1wb3J0IGh0bWwyY2FudmFzIGZyb20gJ2h0bWwyY2FudmFzJztcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgeyBVc2VyT3B0aW9ucyB9IGZyb20gJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ByaW50L3NoYXJlZC9wcmludC5zZXJ2aWNlJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuLi9kaXJlY3Rpb25zLXNvdXJjZXMvZGlyZWN0aW9ucy1zb3VyY2UnO1xuaW1wb3J0IHsgRGlyZWN0aW9uLCBEaXJlY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGZvcm1hdERpc3RhbmNlLFxuICBmb3JtYXREdXJhdGlvbixcbiAgZm9ybWF0SW5zdHJ1Y3Rpb25cbn0gZnJvbSAnLi9kaXJlY3Rpb25zLnV0aWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU291cmNlU2VydmljZTogRGlyZWN0aW9uc1NvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmludFNlcnZpY2U6IFByaW50U2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIGFjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlXG4gICkge31cblxuICByb3V0ZShcbiAgICBjb29yZGluYXRlczogUG9zaXRpb25bXSxcbiAgICBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8RGlyZWN0aW9uW10+IHtcbiAgICBpZiAoY29vcmRpbmF0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJvdXRlU291cmNlKFxuICAgICAgdGhpcy5kaXJlY3Rpb25zU291cmNlU2VydmljZS5zb3VyY2VzWzBdLFxuICAgICAgY29vcmRpbmF0ZXMsXG4gICAgICBkaXJlY3Rpb25zT3B0aW9uc1xuICAgICk7XG4gIH1cblxuICByb3V0ZVNvdXJjZShcbiAgICBzb3VyY2U6IERpcmVjdGlvbnNTb3VyY2UsXG4gICAgY29vcmRpbmF0ZXM6IFBvc2l0aW9uW10sXG4gICAgZGlyZWN0aW9uc09wdGlvbnM6IERpcmVjdGlvbk9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPERpcmVjdGlvbltdPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHNvdXJjZS5yb3V0ZShjb29yZGluYXRlcywgZGlyZWN0aW9uc09wdGlvbnMpO1xuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgZG93bmxvYWREaXJlY3Rpb24oXG4gICAgbWFwOiBJZ29NYXAsXG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb25cbiAgKTogT2JzZXJ2YWJsZTxTdWJqZWN0U3RhdHVzPiB7XG4gICAgY29uc3QgYWN0aXZpdHlJZCA9IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnJlZ2lzdGVyKCk7XG4gICAgY29uc3Qgc3RhdHVzJCA9IG5ldyBTdWJqZWN0PFN1YmplY3RTdGF0dXM+KCk7XG5cbiAgICBjb25zdCBkb2M6IGpzUERGID0gbmV3IGpzUERGKHtcbiAgICAgIG9yaWVudGF0aW9uOiAncCcsXG4gICAgICBmb3JtYXQ6ICdMZXR0ZXInLFxuICAgICAgdW5pdDogJ21tJyAvLyBkZWZhdWx0XG4gICAgfSk7XG5cbiAgICBjb25zdCB7IHdpZHRoOiBwYWdlV2lkdGgsIGhlaWdodDogcGFnZUhlaWdodCB9ID0gZG9jLmludGVybmFsLnBhZ2VTaXplO1xuXG4gICAgLyoqIHRvcCB8IHJpZ2h0IHwgYm90dG9tIHwgbGVmdCAqL1xuICAgIGNvbnN0IG1hcmdpbnM6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0gWzIwLCAxMCwgMjAsIDEwXTtcbiAgICB0aGlzLmFkZEF0dHJpYnV0aW9uKG1hcCwgZG9jLCBtYXJnaW5zKTtcbiAgICBjb25zdCB3aWR0aCA9IHBhZ2VXaWR0aCAtIG1hcmdpbnNbM10gLSBtYXJnaW5zWzFdO1xuICAgIGNvbnN0IGhlaWdodCA9IHBhZ2VIZWlnaHQgLSBtYXJnaW5zWzBdIC0gbWFyZ2luc1syXTtcbiAgICBjb25zdCBpbWFnZURpbWVuc2lvbnM6IFtudW1iZXIsIG51bWJlcl0gPSBbd2lkdGgsIGhlaWdodF07XG4gICAgY29uc3QgdGl0bGUgPSBgJHtkaXJlY3Rpb24udGl0bGV9ICgke2Zvcm1hdERpc3RhbmNlKFxuICAgICAgZGlyZWN0aW9uLmRpc3RhbmNlXG4gICAgKX0sICR7Zm9ybWF0RHVyYXRpb24oZGlyZWN0aW9uLmR1cmF0aW9uKX0pYDtcbiAgICBjb25zdCB0aXRsZVBvc2l0aW9uID0gMjU7XG5cbiAgICBkb2MudGV4dCh0aXRsZSwgZG9jLmludGVybmFsLnBhZ2VTaXplLndpZHRoIC8gMiwgdGl0bGVQb3NpdGlvbiwge1xuICAgICAgYWxpZ246ICdjZW50ZXInXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvbHV0aW9uID0gOTY7IC8vIERlZmF1bHQgaXMgOTZcbiAgICB0aGlzLnByaW50U2VydmljZVxuICAgICAgLmFkZE1hcChkb2MsIG1hcCwgcmVzb2x1dGlvbiwgaW1hZ2VEaW1lbnNpb25zLCBtYXJnaW5zKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoc3RhdHVzOiBTdWJqZWN0U3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFN1YmplY3RTdGF0dXMuRG9uZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWRkSW5zdHJ1Y3Rpb25zKGRvYywgZGlyZWN0aW9uLCB0aXRsZSk7XG4gICAgICAgICAgdGhpcy5zZXRQYWdlSGVhZGVyRm9vdGVyKGRvYyk7XG4gICAgICAgICAgYXdhaXQgZG9jLnNhdmUoYCR7dGl0bGV9LnBkZmAsIHsgcmV0dXJuUHJvbWlzZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnVucmVnaXN0ZXIoYWN0aXZpdHlJZCk7XG4gICAgICAgIHN0YXR1cyQubmV4dChzdGF0dXMpO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gc3RhdHVzJDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQXR0cmlidXRpb24oXG4gICAgbWFwOiBJZ29NYXAsXG4gICAgZG9jOiBqc1BERixcbiAgICBtYXJnaW5zOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICApIHtcbiAgICBjb25zdCB2ZXJ0aWNhbFNwYWNpbmcgPSA1O1xuICAgIGNvbnN0IGF0dHJpYnV0aW9uVGV4dDogc3RyaW5nID0gdGhpcy5wcmludFNlcnZpY2UuZ2V0QXR0cmlidXRpb25UZXh0KG1hcCk7XG4gICAgaWYgKGF0dHJpYnV0aW9uVGV4dCkge1xuICAgICAgbWFyZ2luc1syXSArPSB2ZXJ0aWNhbFNwYWNpbmc7XG4gICAgICBjb25zdCB4UG9zaXRpb24gPSBtYXJnaW5zWzNdO1xuICAgICAgY29uc3QgbWFyZ2luQm90dG9tID0gbWFyZ2luc1syXTtcbiAgICAgIC8vIGNhbGN1bGF0ZSB0ZXh0IHBvc2l0aW9uIFlcbiAgICAgIGNvbnN0IHlQb3NpdGlvbiA9XG4gICAgICAgIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5oZWlnaHQgLSBtYXJnaW5Cb3R0b20gKyB2ZXJ0aWNhbFNwYWNpbmc7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoMTApO1xuICAgICAgZG9jLnRleHQoYXR0cmlidXRpb25UZXh0LCB4UG9zaXRpb24sIHlQb3NpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRIVE1MVGFibGVDb250ZW50KFxuICAgIGRpcmVjdGlvbjogRGlyZWN0aW9uXG4gICk6IFByb21pc2U8SFRNTFRhYmxlRWxlbWVudD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmRpcmVjdGlvbnNJbnN0cnVjdGlvbihkaXJlY3Rpb24pO1xuICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTtcbiAgICBjb25zdCB0YmxCb2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGJvZHknKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mb3Itb2ZcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkYXRhW2luZGV4XTtcbiAgICAgIGNvbnN0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7XG4gICAgICBjb25zdCBjZWxsSW1hZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpO1xuICAgICAgY29uc3QgY2VsbFRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpO1xuICAgICAgLy8gaWNvblxuICAgICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICAgIGltZy5zcmMgPSBlbGVtZW50Lmljb247XG4gICAgICAvLyBpbnN0cnVjdGlvbiB0ZXh0XG4gICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgc3Bhbi5pbm5lckhUTUwgPSBlbGVtZW50Lmluc3RydWN0aW9uO1xuICAgICAgY2VsbEltYWdlLmFwcGVuZENoaWxkKGltZyk7XG4gICAgICBjZWxsVGV4dC5hcHBlbmRDaGlsZChzcGFuKTtcbiAgICAgIGlmIChlbGVtZW50LmRpc3RhbmNlKSB7XG4gICAgICAgIGNvbnN0IHNwYW5EaXN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgc3BhbkRpc3RhbmNlLnN0eWxlLnZlcnRpY2FsQWxpZ24gPSAnbWlkZGxlJztcbiAgICAgICAgc3BhbkRpc3RhbmNlLmlubmVySFRNTCA9XG4gICAgICAgICAgJyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOycgKyBlbGVtZW50LmRpc3RhbmNlO1xuICAgICAgICBjZWxsVGV4dC5hcHBlbmRDaGlsZChzcGFuRGlzdGFuY2UpO1xuICAgICAgfVxuICAgICAgcm93LmFwcGVuZChjZWxsSW1hZ2UpO1xuICAgICAgcm93LmFwcGVuZChjZWxsVGV4dCk7XG4gICAgICB0YmxCb2R5LmFwcGVuZENoaWxkKHJvdyk7XG4gICAgfVxuICAgIHRhYmxlLmFwcGVuZENoaWxkKHRibEJvZHkpO1xuICAgIHJldHVybiB0YWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGlyZWN0aW9uc0luc3RydWN0aW9uKFxuICAgIGRpcmVjdGlvbjogRGlyZWN0aW9uXG4gICk6IFByb21pc2U8eyBpbnN0cnVjdGlvbjogc3RyaW5nOyBpY29uOiBzdHJpbmc7IGRpc3RhbmNlOiBzdHJpbmcgfVtdPiB7XG4gICAgY29uc3QgbWF0TGlzdEl0ZW1zID0gdGhpcy5kb2N1bWVudFxuICAgICAgLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZ28tZGlyZWN0aW9ucy1yZXN1bHRzJylbMF1cbiAgICAgIC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbWF0LWxpc3QnKVswXTtcbiAgICBjb25zdCBtYXRMaXN0SXRlbSA9IG1hdExpc3RJdGVtcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbWF0LWxpc3QtaXRlbScpO1xuICAgIC8vIGNvbnZlcnQgaWNvbiBsaXN0IHRvIGJhc2U2NFxuICAgIGNvbnN0IGljb25zQXJyYXk6IHsgbmFtZTogc3RyaW5nOyBpY29uOiBzdHJpbmcgfVtdID0gW107XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZm9yLW9mXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hdExpc3RJdGVtLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgZWxlbWVudCA9IG1hdExpc3RJdGVtW2luZGV4XTtcbiAgICAgIGNvbnN0IGljb24gPSBlbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtYXQtaWNvbicpWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaWNvbk5hbWUgPSBpY29uLmlubmVyVGV4dDtcbiAgICAgIGNvbnN0IGZvdW5kID0gaWNvbnNBcnJheS5zb21lKChlbCkgPT4gZWwubmFtZSA9PT0gaWNvbk5hbWUpO1xuICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICBjb25zdCBpY29uQ2FudmFzID0gYXdhaXQgaHRtbDJjYW52YXMoaWNvbiwgeyBzY2FsZTogMyB9KTtcbiAgICAgICAgaWNvbnNBcnJheS5wdXNoKHsgbmFtZTogaWNvbk5hbWUsIGljb246IGljb25DYW52YXMudG9EYXRhVVJMKCkgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkRGlyZWN0aW9uOiB7XG4gICAgICBpbnN0cnVjdGlvbjogc3RyaW5nO1xuICAgICAgaWNvbjogc3RyaW5nO1xuICAgICAgZGlzdGFuY2U6IHN0cmluZztcbiAgICB9W10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpcmVjdGlvbi5zdGVwcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qgc3RlcCA9IGRpcmVjdGlvbi5zdGVwc1tpXTtcbiAgICAgIGNvbnN0IGluc3RydWN0aW9uID0gZm9ybWF0SW5zdHJ1Y3Rpb24oXG4gICAgICAgIHN0ZXAubWFuZXV2ZXIudHlwZSxcbiAgICAgICAgc3RlcC5tYW5ldXZlci5tb2RpZmllcixcbiAgICAgICAgc3RlcC5uYW1lLFxuICAgICAgICBzdGVwLm1hbmV1dmVyLmJlYXJpbmdfYWZ0ZXIsXG4gICAgICAgIGksXG4gICAgICAgIChzdGVwLm1hbmV1dmVyIGFzIGFueSkuZXhpdCxcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UsXG4gICAgICAgIGkgPT09IGRpcmVjdGlvbi5zdGVwcy5sZW5ndGggLSAxXG4gICAgICApO1xuXG4gICAgICBjb25zdCBkaXN0YW5jZSA9IGZvcm1hdERpc3RhbmNlKHN0ZXAuZGlzdGFuY2UpO1xuICAgICAgZm9ybWF0dGVkRGlyZWN0aW9uLnB1c2goe1xuICAgICAgICBpbnN0cnVjdGlvbjogaSArIDEgKyAnLiAnICsgaW5zdHJ1Y3Rpb24uaW5zdHJ1Y3Rpb24sXG4gICAgICAgIGljb246IGljb25zQXJyYXkuZmluZCgoaWNvbikgPT4gaWNvbi5uYW1lID09PSBpbnN0cnVjdGlvbi5pbWFnZSkuaWNvbixcbiAgICAgICAgZGlzdGFuY2U6IGRpc3RhbmNlID8gJygnICsgZGlzdGFuY2UgKyAnKScgOiB1bmRlZmluZWRcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGVkRGlyZWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhZGRJbnN0cnVjdGlvbnMoXG4gICAgZG9jOiBqc1BERixcbiAgICBkaXJlY3Rpb246IERpcmVjdGlvbixcbiAgICB0aXRsZTogc3RyaW5nXG4gICkge1xuICAgIGRvYy5hZGRQYWdlKCk7XG4gICAgY29uc3QgdGl0bGVQb3NpdGlvbiA9IDI1O1xuICAgIGRvYy50ZXh0KHRpdGxlLCBkb2MuaW50ZXJuYWwucGFnZVNpemUud2lkdGggLyAyLCB0aXRsZVBvc2l0aW9uLCB7XG4gICAgICBhbGlnbjogJ2NlbnRlcidcbiAgICB9KTtcbiAgICBjb25zdCBIVE1MdGFibGUgPSBhd2FpdCB0aGlzLnNldEhUTUxUYWJsZUNvbnRlbnQoZGlyZWN0aW9uKTtcbiAgICBjb25zdCB0YWJsZVBvcyA9IHRpdGxlUG9zaXRpb24gKyA1O1xuICAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xuICAgICAgaHRtbDogSFRNTHRhYmxlLFxuICAgICAgc3RhcnRZOiB0YWJsZVBvcyxcbiAgICAgIG1hcmdpbjogeyB0b3A6IDIwLCBib3R0b206IDIwIH0sXG4gICAgICBjb2x1bW5TdHlsZXM6IHtcbiAgICAgICAgMDogeyBjZWxsV2lkdGg6IDEwIH1cbiAgICAgIH0sXG4gICAgICB0aGVtZTogJ3BsYWluJyxcbiAgICAgIHN0eWxlczoge1xuICAgICAgICBmb250U2l6ZTogMTJcbiAgICAgIH0sXG4gICAgICBkaWREcmF3Q2VsbDogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEuY29sdW1uLmluZGV4ID09PSAwICYmIGRhdGEuY2VsbC5zZWN0aW9uID09PSAnYm9keScpIHtcbiAgICAgICAgICBkYXRhLnJvdy5oZWlnaHQgPSAxMDtcbiAgICAgICAgICBjb25zdCB0ZCA9IGRhdGEuY2VsbC5yYXcgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgaW1nID0gdGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpWzBdO1xuICAgICAgICAgIGRvYy5hZGRJbWFnZShpbWcuc3JjLCBkYXRhLmNlbGwueCwgZGF0YS5jZWxsLnksIDgsIDgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBzYXRpc2ZpZXMgVXNlck9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYWdlSGVhZGVyRm9vdGVyKGRvYzoganNQREYpIHtcbiAgICBjb25zdCBwYWdlQ291bnQgPSBkb2MuZ2V0TnVtYmVyT2ZQYWdlcygpO1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoRGF0ZS5ub3coKSkuZm9ybWF0KCdERC9NTS9ZWVlZIGhoOm1tJykudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IGxvZ29Db25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdkaXJlY3Rpb25zU291cmNlcy5sb2dvJyk7XG4gICAgY29uc3QgbG9nbyA9IGxvZ29Db25maWcgPyBsb2dvQ29uZmlnIDogJ2Fzc2V0cy9sb2dvLnBuZyc7XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcGFnZUNvdW50OyBpbmRleCsrKSB7XG4gICAgICBkb2Muc2V0UGFnZShpbmRleCk7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoOCk7XG4gICAgICBjb25zdCBwYWdlU2l6ZSA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZTtcbiAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSBwYWdlU2l6ZS5oZWlnaHRcbiAgICAgICAgPyBwYWdlU2l6ZS5oZWlnaHRcbiAgICAgICAgOiBwYWdlU2l6ZS5nZXRIZWlnaHQoKTtcbiAgICAgIGNvbnN0IHdpZHRoID0gcGFnZVNpemUud2lkdGggPyBwYWdlU2l6ZS53aWR0aCA6IHBhZ2VTaXplLmdldFdpZHRoKCk7XG4gICAgICBkb2MudGV4dChkYXRlLCAxMCwgMTAsIHsgYmFzZWxpbmU6ICd0b3AnIH0pO1xuICAgICAgZG9jLmFkZEltYWdlKGxvZ28sICdQTkcnLCB3aWR0aCAtIDIwLCA1LCAxMCwgMTApO1xuICAgICAgZG9jLnRleHQoZGF0ZSwgMTAsIHBhZ2VIZWlnaHQgLSAxMCk7XG4gICAgICBkb2MudGV4dChcbiAgICAgICAgJ1BhZ2UgJyArIGRvYy5nZXRDdXJyZW50UGFnZUluZm8oKS5wYWdlTnVtYmVyICsgJyAvICcgKyBwYWdlQ291bnQsXG4gICAgICAgIHdpZHRoIC0gMjAsXG4gICAgICAgIHBhZ2VIZWlnaHQgLSAxMFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -40,10 +40,10 @@ export class DownloadButtonComponent {
40
40
  }
41
41
  return this.layer.dataSource.options;
42
42
  }
43
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DownloadButtonComponent, deps: [{ token: i1.DownloadService }], target: i0.ɵɵFactoryTarget.Component });
44
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: DownloadButtonComponent, isStandalone: true, selector: "igo-download-button", inputs: { layer: "layer", color: "color" }, ngImport: i0, template: "<button\n *ngIf=\"\n options &&\n options.download &&\n (options.download['dynamicUrl'] || options.download['url'])\n \"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.download.action' | translate\"\n [color]=\"color\"\n (click)=\"openDownload(layer)\"\n>\n <mat-icon>download</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DownloadButtonComponent, deps: [{ token: i1.DownloadService }], target: i0.ɵɵFactoryTarget.Component });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: DownloadButtonComponent, isStandalone: true, selector: "igo-download-button", inputs: { layer: "layer", color: "color" }, ngImport: i0, template: "<button\n *ngIf=\"\n options &&\n options.download &&\n (options.download['dynamicUrl'] || options.download['url'])\n \"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.download.action' | translate\"\n [color]=\"color\"\n (click)=\"openDownload(layer)\"\n>\n <mat-icon>download</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DownloadButtonComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DownloadButtonComponent, decorators: [{
47
47
  type: Component,
48
48
  args: [{ selector: 'igo-download-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
49
49
  NgIf,
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
57
57
  }], color: [{
58
58
  type: Input
59
59
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2Rvd25sb2FkL2Rvd25sb2FkLWJ1dHRvbi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZG93bmxvYWQvZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBZ0I3RCxNQUFNLE9BQU8sdUJBQXVCO0lBbUJkO0lBbEJwQixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNPLE1BQU0sQ0FBUTtJQUV0QixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNPLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFFM0IsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4RCxZQUFZLENBQUMsS0FBWTtRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7dUdBOUJVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLDJIQzFCcEMsd1hBZUEsMERESUksSUFBSSw0RkFDSixlQUFlLDJJQUNmLGdCQUFnQiw0VEFDaEIsYUFBYSxtTEFDYixpQkFBaUI7OzJGQUdSLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ2xCO29GQUlHLEtBQUs7c0JBRFIsS0FBSztnQkFVRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xuaW1wb3J0IHsgRG93bmxvYWREYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kb3dubG9hZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRG93bmxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Rvd25sb2FkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZG93bmxvYWQtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBJZ29MYW5ndWFnZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERvd25sb2FkQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZ2V0IGxheWVyKCk6IExheWVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGF5ZXI7XG4gIH1cbiAgc2V0IGxheWVyKHZhbHVlOiBMYXllcikge1xuICAgIHRoaXMuX2xheWVyID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfbGF5ZXI6IExheWVyO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBjb2xvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gIH1cbiAgc2V0IGNvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2NvbG9yID0gJ3ByaW1hcnknO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG93bmxvYWRTZXJ2aWNlOiBEb3dubG9hZFNlcnZpY2UpIHt9XG5cbiAgb3BlbkRvd25sb2FkKGxheWVyOiBMYXllcikge1xuICAgIHRoaXMuZG93bmxvYWRTZXJ2aWNlLm9wZW4obGF5ZXIpO1xuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKTogRG93bmxvYWREYXRhU291cmNlT3B0aW9ucyB7XG4gICAgaWYgKCF0aGlzLmxheWVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucztcbiAgfVxufVxuIiwiPGJ1dHRvblxuICAqbmdJZj1cIlxuICAgIG9wdGlvbnMgJiZcbiAgICBvcHRpb25zLmRvd25sb2FkICYmXG4gICAgKG9wdGlvbnMuZG93bmxvYWRbJ2R5bmFtaWNVcmwnXSB8fCBvcHRpb25zLmRvd25sb2FkWyd1cmwnXSlcbiAgXCJcbiAgbWF0LWljb24tYnV0dG9uXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kb3dubG9hZC5hY3Rpb24nIHwgdHJhbnNsYXRlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbiAgKGNsaWNrKT1cIm9wZW5Eb3dubG9hZChsYXllcilcIlxuPlxuICA8bWF0LWljb24+ZG93bmxvYWQ8L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2Rvd25sb2FkL2Rvd25sb2FkLWJ1dHRvbi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZG93bmxvYWQvZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBZ0I3RCxNQUFNLE9BQU8sdUJBQXVCO0lBbUJkO0lBbEJwQixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNPLE1BQU0sQ0FBUTtJQUV0QixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNPLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFFM0IsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4RCxZQUFZLENBQUMsS0FBWTtRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7d0dBOUJVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDJIQzFCcEMsd1hBZUEsMERESUksSUFBSSw0RkFDSixlQUFlLDJJQUNmLGdCQUFnQiw0VEFDaEIsYUFBYSxtTEFDYixpQkFBaUI7OzRGQUdSLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ2xCO29GQUlHLEtBQUs7c0JBRFIsS0FBSztnQkFVRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xuaW1wb3J0IHsgRG93bmxvYWREYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kb3dubG9hZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRG93bmxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Rvd25sb2FkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZG93bmxvYWQtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBJZ29MYW5ndWFnZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERvd25sb2FkQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZ2V0IGxheWVyKCk6IExheWVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGF5ZXI7XG4gIH1cbiAgc2V0IGxheWVyKHZhbHVlOiBMYXllcikge1xuICAgIHRoaXMuX2xheWVyID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfbGF5ZXI6IExheWVyO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBjb2xvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gIH1cbiAgc2V0IGNvbG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2NvbG9yID0gJ3ByaW1hcnknO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG93bmxvYWRTZXJ2aWNlOiBEb3dubG9hZFNlcnZpY2UpIHt9XG5cbiAgb3BlbkRvd25sb2FkKGxheWVyOiBMYXllcikge1xuICAgIHRoaXMuZG93bmxvYWRTZXJ2aWNlLm9wZW4obGF5ZXIpO1xuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKTogRG93bmxvYWREYXRhU291cmNlT3B0aW9ucyB7XG4gICAgaWYgKCF0aGlzLmxheWVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucztcbiAgfVxufVxuIiwiPGJ1dHRvblxuICAqbmdJZj1cIlxuICAgIG9wdGlvbnMgJiZcbiAgICBvcHRpb25zLmRvd25sb2FkICYmXG4gICAgKG9wdGlvbnMuZG93bmxvYWRbJ2R5bmFtaWNVcmwnXSB8fCBvcHRpb25zLmRvd25sb2FkWyd1cmwnXSlcbiAgXCJcbiAgbWF0LWljb24tYnV0dG9uXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kb3dubG9hZC5hY3Rpb24nIHwgdHJhbnNsYXRlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbiAgKGNsaWNrKT1cIm9wZW5Eb3dubG9hZChsYXllcilcIlxuPlxuICA8bWF0LWljb24+ZG93bmxvYWQ8L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
@@ -10,15 +10,15 @@ export class IgoDownloadModule {
10
10
  ngModule: IgoDownloadModule
11
11
  };
12
12
  }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoDownloadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoDownloadModule, imports: [DownloadButtonComponent], exports: [DownloadButtonComponent] });
15
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoDownloadModule, imports: [DownloadButtonComponent] });
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IgoDownloadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: IgoDownloadModule, imports: [DownloadButtonComponent], exports: [DownloadButtonComponent] });
15
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IgoDownloadModule, imports: [DownloadButtonComponent] });
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoDownloadModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IgoDownloadModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
20
  imports: [DownloadButtonComponent],
21
21
  exports: [DownloadButtonComponent]
22
22
  }]
23
23
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZG93bmxvYWQvZG93bmxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUV0Rjs7R0FFRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtTQUM1QixDQUFDO0lBQ0osQ0FBQzt1R0FMVSxpQkFBaUI7d0dBQWpCLGlCQUFpQixZQUhsQix1QkFBdUIsYUFDdkIsdUJBQXVCO3dHQUV0QixpQkFBaUIsWUFIbEIsdUJBQXVCOzsyRkFHdEIsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3dubG9hZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIGltcG9ydCB0aGUgRG93bmxvYWRCdXR0b25Db21wb25lbnQgZGlyZWN0bHlcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0Rvd25sb2FkQnV0dG9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0Rvd25sb2FkQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJZ29Eb3dubG9hZE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SWdvRG93bmxvYWRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IElnb0Rvd25sb2FkTW9kdWxlXG4gICAgfTtcbiAgfVxufVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZG93bmxvYWQvZG93bmxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUV0Rjs7R0FFRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtTQUM1QixDQUFDO0lBQ0osQ0FBQzt3R0FMVSxpQkFBaUI7eUdBQWpCLGlCQUFpQixZQUhsQix1QkFBdUIsYUFDdkIsdUJBQXVCO3lHQUV0QixpQkFBaUIsWUFIbEIsdUJBQXVCOzs0RkFHdEIsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3dubG9hZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIGltcG9ydCB0aGUgRG93bmxvYWRCdXR0b25Db21wb25lbnQgZGlyZWN0bHlcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0Rvd25sb2FkQnV0dG9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0Rvd25sb2FkQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJZ29Eb3dubG9hZE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SWdvRG93bmxvYWRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IElnb0Rvd25sb2FkTW9kdWxlXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -55,13 +55,13 @@ export class DownloadService {
55
55
  }
56
56
  }
57
57
  }
58
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DownloadService, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
59
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DownloadService, providedIn: 'root' });
58
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DownloadService, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
59
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DownloadService, providedIn: 'root' });
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DownloadService, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DownloadService, decorators: [{
62
62
  type: Injectable,
63
63
  args: [{
64
64
  providedIn: 'root'
65
65
  }]
66
66
  }], ctorParameters: () => [{ type: i1.MessageService }] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2Rvd25sb2FkL3NoYXJlZC9kb3dubG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFDO0FBRzlDLE9BQU8sRUFDTCxlQUFlLEVBRWhCLE1BQU0scUJBQXFCLENBQUM7OztBQU03QixNQUFNLE9BQU8sZUFBZTtJQUNOO0lBQXBCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7SUFFdEQsSUFBSSxDQUFDLEtBQVk7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDekIsd0JBQXdCLEVBQ3hCLHdCQUF3QixDQUN6QixDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQXNCLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQzlELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQ0UsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUM3QixTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQ3BDLENBQUM7Z0JBQ0QsSUFBSSxVQUFVLENBQUM7Z0JBQ2YsSUFBSSxXQUFXLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxNQUFNLFNBQVMsR0FBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQzlELElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNuRCxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU87d0JBQzdCLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQy9DLENBQUMsQ0FBQyxXQUFXLENBQUM7b0JBQ2hCLFVBQVUsR0FBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQzNELENBQUM7cUJBQU0sQ0FBQztvQkFDTixVQUFVLEdBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFlLENBQUMsTUFBTSxDQUFDO2dCQUN4RCxDQUFDO2dCQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUNwQyxJQUFJLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQ2hELFdBQVcsQ0FDWixDQUFDO2dCQUNGLE1BQU0sb0JBQW9CLEdBQ3hCLFVBQVUsQ0FBQyxvQkFBb0IsS0FBSyxTQUFTO29CQUMzQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksS0FBSyxTQUFTO3dCQUNyQyxDQUFDLENBQUMsRUFBRTt3QkFDSixDQUFDLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxZQUFZO29CQUM3QyxDQUFDLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFFeEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVO3FCQUMxQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxDQUFDO3FCQUNyQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO3FCQUMvQixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRWpDLE1BQU0sVUFBVSxHQUNkLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FDbEIsQ0FBQyxVQUFVLENBQUM7Z0JBRWIsSUFBSSxpQkFBaUIsQ0FBQztnQkFDdEIsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyw0QkFBNEIsQ0FDcEUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQ3hCLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLGFBQWlELEVBQ2pELFdBQVcsQ0FDWixDQUFDO2dCQUNGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUN2QixvREFBb0Q7b0JBQ3BELGlCQUFpQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUMsV0FBVyxDQUNuRCxTQUFTLEVBQ1QsYUFBaUQsRUFDakQsV0FBVyxFQUNYLFVBQVUsQ0FBQyxZQUFZLENBQ3hCLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLGlCQUFpQixHQUFHLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUN4RSxDQUFDO2dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxPQUFPLElBQUksaUJBQWlCLElBQUksb0JBQW9CLEVBQUUsRUFDekQsUUFBUSxDQUNULENBQUM7WUFDSixDQUFDO2lCQUFNLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt1R0ExRVUsZUFBZTsyR0FBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcblxuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IG9sUHJvamVjdGlvbiBmcm9tICdvbC9wcm9qL1Byb2plY3Rpb24nO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIE9nY0ZpbHRlcldyaXRlcixcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zXG59IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQnO1xuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG93bmxvYWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHt9XG5cbiAgb3BlbihsYXllcjogTGF5ZXIpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAnaWdvLmdlby5kb3dubG9hZC5zdGFydCcsXG4gICAgICAnaWdvLmdlby5kb3dubG9hZC50aXRsZSdcbiAgICApO1xuXG4gICAgY29uc3QgRFNPcHRpb25zOiBEYXRhU291cmNlT3B0aW9ucyA9IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucztcbiAgICBpZiAoT2JqZWN0LmtleXMoRFNPcHRpb25zLmRvd25sb2FkKS5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAoXG4gICAgICAgIERTT3B0aW9ucy5kb3dubG9hZC5keW5hbWljVXJsICYmXG4gICAgICAgIERTT3B0aW9ucy5kb3dubG9hZC51cmwgPT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIGxldCB3ZnNPcHRpb25zO1xuICAgICAgICBsZXQgY3VycmVudFByb2ogPSBuZXcgb2xQcm9qZWN0aW9uKHsgY29kZTogbGF5ZXIubWFwLnByb2plY3Rpb24gfSk7XG4gICAgICAgIGNvbnN0IHBhcmFtc1dGUyA9IChsYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlM7XG4gICAgICAgIGlmIChwYXJhbXNXRlMgJiYgT2JqZWN0LmtleXMocGFyYW1zV0ZTKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY3VycmVudFByb2ogPSBwYXJhbXNXRlMuc3JzTmFtZVxuICAgICAgICAgICAgPyBuZXcgb2xQcm9qZWN0aW9uKHsgY29kZTogcGFyYW1zV0ZTLnNyc05hbWUgfSlcbiAgICAgICAgICAgIDogY3VycmVudFByb2o7XG4gICAgICAgICAgd2ZzT3B0aW9ucyA9IChsYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2ZzT3B0aW9ucyA9IChsYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50RXh0ZW50ID0gb2xwcm9qLnRyYW5zZm9ybUV4dGVudChcbiAgICAgICAgICBsYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0RXh0ZW50KCksXG4gICAgICAgICAgbmV3IG9sUHJvamVjdGlvbih7IGNvZGU6IGxheWVyLm1hcC5wcm9qZWN0aW9uIH0pLFxuICAgICAgICAgIGN1cnJlbnRQcm9qXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG91dHB1dEZvcm1hdERvd25sb2FkID1cbiAgICAgICAgICB3ZnNPcHRpb25zLm91dHB1dEZvcm1hdERvd25sb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gd2ZzT3B0aW9ucy5vdXRwdXRGb3JtYXQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgIDogJ291dHB1dGZvcm1hdD0nICsgd2ZzT3B0aW9ucy5vdXRwdXRGb3JtYXRcbiAgICAgICAgICAgIDogJ291dHB1dGZvcm1hdD0nICsgd2ZzT3B0aW9ucy5vdXRwdXRGb3JtYXREb3dubG9hZDtcblxuICAgICAgICBjb25zdCBiYXNldXJsID0gRFNPcHRpb25zLmRvd25sb2FkLmR5bmFtaWNVcmxcbiAgICAgICAgICAucmVwbGFjZSgvJj9vdXRwdXRmb3JtYXQ9W14mXSovZ2ksICcnKVxuICAgICAgICAgIC5yZXBsYWNlKC8mP2ZpbHRlcj1bXiZdKi9naSwgJycpXG4gICAgICAgICAgLnJlcGxhY2UoLyY/YmJveD1bXiZdKi9naSwgJycpO1xuXG4gICAgICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSAoXG4gICAgICAgICAgbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9uc1xuICAgICAgICApLm9nY0ZpbHRlcnM7XG5cbiAgICAgICAgbGV0IGZpbHRlclF1ZXJ5U3RyaW5nO1xuICAgICAgICBmaWx0ZXJRdWVyeVN0cmluZyA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKS5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxuICAgICAgICAgIGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucyxcbiAgICAgICAgICBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZSxcbiAgICAgICAgICBjdXJyZW50RXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICAgIGN1cnJlbnRQcm9qXG4gICAgICAgICk7XG4gICAgICAgIGlmICghZmlsdGVyUXVlcnlTdHJpbmcpIHtcbiAgICAgICAgICAvLyBQcmV2ZW50IGdldHRpbmcgYWxsIHRoZSBmZWF0dXJlcyBmb3IgZW1wdHkgZmlsdGVyXG4gICAgICAgICAgZmlsdGVyUXVlcnlTdHJpbmcgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCkuYnVpbGRGaWx0ZXIoXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBjdXJyZW50RXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICAgICAgY3VycmVudFByb2osXG4gICAgICAgICAgICBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlsdGVyUXVlcnlTdHJpbmcgPSAnZmlsdGVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZmlsdGVyUXVlcnlTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5vcGVuKFxuICAgICAgICAgIGAke2Jhc2V1cmx9JiR7ZmlsdGVyUXVlcnlTdHJpbmd9JiR7b3V0cHV0Rm9ybWF0RG93bmxvYWR9YCxcbiAgICAgICAgICAnX2JsYW5rJ1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChEU09wdGlvbnMuZG93bmxvYWQpIHtcbiAgICAgICAgd2luZG93Lm9wZW4oRFNPcHRpb25zLmRvd25sb2FkLnVybCwgJ19ibGFuaycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2Rvd25sb2FkL3NoYXJlZC9kb3dubG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFDO0FBRzlDLE9BQU8sRUFDTCxlQUFlLEVBRWhCLE1BQU0scUJBQXFCLENBQUM7OztBQU03QixNQUFNLE9BQU8sZUFBZTtJQUNOO0lBQXBCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7SUFFdEQsSUFBSSxDQUFDLEtBQVk7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDekIsd0JBQXdCLEVBQ3hCLHdCQUF3QixDQUN6QixDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQXNCLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQzlELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQ0UsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUM3QixTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQ3BDLENBQUM7Z0JBQ0QsSUFBSSxVQUFVLENBQUM7Z0JBQ2YsSUFBSSxXQUFXLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxNQUFNLFNBQVMsR0FBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQzlELElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNuRCxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU87d0JBQzdCLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQy9DLENBQUMsQ0FBQyxXQUFXLENBQUM7b0JBQ2hCLFVBQVUsR0FBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQzNELENBQUM7cUJBQU0sQ0FBQztvQkFDTixVQUFVLEdBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFlLENBQUMsTUFBTSxDQUFDO2dCQUN4RCxDQUFDO2dCQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUNwQyxJQUFJLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQ2hELFdBQVcsQ0FDWixDQUFDO2dCQUNGLE1BQU0sb0JBQW9CLEdBQ3hCLFVBQVUsQ0FBQyxvQkFBb0IsS0FBSyxTQUFTO29CQUMzQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksS0FBSyxTQUFTO3dCQUNyQyxDQUFDLENBQUMsRUFBRTt3QkFDSixDQUFDLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxZQUFZO29CQUM3QyxDQUFDLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFFeEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVO3FCQUMxQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxDQUFDO3FCQUNyQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO3FCQUMvQixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRWpDLE1BQU0sVUFBVSxHQUNkLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FDbEIsQ0FBQyxVQUFVLENBQUM7Z0JBRWIsSUFBSSxpQkFBaUIsQ0FBQztnQkFDdEIsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyw0QkFBNEIsQ0FDcEUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQ3hCLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLGFBQWlELEVBQ2pELFdBQVcsQ0FDWixDQUFDO2dCQUNGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUN2QixvREFBb0Q7b0JBQ3BELGlCQUFpQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUMsV0FBVyxDQUNuRCxTQUFTLEVBQ1QsYUFBaUQsRUFDakQsV0FBVyxFQUNYLFVBQVUsQ0FBQyxZQUFZLENBQ3hCLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLGlCQUFpQixHQUFHLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUN4RSxDQUFDO2dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxPQUFPLElBQUksaUJBQWlCLElBQUksb0JBQW9CLEVBQUUsRUFDekQsUUFBUSxDQUNULENBQUM7WUFDSixDQUFDO2lCQUFNLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt3R0ExRVUsZUFBZTs0R0FBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcblxuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IG9sUHJvamVjdGlvbiBmcm9tICdvbC9wcm9qL1Byb2plY3Rpb24nO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIE9nY0ZpbHRlcldyaXRlcixcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zXG59IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQnO1xuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG93bmxvYWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHt9XG5cbiAgb3BlbihsYXllcjogTGF5ZXIpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAnaWdvLmdlby5kb3dubG9hZC5zdGFydCcsXG4gICAgICAnaWdvLmdlby5kb3dubG9hZC50aXRsZSdcbiAgICApO1xuXG4gICAgY29uc3QgRFNPcHRpb25zOiBEYXRhU291cmNlT3B0aW9ucyA9IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucztcbiAgICBpZiAoT2JqZWN0LmtleXMoRFNPcHRpb25zLmRvd25sb2FkKS5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAoXG4gICAgICAgIERTT3B0aW9ucy5kb3dubG9hZC5keW5hbWljVXJsICYmXG4gICAgICAgIERTT3B0aW9ucy5kb3dubG9hZC51cmwgPT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIGxldCB3ZnNPcHRpb25zO1xuICAgICAgICBsZXQgY3VycmVudFByb2ogPSBuZXcgb2xQcm9qZWN0aW9uKHsgY29kZTogbGF5ZXIubWFwLnByb2plY3Rpb24gfSk7XG4gICAgICAgIGNvbnN0IHBhcmFtc1dGUyA9IChsYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlM7XG4gICAgICAgIGlmIChwYXJhbXNXRlMgJiYgT2JqZWN0LmtleXMocGFyYW1zV0ZTKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY3VycmVudFByb2ogPSBwYXJhbXNXRlMuc3JzTmFtZVxuICAgICAgICAgICAgPyBuZXcgb2xQcm9qZWN0aW9uKHsgY29kZTogcGFyYW1zV0ZTLnNyc05hbWUgfSlcbiAgICAgICAgICAgIDogY3VycmVudFByb2o7XG4gICAgICAgICAgd2ZzT3B0aW9ucyA9IChsYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2ZzT3B0aW9ucyA9IChsYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50RXh0ZW50ID0gb2xwcm9qLnRyYW5zZm9ybUV4dGVudChcbiAgICAgICAgICBsYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0RXh0ZW50KCksXG4gICAgICAgICAgbmV3IG9sUHJvamVjdGlvbih7IGNvZGU6IGxheWVyLm1hcC5wcm9qZWN0aW9uIH0pLFxuICAgICAgICAgIGN1cnJlbnRQcm9qXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG91dHB1dEZvcm1hdERvd25sb2FkID1cbiAgICAgICAgICB3ZnNPcHRpb25zLm91dHB1dEZvcm1hdERvd25sb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gd2ZzT3B0aW9ucy5vdXRwdXRGb3JtYXQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgIDogJ291dHB1dGZvcm1hdD0nICsgd2ZzT3B0aW9ucy5vdXRwdXRGb3JtYXRcbiAgICAgICAgICAgIDogJ291dHB1dGZvcm1hdD0nICsgd2ZzT3B0aW9ucy5vdXRwdXRGb3JtYXREb3dubG9hZDtcblxuICAgICAgICBjb25zdCBiYXNldXJsID0gRFNPcHRpb25zLmRvd25sb2FkLmR5bmFtaWNVcmxcbiAgICAgICAgICAucmVwbGFjZSgvJj9vdXRwdXRmb3JtYXQ9W14mXSovZ2ksICcnKVxuICAgICAgICAgIC5yZXBsYWNlKC8mP2ZpbHRlcj1bXiZdKi9naSwgJycpXG4gICAgICAgICAgLnJlcGxhY2UoLyY/YmJveD1bXiZdKi9naSwgJycpO1xuXG4gICAgICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSAoXG4gICAgICAgICAgbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9uc1xuICAgICAgICApLm9nY0ZpbHRlcnM7XG5cbiAgICAgICAgbGV0IGZpbHRlclF1ZXJ5U3RyaW5nO1xuICAgICAgICBmaWx0ZXJRdWVyeVN0cmluZyA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKS5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxuICAgICAgICAgIGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucyxcbiAgICAgICAgICBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZSxcbiAgICAgICAgICBjdXJyZW50RXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICAgIGN1cnJlbnRQcm9qXG4gICAgICAgICk7XG4gICAgICAgIGlmICghZmlsdGVyUXVlcnlTdHJpbmcpIHtcbiAgICAgICAgICAvLyBQcmV2ZW50IGdldHRpbmcgYWxsIHRoZSBmZWF0dXJlcyBmb3IgZW1wdHkgZmlsdGVyXG4gICAgICAgICAgZmlsdGVyUXVlcnlTdHJpbmcgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCkuYnVpbGRGaWx0ZXIoXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBjdXJyZW50RXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICAgICAgY3VycmVudFByb2osXG4gICAgICAgICAgICBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlsdGVyUXVlcnlTdHJpbmcgPSAnZmlsdGVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZmlsdGVyUXVlcnlTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5vcGVuKFxuICAgICAgICAgIGAke2Jhc2V1cmx9JiR7ZmlsdGVyUXVlcnlTdHJpbmd9JiR7b3V0cHV0Rm9ybWF0RG93bmxvYWR9YCxcbiAgICAgICAgICAnX2JsYW5rJ1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChEU09wdGlvbnMuZG93bmxvYWQpIHtcbiAgICAgICAgd2luZG93Lm9wZW4oRFNPcHRpb25zLmRvd25sb2FkLnVybCwgJ19ibGFuaycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19