@alfresco/adf-content-services 8.1.0-15902121227 → 8.1.0-15928551305

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 (76) hide show
  1. package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +5 -6
  2. package/esm2022/lib/aspect-list/aspect-list.component.mjs +5 -6
  3. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +6 -7
  4. package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +4 -5
  5. package/esm2022/lib/category/categories-management/categories-management.component.mjs +10 -11
  6. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +4 -5
  7. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +6 -7
  8. package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +4 -5
  9. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +8 -9
  10. package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +6 -7
  11. package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +4 -4
  12. package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +11 -12
  13. package/esm2022/lib/content-type/content-type-dialog.component.mjs +7 -8
  14. package/esm2022/lib/content.module.mjs +2 -2
  15. package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +5 -6
  16. package/esm2022/lib/dialogs/folder/folder.dialog.mjs +7 -8
  17. package/esm2022/lib/dialogs/library/library.dialog.mjs +8 -9
  18. package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +9 -10
  19. package/esm2022/lib/directives/content-directive.module.mjs +2 -2
  20. package/esm2022/lib/directives/node-counter.directive.mjs +4 -5
  21. package/esm2022/lib/document-list/components/document-list.component.mjs +6 -7
  22. package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +7 -8
  23. package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +5 -7
  24. package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +5 -7
  25. package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +5 -7
  26. package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +5 -7
  27. package/esm2022/lib/document-list/document-list.module.mjs +1 -5
  28. package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +5 -6
  29. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +5 -6
  30. package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +7 -8
  31. package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +4 -5
  32. package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +6 -7
  33. package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +5 -6
  34. package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +4 -5
  35. package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +6 -7
  36. package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +8 -9
  37. package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +5 -6
  38. package/esm2022/lib/search/components/search-control.component.mjs +4 -5
  39. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +8 -9
  40. package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +4 -5
  41. package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +6 -7
  42. package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +5 -6
  43. package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +4 -5
  44. package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +5 -6
  45. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +6 -7
  46. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +6 -7
  47. package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +4 -5
  48. package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +6 -7
  49. package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +6 -7
  50. package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +5 -6
  51. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +4 -5
  52. package/esm2022/lib/search/components/search-form/search-form.component.mjs +6 -7
  53. package/esm2022/lib/search/components/search-input/search-input.component.mjs +4 -5
  54. package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +5 -6
  55. package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +5 -6
  56. package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +4 -4
  57. package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +6 -7
  58. package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +4 -5
  59. package/esm2022/lib/search/components/search-text/search-text.component.mjs +8 -9
  60. package/esm2022/lib/search/components/search.component.mjs +4 -5
  61. package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +6 -7
  62. package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +6 -7
  63. package/esm2022/lib/tree/components/tree.component.mjs +10 -11
  64. package/esm2022/lib/tree-view/components/tree-view.component.mjs +4 -5
  65. package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +6 -7
  66. package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +5 -6
  67. package/esm2022/lib/upload/components/upload-button.component.mjs +5 -6
  68. package/esm2022/lib/upload/components/upload-version-button.component.mjs +5 -6
  69. package/esm2022/lib/version-manager/version-comparison.component.mjs +4 -5
  70. package/esm2022/lib/version-manager/version-list.component.mjs +5 -6
  71. package/esm2022/lib/version-manager/version-manager.component.mjs +4 -5
  72. package/esm2022/lib/version-manager/version-upload.component.mjs +7 -8
  73. package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +6 -7
  74. package/fesm2022/adf-content-services.mjs +188 -192
  75. package/fesm2022/adf-content-services.mjs.map +1 -1
  76. package/package.json +4 -4
@@ -23,18 +23,17 @@ import { EMPTY, Observable, timer } from 'rxjs';
23
23
  import { debounce, startWith, tap } from 'rxjs/operators';
24
24
  import { CommonModule } from '@angular/common';
25
25
  import { MatFormFieldModule } from '@angular/material/form-field';
26
- import { TranslateModule } from '@ngx-translate/core';
26
+ import { TranslatePipe } from '@ngx-translate/core';
27
27
  import { MatIconModule } from '@angular/material/icon';
28
28
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
29
29
  import * as i0 from "@angular/core";
30
30
  import * as i1 from "@angular/common";
31
31
  import * as i2 from "@angular/material/form-field";
32
32
  import * as i3 from "@angular/material/chips";
