@taiga-ui/legacy 4.10.0 → 4.12.0

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 (43) hide show
  1. package/components/input-date-time/native-date-time/native-date-time.directive.d.ts +1 -1
  2. package/components/input-time/input-time.component.d.ts +0 -5
  3. package/components/input-time/native-time/native-time.component.d.ts +1 -1
  4. package/components/tooltip/tooltip.module.d.ts +3 -3
  5. package/esm2022/components/input-date/native-date/native-date.component.mjs +3 -3
  6. package/esm2022/components/input-date-time/input-date-time.directive.mjs +2 -2
  7. package/esm2022/components/input-date-time/native-date-time/native-date-time.directive.mjs +3 -3
  8. package/esm2022/components/input-time/input-time.component.mjs +6 -49
  9. package/esm2022/components/input-time/native-time/native-time.component.mjs +3 -3
  10. package/esm2022/components/primitive-textfield/primitive-textfield.component.mjs +3 -3
  11. package/esm2022/components/select/select.component.mjs +3 -3
  12. package/esm2022/components/tag/tag.component.mjs +3 -3
  13. package/esm2022/components/textarea/textarea.component.mjs +2 -2
  14. package/esm2022/components/tooltip/tooltip.component.mjs +8 -6
  15. package/esm2022/components/tooltip/tooltip.module.mjs +5 -5
  16. package/esm2022/directives/wrapper/wrapper.directive.mjs +3 -2
  17. package/esm2022/tokens/is-apple.mjs +3 -3
  18. package/esm2022/utils/is-apple.mjs +3 -6
  19. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +32 -32
  20. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-legacy-components-input-date.mjs +2 -2
  22. package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-legacy-components-input-time.mjs +40 -83
  24. package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +2 -2
  26. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-legacy-components-select.mjs +2 -2
  28. package/fesm2022/taiga-ui-legacy-components-select.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-legacy-components-tag.mjs +2 -2
  30. package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-legacy-components-textarea.mjs +2 -2
  32. package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +10 -8
  34. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs +2 -1
  36. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-legacy-tokens.mjs +2 -2
  38. package/fesm2022/taiga-ui-legacy-tokens.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-legacy-utils.mjs +2 -5
  40. package/fesm2022/taiga-ui-legacy-utils.mjs.map +1 -1
  41. package/package.json +8 -8
  42. package/utils/icons-path-factory.d.ts +1 -1
  43. package/utils/is-apple.d.ts +2 -1
