@energinet/watt 2.1.3 → 2.1.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 (109) hide show
  1. package/core/styles/@energinet-datahub/watt/theme/material-overwrites/datepicker.scss +8 -2
  2. package/esm2022/badge/watt-badge.component.js +8 -8
  3. package/esm2022/breadcrumbs/watt-breadcrumbs.component.js +8 -8
  4. package/esm2022/button/watt-button.component.js +14 -14
  5. package/esm2022/card/watt-card-title.component.js +3 -3
  6. package/esm2022/card/watt-card.component.js +7 -7
  7. package/esm2022/checkbox/watt-checkbox.component.js +7 -7
  8. package/esm2022/chip/watt-action-chip.component.js +6 -6
  9. package/esm2022/chip/watt-chip.component.js +7 -7
  10. package/esm2022/chip/watt-chip.directive.js +3 -3
  11. package/esm2022/chip/watt-date-chip.component.js +3 -3
  12. package/esm2022/chip/watt-date-range-chip.component.js +8 -8
  13. package/esm2022/chip/watt-filter-chip.component.js +3 -3
  14. package/esm2022/chip/watt-menu-chip.component.js +3 -3
  15. package/esm2022/clipboard/watt-clipboard-intl.service.js +3 -3
  16. package/esm2022/clipboard/watt-copy-to-clipboard.directive.js +5 -5
  17. package/esm2022/code/watt-code.component.js +6 -6
  18. package/esm2022/core/breakpoints/breakpoints-observer.js +3 -3
  19. package/esm2022/core/color/color-helper.service.js +3 -3
  20. package/esm2022/core/date/watt-date.pipe.js +3 -3
  21. package/esm2022/core/date/watt-locale.service.js +7 -7
  22. package/esm2022/data/watt-data-actions.component.js +3 -3
  23. package/esm2022/data/watt-data-filters.component.js +3 -3
  24. package/esm2022/data/watt-data-intl.service.js +3 -3
  25. package/esm2022/data/watt-data-table.component.js +19 -19
  26. package/esm2022/datetime-field/watt-datetime-field.component.js +11 -11
  27. package/esm2022/description-list/watt-description-list-item.component.js +7 -7
  28. package/esm2022/description-list/watt-description-list.component.js +9 -9
  29. package/esm2022/drawer/watt-drawer-actions.component.js +3 -3
  30. package/esm2022/drawer/watt-drawer-content.component.js +3 -3
  31. package/esm2022/drawer/watt-drawer-heading.component.js +3 -3
  32. package/esm2022/drawer/watt-drawer-topbar.component.js +3 -3
  33. package/esm2022/drawer/watt-drawer.component.js +13 -13
  34. package/esm2022/dropdown/watt-dropdown.component.js +4 -4
  35. package/esm2022/dropzone/watt-dropzone-intl.js +3 -3
  36. package/esm2022/dropzone/watt-dropzone-validators.js +6 -6
  37. package/esm2022/dropzone/watt-dropzone.js +9 -9
  38. package/esm2022/empty-state/icons/explore.js +3 -3
  39. package/esm2022/empty-state/icons/no-results.js +3 -3
  40. package/esm2022/empty-state/icons/power.js +3 -3
  41. package/esm2022/empty-state/watt-empty-state.component.js +10 -10
  42. package/esm2022/expandable-card/watt-expandable-card.component.js +15 -15
  43. package/esm2022/expansion/expansion.component.js +3 -3
  44. package/esm2022/field/watt-field-error.component.js +3 -3
  45. package/esm2022/field/watt-field-hint.component.js +3 -3
  46. package/esm2022/field/watt-field-intl.service.js +3 -3
  47. package/esm2022/field/watt-field.component.js +19 -19
  48. package/esm2022/icon/flags/watt-flag-ch.js +3 -3
  49. package/esm2022/icon/flags/watt-flag-de.js +3 -3
  50. package/esm2022/icon/flags/watt-flag-dk.js +3 -3
  51. package/esm2022/icon/flags/watt-flag-fi.js +3 -3
  52. package/esm2022/icon/flags/watt-flag-nl.js +3 -3
  53. package/esm2022/icon/flags/watt-flag-no.js +3 -3
  54. package/esm2022/icon/flags/watt-flag-pl.js +3 -3
  55. package/esm2022/icon/flags/watt-flag-se.js +3 -3
  56. package/esm2022/icon/flags/watt-flag.js +7 -7
  57. package/esm2022/icon/icon.component.js +11 -11
  58. package/esm2022/modal/watt-modal.component.js +8 -8
  59. package/esm2022/modal/watt-modal.service.js +7 -7
  60. package/esm2022/paginator/watt-paginator-intl.service.js +3 -3
  61. package/esm2022/paginator/watt-paginator.component.js +14 -14
  62. package/esm2022/phone-field/watt-phone-field-intl.service.js +3 -3
  63. package/esm2022/phone-field/watt-phone-field.component.js +7 -7
  64. package/esm2022/picker/__shared/placeholder-mask/watt-placeholder-mask.component.js +13 -13
  65. package/esm2022/picker/__shared/watt-picker-base.js +3 -3
  66. package/esm2022/picker/datepicker/watt-datepicker-intl.service.js +3 -3
  67. package/esm2022/picker/datepicker/watt-datepicker.component.js +13 -13
  68. package/esm2022/picker/timepicker/watt-timepicker.component.js +3 -3
  69. package/esm2022/progress-tracker/watt-progress-tracker-step.component.js +9 -9
  70. package/esm2022/progress-tracker/watt-progress-tracker.component.js +3 -3
  71. package/esm2022/query-params/watt-query-params.directive.js +3 -3
  72. package/esm2022/radio/watt-radio.component.js +6 -6
  73. package/esm2022/search/watt-search.component.js +7 -7
  74. package/esm2022/segmented-buttons/watt-segmented-button.component.js +5 -5
  75. package/esm2022/segmented-buttons/watt-segmented-buttons.component.js +7 -7
  76. package/esm2022/shell/nav-list/watt-expand-on-active-link.directive.js +5 -5
  77. package/esm2022/shell/nav-list/watt-nav-list-item.component.js +7 -7
  78. package/esm2022/shell/nav-list/watt-nav-list.component.js +7 -7
  79. package/esm2022/shell/shell.component.js +4 -4
  80. package/esm2022/slide-toggle/watt-slide-toggle.component.js +9 -9
  81. package/esm2022/slider/watt-slider.component.js +3 -3
  82. package/esm2022/spinner/watt-spinner.component.js +7 -7
  83. package/esm2022/stepper/watt-stepper-step.component.js +10 -10
  84. package/esm2022/stepper/watt-stepper.component.js +6 -6
  85. package/esm2022/table/watt-table.component.js +15 -15
  86. package/esm2022/tabs/watt-link-tab.component.js +6 -6
  87. package/esm2022/tabs/watt-link-tabs.component.js +5 -5
  88. package/esm2022/tabs/watt-tab.component.js +5 -5
  89. package/esm2022/tabs/watt-tabs-action.component.js +3 -3
  90. package/esm2022/tabs/watt-tabs.component.js +7 -7
  91. package/esm2022/text-field/watt-text-field.component.js +3 -3
  92. package/esm2022/textarea-field/watt-textarea-field.component.js +3 -3
  93. package/esm2022/toast/watt-toast.component.js +3 -3
  94. package/esm2022/toast/watt-toast.service.js +3 -3
  95. package/esm2022/tooltip/watt-tooltip.component.js +3 -3
  96. package/esm2022/tooltip/watt-tooltip.directive.js +3 -3
  97. package/esm2022/utils/css/css-custom-properties.service.js +3 -3
  98. package/esm2022/utils/intersection-observer/watt-intersection-observer.service.js +3 -3
  99. package/esm2022/utils/resize-observer/watt-resize-observer.directive.js +3 -3
  100. package/esm2022/utils/resize-observer/watt-resize-observer.service.js +3 -3
  101. package/esm2022/validation-message/watt-validation-message.component.js +12 -12
  102. package/esm2022/vater/vater-flex.component.js +5 -5
  103. package/esm2022/vater/vater-layout.directive.js +16 -16
  104. package/esm2022/vater/vater-spacer.component.js +3 -3
  105. package/esm2022/vater/vater-stack.component.js +3 -3
  106. package/esm2022/vater/vater-utility.directive.js +11 -11
  107. package/esm2022/year-field/watt-year-field.component.js +12 -12
  108. package/esm2022/yearmonth-field/watt-yearmonth-field.component.js +12 -12
  109. package/package.json +15 -15
@@ -344,10 +344,10 @@ export class WattDropdownComponent {
344
344
  }
345
345
  });
346
346
  }
