rd-outer-component 0.1.38 → 0.1.39

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 (30) hide show
  1. package/esm2020/lib/modules/custom-checkbox/custom-checkbox.component.mjs +6 -19
  2. package/esm2020/lib/modules/custom-date/custom-date.component.mjs +7 -25
  3. package/esm2020/lib/modules/custom-filter/custom-filter-date/custom-filter-date.component.mjs +4 -23
  4. package/esm2020/lib/modules/custom-filter/custom-filter.component.mjs +1 -1
  5. package/esm2020/lib/modules/custom-input/custom-input.component.mjs +4 -17
  6. package/esm2020/lib/modules/custom-input-amount/custom-input-amount.component.mjs +3 -17
  7. package/esm2020/lib/modules/custom-radio/custom-radio.component.mjs +4 -17
  8. package/esm2020/lib/modules/custom-select/industry-cascader/industry-cascader.component.mjs +7 -25
  9. package/esm2020/lib/modules/custom-select/pure-select-token/pure-select-token.component.mjs +1 -1
  10. package/esm2020/lib/modules/custom-select/rd-select.component.mjs +1 -1
  11. package/esm2020/lib/modules/form-item/form-item.component.mjs +4 -17
  12. package/esm2020/lib/modules/rd-button/rd-button.component.mjs +7 -18
  13. package/esm2020/lib/modules/rd-phone/rd-phone.component.mjs +5 -18
  14. package/esm2020/lib/modules/rd-select-value/rd-select-value.component.mjs +7 -27
  15. package/fesm2015/rd-outer-component.mjs +40 -205
  16. package/fesm2015/rd-outer-component.mjs.map +1 -1
  17. package/fesm2020/rd-outer-component.mjs +40 -205
  18. package/fesm2020/rd-outer-component.mjs.map +1 -1
  19. package/lib/modules/custom-checkbox/custom-checkbox.component.d.ts +1 -4
  20. package/lib/modules/custom-date/custom-date.component.d.ts +1 -4
  21. package/lib/modules/custom-filter/custom-filter-date/custom-filter-date.component.d.ts +1 -4
  22. package/lib/modules/custom-input/custom-input.component.d.ts +1 -4
  23. package/lib/modules/custom-input-amount/custom-input-amount.component.d.ts +1 -4
  24. package/lib/modules/custom-radio/custom-radio.component.d.ts +1 -4
  25. package/lib/modules/custom-select/industry-cascader/industry-cascader.component.d.ts +1 -4
  26. package/lib/modules/form-item/form-item.component.d.ts +1 -4
  27. package/lib/modules/rd-button/rd-button.component.d.ts +1 -4
  28. package/lib/modules/rd-phone/rd-phone.component.d.ts +1 -4
  29. package/lib/modules/rd-select-value/rd-select-value.component.d.ts +1 -4
  30. package/package.json +1 -1
@@ -35,7 +35,7 @@ export class RdFilterComponent {
35
35
  }
36
36
  }
37
37
  RdFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RdFilterComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
