@provoly/dashboard 0.22.3 → 0.22.5

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 (196) hide show
  1. package/dataset/style/_o-pry-dataset-card.scss +24 -2
  2. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +1 -1
  3. package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +1 -1
  4. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +1 -1
  5. package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +1 -1
  6. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +1 -1
  7. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +1 -1
  8. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
  9. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +1 -1
  10. package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +1 -1
  11. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +1 -1
  12. package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +1 -1
  13. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +1 -1
  14. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +1 -1
  15. package/esm2022/components/checkbox/checkbox.component.mjs +3 -3
  16. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +1 -1
  17. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +1 -1
  18. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +3 -3
  19. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
  20. package/esm2022/dataset/components/dataset.component.mjs +3 -3
  21. package/esm2022/dataset/style/css.component.mjs +2 -2
  22. package/esm2022/filters/autocomplete/autocomplete.component.mjs +1 -1
  23. package/esm2022/filters/list/list-filter.component.mjs +1 -1
  24. package/esm2022/import/components/import.component.mjs +1 -1
  25. package/esm2022/lib/core/components/about/about.component.mjs +3 -3
  26. package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +3 -3
  27. package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +8 -4
  28. package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +3 -3
  29. package/esm2022/lib/core/components/select/select.component.mjs +19 -8
  30. package/esm2022/lib/core/components/share/share.component.mjs +1 -1
  31. package/esm2022/lib/core/i18n/en.translations.mjs +7 -2
  32. package/esm2022/lib/core/i18n/fr.translations.mjs +7 -2
  33. package/esm2022/lib/core/store/image/image.service.mjs +4 -3
  34. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +3 -3
  35. package/esm2022/lib/dashboard/components/dashboard.component.mjs +3 -3
  36. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +3 -3
  37. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +3 -3
  38. package/esm2022/lib/dashboard/filter/style/css.component.mjs +2 -2
  39. package/esm2022/lib/dashboard/resultset-utils.mjs +3 -3
  40. package/esm2022/notification/store/notification.service.mjs +1 -1
  41. package/esm2022/notification/style/css.component.mjs +2 -2
  42. package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +3 -3
  43. package/esm2022/pipeline-components/filter/component/filter.component.mjs +1 -1
  44. package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +1 -1
  45. package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +1 -1
  46. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +1 -1
  47. package/esm2022/presentation/components/presentation.component.mjs +4 -3
  48. package/esm2022/presentation/style/css.component.mjs +2 -2
  49. package/esm2022/restitution/components/restitution/restitution.component.mjs +3 -3
  50. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
  51. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +3 -3
  52. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
  53. package/esm2022/restitution/style/css.component.mjs +2 -2
  54. package/esm2022/search/search-home/search-home.component.mjs +2 -2
  55. package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +1 -1
  56. package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +1 -1
  57. package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +1 -1
  58. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +1 -1
  59. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
  60. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
  61. package/esm2022/toolbox/components/delete/delete.component.mjs +3 -3
  62. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
  63. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +20 -8
  64. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
  65. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
  66. package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
  67. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
  68. package/esm2022/toolbox/components/share/share.component.mjs +4 -3
  69. package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +3 -3
  70. package/esm2022/toolbox/components/toolbox.component.mjs +13 -3
  71. package/esm2022/toolbox/style/css.component.mjs +2 -2
  72. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +3 -3
  73. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
  74. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +1 -1
  75. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -7
  76. package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +3 -2
  77. package/esm2022/widgets/widget-map/style/css.component.mjs +3 -3
  78. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +5 -1
  79. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
  80. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
  81. package/fesm2022/provoly-dashboard-admin.mjs +14 -14
  82. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  83. package/fesm2022/provoly-dashboard-components-checkbox.mjs +2 -2
  84. package/fesm2022/provoly-dashboard-components-checkbox.mjs.map +1 -1
  85. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +1 -1
  86. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  87. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +1 -1
  88. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  89. package/fesm2022/provoly-dashboard-dataset.mjs +8 -8
  90. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  91. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +1 -1
  92. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  93. package/fesm2022/provoly-dashboard-filters-list.mjs +1 -1
  94. package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
  95. package/fesm2022/provoly-dashboard-import.mjs +1 -1
  96. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  97. package/fesm2022/provoly-dashboard-notification.mjs +2 -2
  98. package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
  99. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +1 -1
  100. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  101. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +1 -1
  102. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
  103. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +1 -1
  104. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
  105. package/fesm2022/provoly-dashboard-pipeline.mjs +2 -2
  106. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  107. package/fesm2022/provoly-dashboard-presentation.mjs +6 -5
  108. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  109. package/fesm2022/provoly-dashboard-restitution.mjs +10 -10
  110. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  111. package/fesm2022/provoly-dashboard-search.mjs +5 -5
  112. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  113. package/fesm2022/provoly-dashboard-toolbox.mjs +54 -31
  114. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  115. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +2 -2
  116. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  117. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
  118. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  119. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +1 -1
  120. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  121. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +13 -8
  122. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  123. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  124. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  125. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
  126. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  127. package/fesm2022/provoly-dashboard.mjs +59 -33
  128. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  129. package/lib/core/components/overlay/dialog-confirm.component.d.ts +1 -1
  130. package/lib/core/components/select/select.component.d.ts +2 -1
  131. package/lib/core/i18n/en.translations.d.ts +5 -0
  132. package/lib/core/i18n/fr.translations.d.ts +5 -0
  133. package/lib/dashboard/filter/style/_o-pry-filter-group.scss +1 -1
  134. package/notification/style/_m-notifications.scss +4 -10
  135. package/package.json +13 -13
  136. package/presentation/style/_o-pry-new-presentation.scss +0 -4
  137. package/presentation/style/_o-pry-presentation.scss +6 -1
  138. package/restitution/style/_o-restitution-list.scss +1 -1
  139. package/styles/abstracts/_mixins.scss +13 -0
  140. package/styles/components/_a-btn.scss +8 -26
  141. package/styles/components/_a-chip.scss +13 -0
  142. package/styles/components/_m-info-icon.scss +2 -3
  143. package/styles/components/{_o-datasources.scss → _o-chips-selector.scss} +3 -4
  144. package/styles/components/_o-dashboard.scss +41 -7
  145. package/styles/components/_o-modal.scss +1 -1
  146. package/styles/components/_o-widget.scss +5 -5
  147. package/styles/layout/_o-manifest-layout.scss +4 -0
  148. package/styles/libs/_reset-lib-ol.scss +9 -5
  149. package/styles/main.scss +7 -7
  150. package/styles-theme/abstracts-theme/_abstracts-overlays.theme.scss +6 -0
  151. package/styles-theme/abstracts-theme/variables/_variables-colors.scss +18 -25
  152. package/styles-theme/abstracts-theme/variables/_variables-decoration.scss +2 -2
  153. package/styles-theme/abstracts-theme/variables/_variables-typo.scss +2 -2
  154. package/styles-theme/components-theme/_a-btn.theme.scss +45 -72
  155. package/styles-theme/components-theme/_a-checkbox.theme.scss +3 -45
  156. package/styles-theme/components-theme/_a-chip.theme.scss +32 -0
  157. package/styles-theme/components-theme/_a-form-field.theme.scss +1 -1
  158. package/styles-theme/components-theme/_a-pry-select.theme.scss +11 -3
  159. package/styles-theme/components-theme/_a-toggle.theme.scss +7 -8
  160. package/styles-theme/components-theme/_m-filter.theme.scss +4 -13
  161. package/styles-theme/components-theme/_m-form-radio-group.theme.scss +17 -0
  162. package/styles-theme/components-theme/_m-info-icon.theme.scss +11 -0
  163. package/styles-theme/components-theme/_m-minus-plus.theme.scss +2 -2
  164. package/styles-theme/components-theme/_m-notifications.theme.scss +8 -4
  165. package/styles-theme/components-theme/_m-time-picker.theme.scss +1 -1
  166. package/styles-theme/components-theme/_o-catalog.theme.scss +1 -1
  167. package/styles-theme/components-theme/_o-date-picker.theme.scss +2 -2
  168. package/styles-theme/components-theme/_o-draggable-menu.theme.scss +2 -2
  169. package/styles-theme/components-theme/_o-multi-class-field-selection.theme.scss +1 -1
  170. package/styles-theme/components-theme/_o-object-panel.theme.scss +1 -1
  171. package/styles-theme/components-theme/_o-pry-admin-classes-customize.theme.scss +0 -9
  172. package/styles-theme/components-theme/_o-pry-dataset-card.theme.scss +8 -0
  173. package/styles-theme/components-theme/_o-pry-presentation.theme.scss +12 -14
  174. package/styles-theme/components-theme/_o-pry-search-tools.theme.scss +2 -13
  175. package/styles-theme/components-theme/_o-pry-stepper.theme.scss +6 -8
  176. package/styles-theme/components-theme/_o-restitution-list.theme.scss +1 -1
  177. package/styles-theme/components-theme/_o-search-fulltext.theme.scss +2 -2
  178. package/styles-theme/components-theme/_o-search-multi-class.theme.scss +0 -5
  179. package/styles-theme/components-theme/_o-settings.theme.scss +1 -1
  180. package/styles-theme/components-theme/_o-tabs.theme.scss +1 -1
  181. package/styles-theme/components-theme/_o-widget-iframe.theme.scss +2 -2
  182. package/styles-theme/components-theme/_o-widget.theme.scss +31 -2
  183. package/styles-theme/components-theme/_overlay.theme.scss +3 -3
  184. package/styles-theme/layout-theme/_o-base-layout.theme.scss +3 -3
  185. package/styles-theme/layout-theme/_o-manifest-layout.theme.scss +8 -2
  186. package/styles-theme/libs-theme/_reset-lib-ol.theme.scss +12 -3
  187. package/styles-theme/main-theme.scss +5 -4
  188. package/toolbox/components/filter-settings/filter-settings.component.d.ts +3 -2
  189. package/toolbox/components/toolbox.component.d.ts +3 -1
  190. package/toolbox/style/_o-filter-settings.scss +0 -4
  191. package/toolbox/style/_o-toolbox.scss +2 -26
  192. package/widgets/widget-map/pipe/widget-map-legend-url.pipe.d.ts +1 -1
  193. package/widgets/widget-map/style/{_o-layer-legend.scss → _m-layer-legend.scss} +7 -8
  194. package/widgets/widget-map/style/_o-widget-map.scss +2 -2
  195. package/styles/components/_a-chips.scss +0 -15
  196. package/styles-theme/components-theme/_o-datasources.theme.scss +0 -41
@@ -53,7 +53,7 @@ export class PrySelectComponent extends SubscriptionnerDirective {
53
53
  this.isForm = false;
54
54
  this.readonly = false;
55
55
  this.autocomplete = false;
56
- this.iconSize = [14, 14];
56
+ this.iconSize = [10, 16];
57
57
  this.i18nPrefix = null;
58
58
  this.searched = new EventEmitter();
59
59
  this.cleared = new EventEmitter();
@@ -123,7 +123,13 @@ export class PrySelectComponent extends SubscriptionnerDirective {
123
123
  const keyProp = this.bindValue ?? this.bindLabel ?? 'id';
124
124
  this.writeValue(this.value$
125
125
  .getValue()
126
- .filter((i) => (typeof itemValue === 'object' ? i[keyProp] !== itemValue[keyProp] : i !== itemValue)));
126
+ .filter((i) => typeof itemValue === 'object'
127
+ ? typeof i === 'object'
128
+ ? i[keyProp] !== itemValue[keyProp]
129
+ : i !== itemValue[keyProp]
130
+ : typeof i === 'object'
131
+ ? i[keyProp] !== itemValue
132
+ : i !== itemValue));
127
133
  }
128
134
  clearAll($event) {
129
135
  $event.stopPropagation();
@@ -152,9 +158,12 @@ export class PrySelectComponent extends SubscriptionnerDirective {
152
158
  if (typeof itemValue === 'object'
153
159
  ? this.value$
154
160
  .getValue()
155
- .map((val) => val[keyProp])
161
+ .map((val) => (typeof val === 'object' ? val[keyProp] : val))
156
162
  .includes(itemValue[keyProp])
157
- : this.value$.getValue().includes(itemValue)) {
163
+ : this.value$
164
+ .getValue()
165
+ .map((val) => (typeof val === 'object' ? val[keyProp] : val))
166
+ .includes(itemValue)) {
158
167
  this.clear($event, item);
159
168
  }
160
169
  else {
@@ -239,14 +248,14 @@ export class PrySelectComponent extends SubscriptionnerDirective {
239
248
  return this.elementRef ?? this.selectElement.nativeElement;
240
249
  }
241
250
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.SelectA11yService }], target: i0.ɵɵFactoryTarget.Component }); }
242
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrySelectComponent, selector: "pry-select", inputs: { items: "items", clearable: "clearable", multiple: "multiple", closeOnSelect: "closeOnSelect", placeholder: "placeholder", isForm: "isForm", required: "required", name: "name", readonly: "readonly", autocomplete: "autocomplete", bindValue: "bindValue", bindLabel: "bindLabel", iconSize: "iconSize", bindIcon: "bindIcon", template: "template", i18nPrefix: "i18nPrefix", loading: "loading", elementRef: "elementRef" }, outputs: { searched: "searched", cleared: "cleared" }, providers: [
251
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrySelectComponent, selector: "pry-select", inputs: { items: "items", clearable: "clearable", multiple: "multiple", closeOnSelect: "closeOnSelect", placeholder: "placeholder", isForm: "isForm", required: "required", name: "name", readonly: "readonly", autocomplete: "autocomplete", bindValue: "bindValue", bindLabel: "bindLabel", iconSize: "iconSize", bindIcon: "bindIcon", template: "template", i18nPrefix: "i18nPrefix", bindClasses: "bindClasses", loading: "loading", elementRef: "elementRef" }, outputs: { searched: "searched", cleared: "cleared" }, providers: [
243
252
  {
244
253
  provide: NG_VALUE_ACCESSOR,
245
254
  useExisting: forwardRef(() => PrySelectComponent),
246
255
  multi: true
247
256
  },
248
257
  SelectA11yService
249
- ], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i3.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.I18nPipe, name: "i18n" }] }); }
258
+ ], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i3.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.I18nPipe, name: "i18n" }] }); }
250
259
  }