347
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
348
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: WattDropdownComponent, isStandalone: true, selector: "watt-dropdown", inputs: { hideSearch: "hideSearch", panelWidth: "panelWidth", getCustomTrigger: "getCustomTrigger", chipMode: "chipMode", disableSelectedMode: "disableSelectedMode", sortDirection: "sortDirection", options: "options", multiple: "multiple", showResetOption: "showResetOption", placeholder: "placeholder", label: "label", noOptionsFoundLabel: "noOptionsFoundLabel" }, host: { properties: { "attr.watt-field-disabled": "this.isDisabled", "class.watt-chip-mode": "this.chipModeClass" } }, viewQueries: [{ propertyName: "matSelect", first: true, predicate: ["matSelect"], descendants: true, static: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode\"\n [label]=\"label\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggle)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder) {\n :\n }\n {{ getCustomTrigger?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder\"\n #matSelect\n [panelWidth]=\"panelWidth\"\n [multiple]=\"multiple\"\n [ngClass]=\"{ chip: chipMode }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode,\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple && showResetOption) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @for (option of filteredOptions$ | push; track option) {\n <mat-option [value]=\"option.value\" [disabled]=\"option.disabled\">\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel mat-option:nth-of-type(2){border-top:1px solid var(--watt-color-neutral-grey-300)}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: RxPush, name: "push" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i3.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: WattMenuChipComponent, selector: "watt-menu-chip", inputs: ["opened", "disabled", "name", "value", "selected", "hasPopup"], outputs: ["toggle"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName"] }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }], encapsulation: i0.ViewEncapsulation.None });
347
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
348
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattDropdownComponent, isStandalone: true, selector: "watt-dropdown", inputs: { hideSearch: "hideSearch", panelWidth: "panelWidth", getCustomTrigger: "getCustomTrigger", chipMode: "chipMode", disableSelectedMode: "disableSelectedMode", sortDirection: "sortDirection", options: "options", multiple: "multiple", showResetOption: "showResetOption", placeholder: "placeholder", label: "label", noOptionsFoundLabel: "noOptionsFoundLabel" }, host: { properties: { "attr.watt-field-disabled": "this.isDisabled", "class.watt-chip-mode": "this.chipModeClass" } }, viewQueries: [{ propertyName: "matSelect", first: true, predicate: ["matSelect"], descendants: true, static: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field\n [control]=\"parentControl\"\n [chipMode]=\"chipMode\"\n [label]=\"label\"\n (click)=\"matSelect.open()\"\n>\n @if (chipMode) {\n <watt-menu-chip\n [opened]=\"matSelect.panelOpen\"\n (toggle)=\"matSelect.open()\"\n [selected]=\"!!matSelect?.triggerValue && !disableSelectedMode\"\n [disabled]=\"matSelectControl.disabled\"\n >\n {{ placeholder }}\n @if (showTriggerValue) {\n <span>\n @if (placeholder) {\n :\n }\n {{ getCustomTrigger?.(matSelect.value) ?? matSelect?.triggerValue }}\n </span>\n }\n @if (showChipLabel) {\n <span class=\"watt-chip-label\">{{ matSelectControl.value?.length }}</span>\n }\n </watt-menu-chip>\n }\n\n <mat-select\n [attr.aria-label]=\"label\"\n [formControl]=\"matSelectControl\"\n [placeholder]=\"placeholder\"\n #matSelect\n [panelWidth]=\"panelWidth\"\n [multiple]=\"multiple\"\n [ngClass]=\"{ chip: chipMode }\"\n [panelClass]=\"{\n 'watt-dropdown-panel': true,\n 'watt-dropdown-panel-chip-mode': chipMode,\n }\"\n >\n <!-- We use this instead of ngIf, since it will trigger a NG0100: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. -->\n <mat-option [style.display]=\"!hideSearch ? 'block' : 'none'\">\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"placeholder\"\n closeIcon=\"close\"\n [showToggleAllCheckbox]=\"multiple\"\n (toggleAll)=\"onToggleAll($event)\"\n [toggleAllCheckboxChecked]=\"isToggleAllChecked\"\n [toggleAllCheckboxIndeterminate]=\"isToggleAllIndeterminate\"\n [noEntriesFoundLabel]=\"noOptionsFoundLabel\"\n >\n <watt-icon ngxMatSelectSearchClear name=\"close\" size=\"s\" />\n </ngx-mat-select-search>\n </mat-option>\n\n @if (!multiple && showResetOption) {\n <mat-option>{{ emDash }}</mat-option>\n }\n\n @for (option of filteredOptions$ | push; track option) {\n <mat-option [value]=\"option.value\" [disabled]=\"option.disabled\">\n {{ option.displayValue }}\n </mat-option>\n }\n </mat-select>\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n</watt-field>\n", styles: ["watt-dropdown:not(.watt-chip-mode){width:100%}watt-dropdown{--watt-input-color: var(--watt-typography-text-color);--watt-input-placeholder-color: var(--watt-on-light-high-emphasis);display:block;width:auto}watt-dropdown watt-field label .watt-field-wrapper{padding:0;position:relative}watt-dropdown.watt-chip-mode.ng-dirty.ng-invalid .watt-field-wrapper watt-chip label{border:1px solid var(--watt-color-state-danger)}watt-dropdown.watt-chip-mode[disabled=true] watt-field label .watt-field-wrapper{background-color:transparent}watt-dropdown .mat-input-element{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color);caret-color:var(--watt-color-neutral-grey-900)!important;padding:0 12px}watt-dropdown .mat-mdc-select-arrow{color:var(--watt-dropdown-arrow-color, rgba(0, 0, 0, .54));border:none;width:auto;height:auto}watt-dropdown .mat-mdc-select-arrow:before{width:.6em;height:.6em;bottom:.2em;position:relative;display:inline-block;border-style:solid;border-width:0 0 .15em .15em;transform:rotate(315deg);border-color:var(--watt-color-primary);content:\"\"}watt-dropdown .mat-mdc-select-arrow svg{display:none}watt-dropdown .mat-mdc-select-trigger{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;padding:0 var(--watt-space-m)}watt-dropdown .mat-mdc-select-value{color:var(--watt-color-neutral-black);padding-right:var(--watt-space-m)}watt-dropdown .mat-mdc-select.mat-mdc-select-invalid.ng-pristine .mat-mdc-select-arrow{color:currentColor}watt-dropdown .watt-chip-label{float:right;margin-left:var(--watt-space-s);background:var(--watt-color-neutral-white)}watt-dropdown .watt-field--chip .mat-mdc-select{visibility:hidden;position:absolute;width:100%}watt-dropdown .mat-mdc-select-placeholder{color:var(--watt-input-placeholder-color)}watt-dropdown watt-field label .watt-field-wrapper{background-color:transparent}.watt-dropdown-panel{--watt-input-color: var(--watt-typography-text-color);padding:0}.watt-dropdown-panel mat-option:nth-of-type(2){border-top:1px solid var(--watt-color-neutral-grey-300)}.watt-dropdown-panel .mat-select-search-inner-row .mat-select-search-input,.watt-dropdown-panel mat-option.contains-mat-select-search{height:48px}.watt-dropdown-panel:not(.watt-dropdown-panel-chip-mode){min-width:calc(100% + 2px)!important;margin-top:-36px;margin-left:-1px;min-height:48px}.watt-dropdown-panel .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{padding:0;margin:0 var(--watt-space-m)}.watt-dropdown-panel .mat-datepicker-content .mat-mdc-icon-button{--mat-mdc-button-persistent-ripple-color: transparent;--mat-mdc-button-ripple-color: transparent}.watt-dropdown-panel.watt-dropdown-panel-chip-mode{margin-top:4px}.watt-dropdown-panel.mat-mdc-select-search-panel{transform:scaleY(1)!important}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.contains-mat-select-search.mat-mdc-option-multiple{background-color:transparent}.watt-dropdown-panel ngx-mat-select-search .mat-select-search-inner-multiple .mat-select-search-inner-row{margin-left:5px}.watt-dropdown-panel ngx-mat-select-search .mat-mdc-checkbox.mat-select-search-toggle-all-checkbox{margin:0}.watt-dropdown-panel .mdc-list-item .mat-select-search-input,.watt-dropdown-panel .mat-mdc-option.mdc-list-item,.watt-dropdown-panel .mat-select-search-no-entries-found{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--watt-input-color)}.watt-dropdown-panel .mat-mdc-option.mdc-list-item .mat-select-search-no-entries-found{padding:var(--watt-space-s)}.watt-dropdown-panel .mat-checkbox-frame,.watt-dropdown-panel .mat-mdc-checkbox{border-color:var(--watt-color-primary)}.watt-dropdown-panel :not(.mat-mdc-option-multiple) .mat-pseudo-checkbox{display:none}.watt-dropdown-panel .mat-pseudo-checkbox,.watt-dropdown-panel .mat-mdc-checkbox{color:var(--watt-color-primary)}.watt-dropdown-panel .mat-mdc-option{color:var(--watt-color-neutral-black);min-height:42px}.watt-dropdown-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{margin-top:0;top:auto}.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mat-mdc-option-active,.watt-dropdown-panel .mat-mdc-option.mdc-list-item.mdc-list-item--selected.mat-mdc-option-active:not(.mat-mdc-option-multiple),.watt-dropdown-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled,.contains-mat-select-search),.watt-dropdown-panel .mat-mdc-option:focus:not(.mat-mdc-option-disabled){background-color:var(--watt-color-primary-light)}.watt-dropdown-panel .mat-mdc-option .mat-mdc-select-search-no-entries-found{text-align:center;padding:0}.watt-dropdown-panel .mat-mdc-option.mat-mdc-option-disabled{color:var(--watt-color-neutral-grey-400);cursor:not-allowed}.watt-dropdown-panel .mat-mdc-select-search-input:not(.mat-mdc-select-search-hidden){color:var(--watt-color-neutral-black)}.watt-dropdown-panel .mat-mdc-select-search-clear{background-color:var(--watt-color-neutral-white);color:var(--watt-color-neutral-grey-400)}.watt-dropdown-panel .mat-mdc-select-search-clear mat-icon{line-height:20px!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i3.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i3.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: WattMenuChipComponent, selector: "watt-menu-chip", inputs: ["opened", "disabled", "name", "value", "selected", "hasPopup"], outputs: ["toggle"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName"] }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "pipe", type: RxPush, name: "push" }], encapsulation: i0.ViewEncapsulation.None });
349
349
  }