33
- import * as i4 from "@ngx-translate/core";
34
- import * as i5 from "@angular/material/icon";
35
- import * as i6 from "@angular/forms";
36
- import * as i7 from "@angular/material/autocomplete";
37
- import * as i8 from "@angular/material/core";
33
+ import * as i4 from "@angular/material/icon";
34
+ import * as i5 from "@angular/forms";
35
+ import * as i6 from "@angular/material/autocomplete";
36
+ import * as i7 from "@angular/material/core";
38
37
  export class SearchChipAutocompleteInputComponent {
39
38
  constructor() {
40
39
  this.autocompleteOptions = [];
@@ -138,11 +137,11 @@ export class SearchChipAutocompleteInputComponent {
138
137
  this.optionInput.nativeElement.value = '';
139
138
  }
140
139
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchChipAutocompleteInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchChipAutocompleteInputComponent, isStandalone: true, selector: "adf-search-chip-autocomplete-input", inputs: { autocompleteOptions: "autocompleteOptions", preselectedOptions: "preselectedOptions", onReset$: "onReset$", allowOnlyPredefinedValues: "allowOnlyPredefinedValues", placeholder: "placeholder", compareOption: "compareOption", formatChipValue: "formatChipValue", filter: "filter" }, outputs: { optionsChanged: "optionsChanged", inputChanged: "inputChanged" }, viewQueries: [{ propertyName: "optionInput", first: true, predicate: ["optionInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"adf-chip-list\" appearance=\"outline\">\n <mat-chip-grid #chipList [attr.aria-label]=\"'SEARCH.FILTER.ARIA-LABEL.OPTIONS-SELECTION' | translate\">\n <mat-chip-row\n class=\"adf-option-chips adf-autocomplete-added-option-chips\"\n *ngFor=\"let option of selectedOptions\"\n (removed)=\"remove(option)\">\n <span [title]=\"option.fullPath ? ('SEARCH.RESULTS.WILL_CONTAIN' | translate:{searchTerm: option.fullPath}) : undefined\">\n {{ option.value }}\n </span>\n <button\n matChipRemove\n class=\"adf-option-chips-delete-button adf-autocomplete-added-option-chips-delete-button\"\n [title]=\"'SEARCH.FILTER.BUTTONS.REMOVE' | translate\"\n >\n <mat-icon class=\"adf-option-chips-delete-icon adf-autocomplete-added-option-chips-delete-icon\">close</mat-icon>\n </button>\n </mat-chip-row>\n <input\n placeholder=\"{{ placeholder | translate }}\"\n aria-controls=\"adf-search-chip-autocomplete\"\n #optionInput\n #autocompleteTrigger=\"matAutocompleteTrigger\"\n [formControl]=\"formCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [attr.aria-label]=\"placeholder | translate\"\n class=\"adf-search-properties-file-input\"\n (matChipInputTokenEnd)=\"add($event)\"\n (blur)=\"activeAnyOption = false; autocompleteTrigger.closePanel()\"\n data-automation-id=\"adf-search-chip-autocomplete-input\">\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\" id=\"adf-search-chip-autocomplete\"\n (optionActivated)=\"activeAnyOption = true\" (closed)=\"activeAnyOption = false\">\n <ng-container *ngIf=\"optionInput.value.length > 0\">\n <mat-option\n *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n (mousedown)=$event.preventDefault()\n [disabled]=\"isOptionSelected(option)\"\n [attr.data-automation-id]=\"'option-' + option.value\"\n [title]=\"option.fullPath ? ('SEARCH.RESULTS.WILL_CONTAIN' | translate : { searchTerm: option.fullPath || option.value }) : undefined\"\n class=\"adf-search-chip-autocomplete-added-option\"\n [ngClass]=\"isOptionSelected(option) && 'adf-autocomplete-added-option'\"\n >\n {{ option.fullPath || option.value }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n</mat-form-field>\n", styles: ["adf-search-chip-autocomplete-input .adf-chip-list{width:100%}adf-search-chip-autocomplete-input .adf-chip-list:has(.mdc-notched-outline){margin-top:4px}adf-search-chip-autocomplete-input .mat-mdc-form-text-infix{border:none}adf-search-chip-autocomplete-input .adf-chip-list.mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:14px;padding-bottom:14px;min-height:unset}adf-search-chip-autocomplete-input .adf-search-properties-file-input{margin-left:3px}adf-search-chip-autocomplete-input .adf-autocomplete-added-option-chips.adf-option-chips{border:1px solid var(--theme-text-color);border-radius:10px;background-color:var(--theme-primary-color-default-contrast);height:auto;word-break:break-word;padding:4px 0}adf-search-chip-autocomplete-input .mdc-evolution-chip-set .mdc-evolution-chip{margin-left:0;margin-right:4px}adf-search-chip-autocomplete-input .adf-option-chips-delete-button.adf-autocomplete-added-option-chips-delete-button{font-size:13px;height:13px;width:13px}adf-search-chip-autocomplete-input .adf-option-chips-delete-button.adf-autocomplete-added-option-chips-delete-button .adf-option-chips-delete-icon.adf-autocomplete-added-option-chips-delete-icon{font-size:13px;height:13px;width:13px}.adf-search-chip-autocomplete-added-option.adf-autocomplete-added-option{background:var(--adf-theme-mat-grey-color-a200);color:var(--adf-theme-primary-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i3.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }], encapsulation: i0.ViewEncapsulation.None }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchChipAutocompleteInputComponent, isStandalone: true, selector: "adf-search-chip-autocomplete-input", inputs: { autocompleteOptions: "autocompleteOptions", preselectedOptions: "preselectedOptions", onReset$: "onReset$", allowOnlyPredefinedValues: "allowOnlyPredefinedValues", placeholder: "placeholder", compareOption: "compareOption", formatChipValue: "formatChipValue", filter: "filter" }, outputs: { optionsChanged: "optionsChanged", inputChanged: "inputChanged" }, viewQueries: [{ propertyName: "optionInput", first: true, predicate: ["optionInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"adf-chip-list\" appearance=\"outline\">\n <mat-chip-grid #chipList [attr.aria-label]=\"'SEARCH.FILTER.ARIA-LABEL.OPTIONS-SELECTION' | translate\">\n <mat-chip-row\n class=\"adf-option-chips adf-autocomplete-added-option-chips\"\n *ngFor=\"let option of selectedOptions\"\n (removed)=\"remove(option)\">\n <span [title]=\"option.fullPath ? ('SEARCH.RESULTS.WILL_CONTAIN' | translate:{searchTerm: option.fullPath}) : undefined\">\n {{ option.value }}\n </span>\n <button\n matChipRemove\n class=\"adf-option-chips-delete-button adf-autocomplete-added-option-chips-delete-button\"\n [title]=\"'SEARCH.FILTER.BUTTONS.REMOVE' | translate\"\n >\n <mat-icon class=\"adf-option-chips-delete-icon adf-autocomplete-added-option-chips-delete-icon\">close</mat-icon>\n </button>\n </mat-chip-row>\n <input\n placeholder=\"{{ placeholder | translate }}\"\n aria-controls=\"adf-search-chip-autocomplete\"\n #optionInput\n #autocompleteTrigger=\"matAutocompleteTrigger\"\n [formControl]=\"formCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [attr.aria-label]=\"placeholder | translate\"\n class=\"adf-search-properties-file-input\"\n (matChipInputTokenEnd)=\"add($event)\"\n (blur)=\"activeAnyOption = false; autocompleteTrigger.closePanel()\"\n data-automation-id=\"adf-search-chip-autocomplete-input\">\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\" id=\"adf-search-chip-autocomplete\"\n (optionActivated)=\"activeAnyOption = true\" (closed)=\"activeAnyOption = false\">\n <ng-container *ngIf=\"optionInput.value.length > 0\">\n <mat-option\n *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n (mousedown)=$event.preventDefault()\n [disabled]=\"isOptionSelected(option)\"\n [attr.data-automation-id]=\"'option-' + option.value\"\n [title]=\"option.fullPath ? ('SEARCH.RESULTS.WILL_CONTAIN' | translate : { searchTerm: option.fullPath || option.value }) : undefined\"\n class=\"adf-search-chip-autocomplete-added-option\"\n [ngClass]=\"isOptionSelected(option) && 'adf-autocomplete-added-option'\"\n >\n {{ option.fullPath || option.value }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n</mat-form-field>\n", styles: ["adf-search-chip-autocomplete-input .adf-chip-list{width:100%}adf-search-chip-autocomplete-input .adf-chip-list:has(.mdc-notched-outline){margin-top:4px}adf-search-chip-autocomplete-input .mat-mdc-form-text-infix{border:none}adf-search-chip-autocomplete-input .adf-chip-list.mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:14px;padding-bottom:14px;min-height:unset}adf-search-chip-autocomplete-input .adf-search-properties-file-input{margin-left:3px}adf-search-chip-autocomplete-input .adf-autocomplete-added-option-chips.adf-option-chips{border:1px solid var(--theme-text-color);border-radius:10px;background-color:var(--theme-primary-color-default-contrast);height:auto;word-break:break-word;padding:4px 0}adf-search-chip-autocomplete-input .mdc-evolution-chip-set .mdc-evolution-chip{margin-left:0;margin-right:4px}adf-search-chip-autocomplete-input .adf-option-chips-delete-button.adf-autocomplete-added-option-chips-delete-button{font-size:13px;height:13px;width:13px}adf-search-chip-autocomplete-input .adf-option-chips-delete-button.adf-autocomplete-added-option-chips-delete-button .adf-option-chips-delete-icon.adf-autocomplete-added-option-chips-delete-icon{font-size:13px;height:13px;width:13px}.adf-search-chip-autocomplete-added-option.adf-autocomplete-added-option{background:var(--adf-theme-mat-grey-color-a200);color:var(--adf-theme-primary-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i3.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }], encapsulation: i0.ViewEncapsulation.None }); }
142
141
  }
143
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchChipAutocompleteInputComponent, decorators: [{
144
143
  type: Component,
145
- args: [{ selector: 'adf-search-chip-autocomplete-input', standalone: true, imports: [CommonModule, MatFormFieldModule, MatChipsModule, TranslateModule, MatIconModule, ReactiveFormsModule, MatAutocompleteModule], encapsulation: ViewEncapsulation.None, template: "<mat-form-field class=\"adf-chip-list\" appearance=\"outline\">\n <mat-chip-grid #chipList [attr.aria-label]=\"'SEARCH.FILTER.ARIA-LABEL.OPTIONS-SELECTION' | translate\">\n <mat-chip-row\n class=\"adf-option-chips adf-autocomplete-added-option-chips\"\n *ngFor=\"let option of selectedOptions\"\n (removed)=\"remove(option)\">\n <span [title]=\"option.fullPath ? ('SEARCH.RESULTS.WILL_CONTAIN' | translate:{searchTerm: option.fullPath}) : undefined\">\n {{ option.value }}\n </span>\n <button\n matChipRemove\n class=\"adf-option-chips-delete-button adf-autocomplete-added-option-chips-delete-button\"\n [title]=\"'SEARCH.FILTER.BUTTONS.REMOVE' | translate\"\n >\n <mat-icon class=\"adf-option-chips-delete-icon adf-autocomplete-added-option-chips-delete-icon\">close</mat-icon>\n </button>\n </mat-chip-row>\n <input\n placeholder=\"{{ placeholder | translate }}\"\n aria-controls=\"adf-search-chip-autocomplete\"\n #optionInput\n #autocompleteTrigger=\"matAutocompleteTrigger\"\n [formControl]=\"formCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [attr.aria-label]=\"placeholder | translate\"\n class=\"adf-search-properties-file-input\"\n (matChipInputTokenEnd)=\"add($event)\"\n (blur)=\"activeAnyOption = false; autocompleteTrigger.closePanel()\"\n data-automation-id=\"adf-search-chip-autocomplete-input\">\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\" id=\"adf-search-chip-autocomplete\"\n (optionActivated)=\"activeAnyOption = true\" (closed)=\"activeAnyOption = false\">\n <ng-container *ngIf=\"optionInput.value.length > 0\">\n <mat-option\n *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n (mousedown)=$event.preventDefault()\n [disabled]=\"isOptionSelected(option)\"\n [attr.data-automation-id]=\"'option-' + option.value\"\n [title]=\"option.fullPath ? ('SEARCH.RESULTS.WILL_CONTAIN' | translate : { searchTerm: option.fullPath || option.value }) : undefined\"\n class=\"adf-search-chip-autocomplete-added-option\"\n [ngClass]=\"isOptionSelected(option) && 'adf-autocomplete-added-option'\"\n >\n {{ option.fullPath || option.value }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n</mat-form-field>\n", styles: ["adf-search-chip-autocomplete-input .adf-chip-list{width:100%}adf-search-chip-autocomplete-input .adf-chip-list:has(.mdc-notched-outline){margin-top:4px}adf-search-chip-autocomplete-input .mat-mdc-form-text-infix{border:none}adf-search-chip-autocomplete-input .adf-chip-list.mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:14px;padding-bottom:14px;min-height:unset}adf-search-chip-autocomplete-input .adf-search-properties-file-input{margin-left:3px}adf-search-chip-autocomplete-input .adf-autocomplete-added-option-chips.adf-option-chips{border:1px solid var(--theme-text-color);border-radius:10px;background-color:var(--theme-primary-color-default-contrast);height:auto;word-break:break-word;padding:4px 0}adf-search-chip-autocomplete-input .mdc-evolution-chip-set .mdc-evolution-chip{margin-left:0;margin-right:4px}adf-search-chip-autocomplete-input .adf-option-chips-delete-button.adf-autocomplete-added-option-chips-delete-button{font-size:13px;height:13px;width:13px}adf-search-chip-autocomplete-input .adf-option-chips-delete-button.adf-autocomplete-added-option-chips-delete-button .adf-option-chips-delete-icon.adf-autocomplete-added-option-chips-delete-icon{font-size:13px;height:13px;width:13px}.adf-search-chip-autocomplete-added-option.adf-autocomplete-added-option{background:var(--adf-theme-mat-grey-color-a200);color:var(--adf-theme-primary-300)}\n"] }]
144
+ args: [{ selector: 'adf-search-chip-autocomplete-input', standalone: true, imports: [CommonModule, MatFormFieldModule, MatChipsModule, TranslatePipe, MatIconModule, ReactiveFormsModule, MatAutocompleteModule], encapsulation: ViewEncapsulation.None, template: "<mat-form-field class=\"adf-chip-list\" appearance=\"outline\">\n <mat-chip-grid #chipList [attr.aria-label]=\"'SEARCH.FILTER.ARIA-LABEL.OPTIONS-SELECTION' | translate\">\n <mat-chip-row\n class=\"adf-option-chips adf-autocomplete-added-option-chips\"\n *ngFor=\"let option of selectedOptions\"\n (removed)=\"remove(option)\">\n <span [title]=\"option.fullPath ? ('SEARCH.RESULTS.WILL_CONTAIN' | translate:{searchTerm: option.fullPath}) : undefined\">\n {{ option.value }}\n </span>\n <button\n matChipRemove\n class=\"adf-option-chips-delete-button adf-autocomplete-added-option-chips-delete-button\"\n [title]=\"'SEARCH.FILTER.BUTTONS.REMOVE' | translate\"\n >\n <mat-icon class=\"adf-option-chips-delete-icon adf-autocomplete-added-option-chips-delete-icon\">close</mat-icon>\n </button>\n </mat-chip-row>\n <input\n placeholder=\"{{ placeholder | translate }}\"\n aria-controls=\"adf-search-chip-autocomplete\"\n #optionInput\n #autocompleteTrigger=\"matAutocompleteTrigger\"\n [formControl]=\"formCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [attr.aria-label]=\"placeholder | translate\"\n class=\"adf-search-properties-file-input\"\n (matChipInputTokenEnd)=\"add($event)\"\n (blur)=\"activeAnyOption = false; autocompleteTrigger.closePanel()\"\n data-automation-id=\"adf-search-chip-autocomplete-input\">\n </mat-chip-grid>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\" id=\"adf-search-chip-autocomplete\"\n (optionActivated)=\"activeAnyOption = true\" (closed)=\"activeAnyOption = false\">\n <ng-container *ngIf=\"optionInput.value.length > 0\">\n <mat-option\n *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n (mousedown)=$event.preventDefault()\n [disabled]=\"isOptionSelected(option)\"\n [attr.data-automation-id]=\"'option-' + option.value\"\n [title]=\"option.fullPath ? ('SEARCH.RESULTS.WILL_CONTAIN' | translate : { searchTerm: option.fullPath || option.value }) : undefined\"\n class=\"adf-search-chip-autocomplete-added-option\"\n [ngClass]=\"isOptionSelected(option) && 'adf-autocomplete-added-option'\"\n >\n {{ option.fullPath || option.value }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n</mat-form-field>\n", styles: ["adf-search-chip-autocomplete-input .adf-chip-list{width:100%}adf-search-chip-autocomplete-input .adf-chip-list:has(.mdc-notched-outline){margin-top:4px}adf-search-chip-autocomplete-input .mat-mdc-form-text-infix{border:none}adf-search-chip-autocomplete-input .adf-chip-list.mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:14px;padding-bottom:14px;min-height:unset}adf-search-chip-autocomplete-input .adf-search-properties-file-input{margin-left:3px}adf-search-chip-autocomplete-input .adf-autocomplete-added-option-chips.adf-option-chips{border:1px solid var(--theme-text-color);border-radius:10px;background-color:var(--theme-primary-color-default-contrast);height:auto;word-break:break-word;padding:4px 0}adf-search-chip-autocomplete-input .mdc-evolution-chip-set .mdc-evolution-chip{margin-left:0;margin-right:4px}adf-search-chip-autocomplete-input .adf-option-chips-delete-button.adf-autocomplete-added-option-chips-delete-button{font-size:13px;height:13px;width:13px}adf-search-chip-autocomplete-input .adf-option-chips-delete-button.adf-autocomplete-added-option-chips-delete-button .adf-option-chips-delete-icon.adf-autocomplete-added-option-chips-delete-icon{font-size:13px;height:13px;width:13px}.adf-search-chip-autocomplete-added-option.adf-autocomplete-added-option{background:var(--adf-theme-mat-grey-color-a200);color:var(--adf-theme-primary-300)}\n"] }]
146
145
  }], propDecorators: { optionInput: [{
147
146
  type: ViewChild,
148
147
  args: ['optionInput']
@@ -167,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
167
166
  }], inputChanged: [{
168
167
  type: Output
169
168
  }] } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWlucHV0L3NlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1pbnB1dC9zZWFyY2gtY2hpcC1hdXRvY29tcGxldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JHLE9BQU8sRUFBcUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUs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cUI7OzRGQUs3SCxvQ0FBb0M7a0JBUmhELFNBQVM7K0JBQ0ksb0NBQW9DLGNBQ2xDLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxpQkFHeEgsaUJBQWlCLENBQUMsSUFBSTs4QkFJckMsV0FBVztzQkFEVixTQUFTO3VCQUFDLGFBQWE7Z0JBSXhCLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFJTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBT04sY0FBYztzQkFEYixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSwgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlLCBzdGFydFdpdGgsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZU9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRvY29tcGxldGUtb3B0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWlucHV0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0Q2hpcHNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0QXV0b2NvbXBsZXRlTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtY2hpcC1hdXRvY29tcGxldGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaENoaXBBdXRvY29tcGxldGVJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKCdvcHRpb25JbnB1dCcpXG4gICAgb3B0aW9uSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIGF1dG9jb21wbGV0ZU9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbltdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHByZXNlbGVjdGVkT3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9uW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgb25SZXNldCQ6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgICBASW5wdXQoKVxuICAgIGFsbG93T25seVByZWRlZmluZWRWYWx1ZXMgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlciA9ICdTRUFSQ0guRklMVEVSLkFDVElPTlMuQUREX09QVElPTic7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbXBhcmVPcHRpb24/OiAob3B0aW9uMTogQXV0b2NvbXBsZXRlT3B0aW9uLCBvcHRpb24yOiBBdXRvY29tcGxldGVPcHRpb24pID0+IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIGZvcm1hdENoaXBWYWx1ZT86IChvcHRpb246IHN0cmluZykgPT4gc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBmaWx0ZXIgPSAob3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9uW10sIHZhbHVlOiBzdHJpbmcpOiBBdXRvY29tcGxldGVPcHRpb25bXSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkuc2xpY2UoMCwgMTUpO1xuICAgIH07XG5cbiAgICBAT3V0cHV0KClcbiAgICBvcHRpb25zQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXV0b2NvbXBsZXRlT3B0aW9uW10+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpbnB1dENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlcyA9IFtFTlRFUl0gYXMgY29uc3Q7XG4gICAgZm9ybUN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICAgIGZpbHRlcmVkT3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9uW10gPSBbXTtcbiAgICBzZWxlY3RlZE9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbltdID0gW107XG5cbiAgICBwcml2YXRlIF9hY3RpdmVBbnlPcHRpb24gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHNldCBhY3RpdmVBbnlPcHRpb24oYWN0aXZlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUFueU9wdGlvbiA9IGFjdGl2ZTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5mb3JtQ3RybC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+ICh0aGlzLmFjdGl2ZUFueU9wdGlvbiA9IGZhbHNlKSksXG4gICAgICAgICAgICAgICAgZGVib3VuY2UoKHZhbHVlOiBzdHJpbmcpID0+ICh2YWx1ZSA/IHRpbWVyKDMwMCkgOiBFTVBUWSkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB2YWx1ZSA/IHRoaXMuZmlsdGVyKHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9ucywgdmFsdWUpIDogW107XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENoYW5nZWQuZW1pdCh2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vblJlc2V0JD8ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXQoKSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5wcmVzZWxlY3RlZE9wdGlvbnMgPz8gW107XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5hdXRvY29tcGxldGVPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9XG4gICAgICAgICAgICAgICAgY2hhbmdlcy5hdXRvY29tcGxldGVPcHRpb25zLmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZmlsdGVyKGNoYW5nZXMuYXV0b2NvbXBsZXRlT3B0aW9ucy5jdXJyZW50VmFsdWUsIHRoaXMuZm9ybUN0cmwudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIDogW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGQoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5fYWN0aXZlQW55T3B0aW9uKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSAoZXZlbnQudmFsdWUgfHwgJycpLnRyaW0oKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdENoaXBWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5mb3JtYXRDaGlwVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdGhpcy5pc0V4aXN0cyh2YWx1ZSkgJiYgIXRoaXMuaXNBZGRlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hbGxvd09ubHlQcmVkZWZpbmVkVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hdXRvY29tcGxldGVPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnB1c2godGhpcy5hdXRvY29tcGxldGVPcHRpb25zW2luZGV4XSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaCh7IHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGV2ZW50LmNoaXBJbnB1dC5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUoJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVtb3ZlKHZhbHVlOiBBdXRvY29tcGxldGVPcHRpb24pIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5pbmRleE9mKHZhbHVlKTtcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uc0NoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKGV2ZW50Lm9wdGlvbi52YWx1ZSk7XG4gICAgICAgIHRoaXMub3B0aW9uSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbHVlKCcnKTtcbiAgICAgICAgdGhpcy5vcHRpb25zQ2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gb3B0aW9uIGlzIGFscmVhZHkgc2VsZWN0ZWQuXG4gICAgICpcbiAgICAgKiBUaGlzIG1ldGhvZCBjaGVja3MgaWYgdGhlIHByb3ZpZGVkIGBvcHRpb25gIGlzIHByZXNlbnQgaW4gdGhlIGBzZWxlY3RlZE9wdGlvbnNgIGFycmF5LlxuICAgICAqIElmIGEgY3VzdG9tIGNvbXBhcmlzb24gZnVuY3Rpb24gKGBjb21wYXJlT3B0aW9uYCkgaXMgcHJvdmlkZWQsIGl0IHVzZXMgdGhpcyBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1YWxpdHkuXG4gICAgICogT3RoZXJ3aXNlLCBpdCBmYWxscyBiYWNrIHRvIHVzaW5nIHN0cmljdCBlcXVhbGl0eSBjb21wYXJpc29uLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbiAtIFRoZSBvcHRpb24gdG8gY2hlY2sgZm9yIHNlbGVjdGlvbi5cbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAgICovXG4gICAgaXNPcHRpb25TZWxlY3RlZChvcHRpb246IEF1dG9jb21wbGV0ZU9wdGlvbik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjb21wYXJlID0gdGhpcy5jb21wYXJlT3B0aW9uO1xuICAgICAgICBjb25zdCBhcnJheSA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zO1xuXG4gICAgICAgIHJldHVybiBjb21wYXJlID8gYXJyYXkuc29tZSgoYXJyYXlWYWx1ZSkgPT4gY29tcGFyZShvcHRpb24sIGFycmF5VmFsdWUpKSA6IGFycmF5LmluY2x1ZGVzKG9wdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FkZGVkKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWVMb3dlckNhc2UgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMuc29tZSgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVMb3dlckNhc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNFeGlzdHModmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB2YWx1ZUxvd2VyQ2FzZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmFsbG93T25seVByZWRlZmluZWRWYWx1ZXMgPyB0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnMuc29tZSgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVMb3dlckNhc2UpIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0KCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLm9wdGlvbnNDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbHVlKCcnKTtcbiAgICAgICAgdGhpcy5vcHRpb25JbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLWNoaXAtbGlzdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgPG1hdC1jaGlwLWdyaWQgI2NoaXBMaXN0IFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NFQVJDSC5GSUxURVIuQVJJQS1MQUJFTC5PUFRJT05TLVNFTEVDVElPTicgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPG1hdC1jaGlwLXJvd1xuICAgICAgICAgICAgY2xhc3M9XCJhZGYtb3B0aW9uLWNoaXBzIGFkZi1hdXRvY29tcGxldGUtYWRkZWQtb3B0aW9uLWNoaXBzXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zXCJcbiAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZShvcHRpb24pXCI+XG4gICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwib3B0aW9uLmZ1bGxQYXRoID8gKCdTRUFSQ0guUkVTVUxUUy5XSUxMX0NPTlRBSU4nIHwgdHJhbnNsYXRlOntzZWFyY2hUZXJtOiBvcHRpb24uZnVsbFBhdGh9KSA6IHVuZGVmaW5lZFwiPlxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi52YWx1ZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdENoaXBSZW1vdmVcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1vcHRpb24tY2hpcHMtZGVsZXRlLWJ1dHRvbiBhZGYtYXV0b2NvbXBsZXRlLWFkZGVkLW9wdGlvbi1jaGlwcy1kZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ1NFQVJDSC5GSUxURVIuQlVUVE9OUy5SRU1PVkUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtb3B0aW9uLWNoaXBzLWRlbGV0ZS1pY29uIGFkZi1hdXRvY29tcGxldGUtYWRkZWQtb3B0aW9uLWNoaXBzLWRlbGV0ZS1pY29uXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWNoaXAtcm93PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImFkZi1zZWFyY2gtY2hpcC1hdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgI29wdGlvbklucHV0XG4gICAgICAgICAgICAjYXV0b2NvbXBsZXRlVHJpZ2dlcj1cIm1hdEF1dG9jb21wbGV0ZVRyaWdnZXJcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1DdHJsXCJcbiAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0XCJcbiAgICAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1zZWFyY2gtcHJvcGVydGllcy1maWxlLWlucHV0XCJcbiAgICAgICAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJhZGQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYmx1cik9XCJhY3RpdmVBbnlPcHRpb24gPSBmYWxzZTsgYXV0b2NvbXBsZXRlVHJpZ2dlci5jbG9zZVBhbmVsKClcIlxuICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXNlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1pbnB1dFwiPlxuICAgIDwvbWF0LWNoaXAtZ3JpZD5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJzZWxlY3RlZCgkZXZlbnQpXCIgaWQ9XCJhZGYtc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAob3B0aW9uQWN0aXZhdGVkKT1cImFjdGl2ZUFueU9wdGlvbiA9IHRydWVcIiAoY2xvc2VkKT1cImFjdGl2ZUFueU9wdGlvbiA9IGZhbHNlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25JbnB1dC52YWx1ZS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcbiAgICAgICAgICAgICAgICAobW91c2Vkb3duKT0kZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc09wdGlvblNlbGVjdGVkKG9wdGlvbilcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInb3B0aW9uLScgKyBvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJvcHRpb24uZnVsbFBhdGggPyAoJ1NFQVJDSC5SRVNVTFRTLldJTExfQ09OVEFJTicgfCB0cmFuc2xhdGUgOiB7IHNlYXJjaFRlcm06IG9wdGlvbi5mdWxsUGF0aCB8fCBvcHRpb24udmFsdWUgfSkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1hZGRlZC1vcHRpb25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uKSAmJiAnYWRmLWF1dG9jb21wbGV0ZS1hZGRlZC1vcHRpb24nXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBvcHRpb24uZnVsbFBhdGggfHwgb3B0aW9uLnZhbHVlIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWlucHV0L3NlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1pbnB1dC9zZWFyY2gtY2hpcC1hdXRvY29tcGxldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JHLE9BQU8sRUFBcUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUs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Qjs7NEZBSzNILG9DQUFvQztrQkFSaEQsU0FBUzsrQkFDSSxvQ0FBb0MsY0FDbEMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDLGlCQUd0SCxpQkFBaUIsQ0FBQyxJQUFJOzhCQUlyQyxXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYTtnQkFJeEIsbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFPTixjQUFjO3NCQURiLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50LCBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2UsIHN0YXJ0V2l0aCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F1dG9jb21wbGV0ZS1vcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWlucHV0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0Q2hpcHNNb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIE1hdEljb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEF1dG9jb21wbGV0ZU1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hDaGlwQXV0b2NvbXBsZXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZCgnb3B0aW9uSW5wdXQnKVxuICAgIG9wdGlvbklucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBhdXRvY29tcGxldGVPcHRpb25zOiBBdXRvY29tcGxldGVPcHRpb25bXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwcmVzZWxlY3RlZE9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbltdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIG9uUmVzZXQkOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICAgQElucHV0KClcbiAgICBhbGxvd09ubHlQcmVkZWZpbmVkVmFsdWVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXIgPSAnU0VBUkNILkZJTFRFUi5BQ1RJT05TLkFERF9PUFRJT04nO1xuXG4gICAgQElucHV0KClcbiAgICBjb21wYXJlT3B0aW9uPzogKG9wdGlvbjE6IEF1dG9jb21wbGV0ZU9wdGlvbiwgb3B0aW9uMjogQXV0b2NvbXBsZXRlT3B0aW9uKSA9PiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBmb3JtYXRDaGlwVmFsdWU/OiAob3B0aW9uOiBzdHJpbmcpID0+IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyID0gKG9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbltdLCB2YWx1ZTogc3RyaW5nKTogQXV0b2NvbXBsZXRlT3B0aW9uW10gPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24udmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpLnNsaWNlKDAsIDE1KTtcbiAgICB9O1xuXG4gICAgQE91dHB1dCgpXG4gICAgb3B0aW9uc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEF1dG9jb21wbGV0ZU9wdGlvbltdPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaW5wdXRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXMgPSBbRU5URVJdIGFzIGNvbnN0O1xuICAgIGZvcm1DdHJsID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgICBmaWx0ZXJlZE9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbltdID0gW107XG4gICAgc2VsZWN0ZWRPcHRpb25zOiBBdXRvY29tcGxldGVPcHRpb25bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfYWN0aXZlQW55T3B0aW9uID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBzZXQgYWN0aXZlQW55T3B0aW9uKGFjdGl2ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hY3RpdmVBbnlPcHRpb24gPSBhY3RpdmU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZm9ybUN0cmwudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiAodGhpcy5hY3RpdmVBbnlPcHRpb24gPSBmYWxzZSkpLFxuICAgICAgICAgICAgICAgIGRlYm91bmNlKCh2YWx1ZTogc3RyaW5nKSA9PiAodmFsdWUgPyB0aW1lcigzMDApIDogRU1QVFkpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdmFsdWUgPyB0aGlzLmZpbHRlcih0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnMsIHZhbHVlKSA6IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25SZXNldCQ/LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2V0KCkpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMucHJlc2VsZWN0ZWRPcHRpb25zID8/IFtdO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuYXV0b2NvbXBsZXRlT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPVxuICAgICAgICAgICAgICAgIGNoYW5nZXMuYXV0b2NvbXBsZXRlT3B0aW9ucy5jdXJyZW50VmFsdWU/Lmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmZpbHRlcihjaGFuZ2VzLmF1dG9jb21wbGV0ZU9wdGlvbnMuY3VycmVudFZhbHVlLCB0aGlzLmZvcm1DdHJsLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICA6IFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZUFueU9wdGlvbikge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gKGV2ZW50LnZhbHVlIHx8ICcnKS50cmltKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtYXRDaGlwVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuZm9ybWF0Q2hpcFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuaXNFeGlzdHModmFsdWUpICYmICF0aGlzLmlzQWRkZWQodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dPbmx5UHJlZGVmaW5lZFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IHZhbHVlLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9uc1tpbmRleF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnB1c2goeyB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zQ2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgICAgICAgICAgICBldmVudC5jaGlwSW5wdXQuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZSh2YWx1ZTogQXV0b2NvbXBsZXRlT3B0aW9uKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuaW5kZXhPZih2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaChldmVudC5vcHRpb24udmFsdWUpO1xuICAgICAgICB0aGlzLm9wdGlvbklucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIHRoaXMub3B0aW9uc0NoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIG9wdGlvbiBpcyBhbHJlYWR5IHNlbGVjdGVkLlxuICAgICAqXG4gICAgICogVGhpcyBtZXRob2QgY2hlY2tzIGlmIHRoZSBwcm92aWRlZCBgb3B0aW9uYCBpcyBwcmVzZW50IGluIHRoZSBgc2VsZWN0ZWRPcHRpb25zYCBhcnJheS5cbiAgICAgKiBJZiBhIGN1c3RvbSBjb21wYXJpc29uIGZ1bmN0aW9uIChgY29tcGFyZU9wdGlvbmApIGlzIHByb3ZpZGVkLCBpdCB1c2VzIHRoaXMgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWFsaXR5LlxuICAgICAqIE90aGVyd2lzZSwgaXQgZmFsbHMgYmFjayB0byB1c2luZyBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb24gLSBUaGUgb3B0aW9uIHRvIGNoZWNrIGZvciBzZWxlY3Rpb24uXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBBdXRvY29tcGxldGVPcHRpb24pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY29tcGFyZSA9IHRoaXMuY29tcGFyZU9wdGlvbjtcbiAgICAgICAgY29uc3QgYXJyYXkgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucztcblxuICAgICAgICByZXR1cm4gY29tcGFyZSA/IGFycmF5LnNvbWUoKGFycmF5VmFsdWUpID0+IGNvbXBhcmUob3B0aW9uLCBhcnJheVZhbHVlKSkgOiBhcnJheS5pbmNsdWRlcyhvcHRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBZGRlZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZhbHVlTG93ZXJDYXNlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnNvbWUoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IHZhbHVlTG93ZXJDYXNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRXhpc3RzKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWVMb3dlckNhc2UgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxvd09ubHlQcmVkZWZpbmVkVmFsdWVzID8gdGhpcy5hdXRvY29tcGxldGVPcHRpb25zLnNvbWUoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IHZhbHVlTG93ZXJDYXNlKSA6IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5vcHRpb25zQ2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIHRoaXMub3B0aW9uSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1jaGlwLWxpc3RcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwTGlzdCBbYXR0ci5hcmlhLWxhYmVsXT1cIidTRUFSQ0guRklMVEVSLkFSSUEtTEFCRUwuT1BUSU9OUy1TRUxFQ1RJT04nIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLW9wdGlvbi1jaGlwcyBhZGYtYXV0b2NvbXBsZXRlLWFkZGVkLW9wdGlvbi1jaGlwc1wiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNlbGVjdGVkT3B0aW9uc1wiXG4gICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmUob3B0aW9uKVwiPlxuICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIm9wdGlvbi5mdWxsUGF0aCA/ICgnU0VBUkNILlJFU1VMVFMuV0lMTF9DT05UQUlOJyB8IHRyYW5zbGF0ZTp7c2VhcmNoVGVybTogb3B0aW9uLmZ1bGxQYXRofSkgOiB1bmRlZmluZWRcIj5cbiAgICAgICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtb3B0aW9uLWNoaXBzLWRlbGV0ZS1idXR0b24gYWRmLWF1dG9jb21wbGV0ZS1hZGRlZC1vcHRpb24tY2hpcHMtZGVsZXRlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidTRUFSQ0guRklMVEVSLkJVVFRPTlMuUkVNT1ZFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWRmLW9wdGlvbi1jaGlwcy1kZWxldGUtaWNvbiBhZGYtYXV0b2NvbXBsZXRlLWFkZGVkLW9wdGlvbi1jaGlwcy1kZWxldGUtaWNvblwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1jaGlwLXJvdz5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJhZGYtc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICNvcHRpb25JbnB1dFxuICAgICAgICAgICAgI2F1dG9jb21wbGV0ZVRyaWdnZXI9XCJtYXRBdXRvY29tcGxldGVUcmlnZ2VyXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ3RybFwiXG4gICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdFwiXG4gICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VhcmNoLXByb3BlcnRpZXMtZmlsZS1pbnB1dFwiXG4gICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIlxuICAgICAgICAgICAgKGJsdXIpPVwiYWN0aXZlQW55T3B0aW9uID0gZmFsc2U7IGF1dG9jb21wbGV0ZVRyaWdnZXIuY2xvc2VQYW5lbCgpXCJcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1zZWFyY2gtY2hpcC1hdXRvY29tcGxldGUtaW5wdXRcIj5cbiAgICA8L21hdC1jaGlwLWdyaWQ+XG4gICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VsZWN0ZWQoJGV2ZW50KVwiIGlkPVwiYWRmLXNlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG9wdGlvbkFjdGl2YXRlZCk9XCJhY3RpdmVBbnlPcHRpb24gPSB0cnVlXCIgKGNsb3NlZCk9XCJhY3RpdmVBbnlPcHRpb24gPSBmYWxzZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uSW5wdXQudmFsdWUubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9JGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNPcHRpb25TZWxlY3RlZChvcHRpb24pXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ29wdGlvbi0nICsgb3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwib3B0aW9uLmZ1bGxQYXRoID8gKCdTRUFSQ0guUkVTVUxUUy5XSUxMX0NPTlRBSU4nIHwgdHJhbnNsYXRlIDogeyBzZWFyY2hUZXJtOiBvcHRpb24uZnVsbFBhdGggfHwgb3B0aW9uLnZhbHVlIH0pIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1zZWFyY2gtY2hpcC1hdXRvY29tcGxldGUtYWRkZWQtb3B0aW9uXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpc09wdGlvblNlbGVjdGVkKG9wdGlvbikgJiYgJ2FkZi1hdXRvY29tcGxldGUtYWRkZWQtb3B0aW9uJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgb3B0aW9uLmZ1bGxQYXRoIHx8IG9wdGlvbi52YWx1ZSB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -19,14 +19,13 @@ import { SearchFilterComponent } from '../../components/search-filter/search-fil
19
19
  import { SearchFacetFiltersService } from '../../services/search-facet-filters.service';
20
20
  import { CommonModule } from '@angular/common';
21
21
  import { MatChipsModule } from '@angular/material/chips';
22
- import { TranslateModule } from '@ngx-translate/core';
22
+ import { TranslatePipe } from '@ngx-translate/core';
23
23
  import { MatIconModule } from '@angular/material/icon';
24
24
  import * as i0 from "@angular/core";
25
25
  import * as i1 from "../../services/search-facet-filters.service";
26
26
  import * as i2 from "@angular/common";
27
27
  import * as i3 from "@angular/material/chips";
28
- import * as i4 from "@ngx-translate/core";
29
- import * as i5 from "@angular/material/icon";
28
+ import * as i4 from "@angular/material/icon";
30
29
  export class SearchChipListComponent {
31
30
  constructor(facetFiltersService) {
32
31
  this.facetFiltersService = facetFiltersService;
@@ -34,14 +33,14 @@ export class SearchChipListComponent {
34
33
  this.clearAll = false;
35
34
  }
36
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchChipListComponent, deps: [{ token: i1.SearchFacetFiltersService }], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchChipListComponent, isStandalone: true, selector: "adf-search-chip-list", inputs: { searchFilter: "searchFilter", clearAll: "clearAll" }, host: { classAttribute: "adf-search-chip-list" }, ngImport: i0, template: "<mat-chip-listbox>\n <ng-container *ngIf=\"facetFiltersService.selectedBuckets.length\">\n <mat-chip-option *ngIf=\"clearAll && facetFiltersService.selectedBuckets.length > 1\"\n data-automation-id=\"reset-filter\"\n color=\"primary\"\n selected\n class=\"adf-search-chip-list-item\"\n title=\"{{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.TOOLTIP' | translate }}\"\n (click)=\"facetFiltersService.resetAllSelectedBuckets()\">\n {{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.LABEL' | translate }}\n </mat-chip-option>\n\n <mat-chip-option\n data-automation-id=\"chip-list-entry\"\n class=\"adf-search-chip-list-item\"\n *ngFor=\"let selection of facetFiltersService.selectedBuckets\"\n [removable]=\"true\"\n (removed)=\"facetFiltersService.unselectFacetBucket(selection.field, selection.bucket)\">\n {{ (selection.bucket.display || selection.bucket.label) | translate }}\n <mat-icon class=\"adf-search-chip-list-item-remove\" matChipRemove>cancel</mat-icon>\n </mat-chip-option>\n </ng-container>\n</mat-chip-listbox>\n", styles: [".adf-search-chip-list-item:focus{color:var(--theme-accent-color-default-contrast);background-color:var(--theme-accent-color)}.adf-search-chip-list-item:focus .adf-search-chip-list-item-remove{color:var(--theme-accent-color-default-contrast);opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i3.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i3.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchChipListComponent, isStandalone: true, selector: "adf-search-chip-list", inputs: { searchFilter: "searchFilter", clearAll: "clearAll" }, host: { classAttribute: "adf-search-chip-list" }, ngImport: i0, template: "<mat-chip-listbox>\n <ng-container *ngIf=\"facetFiltersService.selectedBuckets.length\">\n <mat-chip-option *ngIf=\"clearAll && facetFiltersService.selectedBuckets.length > 1\"\n data-automation-id=\"reset-filter\"\n color=\"primary\"\n selected\n class=\"adf-search-chip-list-item\"\n title=\"{{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.TOOLTIP' | translate }}\"\n (click)=\"facetFiltersService.resetAllSelectedBuckets()\">\n {{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.LABEL' | translate }}\n </mat-chip-option>\n\n <mat-chip-option\n data-automation-id=\"chip-list-entry\"\n class=\"adf-search-chip-list-item\"\n *ngFor=\"let selection of facetFiltersService.selectedBuckets\"\n [removable]=\"true\"\n (removed)=\"facetFiltersService.unselectFacetBucket(selection.field, selection.bucket)\">\n {{ (selection.bucket.display || selection.bucket.label) | translate }}\n <mat-icon class=\"adf-search-chip-list-item-remove\" matChipRemove>cancel</mat-icon>\n </mat-chip-option>\n </ng-container>\n</mat-chip-listbox>\n", styles: [".adf-search-chip-list-item:focus{color:var(--theme-accent-color-default-contrast);background-color:var(--theme-accent-color)}.adf-search-chip-list-item:focus .adf-search-chip-list-item-remove{color:var(--theme-accent-color-default-contrast);opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i3.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i3.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
38
37
  }
39
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchChipListComponent, decorators: [{
40
39
  type: Component,
41
- args: [{ selector: 'adf-search-chip-list', standalone: true, imports: [CommonModule, MatChipsModule, TranslateModule, MatIconModule], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-chip-list' }, template: "<mat-chip-listbox>\n <ng-container *ngIf=\"facetFiltersService.selectedBuckets.length\">\n <mat-chip-option *ngIf=\"clearAll && facetFiltersService.selectedBuckets.length > 1\"\n data-automation-id=\"reset-filter\"\n color=\"primary\"\n selected\n class=\"adf-search-chip-list-item\"\n title=\"{{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.TOOLTIP' | translate }}\"\n (click)=\"facetFiltersService.resetAllSelectedBuckets()\">\n {{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.LABEL' | translate }}\n </mat-chip-option>\n\n <mat-chip-option\n data-automation-id=\"chip-list-entry\"\n class=\"adf-search-chip-list-item\"\n *ngFor=\"let selection of facetFiltersService.selectedBuckets\"\n [removable]=\"true\"\n (removed)=\"facetFiltersService.unselectFacetBucket(selection.field, selection.bucket)\">\n {{ (selection.bucket.display || selection.bucket.label) | translate }}\n <mat-icon class=\"adf-search-chip-list-item-remove\" matChipRemove>cancel</mat-icon>\n </mat-chip-option>\n </ng-container>\n</mat-chip-listbox>\n", styles: [".adf-search-chip-list-item:focus{color:var(--theme-accent-color-default-contrast);background-color:var(--theme-accent-color)}.adf-search-chip-list-item:focus .adf-search-chip-list-item-remove{color:var(--theme-accent-color-default-contrast);opacity:1}\n"] }]
40
+ args: [{ selector: 'adf-search-chip-list', standalone: true, imports: [CommonModule, MatChipsModule, TranslatePipe, MatIconModule], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-chip-list' }, template: "<mat-chip-listbox>\n <ng-container *ngIf=\"facetFiltersService.selectedBuckets.length\">\n <mat-chip-option *ngIf=\"clearAll && facetFiltersService.selectedBuckets.length > 1\"\n data-automation-id=\"reset-filter\"\n color=\"primary\"\n selected\n class=\"adf-search-chip-list-item\"\n title=\"{{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.TOOLTIP' | translate }}\"\n (click)=\"facetFiltersService.resetAllSelectedBuckets()\">\n {{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.LABEL' | translate }}\n </mat-chip-option>\n\n <mat-chip-option\n data-automation-id=\"chip-list-entry\"\n class=\"adf-search-chip-list-item\"\n *ngFor=\"let selection of facetFiltersService.selectedBuckets\"\n [removable]=\"true\"\n (removed)=\"facetFiltersService.unselectFacetBucket(selection.field, selection.bucket)\">\n {{ (selection.bucket.display || selection.bucket.label) | translate }}\n <mat-icon class=\"adf-search-chip-list-item-remove\" matChipRemove>cancel</mat-icon>\n </mat-chip-option>\n </ng-container>\n</mat-chip-listbox>\n", styles: [".adf-search-chip-list-item:focus{color:var(--theme-accent-color-default-contrast);background-color:var(--theme-accent-color)}.adf-search-chip-list-item:focus .adf-search-chip-list-item-remove{color:var(--theme-accent-color-default-contrast);opacity:1}\n"] }]
42
41
  }], ctorParameters: () => [{ type: i1.SearchFacetFiltersService }], propDecorators: { searchFilter: [{
43
42
  type: Input
44
43
  }], clearAll: [{
45
44
  type: Input
46
45
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNoaXAtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1jaGlwLWxpc3Qvc2VhcmNoLWNoaXAtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1jaGlwLWxpc3Qvc2VhcmNoLWNoaXAtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUFXdkQsTUFBTSxPQUFPLHVCQUF1QjtJQVloQyxZQUFtQixtQkFBOEM7UUFBOUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEyQjtRQUpqRSxxRUFBcUU7UUFFckUsYUFBUSxHQUFZLEtBQUssQ0FBQztJQUUwQyxDQUFDOytHQVo1RCx1QkFBdUI7bUdBQXZCLHVCQUF1QixrTUNsQ3BDLHNxQ0F1QkEsc1RES2MsWUFBWSwrUEFBRSxjQUFjLDBoQkFBRSxlQUFlLDJGQUFFLGFBQWE7OzRGQU03RCx1QkFBdUI7a0JBVG5DLFNBQVM7K0JBQ0ksc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxpQkFHeEQsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRTs4RkFRdkMsWUFBWTtzQkFEWCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hGYWNldEZpbHRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VhcmNoLWZhY2V0LWZpbHRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWNoaXAtbGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRDaGlwc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWNoaXAtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWNoaXAtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zZWFyY2gtY2hpcC1saXN0JyB9XG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaENoaXBMaXN0Q29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBTZWFyY2ggZmlsdGVyIHRvIHN1cHBseSB0aGUgZGF0YSBmb3IgdGhlIGNoaXBzLlxuICAgICAqIE5vdCByZXF1aXJlZCBmcm9tIDQuNS4wIGFuZCBsYXRlciB2ZXJzaW9ucyBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VhcmNoRmlsdGVyOiBTZWFyY2hGaWx0ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogRmxhZyB1c2VkIHRvIGVuYWJsZSB0aGUgZGlzcGxheSBvZiBhIGNsZWFyLWFsbC1maWx0ZXJzIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsZWFyQWxsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZmFjZXRGaWx0ZXJzU2VydmljZTogU2VhcmNoRmFjZXRGaWx0ZXJzU2VydmljZSkge31cbn1cbiIsIjxtYXQtY2hpcC1saXN0Ym94PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmYWNldEZpbHRlcnNTZXJ2aWNlLnNlbGVjdGVkQnVja2V0cy5sZW5ndGhcIj5cbiAgICAgICAgPG1hdC1jaGlwLW9wdGlvbiAqbmdJZj1cImNsZWFyQWxsICYmIGZhY2V0RmlsdGVyc1NlcnZpY2Uuc2VsZWN0ZWRCdWNrZXRzLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicmVzZXQtZmlsdGVyXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBzZWxlY3RlZFxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VhcmNoLWNoaXAtbGlzdC1pdGVtXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ1NFQVJDSC5GSUxURVIuQlVUVE9OUy5DTEVBUi1BTEwuVE9PTFRJUCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImZhY2V0RmlsdGVyc1NlcnZpY2UucmVzZXRBbGxTZWxlY3RlZEJ1Y2tldHMoKVwiPlxuICAgICAgICAgICAge3sgJ1NFQVJDSC5GSUxURVIuQlVUVE9OUy5DTEVBUi1BTEwuTEFCRUwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxuXG4gICAgICAgIDxtYXQtY2hpcC1vcHRpb25cbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImNoaXAtbGlzdC1lbnRyeVwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1zZWFyY2gtY2hpcC1saXN0LWl0ZW1cIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlbGVjdGlvbiBvZiBmYWNldEZpbHRlcnNTZXJ2aWNlLnNlbGVjdGVkQnVja2V0c1wiXG4gICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgKHJlbW92ZWQpPVwiZmFjZXRGaWx0ZXJzU2VydmljZS51bnNlbGVjdEZhY2V0QnVja2V0KHNlbGVjdGlvbi5maWVsZCwgc2VsZWN0aW9uLmJ1Y2tldClcIj5cbiAgICAgICAgICAgIHt7IChzZWxlY3Rpb24uYnVja2V0LmRpc3BsYXkgfHwgc2VsZWN0aW9uLmJ1Y2tldC5sYWJlbCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi1zZWFyY2gtY2hpcC1saXN0LWl0ZW0tcmVtb3ZlXCIgbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICA8L21hdC1jaGlwLW9wdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LWNoaXAtbGlzdGJveD5cbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNoaXAtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1jaGlwLWxpc3Qvc2VhcmNoLWNoaXAtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1jaGlwLWxpc3Qvc2VhcmNoLWNoaXAtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQVd2RCxNQUFNLE9BQU8sdUJBQXVCO0lBWWhDLFlBQW1CLG1CQUE4QztRQUE5Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTJCO1FBSmpFLHFFQUFxRTtRQUVyRSxhQUFRLEdBQVksS0FBSyxDQUFDO0lBRTBDLENBQUM7K0dBWjVELHVCQUF1QjttR0FBdkIsdUJBQXVCLGtNQ2xDcEMsc3FDQXVCQSxzVERLYyxZQUFZLCtQQUFFLGNBQWMsc2hCQUFFLGFBQWEsaURBQUUsYUFBYTs7NEZBTTNELHVCQUF1QjtrQkFUbkMsU0FBUzsrQkFDSSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLGlCQUd0RCxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFOzhGQVF2QyxZQUFZO3NCQURYLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VhcmNoRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zZWFyY2gtZmlsdGVyL3NlYXJjaC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEZhY2V0RmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWFyY2gtZmFjZXQtZmlsdGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWNoaXAtbGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRDaGlwc01vZHVsZSwgVHJhbnNsYXRlUGlwZSwgTWF0SWNvbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1jaGlwLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1jaGlwLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtc2VhcmNoLWNoaXAtbGlzdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hDaGlwTGlzdENvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogU2VhcmNoIGZpbHRlciB0byBzdXBwbHkgdGhlIGRhdGEgZm9yIHRoZSBjaGlwcy5cbiAgICAgKiBOb3QgcmVxdWlyZWQgZnJvbSA0LjUuMCBhbmQgbGF0ZXIgdmVyc2lvbnMgQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlYXJjaEZpbHRlcjogU2VhcmNoRmlsdGVyQ29tcG9uZW50O1xuXG4gICAgLyoqIEZsYWcgdXNlZCB0byBlbmFibGUgdGhlIGRpc3BsYXkgb2YgYSBjbGVhci1hbGwtZmlsdGVycyBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBjbGVhckFsbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGZhY2V0RmlsdGVyc1NlcnZpY2U6IFNlYXJjaEZhY2V0RmlsdGVyc1NlcnZpY2UpIHt9XG59XG4iLCI8bWF0LWNoaXAtbGlzdGJveD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmFjZXRGaWx0ZXJzU2VydmljZS5zZWxlY3RlZEJ1Y2tldHMubGVuZ3RoXCI+XG4gICAgICAgIDxtYXQtY2hpcC1vcHRpb24gKm5nSWY9XCJjbGVhckFsbCAmJiBmYWNldEZpbHRlcnNTZXJ2aWNlLnNlbGVjdGVkQnVja2V0cy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInJlc2V0LWZpbHRlclwiXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgc2VsZWN0ZWRcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNlYXJjaC1jaGlwLWxpc3QtaXRlbVwiXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdTRUFSQ0guRklMVEVSLkJVVFRPTlMuQ0xFQVItQUxMLlRPT0xUSVAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIChjbGljayk9XCJmYWNldEZpbHRlcnNTZXJ2aWNlLnJlc2V0QWxsU2VsZWN0ZWRCdWNrZXRzKClcIj5cbiAgICAgICAgICAgIHt7ICdTRUFSQ0guRklMVEVSLkJVVFRPTlMuQ0xFQVItQUxMLkxBQkVMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L21hdC1jaGlwLW9wdGlvbj5cblxuICAgICAgICA8bWF0LWNoaXAtb3B0aW9uXG4gICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjaGlwLWxpc3QtZW50cnlcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VhcmNoLWNoaXAtbGlzdC1pdGVtXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWxlY3Rpb24gb2YgZmFjZXRGaWx0ZXJzU2VydmljZS5zZWxlY3RlZEJ1Y2tldHNcIlxuICAgICAgICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIChyZW1vdmVkKT1cImZhY2V0RmlsdGVyc1NlcnZpY2UudW5zZWxlY3RGYWNldEJ1Y2tldChzZWxlY3Rpb24uZmllbGQsIHNlbGVjdGlvbi5idWNrZXQpXCI+XG4gICAgICAgICAgICB7eyAoc2VsZWN0aW9uLmJ1Y2tldC5kaXNwbGF5IHx8IHNlbGVjdGlvbi5idWNrZXQubGFiZWwpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtc2VhcmNoLWNoaXAtbGlzdC1pdGVtLXJlbW92ZVwiIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtY2hpcC1vcHRpb24+XG4gICAgPC9uZy1jb250YWluZXI+XG48L21hdC1jaGlwLWxpc3Rib3g+XG4iXX0=
@@ -22,13 +22,12 @@ import { MatListItem, MatListModule } from '@angular/material/list';
22
22
  import { EmptySearchResultComponent } from './empty-search-result.component';
23
23
  import { CommonModule } from '@angular/common';
24
24
  import { MatIconModule } from '@angular/material/icon';
25
- import { TranslateModule } from '@ngx-translate/core';
25
+ import { TranslatePipe } from '@ngx-translate/core';
26
26
  import * as i0 from "@angular/core";
27
27
  import * as i1 from "@alfresco/adf-core";
28
28
  import * as i2 from "@angular/common";
29
29
  import * as i3 from "@angular/material/list";
30
30
  import * as i4 from "@angular/material/icon";
31
- import * as i5 from "@ngx-translate/core";
32
31
  export class SearchControlComponent {
33
32
  constructor(authService, thumbnailService) {
34
33
  this.authService = authService;
@@ -142,11 +141,11 @@ export class SearchControlComponent {
142
141
  return node.previousElementSibling;
143
142
  }
144
143
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchControlComponent, deps: [{ token: i1.AuthenticationService }, { token: i1.ThumbnailService }], target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchControlComponent, isStandalone: true, selector: "adf-search-control", inputs: { highlight: "highlight", inputType: "inputType", liveSearchEnabled: "liveSearchEnabled", autocomplete: "autocomplete", expandable: "expandable", liveSearchMaxResults: "liveSearchMaxResults" }, outputs: { submit: "submit", searchChange: "searchChange", optionClicked: "optionClicked" }, host: { classAttribute: "adf-search-control" }, queries: [{ propertyName: "emptySearchTemplate", first: true, predicate: EmptySearchResultComponent, descendants: true }], viewQueries: [{ propertyName: "searchTextInput", first: true, predicate: ["searchTextInput"], descendants: true }, { propertyName: "searchAutocomplete", first: true, predicate: ["search"], descendants: true }, { propertyName: "listResultElement", predicate: MatListItem, descendants: true }], ngImport: i0, template: "<div *ngIf=\"isLoggedIn()\">\n <adf-search-text-input #searchTextInput\n [searchTerm]= \"searchTerm\"\n [expandable]=\"expandable\"\n [autocomplete]=\"autocomplete\"\n [liveSearchEnabled]=\"liveSearchEnabled\"\n [focusListener]=\"focusSubject.asObservable()\"\n [searchAutocomplete]=\"auto\"\n (searchChange)=\"inputChange($event)\"\n (reset)=\"onReset($event)\"\n (selectResult)=\"onSelectFirstResult()\"\n (submit)=\"submit.emit($event)\" />\n\n <adf-search #search\n #auto=\"searchAutocomplete\"\n class=\"adf-search-result-autocomplete\"\n [maxResults]=\"liveSearchMaxResults\">\n <ng-template let-data>\n <mat-list *ngIf=\"searchTextInput?.isSearchBarActive()\" id=\"autocomplete-search-result-list\">\n <mat-list-item\n *ngFor=\"let item of data?.list?.entries; let idx = index\"\n id=\"result_option_{{idx}}\"\n [attr.data-automation-id]=\"'autocomplete_for_' + item.entry.name\"\n [tabindex]=\"0\"\n (blur)=\"onBlur($event)\"\n (keyup.arrowdown)=\"onRowArrowDown($event)\"\n (keyup.arrowup)=\"onRowArrowUp($event)\"\n class=\"adf-search-autocomplete-item\"\n (click)=\"elementClicked(item)\"\n (keyup.enter)=\"elementClicked(item)\"\n (touchend)=\"elementClicked(item)\">\n <!-- This is a comment -->\n <mat-icon matListItemLine>\n <img [alt]=\"getMimeType(item)\" [src]=\"getMimeTypeIcon(item)\"/>\n </mat-icon>\n <h4 matListItemTitle id=\"result_name_{{idx}}\"\n *ngIf=\"highlight; else elseBlock\"\n class=\"adf-search-fixed-text\"\n [innerHtml]=\"item.entry.name | highlight: searchTerm\">\n {{ item?.entry.name }}\n </h4>\n <ng-template #elseBlock>\n <h4 class=\"adf-search-fixed-text\" matListItemTitle id=\"result_name_{{idx}}\"\n [innerHtml]=\"item.entry.name\"></h4>\n </ng-template>\n <p matListItemLine class=\"adf-search-fixed-text\"> {{item?.entry.createdByUser.displayName}} </p>\n </mat-list-item>\n <mat-list-item id=\"search_no_result\"\n data-automation-id=\"search_no_result_found\"\n *ngIf=\"data?.list?.entries.length === 0\">\n <ng-content\n selector=\"adf-empty-search-result\"\n *ngIf=\"isNoSearchTemplatePresent() else defaultNoResult\" />\n <ng-template #defaultNoResult>\n <p matListItemLine class=\"adf-search-fixed-text\">{{ 'SEARCH.RESULTS.NONE' | translate:{searchTerm:\n searchTerm} }}</p>\n </ng-template>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </adf-search>\n</div>\n", styles: [".adf-search-result-autocomplete{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;transform-origin:top left;transform:translate(-40px);position:absolute;max-height:400px;margin-left:45px;margin-top:-22px;font-size:var(--theme-subheading-1-font-size);z-index:5;color:var(--adf-theme-foreground-text-color);background-color:var(--adf-theme-background-card-color);border-radius:2px}.adf-search-result-autocomplete:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}@media (max-width: 959.9px){.adf-search-result-autocomplete{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}.adf-search-autocomplete-item:hover{background-color:var(--adf-theme-background-hover-color);opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchTextInputComponent, selector: "adf-search-text-input", inputs: ["autocomplete", "expandable", "inputType", "liveSearchEnabled", "searchAutocomplete", "searchTerm", "debounceTime", "focusListener", "collapseOnSubmit", "defaultState", "collapseOnBlur", "showClearButton", "placeholder", "label", "hintLabel"], outputs: ["searchChange", "submit", "selectResult", "reset", "searchVisibility"] }, { kind: "component", type: SearchComponent, selector: "adf-search", inputs: ["displayWith", "maxResults", "skipResults", "searchTerm", "class"], outputs: ["resultLoaded", "error"], exportAs: ["searchAutocomplete"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i3.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i3.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchControlComponent, isStandalone: true, selector: "adf-search-control", inputs: { highlight: "highlight", inputType: "inputType", liveSearchEnabled: "liveSearchEnabled", autocomplete: "autocomplete", expandable: "expandable", liveSearchMaxResults: "liveSearchMaxResults" }, outputs: { submit: "submit", searchChange: "searchChange", optionClicked: "optionClicked" }, host: { classAttribute: "adf-search-control" }, queries: [{ propertyName: "emptySearchTemplate", first: true, predicate: EmptySearchResultComponent, descendants: true }], viewQueries: [{ propertyName: "searchTextInput", first: true, predicate: ["searchTextInput"], descendants: true }, { propertyName: "searchAutocomplete", first: true, predicate: ["search"], descendants: true }, { propertyName: "listResultElement", predicate: MatListItem, descendants: true }], ngImport: i0, template: "<div *ngIf=\"isLoggedIn()\">\n <adf-search-text-input #searchTextInput\n [searchTerm]= \"searchTerm\"\n [expandable]=\"expandable\"\n [autocomplete]=\"autocomplete\"\n [liveSearchEnabled]=\"liveSearchEnabled\"\n [focusListener]=\"focusSubject.asObservable()\"\n [searchAutocomplete]=\"auto\"\n (searchChange)=\"inputChange($event)\"\n (reset)=\"onReset($event)\"\n (selectResult)=\"onSelectFirstResult()\"\n (submit)=\"submit.emit($event)\" />\n\n <adf-search #search\n #auto=\"searchAutocomplete\"\n class=\"adf-search-result-autocomplete\"\n [maxResults]=\"liveSearchMaxResults\">\n <ng-template let-data>\n <mat-list *ngIf=\"searchTextInput?.isSearchBarActive()\" id=\"autocomplete-search-result-list\">\n <mat-list-item\n *ngFor=\"let item of data?.list?.entries; let idx = index\"\n id=\"result_option_{{idx}}\"\n [attr.data-automation-id]=\"'autocomplete_for_' + item.entry.name\"\n [tabindex]=\"0\"\n (blur)=\"onBlur($event)\"\n (keyup.arrowdown)=\"onRowArrowDown($event)\"\n (keyup.arrowup)=\"onRowArrowUp($event)\"\n class=\"adf-search-autocomplete-item\"\n (click)=\"elementClicked(item)\"\n (keyup.enter)=\"elementClicked(item)\"\n (touchend)=\"elementClicked(item)\">\n <!-- This is a comment -->\n <mat-icon matListItemLine>\n <img [alt]=\"getMimeType(item)\" [src]=\"getMimeTypeIcon(item)\"/>\n </mat-icon>\n <h4 matListItemTitle id=\"result_name_{{idx}}\"\n *ngIf=\"highlight; else elseBlock\"\n class=\"adf-search-fixed-text\"\n [innerHtml]=\"item.entry.name | highlight: searchTerm\">\n {{ item?.entry.name }}\n </h4>\n <ng-template #elseBlock>\n <h4 class=\"adf-search-fixed-text\" matListItemTitle id=\"result_name_{{idx}}\"\n [innerHtml]=\"item.entry.name\"></h4>\n </ng-template>\n <p matListItemLine class=\"adf-search-fixed-text\"> {{item?.entry.createdByUser.displayName}} </p>\n </mat-list-item>\n <mat-list-item id=\"search_no_result\"\n data-automation-id=\"search_no_result_found\"\n *ngIf=\"data?.list?.entries.length === 0\">\n <ng-content\n selector=\"adf-empty-search-result\"\n *ngIf=\"isNoSearchTemplatePresent() else defaultNoResult\" />\n <ng-template #defaultNoResult>\n <p matListItemLine class=\"adf-search-fixed-text\">{{ 'SEARCH.RESULTS.NONE' | translate:{searchTerm:\n searchTerm} }}</p>\n </ng-template>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </adf-search>\n</div>\n", styles: [".adf-search-result-autocomplete{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;transform-origin:top left;transform:translate(-40px);position:absolute;max-height:400px;margin-left:45px;margin-top:-22px;font-size:var(--theme-subheading-1-font-size);z-index:5;color:var(--adf-theme-foreground-text-color);background-color:var(--adf-theme-background-card-color);border-radius:2px}.adf-search-result-autocomplete:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}@media (max-width: 959.9px){.adf-search-result-autocomplete{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}.adf-search-autocomplete-item:hover{background-color:var(--adf-theme-background-hover-color);opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchTextInputComponent, selector: "adf-search-text-input", inputs: ["autocomplete", "expandable", "inputType", "liveSearchEnabled", "searchAutocomplete", "searchTerm", "debounceTime", "focusListener", "collapseOnSubmit", "defaultState", "collapseOnBlur", "showClearButton", "placeholder", "label", "hintLabel"], outputs: ["searchChange", "submit", "selectResult", "reset", "searchVisibility"] }, { kind: "component", type: SearchComponent, selector: "adf-search", inputs: ["displayWith", "maxResults", "skipResults", "searchTerm", "class"], outputs: ["resultLoaded", "error"], exportAs: ["searchAutocomplete"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i3.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i3.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
146
145
  }
147
146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchControlComponent, decorators: [{
148
147
  type: Component,
149
- args: [{ selector: 'adf-search-control', standalone: true, imports: [CommonModule, SearchTextInputComponent, SearchComponent, MatListModule, MatIconModule, HighlightPipe, TranslateModule], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-control' }, template: "<div *ngIf=\"isLoggedIn()\">\n <adf-search-text-input #searchTextInput\n [searchTerm]= \"searchTerm\"\n [expandable]=\"expandable\"\n [autocomplete]=\"autocomplete\"\n [liveSearchEnabled]=\"liveSearchEnabled\"\n [focusListener]=\"focusSubject.asObservable()\"\n [searchAutocomplete]=\"auto\"\n (searchChange)=\"inputChange($event)\"\n (reset)=\"onReset($event)\"\n (selectResult)=\"onSelectFirstResult()\"\n (submit)=\"submit.emit($event)\" />\n\n <adf-search #search\n #auto=\"searchAutocomplete\"\n class=\"adf-search-result-autocomplete\"\n [maxResults]=\"liveSearchMaxResults\">\n <ng-template let-data>\n <mat-list *ngIf=\"searchTextInput?.isSearchBarActive()\" id=\"autocomplete-search-result-list\">\n <mat-list-item\n *ngFor=\"let item of data?.list?.entries; let idx = index\"\n id=\"result_option_{{idx}}\"\n [attr.data-automation-id]=\"'autocomplete_for_' + item.entry.name\"\n [tabindex]=\"0\"\n (blur)=\"onBlur($event)\"\n (keyup.arrowdown)=\"onRowArrowDown($event)\"\n (keyup.arrowup)=\"onRowArrowUp($event)\"\n class=\"adf-search-autocomplete-item\"\n (click)=\"elementClicked(item)\"\n (keyup.enter)=\"elementClicked(item)\"\n (touchend)=\"elementClicked(item)\">\n <!-- This is a comment -->\n <mat-icon matListItemLine>\n <img [alt]=\"getMimeType(item)\" [src]=\"getMimeTypeIcon(item)\"/>\n </mat-icon>\n <h4 matListItemTitle id=\"result_name_{{idx}}\"\n *ngIf=\"highlight; else elseBlock\"\n class=\"adf-search-fixed-text\"\n [innerHtml]=\"item.entry.name | highlight: searchTerm\">\n {{ item?.entry.name }}\n </h4>\n <ng-template #elseBlock>\n <h4 class=\"adf-search-fixed-text\" matListItemTitle id=\"result_name_{{idx}}\"\n [innerHtml]=\"item.entry.name\"></h4>\n </ng-template>\n <p matListItemLine class=\"adf-search-fixed-text\"> {{item?.entry.createdByUser.displayName}} </p>\n </mat-list-item>\n <mat-list-item id=\"search_no_result\"\n data-automation-id=\"search_no_result_found\"\n *ngIf=\"data?.list?.entries.length === 0\">\n <ng-content\n selector=\"adf-empty-search-result\"\n *ngIf=\"isNoSearchTemplatePresent() else defaultNoResult\" />\n <ng-template #defaultNoResult>\n <p matListItemLine class=\"adf-search-fixed-text\">{{ 'SEARCH.RESULTS.NONE' | translate:{searchTerm:\n searchTerm} }}</p>\n </ng-template>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </adf-search>\n</div>\n", styles: [".adf-search-result-autocomplete{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;transform-origin:top left;transform:translate(-40px);position:absolute;max-height:400px;margin-left:45px;margin-top:-22px;font-size:var(--theme-subheading-1-font-size);z-index:5;color:var(--adf-theme-foreground-text-color);background-color:var(--adf-theme-background-card-color);border-radius:2px}.adf-search-result-autocomplete:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}@media (max-width: 959.9px){.adf-search-result-autocomplete{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}.adf-search-autocomplete-item:hover{background-color:var(--adf-theme-background-hover-color);opacity:1}\n"] }]
148
+ args: [{ selector: 'adf-search-control', standalone: true, imports: [CommonModule, SearchTextInputComponent, SearchComponent, MatListModule, MatIconModule, HighlightPipe, TranslatePipe], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-control' }, template: "<div *ngIf=\"isLoggedIn()\">\n <adf-search-text-input #searchTextInput\n [searchTerm]= \"searchTerm\"\n [expandable]=\"expandable\"\n [autocomplete]=\"autocomplete\"\n [liveSearchEnabled]=\"liveSearchEnabled\"\n [focusListener]=\"focusSubject.asObservable()\"\n [searchAutocomplete]=\"auto\"\n (searchChange)=\"inputChange($event)\"\n (reset)=\"onReset($event)\"\n (selectResult)=\"onSelectFirstResult()\"\n (submit)=\"submit.emit($event)\" />\n\n <adf-search #search\n #auto=\"searchAutocomplete\"\n class=\"adf-search-result-autocomplete\"\n [maxResults]=\"liveSearchMaxResults\">\n <ng-template let-data>\n <mat-list *ngIf=\"searchTextInput?.isSearchBarActive()\" id=\"autocomplete-search-result-list\">\n <mat-list-item\n *ngFor=\"let item of data?.list?.entries; let idx = index\"\n id=\"result_option_{{idx}}\"\n [attr.data-automation-id]=\"'autocomplete_for_' + item.entry.name\"\n [tabindex]=\"0\"\n (blur)=\"onBlur($event)\"\n (keyup.arrowdown)=\"onRowArrowDown($event)\"\n (keyup.arrowup)=\"onRowArrowUp($event)\"\n class=\"adf-search-autocomplete-item\"\n (click)=\"elementClicked(item)\"\n (keyup.enter)=\"elementClicked(item)\"\n (touchend)=\"elementClicked(item)\">\n <!-- This is a comment -->\n <mat-icon matListItemLine>\n <img [alt]=\"getMimeType(item)\" [src]=\"getMimeTypeIcon(item)\"/>\n </mat-icon>\n <h4 matListItemTitle id=\"result_name_{{idx}}\"\n *ngIf=\"highlight; else elseBlock\"\n class=\"adf-search-fixed-text\"\n [innerHtml]=\"item.entry.name | highlight: searchTerm\">\n {{ item?.entry.name }}\n </h4>\n <ng-template #elseBlock>\n <h4 class=\"adf-search-fixed-text\" matListItemTitle id=\"result_name_{{idx}}\"\n [innerHtml]=\"item.entry.name\"></h4>\n </ng-template>\n <p matListItemLine class=\"adf-search-fixed-text\"> {{item?.entry.createdByUser.displayName}} </p>\n </mat-list-item>\n <mat-list-item id=\"search_no_result\"\n data-automation-id=\"search_no_result_found\"\n *ngIf=\"data?.list?.entries.length === 0\">\n <ng-content\n selector=\"adf-empty-search-result\"\n *ngIf=\"isNoSearchTemplatePresent() else defaultNoResult\" />\n <ng-template #defaultNoResult>\n <p matListItemLine class=\"adf-search-fixed-text\">{{ 'SEARCH.RESULTS.NONE' | translate:{searchTerm:\n searchTerm} }}</p>\n </ng-template>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </adf-search>\n</div>\n", styles: [".adf-search-result-autocomplete{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;transform-origin:top left;transform:translate(-40px);position:absolute;max-height:400px;margin-left:45px;margin-top:-22px;font-size:var(--theme-subheading-1-font-size);z-index:5;color:var(--adf-theme-foreground-text-color);background-color:var(--adf-theme-background-card-color);border-radius:2px}.adf-search-result-autocomplete:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}@media (max-width: 959.9px){.adf-search-result-autocomplete{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}.adf-search-autocomplete-item:hover{background-color:var(--adf-theme-background-hover-color);opacity:1}\n"] }]
150
149
  }], ctorParameters: () => [{ type: i1.AuthenticationService }, { type: i1.ThumbnailService }], propDecorators: { highlight: [{
151
150
  type: Input
152
151
  }], inputType: [{
@@ -178,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
178
177
  type: ContentChild,
179
178
  args: [EmptySearchResultComponent]
180
179
  }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0SCxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQVd0RCxNQUFNLE9BQU8sc0JBQXNCO0lBZ0UvQixZQUFtQixXQUFrQyxFQUFVLGdCQUFrQztRQUE5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QUNuQyxDQUFDO0lBRU8seUJBQXlCLENBQUMsSUFBYTtRQUMzQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUN2QyxDQUFDOytHQXpKUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixzZEF5RGpCLDBCQUEwQiwwUkFIMUIsV0FBVyxnREN0RzdCLHM1R0E4REEsdXpCRHBCYyxZQUFZLGdRQUFFLHdCQUF3QixpWkFBRSxlQUFlLHlNQUFFLGFBQWEseWJBQUUsYUFBYSwrS0FBRSxhQUFhLGlEQUFFLGVBQWU7OzRGQU10SCxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0ksb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLGlCQUdqSCxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO3lIQUtyQyxTQUFTO3NCQURSLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBUU4sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFRTixNQUFNO3NCQURMLE1BQU07Z0JBVVAsWUFBWTtzQkFEWCxNQUFNO2dCQUtQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUk1QixrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsUUFBUTtnQkFJWCxpQkFBaUI7c0JBRHhCLFlBQVk7dUJBQUMsV0FBVztnQkFJekIsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlLCBIaWdobGlnaHRQaXBlLCBTZWFyY2hUZXh0SW5wdXRDb21wb25lbnQsIFRodW1ibmFpbFNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlRW50cnkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRMaXN0SXRlbSwgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgRW1wdHlTZWFyY2hSZXN1bHRDb21wb25lbnQgfSBmcm9tICcuL2VtcHR5LXNlYXJjaC1yZXN1bHQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWNvbnRyb2wnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2VhcmNoVGV4dElucHV0Q29tcG9uZW50LCBTZWFyY2hDb21wb25lbnQsIE1hdExpc3RNb2R1bGUsIE1hdEljb25Nb2R1bGUsIEhpZ2hsaWdodFBpcGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zZWFyY2gtY29udHJvbCcgfVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hDb250cm9sQ29tcG9uZW50IHtcbiAgICAvKiogVG9nZ2xlcyBoaWdobGlnaHRpbmcgb2YgdGhlIHNlYXJjaCB0ZXJtIGluIHRoZSByZXN1bHRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlnaGxpZ2h0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVHlwZSBvZiB0aGUgaW5wdXQgZmllbGQgdG8gcmVuZGVyLCBlLmcuIFwic2VhcmNoXCIgb3IgXCJ0ZXh0XCIgKGRlZmF1bHQpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5wdXRUeXBlOiBzdHJpbmcgPSAndGV4dCc7XG5cbiAgICAvKiogVG9nZ2xlcyBcImZpbmQtYXMteW91LXR5cGVcIiBzdWdnZXN0aW9ucyBmb3IgcG9zc2libGUgbWF0Y2hlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGxpdmVTZWFyY2hFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIGF1dG8tY29tcGxldGlvbiBvZiB0aGUgc2VhcmNoIGlucHV0IGZpZWxkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIHdoZXRoZXIgdG8gdXNlIGFuIGV4cGFuZGluZyBzZWFyY2ggY29udHJvbC4gSWYgZmFsc2VcbiAgICAgKiB0aGVuIGEgcmVndWxhciBpbnB1dCBpcyB1c2VkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXhwYW5kYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogTWF4aW11bSBudW1iZXIgb2YgcmVzdWx0cyB0byBzaG93IGluIHRoZSBsaXZlIHNlYXJjaC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGxpdmVTZWFyY2hNYXhSZXN1bHRzOiBudW1iZXIgPSA1O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBzZWFyY2ggaXMgc3VibWl0dGVkIGJ5IHByZXNzaW5nIHRoZSBFTlRFUiBrZXkuXG4gICAgICogVGhlIHNlYXJjaCB0ZXJtIGlzIHByb3ZpZGVkIGFzIHRoZSB2YWx1ZSBvZiB0aGUgZXZlbnQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgc3VibWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2VhcmNoIHRlcm0gaXMgY2hhbmdlZC4gVGhlIHNlYXJjaCB0ZXJtIGlzIHByb3ZpZGVkXG4gICAgICogaW4gdGhlICd2YWx1ZScgcHJvcGVydHkgb2YgdGhlIHJldHVybmVkIG9iamVjdC4gIElmIHRoZSB0ZXJtIGlzIGxlc3NcbiAgICAgKiB0aGFuIHRocmVlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIHRoZW4gaXQgaXMgdHJ1bmNhdGVkIHRvIGFuIGVtcHR5XG4gICAgICogc3RyaW5nLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNlYXJjaENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgZmlsZSBpdGVtIGZyb20gdGhlIGxpc3Qgb2YgXCJmaW5kLWFzLXlvdS10eXBlXCIgcmVzdWx0cyBpcyBzZWxlY3RlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBvcHRpb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaFRleHRJbnB1dCcpXG4gICAgc2VhcmNoVGV4dElucHV0OiBTZWFyY2hUZXh0SW5wdXRDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdzZWFyY2gnKVxuICAgIHNlYXJjaEF1dG9jb21wbGV0ZTogU2VhcmNoQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZHJlbihNYXRMaXN0SXRlbSlcbiAgICBwcml2YXRlIGxpc3RSZXN1bHRFbGVtZW50OiBRdWVyeUxpc3Q8TWF0TGlzdEl0ZW0+O1xuXG4gICAgQENvbnRlbnRDaGlsZChFbXB0eVNlYXJjaFJlc3VsdENvbXBvbmVudClcbiAgICBlbXB0eVNlYXJjaFRlbXBsYXRlOiBFbXB0eVNlYXJjaFJlc3VsdENvbXBvbmVudDtcblxuICAgIGZvY3VzU3ViamVjdCA9IG5ldyBTdWJqZWN0PEZvY3VzRXZlbnQ+KCk7XG4gICAgbm9TZWFyY2hSZXN1bHRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG4gICAgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgcHJpdmF0ZSB0aHVtYm5haWxTZXJ2aWNlOiBUaHVtYm5haWxTZXJ2aWNlKSB7fVxuXG4gICAgaXNOb1NlYXJjaFRlbXBsYXRlUHJlc2VudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5lbXB0eVNlYXJjaFRlbXBsYXRlO1xuICAgIH1cbiAgICBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5pc0VjbUxvZ2dlZEluKCk7XG4gICAgfVxuXG4gICAgaW5wdXRDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0TWltZVR5cGVJY29uKG5vZGU6IE5vZGVFbnRyeSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG1pbWVUeXBlID0gdGhpcy5nZXRNaW1lVHlwZShub2RlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh1bWJuYWlsU2VydmljZS5nZXRNaW1lVHlwZUljb24obWltZVR5cGUpO1xuICAgIH1cblxuICAgIGdldE1pbWVUeXBlKG5vZGU6IE5vZGVFbnRyeSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBtaW1lVHlwZTogc3RyaW5nO1xuXG4gICAgICAgIGlmIChub2RlLmVudHJ5LmNvbnRlbnQ/Lm1pbWVUeXBlKSB7XG4gICAgICAgICAgICBtaW1lVHlwZSA9IG5vZGUuZW50cnkuY29udGVudC5taW1lVHlwZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5lbnRyeS5pc0ZvbGRlcikge1xuICAgICAgICAgICAgbWltZVR5cGUgPSAnZm9sZGVyJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWltZVR5cGU7XG4gICAgfVxuXG4gICAgZWxlbWVudENsaWNrZWQoaXRlbTogYW55KSB7XG4gICAgICAgIGlmIChpdGVtLmVudHJ5KSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbkNsaWNrZWQubmV4dChpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNTdWJqZWN0Lm5leHQobmV3IEZvY3VzRXZlbnQoJ2JsdXInKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNTdWJqZWN0Lm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXh0RWxlbWVudDogYW55ID0gdGhpcy5nZXROZXh0RWxlbWVudFNpYmxpbmcoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpO1xuICAgICAgICBpZiAoIW5leHRFbGVtZW50ICYmICF0aGlzLmlzTGlzdEVsZW1lbnQoZXZlbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzU3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0Rmlyc3RSZXN1bHQoKSB7XG4gICAgICAgIGlmICh0aGlzLmxpc3RSZXN1bHRFbGVtZW50ICYmIHRoaXMubGlzdFJlc3VsdEVsZW1lbnQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RFbGVtZW50ID0gdGhpcy5saXN0UmVzdWx0RWxlbWVudC5maXJzdCBhcyBNYXRMaXN0SXRlbTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgICAgICAgICAgZmlyc3RFbGVtZW50Ll9ob3N0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Sb3dBcnJvd0Rvd24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5leHRFbGVtZW50OiBhbnkgPSB0aGlzLmdldE5leHRFbGVtZW50U2libGluZyhldmVudC50YXJnZXQgYXMgRWxlbWVudCk7XG4gICAgICAgIGlmIChuZXh0RWxlbWVudCkge1xuICAgICAgICAgICAgbmV4dEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUm93QXJyb3dVcChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNFbGVtZW50OiBhbnkgPSB0aGlzLmdldFByZXZpb3VzRWxlbWVudFNpYmxpbmcoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpO1xuICAgICAgICBpZiAocHJldmlvdXNFbGVtZW50KSB7XG4gICAgICAgICAgICBwcmV2aW91c0VsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNTdWJqZWN0Lm5leHQobmV3IEZvY3VzRXZlbnQoJ2ZvY3VzJykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25SZXNldChzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hBdXRvY29tcGxldGUucmVzZXRSZXN1bHRzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTGlzdEVsZW1lbnQoZXZlbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZXZlbnQucmVsYXRlZFRhcmdldD8uY2hpbGRyZW5bMF0gJiYgZXZlbnQucmVsYXRlZFRhcmdldC5jaGlsZHJlblswXS5jbGFzc05hbWUgPT09ICdtYXQtbGlzdC1pdGVtLWNvbnRlbnQnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmV4dEVsZW1lbnRTaWJsaW5nKG5vZGU6IEVsZW1lbnQpOiBFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIG5vZGUubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJldmlvdXNFbGVtZW50U2libGluZyhub2RlOiBFbGVtZW50KTogRWxlbWVudCB7XG4gICAgICAgIHJldHVybiBub2RlLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzTG9nZ2VkSW4oKVwiPlxuICAgIDxhZGYtc2VhcmNoLXRleHQtaW5wdXQgICNzZWFyY2hUZXh0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoVGVybV09IFwic2VhcmNoVGVybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4cGFuZGFibGVdPVwiZXhwYW5kYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaXZlU2VhcmNoRW5hYmxlZF09XCJsaXZlU2VhcmNoRW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZvY3VzTGlzdGVuZXJdPVwiZm9jdXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoQXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWFyY2hDaGFuZ2UpPVwiaW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc2V0KT1cIm9uUmVzZXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdFJlc3VsdCk9XCJvblNlbGVjdEZpcnN0UmVzdWx0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXQpPVwic3VibWl0LmVtaXQoJGV2ZW50KVwiIC8+XG5cbiAgICA8YWRmLXNlYXJjaCAjc2VhcmNoXG4gICAgICAgICAgICAgICAgI2F1dG89XCJzZWFyY2hBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNlYXJjaC1yZXN1bHQtYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICBbbWF4UmVzdWx0c109XCJsaXZlU2VhcmNoTWF4UmVzdWx0c1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWRhdGE+XG4gICAgICAgICAgICA8bWF0LWxpc3QgKm5nSWY9XCJzZWFyY2hUZXh0SW5wdXQ/LmlzU2VhcmNoQmFyQWN0aXZlKClcIiBpZD1cImF1dG9jb21wbGV0ZS1zZWFyY2gtcmVzdWx0LWxpc3RcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhPy5saXN0Py5lbnRyaWVzOyBsZXQgaWR4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInJlc3VsdF9vcHRpb25fe3tpZHh9fVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInYXV0b2NvbXBsZXRlX2Zvcl8nICsgaXRlbS5lbnRyeS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cC5hcnJvd2Rvd24pPVwib25Sb3dBcnJvd0Rvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cC5hcnJvd3VwKT1cIm9uUm93QXJyb3dVcCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VhcmNoLWF1dG9jb21wbGV0ZS1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVsZW1lbnRDbGlja2VkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImVsZW1lbnRDbGlja2VkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgKHRvdWNoZW5kKT1cImVsZW1lbnRDbGlja2VkKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gVGhpcyBpcyBhIGNvbW1lbnQgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUxpbmU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFthbHRdPVwiZ2V0TWltZVR5cGUoaXRlbSlcIiBbc3JjXT1cImdldE1pbWVUeXBlSWNvbihpdGVtKVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGg0IG1hdExpc3RJdGVtVGl0bGUgaWQ9XCJyZXN1bHRfbmFtZV97e2lkeH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGlnaGxpZ2h0OyBlbHNlIGVsc2VCbG9ja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1zZWFyY2gtZml4ZWQtdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIml0ZW0uZW50cnkubmFtZSB8IGhpZ2hsaWdodDogc2VhcmNoVGVybVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbT8uZW50cnkubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VCbG9jaz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cImFkZi1zZWFyY2gtZml4ZWQtdGV4dFwiIG1hdExpc3RJdGVtVGl0bGUgaWQ9XCJyZXN1bHRfbmFtZV97e2lkeH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIml0ZW0uZW50cnkubmFtZVwiPjwvaDQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxwIG1hdExpc3RJdGVtTGluZSBjbGFzcz1cImFkZi1zZWFyY2gtZml4ZWQtdGV4dFwiPiB7e2l0ZW0/LmVudHJ5LmNyZWF0ZWRCeVVzZXIuZGlzcGxheU5hbWV9fSA8L3A+XG4gICAgICAgICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgIDxtYXQtbGlzdC1pdGVtIGlkPVwic2VhcmNoX25vX3Jlc3VsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwic2VhcmNoX25vX3Jlc3VsdF9mb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhPy5saXN0Py5lbnRyaWVzLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3I9XCJhZGYtZW1wdHktc2VhcmNoLXJlc3VsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzTm9TZWFyY2hUZW1wbGF0ZVByZXNlbnQoKSBlbHNlIGRlZmF1bHROb1Jlc3VsdFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE5vUmVzdWx0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgbWF0TGlzdEl0ZW1MaW5lIGNsYXNzPVwiYWRmLXNlYXJjaC1maXhlZC10ZXh0XCI+e3sgJ1NFQVJDSC5SRVNVTFRTLk5PTkUnIHwgdHJhbnNsYXRlOntzZWFyY2hUZXJtOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaFRlcm19IH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgIDwvbWF0LWxpc3Q+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9hZGYtc2VhcmNoPlxuPC9kaXY+XG4iXX0=
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0SCxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBV3BELE1BQU0sT0FBTyxzQkFBc0I7SUFnRS9CLFlBQW1CLFdBQWtDLEVBQVUsZ0JBQWtDO1FBQTlFLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEvRGpHLDhEQUE4RDtRQUU5RCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLDRFQUE0RTtRQUU1RSxjQUFTLEdBQVcsTUFBTSxDQUFDO1FBRTNCLG1FQUFtRTtRQUVuRSxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFFbEMseURBQXlEO1FBRXpELGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCOzs7V0FHRztRQUVILGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFM0IsNERBQTREO1FBRTVELHlCQUFvQixHQUFXLENBQUMsQ0FBQztRQUVqQzs7O1dBR0c7UUFFSCxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0M7Ozs7O1dBS0c7UUFFSCxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhELHdGQUF3RjtRQUV4RixrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBY3RELGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUN6QywyQkFBc0IsR0FBcUIsSUFBSSxDQUFDO1FBQ2hELGVBQVUsR0FBVyxFQUFFLENBQUM7SUFFNEUsQ0FBQztJQUVyRyx5QkFBeUI7UUFDckIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3RDLENBQUM7SUFDRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQWU7UUFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFlO1FBQ3ZCLElBQUksUUFBZ0IsQ0FBQztRQUVyQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQy9CLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QixRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVM7UUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWlCO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBaUI7UUFDcEIsTUFBTSxXQUFXLEdBQVEsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFpQixDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQW9CLENBQUM7WUFDakUsZ0RBQWdEO1lBQ2hELFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBWTtRQUN2QixNQUFNLFdBQVcsR0FBUSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQWlCLENBQUMsQ0FBQztRQUM3RSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2QsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVk7UUFDckIsTUFBTSxlQUFlLEdBQVEsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxNQUFpQixDQUFDLENBQUM7UUFDckYsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNsQixlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWU7UUFDbkIsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFVO1FBQzVCLE9BQU8sS0FBSyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLHVCQUF1QixDQUFDO0lBQ3JILENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFhO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxJQUFhO1FBQzNDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3ZDLENBQUM7K0dBekpRLHNCQUFzQjttR0FBdEIsc0JBQXNCLHNkQXlEakIsMEJBQTBCLDBSQUgxQixXQUFXLGdEQ3RHN0IsczVHQThEQSx1ekJEcEJjLFlBQVksZ1FBQUUsd0JBQXdCLGlaQUFFLGVBQWUseU1BQUUsYUFBYSx5YkFBRSxhQUFhLCtLQUFFLGFBQWEsNkNBQUUsYUFBYTs7NEZBTXBILHNCQUFzQjtrQkFUbEMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHdCQUF3QixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsaUJBRy9HLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7eUhBS3JDLFNBQVM7c0JBRFIsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFRTixVQUFVO3NCQURULEtBQUs7Z0JBS04sb0JBQW9CO3NCQURuQixLQUFLO2dCQVFOLE1BQU07c0JBREwsTUFBTTtnQkFVUCxZQUFZO3NCQURYLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUlQLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBSTVCLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxRQUFRO2dCQUlYLGlCQUFpQjtzQkFEeEIsWUFBWTt1QkFBQyxXQUFXO2dCQUl6QixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UsIEhpZ2hsaWdodFBpcGUsIFNlYXJjaFRleHRJbnB1dENvbXBvbmVudCwgVGh1bWJuYWlsU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGVFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IE1hdExpc3RJdGVtLCBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBFbXB0eVNlYXJjaFJlc3VsdENvbXBvbmVudCB9IGZyb20gJy4vZW1wdHktc2VhcmNoLXJlc3VsdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWNvbnRyb2wnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2VhcmNoVGV4dElucHV0Q29tcG9uZW50LCBTZWFyY2hDb21wb25lbnQsIE1hdExpc3RNb2R1bGUsIE1hdEljb25Nb2R1bGUsIEhpZ2hsaWdodFBpcGUsIFRyYW5zbGF0ZVBpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtc2VhcmNoLWNvbnRyb2wnIH1cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29udHJvbENvbXBvbmVudCB7XG4gICAgLyoqIFRvZ2dsZXMgaGlnaGxpZ2h0aW5nIG9mIHRoZSBzZWFyY2ggdGVybSBpbiB0aGUgcmVzdWx0cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZ2hsaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIFR5cGUgb2YgdGhlIGlucHV0IGZpZWxkIHRvIHJlbmRlciwgZS5nLiBcInNlYXJjaFwiIG9yIFwidGV4dFwiIChkZWZhdWx0KS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlucHV0VHlwZTogc3RyaW5nID0gJ3RleHQnO1xuXG4gICAgLyoqIFRvZ2dsZXMgXCJmaW5kLWFzLXlvdS10eXBlXCIgc3VnZ2VzdGlvbnMgZm9yIHBvc3NpYmxlIG1hdGNoZXMuICovXG4gICAgQElucHV0KClcbiAgICBsaXZlU2VhcmNoRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBhdXRvLWNvbXBsZXRpb24gb2YgdGhlIHNlYXJjaCBpbnB1dCBmaWVsZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGF1dG9jb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlcyB3aGV0aGVyIHRvIHVzZSBhbiBleHBhbmRpbmcgc2VhcmNoIGNvbnRyb2wuIElmIGZhbHNlXG4gICAgICogdGhlbiBhIHJlZ3VsYXIgaW5wdXQgaXMgdXNlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGV4cGFuZGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gc2hvdyBpbiB0aGUgbGl2ZSBzZWFyY2guICovXG4gICAgQElucHV0KClcbiAgICBsaXZlU2VhcmNoTWF4UmVzdWx0czogbnVtYmVyID0gNTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2VhcmNoIGlzIHN1Ym1pdHRlZCBieSBwcmVzc2luZyB0aGUgRU5URVIga2V5LlxuICAgICAqIFRoZSBzZWFyY2ggdGVybSBpcyBwcm92aWRlZCBhcyB0aGUgdmFsdWUgb2YgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNlYXJjaCB0ZXJtIGlzIGNoYW5nZWQuIFRoZSBzZWFyY2ggdGVybSBpcyBwcm92aWRlZFxuICAgICAqIGluIHRoZSAndmFsdWUnIHByb3BlcnR5IG9mIHRoZSByZXR1cm5lZCBvYmplY3QuICBJZiB0aGUgdGVybSBpcyBsZXNzXG4gICAgICogdGhhbiB0aHJlZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCB0aGVuIGl0IGlzIHRydW5jYXRlZCB0byBhbiBlbXB0eVxuICAgICAqIHN0cmluZy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWFyY2hDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIGZpbGUgaXRlbSBmcm9tIHRoZSBsaXN0IG9mIFwiZmluZC1hcy15b3UtdHlwZVwiIHJlc3VsdHMgaXMgc2VsZWN0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgb3B0aW9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKCdzZWFyY2hUZXh0SW5wdXQnKVxuICAgIHNlYXJjaFRleHRJbnB1dDogU2VhcmNoVGV4dElucHV0Q29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoJylcbiAgICBzZWFyY2hBdXRvY29tcGxldGU6IFNlYXJjaENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGRyZW4oTWF0TGlzdEl0ZW0pXG4gICAgcHJpdmF0ZSBsaXN0UmVzdWx0RWxlbWVudDogUXVlcnlMaXN0PE1hdExpc3RJdGVtPjtcblxuICAgIEBDb250ZW50Q2hpbGQoRW1wdHlTZWFyY2hSZXN1bHRDb21wb25lbnQpXG4gICAgZW1wdHlTZWFyY2hUZW1wbGF0ZTogRW1wdHlTZWFyY2hSZXN1bHRDb21wb25lbnQ7XG5cbiAgICBmb2N1c1N1YmplY3QgPSBuZXcgU3ViamVjdDxGb2N1c0V2ZW50PigpO1xuICAgIG5vU2VhcmNoUmVzdWx0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsIHByaXZhdGUgdGh1bWJuYWlsU2VydmljZTogVGh1bWJuYWlsU2VydmljZSkge31cblxuICAgIGlzTm9TZWFyY2hUZW1wbGF0ZVByZXNlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZW1wdHlTZWFyY2hUZW1wbGF0ZTtcbiAgICB9XG4gICAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaXNFY21Mb2dnZWRJbigpO1xuICAgIH1cblxuICAgIGlucHV0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldE1pbWVUeXBlSWNvbihub2RlOiBOb2RlRW50cnkpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBtaW1lVHlwZSA9IHRoaXMuZ2V0TWltZVR5cGUobm9kZSk7XG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbFNlcnZpY2UuZ2V0TWltZVR5cGVJY29uKG1pbWVUeXBlKTtcbiAgICB9XG5cbiAgICBnZXRNaW1lVHlwZShub2RlOiBOb2RlRW50cnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgbWltZVR5cGU6IHN0cmluZztcblxuICAgICAgICBpZiAobm9kZS5lbnRyeS5jb250ZW50Py5taW1lVHlwZSkge1xuICAgICAgICAgICAgbWltZVR5cGUgPSBub2RlLmVudHJ5LmNvbnRlbnQubWltZVR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuZW50cnkuaXNGb2xkZXIpIHtcbiAgICAgICAgICAgIG1pbWVUeXBlID0gJ2ZvbGRlcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbWVUeXBlO1xuICAgIH1cblxuICAgIGVsZW1lbnRDbGlja2VkKGl0ZW06IGFueSkge1xuICAgICAgICBpZiAoaXRlbS5lbnRyeSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25DbGlja2VkLm5leHQoaXRlbSk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzU3ViamVjdC5uZXh0KG5ldyBGb2N1c0V2ZW50KCdibHVyJykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzU3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dEVsZW1lbnQ6IGFueSA9IHRoaXMuZ2V0TmV4dEVsZW1lbnRTaWJsaW5nKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KTtcbiAgICAgICAgaWYgKCFuZXh0RWxlbWVudCAmJiAhdGhpcy5pc0xpc3RFbGVtZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1N1YmplY3QubmV4dChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlbGVjdEZpcnN0UmVzdWx0KCkge1xuICAgICAgICBpZiAodGhpcy5saXN0UmVzdWx0RWxlbWVudCAmJiB0aGlzLmxpc3RSZXN1bHRFbGVtZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHRoaXMubGlzdFJlc3VsdEVsZW1lbnQuZmlyc3QgYXMgTWF0TGlzdEl0ZW07XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICAgICAgICAgIGZpcnN0RWxlbWVudC5faG9zdEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUm93QXJyb3dEb3duKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXh0RWxlbWVudDogYW55ID0gdGhpcy5nZXROZXh0RWxlbWVudFNpYmxpbmcoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpO1xuICAgICAgICBpZiAobmV4dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIG5leHRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJvd0Fycm93VXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzRWxlbWVudDogYW55ID0gdGhpcy5nZXRQcmV2aW91c0VsZW1lbnRTaWJsaW5nKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KTtcbiAgICAgICAgaWYgKHByZXZpb3VzRWxlbWVudCkge1xuICAgICAgICAgICAgcHJldmlvdXNFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzU3ViamVjdC5uZXh0KG5ldyBGb2N1c0V2ZW50KCdmb2N1cycpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVzZXQoc3RhdHVzOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChzdGF0dXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQXV0b2NvbXBsZXRlLnJlc2V0UmVzdWx0cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0xpc3RFbGVtZW50KGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LnJlbGF0ZWRUYXJnZXQ/LmNoaWxkcmVuWzBdICYmIGV2ZW50LnJlbGF0ZWRUYXJnZXQuY2hpbGRyZW5bMF0uY2xhc3NOYW1lID09PSAnbWF0LWxpc3QtaXRlbS1jb250ZW50JztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5leHRFbGVtZW50U2libGluZyhub2RlOiBFbGVtZW50KTogRWxlbWVudCB7XG4gICAgICAgIHJldHVybiBub2RlLm5leHRFbGVtZW50U2libGluZztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByZXZpb3VzRWxlbWVudFNpYmxpbmcobm9kZTogRWxlbWVudCk6IEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gbm9kZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc0xvZ2dlZEluKClcIj5cbiAgICA8YWRmLXNlYXJjaC10ZXh0LWlucHV0ICAjc2VhcmNoVGV4dElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaFRlcm1dPSBcInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleHBhbmRhYmxlXT1cImV4cGFuZGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGl2ZVNlYXJjaEVuYWJsZWRdPVwibGl2ZVNlYXJjaEVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb2N1c0xpc3RlbmVyXT1cImZvY3VzU3ViamVjdC5hc09ic2VydmFibGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VhcmNoQ2hhbmdlKT1cImlucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNldCk9XCJvblJlc2V0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RSZXN1bHQpPVwib25TZWxlY3RGaXJzdFJlc3VsdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3VibWl0KT1cInN1Ym1pdC5lbWl0KCRldmVudClcIiAvPlxuXG4gICAgPGFkZi1zZWFyY2ggI3NlYXJjaFxuICAgICAgICAgICAgICAgICNhdXRvPVwic2VhcmNoQXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1zZWFyY2gtcmVzdWx0LWF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAgICAgW21heFJlc3VsdHNdPVwibGl2ZVNlYXJjaE1heFJlc3VsdHNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1kYXRhPlxuICAgICAgICAgICAgPG1hdC1saXN0ICpuZ0lmPVwic2VhcmNoVGV4dElucHV0Py5pc1NlYXJjaEJhckFjdGl2ZSgpXCIgaWQ9XCJhdXRvY29tcGxldGUtc2VhcmNoLXJlc3VsdC1saXN0XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YT8ubGlzdD8uZW50cmllczsgbGV0IGlkeCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZXN1bHRfb3B0aW9uX3t7aWR4fX1cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2F1dG9jb21wbGV0ZV9mb3JfJyArIGl0ZW0uZW50cnkubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuYXJyb3dkb3duKT1cIm9uUm93QXJyb3dEb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuYXJyb3d1cCk9XCJvblJvd0Fycm93VXAoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNlYXJjaC1hdXRvY29tcGxldGUtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbGVtZW50Q2xpY2tlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJlbGVtZW50Q2xpY2tlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICh0b3VjaGVuZCk9XCJlbGVtZW50Q2xpY2tlZChpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRoaXMgaXMgYSBjb21tZW50IC0tPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1MaW5lPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbYWx0XT1cImdldE1pbWVUeXBlKGl0ZW0pXCIgW3NyY109XCJnZXRNaW1lVHlwZUljb24oaXRlbSlcIi8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxoNCBtYXRMaXN0SXRlbVRpdGxlIGlkPVwicmVzdWx0X25hbWVfe3tpZHh9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhpZ2hsaWdodDsgZWxzZSBlbHNlQmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VhcmNoLWZpeGVkLXRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJpdGVtLmVudHJ5Lm5hbWUgfCBoaWdobGlnaHQ6IHNlYXJjaFRlcm1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0/LmVudHJ5Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbHNlQmxvY2s+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJhZGYtc2VhcmNoLWZpeGVkLXRleHRcIiBtYXRMaXN0SXRlbVRpdGxlIGlkPVwicmVzdWx0X25hbWVfe3tpZHh9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJpdGVtLmVudHJ5Lm5hbWVcIj48L2g0PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8cCBtYXRMaXN0SXRlbUxpbmUgY2xhc3M9XCJhZGYtc2VhcmNoLWZpeGVkLXRleHRcIj4ge3tpdGVtPy5lbnRyeS5jcmVhdGVkQnlVc2VyLmRpc3BsYXlOYW1lfX0gPC9wPlxuICAgICAgICAgICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICA8bWF0LWxpc3QtaXRlbSBpZD1cInNlYXJjaF9ub19yZXN1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInNlYXJjaF9ub19yZXN1bHRfZm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YT8ubGlzdD8uZW50cmllcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yPVwiYWRmLWVtcHR5LXNlYXJjaC1yZXN1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc05vU2VhcmNoVGVtcGxhdGVQcmVzZW50KCkgZWxzZSBkZWZhdWx0Tm9SZXN1bHRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHROb1Jlc3VsdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIG1hdExpc3RJdGVtTGluZSBjbGFzcz1cImFkZi1zZWFyY2gtZml4ZWQtdGV4dFwiPnt7ICdTRUFSQ0guUkVTVUxUUy5OT05FJyB8IHRyYW5zbGF0ZTp7c2VhcmNoVGVybTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hUZXJtfSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgICA8L21hdC1saXN0PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYWRmLXNlYXJjaD5cbjwvZGl2PlxuIl19