251
260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, decorators: [{
252
261
  type: Component,
@@ -257,7 +266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
257
266
  multi: true
258
267
  },
259
268
  SelectA11yService
260
- ], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
269
+ ], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
261
270
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.SelectA11yService }]; }, propDecorators: { items: [{
262
271
  type: Input
263
272
  }], clearable: [{
@@ -294,6 +303,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
294
303
  type: Output
295
304
  }], cleared: [{
296
305
  type: Output
306
+ }], bindClasses: [{
307
+ type: Input
297
308
  }], loading: [{
298
309
  type: Input
299
310
  }], optionsModal: [{
@@ -308,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
308
319
  type: ViewChild,
309
320
  args: ['input']
310
321
  }] } });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFHVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7QUFDeEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUFHMUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBZWpCLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSx3QkFBd0I7SUFVOUQsSUFBYSxLQUFLLENBQUMsS0FBK0I7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJ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QVcsc09DMUZoRCw2cEtBcUlBOzs0RkQvRmEsa0JBQWtCO2tCQWI5QixTQUFTOytCQUNFLFlBQVksYUFHWDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsaUJBQWlCO3FCQUNsQjs2TEFZWSxLQUFLO3NCQUFqQixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBTU0sT0FBTztzQkFBbkIsS0FBSztnQkFnQjRDLFlBQVk7c0JBQTdELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFFYixhQUFhO3NCQUEvQyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ2pCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ2MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvY29tcG9uZW50cy9zdWJzY3JpcHRpb25uZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlbGVjdEExMXlTZXJ2aWNlIH0gZnJvbSAnLi9zZWxlY3QtYTExeS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG5cbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQcnlTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIFNlbGVjdEExMXlTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJ5U2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwdWJsaWMgaWQ6IG51bWJlciA9IHVuaXF1ZUlkKys7XG4gIF9pdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XG4gIG1hdGNoaW5nSXRlbXMkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wZW4gPSBmYWxzZTtcbiAgYWN0aXZlRGVzY2VuZGFudDogbnVtYmVyID0gLTE7XG4gIHZhbHVlSXRlbXMkOiBPYnNlcnZhYmxlPGFueT47XG4gIHZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih1bmRlZmluZWQpO1xuICBzZWFyY2hTZWxlY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBASW5wdXQoKSBzZXQgaXRlbXMoaXRlbXM6IGFueVtdIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2l0ZW1zJC5uZXh0KGl0ZW1zID8/IFtdKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBjbG9zZU9uU2VsZWN0ID0gdHJ1ZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzRm9ybSA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZD86IGFueTtcbiAgQElucHV0KCkgbmFtZT86IGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGJpbmRWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBiaW5kTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaWNvblNpemUgPSBbMTQsIDE0XTtcbiAgQElucHV0KCkgYmluZEljb246IGFueTtcbiAgQElucHV0KCkgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBpMThuUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQE91dHB1dCgpIHNlYXJjaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjbGVhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBzZWFyY2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBfbG9hZGluZyA9IGZhbHNlO1xuICBoYXNMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgbG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IGxvYWRpbmc7XG4gICAgaWYgKHRoaXMuX2xvYWRpbmcpIHtcbiAgICAgIHRoaXMuaGFzTG9hZGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgQFZpZXdDaGlsZCgnb3B0aW9uc01vZGFsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBvcHRpb25zTW9kYWwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBvcHRpb25zTW9kYWxSZWY/OiBFbWJlZGRlZFZpZXdSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnc2VsZWN0RWxlbWVudCcpIHB1YmxpYyBzZWxlY3RFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBJbnB1dCgpIGVsZW1lbnRSZWYhOiBIVE1MRGl2RWxlbWVudDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG4gIGZvY3VzZWQgPSBmYWxzZTtcbiAgbW9kYWxXaWR0aCA9IDIwMDtcblxuICBnZXQgbW9kYWxJZCgpIHtcbiAgICByZXR1cm4gJ3NlbGVjdC1tb2RhbC0nICsgdGhpcy5pZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHB1YmxpYyBhMTF5U2VydmljZTogU2VsZWN0QTExeVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm1hdGNoaW5nSXRlbXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5faXRlbXMkLCB0aGlzLnNlYXJjaCQsIHRoaXMuc2VhcmNoU2VsZWN0ZWQkXSkucGlwZShcbiAgICAgIG1hcCgoW2l0ZW1zLCB0ZXJtLCBhbHJlYWR5U2VsZWN0ZWRdKSA9PlxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZSAmJiB0ZXJtICYmIHRlcm0ubGVuZ3RoID4gMCAmJiAhYWxyZWFkeVNlbGVjdGVkXG4gICAgICAgICAgPyBpdGVtcy5maWx0ZXIoKGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbVZhbHVlID0gdGhpcy5iaW5kTGFiZWwgPyBpPy5bdGhpcy5iaW5kTGFiZWxdIDogaTtcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1WYWx1ZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGVybS50b0xvd2VyQ2FzZSgpKSA+IC0xO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGl0ZW1zXG4gICAgICApLFxuICAgICAgdGFwKCgpID0+IHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKSlcbiAgICApO1xuICAgIHRoaXMudmFsdWVJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnZhbHVlJCwgdGhpcy5faXRlbXMkXSkucGlwZShcbiAgICAgIG1hcCgoW3ZhbHVlLCBpdGVtc10pID0+XG4gICAgICAgICh0aGlzLm11bHRpcGxlID8gdmFsdWUgPz8gW10gOiAhIXZhbHVlID8gW3ZhbHVlXSA6IFtdKS5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBrZXlQcm9wID0gdGhpcy5iaW5kVmFsdWUgPz8gdGhpcy5iaW5kTGFiZWwgPz8gJ2lkJztcbiAgICAgICAgICByZXR1cm4gaXRlbXMuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICA/IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICA/IGl0ZW1ba2V5UHJvcF0gPT09IHZhbHVlW2tleVByb3BdXG4gICAgICAgICAgICAgICAgOiBpdGVtW2tleVByb3BdID09PSB2YWx1ZVxuICAgICAgICAgICAgICA6IGl0ZW0gPT09IHZhbHVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudmFsdWVJdGVtcyQuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuYmluZExhYmVsID8gaXRlbVswXT8uW3RoaXMuYmluZExhYmVsXSA6IGl0ZW1bMF07XG4gICAgICAgICAgaWYgKGl0ZW1WYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2gkLm5leHQoaXRlbVZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VsZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmExMXlTZXJ2aWNlLnNldFRvZ2dsZSgoZm9yY2U/OiBib29sZWFuKSA9PiB0aGlzLnRvZ2dsZShmb3JjZSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWVxdWFsKHRoaXMudmFsdWUkLmdldFZhbHVlKCksIG9iaikpIHtcbiAgICAgIHRoaXMudmFsdWUkLm5leHQob2JqKTtcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMudmFsdWUkLmdldFZhbHVlKCkpO1xuICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuc2VhcmNoJC5uZXh0KG9iaik7XG4gICAgICB0aGlzLnNlYXJjaFNlbGVjdGVkJC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyKCRldmVudDogRXZlbnQsIGl0ZW06IGFueSkge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBpdGVtVmFsdWUgPSB0aGlzLmJpbmRWYWx1ZSA/IGl0ZW0/Llt0aGlzLmJpbmRWYWx1ZV0gOiBpdGVtO1xuICAgIGNvbnN0IGtleVByb3AgPSB0aGlzLmJpbmRWYWx1ZSA/PyB0aGlzLmJpbmRMYWJlbCA/PyAnaWQnO1xuICAgIHRoaXMud3JpdGVWYWx1ZShcbiAgICAgIHRoaXMudmFsdWUkXG4gICAgICAgIC5nZXRWYWx1ZSgpXG4gICAgICAgIC5maWx0ZXIoKGk6IGFueSkgPT4gKHR5cGVvZiBpdGVtVmFsdWUgPT09ICdvYmplY3QnID8gaVtrZXlQcm9wXSAhPT0gaXRlbVZhbHVlW2tleVByb3BdIDogaSAhPT0gaXRlbVZhbHVlKSlcbiAgICApO1xuICB9XG5cbiAgY2xlYXJBbGwoJGV2ZW50OiBFdmVudCkge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKFtdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoKCcnKTtcbiAgICB0aGlzLmNsZWFyZWQubmV4dCgpO1xuICB9XG5cbiAgc2VhcmNoKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWFyY2gkLm5leHQoJGV2ZW50KTtcbiAgICB0aGlzLnNlYXJjaGVkLm5leHQoJGV2ZW50KTtcbiAgICB0aGlzLnNlYXJjaFNlbGVjdGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHNlbGVjdCgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBpdGVtVmFsdWUgPSB0aGlzLmJpbmRWYWx1ZSA/IGl0ZW0/Llt0aGlzLmJpbmRWYWx1ZV0gOiBpdGVtO1xuICAgIGNvbnN0IGtleVByb3AgPSB0aGlzLmJpbmRWYWx1ZSA/PyB0aGlzLmJpbmRMYWJlbCA/PyAnaWQnO1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBpZiAoIXRoaXMudmFsdWUkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKFtpdGVtVmFsdWVdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0eXBlb2YgaXRlbVZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgPyB0aGlzLnZhbHVlJFxuICAgICAgICAgICAgICAgIC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgLm1hcCgodmFsOiBhbnkpID0+IHZhbFtrZXlQcm9wXSlcbiAgICAgICAgICAgICAgICAuaW5jbHVkZXMoaXRlbVZhbHVlW2tleVByb3BdKVxuICAgICAgICAgICAgOiB0aGlzLnZhbHVlJC5nZXRWYWx1ZSgpLmluY2x1ZGVzKGl0ZW1WYWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jbGVhcigkZXZlbnQsIGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShbLi4udGhpcy52YWx1ZSQuZ2V0VmFsdWUoKSwgaXRlbVZhbHVlXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKGl0ZW1WYWx1ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIHRoaXMudG9nZ2xlKGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50ID0gaW5kZXg7XG4gICAgY29uc3QgaXRlbUxhYmVsID0gdGhpcy5iaW5kTGFiZWwgPyBpdGVtPy5bdGhpcy5iaW5kTGFiZWxdIDogaXRlbTtcbiAgICB0aGlzLnNlYXJjaCQubmV4dChpdGVtTGFiZWwpO1xuICAgIHRoaXMuc2VhcmNoU2VsZWN0ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICB0b2dnbGUoZm9yY2U/OiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBpZiAodGhpcy5vcGVuICE9PSBmb3JjZSkge1xuICAgICAgICB0aGlzLm9wZW4gPSBmb3JjZSAhPT0gdW5kZWZpbmVkID8gZm9yY2UgOiAhdGhpcy5vcGVuO1xuICAgICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgdGhpcy5tb2RhbFdpZHRoID0gdGhpcy5fZWxlbWVudFJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtIDU7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh0aGlzLmdldE92ZXJsYXlDb25maWcoKSk7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoZmFsc2UpO1xuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlKSB7XG4gICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnNlYXJjaCQuZ2V0VmFsdWUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5vcHRpb25zTW9kYWxSZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm9wdGlvbnNNb2RhbCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICAgICAgdGhpcy5mb2N1c0luaXRpYWxTZWxlY3Rpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdGhpcy5mb2N1c1NlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xpY2soKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLnRvZ2dsZSgpO1xuICB9XG5cbiAgdG9nZ2xlRm9jdXMoKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gIXRoaXMuZm9jdXNlZDtcbiAgfVxuXG4gIGZvY3VzU2VsZWN0KCkge1xuICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZSA/IHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSA6IHRoaXMuc2VsZWN0RWxlbWVudD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKCk6IE92ZXJsYXlDb25maWcge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxuICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXG4gICAgICAgIH1cbiAgICAgIF0pO1xuXG4gICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG4gICAgcmV0dXJuIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIHBhbmVsQ2xhc3M6IFsnYS1wcnktc2VsZWN0X19vcHRpb25zJ10sXG4gICAgICBiYWNrZHJvcENsYXNzOiAnYS1wcnktc2VsZWN0X19iYWNrZHJvcCdcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBfZWxlbWVudFJlZigpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZiA/PyB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIG9uRm9jdXNDaGFuZ2UgPSAob3JpZ2luOiBGb2N1c09yaWdpbikgPT5cbiAgICB0aGlzLmExMXlTZXJ2aWNlLm9uRm9jdXNDaGFuZ2UoXG4gICAgICBvcmlnaW4sXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZSxcbiAgICAgICgpID0+IHRoaXMudG9nZ2xlRm9jdXMoKSxcbiAgICAgICgpID0+IHRoaXMuZm9jdXNTZWxlY3QoKVxuICAgICk7XG4gIG9uS2V5ZG93blNlbGVjdCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5hMTF5U2VydmljZS5vbktleWRvd25TZWxlY3QoZXZlbnQsIHRoaXMuYXV0b2NvbXBsZXRlKTtcbiAgb25LZXlkb3duQXV0b2NvbXBsZXRlSW5wdXQgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+XG4gICAgdGhpcy5hMTF5U2VydmljZS5vbktleWRvd25BdXRvY29tcGxldGVJbnB1dChldmVudCwgdGhpcy5vcGVuLCB0aGlzLnNlYXJjaCQuZ2V0VmFsdWUoKSwgdGhpcy5vcHRpb25zTW9kYWxSZWYpO1xuICBvbktleWRvd25PcHRpb24gPSAoXG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnQsXG4gICAgaXRlbTogYW55LFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgb3B0aW9uRGl2UmVmOiBIVE1MRGl2RWxlbWVudCxcbiAgICBmaXJzdDogYm9vbGVhbixcbiAgICBsYXN0OiBib29sZWFuXG4gICkgPT5cbiAgICB0aGlzLmExMXlTZXJ2aWNlLm9uS2V5ZG93bk9wdGlvbihcbiAgICAgIGV2ZW50LFxuICAgICAgb3B0aW9uRGl2UmVmLFxuICAgICAgZmlyc3QsXG4gICAgICBsYXN0LFxuICAgICAgdGhpcy5hdXRvY29tcGxldGUsXG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICgpID0+IHRoaXMuc2VsZWN0KGV2ZW50LCBpdGVtLCBpbmRleClcbiAgICApO1xuICBmb2N1c0luaXRpYWxTZWxlY3Rpb24gPSAoKSA9PiB0aGlzLmExMXlTZXJ2aWNlLmZvY3VzSW5pdGlhbFNlbGVjdGlvbih0aGlzLmF1dG9jb21wbGV0ZSwgdGhpcy5vcHRpb25zTW9kYWxSZWYpO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAjc2VsZWN0RWxlbWVudFxuICBbY2xhc3MuLWZvY3VzZWRdPVwiZm9jdXNlZFwiXG4gIChjbGljayk9XCJoYW5kbGVDbGljaygpXCJcbiAgcm9sZT1cImNvbWJvYm94XCJcbiAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgW2F0dHIuYXJpYS1vd25zXT1cIm9wZW4gPyBtb2RhbElkIDogbnVsbFwiXG4gIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgY2RrTW9uaXRvckVsZW1lbnRGb2N1c1xuICAoY2RrRm9jdXNDaGFuZ2UpPVwib25Gb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgKGtleWRvd24pPVwib25LZXlkb3duU2VsZWN0KCRldmVudClcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYS1wcnktc2VsZWN0X19jb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF1dG9jb21wbGV0ZTsgZWxzZSBub0F1dG9jb21wbGV0ZVwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJhLXByeS1zZWxlY3RfX3NlYXJjaFwiXG4gICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaCQuZ2V0VmFsdWUoKVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJsaXN0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJvcGVuID8gbW9kYWxJZCA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duQXV0b2NvbXBsZXRlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICNpbnB1dFxuICAgICAgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vQXV0b2NvbXBsZXRlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIih2YWx1ZUl0ZW1zJCB8IGFzeW5jKS5sZW5ndGggPT09IDA7IGVsc2Ugc2VsZWN0ZWRWYWx1ZXNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhLXByeS1zZWxlY3RfX3BsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRWYWx1ZXM+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmFsdWVJdGVtcyQgfCBhc3luY1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhLXByeS1zZWxlY3RfX3ZhbHVlXCIgW2NsYXNzLnByeS1zZWxlY3QtZm9ybV09XCJpc0Zvcm1cIiBbY2xhc3MuLW11bHRpcGxlXT1cIm11bHRpcGxlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGU7IGVsc2Ugbm9UZW1wbGF0ZUxhYmVsXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtLCBjbGVhciB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9UZW1wbGF0ZUxhYmVsPlxuICAgICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImJpbmRJY29uXCJcbiAgICAgICAgICAgICAgICBbaWNvblN2Z109XCJpdGVtW2JpbmRJY29uXVwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cImljb25TaXplWzBdXCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cImljb25TaXplWzFdXCJcbiAgICAgICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiaW5kTGFiZWwgPyBpdGVtPy5bYmluZExhYmVsXSA6IGl0ZW0gYXMgdmFsdWVcIj5cbiAgICAgICAgICAgICAgICB7eyAoaTE4blByZWZpeCA/PyAnJykgKyB2YWx1ZSB8IGkxOG4gOiB7IHdhcm46IGZhbHNlIH0gfX1cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtdWx0aXBsZSAmJiBjbGVhcmFibGVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLXByeS1zZWxlY3RfX2NsZWFyXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+w5c8L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fZmlsbGVyXCI+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhLXByeS1zZWxlY3RfX2FjdGlvbnNcIj5cbiAgICA8c3BhbiAqbmdJZj1cImNsZWFyYWJsZVwiIGNsYXNzPVwiYS1wcnktc2VsZWN0X19jbGVhclwiIChjbGljayk9XCJjbGVhckFsbCgkZXZlbnQpXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+w5c8L3NwYW4+XG4gICAgPHByeS1pY29uXG4gICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fdG9nZ2xlXCJcbiAgICAgIFtpY29uU3ZnXT1cIm9wZW4gPyAnY2hldnJvbl90b3AnIDogJ2NoZXZyb25fYm90dG9tJ1wiXG4gICAgICBbd2lkdGhdPVwiaWNvblNpemVbMF1cIlxuICAgICAgW2hlaWdodF09XCJpY29uU2l6ZVsxXVwiXG4gICAgPjwvcHJ5LWljb24+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI29wdGlvbnNNb2RhbD5cbiAgPGRpdlxuICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidAcHJ5LnNlbGVjdC5sYWJlbCcgfCBpMThuXCJcbiAgICBbaWRdPVwibW9kYWxJZFwiXG4gICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIidzZWxlY3Qtb3B0aW9uLScgKyBhY3RpdmVEZXNjZW5kYW50XCJcbiAgICBbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV09XCJtdWx0aXBsZVwiXG4gICAgW2F0dHIucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIGNka1RyYXBGb2N1cz1cIiFhdXRvY29tcGxldGVcIlxuICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCIhYXV0b2NvbXBsZXRlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJhLXByeS1zZWxlY3RfX29wdGlvbnNfX29wdGlvbiAtaGludFwiICpuZ0lmPVwibG9hZGluZ1wiIFtzdHlsZS53aWR0aC5weF09XCJtb2RhbFdpZHRoXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm8td2lkZ2V0IG5vLXdpZGdldF9fbG9hZGVyXCI+XG4gICAgICAgIDxwcnktaWNvblxuICAgICAgICAgIGljb25Tdmc9XCJsb2FkZXJcIlxuICAgICAgICAgIGNsYXNzPVwibm8td2lkZ2V0X19sb2FkaW5nXCJcbiAgICAgICAgICBbYWx0XT1cIidAcHJ5LndpZGdldC50YXJnZXQubG9hZGluZycgfCBpMThuXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMzBcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMzBcIlxuICAgICAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwPnt7ICdAcHJ5LnNlbGVjdC5sb2FkaW5nJyB8IGkxOG4gfX0uLi48L3A+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1hdGNoaW5nSXRlbXMkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4OyBsZXQgZmlyc3QgPSBmaXJzdDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fb3B0aW9uc19fb3B0aW9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIih2YWx1ZUl0ZW1zJCB8IGFzeW5jKS5pbmNsdWRlcyhpdGVtKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cIih2YWx1ZUl0ZW1zJCB8IGFzeW5jKS5pbmNsdWRlcyhpdGVtKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgkZXZlbnQsIGl0ZW0sIGluZGV4KVwiXG4gICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duT3B0aW9uKCRldmVudCwgaXRlbSwgaW5kZXgsIG9wdGlvbkRpdlJlZiwgZmlyc3QsIGxhc3QpXCJcbiAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwibW9kYWxXaWR0aFwiXG4gICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgW2lkXT1cIidzZWxlY3Qtb3B0aW9uLScgKyBpbmRleFwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAjb3B0aW9uRGl2UmVmXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGU7IGVsc2Ugbm9UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW0sIGNsZWFyIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vVGVtcGxhdGU+XG4gICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgKm5nSWY9XCJiaW5kSWNvblwiXG4gICAgICAgICAgICAgIFtpY29uU3ZnXT1cIml0ZW1bYmluZEljb25dXCJcbiAgICAgICAgICAgICAgW3dpZHRoXT1cImljb25TaXplWzBdXCJcbiAgICAgICAgICAgICAgW2hlaWdodF09XCJpY29uU2l6ZVsxXVwiXG4gICAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiaW5kTGFiZWwgPyBpdGVtPy5bYmluZExhYmVsXSA6IGl0ZW0gYXMgdmFsdWVcIj5cbiAgICAgICAgICAgICAge3sgKGkxOG5QcmVmaXggPyBpMThuUHJlZml4IDogJycpICsgdmFsdWUgfCBpMThuIDogeyB3YXJuOiBmYWxzZSB9IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFHVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7QUFDeEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUFHMUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBZWpCLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSx3QkFBd0I7SUFVOUQsSUFBYSxLQUFLLENBQUMsS0FBK0I7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJ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VTtzQkFBbEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFNTyxPQUFPO3NCQUFuQixLQUFLO2dCQWdCNEMsWUFBWTtzQkFBN0QsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUViLGFBQWE7c0JBQS9DLFNBQVM7dUJBQUMsZUFBZTtnQkFDakIsVUFBVTtzQkFBbEIsS0FBSztnQkFDYyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9jb21wb25lbnRzL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2VsZWN0QTExeVNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdC1hMTF5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcblxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFByeVNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAgU2VsZWN0QTExeVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQcnlTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHB1YmxpYyBpZDogbnVtYmVyID0gdW5pcXVlSWQrKztcbiAgX2l0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcbiAgbWF0Y2hpbmdJdGVtcyQ6IE9ic2VydmFibGU8YW55PjtcbiAgb3BlbiA9IGZhbHNlO1xuICBhY3RpdmVEZXNjZW5kYW50OiBudW1iZXIgPSAtMTtcbiAgdmFsdWVJdGVtcyQ6IE9ic2VydmFibGU8YW55PjtcbiAgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHVuZGVmaW5lZCk7XG4gIHNlYXJjaFNlbGVjdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogYW55W10gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5faXRlbXMkLm5leHQoaXRlbXMgPz8gW10pO1xuICB9XG5cbiAgQElucHV0KCkgY2xlYXJhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsb3NlT25TZWxlY3QgPSB0cnVlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgQElucHV0KCkgaXNGb3JtID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkPzogYW55O1xuICBASW5wdXQoKSBuYW1lPzogYW55O1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYmluZFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGJpbmRMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBpY29uU2l6ZSA9IFsxMCwgMTZdO1xuICBASW5wdXQoKSBiaW5kSWNvbjogYW55O1xuICBASW5wdXQoKSB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGkxOG5QcmVmaXg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBAT3V0cHV0KCkgc2VhcmNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNsZWFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIGJpbmRDbGFzc2VzOiBhbnk7XG4gIHNlYXJjaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIF9sb2FkaW5nID0gZmFsc2U7XG4gIGhhc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBsb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9sb2FkaW5nID0gbG9hZGluZztcbiAgICBpZiAodGhpcy5fbG9hZGluZykge1xuICAgICAgdGhpcy5oYXNMb2FkZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICBAVmlld0NoaWxkKCdvcHRpb25zTW9kYWwnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIG9wdGlvbnNNb2RhbCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIG9wdGlvbnNNb2RhbFJlZj86IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdzZWxlY3RFbGVtZW50JykgcHVibGljIHNlbGVjdEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQElucHV0KCkgZWxlbWVudFJlZiE6IEhUTUxEaXZFbGVtZW50O1xuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBwcml2YXRlIF9vbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuICBwcml2YXRlIF9vblRvdWNoZWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgZm9jdXNlZCA9IGZhbHNlO1xuICBtb2RhbFdpZHRoID0gMjAwO1xuXG4gIGdldCBtb2RhbElkKCkge1xuICAgIHJldHVybiAnc2VsZWN0LW1vZGFsLScgKyB0aGlzLmlkO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIGExMXlTZXJ2aWNlOiBTZWxlY3RBMTF5U2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubWF0Y2hpbmdJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9pdGVtcyQsIHRoaXMuc2VhcmNoJCwgdGhpcy5zZWFyY2hTZWxlY3RlZCRdKS5waXBlKFxuICAgICAgbWFwKChbaXRlbXMsIHRlcm0sIGFscmVhZHlTZWxlY3RlZF0pID0+XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlICYmIHRlcm0gJiYgdGVybS5sZW5ndGggPiAwICYmICFhbHJlYWR5U2VsZWN0ZWRcbiAgICAgICAgICA/IGl0ZW1zLmZpbHRlcigoaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpdGVtVmFsdWUgPSB0aGlzLmJpbmRMYWJlbCA/IGk/Llt0aGlzLmJpbmRMYWJlbF0gOiBpO1xuICAgICAgICAgICAgICByZXR1cm4gaXRlbVZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0ZXJtLnRvTG93ZXJDYXNlKCkpID4gLTE7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogaXRlbXNcbiAgICAgICksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpKVxuICAgICk7XG4gICAgdGhpcy52YWx1ZUl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMudmFsdWUkLCB0aGlzLl9pdGVtcyRdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWUsIGl0ZW1zXSkgPT5cbiAgICAgICAgKHRoaXMubXVsdGlwbGUgPyB2YWx1ZSA/PyBbXSA6ICEhdmFsdWUgPyBbdmFsdWVdIDogW10pLm1hcCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGtleVByb3AgPSB0aGlzLmJpbmRWYWx1ZSA/PyB0aGlzLmJpbmRMYWJlbCA/PyAnaWQnO1xuICAgICAgICAgIHJldHVybiBpdGVtcy5maW5kKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgID8gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICAgID8gaXRlbVtrZXlQcm9wXSA9PT0gdmFsdWVba2V5UHJvcF1cbiAgICAgICAgICAgICAgICA6IGl0ZW1ba2V5UHJvcF0gPT09IHZhbHVlXG4gICAgICAgICAgICAgIDogaXRlbSA9PT0gdmFsdWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy52YWx1ZUl0ZW1zJC5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgY29uc3QgaXRlbVZhbHVlID0gdGhpcy5iaW5kTGFiZWwgPyBpdGVtWzBdPy5bdGhpcy5iaW5kTGFiZWxdIDogaXRlbVswXTtcbiAgICAgICAgICBpZiAoaXRlbVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaCQubmV4dChpdGVtVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hTZWxlY3RlZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuYTExeVNlcnZpY2Uuc2V0VG9nZ2xlKChmb3JjZT86IGJvb2xlYW4pID0+IHRoaXMudG9nZ2xlKGZvcmNlKSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIGlmICghZXF1YWwodGhpcy52YWx1ZSQuZ2V0VmFsdWUoKSwgb2JqKSkge1xuICAgICAgdGhpcy52YWx1ZSQubmV4dChvYmopO1xuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSQuZ2V0VmFsdWUoKSk7XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5zZWFyY2gkLm5leHQob2JqKTtcbiAgICAgIHRoaXMuc2VhcmNoU2VsZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoJGV2ZW50OiBFdmVudCwgaXRlbTogYW55KSB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMuYmluZFZhbHVlID8gaXRlbT8uW3RoaXMuYmluZFZhbHVlXSA6IGl0ZW07XG4gICAgY29uc3Qga2V5UHJvcCA9IHRoaXMuYmluZFZhbHVlID8/IHRoaXMuYmluZExhYmVsID8/ICdpZCc7XG4gICAgdGhpcy53cml0ZVZhbHVlKFxuICAgICAgdGhpcy52YWx1ZSRcbiAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgLmZpbHRlcigoaTogYW55KSA9PlxuICAgICAgICAgIHR5cGVvZiBpdGVtVmFsdWUgPT09ICdvYmplY3QnXG4gICAgICAgICAgICA/IHR5cGVvZiBpID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICA/IGlba2V5UHJvcF0gIT09IGl0ZW1WYWx1ZVtrZXlQcm9wXVxuICAgICAgICAgICAgICA6IGkgIT09IGl0ZW1WYWx1ZVtrZXlQcm9wXVxuICAgICAgICAgICAgOiB0eXBlb2YgaSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgID8gaVtrZXlQcm9wXSAhPT0gaXRlbVZhbHVlXG4gICAgICAgICAgICA6IGkgIT09IGl0ZW1WYWx1ZVxuICAgICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGNsZWFyQWxsKCRldmVudDogRXZlbnQpIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShbXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh1bmRlZmluZWQpO1xuICAgIH1cbiAgICB0aGlzLnNlYXJjaCgnJyk7XG4gICAgdGhpcy5jbGVhcmVkLm5leHQoKTtcbiAgfVxuXG4gIHNlYXJjaCgkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KCRldmVudCk7XG4gICAgdGhpcy5zZWFyY2hlZC5uZXh0KCRldmVudCk7XG4gICAgdGhpcy5zZWFyY2hTZWxlY3RlZCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBzZWxlY3QoJGV2ZW50OiBFdmVudCwgaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgaXRlbVZhbHVlID0gdGhpcy5iaW5kVmFsdWUgPyBpdGVtPy5bdGhpcy5iaW5kVmFsdWVdIDogaXRlbTtcbiAgICBjb25zdCBrZXlQcm9wID0gdGhpcy5iaW5kVmFsdWUgPz8gdGhpcy5iaW5kTGFiZWwgPz8gJ2lkJztcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgaWYgKCF0aGlzLnZhbHVlJC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShbaXRlbVZhbHVlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdHlwZW9mIGl0ZW1WYWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZSRcbiAgICAgICAgICAgICAgICAuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgICAgIC5tYXAoKHZhbDogYW55KSA9PiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgPyB2YWxba2V5UHJvcF0gOiB2YWwpKVxuICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhpdGVtVmFsdWVba2V5UHJvcF0pXG4gICAgICAgICAgICA6IHRoaXMudmFsdWUkXG4gICAgICAgICAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgICAubWFwKCh2YWw6IGFueSkgPT4gKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnID8gdmFsW2tleVByb3BdIDogdmFsKSlcbiAgICAgICAgICAgICAgICAuaW5jbHVkZXMoaXRlbVZhbHVlKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmNsZWFyKCRldmVudCwgaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFsuLi50aGlzLnZhbHVlJC5nZXRWYWx1ZSgpLCBpdGVtVmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoaXRlbVZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2xvc2VPblNlbGVjdCkge1xuICAgICAgdGhpcy50b2dnbGUoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnQgPSBpbmRleDtcbiAgICBjb25zdCBpdGVtTGFiZWwgPSB0aGlzLmJpbmRMYWJlbCA/IGl0ZW0/Llt0aGlzLmJpbmRMYWJlbF0gOiBpdGVtO1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KGl0ZW1MYWJlbCk7XG4gICAgdGhpcy5zZWFyY2hTZWxlY3RlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZShmb3JjZT86IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLm9wZW4gIT09IGZvcmNlKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZvcmNlICE9PSB1bmRlZmluZWQgPyBmb3JjZSA6ICF0aGlzLm9wZW47XG4gICAgICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgICAgICB0aGlzLm1vZGFsV2lkdGggPSB0aGlzLl9lbGVtZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC0gNTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHRoaXMuZ2V0T3ZlcmxheUNvbmZpZygpKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZShmYWxzZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuc2VhcmNoJC5nZXRWYWx1ZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm9wdGlvbnNNb2RhbFJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3B0aW9uc01vZGFsLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICAgICAgICB0aGlzLmZvY3VzSW5pdGlhbFNlbGVjdGlvbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB0aGlzLmZvY3VzU2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVDbGljaygpIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMudG9nZ2xlKCk7XG4gIH1cblxuICB0b2dnbGVGb2N1cygpIHtcbiAgICB0aGlzLmZvY3VzZWQgPSAhdGhpcy5mb2N1c2VkO1xuICB9XG5cbiAgZm9jdXNTZWxlY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlID8gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpIDogdGhpcy5zZWxlY3RFbGVtZW50Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcoKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2VsZW1lbnRSZWYpXG4gICAgICAud2l0aFB1c2goZmFsc2UpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbSdcbiAgICAgICAgfVxuICAgICAgXSk7XG5cbiAgICBjb25zdCBzY3JvbGxTdHJhdGVneSA9IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKTtcbiAgICByZXR1cm4gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiBzY3JvbGxTdHJhdGVneSxcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgcGFuZWxDbGFzczogWydhLXByeS1zZWxlY3RfX29wdGlvbnMnXSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdhLXByeS1zZWxlY3RfX2JhY2tkcm9wJ1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IF9lbGVtZW50UmVmKCk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmID8/IHRoaXMuc2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgb25Gb2N1c0NoYW5nZSA9IChvcmlnaW46IEZvY3VzT3JpZ2luKSA9PlxuICAgIHRoaXMuYTExeVNlcnZpY2Uub25Gb2N1c0NoYW5nZShcbiAgICAgIG9yaWdpbixcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLFxuICAgICAgKCkgPT4gdGhpcy50b2dnbGVGb2N1cygpLFxuICAgICAgKCkgPT4gdGhpcy5mb2N1c1NlbGVjdCgpXG4gICAgKTtcbiAgb25LZXlkb3duU2VsZWN0ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmExMXlTZXJ2aWNlLm9uS2V5ZG93blNlbGVjdChldmVudCwgdGhpcy5hdXRvY29tcGxldGUpO1xuICBvbktleWRvd25BdXRvY29tcGxldGVJbnB1dCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT5cbiAgICB0aGlzLmExMXlTZXJ2aWNlLm9uS2V5ZG93bkF1dG9jb21wbGV0ZUlucHV0KGV2ZW50LCB0aGlzLm9wZW4sIHRoaXMuc2VhcmNoJC5nZXRWYWx1ZSgpLCB0aGlzLm9wdGlvbnNNb2RhbFJlZik7XG4gIG9uS2V5ZG93bk9wdGlvbiA9IChcbiAgICBldmVudDogS2V5Ym9hcmRFdmVudCxcbiAgICBpdGVtOiBhbnksXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBvcHRpb25EaXZSZWY6IEhUTUxEaXZFbGVtZW50LFxuICAgIGZpcnN0OiBib29sZWFuLFxuICAgIGxhc3Q6IGJvb2xlYW5cbiAgKSA9PlxuICAgIHRoaXMuYTExeVNlcnZpY2Uub25LZXlkb3duT3B0aW9uKFxuICAgICAgZXZlbnQsXG4gICAgICBvcHRpb25EaXZSZWYsXG4gICAgICBmaXJzdCxcbiAgICAgIGxhc3QsXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZSxcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgKCkgPT4gdGhpcy5zZWxlY3QoZXZlbnQsIGl0ZW0sIGluZGV4KVxuICAgICk7XG4gIGZvY3VzSW5pdGlhbFNlbGVjdGlvbiA9ICgpID0+IHRoaXMuYTExeVNlcnZpY2UuZm9jdXNJbml0aWFsU2VsZWN0aW9uKHRoaXMuYXV0b2NvbXBsZXRlLCB0aGlzLm9wdGlvbnNNb2RhbFJlZik7XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICNzZWxlY3RFbGVtZW50XG4gIFtjbGFzcy4tZm9jdXNlZF09XCJmb2N1c2VkXCJcbiAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKClcIlxuICByb2xlPVwiY29tYm9ib3hcIlxuICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5cIlxuICBbYXR0ci5hcmlhLW93bnNdPVwib3BlbiA/IG1vZGFsSWQgOiBudWxsXCJcbiAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICB0YWJpbmRleD1cIjBcIlxuICBjZGtNb25pdG9yRWxlbWVudEZvY3VzXG4gIChjZGtGb2N1c0NoYW5nZSk9XCJvbkZvY3VzQ2hhbmdlKCRldmVudClcIlxuICAoa2V5ZG93bik9XCJvbktleWRvd25TZWxlY3QoJGV2ZW50KVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJhLXByeS1zZWxlY3RfX2NvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXV0b2NvbXBsZXRlOyBlbHNlIG5vQXV0b2NvbXBsZXRlXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fc2VhcmNoXCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoJC5nZXRWYWx1ZSgpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgICBhcmlhLWF1dG9jb21wbGV0ZT1cImxpc3RcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIm9wZW4gPyBtb2RhbElkIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd25BdXRvY29tcGxldGVJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgI2lucHV0XG4gICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9BdXRvY29tcGxldGU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHZhbHVlSXRlbXMkIHwgYXN5bmMpLmxlbmd0aCA9PT0gMDsgZWxzZSBzZWxlY3RlZFZhbHVlc1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZFZhbHVlcz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2YWx1ZUl0ZW1zJCB8IGFzeW5jXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJhLXByeS1zZWxlY3RfX3ZhbHVlXCJcbiAgICAgICAgICAgIFtjbGFzcy5wcnktc2VsZWN0LWZvcm1dPVwiaXNGb3JtXCJcbiAgICAgICAgICAgIFtjbGFzcy4tbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbSA/IGl0ZW1bYmluZENsYXNzZXMgPz8gJyddID8/IHt9IDoge31cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZTsgZWxzZSBub1RlbXBsYXRlTGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGl0ZW0sIGNsZWFyIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub1RlbXBsYXRlTGFiZWw+XG4gICAgICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYmluZEljb25cIlxuICAgICAgICAgICAgICAgIFtpY29uU3ZnXT1cIml0ZW1bYmluZEljb25dXCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiaWNvblNpemVbMF1cIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiaWNvblNpemVbMV1cIlxuICAgICAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJpbmRMYWJlbCA/IGl0ZW0/LltiaW5kTGFiZWxdIDogaXRlbSBhcyB2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IChpMThuUHJlZml4ID8/ICcnKSArIHZhbHVlIHwgaTE4biA6IHsgd2FybjogZmFsc2UgfSB9fVxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIm11bHRpcGxlICYmIGNsZWFyYWJsZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fY2xlYXJcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgID7Dlzwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiYS1wcnktc2VsZWN0X19maWxsZXJcIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fYWN0aW9uc1wiPlxuICAgIDxzcGFuICpuZ0lmPVwiY2xlYXJhYmxlXCIgY2xhc3M9XCJhLXByeS1zZWxlY3RfX2NsZWFyXCIgKGNsaWNrKT1cImNsZWFyQWxsKCRldmVudClcIiBhcmlhLWhpZGRlbj1cInRydWVcIj7Dlzwvc3Bhbj5cbiAgICA8cHJ5LWljb25cbiAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0X190b2dnbGVcIlxuICAgICAgW2ljb25TdmddPVwib3BlbiA/ICdjaGV2cm9uX3RvcCcgOiAnY2hldnJvbl9ib3R0b20nXCJcbiAgICAgIFt3aWR0aF09XCJpY29uU2l6ZVswXVwiXG4gICAgICBbaGVpZ2h0XT1cImljb25TaXplWzFdXCJcbiAgICA+PC9wcnktaWNvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjb3B0aW9uc01vZGFsPlxuICA8ZGl2XG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Bwcnkuc2VsZWN0LmxhYmVsJyB8IGkxOG5cIlxuICAgIFtpZF09XCJtb2RhbElkXCJcbiAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiJ3NlbGVjdC1vcHRpb24tJyArIGFjdGl2ZURlc2NlbmRhbnRcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXT1cIm11bHRpcGxlXCJcbiAgICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgY2RrVHJhcEZvY3VzPVwiIWF1dG9jb21wbGV0ZVwiXG4gICAgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cIiFhdXRvY29tcGxldGVcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImEtcHJ5LXNlbGVjdF9fb3B0aW9uc19fb3B0aW9uIC1oaW50XCIgKm5nSWY9XCJsb2FkaW5nXCIgW3N0eWxlLndpZHRoLnB4XT1cIm1vZGFsV2lkdGhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJuby13aWRnZXQgbm8td2lkZ2V0X19sb2FkZXJcIj5cbiAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgaWNvblN2Zz1cImxvYWRlclwiXG4gICAgICAgICAgY2xhc3M9XCJuby13aWRnZXRfX2xvYWRpbmdcIlxuICAgICAgICAgIFthbHRdPVwiJ0Bwcnkud2lkZ2V0LnRhcmdldC5sb2FkaW5nJyB8IGkxOG5cIlxuICAgICAgICAgIFt3aWR0aF09XCIzMFwiXG4gICAgICAgICAgW2hlaWdodF09XCIzMFwiXG4gICAgICAgICAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPHA+e3sgJ0Bwcnkuc2VsZWN0LmxvYWRpbmcnIHwgaTE4biB9fS4uLjwvcD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWF0Y2hpbmdJdGVtcyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXg7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0X19vcHRpb25zX19vcHRpb25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiKHZhbHVlSXRlbXMkIHwgYXN5bmMpLmluY2x1ZGVzKGl0ZW0pXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiKHZhbHVlSXRlbXMkIHwgYXN5bmMpLmluY2x1ZGVzKGl0ZW0pXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KCRldmVudCwgaXRlbSwgaW5kZXgpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd25PcHRpb24oJGV2ZW50LCBpdGVtLCBpbmRleCwgb3B0aW9uRGl2UmVmLCBmaXJzdCwgbGFzdClcIlxuICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJtb2RhbFdpZHRoXCJcbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBbaWRdPVwiJ3NlbGVjdC1vcHRpb24tJyArIGluZGV4XCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICNvcHRpb25EaXZSZWZcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZTsgZWxzZSBub1RlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbSwgY2xlYXIgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9UZW1wbGF0ZT5cbiAgICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgICAqbmdJZj1cImJpbmRJY29uXCJcbiAgICAgICAgICAgICAgW2ljb25TdmddPVwiaXRlbVtiaW5kSWNvbl1cIlxuICAgICAgICAgICAgICBbd2lkdGhdPVwiaWNvblNpemVbMF1cIlxuICAgICAgICAgICAgICBbaGVpZ2h0XT1cImljb25TaXplWzFdXCJcbiAgICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJpbmRMYWJlbCA/IGl0ZW0/LltiaW5kTGFiZWxdIDogaXRlbSBhcyB2YWx1ZVwiPlxuICAgICAgICAgICAgICB7eyAoaTE4blByZWZpeCA/IGkxOG5QcmVmaXggOiAnJykgKyB2YWx1ZSB8IGkxOG4gOiB7IHdhcm46IGZhbHNlIH0gfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -60,7 +60,7 @@ export class PryShareComponent {
60
60
  useExisting: forwardRef(() => PryShareComponent),
61
61
  multi: true
62
62
  }