350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropdownComponent, decorators: [{
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropdownComponent, decorators: [{
351
351
  type: Component,
352
352
  args: [{ selector: 'watt-dropdown', encapsulation: ViewEncapsulation.None, imports: [
353
353
  NgClass,
@@ -393,4 +393,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
393
393
  }], noOptionsFoundLabel: [{
394
394
  type: Input
395
395
  }] } });
396
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9kcm9wZG93bi93YXR0LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Ryb3Bkb3duL3dhdHQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxXQUFXLEVBQ1gsU0FBUyxFQUNULGtCQUFrQixFQUdsQixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QUFoQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFzeW5jVmFsaWRhdG9yRm4sXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTmdDb250cm9sLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJ4UHVzaCB9IGZyb20gJ0ByeC1hbmd1bGFyL3RlbXBsYXRlL3B1c2gnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTmd4TWF0U2VsZWN0U2VhcmNoTW9kdWxlIH0gZnJvbSAnbmd4LW1hdC1zZWxlY3Qtc2VhcmNoJztcbmltcG9ydCB7IG9mLCBSZXBsYXlTdWJqZWN0LCBtYXAsIHRha2UsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBXYXR0RmllbGRDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvZmllbGQnO1xuaW1wb3J0IHR5cGUgeyBXYXR0RHJvcGRvd25PcHRpb25zIH0gZnJvbSAnLi93YXR0LWRyb3Bkb3duLW9wdGlvbic7XG5pbXBvcnQgdHlwZSB7IFdhdHREcm9wZG93blZhbHVlIH0gZnJvbSAnLi93YXR0LWRyb3Bkb3duLXZhbHVlJztcbmltcG9ydCB7IFdhdHRNZW51Q2hpcENvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9jaGlwJztcbmltcG9ydCB7IFdhdHRJY29uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dhdHQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93YXR0LWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBSeFB1c2gsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUsXG4gICAgV2F0dE1lbnVDaGlwQ29tcG9uZW50LFxuICAgIFdhdHRGaWVsZENvbXBvbmVudCxcbiAgICBXYXR0SWNvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIHByaXZhdGUgcGFyZW50Q29udHJvbERpcmVjdGl2ZSA9IGluamVjdChOZ0NvbnRyb2wsIHsgaG9zdDogdHJ1ZSB9KTtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwYXJlbnRDb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwgPSBudWxsO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhcmVudD86IFZhbGlkYXRvckZuO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhcmVudEFzeW5jPzogQXN5bmNWYWxpZGF0b3JGbjtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLndhdHQtZmllbGQtZGlzYWJsZWQnKSBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG1hdFNlbGVjdENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogQ29udHJvbCBmb3IgdGhlIE1hdFNlbGVjdCBmaWx0ZXIga2V5d29yZFxuICAgKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBmaWx0ZXJDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG9wdGlvbnMgZmlsdGVyZWQgYnkgc2VhcmNoIGtleXdvcmRcbiAgICpcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZmlsdGVyZWRPcHRpb25zJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFdhdHREcm9wZG93bk9wdGlvbnM+KDEpO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBlbURhc2ggPSAn4oCUJztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaXNUb2dnbGVBbGxDaGVja2VkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGlzVG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuXG4gIF9vcHRpb25zOiBXYXR0RHJvcGRvd25PcHRpb25zID0gW107XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGdldCBzaG93VHJpZ2dlclZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5tdWx0aXBsZSAmJlxuICAgICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbHVlPy5sZW5ndGggPT09IDEgJiZcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZVswXSAhPT0gJycpIHx8XG4gICAgICAoIXRoaXMubXVsdGlwbGUgJiYgdGhpcy5tYXRTZWxlY3Q/LnRyaWdnZXJWYWx1ZSlcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnZXQgc2hvd0NoaXBMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSAmJiB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWUgJiYgdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbHVlLmxlbmd0aCA+IDFcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCdtYXRTZWxlY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtYXRTZWxlY3Q/OiBNYXRTZWxlY3Q7XG5cbiAgQElucHV0KCkgaGlkZVNlYXJjaCA9IGZhbHNlO1xuICBASW5wdXQoKSBwYW5lbFdpZHRoOiBudWxsIHwgJ2F1dG8nID0gbnVsbDtcbiAgQElucHV0KCkgZ2V0Q3VzdG9tVHJpZ2dlcj86ICh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pID0+IHN0cmluZztcblxuICAvKipcbiAgICogU2V0IHRoZSBtb2RlIG9mIHRoZSBkcm9wZG93bi5cbiAgICovXG4gIEBJbnB1dCgpIGNoaXBNb2RlID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2F0dC1jaGlwLW1vZGUnKVxuICBnZXQgY2hpcE1vZGVDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlwTW9kZTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRpc2FibGVTZWxlY3RlZE1vZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzb3J0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgb3B0aW9ucyBmb3IgdGhlIGRyb3Bkb3duLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogV2F0dERyb3Bkb3duT3B0aW9ucykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICBsZXQgb3B0aW9uc0NvcHkgPSBbLi4ub3B0aW9uc107XG5cbiAgICAgIGlmICh0aGlzLnNvcnREaXJlY3Rpb24pIHtcbiAgICAgICAgb3B0aW9uc0NvcHkgPSB0aGlzLnNvcnRPcHRpb25zKG9wdGlvbnNDb3B5KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnNDb3B5O1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMkLm5leHQob3B0aW9uc0NvcHkpO1xuICAgIH1cbiAgfVxuICBnZXQgb3B0aW9ucygpOiBXYXR0RHJvcGRvd25PcHRpb25zIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHN1cHBvcnQgZm9yIHNlbGVjdGluZyBtdWx0aXBsZSBkcm9wZG93biBvcHRpb25zLlxuICAgKi9cbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogU2V0cyBzdXBwb3J0IGZvciBoaWRpbmcgdGhlIHJlc2V0IG9wdGlvbiBpbiBcInNpbmdsZVwiIHNlbGVjdCBtb2RlLlxuICAgKi9cbiAgQElucHV0KCkgc2hvd1Jlc2V0T3B0aW9uID0gdHJ1ZTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgZm9yIHRoZSBkcm9wZG93bi5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGxhYmVsIGZvciB0aGUgZHJvcGRvd24uXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuXG4gIC8qKlxuICAgKiBMYWJlbCB0byBiZSBzaG93biB3aGVuIG5vIG9wdGlvbnMgYXJlIGZvdW5kIGFmdGVyIGZpbHRlcmluZy5cbiAgICpcbiAgICogTm90ZTogVGhlIGxhYmVsIGlzIHZpc2libGUgaW4gXCJtdWx0aXBsZVwiIG1vZGUgb25seS5cbiAgICovXG4gIEBJbnB1dCgpIG5vT3B0aW9uc0ZvdW5kTGFiZWwgPSAnJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnBhcmVudENvbnRyb2xEaXJlY3RpdmUudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Gb3JGaWx0ZXJGaWVsZFZhbHVlQ2hhbmdlcygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVByb3BlcnRpZXNGcm9tUGFyZW50KCk7XG4gICAgdGhpcy5iaW5kUGFyZW50VmFsaWRhdG9yc1RvQ29udHJvbCgpO1xuICAgIHRoaXMuYmluZENvbnRyb2xUb1BhcmVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlRm46ICh2YWx1ZTogV2F0dERyb3Bkb3duVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZVBhcmVudFZhbHVlID0gb25DaGFuZ2VGbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoRm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm1hcmtQYXJlbnRDb250cm9sQXNUb3VjaGVkID0gb25Ub3VjaEZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNldERpc2FibGVkU3RhdGUoc2hvdWxkRGlzYWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IHNob3VsZERpc2FibGU7XG4gICAgaWYgKHNob3VsZERpc2FibGUpIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Ub2dnbGVBbGwodG9nZ2xlQWxsU3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAoKG9wdGlvbnMpID0+IG9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChmaWx0ZXJlZE9wdGlvbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNUb1NlbGVjdCA9IHRvZ2dsZUFsbFN0YXRlID8gZmlsdGVyZWRPcHRpb25zIDogW107XG4gICAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5wYXRjaFZhbHVlKG9wdGlvbnNUb1NlbGVjdCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0T3B0aW9ucyhvcHRpb25zOiBXYXR0RHJvcGRvd25PcHRpb25zKTogV2F0dERyb3Bkb3duT3B0aW9ucyB7XG4gICAgcmV0dXJuIFsuLi5vcHRpb25zXS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJ1xuICAgICAgICA/IGEuZGlzcGxheVZhbHVlLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5VmFsdWUpXG4gICAgICAgIDogYi5kaXNwbGF5VmFsdWUubG9jYWxlQ29tcGFyZShhLmRpc3BsYXlWYWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JGaWx0ZXJGaWVsZFZhbHVlQ2hhbmdlcygpIHtcbiAgICB0aGlzLmZpbHRlckNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKCk7XG5cbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuZGV0ZXJtaW5lVG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJpdmF0ZSBjaGFuZ2VQYXJlbnRWYWx1ZSA9ICh2YWx1ZTogV2F0dERyb3Bkb3duVmFsdWUpOiB2b2lkID0+IHtcbiAgICAvLyBJbnRlbnRpb25hbGx5IGxlZnQgZW1wdHlcbiAgfTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBtYXJrUGFyZW50Q29udHJvbEFzVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAvLyBJbnRlbnRpb25hbGx5IGxlZnQgZW1wdHlcbiAgfTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKlxuICAgKiBTdG9yZSB0aGUgcGFyZW50IGNvbnRyb2wsIGl0cyB2YWxpZGF0b3JzIGFuZCBhc3luYyB2YWxpZGF0b3JzIGluIHByb3BlcnRpZXNcbiAgICogb2YgdGhpcyBjb21wb25lbnQuXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVQcm9wZXJ0aWVzRnJvbVBhcmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudENvbnRyb2wgPSB0aGlzLnBhcmVudENvbnRyb2xEaXJlY3RpdmUuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG5cbiAgICB0aGlzLnZhbGlkYXRlUGFyZW50ID1cbiAgICAgICh0aGlzLnBhcmVudENvbnRyb2wudmFsaWRhdG9yICYmIHRoaXMucGFyZW50Q29udHJvbC52YWxpZGF0b3IuYmluZCh0aGlzLnBhcmVudENvbnRyb2wpKSB8fFxuICAgICAgKCgpID0+IG51bGwpO1xuXG4gICAgdGhpcy52YWxpZGF0ZVBhcmVudEFzeW5jID1cbiAgICAgICh0aGlzLnBhcmVudENvbnRyb2wuYXN5bmNWYWxpZGF0b3IgJiZcbiAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sLmFzeW5jVmFsaWRhdG9yLmJpbmQodGhpcy5wYXJlbnRDb250cm9sKSkgfHxcbiAgICAgICgoKSA9PiBvZihudWxsKSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKlxuICAgKiBJbmhlcml0IHZhbGlkYXRvcnMgZnJvbSBwYXJlbnQgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcHJpdmF0ZSBiaW5kUGFyZW50VmFsaWRhdG9yc1RvQ29udHJvbCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gIXRoaXMubWF0U2VsZWN0Q29udHJvbC52YWxpZGF0b3JcbiAgICAgID8gW3RoaXMudmFsaWRhdGVQYXJlbnRdXG4gICAgICA6IEFycmF5LmlzQXJyYXkodGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbGlkYXRvcilcbiAgICAgICAgPyBbLi4udGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZVBhcmVudF1cbiAgICAgICAgOiBbdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZVBhcmVudF07XG4gICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG5cbiAgICBjb25zdCBhc3luY1ZhbGlkYXRvcnMgPSAhdGhpcy5tYXRTZWxlY3RDb250cm9sLmFzeW5jVmFsaWRhdG9yXG4gICAgICA/IFt0aGlzLnZhbGlkYXRlUGFyZW50QXN5bmNdXG4gICAgICA6IEFycmF5LmlzQXJyYXkodGhpcy5tYXRTZWxlY3RDb250cm9sLmFzeW5jVmFsaWRhdG9yKVxuICAgICAgICA/IFsuLi50aGlzLm1hdFNlbGVjdENvbnRyb2wuYXN5bmNWYWxpZGF0b3IsIHRoaXMudmFsaWRhdGVQYXJlbnRBc3luY11cbiAgICAgICAgOiBbdGhpcy5tYXRTZWxlY3RDb250cm9sLmFzeW5jVmFsaWRhdG9yLCB0aGlzLnZhbGlkYXRlUGFyZW50QXN5bmNdO1xuICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzKTtcblxuICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKlxuICAgKiBFbWl0IHZhbHVlcyB0byB0aGUgcGFyZW50IGZvcm0gY29udHJvbCB3aGVuIG91ciBmb3JtIGNvbnRyb2wncyB2YWx1ZVxuICAgKiBjaGFuZ2VzLlxuICAgKlxuICAgKiBSZWZsZWN0IHBhcmVudCB2YWxpZGF0aW9uIGVycm9ycyBpbiBvdXIgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcHJpdmF0ZSBiaW5kQ29udHJvbFRvUGFyZW50KCk6IHZvaWQge1xuICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHZhbHVlKSA9PiAodmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB2YWx1ZSkpLFxuICAgICAgICBtYXAoKHZhbHVlOiBXYXR0RHJvcGRvd25WYWx1ZSkgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgdGhpcy5kZXRlcm1pbmVUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1hcmtQYXJlbnRDb250cm9sQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlUGFyZW50VmFsdWUodmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnBhcmVudENvbnRyb2w/LnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgIC4uLnRoaXMucGFyZW50Q29udHJvbD8uZXJyb3JzLFxuICAgICAgICAgICAgfSkgYXMgVmFsaWRhdGlvbkVycm9yc1xuICAgICAgICApLFxuICAgICAgICBtYXAoKGVycm9ycykgPT4gKE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMCA/IGVycm9ycyA6IG51bGwpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlcnJvcnMpID0+IHtcbiAgICAgICAgdGhpcy5tYXRTZWxlY3RDb250cm9sLnNldEVycm9ycyhlcnJvcnMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJPcHRpb25zKCkge1xuICAgIGlmICghdGhpcy5fb3B0aW9ucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGdldCB0aGUgc2VhcmNoIGtleXdvcmRcbiAgICBsZXQgc2VhcmNoID0gKHRoaXMuZmlsdGVyQ29udHJvbC52YWx1ZSBhcyBzdHJpbmcpLnRyaW0oKTtcblxuICAgIGlmIChzZWFyY2gpIHtcbiAgICAgIHNlYXJjaCA9IHNlYXJjaC50b0xvd2VyQ2FzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZE9wdGlvbnMkLm5leHQodGhpcy5fb3B0aW9ucy5zbGljZSgpKTtcbiAgICB9XG5cbiAgICAvLyBmaWx0ZXIgdGhlIG9wdGlvbnNcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyQubmV4dChcbiAgICAgIHRoaXMuX29wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5kaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaCkgPiAtMSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZGV0ZXJtaW5lVG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBmaWx0ZXIoKG9wdGlvbnMpID0+IG9wdGlvbnMgIT0gbnVsbCAmJiBvcHRpb25zICE9PSB1bmRlZmluZWQpLFxuICAgICAgICBtYXAoKG9wdGlvbnMpID0+IG9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChmaWx0ZXJlZE9wdGlvbnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3RlZE9wdGlvbnMpKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMgPSBmaWx0ZXJlZE9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+XG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnMuaW5jbHVkZXMob3B0aW9uKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLmlzVG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZSA9XG4gICAgICAgICAgICBzZWxlY3RlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICBzZWxlY3RlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPCBmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoO1xuXG4gICAgICAgICAgdGhpcy5pc1RvZ2dsZUFsbENoZWNrZWQgPVxuICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID09PSBmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuQGxpY2Vuc2VcbkNvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4tLT5cbjx3YXR0LWZpZWxkXG4gIFtjb250cm9sXT1cInBhcmVudENvbnRyb2xcIlxuICBbY2hpcE1vZGVdPVwiY2hpcE1vZGVcIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICAoY2xpY2spPVwibWF0U2VsZWN0Lm9wZW4oKVwiXG4+XG4gIEBpZiAoY2hpcE1vZGUpIHtcbiAgICA8d2F0dC1tZW51LWNoaXBcbiAgICAgIFtvcGVuZWRdPVwibWF0U2VsZWN0LnBhbmVsT3BlblwiXG4gICAgICAodG9nZ2xlKT1cIm1hdFNlbGVjdC5vcGVuKClcIlxuICAgICAgW3NlbGVjdGVkXT1cIiEhbWF0U2VsZWN0Py50cmlnZ2VyVmFsdWUgJiYgIWRpc2FibGVTZWxlY3RlZE1vZGVcIlxuICAgICAgW2Rpc2FibGVkXT1cIm1hdFNlbGVjdENvbnRyb2wuZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICBAaWYgKHNob3dUcmlnZ2VyVmFsdWUpIHtcbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgQGlmIChwbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgOlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBnZXRDdXN0b21UcmlnZ2VyPy4obWF0U2VsZWN0LnZhbHVlKSA/PyBtYXRTZWxlY3Q/LnRyaWdnZXJWYWx1ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKHNob3dDaGlwTGFiZWwpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3YXR0LWNoaXAtbGFiZWxcIj57eyBtYXRTZWxlY3RDb250cm9sLnZhbHVlPy5sZW5ndGggfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC93YXR0LW1lbnUtY2hpcD5cbiAgfVxuXG4gIDxtYXQtc2VsZWN0XG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgW2Zvcm1Db250cm9sXT1cIm1hdFNlbGVjdENvbnRyb2xcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgI21hdFNlbGVjdFxuICAgIFtwYW5lbFdpZHRoXT1cInBhbmVsV2lkdGhcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgW25nQ2xhc3NdPVwieyBjaGlwOiBjaGlwTW9kZSB9XCJcbiAgICBbcGFuZWxDbGFzc109XCJ7XG4gICAgICAnd2F0dC1kcm9wZG93bi1wYW5lbCc6IHRydWUsXG4gICAgICAnd2F0dC1kcm9wZG93bi1wYW5lbC1jaGlwLW1vZGUnOiBjaGlwTW9kZSxcbiAgICB9XCJcbiAgPlxuICAgIDwhLS0gV2UgdXNlIHRoaXMgaW5zdGVhZCBvZiBuZ0lmLCBzaW5jZSBpdCB3aWxsIHRyaWdnZXIgYSBORzAxMDA6IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3I6IEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWQuIC0tPlxuICAgIDxtYXQtb3B0aW9uIFtzdHlsZS5kaXNwbGF5XT1cIiFoaWRlU2VhcmNoID8gJ2Jsb2NrJyA6ICdub25lJ1wiPlxuICAgICAgPG5neC1tYXQtc2VsZWN0LXNlYXJjaFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZmlsdGVyQ29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgY2xvc2VJY29uPVwiY2xvc2VcIlxuICAgICAgICBbc2hvd1RvZ2dsZUFsbENoZWNrYm94XT1cIm11bHRpcGxlXCJcbiAgICAgICAgKHRvZ2dsZUFsbCk9XCJvblRvZ2dsZUFsbCgkZXZlbnQpXCJcbiAgICAgICAgW3RvZ2dsZUFsbENoZWNrYm94Q2hlY2tlZF09XCJpc1RvZ2dsZUFsbENoZWNrZWRcIlxuICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzVG9nZ2xlQWxsSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgIFtub0VudHJpZXNGb3VuZExhYmVsXT1cIm5vT3B0aW9uc0ZvdW5kTGFiZWxcIlxuICAgICAgPlxuICAgICAgICA8d2F0dC1pY29uIG5neE1hdFNlbGVjdFNlYXJjaENsZWFyIG5hbWU9XCJjbG9zZVwiIHNpemU9XCJzXCIgLz5cbiAgICAgIDwvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoPlxuICAgIDwvbWF0LW9wdGlvbj5cblxuICAgIEBpZiAoIW11bHRpcGxlICYmIHNob3dSZXNldE9wdGlvbikge1xuICAgICAgPG1hdC1vcHRpb24+e3sgZW1EYXNoIH19PC9tYXQtb3B0aW9uPlxuICAgIH1cblxuICAgIEBmb3IgKG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMkIHwgcHVzaDsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiPlxuICAgICAgICB7eyBvcHRpb24uZGlzcGxheVZhbHVlIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgfVxuICA8L21hdC1zZWxlY3Q+XG4gIDxuZy1jb250ZW50IC8+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1oaW50XCIgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgLz5cbiAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWVycm9yXCIgc2VsZWN0PVwid2F0dC1maWVsZC1lcnJvclwiIC8+XG48L3dhdHQtZmllbGQ+XG4iXX0=
396
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9kcm9wZG93bi93YXR0LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Ryb3Bkb3duL3dhdHQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxXQUFXLEVBQ1gsU0FBUyxFQUNULGtCQUFrQixFQUdsQixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QkFBaEIsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQU9HLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBc3luY1ZhbGlkYXRvckZuLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5nQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JGbixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSeFB1c2ggfSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9wdXNoJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSwgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE5neE1hdFNlbGVjdFNlYXJjaE1vZHVsZSB9IGZyb20gJ25neC1tYXQtc2VsZWN0LXNlYXJjaCc7XG5pbXBvcnQgeyBvZiwgUmVwbGF5U3ViamVjdCwgbWFwLCB0YWtlLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHsgV2F0dEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ZpZWxkJztcbmltcG9ydCB0eXBlIHsgV2F0dERyb3Bkb3duT3B0aW9ucyB9IGZyb20gJy4vd2F0dC1kcm9wZG93bi1vcHRpb24nO1xuaW1wb3J0IHR5cGUgeyBXYXR0RHJvcGRvd25WYWx1ZSB9IGZyb20gJy4vd2F0dC1kcm9wZG93bi12YWx1ZSc7XG5pbXBvcnQgeyBXYXR0TWVudUNoaXBDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvY2hpcCc7XG5pbXBvcnQgeyBXYXR0SWNvbkNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2F0dC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi93YXR0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2F0dC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgUnhQdXNoLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTmd4TWF0U2VsZWN0U2VhcmNoTW9kdWxlLFxuICAgIFdhdHRNZW51Q2hpcENvbXBvbmVudCxcbiAgICBXYXR0RmllbGRDb21wb25lbnQsXG4gICAgV2F0dEljb25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdhdHREcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBwcml2YXRlIHBhcmVudENvbnRyb2xEaXJlY3RpdmUgPSBpbmplY3QoTmdDb250cm9sLCB7IGhvc3Q6IHRydWUgfSk7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcGFyZW50Q29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsID0gbnVsbDtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVQYXJlbnQ/OiBWYWxpZGF0b3JGbjtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVQYXJlbnRBc3luYz86IEFzeW5jVmFsaWRhdG9yRm47XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICpcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci53YXR0LWZpZWxkLWRpc2FibGVkJykgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBtYXRTZWxlY3RDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2wgZm9yIHRoZSBNYXRTZWxlY3QgZmlsdGVyIGtleXdvcmRcbiAgICpcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZmlsdGVyQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcblxuICAvKipcbiAgICogTGlzdCBvZiBvcHRpb25zIGZpbHRlcmVkIGJ5IHNlYXJjaCBrZXl3b3JkXG4gICAqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGZpbHRlcmVkT3B0aW9ucyQgPSBuZXcgUmVwbGF5U3ViamVjdDxXYXR0RHJvcGRvd25PcHRpb25zPigxKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZW1EYXNoID0gJ+KAlCc7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGlzVG9nZ2xlQWxsQ2hlY2tlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBpc1RvZ2dsZUFsbEluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcblxuICBfb3B0aW9uczogV2F0dERyb3Bkb3duT3B0aW9ucyA9IFtdO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnZXQgc2hvd1RyaWdnZXJWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMubXVsdGlwbGUgJiZcbiAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZT8ubGVuZ3RoID09PSAxICYmXG4gICAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWVbMF0gIT09ICcnKSB8fFxuICAgICAgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMubWF0U2VsZWN0Py50cmlnZ2VyVmFsdWUpXG4gICAgICA/IHRydWVcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IHNob3dDaGlwTGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgJiYgdGhpcy5tYXRTZWxlY3RDb250cm9sLnZhbHVlICYmIHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWx1ZS5sZW5ndGggPiAxXG4gICAgICA/IHRydWVcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnbWF0U2VsZWN0JywgeyBzdGF0aWM6IHRydWUgfSkgbWF0U2VsZWN0PzogTWF0U2VsZWN0O1xuXG4gIEBJbnB1dCgpIGhpZGVTZWFyY2ggPSBmYWxzZTtcbiAgQElucHV0KCkgcGFuZWxXaWR0aDogbnVsbCB8ICdhdXRvJyA9IG51bGw7XG4gIEBJbnB1dCgpIGdldEN1c3RvbVRyaWdnZXI/OiAodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbW9kZSBvZiB0aGUgZHJvcGRvd24uXG4gICAqL1xuICBASW5wdXQoKSBjaGlwTW9kZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndhdHQtY2hpcC1tb2RlJylcbiAgZ2V0IGNoaXBNb2RlQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcE1vZGU7XG4gIH1cblxuICBASW5wdXQoKSBkaXNhYmxlU2VsZWN0ZWRNb2RlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc29ydERpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG9wdGlvbnMgZm9yIHRoZSBkcm9wZG93bi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBvcHRpb25zKG9wdGlvbnM6IFdhdHREcm9wZG93bk9wdGlvbnMpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xuICAgICAgbGV0IG9wdGlvbnNDb3B5ID0gWy4uLm9wdGlvbnNdO1xuXG4gICAgICBpZiAodGhpcy5zb3J0RGlyZWN0aW9uKSB7XG4gICAgICAgIG9wdGlvbnNDb3B5ID0gdGhpcy5zb3J0T3B0aW9ucyhvcHRpb25zQ29weSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zQ29weTtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zJC5uZXh0KG9wdGlvbnNDb3B5KTtcbiAgICB9XG4gIH1cbiAgZ2V0IG9wdGlvbnMoKTogV2F0dERyb3Bkb3duT3B0aW9ucyB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBzdXBwb3J0IGZvciBzZWxlY3RpbmcgbXVsdGlwbGUgZHJvcGRvd24gb3B0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNldHMgc3VwcG9ydCBmb3IgaGlkaW5nIHRoZSByZXNldCBvcHRpb24gaW4gXCJzaW5nbGVcIiBzZWxlY3QgbW9kZS5cbiAgICovXG4gIEBJbnB1dCgpIHNob3dSZXNldE9wdGlvbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBsYWNlaG9sZGVyIGZvciB0aGUgZHJvcGRvd24uXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsYWJlbCBmb3IgdGhlIGRyb3Bkb3duLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWwgPSAnJztcblxuICAvKipcbiAgICogTGFiZWwgdG8gYmUgc2hvd24gd2hlbiBubyBvcHRpb25zIGFyZSBmb3VuZCBhZnRlciBmaWx0ZXJpbmcuXG4gICAqXG4gICAqIE5vdGU6IFRoZSBsYWJlbCBpcyB2aXNpYmxlIGluIFwibXVsdGlwbGVcIiBtb2RlIG9ubHkuXG4gICAqL1xuICBASW5wdXQoKSBub09wdGlvbnNGb3VuZExhYmVsID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5wYXJlbnRDb250cm9sRGlyZWN0aXZlLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuRm9yRmlsdGVyRmllbGRWYWx1ZUNoYW5nZXMoKTtcbiAgICB0aGlzLmluaXRpYWxpemVQcm9wZXJ0aWVzRnJvbVBhcmVudCgpO1xuICAgIHRoaXMuYmluZFBhcmVudFZhbGlkYXRvcnNUb0NvbnRyb2woKTtcbiAgICB0aGlzLmJpbmRDb250cm9sVG9QYXJlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBXYXR0RHJvcGRvd25WYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZUZuOiAodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VQYXJlbnRWYWx1ZSA9IG9uQ2hhbmdlRm47XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaEZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5tYXJrUGFyZW50Q29udHJvbEFzVG91Y2hlZCA9IG9uVG91Y2hGbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlKHNob3VsZERpc2FibGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBzaG91bGREaXNhYmxlO1xuICAgIGlmIChzaG91bGREaXNhYmxlKSB7XG4gICAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG9uVG9nZ2xlQWxsKHRvZ2dsZUFsbFN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgbWFwKChvcHRpb25zKSA9PiBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZmlsdGVyZWRPcHRpb25zOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zVG9TZWxlY3QgPSB0b2dnbGVBbGxTdGF0ZSA/IGZpbHRlcmVkT3B0aW9ucyA6IFtdO1xuICAgICAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wucGF0Y2hWYWx1ZShvcHRpb25zVG9TZWxlY3QpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc29ydE9wdGlvbnMob3B0aW9uczogV2F0dERyb3Bkb3duT3B0aW9ucyk6IFdhdHREcm9wZG93bk9wdGlvbnMge1xuICAgIHJldHVybiBbLi4ub3B0aW9uc10uc29ydCgoYSwgYikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYydcbiAgICAgICAgPyBhLmRpc3BsYXlWYWx1ZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheVZhbHVlKVxuICAgICAgICA6IGIuZGlzcGxheVZhbHVlLmxvY2FsZUNvbXBhcmUoYS5kaXNwbGF5VmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuRm9yRmlsdGVyRmllbGRWYWx1ZUNoYW5nZXMoKSB7XG4gICAgdGhpcy5maWx0ZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucygpO1xuXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICB0aGlzLmRldGVybWluZVRvZ2dsZUFsbENoZWNrYm94U3RhdGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHByaXZhdGUgY2hhbmdlUGFyZW50VmFsdWUgPSAodmFsdWU6IFdhdHREcm9wZG93blZhbHVlKTogdm9pZCA9PiB7XG4gICAgLy8gSW50ZW50aW9uYWxseSBsZWZ0IGVtcHR5XG4gIH07XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgbWFya1BhcmVudENvbnRyb2xBc1RvdWNoZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgLy8gSW50ZW50aW9uYWxseSBsZWZ0IGVtcHR5XG4gIH07XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICpcbiAgICogU3RvcmUgdGhlIHBhcmVudCBjb250cm9sLCBpdHMgdmFsaWRhdG9ycyBhbmQgYXN5bmMgdmFsaWRhdG9ycyBpbiBwcm9wZXJ0aWVzXG4gICAqIG9mIHRoaXMgY29tcG9uZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplUHJvcGVydGllc0Zyb21QYXJlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnRDb250cm9sID0gdGhpcy5wYXJlbnRDb250cm9sRGlyZWN0aXZlLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuXG4gICAgdGhpcy52YWxpZGF0ZVBhcmVudCA9XG4gICAgICAodGhpcy5wYXJlbnRDb250cm9sLnZhbGlkYXRvciAmJiB0aGlzLnBhcmVudENvbnRyb2wudmFsaWRhdG9yLmJpbmQodGhpcy5wYXJlbnRDb250cm9sKSkgfHxcbiAgICAgICgoKSA9PiBudWxsKTtcblxuICAgIHRoaXMudmFsaWRhdGVQYXJlbnRBc3luYyA9XG4gICAgICAodGhpcy5wYXJlbnRDb250cm9sLmFzeW5jVmFsaWRhdG9yICYmXG4gICAgICAgIHRoaXMucGFyZW50Q29udHJvbC5hc3luY1ZhbGlkYXRvci5iaW5kKHRoaXMucGFyZW50Q29udHJvbCkpIHx8XG4gICAgICAoKCkgPT4gb2YobnVsbCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICpcbiAgICogSW5oZXJpdCB2YWxpZGF0b3JzIGZyb20gcGFyZW50IGZvcm0gY29udHJvbC5cbiAgICovXG4gIHByaXZhdGUgYmluZFBhcmVudFZhbGlkYXRvcnNUb0NvbnRyb2woKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9ICF0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsaWRhdG9yXG4gICAgICA/IFt0aGlzLnZhbGlkYXRlUGFyZW50XVxuICAgICAgOiBBcnJheS5pc0FycmF5KHRoaXMubWF0U2VsZWN0Q29udHJvbC52YWxpZGF0b3IpXG4gICAgICAgID8gWy4uLnRoaXMubWF0U2VsZWN0Q29udHJvbC52YWxpZGF0b3IsIHRoaXMudmFsaWRhdGVQYXJlbnRdXG4gICAgICAgIDogW3RoaXMubWF0U2VsZWN0Q29udHJvbC52YWxpZGF0b3IsIHRoaXMudmFsaWRhdGVQYXJlbnRdO1xuICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuXG4gICAgY29uc3QgYXN5bmNWYWxpZGF0b3JzID0gIXRoaXMubWF0U2VsZWN0Q29udHJvbC5hc3luY1ZhbGlkYXRvclxuICAgICAgPyBbdGhpcy52YWxpZGF0ZVBhcmVudEFzeW5jXVxuICAgICAgOiBBcnJheS5pc0FycmF5KHRoaXMubWF0U2VsZWN0Q29udHJvbC5hc3luY1ZhbGlkYXRvcilcbiAgICAgICAgPyBbLi4udGhpcy5tYXRTZWxlY3RDb250cm9sLmFzeW5jVmFsaWRhdG9yLCB0aGlzLnZhbGlkYXRlUGFyZW50QXN5bmNdXG4gICAgICAgIDogW3RoaXMubWF0U2VsZWN0Q29udHJvbC5hc3luY1ZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZVBhcmVudEFzeW5jXTtcbiAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XG5cbiAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICpcbiAgICogRW1pdCB2YWx1ZXMgdG8gdGhlIHBhcmVudCBmb3JtIGNvbnRyb2wgd2hlbiBvdXIgZm9ybSBjb250cm9sJ3MgdmFsdWVcbiAgICogY2hhbmdlcy5cbiAgICpcbiAgICogUmVmbGVjdCBwYXJlbnQgdmFsaWRhdGlvbiBlcnJvcnMgaW4gb3VyIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHByaXZhdGUgYmluZENvbnRyb2xUb1BhcmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh2YWx1ZSkgPT4gKHZhbHVlID09PSB1bmRlZmluZWQgPyBudWxsIDogdmFsdWUpKSxcbiAgICAgICAgbWFwKCh2YWx1ZTogV2F0dERyb3Bkb3duVmFsdWUpID0+IHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBXYXR0RHJvcGRvd25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgIHRoaXMuZGV0ZXJtaW5lVG9nZ2xlQWxsQ2hlY2tib3hTdGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYXJrUGFyZW50Q29udHJvbEFzVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmNoYW5nZVBhcmVudFZhbHVlKHZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5wYXJlbnRDb250cm9sPy5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAuLi50aGlzLnBhcmVudENvbnRyb2w/LmVycm9ycyxcbiAgICAgICAgICAgIH0pIGFzIFZhbGlkYXRpb25FcnJvcnNcbiAgICAgICAgKSxcbiAgICAgICAgbWFwKChlcnJvcnMpID0+IChPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA+IDAgPyBlcnJvcnMgOiBudWxsKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXJyb3JzKSA9PiB7XG4gICAgICAgIHRoaXMubWF0U2VsZWN0Q29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyT3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuX29wdGlvbnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBnZXQgdGhlIHNlYXJjaCBrZXl3b3JkXG4gICAgbGV0IHNlYXJjaCA9ICh0aGlzLmZpbHRlckNvbnRyb2wudmFsdWUgYXMgc3RyaW5nKS50cmltKCk7XG5cbiAgICBpZiAoc2VhcmNoKSB7XG4gICAgICBzZWFyY2ggPSBzZWFyY2gudG9Mb3dlckNhc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRPcHRpb25zJC5uZXh0KHRoaXMuX29wdGlvbnMuc2xpY2UoKSk7XG4gICAgfVxuXG4gICAgLy8gZmlsdGVyIHRoZSBvcHRpb25zXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMkLm5leHQoXG4gICAgICB0aGlzLl9vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uZGlzcGxheVZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpID4gLTEpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGRldGVybWluZVRvZ2dsZUFsbENoZWNrYm94U3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgZmlsdGVyKChvcHRpb25zKSA9PiBvcHRpb25zICE9IG51bGwgJiYgb3B0aW9ucyAhPT0gdW5kZWZpbmVkKSxcbiAgICAgICAgbWFwKChvcHRpb25zKSA9PiBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZmlsdGVyZWRPcHRpb25zOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm1hdFNlbGVjdENvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZWN0ZWRPcHRpb25zKSkge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmlsdGVyZWRPcHRpb25zID0gZmlsdGVyZWRPcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PlxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25zLmluY2x1ZGVzKG9wdGlvbilcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5pc1RvZ2dsZUFsbEluZGV0ZXJtaW5hdGUgPVxuICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoIDwgZmlsdGVyZWRPcHRpb25zLmxlbmd0aDtcblxuICAgICAgICAgIHRoaXMuaXNUb2dnbGVBbGxDaGVja2VkID1cbiAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVyZWRPcHRpb25zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVyZWRPcHRpb25zLmxlbmd0aCA9PT0gZmlsdGVyZWRPcHRpb25zLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbkBsaWNlbnNlXG5Db3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuLS0+XG48d2F0dC1maWVsZFxuICBbY29udHJvbF09XCJwYXJlbnRDb250cm9sXCJcbiAgW2NoaXBNb2RlXT1cImNoaXBNb2RlXCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgKGNsaWNrKT1cIm1hdFNlbGVjdC5vcGVuKClcIlxuPlxuICBAaWYgKGNoaXBNb2RlKSB7XG4gICAgPHdhdHQtbWVudS1jaGlwXG4gICAgICBbb3BlbmVkXT1cIm1hdFNlbGVjdC5wYW5lbE9wZW5cIlxuICAgICAgKHRvZ2dsZSk9XCJtYXRTZWxlY3Qub3BlbigpXCJcbiAgICAgIFtzZWxlY3RlZF09XCIhIW1hdFNlbGVjdD8udHJpZ2dlclZhbHVlICYmICFkaXNhYmxlU2VsZWN0ZWRNb2RlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJtYXRTZWxlY3RDb250cm9sLmRpc2FibGVkXCJcbiAgICA+XG4gICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgQGlmIChzaG93VHJpZ2dlclZhbHVlKSB7XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIEBpZiAocGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIDpcbiAgICAgICAgICB9XG4gICAgICAgICAge3sgZ2V0Q3VzdG9tVHJpZ2dlcj8uKG1hdFNlbGVjdC52YWx1ZSkgPz8gbWF0U2VsZWN0Py50cmlnZ2VyVmFsdWUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgICAgQGlmIChzaG93Q2hpcExhYmVsKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2F0dC1jaGlwLWxhYmVsXCI+e3sgbWF0U2VsZWN0Q29udHJvbC52YWx1ZT8ubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvd2F0dC1tZW51LWNoaXA+XG4gIH1cblxuICA8bWF0LXNlbGVjdFxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIlxuICAgIFtmb3JtQ29udHJvbF09XCJtYXRTZWxlY3RDb250cm9sXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICNtYXRTZWxlY3RcbiAgICBbcGFuZWxXaWR0aF09XCJwYW5lbFdpZHRoXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgIFtuZ0NsYXNzXT1cInsgY2hpcDogY2hpcE1vZGUgfVwiXG4gICAgW3BhbmVsQ2xhc3NdPVwie1xuICAgICAgJ3dhdHQtZHJvcGRvd24tcGFuZWwnOiB0cnVlLFxuICAgICAgJ3dhdHQtZHJvcGRvd24tcGFuZWwtY2hpcC1tb2RlJzogY2hpcE1vZGUsXG4gICAgfVwiXG4gID5cbiAgICA8IS0tIFdlIHVzZSB0aGlzIGluc3RlYWQgb2YgbmdJZiwgc2luY2UgaXQgd2lsbCB0cmlnZ2VyIGEgTkcwMTAwOiBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yOiBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkLiAtLT5cbiAgICA8bWF0LW9wdGlvbiBbc3R5bGUuZGlzcGxheV09XCIhaGlkZVNlYXJjaCA/ICdibG9jaycgOiAnbm9uZSdcIj5cbiAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2hcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZpbHRlckNvbnRyb2xcIlxuICAgICAgICBbcGxhY2Vob2xkZXJMYWJlbF09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIGNsb3NlSWNvbj1cImNsb3NlXCJcbiAgICAgICAgW3Nob3dUb2dnbGVBbGxDaGVja2JveF09XCJtdWx0aXBsZVwiXG4gICAgICAgICh0b2dnbGVBbGwpPVwib25Ub2dnbGVBbGwoJGV2ZW50KVwiXG4gICAgICAgIFt0b2dnbGVBbGxDaGVja2JveENoZWNrZWRdPVwiaXNUb2dnbGVBbGxDaGVja2VkXCJcbiAgICAgICAgW3RvZ2dsZUFsbENoZWNrYm94SW5kZXRlcm1pbmF0ZV09XCJpc1RvZ2dsZUFsbEluZGV0ZXJtaW5hdGVcIlxuICAgICAgICBbbm9FbnRyaWVzRm91bmRMYWJlbF09XCJub09wdGlvbnNGb3VuZExhYmVsXCJcbiAgICAgID5cbiAgICAgICAgPHdhdHQtaWNvbiBuZ3hNYXRTZWxlY3RTZWFyY2hDbGVhciBuYW1lPVwiY2xvc2VcIiBzaXplPVwic1wiIC8+XG4gICAgICA8L25neC1tYXQtc2VsZWN0LXNlYXJjaD5cbiAgICA8L21hdC1vcHRpb24+XG5cbiAgICBAaWYgKCFtdWx0aXBsZSAmJiBzaG93UmVzZXRPcHRpb24pIHtcbiAgICAgIDxtYXQtb3B0aW9uPnt7IGVtRGFzaCB9fTwvbWF0LW9wdGlvbj5cbiAgICB9XG5cbiAgICBAZm9yIChvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zJCB8IHB1c2g7IHRyYWNrIG9wdGlvbikge1xuICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIj5cbiAgICAgICAge3sgb3B0aW9uLmRpc3BsYXlWYWx1ZSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIH1cbiAgPC9tYXQtc2VsZWN0PlxuICA8bmctY29udGVudCAvPlxuICA8bmctY29udGVudCBuZ1Byb2plY3RBcz1cIndhdHQtZmllbGQtaGludFwiIHNlbGVjdD1cIndhdHQtZmllbGQtaGludFwiIC8+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1lcnJvclwiIHNlbGVjdD1cIndhdHQtZmllbGQtZXJyb3JcIiAvPlxuPC93YXR0LWZpZWxkPlxuIl19
@@ -25,10 +25,10 @@ export class WattDropZoneIntlService {
25
25
  button = 'Choose file';
26
26
  buttonMultiple = 'Choose files';
27
27
  loadingMessage = 'Loading';
28
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropZoneIntlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropZoneIntlService, providedIn: 'root' });
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropZoneIntlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropZoneIntlService, providedIn: 'root' });
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropZoneIntlService, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropZoneIntlService, decorators: [{
32
32
  type: Injectable,
33
33
  args: [{ providedIn: 'root' }]
34
34
  }] });