@@ -196,7 +196,7 @@ class TuiPrimitiveTextfieldComponent extends AbstractTuiInteractive {
196
196
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: { editable: "editable", iconCleaner: "iconCleaner", readOnly: "readOnly", invalid: "invalid", disabled: "disabled", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "focusin": "onFocused(true)", "focusout": "onFocused(false)", "transitionstart.capture": "transitionStartHandler($event)" }, properties: { "attr.data-size": "size", "class._readonly": "readOnly", "class._hidden": "inputHidden", "class._invalid": "computedInvalid", "class._autofilled": "autofilled", "style.--border-start.rem": "borderStart", "style.--border-end.rem": "borderEnd", "class._label-outside": "options.appearance() === \"table\" || controller.labelOutside" } }, providers: [
197
197
  tuiAsFocusableItemAccessor(TuiPrimitiveTextfieldComponent),
198
198
  TEXTFIELD_CONTROLLER_PROVIDER,
199
- ], queries: [{ propertyName: "content", predicate: PolymorpheusOutlet, descendants: true }], viewQueries: [{ propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"content?.changes | async\" />\n<ng-container *ngIf=\"hintOptions?.change$ | async\" />\n<div\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiWrapper\n [active]=\"pseudoActive\"\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [style.--text-indent.px]=\"decor.pre$ | async\"\n (click.prevent.silent)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <input\n #focusableElement\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"t-input\"\n [attr.aria-invalid]=\"computedInvalid\"\n [attr.name]=\"name\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly || !editable\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"t-input t-input_template\"\n >\n <ng-content select=\"tuiContent\" />\n </div>\n <div class=\"t-content\">\n <div\n *ngIf=\"iconLeftContent\"\n class=\"t-icon t-icon_left t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconLeftContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n <div class=\"t-wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n [for]=\"computedId\"\n >\n <ng-content />\n </label>\n <div class=\"t-wrapper-value-decoration\">\n <tui-value-decoration\n #decor\n aria-hidden=\"true\"\n automation-id=\"tui-primitive-textfield__value-decoration\"\n class=\"t-value-decoration\"\n [class.t-has-value]=\"value\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n />\n </div>\n </div>\n <div class=\"t-icons\">\n <div\n *ngIf=\"hasCustomContent\"\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"t-custom-content\"\n >\n <tui-icon\n *polymorpheusOutlet=\"controller.customContent as src\"\n class=\"t-custom-icon\"\n [icon]=\"src\"\n />\n </div>\n <span\n *ngIf=\"hasCleaner\"\n appearance=\"icon\"\n automation-id=\"tui-primitive-textfield__cleaner\"\n tuiWrapper\n class=\"t-cleaner\"\n (click.stop)=\"clear()\"\n >\n <tui-icon\n *polymorpheusOutlet=\"\n iconCleaner || controller.options.iconCleaner as src;\n context: {$implicit: size}\n \"\n [icon]=\"src.toString()\"\n [style.border]=\"'0.25rem solid transparent'\"\n />\n </span>\n <tui-tooltip\n *ngIf=\"showHint\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"computedId\"\n />\n <div\n *ngIf=\"iconContent\"\n class=\"t-icon t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;text-align:start;border-radius:var(--tui-radius-m);block-size:var(--tui-height);min-block-size:var(--tui-height);max-block-size:var(--tui-height)}:host[data-size=s]{--tui-height: var(--tui-height-s);font:var(--tui-font-text-s)}:host[data-size=m]{--tui-height: var(--tui-height-m);font:var(--tui-font-text-s)}:host[data-size=l]{--tui-height: var(--tui-height-l);font:var(--tui-font-text-m);line-height:1.25rem}:host :host-context(*:disabled){pointer-events:none}.t-input{padding:0;margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-style:solid;border-color:transparent;border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0);text-indent:var(--text-indent);color:var(--tui-text-primary);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input[inputMode=none]{caret-color:transparent}.t-input:-webkit-autofill,.t-input:-webkit-autofill:first-line{font-size:inherit;line-height:inherit}.t-input::-webkit-caps-lock-indicator,.t-input::-webkit-contacts-auto-fill-button,.t-input::-webkit-credit-card-auto-fill-button,.t-input::-webkit-credentials-auto-fill-button,.t-input::-webkit-strong-password-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input::placeholder{color:var(--tui-text-tertiary);opacity:0}:host._focused:not(._readonly) .t-input::placeholder,:host-context(tui-primitive-textfield._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-textarea._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-text-area._focused:not(._readonly)) .t-input::placeholder{opacity:1}:host[data-size=s] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"s\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=m] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"m\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"m\"]):not(tui-text-area){padding:0 var(--tui-padding-m)}:host[data-size=l] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"l\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-input,.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-textarea._disabled),.t-input :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1.25rem}:host[data-size=m]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1rem}:host[data-size=l]:not(._label-outside) .t-input{padding-top:1.25rem}:host[data-size=l]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-input,.t-input :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em}.t-content{display:flex;block-size:100%;inline-size:100%;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size=s] .t-content{padding:0 var(--tui-padding-s)}:host[data-size=m] .t-content{padding:0 var(--tui-padding-m)}:host[data-size=l] .t-content{padding:0 var(--tui-padding-l)}.t-wrapper{flex:1;min-inline-size:0;padding-inline-end:.25rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;inline-size:100%;-webkit-user-select:none;user-select:none;font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none;will-change:transform;transform:translateY(0)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);line-height:1.25rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-text-negative)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-tertiary)}:host[data-size=l] .t-placeholder{font:var(--tui-font-text-m);line-height:1.25rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-primary)}.t-cleaner{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none;pointer-events:auto;border-width:.25rem}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-icon{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none}:host[data-size=s] .t-icon_left{margin:0 .125rem 0 -.375rem}:host[data-size=m] .t-icon_left{margin-inline-start:-.125rem;margin-inline-end:.375rem}:host[data-size=l] .t-icon_left{margin-inline-end:.75rem}.t-icons{display:flex;align-items:center}:host[data-size=m] .t-icons{margin-inline-end:-.125rem}:host[data-size=s] .t-icons{margin-inline-end:-.375rem}:host:not([data-size=s]) .t-icons>:not(:first-child){margin-inline-start:.25rem}:host ::ng-deep input{transition:box-shadow .01s}:host._autofilled[data-size=s] .t-placeholder,:host._autofilled._label-outside .t-placeholder,:host._autofilled .t-value-decoration:not(.t-has-value){visibility:hidden}:host[data-size=s] tui-icon{border-width:.25rem}.t-custom-content{position:relative;display:flex;align-items:center;justify-content:center;min-inline-size:2rem;block-size:2rem;pointer-events:none}.t-custom-icon{inline-size:2rem;block-size:100%}.t-input:not(:first-child){display:none}:host[data-size] .t-input_template{display:flex;inline-size:calc(100% - 1rem);max-inline-size:calc(100% - 1rem);align-items:center;pointer-events:none;padding-inline-end:0}.t-text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-wrapper-value-decoration{position:relative;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i4.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { kind: "component", type: i5.TuiTooltipComponent, selector: "tui-tooltip", inputs: ["content", "direction", "appearance", "showDelay", "hideDelay", "describeId", "context"] }, { kind: "component", type: i6.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "directive", type: i7.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "component", type: i8.TuiValueDecorationComponent, selector: "tui-value-decoration" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
199
+ ], queries: [{ propertyName: "content", predicate: PolymorpheusOutlet, descendants: true }], viewQueries: [{ propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"content?.changes | async\" />\n<ng-container *ngIf=\"hintOptions?.change$ | async\" />\n<div\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiWrapper\n [active]=\"pseudoActive\"\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [style.--text-indent.px]=\"decor.pre$ | async\"\n (click.prevent.silent)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <input\n #focusableElement\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"t-input\"\n [attr.aria-invalid]=\"computedInvalid\"\n [attr.name]=\"name\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly || !editable\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <div\n automation-id=\"tui-primitive-textfield__value\"\n class=\"t-input t-input_template\"\n [class.t-input_template_hidden]=\"!inputHidden\"\n >\n <ng-content select=\"tuiContent\" />\n </div>\n <div class=\"t-content\">\n <div\n *ngIf=\"iconLeftContent\"\n class=\"t-icon t-icon_left t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconLeftContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n <div class=\"t-wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n [for]=\"computedId\"\n >\n <ng-content />\n </label>\n <div class=\"t-wrapper-value-decoration\">\n <tui-value-decoration\n #decor\n aria-hidden=\"true\"\n automation-id=\"tui-primitive-textfield__value-decoration\"\n class=\"t-value-decoration\"\n [class.t-has-value]=\"value\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n />\n </div>\n </div>\n <div class=\"t-icons\">\n <div\n *ngIf=\"hasCustomContent\"\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"t-custom-content\"\n >\n <tui-icon\n *polymorpheusOutlet=\"controller.customContent as src\"\n class=\"t-custom-icon\"\n [icon]=\"src\"\n />\n </div>\n <span\n *ngIf=\"hasCleaner\"\n appearance=\"icon\"\n automation-id=\"tui-primitive-textfield__cleaner\"\n tuiWrapper\n class=\"t-cleaner\"\n (click.stop)=\"clear()\"\n >\n <tui-icon\n *polymorpheusOutlet=\"\n iconCleaner || controller.options.iconCleaner as src;\n context: {$implicit: size}\n \"\n [icon]=\"src.toString()\"\n [style.border]=\"'0.25rem solid transparent'\"\n />\n </span>\n <tui-tooltip\n *ngIf=\"showHint\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"computedId\"\n />\n <div\n *ngIf=\"iconContent\"\n class=\"t-icon t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;text-align:start;border-radius:var(--tui-radius-m);block-size:var(--tui-height);min-block-size:var(--tui-height);max-block-size:var(--tui-height)}:host[data-size=s]{--tui-height: var(--tui-height-s);font:var(--tui-font-text-s)}:host[data-size=m]{--tui-height: var(--tui-height-m);font:var(--tui-font-text-s)}:host[data-size=l]{--tui-height: var(--tui-height-l);font:var(--tui-font-text-m);line-height:1.25rem}:host :host-context(*:disabled){pointer-events:none}.t-input{padding:0;margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-style:solid;border-color:transparent;border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0);text-indent:var(--text-indent);color:var(--tui-text-primary);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input[inputMode=none]{caret-color:transparent}.t-input:-webkit-autofill,.t-input:-webkit-autofill:first-line{font-size:inherit;line-height:inherit}.t-input::-webkit-caps-lock-indicator,.t-input::-webkit-contacts-auto-fill-button,.t-input::-webkit-credit-card-auto-fill-button,.t-input::-webkit-credentials-auto-fill-button,.t-input::-webkit-strong-password-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input::placeholder{color:var(--tui-text-tertiary);opacity:0}:host._focused:not(._readonly) .t-input::placeholder,:host-context(tui-primitive-textfield._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-textarea._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-text-area._focused:not(._readonly)) .t-input::placeholder{opacity:1}:host[data-size=s] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"s\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=m] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"m\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"m\"]):not(tui-text-area){padding:0 var(--tui-padding-m)}:host[data-size=l] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"l\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-input,.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-textarea._disabled),.t-input :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1.25rem}:host[data-size=m]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1rem}:host[data-size=l]:not(._label-outside) .t-input{padding-top:1.25rem}:host[data-size=l]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-input,.t-input :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em}.t-content{display:flex;block-size:100%;inline-size:100%;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size=s] .t-content{padding:0 var(--tui-padding-s)}:host[data-size=m] .t-content{padding:0 var(--tui-padding-m)}:host[data-size=l] .t-content{padding:0 var(--tui-padding-l)}.t-wrapper{flex:1;min-inline-size:0;padding-inline-end:.25rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;inline-size:100%;-webkit-user-select:none;user-select:none;font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none;will-change:transform;transform:translateY(0)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);line-height:1.25rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-text-negative)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-tertiary)}:host[data-size=l] .t-placeholder{font:var(--tui-font-text-m);line-height:1.25rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-primary)}.t-cleaner{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none;pointer-events:auto;border-width:.25rem}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-icon{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none}:host[data-size=s] .t-icon_left{margin:0 .125rem 0 -.375rem}:host[data-size=m] .t-icon_left{margin-inline-start:-.125rem;margin-inline-end:.375rem}:host[data-size=l] .t-icon_left{margin-inline-end:.75rem}.t-icons{display:flex;align-items:center}:host[data-size=m] .t-icons{margin-inline-end:-.125rem}:host[data-size=s] .t-icons{margin-inline-end:-.375rem}:host:not([data-size=s]) .t-icons>:not(:first-child){margin-inline-start:.25rem}:host ::ng-deep input{transition:box-shadow .01s}:host._autofilled[data-size=s] .t-placeholder,:host._autofilled._label-outside .t-placeholder,:host._autofilled .t-value-decoration:not(.t-has-value){visibility:hidden}:host[data-size=s] tui-icon{border-width:.25rem}.t-custom-content{position:relative;display:flex;align-items:center;justify-content:center;min-inline-size:2rem;block-size:2rem;pointer-events:none}.t-custom-icon{inline-size:2rem;block-size:100%}.t-input:not(:first-child){display:none}:host[data-size] .t-input_template{display:flex;inline-size:calc(100% - 1rem);max-inline-size:calc(100% - 1rem);align-items:center;pointer-events:none;padding-inline-end:0}.t-input_template_hidden{display:none}.t-text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-wrapper-value-decoration{position:relative;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i4.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { kind: "component", type: i5.TuiTooltipComponent, selector: "tui-tooltip", inputs: ["content", "direction", "appearance", "showDelay", "hideDelay", "describeId", "context"] }, { kind: "component", type: i6.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "directive", type: i7.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "component", type: i8.TuiValueDecorationComponent, selector: "tui-value-decoration" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
200
200
  }
201
201
  __decorate([
202
202
  tuiPure
@@ -219,7 +219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
219
219
  '(focusin)': 'onFocused(true)',
220
220
  '(focusout)': 'onFocused(false)',
221
221
  '(transitionstart.capture)': 'transitionStartHandler($event)',
222
- }, template: "<ng-container *ngIf=\"content?.changes | async\" />\n<ng-container *ngIf=\"hintOptions?.change$ | async\" />\n<div\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiWrapper\n [active]=\"pseudoActive\"\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [style.--text-indent.px]=\"decor.pre$ | async\"\n (click.prevent.silent)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <input\n #focusableElement\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"t-input\"\n [attr.aria-invalid]=\"computedInvalid\"\n [attr.name]=\"name\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly || !editable\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"t-input t-input_template\"\n >\n <ng-content select=\"tuiContent\" />\n </div>\n <div class=\"t-content\">\n <div\n *ngIf=\"iconLeftContent\"\n class=\"t-icon t-icon_left t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconLeftContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n <div class=\"t-wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n [for]=\"computedId\"\n >\n <ng-content />\n </label>\n <div class=\"t-wrapper-value-decoration\">\n <tui-value-decoration\n #decor\n aria-hidden=\"true\"\n automation-id=\"tui-primitive-textfield__value-decoration\"\n class=\"t-value-decoration\"\n [class.t-has-value]=\"value\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n />\n </div>\n </div>\n <div class=\"t-icons\">\n <div\n *ngIf=\"hasCustomContent\"\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"t-custom-content\"\n >\n <tui-icon\n *polymorpheusOutlet=\"controller.customContent as src\"\n class=\"t-custom-icon\"\n [icon]=\"src\"\n />\n </div>\n <span\n *ngIf=\"hasCleaner\"\n appearance=\"icon\"\n automation-id=\"tui-primitive-textfield__cleaner\"\n tuiWrapper\n class=\"t-cleaner\"\n (click.stop)=\"clear()\"\n >\n <tui-icon\n *polymorpheusOutlet=\"\n iconCleaner || controller.options.iconCleaner as src;\n context: {$implicit: size}\n \"\n [icon]=\"src.toString()\"\n [style.border]=\"'0.25rem solid transparent'\"\n />\n </span>\n <tui-tooltip\n *ngIf=\"showHint\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"computedId\"\n />\n <div\n *ngIf=\"iconContent\"\n class=\"t-icon t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;text-align:start;border-radius:var(--tui-radius-m);block-size:var(--tui-height);min-block-size:var(--tui-height);max-block-size:var(--tui-height)}:host[data-size=s]{--tui-height: var(--tui-height-s);font:var(--tui-font-text-s)}:host[data-size=m]{--tui-height: var(--tui-height-m);font:var(--tui-font-text-s)}:host[data-size=l]{--tui-height: var(--tui-height-l);font:var(--tui-font-text-m);line-height:1.25rem}:host :host-context(*:disabled){pointer-events:none}.t-input{padding:0;margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-style:solid;border-color:transparent;border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0);text-indent:var(--text-indent);color:var(--tui-text-primary);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input[inputMode=none]{caret-color:transparent}.t-input:-webkit-autofill,.t-input:-webkit-autofill:first-line{font-size:inherit;line-height:inherit}.t-input::-webkit-caps-lock-indicator,.t-input::-webkit-contacts-auto-fill-button,.t-input::-webkit-credit-card-auto-fill-button,.t-input::-webkit-credentials-auto-fill-button,.t-input::-webkit-strong-password-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input::placeholder{color:var(--tui-text-tertiary);opacity:0}:host._focused:not(._readonly) .t-input::placeholder,:host-context(tui-primitive-textfield._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-textarea._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-text-area._focused:not(._readonly)) .t-input::placeholder{opacity:1}:host[data-size=s] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"s\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=m] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"m\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"m\"]):not(tui-text-area){padding:0 var(--tui-padding-m)}:host[data-size=l] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"l\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-input,.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-textarea._disabled),.t-input :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1.25rem}:host[data-size=m]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1rem}:host[data-size=l]:not(._label-outside) .t-input{padding-top:1.25rem}:host[data-size=l]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-input,.t-input :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em}.t-content{display:flex;block-size:100%;inline-size:100%;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size=s] .t-content{padding:0 var(--tui-padding-s)}:host[data-size=m] .t-content{padding:0 var(--tui-padding-m)}:host[data-size=l] .t-content{padding:0 var(--tui-padding-l)}.t-wrapper{flex:1;min-inline-size:0;padding-inline-end:.25rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;inline-size:100%;-webkit-user-select:none;user-select:none;font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none;will-change:transform;transform:translateY(0)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);line-height:1.25rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-text-negative)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-tertiary)}:host[data-size=l] .t-placeholder{font:var(--tui-font-text-m);line-height:1.25rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-primary)}.t-cleaner{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none;pointer-events:auto;border-width:.25rem}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-icon{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none}:host[data-size=s] .t-icon_left{margin:0 .125rem 0 -.375rem}:host[data-size=m] .t-icon_left{margin-inline-start:-.125rem;margin-inline-end:.375rem}:host[data-size=l] .t-icon_left{margin-inline-end:.75rem}.t-icons{display:flex;align-items:center}:host[data-size=m] .t-icons{margin-inline-end:-.125rem}:host[data-size=s] .t-icons{margin-inline-end:-.375rem}:host:not([data-size=s]) .t-icons>:not(:first-child){margin-inline-start:.25rem}:host ::ng-deep input{transition:box-shadow .01s}:host._autofilled[data-size=s] .t-placeholder,:host._autofilled._label-outside .t-placeholder,:host._autofilled .t-value-decoration:not(.t-has-value){visibility:hidden}:host[data-size=s] tui-icon{border-width:.25rem}.t-custom-content{position:relative;display:flex;align-items:center;justify-content:center;min-inline-size:2rem;block-size:2rem;pointer-events:none}.t-custom-icon{inline-size:2rem;block-size:100%}.t-input:not(:first-child){display:none}:host[data-size] .t-input_template{display:flex;inline-size:calc(100% - 1rem);max-inline-size:calc(100% - 1rem);align-items:center;pointer-events:none;padding-inline-end:0}.t-text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-wrapper-value-decoration{position:relative;pointer-events:none}\n"] }]
222
+ }, template: "<ng-container *ngIf=\"content?.changes | async\" />\n<ng-container *ngIf=\"hintOptions?.change$ | async\" />\n<div\n automation-id=\"tui-primitive-textfield__wrapper\"\n tuiWrapper\n [active]=\"pseudoActive\"\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [style.--text-indent.px]=\"decor.pre$ | async\"\n (click.prevent.silent)=\"detectRetargetFromLabel($event)\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <input\n #focusableElement\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"t-input\"\n [attr.aria-invalid]=\"computedInvalid\"\n [attr.name]=\"name\"\n [disabled]=\"computedDisabled\"\n [id]=\"id\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly || !editable\"\n [tabIndex]=\"computedFocusable ? 0 : -1\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <div\n automation-id=\"tui-primitive-textfield__value\"\n class=\"t-input t-input_template\"\n [class.t-input_template_hidden]=\"!inputHidden\"\n >\n <ng-content select=\"tuiContent\" />\n </div>\n <div class=\"t-content\">\n <div\n *ngIf=\"iconLeftContent\"\n class=\"t-icon t-icon_left t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconLeftContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n <div class=\"t-wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n [for]=\"computedId\"\n >\n <ng-content />\n </label>\n <div class=\"t-wrapper-value-decoration\">\n <tui-value-decoration\n #decor\n aria-hidden=\"true\"\n automation-id=\"tui-primitive-textfield__value-decoration\"\n class=\"t-value-decoration\"\n [class.t-has-value]=\"value\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n />\n </div>\n </div>\n <div class=\"t-icons\">\n <div\n *ngIf=\"hasCustomContent\"\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"t-custom-content\"\n >\n <tui-icon\n *polymorpheusOutlet=\"controller.customContent as src\"\n class=\"t-custom-icon\"\n [icon]=\"src\"\n />\n </div>\n <span\n *ngIf=\"hasCleaner\"\n appearance=\"icon\"\n automation-id=\"tui-primitive-textfield__cleaner\"\n tuiWrapper\n class=\"t-cleaner\"\n (click.stop)=\"clear()\"\n >\n <tui-icon\n *polymorpheusOutlet=\"\n iconCleaner || controller.options.iconCleaner as src;\n context: {$implicit: size}\n \"\n [icon]=\"src.toString()\"\n [style.border]=\"'0.25rem solid transparent'\"\n />\n </span>\n <tui-tooltip\n *ngIf=\"showHint\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n class=\"t-tooltip\"\n [content]=\"hintOptions?.content\"\n [describeId]=\"computedId\"\n />\n <div\n *ngIf=\"iconContent\"\n class=\"t-icon t-textfield-icon\"\n >\n <tui-icon\n *polymorpheusOutlet=\"iconContent as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [icon]=\"src.toString()\"\n />\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{position:relative;display:block;text-align:start;border-radius:var(--tui-radius-m);block-size:var(--tui-height);min-block-size:var(--tui-height);max-block-size:var(--tui-height)}:host[data-size=s]{--tui-height: var(--tui-height-s);font:var(--tui-font-text-s)}:host[data-size=m]{--tui-height: var(--tui-height-m);font:var(--tui-font-text-s)}:host[data-size=l]{--tui-height: var(--tui-height-l);font:var(--tui-font-text-m);line-height:1.25rem}:host :host-context(*:disabled){pointer-events:none}.t-input{padding:0;margin:0;border-width:0;border-radius:inherit;background:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;caret-color:currentColor;outline:none;-webkit-appearance:none;appearance:none;word-break:keep-all;-webkit-text-fill-color:currentColor;position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-style:solid;border-color:transparent;border-inline-start-width:var(--border-start, 0);border-inline-end-width:var(--border-end, 0);text-indent:var(--text-indent);color:var(--tui-text-primary);text-align:inherit;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-transform:inherit;resize:none}.t-input:-webkit-autofill,.t-input:-webkit-autofill:hover,.t-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background);box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input[inputMode=none]{caret-color:transparent}.t-input:-webkit-autofill,.t-input:-webkit-autofill:first-line{font-size:inherit;line-height:inherit}.t-input::-webkit-caps-lock-indicator,.t-input::-webkit-contacts-auto-fill-button,.t-input::-webkit-credit-card-auto-fill-button,.t-input::-webkit-credentials-auto-fill-button,.t-input::-webkit-strong-password-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input::placeholder{color:var(--tui-text-tertiary);opacity:0}:host._focused:not(._readonly) .t-input::placeholder,:host-context(tui-primitive-textfield._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-textarea._focused:not(._readonly)) .t-input::placeholder,:host-context(tui-text-area._focused:not(._readonly)) .t-input::placeholder{opacity:1}:host[data-size=s] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"s\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"s\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"s\"]):not(tui-text-area){padding:0 var(--tui-padding-s)}:host[data-size=m] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"m\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"m\"]):not(tui-text-area){padding:0 var(--tui-padding-m)}:host[data-size=l] .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]):not(tui-primitive-textfield),.t-input :host-context(tui-textarea[data-size=\"l\"]):not(tui-textarea),.t-input :host-context(tui-text-area[data-size=\"l\"]):not(tui-text-area){padding:0 var(--tui-padding-l)}:host._disabled .t-input,.t-input :host-context(tui-primitive-textfield._disabled),.t-input :host-context(tui-textarea._disabled),.t-input :host-context(tui-text-area._disabled){pointer-events:none}:host[data-size=l]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"l\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1.25rem}:host[data-size=m]:not(._label-outside) .t-input,.t-input :host-context(tui-primitive-textfield[data-size=\"m\"]:not(._label-outside)):not(tui-primitive-textfield){padding-top:1rem}:host[data-size=l]:not(._label-outside) .t-input{padding-top:1.25rem}:host[data-size=l]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.8156rem;transform:translateY(-.625rem)}:host[data-size=m]:not(._label-outside) .t-input:-webkit-autofill+.t-content .t-placeholder{font-size:.69rem;transform:translateY(-.5rem)}:host._hidden input.t-input,.t-input :host-context(tui-primitive-textfield._hidden){opacity:0;text-indent:-10em}.t-content{display:flex;block-size:100%;inline-size:100%;box-sizing:border-box;align-items:center;overflow:hidden}:host[data-size=s] .t-content{padding:0 var(--tui-padding-s)}:host[data-size=m] .t-content{padding:0 var(--tui-padding-m)}:host[data-size=l] .t-content{padding:0 var(--tui-padding-l)}.t-wrapper{flex:1;min-inline-size:0;padding-inline-end:.25rem}.t-placeholder{transition-property:transform,font-size,color,letter-spacing;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;inline-size:100%;-webkit-user-select:none;user-select:none;font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none;will-change:transform;transform:translateY(0)}@supports (-webkit-hyphens: none){.t-placeholder{will-change:unset;transition-property:transform,color,letter-spacing}}.t-placeholder_raised{transform:translateY(-.625rem)}:host[data-size=m] .t-placeholder_raised{font:var(--tui-font-text-xs);line-height:1.25rem;transform:translateY(-.5rem);letter-spacing:.025rem}:host._invalid:not(._focused) .t-placeholder_raised,:host._invalid:not(._focused):hover .t-placeholder_raised{color:var(--tui-text-negative)}:host._focused .t-placeholder,:host[data-size=m]._focused._label-outside .t-placeholder,:host[data-size=l]._focused._label-outside .t-placeholder{color:var(--tui-text-tertiary)}:host[data-size=l] .t-placeholder{font:var(--tui-font-text-m);line-height:1.25rem}:host[data-size=l] .t-placeholder_raised{font-size:.8156rem}:host[data-size=m]._focused:not(._label-outside) .t-placeholder,:host[data-size=l]._focused:not(._label-outside) .t-placeholder{color:var(--tui-text-primary)}.t-cleaner{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none;pointer-events:auto;border-width:.25rem}:host._readonly .t-cleaner,:host._disabled .t-cleaner{pointer-events:none}.t-icon{position:relative;display:flex;inline-size:1.5rem;block-size:1.5rem;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer;pointer-events:none}:host[data-size=s] .t-icon_left{margin:0 .125rem 0 -.375rem}:host[data-size=m] .t-icon_left{margin-inline-start:-.125rem;margin-inline-end:.375rem}:host[data-size=l] .t-icon_left{margin-inline-end:.75rem}.t-icons{display:flex;align-items:center}:host[data-size=m] .t-icons{margin-inline-end:-.125rem}:host[data-size=s] .t-icons{margin-inline-end:-.375rem}:host:not([data-size=s]) .t-icons>:not(:first-child){margin-inline-start:.25rem}:host ::ng-deep input{transition:box-shadow .01s}:host._autofilled[data-size=s] .t-placeholder,:host._autofilled._label-outside .t-placeholder,:host._autofilled .t-value-decoration:not(.t-has-value){visibility:hidden}:host[data-size=s] tui-icon{border-width:.25rem}.t-custom-content{position:relative;display:flex;align-items:center;justify-content:center;min-inline-size:2rem;block-size:2rem;pointer-events:none}.t-custom-icon{inline-size:2rem;block-size:100%}.t-input:not(:first-child){display:none}:host[data-size] .t-input_template{display:flex;inline-size:calc(100% - 1rem);max-inline-size:calc(100% - 1rem);align-items:center;pointer-events:none;padding-inline-end:0}.t-input_template_hidden{display:none}.t-text-template{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-wrapper-value-decoration{position:relative;pointer-events:none}\n"] }]
223
223
  }], propDecorators: { focusableElement: [{
224
224
  type: ViewChild,
225
225
  args: ['focusableElement']
@@ -241,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
241
241
  }], valueChange: [{
242
242
  type: Output
243
243
  }], getIndent$: [] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9wcmltaXRpdmUtdGV4dGZpZWxkL3ByaW1pdGl2ZS10ZXh0ZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvcHJpbWl0aXZlLXRleHRmaWVsZC9wcmltaXRpdmUtdGV4dGZpZWxkLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3hGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRCxPQUFPLEVBQUMscUJBQXFCLElBQUksT0FBTyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFFdkUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUNILDZCQUE2QixFQUM3QixxQkFBcUIsSUFBSSxjQUFjLEVBQ3ZDLGdDQUFnQyxHQUNuQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7OztBQUlwQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBd0M7SUFDeEUsQ0FBQyxFQUFFLElBQUk7SUFDUCxDQUFDLEVBQUUsSUFBSTtJQUNQLENBQUMsRUFBRSxJQUFJO0NBQ1YsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BeUJhLDhCQUNULFNBQVEsc0JBQXNCO0lBMUJsQzs7UUFnQ3FCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBS3RCLFlBQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3RELGdCQUFXLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDekUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUd0QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXZCOzs7V0FHRztRQUVJLGdCQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFHN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUdGLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQTZNNUQ7SUEzTUcsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDN0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sRUFBQyxhQUFhLEVBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFOUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0I7WUFDeEMsYUFBYSxDQUE0QixDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxPQUFPO1lBQ3hDLENBQUMsQ0FBQyxPQUFPO1lBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFjLElBQUk7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQWMsV0FBVztRQUNyQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBYyxXQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFjLFNBQVM7UUFDbkIsT0FBTyxZQUFZLENBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxJQUFJLENBQ1osQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFjLFFBQVE7UUFDbEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYyxVQUFVO1FBQ3BCLE9BQU8sQ0FDSCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDdkIsSUFBSSxDQUFDLFFBQVE7WUFDYixDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFDdEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUNqQixDQUFDO0lBQ04sQ0FBQztJQUVELElBQWMsVUFBVTtRQUNwQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBYyxnQkFBZ0I7UUFDMUIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQWMsa0JBQWtCO1FBQzVCLE1BQU0sUUFBUSxHQUNWLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxXQUFXO1lBQ3hDLElBQUksQ0FBQyxNQUFNO1lBQ1gsSUFBSSxDQUFDLE9BQU87WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUVyRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBYyxjQUFjO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBYyxpQkFBaUI7UUFDM0IsT0FBTyxDQUNILElBQUksQ0FBQyxtQkFBbUI7WUFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ2pGLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBYyxXQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQWMsZUFBZTtRQUd6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFjLFFBQVE7UUFDbEIsT0FBTyxDQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU87WUFDM0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNoRSxDQUFDO0lBQ04sQ0FBQztJQUVELDZDQUE2QztJQUM3QyxJQUFjLElBQUk7UUFDZCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxZQUFZLEtBQUssUUFBUTtZQUN6RCxDQUFDLENBQUMsY0FBYztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQWMsVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFHUyxVQUFVLENBQUMsT0FBb0I7UUFDckMsT0FBTyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDcEMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNsRCxDQUFDO0lBQ04sQ0FBQztJQUVTLFNBQVMsQ0FBQyxPQUFnQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFUyxLQUFLO1FBQ1gsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFUyxXQUFXLENBQUMsS0FBaUI7UUFDbkMsTUFBTSxFQUFDLHNCQUFzQixFQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXRDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLHNCQUFzQixFQUFFO1lBQ3BFLE9BQU87U0FDVjtRQUVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRVMsc0JBQXNCLENBQUMsRUFBQyxZQUFZLEVBQUUsTUFBTSxFQUFrQjtRQUNwRSxNQUFNLGVBQWUsR0FDakIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSyxNQUFrQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRixJQUFJLGVBQWUsRUFBRTtZQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVTLFlBQVksQ0FBQyxVQUFtQjtRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVTLHVCQUF1QixDQUFDLEtBQVk7UUFDMUMsSUFBSSw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztTQUNwQztJQUNMLENBQUM7SUFFRCxJQUFZLGVBQWU7UUFDdkIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQVksbUJBQW1CO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztJQUM5RCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsVUFBbUI7UUFDeEMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtZQUNoQyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0FyUFEsOEJBQThCO21HQUE5Qiw4QkFBOEIseXRCQW5CNUI7WUFDUCwwQkFBMEIsQ0FBQyw4QkFBOEIsQ0FBQztZQUMxRCw2QkFBNkI7U0FDaEMsa0RBMEJnQixrQkFBa0IsNkxDOUV2Qyx3MElBd0hBOztBRDhIYztJQURULE9BQU87Z0VBS1A7U0F0TFEsOEJBQThCOzRGQUE5Qiw4QkFBOEI7a0JBekIxQyxTQUFTO2lDQUNNLEtBQUssWUFDUCx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1AsMEJBQTBCLGdDQUFnQzt3QkFDMUQsNkJBQTZCO3FCQUNoQyxRQUNLO3dCQUNGLGtCQUFrQixFQUFFLE1BQU07d0JBQzFCLG1CQUFtQixFQUFFLFVBQVU7d0JBQy9CLGlCQUFpQixFQUFFLGFBQWE7d0JBQ2hDLGtCQUFrQixFQUFFLGlCQUFpQjt3QkFDckMscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMsNEJBQTRCLEVBQUUsYUFBYTt3QkFDM0MsMEJBQTBCLEVBQUUsV0FBVzt3QkFDdkMsd0JBQXdCLEVBQ3BCLDZEQUE2RDt3QkFDakUsV0FBVyxFQUFFLGlCQUFpQjt3QkFDOUIsWUFBWSxFQUFFLGtCQUFrQjt3QkFDaEMsMkJBQTJCLEVBQUUsZ0NBQWdDO3FCQUNoRTs4QkFPZ0IsZ0JBQWdCO3NCQURoQyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFPVixPQUFPO3NCQUR6QixlQUFlO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQztnQkFTakQsUUFBUTtzQkFEZCxLQUFLO2dCQVFDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlVLFdBQVc7c0JBRDFCLE1BQU07Z0JBMElHLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7RWxlbWVudFJlZiwgUXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1R1aUNvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50LCB0dWlSZXRhcmdldGVkQm91bmRhcnlDcm9zc2luZ30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlJc05hdGl2ZUZvY3VzZWRJbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1RVSV9URVhURklFTERfT1BUSU9OUyBhcyBPUFRJT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1R1aUhpbnRPcHRpb25zRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2hpbnQnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aUludGVyYWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfVEVYVEZJRUxEX09QVElPTlMgYXMgTEVHQUNZX09QVElPTlMsXG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvZGlyZWN0aXZlcyc7XG5pbXBvcnQge3R1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3Rva2Vucyc7XG5pbXBvcnQge3R1aUdldEJvcmRlcn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS91dGlscyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgdHlwZSB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWFwfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUge1R1aVByaW1pdGl2ZVRleHRmaWVsZH0gZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLXR5cGVzJztcblxuZXhwb3J0IGNvbnN0IFRVSV9JQ09OX1NUQVJUX1BBRERJTkdTOiBSZWNvcmQ8VHVpU2l6ZUwgfCBUdWlTaXplUywgbnVtYmVyPiA9IHtcbiAgICBzOiAxLjI1LFxuICAgIG06IDEuNzUsXG4gICAgbDogMi4yNSxcbn07XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IHVzZSB7QGxpbmsgVHVpVGV4dGZpZWxkfVxuICogaHR0cHM6Ly90YWlnYS11aS5kZXYvY29tcG9uZW50cy90ZXh0ZmllbGRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICd0dWktcHJpbWl0aXZlLXRleHRmaWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCksXG4gICAgICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplJyxcbiAgICAgICAgJ1tjbGFzcy5fcmVhZG9ubHldJzogJ3JlYWRPbmx5JyxcbiAgICAgICAgJ1tjbGFzcy5faGlkZGVuXSc6ICdpbnB1dEhpZGRlbicsXG4gICAgICAgICdbY2xhc3MuX2ludmFsaWRdJzogJ2NvbXB1dGVkSW52YWxpZCcsXG4gICAgICAgICdbY2xhc3MuX2F1dG9maWxsZWRdJzogJ2F1dG9maWxsZWQnLFxuICAgICAgICAnW3N0eWxlLi0tYm9yZGVyLXN0YXJ0LnJlbV0nOiAnYm9yZGVyU3RhcnQnLFxuICAgICAgICAnW3N0eWxlLi0tYm9yZGVyLWVuZC5yZW1dJzogJ2JvcmRlckVuZCcsXG4gICAgICAgICdbY2xhc3MuX2xhYmVsLW91dHNpZGVdJzpcbiAgICAgICAgICAgICdvcHRpb25zLmFwcGVhcmFuY2UoKSA9PT0gXCJ0YWJsZVwiIHx8IGNvbnRyb2xsZXIubGFiZWxPdXRzaWRlJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdvbkZvY3VzZWQodHJ1ZSknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdvbkZvY3VzZWQoZmFsc2UpJyxcbiAgICAgICAgJyh0cmFuc2l0aW9uc3RhcnQuY2FwdHVyZSknOiAndHJhbnNpdGlvblN0YXJ0SGFuZGxlcigkZXZlbnQpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW50ZXJhY3RpdmVcbiAgICBpbXBsZW1lbnRzIFR1aVByaW1pdGl2ZVRleHRmaWVsZFxue1xuICAgIEBWaWV3Q2hpbGQoJ2ZvY3VzYWJsZUVsZW1lbnQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxlZ2FjeU9wdGlvbnMgPSBpbmplY3QoTEVHQUNZX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBvbHltb3JwaGV1c091dGxldCwge2Rlc2NlbmRhbnRzOiB0cnVlfSlcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGVudD86IFF1ZXJ5TGlzdDx1bmtub3duPjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KE9QVElPTlMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb250cm9sbGVyID0gaW5qZWN0KFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGludE9wdGlvbnMgPSBpbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByb3RlY3RlZCBhdXRvZmlsbGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlZGl0YWJsZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZDpcbiAgICAgKiB1c2UgYHR1aVRleHRmaWVsZE9wdGlvbnNQcm92aWRlcih7aWNvbkNsZWFuZXI6IGBAdHVpLmNoZXZyb24tdXBgfSlgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbkNsZWFuZXIgPSB0aGlzLmxlZ2FjeU9wdGlvbnMuaWNvbkNsZWFuZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHB1YmxpYyBnZXQgcHJlZml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIucHJlZml4O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcG9zdGZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnBvc3RmaXg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWxsZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5maWxsZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhdGhpcy5mb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtuYXRpdmVFbGVtZW50fSA9IHRoaXMuZm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICByZXR1cm4gKG5hdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZyB8fFxuICAgICAgICAgICAgbmF0aXZlRWxlbWVudCkgYXMgSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhcHBlYXJhbmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYXBwZWFyYW5jZSgpID09PSAndGFibGUnXG4gICAgICAgICAgICA/ICd0YWJsZSdcbiAgICAgICAgICAgIDogdGhpcy5jb250cm9sbGVyLmFwcGVhcmFuY2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuc2l6ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmICF0aGlzLmRpc2FibGVkICYmIHRoaXMuaW52YWxpZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlucHV0SGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRlbnQ/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGJvcmRlclN0YXJ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25MZWZ0Q29udGVudCA/IHRoaXMuaWNvblBhZGRpbmdMZWZ0IDogMDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckVuZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpR2V0Qm9yZGVyKFxuICAgICAgICAgICAgISF0aGlzLmljb25Db250ZW50LFxuICAgICAgICAgICAgdGhpcy5oYXNDbGVhbmVyLFxuICAgICAgICAgICAgdGhpcy5oYXNUb29sdGlwLFxuICAgICAgICAgICAgdGhpcy5oYXNDdXN0b21Db250ZW50LFxuICAgICAgICAgICAgdGhpcy5zaXplLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBoYXNDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLmNsZWFuZXIgJiZcbiAgICAgICAgICAgIHRoaXMuaGFzVmFsdWUgJiZcbiAgICAgICAgICAgICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiZcbiAgICAgICAgICAgICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmhpbnRPcHRpb25zPy5jb250ZW50ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBoYXNDdXN0b21Db250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRyb2xsZXIuY3VzdG9tQ29udGVudDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHBsYWNlaG9sZGVyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaGFzRGVjb3IgPVxuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5wbGFjZWhvbGRlciB8fFxuICAgICAgICAgICAgdGhpcy5wcmVmaXggfHxcbiAgICAgICAgICAgIHRoaXMucG9zdGZpeCB8fFxuICAgICAgICAgICAgdGhpcy5maWxsZXI7XG4gICAgICAgIGNvbnN0IHNob3dEZWNvciA9IGhhc0RlY29yICYmICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMuY29tcHV0ZWRGb2N1c2VkO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5oYXNWYWx1ZSAmJiAhc2hvd0RlY29yO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaGFzUGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgfHwgdGhpcy5wbGFjZWhvbGRlclZpc2libGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBwbGFjZWhvbGRlclJhaXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJSYWlzYWJsZSAmJlxuICAgICAgICAgICAgKCh0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seSkgfHwgdGhpcy5oYXNWYWx1ZSB8fCB0aGlzLmF1dG9maWxsZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpY29uQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHQ8VHVpU2l6ZUwgfCBUdWlTaXplUz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5pY29uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaWNvbkxlZnRDb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHQ8VHVpU2l6ZUwgfCBUdWlTaXplUz5cbiAgICA+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5pY29uU3RhcnQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBzaG93SGludCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy5oaW50T3B0aW9ucz8uY29udGVudCAmJlxuICAgICAgICAgICAgKHRoaXMubGVnYWN5T3B0aW9ucy5oaW50T25EaXNhYmxlZCB8fCAhdGhpcy5jb21wdXRlZERpc2FibGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIFNhZmFyaSBleHBpcmF0aW9uIGRhdGUgYXV0b2ZpbGwgd29ya2Fyb3VuZFxuICAgIHByb3RlY3RlZCBnZXQgbmFtZSgpOiAnY2NleHBpcnl5ZWFyJyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5hdXRvY29tcGxldGUgPT09ICdjYy1leHAnXG4gICAgICAgICAgICA/ICdjY2V4cGlyeXllYXInXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmlkIHx8ICcnO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJvdGVjdGVkIGdldEluZGVudCQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IC0xICogTWF0aC5tYXgoZWxlbWVudC5zY3JvbGxMZWZ0LCAwKSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgnJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtuYXRpdmVGb2N1c2FibGVFbGVtZW50fSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCFuYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IGV2ZW50LnRhcmdldCA9PT0gbmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0cmFuc2l0aW9uU3RhcnRIYW5kbGVyKHtwcm9wZXJ0eU5hbWUsIHRhcmdldH06IFRyYW5zaXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXRjaGVkQXV0b2ZpbGwgPVxuICAgICAgICAgICAgcHJvcGVydHlOYW1lLmluY2x1ZGVzKCdib3gtc2hhZG93JykgJiYgKHRhcmdldCBhcyBFbGVtZW50KT8ubWF0Y2hlcygnaW5wdXQnKTtcblxuICAgICAgICBpZiAobWF0Y2hlZEF1dG9maWxsKSB7XG4gICAgICAgICAgICB0aGlzLm9uQXV0b2ZpbGxlZCghdGhpcy5hdXRvZmlsbGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkF1dG9maWxsZWQoYXV0b2ZpbGxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUF1dG9maWxsZWQoYXV0b2ZpbGxlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRldGVjdFJldGFyZ2V0RnJvbUxhYmVsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodHVpUmV0YXJnZXRlZEJvdW5kYXJ5Q3Jvc3NpbmcoZXZlbnQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGljb25QYWRkaW5nTGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gVFVJX0lDT05fU1RBUlRfUEFERElOR1NbdGhpcy5zaXplXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwbGFjZWhvbGRlclJhaXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplICE9PSAncycgJiYgIXRoaXMuY29udHJvbGxlci5sYWJlbE91dHNpZGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVBdXRvZmlsbGVkKGF1dG9maWxsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZpbGxlZCA9PT0gYXV0b2ZpbGxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hdXRvZmlsbGVkID0gYXV0b2ZpbGxlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5jaGFuZ2VzIHwgYXN5bmNcIiAvPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpbnRPcHRpb25zPy5jaGFuZ2UkIHwgYXN5bmNcIiAvPlxuPGRpdlxuICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fd3JhcHBlclwiXG4gICAgdHVpV3JhcHBlclxuICAgIFthY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtmb2N1c109XCJjb21wdXRlZEZvY3VzZWRcIlxuICAgIFtob3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFtzdHlsZS4tLXRleHQtaW5kZW50LnB4XT1cImRlY29yLnByZSQgfCBhc3luY1wiXG4gICAgKGNsaWNrLnByZXZlbnQuc2lsZW50KT1cImRldGVjdFJldGFyZ2V0RnJvbUxhYmVsKCRldmVudClcIlxuICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRcIiAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNlbGVjdFwiIC8+XG4gICAgPGlucHV0XG4gICAgICAgICNmb2N1c2FibGVFbGVtZW50XG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fbmF0aXZlLWlucHV0XCJcbiAgICAgICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5IHx8ICFlZGl0YWJsZVwiXG4gICAgICAgIFt0YWJJbmRleF09XCJjb21wdXRlZEZvY3VzYWJsZSA/IDAgOiAtMVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaW5wdXRIaWRkZW5cIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3ZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJ0LWlucHV0IHQtaW5wdXRfdGVtcGxhdGVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpQ29udGVudFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInQtY29udGVudFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImljb25MZWZ0Q29udGVudFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvbiB0LWljb25fbGVmdCB0LXRleHRmaWVsZC1pY29uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImljb25MZWZ0Q29udGVudCBhcyBzcmM7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XCJcbiAgICAgICAgICAgICAgICB0dWlBcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwic3JjLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fcGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnQtcGxhY2Vob2xkZXJfcmFpc2VkXT1cInBsYWNlaG9sZGVyUmFpc2VkXCJcbiAgICAgICAgICAgICAgICBbZm9yXT1cImNvbXB1dGVkSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInQtd3JhcHBlci12YWx1ZS1kZWNvcmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHR1aS12YWx1ZS1kZWNvcmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICNkZWNvclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3ZhbHVlLWRlY29yYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtdmFsdWUtZGVjb3JhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50LWhhcy12YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0SW5kZW50LnB4XT1cImdldEluZGVudCQoZm9jdXNhYmxlRWxlbWVudCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInQtaWNvbnNcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0N1c3RvbUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fY3VzdG9tLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jdXN0b20tY29udGVudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250cm9sbGVyLmN1c3RvbUNvbnRlbnQgYXMgc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWN1c3RvbS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwic3JjXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2xlYW5lclwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fY2xlYW5lclwiXG4gICAgICAgICAgICAgICAgdHVpV3JhcHBlclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jbGVhbmVyXCJcbiAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJjbGVhcigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsZWFuZXIgfHwgY29udHJvbGxlci5vcHRpb25zLmljb25DbGVhbmVyIGFzIHNyYztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cInNyYy50b1N0cmluZygpXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlcl09XCInMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8dHVpLXRvb2x0aXBcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dIaW50XCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3Rvb2x0aXBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC10b29sdGlwXCJcbiAgICAgICAgICAgICAgICBbY29udGVudF09XCJoaW50T3B0aW9ucz8uY29udGVudFwiXG4gICAgICAgICAgICAgICAgW2Rlc2NyaWJlSWRdPVwiY29tcHV0ZWRJZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaWNvbkNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uIHQtdGV4dGZpZWxkLWljb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0dWktaWNvblxuICAgICAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaWNvbkNvbnRlbnQgYXMgc3JjOyBjb250ZXh0OiB7JGltcGxpY2l0OiBzaXplfVwiXG4gICAgICAgICAgICAgICAgICAgIHR1aUFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwic3JjLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLXRleHRmaWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9wcmltaXRpdmUtdGV4dGZpZWxkL3ByaW1pdGl2ZS10ZXh0ZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvcHJpbWl0aXZlLXRleHRmaWVsZC9wcmltaXRpdmUtdGV4dGZpZWxkLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3hGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRCxPQUFPLEVBQUMscUJBQXFCLElBQUksT0FBTyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFFdkUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUNILDZCQUE2QixFQUM3QixxQkFBcUIsSUFBSSxjQUFjLEVBQ3ZDLGdDQUFnQyxHQUNuQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRCxPQUFPLEVBQUMsa0JBQWtCLEVB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RTs4QkFPZ0IsZ0JBQWdCO3NCQURoQyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFPVixPQUFPO3NCQUR6QixlQUFlO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQztnQkFTakQsUUFBUTtzQkFEZCxLQUFLO2dCQVFDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlVLFdBQVc7c0JBRDFCLE1BQU07Z0JBMElHLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7RWxlbWVudFJlZiwgUXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1R1aUNvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50LCB0dWlSZXRhcmdldGVkQm91bmRhcnlDcm9zc2luZ30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlJc05hdGl2ZUZvY3VzZWRJbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1RVSV9URVhURklFTERfT1BUSU9OUyBhcyBPUFRJT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1R1aUhpbnRPcHRpb25zRGlyZWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2hpbnQnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVMLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aUludGVyYWN0aXZlfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfVEVYVEZJRUxEX09QVElPTlMgYXMgTEVHQUNZX09QVElPTlMsXG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvZGlyZWN0aXZlcyc7XG5pbXBvcnQge3R1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3Rva2Vucyc7XG5pbXBvcnQge3R1aUdldEJvcmRlcn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS91dGlscyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgdHlwZSB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWFwfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUge1R1aVByaW1pdGl2ZVRleHRmaWVsZH0gZnJvbSAnLi9wcmltaXRpdmUtdGV4dGZpZWxkLXR5cGVzJztcblxuZXhwb3J0IGNvbnN0IFRVSV9JQ09OX1NUQVJUX1BBRERJTkdTOiBSZWNvcmQ8VHVpU2l6ZUwgfCBUdWlTaXplUywgbnVtYmVyPiA9IHtcbiAgICBzOiAxLjI1LFxuICAgIG06IDEuNzUsXG4gICAgbDogMi4yNSxcbn07XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IHVzZSB7QGxpbmsgVHVpVGV4dGZpZWxkfVxuICogaHR0cHM6Ly90YWlnYS11aS5kZXYvY29tcG9uZW50cy90ZXh0ZmllbGRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICd0dWktcHJpbWl0aXZlLXRleHRmaWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByaW1pdGl2ZS10ZXh0ZmllbGQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJpbWl0aXZlLXRleHRmaWVsZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCksXG4gICAgICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplJyxcbiAgICAgICAgJ1tjbGFzcy5fcmVhZG9ubHldJzogJ3JlYWRPbmx5JyxcbiAgICAgICAgJ1tjbGFzcy5faGlkZGVuXSc6ICdpbnB1dEhpZGRlbicsXG4gICAgICAgICdbY2xhc3MuX2ludmFsaWRdJzogJ2NvbXB1dGVkSW52YWxpZCcsXG4gICAgICAgICdbY2xhc3MuX2F1dG9maWxsZWRdJzogJ2F1dG9maWxsZWQnLFxuICAgICAgICAnW3N0eWxlLi0tYm9yZGVyLXN0YXJ0LnJlbV0nOiAnYm9yZGVyU3RhcnQnLFxuICAgICAgICAnW3N0eWxlLi0tYm9yZGVyLWVuZC5yZW1dJzogJ2JvcmRlckVuZCcsXG4gICAgICAgICdbY2xhc3MuX2xhYmVsLW91dHNpZGVdJzpcbiAgICAgICAgICAgICdvcHRpb25zLmFwcGVhcmFuY2UoKSA9PT0gXCJ0YWJsZVwiIHx8IGNvbnRyb2xsZXIubGFiZWxPdXRzaWRlJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdvbkZvY3VzZWQodHJ1ZSknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdvbkZvY3VzZWQoZmFsc2UpJyxcbiAgICAgICAgJyh0cmFuc2l0aW9uc3RhcnQuY2FwdHVyZSknOiAndHJhbnNpdGlvblN0YXJ0SGFuZGxlcigkZXZlbnQpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpSW50ZXJhY3RpdmVcbiAgICBpbXBsZW1lbnRzIFR1aVByaW1pdGl2ZVRleHRmaWVsZFxue1xuICAgIEBWaWV3Q2hpbGQoJ2ZvY3VzYWJsZUVsZW1lbnQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxlZ2FjeU9wdGlvbnMgPSBpbmplY3QoTEVHQUNZX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBvbHltb3JwaGV1c091dGxldCwge2Rlc2NlbmRhbnRzOiB0cnVlfSlcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGVudD86IFF1ZXJ5TGlzdDx1bmtub3duPjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KE9QVElPTlMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb250cm9sbGVyID0gaW5qZWN0KFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGludE9wdGlvbnMgPSBpbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByb3RlY3RlZCBhdXRvZmlsbGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlZGl0YWJsZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZDpcbiAgICAgKiB1c2UgYHR1aVRleHRmaWVsZE9wdGlvbnNQcm92aWRlcih7aWNvbkNsZWFuZXI6IGBAdHVpLmNoZXZyb24tdXBgfSlgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbkNsZWFuZXIgPSB0aGlzLmxlZ2FjeU9wdGlvbnMuaWNvbkNsZWFuZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlID0gJyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHB1YmxpYyBnZXQgcHJlZml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIucHJlZml4O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcG9zdGZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnBvc3RmaXg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWxsZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5maWxsZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhdGhpcy5mb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtuYXRpdmVFbGVtZW50fSA9IHRoaXMuZm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICByZXR1cm4gKG5hdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZyB8fFxuICAgICAgICAgICAgbmF0aXZlRWxlbWVudCkgYXMgSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhcHBlYXJhbmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYXBwZWFyYW5jZSgpID09PSAndGFibGUnXG4gICAgICAgICAgICA/ICd0YWJsZSdcbiAgICAgICAgICAgIDogdGhpcy5jb250cm9sbGVyLmFwcGVhcmFuY2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuc2l6ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbXB1dGVkSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmICF0aGlzLmRpc2FibGVkICYmIHRoaXMuaW52YWxpZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlucHV0SGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRlbnQ/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGJvcmRlclN0YXJ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25MZWZ0Q29udGVudCA/IHRoaXMuaWNvblBhZGRpbmdMZWZ0IDogMDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckVuZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpR2V0Qm9yZGVyKFxuICAgICAgICAgICAgISF0aGlzLmljb25Db250ZW50LFxuICAgICAgICAgICAgdGhpcy5oYXNDbGVhbmVyLFxuICAgICAgICAgICAgdGhpcy5oYXNUb29sdGlwLFxuICAgICAgICAgICAgdGhpcy5oYXNDdXN0b21Db250ZW50LFxuICAgICAgICAgICAgdGhpcy5zaXplLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBoYXNDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLmNsZWFuZXIgJiZcbiAgICAgICAgICAgIHRoaXMuaGFzVmFsdWUgJiZcbiAgICAgICAgICAgICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiZcbiAgICAgICAgICAgICF0aGlzLnJlYWRPbmx5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBoYXNUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmhpbnRPcHRpb25zPy5jb250ZW50ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBoYXNDdXN0b21Db250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbnRyb2xsZXIuY3VzdG9tQ29udGVudDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHBsYWNlaG9sZGVyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaGFzRGVjb3IgPVxuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5wbGFjZWhvbGRlciB8fFxuICAgICAgICAgICAgdGhpcy5wcmVmaXggfHxcbiAgICAgICAgICAgIHRoaXMucG9zdGZpeCB8fFxuICAgICAgICAgICAgdGhpcy5maWxsZXI7XG4gICAgICAgIGNvbnN0IHNob3dEZWNvciA9IGhhc0RlY29yICYmICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMuY29tcHV0ZWRGb2N1c2VkO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5oYXNWYWx1ZSAmJiAhc2hvd0RlY29yO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaGFzUGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyUmFpc2FibGUgfHwgdGhpcy5wbGFjZWhvbGRlclZpc2libGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBwbGFjZWhvbGRlclJhaXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJSYWlzYWJsZSAmJlxuICAgICAgICAgICAgKCh0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seSkgfHwgdGhpcy5oYXNWYWx1ZSB8fCB0aGlzLmF1dG9maWxsZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpY29uQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHQ8VHVpU2l6ZUwgfCBUdWlTaXplUz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5pY29uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaWNvbkxlZnRDb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHQ8VHVpU2l6ZUwgfCBUdWlTaXplUz5cbiAgICA+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5pY29uU3RhcnQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBzaG93SGludCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy5oaW50T3B0aW9ucz8uY29udGVudCAmJlxuICAgICAgICAgICAgKHRoaXMubGVnYWN5T3B0aW9ucy5oaW50T25EaXNhYmxlZCB8fCAhdGhpcy5jb21wdXRlZERpc2FibGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIFNhZmFyaSBleHBpcmF0aW9uIGRhdGUgYXV0b2ZpbGwgd29ya2Fyb3VuZFxuICAgIHByb3RlY3RlZCBnZXQgbmFtZSgpOiAnY2NleHBpcnl5ZWFyJyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5hdXRvY29tcGxldGUgPT09ICdjYy1leHAnXG4gICAgICAgICAgICA/ICdjY2V4cGlyeXllYXInXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmlkIHx8ICcnO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJvdGVjdGVkIGdldEluZGVudCQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IC0xICogTWF0aC5tYXgoZWxlbWVudC5zY3JvbGxMZWZ0LCAwKSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgnJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtuYXRpdmVGb2N1c2FibGVFbGVtZW50fSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCFuYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IGV2ZW50LnRhcmdldCA9PT0gbmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0cmFuc2l0aW9uU3RhcnRIYW5kbGVyKHtwcm9wZXJ0eU5hbWUsIHRhcmdldH06IFRyYW5zaXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXRjaGVkQXV0b2ZpbGwgPVxuICAgICAgICAgICAgcHJvcGVydHlOYW1lLmluY2x1ZGVzKCdib3gtc2hhZG93JykgJiYgKHRhcmdldCBhcyBFbGVtZW50KT8ubWF0Y2hlcygnaW5wdXQnKTtcblxuICAgICAgICBpZiAobWF0Y2hlZEF1dG9maWxsKSB7XG4gICAgICAgICAgICB0aGlzLm9uQXV0b2ZpbGxlZCghdGhpcy5hdXRvZmlsbGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkF1dG9maWxsZWQoYXV0b2ZpbGxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUF1dG9maWxsZWQoYXV0b2ZpbGxlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRldGVjdFJldGFyZ2V0RnJvbUxhYmVsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodHVpUmV0YXJnZXRlZEJvdW5kYXJ5Q3Jvc3NpbmcoZXZlbnQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGljb25QYWRkaW5nTGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gVFVJX0lDT05fU1RBUlRfUEFERElOR1NbdGhpcy5zaXplXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwbGFjZWhvbGRlclJhaXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplICE9PSAncycgJiYgIXRoaXMuY29udHJvbGxlci5sYWJlbE91dHNpZGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVBdXRvZmlsbGVkKGF1dG9maWxsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZpbGxlZCA9PT0gYXV0b2ZpbGxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hdXRvZmlsbGVkID0gYXV0b2ZpbGxlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5jaGFuZ2VzIHwgYXN5bmNcIiAvPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpbnRPcHRpb25zPy5jaGFuZ2UkIHwgYXN5bmNcIiAvPlxuPGRpdlxuICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fd3JhcHBlclwiXG4gICAgdHVpV3JhcHBlclxuICAgIFthY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtmb2N1c109XCJjb21wdXRlZEZvY3VzZWRcIlxuICAgIFtob3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFtzdHlsZS4tLXRleHQtaW5kZW50LnB4XT1cImRlY29yLnByZSQgfCBhc3luY1wiXG4gICAgKGNsaWNrLnByZXZlbnQuc2lsZW50KT1cImRldGVjdFJldGFyZ2V0RnJvbUxhYmVsKCRldmVudClcIlxuICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRcIiAvPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNlbGVjdFwiIC8+XG4gICAgPGlucHV0XG4gICAgICAgICNmb2N1c2FibGVFbGVtZW50XG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fbmF0aXZlLWlucHV0XCJcbiAgICAgICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5IHx8ICFlZGl0YWJsZVwiXG4gICAgICAgIFt0YWJJbmRleF09XCJjb21wdXRlZEZvY3VzYWJsZSA/IDAgOiAtMVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8ZGl2XG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fdmFsdWVcIlxuICAgICAgICBjbGFzcz1cInQtaW5wdXQgdC1pbnB1dF90ZW1wbGF0ZVwiXG4gICAgICAgIFtjbGFzcy50LWlucHV0X3RlbXBsYXRlX2hpZGRlbl09XCIhaW5wdXRIaWRkZW5cIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidHVpQ29udGVudFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInQtY29udGVudFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImljb25MZWZ0Q29udGVudFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvbiB0LWljb25fbGVmdCB0LXRleHRmaWVsZC1pY29uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImljb25MZWZ0Q29udGVudCBhcyBzcmM7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XCJcbiAgICAgICAgICAgICAgICB0dWlBcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwic3JjLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fcGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnQtcGxhY2Vob2xkZXJfcmFpc2VkXT1cInBsYWNlaG9sZGVyUmFpc2VkXCJcbiAgICAgICAgICAgICAgICBbZm9yXT1cImNvbXB1dGVkSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInQtd3JhcHBlci12YWx1ZS1kZWNvcmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHR1aS12YWx1ZS1kZWNvcmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICNkZWNvclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3ZhbHVlLWRlY29yYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtdmFsdWUtZGVjb3JhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50LWhhcy12YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0SW5kZW50LnB4XT1cImdldEluZGVudCQoZm9jdXNhYmxlRWxlbWVudCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInQtaWNvbnNcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0N1c3RvbUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fY3VzdG9tLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jdXN0b20tY29udGVudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250cm9sbGVyLmN1c3RvbUNvbnRlbnQgYXMgc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWN1c3RvbS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwic3JjXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2xlYW5lclwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcHJpbWl0aXZlLXRleHRmaWVsZF9fY2xlYW5lclwiXG4gICAgICAgICAgICAgICAgdHVpV3JhcHBlclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jbGVhbmVyXCJcbiAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJjbGVhcigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsZWFuZXIgfHwgY29udHJvbGxlci5vcHRpb25zLmljb25DbGVhbmVyIGFzIHNyYztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cInNyYy50b1N0cmluZygpXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlcl09XCInMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8dHVpLXRvb2x0aXBcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dIaW50XCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRfX3Rvb2x0aXBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC10b29sdGlwXCJcbiAgICAgICAgICAgICAgICBbY29udGVudF09XCJoaW50T3B0aW9ucz8uY29udGVudFwiXG4gICAgICAgICAgICAgICAgW2Rlc2NyaWJlSWRdPVwiY29tcHV0ZWRJZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaWNvbkNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1pY29uIHQtdGV4dGZpZWxkLWljb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0dWktaWNvblxuICAgICAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaWNvbkNvbnRlbnQgYXMgc3JjOyBjb250ZXh0OiB7JGltcGxpY2l0OiBzaXplfVwiXG4gICAgICAgICAgICAgICAgICAgIHR1aUFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwic3JjLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -80,7 +80,7 @@ class TuiSelectComponent extends AbstractTuiNullableControl {
80
80
  tuiAsControl(TuiSelectComponent),
81
81
  tuiAsDataListHost(TuiSelectComponent),
82
82
  tuiAsOptionContent(TUI_SELECT_OPTION),
83
- ], queries: [{ propertyName: "nativeSelect", first: true, predicate: AbstractTuiNativeSelect, descendants: true, static: true }, { propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: TuiDropdownOpen, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownFixed }], ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !nativeDropdownMode\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [editable]=\"false\"\n [focusable]=\"computedFocusable\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [value]=\"computedValue\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (valueChange)=\"onValueChange($any($event))\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n />\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n />\n\n <div\n *ngIf=\"value !== null\"\n automation-id=\"tui-select__value\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n tuiWrapper\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\" />\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;inline-size:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i4.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "iconCleaner", "readOnly", "invalid", "disabled", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i4.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { kind: "directive", type: i5.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { kind: "directive", type: i5.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i5.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
+ ], queries: [{ propertyName: "nativeSelect", first: true, predicate: AbstractTuiNativeSelect, descendants: true, static: true }, { propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: TuiDropdownOpen, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownFixed }], ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !nativeDropdownMode\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [editable]=\"false\"\n [focusable]=\"computedFocusable\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [value]=\"computedValue\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (valueChange)=\"onValueChange($any($event))\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <ng-container\n *ngIf=\"isMobile\"\n ngProjectAs=\"select\"\n >\n <ng-content select=\"select\" />\n </ng-container>\n\n <div\n *ngIf=\"value !== null\"\n automation-id=\"tui-select__value\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n tuiWrapper\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\" />\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;inline-size:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i4.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "iconCleaner", "readOnly", "invalid", "disabled", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i4.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { kind: "directive", type: i5.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { kind: "directive", type: i5.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i5.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
84
84
  }