38
- RdFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RdFilterComponent, selector: "app-rd-filter", inputs: { lang: "lang", filterArr: "filterArr", statusDisplayConfigs: "statusDisplayConfigs", statusGroupConfigs: "statusGroupConfigs", clearText: "clearText" }, outputs: { defSearchChange: "defSearchChange", clearFilter: "clearFilter" }, ngImport: i0, template: "<div class=\"rd-custom-filter-wrap\" *ngIf=\"filterArr?.length\">\n <ng-container *ngFor=\"let item of filterArr\">\n <ng-container [ngSwitch]=\"item.formType\">\n <app-rd-filter-date\n *ngSwitchCase=\"filterTypeEnum.date\"\n [item]=\"item\"\n (handleChangeValue)=\"handleChangeValue($event)\"\n >\n </app-rd-filter-date>\n <app-rd-filter-select\n *ngSwitchCase=\"filterTypeEnum.select\"\n [item]=\"item\"\n [statusGroupConfigs]=\"statusGroupConfigs\"\n [statusDisplayConfigs]=\"statusDisplayConfigs\"\n (handleChangeValue)=\"handleChangeValue($event)\"\n ></app-rd-filter-select>\n <app-rd-filter-input\n *ngSwitchCase=\"filterTypeEnum.input\"\n [item]=\"item\"\n (handleChangeValue)=\"handleChangeValue($event)\"\n ></app-rd-filter-input>\n </ng-container>\n </ng-container>\n <button\n [disabled]=\"!isClearAble\"\n (click)=\"clear()\"\n class=\"rd-custom-filter-clear\"\n nz-button\n nzType=\"link\"\n >\n {{ getClearTrans() }}\n </button>\n</div>\n", styles: [".rd-custom-filter-wrap{display:flex;align-items:center;gap:8px;padding-top:12px;padding-bottom:12px}.rd-custom-filter-clear{font-size:13px;font-weight:600;color:var(--rd-copy-brand);padding:0}.rd-custom-filter-clear:disabled{color:var(--rd-copy-disable)}\n", "input{border:none}textarea[disabled]{background:var(--input-bg-disable)!important}.rd-form-item{position:relative;border-radius:12px;padding:2px 0;border:1px solid var(--rd-input-fg-default);background-color:var(--rd-input-bg-default);width:100%;height:64px}.rd-form-item .rd-form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}.rd-form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--rd-copy-secondary);transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:600;line-height:1}.rd-form-item-input{color:var(--rd-copy-primary);font-size:14px;width:100%;font-weight:500;padding:22px 16px 12px;height:52px;border-radius:12px}.rd-form-item-input:focus,.rd-form-item-input:not(:placeholder-shown){top:10px}.rd-form-item .rd-form-item-input:focus~.rd-form-item-label,.rd-form-item .rd-form-item-input:not(:placeholder-shown)~.rd-form-item-label{top:18px;font-size:12px}.rd-form-item-select{width:100%}.rd-form-item-select ::ng-deep .ant-select-selection-item{color:var(--rd-copy-primary);font-size:14px;font-weight:500}.rd-form-item.rd-selected .rd-form-item-label{top:16px;font-size:12px}.rd-form-item.rd-selected .rd-form-item-select{top:10px}.rd-form-item.rd-disabled{background-color:var(--rd-input-bg-disable);border-color:var(--rd-input-fg-disable)}.rd-form-item.rd-disabled .rd-form-item-label,.rd-form-item.rd-disabled .rd-form-item-input{color:var(--rd-copy-disable)}.rd-form-item.rd-disabled ::ng-deep .ant-select-selection-item{color:var(--rd-copy-disable)}.rd-form-item.rd-error{border-color:var(--rd-input-fg-danger)}.rd-form-item-error{color:var(--rd-copy-danger);font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.rd-form-item-error img{width:16px}.rd-form-number-item{position:relative;border-radius:12px;padding:12px 16px;background-color:var(--rd-input-bg-default);border:1px solid var(--rd-input-fg-default);width:100%}.rd-form-number-item .rd-item-label{color:var(--rd-copy-secondary);font-size:12px;font-weight:600}.rd-form-number-item .rd-item-content{display:flex;align-items:center;font-size:32px;font-weight:600;line-height:48px;color:var(--rd-copy-disable)}.rd-form-number-item .rd-item-content-value{flex:1;font-size:32px;font-weight:600;line-height:48px;color:var(--rd-copy-primary);background-color:var(--rd-input-bg-default);border:none;padding:4px 0}.rd-form-number-item .rd-item-content-value:focus,.rd-form-number-item .rd-item-content-value:active,.rd-form-number-item .rd-item-content-value:hover{outline:none;box-shadow:none}.rd-form-number-item .rd-item-content-value ::ng-deep .ant-input-number-handler-wrap{display:none}.rd-form-number-item .rd-item-content-value ::ng-deep .ant-input-number-input{font-size:32px;font-weight:600;line-height:48px}.rd-form-number-item .rd-item-content-value ::ng-deep .ant-input-number-input::placeholder{color:var(--rd-copy-disable)}.rd-form-number-item .rd-item-content-symbol{flex-shrink:0}.rd-form-number-item ::ng-deep .rd-item-warning{font-weight:500;font-size:12px;color:var(--rd-copy-secondary);margin-top:4px;padding:0 12px}.rd-form-number-item.rd-disabled{background-color:var(--rd-input-bg-disable);border-color:var(--rd-input-fg-disable)}.rd-form-number-item.rd-disabled .rd-item-label,.rd-form-number-item.rd-disabled .rd-item-content-value{background:var(--rd-input-bg-disable);color:var(--rd-copy-disable)}.rd-form-number-item.rd-error{border-color:var(--rd-input-fg-danger)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i4.RdFilterSelectComponent, selector: "app-rd-filter-select", inputs: ["item", "statusDisplayConfigs", "statusGroupConfigs"], outputs: ["handleChangeValue"] }, { kind: "component", type: i5.RdFilterDateComponent, selector: "app-rd-filter-date", inputs: ["item", "theme"], outputs: ["handleChangeValue"] }, { kind: "component", type: i6.RdFilterInputComponent, selector: "app-rd-filter-input", inputs: ["item"], outputs: ["handleChangeValue"] }] });
38
+ RdFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RdFilterComponent, selector: "app-rd-filter", inputs: { lang: "lang", filterArr: "filterArr", statusDisplayConfigs: "statusDisplayConfigs", statusGroupConfigs: "statusGroupConfigs", clearText: "clearText" }, outputs: { defSearchChange: "defSearchChange", clearFilter: "clearFilter" }, ngImport: i0, template: "<div class=\"rd-custom-filter-wrap\" *ngIf=\"filterArr?.length\">\n <ng-container *ngFor=\"let item of filterArr\">\n <ng-container [ngSwitch]=\"item.formType\">\n <app-rd-filter-date\n *ngSwitchCase=\"filterTypeEnum.date\"\n [item]=\"item\"\n (handleChangeValue)=\"handleChangeValue($event)\"\n >\n </app-rd-filter-date>\n <app-rd-filter-select\n *ngSwitchCase=\"filterTypeEnum.select\"\n [item]=\"item\"\n [statusGroupConfigs]=\"statusGroupConfigs\"\n [statusDisplayConfigs]=\"statusDisplayConfigs\"\n (handleChangeValue)=\"handleChangeValue($event)\"\n ></app-rd-filter-select>\n <app-rd-filter-input\n *ngSwitchCase=\"filterTypeEnum.input\"\n [item]=\"item\"\n (handleChangeValue)=\"handleChangeValue($event)\"\n ></app-rd-filter-input>\n </ng-container>\n </ng-container>\n <button\n [disabled]=\"!isClearAble\"\n (click)=\"clear()\"\n class=\"rd-custom-filter-clear\"\n nz-button\n nzType=\"link\"\n >\n {{ getClearTrans() }}\n </button>\n</div>\n", styles: [".rd-custom-filter-wrap{display:flex;align-items:center;gap:8px;padding-top:12px;padding-bottom:12px}.rd-custom-filter-clear{font-size:13px;font-weight:600;color:var(--rd-copy-brand);padding:0}.rd-custom-filter-clear:disabled{color:var(--rd-copy-disable)}\n", "input{border:none}textarea[disabled]{background:var(--input-bg-disable)!important}.rd-form-item{position:relative;border-radius:12px;padding:2px 0;border:1px solid var(--rd-input-fg-default);background-color:var(--rd-input-bg-default);width:100%;height:64px}.rd-form-item .rd-form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}.rd-form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--rd-copy-secondary);transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:600;line-height:1}.rd-form-item-input{color:var(--rd-copy-primary);font-size:14px;width:100%;font-weight:500;padding:22px 16px 12px;height:52px;border-radius:12px}.rd-form-item-input:focus,.rd-form-item-input:not(:placeholder-shown){top:10px}.rd-form-item .rd-form-item-input:focus~.rd-form-item-label,.rd-form-item .rd-form-item-input:not(:placeholder-shown)~.rd-form-item-label{top:18px;font-size:12px}.rd-form-item-select{width:100%}.rd-form-item-select ::ng-deep .ant-select-selection-item{color:var(--rd-copy-primary);font-size:14px;font-weight:500}.rd-form-item.rd-selected .rd-form-item-label{top:16px;font-size:12px}.rd-form-item.rd-selected .rd-form-item-select{top:10px}.rd-form-item.rd-disabled{background-color:var(--rd-input-bg-disable);border-color:var(--rd-input-fg-disable)}.rd-form-item.rd-disabled .rd-form-item-label,.rd-form-item.rd-disabled .rd-form-item-input{color:var(--rd-copy-disable)}.rd-form-item.rd-disabled ::ng-deep .ant-select-selection-item{color:var(--rd-copy-disable)}.rd-form-item.rd-error{border-color:var(--rd-input-fg-danger)}.rd-form-item-error{color:var(--rd-copy-danger);font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.rd-form-item-error img{width:16px}.rd-form-number-item{position:relative;border-radius:12px;padding:12px 16px;background-color:var(--rd-input-bg-default);border:1px solid var(--rd-input-fg-default);width:100%}.rd-form-number-item .rd-item-label{color:var(--rd-copy-secondary);font-size:12px;font-weight:600}.rd-form-number-item .rd-item-content{display:flex;align-items:center;font-size:32px;font-weight:600;line-height:48px;color:var(--rd-copy-disable)}.rd-form-number-item .rd-item-content-value{flex:1;font-size:32px;font-weight:600;line-height:48px;color:var(--rd-copy-primary);background-color:var(--rd-input-bg-default);border:none;padding:4px 0}.rd-form-number-item .rd-item-content-value:focus,.rd-form-number-item .rd-item-content-value:active,.rd-form-number-item .rd-item-content-value:hover{outline:none;box-shadow:none}.rd-form-number-item .rd-item-content-value ::ng-deep .ant-input-number-handler-wrap{display:none}.rd-form-number-item .rd-item-content-value ::ng-deep .ant-input-number-input{font-size:32px;font-weight:600;line-height:48px}.rd-form-number-item .rd-item-content-value ::ng-deep .ant-input-number-input::placeholder{color:var(--rd-copy-disable)}.rd-form-number-item .rd-item-content-symbol{flex-shrink:0}.rd-form-number-item ::ng-deep .rd-item-warning{font-weight:500;font-size:12px;color:var(--rd-copy-secondary);margin-top:4px;padding:0 12px}.rd-form-number-item.rd-disabled{background-color:var(--rd-input-bg-disable);border-color:var(--rd-input-fg-disable)}.rd-form-number-item.rd-disabled .rd-item-label,.rd-form-number-item.rd-disabled .rd-item-content-value{background:var(--rd-input-bg-disable);color:var(--rd-copy-disable)}.rd-form-number-item.rd-error{border-color:var(--rd-input-fg-danger)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i4.RdFilterSelectComponent, selector: "app-rd-filter-select", inputs: ["item", "statusDisplayConfigs", "statusGroupConfigs"], outputs: ["handleChangeValue"] }, { kind: "component", type: i5.RdFilterDateComponent, selector: "app-rd-filter-date", inputs: ["item"], outputs: ["handleChangeValue"] }, { kind: "component", type: i6.RdFilterInputComponent, selector: "app-rd-filter-input", inputs: ["item"], outputs: ["handleChangeValue"] }] });
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RdFilterComponent, decorators: [{
40
40
  type: Component,
41
41
  args: [{ selector: 'app-rd-filter', template: "<div class=\"rd-custom-filter-wrap\" *ngIf=\"filterArr?.length\">\n <ng-container *ngFor=\"let item of filterArr\">\n <ng-container [ngSwitch]=\"item.formType\">\n <app-rd-filter-date\n *ngSwitchCase=\"filterTypeEnum.date\"\n [item]=\"item\"\n (handleChangeValue)=\"handleChangeValue($event)\"\n >\n </app-rd-filter-date>\n <app-rd-filter-select\n *ngSwitchCase=\"filterTypeEnum.select\"\n [item]=\"item\"\n [statusGroupConfigs]=\"statusGroupConfigs\"\n [statusDisplayConfigs]=\"statusDisplayConfigs\"\n (handleChangeValue)=\"handleChangeValue($event)\"\n ></app-rd-filter-select>\n <app-rd-filter-input\n *ngSwitchCase=\"filterTypeEnum.input\"\n [item]=\"item\"\n (handleChangeValue)=\"handleChangeValue($event)\"\n ></app-rd-filter-input>\n </ng-container>\n </ng-container>\n <button\n [disabled]=\"!isClearAble\"\n (click)=\"clear()\"\n class=\"rd-custom-filter-clear\"\n nz-button\n nzType=\"link\"\n >\n {{ getClearTrans() }}\n </button>\n</div>\n", styles: [".rd-custom-filter-wrap{display:flex;align-items:center;gap:8px;padding-top:12px;padding-bottom:12px}.rd-custom-filter-clear{font-size:13px;font-weight:600;color:var(--rd-copy-brand);padding:0}.rd-custom-filter-clear:disabled{color:var(--rd-copy-disable)}\n", "input{border:none}textarea[disabled]{background:var(--input-bg-disable)!important}.rd-form-item{position:relative;border-radius:12px;padding:2px 0;border:1px solid var(--rd-input-fg-default);background-color:var(--rd-input-bg-default);width:100%;height:64px}.rd-form-item .rd-form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}.rd-form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--rd-copy-secondary);transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:600;line-height:1}.rd-form-item-input{color:var(--rd-copy-primary);font-size:14px;width:100%;font-weight:500;padding:22px 16px 12px;height:52px;border-radius:12px}.rd-form-item-input:focus,.rd-form-item-input:not(:placeholder-shown){top:10px}.rd-form-item .rd-form-item-input:focus~.rd-form-item-label,.rd-form-item .rd-form-item-input:not(:placeholder-shown)~.rd-form-item-label{top:18px;font-size:12px}.rd-form-item-select{width:100%}.rd-form-item-select ::ng-deep .ant-select-selection-item{color:var(--rd-copy-primary);font-size:14px;font-weight:500}.rd-form-item.rd-selected .rd-form-item-label{top:16px;font-size:12px}.rd-form-item.rd-selected .rd-form-item-select{top:10px}.rd-form-item.rd-disabled{background-color:var(--rd-input-bg-disable);border-color:var(--rd-input-fg-disable)}.rd-form-item.rd-disabled .rd-form-item-label,.rd-form-item.rd-disabled .rd-form-item-input{color:var(--rd-copy-disable)}.rd-form-item.rd-disabled ::ng-deep .ant-select-selection-item{color:var(--rd-copy-disable)}.rd-form-item.rd-error{border-color:var(--rd-input-fg-danger)}.rd-form-item-error{color:var(--rd-copy-danger);font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.rd-form-item-error img{width:16px}.rd-form-number-item{position:relative;border-radius:12px;padding:12px 16px;background-color:var(--rd-input-bg-default);border:1px solid var(--rd-input-fg-default);width:100%}.rd-form-number-item .rd-item-label{color:var(--rd-copy-secondary);font-size:12px;font-weight:600}.rd-form-number-item .rd-item-content{display:flex;align-items:center;font-size:32px;font-weight:600;line-height:48px;color:var(--rd-copy-disable)}.rd-form-number-item .rd-item-content-value{flex:1;font-size:32px;font-weight:600;line-height:48px;color:var(--rd-copy-primary);background-color:var(--rd-input-bg-default);border:none;padding:4px 0}.rd-form-number-item .rd-item-content-value:focus,.rd-form-number-item .rd-item-content-value:active,.rd-form-number-item .rd-item-content-value:hover{outline:none;box-shadow:none}.rd-form-number-item .rd-item-content-value ::ng-deep .ant-input-number-handler-wrap{display:none}.rd-form-number-item .rd-item-content-value ::ng-deep .ant-input-number-input{font-size:32px;font-weight:600;line-height:48px}.rd-form-number-item .rd-item-content-value ::ng-deep .ant-input-number-input::placeholder{color:var(--rd-copy-disable)}.rd-form-number-item .rd-item-content-symbol{flex-shrink:0}.rd-form-number-item ::ng-deep .rd-item-warning{font-weight:500;font-size:12px;color:var(--rd-copy-secondary);margin-top:4px;padding:0 12px}.rd-form-number-item.rd-disabled{background-color:var(--rd-input-bg-disable);border-color:var(--rd-input-fg-disable)}.rd-form-number-item.rd-disabled .rd-item-label,.rd-form-number-item.rd-disabled .rd-item-content-value{background:var(--rd-input-bg-disable);color:var(--rd-copy-disable)}.rd-form-number-item.rd-error{border-color:var(--rd-input-fg-danger)}\n"] }]
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, forwardRef, Input, Output, HostBinding, } from '@angular/core';
1
+ import { Component, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
2
2
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
3
  import Big from 'big.js';
4
4
  import { formatBigNumber } from '../../utils/big-number';
@@ -9,12 +9,6 @@ import * as i3 from "@angular/forms";
9
9
  import * as i4 from "ng-zorro-antd/input";
10
10
  import * as i5 from "ngx-mask";
11
11
  export class CustomInputComponent {
12
- get hostThemeLight() {
13
- return this.theme === 'light';
14
- }
15
- get hostThemeDark() {
16
- return this.theme === 'dark';
17
- }
18
12
  get currentErrorMessage() {
19
13
  if (!this.control?.errors)
20
14
  return '';
@@ -68,6 +62,7 @@ export class CustomInputComponent {
68
62
  this.maskType = 'text';
69
63
  this.type = 'text';
70
64
  this.allowNegativeNumbers = true;
65
+ /** Local color context. Omit to inherit body `.theme-light` / `.theme-dark`. */
71
66
  this.required = false;
72
67
  this.size = 'default';
73
68
  this.errorMessages = {
@@ -192,7 +187,7 @@ export class CustomInputComponent {
192
187
  }
193
188
  }
194
189
  CustomInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
195
- CustomInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomInputComponent, selector: "app-rd-input", inputs: { label: "label", symbol: "symbol", name: "name", disabled: "disabled", maskNumber: "maskNumber", maskType: "maskType", type: "type", allowNegativeNumbers: "allowNegativeNumbers", theme: "theme", required: "required", placeholder: "placeholder", min: "min", max: "max", minLength: "minLength", maxLength: "maxLength", pattern: "pattern", customValidator: "customValidator", size: "size", errorMessages: "errorMessages" }, outputs: { valueChange: "valueChange", focus: "focus", blur: "blur" }, host: { properties: { "class.theme-light": "this.hostThemeLight", "class.theme-dark": "this.hostThemeDark" } }, providers: [
190
+ CustomInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomInputComponent, selector: "app-rd-input", inputs: { label: "label", symbol: "symbol", name: "name", disabled: "disabled", maskNumber: "maskNumber", maskType: "maskType", type: "type", allowNegativeNumbers: "allowNegativeNumbers", required: "required", placeholder: "placeholder", min: "min", max: "max", minLength: "minLength", maxLength: "maxLength", pattern: "pattern", customValidator: "customValidator", size: "size", errorMessages: "errorMessages" }, outputs: { valueChange: "valueChange", focus: "focus", blur: "blur" }, providers: [
196
191
  {
197
192
  provide: NG_VALUE_ACCESSOR,
198
193
  useExisting: forwardRef(() => CustomInputComponent),
@@ -234,8 +229,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
234
229
  type: Input
235
230
  }], allowNegativeNumbers: [{
236
231
  type: Input
237
- }], theme: [{
238
- type: Input
239
232
  }], required: [{
240
233
  type: Input
241
234
  }], placeholder: [{
@@ -262,11 +255,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
262
255
  type: Output
263
256
  }], blur: [{
264
257
  type: Output
265
- }], hostThemeLight: [{
266
- type: HostBinding,
267
- args: ['class.theme-light']
268
- }], hostThemeDark: [{
269
- type: HostBinding,
270
- args: ['class.theme-dark']
271
258
  }] } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1pbnB1dC9jdXN0b20taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFFTixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsR0FJbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEdBQUcsTUFBTSxRQUFRLENBQUM7QUFDekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBdUJ6RCxNQUFNLE9BQU8sb0JBQW9CO0lBOEIvQixJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFDSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBVUQsSUFBSSxtQkFBbUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzQyxRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxDQUNMLEdBQUc7b0JBQ0gsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ3ZFLENBQUM7WUFDSixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxDQUNMLEdBQUc7b0JBQ0gsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUNwQyxpQkFBaUIsQ0FDbEIsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ2hDLENBQUM7WUFDSixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxDQUNMLEdBQUc7b0JBQ0gsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUNwQyxpQkFBaUIsQ0FDbEIsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ2hDLENBQUM7WUFDSixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxDQUNMLEdBQUc7b0JBQ0gsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FDcEUsQ0FBQztZQUNKLEtBQUssV0FBVztnQkFDZCxPQUFPLENBQ0wsR0FBRztvQkFDSCxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUN0RSxDQUFDO1lBQ0osS0FBSyxXQUFXO2dCQUNkLE9BQU8sQ0FDTCxHQUFHO29CQUNILEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQ3JFLENBQUM7WUFDSixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzdELEtBQUssUUFBUTtnQkFDWCxPQUFPLENBQ0wsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDO29CQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUM1QyxDQUFDO1lBQ0o7Z0JBQ0UsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQzVDLENBQUM7U0FDTDtJQUNILENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLENBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN4RCxDQUFDO0lBRUQsWUFDVSxHQUFzQixFQUN0QixTQUEyQjtRQUQzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXBINUIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGFBQVEsR0FBaUMsTUFBTSxDQUFDO1FBQ2hELFNBQUksR0FBbUMsTUFBTSxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUc1QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBUWpCLFNBQUksR0FBeUIsU0FBUyxDQUFDO1FBRXZDLGtCQUFhLEdBQThCO1lBQ2xELE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsTUFBTSxFQUFFLG1CQUFtQjtTQUM1QixDQUFDO1FBRVEsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3pDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBWTFDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNWLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUE0QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDN0MsY0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQTJCLElBQUksQ0FBQztRQUN2QyxzQkFBaUIsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUF3RTlDLENBQUM7SUFFSixVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBMkI7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELHlCQUF5QixDQUFDLEVBQWM7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDN0IsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUN4QixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRO2dCQUN6QixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDZCxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQStCO1FBQ3RDLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDeEI7UUFFRCxNQUFNLE1BQU0sR0FBcUIsRUFBRSxDQUFDO1FBQ3BDLElBQUksS0FBSyxDQUFDO1FBQ1YsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtZQUM5QixLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRTFDLElBQUk7Z0JBQ0YsSUFBSSxLQUFLLEVBQUU7b0JBQ1QsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2hDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUNoRSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7cUJBQ2xEO29CQUNELElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUNoRSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7cUJBQ2xEO2lCQUNGO2FBQ0Y7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQzFCO1NBQ0Y7YUFBTTtZQUNMLEtBQUs7Z0JBQ0gsT0FBTyxPQUFPLEVBQUUsS0FBSyxLQUFLLFFBQVE7b0JBQ2hDLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtvQkFDeEIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7U0FDdEI7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDM0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUMzQjtRQUVELElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuRCxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7b0JBQ3BCLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUztvQkFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNO2lCQUMzQixDQUFDO2FBQ0g7WUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuRCxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7b0JBQ3BCLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUztvQkFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNO2lCQUMzQixDQUFDO2FBQ0g7U0FDRjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUU7WUFDekIsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLE9BQU8sWUFBWSxNQUFNO2dCQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQ2QsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDdEU7U0FDRjtRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQVEsQ0FBQyxDQUFDO1lBQ3BELElBQUksWUFBWSxFQUFFO2dCQUNoQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNyQztTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hELENBQUM7O2tIQTlPVSxvQkFBb0I7c0dBQXBCLG9CQUFvQiw0b0JBYnBCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztZQUNuRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDeENILGtySUFtR0E7NEZEekRhLG9CQUFvQjtrQkFwQmhDLFNBQVM7K0JBQ0UsY0FBYyxhQU1iO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3VJQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBR0gsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBTTVCLGFBQWE7c0JBRGhCLFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBIb3N0QmluZGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JGbixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IEJpZyBmcm9tICdiaWcuanMnO1xuaW1wb3J0IHsgZm9ybWF0QmlnTnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvYmlnLW51bWJlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9jdXN0b20taW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgICcuLi8uLi9hc3NldHMvc2Nzcy9mb3JtLWl0ZW0uc2NzcycsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VzdG9tSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VzdG9tSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzeW1ib2wgPSAnJztcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXNrTnVtYmVyID0gNjtcbiAgQElucHV0KCkgbWFza1R5cGU6ICdhbW91bnQnIHwgJ251bWJlcicgfCAndGV4dCcgPSAndGV4dCc7XG4gIEBJbnB1dCgpIHR5cGU6ICdwYXNzd29yZCcgfCAndGV4dCcgfCAnc2VsZWN0JyA9ICd0ZXh0JztcbiAgQElucHV0KCkgYWxsb3dOZWdhdGl2ZU51bWJlcnMgPSB0cnVlO1xuICAvKiogTG9jYWwgY29sb3IgY29udGV4dC4gT21pdCB0byBpbmhlcml0IGJvZHkgYC50aGVtZS1saWdodGAgLyBgLnRoZW1lLWRhcmtgLiAqL1xuICBASW5wdXQoKSB0aGVtZT86ICdsaWdodCcgfCAnZGFyayc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBASW5wdXQoKSBtaW4/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heD86IG51bWJlcjtcbiAgQElucHV0KCkgbWluTGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHBhdHRlcm4/OiBzdHJpbmcgfCBSZWdFeHA7XG4gIEBJbnB1dCgpIGN1c3RvbVZhbGlkYXRvcj86IFZhbGlkYXRvckZuO1xuICBASW5wdXQoKSBzaXplPzogJ3NtYWxsJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIHBhdHRlcm46ICdJbnZhbGlkIGZvcm1hdCcsXG4gICAgY3VzdG9tOiAnVmFsaWRhdGlvbiBmYWlsZWQnLFxuICB9O1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGhlbWUtbGlnaHQnKVxuICBnZXQgaG9zdFRoZW1lTGlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWUgPT09ICdsaWdodCc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoZW1lLWRhcmsnKVxuICBnZXQgaG9zdFRoZW1lRGFyaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50aGVtZSA9PT0gJ2RhcmsnO1xuICB9XG5cbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuICBpc0ZvY3VzZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgb25WYWxpZGF0b3JDaGFuZ2U6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBnZXQgY3VycmVudEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jb250cm9sPy5lcnJvcnMpIHJldHVybiAnJztcbiAgICBjb25zdCBmaXJzdEVycm9yID0gT2JqZWN0LmtleXModGhpcy5jb250cm9sPy5lcnJvcnMgfHwge30pWzBdO1xuXG4gICAgY29uc3QgbXNnID0gdGhpcy5lcnJvck1lc3NhZ2VzW2ZpcnN0RXJyb3JdO1xuXG4gICAgc3dpdGNoIChmaXJzdEVycm9yKSB7XG4gICAgICBjYXNlICdyZXF1aXJlZCc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxlYXNlX2VudGVyJyl9JHt0aGlzLmxhYmVsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnbWluJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLmxhYmVsfSR7dGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdtaW5fdmFsdWVfZXJyb3InLFxuICAgICAgICAgICl9JHtmb3JtYXRCaWdOdW1iZXIodGhpcy5taW4pfWBcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ21heCc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7dGhpcy5sYWJlbH0ke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnbWF4X3ZhbHVlX2Vycm9yJyxcbiAgICAgICAgICApfSR7Zm9ybWF0QmlnTnVtYmVyKHRoaXMubWF4KX1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdwcmVjaXNpb24nOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1zZyB8fFxuICAgICAgICAgIGAke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ21heF9kZWNpbWFsX3BsYWNlcycpfSR7dGhpcy5tYXNrTnVtYmVyfWBcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ21pbkxlbmd0aCc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgnbGVuZ3RoX2Nhbm5vdF9iZV9sZXNzJyl9JHt0aGlzLm1pbkxlbmd0aH1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdtYXhMZW5ndGgnOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1zZyB8fFxuICAgICAgICAgIGAke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2xlbmd0aF9jYW5ub3RfZXhjZWVkJyl9JHt0aGlzLm1heExlbmd0aH1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgIHJldHVybiBtc2cgfHwgYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW1haWxfaW52YWxpZCcpfWA7XG4gICAgICBjYXNlICdjdXN0b20nOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMuY29udHJvbD8uZXJyb3JzWydjdXN0b20nXSB8fFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ZhbGlkYXRpb25fZmFpbGVkJylcbiAgICAgICAgKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmVycm9yTWVzc2FnZXNbZmlyc3RFcnJvcl0pIHx8XG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndmFsaWRhdGlvbl9mYWlsZWQnKVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5jb250cm9sPy5pbnZhbGlkICYmICh0aGlzLmNvbnRyb2w/LnRvdWNoZWQgfHwgdGhpcy5jb250cm9sPy5kaXJ0eSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMubGFiZWwpIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyIHx8ICcnO1xuICAgIHJldHVybiB0aGlzLmlzRm9jdXNlZCA/IHRoaXMucGxhY2Vob2xkZXIgfHwgJyAnIDogJyAnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICApIHt9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5ibHVyLmVtaXQoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMuZm9jdXMuZW1pdCgpO1xuICB9XG5cbiAgaGFuZGxlVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNsZWFuZWRWYWx1ZSA9XG4gICAgICB0aGlzLm1hc2tUeXBlID09PSAnYW1vdW50J1xuICAgICAgICA/IHZhbHVlLnJlcGxhY2UoLywvZywgJycpXG4gICAgICAgIDogdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gdmFsdWUudHJpbSgpXG4gICAgICAgICAgOiB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gY2xlYW5lZFZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UoY2xlYW5lZFZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoY2xlYW5lZFZhbHVlKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0ge307XG4gICAgbGV0IHZhbHVlO1xuICAgIGlmICh0aGlzLm1hc2tUeXBlID09PSAnYW1vdW50Jykge1xuICAgICAgdmFsdWUgPSBjb250cm9sPy52YWx1ZT8ucmVwbGFjZSgvLC9nLCAnJyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGJpZ1ZhbHVlID0gbmV3IEJpZyh2YWx1ZSk7XG4gICAgICAgICAgaWYgKHRoaXMubWluICYmICFOdW1iZXIuaXNOYU4odGhpcy5taW4pICYmIGJpZ1ZhbHVlLmx0KHRoaXMubWluKSkge1xuICAgICAgICAgICAgZXJyb3JzWydtaW4nXSA9IHsgbWluOiB0aGlzLm1pbiwgYWN0dWFsOiB2YWx1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5tYXggJiYgIU51bWJlci5pc05hTih0aGlzLm1heCkgJiYgYmlnVmFsdWUuZ3QodGhpcy5tYXgpKSB7XG4gICAgICAgICAgICBlcnJvcnNbJ21heCddID0geyBtYXg6IHRoaXMubWF4LCBhY3R1YWw6IHZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBlcnJvcnNbJ2ludmFsaWQnXSA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID1cbiAgICAgICAgdHlwZW9mIGNvbnRyb2w/LnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gY29udHJvbD8udmFsdWU/LnRyaW0oKVxuICAgICAgICAgIDogY29udHJvbD8udmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgICBlcnJvcnNbJ3JlcXVpcmVkJ10gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAodGhpcy5taW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgdGhpcy5taW5MZW5ndGgpIHtcbiAgICAgICAgZXJyb3JzWydtaW5MZW5ndGgnXSA9IHtcbiAgICAgICAgICByZXF1aXJlZExlbmd0aDogdGhpcy5taW5MZW5ndGgsXG4gICAgICAgICAgYWN0dWFsTGVuZ3RoOiB2YWx1ZS5sZW5ndGgsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5tYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgZXJyb3JzWydtYXhMZW5ndGgnXSA9IHtcbiAgICAgICAgICByZXF1aXJlZExlbmd0aDogdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgYWN0dWFsTGVuZ3RoOiB2YWx1ZS5sZW5ndGgsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGF0dGVybiAmJiB2YWx1ZSkge1xuICAgICAgY29uc3QgcGF0dGVybiA9XG4gICAgICAgIHRoaXMucGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cFxuICAgICAgICAgID8gdGhpcy5wYXR0ZXJuXG4gICAgICAgICAgOiBuZXcgUmVnRXhwKHRoaXMucGF0dGVybik7XG4gICAgICBpZiAoIXBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgZXJyb3JzWydwYXR0ZXJuJ10gPSB7IHJlcXVpcmVkUGF0dGVybjogcGF0dGVybiwgYWN0dWFsVmFsdWU6IHZhbHVlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VzdG9tVmFsaWRhdG9yKSB7XG4gICAgICBjb25zdCBjdXN0b21FcnJvcnMgPSB0aGlzLmN1c3RvbVZhbGlkYXRvcihjb250cm9sISk7XG4gICAgICBpZiAoY3VzdG9tRXJyb3JzKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oZXJyb3JzLCBjdXN0b21FcnJvcnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA+IDAgPyBlcnJvcnMgOiBudWxsO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ0NsYXNzXT1cIntcbiAgICAncmQtZm9ybS1pdGVtLXJkLWlucHV0LXJlbGF0aXZlJzogdHlwZSA9PT0gJ3NlbGVjdCcsXG4gICAgJ3JkLWZvcm0taXRlbS1zJzogc2l6ZSA9PT0gJ3NtYWxsJyxcbiAgfVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInJkLWZvcm0taXRlbSByZC1mb3JtLWl0ZW0tcC1kZWFsXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAncmQtZGlzYWJsZWQnOiBkaXNhYmxlZCxcbiAgICAgICdyZC1lcnJvcic6IHNob3dFcnJvcixcbiAgICAgICdyZC1mb2N1cyc6IGlzRm9jdXNlZCxcbiAgICAgICdyZC1oYXMtdmFsdWUnOiAhIXZhbHVlLFxuICAgICAgJ3JkLWZvcm0taXRlbS1pbnB1dC1zZWxlY3QnOiB0eXBlID09PSAnc2VsZWN0JyxcbiAgICAgICdyZC1mb3JtLWl0ZW0tcGFzc3dvcmQnOiB0eXBlID09PSAncGFzc3dvcmQnLFxuICAgIH1cIlxuICA+XG4gICAgPGlucHV0XG4gICAgICBuei1pbnB1dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkUGxhY2Vob2xkZXJcIlxuICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICBhcmlhLWF1dG9jb21wbGV0ZT1cIm5vbmVcIlxuICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgW2FsbG93TmVnYXRpdmVOdW1iZXJzXT1cImFsbG93TmVnYXRpdmVOdW1iZXJzXCJcbiAgICAgIFtkcm9wU3BlY2lhbENoYXJhY3RlcnNdPVwiZmFsc2VcIlxuICAgICAgW21hc2tdPVwiXG4gICAgICAgIG1hc2tUeXBlID09PSAnYW1vdW50J1xuICAgICAgICAgID8gJ3NlcGFyYXRvci4nICsgbWFza051bWJlclxuICAgICAgICAgIDogbWFza1R5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICA/ICcwKidcbiAgICAgICAgICAgIDogJydcbiAgICAgIFwiXG4gICAgICBbdGhvdXNhbmRTZXBhcmF0b3JdPVwibWFza1R5cGUgPT09ICdhbW91bnQnID8gJywnIDogJydcIlxuICAgICAgY2xhc3M9XCJyZC1mb3JtLWl0ZW0taW5wdXRcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAncmQtZm9ybS1pdGVtLWlucHV0LW5vLWxhYmVsJzogIWxhYmVsLFxuICAgICAgfVwiXG4gICAgLz5cbiAgICA8ZGl2IGNsYXNzPVwicmQtZm9ybS1pdGVtLWxhYmVsXCIgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN5bWJvbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJkLWlucHV0LXN5bWJvbFwiPnt7IHN5bWJvbCB9fTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJkLWZvcm0taXRlbS1yZC1pbnB1dC1hYnNvbHV0ZVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93RXJyb3JcIiBjbGFzcz1cInJkLWZvcm0taXRlbS1lcnJvclwiPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwicmQtZXJyb3ItaWNvbi1saWdodFwiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEuMzMzOTggNy45OTg3QzEuMzMzOTggNC4zMTY4IDQuMzE4NzUgMS4zMzIwMyA4LjAwMDY1IDEuMzMyMDNDMTEuNjgyNSAxLjMzMjAzIDE0LjY2NzMgNC4zMTY4IDE0LjY2NzMgNy45OTg3QzE0LjY2NzMgMTEuNjgwNiAxMS42ODI1IDE0LjY2NTQgOC4wMDA2NSAxNC42NjU0QzQuMzE4NzUgMTQuNjY1NCAxLjMzMzk4IDExLjY4MDYgMS4zMzM5OCA3Ljk5ODdaTTguMDAwNjUgMi4zMzIwM0M0Ljg3MTA0IDIuMzMyMDMgMi4zMzM5OCA0Ljg2OTA4IDIuMzMzOTggNy45OTg3QzIuMzMzOTggMTEuMTI4MyA0Ljg3MTA0IDEzLjY2NTQgOC4wMDA2NSAxMy42NjU0QzExLjEzMDMgMTMuNjY1NCAxMy42NjczIDExLjEyODMgMTMuNjY3MyA3Ljk5ODdDMTMuNjY3MyA0Ljg2OTA4IDExLjEzMDMgMi4zMzIwMyA4LjAwMDY1IDIuMzMyMDNaXCJcbiAgICAgICAgZmlsbD1cIiNFQTQ4NURcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk04LjAwMDM5IDQuMDY2NDFDOC4zMzE3NiA0LjA2NjQxIDguNjAwMzkgNC4zMzUwNCA4LjYwMDM5IDQuNjY2NDFWNy45OTk3NEM4LjYwMDM5IDguMzMxMTEgOC4zMzE3NiA4LjU5OTc0IDguMDAwMzkgOC41OTk3NEM3LjY2OTAyIDguNTk5NzQgNy40MDAzOSA4LjMzMTExIDcuNDAwMzkgNy45OTk3NFY0LjY2NjQxQzcuNDAwMzkgNC4zMzUwNCA3LjY2OTAyIDQuMDY2NDEgOC4wMDAzOSA0LjA2NjQxWk04LjAwMDM5IDEwLjM5OTdDOC4zMzE3NiAxMC4zOTk3IDguNjAwMzkgMTAuNjY4NCA4LjYwMDM5IDEwLjk5OTdWMTEuMzMzMUM4LjYwMDM5IDExLjY2NDQgOC4zMzE3NiAxMS45MzMxIDguMDAwMzkgMTEuOTMzMUM3LjY2OTAyIDExLjkzMzEgNy40MDAzOSAxMS42NjQ0IDcuNDAwMzkgMTEuMzMzMVYxMC45OTk3QzcuNDAwMzkgMTAuNjY4NCA3LjY2OTAyIDEwLjM5OTcgOC4wMDAzOSAxMC4zOTk3WlwiXG4gICAgICAgIGZpbGw9XCIjRUE0ODVEXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInJkLWVycm9yLWljb24tZGFya1wiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEuMzMzOTggNy45OTg3QzEuMzMzOTggNC4zMTY4IDQuMzE4NzUgMS4zMzIwMyA4LjAwMDY1IDEuMzMyMDNDMTEuNjgyNSAxLjMzMjAzIDE0LjY2NzMgNC4zMTY4IDE0LjY2NzMgNy45OTg3QzE0LjY2NzMgMTEuNjgwNiAxMS42ODI1IDE0LjY2NTQgOC4wMDA2NSAxNC42NjU0QzQuMzE4NzUgMTQuNjY1NCAxLjMzMzk4IDExLjY4MDYgMS4zMzM5OCA3Ljk5ODdaTTguMDAwNjUgMi4zMzIwM0M0Ljg3MTA0IDIuMzMyMDMgMi4zMzM5OCA0Ljg2OTA4IDIuMzMzOTggNy45OTg3QzIuMzMzOTggMTEuMTI4MyA0Ljg3MTA0IDEzLjY2NTQgOC4wMDA2NSAxMy42NjU0QzExLjEzMDMgMTMuNjY1NCAxMy42NjczIDExLjEyODMgMTMuNjY3MyA3Ljk5ODdDMTMuNjY3MyA0Ljg2OTA4IDExLjEzMDMgMi4zMzIwMyA4LjAwMDY1IDIuMzMyMDNaXCJcbiAgICAgICAgZmlsbD1cIiNFRjc0ODRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk04LjAwMDM5IDQuMDY2NDFDOC4zMzE3NiA0LjA2NjQxIDguNjAwMzkgNC4zMzUwNCA4LjYwMDM5IDQuNjY2NDFWNy45OTk3NEM4LjYwMDM5IDguMzMxMTEgOC4zMzE3NiA4LjU5OTc0IDguMDAwMzkgOC41OTk3NEM3LjY2OTAyIDguNTk5NzQgNy40MDAzOSA4LjMzMTExIDcuNDAwMzkgNy45OTk3NFY0LjY2NjQxQzcuNDAwMzkgNC4zMzUwNCA3LjY2OTAyIDQuMDY2NDEgOC4wMDAzOSA0LjA2NjQxWk04LjAwMDM5IDEwLjM5OTdDOC4zMzE3NiAxMC4zOTk3IDguNjAwMzkgMTAuNjY4NCA4LjYwMDM5IDEwLjk5OTdWMTEuMzMzMUM4LjYwMDM5IDExLjY2NDQgOC4zMzE3NiAxMS45MzMxIDguMDAwMzkgMTEuOTMzMUM3LjY2OTAyIDExLjkzMzEgNy40MDAzOSAxMS42NjQ0IDcuNDAwMzkgMTEuMzMzMVYxMC45OTk3QzcuNDAwMzkgMTAuNjY4NCA3LjY2OTAyIDEwLjM5OTcgOC4wMDAzOSAxMC4zOTk3WlwiXG4gICAgICAgIGZpbGw9XCIjRUY3NDg0XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG5cbiAgICB7eyBjdXJyZW50RXJyb3JNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1pbnB1dC9jdXN0b20taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUlsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUF1QnpELE1BQU0sT0FBTyxvQkFBb0I7SUFxQy9CLElBQUksbUJBQW1CO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU07WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0MsUUFBUSxVQUFVLEVBQUU7WUFDbEIsS0FBSyxVQUFVO2dCQUNiLE9BQU8sQ0FDTCxHQUFHO29CQUNILEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FB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LEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBIb3N0QmluZGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JGbixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IEJpZyBmcm9tICdiaWcuanMnO1xuaW1wb3J0IHsgZm9ybWF0QmlnTnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvYmlnLW51bWJlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9jdXN0b20taW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgICcuLi8uLi9hc3NldHMvc2Nzcy9mb3JtLWl0ZW0uc2NzcycsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VzdG9tSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VzdG9tSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzeW1ib2wgPSAnJztcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXNrTnVtYmVyID0gNjtcbiAgQElucHV0KCkgbWFza1R5cGU6ICdhbW91bnQnIHwgJ251bWJlcicgfCAndGV4dCcgPSAndGV4dCc7XG4gIEBJbnB1dCgpIHR5cGU6ICdwYXNzd29yZCcgfCAndGV4dCcgfCAnc2VsZWN0JyA9ICd0ZXh0JztcbiAgQElucHV0KCkgYWxsb3dOZWdhdGl2ZU51bWJlcnMgPSB0cnVlO1xuICAvKiogTG9jYWwgY29sb3IgY29udGV4dC4gT21pdCB0byBpbmhlcml0IGJvZHkgYC50aGVtZS1saWdodGAgLyBgLnRoZW1lLWRhcmtgLiAqL1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgQElucHV0KCkgbWluPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBwYXR0ZXJuPzogc3RyaW5nIHwgUmVnRXhwO1xuICBASW5wdXQoKSBjdXN0b21WYWxpZGF0b3I/OiBWYWxpZGF0b3JGbjtcbiAgQElucHV0KCkgc2l6ZT86ICdzbWFsbCcgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG5cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICBwYXR0ZXJuOiAnSW52YWxpZCBmb3JtYXQnLFxuICAgIGN1c3RvbTogJ1ZhbGlkYXRpb24gZmFpbGVkJyxcbiAgfTtcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICB2YWx1ZTogc3RyaW5nID0gJyc7XG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xuICBwcml2YXRlIHRvdWNoZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvblZhbGlkYXRvckNoYW5nZTogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGdldCBjdXJyZW50RXJyb3JNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2w/LmVycm9ycykgcmV0dXJuICcnO1xuICAgIGNvbnN0IGZpcnN0RXJyb3IgPSBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2w/LmVycm9ycyB8fCB7fSlbMF07XG5cbiAgICBjb25zdCBtc2cgPSB0aGlzLmVycm9yTWVzc2FnZXNbZmlyc3RFcnJvcl07XG5cbiAgICBzd2l0Y2ggKGZpcnN0RXJyb3IpIHtcbiAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGVhc2VfZW50ZXInKX0ke3RoaXMubGFiZWwudG9Mb3dlckNhc2UoKX1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdtaW4nOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1zZyB8fFxuICAgICAgICAgIGAke3RoaXMubGFiZWx9JHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ21pbl92YWx1ZV9lcnJvcicsXG4gICAgICAgICAgKX0ke2Zvcm1hdEJpZ051bWJlcih0aGlzLm1pbil9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnbWF4JzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLmxhYmVsfSR7dGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdtYXhfdmFsdWVfZXJyb3InLFxuICAgICAgICAgICl9JHtmb3JtYXRCaWdOdW1iZXIodGhpcy5tYXgpfWBcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ3ByZWNpc2lvbic6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgnbWF4X2RlY2ltYWxfcGxhY2VzJyl9JHt0aGlzLm1hc2tOdW1iZXJ9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnbWluTGVuZ3RoJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdsZW5ndGhfY2Fubm90X2JlX2xlc3MnKX0ke3RoaXMubWluTGVuZ3RofWBcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ21heExlbmd0aCc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgnbGVuZ3RoX2Nhbm5vdF9leGNlZWQnKX0ke3RoaXMubWF4TGVuZ3RofWBcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgcmV0dXJuIG1zZyB8fCBgJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlbWFpbF9pbnZhbGlkJyl9YDtcbiAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy5jb250cm9sPy5lcnJvcnNbJ2N1c3RvbSddIHx8XG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndmFsaWRhdGlvbl9mYWlsZWQnKVxuICAgICAgICApO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuZXJyb3JNZXNzYWdlc1tmaXJzdEVycm9yXSkgfHxcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd2YWxpZGF0aW9uX2ZhaWxlZCcpXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLmNvbnRyb2w/LmludmFsaWQgJiYgKHRoaXMuY29udHJvbD8udG91Y2hlZCB8fCB0aGlzLmNvbnRyb2w/LmRpcnR5KVxuICAgICk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5sYWJlbCkgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgcmV0dXJuIHRoaXMuaXNGb2N1c2VkID8gdGhpcy5wbGFjZWhvbGRlciB8fCAnICcgOiAnICc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge31cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgJyc7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLmJsdXIuZW1pdCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5mb2N1cy5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVWYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY2xlYW5lZFZhbHVlID1cbiAgICAgIHRoaXMubWFza1R5cGUgPT09ICdhbW91bnQnXG4gICAgICAgID8gdmFsdWUucmVwbGFjZSgvLC9nLCAnJylcbiAgICAgICAgOiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyB2YWx1ZS50cmltKClcbiAgICAgICAgICA6IHZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSBjbGVhbmVkVmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZShjbGVhbmVkVmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChjbGVhbmVkVmFsdWUpO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sID0gY29udHJvbDtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB7fTtcbiAgICBsZXQgdmFsdWU7XG4gICAgaWYgKHRoaXMubWFza1R5cGUgPT09ICdhbW91bnQnKSB7XG4gICAgICB2YWx1ZSA9IGNvbnRyb2w/LnZhbHVlPy5yZXBsYWNlKC8sL2csICcnKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgYmlnVmFsdWUgPSBuZXcgQmlnKHZhbHVlKTtcbiAgICAgICAgICBpZiAodGhpcy5taW4gJiYgIU51bWJlci5pc05hTih0aGlzLm1pbikgJiYgYmlnVmFsdWUubHQodGhpcy5taW4pKSB7XG4gICAgICAgICAgICBlcnJvcnNbJ21pbiddID0geyBtaW46IHRoaXMubWluLCBhY3R1YWw6IHZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLm1heCAmJiAhTnVtYmVyLmlzTmFOKHRoaXMubWF4KSAmJiBiaWdWYWx1ZS5ndCh0aGlzLm1heCkpIHtcbiAgICAgICAgICAgIGVycm9yc1snbWF4J10gPSB7IG1heDogdGhpcy5tYXgsIGFjdHVhbDogdmFsdWUgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVycm9yc1snaW52YWxpZCddID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPVxuICAgICAgICB0eXBlb2YgY29udHJvbD8udmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBjb250cm9sPy52YWx1ZT8udHJpbSgpXG4gICAgICAgICAgOiBjb250cm9sPy52YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICAgIGVycm9yc1sncmVxdWlyZWQnXSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0aGlzLm1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCB0aGlzLm1pbkxlbmd0aCkge1xuICAgICAgICBlcnJvcnNbJ21pbkxlbmd0aCddID0ge1xuICAgICAgICAgIHJlcXVpcmVkTGVuZ3RoOiB0aGlzLm1pbkxlbmd0aCxcbiAgICAgICAgICBhY3R1YWxMZW5ndGg6IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICBlcnJvcnNbJ21heExlbmd0aCddID0ge1xuICAgICAgICAgIHJlcXVpcmVkTGVuZ3RoOiB0aGlzLm1heExlbmd0aCxcbiAgICAgICAgICBhY3R1YWxMZW5ndGg6IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYXR0ZXJuICYmIHZhbHVlKSB7XG4gICAgICBjb25zdCBwYXR0ZXJuID1cbiAgICAgICAgdGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgUmVnRXhwXG4gICAgICAgICAgPyB0aGlzLnBhdHRlcm5cbiAgICAgICAgICA6IG5ldyBSZWdFeHAodGhpcy5wYXR0ZXJuKTtcbiAgICAgIGlmICghcGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgICBlcnJvcnNbJ3BhdHRlcm4nXSA9IHsgcmVxdWlyZWRQYXR0ZXJuOiBwYXR0ZXJuLCBhY3R1YWxWYWx1ZTogdmFsdWUgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jdXN0b21WYWxpZGF0b3IpIHtcbiAgICAgIGNvbnN0IGN1c3RvbUVycm9ycyA9IHRoaXMuY3VzdG9tVmFsaWRhdG9yKGNvbnRyb2whKTtcbiAgICAgIGlmIChjdXN0b21FcnJvcnMpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihlcnJvcnMsIGN1c3RvbUVycm9ycyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMCA/IGVycm9ycyA6IG51bGw7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwie1xuICAgICdyZC1mb3JtLWl0ZW0tcmQtaW5wdXQtcmVsYXRpdmUnOiB0eXBlID09PSAnc2VsZWN0JyxcbiAgICAncmQtZm9ybS1pdGVtLXMnOiBzaXplID09PSAnc21hbGwnLFxuICB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmQtZm9ybS1pdGVtIHJkLWZvcm0taXRlbS1wLWRlYWxcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdyZC1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICAgJ3JkLWVycm9yJzogc2hvd0Vycm9yLFxuICAgICAgJ3JkLWZvY3VzJzogaXNGb2N1c2VkLFxuICAgICAgJ3JkLWhhcy12YWx1ZSc6ICEhdmFsdWUsXG4gICAgICAncmQtZm9ybS1pdGVtLWlucHV0LXNlbGVjdCc6IHR5cGUgPT09ICdzZWxlY3QnLFxuICAgICAgJ3JkLWZvcm0taXRlbS1wYXNzd29yZCc6IHR5cGUgPT09ICdwYXNzd29yZCcsXG4gICAgfVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIG56LWlucHV0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwicmVzb2x2ZWRQbGFjZWhvbGRlclwiXG4gICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibm9uZVwiXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICBbYWxsb3dOZWdhdGl2ZU51bWJlcnNdPVwiYWxsb3dOZWdhdGl2ZU51bWJlcnNcIlxuICAgICAgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJmYWxzZVwiXG4gICAgICBbbWFza109XCJcbiAgICAgICAgbWFza1R5cGUgPT09ICdhbW91bnQnXG4gICAgICAgICAgPyAnc2VwYXJhdG9yLicgKyBtYXNrTnVtYmVyXG4gICAgICAgICAgOiBtYXNrVHlwZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgID8gJzAqJ1xuICAgICAgICAgICAgOiAnJ1xuICAgICAgXCJcbiAgICAgIFt0aG91c2FuZFNlcGFyYXRvcl09XCJtYXNrVHlwZSA9PT0gJ2Ftb3VudCcgPyAnLCcgOiAnJ1wiXG4gICAgICBjbGFzcz1cInJkLWZvcm0taXRlbS1pbnB1dFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdyZC1mb3JtLWl0ZW0taW5wdXQtbm8tbGFiZWwnOiAhbGFiZWwsXG4gICAgICB9XCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCJyZC1mb3JtLWl0ZW0tbGFiZWxcIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3ltYm9sXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmQtaW5wdXQtc3ltYm9sXCI+e3sgc3ltYm9sIH19PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicmQtZm9ybS1pdGVtLXJkLWlucHV0LWFic29sdXRlXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwicmQtZm9ybS1pdGVtLWVycm9yXCI+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJyZC1lcnJvci1pY29uLWxpZ2h0XCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMS4zMzM5OCA3Ljk5ODdDMS4zMzM5OCA0LjMxNjggNC4zMTg3NSAxLjMzMjAzIDguMDAwNjUgMS4zMzIwM0MxMS42ODI1IDEuMzMyMDMgMTQuNjY3MyA0LjMxNjggMTQuNjY3MyA3Ljk5ODdDMTQuNjY3MyAxMS42ODA2IDExLjY4MjUgMTQuNjY1NCA4LjAwMDY1IDE0LjY2NTRDNC4zMTg3NSAxNC42NjU0IDEuMzMzOTggMTEuNjgwNiAxLjMzMzk4IDcuOTk4N1pNOC4wMDA2NSAyLjMzMjAzQzQuODcxMDQgMi4zMzIwMyAyLjMzMzk4IDQuODY5MDggMi4zMzM5OCA3Ljk5ODdDMi4zMzM5OCAxMS4xMjgzIDQuODcxMDQgMTMuNjY1NCA4LjAwMDY1IDEzLjY2NTRDMTEuMTMwMyAxMy42NjU0IDEzLjY2NzMgMTEuMTI4MyAxMy42NjczIDcuOTk4N0MxMy42NjczIDQuODY5MDggMTEuMTMwMyAyLjMzMjAzIDguMDAwNjUgMi4zMzIwM1pcIlxuICAgICAgICBmaWxsPVwiI0VBNDg1RFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTguMDAwMzkgNC4wNjY0MUM4LjMzMTc2IDQuMDY2NDEgOC42MDAzOSA0LjMzNTA0IDguNjAwMzkgNC42NjY0MVY3Ljk5OTc0QzguNjAwMzkgOC4zMzExMSA4LjMzMTc2IDguNTk5NzQgOC4wMDAzOSA4LjU5OTc0QzcuNjY5MDIgOC41OTk3NCA3LjQwMDM5IDguMzMxMTEgNy40MDAzOSA3Ljk5OTc0VjQuNjY2NDFDNy40MDAzOSA0LjMzNTA0IDcuNjY5MDIgNC4wNjY0MSA4LjAwMDM5IDQuMDY2NDFaTTguMDAwMzkgMTAuMzk5N0M4LjMzMTc2IDEwLjM5OTcgOC42MDAzOSAxMC42Njg0IDguNjAwMzkgMTAuOTk5N1YxMS4zMzMxQzguNjAwMzkgMTEuNjY0NCA4LjMzMTc2IDExLjkzMzEgOC4wMDAzOSAxMS45MzMxQzcuNjY5MDIgMTEuOTMzMSA3LjQwMDM5IDExLjY2NDQgNy40MDAzOSAxMS4zMzMxVjEwLjk5OTdDNy40MDAzOSAxMC42Njg0IDcuNjY5MDIgMTAuMzk5NyA4LjAwMDM5IDEwLjM5OTdaXCJcbiAgICAgICAgZmlsbD1cIiNFQTQ4NURcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cblxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwicmQtZXJyb3ItaWNvbi1kYXJrXCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMS4zMzM5OCA3Ljk5ODdDMS4zMzM5OCA0LjMxNjggNC4zMTg3NSAxLjMzMjAzIDguMDAwNjUgMS4zMzIwM0MxMS42ODI1IDEuMzMyMDMgMTQuNjY3MyA0LjMxNjggMTQuNjY3MyA3Ljk5ODdDMTQuNjY3MyAxMS42ODA2IDExLjY4MjUgMTQuNjY1NCA4LjAwMDY1IDE0LjY2NTRDNC4zMTg3NSAxNC42NjU0IDEuMzMzOTggMTEuNjgwNiAxLjMzMzk4IDcuOTk4N1pNOC4wMDA2NSAyLjMzMjAzQzQuODcxMDQgMi4zMzIwMyAyLjMzMzk4IDQuODY5MDggMi4zMzM5OCA3Ljk5ODdDMi4zMzM5OCAxMS4xMjgzIDQuODcxMDQgMTMuNjY1NCA4LjAwMDY1IDEzLjY2NTRDMTEuMTMwMyAxMy42NjU0IDEzLjY2NzMgMTEuMTI4MyAxMy42NjczIDcuOTk4N0MxMy42NjczIDQuODY5MDggMTEuMTMwMyAyLjMzMjAzIDguMDAwNjUgMi4zMzIwM1pcIlxuICAgICAgICBmaWxsPVwiI0VGNzQ4NFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTguMDAwMzkgNC4wNjY0MUM4LjMzMTc2IDQuMDY2NDEgOC42MDAzOSA0LjMzNTA0IDguNjAwMzkgNC42NjY0MVY3Ljk5OTc0QzguNjAwMzkgOC4zMzExMSA4LjMzMTc2IDguNTk5NzQgOC4wMDAzOSA4LjU5OTc0QzcuNjY5MDIgOC41OTk3NCA3LjQwMDM5IDguMzMxMTEgNy40MDAzOSA3Ljk5OTc0VjQuNjY2NDFDNy40MDAzOSA0LjMzNTA0IDcuNjY5MDIgNC4wNjY0MSA4LjAwMDM5IDQuMDY2NDFaTTguMDAwMzkgMTAuMzk5N0M4LjMzMTc2IDEwLjM5OTcgOC42MDAzOSAxMC42Njg0IDguNjAwMzkgMTAuOTk5N1YxMS4zMzMxQzguNjAwMzkgMTEuNjY0NCA4LjMzMTc2IDExLjkzMzEgOC4wMDAzOSAxMS45MzMxQzcuNjY5MDIgMTEuOTMzMSA3LjQwMDM5IDExLjY2NDQgNy40MDAzOSAxMS4zMzMxVjEwLjk5OTdDNy40MDAzOSAxMC42Njg0IDcuNjY5MDIgMTAuMzk5NyA4LjAwMDM5IDEwLjM5OTdaXCJcbiAgICAgICAgZmlsbD1cIiNFRjc0ODRcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cblxuICAgIHt7IGN1cnJlbnRFcnJvck1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, forwardRef, Input, Output, HostBinding, } from '@angular/core';
1
+ import { Component, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
2
2
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
3
  import Big from 'big.js';
4
4
  import { formatBigNumber, numberToBig } from '../../utils/big-number';
@@ -37,12 +37,6 @@ export class CustomInputAmountComponent {
37
37
  this.onTouched = () => { };
38
38
  this.onValidatorChange = () => { };
39
39
  }
40
- get hostThemeLight() {
41
- return this.theme === 'light';
42
- }
43
- get hostThemeDark() {
44
- return this.theme === 'dark';
45
- }
46
40
  get currentErrorMessage() {
47
41
  if (!this.control?.errors)
48
42
  return '';
@@ -151,7 +145,7 @@ export class CustomInputAmountComponent {
151
145
  }
152
146
  }
153
147
  CustomInputAmountComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomInputAmountComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
154
- CustomInputAmountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomInputAmountComponent, selector: "app-rd-input-amount", inputs: { lang: "lang", label: "label", symbol: "symbol", name: "name", disabled: "disabled", min: "min", max: "max", nzPrecision: "nzPrecision", allowNegativeNumbers: "allowNegativeNumbers", required: "required", nzSize: "nzSize", errorMessages: "errorMessages", clearError: "clearError", theme: "theme" }, outputs: { blur: "blur", focus: "focus", valueChange: "valueChange" }, host: { properties: { "class.theme-light": "this.hostThemeLight", "class.theme-dark": "this.hostThemeDark" } }, providers: [
148
+ CustomInputAmountComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomInputAmountComponent, selector: "app-rd-input-amount", inputs: { lang: "lang", label: "label", symbol: "symbol", name: "name", disabled: "disabled", min: "min", max: "max", nzPrecision: "nzPrecision", allowNegativeNumbers: "allowNegativeNumbers", required: "required", nzSize: "nzSize", errorMessages: "errorMessages", clearError: "clearError" }, outputs: { blur: "blur", focus: "focus", valueChange: "valueChange" }, providers: [
155
149
  {
156
150
  provide: NG_VALUE_ACCESSOR,
157
151
  useExisting: forwardRef(() => CustomInputAmountComponent),
@@ -209,13 +203,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
209
203
  type: Output
210
204
  }], valueChange: [{
211
205
  type: Output
212
- }], theme: [{
213
- type: Input
214
- }], hostThemeLight: [{
215
- type: HostBinding,
216
- args: ['class.theme-light']
217
- }], hostThemeDark: [{
218
- type: HostBinding,
219
- args: ['class.theme-dark']
220
206
  }] } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LWFtb3VudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtbGliL3NyYy9saWIvbW9kdWxlcy9jdXN0b20taW5wdXQtYW1vdW50L2N1c3RvbS1pbnB1dC1hbW91bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLWlucHV0LWFtb3VudC9jdXN0b20taW5wdXQtYW1vdW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBdUJ0RSxNQUFNLE9BQU8sMEJBQTBCO0lBa0NyQyxZQUNVLEdBQXNCLEVBQ3RCLFNBQTJCO1FBRDNCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBakM1QixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQix5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixXQUFNLEdBQXdCLFNBQVMs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Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsS0FBSztzQkFBYixLQUFLO2dCQWtCRixjQUFjO3NCQURqQixXQUFXO3VCQUFDLG1CQUFtQjtnQkFNNUIsYUFBYTtzQkFEaEIsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBCaWcgZnJvbSAnYmlnLmpzJztcbmltcG9ydCB7IGZvcm1hdEJpZ051bWJlciwgbnVtYmVyVG9CaWcgfSBmcm9tICcuLi8uLi91dGlscy9iaWctbnVtYmVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJkLWlucHV0LWFtb3VudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20taW5wdXQtYW1vdW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vY3VzdG9tLWlucHV0LWFtb3VudC5jb21wb25lbnQuc2NzcycsXG4gICAgJy4uLy4uL2Fzc2V0cy9zY3NzL2Zvcm0taXRlbS5zY3NzJyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21JbnB1dEFtb3VudENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21JbnB1dEFtb3VudENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21JbnB1dEFtb3VudENvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgQElucHV0KCkgbGFuZyA9ICdlbic7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHN5bWJvbCA9ICcnO1xuICBASW5wdXQoKSBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1pbj86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4PzogbnVtYmVyO1xuICBASW5wdXQoKSBuelByZWNpc2lvbiA9IDY7XG4gIEBJbnB1dCgpIGFsbG93TmVnYXRpdmVOdW1iZXJzID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSB0cnVlO1xuICBASW5wdXQoKSBuelNpemU6ICdkZWZhdWx0JyB8ICdzbWFsbCcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgICBpbnZhbGlkOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyJyxcbiAgfTtcbiAgQElucHV0KCkgY2xlYXJFcnJvciA9IHRydWU7XG5cbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIHRoZW1lPzogJ2xpZ2h0JyB8ICdkYXJrJztcblxuICBpbnB1dFZhbHVlOiBzdHJpbmcgPSAnJzsgLy8g57uR5a6a5Yiw6L6T5YWl5qGGXG4gIHByaXZhdGUgdmFsdWU6IHN0cmluZyA9ICcnOyAvLyDlhoXpg6jlgLzvvIzlp4vnu4jku6Ugc3RyaW5nIOW9ouW8j+WtmOWCqFxuICBwcml2YXRlIHRvdWNoZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbDtcbiAgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblZhbGlkYXRvckNoYW5nZTogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7fVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGhlbWUtbGlnaHQnKVxuICBnZXQgaG9zdFRoZW1lTGlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWUgPT09ICdsaWdodCc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoZW1lLWRhcmsnKVxuICBnZXQgaG9zdFRoZW1lRGFyaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50aGVtZSA9PT0gJ2RhcmsnO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbD8uZXJyb3JzKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZmlyc3RFcnJvciA9IE9iamVjdC5rZXlzKHRoaXMuY29udHJvbD8uZXJyb3JzIHx8IHt9KVswXTtcbiAgICBjb25zdCBtc2cgPSB0aGlzLmVycm9yTWVzc2FnZXNbZmlyc3RFcnJvcl07XG4gICAgc3dpdGNoIChmaXJzdEVycm9yKSB7XG4gICAgICBjYXNlICdyZXF1aXJlZCc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxlYXNlX2VudGVyJyl9JHt0aGlzLmxhYmVsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnbWluJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLmxhYmVsfSR7dGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdtaW5fdmFsdWVfZXJyb3InLFxuICAgICAgICAgICl9JHtmb3JtYXRCaWdOdW1iZXIodGhpcy5taW4pfWBcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ21heCc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7dGhpcy5sYWJlbH0ke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnbWF4X3ZhbHVlX2Vycm9yJyxcbiAgICAgICAgICApfSR7Zm9ybWF0QmlnTnVtYmVyKHRoaXMubWF4KX1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdwcmVjaXNpb24nOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1zZyB8fFxuICAgICAgICAgIGAke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ21heF9kZWNpbWFsX3BsYWNlcycpfSR7dGhpcy5uelByZWNpc2lvbn1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdjdXN0b20nOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMuY29udHJvbD8uZXJyb3JzWydjdXN0b20nXSB8fFxuICAgICAgICAgIGAke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ZhbGlkYXRpb25fZmFpbGVkJyl9YFxuICAgICAgICApO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG1zZyB8fCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd2YWxpZGF0aW9uX2ZhaWxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5jb250cm9sPy5pbnZhbGlkICYmICh0aGlzLmNvbnRyb2w/LnRvdWNoZWQgfHwgdGhpcy5jb250cm9sPy5kaXJ0eSlcbiAgICApO1xuICB9XG4gIGhhbmRsZVZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByYXdWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoLywvZywgJycpO1xuXG4gICAgLy8g5aSE55CG6L6T5YWl55qE5YC877yM6L2s5o2i5oiQIEJpZy5qcyDmoLzlvI9cbiAgICB0aGlzLnZhbHVlID0gbnVtYmVyVG9CaWcocmF3VmFsdWUsIHRoaXMubnpQcmVjaXNpb24pO1xuXG4gICAgLy8g5pu05paw57uR5a6a5YC8XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG5cbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSB0aGlzLnZhbGlkYXRlKHRoaXMuY29udHJvbCk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKGVycm9ycyk7XG4gICAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgdGhpcy5jbGVhckVycm9yKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSB0aGlzLnZhbGlkYXRlKHRoaXMuY29udHJvbCk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKGVycm9ycyk7XG4gICAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlKCk7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMuYmx1ci5lbWl0KCk7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXMuZW1pdCgpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHt9O1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZTtcblxuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgICAgZXJyb3JzWydyZXF1aXJlZCddID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJpZ1ZhbHVlID0gbmV3IEJpZyh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMubWluICYmICFOdW1iZXIuaXNOYU4odGhpcy5taW4pICYmIGJpZ1ZhbHVlLmx0KHRoaXMubWluKSkge1xuICAgICAgICAgIGVycm9yc1snbWluJ10gPSB7IG1pbjogdGhpcy5taW4sIGFjdHVhbDogdmFsdWUgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tYXggJiYgIU51bWJlci5pc05hTih0aGlzLm1heCkgJiYgYmlnVmFsdWUuZ3QodGhpcy5tYXgpKSB7XG4gICAgICAgICAgZXJyb3JzWydtYXgnXSA9IHsgbWF4OiB0aGlzLm1heCwgYWN0dWFsOiB2YWx1ZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVjaW1hbFBsYWNlcyA9IHZhbHVlLnNwbGl0KCcuJylbMV0/Lmxlbmd0aCB8fCAwO1xuICAgICAgICBpZiAoZGVjaW1hbFBsYWNlcyA+IHRoaXMubnpQcmVjaXNpb24pIHtcbiAgICAgICAgICBlcnJvcnNbJ3ByZWNpc2lvbiddID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBlcnJvcnNbJ2ludmFsaWQnXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMCA/IGVycm9ycyA6IG51bGw7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgdiA9IHZhbHVlPy50b1N0cmluZygpID8/ICcnO1xuICAgIHRoaXMudmFsdWUgPSB2O1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHY7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInJkLWZvcm0tbnVtYmVyLWl0ZW1cIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdyZC1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICAgJ3JkLWVycm9yJzogc2hvd0Vycm9yLFxuICAgICAgJ3JkLWZvcm0tbnVtYmVyLXNtYWxsJzogbnpTaXplID09PSAnc21hbGwnLFxuICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgZXJyb3I6IHNob3dFcnJvcixcbiAgICB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJyZC1pdGVtLWxhYmVsXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmQtaXRlbS1jb250ZW50XCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgbnotaW5wdXRcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIicwJ1wiXG4gICAgICAgIFttYXNrXT1cIidzZXBhcmF0b3IuJyArIG56UHJlY2lzaW9uXCJcbiAgICAgICAgW3Rob3VzYW5kU2VwYXJhdG9yXT1cIicsJ1wiXG4gICAgICAgIFthbGxvd05lZ2F0aXZlTnVtYmVyc109XCJhbGxvd05lZ2F0aXZlTnVtYmVyc1wiXG4gICAgICAgIFtkcm9wU3BlY2lhbENoYXJhY3RlcnNdPVwiZmFsc2VcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgY2xhc3M9XCJyZC1pdGVtLWNvbnRlbnQtdmFsdWVcIlxuICAgICAgLz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PSd0b2tlbiddXCI+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiAqbmdJZj1cInN5bWJvbFwiIGNsYXNzPVwicmQtaXRlbS1jb250ZW50LXN5bWJvbFwiPnt7IHN5bWJvbCB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93RXJyb3JcIiBjbGFzcz1cInJkLWZvcm0taXRlbS1lcnJvclwiPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwicmQtZXJyb3ItaWNvbi1saWdodFwiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEuMzMzOTggNy45OTg3QzEuMzMzOTggNC4zMTY4IDQuMzE4NzUgMS4zMzIwMyA4LjAwMDY1IDEuMzMyMDNDMTEuNjgyNSAxLjMzMjAzIDE0LjY2NzMgNC4zMTY4IDE0LjY2NzMgNy45OTg3QzE0LjY2NzMgMTEuNjgwNiAxMS42ODI1IDE0LjY2NTQgOC4wMDA2NSAxNC42NjU0QzQuMzE4NzUgMTQuNjY1NCAxLjMzMzk4IDExLjY4MDYgMS4zMzM5OCA3Ljk5ODdaTTguMDAwNjUgMi4zMzIwM0M0Ljg3MTA0IDIuMzMyMDMgMi4zMzM5OCA0Ljg2OTA4IDIuMzMzOTggNy45OTg3QzIuMzMzOTggMTEuMTI4MyA0Ljg3MTA0IDEzLjY2NTQgOC4wMDA2NSAxMy42NjU0QzExLjEzMDMgMTMuNjY1NCAxMy42NjczIDExLjEyODMgMTMuNjY3MyA3Ljk5ODdDMTMuNjY3MyA0Ljg2OTA4IDExLjEzMDMgMi4zMzIwMyA4LjAwMDY1IDIuMzMyMDNaXCJcbiAgICAgICAgZmlsbD1cIiNFQTQ4NURcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk04LjAwMDM5IDQuMDY2NDFDOC4zMzE3NiA0LjA2NjQxIDguNjAwMzkgNC4zMzUwNCA4LjYwMDM5IDQuNjY2NDFWNy45OTk3NEM4LjYwMDM5IDguMzMxMTEgOC4zMzE3NiA4LjU5OTc0IDguMDAwMzkgOC41OTk3NEM3LjY2OTAyIDguNTk5NzQgNy40MDAzOSA4LjMzMTExIDcuNDAwMzkgNy45OTk3NFY0LjY2NjQxQzcuNDAwMzkgNC4zMzUwNCA3LjY2OTAyIDQuMDY2NDEgOC4wMDAzOSA0LjA2NjQxWk04LjAwMDM5IDEwLjM5OTdDOC4zMzE3NiAxMC4zOTk3IDguNjAwMzkgMTAuNjY4NCA4LjYwMDM5IDEwLjk5OTdWMTEuMzMzMUM4LjYwMDM5IDExLjY2NDQgOC4zMzE3NiAxMS45MzMxIDguMDAwMzkgMTEuOTMzMUM3LjY2OTAyIDExLjkzMzEgNy40MDAzOSAxMS42NjQ0IDcuNDAwMzkgMTEuMzMzMVYxMC45OTk3QzcuNDAwMzkgMTAuNjY4NCA3LjY2OTAyIDEwLjM5OTcgOC4wMDAzOSAxMC4zOTk3WlwiXG4gICAgICAgIGZpbGw9XCIjRUE0ODVEXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInJkLWVycm9yLWljb24tZGFya1wiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEuMzMzOTggNy45OTg3QzEuMzMzOTggNC4zMTY4IDQuMzE4NzUgMS4zMzIwMyA4LjAwMDY1IDEuMzMyMDNDMTEuNjgyNSAxLjMzMjAzIDE0LjY2NzMgNC4zMTY4IDE0LjY2NzMgNy45OTg3QzE0LjY2NzMgMTEuNjgwNiAxMS42ODI1IDE0LjY2NTQgOC4wMDA2NSAxNC42NjU0QzQuMzE4NzUgMTQuNjY1NCAxLjMzMzk4IDExLjY4MDYgMS4zMzM5OCA3Ljk5ODdaTTguMDAwNjUgMi4zMzIwM0M0Ljg3MTA0IDIuMzMyMDMgMi4zMzM5OCA0Ljg2OTA4IDIuMzMzOTggNy45OTg3QzIuMzMzOTggMTEuMTI4MyA0Ljg3MTA0IDEzLjY2NTQgOC4wMDA2NSAxMy42NjU0QzExLjEzMDMgMTMuNjY1NCAxMy42NjczIDExLjEyODMgMTMuNjY3MyA3Ljk5ODdDMTMuNjY3MyA0Ljg2OTA4IDExLjEzMDMgMi4zMzIwMyA4LjAwMDY1IDIuMzMyMDNaXCJcbiAgICAgICAgZmlsbD1cIiNFRjc0ODRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk04LjAwMDM5IDQuMDY2NDFDOC4zMzE3NiA0LjA2NjQxIDguNjAwMzkgNC4zMzUwNCA4LjYwMDM5IDQuNjY2NDFWNy45OTk3NEM4LjYwMDM5IDguMzMxMTEgOC4zMzE3NiA4LjU5OTc0IDguMDAwMzkgOC41OTk3NEM3LjY2OTAyIDguNTk5NzQgNy40MDAzOSA4LjMzMTExIDcuNDAwMzkgNy45OTk3NFY0LjY2NjQxQzcuNDAwMzkgNC4zMzUwNCA3LjY2OTAyIDQuMDY2NDEgOC4wMDAzOSA0LjA2NjQxWk04LjAwMDM5IDEwLjM5OTdDOC4zMzE3NiAxMC4zOTk3IDguNjAwMzkgMTAuNjY4NCA4LjYwMDM5IDEwLjk5OTdWMTEuMzMzMUM4LjYwMDM5IDExLjY2NDQgOC4zMzE3NiAxMS45MzMxIDguMDAwMzkgMTEuOTMzMUM3LjY2OTAyIDExLjkzMzEgNy40MDAzOSAxMS42NjQ0IDcuNDAwMzkgMTEuMzMzMVYxMC45OTk3QzcuNDAwMzkgMTAuNjY4NCA3LjY2OTAyIDEwLjM5OTcgOC4wMDAzOSAxMC4zOTk3WlwiXG4gICAgICAgIGZpbGw9XCIjRUY3NDg0XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICAge3sgY3VycmVudEVycm9yTWVzc2FnZSB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LWFtb3VudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtbGliL3NyYy9saWIvbW9kdWxlcy9jdXN0b20taW5wdXQtYW1vdW50L2N1c3RvbS1pbnB1dC1hbW91bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLWlucHV0LWFtb3VudC9jdXN0b20taW5wdXQtYW1vdW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUF1QnRFLE1BQU0sT0FBTywwQkFBMEI7SUFpQ3JDLFlBQ1UsR0FBc0IsRUFDdEIsU0FBMkI7UUFEM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFoQzVCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUM1QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLFdBQU0sR0FBd0IsU0FBUyxDQUFDO1FBQ3hD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LEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO1lBQ3pELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7WUFDekQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBCQ3ZDSCwwdEhBaUZBOzRGRHhDYSwwQkFBMEI7a0JBcEJ0QyxTQUFTOytCQUNFLHFCQUFxQixhQU1wQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt1SUFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBCaWcgZnJvbSAnYmlnLmpzJztcbmltcG9ydCB7IGZvcm1hdEJpZ051bWJlciwgbnVtYmVyVG9CaWcgfSBmcm9tICcuLi8uLi91dGlscy9iaWctbnVtYmVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJkLWlucHV0LWFtb3VudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20taW5wdXQtYW1vdW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vY3VzdG9tLWlucHV0LWFtb3VudC5jb21wb25lbnQuc2NzcycsXG4gICAgJy4uLy4uL2Fzc2V0cy9zY3NzL2Zvcm0taXRlbS5zY3NzJyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21JbnB1dEFtb3VudENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21JbnB1dEFtb3VudENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21JbnB1dEFtb3VudENvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgQElucHV0KCkgbGFuZyA9ICdlbic7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHN5bWJvbCA9ICcnO1xuICBASW5wdXQoKSBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1pbj86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4PzogbnVtYmVyO1xuICBASW5wdXQoKSBuelByZWNpc2lvbiA9IDY7XG4gIEBJbnB1dCgpIGFsbG93TmVnYXRpdmVOdW1iZXJzID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSB0cnVlO1xuICBASW5wdXQoKSBuelNpemU6ICdkZWZhdWx0JyB8ICdzbWFsbCcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgICBpbnZhbGlkOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyJyxcbiAgfTtcbiAgQElucHV0KCkgY2xlYXJFcnJvciA9IHRydWU7XG5cbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgaW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7IC8vIOe7keWumuWIsOi+k+WFpeahhlxuICBwcml2YXRlIHZhbHVlOiBzdHJpbmcgPSAnJzsgLy8g5YaF6YOo5YC877yM5aeL57uI5LulIHN0cmluZyDlvaLlvI/lrZjlgqhcbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG4gIHByaXZhdGUgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGw7XG4gIGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25WYWxpZGF0b3JDaGFuZ2U6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBnZXQgY3VycmVudEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jb250cm9sPy5lcnJvcnMpIHJldHVybiAnJztcbiAgICBjb25zdCBmaXJzdEVycm9yID0gT2JqZWN0LmtleXModGhpcy5jb250cm9sPy5lcnJvcnMgfHwge30pWzBdO1xuICAgIGNvbnN0IG1zZyA9IHRoaXMuZXJyb3JNZXNzYWdlc1tmaXJzdEVycm9yXTtcbiAgICBzd2l0Y2ggKGZpcnN0RXJyb3IpIHtcbiAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGVhc2VfZW50ZXInKX0ke3RoaXMubGFiZWwudG9Mb3dlckNhc2UoKX1gXG4gICAgICAgICk7XG4gICAgICBjYXNlICdtaW4nOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1zZyB8fFxuICAgICAgICAgIGAke3RoaXMubGFiZWx9JHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ21pbl92YWx1ZV9lcnJvcicsXG4gICAgICAgICAgKX0ke2Zvcm1hdEJpZ051bWJlcih0aGlzLm1pbil9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnbWF4JzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLmxhYmVsfSR7dGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdtYXhfdmFsdWVfZXJyb3InLFxuICAgICAgICAgICl9JHtmb3JtYXRCaWdOdW1iZXIodGhpcy5tYXgpfWBcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ3ByZWNpc2lvbic6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXNnIHx8XG4gICAgICAgICAgYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgnbWF4X2RlY2ltYWxfcGxhY2VzJyl9JHt0aGlzLm56UHJlY2lzaW9ufWBcbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy5jb250cm9sPy5lcnJvcnNbJ2N1c3RvbSddIHx8XG4gICAgICAgICAgYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgndmFsaWRhdGlvbl9mYWlsZWQnKX1gXG4gICAgICAgICk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbXNnIHx8IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ZhbGlkYXRpb25fZmFpbGVkJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLmNvbnRyb2w/LmludmFsaWQgJiYgKHRoaXMuY29udHJvbD8udG91Y2hlZCB8fCB0aGlzLmNvbnRyb2w/LmRpcnR5KVxuICAgICk7XG4gIH1cbiAgaGFuZGxlVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gdmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG5cbiAgICAvLyDlpITnkIbovpPlhaXnmoTlgLzvvIzovazmjaLmiJAgQmlnLmpzIOagvOW8j1xuICAgIHRoaXMudmFsdWUgPSBudW1iZXJUb0JpZyhyYXdWYWx1ZSwgdGhpcy5uelByZWNpc2lvbik7XG5cbiAgICAvLyDmm7TmlrDnu5HlrprlgLxcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcblxuICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMudmFsaWRhdGUodGhpcy5jb250cm9sKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLmNsZWFyRXJyb3IpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMudmFsaWRhdGUodGhpcy5jb250cm9sKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5ibHVyLmVtaXQoKTtcbiAgfVxuXG4gIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5mb2N1cy5lbWl0KCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sID0gY29udHJvbDtcbiAgICB9XG4gICAgY29uc3QgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0ge307XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuXG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgICBlcnJvcnNbJ3JlcXVpcmVkJ10gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYmlnVmFsdWUgPSBuZXcgQmlnKHZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5taW4gJiYgIU51bWJlci5pc05hTih0aGlzLm1pbikgJiYgYmlnVmFsdWUubHQodGhpcy5taW4pKSB7XG4gICAgICAgICAgZXJyb3JzWydtaW4nXSA9IHsgbWluOiB0aGlzLm1pbiwgYWN0dWFsOiB2YWx1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1heCAmJiAhTnVtYmVyLmlzTmFOKHRoaXMubWF4KSAmJiBiaWdWYWx1ZS5ndCh0aGlzLm1heCkpIHtcbiAgICAgICAgICBlcnJvcnNbJ21heCddID0geyBtYXg6IHRoaXMubWF4LCBhY3R1YWw6IHZhbHVlIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNpbWFsUGxhY2VzID0gdmFsdWUuc3BsaXQoJy4nKVsxXT8ubGVuZ3RoIHx8IDA7XG4gICAgICAgIGlmIChkZWNpbWFsUGxhY2VzID4gdGhpcy5uelByZWNpc2lvbikge1xuICAgICAgICAgIGVycm9yc1sncHJlY2lzaW9uJ10gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGVycm9yc1snaW52YWxpZCddID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPiAwID8gZXJyb3JzIDogbnVsbDtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdmFsdWU/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgdGhpcy52YWx1ZSA9IHY7XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gdjtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGRpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmQtZm9ybS1udW1iZXItaXRlbVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3JkLWRpc2FibGVkJzogZGlzYWJsZWQsXG4gICAgICAncmQtZXJyb3InOiBzaG93RXJyb3IsXG4gICAgICAncmQtZm9ybS1udW1iZXItc21hbGwnOiBuelNpemUgPT09ICdzbWFsbCcsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICBlcnJvcjogc2hvd0Vycm9yLFxuICAgIH1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInJkLWl0ZW0tbGFiZWxcIj57eyBsYWJlbCB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyZC1pdGVtLWNvbnRlbnRcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBuei1pbnB1dFxuICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJzAnXCJcbiAgICAgICAgW21hc2tdPVwiJ3NlcGFyYXRvci4nICsgbnpQcmVjaXNpb25cIlxuICAgICAgICBbdGhvdXNhbmRTZXBhcmF0b3JdPVwiJywnXCJcbiAgICAgICAgW2FsbG93TmVnYXRpdmVOdW1iZXJzXT1cImFsbG93TmVnYXRpdmVOdW1iZXJzXCJcbiAgICAgICAgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJmYWxzZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICBjbGFzcz1cInJkLWl0ZW0tY29udGVudC12YWx1ZVwiXG4gICAgICAvPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9J3Rva2VuJ11cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2ICpuZ0lmPVwic3ltYm9sXCIgY2xhc3M9XCJyZC1pdGVtLWNvbnRlbnQtc3ltYm9sXCI+e3sgc3ltYm9sIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwicmQtZm9ybS1pdGVtLWVycm9yXCI+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJyZC1lcnJvci1pY29uLWxpZ2h0XCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMS4zMzM5OCA3Ljk5ODdDMS4zMzM5OCA0LjMxNjggNC4zMTg3NSAxLjMzMjAzIDguMDAwNjUgMS4zMzIwM0MxMS42ODI1IDEuMzMyMDMgMTQuNjY3MyA0LjMxNjggMTQuNjY3MyA3Ljk5ODdDMTQuNjY3MyAxMS42ODA2IDExLjY4MjUgMTQuNjY1NCA4LjAwMDY1IDE0LjY2NTRDNC4zMTg3NSAxNC42NjU0IDEuMzMzOTggMTEuNjgwNiAxLjMzMzk4IDcuOTk4N1pNOC4wMDA2NSAyLjMzMjAzQzQuODcxMDQgMi4zMzIwMyAyLjMzMzk4IDQuODY5MDggMi4zMzM5OCA3Ljk5ODdDMi4zMzM5OCAxMS4xMjgzIDQuODcxMDQgMTMuNjY1NCA4LjAwMDY1IDEzLjY2NTRDMTEuMTMwMyAxMy42NjU0IDEzLjY2NzMgMTEuMTI4MyAxMy42NjczIDcuOTk4N0MxMy42NjczIDQuODY5MDggMTEuMTMwMyAyLjMzMjAzIDguMDAwNjUgMi4zMzIwM1pcIlxuICAgICAgICBmaWxsPVwiI0VBNDg1RFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTguMDAwMzkgNC4wNjY0MUM4LjMzMTc2IDQuMDY2NDEgOC42MDAzOSA0LjMzNTA0IDguNjAwMzkgNC42NjY0MVY3Ljk5OTc0QzguNjAwMzkgOC4zMzExMSA4LjMzMTc2IDguNTk5NzQgOC4wMDAzOSA4LjU5OTc0QzcuNjY5MDIgOC41OTk3NCA3LjQwMDM5IDguMzMxMTEgNy40MDAzOSA3Ljk5OTc0VjQuNjY2NDFDNy40MDAzOSA0LjMzNTA0IDcuNjY5MDIgNC4wNjY0MSA4LjAwMDM5IDQuMDY2NDFaTTguMDAwMzkgMTAuMzk5N0M4LjMzMTc2IDEwLjM5OTcgOC42MDAzOSAxMC42Njg0IDguNjAwMzkgMTAuOTk5N1YxMS4zMzMxQzguNjAwMzkgMTEuNjY0NCA4LjMzMTc2IDExLjkzMzEgOC4wMDAzOSAxMS45MzMxQzcuNjY5MDIgMTEuOTMzMSA3LjQwMDM5IDExLjY2NDQgNy40MDAzOSAxMS4zMzMxVjEwLjk5OTdDNy40MDAzOSAxMC42Njg0IDcuNjY5MDIgMTAuMzk5NyA4LjAwMDM5IDEwLjM5OTdaXCJcbiAgICAgICAgZmlsbD1cIiNFQTQ4NURcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cblxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwicmQtZXJyb3ItaWNvbi1kYXJrXCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMS4zMzM5OCA3Ljk5ODdDMS4zMzM5OCA0LjMxNjggNC4zMTg3NSAxLjMzMjAzIDguMDAwNjUgMS4zMzIwM0MxMS42ODI1IDEuMzMyMDMgMTQuNjY3MyA0LjMxNjggMTQuNjY3MyA3Ljk5ODdDMTQuNjY3MyAxMS42ODA2IDExLjY4MjUgMTQuNjY1NCA4LjAwMDY1IDE0LjY2NTRDNC4zMTg3NSAxNC42NjU0IDEuMzMzOTggMTEuNjgwNiAxLjMzMzk4IDcuOTk4N1pNOC4wMDA2NSAyLjMzMjAzQzQuODcxMDQgMi4zMzIwMyAyLjMzMzk4IDQuODY5MDggMi4zMzM5OCA3Ljk5ODdDMi4zMzM5OCAxMS4xMjgzIDQuODcxMDQgMTMuNjY1NCA4LjAwMDY1IDEzLjY2NTRDMTEuMTMwMyAxMy42NjU0IDEzLjY2NzMgMTEuMTI4MyAxMy42NjczIDcuOTk4N0MxMy42NjczIDQuODY5MDggMTEuMTMwMyAyLjMzMjAzIDguMDAwNjUgMi4zMzIwM1pcIlxuICAgICAgICBmaWxsPVwiI0VGNzQ4NFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTguMDAwMzkgNC4wNjY0MUM4LjMzMTc2IDQuMDY2NDEgOC42MDAzOSA0LjMzNTA0IDguNjAwMzkgNC42NjY0MVY3Ljk5OTc0QzguNjAwMzkgOC4zMzExMSA4LjMzMTc2IDguNTk5NzQgOC4wMDAzOSA4LjU5OTc0QzcuNjY5MDIgOC41OTk3NCA3LjQwMDM5IDguMzMxMTEgNy40MDAzOSA3Ljk5OTc0VjQuNjY2NDFDNy40MDAzOSA0LjMzNTA0IDcuNjY5MDIgNC4wNjY0MSA4LjAwMDM5IDQuMDY2NDFaTTguMDAwMzkgMTAuMzk5N0M4LjMzMTc2IDEwLjM5OTcgOC42MDAzOSAxMC42Njg0IDguNjAwMzkgMTAuOTk5N1YxMS4zMzMxQzguNjAwMzkgMTEuNjY0NCA4LjMzMTc2IDExLjkzMzEgOC4wMDAzOSAxMS45MzMxQzcuNjY5MDIgMTEuOTMzMSA3LjQwMDM5IDExLjY2NDQgNy40MDAzOSAxMS4zMzMxVjEwLjk5OTdDNy40MDAzOSAxMC42Njg0IDcuNjY5MDIgMTAuMzk5NyA4LjAwMDM5IDEwLjM5OTdaXCJcbiAgICAgICAgZmlsbD1cIiNFRjc0ODRcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgICB7eyBjdXJyZW50RXJyb3JNZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,14 +1,9 @@
1
- import { Component, EventEmitter, forwardRef, Input, Output, HostBinding, } from '@angular/core';
1
+ import { Component, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  export class CustomRadioComponent {
6
- get hostThemeLight() {
7
- return this.theme === 'light';
8
- }
9
- get hostThemeDark() {
10
- return this.theme === 'dark';
11
- }
6
+ /** Local color context. Omit to inherit body `.theme-light` / `.theme-dark`. */
12
7
  set options(val) {
13
8
  this._rawOptions = val;
14
9
  }
@@ -97,7 +92,7 @@ export class CustomRadioComponent {
97
92
  }
98
93
  }
99
94
  CustomRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomRadioComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
100
- CustomRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomRadioComponent, selector: "app-rd-radio", inputs: { label: "label", name: "name", disabled: "disabled", size: "size", direction: "direction", allowDeselect: "allowDeselect", theme: "theme", options: "options" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.theme-light": "this.hostThemeLight", "class.theme-dark": "this.hostThemeDark" } }, providers: [
95
+ CustomRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomRadioComponent, selector: "app-rd-radio", inputs: { label: "label", name: "name", disabled: "disabled", size: "size", direction: "direction", allowDeselect: "allowDeselect", options: "options" }, outputs: { valueChange: "valueChange" }, providers: [
101
96
  {
102
97
  provide: NG_VALUE_ACCESSOR,
103
98
  useExisting: forwardRef(() => CustomRadioComponent),
@@ -125,17 +120,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
125
120
  type: Input
126
121
  }], allowDeselect: [{
127
122
  type: Input
128
- }], theme: [{
129
- type: Input
130
- }], hostThemeLight: [{
131
- type: HostBinding,
132
- args: ['class.theme-light']
133
- }], hostThemeDark: [{
134
- type: HostBinding,
135
- args: ['class.theme-dark']
136
123
  }], options: [{
137
124
  type: Input
138
125
  }], valueChange: [{
139
126
  type: Output
140
127
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFFTixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFnQnpFLE1BQU0sT0FBTyxvQkFBb0I7SUFXL0IsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQ0ksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQ0ksT0FBTyxDQUFDLEdBQW9CO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQVVELFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBcENqQyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGlDQUFpQztRQUN4QixTQUFJLEdBQWtDLFNBQVMsQ0FBQztRQUNoRCxjQUFTLEdBQThCLFlBQVks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SSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsV0FBVztJQUNYLGdCQUFnQixDQUFDLFdBQWdCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUM7SUFDMUMsQ0FBQzs7a0hBaEhVLG9CQUFvQjtzR0FBcEIsb0JBQW9CLDBXQVJwQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQ25ELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkN2QkgsZzlDQTRDQTs0RkRuQmEsb0JBQW9CO2tCQVpoQyxTQUFTOytCQUNFLGNBQWMsYUFHYjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0dBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUdGLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsbUJBQW1CO2dCQU01QixhQUFhO3NCQURoQixXQUFXO3VCQUFDLGtCQUFrQjtnQkFNM0IsT0FBTztzQkFEVixLQUFLO2dCQVFJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9jb21tb24udHlwZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZC1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXN0b21SYWRpb0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21SYWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIC8qKiDmjInpkq7lpKflsI/vvJpsYXJnZSwgZGVmYXVsdCwgc21hbGwgKi9cbiAgQElucHV0KCkgc2l6ZTogJ2xhcmdlJyB8ICdkZWZhdWx0JyB8ICdzbWFsbCcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcbiAgQElucHV0KCkgYWxsb3dEZXNlbGVjdCA9IHRydWU7IC8vIOaWsOWinu+8muaYr+WQpuWFgeiuuOWPlua2iOmAieS4rVxuICAvKiogTG9jYWwgY29sb3IgY29udGV4dC4gT21pdCB0byBpbmhlcml0IGJvZHkgYC50aGVtZS1saWdodGAgLyBgLnRoZW1lLWRhcmtgLiAqL1xuICBASW5wdXQoKSB0aGVtZT86ICdsaWdodCcgfCAnZGFyayc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aGVtZS1saWdodCcpXG4gIGdldCBob3N0VGhlbWVMaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50aGVtZSA9PT0gJ2xpZ2h0JztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGhlbWUtZGFyaycpXG4gIGdldCBob3N0VGhlbWVEYXJrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRoZW1lID09PSAnZGFyayc7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgb3B0aW9ucyh2YWw6IElTZWxlY3RPcHRpb25bXSkge1xuICAgIHRoaXMuX3Jhd09wdGlvbnMgPSB2YWw7XG4gIH1cbiAgZ2V0IG9wdGlvbnMoKTogSVNlbGVjdE9wdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fcmF3T3B0aW9ucztcbiAgfVxuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9wdGlvbiB8IG51bGw+KCk7XG5cbiAgcHJpdmF0ZSBfcmF3T3B0aW9uczogSVNlbGVjdE9wdGlvbltdID0gW107XG4gIHByaXZhdGUgX3ZhbHVlOiBJU2VsZWN0T3B0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogSVNlbGVjdE9wdGlvbiB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBuZ09uRGVzdHJveSgpIHt9XG5cbiAgZ2V0IHZhbHVlKCk6IElTZWxlY3RPcHRpb24gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsOiBJU2VsZWN0T3B0aW9uIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbDtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBuYXRpdmVWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZT8udmFsdWU7XG4gIH1cblxuICBzZXQgbmF0aXZlVmFsdWUodmFsOiBhbnkpIHtcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQudmFsdWUgPT09IHZhbCk7XG4gICAgdGhpcy52YWx1ZSA9IG9wdGlvbiB8fCBudWxsO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICd2YWx1ZScgaW4gdmFsdWUpIHtcbiAgICAgICAgLy8g5aaC5p6c5Lyg5YWl55qE5pivIElTZWxlY3RPcHRpb24g5a+56LGhXG4gICAgICAgIHRoaXMuX3ZhbHVlID1cbiAgICAgICAgICB0aGlzLm9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQudmFsdWUgPT09IHZhbHVlLnZhbHVlKSB8fCB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIOWmguaenOS8oOWFpeeahOaYr+WAvFxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMub3B0aW9ucy5maW5kKChvcHQpID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpIHx8IG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIOWkhOeQhuWNlemAieaMiemSrueCueWHu1xuICBoYW5kbGVSYWRpb0NsaWNrKG9wdGlvblZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgIC8vIOWmguaenOWFgeiuuOWPlua2iOmAieS4re+8jOW5tuS4lOeCueWHu+eahOaYr+W9k+WJjemAieS4reeahOmAiemhuVxuICAgIGlmICh0aGlzLmFsbG93RGVzZWxlY3QgJiYgdGhpcy5uYXRpdmVWYWx1ZSA9PT0gb3B0aW9uVmFsdWUpIHtcbiAgICAgIC8vIOWPlua2iOmAieS4rVxuICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIOmAieS4reaWsOmAiemhuVxuICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IG9wdGlvblZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIOWIpOaWremAiemhueaYr+WQpumAieS4rVxuICBpc09wdGlvblNlbGVjdGVkKG9wdGlvblZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVWYWx1ZSA9PT0gb3B0aW9uVmFsdWU7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJyZC1mb3JtLWl0ZW0tcmFkaW9cIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3JkLWZvcm0taXRlbS1yYWRpby1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICdyZC1mb3JtLWl0ZW0tcmFkaW8tdmVydGljYWwnOiBkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcsXG4gICAgbGFyZ2U6IHNpemUgPT09ICdsYXJnZScsXG4gIH1cIlxuPlxuICA8ZGl2IGNsYXNzPVwicmQtZm9ybS1pdGVtLXJhZGlvLWxhYmVsXCIgKm5nSWY9XCJsYWJlbFwiPlxuICAgIHt7IGxhYmVsIH19XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAncmQtcmFkaW8tZ3JvdXAtaG9yaXpvbnRhbCc6IGRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnLFxuICAgICAgJ3JkLXJhZGlvLWdyb3VwLXZlcnRpY2FsJzogZGlyZWN0aW9uID09PSAndmVydGljYWwnLFxuICAgIH1cIlxuICAgIGNsYXNzPVwicmQtY3VzdG9tLXJhZGlvLWdyb3VwXCJcbiAgPlxuICAgIDxsYWJlbFxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgIGNsYXNzPVwicmQtcmFkaW8taXRlbVwiXG4gICAgICBbY2xhc3MucmQtcmFkaW8taXRlbS1zZWxlY3RlZF09XCJpc09wdGlvblNlbGVjdGVkKG9wdGlvbi52YWx1ZSlcIlxuICAgICAgW2NsYXNzLnJkLXJhZGlvLWl0ZW0tZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgb3B0aW9uLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5yZC1yYWRpby1pdGVtLWxhcmdlXT1cInNpemUgPT09ICdsYXJnZSdcIlxuICAgICAgW2NsYXNzLnJkLXJhZGlvLWl0ZW0tc21hbGxdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlUmFkaW9DbGljayhvcHRpb24udmFsdWUpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJzaXplID09PSAnbGFyZ2UnID8gNDAgOiBzaXplID09PSAnc21hbGwnID8gMjAgOiAyNFwiXG4gICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwic2l6ZSA9PT0gJ2xhcmdlJyA/IDQwIDogc2l6ZSA9PT0gJ3NtYWxsJyA/IDIwIDogMjRcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwicmQtY3VzdG9tLXJhZGlvXCJcbiAgICAgICAgICBbY2xhc3MucmQtY3VzdG9tLXJhZGlvLXNlbGVjdGVkXT1cImlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLnZhbHVlKVwiXG4gICAgICAgICAgW2NsYXNzLnJkLWN1c3RvbS1yYWRpby1kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZC1jdXN0b20tcmFkaW8taW5uZXJcIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJyZC1yYWRpby10ZXh0XCIgW2lubmVySHRtbF09XCJvcHRpb24ubGFiZWxcIj4gPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQWdCekUsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixnRkFBZ0Y7SUFFaEYsSUFDSSxPQUFPLENBQUMsR0FBb0I7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBVUQsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF6QmpDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUNBQWlDO1FBQ3hCLFNBQUksR0FBa0MsU0FBUyxDQUFDO1FBQ2hELGNBQVMsR0FBOEIsWUFBWSxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsY0FBYztRQVduQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBRXpELGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztRQUNsQyxXQUFNLEdBQXlCLElBQUks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QXJHVSxvQkFBb0I7c0dBQXBCLG9CQUFvQiwwT0FScEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztZQUNuRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDdkJILGc5Q0E0Q0E7NEZEbkJhLG9CQUFvQjtrQkFaaEMsU0FBUzsrQkFDRSxjQUFjLGFBR2I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3dHQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSztnQkFRSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBIb3N0QmluZGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY29tbW9uLnR5cGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmQtcmFkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VzdG9tUmFkaW9Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmFkaW9Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAvKiog5oyJ6ZKu5aSn5bCP77yabGFyZ2UsIGRlZmF1bHQsIHNtYWxsICovXG4gIEBJbnB1dCgpIHNpemU6ICdsYXJnZScgfCAnZGVmYXVsdCcgfCAnc21hbGwnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBkaXJlY3Rpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XG4gIEBJbnB1dCgpIGFsbG93RGVzZWxlY3QgPSB0cnVlOyAvLyDmlrDlop7vvJrmmK/lkKblhYHorrjlj5bmtojpgInkuK1cbiAgLyoqIExvY2FsIGNvbG9yIGNvbnRleHQuIE9taXQgdG8gaW5oZXJpdCBib2R5IGAudGhlbWUtbGlnaHRgIC8gYC50aGVtZS1kYXJrYC4gKi9cblxuICBASW5wdXQoKVxuICBzZXQgb3B0aW9ucyh2YWw6IElTZWxlY3RPcHRpb25bXSkge1xuICAgIHRoaXMuX3Jhd09wdGlvbnMgPSB2YWw7XG4gIH1cbiAgZ2V0IG9wdGlvbnMoKTogSVNlbGVjdE9wdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fcmF3T3B0aW9ucztcbiAgfVxuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9wdGlvbiB8IG51bGw+KCk7XG5cbiAgcHJpdmF0ZSBfcmF3T3B0aW9uczogSVNlbGVjdE9wdGlvbltdID0gW107XG4gIHByaXZhdGUgX3ZhbHVlOiBJU2VsZWN0T3B0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogSVNlbGVjdE9wdGlvbiB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBuZ09uRGVzdHJveSgpIHt9XG5cbiAgZ2V0IHZhbHVlKCk6IElTZWxlY3RPcHRpb24gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsOiBJU2VsZWN0T3B0aW9uIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gdmFsKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbDtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBuYXRpdmVWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZT8udmFsdWU7XG4gIH1cblxuICBzZXQgbmF0aXZlVmFsdWUodmFsOiBhbnkpIHtcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQudmFsdWUgPT09IHZhbCk7XG4gICAgdGhpcy52YWx1ZSA9IG9wdGlvbiB8fCBudWxsO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICd2YWx1ZScgaW4gdmFsdWUpIHtcbiAgICAgICAgLy8g5aaC5p6c5Lyg5YWl55qE5pivIElTZWxlY3RPcHRpb24g5a+56LGhXG4gICAgICAgIHRoaXMuX3ZhbHVlID1cbiAgICAgICAgICB0aGlzLm9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQudmFsdWUgPT09IHZhbHVlLnZhbHVlKSB8fCB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIOWmguaenOS8oOWFpeeahOaYr+WAvFxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMub3B0aW9ucy5maW5kKChvcHQpID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpIHx8IG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIOWkhOeQhuWNlemAieaMiemSrueCueWHu1xuICBoYW5kbGVSYWRpb0NsaWNrKG9wdGlvblZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgIC8vIOWmguaenOWFgeiuuOWPlua2iOmAieS4re+8jOW5tuS4lOeCueWHu+eahOaYr+W9k+WJjemAieS4reeahOmAiemhuVxuICAgIGlmICh0aGlzLmFsbG93RGVzZWxlY3QgJiYgdGhpcy5uYXRpdmVWYWx1ZSA9PT0gb3B0aW9uVmFsdWUpIHtcbiAgICAgIC8vIOWPlua2iOmAieS4rVxuICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIOmAieS4reaWsOmAiemhuVxuICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IG9wdGlvblZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIOWIpOaWremAiemhueaYr+WQpumAieS4rVxuICBpc09wdGlvblNlbGVjdGVkKG9wdGlvblZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVWYWx1ZSA9PT0gb3B0aW9uVmFsdWU7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJyZC1mb3JtLWl0ZW0tcmFkaW9cIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3JkLWZvcm0taXRlbS1yYWRpby1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICdyZC1mb3JtLWl0ZW0tcmFkaW8tdmVydGljYWwnOiBkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcsXG4gICAgbGFyZ2U6IHNpemUgPT09ICdsYXJnZScsXG4gIH1cIlxuPlxuICA8ZGl2IGNsYXNzPVwicmQtZm9ybS1pdGVtLXJhZGlvLWxhYmVsXCIgKm5nSWY9XCJsYWJlbFwiPlxuICAgIHt7IGxhYmVsIH19XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAncmQtcmFkaW8tZ3JvdXAtaG9yaXpvbnRhbCc6IGRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnLFxuICAgICAgJ3JkLXJhZGlvLWdyb3VwLXZlcnRpY2FsJzogZGlyZWN0aW9uID09PSAndmVydGljYWwnLFxuICAgIH1cIlxuICAgIGNsYXNzPVwicmQtY3VzdG9tLXJhZGlvLWdyb3VwXCJcbiAgPlxuICAgIDxsYWJlbFxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgIGNsYXNzPVwicmQtcmFkaW8taXRlbVwiXG4gICAgICBbY2xhc3MucmQtcmFkaW8taXRlbS1zZWxlY3RlZF09XCJpc09wdGlvblNlbGVjdGVkKG9wdGlvbi52YWx1ZSlcIlxuICAgICAgW2NsYXNzLnJkLXJhZGlvLWl0ZW0tZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgb3B0aW9uLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5yZC1yYWRpby1pdGVtLWxhcmdlXT1cInNpemUgPT09ICdsYXJnZSdcIlxuICAgICAgW2NsYXNzLnJkLXJhZGlvLWl0ZW0tc21hbGxdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlUmFkaW9DbGljayhvcHRpb24udmFsdWUpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJzaXplID09PSAnbGFyZ2UnID8gNDAgOiBzaXplID09PSAnc21hbGwnID8gMjAgOiAyNFwiXG4gICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwic2l6ZSA9PT0gJ2xhcmdlJyA/IDQwIDogc2l6ZSA9PT0gJ3NtYWxsJyA/IDIwIDogMjRcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwicmQtY3VzdG9tLXJhZGlvXCJcbiAgICAgICAgICBbY2xhc3MucmQtY3VzdG9tLXJhZGlvLXNlbGVjdGVkXT1cImlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLnZhbHVlKVwiXG4gICAgICAgICAgW2NsYXNzLnJkLWN1c3RvbS1yYWRpby1kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZC1jdXN0b20tcmFkaW8taW5uZXJcIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJyZC1yYWRpby10ZXh0XCIgW2lubmVySHRtbF09XCJvcHRpb24ubGFiZWxcIj4gPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=