@datarailsshared/datarailsshared 1.5.365 → 1.5.367

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 (27) hide show
  1. package/assets/styles/_storybook-styles.scss +8 -0
  2. package/assets/styles/_styles.scss +2 -0
  3. package/assets/styles/dialog.scss +22 -0
  4. package/datarailsshared-datarailsshared-1.5.367.tgz +0 -0
  5. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +1 -1
  6. package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +1 -1
  7. package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +16 -18
  8. package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +14 -14
  9. package/esm2022/lib/dr-dialog/interfaces/dialog-data.mjs +1 -1
  10. package/esm2022/lib/dr-dialog/services/dialog.service.mjs +4 -7
  11. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +1 -1
  12. package/esm2022/lib/dr-inputs/button/button.component.mjs +1 -1
  13. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +1 -1
  14. package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +6 -4
  15. package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +1 -1
  16. package/esm2022/lib/list-tags/list-tag.component.mjs +1 -1
  17. package/fesm2022/datarailsshared-datarailsshared.mjs +29 -28
  18. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
  19. package/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.d.ts +2 -4
  20. package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +1 -3
  21. package/lib/dr-dialog/interfaces/dialog-data.d.ts +2 -1
  22. package/lib/dr-dialog/services/dialog.service.d.ts +3 -2
  23. package/lib/dr-inputs/button/button.component.d.ts +1 -2
  24. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +2 -1
  25. package/package.json +1 -1
  26. package/styles.css +157 -0
  27. package/datarailsshared-datarailsshared-1.5.365.tgz +0 -0
@@ -7,6 +7,11 @@
7
7
  @import 'codemirror/theme/material.css';
8
8
  @import 'codemirror/addon/hint/show-hint.css';
9
9
 
10
+ @import '@datarailsshared/dr_icons/DataRailsFontStyles';
11
+
12
+ @import './vars';
13
+ @import './dialog';
14
+
10
15
  .CodeMirror-scroll {
11
16
  overflow-x: hidden !important;
12
17
  }
@@ -19,4 +24,7 @@ body.sb-show-main {
19
24
  *::after {
20
25
  box-sizing: inherit;
21
26
  }
27
+
28
+ font-family: $dr-primary-font-family;
29
+ font-size: $dr-primary-font-size-x-small;
22
30
  }
@@ -5,3 +5,5 @@
5
5
  @import 'codemirror/lib/codemirror.css';
6
6
  @import 'codemirror/theme/material.css';
7
7
  @import 'codemirror/addon/hint/show-hint.css';
8
+
9
+ @import './dialog';
@@ -0,0 +1,22 @@
1
+ @import './vars';
2
+ @import './colors';
3
+
4
+ .wrapper-dialog {
5
+ font-family: $dr-primary-font-family;
6
+ font-style: normal;
7
+ font-weight: bold;
8
+ display: flex;
9
+ flex-direction: column;
10
+ align-items: flex-start;
11
+ background: $dr-color-background-white;
12
+ box-shadow: 0px 2px 36px rgba(0, 0, 0, 0.15);
13
+ border-radius: 12px;
14
+ max-width: 100% !important;
15
+
16
+ mat-dialog-container {
17
+ display: flex;
18
+ border-radius: 12px;
19
+ padding: 0px;
20
+ overflow: hidden;
21
+ }
22
+ }
@@ -146,7 +146,7 @@ export class ForecastTagComponent extends AnyTagComponent {
146
146
  useClass: MomentDateAdapter,
147
147
  deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
148
148
  },