85
85
  export { TuiSelectComponent };
86
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectComponent, decorators: [{
@@ -92,7 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
92
92
  tuiAsOptionContent(TUI_SELECT_OPTION),
93
93
  ], hostDirectives: [TuiDropdownFixed], host: {
94
94
  '[attr.data-size]': 'size',
95
- }, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !nativeDropdownMode\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [editable]=\"false\"\n [focusable]=\"computedFocusable\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [value]=\"computedValue\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (valueChange)=\"onValueChange($any($event))\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <ng-template #select>\n <ng-content\n *ngIf=\"isMobile\"\n select=\"select\"\n />\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"select\"\n ngProjectAs=\"select\"\n />\n\n <div\n *ngIf=\"value !== null\"\n automation-id=\"tui-select__value\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n tuiWrapper\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\" />\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;inline-size:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
95
+ }, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"datalist || ''\"\n [tuiDropdownEnabled]=\"interactive && !nativeDropdownMode\"\n [(tuiDropdownOpen)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-primitive-textfield\n automation-id=\"tui-select__textfield\"\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [editable]=\"false\"\n [focusable]=\"computedFocusable\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldIcon]=\"arrow ? icon : ''\"\n [value]=\"computedValue\"\n (keydown.backspace.prevent)=\"onKeyDownDelete()\"\n (keydown.delete.prevent)=\"onKeyDownDelete()\"\n (valueChange)=\"onValueChange($any($event))\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n\n <ng-container\n *ngIf=\"isMobile\"\n ngProjectAs=\"select\"\n >\n <ng-content select=\"select\" />\n </ng-container>\n\n <div\n *ngIf=\"value !== null\"\n automation-id=\"tui-select__value\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value\"\n >\n <div\n *polymorpheusOutlet=\"computedContent as text; context: {$implicit: value, active: computedFocused}\"\n class=\"t-primitive-value\"\n [textContent]=\"text\"\n ></div>\n </div>\n </tui-primitive-textfield>\n\n <ng-template #icon>\n <div\n appearance=\"icon\"\n tuiWrapper\n class=\"t-icon\"\n >\n <ng-container *polymorpheusOutlet=\"arrow\" />\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}:host._readonly ::ng-deep input{cursor:default}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-value{display:flex;inline-size:100%;align-items:center}.t-primitive-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
96
96
  }], propDecorators: { textfield: [{
97
97
  type: ViewChild,
98
98
  args: [TuiPrimitiveTextfieldComponent]
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
112
112
  }], valueContent: [{
113
113
  type: Input
114
114
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xlZ2FjeS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUN2QixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQVFyRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQixZQUFZLEdBQ2YsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDL0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFdEYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0seUJBQXlCLENB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QUFrQjttR0FBbEIsa0JBQWtCLCtMQVhoQjtZQUNQLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDO1lBQzlDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztZQUNoQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQztZQUNyQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQztTQUN4QyxvRUFnQmEsdUJBQXVCLHlGQVN2QixvQkFBb0IsMkJBQVMsV0FBVyx3RUFmM0MsOEJBQThCLDJFQUc5QixlQUFlLDZIQ3BFOUIsMmlFQW9FQTs7U0RQYSxrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFqQjlCLFNBQVM7aUNBQ00sS0FBSyxZQUNQLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCwwQkFBMEIsb0JBQW9CO3dCQUM5QyxZQUFZLG9CQUFvQjt3QkFDaEMsaUJBQWlCLG9CQUFvQjt3QkFDckMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7cUJBQ3hDLGtCQUNlLENBQUMsZ0JBQWdCLENBQUMsUUFDNUI7d0JBQ0Ysa0JBQWtCLEVBQUUsTUFBTTtxQkFDN0I7OEJBT2dCLFNBQVM7c0JBRHpCLFNBQVM7dUJBQUMsOEJBQThCO2dCQUl4QixRQUFRO3NCQUR4QixTQUFTO3VCQUFDLGVBQWU7Z0JBSVQsWUFBWTtzQkFENUIsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBVWxDLFFBQVE7c0JBRDFCLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDO2dCQU9oRCxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFLQyxZQUFZO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1R1aUFjdGl2ZVpvbmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hY3RpdmUtem9uZSc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtUdWlDb250ZXh0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpSXNOYXRpdmVGb2N1c2VkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2ZvY3VzJztcbmltcG9ydCB0eXBlIHtUdWlEYXRhTGlzdEhvc3R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7XG4gICAgdHVpQXNEYXRhTGlzdEhvc3QsXG4gICAgdHVpQXNPcHRpb25Db250ZW50LFxuICAgIFR1aURhdGFMaXN0RGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge1R1aURyb3Bkb3duRml4ZWQsIFR1aURyb3Bkb3duT3Blbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQgdHlwZSB7XG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZU0sXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVmFsdWVDb250ZW50Q29udGV4dCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHR5cGUge1R1aUl0ZW1zSGFuZGxlcnN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTmF0aXZlU2VsZWN0LFxuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIHR1aUFzQ29udHJvbCxcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jbGFzc2VzJztcbmltcG9ydCB7VFVJX0FSUk9XX01PREV9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1R1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQnO1xuaW1wb3J0IHtUVUlfU0VMRUNUX09QVElPTn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL3NlbGVjdC1vcHRpb24nO1xuaW1wb3J0IHtUVUlfVEVYVEZJRUxEX0NMRUFORVIsIFRVSV9URVhURklFTERfU0laRX0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9kaXJlY3RpdmVzJztcbmltcG9ydCB0eXBlIHtUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB7dHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHR5cGUge1R1aVNlbGVjdE9wdGlvbnN9IGZyb20gJy4vc2VsZWN0Lm9wdGlvbnMnO1xuaW1wb3J0IHtUVUlfU0VMRUNUX09QVElPTlN9IGZyb20gJy4vc2VsZWN0Lm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aVNlbGVjdENvbXBvbmVudCksXG4gICAgICAgIHR1aUFzRGF0YUxpc3RIb3N0KFR1aVNlbGVjdENvbXBvbmVudCksXG4gICAgICAgIHR1aUFzT3B0aW9uQ29udGVudChUVUlfU0VMRUNUX09QVElPTiksXG4gICAgXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1R1aURyb3Bkb3duRml4ZWRdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2VsZWN0Q29tcG9uZW50PFQ+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxUPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8VD5cbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpRHJvcGRvd25PcGVuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd24/OiBUdWlEcm9wZG93bk9wZW47XG5cbiAgICBAQ29udGVudENoaWxkKEFic3RyYWN0VHVpTmF0aXZlU2VsZWN0LCB7c3RhdGljOiB0cnVlfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdGl2ZVNlbGVjdD86IEFic3RyYWN0VHVpTmF0aXZlU2VsZWN0O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBpdGVtc0hhbmRsZXJzID0gaW5qZWN0PFR1aUl0ZW1zSGFuZGxlcnM8VD4+KFRVSV9JVEVNU19IQU5ETEVSUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRDbGVhbmVyID0gaW5qZWN0KFRVSV9URVhURklFTERfQ0xFQU5FUik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplID0gaW5qZWN0KFRVSV9URVhURklFTERfU0laRSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhcnJvd01vZGUgPSBpbmplY3QoVFVJX0FSUk9XX01PREUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfU0VMRUNUX09QVElPTlMpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YWxpc3Q6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxUdWlBY3RpdmVab25lPj47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG4gICAgcHJvdGVjdGVkIG9wZW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0cmluZ2lmeTogVHVpSXRlbXNIYW5kbGVyczxUPlsnc3RyaW5naWZ5J10gPSB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWRlbnRpdHlNYXRjaGVyOiBUdWlJdGVtc0hhbmRsZXJzPFQ+WydpZGVudGl0eU1hdGNoZXInXSA9XG4gICAgICAgIHRoaXMuaXRlbXNIYW5kbGVycy5pZGVudGl0eU1hdGNoZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZUNvbnRlbnQ6IFR1aVNlbGVjdE9wdGlvbnM8VD5bJ3ZhbHVlQ29udGVudCddID0gdGhpcy5vcHRpb25zLnZhbHVlQ29udGVudDtcblxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/PyBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAhIXRoaXMuZHJvcGRvd24/LnR1aURyb3Bkb3duT3BlblxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gbnVsbCA/ICcnIDogdGhpcy5zdHJpbmdpZnkodGhpcy52YWx1ZSkgfHwgJyAnO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVPcHRpb24ob3B0aW9uOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnZhbHVlID0gb3B0aW9uO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGFycm93KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHQ8VHVpU2l6ZUwgfCBUdWlTaXplTSB8IFR1aVNpemVTPlxuICAgID4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgPyB0aGlzLmFycm93TW9kZS5kaXNhYmxlZCA6IHRoaXMuYXJyb3dNb2RlLmludGVyYWN0aXZlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgbmF0aXZlRHJvcGRvd25Nb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5hdGl2ZVNlbGVjdCAmJiB0aGlzLmlzTW9iaWxlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRDb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpVmFsdWVDb250ZW50Q29udGV4dDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZUNvbnRlbnQgfHwgdGhpcy5jb21wdXRlZFZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbktleURvd25EZWxldGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRleHRmaWVsZENsZWFuZXIuY2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQocHJldmVudFNjcm9sbCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIHR1aURyb3Bkb3duT3Blbk1vbml0b3JcbiAgICBjbGFzcz1cInQtaG9zdGVkXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZGF0YWxpc3QgfHwgJydcIlxuICAgIFt0dWlEcm9wZG93bkVuYWJsZWRdPVwiaW50ZXJhY3RpdmUgJiYgIW5hdGl2ZURyb3Bkb3duTW9kZVwiXG4gICAgWyh0dWlEcm9wZG93bk9wZW4pXT1cIm9wZW5cIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1zZWxlY3RfX3RleHRmaWVsZFwiXG4gICAgICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgIFtmb2N1c2FibGVdPVwiY29tcHV0ZWRGb2N1c2FibGVcIlxuICAgICAgICBbaW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgICAgICBbbmF0aXZlSWRdPVwibmF0aXZlSWRcIlxuICAgICAgICBbcHNldWRvQWN0aXZlXT1cInBzZXVkb0FjdGl2ZVwiXG4gICAgICAgIFtwc2V1ZG9Gb2N1c109XCJjb21wdXRlZEZvY3VzZWRcIlxuICAgICAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICBbdHVpVGV4dGZpZWxkSWNvbl09XCJhcnJvdyA/IGljb24gOiAnJ1wiXG4gICAgICAgIFt2YWx1ZV09XCJjb21wdXRlZFZhbHVlXCJcbiAgICAgICAgKGtleWRvd24uYmFja3NwYWNlLnByZXZlbnQpPVwib25LZXlEb3duRGVsZXRlKClcIlxuICAgICAgICAoa2V5ZG93bi5kZWxldGUucHJldmVudCk9XCJvbktleURvd25EZWxldGUoKVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRhbnkoJGV2ZW50KSlcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0PlxuICAgICAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzTW9iaWxlXCJcbiAgICAgICAgICAgICAgICBzZWxlY3Q9XCJzZWxlY3RcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdFwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cInNlbGVjdFwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ2YWx1ZSAhPT0gbnVsbFwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXNlbGVjdF9fdmFsdWVcIlxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJ0dWlDb250ZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC12YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29tcHV0ZWRDb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHZhbHVlLCBhY3RpdmU6IGNvbXB1dGVkRm9jdXNlZH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1wcmltaXRpdmUtdmFsdWVcIlxuICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJ0ZXh0XCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90dWktcHJpbWl0aXZlLXRleHRmaWVsZD5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgdHVpV3JhcHBlclxuICAgICAgICAgICAgY2xhc3M9XCJ0LWljb25cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJhcnJvd1wiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xlZ2FjeS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUN2QixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQVFyRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQixZQUFZLEdBQ2YsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDL0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFDLHFCQUFxQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFdEYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFJbkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFFcEQsTUFpQmEsa0JBQ1QsU0FBUSwwQkFBNkI7SUFsQnpDOztRQThCcUIsa0JBQWEsR0FBRyxNQUFNLENBQXNCLGtCQUFrQixDQUFDLENBQUM7UUFDaEUscUJBQWdCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDakQsa0JBQWEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzQyxjQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLFlBQU8sR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUtuQyxhQUFRLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFHaEIsY0FBUyxHQUFxQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUczRSxvQkFBZSxHQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztRQUdoQyxpQkFBWSxHQUF3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztLQTREeEY7SUExREcsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLHNCQUFzQixJQUFJLElBQUksQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxDQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztZQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQ25DLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDO0lBQ3hFLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBUTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFTO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBYyxLQUFLO1FBR2YsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztJQUNwRixDQUFDO0lBRUQsSUFBYyxrQkFBa0I7UUFDNUIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDekIsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbkQsQ0FBQztJQUVTLFlBQVksQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVTLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztJQUVPLFVBQVUsQ0FBQyxhQUFhLEdBQUcsS0FBSztRQUNwQyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQztTQUN0RDtJQUNMLENBQUM7K0dBNUZRLGtCQUFrQjttR0FBbEIsa0JBQWtCLCtMQVhoQjtZQUNQLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDO1lBQzlDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztZQUNoQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQztZQUNyQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQztTQUN4QyxvRUFnQmEsdUJBQXVCLHlGQVN2QixvQkFBb0IsMkJBQVMsV0FBVyx3RUFmM0MsOEJBQThCLDJFQUc5QixlQUFlLDZIQ3BFOUIsODdEQStEQTs7U0RGYSxrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFqQjlCLFNBQVM7aUNBQ00sS0FBSyxZQUNQLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCwwQkFBMEIsb0JBQW9CO3dCQUM5QyxZQUFZLG9CQUFvQjt3QkFDaEMsaUJBQWlCLG9CQUFvQjt3QkFDckMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7cUJBQ3hDLGtCQUNlLENBQUMsZ0JBQWdCLENBQUMsUUFDNUI7d0JBQ0Ysa0JBQWtCLEVBQUUsTUFBTTtxQkFDN0I7OEJBT2dCLFNBQVM7c0JBRHpCLFNBQVM7dUJBQUMsOEJBQThCO2dCQUl4QixRQUFRO3NCQUR4QixTQUFTO3VCQUFDLGVBQWU7Z0JBSVQsWUFBWTtzQkFENUIsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBVWxDLFFBQVE7c0JBRDFCLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDO2dCQU9oRCxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFLQyxZQUFZO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1R1aUFjdGl2ZVpvbmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hY3RpdmUtem9uZSc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtUdWlDb250ZXh0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpSXNOYXRpdmVGb2N1c2VkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2ZvY3VzJztcbmltcG9ydCB0eXBlIHtUdWlEYXRhTGlzdEhvc3R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7XG4gICAgdHVpQXNEYXRhTGlzdEhvc3QsXG4gICAgdHVpQXNPcHRpb25Db250ZW50LFxuICAgIFR1aURhdGFMaXN0RGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge1R1aURyb3Bkb3duRml4ZWQsIFR1aURyb3Bkb3duT3Blbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQgdHlwZSB7XG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZU0sXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVmFsdWVDb250ZW50Q29udGV4dCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHR5cGUge1R1aUl0ZW1zSGFuZGxlcnN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTmF0aXZlU2VsZWN0LFxuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIHR1aUFzQ29udHJvbCxcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jbGFzc2VzJztcbmltcG9ydCB7VFVJX0FSUk9XX01PREV9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1R1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQnO1xuaW1wb3J0IHtUVUlfU0VMRUNUX09QVElPTn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL3NlbGVjdC1vcHRpb24nO1xuaW1wb3J0IHtUVUlfVEVYVEZJRUxEX0NMRUFORVIsIFRVSV9URVhURklFTERfU0laRX0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9kaXJlY3RpdmVzJztcbmltcG9ydCB0eXBlIHtUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB7dHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHR5cGUge1R1aVNlbGVjdE9wdGlvbnN9IGZyb20gJy4vc2VsZWN0Lm9wdGlvbnMnO1xuaW1wb3J0IHtUVUlfU0VMRUNUX09QVElPTlN9IGZyb20gJy4vc2VsZWN0Lm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aVNlbGVjdENvbXBvbmVudCksXG4gICAgICAgIHR1aUFzRGF0YUxpc3RIb3N0KFR1aVNlbGVjdENvbXBvbmVudCksXG4gICAgICAgIHR1aUFzT3B0aW9uQ29udGVudChUVUlfU0VMRUNUX09QVElPTiksXG4gICAgXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1R1aURyb3Bkb3duRml4ZWRdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2VsZWN0Q29tcG9uZW50PFQ+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxUPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8VD5cbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpRHJvcGRvd25PcGVuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd24/OiBUdWlEcm9wZG93bk9wZW47XG5cbiAgICBAQ29udGVudENoaWxkKEFic3RyYWN0VHVpTmF0aXZlU2VsZWN0LCB7c3RhdGljOiB0cnVlfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdGl2ZVNlbGVjdD86IEFic3RyYWN0VHVpTmF0aXZlU2VsZWN0O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBpdGVtc0hhbmRsZXJzID0gaW5qZWN0PFR1aUl0ZW1zSGFuZGxlcnM8VD4+KFRVSV9JVEVNU19IQU5ETEVSUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRDbGVhbmVyID0gaW5qZWN0KFRVSV9URVhURklFTERfQ0xFQU5FUik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplID0gaW5qZWN0KFRVSV9URVhURklFTERfU0laRSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhcnJvd01vZGUgPSBpbmplY3QoVFVJX0FSUk9XX01PREUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfU0VMRUNUX09QVElPTlMpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YWxpc3Q6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxUdWlBY3RpdmVab25lPj47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG4gICAgcHJvdGVjdGVkIG9wZW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0cmluZ2lmeTogVHVpSXRlbXNIYW5kbGVyczxUPlsnc3RyaW5naWZ5J10gPSB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWRlbnRpdHlNYXRjaGVyOiBUdWlJdGVtc0hhbmRsZXJzPFQ+WydpZGVudGl0eU1hdGNoZXInXSA9XG4gICAgICAgIHRoaXMuaXRlbXNIYW5kbGVycy5pZGVudGl0eU1hdGNoZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZUNvbnRlbnQ6IFR1aVNlbGVjdE9wdGlvbnM8VD5bJ3ZhbHVlQ29udGVudCddID0gdGhpcy5vcHRpb25zLnZhbHVlQ29udGVudDtcblxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/PyBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAhIXRoaXMuZHJvcGRvd24/LnR1aURyb3Bkb3duT3BlblxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gbnVsbCA/ICcnIDogdGhpcy5zdHJpbmdpZnkodGhpcy52YWx1ZSkgfHwgJyAnO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVPcHRpb24ob3B0aW9uOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnZhbHVlID0gb3B0aW9uO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGFycm93KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHQ8VHVpU2l6ZUwgfCBUdWlTaXplTSB8IFR1aVNpemVTPlxuICAgID4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW50ZXJhY3RpdmUgPyB0aGlzLmFycm93TW9kZS5kaXNhYmxlZCA6IHRoaXMuYXJyb3dNb2RlLmludGVyYWN0aXZlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgbmF0aXZlRHJvcGRvd25Nb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5hdGl2ZVNlbGVjdCAmJiB0aGlzLmlzTW9iaWxlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRDb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpVmFsdWVDb250ZW50Q29udGV4dDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZUNvbnRlbnQgfHwgdGhpcy5jb21wdXRlZFZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbktleURvd25EZWxldGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRleHRmaWVsZENsZWFuZXIuY2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQocHJldmVudFNjcm9sbCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIHR1aURyb3Bkb3duT3Blbk1vbml0b3JcbiAgICBjbGFzcz1cInQtaG9zdGVkXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZGF0YWxpc3QgfHwgJydcIlxuICAgIFt0dWlEcm9wZG93bkVuYWJsZWRdPVwiaW50ZXJhY3RpdmUgJiYgIW5hdGl2ZURyb3Bkb3duTW9kZVwiXG4gICAgWyh0dWlEcm9wZG93bk9wZW4pXT1cIm9wZW5cIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1zZWxlY3RfX3RleHRmaWVsZFwiXG4gICAgICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgIFtmb2N1c2FibGVdPVwiY29tcHV0ZWRGb2N1c2FibGVcIlxuICAgICAgICBbaW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgICAgICBbbmF0aXZlSWRdPVwibmF0aXZlSWRcIlxuICAgICAgICBbcHNldWRvQWN0aXZlXT1cInBzZXVkb0FjdGl2ZVwiXG4gICAgICAgIFtwc2V1ZG9Gb2N1c109XCJjb21wdXRlZEZvY3VzZWRcIlxuICAgICAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICBbdHVpVGV4dGZpZWxkSWNvbl09XCJhcnJvdyA/IGljb24gOiAnJ1wiXG4gICAgICAgIFt2YWx1ZV09XCJjb21wdXRlZFZhbHVlXCJcbiAgICAgICAgKGtleWRvd24uYmFja3NwYWNlLnByZXZlbnQpPVwib25LZXlEb3duRGVsZXRlKClcIlxuICAgICAgICAoa2V5ZG93bi5kZWxldGUucHJldmVudCk9XCJvbktleURvd25EZWxldGUoKVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRhbnkoJGV2ZW50KSlcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNNb2JpbGVcIlxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJzZWxlY3RcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzZWxlY3RcIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInZhbHVlICE9PSBudWxsXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktc2VsZWN0X192YWx1ZVwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cInR1aUNvbnRlbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb21wdXRlZENvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogdmFsdWUsIGFjdGl2ZTogY29tcHV0ZWRGb2N1c2VkfVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXByaW1pdGl2ZS12YWx1ZVwiXG4gICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cInRleHRcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3R1aS1wcmltaXRpdmUtdGV4dGZpZWxkPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpY29uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgICB0dWlXcmFwcGVyXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImFycm93XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -46,7 +46,7 @@ class TuiTagComponent {
46
46
  return this.removable && !this.disabled && !this.showLoader;
47
47
  }
48
48
  get displayText() {
49
- return this.editedText === null ? this.value : this.editedText;
49
+ return this.editedText ?? this.value;
50
50
  }
51
51
  get loaderSize() {
52
52
  return tuiSizeBigger(this.size) ? 's' : 'xs';
@@ -82,8 +82,8 @@ class TuiTagComponent {
82
82
  event.preventDefault();
83
83
  this.save(this.editedText || '');
84
84
  break;
85
- case 'escape':
86
85
  case 'esc':
86
+ case 'escape':
87
87
  event.preventDefault();
88
88
  this.stopEditing();
89
89
  this.el.focus();
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
155
155
  type: ViewChild,
156
156
  args: ['input', { read: ElementRef }]
157
157
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xlZ2FjeS9jb21wb25lbnRzL3RhZy90YWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvdGFnL3RhZy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXZELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUlqRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBRTlDOzs7R0FHRztBQUNILE1Ba0JhLGVBQWU7SUFsQjVCO1FBbUJxQixPQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixZQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXpDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFUCxVQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFHcEMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUdYLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsY0FBUyxHQUFvQixHQUFHLENBQUM7UUFHakMsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFHaEMsU0FBSSxHQUF3QixJQUFJLENBQUMsT0FB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SUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlVLE1BQU07c0JBRHJCLE1BQU07Z0JBSU8sS0FBSztzQkFEbEIsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge1RVSV9DT01NT05fSUNPTlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpU2l6ZUwsIFR1aVNpemVTLCBUdWlTaXplWFN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7dHVpU3RyaW5nSGFzaFRvSHNsfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9mb3JtYXQnO1xuaW1wb3J0IHt0dWlTaXplQmlnZ2VyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB0eXBlIHtUdWlTdGF0dXN9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdXRpbHMnO1xuaW1wb3J0IHR5cGUge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1RVSV9UQUdfT1BUSU9OU30gZnJvbSAnLi90YWcub3B0aW9ucyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IGRyb3AgaW4gdjUuMCB1c2Uge0BsaW5rIFR1aUNoaXB9XG4gKiBodHRwczovL3RhaWdhLXVpLmRldi9jb21wb25lbnRzL2NoaXBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICd0dWktdGFnLCBhW3R1aVRhZ10sIGJ1dHRvblt0dWlUYWddJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFnLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RhZy5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc3RhdHVzXSc6ICdzdGF0dXMnLFxuICAgICAgICAnW2NsYXNzLl9lZGl0aW5nXSc6ICdlZGl0aW5nJyxcbiAgICAgICAgJ1tjbGFzcy5faG92ZXJhYmxlXSc6ICdob3ZlcmFibGUnLFxuICAgICAgICAnW2NsYXNzLl9hdXRvY29sb3JdJzogJ2F1dG9Db2xvcicsXG4gICAgICAgICdbY2xhc3MuX2Rpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgICAgICcoa2V5ZG93bi5kZWxldGUpJzogJ3JlbW92ZSgkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLmJhY2tzcGFjZSknOiAncmVtb3ZlKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24uZW50ZXIpJzogJ2VkaXQoJGV2ZW50KScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFnQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfVEFHX09QVElPTlMpO1xuXG4gICAgcHJvdGVjdGVkIGVkaXRpbmcgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfQ09NTU9OX0lDT05TKTtcbiAgICBwcm90ZWN0ZWQgZWRpdGVkVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZSA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZWRpdGFibGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlcGFyYXRvcjogUmVnRXhwIHwgc3RyaW5nID0gJywnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4TGVuZ3RoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNpemU6IFR1aVNpemVMIHwgVHVpU2l6ZVMgPSB0aGlzLm9wdGlvbnMuc2l6ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dMb2FkZXIgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0YXR1czogVHVpU3RhdHVzID0gdGhpcy5vcHRpb25zLnN0YXR1cztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhvdmVyYWJsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVtb3ZhYmxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXV0b0NvbG9yOiBib29sZWFuID0gdGhpcy5vcHRpb25zLmF1dG9Db2xvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxlZnRDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50O1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJvdGVjdGVkIHNldCBpbnB1dChpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pikge1xuICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgIGlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgYmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvQ29sb3IgPyB0dWlTdHJpbmdIYXNoVG9Ic2wodGhpcy52YWx1ZSkgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY2FuUmVtb3ZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW1vdmFibGUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuc2hvd0xvYWRlcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGRpc3BsYXlUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRlZFRleHQgPT09IG51bGwgPyB0aGlzLnZhbHVlIDogdGhpcy5lZGl0ZWRUZXh0O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgbG9hZGVyU2l6ZSgpOiBUdWlTaXplWFMge1xuICAgICAgICByZXR1cm4gdHVpU2l6ZUJpZ2dlcih0aGlzLnNpemUpID8gJ3MnIDogJ3hzJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZWRpdChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbkVkaXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZWRpdGVkVGV4dCA9IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbW92ZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhblJlbW92ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZWRpdGVkLmVtaXQoJycpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbklucHV0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3VGFncyA9IHZhbHVlLnNwbGl0KHRoaXMuc2VwYXJhdG9yKTtcblxuICAgICAgICBpZiAobmV3VGFncy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmUoU3RyaW5nKG5ld1RhZ3MpKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lZGl0ZWRUZXh0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBjYXNlICdlbnRlcic6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmUodGhpcy5lZGl0ZWRUZXh0IHx8ICcnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2VzY2FwZSc6XG4gICAgICAgICAgICBjYXNlICdlc2MnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wRWRpdGluZygpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWwuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5lZGl0ZWRUZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmUodGhpcy5lZGl0ZWRUZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNhbkVkaXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRhYmxlICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnNob3dMb2FkZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wRWRpdGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZWRpdGVkVGV4dCA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYXZlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wRWRpdGluZygpO1xuICAgICAgICB0aGlzLmVkaXRlZC5lbWl0KHZhbHVlLnRyaW0oKSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidC10YWdcIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYmFja2dyb3VuZENvbG9yXCJcbiAgICAoZGJsY2xpY2spPVwiZWRpdCgkZXZlbnQpXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwibGVmdENvbnRlbnRcIlxuICAgICAgICBjbGFzcz1cInQtY29udGVudFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJsZWZ0Q29udGVudCBhcyB0ZXh0XCI+XG4gICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktdGFnX190ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJ0LXRleHRcIlxuICAgICAgICBbdGV4dENvbnRlbnRdPVwiZGlzcGxheVRleHRcIlxuICAgID48L3NwYW4+XG4gICAgPHR1aS1sb2FkZXJcbiAgICAgICAgKm5nSWY9XCJzaG93TG9hZGVyXCJcbiAgICAgICAgY2xhc3M9XCJ0LWNvbnRlbnRcIlxuICAgICAgICBbaW5oZXJpdENvbG9yXT1cInRydWVcIlxuICAgICAgICBbc2l6ZV09XCJsb2FkZXJTaXplXCJcbiAgICAvPlxuICAgIDx0dWktaWNvblxuICAgICAgICAqbmdJZj1cImNhblJlbW92ZVwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktdGFnX19yZW1vdmVcIlxuICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgIFtpY29uXT1cImljb25zLmNsb3NlXCJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgkZXZlbnQpXCJcbiAgICAgICAgKG1vdXNlZG93bi5zdG9wLnByZXZlbnQuc2lsZW50KT1cIigwKVwiXG4gICAgLz5cbjwvZGl2PlxuPGlucHV0XG4gICAgKm5nSWY9XCJlZGl0aW5nXCJcbiAgICAjaW5wdXRcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLXRhZ19fZWRpdFwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwidC1lZGl0XCJcbiAgICBbYXR0ci5tYXhMZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICBbbmdNb2RlbF09XCJlZGl0ZWRUZXh0XCJcbiAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4vPlxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xlZ2FjeS9jb21wb25lbnRzL3RhZy90YWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvdGFnL3RhZy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXZELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUlqRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBRTlDOzs7R0FHRztBQUNILE1Ba0JhLGVBQWU7SUFsQjVCO1FBbUJxQixPQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixZQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXpDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFUCxVQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFHcEMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUdYLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsY0FBUyxHQUFvQixHQUFHLENBQUM7UUFHakMsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFHaEMsU0FBSSxHQUF3QixJQUFJLENBQUMsT0FB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UztzQkFEZixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJVSxNQUFNO3NCQURyQixNQUFNO2dCQUlPLEtBQUs7c0JBRGxCLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtUVUlfQ09NTU9OX0lDT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVMLCBUdWlTaXplUywgVHVpU2l6ZVhTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge3R1aVN0cmluZ0hhc2hUb0hzbH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvZm9ybWF0JztcbmltcG9ydCB7dHVpU2l6ZUJpZ2dlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQgdHlwZSB7VHVpU3RhdHVzfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3V0aWxzJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUVUlfVEFHX09QVElPTlN9IGZyb20gJy4vdGFnLm9wdGlvbnMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkOiBkcm9wIGluIHY1LjAgdXNlIHtAbGluayBUdWlDaGlwfVxuICogaHR0cHM6Ly90YWlnYS11aS5kZXYvY29tcG9uZW50cy9jaGlwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIHNlbGVjdG9yOiAndHVpLXRhZywgYVt0dWlUYWddLCBidXR0b25bdHVpVGFnXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhZy50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWcuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXR1c10nOiAnc3RhdHVzJyxcbiAgICAgICAgJ1tjbGFzcy5fZWRpdGluZ10nOiAnZWRpdGluZycsXG4gICAgICAgICdbY2xhc3MuX2hvdmVyYWJsZV0nOiAnaG92ZXJhYmxlJyxcbiAgICAgICAgJ1tjbGFzcy5fYXV0b2NvbG9yXSc6ICdhdXRvQ29sb3InLFxuICAgICAgICAnW2NsYXNzLl9kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICAgICAnKGtleWRvd24uZGVsZXRlKSc6ICdyZW1vdmUoJGV2ZW50KScsXG4gICAgICAgICcoa2V5ZG93bi5iYWNrc3BhY2UpJzogJ3JlbW92ZSgkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLmVudGVyKSc6ICdlZGl0KCRldmVudCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRhZ0NvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX1RBR19PUFRJT05TKTtcblxuICAgIHByb3RlY3RlZCBlZGl0aW5nID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUyk7XG4gICAgcHJvdGVjdGVkIGVkaXRlZFRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWUgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVkaXRhYmxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXBhcmF0b3I6IFJlZ0V4cCB8IHN0cmluZyA9ICcsJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heExlbmd0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaXplOiBUdWlTaXplTCB8IFR1aVNpemVTID0gdGhpcy5vcHRpb25zLnNpemU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93TG9hZGVyID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGF0dXM6IFR1aVN0YXR1cyA9IHRoaXMub3B0aW9ucy5zdGF0dXM7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBob3ZlcmFibGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlbW92YWJsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9Db2xvcjogYm9vbGVhbiA9IHRoaXMub3B0aW9ucy5hdXRvQ29sb3I7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsZWZ0Q29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBlZGl0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByb3RlY3RlZCBzZXQgaW5wdXQoaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4pIHtcbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICBpbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b0NvbG9yID8gdHVpU3RyaW5nSGFzaFRvSHNsKHRoaXMudmFsdWUpIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNhblJlbW92ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZhYmxlICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnNob3dMb2FkZXI7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBkaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGl0ZWRUZXh0ID8/IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBsb2FkZXJTaXplKCk6IFR1aVNpemVYUyB7XG4gICAgICAgIHJldHVybiB0dWlTaXplQmlnZ2VyKHRoaXMuc2l6ZSkgPyAncycgOiAneHMnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlZGl0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY2FuRWRpdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lZGl0ZWRUZXh0ID0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVtb3ZlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY2FuUmVtb3ZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5lZGl0ZWQuZW1pdCgnJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uSW5wdXQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdUYWdzID0gdmFsdWUuc3BsaXQodGhpcy5zZXBhcmF0b3IpO1xuXG4gICAgICAgIGlmIChuZXdUYWdzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZShTdHJpbmcobmV3VGFncykpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVkaXRlZFRleHQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2VudGVyJzpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZSh0aGlzLmVkaXRlZFRleHQgfHwgJycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZXNjJzpcbiAgICAgICAgICAgIGNhc2UgJ2VzY2FwZSc6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BFZGl0aW5nKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRlZFRleHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZSh0aGlzLmVkaXRlZFRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY2FuRWRpdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdGFibGUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuc2hvd0xvYWRlcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BFZGl0aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lZGl0ZWRUZXh0ID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhdmUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BFZGl0aW5nKCk7XG4gICAgICAgIHRoaXMuZWRpdGVkLmVtaXQodmFsdWUudHJpbSgpKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ0LXRhZ1wiXG4gICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIlxuICAgIChkYmxjbGljayk9XCJlZGl0KCRldmVudClcIlxuPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJsZWZ0Q29udGVudFwiXG4gICAgICAgIGNsYXNzPVwidC1jb250ZW50XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImxlZnRDb250ZW50IGFzIHRleHRcIj5cbiAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHNwYW5cbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS10YWdfX3RleHRcIlxuICAgICAgICBjbGFzcz1cInQtdGV4dFwiXG4gICAgICAgIFt0ZXh0Q29udGVudF09XCJkaXNwbGF5VGV4dFwiXG4gICAgPjwvc3Bhbj5cbiAgICA8dHVpLWxvYWRlclxuICAgICAgICAqbmdJZj1cInNob3dMb2FkZXJcIlxuICAgICAgICBjbGFzcz1cInQtY29udGVudFwiXG4gICAgICAgIFtpbmhlcml0Q29sb3JdPVwidHJ1ZVwiXG4gICAgICAgIFtzaXplXT1cImxvYWRlclNpemVcIlxuICAgIC8+XG4gICAgPHR1aS1pY29uXG4gICAgICAgICpuZ0lmPVwiY2FuUmVtb3ZlXCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS10YWdfX3JlbW92ZVwiXG4gICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgW2ljb25dPVwiaWNvbnMuY2xvc2VcIlxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlKCRldmVudClcIlxuICAgICAgICAobW91c2Vkb3duLnN0b3AucHJldmVudC5zaWxlbnQpPVwiKDApXCJcbiAgICAvPlxuPC9kaXY+XG48aW5wdXRcbiAgICAqbmdJZj1cImVkaXRpbmdcIlxuICAgICNpbnB1dFxuICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktdGFnX19lZGl0XCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgY2xhc3M9XCJ0LWVkaXRcIlxuICAgIFthdHRyLm1heExlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgIFtuZ01vZGVsXT1cImVkaXRlZFRleHRcIlxuICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnB1dCgkZXZlbnQpXCJcbi8+XG4iXX0=