63
- ], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"share_type\">{{ '@pry.share.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueType($event)\"\n [items]=\"visibilityTypes\"\n [ngModel]=\"value?.type\"\n [disabled]=\"_disabled\"\n i18nPrefix=\"@pry.share.\"\n bindValue=\"value\"\n bindLabel=\"label\"\n id=\"share_type\"\n bindIcon=\"icon\"\n [iconSize]=\"[21, 18]\"\n ></pry-select>\n</div>\n\n<ng-container *ngIf=\"value?.type === PryVisibilityType.RESTRICTED\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"users\">{{ '@pry.share.users' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueUsers($event)\"\n [items]=\"users$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [ngModel]=\"value?.users\"\n [disabled]=\"_disabled\"\n [bindLabel]=\"labelProperty\"\n [bindValue]=\"valueProperty\"\n [autocomplete]=\"true\"\n id=\"users\"\n ></pry-select>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
+ ], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"share_type\">{{ '@pry.share.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueType($event)\"\n [items]=\"visibilityTypes\"\n [ngModel]=\"value?.type\"\n [disabled]=\"_disabled\"\n i18nPrefix=\"@pry.share.\"\n bindValue=\"value\"\n bindLabel=\"label\"\n id=\"share_type\"\n bindIcon=\"icon\"\n [iconSize]=\"[21, 18]\"\n ></pry-select>\n</div>\n\n<ng-container *ngIf=\"value?.type === PryVisibilityType.RESTRICTED\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"users\">{{ '@pry.share.users' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueUsers($event)\"\n [items]=\"users$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [ngModel]=\"value?.users\"\n [disabled]=\"_disabled\"\n [bindLabel]=\"labelProperty\"\n [bindValue]=\"valueProperty\"\n [autocomplete]=\"true\"\n id=\"users\"\n ></pry-select>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
64
64
  }
