@igo2/geo 16.0.0-rc.2 → 16.0.0-rc.3

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 (117) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +2 -2
  2. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
  3. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +2 -2
  4. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +1 -1
  5. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  6. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  7. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  8. package/esm2022/lib/datasource/shared/options/options.service.mjs +1 -1
  9. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +2 -2
  10. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +2 -2
  11. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  12. package/esm2022/lib/download/download-button/download-button.component.mjs +2 -2
  13. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
  14. package/esm2022/lib/draw/draw/draw-popup.component.mjs +2 -2
  15. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
  16. package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
  17. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +2 -2
  18. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  19. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
  20. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
  21. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +2 -2
  22. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  23. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +3 -3
  24. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
  25. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  26. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +1 -1
  27. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  28. package/esm2022/lib/filter/shared/time-filter.enum.mjs +1 -1
  29. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
  30. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  31. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
  32. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  33. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  34. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +2 -2
  35. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
  36. package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
  37. package/esm2022/lib/import-export/export-button/export-button.component.mjs +2 -2
  38. package/esm2022/lib/import-export/import-export/import-export.component.mjs +2 -2
  39. package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
  40. package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
  41. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +2 -2
  42. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
  43. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
  44. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +2 -2
  45. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  46. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  47. package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
  48. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
  49. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  50. package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
  51. package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
  52. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
  53. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
  54. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
  55. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +5 -5
  56. package/esm2022/lib/map/index.mjs +1 -1
  57. package/esm2022/lib/map/info-section/info-section.component.mjs +2 -2
  58. package/esm2022/lib/map/map-center/map-center.component.mjs +2 -2
  59. package/esm2022/lib/map/menu-button/menu-button.component.mjs +2 -2
  60. package/esm2022/lib/map/offline-button/offline-button.component.mjs +2 -2
  61. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +2 -2
  62. package/esm2022/lib/map/shared/map.interface.mjs +1 -1
  63. package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
  64. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +2 -2
  65. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +2 -2
  66. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +2 -2
  67. package/esm2022/lib/measure/measure.module.mjs +1 -1
  68. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  69. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +2 -2
  70. package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
  71. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  72. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +2 -2
  73. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  74. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  75. package/esm2022/lib/offline/layerDB/index.mjs +1 -1
  76. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
  77. package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
  78. package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
  79. package/esm2022/lib/print/print/print.component.mjs +2 -2
  80. package/esm2022/lib/print/print-form/print-form.component.mjs +2 -2
  81. package/esm2022/lib/print/shared/geopdf.mjs +1 -1
  82. package/esm2022/lib/query/shared/query.utils.mjs +1 -1
  83. package/esm2022/lib/search/search-bar/search-bar.component.mjs +2 -2
  84. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +2 -2
  85. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +2 -2
  86. package/esm2022/lib/search/search-results/search-results-item.component.mjs +2 -2
  87. package/esm2022/lib/search/search-results/search-results.component.mjs +2 -2
  88. package/esm2022/lib/search/search-selector/search-selector.component.mjs +2 -2
  89. package/esm2022/lib/search/search-settings/search-settings.component.mjs +2 -2
  90. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  91. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
  92. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  93. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
  94. package/esm2022/lib/style/shared/font.enum.mjs +1 -1
  95. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +2 -2
  96. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
  97. package/esm2022/lib/toast/toast.component.mjs +2 -2
  98. package/esm2022/lib/utils/googleLinks.mjs +1 -1
  99. package/esm2022/lib/utils/osmLinks.mjs +1 -1
  100. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
  101. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
  102. package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
  103. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  104. package/fesm2022/igo2-geo.mjs +63 -63
  105. package/fesm2022/igo2-geo.mjs.map +1 -1
  106. package/lib/directions/directions.theming.scss +6 -6
  107. package/lib/draw/draw.theming.scss +32 -32
  108. package/lib/feature/feature-details/feature-details.theming.scss +16 -16
  109. package/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -18
  110. package/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -5
  111. package/lib/map/map-browser/map-browser.theming.scss +46 -46
  112. package/lib/map/zoom-button/zoom-button.theming.scss +32 -32
  113. package/lib/search/search-bar/search-bar.theming.scss +36 -36
  114. package/lib/search/search.theming.scss +5 -5
  115. package/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
  116. package/lib/workspace/workspace.theming.scss +6 -6
  117. package/package.json +4 -4
@@ -545,7 +545,7 @@ export class PrintFormComponent {
545
545
  }
546
546
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrintFormComponent, [{
547
547
  type: Component,
548
- args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{ 'igo.geo.printForm.title' | translate }}</mat-label>\n <input\n matInput\n formControlName=\"title\"\n placeholder=\"{{ 'igo.geo.printForm.title' | translate }}\"\n />\n <mat-error *ngIf=\"titleField.errors?.maxlength\">{{\n 'igo.geo.formValidation.maxLength'\n | translate\n : {\n column: 'igo.geo.printForm.title' | translate,\n value: 130\n }\n }}</mat-error>\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{ 'igo.geo.printForm.subtitle' | translate }}</mat-label>\n <input\n matInput\n formControlName=\"subtitle\"\n placeholder=\"{{ 'igo.geo.printForm.subtitle' | translate }}\"\n />\n <mat-error *ngIf=\"subtitleField.errors?.maxlength\">{{\n 'igo.geo.formValidation.maxLength'\n | translate\n : {\n column: 'igo.geo.printForm.subtitle' | translate,\n value: 120\n }\n }}</mat-error>\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{ 'igo.geo.printForm.comment' | translate }}</mat-label>\n <input\n matInput\n formControlName=\"comment\"\n placeholder=\"{{ 'igo.geo.printForm.comment' | translate }}\"\n />\n <mat-error *ngIf=\"commentField.errors?.maxlength\">{{\n 'igo.geo.formValidation.maxLength'\n | translate\n : {\n column: 'igo.geo.printForm.comment' | translate,\n value: maxLength\n }\n }}</mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container slide-toggle-container\">\n <div class=\"print-slide-toggle-container\">\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"showProjection\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.printForm.showProjection' | translate }}\n </mat-slide-toggle>\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"showScale\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.printForm.showScale' | translate }}\n </mat-slide-toggle>\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"doZipFile\"\n [labelPosition]=\"'before'\"\n [style.display]=\"isPrintService ? 'none' : ''\"\n >\n {{ 'igo.geo.printForm.doZipFile' | translate }}\n </mat-slide-toggle>\n </div>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.printForm.legendPosition' | translate\n }}</mat-label>\n <mat-select\n formControlName=\"legendPosition\"\n placeholder=\"{{ 'igo.geo.printForm.legendPosition' | translate }}\"\n >\n <mat-option\n *ngFor=\"let legendPosition of legendPositions | keyvalue\"\n [value]=\"legendPosition.key\"\n >\n <ng-container\n *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\"\n >\n {{\n 'igo.geo.printForm.legendPositions.' + legendPosition.value\n | translate\n }}\n </ng-container>\n\n <ng-container\n *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\"\n >\n {{\n (outputFormat === 'Pdf'\n ? 'igo.geo.printForm.legendPositions.newpage'\n : 'igo.geo.printForm.legendPositions.newimage'\n ) | translate\n }}\n </ng-container>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{ 'igo.geo.printForm.outputFormat' | translate }}</mat-label>\n <mat-select\n (selectionChange)=\"toggleImageSaveProp()\"\n formControlName=\"outputFormat\"\n placeholder=\"{{ 'igo.geo.printForm.outputFormat' | translate }}\"\n >\n <mat-option\n *ngFor=\"let outputFormat of outputFormats | keyvalue\"\n [value]=\"outputFormat.key\"\n >\n {{ outputFormat.value }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n class=\"igo-input-container\"\n [style.display]=\"isPrintService ? 'block' : 'none'\"\n >\n <mat-form-field>\n <mat-label>{{ 'igo.geo.printForm.paperFormat' | translate }}</mat-label>\n <mat-select\n (selectionChange)=\"changeCommentLength()\"\n formControlName=\"paperFormat\"\n placeholder=\"{{ 'igo.geo.printForm.paperFormat' | translate }}\"\n >\n <mat-option\n *ngFor=\"let paperFormat of paperFormats | keyvalue\"\n [value]=\"paperFormat.key\"\n >\n {{\n 'igo.geo.printForm.paperFormats.' + paperFormat.value | translate\n }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n class=\"igo-input-container\"\n [style.display]=\"isPrintService ? 'none' : 'block'\"\n >\n <mat-form-field>\n <mat-label>{{ 'igo.geo.printForm.imageFormat' | translate }}</mat-label>\n <mat-select\n formControlName=\"imageFormat\"\n placeholder=\"{{ 'igo.geo.printForm.imageFormat' | translate }}\"\n >\n <mat-option\n *ngFor=\"let imageFormat of imageFormats | keyvalue\"\n [value]=\"imageFormat.key\"\n >\n {{ imageFormat.value }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{ 'igo.geo.printForm.resolution' | translate }}</mat-label>\n <mat-select\n formControlName=\"resolution\"\n placeholder=\"{{ 'igo.geo.printForm.resolution' | translate }}\"\n >\n <mat-option\n *ngFor=\"let resolution of resolutions | keyvalue\"\n [value]=\"resolution.key\"\n >\n {{ resolution.value + ' PPI' }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n class=\"igo-input-container\"\n [style.display]=\"isPrintService ? 'block' : 'none'\"\n >\n <mat-form-field>\n <mat-label>{{ 'igo.geo.printForm.orientation' | translate }}</mat-label>\n <mat-select\n (selectionChange)=\"changeCommentLength()\"\n formControlName=\"orientation\"\n placeholder=\"{{ 'igo.geo.printForm.orientation' | translate }}\"\n >\n <mat-option\n *ngFor=\"let orientation of orientations | keyvalue\"\n [value]=\"orientation.key\"\n >\n {{ 'igo.geo.printForm.' + orientation.value | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-form-button-group print-button-top-padding\">\n <button\n mat-raised-button\n type=\"button\"\n [disabled]=\"!form.valid || (disabled$ | async)\"\n (click)=\"handleFormSubmit(form.value, form.valid)\"\n >\n {{ 'igo.geo.printForm.saveBtn' | translate }}\n </button>\n </div>\n</form>\n", styles: [":host mat-form-field{width:100%}:host .slide-toggle-container{margin-bottom:16px}:host .print-slide-toggle-container mat-slide-toggle{width:100%;padding:0 8px}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .print-option{display:block;margin-bottom:12px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}\n"] }]
548
+ args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.title' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"title\"\r\n placeholder=\"{{ 'igo.geo.printForm.title' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"titleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.title' | translate,\r\n value: 130\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.subtitle' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"subtitle\"\r\n placeholder=\"{{ 'igo.geo.printForm.subtitle' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"subtitleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.subtitle' | translate,\r\n value: 120\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.comment' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"comment\"\r\n placeholder=\"{{ 'igo.geo.printForm.comment' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"commentField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.comment' | translate,\r\n value: maxLength\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container slide-toggle-container\">\r\n <div class=\"print-slide-toggle-container\">\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showProjection\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showProjection' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showScale\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showScale' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"doZipFile\"\r\n [labelPosition]=\"'before'\"\r\n [style.display]=\"isPrintService ? 'none' : ''\"\r\n >\r\n {{ 'igo.geo.printForm.doZipFile' | translate }}\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'igo.geo.printForm.legendPosition' | translate\r\n }}</mat-label>\r\n <mat-select\r\n formControlName=\"legendPosition\"\r\n placeholder=\"{{ 'igo.geo.printForm.legendPosition' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let legendPosition of legendPositions | keyvalue\"\r\n [value]=\"legendPosition.key\"\r\n >\r\n <ng-container\r\n *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n 'igo.geo.printForm.legendPositions.' + legendPosition.value\r\n | translate\r\n }}\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n (outputFormat === 'Pdf'\r\n ? 'igo.geo.printForm.legendPositions.newpage'\r\n : 'igo.geo.printForm.legendPositions.newimage'\r\n ) | translate\r\n }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.outputFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"toggleImageSaveProp()\"\r\n formControlName=\"outputFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.outputFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let outputFormat of outputFormats | keyvalue\"\r\n [value]=\"outputFormat.key\"\r\n >\r\n {{ outputFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.paperFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"paperFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.paperFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let paperFormat of paperFormats | keyvalue\"\r\n [value]=\"paperFormat.key\"\r\n >\r\n {{\r\n 'igo.geo.printForm.paperFormats.' + paperFormat.value | translate\r\n }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'none' : 'block'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.imageFormat' | translate }}</mat-label>\r\n <mat-select\r\n formControlName=\"imageFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.imageFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let imageFormat of imageFormats | keyvalue\"\r\n [value]=\"imageFormat.key\"\r\n >\r\n {{ imageFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.resolution' | translate }}</mat-label>\r\n <mat-select\r\n formControlName=\"resolution\"\r\n placeholder=\"{{ 'igo.geo.printForm.resolution' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let resolution of resolutions | keyvalue\"\r\n [value]=\"resolution.key\"\r\n >\r\n {{ resolution.value + ' PPI' }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.orientation' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"orientation\"\r\n placeholder=\"{{ 'igo.geo.printForm.orientation' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let orientation of orientations | keyvalue\"\r\n [value]=\"orientation.key\"\r\n >\r\n {{ 'igo.geo.printForm.' + orientation.value | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group print-button-top-padding\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (disabled$ | async)\"\r\n (click)=\"handleFormSubmit(form.value, form.valid)\"\r\n >\r\n {{ 'igo.geo.printForm.saveBtn' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n", styles: [":host mat-form-field{width:100%}:host .slide-toggle-container{margin-bottom:16px}:host .print-slide-toggle-container mat-slide-toggle{width:100%;padding:0 8px}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .print-option{display:block;margin-bottom:12px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}\n"] }]
549
549
  }], function () { return [{ type: i1.UntypedFormBuilder }]; }, { disabled$: [{
550
550
  type: Input
551
551
  }], imageFormat: [{
@@ -577,4 +577,4 @@ export class PrintFormComponent {
577
577
  }], submit: [{
578
578
  type: Output
579
579
  }] }); })();