@@ -32,10 +32,10 @@ export class FileTypeValidator {
32
32
  ? { type: true }
33
33
  : null;
34
34
  }
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FileTypeValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.3", type: FileTypeValidator, isStandalone: true, providers: [{ provide: NG_VALIDATORS, useExisting: FileTypeValidator, multi: true }], ngImport: i0 });
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: FileTypeValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: FileTypeValidator, isStandalone: true, providers: [{ provide: NG_VALIDATORS, useExisting: FileTypeValidator, multi: true }], ngImport: i0 });
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FileTypeValidator, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: FileTypeValidator, decorators: [{
39
39
  type: Directive,
40
40
  args: [{
41
41
  providers: [{ provide: NG_VALIDATORS, useExisting: FileTypeValidator, multi: true }],
@@ -51,10 +51,10 @@ export class MultipleFilesValidator {
51
51
  const multiple = this.component.multiple();
52
52
  return !multiple && control.value?.length !== 1 ? { multiple: true } : null;
53
53
  }
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MultipleFilesValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
55
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.3", type: MultipleFilesValidator, isStandalone: true, providers: [{ provide: NG_VALIDATORS, useExisting: MultipleFilesValidator, multi: true }], ngImport: i0 });
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: MultipleFilesValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
55
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: MultipleFilesValidator, isStandalone: true, providers: [{ provide: NG_VALIDATORS, useExisting: MultipleFilesValidator, multi: true }], ngImport: i0 });
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: MultipleFilesValidator, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: MultipleFilesValidator, decorators: [{
58
58
  type: Directive,
59
59
  args: [{
60
60
  providers: [{ provide: NG_VALIDATORS, useExisting: MultipleFilesValidator, multi: true }],
@@ -31,17 +31,17 @@ import * as i2 from "@angular/material/progress-bar";
31
31
  export class WattDropZone {
32
32
  intl = inject(WattDropZoneIntlService);
33
33
  /** Whether the dropzone should accept multiple files. */
34
- multiple = input(false, { transform: booleanAttribute });
34
+ multiple = input(false, ...(ngDevMode ? [{ debugName: "multiple", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
35
35
  /** Label for the dropzone. */
36
- label = input();
36
+ label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
37
37
  /** Comma-separated list of MIME types that the dropzone accepts. */
38
- accept = input([], { transform: (value) => value.split(',') });
38
+ accept = input([], ...(ngDevMode ? [{ debugName: "accept", transform: (value) => value.split(',') }] : [{ transform: (value) => value.split(',') }]));
39
39
  /** Emits when one or more files are selected. */
40
40
  selected = output();
41
41
  // Tracks (valid) drag over state
42
- dragOver = signal(false);
42
+ dragOver = signal(false, ...(ngDevMode ? [{ debugName: "dragOver" }] : []));
43
43
  // Progress
44
- progress = input(100);
44
+ progress = input(100, ...(ngDevMode ? [{ debugName: "progress" }] : []));
45
45
  handleFiles(files) {
46
46
  if (!files)
47
47
  return;
@@ -70,8 +70,8 @@ export class WattDropZone {
70
70
  writeValue = () => { }; // eslint-disable-line @typescript-eslint/no-empty-function
71
71
  registerOnTouched = (fn) => this.selected.subscribe(fn);
72
72
  registerOnChange = (fn) => this.selected.subscribe(fn);
73
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropZone, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: WattDropZone, isStandalone: true, selector: "watt-dropzone", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, providers: [
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropZone, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattDropZone, isStandalone: true, selector: "watt-dropzone", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, providers: [
75
75
  {
76
76
  provide: NG_VALUE_ACCESSOR,
77
77
  useExisting: forwardRef(() => WattDropZone),
@@ -119,7 +119,7 @@ export class WattDropZone {
119
119
  </watt-field>
120
120
  `, isInline: true, styles: [".wrapper{display:block;min-height:184px}.dropzone{padding:var(--watt-space-l);background:var(--watt-color-neutral-grey-200)}.dragOver{background:var(--watt-color-state-info-light)}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color: var(--watt-color-primary);--mdc-linear-progress-track-color: var(--watt-color-primary-light)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: VaterStackComponent, selector: "vater-stack, [vater-stack]" }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattDropZone, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropZone, decorators: [{
123
123
  type: Component,
124
124
  args: [{ imports: [
125
125
  ReactiveFormsModule,
@@ -176,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
176
176
  </watt-field>
177
177
  `, styles: [".wrapper{display:block;min-height:184px}.dropzone{padding:var(--watt-space-l);background:var(--watt-color-neutral-grey-200)}.dragOver{background:var(--watt-color-state-info-light)}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color: var(--watt-color-primary);--mdc-linear-progress-track-color: var(--watt-color-primary-light)}\n"] }]
178
178
  }] });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Ryb3B6b25lL3dhdHQtZHJvcHpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQXFGdkYsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLElBQUksR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUV2Qyx5REFBeUQ7SUFDekQsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRXpELDhCQUE4QjtJQUM5QixLQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFFeEIsb0VBQW9FO0lBQ3BFLE1BQU0sR0FBRyxLQUFLLENBQUMs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biBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuXG5pbXBvcnQgeyBXYXR0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2J1dHRvbic7XG5pbXBvcnQgeyBXYXR0RmllbGRDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvZmllbGQnO1xuaW1wb3J0IHsgVmF0ZXJTdGFja0NvbXBvbmVudCwgVmF0ZXJVdGlsaXR5RGlyZWN0aXZlIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhdGVyJztcbmltcG9ydCB7IFdhdHREcm9wWm9uZUludGxTZXJ2aWNlIH0gZnJvbSAnLi93YXR0LWRyb3B6b25lLWludGwnO1xuaW1wb3J0IHsgRmlsZVR5cGVWYWxpZGF0b3IsIE11bHRpcGxlRmlsZXNWYWxpZGF0b3IgfSBmcm9tICcuL3dhdHQtZHJvcHpvbmUtdmFsaWRhdG9ycyc7XG5cbi8vIFNsaWdodGx5IGJldHRlciB0eXBpbmcgdGhhbiBqdXN0IHJhdyBzdHJpbmdcbmV4cG9ydCB0eXBlIE1pbWVUeXBlID0gYCR7c3RyaW5nfS8ke3N0cmluZ31gO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVmF0ZXJTdGFja0NvbXBvbmVudCxcbiAgICBWYXRlclV0aWxpdHlEaXJlY3RpdmUsXG4gICAgV2F0dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBXYXR0RmllbGRDb21wb25lbnQsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gIF0sXG4gIHNlbGVjdG9yOiAnd2F0dC1kcm9wem9uZScsXG4gIGhvc3REaXJlY3RpdmVzOiBbRmlsZVR5cGVWYWxpZGF0b3IsIE11bHRpcGxlRmlsZXNWYWxpZGF0b3JdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdhdHREcm9wWm9uZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBzdHlsZXM6IGBcbiAgICAud3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1pbi1oZWlnaHQ6IDE4NHB4OyAvKiBNYWdpYyBVWCBudW1iZXIgKi9cbiAgICB9XG5cbiAgICAuZHJvcHpvbmUge1xuICAgICAgcGFkZGluZzogdmFyKC0td2F0dC1zcGFjZS1sKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdhdHQtY29sb3ItbmV1dHJhbC1ncmV5LTIwMCk7XG4gICAgfVxuXG4gICAgLmRyYWdPdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdhdHQtY29sb3Itc3RhdGUtaW5mby1saWdodCk7XG4gICAgfVxuXG4gICAgLm1hdC1tZGMtcHJvZ3Jlc3MtYmFyIHtcbiAgICAgIC0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiB2YXIoLS13YXR0LWNvbG9yLXByaW1hcnkpO1xuICAgICAgLS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLWNvbG9yOiB2YXIoLS13YXR0LWNvbG9yLXByaW1hcnktbGlnaHQpO1xuICAgIH1cbiAgYCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8d2F0dC1maWVsZCBbbGFiZWxdPVwibGFiZWwoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZmllbGQtZXJyb3JcIiBuZ1Byb2plY3RBcz1cIndhdHQtZmllbGQtZXJyb3JcIiAvPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWhpbnRcIiAvPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgICAgIDx2YXRlci1zdGFja1xuICAgICAgICAgIGluc2V0PVwiMFwiXG4gICAgICAgICAgY2xhc3M9XCJkcm9wem9uZVwiXG4gICAgICAgICAgW2NsYXNzLmRyYWdPdmVyXT1cImRyYWdPdmVyKClcIlxuICAgICAgICAgIChkcmFnb3Zlcik9XCJoYW5kbGVEcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAgICAgICAoZHJvcCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgICAgICAgIChkcm9wKT1cImRyYWdPdmVyLnNldChmYWxzZSlcIlxuICAgICAgICAgIChkcmFnbGVhdmUpPVwiZHJhZ092ZXIuc2V0KGZhbHNlKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHByb2dyZXNzKCkgPCAxMDApIHtcbiAgICAgICAgICAgIDx2YXRlci1zdGFjayBjZW50ZXIgZ2FwPVwic1wiIGZpbGw9XCJob3Jpem9udGFsXCIgYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBpbnRsLmxvYWRpbmdNZXNzYWdlIH19ICgge3sgcHJvZ3Jlc3MoKSArICclJyB9fSApPC9zcGFuPlxuICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwicHJvZ3Jlc3MoKVwiIC8+XG4gICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHZhdGVyLXN0YWNrIGNlbnRlciBnYXA9XCJ4c1wiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgICAgICBoaWRkZW5cbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0KCkuam9pbignLCcpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVzKGlucHV0LmZpbGVzKVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IG11bHRpcGxlKCkgPyBpbnRsLnByb21wdE11bHRpcGxlIDogaW50bC5wcm9tcHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2F0dC1vbi1saWdodC0tbWVkaXVtLWVtcGhhc2lzXCI+e3sgaW50bC5zZXBhcmF0b3IgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDx3YXR0LWJ1dHRvbiBzaXplPVwic21hbGxcIiB2YXJpYW50PVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImlucHV0LmNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICB7eyBtdWx0aXBsZSgpID8gaW50bC5idXR0b25NdWx0aXBsZSA6IGludGwuYnV0dG9uIH19XG4gICAgICAgICAgICAgIDwvd2F0dC1idXR0b24+XG4gICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgIH1cbiAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3dhdHQtZmllbGQ+XG4gIGAsXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgV2F0dERyb3Bab25lIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBpbnRsID0gaW5qZWN0KFdhdHREcm9wWm9uZUludGxTZXJ2aWNlKTtcblxuICAvKiogV2hldGhlciB0aGUgZHJvcHpvbmUgc2hvdWxkIGFjY2VwdCBtdWx0aXBsZSBmaWxlcy4gKi9cbiAgbXVsdGlwbGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqIExhYmVsIGZvciB0aGUgZHJvcHpvbmUuICovXG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIC8qKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBNSU1FIHR5cGVzIHRoYXQgdGhlIGRyb3B6b25lIGFjY2VwdHMuICovXG4gIGFjY2VwdCA9IGlucHV0KFtdLCB7IHRyYW5zZm9ybTogKHZhbHVlOiBNaW1lVHlwZSkgPT4gdmFsdWUuc3BsaXQoJywnKSBhcyBNaW1lVHlwZVtdIH0pO1xuXG4gIC8qKiBFbWl0cyB3aGVuIG9uZSBvciBtb3JlIGZpbGVzIGFyZSBzZWxlY3RlZC4gKi9cbiAgc2VsZWN0ZWQgPSBvdXRwdXQ8RmlsZVtdPigpO1xuXG4gIC8vIFRyYWNrcyAodmFsaWQpIGRyYWcgb3ZlciBzdGF0ZVxuICBkcmFnT3ZlciA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLy8gUHJvZ3Jlc3NcbiAgcHJvZ3Jlc3MgPSBpbnB1dDxudW1iZXI+KDEwMCk7XG5cbiAgaGFuZGxlRmlsZXMoZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCkge1xuICAgIGlmICghZmlsZXMpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoQXJyYXkuZnJvbShmaWxlcykpO1xuICB9XG5cbiAgaGFuZGxlRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKCFldmVudC5kYXRhVHJhbnNmZXIpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuZHJhZ092ZXIoKSkgcmV0dXJuO1xuXG4gICAgLy8gUHJldmVudCBvcGVuaW5nIHRoZSBmaWxlIGluIHRoZSBicm93c2VyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMuaGFuZGxlRmlsZXMoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgfVxuXG4gIGhhbmRsZURyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2ZlcikgcmV0dXJuO1xuXG4gICAgLy8gSWdub3JlIG5vbi1maWxlIGl0ZW1zIHN1Y2ggYXMgc3RyaW5nc1xuICAgIGlmIChBcnJheS5mcm9tKGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcykuc29tZSgoaSkgPT4gaS5raW5kICE9PSAnZmlsZScpKSByZXR1cm47XG5cbiAgICAvLyBQcmV2ZW50IG9wZW5pbmcgdGhlIGZpbGUgaW4gdGhlIGJyb3dzZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5kcmFnT3Zlci5zZXQodHJ1ZSk7XG4gIH1cblxuICAvLyBJbXBsZW1lbnRhdGlvbiBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZSA9ICgpID0+IHt9OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICByZWdpc3Rlck9uVG91Y2hlZCA9IChmbjogKCkgPT4gdm9pZCkgPT4gdGhpcy5zZWxlY3RlZC5zdWJzY3JpYmUoZm4pO1xuICByZWdpc3Rlck9uQ2hhbmdlID0gKGZuOiAodmFsdWU6IEZpbGVbXSkgPT4gdm9pZCkgPT4gdGhpcy5zZWxlY3RlZC5zdWJzY3JpYmUoZm4pO1xufVxuIl19
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Ryb3B6b25lL3dhdHQtZHJvcHpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQXFGdkYsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLElBQUksR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUV2Qyx5REFBeUQ7SUFDekQsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLDRDQUFJLFNBQVMsRUFBRSxnQkFBZ0IsT0FBN0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBQyxDQUFDO0lBRXpELDhCQUE4QjtJQUM5QixLQUFLLEdBQUcsS0FBSywyREFBVSxDQUFDO0lBRXhCLG9FQUFvRTtJ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QUUsSUFBSTt5QkFDWjtxQkFDRixZQXFCUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVCIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuXG5pbXBvcnQgeyBXYXR0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2J1dHRvbic7XG5pbXBvcnQgeyBXYXR0RmllbGRDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvZmllbGQnO1xuaW1wb3J0IHsgVmF0ZXJTdGFja0NvbXBvbmVudCwgVmF0ZXJVdGlsaXR5RGlyZWN0aXZlIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhdGVyJztcbmltcG9ydCB7IFdhdHREcm9wWm9uZUludGxTZXJ2aWNlIH0gZnJvbSAnLi93YXR0LWRyb3B6b25lLWludGwnO1xuaW1wb3J0IHsgRmlsZVR5cGVWYWxpZGF0b3IsIE11bHRpcGxlRmlsZXNWYWxpZGF0b3IgfSBmcm9tICcuL3dhdHQtZHJvcHpvbmUtdmFsaWRhdG9ycyc7XG5cbi8vIFNsaWdodGx5IGJldHRlciB0eXBpbmcgdGhhbiBqdXN0IHJhdyBzdHJpbmdcbmV4cG9ydCB0eXBlIE1pbWVUeXBlID0gYCR7c3RyaW5nfS8ke3N0cmluZ31gO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVmF0ZXJTdGFja0NvbXBvbmVudCxcbiAgICBWYXRlclV0aWxpdHlEaXJlY3RpdmUsXG4gICAgV2F0dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBXYXR0RmllbGRDb21wb25lbnQsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gIF0sXG4gIHNlbGVjdG9yOiAnd2F0dC1kcm9wem9uZScsXG4gIGhvc3REaXJlY3RpdmVzOiBbRmlsZVR5cGVWYWxpZGF0b3IsIE11bHRpcGxlRmlsZXNWYWxpZGF0b3JdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdhdHREcm9wWm9uZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBzdHlsZXM6IGBcbiAgICAud3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1pbi1oZWlnaHQ6IDE4NHB4OyAvKiBNYWdpYyBVWCBudW1iZXIgKi9cbiAgICB9XG5cbiAgICAuZHJvcHpvbmUge1xuICAgICAgcGFkZGluZzogdmFyKC0td2F0dC1zcGFjZS1sKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdhdHQtY29sb3ItbmV1dHJhbC1ncmV5LTIwMCk7XG4gICAgfVxuXG4gICAgLmRyYWdPdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdhdHQtY29sb3Itc3RhdGUtaW5mby1saWdodCk7XG4gICAgfVxuXG4gICAgLm1hdC1tZGMtcHJvZ3Jlc3MtYmFyIHtcbiAgICAgIC0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiB2YXIoLS13YXR0LWNvbG9yLXByaW1hcnkpO1xuICAgICAgLS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLWNvbG9yOiB2YXIoLS13YXR0LWNvbG9yLXByaW1hcnktbGlnaHQpO1xuICAgIH1cbiAgYCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8d2F0dC1maWVsZCBbbGFiZWxdPVwibGFiZWwoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZmllbGQtZXJyb3JcIiBuZ1Byb2plY3RBcz1cIndhdHQtZmllbGQtZXJyb3JcIiAvPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWhpbnRcIiAvPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgICAgIDx2YXRlci1zdGFja1xuICAgICAgICAgIGluc2V0PVwiMFwiXG4gICAgICAgICAgY2xhc3M9XCJkcm9wem9uZVwiXG4gICAgICAgICAgW2NsYXNzLmRyYWdPdmVyXT1cImRyYWdPdmVyKClcIlxuICAgICAgICAgIChkcmFnb3Zlcik9XCJoYW5kbGVEcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAgICAgICAoZHJvcCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgICAgICAgIChkcm9wKT1cImRyYWdPdmVyLnNldChmYWxzZSlcIlxuICAgICAgICAgIChkcmFnbGVhdmUpPVwiZHJhZ092ZXIuc2V0KGZhbHNlKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHByb2dyZXNzKCkgPCAxMDApIHtcbiAgICAgICAgICAgIDx2YXRlci1zdGFjayBjZW50ZXIgZ2FwPVwic1wiIGZpbGw9XCJob3Jpem9udGFsXCIgYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBpbnRsLmxvYWRpbmdNZXNzYWdlIH19ICgge3sgcHJvZ3Jlc3MoKSArICclJyB9fSApPC9zcGFuPlxuICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwicHJvZ3Jlc3MoKVwiIC8+XG4gICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHZhdGVyLXN0YWNrIGNlbnRlciBnYXA9XCJ4c1wiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgICAgICBoaWRkZW5cbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0KCkuam9pbignLCcpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVzKGlucHV0LmZpbGVzKVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IG11bHRpcGxlKCkgPyBpbnRsLnByb21wdE11bHRpcGxlIDogaW50bC5wcm9tcHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2F0dC1vbi1saWdodC0tbWVkaXVtLWVtcGhhc2lzXCI+e3sgaW50bC5zZXBhcmF0b3IgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDx3YXR0LWJ1dHRvbiBzaXplPVwic21hbGxcIiB2YXJpYW50PVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImlucHV0LmNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICB7eyBtdWx0aXBsZSgpID8gaW50bC5idXR0b25NdWx0aXBsZSA6IGludGwuYnV0dG9uIH19XG4gICAgICAgICAgICAgIDwvd2F0dC1idXR0b24+XG4gICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgIH1cbiAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3dhdHQtZmllbGQ+XG4gIGAsXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgV2F0dERyb3Bab25lIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBpbnRsID0gaW5qZWN0KFdhdHREcm9wWm9uZUludGxTZXJ2aWNlKTtcblxuICAvKiogV2hldGhlciB0aGUgZHJvcHpvbmUgc2hvdWxkIGFjY2VwdCBtdWx0aXBsZSBmaWxlcy4gKi9cbiAgbXVsdGlwbGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqIExhYmVsIGZvciB0aGUgZHJvcHpvbmUuICovXG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIC8qKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBNSU1FIHR5cGVzIHRoYXQgdGhlIGRyb3B6b25lIGFjY2VwdHMuICovXG4gIGFjY2VwdCA9IGlucHV0KFtdLCB7IHRyYW5zZm9ybTogKHZhbHVlOiBNaW1lVHlwZSkgPT4gdmFsdWUuc3BsaXQoJywnKSBhcyBNaW1lVHlwZVtdIH0pO1xuXG4gIC8qKiBFbWl0cyB3aGVuIG9uZSBvciBtb3JlIGZpbGVzIGFyZSBzZWxlY3RlZC4gKi9cbiAgc2VsZWN0ZWQgPSBvdXRwdXQ8RmlsZVtdPigpO1xuXG4gIC8vIFRyYWNrcyAodmFsaWQpIGRyYWcgb3ZlciBzdGF0ZVxuICBkcmFnT3ZlciA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLy8gUHJvZ3Jlc3NcbiAgcHJvZ3Jlc3MgPSBpbnB1dDxudW1iZXI+KDEwMCk7XG5cbiAgaGFuZGxlRmlsZXMoZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCkge1xuICAgIGlmICghZmlsZXMpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoQXJyYXkuZnJvbShmaWxlcykpO1xuICB9XG5cbiAgaGFuZGxlRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKCFldmVudC5kYXRhVHJhbnNmZXIpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuZHJhZ092ZXIoKSkgcmV0dXJuO1xuXG4gICAgLy8gUHJldmVudCBvcGVuaW5nIHRoZSBmaWxlIGluIHRoZSBicm93c2VyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMuaGFuZGxlRmlsZXMoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgfVxuXG4gIGhhbmRsZURyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2ZlcikgcmV0dXJuO1xuXG4gICAgLy8gSWdub3JlIG5vbi1maWxlIGl0ZW1zIHN1Y2ggYXMgc3RyaW5nc1xuICAgIGlmIChBcnJheS5mcm9tKGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcykuc29tZSgoaSkgPT4gaS5raW5kICE9PSAnZmlsZScpKSByZXR1cm47XG5cbiAgICAvLyBQcmV2ZW50IG9wZW5pbmcgdGhlIGZpbGUgaW4gdGhlIGJyb3dzZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5kcmFnT3Zlci5zZXQodHJ1ZSk7XG4gIH1cblxuICAvLyBJbXBsZW1lbnRhdGlvbiBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZSA9ICgpID0+IHt9OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICByZWdpc3Rlck9uVG91Y2hlZCA9IChmbjogKCkgPT4gdm9pZCkgPT4gdGhpcy5zZWxlY3RlZC5zdWJzY3JpYmUoZm4pO1xuICByZWdpc3Rlck9uQ2hhbmdlID0gKGZuOiAodmFsdWU6IEZpbGVbXSkgPT4gdm9pZCkgPT4gdGhpcy5zZWxlY3RlZC5zdWJzY3JpYmUoZm4pO1xufVxuIl19
@@ -19,8 +19,8 @@
19
19
  import { Component } from '@angular/core';
20
20
  import * as i0 from "@angular/core";
21
21
  export class WattEmptyStateExploreComponent {
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattEmptyStateExploreComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: WattEmptyStateExploreComponent, isStandalone: true, selector: "watt-empty-state-explore", ngImport: i0, template: `
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattEmptyStateExploreComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: WattEmptyStateExploreComponent, isStandalone: true, selector: "watt-empty-state-explore", ngImport: i0, template: `
24
24
  <svg viewBox="0 0 96 98" fill="none">
25
25
  <path
26
26
  fill="currentColor"
@@ -33,7 +33,7 @@ export class WattEmptyStateExploreComponent {
33
33
  </svg>
34
34
  `, isInline: true });
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattEmptyStateExploreComponent, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattEmptyStateExploreComponent, decorators: [{
37
37
  type: Component,
38
38
  args: [{
39
39
  selector: 'watt-empty-state-explore',
@@ -19,8 +19,8 @@
19
19
  import { Component } from '@angular/core';
20
20
  import * as i0 from "@angular/core";
21
21
  export class WattEmptyStateNoResultsComponent {
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattEmptyStateNoResultsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: WattEmptyStateNoResultsComponent, isStandalone: true, selector: "watt-empty-state-no-results", ngImport: i0, template: `
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattEmptyStateNoResultsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: WattEmptyStateNoResultsComponent, isStandalone: true, selector: "watt-empty-state-no-results", ngImport: i0, template: `
24
24
  <svg viewBox="0 0 128 128" fill="none">
25
25
  <path
26
26
  fill="currentColor"
@@ -37,7 +37,7 @@ export class WattEmptyStateNoResultsComponent {
37
37
  </svg>
38
38
  `, isInline: true });
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattEmptyStateNoResultsComponent, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattEmptyStateNoResultsComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{
43
43
  selector: 'watt-empty-state-no-results',
@@ -19,8 +19,8 @@
19
19
  import { Component } from '@angular/core';
20
20
  import * as i0 from "@angular/core";
21
21
  export class WattEmptyStatePowerComponent {
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattEmptyStatePowerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: WattEmptyStatePowerComponent, isStandalone: true, selector: "watt-empty-state-power", ngImport: i0, template: `
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattEmptyStatePowerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: WattEmptyStatePowerComponent, isStandalone: true, selector: "watt-empty-state-power", ngImport: i0, template: `
24
24
  <svg viewBox="0 0 96 116" fill="none">
25
25
  <path
26
26
  fill="currentColor"
@@ -29,7 +29,7 @@ export class WattEmptyStatePowerComponent {
29
29
  </svg>
30
30
  `, isInline: true });
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattEmptyStatePowerComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattEmptyStatePowerComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{
35
35
  selector: 'watt-empty-state-power',
@@ -27,14 +27,14 @@ import * as i0 from "@angular/core";
27
27
  * `import { WattEmptyStateComponent } from '@energinet-datahub/watt/empty-state';`
28
28
  */
29
29
  export class WattEmptyStateComponent {
30
- icon = input();
31
- size = input('large');
32
- title = input('');
33
- message = input('');
34
- useHTML = input(false);
35
- iconSize = computed(() => (this.size() === 'small' ? 'xl' : 'xxl'));
36
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: WattEmptyStateComponent, isStandalone: true, selector: "watt-empty-state", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, useHTML: { classPropertyName: "useHTML", publicName: "useHTML", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
30
+ icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
31
+ size = input('large', ...(ngDevMode ? [{ debugName: "size" }] : []));
32
+ title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
33
+ message = input('', ...(ngDevMode ? [{ debugName: "message" }] : []));
34
+ useHTML = input(false, ...(ngDevMode ? [{ debugName: "useHTML" }] : []));
35
+ iconSize = computed(() => (this.size() === 'small' ? 'xl' : 'xxl'), ...(ngDevMode ? [{ debugName: "iconSize" }] : []));
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattEmptyStateComponent, isStandalone: true, selector: "watt-empty-state", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, useHTML: { classPropertyName: "useHTML", publicName: "useHTML", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
38
38
  @let name = icon();
39
39
  @switch (name) {
40
40
  @case ('custom-explore') {
@@ -72,7 +72,7 @@ export class WattEmptyStateComponent {
72
72
  <ng-content />
73
73
  `, isInline: true, styles: ["@use \"@energinet-datahub/watt/utils\" as watt;watt-empty-state{display:block;text-align:center;color:var(--watt-color-primary-dark)}watt-empty-state h3,watt-empty-state h5,watt-empty-state p{margin:0;white-space:pre-wrap}watt-empty-state watt-button{display:block;margin-top:var(--watt-space-m)}watt-empty-state watt-button:first-of-type{margin-top:var(--watt-space-l)}\n"], dependencies: [{ kind: "component", type: WattEmptyStateExploreComponent, selector: "watt-empty-state-explore" }, { kind: "component", type: WattEmptyStateNoResultsComponent, selector: "watt-empty-state-no-results" }, { kind: "component", type: WattEmptyStatePowerComponent, selector: "watt-empty-state-power" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }], encapsulation: i0.ViewEncapsulation.None });
74
74
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: WattEmptyStateComponent, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattEmptyStateComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: 'watt-empty-state', encapsulation: ViewEncapsulation.None, imports: [
78
78
  WattEmptyStateExploreComponent,
@@ -117,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
117
117
  <ng-content />
118
118
  `, styles: ["@use \"@energinet-datahub/watt/utils\" as watt;watt-empty-state{display:block;text-align:center;color:var(--watt-color-primary-dark)}watt-empty-state h3,watt-empty-state h5,watt-empty-state p{margin:0;white-space:pre-wrap}watt-empty-state watt-button{display:block;margin-top:var(--watt-space-m)}watt-empty-state watt-button:first-of-type{margin-top:var(--watt-space-l)}\n"] }]
119
119
  }] });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1lbXB0eS1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9lbXB0eS1zdGF0ZS93YXR0LWVtcHR5LXN0YXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQVksaUJBQWlCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU3RDs7O0dBR0c7QUF5RUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxJQUFJLEdBQUcsS0FBSyxFQUFzRSxDQUFDO0lBQ25GLElBQUksR0FBRyxLQUFLLENBQW9CLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLEtBQUssR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQixPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLFFBQVEsR0FBRyxRQUFRLENBQWUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7dUdBTnZFLHVCQUF1QjsyRkFBdkIsdUJBQXVCLHNyQkF0Q3hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ1QsOGJBbEVDLDhCQUE4QixxRUFDOUIsZ0NBQWdDLHdFQUNoQyw0QkFBNEIsbUVBQzVCLGlCQUFpQjs7MkZBaUVSLHVCQUF1QjtrQkF4RW5DLFNBQVM7K0JBQ0Usa0JBQWtCLGlCQUNiLGlCQUFpQixDQUFDLElBQUksV0FDNUI7d0JBQ1AsOEJBQThCO3dCQUM5QixnQ0FBZ0M7d0JBQ2hDLDRCQUE0Qjt3QkFDNUIsaUJBQWlCO3FCQUNsQixZQTBCUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NUIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXYXR0SWNvbiwgV2F0dEljb25Db21wb25lbnQsIFdhdHRJY29uU2l6ZSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcbmltcG9ydCB7IFdhdHRFbXB0eVN0YXRlRXhwbG9yZUNvbXBvbmVudCB9IGZyb20gJy4vaWNvbnMvZXhwbG9yZSc7XG5pbXBvcnQgeyBXYXR0RW1wdHlTdGF0ZU5vUmVzdWx0c0NvbXBvbmVudCB9IGZyb20gJy4vaWNvbnMvbm8tcmVzdWx0cyc7XG5pbXBvcnQgeyBXYXR0RW1wdHlTdGF0ZVBvd2VyQ29tcG9uZW50IH0gZnJvbSAnLi9pY29ucy9wb3dlcic7XG5cbi8qKlxuICogVXNhZ2U6XG4gKiBgaW1wb3J0IHsgV2F0dEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0LWRhdGFodWIvd2F0dC9lbXB0eS1zdGF0ZSc7YFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LWVtcHR5LXN0YXRlJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIFdhdHRFbXB0eVN0YXRlRXhwbG9yZUNvbXBvbmVudCxcbiAgICBXYXR0RW1wdHlTdGF0ZU5vUmVzdWx0c0NvbXBvbmVudCxcbiAgICBXYXR0RW1wdHlTdGF0ZVBvd2VyQ29tcG9uZW50LFxuICAgIFdhdHRJY29uQ29tcG9uZW50LFxuICBdLFxuICBzdHlsZXM6IGBcbiAgICBAdXNlICdAZW5lcmdpbmV0LWRhdGFodWIvd2F0dC91dGlscycgYXMgd2F0dDtcblxuICAgIHdhdHQtZW1wdHktc3RhdGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogdmFyKC0td2F0dC1jb2xvci1wcmltYXJ5LWRhcmspO1xuXG4gICAgICBoMyxcbiAgICAgIGg1LFxuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgfVxuXG4gICAgICB3YXR0LWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS13YXR0LXNwYWNlLW0pO1xuXG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0td2F0dC1zcGFjZS1sKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgYCxcbiAgdGVtcGxhdGU6IGBcbiAgICBAbGV0IG5hbWUgPSBpY29uKCk7XG4gICAgQHN3aXRjaCAobmFtZSkge1xuICAgICAgQGNhc2UgKCdjdXN0b20tZXhwbG9yZScpIHtcbiAgICAgICAgPHdhdHQtaWNvbiBbc2l6ZV09XCJpY29uU2l6ZSgpXCIgY2xhc3M9XCJ3YXR0LXNwYWNlLXN0YWNrLWxcIj5cbiAgICAgICAgICA8d2F0dC1lbXB0eS1zdGF0ZS1leHBsb3JlIC8+XG4gICAgICAgIDwvd2F0dC1pY29uPlxuICAgICAgfVxuICAgICAgQGNhc2UgKCdjdXN0b20tbm8tcmVzdWx0cycpIHtcbiAgICAgICAgPHdhdHQtaWNvbiBbc2l6ZV09XCJpY29uU2l6ZSgpXCIgY2xhc3M9XCJ3YXR0LXNwYWNlLXN0YWNrLWxcIj5cbiAgICAgICAgICA8d2F0dC1lbXB0eS1zdGF0ZS1uby1yZXN1bHRzIC8+XG4gICAgICAgIDwvd2F0dC1pY29uPlxuICAgICAgfVxuICAgICAgQGNhc2UgKCdjdXN0b20tcG93ZXInKSB7XG4gICAgICAgIDx3YXR0LWljb24gW3NpemVdPVwiaWNvblNpemUoKVwiIGNsYXNzPVwid2F0dC1zcGFjZS1zdGFjay1sXCI+XG4gICAgICAgICAgPHdhdHQtZW1wdHktc3RhdGUtcG93ZXIgLz5cbiAgICAgICAgPC93YXR0LWljb24+XG4gICAgICB9XG4gICAgICBAZGVmYXVsdCB7XG4gICAgICAgIDx3YXR0LWljb24gW25hbWVdPVwibmFtZVwiIFtzaXplXT1cImljb25TaXplKClcIiBjbGFzcz1cIndhdHQtc3BhY2Utc3RhY2stbFwiIC8+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmIChzaXplKCkgPT09ICdsYXJnZScpIHtcbiAgICAgIDxoMz57eyB0aXRsZSgpIH19PC9oMz5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxoNT57eyB0aXRsZSgpIH19PC9oNT5cbiAgICB9XG5cbiAgICBAaWYgKHVzZUhUTUwoKSkge1xuICAgICAgPGRpdiBbY2xhc3Mud2F0dC10ZXh0LXNdPVwic2l6ZSgpID09PSAnc21hbGwnXCIgW2lubmVySFRNTF09XCJtZXNzYWdlKClcIj48L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxwIFtjbGFzcy53YXR0LXRleHQtc109XCJzaXplKCkgPT09ICdzbWFsbCdcIj57eyBtZXNzYWdlKCkgfX08L3A+XG4gICAgfVxuXG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dEVtcHR5U3RhdGVDb21wb25lbnQge1xuICBpY29uID0gaW5wdXQ8V2F0dEljb24gfCAnY3VzdG9tLXBvd2VyJyB8ICdjdXN0b20tZXhwbG9yZScgfCAnY3VzdG9tLW5vLXJlc3VsdHMnPigpO1xuICBzaXplID0gaW5wdXQ8J3NtYWxsJyB8ICdsYXJnZSc+KCdsYXJnZScpO1xuICB0aXRsZSA9IGlucHV0KCcnKTtcbiAgbWVzc2FnZSA9IGlucHV0KCcnKTtcbiAgdXNlSFRNTCA9IGlucHV0KGZhbHNlKTtcbiAgaWNvblNpemUgPSBjb21wdXRlZDxXYXR0SWNvblNpemU+KCgpID0+ICh0aGlzLnNpemUoKSA9PT0gJ3NtYWxsJyA/ICd4bCcgOiAneHhsJykpO1xufVxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1lbXB0eS1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9lbXB0eS1zdGF0ZS93YXR0LWVtcHR5LXN0YXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQVksaUJBQWlCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU3RDs7O0dBR0c7QUF5RUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxJQUFJLEdBQUcsS0FBSywwREFBc0UsQ0FBQztJQUNuRixJQUFJLEdBQUcsS0FBSyxDQUFvQixPQUFPLGdEQUFDLENBQUM7SUFDekMsS0FBSyxHQUFHLEtBQUssQ0FBQyxFQUFFLGlEQUFDLENBQUM7SUFDbEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLG1EQUFDLENBQUM7SUFDcEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLG1EQUFDLENBQUM7SUFDdkIsUUFBUSxHQUFHLFFBQVEsQ0FBZSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLG9EQUFDLENBQUM7dUdBTnZFLHVCQUF1QjsyRkFBdkIsdUJBQXVCLHNyQkF0Q3hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ1QsOGJBbEVDLDhCQUE4QixxRUFDOUIsZ0NBQWdDLHdFQUNoQyw0QkFBNEIsbUVBQzVCLGlCQUFpQjs7MkZBaUVSLHVCQUF1QjtrQkF4RW5DLFNBQVM7K0JBQ0Usa0JBQWtCLGlCQUNiLGlCQUFpQixDQUFDLElBQUksV0FDNUI7d0JBQ1AsOEJBQThCO3dCQUM5QixnQ0FBZ0M7d0JBQ2hDLDRCQUE0Qjt3QkFDNUIsaUJBQWlCO3FCQUNsQixZQTBCUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NUIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXYXR0SWNvbiwgV2F0dEljb25Db21wb25lbnQsIFdhdHRJY29uU2l6ZSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcbmltcG9ydCB7IFdhdHRFbXB0eVN0YXRlRXhwbG9yZUNvbXBvbmVudCB9IGZyb20gJy4vaWNvbnMvZXhwbG9yZSc7XG5pbXBvcnQgeyBXYXR0RW1wdHlTdGF0ZU5vUmVzdWx0c0NvbXBvbmVudCB9IGZyb20gJy4vaWNvbnMvbm8tcmVzdWx0cyc7XG5pbXBvcnQgeyBXYXR0RW1wdHlTdGF0ZVBvd2VyQ29tcG9uZW50IH0gZnJvbSAnLi9pY29ucy9wb3dlcic7XG5cbi8qKlxuICogVXNhZ2U6XG4gKiBgaW1wb3J0IHsgV2F0dEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0LWRhdGFodWIvd2F0dC9lbXB0eS1zdGF0ZSc7YFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LWVtcHR5LXN0YXRlJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIFdhdHRFbXB0eVN0YXRlRXhwbG9yZUNvbXBvbmVudCxcbiAgICBXYXR0RW1wdHlTdGF0ZU5vUmVzdWx0c0NvbXBvbmVudCxcbiAgICBXYXR0RW1wdHlTdGF0ZVBvd2VyQ29tcG9uZW50LFxuICAgIFdhdHRJY29uQ29tcG9uZW50LFxuICBdLFxuICBzdHlsZXM6IGBcbiAgICBAdXNlICdAZW5lcmdpbmV0LWRhdGFodWIvd2F0dC91dGlscycgYXMgd2F0dDtcblxuICAgIHdhdHQtZW1wdHktc3RhdGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogdmFyKC0td2F0dC1jb2xvci1wcmltYXJ5LWRhcmspO1xuXG4gICAgICBoMyxcbiAgICAgIGg1LFxuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgfVxuXG4gICAgICB3YXR0LWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS13YXR0LXNwYWNlLW0pO1xuXG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0td2F0dC1zcGFjZS1sKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgYCxcbiAgdGVtcGxhdGU6IGBcbiAgICBAbGV0IG5hbWUgPSBpY29uKCk7XG4gICAgQHN3aXRjaCAobmFtZSkge1xuICAgICAgQGNhc2UgKCdjdXN0b20tZXhwbG9yZScpIHtcbiAgICAgICAgPHdhdHQtaWNvbiBbc2l6ZV09XCJpY29uU2l6ZSgpXCIgY2xhc3M9XCJ3YXR0LXNwYWNlLXN0YWNrLWxcIj5cbiAgICAgICAgICA8d2F0dC1lbXB0eS1zdGF0ZS1leHBsb3JlIC8+XG4gICAgICAgIDwvd2F0dC1pY29uPlxuICAgICAgfVxuICAgICAgQGNhc2UgKCdjdXN0b20tbm8tcmVzdWx0cycpIHtcbiAgICAgICAgPHdhdHQtaWNvbiBbc2l6ZV09XCJpY29uU2l6ZSgpXCIgY2xhc3M9XCJ3YXR0LXNwYWNlLXN0YWNrLWxcIj5cbiAgICAgICAgICA8d2F0dC1lbXB0eS1zdGF0ZS1uby1yZXN1bHRzIC8+XG4gICAgICAgIDwvd2F0dC1pY29uPlxuICAgICAgfVxuICAgICAgQGNhc2UgKCdjdXN0b20tcG93ZXInKSB7XG4gICAgICAgIDx3YXR0LWljb24gW3NpemVdPVwiaWNvblNpemUoKVwiIGNsYXNzPVwid2F0dC1zcGFjZS1zdGFjay1sXCI+XG4gICAgICAgICAgPHdhdHQtZW1wdHktc3RhdGUtcG93ZXIgLz5cbiAgICAgICAgPC93YXR0LWljb24+XG4gICAgICB9XG4gICAgICBAZGVmYXVsdCB7XG4gICAgICAgIDx3YXR0LWljb24gW25hbWVdPVwibmFtZVwiIFtzaXplXT1cImljb25TaXplKClcIiBjbGFzcz1cIndhdHQtc3BhY2Utc3RhY2stbFwiIC8+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmIChzaXplKCkgPT09ICdsYXJnZScpIHtcbiAgICAgIDxoMz57eyB0aXRsZSgpIH19PC9oMz5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxoNT57eyB0aXRsZSgpIH19PC9oNT5cbiAgICB9XG5cbiAgICBAaWYgKHVzZUhUTUwoKSkge1xuICAgICAgPGRpdiBbY2xhc3Mud2F0dC10ZXh0LXNdPVwic2l6ZSgpID09PSAnc21hbGwnXCIgW2lubmVySFRNTF09XCJtZXNzYWdlKClcIj48L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxwIFtjbGFzcy53YXR0LXRleHQtc109XCJzaXplKCkgPT09ICdzbWFsbCdcIj57eyBtZXNzYWdlKCkgfX08L3A+XG4gICAgfVxuXG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dEVtcHR5U3RhdGVDb21wb25lbnQge1xuICBpY29uID0gaW5wdXQ8V2F0dEljb24gfCAnY3VzdG9tLXBvd2VyJyB8ICdjdXN0b20tZXhwbG9yZScgfCAnY3VzdG9tLW5vLXJlc3VsdHMnPigpO1xuICBzaXplID0gaW5wdXQ8J3NtYWxsJyB8ICdsYXJnZSc+KCdsYXJnZScpO1xuICB0aXRsZSA9IGlucHV0KCcnKTtcbiAgbWVzc2FnZSA9IGlucHV0KCcnKTtcbiAgdXNlSFRNTCA9IGlucHV0KGZhbHNlKTtcbiAgaWNvblNpemUgPSBjb21wdXRlZDxXYXR0SWNvblNpemU+KCgpID0+ICh0aGlzLnNpemUoKSA9PT0gJ3NtYWxsJyA/ICd4bCcgOiAneHhsJykpO1xufVxuIl19