65
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareComponent, decorators: [{
66
66
  type: Component,
@@ -161,7 +161,8 @@ export const enTranslations = {
161
161
  switchEdit: 'Edit',
162
162
  switchEditContent: 'Edit composition',
163
163
  share: 'Share',
164
- delete: 'Delete'
164
+ delete: 'Delete',
165
+ notInDsAttr: 'Unavailable attribute'
165
166
  },
166
167
  manifest: {
167
168
  name: 'Name',
@@ -381,6 +382,10 @@ export const enTranslations = {
381
382
  geoAuth: {
382
383
  failure: 'Geoserver error'
383
384
  }
385
+ },
386
+ grid: {
387
+ rows: 'Rows',
388
+ columns: 'Columns'
384
389
  }
385
390
  };
386
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvaTE4bi9lbi50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxjQUFjO1lBQ3JCLE9BQU8sRUFBRSxTQUFTO1NBQ25CO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsS0FBSyxFQUFFLG9DQUFvQztZQUMzQyxHQUFHLEVBQUUsZ0NBQWdDO1lBQ3JDLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsTUFBTSxFQUFFLDRCQUE0QjtZQUNwQyxJQUFJLEVBQUUsK0JBQStCO1lBQ3JDLE9BQU8sRUFBRSxvQ0FBb0M7WUFDN0MsU0FBUyxFQUFFLG1CQUFtQjtTQUMvQjtRQUNELE1BQU0sRUFBRTtZQUNOLHFCQUFxQixFQUFFLHdCQUF3QjtTQUNoRDtRQUNELE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSx5QkFBeUI7WUFDakMsWUFBWSxFQUFFLDBDQUEwQztZQUN4RCxXQUFXLEVBQUUsK0NBQStDO1lBQzVELGFBQWEsRUFBRSxpREFBaUQ7WUFDaEUsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxVQUFVO2dCQUNqQixXQUFXLEVBQUUsY0FBYztnQkFDM0IsZ0JBQWdCLEVBQUUsbUJBQW1CO2FBQ3RDO1lBQ0QsYUFBYSxFQUFFLHNCQUFzQjtZQUNyQyxZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUsb0NBQW9DO2dCQUM1QyxVQUFVLEVBQUUsYUFBYTtnQkFDekIsWUFBWSxFQUFFLG9CQUFvQjtnQkFDbEMsYUFBYSxFQUFFLGdCQUFnQjtnQkFDL0IsVUFBVSxFQUFFLHlCQUF5QjtnQkFDckMsUUFBUSxFQUFF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Z0JBQ2QsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixLQUFLLEVBQUUsd0JBQXdCO2dCQUMvQixTQUFTLEVBQUUsWUFBWTthQUN4QjtZQUNELFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsWUFBWTtnQkFDeEIsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsUUFBUSxFQUFFLFVBQVU7YUFDckI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLFlBQVksRUFBRSxjQUFjO2FBQzdCO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsaUJBQWlCO1NBQzNCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVuVHJhbnNsYXRpb25zID0ge1xuICAnQHByeSc6IHtcbiAgICBzZWxlY3Q6IHtcbiAgICAgIGxhYmVsOiAnT3B0aW9ucyBsaXN0JyxcbiAgICAgIGxvYWRpbmc6ICdMb2FkaW5nJ1xuICAgIH0sXG4gICAgYWJvdXQ6IHtcbiAgICAgIGZyb250OiAnVmVyc2lvbiBGcm9udCBMaWJyYXJ5IDoge3t2YWx1ZX19ICcsXG4gICAgICByZWY6ICdWZXJzaW9uIHJlcG9zaXRvcnkgOiB7e3ZhbHVlfX0nLFxuICAgICAgZGF0YTogJ1ZlcnNpb24gZGF0YSA6IHt7dmFsdWV9fScsXG4gICAgICByZXBsYXk6ICdWZXJzaW9uIHJlcGxheSA6IHt7dmFsdWV9fScsXG4gICAgICBleGVjOiAnVmVyc2lvbiBFeGVjdXRpb24gOiB7e3ZhbHVlfX0nLFxuICAgICAgdHJhbnNmbzogJ1ZlcnNpb24gVHJhbnNmb3JtYXRpb24gOiB7e3ZhbHVlfX0nLFxuICAgICAgbm9WZXJzaW9uOiAnVmVyc2lvbiBub3QgZm91bmQnXG4gICAgfSxcbiAgICBoZWFkZXI6IHtcbiAgICAgIG5vQ3VycmVudFByZXNlbnRhdGlvbjogJ1ByZXNlbnRhdGlvbiBub3Qgc2F2ZWQnXG4gICAgfSxcbiAgICB3aWRnZXQ6IHtcbiAgICAgIG5vRGF0YTogJ05vIGRhdGEgc291cmNlIHNlbGVjdGVkJyxcbiAgICAgIHVucmVjb2duaXplZDogJ1Jlc3RpdHV0aW9uIG9mIHR5cGUge3t0eXBlfX0gaXMgdW5rbm93bi4nLFxuICAgICAgYWRkZWRJblZpZXc6ICdSZXN0aXR1dGlvbiBoYXMgYmVlbiBhZGRlZCBvbiB0YWIgbsKwe3tpbmRleH19JyxcbiAgICAgIHVwZGF0ZWRJblZpZXc6ICdSZXN0aXR1dGlvbiBoYXMgYmVlbiB1cGRhdGVkIG9uIHRhYiBuwrB7e2luZGV4fX0nLFxuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgdGl0bGU6ICdTZXR0aW5ncycsXG4gICAgICAgIGNoYW5nZVRpdGxlOiAnV2lkZ2V0IHRpdGxlJyxcbiAgICAgICAgdmFsaWRhdGVVcGRhdGluZzogJ1ZhbGlkYXRlLVVwZGF0aW5nJ1xuICAgICAgfSxcbiAgICAgIGRlZmluZUNhdGFsb2c6ICdEZWZpbmUgY2F0YWxvZyBlbnRyeScsXG4gICAgICBidXR0b25DaG9pY2U6ICdTZWxlY3QgYSByZXN0aXR1dGlvbicsXG4gICAgICB0b29sdGlwOiB7XG4gICAgICAgIHBhcmFtczogJ1BhcmFtZXRlciByZXN0aXR1dGlvbiBwcmVzZW50YXRpb24nLFxuICAgICAgICByZWFkU2VhcmNoOiAnQ2hvb3NlIGRhdGEnLFxuICAgICAgICBkZWxldGVXaWRnZXQ6ICdEZWxldGUgcmVzdGl0dXRpb24nLFxuICAgICAgICBjYXRhbG9nV2lkZ2V0OiAnQWRkIHRvIGNhdGFsb2cnLFxuICAgICAgICBjaGFuZ2VTcG90OiAnQ2hhbmdlIHdpZGdldCBwbGFjZW1lbnQnLFxuICAgICAgICBzcG90TmFtZTogJ1Nwb3QgbsKwe3twbGFjZX19J1xuICAgICAgfSxcbiAgICAgIHRhcmdldDoge1xuICAgICAgICBuZXc6ICdPcGVuIGluIGEgbmV3IHRhYicsXG4gICAgICAgIGV4aXN0aW5nOiAnT3BlbiBpbiB0YWIgbsKwe3t0YXJnZXRJbmRleH19JyxcbiAgICAgICAgZGVsZXRlOiAnRGVsZXRlJyxcbiAgICAgICAgbWF4aW1pemU6ICdNYXhpbWl6ZScsXG4gICAgICAgIG5vbmVfYXV0bzogJ0luc2VydCByZXN0aXR1dGlvbnMgaGVyZScsXG4gICAgICAgIG5vbmVfbWFudWFsOiBcIkRyYWcgJ24nIGRyb3BcIixcbiAgICAgICAgbG9hZGluZzogJ0xvYWRpbmcnXG4gICAgICB9LFxuICAgICAgbmFtZWRRdWVyeToge1xuICAgICAgICBkZWZhdWx0UnM6ICdDdXJyZW50IHNlYXJjaCcsXG4gICAgICAgIHJlc3VsdHNBY2N1cmF0ZTogJ3t7dG90YWx9fScsXG4gICAgICAgIHJlc3VsdHNOb25BY2N1cmF0ZTogJ3t7ZGlzcGxheWVkfX0gb2YgYXBwcm94aW1hdGVseSB7e3RvdGFsfX0nXG4gICAgICB9LFxuICAgICAgbW9kYWxUaXRsZTogJ0RvIHlvdSB3YW50IHRvIGNvbmZpcm0/JyxcbiAgICAgIGl0ZW1JZDogJ0lkJyxcbiAgICAgIGNsYXNzOiAnQ2xhc3MnLFxuICAgICAgY29sb3JTY2hlbWU6ICdDb2xvciBzY2hlbWUnLFxuICAgICAgY3VzdG9tOiAnQ3VzdG9tIG7CsHt7aWR9fScsXG4gICAgICBhZGRDb2xvcjogJ0FkZCBjb2xvcicsXG4gICAgICByZW1vdmVDb2xvcjogJ1JlbW92ZSBjb2xvcidcbiAgICB9LFxuICAgIHZpZXc6IHtcbiAgICAgIG5hbWU6ICdUYWIgbsKwe3tyYW5rfX0nXG4gICAgfSxcbiAgICB0b29sYm94OiB7XG4gICAgICBkZWZhdWx0U2l6ZTogJ1Jlc3RpdHV0aW9uIHNpemUnLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgbmFtZTogJ1ByZXNlbnRhdGlvbiBuYW1lJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdQcmVzZW50YXRpb24gZGVzY3JpcHRpb24nLFxuICAgICAgICBzYXZlZDogJ1ByZXNlbnRhdGlvbiBzYXZlZCBhcyB7e3ZpZXdJZH19JyxcbiAgICAgICAgc2F2ZUVycm9yQ29kZToge1xuICAgICAgICAgIFVOS05PV046ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICBGT1JCSURERU46ICdZb3UgYXJlIG5vdCB0aGUgb3duZXIgb2YgdGhpcyBwcmVzZW50YXRpb24nLFxuICAgICAgICAgIE5BTUVfQUxSRUFEWV9VU0VEOiAnQSBwcmVzZW50YXRpb24gY2FsbGVkIFwie3tuYW1lfX1cIiBhbHJlYWR5IGV4aXN0cywgcGxlYXNlIHNlbGVjdCBhbm90aGVyIG5hbWUuJyxcbiAgICAgICAgICBTQVZFX01FVEFEQVRBOiAnU2F2ZSB5b3VyIHByZXNlbnRhdGlvbiBiZWZvcmUgY2hvb3NpbmcgdGhlIHRoZW1lLidcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdGVkOiAnUHJlc2VudGF0aW9uIHt7dmlld0lkfX0gbWFya2VkIGFzIGZhdm91cml0ZScsXG4gICAgICAgIHVuZGVmYXVsdGVkOiAnUHJlc2VudGF0aW9uIHt7dmlld0lkfX0gaXMgbm8gbG9uZ2VyIG1hcmtlZCBhcyBmYXZvdXJpdGUnLFxuICAgICAgICB2YWxpZGF0ZWQ6ICdWYWxpZGF0ZScsXG4gICAgICAgIGNoZWNrOiAnU2F2ZScsXG4gICAgICAgIGNsb3NlOiAnQ2FuY2VsJyxcbiAgICAgICAgdmFsaWRhdGU6ICdWYWxpZGF0ZSdcbiAgICAgIH0sXG4gICAgICBjYXRhbG9nOiB7XG4gICAgICAgIHRpdGxlOiAnQ3VzdG9tJyxcbiAgICAgICAgbGFiZWw6ICdOYW1lJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICAgIGljb246ICdJbWFnZScsXG4gICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgIGRlbGV0ZTogJ0NhbmNlbCBmaWx0ZXInLFxuICAgICAgICAgIHR5cGU6ICdGaWx0ZXIgYnkgdHlwZScsXG4gICAgICAgICAgbmFtZTogJ0ZpbHRlciBieSBuYW1lJ1xuICAgICAgICB9LFxuICAgICAgICBzYXZlZDogJ1Jlc3RpdHV0aW9uIHNhdmVkIGFzIHt7dmlld0lkfX0nLFxuICAgICAgICBzYXZlRXJyb3JDb2RlOiB7XG4gICAgICAgICAgVU5LTk9XTjogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICAgIE5BTUVfQUxSRUFEWV9VU0VEOiAnQSByZXN0aXR1dGlvbiBjYWxsZWQgXCJ7e25hbWV9fVwiIGFscmVhZHkgZXhpc3RzLCBwbGVhc2Ugc2VsZWN0IGFub3RoZXIgbmFtZS4nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlZGl0OiAnTW9kaWZ5IGxheW91dCcsXG4gICAgICBlZGl0T2ZmOiAnVmlzdWFsaXplIGxheW91dCcsXG4gICAgICBsYXVuY2g6ICdOZXcgdGFiJyxcbiAgICAgIGxhdW5jaEluZGljYXRpb246ICdPcGVuIHRoaXMgcGFnZSBpbiBhJyxcbiAgICAgIGNob29zZUdyaWQ6ICdDaGFuZ2UgZ3JpZCBsYXlvdXQnLFxuICAgICAgY2xlYXI6ICdDbGVhciBwcmVzZW50YXRpb24nLFxuICAgICAgcmVmcmVzaDogJ1JlZnJlc2ggZGF0YScsXG4gICAgICBhdXRvbWF0ZVJlZnJlc2g6ICdBdXRvbWF0ZSByZWZyZXNoJyxcbiAgICAgIG9wdGlvbnM6ICdPcHRpb25zJyxcbiAgICAgIGNsb3NlOiAnQ2xvc2UnLFxuICAgICAgZmlsdGVyOiAnRmlsdGVyJyxcbiAgICAgIGhlYXRtYXA6ICdIZWF0bWFwJyxcbiAgICAgIGJ1YmJsZW1hcDogJ0J1YmJsZXMnLFxuICAgICAgbWFya2VybWFwOiAnTWFya2VycycsXG4gICAgICBzaW1wbGVtYXA6ICdNYXAnLFxuICAgICAgbWFwOiAnTWFwJyxcbiAgICAgIHRhYmxlOiAnVGFibGUnLFxuICAgICAgZGV0YWlsOiAnRGV0YWlsJyxcbiAgICAgIGNoYXJ0OiAnQ2hhcnQnLFxuICAgICAgcmVzdWx0U2V0OiAnTmFtZWQgUXVlcmllcycsXG4gICAgICByZW5hbWU6ICdTYXZlIG15IHByZXNlbnRhdGlvbicsXG4gICAgICByZXN0b3JlOiAnUmVzdG9yZSBjbG9zZWQgcGFnZXMnLFxuICAgICAgc2F2ZTogJ1NhdmUnLFxuICAgICAgZHJhZzogJ1Jlc3RpdHV0aW9uLi4uJyxcbiAgICAgIGRyYWdJbmRpY2F0aW9uOiAnSW5zZXJ0IGEnLFxuICAgICAgYmFyY2hhcnQ6ICdCYXInLFxuICAgICAgaGlzdG9ncmFtOiAnSGlzdG9ncmFtJyxcbiAgICAgIGxpbmVjaGFydDogJ0xpbmUnLFxuICAgICAgcG9pbnRjaGFydDogJ1BvaW50JyxcbiAgICAgIGFyZWFjaGFydDogJ0FyZWEnLFxuICAgICAgYXJjY2hhcnQ6ICdBcmMnLFxuICAgICAgcmFkYXJjaGFydDogJ1JhZGFyJyxcbiAgICAgIGNpcmNsZWNoYXJ0OiAnQ2lyY2xlIHBhY2tpbmcnLFxuICAgICAgaWZyYW1lOiAnRXh0ZXJuYWwgYXBwbGljYXRpb24nLFxuICAgICAgdmVnYTogJ0FkdmFuY2VkIGNoYXJ0JyxcbiAgICAgIGdyYXBoOiAnR3JhcGgnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgc3ViOiB7XG4gICAgICAgIG1hcDogJ01hcCcsXG4gICAgICAgIGNoYXJ0OiAnQ2hhcnQnLFxuICAgICAgICBvdGhlcjogJ090aGVyJ1xuICAgICAgfSxcbiAgICAgIHRpbGU6ICdUaWxlcycsXG4gICAgICB0ZW1wbGF0ZTogJ0hUTUwgVGVtcGxhdGUnLFxuICAgICAgbm93OiAnVG9kYXknLFxuICAgICAgc2luY2VfZGF5OiAne3tkYXl9fSBkYXl7e3BsdXJhbH19IGFnbycsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgJzAnOiAnRnJlZSBsYXlvdXQnLFxuICAgICAgICAnMF9kZXRhaWxsZWQnOiAnRnJlZSBtb2RlIGRpc3BsYXksIHJlbmRlcmluZyBzaXplIGFuZCBwb3NpdGlvbmluZyBmdWxseSBjdXN0b21pemFibGUgYnkgdGhlIHVzZXIuJyxcbiAgICAgICAgJzEnOiAnRnVsbHNjcmVlbicsXG4gICAgICAgICcxX2RldGFpbGxlZCc6ICdEaXNwbGF5IG9mIGEgc2luZ2xlIHJlbmRlciBvbiB0aGUgd2hvbGUgc2NyZWVuLCB0aGUgcGxhY2VtZW50IGlzIHN5c3RlbSBndWlkZWQuJyxcbiAgICAgICAgJzEvMnYnOiAnVmVydGljYWwgMS8yJyxcbiAgICAgICAgJzEvMnZfZGV0YWlsbGVkJzpcbiAgICAgICAgICAnRGlzcGxheSBvZiAyIHJlbmRlcnMgbWF4aW11bSwgb24gYSBzY3JlZW4gc3BsaXQgaW4gMiB2ZXJ0aWNhbCB6b25lcywgdGhlIHJlbmRlciBhZGR0aW9uIGlzIG1hZGUgaW4gYW4gZW1wdHkgem9uZSwgdGhlIHBsYWNlbWVudCBpcyBzeXN0ZW0gZ3VpZGVkLicsXG4gICAgICAgICcxLzJoJzogJ0hvcml6b250YWwgMS8yJyxcbiAgICAgICAgJzEvMmhfZGV0YWlsbGVkJzpcbiAgICAgICAgICAnRGlzcGxheSBvZiAyIHJlbmRlcnMgbWF4aW11bSwgb24gYSBzY3JlZW4gc3BsaXQgaW4gMiBob3Jpem9udGFsIHpvbmVzLCB0aGUgcmVuZGVyIGFkZHRpb24gaXMgbWFkZSBpbiBhbiBlbXB0eSB6b25lLCB0aGUgcGxhY2VtZW50IGlzIHN5c3RlbSBndWlkZWQuJyxcbiAgICAgICAgJzEvM3YnOiAnVmVydGljYWwgMS8zJyxcbiAgICAgICAgJzEvM3ZfZGV0YWlsbGVkJzpcbiAgICAgICAgICAnRGlzcGxheSBvZiAzIHJlbmRlcnMgbWF4aW11bSwgb24gYSBzY3JlZW4gc3BsaXQgaW4gMyB2ZXJ0aWNhbCB6b25lcywgdGhlIHJlbmRlciBhZGR0aW9uIGlzIG1hZGUgaW4gYW4gZW1wdHkgem9uZSwgdGhlIHBsYWNlbWVudCBpcyBzeXN0ZW0gZ3VpZGVkLicsXG4gICAgICAgICcxLzNoJzogJ0hvcml6b250YWwgMS8zJyxcbiAgICAgICAgJzEvM2hfZGV0YWlsbGVkJzpcbiAgICAgICAgICAnRGlzcGxheSBvZiAzIHJlbmRlcnMgbWF4aW11bSwgb24gYSBzY3JlZW4gc3BsaXQgaW4gMyBob3Jpem9udGFsIHpvbmVzLCB0aGUgcmVuZGVyIGFkZHRpb24gaXMgbWFkZSBpbiBhbiBlbXB0eSB6b25lLCB0aGUgcGxhY2VtZW50IGlzIHN5c3RlbSBndWlkZWQuJyxcbiAgICAgICAgJzEvNCc6ICcxLzQgc2NyZWVuJyxcbiAgICAgICAgJzEvNF9kZXRhaWxsZWQnOlxuICAgICAgICAgICdEaXNwbGF5IG9mIDQgcmVuZGVycyBtYXhpbXVtLCBvbiBhIHNwbGl0IHNjcmVlbiBpbiA0IHpvbmVzLCB0aGUgcmVuZGVyIGFkZHRpb24gaXMgbWFkZSBpbiBhbiBlbXB0eSB6b25lLCB0aGUgcGxhY2VtZW50IGlzIHN5c3RlbSBndWlkZWQuJ1xuICAgICAgfSxcbiAgICAgIHN3aXRjaEVkaXQ6ICdFZGl0JyxcbiAgICAgIHN3aXRjaEVkaXRDb250ZW50OiAnRWRpdCBjb21wb3NpdGlvbicsXG4gICAgICBzaGFyZTogJ1NoYXJlJyxcbiAgICAgIGRlbGV0ZTogJ0RlbGV0ZSdcbiAgICB9LFxuICAgIG1hbmlmZXN0OiB7XG4gICAgICBuYW1lOiAnTmFtZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgIGNyZWF0aW9uOiAnQ3JlYXRpb24gZGF0ZScsXG4gICAgICBtb2RpZmljYXRpb246ICdNb2RpZmljYXRpb24gZGF0ZScsXG4gICAgICBhY3Rpb25zOiAnQWN0aW9ucycsXG4gICAgICBpbXBvcnQ6ICdJbXBvcnQnLFxuICAgICAgaW1wb3J0QWx0OiAnSW1wb3J0IGEgcHJlc2VudGF0aW9uJyxcbiAgICAgIHRpdGxlOiAnUHJlc2VudGF0aW9ucycsXG4gICAgICBnZXQ6IHtcbiAgICAgICAgZXJyb3JGcm9udDogJ0NsaWVudCBlcnJvciA6IHt7bXNnfX0nLFxuICAgICAgICBlcnJvckJhY2s6ICdTZXJ2ZXIgZXJyb3Igd2l0aCBjb2RlIDogW3t7Y29kZX19XSdcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0OiAnU2V0IGRlZmF1bHQnLFxuICAgICAgZG93bmxvYWQ6ICdEb3dubG9hZCcsXG4gICAgICBsb2FkOiAnTG9hZCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgICAgZGVsZXRlRXJyb3I6ICdTZWFyY2ggdXNlZCBpbiBvbmUgb3IgbW9yZSByZXN0aXR1dGlvbihzKSwgcGxlYXNlIGRlbGV0ZSB0aGVtIGZpcnN0J1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBkYXRlOiAnTU0vZGQveXl5eScsXG4gICAgICBkYXRldGltZTogJ01NL2RkL3l5eXkgaGg6bW06c3MgYScsXG4gICAgICBkZWNpbWFsOiAnLicsXG4gICAgICB0aG91c2FuZHM6ICcuJ1xuICAgIH0sXG4gICAgY29udGV4dDoge1xuICAgICAgYWRkOiAnQWRkIHRvIHNlbGVjdGlvbicsXG4gICAgICByZW1vdmU6ICdSZW1vdmUgZnJvbSBzZWxlY3Rpb24nLFxuICAgICAgbGluazogJ0xpbmsgdG8gc2VsZWN0aW9uJyxcbiAgICAgIGludmVydDogJ0ludmVydCBzZWxlY3Rpb24nLFxuICAgICAgcHJveGltaXR5OiAnR2V0IGxpbmtlZCBvYmplY3RzJyxcbiAgICAgIGV4cGxvcmU6ICdPcGVuIEdyYXBoIHJlc3RpdHV0aW9uJyxcbiAgICAgIGRldGFpbDogJ09wZW4gRGV0YWlsIHJlc3RpdHV0aW9uJyxcbiAgICAgIGZseWluZ0RldGFpbDogJ1ZpZXcgb2JqZWN0JyxcbiAgICAgIGFkZHJlc3NGcm9tTG9jOiAnR2V0IGFkZHJlc3MnLFxuICAgICAgZXJyb3JTZWFyY2hBZGRyZXNzOiAnQWRkcmVzcyBub3QgZm91bmQnLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIGNyZWF0ZTogJ0NyZWF0ZScsXG4gICAgICBjcmVhdGVPYmplY3Q6IHtcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBvYmplY3Q6ICdDcmVhdGUgYW4gb2JqZWN0JyxcbiAgICAgICAgICBsaW5rOiAnQ3JlYXRlIGEgbGluaycsXG4gICAgICAgICAgaW52ZXJzaW9uOiAnUmV2ZXJzZSB0aGUgbGluaycsXG4gICAgICAgICAgbGlua2VkT2JqZWN0OiAnQ3JlYXRlIGEgbGlua2VkIG9iamVjdCdcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3M6ICdPYmplY3QgY2xhc3MnLFxuICAgICAgICBsaW5rOiAnTGluayB3aXRoIHRoZSBuZXcgb2JqZWN0JyxcbiAgICAgICAgY3JlYXRlZDogJ09iamVjdCBoYXMgYmVlbiBjcmVhdGVkJyxcbiAgICAgICAgZGV0YWlsczogJ1NlZSBkZXRhaWwnLFxuICAgICAgICBhZGRNdWx0aUZpZWxkOiAnQWRkIGEge3tuYW1lfX0gdmFsdWUnXG4gICAgICB9XG4gICAgfSxcbiAgICBhY3Rpb246IHtcbiAgICAgIGNsb3NlOiAnQ2xvc2UnLFxuICAgICAgY2xvc2VQYW5lbDogJ0Nsb3NlIHBhbmVsJyxcbiAgICAgIGRlbGV0ZTogJ0RlbGV0ZScsXG4gICAgICBlZGl0OiAnRWRpdCcsXG4gICAgICBlZGl0UHJvZmlsOiAnRWRpdCBwcm9maWwnLFxuICAgICAgY2hvaWNlOiAnQ2hvaWNlJyxcbiAgICAgIGNob2ljZUluTGlzdDogJ0Nob29zZSBhbiBpdGVtIGluIGxpc3QnLFxuICAgICAgdGV4dDogJ0ZpbGwgZmllbGQnLFxuICAgICAgc29ydGFibGVDb2x1bW5IZWFkZXI6ICdVc2UgY29sdW1uIGhlYWRlciBidXR0b25zIHRvIHNvcnQnLFxuICAgICAgdmlld0RldGFpbHM6ICdWaWV3IGRldGFpbHMnLFxuICAgICAgc2VsZWN0RGF0ZTogJ1NlbGVjdCBhIGRhdGUnLFxuICAgICAgb3BlbnNJbk5ld1RhYjogJ09wZW5zIGluIG5ldyB0YWInLFxuICAgICAgc2tpcExpbms6ICdTa2lwIHRvIG1haW4gY29udGVudCcsXG4gICAgICBzZWxlY3RQaWN0dXJlOiAnU2VsZWN0IGEgcGljdHVyZScsXG4gICAgICBtb3ZlRG93bjogJ01vdmUgZG93bicsXG4gICAgICBtb3ZlVXA6ICdNb3ZlIHVwJyxcbiAgICAgIGV4cG9ydEFzRm9ybWF0OiAnRXhwb3J0IGFzJyxcbiAgICAgIG9wZW5NZW51V2lkZ2V0OiAnUmVzdGl0dXRpb24gbWVudScsXG4gICAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgICAgdXBsb2FkOiAnQWRkIGltYWdlJyxcbiAgICAgIG5leHQ6ICdOZXh0JyxcbiAgICAgIGJhY2s6ICdCYWNrJyxcbiAgICAgIGZpbHRlckJ5VHlwZTogJ0ZpbHRlciBieSB0eXBlJyxcbiAgICAgIGVkaXRNZXRhZGF0YTogJ0VkaXQgbWV0YWRhdGEnLFxuICAgICAgYWRkTWV0YWRhdGE6ICdBZGQgbWV0YWRhdGEnXG4gICAgfSxcbiAgICBzbmFjazoge1xuICAgICAgZGVmYXVsdDogJ1ZlZ2EgZW5jb3VudGVyZWQgYW4gZXJyb3IgdXNpbmcgeW91ciBkYXRhIGFuZCBzZXR0aW5ncy4nLFxuICAgICAgbWlzc2luZ1BhcmVudDogJ0EgcGFyZW50IG5vZGUgaXMgbWlzc2luZyBpbiB5b3VyIGRhdGFzZXQuIFBsZWFzZSBmaXggeW91ciBkYXRhLicsXG4gICAgICBtaXNzaW5nVmFsdWU6ICdBbiBpdGVtIGlzIG1pc3NpbmcgdGhlIHZhbHVlIGZpZWxkLiBQbGVhc2UgZml4IHlvdXIgZGF0YS4nLFxuICAgICAgZW1wdHlWYWx1ZXM6ICdGaWVsZCB2YWx1ZXMgY2Fubm90IGJlIGFsbCBhdCAwLiBQbGVhc2UgZml4IHlvdXIgZGF0YS4nLFxuICAgICAgcGFnZXNDaGFuZ2VkOiAnQXR0ZW50aW9uLCBsZSBub21icmUgZGUgcGFnZXMgZGUgdm90cmUgcHLDqXNlbnRhdGlvbiBhIGNoYW5nw6ksIHF1ZSBzb3VoYWl0ZXotdm91cyBmYWlyZSA/JyxcbiAgICAgIGltYWdlTmFtZUFscmVhZHlVc2VkOiAnVGhpcyBpbWFnZSBuYW1lIGlzIGFscmVhZHkgdXNlZCdcbiAgICB9LFxuICAgIHRoZW1lOiB7XG4gICAgICBlZGl0SW5wdXQ6IHtcbiAgICAgICAgdG9nZ2xlOiAnRWRpdCdcbiAgICAgIH0sXG4gICAgICBwcmV2aW91c01vbnRoOiAnUHJldmlvdXMgbW9udGgnLFxuICAgICAgbmV4dE1vbnRoOiAnTmV4dCBtb250aCcsXG4gICAgICB3ZWVrZGF5czoge1xuICAgICAgICAwOiAnTW9uZGF5JyxcbiAgICAgICAgMTogJ1R1ZXNkYXknLFxuICAgICAgICAyOiAnV2VkbmVzZGF5JyxcbiAgICAgICAgMzogJ1RodXJzZGF5JyxcbiAgICAgICAgNDogJ0ZyaWRheScsXG4gICAgICAgIDU6ICdTYXR1cmRheScsXG4gICAgICAgIDY6ICdTdW5kYXknXG4gICAgICB9LFxuICAgICAgc2hvcnRXZWVrZGF5czoge1xuICAgICAgICAwOiAnTW9uJyxcbiAgICAgICAgMTogJ1R1ZScsXG4gICAgICAgIDI6ICdXZWQnLFxuICAgICAgICAzOiAnVGh1JyxcbiAgICAgICAgNDogJ0ZyaScsXG4gICAgICAgIDU6ICdTYXQnLFxuICAgICAgICA2OiAnU3VuJ1xuICAgICAgfSxcbiAgICAgIG1vbnRoczoge1xuICAgICAgICAwOiAnSmFudWFyeScsXG4gICAgICAgIDE6ICdGZWJydWFyeScsXG4gICAgICAgIDI6ICdNYXJjaCcsXG4gICAgICAgIDM6ICdBcHJpbCcsXG4gICAgICAgIDQ6ICdNYXknLFxuICAgICAgICA1OiAnSnVuZScsXG4gICAgICAgIDY6ICdKdWx5JyxcbiAgICAgICAgNzogJ0F1Z3VzdCcsXG4gICAgICAgIDg6ICdTZXB0ZW1iZXInLFxuICAgICAgICA5OiAnT2N0b2JlcicsXG4gICAgICAgIDEwOiAnTm92ZW1iZXInLFxuICAgICAgICAxMTogJ0RlY2VtYmVyJ1xuICAgICAgfVxuICAgIH0sXG4gICAgc2hhcmU6IHtcbiAgICAgIHByaXZhdGU6ICdQcml2YXRlJyxcbiAgICAgIHB1YmxpYzogJ1B1YmxpYycsXG4gICAgICByZXN0cmljdGVkOiAnUmVzdHJpY3RlZCcsXG4gICAgICB0eXBlOiAnVmlzaWJpbGl0eScsXG4gICAgICB1c2VyczogJ0F1dGhvcml6ZWQgdXNlcnMnXG4gICAgfSxcbiAgICBob21lcGFnZToge1xuICAgICAgbWVudToge1xuICAgICAgICBtb2RlbDogJ0RhdGEgbW9kZWwnLFxuICAgICAgICBkYXRhOiAnRGF0YSBhY2Nlc3MnXG4gICAgICB9XG4gICAgfSxcbiAgICBtZXRhZGF0YToge1xuICAgICAgdmlldzogJ1ZpZXcgbWV0YWRhdGEnXG4gICAgfSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICBjaGlwc1NlbGVjdG9yOiB7XG4gICAgICAgIGRhdGFzb3VyY2U6IHtcbiAgICAgICAgICBzZWxlY3Q6ICdTZWxlY3Qgb25lIG9yIG1vcmUgZGF0YSBzb3VyY2Uocyk6JyxcbiAgICAgICAgICBzZWxlY3Rpb246ICdTZWxlY3RlZCBkYXRhIHNvdXJjZShzKTonLFxuICAgICAgICAgIHNlbGVjdEl0ZW06ICdTZWxlY3QgdGhpcyBkYXRhIHNvdXJjZScsXG4gICAgICAgICAgdW5zZWxlY3RJdGVtOiAnVW5zZWxlY3QgdGhpcyBkYXRhIHNvdXJjZScsXG4gICAgICAgICAgbm9JdGVtU2VsZWN0ZWQ6ICdObyBkYXRhIHNvdXJjZSBzZWxlY3RlZCdcbiAgICAgICAgfSxcbiAgICAgICAgc2hhcmU6IHtcbiAgICAgICAgICBzZWxlY3Q6ICdTZWxlY3Qgb25lIG9yIG1vcmUgdXNlciBncm91cDonLFxuICAgICAgICAgIHNlbGVjdGlvbjogJ1NlbGVjdGVkIHVzZXIgZ3JvdXBzOicsXG4gICAgICAgICAgc2VsZWN0SXRlbTogJ1NlbGVjdCB0aGlzIHVzZXIgZ3JvdXAnLFxuICAgICAgICAgIHVuc2VsZWN0SXRlbTogJ1Vuc2VsZWN0IHRoaXMgdXNlciBncm91cCcsXG4gICAgICAgICAgbm9JdGVtU2VsZWN0ZWQ6ICdObyB1c2VyIGdyb3VwIHNlbGVjdGVkJyxcbiAgICAgICAgICBncm91cHM6IHtcbiAgICAgICAgICAgIEFMTDogJ1B1YmxpYycsXG4gICAgICAgICAgICBBVVRIRU5USUNBVEVEOiAnQ29ubmVjdGVkIHVzZXJzJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNlYXJjaERhdGE6ICdTZWFyY2gnXG4gICAgfSxcbiAgICBlcnJvcnM6IHtcbiAgICAgIGRlZmF1bHQ6ICdUaGVyZSBpcyBhbiBlcnJvci4gVHJ5IGFnYWluIG9yIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yJyxcbiAgICAgIGNvZGVzOiB7XG4gICAgICAgIDA6ICdBbiBlcnJvciBvY2N1cnJlZCBvbiBjbGllbnQtc2lkZS4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IENPUlMsIG5ldHdvcmsgZXJyb3IsIC4uLiBSZXNvdXJjZSBjYW5ub3QgYmUgcmVhY2hlZC4nLFxuICAgICAgICA0MDA6ICdBbiBlcnJvciBvY2N1cnJlZC4nLFxuICAgICAgICA0MDE6ICdTZXNzaW9uIGV4cGlyZWQuIFRyeSB0byByZWNvbm5lY3QhJyxcbiAgICAgICAgNDAzOiAnQWNjZXNzIHVuYXV0aG9yaXplZCcsXG4gICAgICAgIDQwNDogJ1Jlc3NvdXJjZSBub3QgZm91bmQnLFxuICAgICAgICA0MDk6ICdSZXNzb3VyY2UgYWxyZWFkeSBleGlzdCcsXG4gICAgICAgIDUwMDogJ0FuIGVycm9yIG9jY3VycmVkLicsXG4gICAgICAgIDUwMzogJ1NlcnZpY2UgdW5hdmFpbGFibGUuIHRyeSBhZ2FpbiBsYXRlciEnXG4gICAgICB9XG4gICAgfSxcbiAgICBmaWx0ZXJzOiB7XG4gICAgICBsYWJlbDogJ0ZpbHRlciBzZXR0aW5ncycsXG4gICAgICBub0F0dHJpYnV0ZXM6ICdQcmVzZW50YXRpb24gaGFkIG5vIGF2YWlsYWJsZSBhdHRyaWJ1dGVzJyxcbiAgICAgIG5vRmlsdGVyczogJ05vIGZpbHRlcnMgc2V0IHVwIGZvciB0aGlzIHByZXNlbnRhdGlvbiB5ZXQuJyxcbiAgICAgIGNsZWFyOiAnQ2xlYXIgYWxsJyxcbiAgICAgIGxpc3Q6IHtcbiAgICAgICAgYXR0cmlidXRlczogJ0F0dHJpYnV0ZXM6ICcsXG4gICAgICAgIGFkZDogJ0FkZCBmaWx0ZXInLFxuICAgICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgICAgICBtb2RpZnk6ICdNb2RpZnknXG4gICAgICB9LFxuICAgICAgY3JlYXRpb246IHtcbiAgICAgICAgY3JlYXRlOiAnTmV3IGZpbHRlcicsXG4gICAgICAgIHVwZGF0ZTogJ0VkaXQgZmlsdGVyJyxcbiAgICAgICAgbmFtZTogJ0ZpbHRlciBuYW1lJyxcbiAgICAgICAgdHlwZTogJ0ZpbHRlciB0eXBlJyxcbiAgICAgICAgZmlsdGVyOiAnRmlsdGVyJyxcbiAgICAgICAgYXR0cmlidXRlczogJ0F0dHJpYnV0ZXMnLFxuICAgICAgICB2YWx1ZTogJ1ZhbHVlJyxcbiAgICAgICAgdmFsdWVzOiAnVmFsdWVzJyxcbiAgICAgICAgdmFsaWRhdGU6ICdDb25maXJtJyxcbiAgICAgICAgbGltaXQ6ICdBdXRvY29tcGxldGUgcHJvcG9zYWxzJyxcbiAgICAgICAgZGF0ZVJhbmdlOiAnRGF0ZSByYW5nZSdcbiAgICAgIH0sXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGRhdGFzb3VyY2U6ICdEYXRhc291cmNlJyxcbiAgICAgICAgY2xhc3M6ICdDbGFzc2UnLFxuICAgICAgICBvcGVyYXRvcjogJ09wZXJhdG9yJ1xuICAgICAgfSxcbiAgICAgIHR5cGVzOiB7XG4gICAgICAgIHRleHQ6ICdUZXh0JyxcbiAgICAgICAgZGF0ZTogJ0RhdGUnLFxuICAgICAgICBsaXN0OiAnTGlzdCcsXG4gICAgICAgIG51bWJlcjogJ051bWJlcicsXG4gICAgICAgIGF1dG9jb21wbGV0ZTogJ0F1dG9jb21wbGV0ZSdcbiAgICAgIH1cbiAgICB9LFxuICAgIGdlb0F1dGg6IHtcbiAgICAgIGZhaWx1cmU6ICdHZW9zZXJ2ZXIgZXJyb3InXG4gICAgfVxuICB9XG59O1xuIl19
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvaTE4bi9lbi50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxjQUFjO1lBQ3JCLE9BQU8sRUFBRSxTQUFTO1NBQ25CO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsS0FBSyxFQUFFLG9DQUFvQztZQUMzQyxHQUFHLEVBQUUsZ0NBQWdDO1lBQ3JDLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsTUFBTSxFQUFFLDRCQUE0QjtZQUNwQyxJQUFJLEVBQUUsK0JBQStCO1lBQ3JDLE9BQU8sRUFBRSxvQ0FBb0M7WUFDN0MsU0FBUyxFQUFFLG1CQUFtQjtTQUMvQjtRQUNELE1BQU0sRUFBRTtZQUNOLHFCQUFxQixFQUFFLHdCQUF3QjtTQUNoRDtRQUNELE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSx5QkFBeUI7WUFDakMsWUFBWSxFQUFFLDBDQUEwQztZQUN4RCxXQUFXLEVBQUUsK0NBQStDO1lBQzVELGFBQWEsRUFBRSxpREFBaUQ7WUFDaEUsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxVQUFVO2dCQUNqQixXQUFXLEVBQUUsY0FBYztnQkFDM0IsZ0JBQWdCLEVBQUUsbUJBQW1CO2FBQ3RDO1lBQ0QsYUFBYSxFQUFFLHNCQUFzQjtZQUNyQyxZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUsb0NBQW9DO2dCQUM1QyxVQUFVLEVBQUUsYUFBYTtnQkFDekIsWUFBWSxFQUFFLG9CQUFvQjtnQkFDbEMsYUFBYSxFQUFFLGdCQUFnQjtnQkFDL0IsVUFBVSxFQUFFLHlCQUF5QjtnQkFDckMsUUFBUSxFQUFF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O2dCQUN4QixLQUFLLEVBQUUsT0FBTztnQkFDZCxNQUFNLEVBQUUsUUFBUTtnQkFDaEIsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLEtBQUssRUFBRSx3QkFBd0I7Z0JBQy9CLFNBQVMsRUFBRSxZQUFZO2FBQ3hCO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxZQUFZO2dCQUN4QixLQUFLLEVBQUUsUUFBUTtnQkFDZixRQUFRLEVBQUUsVUFBVTthQUNyQjtZQUNELEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsWUFBWSxFQUFFLGNBQWM7YUFDN0I7U0FDRjtRQUNELE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFBRSxpQkFBaUI7U0FDM0I7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLFNBQVM7S0FDbkI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVuVHJhbnNsYXRpb25zID0ge1xuICAnQHByeSc6IHtcbiAgICBzZWxlY3Q6IHtcbiAgICAgIGxhYmVsOiAnT3B0aW9ucyBsaXN0JyxcbiAgICAgIGxvYWRpbmc6ICdMb2FkaW5nJ1xuICAgIH0sXG4gICAgYWJvdXQ6IHtcbiAgICAgIGZyb250OiAnVmVyc2lvbiBGcm9udCBMaWJyYXJ5IDoge3t2YWx1ZX19ICcsXG4gICAgICByZWY6ICdWZXJzaW9uIHJlcG9zaXRvcnkgOiB7e3ZhbHVlfX0nLFxuICAgICAgZGF0YTogJ1ZlcnNpb24gZGF0YSA6IHt7dmFsdWV9fScsXG4gICAgICByZXBsYXk6ICdWZXJzaW9uIHJlcGxheSA6IHt7dmFsdWV9fScsXG4gICAgICBleGVjOiAnVmVyc2lvbiBFeGVjdXRpb24gOiB7e3ZhbHVlfX0nLFxuICAgICAgdHJhbnNmbzogJ1ZlcnNpb24gVHJhbnNmb3JtYXRpb24gOiB7e3ZhbHVlfX0nLFxuICAgICAgbm9WZXJzaW9uOiAnVmVyc2lvbiBub3QgZm91bmQnXG4gICAgfSxcbiAgICBoZWFkZXI6IHtcbiAgICAgIG5vQ3VycmVudFByZXNlbnRhdGlvbjogJ1ByZXNlbnRhdGlvbiBub3Qgc2F2ZWQnXG4gICAgfSxcbiAgICB3aWRnZXQ6IHtcbiAgICAgIG5vRGF0YTogJ05vIGRhdGEgc291cmNlIHNlbGVjdGVkJyxcbiAgICAgIHVucmVjb2duaXplZDogJ1Jlc3RpdHV0aW9uIG9mIHR5cGUge3t0eXBlfX0gaXMgdW5rbm93bi4nLFxuICAgICAgYWRkZWRJblZpZXc6ICdSZXN0aXR1dGlvbiBoYXMgYmVlbiBhZGRlZCBvbiB0YWIgbsKwe3tpbmRleH19JyxcbiAgICAgIHVwZGF0ZWRJblZpZXc6ICdSZXN0aXR1dGlvbiBoYXMgYmVlbiB1cGRhdGVkIG9uIHRhYiBuwrB7e2luZGV4fX0nLFxuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgdGl0bGU6ICdTZXR0aW5ncycsXG4gICAgICAgIGNoYW5nZVRpdGxlOiAnV2lkZ2V0IHRpdGxlJyxcbiAgICAgICAgdmFsaWRhdGVVcGRhdGluZzogJ1ZhbGlkYXRlLVVwZGF0aW5nJ1xuICAgICAgfSxcbiAgICAgIGRlZmluZUNhdGFsb2c6ICdEZWZpbmUgY2F0YWxvZyBlbnRyeScsXG4gICAgICBidXR0b25DaG9pY2U6ICdTZWxlY3QgYSByZXN0aXR1dGlvbicsXG4gICAgICB0b29sdGlwOiB7XG4gICAgICAgIHBhcmFtczogJ1BhcmFtZXRlciByZXN0aXR1dGlvbiBwcmVzZW50YXRpb24nLFxuICAgICAgICByZWFkU2VhcmNoOiAnQ2hvb3NlIGRhdGEnLFxuICAgICAgICBkZWxldGVXaWRnZXQ6ICdEZWxldGUgcmVzdGl0dXRpb24nLFxuICAgICAgICBjYXRhbG9nV2lkZ2V0OiAnQWRkIHRvIGNhdGFsb2cnLFxuICAgICAgICBjaGFuZ2VTcG90OiAnQ2hhbmdlIHdpZGdldCBwbGFjZW1lbnQnLFxuICAgICAgICBzcG90TmFtZTogJ1Nwb3QgbsKwe3twbGFjZX19J1xuICAgICAgfSxcbiAgICAgIHRhcmdldDoge1xuICAgICAgICBuZXc6ICdPcGVuIGluIGEgbmV3IHRhYicsXG4gICAgICAgIGV4aXN0aW5nOiAnT3BlbiBpbiB0YWIgbsKwe3t0YXJnZXRJbmRleH19JyxcbiAgICAgICAgZGVsZXRlOiAnRGVsZXRlJyxcbiAgICAgICAgbWF4aW1pemU6ICdNYXhpbWl6ZScsXG4gICAgICAgIG5vbmVfYXV0bzogJ0luc2VydCByZXN0aXR1dGlvbnMgaGVyZScsXG4gICAgICAgIG5vbmVfbWFudWFsOiBcIkRyYWcgJ24nIGRyb3BcIixcbiAgICAgICAgbG9hZGluZzogJ0xvYWRpbmcnXG4gICAgICB9LFxuICAgICAgbmFtZWRRdWVyeToge1xuICAgICAgICBkZWZhdWx0UnM6ICdDdXJyZW50IHNlYXJjaCcsXG4gICAgICAgIHJlc3VsdHNBY2N1cmF0ZTogJ3t7dG90YWx9fScsXG4gICAgICAgIHJlc3VsdHNOb25BY2N1cmF0ZTogJ3t7ZGlzcGxheWVkfX0gb2YgYXBwcm94aW1hdGVseSB7e3RvdGFsfX0nXG4gICAgICB9LFxuICAgICAgbW9kYWxUaXRsZTogJ0RvIHlvdSB3YW50IHRvIGNvbmZpcm0/JyxcbiAgICAgIGl0ZW1JZDogJ0lkJyxcbiAgICAgIGNsYXNzOiAnQ2xhc3MnLFxuICAgICAgY29sb3JTY2hlbWU6ICdDb2xvciBzY2hlbWUnLFxuICAgICAgY3VzdG9tOiAnQ3VzdG9tIG7CsHt7aWR9fScsXG4gICAgICBhZGRDb2xvcjogJ0FkZCBjb2xvcicsXG4gICAgICByZW1vdmVDb2xvcjogJ1JlbW92ZSBjb2xvcidcbiAgICB9LFxuICAgIHZpZXc6IHtcbiAgICAgIG5hbWU6ICdUYWIgbsKwe3tyYW5rfX0nXG4gICAgfSxcbiAgICB0b29sYm94OiB7XG4gICAgICBkZWZhdWx0U2l6ZTogJ1Jlc3RpdHV0aW9uIHNpemUnLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgbmFtZTogJ1ByZXNlbnRhdGlvbiBuYW1lJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdQcmVzZW50YXRpb24gZGVzY3JpcHRpb24nLFxuICAgICAgICBzYXZlZDogJ1ByZXNlbnRhdGlvbiBzYXZlZCBhcyB7e3ZpZXdJZH19JyxcbiAgICAgICAgc2F2ZUVycm9yQ29kZToge1xuICAgICAgICAgIFVOS05PV046ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICBGT1JCSURERU46ICdZb3UgYXJlIG5vdCB0aGUgb3duZXIgb2YgdGhpcyBwcmVzZW50YXRpb24nLFxuICAgICAgICAgIE5BTUVfQUxSRUFEWV9VU0VEOiAnQSBwcmVzZW50YXRpb24gY2FsbGVkIFwie3tuYW1lfX1cIiBhbHJlYWR5IGV4aXN0cywgcGxlYXNlIHNlbGVjdCBhbm90aGVyIG5hbWUuJyxcbiAgICAgICAgICBTQVZFX01FVEFEQVRBOiAnU2F2ZSB5b3VyIHByZXNlbnRhdGlvbiBiZWZvcmUgY2hvb3NpbmcgdGhlIHRoZW1lLidcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdGVkOiAnUHJlc2VudGF0aW9uIHt7dmlld0lkfX0gbWFya2VkIGFzIGZhdm91cml0ZScsXG4gICAgICAgIHVuZGVmYXVsdGVkOiAnUHJlc2VudGF0aW9uIHt7dmlld0lkfX0gaXMgbm8gbG9uZ2VyIG1hcmtlZCBhcyBmYXZvdXJpdGUnLFxuICAgICAgICB2YWxpZGF0ZWQ6ICdWYWxpZGF0ZScsXG4gICAgICAgIGNoZWNrOiAnU2F2ZScsXG4gICAgICAgIGNsb3NlOiAnQ2FuY2VsJyxcbiAgICAgICAgdmFsaWRhdGU6ICdWYWxpZGF0ZSdcbiAgICAgIH0sXG4gICAgICBjYXRhbG9nOiB7XG4gICAgICAgIHRpdGxlOiAnQ3VzdG9tJyxcbiAgICAgICAgbGFiZWw6ICdOYW1lJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICAgIGljb246ICdJbWFnZScsXG4gICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgIGRlbGV0ZTogJ0NhbmNlbCBmaWx0ZXInLFxuICAgICAgICAgIHR5cGU6ICdGaWx0ZXIgYnkgdHlwZScsXG4gICAgICAgICAgbmFtZTogJ0ZpbHRlciBieSBuYW1lJ1xuICAgICAgICB9LFxuICAgICAgICBzYXZlZDogJ1Jlc3RpdHV0aW9uIHNhdmVkIGFzIHt7dmlld0lkfX0nLFxuICAgICAgICBzYXZlRXJyb3JDb2RlOiB7XG4gICAgICAgICAgVU5LTk9XTjogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICAgIE5BTUVfQUxSRUFEWV9VU0VEOiAnQSByZXN0aXR1dGlvbiBjYWxsZWQgXCJ7e25hbWV9fVwiIGFscmVhZHkgZXhpc3RzLCBwbGVhc2Ugc2VsZWN0IGFub3RoZXIgbmFtZS4nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlZGl0OiAnTW9kaWZ5IGxheW91dCcsXG4gICAgICBlZGl0T2ZmOiAnVmlzdWFsaXplIGxheW91dCcsXG4gICAgICBsYXVuY2g6ICdOZXcgdGFiJyxcbiAgICAgIGxhdW5jaEluZGljYXRpb246ICdPcGVuIHRoaXMgcGFnZSBpbiBhJyxcbiAgICAgIGNob29zZUdyaWQ6ICdDaGFuZ2UgZ3JpZCBsYXlvdXQnLFxuICAgICAgY2xlYXI6ICdDbGVhciBwcmVzZW50YXRpb24nLFxuICAgICAgcmVmcmVzaDogJ1JlZnJlc2ggZGF0YScsXG4gICAgICBhdXRvbWF0ZVJlZnJlc2g6ICdBdXRvbWF0ZSByZWZyZXNoJyxcbiAgICAgIG9wdGlvbnM6ICdPcHRpb25zJyxcbiAgICAgIGNsb3NlOiAnQ2xvc2UnLFxuICAgICAgZmlsdGVyOiAnRmlsdGVyJyxcbiAgICAgIGhlYXRtYXA6ICdIZWF0bWFwJyxcbiAgICAgIGJ1YmJsZW1hcDogJ0J1YmJsZXMnLFxuICAgICAgbWFya2VybWFwOiAnTWFya2VycycsXG4gICAgICBzaW1wbGVtYXA6ICdNYXAnLFxuICAgICAgbWFwOiAnTWFwJyxcbiAgICAgIHRhYmxlOiAnVGFibGUnLFxuICAgICAgZGV0YWlsOiAnRGV0YWlsJyxcbiAgICAgIGNoYXJ0OiAnQ2hhcnQnLFxuICAgICAgcmVzdWx0U2V0OiAnTmFtZWQgUXVlcmllcycsXG4gICAgICByZW5hbWU6ICdTYXZlIG15IHByZXNlbnRhdGlvbicsXG4gICAgICByZXN0b3JlOiAnUmVzdG9yZSBjbG9zZWQgcGFnZXMnLFxuICAgICAgc2F2ZTogJ1NhdmUnLFxuICAgICAgZHJhZzogJ1Jlc3RpdHV0aW9uLi4uJyxcbiAgICAgIGRyYWdJbmRpY2F0aW9uOiAnSW5zZXJ0IGEnLFxuICAgICAgYmFyY2hhcnQ6ICdCYXInLFxuICAgICAgaGlzdG9ncmFtOiAnSGlzdG9ncmFtJyxcbiAgICAgIGxpbmVjaGFydDogJ0xpbmUnLFxuICAgICAgcG9pbnRjaGFydDogJ1BvaW50JyxcbiAgICAgIGFyZWFjaGFydDogJ0FyZWEnLFxuICAgICAgYXJjY2hhcnQ6ICdBcmMnLFxuICAgICAgcmFkYXJjaGFydDogJ1JhZGFyJyxcbiAgICAgIGNpcmNsZWNoYXJ0OiAnQ2lyY2xlIHBhY2tpbmcnLFxuICAgICAgaWZyYW1lOiAnRXh0ZXJuYWwgYXBwbGljYXRpb24nLFxuICAgICAgdmVnYTogJ0FkdmFuY2VkIGNoYXJ0JyxcbiAgICAgIGdyYXBoOiAnR3JhcGgnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgc3ViOiB7XG4gICAgICAgIG1hcDogJ01hcCcsXG4gICAgICAgIGNoYXJ0OiAnQ2hhcnQnLFxuICAgICAgICBvdGhlcjogJ090aGVyJ1xuICAgICAgfSxcbiAgICAgIHRpbGU6ICdUaWxlcycsXG4gICAgICB0ZW1wbGF0ZTogJ0hUTUwgVGVtcGxhdGUnLFxuICAgICAgbm93OiAnVG9kYXknLFxuICAgICAgc2luY2VfZGF5OiAne3tkYXl9fSBkYXl7e3BsdXJhbH19IGFnbycsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgJzAnOiAnRnJlZSBsYXlvdXQnLFxuICAgICAgICAnMF9kZXRhaWxsZWQnOiAnRnJlZSBtb2RlIGRpc3BsYXksIHJlbmRlcmluZyBzaXplIGFuZCBwb3NpdGlvbmluZyBmdWxseSBjdXN0b21pemFibGUgYnkgdGhlIHVzZXIuJyxcbiAgICAgICAgJzEnOiAnRnVsbHNjcmVlbicsXG4gICAgICAgICcxX2RldGFpbGxlZCc6ICdEaXNwbGF5IG9mIGEgc2luZ2xlIHJlbmRlciBvbiB0aGUgd2hvbGUgc2NyZWVuLCB0aGUgcGxhY2VtZW50IGlzIHN5c3RlbSBndWlkZWQuJyxcbiAgICAgICAgJzEvMnYnOiAnVmVydGljYWwgMS8yJyxcbiAgICAgICAgJzEvMnZfZGV0YWlsbGVkJzpcbiAgICAgICAgICAnRGlzcGxheSBvZiAyIHJlbmRlcnMgbWF4aW11bSwgb24gYSBzY3JlZW4gc3BsaXQgaW4gMiB2ZXJ0aWNhbCB6b25lcywgdGhlIHJlbmRlciBhZGR0aW9uIGlzIG1hZGUgaW4gYW4gZW1wdHkgem9uZSwgdGhlIHBsYWNlbWVudCBpcyBzeXN0ZW0gZ3VpZGVkLicsXG4gICAgICAgICcxLzJoJzogJ0hvcml6b250YWwgMS8yJyxcbiAgICAgICAgJzEvMmhfZGV0YWlsbGVkJzpcbiAgICAgICAgICAnRGlzcGxheSBvZiAyIHJlbmRlcnMgbWF4aW11bSwgb24gYSBzY3JlZW4gc3BsaXQgaW4gMiBob3Jpem9udGFsIHpvbmVzLCB0aGUgcmVuZGVyIGFkZHRpb24gaXMgbWFkZSBpbiBhbiBlbXB0eSB6b25lLCB0aGUgcGxhY2VtZW50IGlzIHN5c3RlbSBndWlkZWQuJyxcbiAgICAgICAgJzEvM3YnOiAnVmVydGljYWwgMS8zJyxcbiAgICAgICAgJzEvM3ZfZGV0YWlsbGVkJzpcbiAgICAgICAgICAnRGlzcGxheSBvZiAzIHJlbmRlcnMgbWF4aW11bSwgb24gYSBzY3JlZW4gc3BsaXQgaW4gMyB2ZXJ0aWNhbCB6b25lcywgdGhlIHJlbmRlciBhZGR0aW9uIGlzIG1hZGUgaW4gYW4gZW1wdHkgem9uZSwgdGhlIHBsYWNlbWVudCBpcyBzeXN0ZW0gZ3VpZGVkLicsXG4gICAgICAgICcxLzNoJzogJ0hvcml6b250YWwgMS8zJyxcbiAgICAgICAgJzEvM2hfZGV0YWlsbGVkJzpcbiAgICAgICAgICAnRGlzcGxheSBvZiAzIHJlbmRlcnMgbWF4aW11bSwgb24gYSBzY3JlZW4gc3BsaXQgaW4gMyBob3Jpem9udGFsIHpvbmVzLCB0aGUgcmVuZGVyIGFkZHRpb24gaXMgbWFkZSBpbiBhbiBlbXB0eSB6b25lLCB0aGUgcGxhY2VtZW50IGlzIHN5c3RlbSBndWlkZWQuJyxcbiAgICAgICAgJzEvNCc6ICcxLzQgc2NyZWVuJyxcbiAgICAgICAgJzEvNF9kZXRhaWxsZWQnOlxuICAgICAgICAgICdEaXNwbGF5IG9mIDQgcmVuZGVycyBtYXhpbXVtLCBvbiBhIHNwbGl0IHNjcmVlbiBpbiA0IHpvbmVzLCB0aGUgcmVuZGVyIGFkZHRpb24gaXMgbWFkZSBpbiBhbiBlbXB0eSB6b25lLCB0aGUgcGxhY2VtZW50IGlzIHN5c3RlbSBndWlkZWQuJ1xuICAgICAgfSxcbiAgICAgIHN3aXRjaEVkaXQ6ICdFZGl0JyxcbiAgICAgIHN3aXRjaEVkaXRDb250ZW50OiAnRWRpdCBjb21wb3NpdGlvbicsXG4gICAgICBzaGFyZTogJ1NoYXJlJyxcbiAgICAgIGRlbGV0ZTogJ0RlbGV0ZScsXG4gICAgICBub3RJbkRzQXR0cjogJ1VuYXZhaWxhYmxlIGF0dHJpYnV0ZSdcbiAgICB9LFxuICAgIG1hbmlmZXN0OiB7XG4gICAgICBuYW1lOiAnTmFtZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgIGNyZWF0aW9uOiAnQ3JlYXRpb24gZGF0ZScsXG4gICAgICBtb2RpZmljYXRpb246ICdNb2RpZmljYXRpb24gZGF0ZScsXG4gICAgICBhY3Rpb25zOiAnQWN0aW9ucycsXG4gICAgICBpbXBvcnQ6ICdJbXBvcnQnLFxuICAgICAgaW1wb3J0QWx0OiAnSW1wb3J0IGEgcHJlc2VudGF0aW9uJyxcbiAgICAgIHRpdGxlOiAnUHJlc2VudGF0aW9ucycsXG4gICAgICBnZXQ6IHtcbiAgICAgICAgZXJyb3JGcm9udDogJ0NsaWVudCBlcnJvciA6IHt7bXNnfX0nLFxuICAgICAgICBlcnJvckJhY2s6ICdTZXJ2ZXIgZXJyb3Igd2l0aCBjb2RlIDogW3t7Y29kZX19XSdcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0OiAnU2V0IGRlZmF1bHQnLFxuICAgICAgZG93bmxvYWQ6ICdEb3dubG9hZCcsXG4gICAgICBsb2FkOiAnTG9hZCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgICAgZGVsZXRlRXJyb3I6ICdTZWFyY2ggdXNlZCBpbiBvbmUgb3IgbW9yZSByZXN0aXR1dGlvbihzKSwgcGxlYXNlIGRlbGV0ZSB0aGVtIGZpcnN0J1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBkYXRlOiAnTU0vZGQveXl5eScsXG4gICAgICBkYXRldGltZTogJ01NL2RkL3l5eXkgaGg6bW06c3MgYScsXG4gICAgICBkZWNpbWFsOiAnLicsXG4gICAgICB0aG91c2FuZHM6ICcuJ1xuICAgIH0sXG4gICAgY29udGV4dDoge1xuICAgICAgYWRkOiAnQWRkIHRvIHNlbGVjdGlvbicsXG4gICAgICByZW1vdmU6ICdSZW1vdmUgZnJvbSBzZWxlY3Rpb24nLFxuICAgICAgbGluazogJ0xpbmsgdG8gc2VsZWN0aW9uJyxcbiAgICAgIGludmVydDogJ0ludmVydCBzZWxlY3Rpb24nLFxuICAgICAgcHJveGltaXR5OiAnR2V0IGxpbmtlZCBvYmplY3RzJyxcbiAgICAgIGV4cGxvcmU6ICdPcGVuIEdyYXBoIHJlc3RpdHV0aW9uJyxcbiAgICAgIGRldGFpbDogJ09wZW4gRGV0YWlsIHJlc3RpdHV0aW9uJyxcbiAgICAgIGZseWluZ0RldGFpbDogJ1ZpZXcgb2JqZWN0JyxcbiAgICAgIGFkZHJlc3NGcm9tTG9jOiAnR2V0IGFkZHJlc3MnLFxuICAgICAgZXJyb3JTZWFyY2hBZGRyZXNzOiAnQWRkcmVzcyBub3QgZm91bmQnLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIGNyZWF0ZTogJ0NyZWF0ZScsXG4gICAgICBjcmVhdGVPYmplY3Q6IHtcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBvYmplY3Q6ICdDcmVhdGUgYW4gb2JqZWN0JyxcbiAgICAgICAgICBsaW5rOiAnQ3JlYXRlIGEgbGluaycsXG4gICAgICAgICAgaW52ZXJzaW9uOiAnUmV2ZXJzZSB0aGUgbGluaycsXG4gICAgICAgICAgbGlua2VkT2JqZWN0OiAnQ3JlYXRlIGEgbGlua2VkIG9iamVjdCdcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3M6ICdPYmplY3QgY2xhc3MnLFxuICAgICAgICBsaW5rOiAnTGluayB3aXRoIHRoZSBuZXcgb2JqZWN0JyxcbiAgICAgICAgY3JlYXRlZDogJ09iamVjdCBoYXMgYmVlbiBjcmVhdGVkJyxcbiAgICAgICAgZGV0YWlsczogJ1NlZSBkZXRhaWwnLFxuICAgICAgICBhZGRNdWx0aUZpZWxkOiAnQWRkIGEge3tuYW1lfX0gdmFsdWUnXG4gICAgICB9XG4gICAgfSxcbiAgICBhY3Rpb246IHtcbiAgICAgIGNsb3NlOiAnQ2xvc2UnLFxuICAgICAgY2xvc2VQYW5lbDogJ0Nsb3NlIHBhbmVsJyxcbiAgICAgIGRlbGV0ZTogJ0RlbGV0ZScsXG4gICAgICBlZGl0OiAnRWRpdCcsXG4gICAgICBlZGl0UHJvZmlsOiAnRWRpdCBwcm9maWwnLFxuICAgICAgY2hvaWNlOiAnQ2hvaWNlJyxcbiAgICAgIGNob2ljZUluTGlzdDogJ0Nob29zZSBhbiBpdGVtIGluIGxpc3QnLFxuICAgICAgdGV4dDogJ0ZpbGwgZmllbGQnLFxuICAgICAgc29ydGFibGVDb2x1bW5IZWFkZXI6ICdVc2UgY29sdW1uIGhlYWRlciBidXR0b25zIHRvIHNvcnQnLFxuICAgICAgdmlld0RldGFpbHM6ICdWaWV3IGRldGFpbHMnLFxuICAgICAgc2VsZWN0RGF0ZTogJ1NlbGVjdCBhIGRhdGUnLFxuICAgICAgb3BlbnNJbk5ld1RhYjogJ09wZW5zIGluIG5ldyB0YWInLFxuICAgICAgc2tpcExpbms6ICdTa2lwIHRvIG1haW4gY29udGVudCcsXG4gICAgICBzZWxlY3RQaWN0dXJlOiAnU2VsZWN0IGEgcGljdHVyZScsXG4gICAgICBtb3ZlRG93bjogJ01vdmUgZG93bicsXG4gICAgICBtb3ZlVXA6ICdNb3ZlIHVwJyxcbiAgICAgIGV4cG9ydEFzRm9ybWF0OiAnRXhwb3J0IGFzJyxcbiAgICAgIG9wZW5NZW51V2lkZ2V0OiAnUmVzdGl0dXRpb24gbWVudScsXG4gICAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgICAgdXBsb2FkOiAnQWRkIGltYWdlJyxcbiAgICAgIG5leHQ6ICdOZXh0JyxcbiAgICAgIGJhY2s6ICdCYWNrJyxcbiAgICAgIGZpbHRlckJ5VHlwZTogJ0ZpbHRlciBieSB0eXBlJyxcbiAgICAgIGVkaXRNZXRhZGF0YTogJ0VkaXQgbWV0YWRhdGEnLFxuICAgICAgYWRkTWV0YWRhdGE6ICdBZGQgbWV0YWRhdGEnXG4gICAgfSxcbiAgICBzbmFjazoge1xuICAgICAgZGVmYXVsdDogJ1ZlZ2EgZW5jb3VudGVyZWQgYW4gZXJyb3IgdXNpbmcgeW91ciBkYXRhIGFuZCBzZXR0aW5ncy4nLFxuICAgICAgbWlzc2luZ1BhcmVudDogJ0EgcGFyZW50IG5vZGUgaXMgbWlzc2luZyBpbiB5b3VyIGRhdGFzZXQuIFBsZWFzZSBmaXggeW91ciBkYXRhLicsXG4gICAgICBtaXNzaW5nVmFsdWU6ICdBbiBpdGVtIGlzIG1pc3NpbmcgdGhlIHZhbHVlIGZpZWxkLiBQbGVhc2UgZml4IHlvdXIgZGF0YS4nLFxuICAgICAgZW1wdHlWYWx1ZXM6ICdGaWVsZCB2YWx1ZXMgY2Fubm90IGJlIGFsbCBhdCAwLiBQbGVhc2UgZml4IHlvdXIgZGF0YS4nLFxuICAgICAgcGFnZXNDaGFuZ2VkOiAnQXR0ZW50aW9uLCBsZSBub21icmUgZGUgcGFnZXMgZGUgdm90cmUgcHLDqXNlbnRhdGlvbiBhIGNoYW5nw6ksIHF1ZSBzb3VoYWl0ZXotdm91cyBmYWlyZSA/JyxcbiAgICAgIGltYWdlTmFtZUFscmVhZHlVc2VkOiAnVGhpcyBpbWFnZSBuYW1lIGlzIGFscmVhZHkgdXNlZCdcbiAgICB9LFxuICAgIHRoZW1lOiB7XG4gICAgICBlZGl0SW5wdXQ6IHtcbiAgICAgICAgdG9nZ2xlOiAnRWRpdCdcbiAgICAgIH0sXG4gICAgICBwcmV2aW91c01vbnRoOiAnUHJldmlvdXMgbW9udGgnLFxuICAgICAgbmV4dE1vbnRoOiAnTmV4dCBtb250aCcsXG4gICAgICB3ZWVrZGF5czoge1xuICAgICAgICAwOiAnTW9uZGF5JyxcbiAgICAgICAgMTogJ1R1ZXNkYXknLFxuICAgICAgICAyOiAnV2VkbmVzZGF5JyxcbiAgICAgICAgMzogJ1RodXJzZGF5JyxcbiAgICAgICAgNDogJ0ZyaWRheScsXG4gICAgICAgIDU6ICdTYXR1cmRheScsXG4gICAgICAgIDY6ICdTdW5kYXknXG4gICAgICB9LFxuICAgICAgc2hvcnRXZWVrZGF5czoge1xuICAgICAgICAwOiAnTW9uJyxcbiAgICAgICAgMTogJ1R1ZScsXG4gICAgICAgIDI6ICdXZWQnLFxuICAgICAgICAzOiAnVGh1JyxcbiAgICAgICAgNDogJ0ZyaScsXG4gICAgICAgIDU6ICdTYXQnLFxuICAgICAgICA2OiAnU3VuJ1xuICAgICAgfSxcbiAgICAgIG1vbnRoczoge1xuICAgICAgICAwOiAnSmFudWFyeScsXG4gICAgICAgIDE6ICdGZWJydWFyeScsXG4gICAgICAgIDI6ICdNYXJjaCcsXG4gICAgICAgIDM6ICdBcHJpbCcsXG4gICAgICAgIDQ6ICdNYXknLFxuICAgICAgICA1OiAnSnVuZScsXG4gICAgICAgIDY6ICdKdWx5JyxcbiAgICAgICAgNzogJ0F1Z3VzdCcsXG4gICAgICAgIDg6ICdTZXB0ZW1iZXInLFxuICAgICAgICA5OiAnT2N0b2JlcicsXG4gICAgICAgIDEwOiAnTm92ZW1iZXInLFxuICAgICAgICAxMTogJ0RlY2VtYmVyJ1xuICAgICAgfVxuICAgIH0sXG4gICAgc2hhcmU6IHtcbiAgICAgIHByaXZhdGU6ICdQcml2YXRlJyxcbiAgICAgIHB1YmxpYzogJ1B1YmxpYycsXG4gICAgICByZXN0cmljdGVkOiAnUmVzdHJpY3RlZCcsXG4gICAgICB0eXBlOiAnVmlzaWJpbGl0eScsXG4gICAgICB1c2VyczogJ0F1dGhvcml6ZWQgdXNlcnMnXG4gICAgfSxcbiAgICBob21lcGFnZToge1xuICAgICAgbWVudToge1xuICAgICAgICBtb2RlbDogJ0RhdGEgbW9kZWwnLFxuICAgICAgICBkYXRhOiAnRGF0YSBhY2Nlc3MnXG4gICAgICB9XG4gICAgfSxcbiAgICBtZXRhZGF0YToge1xuICAgICAgdmlldzogJ1ZpZXcgbWV0YWRhdGEnXG4gICAgfSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICBjaGlwc1NlbGVjdG9yOiB7XG4gICAgICAgIGRhdGFzb3VyY2U6IHtcbiAgICAgICAgICBzZWxlY3Q6ICdTZWxlY3Qgb25lIG9yIG1vcmUgZGF0YSBzb3VyY2Uocyk6JyxcbiAgICAgICAgICBzZWxlY3Rpb246ICdTZWxlY3RlZCBkYXRhIHNvdXJjZShzKTonLFxuICAgICAgICAgIHNlbGVjdEl0ZW06ICdTZWxlY3QgdGhpcyBkYXRhIHNvdXJjZScsXG4gICAgICAgICAgdW5zZWxlY3RJdGVtOiAnVW5zZWxlY3QgdGhpcyBkYXRhIHNvdXJjZScsXG4gICAgICAgICAgbm9JdGVtU2VsZWN0ZWQ6ICdObyBkYXRhIHNvdXJjZSBzZWxlY3RlZCdcbiAgICAgICAgfSxcbiAgICAgICAgc2hhcmU6IHtcbiAgICAgICAgICBzZWxlY3Q6ICdTZWxlY3Qgb25lIG9yIG1vcmUgdXNlciBncm91cDonLFxuICAgICAgICAgIHNlbGVjdGlvbjogJ1NlbGVjdGVkIHVzZXIgZ3JvdXBzOicsXG4gICAgICAgICAgc2VsZWN0SXRlbTogJ1NlbGVjdCB0aGlzIHVzZXIgZ3JvdXAnLFxuICAgICAgICAgIHVuc2VsZWN0SXRlbTogJ1Vuc2VsZWN0IHRoaXMgdXNlciBncm91cCcsXG4gICAgICAgICAgbm9JdGVtU2VsZWN0ZWQ6ICdObyB1c2VyIGdyb3VwIHNlbGVjdGVkJyxcbiAgICAgICAgICBncm91cHM6IHtcbiAgICAgICAgICAgIEFMTDogJ1B1YmxpYycsXG4gICAgICAgICAgICBBVVRIRU5USUNBVEVEOiAnQ29ubmVjdGVkIHVzZXJzJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNlYXJjaERhdGE6ICdTZWFyY2gnXG4gICAgfSxcbiAgICBlcnJvcnM6IHtcbiAgICAgIGRlZmF1bHQ6ICdUaGVyZSBpcyBhbiBlcnJvci4gVHJ5IGFnYWluIG9yIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yJyxcbiAgICAgIGNvZGVzOiB7XG4gICAgICAgIDA6ICdBbiBlcnJvciBvY2N1cnJlZCBvbiBjbGllbnQtc2lkZS4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IENPUlMsIG5ldHdvcmsgZXJyb3IsIC4uLiBSZXNvdXJjZSBjYW5ub3QgYmUgcmVhY2hlZC4nLFxuICAgICAgICA0MDA6ICdBbiBlcnJvciBvY2N1cnJlZC4nLFxuICAgICAgICA0MDE6ICdTZXNzaW9uIGV4cGlyZWQuIFRyeSB0byByZWNvbm5lY3QhJyxcbiAgICAgICAgNDAzOiAnQWNjZXNzIHVuYXV0aG9yaXplZCcsXG4gICAgICAgIDQwNDogJ1Jlc3NvdXJjZSBub3QgZm91bmQnLFxuICAgICAgICA0MDk6ICdSZXNzb3VyY2UgYWxyZWFkeSBleGlzdCcsXG4gICAgICAgIDUwMDogJ0FuIGVycm9yIG9jY3VycmVkLicsXG4gICAgICAgIDUwMzogJ1NlcnZpY2UgdW5hdmFpbGFibGUuIHRyeSBhZ2FpbiBsYXRlciEnXG4gICAgICB9XG4gICAgfSxcbiAgICBmaWx0ZXJzOiB7XG4gICAgICBsYWJlbDogJ0ZpbHRlciBzZXR0aW5ncycsXG4gICAgICBub0F0dHJpYnV0ZXM6ICdQcmVzZW50YXRpb24gaGFkIG5vIGF2YWlsYWJsZSBhdHRyaWJ1dGVzJyxcbiAgICAgIG5vRmlsdGVyczogJ05vIGZpbHRlcnMgc2V0IHVwIGZvciB0aGlzIHByZXNlbnRhdGlvbiB5ZXQuJyxcbiAgICAgIGNsZWFyOiAnQ2xlYXIgYWxsJyxcbiAgICAgIGxpc3Q6IHtcbiAgICAgICAgYXR0cmlidXRlczogJ0F0dHJpYnV0ZXM6ICcsXG4gICAgICAgIGFkZDogJ0FkZCBmaWx0ZXInLFxuICAgICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgICAgICBtb2RpZnk6ICdNb2RpZnknXG4gICAgICB9LFxuICAgICAgY3JlYXRpb246IHtcbiAgICAgICAgY3JlYXRlOiAnTmV3IGZpbHRlcicsXG4gICAgICAgIHVwZGF0ZTogJ0VkaXQgZmlsdGVyJyxcbiAgICAgICAgbmFtZTogJ0ZpbHRlciBuYW1lJyxcbiAgICAgICAgdHlwZTogJ0ZpbHRlciB0eXBlJyxcbiAgICAgICAgZmlsdGVyOiAnRmlsdGVyJyxcbiAgICAgICAgYXR0cmlidXRlczogJ0F0dHJpYnV0ZXMnLFxuICAgICAgICB2YWx1ZTogJ1ZhbHVlJyxcbiAgICAgICAgdmFsdWVzOiAnVmFsdWVzJyxcbiAgICAgICAgdmFsaWRhdGU6ICdDb25maXJtJyxcbiAgICAgICAgbGltaXQ6ICdBdXRvY29tcGxldGUgcHJvcG9zYWxzJyxcbiAgICAgICAgZGF0ZVJhbmdlOiAnRGF0ZSByYW5nZSdcbiAgICAgIH0sXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGRhdGFzb3VyY2U6ICdEYXRhc291cmNlJyxcbiAgICAgICAgY2xhc3M6ICdDbGFzc2UnLFxuICAgICAgICBvcGVyYXRvcjogJ09wZXJhdG9yJ1xuICAgICAgfSxcbiAgICAgIHR5cGVzOiB7XG4gICAgICAgIHRleHQ6ICdUZXh0JyxcbiAgICAgICAgZGF0ZTogJ0RhdGUnLFxuICAgICAgICBsaXN0OiAnTGlzdCcsXG4gICAgICAgIG51bWJlcjogJ051bWJlcicsXG4gICAgICAgIGF1dG9jb21wbGV0ZTogJ0F1dG9jb21wbGV0ZSdcbiAgICAgIH1cbiAgICB9LFxuICAgIGdlb0F1dGg6IHtcbiAgICAgIGZhaWx1cmU6ICdHZW9zZXJ2ZXIgZXJyb3InXG4gICAgfVxuICB9LFxuICBncmlkOiB7XG4gICAgcm93czogJ1Jvd3MnLFxuICAgIGNvbHVtbnM6ICdDb2x1bW5zJ1xuICB9XG59O1xuIl19