580
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9wcmludC9wcmludC1mb3JtL3ByaW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQtZm9ybS9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG9CQUFvQixFQUNyQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ1R4QixpQ0FBZ0Q7SUFBQSxZQU85Qzs7O0lBQUEsaUJBQVk7O0lBUGtDLGVBTzlDO0lBUDhDLDJKQU85Qzs7OztJQVdGLGlDQUFtRDtJQUFBLFlBT2pEOzs7SUFBQSxpQkFBWTs7SUFQcUMsZUFPakQ7SUFQaUQsOEpBT2pEOzs7O0lBV0YsaUNBQWtEO0lBQUEsWUFPaEQ7OztJQUFBLGlCQUFZOzs7SUFQb0MsZUFPaEQ7SUFQZ0QsK0tBT2hEOzs7SUE0Q0UsNkJBRUM7SUFDQyxZQUlGOztJQUFBLDBCQUFlOzs7SUFKYixlQUlGO0lBSkUscUhBSUY7OztJQUVBLDZCQUVDO0lBQ0MsWUFNRjs7SUFBQSwwQkFBZTs7O0lBTmIsZUFNRjtJQU5FLGtMQU1GOzs7O0lBdEJGLHNDQUdDO0lBQ0MsbUdBT2U7SUFFZixtR0FTZTtJ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STFELGVBQStEO1lBQS9ELGdHQUErRDtZQUdyQyxlQUEwQjtZQUExQixrRUFBMEI7WUFheEQsZUFBbUQ7WUFBbkQsZ0VBQW1EO1lBR3RDLGVBQWlEO1lBQWpELDZFQUFpRDtZQUcxRCxlQUErRDtZQUEvRCxnR0FBK0Q7WUFHckMsZUFBMEI7WUFBMUIsa0VBQTBCO1lBVzNDLGVBQWdEO1lBQWhELDRFQUFnRDtZQUd6RCxlQUE4RDtZQUE5RCwrRkFBOEQ7WUFHckMsZUFBeUI7WUFBekIsaUVBQXlCO1lBV3RELGVBQW1EO1lBQW5ELGdFQUFtRDtZQUd0QyxlQUFpRDtZQUFqRCw2RUFBaUQ7WUFJMUQsZUFBK0Q7WUFBL0QsZ0dBQStEO1lBR3JDLGVBQTBCO1lBQTFCLGtFQUEwQjtZQWF0RCxlQUErQztZQUEvQyxtRkFBK0M7WUFHL0MsZUFDRjtZQURFLHFGQUNGOzs7dUZEMU1TLGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLGdCQUFnQjtxRUFjakIsU0FBUztrQkFBakIsS0FBSztZQUdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFlBQVk7a0JBRGYsS0FBSztZQVdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFVBQVU7a0JBRGIsS0FBSztZQVdGLGNBQWM7a0JBRGpCLEtBQUs7WUFXRixLQUFLO2tCQURSLEtBQUs7WUFRRixRQUFRO2tCQURYLEtBQUs7WUFRRixPQUFPO2tCQURWLEtBQUs7WUFRRixjQUFjO2tCQURqQixLQUFLO1lBUUYsU0FBUztrQkFEWixLQUFLO1lBUUYsVUFBVTtrQkFEYixLQUFLO1lBU0YsU0FBUztrQkFEWixLQUFLO1lBNERJLE1BQU07a0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gIFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdG9yc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgUHJpbnRPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL3ByaW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgUHJpbnRMZWdlbmRQb3NpdGlvbixcclxuICBQcmludE9yaWVudGF0aW9uLFxyXG4gIFByaW50T3V0cHV0Rm9ybWF0LFxyXG4gIFByaW50UGFwZXJGb3JtYXQsXHJcbiAgUHJpbnRSZXNvbHV0aW9uLFxyXG4gIFByaW50U2F2ZUltYWdlRm9ybWF0XHJcbn0gZnJvbSAnLi4vc2hhcmVkL3ByaW50LnR5cGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tcHJpbnQtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ByaW50LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ByaW50LWZvcm0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJpbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgb3V0cHV0Rm9ybWF0cyA9IFByaW50T3V0cHV0Rm9ybWF0O1xyXG4gIHB1YmxpYyBwYXBlckZvcm1hdHMgPSBQcmludFBhcGVyRm9ybWF0O1xyXG4gIHB1YmxpYyBvcmllbnRhdGlvbnMgPSBQcmludE9yaWVudGF0aW9uO1xyXG4gIHB1YmxpYyByZXNvbHV0aW9ucyA9IFByaW50UmVzb2x1dGlvbjtcclxuICBwdWJsaWMgaW1hZ2VGb3JtYXRzID0gUHJpbnRTYXZlSW1hZ2VGb3JtYXQ7XHJcbiAgcHVibGljIGxlZ2VuZFBvc2l0aW9ucyA9IFByaW50TGVnZW5kUG9zaXRpb247XHJcbiAgcHVibGljIGlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGltYWdlRm9ybWF0KCk6IFByaW50U2F2ZUltYWdlRm9ybWF0IHtcclxuICAgIHJldHVybiB0aGlzLmltYWdlRm9ybWF0RmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBpbWFnZUZvcm1hdCh2YWx1ZTogUHJpbnRTYXZlSW1hZ2VGb3JtYXQpIHtcclxuICAgIHRoaXMuaW1hZ2VGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFNhdmVJbWFnZUZvcm1hdC5KcGVnLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG91dHB1dEZvcm1hdCgpOiBQcmludE91dHB1dEZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5vdXRwdXRGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IG91dHB1dEZvcm1hdCh2YWx1ZTogUHJpbnRPdXRwdXRGb3JtYXQpIHtcclxuICAgIHRoaXMub3V0cHV0Rm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRPdXRwdXRGb3JtYXQuUGRmLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBhcGVyRm9ybWF0KCk6IFByaW50UGFwZXJGb3JtYXQge1xyXG4gICAgcmV0dXJuIHRoaXMucGFwZXJGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHBhcGVyRm9ybWF0KHZhbHVlOiBQcmludFBhcGVyRm9ybWF0KSB7XHJcbiAgICB0aGlzLnBhcGVyRm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRQYXBlckZvcm1hdC5MZXR0ZXIsIHtcclxuICAgICAgb25seVNlbGY6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgb3JpZW50YXRpb24oKTogUHJpbnRPcmllbnRhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbkZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgb3JpZW50YXRpb24odmFsdWU6IFByaW50T3JpZW50YXRpb24pIHtcclxuICAgIHRoaXMub3JpZW50YXRpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXNvbHV0aW9uKCk6IFByaW50UmVzb2x1dGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvbHV0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCByZXNvbHV0aW9uKHZhbHVlOiBQcmludFJlc29sdXRpb24pIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50UmVzb2x1dGlvblsnOTYnXSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBsZWdlbmRQb3NpdGlvbigpOiBQcmludExlZ2VuZFBvc2l0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLmxlZ2VuZFBvc2l0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBsZWdlbmRQb3NpdGlvbih2YWx1ZTogUHJpbnRMZWdlbmRQb3NpdGlvbikge1xyXG4gICAgdGhpcy5sZWdlbmRQb3NpdGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50TGVnZW5kUG9zaXRpb24ubm9uZSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGl0bGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGl0bGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc3VidGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnN1YnRpdGxlRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzdWJ0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN1YnRpdGxlRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbW1lbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbW1lbnRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGNvbW1lbnQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5jb21tZW50RmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dQcm9qZWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd1Byb2plY3Rpb25GaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHNob3dQcm9qZWN0aW9uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dQcm9qZWN0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dTY2FsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNob3dTY2FsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd1NjYWxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dTY2FsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBzaG93TGVnZW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0xlZ2VuZEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd0xlZ2VuZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zaG93TGVnZW5kRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkb1ppcEZpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kb1ppcEZpbGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGRvWmlwRmlsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kb1ppcEZpbGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gIGdldCBvdXRwdXRGb3JtYXRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkub3V0cHV0Rm9ybWF0IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBwYXBlckZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5wYXBlckZvcm1hdCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgaW1hZ2VGb3JtYXRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuaW1hZ2VGb3JtYXQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9yaWVudGF0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLm9yaWVudGF0aW9uIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCByZXNvbHV0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnJlc29sdXRpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbW1lbnRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuY29tbWVudCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1Byb2plY3Rpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc2hvd1Byb2plY3Rpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dTY2FsZUZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93U2NhbGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dMZWdlbmRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc2hvd0xlZ2VuZCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgZG9aaXBGaWxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmRvWmlwRmlsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgdGl0bGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkudGl0bGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN1YnRpdGxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnN1YnRpdGxlIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBsZWdlbmRQb3NpdGlvbkZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5sZWdlbmRQb3NpdGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8UHJpbnRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbWF4TGVuZ3RoOiBudW1iZXIgPSAxODA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHRpdGxlOiBbJycsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTMwKV1dLFxyXG4gICAgICBzdWJ0aXRsZTogWycnLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldXSxcclxuICAgICAgY29tbWVudDogW1xyXG4gICAgICAgICcnLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhMZW5ndGgpXVxyXG4gICAgICBdLFxyXG4gICAgICBvdXRwdXRGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcGFwZXJGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgaW1hZ2VGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcmVzb2x1dGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBvcmllbnRhdGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBsZWdlbmRQb3NpdGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBzaG93UHJvamVjdGlvbjogZmFsc2UsXHJcbiAgICAgIHNob3dTY2FsZTogZmFsc2UsXHJcbiAgICAgIHNob3dMZWdlbmQ6IGZhbHNlLFxyXG4gICAgICBkb1ppcEZpbGU6IFt7IGhpZGRlbjogdGhpcy5pc1ByaW50U2VydmljZSB9XVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZG9aaXBGaWxlRmllbGQuc2V0VmFsdWUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9ybVN1Ym1pdChkYXRhOiBQcmludE9wdGlvbnMsIGlzVmFsaWQ6IGJvb2xlYW4pIHtcclxuICAgIGRhdGEuaXNQcmludFNlcnZpY2UgPSB0aGlzLmlzUHJpbnRTZXJ2aWNlO1xyXG4gICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgdGhpcy5zdWJtaXQuZW1pdChkYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZUltYWdlU2F2ZVByb3AoKSB7XHJcbiAgICBpZiAodGhpcy5vdXRwdXRGb3JtYXRGaWVsZC52YWx1ZSA9PT0gJ0ltYWdlJykge1xyXG4gICAgICB0aGlzLmlzUHJpbnRTZXJ2aWNlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29tbWVudEZpZWxkLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICB0aGlzLmNvbW1lbnRGaWVsZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZUNvbW1lbnRMZW5ndGgoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMucGFwZXJGb3JtYXQpIHtcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkEwOlxyXG4gICAgICAgIC8vIEEwLCBsYW5kc2NhcGUsIGxlbmd0aCA5MDAgfCBBMCwgcG9ydHJhaXQsIGNvbW1lbnQgbGVuZ3RoOiAgNjAwXHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyA5MDAgOiA2MDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BMTpcclxuICAgICAgICAvLyBBMSwgbGFuZHNjYXBlLCBsZW5ndGggNjAwIHwgQTEsIHBvcnRyYWl0LCBsZW5ndGggNDAwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gNjAwIDogNDAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTI6XHJcbiAgICAgICAgLy8gQTIsIGxhbmRzY2FwZSwgbGVuZ3RoIDQwMCB8IEEyLCBwb3J0cmFpdCwgbGVuZ3RoIDMwMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDQwMCA6IDMwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkEzOlxyXG4gICAgICAgIC8vIEEzLCBsYW5kc2NhcGUsIGxlbmd0aCAzMDAgfCBBMywgcG9ydHJhaXQsIGxlbmd0aCAyMDA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyAzMDAgOiAyMDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BNDpcclxuICAgICAgICAvLyBBNCwgbGFuZHNjYXBlIGxlbmd0aCAyMDAgfCBBNCwgcG9ydHJhaXQgbGVuZ3RoIDEyMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDIwMCA6IDEwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkE1OlxyXG4gICAgICAgIC8vIEE1LCBsYW5kc2NhcGUgbGVuZ3RoIDEyMCB8IEE1LCBwb3J0cmFpdCBsZW5ndGggODA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyAxMjAgOiA4MDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkxldHRlcjpcclxuICAgICAgICAvLyBsZXR0cmUsIGxhbmRzY2FwZSwgMTgwIHwgbGV0dHJlLCBwb3J0cmFpdCwgMTQwXHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyAxODAgOiAxNDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgLy8gbGVnYWwsIGxhbmRzY2FwZSwgMjAwIHwgbGVnYWwsIHBvcnRyYWl0LCAxNDBcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDIwMCA6IDE0MDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbW1lbnRGaWVsZC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heExlbmd0aCldKTtcclxuICAgIHRoaXMuY29tbWVudEZpZWxkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0udGl0bGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIC8+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwidGl0bGVGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7XG4gICAgICAgICdpZ28uZ2VvLmZvcm1WYWxpZGF0aW9uLm1heExlbmd0aCdcbiAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgY29sdW1uOiAnaWdvLmdlby5wcmludEZvcm0udGl0bGUnIHwgdHJhbnNsYXRlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAxMzBcbiAgICAgICAgICAgICAgfVxuICAgICAgfX08L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdWJ0aXRsZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnN1YnRpdGxlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAvPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInN1YnRpdGxlRmllbGQuZXJyb3JzPy5tYXhsZW5ndGhcIj57e1xuICAgICAgICAnaWdvLmdlby5mb3JtVmFsaWRhdGlvbi5tYXhMZW5ndGgnXG4gICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIGNvbHVtbjogJ2lnby5nZW8ucHJpbnRGb3JtLnN1YnRpdGxlJyB8IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMTIwXG4gICAgICAgICAgICAgIH1cbiAgICAgIH19PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0uY29tbWVudCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21tZW50XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0uY29tbWVudCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgLz5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb21tZW50RmllbGQuZXJyb3JzPy5tYXhsZW5ndGhcIj57e1xuICAgICAgICAnaWdvLmdlby5mb3JtVmFsaWRhdGlvbi5tYXhMZW5ndGgnXG4gICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIGNvbHVtbjogJ2lnby5nZW8ucHJpbnRGb3JtLmNvbW1lbnQnIHwgdHJhbnNsYXRlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBtYXhMZW5ndGhcbiAgICAgICAgICAgICAgfVxuICAgICAgfX08L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lciBzbGlkZS10b2dnbGUtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInByaW50LXNsaWRlLXRvZ2dsZS1jb250YWluZXJcIj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2hvd1Byb2plY3Rpb25cIlxuICAgICAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiXG4gICAgICA+XG4gICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zaG93UHJvamVjdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2hvd1NjYWxlXCJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxuICAgICAgPlxuICAgICAgICB7eyAnaWdvLmdlby5wcmludEZvcm0uc2hvd1NjYWxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgY2xhc3M9XCJwcmludC1vcHRpb25cIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkb1ppcEZpbGVcIlxuICAgICAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ25vbmUnIDogJydcIlxuICAgICAgPlxuICAgICAgICB7eyAnaWdvLmdlby5wcmludEZvcm0uZG9aaXBGaWxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+e3tcbiAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLmxlZ2VuZFBvc2l0aW9uJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2VuZFBvc2l0aW9uXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbGVnZW5kUG9zaXRpb24gb2YgbGVnZW5kUG9zaXRpb25zIHwga2V5dmFsdWVcIlxuICAgICAgICAgIFt2YWx1ZV09XCJsZWdlbmRQb3NpdGlvbi5rZXlcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCIhWyduZXdwYWdlJywgJ25ld2ltYWdlJ10uaW5jbHVkZXMobGVnZW5kUG9zaXRpb24udmFsdWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLicgKyBsZWdlbmRQb3NpdGlvbi52YWx1ZVxuICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJbJ25ld3BhZ2UnLCAnbmV3aW1hZ2UnXS5pbmNsdWRlcyhsZWdlbmRQb3NpdGlvbi52YWx1ZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIChvdXRwdXRGb3JtYXQgPT09ICdQZGYnXG4gICAgICAgICAgICAgICAgPyAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld3BhZ2UnXG4gICAgICAgICAgICAgICAgOiAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld2ltYWdlJ1xuICAgICAgICAgICAgICApIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5vdXRwdXRGb3JtYXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInRvZ2dsZUltYWdlU2F2ZVByb3AoKVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm91dHB1dEZvcm1hdFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLm91dHB1dEZvcm1hdCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvdXRwdXRGb3JtYXQgb2Ygb3V0cHV0Rm9ybWF0cyB8IGtleXZhbHVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwib3V0cHV0Rm9ybWF0LmtleVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBvdXRwdXRGb3JtYXQudmFsdWUgfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIlxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gID5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlQ29tbWVudExlbmd0aCgpXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFwZXJGb3JtYXRcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwYXBlckZvcm1hdCBvZiBwYXBlckZvcm1hdHMgfCBrZXl2YWx1ZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cInBhcGVyRm9ybWF0LmtleVwiXG4gICAgICAgID5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLnBhcGVyRm9ybWF0cy4nICsgcGFwZXJGb3JtYXQudmFsdWUgfCB0cmFuc2xhdGVcbiAgICAgICAgICB9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiaXNQcmludFNlcnZpY2UgPyAnbm9uZScgOiAnYmxvY2snXCJcbiAgPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLmltYWdlRm9ybWF0JyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW1hZ2VGb3JtYXRcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5pbWFnZUZvcm1hdCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgPlxuICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpbWFnZUZvcm1hdCBvZiBpbWFnZUZvcm1hdHMgfCBrZXl2YWx1ZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cImltYWdlRm9ybWF0LmtleVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBpbWFnZUZvcm1hdC52YWx1ZSB9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5yZXNvbHV0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVzb2x1dGlvblwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnJlc29sdXRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVzb2x1dGlvbiBvZiByZXNvbHV0aW9ucyB8IGtleXZhbHVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwicmVzb2x1dGlvbi5rZXlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcmVzb2x1dGlvbi52YWx1ZSArICcgUFBJJyB9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiaXNQcmludFNlcnZpY2UgPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLm9yaWVudGF0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VDb21tZW50TGVuZ3RoKClcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcmllbnRhdGlvblwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLm9yaWVudGF0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9yaWVudGF0aW9uIG9mIG9yaWVudGF0aW9ucyB8IGtleXZhbHVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwib3JpZW50YXRpb24ua2V5XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS4nICsgb3JpZW50YXRpb24udmFsdWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXAgcHJpbnQtYnV0dG9uLXRvcC1wYWRkaW5nXCI+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkIHx8IChkaXNhYmxlZCQgfCBhc3luYylcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUZvcm1TdWJtaXQoZm9ybS52YWx1ZSwgZm9ybS52YWxpZClcIlxuICAgID5cbiAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zYXZlQnRuJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
580
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9wcmludC9wcmludC1mb3JtL3ByaW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQtZm9ybS9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG9CQUFvQixFQUNyQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ1R4QixpQ0FBZ0Q7SUFBQSxZQU85Qzs7O0lBQUEsaUJBQVk7O0lBUGtDLGVBTzlDO0lBUDhDLDJKQU85Qzs7OztJQVdGLGlDQUFtRDtJQUFBLFlBT2pEOzs7SUFBQSxpQkFBWTs7SUFQcUMsZUFPakQ7SUFQaUQsOEpBT2pEOzs7O0lBV0YsaUNBQWtEO0lBQUEsWUFPaEQ7OztJQUFBLGlCQUFZOzs7SUFQb0MsZUFPaEQ7SUFQZ0QsK0tBT2hEOzs7SUE0Q0UsNkJBRUM7SUFDQyxZQUlGOztJQUFBLDBCQUFlOzs7SUFKYixlQUlGO0lBSkUscUhBSUY7OztJQUVBLDZCQUVDO0lBQ0MsWUFNRjs7SUFBQSwwQkFBZTs7O0lBTmIsZUFNRjtJQU5FLGtMQU1GOzs7O0lBdEJGLHNDQUdDO0lBQ0MsbUdBT2U7SUFFZixtR0FTZTtJ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STFELGVBQStEO1lBQS9ELGdHQUErRDtZQUdyQyxlQUEwQjtZQUExQixrRUFBMEI7WUFheEQsZUFBbUQ7WUFBbkQsZ0VBQW1EO1lBR3RDLGVBQWlEO1lBQWpELDZFQUFpRDtZQUcxRCxlQUErRDtZQUEvRCxnR0FBK0Q7WUFHckMsZUFBMEI7WUFBMUIsa0VBQTBCO1lBVzNDLGVBQWdEO1lBQWhELDRFQUFnRDtZQUd6RCxlQUE4RDtZQUE5RCwrRkFBOEQ7WUFHckMsZUFBeUI7WUFBekIsaUVBQXlCO1lBV3RELGVBQW1EO1lBQW5ELGdFQUFtRDtZQUd0QyxlQUFpRDtZQUFqRCw2RUFBaUQ7WUFJMUQsZUFBK0Q7WUFBL0QsZ0dBQStEO1lBR3JDLGVBQTBCO1lBQTFCLGtFQUEwQjtZQWF0RCxlQUErQztZQUEvQyxtRkFBK0M7WUFHL0MsZUFDRjtZQURFLHFGQUNGOzs7dUZEMU1TLGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLGdCQUFnQjtxRUFjakIsU0FBUztrQkFBakIsS0FBSztZQUdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFlBQVk7a0JBRGYsS0FBSztZQVdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFVBQVU7a0JBRGIsS0FBSztZQVdGLGNBQWM7a0JBRGpCLEtBQUs7WUFXRixLQUFLO2tCQURSLEtBQUs7WUFRRixRQUFRO2tCQURYLEtBQUs7WUFRRixPQUFPO2tCQURWLEtBQUs7WUFRRixjQUFjO2tCQURqQixLQUFLO1lBUUYsU0FBUztrQkFEWixLQUFLO1lBUUYsVUFBVTtrQkFEYixLQUFLO1lBU0YsU0FBUztrQkFEWixLQUFLO1lBNERJLE1BQU07a0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gIFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdG9yc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgUHJpbnRPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL3ByaW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgUHJpbnRMZWdlbmRQb3NpdGlvbixcclxuICBQcmludE9yaWVudGF0aW9uLFxyXG4gIFByaW50T3V0cHV0Rm9ybWF0LFxyXG4gIFByaW50UGFwZXJGb3JtYXQsXHJcbiAgUHJpbnRSZXNvbHV0aW9uLFxyXG4gIFByaW50U2F2ZUltYWdlRm9ybWF0XHJcbn0gZnJvbSAnLi4vc2hhcmVkL3ByaW50LnR5cGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tcHJpbnQtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ByaW50LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ByaW50LWZvcm0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJpbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgb3V0cHV0Rm9ybWF0cyA9IFByaW50T3V0cHV0Rm9ybWF0O1xyXG4gIHB1YmxpYyBwYXBlckZvcm1hdHMgPSBQcmludFBhcGVyRm9ybWF0O1xyXG4gIHB1YmxpYyBvcmllbnRhdGlvbnMgPSBQcmludE9yaWVudGF0aW9uO1xyXG4gIHB1YmxpYyByZXNvbHV0aW9ucyA9IFByaW50UmVzb2x1dGlvbjtcclxuICBwdWJsaWMgaW1hZ2VGb3JtYXRzID0gUHJpbnRTYXZlSW1hZ2VGb3JtYXQ7XHJcbiAgcHVibGljIGxlZ2VuZFBvc2l0aW9ucyA9IFByaW50TGVnZW5kUG9zaXRpb247XHJcbiAgcHVibGljIGlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGltYWdlRm9ybWF0KCk6IFByaW50U2F2ZUltYWdlRm9ybWF0IHtcclxuICAgIHJldHVybiB0aGlzLmltYWdlRm9ybWF0RmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBpbWFnZUZvcm1hdCh2YWx1ZTogUHJpbnRTYXZlSW1hZ2VGb3JtYXQpIHtcclxuICAgIHRoaXMuaW1hZ2VGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFNhdmVJbWFnZUZvcm1hdC5KcGVnLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG91dHB1dEZvcm1hdCgpOiBQcmludE91dHB1dEZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5vdXRwdXRGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IG91dHB1dEZvcm1hdCh2YWx1ZTogUHJpbnRPdXRwdXRGb3JtYXQpIHtcclxuICAgIHRoaXMub3V0cHV0Rm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRPdXRwdXRGb3JtYXQuUGRmLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBhcGVyRm9ybWF0KCk6IFByaW50UGFwZXJGb3JtYXQge1xyXG4gICAgcmV0dXJuIHRoaXMucGFwZXJGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHBhcGVyRm9ybWF0KHZhbHVlOiBQcmludFBhcGVyRm9ybWF0KSB7XHJcbiAgICB0aGlzLnBhcGVyRm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRQYXBlckZvcm1hdC5MZXR0ZXIsIHtcclxuICAgICAgb25seVNlbGY6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgb3JpZW50YXRpb24oKTogUHJpbnRPcmllbnRhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbkZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgb3JpZW50YXRpb24odmFsdWU6IFByaW50T3JpZW50YXRpb24pIHtcclxuICAgIHRoaXMub3JpZW50YXRpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXNvbHV0aW9uKCk6IFByaW50UmVzb2x1dGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvbHV0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCByZXNvbHV0aW9uKHZhbHVlOiBQcmludFJlc29sdXRpb24pIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50UmVzb2x1dGlvblsnOTYnXSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBsZWdlbmRQb3NpdGlvbigpOiBQcmludExlZ2VuZFBvc2l0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLmxlZ2VuZFBvc2l0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBsZWdlbmRQb3NpdGlvbih2YWx1ZTogUHJpbnRMZWdlbmRQb3NpdGlvbikge1xyXG4gICAgdGhpcy5sZWdlbmRQb3NpdGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50TGVnZW5kUG9zaXRpb24ubm9uZSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGl0bGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGl0bGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc3VidGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnN1YnRpdGxlRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzdWJ0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN1YnRpdGxlRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbW1lbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbW1lbnRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGNvbW1lbnQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5jb21tZW50RmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dQcm9qZWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd1Byb2plY3Rpb25GaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHNob3dQcm9qZWN0aW9uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dQcm9qZWN0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dTY2FsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNob3dTY2FsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd1NjYWxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dTY2FsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBzaG93TGVnZW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0xlZ2VuZEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd0xlZ2VuZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zaG93TGVnZW5kRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkb1ppcEZpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kb1ppcEZpbGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGRvWmlwRmlsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kb1ppcEZpbGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gIGdldCBvdXRwdXRGb3JtYXRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkub3V0cHV0Rm9ybWF0IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBwYXBlckZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5wYXBlckZvcm1hdCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgaW1hZ2VGb3JtYXRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuaW1hZ2VGb3JtYXQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9yaWVudGF0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLm9yaWVudGF0aW9uIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCByZXNvbHV0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnJlc29sdXRpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbW1lbnRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuY29tbWVudCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1Byb2plY3Rpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc2hvd1Byb2plY3Rpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dTY2FsZUZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93U2NhbGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dMZWdlbmRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc2hvd0xlZ2VuZCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgZG9aaXBGaWxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmRvWmlwRmlsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgdGl0bGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkudGl0bGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN1YnRpdGxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnN1YnRpdGxlIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBsZWdlbmRQb3NpdGlvbkZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5sZWdlbmRQb3NpdGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8UHJpbnRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbWF4TGVuZ3RoOiBudW1iZXIgPSAxODA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHRpdGxlOiBbJycsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTMwKV1dLFxyXG4gICAgICBzdWJ0aXRsZTogWycnLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldXSxcclxuICAgICAgY29tbWVudDogW1xyXG4gICAgICAgICcnLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhMZW5ndGgpXVxyXG4gICAgICBdLFxyXG4gICAgICBvdXRwdXRGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcGFwZXJGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgaW1hZ2VGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcmVzb2x1dGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBvcmllbnRhdGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBsZWdlbmRQb3NpdGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBzaG93UHJvamVjdGlvbjogZmFsc2UsXHJcbiAgICAgIHNob3dTY2FsZTogZmFsc2UsXHJcbiAgICAgIHNob3dMZWdlbmQ6IGZhbHNlLFxyXG4gICAgICBkb1ppcEZpbGU6IFt7IGhpZGRlbjogdGhpcy5pc1ByaW50U2VydmljZSB9XVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZG9aaXBGaWxlRmllbGQuc2V0VmFsdWUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9ybVN1Ym1pdChkYXRhOiBQcmludE9wdGlvbnMsIGlzVmFsaWQ6IGJvb2xlYW4pIHtcclxuICAgIGRhdGEuaXNQcmludFNlcnZpY2UgPSB0aGlzLmlzUHJpbnRTZXJ2aWNlO1xyXG4gICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgdGhpcy5zdWJtaXQuZW1pdChkYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZUltYWdlU2F2ZVByb3AoKSB7XHJcbiAgICBpZiAodGhpcy5vdXRwdXRGb3JtYXRGaWVsZC52YWx1ZSA9PT0gJ0ltYWdlJykge1xyXG4gICAgICB0aGlzLmlzUHJpbnRTZXJ2aWNlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29tbWVudEZpZWxkLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICB0aGlzLmNvbW1lbnRGaWVsZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZUNvbW1lbnRMZW5ndGgoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMucGFwZXJGb3JtYXQpIHtcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkEwOlxyXG4gICAgICAgIC8vIEEwLCBsYW5kc2NhcGUsIGxlbmd0aCA5MDAgfCBBMCwgcG9ydHJhaXQsIGNvbW1lbnQgbGVuZ3RoOiAgNjAwXHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyA5MDAgOiA2MDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BMTpcclxuICAgICAgICAvLyBBMSwgbGFuZHNjYXBlLCBsZW5ndGggNjAwIHwgQTEsIHBvcnRyYWl0LCBsZW5ndGggNDAwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gNjAwIDogNDAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTI6XHJcbiAgICAgICAgLy8gQTIsIGxhbmRzY2FwZSwgbGVuZ3RoIDQwMCB8IEEyLCBwb3J0cmFpdCwgbGVuZ3RoIDMwMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDQwMCA6IDMwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkEzOlxyXG4gICAgICAgIC8vIEEzLCBsYW5kc2NhcGUsIGxlbmd0aCAzMDAgfCBBMywgcG9ydHJhaXQsIGxlbmd0aCAyMDA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyAzMDAgOiAyMDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BNDpcclxuICAgICAgICAvLyBBNCwgbGFuZHNjYXBlIGxlbmd0aCAyMDAgfCBBNCwgcG9ydHJhaXQgbGVuZ3RoIDEyMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDIwMCA6IDEwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkE1OlxyXG4gICAgICAgIC8vIEE1LCBsYW5kc2NhcGUgbGVuZ3RoIDEyMCB8IEE1LCBwb3J0cmFpdCBsZW5ndGggODA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyAxMjAgOiA4MDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkxldHRlcjpcclxuICAgICAgICAvLyBsZXR0cmUsIGxhbmRzY2FwZSwgMTgwIHwgbGV0dHJlLCBwb3J0cmFpdCwgMTQwXHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyAxODAgOiAxNDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgLy8gbGVnYWwsIGxhbmRzY2FwZSwgMjAwIHwgbGVnYWwsIHBvcnRyYWl0LCAxNDBcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDIwMCA6IDE0MDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbW1lbnRGaWVsZC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heExlbmd0aCldKTtcclxuICAgIHRoaXMuY29tbWVudEZpZWxkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS50aXRsZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAvPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwidGl0bGVGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7XHJcbiAgICAgICAgJ2lnby5nZW8uZm9ybVZhbGlkYXRpb24ubWF4TGVuZ3RoJ1xyXG4gICAgICAgICAgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46ICdpZ28uZ2VvLnByaW50Rm9ybS50aXRsZScgfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogMTMwXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdWJ0aXRsZVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0uc3VidGl0bGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgLz5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInN1YnRpdGxlRmllbGQuZXJyb3JzPy5tYXhsZW5ndGhcIj57e1xyXG4gICAgICAgICdpZ28uZ2VvLmZvcm1WYWxpZGF0aW9uLm1heExlbmd0aCdcclxuICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uOiAnaWdvLmdlby5wcmludEZvcm0uc3VidGl0bGUnIHwgdHJhbnNsYXRlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IDEyMFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgfX08L21hdC1lcnJvcj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0uY29tbWVudCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21tZW50XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5jb21tZW50JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb21tZW50RmllbGQuZXJyb3JzPy5tYXhsZW5ndGhcIj57e1xyXG4gICAgICAgICdpZ28uZ2VvLmZvcm1WYWxpZGF0aW9uLm1heExlbmd0aCdcclxuICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uOiAnaWdvLmdlby5wcmludEZvcm0uY29tbWVudCcgfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogbWF4TGVuZ3RoXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXIgc2xpZGUtdG9nZ2xlLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInByaW50LXNsaWRlLXRvZ2dsZS1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcclxuICAgICAgICBjbGFzcz1cInByaW50LW9wdGlvblwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2hvd1Byb2plY3Rpb25cIlxyXG4gICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zaG93UHJvamVjdGlvbicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaG93U2NhbGVcIlxyXG4gICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zaG93U2NhbGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcclxuICAgICAgICBjbGFzcz1cInByaW50LW9wdGlvblwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZG9aaXBGaWxlXCJcclxuICAgICAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiXHJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaXNQcmludFNlcnZpY2UgPyAnbm9uZScgOiAnJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyAnaWdvLmdlby5wcmludEZvcm0uZG9aaXBGaWxlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57e1xyXG4gICAgICAgICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbicgfCB0cmFuc2xhdGVcclxuICAgICAgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdlbmRQb3NpdGlvblwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb24nIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbGVnZW5kUG9zaXRpb24gb2YgbGVnZW5kUG9zaXRpb25zIHwga2V5dmFsdWVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cImxlZ2VuZFBvc2l0aW9uLmtleVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdJZj1cIiFbJ25ld3BhZ2UnLCAnbmV3aW1hZ2UnXS5pbmNsdWRlcyhsZWdlbmRQb3NpdGlvbi52YWx1ZSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbnMuJyArIGxlZ2VuZFBvc2l0aW9uLnZhbHVlXHJcbiAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdJZj1cIlsnbmV3cGFnZScsICduZXdpbWFnZSddLmluY2x1ZGVzKGxlZ2VuZFBvc2l0aW9uLnZhbHVlKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgKG91dHB1dEZvcm1hdCA9PT0gJ1BkZidcclxuICAgICAgICAgICAgICAgID8gJ2lnby5nZW8ucHJpbnRGb3JtLmxlZ2VuZFBvc2l0aW9ucy5uZXdwYWdlJ1xyXG4gICAgICAgICAgICAgICAgOiAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld2ltYWdlJ1xyXG4gICAgICAgICAgICAgICkgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0ub3V0cHV0Rm9ybWF0JyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwidG9nZ2xlSW1hZ2VTYXZlUHJvcCgpXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvdXRwdXRGb3JtYXRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLm91dHB1dEZvcm1hdCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvdXRwdXRGb3JtYXQgb2Ygb3V0cHV0Rm9ybWF0cyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvdXRwdXRGb3JtYXQua2V5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBvdXRwdXRGb3JtYXQudmFsdWUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiXHJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdibG9jaycgOiAnbm9uZSdcIlxyXG4gID5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0ucGFwZXJGb3JtYXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VDb21tZW50TGVuZ3RoKClcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhcGVyRm9ybWF0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwYXBlckZvcm1hdCBvZiBwYXBlckZvcm1hdHMgfCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwicGFwZXJGb3JtYXQua2V5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAnaWdvLmdlby5wcmludEZvcm0ucGFwZXJGb3JtYXRzLicgKyBwYXBlckZvcm1hdC52YWx1ZSB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiXHJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdub25lJyA6ICdibG9jaydcIlxyXG4gID5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0uaW1hZ2VGb3JtYXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW1hZ2VGb3JtYXRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLmltYWdlRm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGltYWdlRm9ybWF0IG9mIGltYWdlRm9ybWF0cyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJpbWFnZUZvcm1hdC5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGltYWdlRm9ybWF0LnZhbHVlIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5yZXNvbHV0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlc29sdXRpb25cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnJlc29sdXRpb24nIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVzb2x1dGlvbiBvZiByZXNvbHV0aW9ucyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJyZXNvbHV0aW9uLmtleVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgcmVzb2x1dGlvbi52YWx1ZSArICcgUFBJJyB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ2Jsb2NrJyA6ICdub25lJ1wiXHJcbiAgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5vcmllbnRhdGlvbicgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUNvbW1lbnRMZW5ndGgoKVwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JpZW50YXRpb25cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLm9yaWVudGF0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9yaWVudGF0aW9uIG9mIG9yaWVudGF0aW9ucyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvcmllbnRhdGlvbi5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS4nICsgb3JpZW50YXRpb24udmFsdWUgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXAgcHJpbnQtYnV0dG9uLXRvcC1wYWRkaW5nXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgKGRpc2FibGVkJCB8IGFzeW5jKVwiXHJcbiAgICAgIChjbGljayk9XCJoYW5kbGVGb3JtU3VibWl0KGZvcm0udmFsdWUsIGZvcm0udmFsaWQpXCJcclxuICAgID5cclxuICAgICAge3sgJ2lnby5nZW8ucHJpbnRGb3JtLnNhdmVCdG4nIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG4iXX0=
@@ -65,4 +65,4 @@ export default function jsGeoPdfPlugin(jsPDFAPI) {
65
65
  });