149
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler($event)\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler($event)\"></dr-date-picker>\n </div>\n</div>\n", styles: [".tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}.forecast-tag__container{display:flex;align-items:center}.forecast-tag__year{width:50%;margin-left:24px}.forecast-tag__forecast{width:50%}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.DrSelectComponent, selector: "dr-select", inputs: ["type", "className", "items", "addTag", "appendTo", "bindLabel", "bindValue", "clearable", "searchable", "searchFn", "multiple", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "disabled", "groupBy", "optionWithDescription", "id", "keyDownFn", "selectedItem", "dropdownClass", "closeOnSelect", "textView", "autofocus", "isOpen", "noValuePadding"], outputs: ["change", "open", "closeUp"] }, { kind: "component", type: i3.DrDatePickerComponent, selector: "dr-date-picker", inputs: ["format", "min", "max", "periodPosition", "placeholder", "disabled", "fiscalYearMonthsModifier", "fiscalYearBack", "datepickerFilter"] }] }); }
149
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler($event)\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler($event)\"></dr-date-picker>\n </div>\n</div>\n", styles: [".tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}.forecast-tag__container{display:flex;align-items:center}.forecast-tag__year{width:50%;margin-left:24px}.forecast-tag__forecast{width:50%}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.DrSelectComponent, selector: "dr-select", inputs: ["type", "className", "items", "addTag", "appendTo", "bindLabel", "bindValue", "clearable", "searchable", "searchFn", "multiple", "multipleHeightIncreased", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "disabled", "groupBy", "optionWithDescription", "id", "keyDownFn", "selectedItem", "dropdownClass", "closeOnSelect", "textView", "autofocus", "isOpen", "noValuePadding"], outputs: ["change", "open", "closeUp"] }, { kind: "component", type: i3.DrDatePickerComponent, selector: "dr-date-picker", inputs: ["format", "min", "max", "periodPosition", "placeholder", "disabled", "fiscalYearMonthsModifier", "fiscalYearBack", "datepickerFilter"] }] }); }
150
150
  }
151
151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ForecastTagComponent, decorators: [{
152
152
  type: Component,
@@ -98,7 +98,7 @@ export class QuarterTagComponent extends AnyTagComponent {
98
98
  });
99
99
  }
100
100
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: QuarterTagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: QuarterTagComponent, selector: "quarter-tag", inputs: { lockedDate: "lockedDate" }, host: { properties: { "class.locked": "this.isLocked" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tag-wrapper quarter-tag\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select\n class=\"quarter-tag__list\"\n placeholder=\"Select\"\n bindLabel=\"label\"\n [(ngModel)]=\"selectedValue\"\n [disabled]=\"disabled\"\n [items]=\"quarters\"\n dropdownClass=\"quarter-tag__select dr-tag__select\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-select>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-select.quarter-tag__list{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.DrSelectComponent, selector: "dr-select", inputs: ["type", "className", "items", "addTag", "appendTo", "bindLabel", "bindValue", "clearable", "searchable", "searchFn", "multiple", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "disabled", "groupBy", "optionWithDescription", "id", "keyDownFn", "selectedItem", "dropdownClass", "closeOnSelect", "textView", "autofocus", "isOpen", "noValuePadding"], outputs: ["change", "open", "closeUp"] }] }); }
101
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: QuarterTagComponent, selector: "quarter-tag", inputs: { lockedDate: "lockedDate" }, host: { properties: { "class.locked": "this.isLocked" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tag-wrapper quarter-tag\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select\n class=\"quarter-tag__list\"\n placeholder=\"Select\"\n bindLabel=\"label\"\n [(ngModel)]=\"selectedValue\"\n [disabled]=\"disabled\"\n [items]=\"quarters\"\n dropdownClass=\"quarter-tag__select dr-tag__select\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-select>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-select.quarter-tag__list{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.DrSelectComponent, selector: "dr-select", inputs: ["type", "className", "items", "addTag", "appendTo", "bindLabel", "bindValue", "clearable", "searchable", "searchFn", "multiple", "multipleHeightIncreased", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "disabled", "groupBy", "optionWithDescription", "id", "keyDownFn", "selectedItem", "dropdownClass", "closeOnSelect", "textView", "autofocus", "isOpen", "noValuePadding"], outputs: ["change", "open", "closeUp"] }] }); }
102
102
  }
103
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: QuarterTagComponent, decorators: [{
104
104
  type: Component,
@@ -4,27 +4,24 @@ import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDia
4
4
  import { DIALOG_FIELD_TYPE } from '../../interfaces/dialog-data';
5
5
  import { BehaviorSubject, Subject, throwError } from 'rxjs';
6
6
  import { catchError, finalize, takeUntil, tap } from 'rxjs/operators';
7
- import { DialogService } from '../../services/dialog.service';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "@angular/material/legacy-dialog";
10
- import * as i2 from "../../services/dialog.service";
11
- import * as i3 from "@angular/common";
12
- import * as i4 from "../../../dr-inputs/button/button.component";
13
- import * as i5 from "../../../dr-inputs/checkbox/checkbox.component";
14
- import * as i6 from "../../../dr-inputs/dr-input/dr-input.component";
15
- import * as i7 from "../../../dr-inputs/dr-select/dr-select.component";
16
- import * as i8 from "../../../dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component";
17
- import * as i9 from "@angular/forms";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "../../../dr-inputs/button/button.component";
11
+ import * as i4 from "../../../dr-inputs/checkbox/checkbox.component";
12
+ import * as i5 from "../../../dr-inputs/dr-input/dr-input.component";
13
+ import * as i6 from "../../../dr-inputs/dr-select/dr-select.component";
14
+ import * as i7 from "../../../dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component";
15
+ import * as i8 from "@angular/forms";
18
16
  export class DialogModalWrapperComponent {
19
- constructor(dialogRef, dialogService, dialogData) {
17
+ constructor(dialogRef, dialogData) {
20
18
  this.dialogRef = dialogRef;
21
- this.dialogService = dialogService;
22
19
  this.dialogData = dialogData;
23
20
  this.dialogFieldType = DIALOG_FIELD_TYPE;
21
+ this.destroy$ = new Subject();
24
22
  this.saving$ = new BehaviorSubject(false);
25
23
  this.isLoading = false;
26
24
  this.showServerErrorMessage = false;
27
- this.destroy$ = new Subject();
28
25
  this.fieldsItemsLoading = {};
29
26
  this.class = this?.dialogData?.theme?.themeSize;
30
27
  }
@@ -57,7 +54,8 @@ export class DialogModalWrapperComponent {
57
54
  }), takeUntil(this.destroy$), catchError((err) => {
58
55
  this.showServerErrorMessage = true;
59
56
  this.isLoading = false;
60
- return this.dialogService.throwErr(err, this.saving$);
57
+ this.saving$.next(false);
58
+ return throwError(() => err);
61
59
  }))
62
60
  .subscribe(() => {
63
61
  this.saving$.next(false);
@@ -74,20 +72,20 @@ export class DialogModalWrapperComponent {
74
72
  this.dialogRef.close(false);
75
73
  }
76
74
  ngOnDestroy() {
77
- this.destroy$.next(null);
75
+ this.destroy$.next();
78
76
  this.destroy$.complete();
79
77
  }
80
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogModalWrapperComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: i2.DialogService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
81
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogModalWrapperComponent, selector: "dr-dialog-modal-wrapper", host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i\n *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\" data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div\n *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label\n *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\"\n >{{ field.label }}</label\n >\n <div\n class=\"input-group p-0\"\n [ngClass]=\"{\n 'col-md-10': field.label && !field.isLabelFullWidth,\n 'col-md-12': !field.label || field.isLabelFullWidth\n }\">\n <dr-select\n *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close()\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\" class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}\n </button>\n </ng-template>\n </dr-select>\n <dr-input\n *ngIf=\"field.type === dialogFieldType.INPUT\"\n data-test=\"modalInput\"\n class=\"form-control\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker\n *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label\n class=\"form-field-error-alert\"\n *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button\n (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\" [theme]=\"'secondary'\">{{\n dialogData.cancelButton.label\n }}</dr-button>\n <dr-button\n *ngIf=\"dialogData.acceptButton\"\n data-test=\"modalAddBtn\"\n (click)=\"onAccept()\"\n [theme]=\"'primary'\"\n [isLoading]=\"isLoading\"\n [disabled]=\"form.invalid\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </div>\n</div>\n", styles: [":host{display:flex;justify-content:space-between;flex-direction:column}:host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:80vh}.header-dialog{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}.header-dialog>.icon-close{position:absolute;right:32px;top:16px;cursor:pointer}.title-dialog{display:flex;color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}.title-dialog__icon{font-size:32px;margin-right:8px;line-height:24px;color:#6d6e6f}.content-dialog{font-weight:400;font-size:14px;padding:16px 32px 5px;white-space:pre-line}.icon-close{color:#6d6e6f;cursor:pointer}.dr-smart-from{font-size:14px;font-weight:400;line-height:22px;padding:16px 32px 22px}.dr-smart-from dr-checkbox{font-weight:400}.content-dialog{padding:16px 32px 0;font-weight:400;font-size:14px;line-height:22px}.content-anchor{display:none}.footer-dialog{border-top:1px solid #DFE0E3}.buttons-wrapper{display:flex;justify-content:flex-end;padding:10px 32px 11px}.buttons-wrapper dr-button:nth-of-type(n+2){margin-left:12px}.buttons-wrapper--custom-btn{margin-right:auto}.form-field-error-alert{font-size:12px;color:#bf1d30;line-height:20px}.form-error-alert{position:absolute;margin-top:5px;font-size:12px;color:#bf1d30}.dr-select-footer__btn{background-color:transparent;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "component", type: i5.CheckboxComponent, selector: "dr-checkbox", inputs: ["checkedStatus", "disabled", "icon", "indeterminate", "textNowrap"], outputs: ["checkedChange"] }, { kind: "component", type: i6.DrInputComponent, selector: "dr-input", inputs: ["disabled", "buttonOptions", "type", "placeholder", "clearable", "name", "readonly", "min", "max", "maxlength", "minlength", "pattern", "step", "searchMini", "mask", "suffix", "prefix"], outputs: ["blur", "focus", "modelDebounceChange", "searchHandler", "clearHandler", "buttonHandler"] }, { kind: "component", type: i7.DrSelectComponent, selector: "dr-select", inputs: ["type", "className", "items", "addTag", "appendTo", "bindLabel", "bindValue", "clearable", "searchable", "searchFn", "multiple", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "disabled", "groupBy", "optionWithDescription", "id", "keyDownFn", "selectedItem", "dropdownClass", "closeOnSelect", "textView", "autofocus", "isOpen", "noValuePadding"], outputs: ["change", "open", "closeUp"] }, { kind: "component", type: i8.DrDatePickerComponent, selector: "dr-date-picker", inputs: ["format", "min", "max", "periodPosition", "placeholder", "disabled", "fiscalYearMonthsModifier", "fiscalYearBack", "datepickerFilter"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
78
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogModalWrapperComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
79
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogModalWrapperComponent, selector: "dr-dialog-modal-wrapper", host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i\n *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\" data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div\n *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label\n *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\"\n >{{ field.label }}</label\n >\n <div\n class=\"input-group p-0\"\n [ngClass]=\"{\n 'col-md-10': field.label && !field.isLabelFullWidth,\n 'col-md-12': !field.label || field.isLabelFullWidth\n }\">\n <dr-select\n *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close()\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\" class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}\n </button>\n </ng-template>\n </dr-select>\n <dr-input\n *ngIf=\"field.type === dialogFieldType.INPUT\"\n data-test=\"modalInput\"\n class=\"form-control\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker\n *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label\n class=\"form-field-error-alert\"\n *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button\n (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\" [theme]=\"'secondary'\">{{\n dialogData.cancelButton.label\n }}</dr-button>\n <dr-button\n *ngIf=\"dialogData.acceptButton\"\n data-test=\"modalAddBtn\"\n (click)=\"onAccept()\"\n [theme]=\"'primary'\"\n [isLoading]=\"isLoading\"\n [disabled]=\"form.invalid\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </div>\n</div>\n", styles: [":host{display:flex;justify-content:space-between;flex-direction:column}:host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:80vh}.header-dialog{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}.header-dialog>.icon-close{position:absolute;right:32px;top:16px;cursor:pointer}.title-dialog{display:flex;color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}.title-dialog__icon{font-size:32px;margin-right:8px;line-height:24px;color:#6d6e6f}.content-dialog{font-weight:400;font-size:14px;padding:16px 32px 5px;white-space:pre-line}.icon-close{color:#6d6e6f;cursor:pointer}.dr-smart-from{font-size:14px;font-weight:400;line-height:22px;padding:16px 32px 22px}.dr-smart-from dr-checkbox{font-weight:400}.content-dialog{padding:16px 32px 0;font-weight:400;font-size:14px;line-height:22px}.content-anchor{display:none}.footer-dialog{border-top:1px solid #DFE0E3}.buttons-wrapper{display:flex;justify-content:flex-end;padding:10px 32px 11px}.buttons-wrapper dr-button:nth-of-type(n+2){margin-left:12px}.buttons-wrapper--custom-btn{margin-right:auto}.form-field-error-alert{font-size:12px;color:#bf1d30;line-height:20px}.form-error-alert{position:absolute;margin-top:5px;font-size:12px;color:#bf1d30}.dr-select-footer__btn{background-color:transparent;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "component", type: i4.CheckboxComponent, selector: "dr-checkbox", inputs: ["checkedStatus", "disabled", "icon", "indeterminate", "textNowrap"], outputs: ["checkedChange"] }, { kind: "component", type: i5.DrInputComponent, selector: "dr-input", inputs: ["disabled", "buttonOptions", "type", "placeholder", "clearable", "name", "readonly", "min", "max", "maxlength", "minlength", "pattern", "step", "searchMini", "mask", "suffix", "prefix"], outputs: ["blur", "focus", "modelDebounceChange", "searchHandler", "clearHandler", "buttonHandler"] }, { kind: "component", type: i6.DrSelectComponent, selector: "dr-select", inputs: ["type", "className", "items", "addTag", "appendTo", "bindLabel", "bindValue", "clearable", "searchable", "searchFn", "multiple", "multipleHeightIncreased", "hideSelected", "placeholder", "loading", "loadingText", "readonly", "disabled", "groupBy", "optionWithDescription", "id", "keyDownFn", "selectedItem", "dropdownClass", "closeOnSelect", "textView", "autofocus", "isOpen", "noValuePadding"], outputs: ["change", "open", "closeUp"] }, { kind: "component", type: i7.DrDatePickerComponent, selector: "dr-date-picker", inputs: ["format", "min", "max", "periodPosition", "placeholder", "disabled", "fiscalYearMonthsModifier", "fiscalYearBack", "datepickerFilter"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
82
80
  }
83
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogModalWrapperComponent, decorators: [{
84
82
  type: Component,
85
83
  args: [{ selector: 'dr-dialog-modal-wrapper', template: "<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i\n *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\" data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div\n *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label\n *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\"\n >{{ field.label }}</label\n >\n <div\n class=\"input-group p-0\"\n [ngClass]=\"{\n 'col-md-10': field.label && !field.isLabelFullWidth,\n 'col-md-12': !field.label || field.isLabelFullWidth\n }\">\n <dr-select\n *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close()\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\" class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}\n </button>\n </ng-template>\n </dr-select>\n <dr-input\n *ngIf=\"field.type === dialogFieldType.INPUT\"\n data-test=\"modalInput\"\n class=\"form-control\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker\n *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label\n class=\"form-field-error-alert\"\n *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button\n (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\" [theme]=\"'secondary'\">{{\n dialogData.cancelButton.label\n }}</dr-button>\n <dr-button\n *ngIf=\"dialogData.acceptButton\"\n data-test=\"modalAddBtn\"\n (click)=\"onAccept()\"\n [theme]=\"'primary'\"\n [isLoading]=\"isLoading\"\n [disabled]=\"form.invalid\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </div>\n</div>\n", styles: [":host{display:flex;justify-content:space-between;flex-direction:column}:host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:80vh}.header-dialog{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}.header-dialog>.icon-close{position:absolute;right:32px;top:16px;cursor:pointer}.title-dialog{display:flex;color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}.title-dialog__icon{font-size:32px;margin-right:8px;line-height:24px;color:#6d6e6f}.content-dialog{font-weight:400;font-size:14px;padding:16px 32px 5px;white-space:pre-line}.icon-close{color:#6d6e6f;cursor:pointer}.dr-smart-from{font-size:14px;font-weight:400;line-height:22px;padding:16px 32px 22px}.dr-smart-from dr-checkbox{font-weight:400}.content-dialog{padding:16px 32px 0;font-weight:400;font-size:14px;line-height:22px}.content-anchor{display:none}.footer-dialog{border-top:1px solid #DFE0E3}.buttons-wrapper{display:flex;justify-content:flex-end;padding:10px 32px 11px}.buttons-wrapper dr-button:nth-of-type(n+2){margin-left:12px}.buttons-wrapper--custom-btn{margin-right:auto}.form-field-error-alert{font-size:12px;color:#bf1d30;line-height:20px}.form-error-alert{position:absolute;margin-top:5px;font-size:12px;color:#bf1d30}.dr-select-footer__btn{background-color:transparent;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}\n"] }]
86
- }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: i2.DialogService }, { type: undefined, decorators: [{
84
+ }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
87
85
  type: Inject,
88
86
  args: [MAT_DIALOG_DATA]
89
87
  }] }]; }, propDecorators: { class: [{
90
88
  type: HostBinding,
91
89
  args: ['class']
92
90
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLW1vZGFsLXdyYXBwZXIvZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLW1vZGFsLXdyYXBwZXIvZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsa0JBQWtCLElBQUksWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEksT0FBTyxFQUFZLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7O0FBTzlELE1BQU0sT0FBTywyQkFBMkI7SUFZcEMsWUFDVyxTQUFvRCxFQUNuRCxhQUE0QixFQUNKLFVBQW9CO1FBRjdDLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQ25ELGtCQUFhLEdB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QUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBLCBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyBEYXRhUHJvcCwgRElBTE9HX0ZJRUxEX1RZUEUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RpYWxvZy1kYXRhJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kaWFsb2ctbW9kYWwtd3JhcHBlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy1tb2RhbC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctbW9kYWwtd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RhbFdyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcmVhZG9ubHkgZGlhbG9nRmllbGRUeXBlID0gRElBTE9HX0ZJRUxEX1RZUEU7XG5cbiAgICBmb3JtOiBGb3JtR3JvdXA7XG4gICAgc2F2aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICAgIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHNob3dTZXJ2ZXJFcnJvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICBkZXN0cm95JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBmaWVsZHNJdGVtc0xvYWRpbmc6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4gPSB7fTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzcyA9IHRoaXM/LmRpYWxvZ0RhdGE/LnRoZW1lPy50aGVtZVNpemU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ01vZGFsV3JhcHBlckNvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkaWFsb2dEYXRhOiBEYXRhUHJvcCxcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEuZmllbGRzKSB0aGlzLmRpYWxvZ0RhdGEuZmllbGRzID0gW107XG5cbiAgICAgICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cChcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nRGF0YS5maWVsZHMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5pdGVtcyQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZHNJdGVtc0xvYWRpbmdbY3VycmVudFZhbHVlLm5hbWVdID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlLml0ZW1zJCA9IChjdXJyZW50VmFsdWUuaXRlbXMkIGFzIGFueSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzSXRlbXNMb2FkaW5nW2N1cnJlbnRWYWx1ZS5uYW1lXS5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5maWVsZHNJdGVtc0xvYWRpbmdbY3VycmVudFZhbHVlLm5hbWVdLm5leHQoZmFsc2UpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZmllbGRzSXRlbXNMb2FkaW5nW2N1cnJlbnRWYWx1ZS5uYW1lXS5uZXh0KGZhbHNlKSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEZvcm1Db250cm9sID0ge307XG4gICAgICAgICAgICAgICAgY3VycmVudEZvcm1Db250cm9sW2N1cnJlbnRWYWx1ZS5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlLmRlZmF1bHQgfHwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlLnZhbGlkYXRvcnMgfHwgW10sXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihhY2N1bXVsYXRvciwgY3VycmVudEZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkFjY2VwdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEuY29uZmlybUZuKSByZXR1cm4gdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5mb3JtLnZhbHVlIHx8IHRydWUpO1xuXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zYXZpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGlhbG9nRGF0YVxuICAgICAgICAgICAgLmNvbmZpcm1Gbih0aGlzLmZvcm0udmFsdWUpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2aW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NlcnZlckVycm9yTWVzc2FnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1NlcnZpY2UudGhyb3dFcnIoZXJyLCB0aGlzLnNhdmluZyQpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZm9ybS52YWx1ZSB8fCB0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRGVjbGluZSgpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBmb290ZXJBY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nRGF0YS5mb290ZXJUZW1wbGF0ZURhdGEuYWN0aW9uKHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBoZWFkZXIgY2xhc3M9XCJoZWFkZXItZGlhbG9nXCI+XG4gICAgPGgxIGNsYXNzPVwidGl0bGUtZGlhbG9nXCIgZGF0YS10ZXN0PVwibW9kYWxUaXRsZVwiPlxuICAgICAgICA8aVxuICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dEYXRhLmhlYWRlckljb25DbGFzc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRpdGxlLWRpYWxvZ19faWNvblwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiZGlhbG9nRGF0YS5oZWFkZXJJY29uQ2xhc3NcIlxuICAgICAgICAgICAgZGF0YS10ZXN0PVwiZGlhbG9nVGl0bGVJY29uXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlLWRpYWxvZ19fdGV4dFwiPnt7IGRpYWxvZ0RhdGEudGl0bGUgfX08L3NwYW4+XG4gICAgPC9oMT5cbiAgICA8aSAqbmdJZj1cIiFkaWFsb2dEYXRhLmhpZGVDbG9zZUJ0blwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCIgY2xhc3M9XCJkci1pY29uLWV4aXQgaWNvbi1jbG9zZVwiIGRhdGEtdGVzdD1cInhCdG5cIj48L2k+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJkaWFsb2dEYXRhLmNvbnRlbnRcIiBjbGFzcz1cImNvbnRlbnQtZGlhbG9nXCI+XG4gICAgPG5nLWNvbnRhaW5lcj57eyBkaWFsb2dEYXRhLmNvbnRlbnQgfX08L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiAjY29udGVudCBjbGFzcz1cImNvbnRlbnQtYW5jaG9yXCI+PC9zcGFuPlxuPC9kaXY+XG48Zm9ybSAqbmdJZj1cImRpYWxvZ0RhdGEuZmllbGRzXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJkci1zbWFydC1mcm9tXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwiZGlhbG9nRGF0YS5mb3JtV3JhcHBlckNsYXNzIHx8ICdkci1zbWFydC1mb3JtX3dyYXBwZXInXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBkaWFsb2dEYXRhLmZpZWxkc1wiXG4gICAgICAgICAgICBjbGFzcz1cImRyLXNtYXJ0LWZvcm1fZ3JvdXBcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImZpZWxkLmZvcm1Hcm91cENsYXNzXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogZmllbGQuaXNMYWJlbEZ1bGxXaWR0aCA/ICdibG9jaycgOiAnZmxleCcgfVwiPlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJmaWVsZC5sYWJlbCAmJiBmaWVsZC50eXBlICE9PSBkaWFsb2dGaWVsZFR5cGUuQ0hFQ0tCT1hcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImZpZWxkLmlzTGFiZWxGdWxsV2lkdGggPyAnY29sLW1kLTEyIG1iLTInIDogJ2NvbC1tZC0yJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbCBwLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgPnt7IGZpZWxkLmxhYmVsIH19PC9sYWJlbFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAgcC0wXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICdjb2wtbWQtMTAnOiBmaWVsZC5sYWJlbCAmJiAhZmllbGQuaXNMYWJlbEZ1bGxXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgJ2NvbC1tZC0xMic6ICFmaWVsZC5sYWJlbCB8fCBmaWVsZC5pc0xhYmVsRnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgIDxkci1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWVsZC50eXBlID09PSBkaWFsb2dGaWVsZFR5cGUuU0VMRUNUXCJcbiAgICAgICAgICAgICAgICAgICAgW3NlYXJjaGFibGVdPVwiZGlhbG9nRGF0YS5zZWFyY2hhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsZWFyYWJsZV09XCJkaWFsb2dEYXRhLmNsZWFyYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtiaW5kTGFiZWxdPVwiZmllbGQuYmluZExhYmVsIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYmluZFZhbHVlXT1cImZpZWxkLmJpbmRWYWx1ZSB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkSXRlbV09XCJmaWVsZC5kZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZpZWxkLml0ZW1zIHx8IChmaWVsZC5pdGVtcyQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJmaWVsZHNJdGVtc0xvYWRpbmdbZmllbGQubmFtZV0gfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImRpYWxvZ0RhdGE/LmZvb3RlclRlbXBsYXRlRGF0YVwiICNvcHRpb25Gb290ZXJUZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtY2xvc2U9XCJjbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZm9vdGVyQWN0aW9uKCk7IGNsb3NlKClcIiBjbGFzcz1cImRyLXNlbGVjdC1mb290ZXJfX2J0blwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiZGlhbG9nRGF0YS5mb290ZXJUZW1wbGF0ZURhdGEuaWNvblwiIGNsYXNzPVwie3sgZGlhbG9nRGF0YS5mb290ZXJUZW1wbGF0ZURhdGEuaWNvbiB9fVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaWFsb2dEYXRhLmZvb3RlclRlbXBsYXRlRGF0YS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kci1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPGRyLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gZGlhbG9nRmllbGRUeXBlLklOUFVUXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwibW9kYWxJbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCI+PC9kci1pbnB1dD5cbiAgICAgICAgICAgICAgICA8ZHItZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWVsZC50eXBlID09PSBkaWFsb2dGaWVsZFR5cGUuREFURV9QSUNLRVJcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cImZpZWxkLmRhdGVQaWNrZXJGb3JtYXRcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIj48L2RyLWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIDxkci1jaGVja2JveCAqbmdJZj1cImZpZWxkLnR5cGUgPT09IGRpYWxvZ0ZpZWxkVHlwZS5DSEVDS0JPWFwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBmaWVsZC5sYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvZHItY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZC1lcnJvci1hbGVydFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5pbnZhbGlkICYmIGZvcm0uY29udHJvbHNbZmllbGQubmFtZV0/LmRpcnR5ICYmIGZvcm0uY29udHJvbHNbZmllbGQubmFtZV0/LmVycm9yc1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyBmb3JtLmNvbnRyb2xzW2ZpZWxkLm5hbWVdLmVycm9ycy5lcnJvclN0cmluZyB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1lcnJvci1hbGVydFwiICpuZ0lmPVwiZGlhbG9nRGF0YS5lcnJvck1lc3NhZ2UgJiYgIWZvcm0ucHJpc3RpbmUgJiYgZm9ybS5pbnZhbGlkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRpYWxvZ0RhdGEuZXJyb3JNZXNzYWdlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWVycm9yLWFsZXJ0XCIgKm5nSWY9XCJmb3JtLnZhbGlkICYmIHNob3dTZXJ2ZXJFcnJvck1lc3NhZ2UgJiYgZGlhbG9nRGF0YS5zZXJ2ZXJFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZGlhbG9nRGF0YS5zZXJ2ZXJFcnJvck1lc3NhZ2UgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuXG48ZGl2IGZvb3RlciBjbGFzcz1cImZvb3Rlci1kaWFsb2dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9ucy13cmFwcGVyXCIgKm5nSWY9XCJkaWFsb2dEYXRhLmNhbmNlbEJ1dHRvbiB8fCBkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvblwiPlxuICAgICAgICA8ZHItYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwib25EZWNsaW5lKClcIlxuICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvblwiXG4gICAgICAgICAgICBbdGhlbWVdPVwiZGlhbG9nRGF0YS5jdXN0b21CdXR0b24/LnRoZW1lIHx8ICdzZWNvbmRhcnknXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9ucy13cmFwcGVyLS1jdXN0b20tYnRuXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdD1cImRlY2xpbmVCdG5cIlxuICAgICAgICAgICAgPnt7IGRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uLmxhYmVsIH19PC9kci1idXR0b25cbiAgICAgICAgPlxuICAgICAgICA8ZHItYnV0dG9uICpuZ0lmPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b25cIiBkYXRhLXRlc3Q9XCJtb2RhbENsb3NlQnRuXCIgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiBbdGhlbWVdPVwiJ3NlY29uZGFyeSdcIj57e1xuICAgICAgICAgICAgZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24ubGFiZWxcbiAgICAgICAgfX08L2RyLWJ1dHRvbj5cbiAgICAgICAgPGRyLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvblwiXG4gICAgICAgICAgICBkYXRhLXRlc3Q9XCJtb2RhbEFkZEJ0blwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25BY2NlcHQoKVwiXG4gICAgICAgICAgICBbdGhlbWVdPVwiJ3ByaW1hcnknXCJcbiAgICAgICAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICAgICAgICAgICAgPnt7IGRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmxhYmVsIH19PC9kci1idXR0b25cbiAgICAgICAgPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLW1vZGFsLXdyYXBwZXIvZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLW1vZGFsLXdyYXBwZXIvZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsa0JBQWtCLElBQUksWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEksT0FBTyxFQUFZLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQU90RSxNQUFNLE9BQU8sMkJBQTJCO0lBWXBDLFlBQ1csU0FBb0QsRUFDM0IsVUFBb0I7UUFEN0MsY0FBUyxHQUFULFNBQVMsQ0FBMkM7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQWIvQyxvQkFBZSxHQUFHLGlCQUFpQixDQUFDO1FBQ3BDLGFBQVEsR0FB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bkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBLCBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyBEYXRhUHJvcCwgRElBTE9HX0ZJRUxEX1RZUEUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RpYWxvZy1kYXRhJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWRpYWxvZy1tb2RhbC13cmFwcGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLW1vZGFsLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RpYWxvZy1tb2RhbC13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ01vZGFsV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICByZWFkb25seSBkaWFsb2dGaWVsZFR5cGUgPSBESUFMT0dfRklFTERfVFlQRTtcbiAgICByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBmb3JtOiBGb3JtR3JvdXA7XG4gICAgc2F2aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICAgIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHNob3dTZXJ2ZXJFcnJvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICBmaWVsZHNJdGVtc0xvYWRpbmc6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4gPSB7fTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzcyA9IHRoaXM/LmRpYWxvZ0RhdGE/LnRoZW1lPy50aGVtZVNpemU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ01vZGFsV3JhcHBlckNvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGlhbG9nRGF0YTogRGF0YVByb3AsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLmZpZWxkcykgdGhpcy5kaWFsb2dEYXRhLmZpZWxkcyA9IFtdO1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuZmllbGRzLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUuaXRlbXMkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzSXRlbXNMb2FkaW5nW2N1cnJlbnRWYWx1ZS5uYW1lXSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZS5pdGVtcyQgPSAoY3VycmVudFZhbHVlLml0ZW1zJCBhcyBhbnkpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkc0l0ZW1zTG9hZGluZ1tjdXJyZW50VmFsdWUubmFtZV0ubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuZmllbGRzSXRlbXNMb2FkaW5nW2N1cnJlbnRWYWx1ZS5uYW1lXS5uZXh0KGZhbHNlKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmZpZWxkc0l0ZW1zTG9hZGluZ1tjdXJyZW50VmFsdWUubmFtZV0ubmV4dChmYWxzZSkpLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGb3JtQ29udHJvbCA9IHt9O1xuICAgICAgICAgICAgICAgIGN1cnJlbnRGb3JtQ29udHJvbFtjdXJyZW50VmFsdWUubmFtZV0gPSBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZS5kZWZhdWx0IHx8IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZS52YWxpZGF0b3JzIHx8IFtdLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYWNjdW11bGF0b3IsIGN1cnJlbnRGb3JtQ29udHJvbCk7XG4gICAgICAgICAgICB9LCB7fSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25BY2NlcHQoKSB7XG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLmNvbmZpcm1GbikgcmV0dXJuIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZm9ybS52YWx1ZSB8fCB0cnVlKTtcblxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuc2F2aW5nJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRpYWxvZ0RhdGFcbiAgICAgICAgICAgIC5jb25maXJtRm4odGhpcy5mb3JtLnZhbHVlKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dTZXJ2ZXJFcnJvck1lc3NhZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5mb3JtLnZhbHVlIHx8IHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EZWNsaW5lKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIGZvb3RlckFjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dEYXRhLmZvb3RlclRlbXBsYXRlRGF0YS5hY3Rpb24odGhpcy5mb3JtLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjbG9zZURpYWxvZygpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZmFsc2UpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgaGVhZGVyIGNsYXNzPVwiaGVhZGVyLWRpYWxvZ1wiPlxuICAgIDxoMSBjbGFzcz1cInRpdGxlLWRpYWxvZ1wiIGRhdGEtdGVzdD1cIm1vZGFsVGl0bGVcIj5cbiAgICAgICAgPGlcbiAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nRGF0YS5oZWFkZXJJY29uQ2xhc3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZS1kaWFsb2dfX2ljb25cIlxuICAgICAgICAgICAgW2NsYXNzXT1cImRpYWxvZ0RhdGEuaGVhZGVySWNvbkNsYXNzXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdD1cImRpYWxvZ1RpdGxlSWNvblwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS1kaWFsb2dfX3RleHRcIj57eyBkaWFsb2dEYXRhLnRpdGxlIH19PC9zcGFuPlxuICAgIDwvaDE+XG4gICAgPGkgKm5nSWY9XCIhZGlhbG9nRGF0YS5oaWRlQ2xvc2VCdG5cIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiIGNsYXNzPVwiZHItaWNvbi1leGl0IGljb24tY2xvc2VcIiBkYXRhLXRlc3Q9XCJ4QnRuXCI+PC9pPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiZGlhbG9nRGF0YS5jb250ZW50XCIgY2xhc3M9XCJjb250ZW50LWRpYWxvZ1wiPlxuICAgIDxuZy1jb250YWluZXI+e3sgZGlhbG9nRGF0YS5jb250ZW50IH19PC9uZy1jb250YWluZXI+XG4gICAgPHNwYW4gI2NvbnRlbnQgY2xhc3M9XCJjb250ZW50LWFuY2hvclwiPjwvc3Bhbj5cbjwvZGl2PlxuPGZvcm0gKm5nSWY9XCJkaWFsb2dEYXRhLmZpZWxkc1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZHItc21hcnQtZnJvbVwiPlxuICAgIDxkaXYgW2NsYXNzXT1cImRpYWxvZ0RhdGEuZm9ybVdyYXBwZXJDbGFzcyB8fCAnZHItc21hcnQtZm9ybV93cmFwcGVyJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZGlhbG9nRGF0YS5maWVsZHNcIlxuICAgICAgICAgICAgY2xhc3M9XCJkci1zbWFydC1mb3JtX2dyb3VwXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJmaWVsZC5mb3JtR3JvdXBDbGFzc1wiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6IGZpZWxkLmlzTGFiZWxGdWxsV2lkdGggPyAnYmxvY2snIDogJ2ZsZXgnIH1cIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZmllbGQubGFiZWwgJiYgZmllbGQudHlwZSAhPT0gZGlhbG9nRmllbGRUeXBlLkNIRUNLQk9YXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJmaWVsZC5pc0xhYmVsRnVsbFdpZHRoID8gJ2NvbC1tZC0xMiBtYi0yJyA6ICdjb2wtbWQtMidcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGFiZWwgcC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgID57eyBmaWVsZC5sYWJlbCB9fTwvbGFiZWxcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWdyb3VwIHAtMFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnY29sLW1kLTEwJzogZmllbGQubGFiZWwgJiYgIWZpZWxkLmlzTGFiZWxGdWxsV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICdjb2wtbWQtMTInOiAhZmllbGQubGFiZWwgfHwgZmllbGQuaXNMYWJlbEZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gZGlhbG9nRmllbGRUeXBlLlNFTEVDVFwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWFyY2hhYmxlXT1cImRpYWxvZ0RhdGEuc2VhcmNoYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGVhcmFibGVdPVwiZGlhbG9nRGF0YS5jbGVhcmFibGVcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbYmluZExhYmVsXT1cImZpZWxkLmJpbmRMYWJlbCB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2JpbmRWYWx1ZV09XCJmaWVsZC5iaW5kVmFsdWUgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZEl0ZW1dPVwiZmllbGQuZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJmaWVsZC5pdGVtcyB8fCAoZmllbGQuaXRlbXMkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwiZmllbGRzSXRlbXNMb2FkaW5nW2ZpZWxkLm5hbWVdIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJkaWFsb2dEYXRhPy5mb290ZXJUZW1wbGF0ZURhdGFcIiAjb3B0aW9uRm9vdGVyVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImZvb3RlckFjdGlvbigpOyBjbG9zZSgpXCIgY2xhc3M9XCJkci1zZWxlY3QtZm9vdGVyX19idG5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImRpYWxvZ0RhdGEuZm9vdGVyVGVtcGxhdGVEYXRhLmljb25cIiBjbGFzcz1cInt7IGRpYWxvZ0RhdGEuZm9vdGVyVGVtcGxhdGVEYXRhLmljb24gfX1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlhbG9nRGF0YS5mb290ZXJUZW1wbGF0ZURhdGEubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZHItc2VsZWN0PlxuICAgICAgICAgICAgICAgIDxkci1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZpZWxkLnR5cGUgPT09IGRpYWxvZ0ZpZWxkVHlwZS5JTlBVVFwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdD1cIm1vZGFsSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiPjwvZHItaW5wdXQ+XG4gICAgICAgICAgICAgICAgPGRyLWRhdGUtcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gZGlhbG9nRmllbGRUeXBlLkRBVEVfUElDS0VSXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJmaWVsZC5kYXRlUGlja2VyRm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCI+PC9kci1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICA8ZHItY2hlY2tib3ggKm5nSWY9XCJmaWVsZC50eXBlID09PSBkaWFsb2dGaWVsZFR5cGUuQ0hFQ0tCT1hcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZmllbGQubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L2RyLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGQtZXJyb3ItYWxlcnRcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZvcm0uaW52YWxpZCAmJiBmb3JtLmNvbnRyb2xzW2ZpZWxkLm5hbWVdPy5kaXJ0eSAmJiBmb3JtLmNvbnRyb2xzW2ZpZWxkLm5hbWVdPy5lcnJvcnNcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZm9ybS5jb250cm9sc1tmaWVsZC5uYW1lXS5lcnJvcnMuZXJyb3JTdHJpbmcgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tZXJyb3ItYWxlcnRcIiAqbmdJZj1cImRpYWxvZ0RhdGEuZXJyb3JNZXNzYWdlICYmICFmb3JtLnByaXN0aW5lICYmIGZvcm0uaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBkaWFsb2dEYXRhLmVycm9yTWVzc2FnZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1lcnJvci1hbGVydFwiICpuZ0lmPVwiZm9ybS52YWxpZCAmJiBzaG93U2VydmVyRXJyb3JNZXNzYWdlICYmIGRpYWxvZ0RhdGEuc2VydmVyRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRpYWxvZ0RhdGEuc2VydmVyRXJyb3JNZXNzYWdlIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cblxuPGRpdiBmb290ZXIgY2xhc3M9XCJmb290ZXItZGlhbG9nXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtd3JhcHBlclwiICpuZ0lmPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24gfHwgZGlhbG9nRGF0YS5hY2NlcHRCdXR0b25cIj5cbiAgICAgICAgPGRyLWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVjbGluZSgpXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nRGF0YS5jdXN0b21CdXR0b25cIlxuICAgICAgICAgICAgW3RoZW1lXT1cImRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uPy50aGVtZSB8fCAnc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbnMtd3JhcHBlci0tY3VzdG9tLWJ0blwiXG4gICAgICAgICAgICBkYXRhLXRlc3Q9XCJkZWNsaW5lQnRuXCJcbiAgICAgICAgICAgID57eyBkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvbi5sYWJlbCB9fTwvZHItYnV0dG9uXG4gICAgICAgID5cbiAgICAgICAgPGRyLWJ1dHRvbiAqbmdJZj1cImRpYWxvZ0RhdGEuY2FuY2VsQnV0dG9uXCIgZGF0YS10ZXN0PVwibW9kYWxDbG9zZUJ0blwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCIgW3RoZW1lXT1cIidzZWNvbmRhcnknXCI+e3tcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEuY2FuY2VsQnV0dG9uLmxhYmVsXG4gICAgICAgIH19PC9kci1idXR0b24+XG4gICAgICAgIDxkci1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b25cIlxuICAgICAgICAgICAgZGF0YS10ZXN0PVwibW9kYWxBZGRCdG5cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWNjZXB0KClcIlxuICAgICAgICAgICAgW3RoZW1lXT1cIidwcmltYXJ5J1wiXG4gICAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCJcbiAgICAgICAgICAgID57eyBkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5sYWJlbCB9fTwvZHItYnV0dG9uXG4gICAgICAgID5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,23 +1,20 @@
1
1
  import { ChangeDetectorRef, Component, ComponentFactoryResolver, HostBinding, Inject, ViewChild, ViewContainerRef, } from '@angular/core';
2
2
  import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';
3
3
  import * as _ from 'lodash';
4
- import { BehaviorSubject, Subject } from 'rxjs';
4
+ import { BehaviorSubject, Subject, throwError } from 'rxjs';
5
5
  import { catchError, takeUntil } from 'rxjs/operators';
6
- import { DialogService } from '../../services/dialog.service';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@angular/material/legacy-dialog";
9
- import * as i2 from "../../services/dialog.service";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "../../../dr-inputs/button/button.component";
12
- import * as i5 from "../../../dr-tooltip/dr-tooltip.directive";
13
- import * as i6 from "../../../dr-details-list/dr-details-list.component";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "../../../dr-inputs/button/button.component";
10
+ import * as i4 from "../../../dr-tooltip/dr-tooltip.directive";
11
+ import * as i5 from "../../../dr-details-list/dr-details-list.component";
14
12
  export class DialogWrapperComponent {
15
13
  get elementClass() {
16
14
  return this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';
17
15
  }
18
- constructor(dialogRef, dialogService, cdr, componentFactoryResolver, dialogData) {
16
+ constructor(dialogRef, cdr, componentFactoryResolver, dialogData) {
19
17
  this.dialogRef = dialogRef;
20
- this.dialogService = dialogService;
21
18
  this.cdr = cdr;
22
19
  this.componentFactoryResolver = componentFactoryResolver;
23
20
  this.dialogData = dialogData;
@@ -66,7 +63,10 @@ export class DialogWrapperComponent {
66
63
  this.saving$.next(true);
67
64
  this.dialogData
68
65
  .confirmFn()
69
- .pipe(takeUntil(this.destroy$), catchError((error) => this.dialogService.throwErr(error, this.saving$)))
66
+ .pipe(takeUntil(this.destroy$), catchError((error) => {
67
+ this.saving$.next(false);
68
+ return throwError(() => error);
69
+ }))
70
70
  .subscribe(() => {
71
71
  this.saving$.next(false);
72
72
  this.dialogRef.close(data || true);
@@ -81,13 +81,13 @@ export class DialogWrapperComponent {
81
81
  this.destroy$.next(null);
82
82
  this.destroy$.complete();
83
83
  }
84
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogWrapperComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: i2.DialogService }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
85
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogWrapperComponent, selector: "dr-dialog-wrapper", host: { properties: { "class": "this.elementClass" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"dialog-wrapper\" [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\" data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\" *ngIf=\"dialogData.subtitle\">\n {{ dialogData.subtitle }}\n </h1>\n </div>\n <div\n class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list\n *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\"\n [collapse]=\"dialogData.details.collapse\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span\n *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button\n (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button\n (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\"\n >{{ dialogData.cancelButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button\n (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </span>\n </div>\n </div>\n</div>\n", styles: [":host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:85vh}:host.large-modal{min-width:750px;max-width:750px}:host.xl-medium-modal{min-width:850px;max-width:850px}:host.medium-large-modal{min-width:669px;max-width:669px}:host.xl-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:1100px}:host.xl-custom-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:100%}::ng-deep .dialog-wrapper{display:flex;justify-content:space-between;flex-direction:column;position:relative}::ng-deep .dialog-wrapper>.dr-icon-exit{z-index:1;position:absolute;right:32px;top:16px;color:#6d6e6f;cursor:pointer}::ng-deep .dialog-wrapper__header{display:flex;flex-direction:column;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}::ng-deep .dialog-wrapper__header__title{color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}::ng-deep .dialog-wrapper__header__subtitle{color:#333;font-weight:400;font-size:14px;line-height:22px;margin:4px 0 0}::ng-deep .dialog-wrapper--confirmation-no-title{padding-top:16px;height:100%}::ng-deep .dialog-wrapper__content{overflow-y:inherit;font-size:14px;font-weight:400;line-height:22px;padding:24px 32px 32px}::ng-deep .dialog-wrapper__content__anchor{display:none}::ng-deep .dialog-wrapper__content--no-padding{padding:0}::ng-deep .dialog-wrapper__content__icon{margin-right:10px;top:5px;position:relative}::ng-deep .dialog-wrapper__content.flex-position{display:flex}::ng-deep .dialog-wrapper__content .dialog-content__wrapper{white-space:pre-line}::ng-deep .dialog-wrapper dr-details-list{margin-top:-24px;padding:0 32px 32px}::ng-deep .dialog-wrapper__footer{border-top:1px solid #DFE0E3}::ng-deep .dialog-wrapper__footer__buttons{display:flex;justify-content:flex-end;padding:11px 32px}::ng-deep .dialog-wrapper__footer__buttons>dr-button:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper--custom:nth-last-child(3){margin-right:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "directive", type: i5.DrTooltipDirective, selector: "[drTooltip]", inputs: ["drTooltip", "drTooltipContext", "drTooltipPosition", "drTooltipClass", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipMouseEnterTimeout", "drTooltipOptions", "drTooltipShow"] }, { kind: "component", type: i6.DrDetailsListComponent, selector: "dr-details-list", inputs: ["title", "items", "collapse"] }] }); }
84
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogWrapperComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
85
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogWrapperComponent, selector: "dr-dialog-wrapper", host: { properties: { "class": "this.elementClass" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"dialog-wrapper\" [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\" data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\" *ngIf=\"dialogData.subtitle\">\n {{ dialogData.subtitle }}\n </h1>\n </div>\n <div\n class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list\n *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\"\n [collapse]=\"dialogData.details.collapse\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span\n *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button\n (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button\n (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\"\n >{{ dialogData.cancelButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button\n (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </span>\n </div>\n </div>\n</div>\n", styles: [":host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:85vh}:host.large-modal{min-width:750px;max-width:750px}:host.xl-medium-modal{min-width:850px;max-width:850px}:host.medium-large-modal{min-width:669px;max-width:669px}:host.xl-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:1100px}:host.xl-custom-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:100%}::ng-deep .dialog-wrapper{display:flex;justify-content:space-between;flex-direction:column;position:relative}::ng-deep .dialog-wrapper>.dr-icon-exit{z-index:1;position:absolute;right:32px;top:16px;color:#6d6e6f;cursor:pointer}::ng-deep .dialog-wrapper__header{display:flex;flex-direction:column;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}::ng-deep .dialog-wrapper__header__title{color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}::ng-deep .dialog-wrapper__header__subtitle{color:#333;font-weight:400;font-size:14px;line-height:22px;margin:4px 0 0}::ng-deep .dialog-wrapper--confirmation-no-title{padding-top:16px;height:100%}::ng-deep .dialog-wrapper__content{overflow-y:inherit;font-size:14px;font-weight:400;line-height:22px;padding:24px 32px 32px}::ng-deep .dialog-wrapper__content__anchor{display:none}::ng-deep .dialog-wrapper__content--no-padding{padding:0}::ng-deep .dialog-wrapper__content__icon{margin-right:10px;top:5px;position:relative}::ng-deep .dialog-wrapper__content.flex-position{display:flex}::ng-deep .dialog-wrapper__content .dialog-content__wrapper{white-space:pre-line}::ng-deep .dialog-wrapper dr-details-list{margin-top:-24px;padding:0 32px 32px}::ng-deep .dialog-wrapper__footer{border-top:1px solid #DFE0E3}::ng-deep .dialog-wrapper__footer__buttons{display:flex;justify-content:flex-end;padding:11px 32px}::ng-deep .dialog-wrapper__footer__buttons>dr-button:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper--custom:nth-last-child(3){margin-right:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DrButtonComponent, selector: "dr-button", inputs: ["theme", "icon", "iconColor", "iconSize", "iconAfter", "iconAfterColor", "iconAfterSize", "disabled", "isLoading", "isActive"] }, { kind: "directive", type: i4.DrTooltipDirective, selector: "[drTooltip]", inputs: ["drTooltip", "drTooltipContext", "drTooltipPosition", "drTooltipClass", "drTooltipTheme", "drTooltipMousleaveTimeout", "drTooltipMouseEnterTimeout", "drTooltipOptions", "drTooltipShow"] }, { kind: "component", type: i5.DrDetailsListComponent, selector: "dr-details-list", inputs: ["title", "items", "collapse"] }] }); }
86
86
  }
87
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogWrapperComponent, decorators: [{
88
88
  type: Component,
89
89
  args: [{ selector: 'dr-dialog-wrapper', template: "<div class=\"dialog-wrapper\" [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\" data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\" *ngIf=\"dialogData.subtitle\">\n {{ dialogData.subtitle }}\n </h1>\n </div>\n <div\n class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list\n *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\"\n [collapse]=\"dialogData.details.collapse\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span\n *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button\n (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button\n (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\"\n >{{ dialogData.cancelButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button\n (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </span>\n </div>\n </div>\n</div>\n", styles: [":host.small-modal,:host.small-modal-max-height{min-height:188px;max-height:467px;min-width:400px;max-width:400px}:host.medium-modal,:host.medium-modal-max-height{min-height:188px;max-height:467px;min-width:632px;max-width:632px}:host.medium-small-modal{min-height:188px;max-height:345px;min-width:460px;max-width:460px}:host.medium-modal-max-height,:host.small-modal-max-height{max-height:85vh}:host.large-modal{min-width:750px;max-width:750px}:host.xl-medium-modal{min-width:850px;max-width:850px}:host.medium-large-modal{min-width:669px;max-width:669px}:host.xl-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:1100px}:host.xl-custom-modal{min-height:188px;max-height:800px;min-width:1100px;max-width:100%}::ng-deep .dialog-wrapper{display:flex;justify-content:space-between;flex-direction:column;position:relative}::ng-deep .dialog-wrapper>.dr-icon-exit{z-index:1;position:absolute;right:32px;top:16px;color:#6d6e6f;cursor:pointer}::ng-deep .dialog-wrapper__header{display:flex;flex-direction:column;padding:16px 56px 16px 32px;border-bottom:1px solid #DFE0E3}::ng-deep .dialog-wrapper__header__title{color:#333;position:static;font-weight:600;font-size:16px;line-height:24px;margin-top:0;margin-bottom:0}::ng-deep .dialog-wrapper__header__subtitle{color:#333;font-weight:400;font-size:14px;line-height:22px;margin:4px 0 0}::ng-deep .dialog-wrapper--confirmation-no-title{padding-top:16px;height:100%}::ng-deep .dialog-wrapper__content{overflow-y:inherit;font-size:14px;font-weight:400;line-height:22px;padding:24px 32px 32px}::ng-deep .dialog-wrapper__content__anchor{display:none}::ng-deep .dialog-wrapper__content--no-padding{padding:0}::ng-deep .dialog-wrapper__content__icon{margin-right:10px;top:5px;position:relative}::ng-deep .dialog-wrapper__content.flex-position{display:flex}::ng-deep .dialog-wrapper__content .dialog-content__wrapper{white-space:pre-line}::ng-deep .dialog-wrapper dr-details-list{margin-top:-24px;padding:0 32px 32px}::ng-deep .dialog-wrapper__footer{border-top:1px solid #DFE0E3}::ng-deep .dialog-wrapper__footer__buttons{display:flex;justify-content:flex-end;padding:11px 32px}::ng-deep .dialog-wrapper__footer__buttons>dr-button:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper:nth-child(n+2){margin-left:12px}::ng-deep .dialog-wrapper__footer__button-wrapper--custom:nth-last-child(3){margin-right:auto}\n"] }]
90
- }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: i2.DialogService }, { type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: undefined, decorators: [{
90
+ }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: undefined, decorators: [{
91
91
  type: Inject,
92
92
  args: [MAT_DIALOG_DATA]
93
93
  }] }]; }, propDecorators: { content: [{
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
97
97
  type: HostBinding,
98
98
  args: ['class']
99
99
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsd0JBQXdCLEVBQ3hCLFdBQVcsRUFDWCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLElBQUksZUFBZSxFQUFFLGtCQUFrQixJQUFJLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhJLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQU85RCxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLElBQ0ksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxJQUFJLGNBQWMsQ0FBQztJQUNqSCxDQUFD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QUNYLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN4QixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDMUU7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNuQyxPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztrSUF4RlEsc0JBQXNCLDBKQWtCbkIsZUFBZTtzSEFsQmxCLHNCQUFzQixnTUFDRCxnQkFBZ0IsNkJDekJsRCxtMUhBdUVBOzs0RkQvQ2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG1CQUFtQjs7MEJBc0J4QixNQUFNOzJCQUFDLGVBQWU7NENBakJ1QixPQUFPO3NCQUF4RCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFHNUMsWUFBWTtzQkFEZixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEsIE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7IERhdGFQcm9wLCBTaXplTW9kYWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RpYWxvZy1kYXRhJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kaWFsb2ctd3JhcHBlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKCdjb250ZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRlbnQ6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgZWxlbWVudENsYXNzKCk6IFNpemVNb2RhbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ0RhdGE/LnRoZW1lPy5ub1RoZW1lU2l6ZUNsYXNzID8gbnVsbCA6IHRoaXMuZGlhbG9nRGF0YT8udGhlbWU/LnRoZW1lU2l6ZSB8fCAnbWVkaXVtLW1vZGFsJztcbiAgICB9XG5cbiAgICBjaGlsZENvbXBvbmVudDogYW55O1xuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICBzYXZpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gICAgZGVzdHJveSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ1dyYXBwZXJDb21wb25lbnQ+LFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkaWFsb2dEYXRhOiBEYXRhUHJvcCxcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogRXJyb3Ige1xuICAgICAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS5jaGlsZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcignRXhwZWN0ZWQgY29tcG9uZW50VHlwZUNoaWxkJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxhbnk+ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuY2hpbGQsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2hpbGRDb21wb25lbnQgPSB0aGlzLmNvbnRlbnQuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpLmluc3RhbmNlO1xuICAgICAgICB0aGlzLmNoaWxkQ29tcG9uZW50LmNsb3NlRGlhbG9nID0gdGhpcy5jbG9zZURpYWxvZy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmNoaWxkQ29tcG9uZW50Lm9uQWNjZXB0RGlhbG9nID0gdGhpcy5vbkFjY2VwdERpYWxvZy5iaW5kKHRoaXMpO1xuXG4gICAgICAgIC8vIHBhc3MgZGF0YSB0byBjb21wb25lbnQgY2hpbGRcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jaGlsZERhdGEpIHtcbiAgICAgICAgICAgIF8uYXNzaWduKHRoaXMuY2hpbGRDb21wb25lbnQsIHRoaXMuZGlhbG9nRGF0YS5jaGlsZERhdGEpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNhbGwgY29tcG9uZW50IGNoaWxkIGluaXQgZnVuYyAtIGxvb2tzIGxpa2UgZG91YmxlIGluaXRcbiAgICAgICAgLy8gaWYgKHRoaXMuY2hpbGRDb21wb25lbnQubmdPbkluaXQpIHtcbiAgICAgICAgLy8gICB0aGlzLmNoaWxkQ29tcG9uZW50Lm5nT25Jbml0KCk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGNsb3NlRGlhbG9nKGRhdGE/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSB8fCBmYWxzZSk7XG4gICAgfVxuXG4gICAgZW5hYmxlQWNjZXB0QnV0dG9uKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkRlY2xpbmUoKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgb25BY2NlcHREaWFsb2coZGF0YT86IGFueSkge1xuICAgICAgICBpZiAoIXRoaXMuY2hpbGRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVuY05hbWUgPSB0aGlzLmRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmZ1bmN0aW9ucztcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRDb21wb25lbnRbZnVuY05hbWVdKSB0aGlzLmNoaWxkQ29tcG9uZW50W2Z1bmNOYW1lXSgpO1xuICAgICAgICBjb25zdCBsb2FkRnVuY05hbWUgPSB0aGlzLmRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmxvYWRpbmc7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkQ29tcG9uZW50W2xvYWRGdW5jTmFtZV0pIHRoaXMuaXNMb2FkaW5nID0gdGhpcy5jaGlsZENvbXBvbmVudFtsb2FkRnVuY05hbWVdKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jb25maXJtRm4pIHtcbiAgICAgICAgICAgIHRoaXMuc2F2aW5nJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dEYXRhXG4gICAgICAgICAgICAgICAgLmNvbmZpcm1GbigpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHRoaXMuZGlhbG9nU2VydmljZS50aHJvd0VycihlcnJvciwgdGhpcy5zYXZpbmckKSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jaGlsZENvbXBvbmVudCAmJiAhdGhpcy5jaGlsZENvbXBvbmVudFtmdW5jTmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCIgW2NsYXNzLmRpYWxvZy13cmFwcGVyLS1jb25maXJtYXRpb24tbm8tdGl0bGVdPVwiZGlhbG9nRGF0YS50aGVtZT8uaXNDb25maXJtYXRpb24gJiYgIWRpYWxvZ0RhdGEudGl0bGVcIj5cbiAgICA8aSBjbGFzcz1cImRyLWljb24tZXhpdFwiIGRhdGEtdGVzdD1cImNsb3NlX2J0blwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCIgKm5nSWY9XCIhZGlhbG9nRGF0YT8uaGlkZUNsb3NlQnRuXCI+PC9pPlxuXG4gICAgPGRpdiBoZWFkZXIgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9faGVhZGVyXCIgKm5nSWY9XCJkaWFsb2dEYXRhLnRpdGxlXCI+XG4gICAgICAgIDxoMSBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19oZWFkZXJfX3RpdGxlXCIgZGF0YS10ZXN0PVwiZGlhbG9nVGl0bGVcIj57eyBkaWFsb2dEYXRhLnRpdGxlIH19PC9oMT5cbiAgICAgICAgPGgxIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2hlYWRlcl9fc3VidGl0bGVcIiBkYXRhLXRlc3Q9XCJkaWFsb2dTdWJ0aXRsZVwiICpuZ0lmPVwiZGlhbG9nRGF0YS5zdWJ0aXRsZVwiPlxuICAgICAgICAgICAge3sgZGlhbG9nRGF0YS5zdWJ0aXRsZSB9fVxuICAgICAgICA8L2gxPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fY29udGVudFwiXG4gICAgICAgIFtjbGFzcy5kaWFsb2ctd3JhcHBlcl9fY29udGVudC0tbm8tcGFkZGluZ109XCJkaWFsb2dEYXRhLnRoZW1lPy5jb250ZW50Tm9QYWRkaW5nXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZmxleC1wb3NpdGlvbic6IGRpYWxvZ0RhdGEuY29udGVudEljb24/LmNsYXNzICYmICFjaGlsZENvbXBvbmVudCB9XCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZGlhbG9nRGF0YS5jb250ZW50SWNvbj8uY2xhc3NcIiBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19jb250ZW50X19pY29uXCI+XG4gICAgICAgICAgICA8aSBbbmdDbGFzc109XCJkaWFsb2dEYXRhLmNvbnRlbnRJY29uLmNsYXNzXCIgW3N0eWxlLmNvbG9yXT1cImRpYWxvZ0RhdGEuY29udGVudEljb24/LmNvbG9yIHx8ICdpbmhlcml0J1wiPjwvaT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRpYWxvZy1jb250ZW50X193cmFwcGVyXCIgW2lubmVySFRNTF09XCJkaWFsb2dEYXRhLmNvbnRlbnRcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuICNjb250ZW50IGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2NvbnRlbnRfX2FuY2hvclwiPiA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRyLWRldGFpbHMtbGlzdFxuICAgICAgICAqbmdJZj1cImRpYWxvZ0RhdGEuZGV0YWlsc1wiXG4gICAgICAgIFt0aXRsZV09XCJkaWFsb2dEYXRhLmRldGFpbHMudGl0bGVcIlxuICAgICAgICBbaXRlbXNdPVwiZGlhbG9nRGF0YS5kZXRhaWxzLml0ZW1zXCJcbiAgICAgICAgW2NvbGxhcHNlXT1cImRpYWxvZ0RhdGEuZGV0YWlscy5jb2xsYXBzZVwiPlxuICAgIDwvZHItZGV0YWlscy1saXN0PlxuICAgIDxkaXYgZm9vdGVyIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2Zvb3RlclwiICpuZ0lmPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24gfHwgZGlhbG9nRGF0YS5hY2NlcHRCdXR0b25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19mb290ZXJfX2J1dHRvbnNcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fZm9vdGVyX19idXR0b24td3JhcHBlciBkaWFsb2ctd3JhcHBlcl9fZm9vdGVyX19idXR0b24td3JhcHBlci0tY3VzdG9tXCJcbiAgICAgICAgICAgICAgICBbZHJUb29sdGlwXT1cImRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uLmlzRGlzYWJsZWQgJiYgZGlhbG9nRGF0YS50b29sdGlwcz8uY3VzdG9tRGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8ZHItYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlY2xpbmUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvbj8udGhlbWUgfHwgJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdD1cImRlY2xpbmVCdG5cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlhbG9nRGF0YS5jdXN0b21CdXR0b24uaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS50b29sdGlwcz8uY3VzdG9tXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7IGRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uLmxhYmVsIH19PC9kci1idXR0b25cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2Zvb3Rlcl9fYnV0dG9uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24uaXNEaXNhYmxlZCAmJiBkaWFsb2dEYXRhLnRvb2x0aXBzPy5jYW5jZWxEaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgIDxkci1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24/LnRoZW1lIHx8ICdzZWNvbmRhcnknXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwiY2xvc2VCdG5cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24uaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS50b29sdGlwcz8uY2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7IGRpYWxvZ0RhdGEuY2FuY2VsQnV0dG9uLmxhYmVsIH19PC9kci1idXR0b25cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2Zvb3Rlcl9fYnV0dG9uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b24uaXNEaXNhYmxlZCAmJiBkaWFsb2dEYXRhLnRvb2x0aXBzPy5hY2NlcHREaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgIDxkci1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWNjZXB0RGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b24/LnRoZW1lIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwiYWNjZXB0QnRuXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbZHJUb29sdGlwXT1cImRpYWxvZ0RhdGEudG9vbHRpcHM/LmFjY2VwdFwiXG4gICAgICAgICAgICAgICAgICAgID57eyBkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5sYWJlbCB9fTwvZHItYnV0dG9uXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZGlhbG9nL2NvbXBvbmVudHMvZGlhbG9nLXdyYXBwZXIvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsd0JBQXdCLEVBQ3hCLFdBQVcsRUFDWCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLElBQUksZUFBZSxFQUFFLGtCQUFrQixJQUFJLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhJLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBT3ZELE1BQU0sT0FBTyxzQkFBc0I7SUFHL0IsSUFDSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLElBQUksY0FBYyxDQUFDO0lBQ2pILENBQUM7SUFPRCxZQUNXLFNBQStDLEVBQzlDLEdBQXNCLEVBQ3RC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RSxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQ0w7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNuQyxPQUFPO1NBQ1Y7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztrSUExRlEsc0JBQXNCLDZIQWlCbkIsZUFBZTtzSEFqQmxCLHNCQUFzQixnTUFDRCxnQkFBZ0IsNkJDeEJsRCxtMUhBdUVBOzs0RkRoRGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG1CQUFtQjs7MEJBcUJ4QixNQUFNOzJCQUFDLGVBQWU7NENBaEJ1QixPQUFPO3NCQUF4RCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFHNUMsWUFBWTtzQkFEZixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEsIE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7IERhdGFQcm9wLCBTaXplTW9kYWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RpYWxvZy1kYXRhJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWRpYWxvZy13cmFwcGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RpYWxvZy13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ1dyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY29udGVudDogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBlbGVtZW50Q2xhc3MoKTogU2l6ZU1vZGFsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nRGF0YT8udGhlbWU/Lm5vVGhlbWVTaXplQ2xhc3MgPyBudWxsIDogdGhpcy5kaWFsb2dEYXRhPy50aGVtZT8udGhlbWVTaXplIHx8ICdtZWRpdW0tbW9kYWwnO1xuICAgIH1cblxuICAgIGNoaWxkQ29tcG9uZW50OiBhbnk7XG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIHNhdmluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgICBkZXN0cm95JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RGlhbG9nV3JhcHBlckNvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkaWFsb2dEYXRhOiBEYXRhUHJvcCxcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogRXJyb3Ige1xuICAgICAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS5jaGlsZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcignRXhwZWN0ZWQgY29tcG9uZW50VHlwZUNoaWxkJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxhbnk+ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuY2hpbGQsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2hpbGRDb21wb25lbnQgPSB0aGlzLmNvbnRlbnQuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpLmluc3RhbmNlO1xuICAgICAgICB0aGlzLmNoaWxkQ29tcG9uZW50LmNsb3NlRGlhbG9nID0gdGhpcy5jbG9zZURpYWxvZy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmNoaWxkQ29tcG9uZW50Lm9uQWNjZXB0RGlhbG9nID0gdGhpcy5vbkFjY2VwdERpYWxvZy5iaW5kKHRoaXMpO1xuXG4gICAgICAgIC8vIHBhc3MgZGF0YSB0byBjb21wb25lbnQgY2hpbGRcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jaGlsZERhdGEpIHtcbiAgICAgICAgICAgIF8uYXNzaWduKHRoaXMuY2hpbGRDb21wb25lbnQsIHRoaXMuZGlhbG9nRGF0YS5jaGlsZERhdGEpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNhbGwgY29tcG9uZW50IGNoaWxkIGluaXQgZnVuYyAtIGxvb2tzIGxpa2UgZG91YmxlIGluaXRcbiAgICAgICAgLy8gaWYgKHRoaXMuY2hpbGRDb21wb25lbnQubmdPbkluaXQpIHtcbiAgICAgICAgLy8gICB0aGlzLmNoaWxkQ29tcG9uZW50Lm5nT25Jbml0KCk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGNsb3NlRGlhbG9nKGRhdGE/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSB8fCBmYWxzZSk7XG4gICAgfVxuXG4gICAgZW5hYmxlQWNjZXB0QnV0dG9uKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkRlY2xpbmUoKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgb25BY2NlcHREaWFsb2coZGF0YT86IGFueSkge1xuICAgICAgICBpZiAoIXRoaXMuY2hpbGRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVuY05hbWUgPSB0aGlzLmRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmZ1bmN0aW9ucztcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRDb21wb25lbnRbZnVuY05hbWVdKSB0aGlzLmNoaWxkQ29tcG9uZW50W2Z1bmNOYW1lXSgpO1xuICAgICAgICBjb25zdCBsb2FkRnVuY05hbWUgPSB0aGlzLmRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmxvYWRpbmc7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkQ29tcG9uZW50W2xvYWRGdW5jTmFtZV0pIHRoaXMuaXNMb2FkaW5nID0gdGhpcy5jaGlsZENvbXBvbmVudFtsb2FkRnVuY05hbWVdKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jb25maXJtRm4pIHtcbiAgICAgICAgICAgIHRoaXMuc2F2aW5nJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dEYXRhXG4gICAgICAgICAgICAgICAgLmNvbmZpcm1GbigpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2aW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jaGlsZENvbXBvbmVudCAmJiAhdGhpcy5jaGlsZENvbXBvbmVudFtmdW5jTmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEgfHwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCIgW2NsYXNzLmRpYWxvZy13cmFwcGVyLS1jb25maXJtYXRpb24tbm8tdGl0bGVdPVwiZGlhbG9nRGF0YS50aGVtZT8uaXNDb25maXJtYXRpb24gJiYgIWRpYWxvZ0RhdGEudGl0bGVcIj5cbiAgICA8aSBjbGFzcz1cImRyLWljb24tZXhpdFwiIGRhdGEtdGVzdD1cImNsb3NlX2J0blwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCIgKm5nSWY9XCIhZGlhbG9nRGF0YT8uaGlkZUNsb3NlQnRuXCI+PC9pPlxuXG4gICAgPGRpdiBoZWFkZXIgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9faGVhZGVyXCIgKm5nSWY9XCJkaWFsb2dEYXRhLnRpdGxlXCI+XG4gICAgICAgIDxoMSBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19oZWFkZXJfX3RpdGxlXCIgZGF0YS10ZXN0PVwiZGlhbG9nVGl0bGVcIj57eyBkaWFsb2dEYXRhLnRpdGxlIH19PC9oMT5cbiAgICAgICAgPGgxIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2hlYWRlcl9fc3VidGl0bGVcIiBkYXRhLXRlc3Q9XCJkaWFsb2dTdWJ0aXRsZVwiICpuZ0lmPVwiZGlhbG9nRGF0YS5zdWJ0aXRsZVwiPlxuICAgICAgICAgICAge3sgZGlhbG9nRGF0YS5zdWJ0aXRsZSB9fVxuICAgICAgICA8L2gxPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fY29udGVudFwiXG4gICAgICAgIFtjbGFzcy5kaWFsb2ctd3JhcHBlcl9fY29udGVudC0tbm8tcGFkZGluZ109XCJkaWFsb2dEYXRhLnRoZW1lPy5jb250ZW50Tm9QYWRkaW5nXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZmxleC1wb3NpdGlvbic6IGRpYWxvZ0RhdGEuY29udGVudEljb24/LmNsYXNzICYmICFjaGlsZENvbXBvbmVudCB9XCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZGlhbG9nRGF0YS5jb250ZW50SWNvbj8uY2xhc3NcIiBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19jb250ZW50X19pY29uXCI+XG4gICAgICAgICAgICA8aSBbbmdDbGFzc109XCJkaWFsb2dEYXRhLmNvbnRlbnRJY29uLmNsYXNzXCIgW3N0eWxlLmNvbG9yXT1cImRpYWxvZ0RhdGEuY29udGVudEljb24/LmNvbG9yIHx8ICdpbmhlcml0J1wiPjwvaT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRpYWxvZy1jb250ZW50X193cmFwcGVyXCIgW2lubmVySFRNTF09XCJkaWFsb2dEYXRhLmNvbnRlbnRcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuICNjb250ZW50IGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2NvbnRlbnRfX2FuY2hvclwiPiA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRyLWRldGFpbHMtbGlzdFxuICAgICAgICAqbmdJZj1cImRpYWxvZ0RhdGEuZGV0YWlsc1wiXG4gICAgICAgIFt0aXRsZV09XCJkaWFsb2dEYXRhLmRldGFpbHMudGl0bGVcIlxuICAgICAgICBbaXRlbXNdPVwiZGlhbG9nRGF0YS5kZXRhaWxzLml0ZW1zXCJcbiAgICAgICAgW2NvbGxhcHNlXT1cImRpYWxvZ0RhdGEuZGV0YWlscy5jb2xsYXBzZVwiPlxuICAgIDwvZHItZGV0YWlscy1saXN0PlxuICAgIDxkaXYgZm9vdGVyIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2Zvb3RlclwiICpuZ0lmPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24gfHwgZGlhbG9nRGF0YS5hY2NlcHRCdXR0b25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyX19mb290ZXJfX2J1dHRvbnNcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkaWFsb2ctd3JhcHBlcl9fZm9vdGVyX19idXR0b24td3JhcHBlciBkaWFsb2ctd3JhcHBlcl9fZm9vdGVyX19idXR0b24td3JhcHBlci0tY3VzdG9tXCJcbiAgICAgICAgICAgICAgICBbZHJUb29sdGlwXT1cImRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uLmlzRGlzYWJsZWQgJiYgZGlhbG9nRGF0YS50b29sdGlwcz8uY3VzdG9tRGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8ZHItYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlY2xpbmUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJkaWFsb2dEYXRhLmN1c3RvbUJ1dHRvbj8udGhlbWUgfHwgJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdD1cImRlY2xpbmVCdG5cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlhbG9nRGF0YS5jdXN0b21CdXR0b24uaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS50b29sdGlwcz8uY3VzdG9tXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7IGRpYWxvZ0RhdGEuY3VzdG9tQnV0dG9uLmxhYmVsIH19PC9kci1idXR0b25cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2Zvb3Rlcl9fYnV0dG9uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24uaXNEaXNhYmxlZCAmJiBkaWFsb2dEYXRhLnRvb2x0aXBzPy5jYW5jZWxEaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgIDxkci1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24/LnRoZW1lIHx8ICdzZWNvbmRhcnknXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwiY2xvc2VCdG5cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlhbG9nRGF0YS5jYW5jZWxCdXR0b24uaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS50b29sdGlwcz8uY2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7IGRpYWxvZ0RhdGEuY2FuY2VsQnV0dG9uLmxhYmVsIH19PC9kci1idXR0b25cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJfX2Zvb3Rlcl9fYnV0dG9uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBdPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b24uaXNEaXNhYmxlZCAmJiBkaWFsb2dEYXRhLnRvb2x0aXBzPy5hY2NlcHREaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgIDxkci1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWNjZXB0RGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwiZGlhbG9nRGF0YS5hY2NlcHRCdXR0b24/LnRoZW1lIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0PVwiYWNjZXB0QnRuXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpYWxvZ0RhdGEuYWNjZXB0QnV0dG9uLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbZHJUb29sdGlwXT1cImRpYWxvZ0RhdGEudG9vbHRpcHM/LmFjY2VwdFwiXG4gICAgICAgICAgICAgICAgICAgID57eyBkaWFsb2dEYXRhLmFjY2VwdEJ1dHRvbi5sYWJlbCB9fTwvZHItYnV0dG9uXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -24,4 +24,4 @@ export var DIALOG_FIELD_TYPE;
24
24
  DIALOG_FIELD_TYPE["DATE_PICKER"] = "date_picker";
25
25
  DIALOG_FIELD_TYPE["CHECKBOX"] = "checkbox";
26
26
  })(DIALOG_FIELD_TYPE || (DIALOG_FIELD_TYPE = {}));
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1kaWFsb2cvaW50ZXJmYWNlcy9kaWFsb2ctZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SUEsTUFBTSxDQUFOLElBQVksV0FXWDtBQVhELFdBQVksV0FBVztJQUNuQixvQ0FBcUIsQ0FBQTtJQUNyQiwwREFBMkMsQ0FBQTtJQUMzQyxzQ0FBdUIsQ0FBQTtJQUN2QixrREFBbUMsQ0FBQTtJQUNuQyw0REFBNkMsQ0FBQTtJQUM3QyxrREFBbUMsQ0FBQTtJQUNuQyxvQ0FBcUIsQ0FBQTtJQUNyQixtQ0FBb0IsQ0FBQTtJQUNwQixpREFBa0MsQ0FBQTtJQUNsQywyQ0FBNEIsQ0FBQTtBQUNoQyxDQUFDLEVBWFcsV0FBVyxLQUFYLFdBQVcsUUFXdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxtQkFJWDtBQUpELFdBQVksbUJBQW1CO0lBQzNCLG9DQUFhLENBQUE7SUFDYix3Q0FBaUIsQ0FBQTtJQUNqQixzQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBRUQsTUFBTSxDQUFOLElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUN6QixvQ0FBZSxDQUFBO0lBQ2Ysc0NBQWlCLENBQUE7SUFDakIsZ0RBQTJCLENBQUE7SUFDM0IsMENBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaW1lZnJhbWVPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvZGF0ZVBpY2tlcic7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2dDb25maWcgYXMgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5cbnR5cGUgRGlhbG9nQ29uZmlnID0gT21pdDxNYXREaWFsb2dDb25maWcsICdkYXRhJz47XG5cbi8vIERhdGEgT2JqIGZvciBvcGVuRGlhbG9nV3JhcHBlcigpXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0RhdGE8VCA9IGFueT4gZXh0ZW5kcyBEaWFsb2dDb25maWcge1xuICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICAgIHNlYXJjaGFibGU/OiBib29sZWFuO1xuICAgICAgICBjbGVhcmFibGU/OiBib29sZWFuO1xuICAgICAgICBzdWJ0aXRsZT86IHN0cmluZztcbiAgICAgICAgY29udGVudD86IGFueTtcbiAgICAgICAgY29udGVudEljb24/OiB7XG4gICAgICAgICAgICBjbGFzcz86IHN0cmluZztcbiAgICAgICAgICAgIGNvbG9yPzogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgICBhY2NlcHRCdXR0b24/OiBEaWFsb2dGb290ZXJCdXR0b247XG4gICAgICAgIGNhbmNlbEJ1dHRvbj86IERpYWxvZ0Zvb3RlckJ1dHRvbjtcbiAgICAgICAgY3VzdG9tQnV0dG9uPzogRGlhbG9nRm9vdGVyQnV0dG9uO1xuICAgICAgICB0b29sdGlwcz86IGFueTtcbiAgICAgICAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgICAgICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgICAgIGNoaWxkPzogQ29tcG9uZW50VHlwZTxUPjtcbiAgICAgICAgY2hpbGREYXRhPzogUGFydGlhbDxUPjtcbiAgICAgICAgdGhlbWU/OiB7XG4gICAgICAgICAgICB0aGVtZVNpemU/OiBTaXplTW9kYWw7XG4gICAgICAgICAgICB0eXBlPzogJ3N1Y2Nlc3NmdWwnO1xuICAgICAgICAgICAgY29udGVudE5vUGFkZGluZz86IGJvb2xlYW47XG4gICAgICAgICAgICBpc0NvbmZpcm1hdGlvbj86IGJvb2xlYW47XG4gICAgICAgICAgICBub1RoZW1lU2l6ZUNsYXNzPzogYm9vbGVhbjtcbiAgICAgICAgfTtcbiAgICAgICAgY29uZmlybUZuPzogYW55O1xuICAgICAgICBmaWVsZHM/OiBNb2RhbEZvcm1GaWVsZFtdO1xuICAgICAgICBoaWRlQ2xvc2VCdG4/OiBib29sZWFuO1xuICAgICAgICBmb290ZXJUZW1wbGF0ZURhdGE/OiBGb290ZXJUZW1wbGF0ZURhdGE7XG4gICAgICAgIGRldGFpbHM/OiB7XG4gICAgICAgICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgICAgICAgIGl0ZW1zPzogc3RyaW5nW10gfCBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgICAgICAgICAgIGNvbGxhcHNlPzogYm9vbGVhbjtcbiAgICAgICAgfTtcbiAgICAgICAgaGVhZGVySWNvbkNsYXNzPzogc3RyaW5nO1xuICAgICAgICBmb3JtV3JhcHBlckNsYXNzPzogc3RyaW5nO1xuICAgIH07XG59XG5cbi8vIERhdGEgT2JqIGZvciBvcGVuQ29uZmlybURpYWxvZygpXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1EaWFsb2dEYXRhIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBzZWFyY2hhYmxlPzogYm9vbGVhbjtcbiAgICBjbGVhcmFibGU/OiBib29sZWFuO1xuICAgIGNvbnRlbnQ/OiBzdHJpbmc7XG4gICAgY29udGVudEljb24/OiB7XG4gICAgICAgIGNsYXNzPzogc3RyaW5nO1xuICAgICAgICBjb2xvcj86IHN0cmluZztcbiAgICB9O1xuICAgIGFjY2VwdEJ1dHRvbj86IERpYWxvZ0Zvb3RlckJ1dHRvbjtcbiAgICBjYW5jZWxCdXR0b24/OiBEaWFsb2dGb290ZXJCdXR0b247XG4gICAgY3VzdG9tQnV0dG9uPzogRGlhbG9nRm9vdGVyQnV0dG9uO1xuICAgIHRvb2x0aXBzPzogYW55O1xuICAgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgaGlkZUNsb3NlQnRuPzogYm9vbGVhbjtcbiAgICBjb25maXJtRm4/OiAocmVzcG9uc2U/OiBhbnkpID0+IE9ic2VydmFibGU8YW55PjtcbiAgICBmaWVsZHM/OiBNb2RhbEZvcm1GaWVsZFtdO1xuICAgIGZvb3RlclRlbXBsYXRlRGF0YT86IEZvb3RlclRlbXBsYXRlRGF0YTtcbiAgICBkZXRhaWxzPzoge1xuICAgICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgICAgaXRlbXM/OiBzdHJpbmdbXSB8IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICAgIH07XG4gICAgdGhlbWU/OiB7XG4gICAgICAgIHRoZW1lU2l6ZT86IFNpemVNb2RhbDtcbiAgICB9O1xuICAgIGhlYWRlckljb25DbGFzcz86IHN0cmluZztcbiAgICBmb3JtV3JhcHBlckNsYXNzPzogc3RyaW5nO1xufVxuXG4vLyBEYXRhIE9iaiBmb3Igb3BlbkNvbmZpcm1EaWFsb2dNb2RhbCgpXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1EaWFsb2dNb2RhbERhdGEgZXh0ZW5kcyBDb25maXJtRGlhbG9nRGF0YSB7XG4gICAgY29uZmlybUZuPzogYW55O1xuICAgIGhpZGVDbG9zZUJ0bj86IGJvb2xlYW47XG4gICAgZm9vdGVyVGVtcGxhdGVEYXRhPzogRm9vdGVyVGVtcGxhdGVEYXRhO1xuICAgIGZpZWxkcz86IE1vZGFsRm9ybUZpZWxkW107XG4gICAgaGVhZGVySWNvbkNsYXNzPzogc3RyaW5nO1xuICAgIGZvcm1XcmFwcGVyQ2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyVGVtcGxhdGVEYXRhIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgYWN0aW9uOiAob2JqVG9TYXZlPzogYW55KSA9PiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxGb3JtRmllbGQge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBURGlhbG9nRmllbGRUeXBlO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGlzTGFiZWxGdWxsV2lkdGg/OiBib29sZWFuO1xuICAgIGl0ZW1zPzogYW55W107XG4gICAgaXRlbXMkPzogT2JzZXJ2YWJsZTxhbnlbXT4gfCBPYnNlcnZhYmxlPGFueT47XG4gICAgZGVmYXVsdD86IGFueTtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBiaW5kTGFiZWw/OiBzdHJpbmc7XG4gICAgYmluZFZhbHVlPzogc3RyaW5nO1xuICAgIHZhbGlkYXRvcnM/OiBhbnlbXTtcbiAgICBkYXRlUGlja2VyRm9ybWF0PzogVGltZWZyYW1lT3B0aW9uO1xuICAgIGZvcm1Hcm91cENsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTaXplTW9kYWwgPVxuICAgIHwgJ3NtYWxsLW1vZGFsJ1xuICAgIHwgJ3NtYWxsLW1vZGFsLW1heC1oZWlnaHQnXG4gICAgfCAnbWVkaXVtLXNtYWxsLW1vZGFsJ1xuICAgIHwgJ21lZGl1bS1tb2RhbCdcbiAgICB8ICdtZWRpdW0tbW9kYWwtbWF4LWhlaWdodCdcbiAgICB8ICdtZWRpdW0tbGFyZ2UtbW9kYWwnXG4gICAgfCAnbGFyZ2UtbW9kYWwnXG4gICAgfCAneGwtbW9kYWwnXG4gICAgfCAneGwtY3VzdG9tLW1vZGFsJ1xuICAgIHwgJ3hsLW1lZGl1bS1tb2RhbCc7XG5cbmV4cG9ydCB0eXBlIERhdGFQcm9wPFQgPSBhbnk+ID0gRGlhbG9nRGF0YTxUPlsnZGF0YSddO1xuXG5leHBvcnQgdHlwZSBEaWFsb2dUaGVtZSA9IERhdGFQcm9wWyd0aGVtZSddO1xuXG5leHBvcnQgdHlwZSBEaWFsb2dGb290ZXJCdXR0b24gPSB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgbG9hZGluZ0xhYmVsPzogc3RyaW5nO1xuICAgIGZ1bmN0aW9ucz86IGFueTtcbiAgICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgICBsb2FkaW5nPzogYW55O1xuICAgIHRoZW1lPzogYW55O1xufTtcblxuZXhwb3J0IGVudW0gRElBTE9HX1NJWkUge1xuICAgIFNNQUxMID0gJ3NtYWxsLW1vZGFsJyxcbiAgICBTTUFMTF9NQVhfSEVJR0hUID0gJ3NtYWxsLW1vZGFsLW1heC1oZWlnaHQnLFxuICAgIE1FRElVTSA9ICdtZWRpdW0tbW9kYWwnLFxuICAgIE1FRElVTV9TTUFMTCA9ICdtZWRpdW0tc21hbGwtbW9kYWwnLFxuICAgIE1FRElVTV9NQVhfSEVJR0hUID0gJ21lZGl1bS1tb2RhbC1tYXgtaGVpZ2h0JyxcbiAgICBNRURJVU1fTEFSR0UgPSAnbWVkaXVtLWxhcmdlLW1vZGFsJyxcbiAgICBMQVJHRSA9ICdsYXJnZS1tb2RhbCcsXG4gICAgWF9MQVJHRSA9ICd4bC1tb2RhbCcsXG4gICAgWF9DVVNUT01fTEFSR0UgPSAneGwtY3VzdG9tLW1vZGFsJyxcbiAgICBYX01FRElVTSA9ICd4bC1tZWRpdW0tbW9kYWwnLFxufVxuXG5leHBvcnQgZW51bSBESUFMT0dfQlVUVE9OX0xBQkVMIHtcbiAgICBTQVZFID0gJ1NhdmUnLFxuICAgIENBTkNFTCA9ICdDYW5jZWwnLFxuICAgIENMT1NFID0gJ0Nsb3NlJyxcbn1cblxuZXhwb3J0IGVudW0gRElBTE9HX0ZJRUxEX1RZUEUge1xuICAgIElOUFVUID0gJ2lucHV0JyxcbiAgICBTRUxFQ1QgPSAnc2VsZWN0JyxcbiAgICBEQVRFX1BJQ0tFUiA9ICdkYXRlX3BpY2tlcicsXG4gICAgQ0hFQ0tCT1ggPSAnY2hlY2tib3gnLFxufVxuXG5leHBvcnQgdHlwZSBURGlhbG9nRmllbGRUeXBlID0gRElBTE9HX0ZJRUxEX1RZUEU7XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1kaWFsb2cvaW50ZXJmYWNlcy9kaWFsb2ctZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5SUEsTUFBTSxDQUFOLElBQVksV0FXWDtBQVhELFdBQVksV0FBVztJQUNuQixvQ0FBcUIsQ0FBQTtJQUNyQiwwREFBMkMsQ0FBQTtJQUMzQyxzQ0FBdUIsQ0FBQTtJQUN2QixrREFBbUMsQ0FBQTtJQUNuQyw0REFBNkMsQ0FBQTtJQUM3QyxrREFBbUMsQ0FBQTtJQUNuQyxvQ0FBcUIsQ0FBQTtJQUNyQixtQ0FBb0IsQ0FBQTtJQUNwQixpREFBa0MsQ0FBQTtJQUNsQywyQ0FBNEIsQ0FBQTtBQUNoQyxDQUFDLEVBWFcsV0FBVyxLQUFYLFdBQVcsUUFXdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxtQkFJWDtBQUpELFdBQVksbUJBQW1CO0lBQzNCLG9DQUFhLENBQUE7SUFDYix3Q0FBaUIsQ0FBQTtJQUNqQixzQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBRUQsTUFBTSxDQUFOLElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUN6QixvQ0FBZSxDQUFBO0lBQ2Ysc0NBQWlCLENBQUE7SUFDakIsZ0RBQTJCLENBQUE7SUFDM0IsMENBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaW1lZnJhbWVPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvZGF0ZVBpY2tlcic7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2dDb25maWcgYXMgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSAnLi4vLi4vZHItaW5wdXRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxudHlwZSBEaWFsb2dDb25maWcgPSBPbWl0PE1hdERpYWxvZ0NvbmZpZywgJ2RhdGEnPjtcblxuLy8gRGF0YSBPYmogZm9yIG9wZW5EaWFsb2dXcmFwcGVyKClcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nRGF0YTxUID0gYW55PiBleHRlbmRzIERpYWxvZ0NvbmZpZyB7XG4gICAgZGF0YToge1xuICAgICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgICAgc2VhcmNoYWJsZT86IGJvb2xlYW47XG4gICAgICAgIGNsZWFyYWJsZT86IGJvb2xlYW47XG4gICAgICAgIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgICAgICBjb250ZW50PzogYW55O1xuICAgICAgICBjb250ZW50SWNvbj86IHtcbiAgICAgICAgICAgIGNsYXNzPzogc3RyaW5nO1xuICAgICAgICAgICAgY29sb3I/OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIGFjY2VwdEJ1dHRvbj86IERpYWxvZ0Zvb3RlckJ1dHRvbjtcbiAgICAgICAgY2FuY2VsQnV0dG9uPzogRGlhbG9nRm9vdGVyQnV0dG9uO1xuICAgICAgICBjdXN0b21CdXR0b24/OiBEaWFsb2dGb290ZXJCdXR0b247XG4gICAgICAgIHRvb2x0aXBzPzogYW55O1xuICAgICAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgICAgIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICAgICAgY2hpbGQ/OiBDb21wb25lbnRUeXBlPFQ+O1xuICAgICAgICBjaGlsZERhdGE/OiBQYXJ0aWFsPFQ+O1xuICAgICAgICB0aGVtZT86IHtcbiAgICAgICAgICAgIHRoZW1lU2l6ZT86IFNpemVNb2RhbDtcbiAgICAgICAgICAgIHR5cGU/OiAnc3VjY2Vzc2Z1bCc7XG4gICAgICAgICAgICBjb250ZW50Tm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgICAgICAgICAgIGlzQ29uZmlybWF0aW9uPzogYm9vbGVhbjtcbiAgICAgICAgICAgIG5vVGhlbWVTaXplQ2xhc3M/OiBib29sZWFuO1xuICAgICAgICB9O1xuICAgICAgICBjb25maXJtRm4/OiBhbnk7XG4gICAgICAgIGZpZWxkcz86IE1vZGFsRm9ybUZpZWxkW107XG4gICAgICAgIGhpZGVDbG9zZUJ0bj86IGJvb2xlYW47XG4gICAgICAgIGZvb3RlclRlbXBsYXRlRGF0YT86IEZvb3RlclRlbXBsYXRlRGF0YTtcbiAgICAgICAgZGV0YWlscz86IHtcbiAgICAgICAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgICAgICAgaXRlbXM/OiBzdHJpbmdbXSB8IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICAgICAgICAgICAgY29sbGFwc2U/OiBib29sZWFuO1xuICAgICAgICB9O1xuICAgICAgICBoZWFkZXJJY29uQ2xhc3M/OiBzdHJpbmc7XG4gICAgICAgIGZvcm1XcmFwcGVyQ2xhc3M/OiBzdHJpbmc7XG4gICAgfTtcbn1cblxuLy8gRGF0YSBPYmogZm9yIG9wZW5Db25maXJtRGlhbG9nKClcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybURpYWxvZ0RhdGEge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHNlYXJjaGFibGU/OiBib29sZWFuO1xuICAgIGNsZWFyYWJsZT86IGJvb2xlYW47XG4gICAgY29udGVudD86IHN0cmluZztcbiAgICBjb250ZW50SWNvbj86IHtcbiAgICAgICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIH07XG4gICAgYWNjZXB0QnV0dG9uPzogRGlhbG9nRm9vdGVyQnV0dG9uO1xuICAgIGNhbmNlbEJ1dHRvbj86IERpYWxvZ0Zvb3RlckJ1dHRvbjtcbiAgICBjdXN0b21CdXR0b24/OiBEaWFsb2dGb290ZXJCdXR0b247XG4gICAgdG9vbHRpcHM/OiBhbnk7XG4gICAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICBoaWRlQ2xvc2VCdG4/OiBib29sZWFuO1xuICAgIGNvbmZpcm1Gbj86IChyZXNwb25zZT86IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGZpZWxkcz86IE1vZGFsRm9ybUZpZWxkW107XG4gICAgZm9vdGVyVGVtcGxhdGVEYXRhPzogRm9vdGVyVGVtcGxhdGVEYXRhO1xuICAgIGRldGFpbHM/OiB7XG4gICAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgICBpdGVtcz86IHN0cmluZ1tdIHwgT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gICAgfTtcbiAgICB0aGVtZT86IHtcbiAgICAgICAgdGhlbWVTaXplPzogU2l6ZU1vZGFsO1xuICAgIH07XG4gICAgaGVhZGVySWNvbkNsYXNzPzogc3RyaW5nO1xuICAgIGZvcm1XcmFwcGVyQ2xhc3M/OiBzdHJpbmc7XG59XG5cbi8vIERhdGEgT2JqIGZvciBvcGVuQ29uZmlybURpYWxvZ01vZGFsKClcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybURpYWxvZ01vZGFsRGF0YSBleHRlbmRzIENvbmZpcm1EaWFsb2dEYXRhIHtcbiAgICBjb25maXJtRm4/OiBhbnk7XG4gICAgaGlkZUNsb3NlQnRuPzogYm9vbGVhbjtcbiAgICBmb290ZXJUZW1wbGF0ZURhdGE/OiBGb290ZXJUZW1wbGF0ZURhdGE7XG4gICAgZmllbGRzPzogTW9kYWxGb3JtRmllbGRbXTtcbiAgICBoZWFkZXJJY29uQ2xhc3M/OiBzdHJpbmc7XG4gICAgZm9ybVdyYXBwZXJDbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb290ZXJUZW1wbGF0ZURhdGEge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBhY3Rpb246IChvYmpUb1NhdmU/OiBhbnkpID0+IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2RhbEZvcm1GaWVsZCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IFREaWFsb2dGaWVsZFR5cGU7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgaXNMYWJlbEZ1bGxXaWR0aD86IGJvb2xlYW47XG4gICAgaXRlbXM/OiBhbnlbXTtcbiAgICBpdGVtcyQ/OiBPYnNlcnZhYmxlPGFueVtdPiB8IE9ic2VydmFibGU8YW55PjtcbiAgICBkZWZhdWx0PzogYW55O1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGJpbmRMYWJlbD86IHN0cmluZztcbiAgICBiaW5kVmFsdWU/OiBzdHJpbmc7XG4gICAgdmFsaWRhdG9ycz86IGFueVtdO1xuICAgIGRhdGVQaWNrZXJGb3JtYXQ/OiBUaW1lZnJhbWVPcHRpb247XG4gICAgZm9ybUdyb3VwQ2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNpemVNb2RhbCA9XG4gICAgfCAnc21hbGwtbW9kYWwnXG4gICAgfCAnc21hbGwtbW9kYWwtbWF4LWhlaWdodCdcbiAgICB8ICdtZWRpdW0tc21hbGwtbW9kYWwnXG4gICAgfCAnbWVkaXVtLW1vZGFsJ1xuICAgIHwgJ21lZGl1bS1tb2RhbC1tYXgtaGVpZ2h0J1xuICAgIHwgJ21lZGl1bS1sYXJnZS1tb2RhbCdcbiAgICB8ICdsYXJnZS1tb2RhbCdcbiAgICB8ICd4bC1tb2RhbCdcbiAgICB8ICd4bC1jdXN0b20tbW9kYWwnXG4gICAgfCAneGwtbWVkaXVtLW1vZGFsJztcblxuZXhwb3J0IHR5cGUgRGF0YVByb3A8VCA9IGFueT4gPSBEaWFsb2dEYXRhPFQ+WydkYXRhJ107XG5cbmV4cG9ydCB0eXBlIERpYWxvZ1RoZW1lID0gRGF0YVByb3BbJ3RoZW1lJ107XG5cbmV4cG9ydCB0eXBlIERpYWxvZ0Zvb3RlckJ1dHRvbiA9IHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBsb2FkaW5nTGFiZWw/OiBzdHJpbmc7XG4gICAgZnVuY3Rpb25zPzogYW55O1xuICAgIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGxvYWRpbmc/OiBhbnk7XG4gICAgdGhlbWU/OiBCdXR0b25UeXBlO1xufTtcblxuZXhwb3J0IGVudW0gRElBTE9HX1NJWkUge1xuICAgIFNNQUxMID0gJ3NtYWxsLW1vZGFsJyxcbiAgICBTTUFMTF9NQVhfSEVJR0hUID0gJ3NtYWxsLW1vZGFsLW1heC1oZWlnaHQnLFxuICAgIE1FRElVTSA9ICdtZWRpdW0tbW9kYWwnLFxuICAgIE1FRElVTV9TTUFMTCA9ICdtZWRpdW0tc21hbGwtbW9kYWwnLFxuICAgIE1FRElVTV9NQVhfSEVJR0hUID0gJ21lZGl1bS1tb2RhbC1tYXgtaGVpZ2h0JyxcbiAgICBNRURJVU1fTEFSR0UgPSAnbWVkaXVtLWxhcmdlLW1vZGFsJyxcbiAgICBMQVJHRSA9ICdsYXJnZS1tb2RhbCcsXG4gICAgWF9MQVJHRSA9ICd4bC1tb2RhbCcsXG4gICAgWF9DVVNUT01fTEFSR0UgPSAneGwtY3VzdG9tLW1vZGFsJyxcbiAgICBYX01FRElVTSA9ICd4bC1tZWRpdW0tbW9kYWwnLFxufVxuXG5leHBvcnQgZW51bSBESUFMT0dfQlVUVE9OX0xBQkVMIHtcbiAgICBTQVZFID0gJ1NhdmUnLFxuICAgIENBTkNFTCA9ICdDYW5jZWwnLFxuICAgIENMT1NFID0gJ0Nsb3NlJyxcbn1cblxuZXhwb3J0IGVudW0gRElBTE9HX0ZJRUxEX1RZUEUge1xuICAgIElOUFVUID0gJ2lucHV0JyxcbiAgICBTRUxFQ1QgPSAnc2VsZWN0JyxcbiAgICBEQVRFX1BJQ0tFUiA9ICdkYXRlX3BpY2tlcicsXG4gICAgQ0hFQ0tCT1ggPSAnY2hlY2tib3gnLFxufVxuXG5leHBvcnQgdHlwZSBURGlhbG9nRmllbGRUeXBlID0gRElBTE9HX0ZJRUxEX1RZUEU7XG4iXX0=