66
66
  };
67
67
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvcGRmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvc2hhcmVkL2dlb3BkZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE1BQU0sQ0FBQyxPQUFPLFVBQVUsY0FBYyxDQUFDLFFBQVE7SUFDN0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxNQUFNLEVBQUUsTUFBTTtRQUN6QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLHlDQUF5QztRQUN6QywyREFBMkQ7UUFDM0QsV0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFckQsUUFBUSxDQUFDLE9BQU87WUFDZCxtRkFBbUY7Z0JBQ25GLGlIQUFpSDtnQkFDakgsOEdBQThHO2dCQUM5Ryx5R0FBeUc7Z0JBQ3pHLGdFQUFnRSxDQUFDO1FBRW5FLFVBQVUsQ0FBQyxPQUFPO1lBQ2hCLHNDQUFzQztnQkFDdEMsUUFBUSxDQUFDLEtBQUs7Z0JBQ2QsZUFBZTtnQkFDZixNQUFNO2dCQUNOLDhEQUE4RCxDQUFDO1FBRWpFLFFBQVEsQ0FBQyxPQUFPO1lBQ2QsYUFBYTtnQkFDYixJQUFJO2dCQUNKLGNBQWM7Z0JBQ2QsVUFBVSxDQUFDLEtBQUs7Z0JBQ2hCLHVDQUF1QyxDQUFDO1FBRTFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN0RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELFNBQVMsQ0FBQyxPQUFPLEdBQUcsaUNBQWlDLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUVyRSxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsUUFBUSxDQUFDLFVBQVUsR0FBRyxVQUFVLE1BQU0sRUFBRSxNQUFNO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDeEMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDE3IERhbiBcIkR1Y2t5XCIgTGl0dGxlXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBqc0dlb1BkZlBsdWdpbihqc1BERkFQSSkge1xuICBjb25zdCBzZXRHZW9BcmVhID0gZnVuY3Rpb24gKHBkZkV4dCwgZ2VvRXh0KSB7XG4gICAgY29uc3QgYmJveCA9IHBkZkV4dC5qb2luKCcgJyk7XG4gICAgLy8gdGhlIG9yZGVyaW5nIG1heSBzZWVtIG9kZCBoZXJlIGJ1dCBQREZcbiAgICAvLyAgZmxpcHMgdGhlIFkgYXhpcyB1cHNpZGUgZG93biBhbmQgdGhpcyBhY2NvdW50cyBmb3IgdGhhdFxuICAgIC8vICBjaGFuZ2UuXG4gICAgY29uc3QgbWlueCA9IGdlb0V4dFswXTtcbiAgICBjb25zdCBtYXh4ID0gZ2VvRXh0WzJdO1xuICAgIGNvbnN0IG1heHkgPSBnZW9FeHRbMV07XG4gICAgY29uc3QgbWlueSA9IGdlb0V4dFszXTtcbiAgICBjb25zdCBib3VuZHMgPSBbbWlueSwgbWlueCwgbWF4eSwgbWlueCwgbWF4eSwgbWF4eCwgbWlueSwgbWF4eF0uam9pbignICcpO1xuICAgIGNvbnN0IGJib3hfb2JqID0gdGhpcy5pbnRlcm5hbC5uZXdBZGRpdGlvbmFsT2JqZWN0KCk7XG4gICAgY29uc3QgYm91bmRzX29iaiA9IHRoaXMuaW50ZXJuYWwubmV3QWRkaXRpb25hbE9iamVjdCgpO1xuICAgIGNvbnN0IHByb2pfb2JqID0gdGhpcy5pbnRlcm5hbC5uZXdBZGRpdGlvbmFsT2JqZWN0KCk7XG5cbiAgICBwcm9qX29iai5jb250ZW50ID1cbiAgICAgICc8PCAvRVBTRyAzODU3IC9UeXBlIC9QUk9KQ1MgL1dLVCAoUFJPSkNTW1wiV0dTXzE5ODRfV2ViX01lcmNhdG9yX0F1eGlsaWFyeV9TcGhlcmVcIicgK1xuICAgICAgJyxHRU9HQ1NbXCJHQ1NfV0dTXzE5ODRcIixEQVRVTVtcIkRfV0dTXzE5ODRcIixTUEhFUk9JRFtcIldHU18xOTg0XCIsNjM3ODEzNy4wLDI5OC4yNTcyMjM1NjNdXSxQUklNRU1bXCJHcmVlbndpY2hcIiwwLjBdJyArXG4gICAgICAnLFVOSVRbXCJEZWdyZWVcIiwwLjAxNzQ1MzI5MjUxOTk0MzI5NV1dLFBST0pFQ1RJT05bXCJNZXJjYXRvcl9BdXhpbGlhcnlfU3BoZXJlXCJdLFBBUkFNRVRFUltcIkZhbHNlX0Vhc3RpbmdcIiwwLjBdJyArXG4gICAgICAnLFBBUkFNRVRFUltcIkZhbHNlX05vcnRoaW5nXCIsMC4wXSxQQVJBTUVURVJbXCJDZW50cmFsX01lcmlkaWFuXCIsMC4wXSxQQVJBTUVURVJbXCJTdGFuZGFyZF9QYXJhbGxlbF8xXCIsMC4wXScgK1xuICAgICAgJyxQQVJBTUVURVJbXCJBdXhpbGlhcnlfU3BoZXJlX1R5cGVcIiwwLjBdLFVOSVRbXCJNZXRlclwiLDEuMF1dKSA+Pic7XG5cbiAgICBib3VuZHNfb2JqLmNvbnRlbnQgPVxuICAgICAgJzw8IC9Cb3VuZHMgWyAwIDEgMCAwIDEgMCAxIDEgXSAvR0NTICcgK1xuICAgICAgcHJval9vYmoub2JqSWQgK1xuICAgICAgJyAwIFIgL0dQVFMgWyAnICtcbiAgICAgIGJvdW5kcyArXG4gICAgICAnIF0gL0xQVFMgWyAwIDEgMCAwIDEgMCAxIDEgXSAvU3VidHlwZSAvR0VPIC9UeXBlIC9NZWFzdXJlID4+JztcblxuICAgIGJib3hfb2JqLmNvbnRlbnQgPVxuICAgICAgJzw8IC9CQm94IFsgJyArXG4gICAgICBiYm94ICtcbiAgICAgICcgXSAvTWVhc3VyZSAnICtcbiAgICAgIGJvdW5kc19vYmoub2JqSWQgK1xuICAgICAgJyAwIFIgL05hbWUgKExheWVyKSAvVHlwZSAvVmlld3BvcnQgPj4nO1xuXG4gICAgY29uc3QgdGl0bGVfb2JqID0gdGhpcy5pbnRlcm5hbC5uZXdBZGRpdGlvbmFsT2JqZWN0KCk7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1DQScpO1xuICAgIHRpdGxlX29iai5jb250ZW50ID0gJzw8IC9OYW1lIElHTzIgL1R5cGUgL09DRyAvRGF0ZSAnICsgZGF0ZSArICcgPj4nO1xuXG4gICAgcmV0dXJuIGJib3hfb2JqLm9iaklkO1xuICB9O1xuXG4gIGpzUERGQVBJLnNldEdlb0FyZWEgPSBmdW5jdGlvbiAocGRmRXh0LCBnZW9FeHQpIHtcbiAgICB0aGlzLmludGVybmFsLmV2ZW50cy5zdWJzY3JpYmUoJ3B1dFBhZ2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBiYm94X2lkID0gc2V0R2VvQXJlYS5jYWxsKHRoaXMsIHBkZkV4dCwgZ2VvRXh0KTtcbiAgICAgIHRoaXMuaW50ZXJuYWwud3JpdGUoJy9WUCBbICcgKyBiYm94X2lkICsgJyAwIFIgXScpO1xuICAgIH0pO1xuICB9O1xufVxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvcGRmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvc2hhcmVkL2dlb3BkZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE1BQU0sQ0FBQyxPQUFPLFVBQVUsY0FBYyxDQUFDLFFBQVE7SUFDN0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxNQUFNLEVBQUUsTUFBTTtRQUN6QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLHlDQUF5QztRQUN6QywyREFBMkQ7UUFDM0QsV0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFckQsUUFBUSxDQUFDLE9BQU87WUFDZCxtRkFBbUY7Z0JBQ25GLGlIQUFpSDtnQkFDakgsOEdBQThHO2dCQUM5Ryx5R0FBeUc7Z0JBQ3pHLGdFQUFnRSxDQUFDO1FBRW5FLFVBQVUsQ0FBQyxPQUFPO1lBQ2hCLHNDQUFzQztnQkFDdEMsUUFBUSxDQUFDLEtBQUs7Z0JBQ2QsZUFBZTtnQkFDZixNQUFNO2dCQUNOLDhEQUE4RCxDQUFDO1FBRWpFLFFBQVEsQ0FBQyxPQUFPO1lBQ2QsYUFBYTtnQkFDYixJQUFJO2dCQUNKLGNBQWM7Z0JBQ2QsVUFBVSxDQUFDLEtBQUs7Z0JBQ2hCLHVDQUF1QyxDQUFDO1FBRTFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN0RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELFNBQVMsQ0FBQyxPQUFPLEdBQUcsaUNBQWlDLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUVyRSxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsUUFBUSxDQUFDLFVBQVUsR0FBRyxVQUFVLE1BQU0sRUFBRSxNQUFNO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDeEMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXHJcbiAqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDE3IERhbiBcIkR1Y2t5XCIgTGl0dGxlXHJcbiAqXHJcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcclxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxyXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXHJcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcclxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXHJcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XHJcbiAqXHJcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxyXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxyXG4gKlxyXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXHJcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxyXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcclxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxyXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxyXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxyXG4gKiBTT0ZUV0FSRS5cclxuICovXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBqc0dlb1BkZlBsdWdpbihqc1BERkFQSSkge1xyXG4gIGNvbnN0IHNldEdlb0FyZWEgPSBmdW5jdGlvbiAocGRmRXh0LCBnZW9FeHQpIHtcclxuICAgIGNvbnN0IGJib3ggPSBwZGZFeHQuam9pbignICcpO1xyXG4gICAgLy8gdGhlIG9yZGVyaW5nIG1heSBzZWVtIG9kZCBoZXJlIGJ1dCBQREZcclxuICAgIC8vICBmbGlwcyB0aGUgWSBheGlzIHVwc2lkZSBkb3duIGFuZCB0aGlzIGFjY291bnRzIGZvciB0aGF0XHJcbiAgICAvLyAgY2hhbmdlLlxyXG4gICAgY29uc3QgbWlueCA9IGdlb0V4dFswXTtcclxuICAgIGNvbnN0IG1heHggPSBnZW9FeHRbMl07XHJcbiAgICBjb25zdCBtYXh5ID0gZ2VvRXh0WzFdO1xyXG4gICAgY29uc3QgbWlueSA9IGdlb0V4dFszXTtcclxuICAgIGNvbnN0IGJvdW5kcyA9IFttaW55LCBtaW54LCBtYXh5LCBtaW54LCBtYXh5LCBtYXh4LCBtaW55LCBtYXh4XS5qb2luKCcgJyk7XHJcbiAgICBjb25zdCBiYm94X29iaiA9IHRoaXMuaW50ZXJuYWwubmV3QWRkaXRpb25hbE9iamVjdCgpO1xyXG4gICAgY29uc3QgYm91bmRzX29iaiA9IHRoaXMuaW50ZXJuYWwubmV3QWRkaXRpb25hbE9iamVjdCgpO1xyXG4gICAgY29uc3QgcHJval9vYmogPSB0aGlzLmludGVybmFsLm5ld0FkZGl0aW9uYWxPYmplY3QoKTtcclxuXHJcbiAgICBwcm9qX29iai5jb250ZW50ID1cclxuICAgICAgJzw8IC9FUFNHIDM4NTcgL1R5cGUgL1BST0pDUyAvV0tUIChQUk9KQ1NbXCJXR1NfMTk4NF9XZWJfTWVyY2F0b3JfQXV4aWxpYXJ5X1NwaGVyZVwiJyArXHJcbiAgICAgICcsR0VPR0NTW1wiR0NTX1dHU18xOTg0XCIsREFUVU1bXCJEX1dHU18xOTg0XCIsU1BIRVJPSURbXCJXR1NfMTk4NFwiLDYzNzgxMzcuMCwyOTguMjU3MjIzNTYzXV0sUFJJTUVNW1wiR3JlZW53aWNoXCIsMC4wXScgK1xyXG4gICAgICAnLFVOSVRbXCJEZWdyZWVcIiwwLjAxNzQ1MzI5MjUxOTk0MzI5NV1dLFBST0pFQ1RJT05bXCJNZXJjYXRvcl9BdXhpbGlhcnlfU3BoZXJlXCJdLFBBUkFNRVRFUltcIkZhbHNlX0Vhc3RpbmdcIiwwLjBdJyArXHJcbiAgICAgICcsUEFSQU1FVEVSW1wiRmFsc2VfTm9ydGhpbmdcIiwwLjBdLFBBUkFNRVRFUltcIkNlbnRyYWxfTWVyaWRpYW5cIiwwLjBdLFBBUkFNRVRFUltcIlN0YW5kYXJkX1BhcmFsbGVsXzFcIiwwLjBdJyArXHJcbiAgICAgICcsUEFSQU1FVEVSW1wiQXV4aWxpYXJ5X1NwaGVyZV9UeXBlXCIsMC4wXSxVTklUW1wiTWV0ZXJcIiwxLjBdXSkgPj4nO1xyXG5cclxuICAgIGJvdW5kc19vYmouY29udGVudCA9XHJcbiAgICAgICc8PCAvQm91bmRzIFsgMCAxIDAgMCAxIDAgMSAxIF0gL0dDUyAnICtcclxuICAgICAgcHJval9vYmoub2JqSWQgK1xyXG4gICAgICAnIDAgUiAvR1BUUyBbICcgK1xyXG4gICAgICBib3VuZHMgK1xyXG4gICAgICAnIF0gL0xQVFMgWyAwIDEgMCAwIDEgMCAxIDEgXSAvU3VidHlwZSAvR0VPIC9UeXBlIC9NZWFzdXJlID4+JztcclxuXHJcbiAgICBiYm94X29iai5jb250ZW50ID1cclxuICAgICAgJzw8IC9CQm94IFsgJyArXHJcbiAgICAgIGJib3ggK1xyXG4gICAgICAnIF0gL01lYXN1cmUgJyArXHJcbiAgICAgIGJvdW5kc19vYmoub2JqSWQgK1xyXG4gICAgICAnIDAgUiAvTmFtZSAoTGF5ZXIpIC9UeXBlIC9WaWV3cG9ydCA+Pic7XHJcblxyXG4gICAgY29uc3QgdGl0bGVfb2JqID0gdGhpcy5pbnRlcm5hbC5uZXdBZGRpdGlvbmFsT2JqZWN0KCk7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLUNBJyk7XHJcbiAgICB0aXRsZV9vYmouY29udGVudCA9ICc8PCAvTmFtZSBJR08yIC9UeXBlIC9PQ0cgL0RhdGUgJyArIGRhdGUgKyAnID4+JztcclxuXHJcbiAgICByZXR1cm4gYmJveF9vYmoub2JqSWQ7XHJcbiAgfTtcclxuXHJcbiAganNQREZBUEkuc2V0R2VvQXJlYSA9IGZ1bmN0aW9uIChwZGZFeHQsIGdlb0V4dCkge1xyXG4gICAgdGhpcy5pbnRlcm5hbC5ldmVudHMuc3Vic2NyaWJlKCdwdXRQYWdlJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICBjb25zdCBiYm94X2lkID0gc2V0R2VvQXJlYS5jYWxsKHRoaXMsIHBkZkV4dCwgZ2VvRXh0KTtcclxuICAgICAgdGhpcy5pbnRlcm5hbC53cml0ZSgnL1ZQIFsgJyArIGJib3hfaWQgKyAnIDAgUiBdJyk7XHJcbiAgICB9KTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -38,4 +38,4 @@ export function olLayerFeatureIsQueryable(olLayer) {
38
38
  ? false
39
39
  : layerIsQueryable(layer) && layerFeatureIsQueryable(layer);
40
40
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9xdWVyeS9zaGFyZWQvcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFlO0lBQzlDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFpQyxDQUFDO0lBQzNELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDO0FBQy9DLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQTBCO0lBQzNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQWU7SUFDckQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQWlDLENBQUM7SUFDM0QsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVM7UUFDeEQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEtBQUssSUFBSTtRQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsT0FBMEI7SUFDbEUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxPQUFPLEtBQUssS0FBSyxTQUFTO1FBQ3hCLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT2xMYXllciBmcm9tICdvbC9sYXllci9MYXllcic7XG5pbXBvcnQgT2xTb3VyY2UgZnJvbSAnb2wvc291cmNlL1NvdXJjZSc7XG5cbmltcG9ydCB7IEFueUxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9hbnktbGF5ZXInO1xuaW1wb3J0IHsgUXVlcnlhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vcXVlcnkuaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogV2hldGhlciBhIGxheWVyIGlzIHF1ZXJ5YWJsZVxuICogQHBhcmFtIGxheWVyIExheWVyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBsYXllciBzIHNxdWVyeWFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxheWVySXNRdWVyeWFibGUobGF5ZXI6IEFueUxheWVyKTogYm9vbGVhbiB7XG4gIGNvbnN0IGRhdGFTb3VyY2UgPSBsYXllci5kYXRhU291cmNlIGFzIFF1ZXJ5YWJsZURhdGFTb3VyY2U7XG4gIHJldHVybiBkYXRhU291cmNlLm9wdGlvbnMucXVlcnlhYmxlID09PSB0cnVlO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgYW4gT0wgbGF5ZXIgaXMgcXVlcnlhYmxlXG4gKiBAcGFyYW0gbGF5ZXIgTGF5ZXJcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIG9sIGxheWVyIGlzIHF1ZXJ5YWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gb2xMYXllcklzUXVlcnlhYmxlKG9sTGF5ZXI6IE9sTGF5ZXI8T2xTb3VyY2U+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGxheWVyID0gb2xMYXllci5nZXQoJ19sYXllcicpO1xuICByZXR1cm4gbGF5ZXIgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbGF5ZXJJc1F1ZXJ5YWJsZShsYXllcik7XG59XG5cbi8qKlxuICogV2hldGhlciBhIGxheWVyJ3MgZmVhdHVyZSBpcyBxdWVyeWFibGVcbiAqIEBwYXJhbSBsYXllciBMYXllclxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgbGF5ZXIncyBmZWF0dXJlIGlzIHF1ZXJ5YWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbGF5ZXJGZWF0dXJlSXNRdWVyeWFibGUobGF5ZXI6IEFueUxheWVyKTogYm9vbGVhbiB7XG4gIGNvbnN0IGRhdGFTb3VyY2UgPSBsYXllci5kYXRhU291cmNlIGFzIFF1ZXJ5YWJsZURhdGFTb3VyY2U7XG4gIHJldHVybiBkYXRhU291cmNlLm9wdGlvbnMucXVlcnlMYXllckZlYXR1cmVzICE9PSB1bmRlZmluZWRcbiAgICA/IGRhdGFTb3VyY2Uub3B0aW9ucy5xdWVyeUxheWVyRmVhdHVyZXMgPT09IHRydWVcbiAgICA6IHRydWU7XG59XG5cbi8qKlxuICogV2hldGhlciBhbiBPTCBWZWN0b3IgbGF5ZXIgaXMgcXVlcnlhYmxlXG4gKiBAcGFyYW0gbGF5ZXIgTGF5ZXJcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIG9sIHZlY3RvciBsYXllciBpcyBxdWVyeWFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9sTGF5ZXJGZWF0dXJlSXNRdWVyeWFibGUob2xMYXllcjogT2xMYXllcjxPbFNvdXJjZT4pOiBib29sZWFuIHtcbiAgY29uc3QgbGF5ZXIgPSBvbExheWVyLmdldCgnX2xheWVyJyk7XG4gIHJldHVybiBsYXllciA9PT0gdW5kZWZpbmVkXG4gICAgPyBmYWxzZVxuICAgIDogbGF5ZXJJc1F1ZXJ5YWJsZShsYXllcikgJiYgbGF5ZXJGZWF0dXJlSXNRdWVyeWFibGUobGF5ZXIpO1xufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9xdWVyeS9zaGFyZWQvcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFlO0lBQzlDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFpQyxDQUFDO0lBQzNELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDO0FBQy9DLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQTBCO0lBQzNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQWU7SUFDckQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQWlDLENBQUM7SUFDM0QsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVM7UUFDeEQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEtBQUssSUFBSTtRQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsT0FBMEI7SUFDbEUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxPQUFPLEtBQUssS0FBSyxTQUFTO1FBQ3hCLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT2xMYXllciBmcm9tICdvbC9sYXllci9MYXllcic7XHJcbmltcG9ydCBPbFNvdXJjZSBmcm9tICdvbC9zb3VyY2UvU291cmNlJztcclxuXHJcbmltcG9ydCB7IEFueUxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9hbnktbGF5ZXInO1xyXG5pbXBvcnQgeyBRdWVyeWFibGVEYXRhU291cmNlIH0gZnJvbSAnLi9xdWVyeS5pbnRlcmZhY2VzJztcclxuXHJcbi8qKlxyXG4gKiBXaGV0aGVyIGEgbGF5ZXIgaXMgcXVlcnlhYmxlXHJcbiAqIEBwYXJhbSBsYXllciBMYXllclxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBsYXllciBzIHNxdWVyeWFibGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBsYXllcklzUXVlcnlhYmxlKGxheWVyOiBBbnlMYXllcik6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IGRhdGFTb3VyY2UgPSBsYXllci5kYXRhU291cmNlIGFzIFF1ZXJ5YWJsZURhdGFTb3VyY2U7XHJcbiAgcmV0dXJuIGRhdGFTb3VyY2Uub3B0aW9ucy5xdWVyeWFibGUgPT09IHRydWU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBXaGV0aGVyIGFuIE9MIGxheWVyIGlzIHF1ZXJ5YWJsZVxyXG4gKiBAcGFyYW0gbGF5ZXIgTGF5ZXJcclxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgb2wgbGF5ZXIgaXMgcXVlcnlhYmxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gb2xMYXllcklzUXVlcnlhYmxlKG9sTGF5ZXI6IE9sTGF5ZXI8T2xTb3VyY2U+KTogYm9vbGVhbiB7XHJcbiAgY29uc3QgbGF5ZXIgPSBvbExheWVyLmdldCgnX2xheWVyJyk7XHJcbiAgcmV0dXJuIGxheWVyID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGxheWVySXNRdWVyeWFibGUobGF5ZXIpO1xyXG59XHJcblxyXG4vKipcclxuICogV2hldGhlciBhIGxheWVyJ3MgZmVhdHVyZSBpcyBxdWVyeWFibGVcclxuICogQHBhcmFtIGxheWVyIExheWVyXHJcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGxheWVyJ3MgZmVhdHVyZSBpcyBxdWVyeWFibGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBsYXllckZlYXR1cmVJc1F1ZXJ5YWJsZShsYXllcjogQW55TGF5ZXIpOiBib29sZWFuIHtcclxuICBjb25zdCBkYXRhU291cmNlID0gbGF5ZXIuZGF0YVNvdXJjZSBhcyBRdWVyeWFibGVEYXRhU291cmNlO1xyXG4gIHJldHVybiBkYXRhU291cmNlLm9wdGlvbnMucXVlcnlMYXllckZlYXR1cmVzICE9PSB1bmRlZmluZWRcclxuICAgID8gZGF0YVNvdXJjZS5vcHRpb25zLnF1ZXJ5TGF5ZXJGZWF0dXJlcyA9PT0gdHJ1ZVxyXG4gICAgOiB0cnVlO1xyXG59XHJcblxyXG4vKipcclxuICogV2hldGhlciBhbiBPTCBWZWN0b3IgbGF5ZXIgaXMgcXVlcnlhYmxlXHJcbiAqIEBwYXJhbSBsYXllciBMYXllclxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBvbCB2ZWN0b3IgbGF5ZXIgaXMgcXVlcnlhYmxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gb2xMYXllckZlYXR1cmVJc1F1ZXJ5YWJsZShvbExheWVyOiBPbExheWVyPE9sU291cmNlPik6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IGxheWVyID0gb2xMYXllci5nZXQoJ19sYXllcicpO1xyXG4gIHJldHVybiBsYXllciA9PT0gdW5kZWZpbmVkXHJcbiAgICA/IGZhbHNlXHJcbiAgICA6IGxheWVySXNRdWVyeWFibGUobGF5ZXIpICYmIGxheWVyRmVhdHVyZUlzUXVlcnlhYmxlKGxheWVyKTtcclxufVxyXG4iXX0=
@@ -495,7 +495,7 @@ export class SearchBarComponent {
495
495
  }
496
496
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchBarComponent, [{
497
497
  type: Component,
498
- args: [{ selector: 'igo-search-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-bar-container\" [ngClass]=\"{ empty: empty$ | async }\">\n <mat-form-field [floatLabel]=\"floatLabel\" [appearance]=\"appearance\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input\n #input\n matInput\n autocomplete=\"off\"\n [ngClass]=\"{ hasSearchIcon: showSearchButton }\"\n [disabled]=\"disabled$ | async\"\n [placeholder]=\"\n placeholder\n ? placeholder\n : (placeholder$ | async)\n ? (placeholder$.value | translate)\n : undefined\n \"\n [value]=\"term$ | async\"\n (keyup)=\"onKeyup($event)\"\n (touchend)=\"onKeyup($event)\"\n />\n <button\n *ngIf=\"(empty$ | async) === false\"\n mat-icon-button\n matSuffix\n [color]=\"color\"\n (click)=\"onClearButtonClick()\"\n [matTooltip]=\"'igo.geo.search.clearSearch' | translate\"\n >\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n\n <mat-divider *ngIf=\"withDivider\" [vertical]=\"true\"></mat-divider>\n\n <div class=\"search-bar-buttons\">\n <button *ngIf=\"showSearchButton\" mat-icon-button [color]=\"color\">\n <mat-icon svgIcon=\"magnify\"></mat-icon>\n </button>\n\n <igo-search-selector\n *ngIf=\"searchSelector\"\n [searchTypes]=\"searchTypes\"\n [searchType]=\"searchType$ | async\"\n (searchTypeChange)=\"onSearchTypeChange($event)\"\n >\n </igo-search-selector>\n\n <igo-search-settings\n *ngIf=\"searchSettings\"\n [pointerSummaryEnabled]=\"pointerSummaryEnabled\"\n (pointerSummaryStatus)=\"pointerSummaryStatus.emit($event)\"\n [searchResultsGeometryEnabled]=\"searchResultsGeometryEnabled\"\n (searchResultsGeometryStatus)=\"searchResultsGeometryStatus.emit($event)\"\n [reverseSearchCoordsFormatEnabled]=\"reverseSearchCoordsFormatEnabled\"\n (reverseSearchCoordsFormatStatus)=\"\n reverseSearchCoordsFormatStatus.emit($event)\n \"\n (searchSourceChange)=\"onSearchSettingsChange()\"\n >\n </igo-search-settings>\n </div>\n</div>\n", styles: [":host .igo-search-bar-container{position:relative;width:100%;display:flex}:host mat-form-field{flex:1}:host mat-divider{margin:8px 0}:host ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}:host ::ng-deep .mat-mdc-text-field-wrapper{align-items:center;padding-right:0}:host ::ng-deep .mat-mdc-form-field-infix{align-self:center}:host ::ng-deep mat-form-field input{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .search-bar-buttons{position:relative;display:inline-flex}:host .search-bar-buttons>button:nth-child(2):before{content:\"\";border-right:1px solid #ddd;height:28px}:host igo-search-selector{background-color:#fff;top:0;border-radius:0}:host igo-search-settings{background-color:#fff;top:0;border-radius:0}:host ::ng-deep mat-form-field .mdc-line-ripple{display:none}\n"] }]
498
+ args: [{ selector: 'igo-search-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-bar-container\" [ngClass]=\"{ empty: empty$ | async }\">\r\n <mat-form-field [floatLabel]=\"floatLabel\" [appearance]=\"appearance\">\r\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n autocomplete=\"off\"\r\n [ngClass]=\"{ hasSearchIcon: showSearchButton }\"\r\n [disabled]=\"disabled$ | async\"\r\n [placeholder]=\"\r\n placeholder\r\n ? placeholder\r\n : (placeholder$ | async)\r\n ? (placeholder$.value | translate)\r\n : undefined\r\n \"\r\n [value]=\"term$ | async\"\r\n (keyup)=\"onKeyup($event)\"\r\n (touchend)=\"onKeyup($event)\"\r\n />\r\n <button\r\n *ngIf=\"(empty$ | async) === false\"\r\n mat-icon-button\r\n matSuffix\r\n [color]=\"color\"\r\n (click)=\"onClearButtonClick()\"\r\n [matTooltip]=\"'igo.geo.search.clearSearch' | translate\"\r\n >\r\n <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n <mat-divider *ngIf=\"withDivider\" [vertical]=\"true\"></mat-divider>\r\n\r\n <div class=\"search-bar-buttons\">\r\n <button *ngIf=\"showSearchButton\" mat-icon-button [color]=\"color\">\r\n <mat-icon svgIcon=\"magnify\"></mat-icon>\r\n </button>\r\n\r\n <igo-search-selector\r\n *ngIf=\"searchSelector\"\r\n [searchTypes]=\"searchTypes\"\r\n [searchType]=\"searchType$ | async\"\r\n (searchTypeChange)=\"onSearchTypeChange($event)\"\r\n >\r\n </igo-search-selector>\r\n\r\n <igo-search-settings\r\n *ngIf=\"searchSettings\"\r\n [pointerSummaryEnabled]=\"pointerSummaryEnabled\"\r\n (pointerSummaryStatus)=\"pointerSummaryStatus.emit($event)\"\r\n [searchResultsGeometryEnabled]=\"searchResultsGeometryEnabled\"\r\n (searchResultsGeometryStatus)=\"searchResultsGeometryStatus.emit($event)\"\r\n [reverseSearchCoordsFormatEnabled]=\"reverseSearchCoordsFormatEnabled\"\r\n (reverseSearchCoordsFormatStatus)=\"\r\n reverseSearchCoordsFormatStatus.emit($event)\r\n \"\r\n (searchSourceChange)=\"onSearchSettingsChange()\"\r\n >\r\n </igo-search-settings>\r\n </div>\r\n</div>\r\n", styles: [":host .igo-search-bar-container{position:relative;width:100%;display:flex}:host mat-form-field{flex:1}:host mat-divider{margin:8px 0}:host ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}:host ::ng-deep .mat-mdc-text-field-wrapper{align-items:center;padding-right:0}:host ::ng-deep .mat-mdc-form-field-infix{align-self:center}:host ::ng-deep mat-form-field input{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .search-bar-buttons{position:relative;display:inline-flex}:host .search-bar-buttons>button:nth-child(2):before{content:\"\";border-right:1px solid #ddd;height:28px}:host igo-search-selector{background-color:#fff;top:0;border-radius:0}:host igo-search-settings{background-color:#fff;top:0;border-radius:0}:host ::ng-deep mat-form-field .mdc-line-ripple{display:none}\n"] }]
499
499
  }], function () { return [{ type: i1.ConfigService }, { type: i2.SearchService }, { type: i3.SearchSourceService }]; }, { searchTypes: [{
500
500
  type: Input
501
501
  }], withDivider: [{
@@ -556,4 +556,4 @@ export class SearchBarComponent {
556
556
  type: ViewChild,
557
557
  args: ['input', { static: true }]
558
558
  }] }); })();
559
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLWJhci9zZWFyY2gtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtYmFyL3NlYXJjaC1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQU12QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztJQ3ZCckQsaUNBQXlCO0lBQUEsWUFBVztJQUFBLGlCQUFZOzs7SUFBdkIsZUFBVztJQUFYLGtDQUFXOzs7O0lBa0JwQyxrQ0FPQztJQUZDLG1LQUFTLGVBQUEsMkJBQW9CLENBQUEsSUFBQzs7SUFHOUIsK0JBQXFDO0lBQ3ZDLGlCQUFTOzs7SUFMUCxvQ0FBZSxrRUFBQTs7O0lBUW5CLGtDQUFpRTs7SUFBaEMsK0JBQWlCOzs7SUFHaEQsa0NBQWlF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TUFBTTtZQUtHLG9CQUFvQjtrQkFBN0IsTUFBTTtZQU0rQixLQUFLO2tCQUExQyxTQUFTO21CQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGbG9hdExhYmVsVHlwZSxcclxuICBNYXRGb3JtRmllbGRBcHBlYXJhbmNlXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBTZWFyY2hTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlYXJjaC1zb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFNFQVJDSF9UWVBFUyB9IGZyb20gJy4uL3NoYXJlZC9zZWFyY2guZW51bXMnO1xyXG5pbXBvcnQgeyBSZXNlYXJjaCwgU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL3NlYXJjaC5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZWFyY2guc2VydmljZSc7XHJcblxyXG4vKipcclxuICogU2VhcmNoYmFyIHRoYXQgdHJpZ2dlcnMgYSByZXNlYXJjaCBpbiBhbGwgc2VhcmNoIHNvdXJjZXMgZW5hYmxlZC5cclxuICogSWYgdGhlIHN0b3JlIGlucHV0IGlzIGRlZmluZWQsIHRoZSBzZWFyY2ggcmVzdWx0cyB3aWxsIGJlIGxvYWRlZFxyXG4gKiBpbnRvIHRoYXQgc3RvcmUuIEFuIGV2ZW50IGlzIGFsd2F5cyBlbWl0dGVkIHdoZW4gYSByZXNlYXJjaCBpcyBjb21wbGV0ZWQuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1zZWFyY2gtYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqXHJcbiAgICogSW52YWxpZCBrZXlzXHJcbiAgICovXHJcbiAgc3RhdGljIGludmFsaWRLZXlzID0gW1xyXG4gICAgJ0NvbnRyb2wnLFxyXG4gICAgJ1NoaWZ0JyxcclxuICAgICdBbHQnLFxyXG4gICAgJ0Fycm93RG93bicsXHJcbiAgICAnQXJyb3dVcCcsXHJcbiAgICAnQXJyb3dSaWdodCcsXHJcbiAgICAnQXJyb3dMZWZ0J1xyXG4gIF07XHJcblxyXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxyXG4gICAgJ2lnby5nZW8uc2VhcmNoLnBsYWNlaG9sZGVyJ1xyXG4gICk7XHJcblxyXG4gIHJlYWRvbmx5IGVtcHR5JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzc2VhcmNoIGJhciB0ZXJtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0ZXJtJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIHRlcm0gc3RyZWFtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdHJlYW0kOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIHNlYXJjaCB0ZXJtIHN0cmVhbVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RyZWFtJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzZWFyY2ggdHlwZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2VhcmNoVHlwZSQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgcmVzZWFyY2hlcyQkOiBTdWJzY3JpcHRpb25bXTtcclxuXHJcbiAgLyoqXHJcbiAgICogd2hldGhlciB0byBzaG93IHNlYXJjaCBidXR0b24gb3Igbm90XHJcbiAgICovXHJcblxyXG4gIHB1YmxpYyBzaG93U2VhcmNoQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2YgYXZhaWxhYmxlIHNlYXJjaCB0eXBlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNlYXJjaFR5cGVzOiBzdHJpbmdbXSA9IFNFQVJDSF9UWVBFUztcclxuXHJcbiAgQElucHV0KCkgd2l0aERpdmlkZXI6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCB0ZXJtXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgc2VhcmNoVHlwZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNldFNlYXJjaFR5cGUodmFsdWUpO1xyXG4gIH1cclxuICBnZXQgc2VhcmNoVHlwZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoVHlwZSQudmFsdWU7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IHNlYXJjaFR5cGUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICB1bmRlZmluZWRcclxuICApO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHBvaW50ZXIgc3VtbWFyeSBpcyBhY3RpdmF0ZWQgYnkgdGhlIHNlYXJjaGJhciBzZXR0aW5nXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHBvaW50ZXJTdW1tYXJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNob3cgZ2VvbWV0cnkgc2V0dGluZyBpcyBjaGFuZ2VkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHNlYXJjaFJlc3VsdHNHZW9tZXRyeVN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjb29yZHMgZm9ybWF0IHNldHRpbmcgaXMgY2hhbmdlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvKipcclxuICAgKiBTZWFyY2ggdGVybVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHRlcm0odmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXRUZXJtKHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IHRlcm0oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm0kLnZhbHVlO1xyXG4gIH1cclxuICByZWFkb25seSB0ZXJtJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGlzIGNvbXBvbmVudCBpcyBkaXNhYmxlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQkLnZhbHVlO1xyXG4gIH1cclxuICByZWFkb25seSBkaXNhYmxlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICBASW5wdXQoKSBwb2ludGVyU3VtbWFyeUVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gcmV2ZXJzZSBjb29yZGluYXRlcyBzdGF0dXMgY2hhbmdlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBnZXQgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQ7XHJcbiAgfVxyXG4gIHNldCByZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0VGVybSh0aGlzLnRlcm0sIHRydWUpO1xyXG4gIH1cclxuICBwcml2YXRlIF9yZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIGEgZmxvYXQgbGFiZWwgc2hvdWxkIGJlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlID0gJ2F1dG8nO1xyXG5cclxuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlID0gJ2ZpbGwnO1xyXG5cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBJY29ucyBjb2xvciAoc2VhcmNoIGFuZCBjbGVhcilcclxuICAgKi9cclxuICBASW5wdXQoKSBjb2xvciA9ICdwcmltYXJ5JztcclxuXHJcbiAgQElucHV0KCkgdGVybVNwbGl0dGVyOiBzdHJpbmcgPSAnfCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlYm91bmNlIHRpbWUgYmV0d2VlbiBlYWNoIGtleXN0cm9rZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlID0gMjAwO1xyXG5cclxuICAvKipcclxuICAgKiBNaW5pbXVtIHRlcm0gbGVuZ3RoIHJlcXVpcmVkIHRvIHRyaWdnZXIgYSByZXNlYXJjaFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1pbkxlbmd0aCA9IDI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCBTZWxlY3RvclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNlYXJjaFNlbGVjdG9yID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCBTZXR0aW5nc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNlYXJjaFNldHRpbmdzID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcmNlIGNvb3JkaW5hdGVzIGluIG5vcnRoIGFtZXJpY2FcclxuICAgKi9cclxuICBASW5wdXQoKSBmb3JjZU5BID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCByZXN1bHRzIHN0b3JlXHJcbiAgICovXHJcbiAgQElucHV0KCkgc3RvcmU6IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD47XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VhcmNoIHRlcm0gY2hhbmdlc1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hUZXJtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJlc2VhcmNoIGlzIGNvbXBsZXRlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHJlc2VhcmNoOiBSZXNlYXJjaDtcclxuICAgIHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdO1xyXG4gIH0+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VhcmNoIHR5cGUgY2hhbmdlc1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hUeXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VhcmNoIHR5cGUgY2hhbmdlc1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjbGVhckZlYXR1cmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VhcmNoIHNldHRpbmdzIGNoYW5nZXNcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc2VhcmNoU2V0dGluZ3NDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IGVsZW1lbnRcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBFbGVtZW50UmVmO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBzZWFyY2ggYmFyIGlzIGVtcHR5XHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybS5sZW5ndGggPT09IDA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcclxuICAgIHByaXZhdGUgc2VhcmNoU291cmNlU2VydmljZTogU2VhcmNoU291cmNlU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlIHRvIHRoZSBzZWFyY2ggdGVybSBzdHJlYW0gYW5kIHRyaWdnZXIgcmVzZWFyY2hlc1xyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXJtJCQgPSB0aGlzLnRlcm0kLnN1YnNjcmliZSgodGVybTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuZW1wdHkkLm5leHQodGVybSA9PT0gdW5kZWZpbmVkIHx8IHRlcm0ubGVuZ3RoID09PSAwKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc3RyZWFtJCQgPSB0aGlzLnN0cmVhbSRcclxuICAgICAgLnBpcGUoZGVib3VuY2UoKCkgPT4gdGltZXIodGhpcy5kZWJvdW5jZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0ZXJtOiBzdHJpbmcpID0+IHRoaXMub25TZXRUZXJtKHRlcm0pKTtcclxuXHJcbiAgICB0aGlzLmhhbmRsZVBsYWNlaG9sZGVyKCk7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hUeXBlJCQgPSB0aGlzLnNlYXJjaFR5cGUkXHJcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFR5cGU6IHN0cmluZykgPT4gdGhpcy5vblNldFNlYXJjaFR5cGUoc2VhcmNoVHlwZSkpO1xyXG5cclxuICAgIGNvbnN0IGNvbmZpZ1ZhbHVlID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZyhcclxuICAgICAgJ3NlYXJjaEJhci5zaG93U2VhcmNoQnV0dG9uJ1xyXG4gICAgKTtcclxuICAgIHRoaXMuc2hvd1NlYXJjaEJ1dHRvbiA9IGNvbmZpZ1ZhbHVlICE9PSB1bmRlZmluZWQgPyBjb25maWdWYWx1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5zdWJzY3JpYmUgdG8gdGhlIHNlYXJjaCB0ZXJtIHN0cmVhbVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy50ZXJtJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc3RyZWFtJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc2VhcmNoVHlwZSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGEgdXNlciB0eXBlcywgdmFsaWRhdGVzIHRoZSBrZXkgYW5kIHNlbmQgaXQgaW50byB0aGVcclxuICAgKiBzdHJlYW0gaWYgaXQncyB2YWxpZFxyXG4gICAqIEBwYXJhbSBldmVudCBLZXlib2FyZCBldmVudFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG9uS2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcclxuICAgIGlmICghdGhpcy5rZXlJc1ZhbGlkKGtleSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGVybSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICB0aGlzLnNldFRlcm0odGVybSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciB0aGUgc3RyZWFtIGFuZCB0aGUgaW5wdXRcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBvbkNsZWFyQnV0dG9uQ2xpY2soKSB7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB0aGlzLmNsZWFyRmVhdHVyZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgc2VhcmNoIHR5cGVcclxuICAgKiBAcGFyYW0gc2VhcmNoVHlwZSBFbmFibGVkIHNlYXJjaCB0eXBlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgb25TZWFyY2hUeXBlQ2hhbmdlKHNlYXJjaFR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXRTZWFyY2hUeXBlKHNlYXJjaFR5cGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBwbGFjZWhvbGRlciB3aXRoIHRoZSBlbmFibGVkIHNlYXJjaCB0eXBlLiBUaGUgcGxhY2Vob2xkZXJcclxuICAgKiBmb3IgYWxsIGF2YWlsYWJsZXMgc2VhcmNoIHR5cGVycyBuZWVkcyB0byBiZSBkZWZpbmVkIGluIHRoZSBsb2NhbGVcclxuICAgKiBmaWxlcyBvciBhbiBlcnJvciB3aWxsIGJlIHRocm93bi5cclxuICAgKiBAcGFyYW0gc2VhcmNoVHlwZSBFbmFibGVkIHNlYXJjaCB0eXBlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgc2V0U2VhcmNoVHlwZShzZWFyY2hUeXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VhcmNoVHlwZSQubmV4dChzZWFyY2hUeXBlKTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoU2V0dGluZ3NDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmRvU2VhcmNoKHRoaXMudGVybSk7XHJcbiAgICB0aGlzLnNlYXJjaFNldHRpbmdzQ2hhbmdlLmVtaXQoKTtcclxuICAgIHRoaXMuaGFuZGxlUGxhY2Vob2xkZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmQgdGhlIHRlcm0gaW50byB0aGUgc3RyZWFtIG9ubHkgaWYgdGhpcyBjb21wb25lbnQgaXMgbm90IGRpc2FibGVkXHJcbiAgICogQHBhcmFtIHRlcm0gU2VhcmNoIHRlcm1cclxuICAgKi9cclxuICBzZXRUZXJtKHRlcm06IHN0cmluZywgcmV2ZXJzZUNvb3JkRXZlbnQ/OiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGVybSA9IHRlcm0gfHwgJyc7XHJcblxyXG4gICAgaWYgKHRlcm0gIT09IHRoaXMudGVybSAmJiAhcmV2ZXJzZUNvb3JkRXZlbnQpIHtcclxuICAgICAgdGhpcy50ZXJtJC5uZXh0KHRlcm0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNsdWcgPSB0ZXJtLnJlcGxhY2UoLygjW15cXHNdKikvZywgJycpLnRyaW0oKTtcclxuICAgIGlmIChzbHVnLmxlbmd0aCA+PSB0aGlzLm1pbkxlbmd0aCB8fCBzbHVnLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnN0cmVhbSQubmV4dCh0ZXJtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBzdHJlYW0gYW5kIHRoZSBpbnB1dFxyXG4gICAqL1xyXG4gIHByaXZhdGUgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnRlcm0kLm5leHQoJycpO1xyXG4gICAgdGhpcy5zdHJlYW0kLm5leHQoJycpO1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0ZSBpZiBhIGdpdmVuIGtleSBzdHJva2UgaXMgYSB2YWxpZCBpbnB1dFxyXG4gICAqL1xyXG4gIHByaXZhdGUga2V5SXNWYWxpZChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIFNlYXJjaEJhckNvbXBvbmVudC5pbnZhbGlkS2V5cy5pbmRleE9mKGtleSkgPT09IC0xO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiB0aGUgc2VhcmNoIHRlcm0gY2hhbmdlcywgZW1pdCBhbiBldmVudCBhbmQgdHJpZ2dlciBhXHJcbiAgICogcmVzZWFyY2ggaW4gZXZlcnkgZW5hYmxlZCBzZWFyY2ggc291cmNlcy5cclxuICAgKiBAcGFyYW0gdGVybSBTZWFyY2ggdGVybVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25TZXRUZXJtKHRlcm06IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5zZWFyY2hUZXJtQ2hhbmdlLmVtaXQodGVybSk7XHJcbiAgICB0aGlzLmRvU2VhcmNoKHRlcm0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVQbGFjZWhvbGRlcigpIHtcclxuICAgIGNvbnN0IHNlYXJjaFR5cGVzID0gW1xyXG4gICAgICAuLi5uZXcgU2V0KFxyXG4gICAgICAgIHRoaXMuc2VhcmNoU291cmNlU2VydmljZVxyXG4gICAgICAgICAgLmdldEVuYWJsZWRTb3VyY2VzKClcclxuICAgICAgICAgIC5maWx0ZXIoKHNzKSA9PiAhWydtYXAnLCAnY29vcmRpbmF0ZXNyZXZlcnNlJ10uaW5jbHVkZXMoc3MuZ2V0SWQoKSkpXHJcbiAgICAgICAgICAubWFwKChzcykgPT4gc3MuZ2V0VHlwZSgpKVxyXG4gICAgICApXHJcbiAgICBdO1xyXG5cclxuICAgIGxldCBwbGFjZWhvbGRlciA9IGBpZ28uZ2VvLnNlYXJjaC5wbGFjZWhvbGRlcmA7XHJcbiAgICBpZiAoc2VhcmNoVHlwZXMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gYGlnby5nZW8uc2VhcmNoLiR7c2VhcmNoVHlwZXNbMF0udG9Mb3dlckNhc2UoKX0ucGxhY2Vob2xkZXJgO1xyXG4gICAgfSBlbHNlIGlmIChzZWFyY2hUeXBlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSBgaWdvLmdlby5zZWFyY2guZW1wdHlUeXBlLnBsYWNlaG9sZGVyYDtcclxuICAgIH1cclxuICAgIHRoaXMucGxhY2Vob2xkZXIkLm5leHQocGxhY2Vob2xkZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblNldFNlYXJjaFR5cGUoc2VhcmNoVHlwZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoc2VhcmNoVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHNlYXJjaFR5cGUgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VhcmNoVHlwZUNoYW5nZS5lbWl0KHNlYXJjaFR5cGUpO1xyXG5cclxuICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gYGlnby5nZW8uc2VhcmNoLiR7c2VhcmNoVHlwZS50b0xvd2VyQ2FzZSgpfS5wbGFjZWhvbGRlcmA7XHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyJC5uZXh0KHBsYWNlaG9sZGVyKTtcclxuXHJcbiAgICB0aGlzLnNldFRlcm0odGhpcy50ZXJtKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGUgdGhlIHNlYXJjaFxyXG4gICAqIEBwYXJhbSB0ZXJtIFNlYXJjaCB0ZXJtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkb1NlYXJjaChyYXdUZXJtOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aGlzLnJlc2VhcmNoZXMkJCkge1xyXG4gICAgICB0aGlzLnJlc2VhcmNoZXMkJC5tYXAoKHJlc2VhcmNoKSA9PiByZXNlYXJjaC51bnN1YnNjcmliZSgpKTtcclxuICAgICAgdGhpcy5yZXNlYXJjaGVzJCQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHRlcm1zO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnRlcm1TcGxpdHRlciAmJlxyXG4gICAgICByYXdUZXJtLm1hdGNoKG5ldyBSZWdFeHAodGhpcy50ZXJtU3BsaXR0ZXIsICdnJykpXHJcbiAgICApIHtcclxuICAgICAgdGVybXMgPSByYXdUZXJtXHJcbiAgICAgICAgLnNwbGl0KHRoaXMudGVybVNwbGl0dGVyKVxyXG4gICAgICAgIC5maWx0ZXIoKHQpID0+IHQubGVuZ3RoID49IHRoaXMubWluTGVuZ3RoKTtcclxuICAgICAgaWYgKHRoaXMuc3RvcmUpIHtcclxuICAgICAgICB0aGlzLnN0b3JlLmNsZWFyKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRlcm1zID0gW3Jhd1Rlcm1dO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXNlYXJjaGVzOiBSZXNlYXJjaFtdID0gW107XHJcbiAgICB0ZXJtcy5tYXAoKHRlcm06IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBzbHVnID0gdGVybSA/IHRlcm0ucmVwbGFjZSgvKCNbXlxcc10qKS9nLCAnJykudHJpbSgpIDogJyc7XHJcbiAgICAgIGlmIChzbHVnID09PSAnJykge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuc3RvcmUuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXNlYXJjaGVzID0gcmVzZWFyY2hlcy5jb25jYXQoXHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaCh0ZXJtLCB7XHJcbiAgICAgICAgICBmb3JjZU5BOiB0aGlzLmZvcmNlTkFcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlc2VhcmNoZXMkJCA9IHJlc2VhcmNoZXMubWFwKChyZXNlYXJjaCkgPT4ge1xyXG4gICAgICByZXR1cm4gcmVzZWFyY2gucmVxdWVzdC5zdWJzY3JpYmUoKHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblJlc2VhcmNoQ29tcGxldGVkKHJlc2VhcmNoLCByZXN1bHRzKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gYSByZXNlYXJjaCAgaXMgY29tcGxldGVkLCBlbWl0IGFuIGV2ZW50IGFuZCB1cGRhdGVcclxuICAgKiB0aGUgc3RvcmUncyBpdGVtcy5cclxuICAgKiBAcGFyYW0gcmVzZWFyY2ggUmVzZWFyY2hcclxuICAgKiBAcGFyYW0gcmVzdWx0cyBSZXNlYXJjaCByZXN1bHRzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblJlc2VhcmNoQ29tcGxldGVkKHJlc2VhcmNoOiBSZXNlYXJjaCwgcmVzdWx0czogU2VhcmNoUmVzdWx0W10pIHtcclxuICAgIHRoaXMuc2VhcmNoLmVtaXQoeyByZXNlYXJjaCwgcmVzdWx0cyB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5zdG9yZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IG5ld1Jlc3VsdHMgPSB0aGlzLnN0b3JlXHJcbiAgICAgICAgLmFsbCgpXHJcbiAgICAgICAgLmZpbHRlcigocmVzdWx0KSA9PiByZXN1bHQuc291cmNlICE9PSByZXNlYXJjaC5zb3VyY2UpXHJcbiAgICAgICAgLmNvbmNhdChyZXN1bHRzKTtcclxuICAgICAgdGhpcy5zdG9yZS51cGRhdGVNYW55KG5ld1Jlc3VsdHMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWdvLXNlYXJjaC1iYXItY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyBlbXB0eTogZW1wdHkkIHwgYXN5bmMgfVwiPlxuICA8bWF0LWZvcm0tZmllbGQgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIj5cbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgaGFzU2VhcmNoSWNvbjogc2hvd1NlYXJjaEJ1dHRvbiB9XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgIHBsYWNlaG9sZGVyXG4gICAgICAgICAgPyBwbGFjZWhvbGRlclxuICAgICAgICAgIDogKHBsYWNlaG9sZGVyJCB8IGFzeW5jKVxuICAgICAgICAgID8gKHBsYWNlaG9sZGVyJC52YWx1ZSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgXCJcbiAgICAgIFt2YWx1ZV09XCJ0ZXJtJCB8IGFzeW5jXCJcbiAgICAgIChrZXl1cCk9XCJvbktleXVwKCRldmVudClcIlxuICAgICAgKHRvdWNoZW5kKT1cIm9uS2V5dXAoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cIihlbXB0eSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgbWF0U3VmZml4XG4gICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJCdXR0b25DbGljaygpXCJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLnNlYXJjaC5jbGVhclNlYXJjaCcgfCB0cmFuc2xhdGVcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY2xvc2VcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZGl2aWRlciAqbmdJZj1cIndpdGhEaXZpZGVyXCIgW3ZlcnRpY2FsXT1cInRydWVcIj48L21hdC1kaXZpZGVyPlxuXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmFyLWJ1dHRvbnNcIj5cbiAgICA8YnV0dG9uICpuZ0lmPVwic2hvd1NlYXJjaEJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBbY29sb3JdPVwiY29sb3JcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibWFnbmlmeVwiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8aWdvLXNlYXJjaC1zZWxlY3RvclxuICAgICAgKm5nSWY9XCJzZWFyY2hTZWxlY3RvclwiXG4gICAgICBbc2VhcmNoVHlwZXNdPVwic2VhcmNoVHlwZXNcIlxuICAgICAgW3NlYXJjaFR5cGVdPVwic2VhcmNoVHlwZSQgfCBhc3luY1wiXG4gICAgICAoc2VhcmNoVHlwZUNoYW5nZSk9XCJvblNlYXJjaFR5cGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvaWdvLXNlYXJjaC1zZWxlY3Rvcj5cblxuICAgIDxpZ28tc2VhcmNoLXNldHRpbmdzXG4gICAgICAqbmdJZj1cInNlYXJjaFNldHRpbmdzXCJcbiAgICAgIFtwb2ludGVyU3VtbWFyeUVuYWJsZWRdPVwicG9pbnRlclN1bW1hcnlFbmFibGVkXCJcbiAgICAgIChwb2ludGVyU3VtbWFyeVN0YXR1cyk9XCJwb2ludGVyU3VtbWFyeVN0YXR1cy5lbWl0KCRldmVudClcIlxuICAgICAgW3NlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWRdPVwic2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZFwiXG4gICAgICAoc2VhcmNoUmVzdWx0c0dlb21ldHJ5U3RhdHVzKT1cInNlYXJjaFJlc3VsdHNHZW9tZXRyeVN0YXR1cy5lbWl0KCRldmVudClcIlxuICAgICAgW3JldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkXT1cInJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkXCJcbiAgICAgIChyZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0U3RhdHVzKT1cIlxuICAgICAgICByZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0U3RhdHVzLmVtaXQoJGV2ZW50KVxuICAgICAgXCJcbiAgICAgIChzZWFyY2hTb3VyY2VDaGFuZ2UpPVwib25TZWFyY2hTZXR0aW5nc0NoYW5nZSgpXCJcbiAgICA+XG4gICAgPC9pZ28tc2VhcmNoLXNldHRpbmdzPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
559
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLWJhci9zZWFyY2gtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtYmFyL3NlYXJjaC1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQU12QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztJQ3ZCckQsaUNBQXlCO0lBQUEsWUFBVztJQUFBLGlCQUFZOzs7SUFBdkIsZUFBVztJQUFYLGtDQUFXOzs7O0lBa0JwQyxrQ0FPQztJQUZDLG1LQUFTLGVBQUEsMkJBQW9CLENBQUEsSUFBQzs7SUFHOUIsK0JBQXFDO0lBQ3ZDLGlCQUFTOzs7SUFMUCxvQ0FBZSxrRUFBQTs7O0lBUW5CLGtDQUFpRTs7SUFBaEMsK0JBQWlCOzs7SUFHaEQsa0NBQWlF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QUFNO1lBS0csb0JBQW9CO2tCQUE3QixNQUFNO1lBTStCLEtBQUs7a0JBQTFDLFNBQVM7bUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEZsb2F0TGFiZWxUeXBlLFxyXG4gIE1hdEZvcm1GaWVsZEFwcGVhcmFuY2VcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvc2VhcmNoLXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU0VBUkNIX1RZUEVTIH0gZnJvbSAnLi4vc2hhcmVkL3NlYXJjaC5lbnVtcyc7XHJcbmltcG9ydCB7IFJlc2VhcmNoLCBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zaGFyZWQvc2VhcmNoLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlYXJjaC5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBTZWFyY2hiYXIgdGhhdCB0cmlnZ2VycyBhIHJlc2VhcmNoIGluIGFsbCBzZWFyY2ggc291cmNlcyBlbmFibGVkLlxyXG4gKiBJZiB0aGUgc3RvcmUgaW5wdXQgaXMgZGVmaW5lZCwgdGhlIHNlYXJjaCByZXN1bHRzIHdpbGwgYmUgbG9hZGVkXHJcbiAqIGludG8gdGhhdCBzdG9yZS4gQW4gZXZlbnQgaXMgYWx3YXlzIGVtaXR0ZWQgd2hlbiBhIHJlc2VhcmNoIGlzIGNvbXBsZXRlZC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXNlYXJjaC1iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAvKipcclxuICAgKiBJbnZhbGlkIGtleXNcclxuICAgKi9cclxuICBzdGF0aWMgaW52YWxpZEtleXMgPSBbXHJcbiAgICAnQ29udHJvbCcsXHJcbiAgICAnU2hpZnQnLFxyXG4gICAgJ0FsdCcsXHJcbiAgICAnQXJyb3dEb3duJyxcclxuICAgICdBcnJvd1VwJyxcclxuICAgICdBcnJvd1JpZ2h0JyxcclxuICAgICdBcnJvd0xlZnQnXHJcbiAgXTtcclxuXHJcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXIkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICAnaWdvLmdlby5zZWFyY2gucGxhY2Vob2xkZXInXHJcbiAgKTtcclxuXHJcbiAgcmVhZG9ubHkgZW1wdHkkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIHNzZWFyY2ggYmFyIHRlcm1cclxuICAgKi9cclxuICBwcml2YXRlIHRlcm0kJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBTZWFyY2ggdGVybSBzdHJlYW1cclxuICAgKi9cclxuICBwcml2YXRlIHN0cmVhbSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgc2VhcmNoIHRlcm0gc3RyZWFtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdHJlYW0kJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIHNlYXJjaCB0eXBlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZWFyY2hUeXBlJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSByZXNlYXJjaGVzJCQ6IFN1YnNjcmlwdGlvbltdO1xyXG5cclxuICAvKipcclxuICAgKiB3aGV0aGVyIHRvIHNob3cgc2VhcmNoIGJ1dHRvbiBvciBub3RcclxuICAgKi9cclxuXHJcbiAgcHVibGljIHNob3dTZWFyY2hCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBhdmFpbGFibGUgc2VhcmNoIHR5cGVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2VhcmNoVHlwZXM6IHN0cmluZ1tdID0gU0VBUkNIX1RZUEVTO1xyXG5cclxuICBASW5wdXQoKSB3aXRoRGl2aWRlcjogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIHRlcm1cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWFyY2hUeXBlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2V0U2VhcmNoVHlwZSh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBzZWFyY2hUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hUeXBlJC52YWx1ZTtcclxuICB9XHJcbiAgcmVhZG9ubHkgc2VhcmNoVHlwZSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgIHVuZGVmaW5lZFxyXG4gICk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcG9pbnRlciBzdW1tYXJ5IGlzIGFjdGl2YXRlZCBieSB0aGUgc2VhcmNoYmFyIHNldHRpbmdcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcG9pbnRlclN1bW1hcnlTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2hvdyBnZW9tZXRyeSBzZXR0aW5nIGlzIGNoYW5nZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc2VhcmNoUmVzdWx0c0dlb21ldHJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNvb3JkcyBmb3JtYXQgc2V0dGluZyBpcyBjaGFuZ2VkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCB0ZXJtXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgdGVybSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNldFRlcm0odmFsdWUpO1xyXG4gIH1cclxuICBnZXQgdGVybSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybSQudmFsdWU7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IHRlcm0kOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoaXMgY29tcG9uZW50IGlzIGRpc2FibGVkXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCQudmFsdWU7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IGRpc2FibGVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcblxyXG4gIEBJbnB1dCgpIHBvaW50ZXJTdW1tYXJ5RW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiByZXZlcnNlIGNvb3JkaW5hdGVzIHN0YXR1cyBjaGFuZ2VcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZDtcclxuICB9XHJcbiAgc2V0IHJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRUZXJtKHRoaXMudGVybSwgdHJ1ZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3JldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgYSBmbG9hdCBsYWJlbCBzaG91bGQgYmUgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgZmxvYXRMYWJlbDogRmxvYXRMYWJlbFR5cGUgPSAnYXV0byc7XHJcblxyXG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgPSAnZmlsbCc7XHJcblxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEljb25zIGNvbG9yIChzZWFyY2ggYW5kIGNsZWFyKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbG9yID0gJ3ByaW1hcnknO1xyXG5cclxuICBASW5wdXQoKSB0ZXJtU3BsaXR0ZXI6IHN0cmluZyA9ICd8JztcclxuXHJcbiAgLyoqXHJcbiAgICogRGVib3VuY2UgdGltZSBiZXR3ZWVuIGVhY2gga2V5c3Ryb2tlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGVib3VuY2UgPSAyMDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1pbmltdW0gdGVybSBsZW5ndGggcmVxdWlyZWQgdG8gdHJpZ2dlciBhIHJlc2VhcmNoXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWluTGVuZ3RoID0gMjtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIFNlbGVjdG9yXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2VhcmNoU2VsZWN0b3IgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIFNldHRpbmdzXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2VhcmNoU2V0dGluZ3MgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRm9yY2UgY29vcmRpbmF0ZXMgaW4gbm9ydGggYW1lcmljYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvcmNlTkEgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIHJlc3VsdHMgc3RvcmVcclxuICAgKi9cclxuICBASW5wdXQoKSBzdG9yZTogRW50aXR5U3RvcmU8U2VhcmNoUmVzdWx0PjtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWFyY2ggdGVybSBjaGFuZ2VzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHNlYXJjaFRlcm1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcmVzZWFyY2ggaXMgY29tcGxldGVkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgcmVzZWFyY2g6IFJlc2VhcmNoO1xyXG4gICAgcmVzdWx0czogU2VhcmNoUmVzdWx0W107XHJcbiAgfT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWFyY2ggdHlwZSBjaGFuZ2VzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHNlYXJjaFR5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWFyY2ggdHlwZSBjaGFuZ2VzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGNsZWFyRmVhdHVyZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWFyY2ggc2V0dGluZ3MgY2hhbmdlc1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hTZXR0aW5nc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgZWxlbWVudFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlIHNlYXJjaCBiYXIgaXMgZW1wdHlcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtLmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hTb3VyY2VTZXJ2aWNlOiBTZWFyY2hTb3VyY2VTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpYmUgdG8gdGhlIHNlYXJjaCB0ZXJtIHN0cmVhbSBhbmQgdHJpZ2dlciByZXNlYXJjaGVzXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlcm0kJCA9IHRoaXMudGVybSQuc3Vic2NyaWJlKCh0ZXJtOiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy5lbXB0eSQubmV4dCh0ZXJtID09PSB1bmRlZmluZWQgfHwgdGVybS5sZW5ndGggPT09IDApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zdHJlYW0kJCA9IHRoaXMuc3RyZWFtJFxyXG4gICAgICAucGlwZShkZWJvdW5jZSgoKSA9PiB0aW1lcih0aGlzLmRlYm91bmNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHRlcm06IHN0cmluZykgPT4gdGhpcy5vblNldFRlcm0odGVybSkpO1xyXG5cclxuICAgIHRoaXMuaGFuZGxlUGxhY2Vob2xkZXIoKTtcclxuXHJcbiAgICB0aGlzLnNlYXJjaFR5cGUkJCA9IHRoaXMuc2VhcmNoVHlwZSRcclxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgLnN1YnNjcmliZSgoc2VhcmNoVHlwZTogc3RyaW5nKSA9PiB0aGlzLm9uU2V0U2VhcmNoVHlwZShzZWFyY2hUeXBlKSk7XHJcblxyXG4gICAgY29uc3QgY29uZmlnVmFsdWUgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKFxyXG4gICAgICAnc2VhcmNoQmFyLnNob3dTZWFyY2hCdXR0b24nXHJcbiAgICApO1xyXG4gICAgdGhpcy5zaG93U2VhcmNoQnV0dG9uID0gY29uZmlnVmFsdWUgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1ZhbHVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnN1YnNjcmliZSB0byB0aGUgc2VhcmNoIHRlcm0gc3RyZWFtXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnRlcm0kJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zdHJlYW0kJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zZWFyY2hUeXBlJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gYSB1c2VyIHR5cGVzLCB2YWxpZGF0ZXMgdGhlIGtleSBhbmQgc2VuZCBpdCBpbnRvIHRoZVxyXG4gICAqIHN0cmVhbSBpZiBpdCdzIHZhbGlkXHJcbiAgICogQHBhcmFtIGV2ZW50IEtleWJvYXJkIGV2ZW50XHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgb25LZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xyXG4gICAgaWYgKCF0aGlzLmtleUlzVmFsaWQoa2V5KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB0ZXJtID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgIHRoaXMuc2V0VGVybSh0ZXJtKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBzdHJlYW0gYW5kIHRoZSBpbnB1dFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG9uQ2xlYXJCdXR0b25DbGljaygpIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIHRoaXMuY2xlYXJGZWF0dXJlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBzZWFyY2ggdHlwZVxyXG4gICAqIEBwYXJhbSBzZWFyY2hUeXBlIEVuYWJsZWQgc2VhcmNoIHR5cGVcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBvblNlYXJjaFR5cGVDaGFuZ2Uoc2VhcmNoVHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNldFNlYXJjaFR5cGUoc2VhcmNoVHlwZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIHBsYWNlaG9sZGVyIHdpdGggdGhlIGVuYWJsZWQgc2VhcmNoIHR5cGUuIFRoZSBwbGFjZWhvbGRlclxyXG4gICAqIGZvciBhbGwgYXZhaWxhYmxlcyBzZWFyY2ggdHlwZXJzIG5lZWRzIHRvIGJlIGRlZmluZWQgaW4gdGhlIGxvY2FsZVxyXG4gICAqIGZpbGVzIG9yIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLlxyXG4gICAqIEBwYXJhbSBzZWFyY2hUeXBlIEVuYWJsZWQgc2VhcmNoIHR5cGVcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBzZXRTZWFyY2hUeXBlKHNlYXJjaFR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWFyY2hUeXBlJC5uZXh0KHNlYXJjaFR5cGUpO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hTZXR0aW5nc0NoYW5nZSgpIHtcclxuICAgIHRoaXMuZG9TZWFyY2godGhpcy50ZXJtKTtcclxuICAgIHRoaXMuc2VhcmNoU2V0dGluZ3NDaGFuZ2UuZW1pdCgpO1xyXG4gICAgdGhpcy5oYW5kbGVQbGFjZWhvbGRlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZCB0aGUgdGVybSBpbnRvIHRoZSBzdHJlYW0gb25seSBpZiB0aGlzIGNvbXBvbmVudCBpcyBub3QgZGlzYWJsZWRcclxuICAgKiBAcGFyYW0gdGVybSBTZWFyY2ggdGVybVxyXG4gICAqL1xyXG4gIHNldFRlcm0odGVybTogc3RyaW5nLCByZXZlcnNlQ29vcmRFdmVudD86IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0ZXJtID0gdGVybSB8fCAnJztcclxuXHJcbiAgICBpZiAodGVybSAhPT0gdGhpcy50ZXJtICYmICFyZXZlcnNlQ29vcmRFdmVudCkge1xyXG4gICAgICB0aGlzLnRlcm0kLm5leHQodGVybSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2x1ZyA9IHRlcm0ucmVwbGFjZSgvKCNbXlxcc10qKS9nLCAnJykudHJpbSgpO1xyXG4gICAgaWYgKHNsdWcubGVuZ3RoID49IHRoaXMubWluTGVuZ3RoIHx8IHNsdWcubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuc3RyZWFtJC5uZXh0KHRlcm0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdGhlIHN0cmVhbSBhbmQgdGhlIGlucHV0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjbGVhcigpIHtcclxuICAgIHRoaXMudGVybSQubmV4dCgnJyk7XHJcbiAgICB0aGlzLnN0cmVhbSQubmV4dCgnJyk7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlIGlmIGEgZ2l2ZW4ga2V5IHN0cm9rZSBpcyBhIHZhbGlkIGlucHV0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBrZXlJc1ZhbGlkKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gU2VhcmNoQmFyQ29tcG9uZW50LmludmFsaWRLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHRoZSBzZWFyY2ggdGVybSBjaGFuZ2VzLCBlbWl0IGFuIGV2ZW50IGFuZCB0cmlnZ2VyIGFcclxuICAgKiByZXNlYXJjaCBpbiBldmVyeSBlbmFibGVkIHNlYXJjaCBzb3VyY2VzLlxyXG4gICAqIEBwYXJhbSB0ZXJtIFNlYXJjaCB0ZXJtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblNldFRlcm0odGVybTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLnNlYXJjaFRlcm1DaGFuZ2UuZW1pdCh0ZXJtKTtcclxuICAgIHRoaXMuZG9TZWFyY2godGVybSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVBsYWNlaG9sZGVyKCkge1xyXG4gICAgY29uc3Qgc2VhcmNoVHlwZXMgPSBbXHJcbiAgICAgIC4uLm5ldyBTZXQoXHJcbiAgICAgICAgdGhpcy5zZWFyY2hTb3VyY2VTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0RW5hYmxlZFNvdXJjZXMoKVxyXG4gICAgICAgICAgLmZpbHRlcigoc3MpID0+ICFbJ21hcCcsICdjb29yZGluYXRlc3JldmVyc2UnXS5pbmNsdWRlcyhzcy5nZXRJZCgpKSlcclxuICAgICAgICAgIC5tYXAoKHNzKSA9PiBzcy5nZXRUeXBlKCkpXHJcbiAgICAgIClcclxuICAgIF07XHJcblxyXG4gICAgbGV0IHBsYWNlaG9sZGVyID0gYGlnby5nZW8uc2VhcmNoLnBsYWNlaG9sZGVyYDtcclxuICAgIGlmIChzZWFyY2hUeXBlcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSBgaWdvLmdlby5zZWFyY2guJHtzZWFyY2hUeXBlc1swXS50b0xvd2VyQ2FzZSgpfS5wbGFjZWhvbGRlcmA7XHJcbiAgICB9IGVsc2UgaWYgKHNlYXJjaFR5cGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IGBpZ28uZ2VvLnNlYXJjaC5lbXB0eVR5cGUucGxhY2Vob2xkZXJgO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wbGFjZWhvbGRlciQubmV4dChwbGFjZWhvbGRlcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uU2V0U2VhcmNoVHlwZShzZWFyY2hUeXBlOiBzdHJpbmcpIHtcclxuICAgIGlmIChzZWFyY2hUeXBlID09PSB1bmRlZmluZWQgfHwgc2VhcmNoVHlwZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWFyY2hUeXBlQ2hhbmdlLmVtaXQoc2VhcmNoVHlwZSk7XHJcblxyXG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPSBgaWdvLmdlby5zZWFyY2guJHtzZWFyY2hUeXBlLnRvTG93ZXJDYXNlKCl9LnBsYWNlaG9sZGVyYDtcclxuICAgIHRoaXMucGxhY2Vob2xkZXIkLm5leHQocGxhY2Vob2xkZXIpO1xyXG5cclxuICAgIHRoaXMuc2V0VGVybSh0aGlzLnRlcm0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZSB0aGUgc2VhcmNoXHJcbiAgICogQHBhcmFtIHRlcm0gU2VhcmNoIHRlcm1cclxuICAgKi9cclxuICBwcml2YXRlIGRvU2VhcmNoKHJhd1Rlcm06IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHRoaXMucmVzZWFyY2hlcyQkKSB7XHJcbiAgICAgIHRoaXMucmVzZWFyY2hlcyQkLm1hcCgocmVzZWFyY2gpID0+IHJlc2VhcmNoLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICB0aGlzLnJlc2VhcmNoZXMkJCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgdGVybXM7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMudGVybVNwbGl0dGVyICYmXHJcbiAgICAgIHJhd1Rlcm0ubWF0Y2gobmV3IFJlZ0V4cCh0aGlzLnRlcm1TcGxpdHRlciwgJ2cnKSlcclxuICAgICkge1xyXG4gICAgICB0ZXJtcyA9IHJhd1Rlcm1cclxuICAgICAgICAuc3BsaXQodGhpcy50ZXJtU3BsaXR0ZXIpXHJcbiAgICAgICAgLmZpbHRlcigodCkgPT4gdC5sZW5ndGggPj0gdGhpcy5taW5MZW5ndGgpO1xyXG4gICAgICBpZiAodGhpcy5zdG9yZSkge1xyXG4gICAgICAgIHRoaXMuc3RvcmUuY2xlYXIoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGVybXMgPSBbcmF3VGVybV07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJlc2VhcmNoZXM6IFJlc2VhcmNoW10gPSBbXTtcclxuICAgIHRlcm1zLm1hcCgodGVybTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNsdWcgPSB0ZXJtID8gdGVybS5yZXBsYWNlKC8oI1teXFxzXSopL2csICcnKS50cmltKCkgOiAnJztcclxuICAgICAgaWYgKHNsdWcgPT09ICcnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZS5jbGVhcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlc2VhcmNoZXMgPSByZXNlYXJjaGVzLmNvbmNhdChcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRlcm0sIHtcclxuICAgICAgICAgIGZvcmNlTkE6IHRoaXMuZm9yY2VOQVxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVzZWFyY2hlcyQkID0gcmVzZWFyY2hlcy5tYXAoKHJlc2VhcmNoKSA9PiB7XHJcbiAgICAgIHJldHVybiByZXNlYXJjaC5yZXF1ZXN0LnN1YnNjcmliZSgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+IHtcclxuICAgICAgICB0aGlzLm9uUmVzZWFyY2hDb21wbGV0ZWQocmVzZWFyY2gsIHJlc3VsdHMpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhIHJlc2VhcmNoICBpcyBjb21wbGV0ZWQsIGVtaXQgYW4gZXZlbnQgYW5kIHVwZGF0ZVxyXG4gICAqIHRoZSBzdG9yZSdzIGl0ZW1zLlxyXG4gICAqIEBwYXJhbSByZXNlYXJjaCBSZXNlYXJjaFxyXG4gICAqIEBwYXJhbSByZXN1bHRzIFJlc2VhcmNoIHJlc3VsdHNcclxuICAgKi9cclxuICBwcml2YXRlIG9uUmVzZWFyY2hDb21wbGV0ZWQocmVzZWFyY2g6IFJlc2VhcmNoLCByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSkge1xyXG4gICAgdGhpcy5zZWFyY2guZW1pdCh7IHJlc2VhcmNoLCByZXN1bHRzIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLnN0b3JlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29uc3QgbmV3UmVzdWx0cyA9IHRoaXMuc3RvcmVcclxuICAgICAgICAuYWxsKClcclxuICAgICAgICAuZmlsdGVyKChyZXN1bHQpID0+IHJlc3VsdC5zb3VyY2UgIT09IHJlc2VhcmNoLnNvdXJjZSlcclxuICAgICAgICAuY29uY2F0KHJlc3VsdHMpO1xyXG4gICAgICB0aGlzLnN0b3JlLnVwZGF0ZU1hbnkobmV3UmVzdWx0cyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZ28tc2VhcmNoLWJhci1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7IGVtcHR5OiBlbXB0eSQgfCBhc3luYyB9XCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIiBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCI+XHJcbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICNpbnB1dFxyXG4gICAgICBtYXRJbnB1dFxyXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IGhhc1NlYXJjaEljb246IHNob3dTZWFyY2hCdXR0b24gfVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCQgfCBhc3luY1wiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJcclxuICAgICAgICBwbGFjZWhvbGRlclxyXG4gICAgICAgICAgPyBwbGFjZWhvbGRlclxyXG4gICAgICAgICAgOiAocGxhY2Vob2xkZXIkIHwgYXN5bmMpXHJcbiAgICAgICAgICA/IChwbGFjZWhvbGRlciQudmFsdWUgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICBcIlxyXG4gICAgICBbdmFsdWVdPVwidGVybSQgfCBhc3luY1wiXHJcbiAgICAgIChrZXl1cCk9XCJvbktleXVwKCRldmVudClcIlxyXG4gICAgICAodG91Y2hlbmQpPVwib25LZXl1cCgkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwiKGVtcHR5JCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgbWF0U3VmZml4XHJcbiAgICAgIFtjb2xvcl09XCJjb2xvclwiXHJcbiAgICAgIChjbGljayk9XCJvbkNsZWFyQnV0dG9uQ2xpY2soKVwiXHJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLnNlYXJjaC5jbGVhclNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNsb3NlXCI+PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gIDxtYXQtZGl2aWRlciAqbmdJZj1cIndpdGhEaXZpZGVyXCIgW3ZlcnRpY2FsXT1cInRydWVcIj48L21hdC1kaXZpZGVyPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJhci1idXR0b25zXCI+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwic2hvd1NlYXJjaEJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBbY29sb3JdPVwiY29sb3JcIj5cclxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJtYWduaWZ5XCI+PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxpZ28tc2VhcmNoLXNlbGVjdG9yXHJcbiAgICAgICpuZ0lmPVwic2VhcmNoU2VsZWN0b3JcIlxyXG4gICAgICBbc2VhcmNoVHlwZXNdPVwic2VhcmNoVHlwZXNcIlxyXG4gICAgICBbc2VhcmNoVHlwZV09XCJzZWFyY2hUeXBlJCB8IGFzeW5jXCJcclxuICAgICAgKHNlYXJjaFR5cGVDaGFuZ2UpPVwib25TZWFyY2hUeXBlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgPC9pZ28tc2VhcmNoLXNlbGVjdG9yPlxyXG5cclxuICAgIDxpZ28tc2VhcmNoLXNldHRpbmdzXHJcbiAgICAgICpuZ0lmPVwic2VhcmNoU2V0dGluZ3NcIlxyXG4gICAgICBbcG9pbnRlclN1bW1hcnlFbmFibGVkXT1cInBvaW50ZXJTdW1tYXJ5RW5hYmxlZFwiXHJcbiAgICAgIChwb2ludGVyU3VtbWFyeVN0YXR1cyk9XCJwb2ludGVyU3VtbWFyeVN0YXR1cy5lbWl0KCRldmVudClcIlxyXG4gICAgICBbc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZF09XCJzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkXCJcclxuICAgICAgKHNlYXJjaFJlc3VsdHNHZW9tZXRyeVN0YXR1cyk9XCJzZWFyY2hSZXN1bHRzR2VvbWV0cnlTdGF0dXMuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgW3JldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkXT1cInJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkXCJcclxuICAgICAgKHJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRTdGF0dXMpPVwiXHJcbiAgICAgICAgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdFN0YXR1cy5lbWl0KCRldmVudClcclxuICAgICAgXCJcclxuICAgICAgKHNlYXJjaFNvdXJjZUNoYW5nZSk9XCJvblNlYXJjaFNldHRpbmdzQ2hhbmdlKClcIlxyXG4gICAgPlxyXG4gICAgPC9pZ28tc2VhcmNoLXNldHRpbmdzPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -122,11 +122,11 @@ export class SaveFeatureDialogComponent {
122
122
  }
123
123
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SaveFeatureDialogComponent, [{
124
124
  type: Component,
125
- args: [{ selector: 'igo-save-feature-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">\n {{ 'igo.geo.layer.saveFeatureInLayer' | translate }}\n</h1>\n\n<div mat-dialog-content class=\"mat-typography\">\n <form class=\"igo-form\" [formGroup]=\"form\">\n <igo-list [navigation]=\"false\" [selection]=\"false\">\n <igo-search-results-item\n igoListItem\n color=\"accent\"\n [result]=\"feature\"\n showIcons=\"true\"\n >\n </igo-search-results-item>\n </igo-list>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n type=\"text\"\n placeholder=\"{{ 'igo.geo.layer.chooseOrSet' | translate }}\"\n matInput\n [matAutocomplete]=\"auto\"\n formControlName=\"layerName\"\n />\n <mat-autocomplete [displayWith]=\"displayFn\" #auto=\"matAutocomplete\">\n <mat-option\n *ngFor=\"let layer of filteredLayers$ | async\"\n [value]=\"layer\"\n >\n <p matListItemTitle>{{ layer.title }}</p>\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </form>\n</div>\n\n<div mat-dialog-actions style=\"justify-content: center\">\n <div class=\"igo-form-button-group create-layer-button-top-padding\">\n <button mat-raised-button type=\"button\" (click)=\"cancel()\">\n {{ 'igo.geo.layer.cancelBtn' | translate }}\n </button>\n <button\n id=\"createLayerBtnDialog\"\n mat-raised-button\n type=\"button\"\n color=\"primary\"\n (click)=\"save()\"\n >\n {{ 'igo.geo.layer.saveBtn' | translate }}\n </button>\n </div>\n</div>\n", styles: [":host mat-form-field{width:100%}:host .create-layer-button-top-padding{padding-top:25px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}:host button{cursor:pointer}:host button#createLayerBtnDialog[disabled=true]{cursor:default;background-color:#0000001f;color:#00000042}:host .error{color:red}\n"] }]
125
+ args: [{ selector: 'igo-save-feature-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.geo.layer.saveFeatureInLayer' | translate }}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <igo-list [navigation]=\"false\" [selection]=\"false\">\r\n <igo-search-results-item\r\n igoListItem\r\n color=\"accent\"\r\n [result]=\"feature\"\r\n showIcons=\"true\"\r\n >\r\n </igo-search-results-item>\r\n </igo-list>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ 'igo.geo.layer.chooseOrSet' | translate }}\"\r\n matInput\r\n [matAutocomplete]=\"auto\"\r\n formControlName=\"layerName\"\r\n />\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto=\"matAutocomplete\">\r\n <mat-option\r\n *ngFor=\"let layer of filteredLayers$ | async\"\r\n [value]=\"layer\"\r\n >\r\n <p matListItemTitle>{{ layer.title }}</p>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div mat-dialog-actions style=\"justify-content: center\">\r\n <div class=\"igo-form-button-group create-layer-button-top-padding\">\r\n <button mat-raised-button type=\"button\" (click)=\"cancel()\">\r\n {{ 'igo.geo.layer.cancelBtn' | translate }}\r\n </button>\r\n <button\r\n id=\"createLayerBtnDialog\"\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"primary\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'igo.geo.layer.saveBtn' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host mat-form-field{width:100%}:host .create-layer-button-top-padding{padding-top:25px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}:host button{cursor:pointer}:host button#createLayerBtnDialog[disabled=true]{cursor:default;background-color:#0000001f;color:#00000042}:host .error{color:red}\n"] }]
126
126
  }], function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.LanguageService }, { type: i3.MatDialogRef }, { type: undefined, decorators: [{
127
127
  type: Optional
128
128
  }, {
129
129
  type: Inject,
130
130
  args: [MAT_DIALOG_DATA]
131
131
  }] }]; }, null); })();
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUNMLGtCQUFrQixFQUVsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ2V0QyxzQ0FHQyxZQUFBO0lBQ3FCLFlBQWlCO0lBQUEsaUJBQUksRUFBQTs7O0lBRnpDLGdDQUFlO0lBRUssZUFBaUI7SUFBakIsb0NBQWlCOztBRFRqRCxNQUFNLE9BQU8sMEJBQTBCO0lBTzNCO0lBQ0Q7SUFDQTtJQUdBO0lBWEYsSUFBSSxDQUFtQjtJQUM5QixPQUFPLENBQWU7SUFDdEIsTUFBTSxHQUFZLEVBQUUsQ0FBQztJQUNyQixlQUFlLENBQXNCO0lBRXJDLFlBQ1UsV0FBK0IsRUFDaEMsZUFBZ0MsRUFDaEMsU0FBbUQsRUFHbkQsSUFBZ0Q7UUFML0MsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxjQUFT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UixNQUFNO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnNcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkJztcclxuaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXNhdmUtZmVhdHVyZS1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXZlLWZlYXR1cmUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zYXZlLWZlYXR1cmUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNhdmVGZWF0dXJlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBmZWF0dXJlOiBTZWFyY2hSZXN1bHQ7XHJcbiAgbGF5ZXJzOiBMYXllcltdID0gW107XHJcbiAgZmlsdGVyZWRMYXllcnMkOiBPYnNlcnZhYmxlPExheWVyW10+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgIHB1YmxpYyBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTYXZlRmVhdHVyZURpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXHJcbiAgICBwdWJsaWMgZGF0YTogeyBmZWF0dXJlOiBTZWFyY2hSZXN1bHQ7IGxheWVyczogTGF5ZXJbXSB9XHJcbiAgKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgbGF5ZXJOYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmZlYXR1cmUgPSB0aGlzLmRhdGEuZmVhdHVyZTtcclxuICAgIHRoaXMubGF5ZXJzID0gdGhpcy5kYXRhLmxheWVycztcclxuICAgIHRoaXMuZmlsdGVyZWRMYXllcnMkID0gdGhpcy5mb3JtLmNvbnRyb2xzWydsYXllck5hbWUnXS52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgc3RhcnRXaXRoKCcnKSxcclxuICAgICAgbWFwKCh2YWwpID0+IHRoaXMuZmlsdGVyKHZhbCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXIodmFsKTogTGF5ZXJbXSB7XHJcbiAgICBpZiAodHlwZW9mIHZhbCAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubGF5ZXJzXHJcbiAgICAgIC5tYXAoKGwpID0+IGwpXHJcbiAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgKGxheWVyKSA9PiBsYXllcj8udGl0bGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5Rm4obGF5ZXI6IExheWVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBsYXllciAmJiBsYXllci50aXRsZSA/IGxheWVyLnRpdGxlIDogJyc7XHJcbiAgfVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgY29uc3QgZGF0YTogeyBsYXllcjogc3RyaW5nIHwgTGF5ZXI7IGZlYXR1cmU6IFNlYXJjaFJlc3VsdCB9ID0ge1xyXG4gICAgICBsYXllcjogdGhpcy5mb3JtLnZhbHVlLmxheWVyTmFtZSxcclxuICAgICAgZmVhdHVyZTogdGhpcy5mZWF0dXJlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XG4gIHt7ICdpZ28uZ2VvLmxheWVyLnNhdmVGZWF0dXJlSW5MYXllcicgfCB0cmFuc2xhdGUgfX1cbjwvaDE+XG5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgIDxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJmYWxzZVwiIFtzZWxlY3Rpb25dPVwiZmFsc2VcIj5cbiAgICAgIDxpZ28tc2VhcmNoLXJlc3VsdHMtaXRlbVxuICAgICAgICBpZ29MaXN0SXRlbVxuICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgIFtyZXN1bHRdPVwiZmVhdHVyZVwiXG4gICAgICAgIHNob3dJY29ucz1cInRydWVcIlxuICAgICAgPlxuICAgICAgPC9pZ28tc2VhcmNoLXJlc3VsdHMtaXRlbT5cbiAgICA8L2lnby1saXN0PlxuXG4gICAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ubGF5ZXIuY2hvb3NlT3JTZXQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGF5ZXJOYW1lXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlGblwiICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCI+XG4gICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsYXllciBvZiBmaWx0ZXJlZExheWVycyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwibGF5ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwIG1hdExpc3RJdGVtVGl0bGU+e3sgbGF5ZXIudGl0bGUgfX08L3A+XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2Rpdj5cblxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclwiPlxuICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwIGNyZWF0ZS1sYXllci1idXR0b24tdG9wLXBhZGRpbmdcIj5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgIHt7ICdpZ28uZ2VvLmxheWVyLmNhbmNlbEJ0bicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cImNyZWF0ZUxheWVyQnRuRGlhbG9nXCJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICA+XG4gICAgICB7eyAnaWdvLmdlby5sYXllci5zYXZlQnRuJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUNMLGtCQUFrQixFQUVsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ2V0QyxzQ0FHQyxZQUFBO0lBQ3FCLFlBQWlCO0lBQUEsaUJBQUksRUFBQTs7O0lBRnpDLGdDQUFlO0lBRUssZUFBaUI7SUFBakIsb0NBQWlCOztBRFRqRCxNQUFNLE9BQU8sMEJBQTBCO0lBTzNCO0lBQ0Q7SUFDQTtJQUdBO0lBWEYsSUFBSSxDQUFtQjtJQUM5QixPQUFPLENBQWU7SUFDdEIsTUFBTSxHQUFZLEVBQUUsQ0FBQztJQUNyQixlQUFlLENBQXNCO0lBRXJDLFlBQ1UsV0FBK0IsRUFDaEMsZUFBZ0MsRUFDaEMsU0FBbUQsRUFHbkQsSUFBZ0Q7UUFML0MsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUduRCxTQUFJLEdBQUosSUFBSSxDQUE0QztRQUV2RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2pDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3RFLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFDYixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsR0FBRztRQUNoQixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNO2FBQ2YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDYixNQUFNLENBQ0wsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUNuRSxDQUFDO0lBQ04sQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFZO1FBQ3BCLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSTtRQUNGLE1BQU0sSUFBSSxHQUFxRDtZQUM3RCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztZQUNoQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO29GQXJEVSwwQkFBMEIscUpBVzNCLGVBQWU7NkRBWGQsMEJBQTBCO1lDckJ2Qyw2QkFBNEM7WUFDMUMsWUFDRjs7WUFBQSxpQkFBSztZQUVMLDhCQUErQyxjQUFBLGtCQUFBO1lBR3pDLDZDQU0wQjtZQUM1QixpQkFBVztZQUVYLDhCQUFpQyxxQkFBQTtZQUU3QiwyQkFNRTs7WUFDRiwrQ0FBb0U7WUFDbEUsMkZBS2E7O1lBQ2YsaUJBQW1CLEVBQUEsRUFBQSxFQUFBLEVBQUE7WUFNM0IsZ0NBQXdELGVBQUEsa0JBQUE7WUFFWix3R0FBUyxZQUFRLElBQUM7WUFDeEQsYUFDRjs7WUFBQSxpQkFBUztZQUNULG1DQU1DO1lBREMsd0dBQVMsVUFBTSxJQUFDO1lBRWhCLGFBQ0Y7O1lBQUEsaUJBQVMsRUFBQSxFQUFBOzs7WUFsRFgsZUFDRjtZQURFLDJGQUNGO1lBR3lCLGVBQWtCO1lBQWxCLG9DQUFrQjtZQUM3QixlQUFvQjtZQUFwQixrQ0FBb0Isb0JBQUE7WUFJMUIsZUFBa0I7WUFBbEIsb0NBQWtCO1lBVWhCLGVBQTJEO1lBQTNELDRGQUEyRDtZQUUzRCxxQ0FBd0I7WUFHUixlQUF5QjtZQUF6QiwyQ0FBeUI7WUFFckIsZUFBMEI7WUFBMUIscUVBQTBCO1lBY2xELGVBQ0Y7WUFERSxrRkFDRjtZQVFFLGVBQ0Y7WUFERSxnRkFDRjs7O3VGRDlCUywwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSx5QkFBeUI7O3NCQWNoQyxRQUFROztzQkFDUixNQUFNO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnNcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkJztcclxuaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXNhdmUtZmVhdHVyZS1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXZlLWZlYXR1cmUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zYXZlLWZlYXR1cmUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNhdmVGZWF0dXJlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBmZWF0dXJlOiBTZWFyY2hSZXN1bHQ7XHJcbiAgbGF5ZXJzOiBMYXllcltdID0gW107XHJcbiAgZmlsdGVyZWRMYXllcnMkOiBPYnNlcnZhYmxlPExheWVyW10+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgIHB1YmxpYyBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTYXZlRmVhdHVyZURpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXHJcbiAgICBwdWJsaWMgZGF0YTogeyBmZWF0dXJlOiBTZWFyY2hSZXN1bHQ7IGxheWVyczogTGF5ZXJbXSB9XHJcbiAgKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgbGF5ZXJOYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmZlYXR1cmUgPSB0aGlzLmRhdGEuZmVhdHVyZTtcclxuICAgIHRoaXMubGF5ZXJzID0gdGhpcy5kYXRhLmxheWVycztcclxuICAgIHRoaXMuZmlsdGVyZWRMYXllcnMkID0gdGhpcy5mb3JtLmNvbnRyb2xzWydsYXllck5hbWUnXS52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgc3RhcnRXaXRoKCcnKSxcclxuICAgICAgbWFwKCh2YWwpID0+IHRoaXMuZmlsdGVyKHZhbCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXIodmFsKTogTGF5ZXJbXSB7XHJcbiAgICBpZiAodHlwZW9mIHZhbCAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubGF5ZXJzXHJcbiAgICAgIC5tYXAoKGwpID0+IGwpXHJcbiAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgKGxheWVyKSA9PiBsYXllcj8udGl0bGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5Rm4obGF5ZXI6IExheWVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBsYXllciAmJiBsYXllci50aXRsZSA/IGxheWVyLnRpdGxlIDogJyc7XHJcbiAgfVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgY29uc3QgZGF0YTogeyBsYXllcjogc3RyaW5nIHwgTGF5ZXI7IGZlYXR1cmU6IFNlYXJjaFJlc3VsdCB9ID0ge1xyXG4gICAgICBsYXllcjogdGhpcy5mb3JtLnZhbHVlLmxheWVyTmFtZSxcclxuICAgICAgZmVhdHVyZTogdGhpcy5mZWF0dXJlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XHJcbiAge3sgJ2lnby5nZW8ubGF5ZXIuc2F2ZUZlYXR1cmVJbkxheWVyJyB8IHRyYW5zbGF0ZSB9fVxyXG48L2gxPlxyXG5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxyXG4gIDxmb3JtIGNsYXNzPVwiaWdvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJmYWxzZVwiIFtzZWxlY3Rpb25dPVwiZmFsc2VcIj5cclxuICAgICAgPGlnby1zZWFyY2gtcmVzdWx0cy1pdGVtXHJcbiAgICAgICAgaWdvTGlzdEl0ZW1cclxuICAgICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgW3Jlc3VsdF09XCJmZWF0dXJlXCJcclxuICAgICAgICBzaG93SWNvbnM9XCJ0cnVlXCJcclxuICAgICAgPlxyXG4gICAgICA8L2lnby1zZWFyY2gtcmVzdWx0cy1pdGVtPlxyXG4gICAgPC9pZ28tbGlzdD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLmxheWVyLmNob29zZU9yU2V0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxheWVyTmFtZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCIgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsYXllciBvZiBmaWx0ZXJlZExheWVycyQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJsYXllclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxwIG1hdExpc3RJdGVtVGl0bGU+e3sgbGF5ZXIudGl0bGUgfX08L3A+XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBjZW50ZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwIGNyZWF0ZS1sYXllci1idXR0b24tdG9wLXBhZGRpbmdcIj5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxyXG4gICAgICB7eyAnaWdvLmdlby5sYXllci5jYW5jZWxCdG4nIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgaWQ9XCJjcmVhdGVMYXllckJ0bkRpYWxvZ1wiXHJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcclxuICAgID5cclxuICAgICAge3sgJ2lnby5nZW8ubGF5ZXIuc2F2ZUJ0bicgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19