@ieeesa-npm/presentation 0.13.2 → 0.13.4
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.
- package/esm2022/lib/components/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +15 -3
- package/esm2022/lib/components/search/search.component.mjs +1 -1
- package/esm2022/lib/components/select/select.component.mjs +11 -4
- package/esm2022/lib/directives/dynamic-form-field/dynamic-form-field.directive.mjs +10 -2
- package/esm2022/lib/models/select-opened-state.model.mjs +2 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ieeesa-npm-presentation.mjs +35 -8
- package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -1
- package/lib/components/dynamic-form/dynamic-form.component.d.ts +10 -1
- package/lib/components/select/select.component.d.ts +3 -1
- package/lib/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +3 -1
- package/lib/models/select-opened-state.model.d.ts +4 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -84,6 +84,7 @@ export class DynamicFormComponent {
|
|
|
84
84
|
this.formTimeSelected = new EventEmitter();
|
|
85
85
|
this.supportTextLinkClick = new EventEmitter();
|
|
86
86
|
this.formSlideToggleChange = new EventEmitter();
|
|
87
|
+
this.dropdownOpenedChange = new EventEmitter();
|
|
87
88
|
this.formGroupArray = [];
|
|
88
89
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
90
|
this.formControlArray = [];
|
|
@@ -359,8 +360,17 @@ export class DynamicFormComponent {
|
|
|
359
360
|
onSupportTextLinkClick(event) {
|
|
360
361
|
this.supportTextLinkClick.emit(event);
|
|
361
362
|
}
|
|
363
|
+
/**
|
|
364
|
+
* Listens select form field dropdownOpenedChange event and emits dropdownOpenedChange event.
|
|
365
|
+
* @memberof DynamicFormComponent
|
|
366
|
+
* @param {SelectOpenedState} event
|
|
367
|
+
* @memberof DynamicFormComponent
|
|
368
|
+
*/
|
|
369
|
+
onDropdownOpenedChange(event) {
|
|
370
|
+
this.dropdownOpenedChange.emit(event);
|
|
371
|
+
}
|
|
362
372
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
363
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicFormComponent, isStandalone: true, selector: "ieeesa-dynamic-form", inputs: { formGroups: "formGroups", submitResponse: "submitResponse", searchResponse: "searchResponse", colWidth: "colWidth", isLegendVisible: "isLegendVisible", rightButtonLabel: "rightButtonLabel", leftButtonLabel: "leftButtonLabel", isSubmitButtonDisabled: "isSubmitButtonDisabled", isLeftButtonDisabled: "isLeftButtonDisabled", isLeftButtonNeeded: "isLeftButtonNeeded", actionButtonAlign: "actionButtonAlign" }, outputs: { formSubmit: "formSubmit", formChange: "formChange", formInput: "formInput", formLeftButtonClicked: "formLeftButtonClicked", formSearchApply: "formSearchApply", formGroupsReference: "formGroupsReference", dropdownChange: "dropdownChange", formCheckboxSelection: "formCheckboxSelection", formDateSelected: "formDateSelected", formSelectSearch: "formSelectSearch", formControlChange: "formControlChange", formAutoCompleteSearch: "formAutoCompleteSearch", formAutoCompleteClearSearchValue: "formAutoCompleteClearSearchValue", autoCompleteOptionSelected: "autoCompleteOptionSelected", formAfterContentInit: "formAfterContentInit", formSelectedDateRange: "formSelectedDateRange", addFormGroup: "addFormGroup", formTimeSelected: "formTimeSelected", supportTextLinkClick: "supportTextLinkClick", formSlideToggleChange: "formSlideToggleChange" }, viewQueries: [{ propertyName: "formFields", predicate: DynamicFormFieldDirective, descendants: true }], exportAs: ["dynamicForm"], ngImport: i0, template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n ieeesaFocusInvalidFormField\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend\r\n class=\"float-none w-auto p-2 ieeesa-dynamic-form__legend\"\r\n *ngIf=\"isLegendVisible\"\r\n >\r\n {{ legendsArray[i] }}\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onFormChange(); onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteClearSearchValue)=\"\r\n onAutoCompleteClearSearchValue($event)\r\n \"\r\n (autoCompleteOptionSelected)=\"\r\n onFormChange(); onAutoCompleteOptionSelected()\r\n \"\r\n (formCheckboxSelection)=\"onCheckboxSelection($event)\"\r\n (formInputValue)=\"onFormChange()\"\r\n (addFormGroup)=\"onAddFormGroup($event)\"\r\n (formTimeSelected)=\"onFormChange(); onTimeSelected($event)\"\r\n (supportTextLinkClick)=\"onSupportTextLinkClick($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-12 ieeesa-dynamic-form__actions\"\r\n [ngClass]=\"{\r\n 'justify-content-end': actionButtonAlign === alignmentType.LEFT,\r\n 'justify-content-center': actionButtonAlign === alignmentType.MIDDLE,\r\n 'justify-content-start': actionButtonAlign === alignmentType.RIGHT\r\n }\"\r\n >\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-tertiary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-dynamic-form__actions{display:flex;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: DynamicFormFieldDirective, selector: "[ieeesaDynamicFormField]", inputs: ["config", "group", "submitResponse", "searchResponse"], outputs: ["formSearchApply", "formDropdownSelected", "formDateSelected", "formTimeSelected", "formSelectedDateRange", "formSelectSearch", "formAutoCompleteSearch", "autoCompleteClearSearchValue", "autoCompleteOptionSelected", "formCheckboxSelection", "formInputValue", "addFormGroup", "supportTextLinkClick", "formSlideToggleChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: FocusInvalidFormFieldDirective, selector: "[ieeesaFocusInvalidFormField]" }] }); }
|
|
373
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicFormComponent, isStandalone: true, selector: "ieeesa-dynamic-form", inputs: { formGroups: "formGroups", submitResponse: "submitResponse", searchResponse: "searchResponse", colWidth: "colWidth", isLegendVisible: "isLegendVisible", rightButtonLabel: "rightButtonLabel", leftButtonLabel: "leftButtonLabel", isSubmitButtonDisabled: "isSubmitButtonDisabled", isLeftButtonDisabled: "isLeftButtonDisabled", isLeftButtonNeeded: "isLeftButtonNeeded", actionButtonAlign: "actionButtonAlign" }, outputs: { formSubmit: "formSubmit", formChange: "formChange", formInput: "formInput", formLeftButtonClicked: "formLeftButtonClicked", formSearchApply: "formSearchApply", formGroupsReference: "formGroupsReference", dropdownChange: "dropdownChange", formCheckboxSelection: "formCheckboxSelection", formDateSelected: "formDateSelected", formSelectSearch: "formSelectSearch", formControlChange: "formControlChange", formAutoCompleteSearch: "formAutoCompleteSearch", formAutoCompleteClearSearchValue: "formAutoCompleteClearSearchValue", autoCompleteOptionSelected: "autoCompleteOptionSelected", formAfterContentInit: "formAfterContentInit", formSelectedDateRange: "formSelectedDateRange", addFormGroup: "addFormGroup", formTimeSelected: "formTimeSelected", supportTextLinkClick: "supportTextLinkClick", formSlideToggleChange: "formSlideToggleChange", dropdownOpenedChange: "dropdownOpenedChange" }, viewQueries: [{ propertyName: "formFields", predicate: DynamicFormFieldDirective, descendants: true }], exportAs: ["dynamicForm"], ngImport: i0, template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n ieeesaFocusInvalidFormField\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend\r\n class=\"float-none w-auto p-2 ieeesa-dynamic-form__legend\"\r\n *ngIf=\"isLegendVisible\"\r\n >\r\n {{ legendsArray[i] }}\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onFormChange(); onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteClearSearchValue)=\"\r\n onAutoCompleteClearSearchValue($event)\r\n \"\r\n (autoCompleteOptionSelected)=\"\r\n onFormChange(); onAutoCompleteOptionSelected()\r\n \"\r\n (formCheckboxSelection)=\"onCheckboxSelection($event)\"\r\n (formInputValue)=\"onFormChange()\"\r\n (addFormGroup)=\"onAddFormGroup($event)\"\r\n (formTimeSelected)=\"onFormChange(); onTimeSelected($event)\"\r\n (supportTextLinkClick)=\"onSupportTextLinkClick($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-12 ieeesa-dynamic-form__actions\"\r\n [ngClass]=\"{\r\n 'justify-content-end': actionButtonAlign === alignmentType.LEFT,\r\n 'justify-content-center': actionButtonAlign === alignmentType.MIDDLE,\r\n 'justify-content-start': actionButtonAlign === alignmentType.RIGHT\r\n }\"\r\n >\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-tertiary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-dynamic-form__actions{display:flex;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: DynamicFormFieldDirective, selector: "[ieeesaDynamicFormField]", inputs: ["config", "group", "submitResponse", "searchResponse"], outputs: ["formSearchApply", "formDropdownSelected", "formDateSelected", "formTimeSelected", "formSelectedDateRange", "formSelectSearch", "formAutoCompleteSearch", "autoCompleteClearSearchValue", "autoCompleteOptionSelected", "formCheckboxSelection", "formInputValue", "addFormGroup", "supportTextLinkClick", "formSlideToggleChange", "dropdownOpenedChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: FocusInvalidFormFieldDirective, selector: "[ieeesaFocusInvalidFormField]" }] }); }
|
|
364
374
|
}
|
|
365
375
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicFormComponent, decorators: [{
|
|
366
376
|
type: Component,
|
|
@@ -370,7 +380,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
370
380
|
DynamicFormFieldDirective,
|
|
371
381
|
MatButtonModule,
|
|
372
382
|
FocusInvalidFormFieldDirective,
|
|
373
|
-
], template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n ieeesaFocusInvalidFormField\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend\r\n class=\"float-none w-auto p-2 ieeesa-dynamic-form__legend\"\r\n *ngIf=\"isLegendVisible\"\r\n >\r\n {{ legendsArray[i] }}\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onFormChange(); onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteClearSearchValue)=\"\r\n onAutoCompleteClearSearchValue($event)\r\n \"\r\n (autoCompleteOptionSelected)=\"\r\n onFormChange(); onAutoCompleteOptionSelected()\r\n \"\r\n (formCheckboxSelection)=\"onCheckboxSelection($event)\"\r\n (formInputValue)=\"onFormChange()\"\r\n (addFormGroup)=\"onAddFormGroup($event)\"\r\n (formTimeSelected)=\"onFormChange(); onTimeSelected($event)\"\r\n (supportTextLinkClick)=\"onSupportTextLinkClick($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-12 ieeesa-dynamic-form__actions\"\r\n [ngClass]=\"{\r\n 'justify-content-end': actionButtonAlign === alignmentType.LEFT,\r\n 'justify-content-center': actionButtonAlign === alignmentType.MIDDLE,\r\n 'justify-content-start': actionButtonAlign === alignmentType.RIGHT\r\n }\"\r\n >\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-tertiary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-dynamic-form__actions{display:flex;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"] }]
|
|
383
|
+
], template: "<form\r\n class=\"ieeesa-dynamic-form\"\r\n [formGroup]=\"form\"\r\n (change)=\"onFormChange()\"\r\n (ngSubmit)=\"onFormSubmit()\"\r\n (input)=\"formInputChange($event)\"\r\n ieeesaFocusInvalidFormField\r\n>\r\n <fieldset\r\n class=\"ieeesa-dynamic-form__fieldset\"\r\n *ngFor=\"\r\n let formGrp of formGroupArray;\r\n let i = index;\r\n trackBy: trackByFormGroup\r\n \"\r\n >\r\n <legend\r\n class=\"float-none w-auto p-2 ieeesa-dynamic-form__legend\"\r\n *ngIf=\"isLegendVisible\"\r\n >\r\n {{ legendsArray[i] }}\r\n </legend>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-{{ colWidth.xs }} col-sm-{{ colWidth.sm }} col-md-{{\r\n colWidth.md\r\n }} col-lg-{{ colWidth.lg }} col-xl-{{ colWidth.xl }}\r\n ieeesa-dynamic-form__form-field\"\r\n [ngClass]=\"getRowClassName(formControlArray[i][j].controlName)\"\r\n *ngFor=\"let control of formControlArray[i]; let j = index\"\r\n >\r\n <ng-template\r\n ieeesaDynamicFormField\r\n [config]=\"formControlArray[i][j]\"\r\n [group]=\"formGrp\"\r\n [submitResponse]=\"submitResponse\"\r\n [searchResponse]=\"searchResponse\"\r\n (formSearchApply)=\"onSearchApply($event)\"\r\n (formDropdownSelected)=\"onFormChange(); onDropdownChange()\"\r\n (formDateSelected)=\"onFormChange(); onDateSelected($event)\"\r\n (formSelectedDateRange)=\"onSelectedDateRange($event)\"\r\n (formSelectSearch)=\"onSelectSearch($event)\"\r\n (formAutoCompleteSearch)=\"onAutoCompleteSearch($event)\"\r\n (autoCompleteClearSearchValue)=\"\r\n onAutoCompleteClearSearchValue($event)\r\n \"\r\n (autoCompleteOptionSelected)=\"\r\n onFormChange(); onAutoCompleteOptionSelected()\r\n \"\r\n (formCheckboxSelection)=\"onCheckboxSelection($event)\"\r\n (formInputValue)=\"onFormChange()\"\r\n (addFormGroup)=\"onAddFormGroup($event)\"\r\n (formTimeSelected)=\"onFormChange(); onTimeSelected($event)\"\r\n (supportTextLinkClick)=\"onSupportTextLinkClick($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (dropdownOpenedChange)=\"onDropdownOpenedChange($event)\"\r\n >\r\n </ng-template>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <div class=\"row\">\r\n <div\r\n class=\"col-12 ieeesa-dynamic-form__actions\"\r\n [ngClass]=\"{\r\n 'justify-content-end': actionButtonAlign === alignmentType.LEFT,\r\n 'justify-content-center': actionButtonAlign === alignmentType.MIDDLE,\r\n 'justify-content-start': actionButtonAlign === alignmentType.RIGHT\r\n }\"\r\n >\r\n <button\r\n type=\"submit\"\r\n mat-button\r\n class=\"mat-primary-button ieeesa-dynamic-form__actions--right-btn\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n >\r\n {{ rightButtonLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isLeftButtonNeeded\"\r\n type=\"button\"\r\n mat-button\r\n class=\"mat-tertiary-button ieeesa-dynamic-form__actions--left-btn\"\r\n (click)=\"onLeftButtonClicked()\"\r\n [disabled]=\"isLeftButtonDisabled\"\r\n >\r\n {{ leftButtonLabel }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-dynamic-form__actions{display:flex;padding-top:15px}.ieeesa-dynamic-form__actions--left-btn{margin-right:2%}.ieeesa-dynamic-form__form-field{padding-top:20px}\n"] }]
|
|
374
384
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { formFields: [{
|
|
375
385
|
type: ViewChildren,
|
|
376
386
|
args: [DynamicFormFieldDirective]
|
|
@@ -436,5 +446,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
436
446
|
type: Output
|
|
437
447
|
}], formSlideToggleChange: [{
|
|
438
448
|
type: Output
|
|
449
|
+
}], dropdownOpenedChange: [{
|
|
450
|
+
type: Output
|
|
439
451
|
}] } });
|
|
440
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFFVCxXQUFXLEVBRVgsbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBRTlILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFNeEU7Ozs7OztHQU1HO0FBZUgsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjs7O09BR0c7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFnQjtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1os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O2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGb3JtQXJyYXksXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZvcm1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmllbGQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUdyaWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1ncmlkLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy1mb3JtLWZpZWxkL2R5bmFtaWMtZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWxpZ24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IEZvY3VzSW52YWxpZEZvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtaW52YWxpZC1mb3JtLWZpZWxkL2ZvY3VzLWludmFsaWQtZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1jb250cm9sLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWREYXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdGVkLWRhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWxlY3RlZFRpbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0ZWQtdGltZS5tb2RlbCc7XHJcbmltcG9ydCB7IExpbmtFdmVudEVtaXRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50LWVtaXQtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNsaWRlVG9nZ2xlT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NsaWRlLXRvZ2dsZS1vcHRpb25zLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgcmVhY3RpdmUgZm9ybSBkeW5hbWljYWxseSBiYXNlZCBvbiB0aGUgcGFzc2VkIGZvcm0gZmllbGQgY29uZmlndXJhdGlvbiBhbmQgaGFuZGxlcyB0aGUgZm9ybSBldmVudHMuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtBZnRlckNvbnRlbnRJbml0fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdkeW5hbWljRm9ybScsXHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtZHluYW1pYy1mb3JtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgRm9jdXNJbnZhbGlkRm9ybUZpZWxkRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XHJcbiAgQFZpZXdDaGlsZHJlbihEeW5hbWljRm9ybUZpZWxkRGlyZWN0aXZlKVxyXG4gIGZvcm1GaWVsZHMhOiBRdWVyeUxpc3Q8RHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZT47XHJcbiAgcHJpdmF0ZSBfZm9ybUdyb3VwcyE6IEZvcm1Nb2RlbDtcclxuICAvKipcclxuICAgKiBGb3JtR3JvdXBzIHBhc3NlZCBhbiBhbiBpbnB1dCBhbmQgd2hpY2ggY29udGFpbnMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBldmVyeSBmb3JtIGZpZWxkcy5cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBmb3JtR3JvdXBzKHZhbHVlOiBGb3JtTW9kZWwpIHtcclxuICAgIHRoaXMuX2Zvcm1Hcm91cHMgPSB2YWx1ZTtcclxuICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwQXJyYXkoKTtcclxuICB9XHJcbiAgZ2V0IGZvcm1Hcm91cHMoKTogRm9ybU1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBzO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIF9zdWJtaXRSZXNwb25zZSE6IGFueTtcclxuICAvKipcclxuICAgKiBTZXRzIHN1Ym1pdCByZXNwb25zZSBvbiBmb3JtIHN1Ym1pdFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBzZXQgc3VibWl0UmVzcG9uc2UodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fc3VibWl0UmVzcG9uc2UgPSB2YWx1ZTtcclxuICB9XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBnZXQgc3VibWl0UmVzcG9uc2UoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zdWJtaXRSZXNwb25zZTtcclxuICB9XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcHJpdmF0ZSBfc2VhcmNoUmVzcG9uc2UhOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogU2V0cyBzZWFyY2ggcmVzcG9uc2Ugb24gZm9ybSBzZWFyY2ggZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgc2V0IHNlYXJjaFJlc3BvbnNlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX3NlYXJjaFJlc3BvbnNlID0gdmFsdWU7XHJcbiAgfVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZ2V0IHNlYXJjaFJlc3BvbnNlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoUmVzcG9uc2U7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGNvbFdpZHRoITogRm9ybUdyaWQ7XHJcbiAgQElucHV0KCkgaXNMZWdlbmRWaXNpYmxlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSByaWdodEJ1dHRvbkxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxlZnRCdXR0b25MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xlZnRCdXR0b25OZWVkZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhY3Rpb25CdXR0b25BbGlnbiE6IEFsaWduVHlwZTtcclxuICBhbGlnbm1lbnRUeXBlID0gQWxpZ25UeXBlO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1TdWJtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtSW5wdXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybUxlZnRCdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1TZWFyY2hBcHBseTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtR3JvdXBzUmVmZXJlbmNlID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXBbXT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBkcm9wZG93bkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQ2hlY2tib3hTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPENoZWNrYm94T3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtRGF0ZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RlZERhdGU+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1TZWxlY3RTZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHNlYXJjaEV2ZW50OiBFdmVudDtcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgfT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUNvbnRyb2xDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQXV0b0NvbXBsZXRlU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWU6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBhdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwW10+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1BZnRlckNvbnRlbnRJbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXBbXT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVNlbGVjdGVkRGF0ZVJhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBzdGFydERhdGU6IHN0cmluZztcclxuICAgIGVuZERhdGU6IHN0cmluZztcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBhZGRGb3JtR3JvdXAgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtVGltZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RlZFRpbWU+KCk7XHJcbiAgQE91dHB1dCgpIHN1cHBvcnRUZXh0TGlua0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxMaW5rRXZlbnRFbWl0VHlwZT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTbGlkZVRvZ2dsZU9wdGlvbj4oKTtcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIGZvcm1Hcm91cEFycmF5OiBGb3JtR3JvdXBbXSA9IFtdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZm9ybUNvbnRyb2xBcnJheTogYW55W10gPSBbXTtcclxuICBsZWdlbmRzQXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gY3JlYXRlIGZvcm0gZ3JvdXBcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwQXJyYXkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXQgZ2VuZXJhdGVkIGZvcm0gcmVmZXJlbmNlIG9uIG5nQWZ0ZXJDb250ZW50SW5pdCBsaWZlY3ljbGUgaG9vay5cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1BZnRlckNvbnRlbnRJbml0LmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gZ3JvdXAgb24gdGhlIGJhc2lzIG9mIGZvcm1Hcm91cHMgY29uZmlndXJhdGlvbiBpbnB1dFxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlRm9ybUdyb3VwQXJyYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cEFycmF5ID0gW107XHJcbiAgICB0aGlzLmZvcm1Db250cm9sQXJyYXkgPSBbXTtcclxuICAgIHRoaXMubGVnZW5kc0FycmF5ID0gW107XHJcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3Vwcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Hcm91cHM/LmZvcm1Hcm91cD8uZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9scyA9IGVsZW1lbnQuY29udHJvbHMuZmlsdGVyKFxyXG4gICAgICAgIChjb250cm9sKSA9PiBjb250cm9sLnR5cGUgIT09ICdidXR0b24nXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwQXJyYXkucHVzaCh0aGlzLmNyZWF0ZUdyb3VwKGNvbnRyb2xzKSk7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xBcnJheS5wdXNoKGNvbnRyb2xzKTtcclxuICAgICAgdGhpcy5sZWdlbmRzQXJyYXkucHVzaChlbGVtZW50LmxlZ2VuZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBjaGlsZHJlbjogdGhpcy5mb3JtR3JvdXBBcnJheSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybUdyb3Vwc1JlZmVyZW5jZS5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gZ3JvdXAgdXNpbmcgZm9ybSBidWlsZGVyXHJcbiAgICogQHBhcmFtIHthbnlbXX0gY29udHJvbHNcclxuICAgKiBAcmV0dXJuIHtGb3JtR3JvdXB9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVHcm91cChjb250cm9sczogYW55W10pOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIGNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2w6IEZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sLnR5cGUgPT09IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCkge1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woY29udHJvbC5jb250cm9sTmFtZSwgdGhpcy5jcmVhdGVGb3JtQXJyYXkoY29udHJvbCkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woY29udHJvbC5jb250cm9sTmFtZSwgdGhpcy5jcmVhdGVDb250cm9sKGNvbnRyb2wpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgZm9ybSBhcnJheSBmb3IgQ2hlY2tib3ggZ3JvdXAgYW5kIHJldHVybnMuXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gY29udHJvbHNcclxuICAgKiBAcmV0dXJuIHtGb3JtQXJyYXk8YW55Pn1cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZUZvcm1BcnJheShjb250cm9sczogRmllbGRDb25maWcpOiBGb3JtQXJyYXk8YW55PiB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgbGV0IGZvcm1BcnJheTogRm9ybUFycmF5PGFueT47XHJcbiAgICBjb25zdCBncm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xyXG4gICAgZ3JvdXAuYWRkQ29udHJvbChjb250cm9scy5jb250cm9sTmFtZSwgdGhpcy5jcmVhdGVDb250cm9sKGNvbnRyb2xzKSk7XHJcbiAgICBjb25zdCBpc1JlcXVpcmVkVmFsaWRhdG9yID0gZ3JvdXBcclxuICAgICAgPy5nZXQoY29udHJvbHMuY29udHJvbE5hbWUpXHJcbiAgICAgID8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgaWYgKGlzUmVxdWlyZWRWYWxpZGF0b3IpXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIGZvcm1BcnJheSA9IG5ldyBGb3JtQXJyYXk8YW55PihcclxuICAgICAgICBbXSxcclxuICAgICAgICB0aGlzLmNoZWNrYm94U2VsZWN0aW9uUmVxdWlyZWRWYWxpZGF0b3IoY29udHJvbHM/Lm1pblNlbGVjdGlvblJlcXVpcmVkKVxyXG4gICAgICApO1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgIGVsc2UgZm9ybUFycmF5ID0gbmV3IEZvcm1BcnJheTxhbnk+KFtdKTtcclxuICAgIGNvbnRyb2xzPy5jaGVja2JveE9wdGlvbnM/LmZvckVhY2goKGNvbnRyb2wpID0+IHtcclxuICAgICAgZm9ybUFycmF5LnB1c2gobmV3IEZvcm1Db250cm9sKGNvbnRyb2wuY2hlY2tlZCkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZm9ybUFycmF5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3VzdG9tIHZhbGlkYXRvciB0byBzZXQgcmVxdWlyZWQgZmlsZWQgdmFsaWRhdGlvbiBlcnJvciBmb3IgdGhlIGNoZWNrYm94IGZpZWxkIHR5cGUgYmFzZWQgb24gdGhlIG51bWJlciBvZiBjb25maWd1cmVkIG1pbmltdW0gY2hlY2tib3ggb3B0aW9ucyB0byBiZSBzZWxlY3RlZCB3aGVuZXZlciB0aGUgZmlsZWQgY29uZmlndXJlZCB3aXRoIHJlcXVpcmVkLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWluU2VsZWN0aW9uUmVxdWlyZWQ9MV1cclxuICAgKiBAcmV0dXJuIHsqfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY2hlY2tib3hTZWxlY3Rpb25SZXF1aXJlZFZhbGlkYXRvcihtaW5TZWxlY3Rpb25SZXF1aXJlZCA9IDEpOiBhbnkge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHZhbGlkYXRlKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICAgIGxldCBjaGVja2VkID0gMDtcclxuICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmNvbnRyb2xzW2tleV07XHJcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICAgIGNoZWNrZWQrKztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoY2hlY2tlZCA8IG1pblNlbGVjdGlvblJlcXVpcmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNoZWNrYm94U2VsZWN0aW9uUmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gY29udHJvbCBiYXNlZCBvbiBmb3JtIGZpZWxkIGNvbmZpZ3VyYXRpb25cclxuICAgKiBAcGFyYW0ge0ZpZWxkQ29uZmlnfSBjb250cm9sXHJcbiAgICogQHJldHVybiB7Rm9ybUNvbnRyb2x9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlQ29udHJvbChjb250cm9sOiBGaWVsZENvbmZpZyk6IEZvcm1Db250cm9sIHtcclxuICAgIGNvbnN0IHsgZGlzYWJsZWQsIHZhbGlkYXRpb24sIHZhbHVlIH0gPSBjb250cm9sO1xyXG4gICAgcmV0dXJuIHRoaXMuZmIuY29udHJvbCh7IGRpc2FibGVkLCB2YWx1ZSB9LCB2YWxpZGF0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm1Hcm91cEFycmF5XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtU3VibWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtU3VibWl0LmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtR3JvdXBBcnJheVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTGVmdEJ1dHRvbkNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1MZWZ0QnV0dG9uQ2xpY2tlZC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybUdyb3VwQXJyYXlcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DaGFuZ2UuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBzZWxlY3QgdHlwZSBkcm9wIGRvd24gc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Ecm9wZG93bkNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZHJvcGRvd25DaGFuZ2UuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBpbnB1dCBjaGFuZ2UgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZvcm1JbnB1dENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2xDaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgICB0aGlzLmZvcm1JbnB1dC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIHNlYXJjaCBhcHBseSBldmVudFxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWFyY2hBcHBseShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNlYXJjaEFwcGx5LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBzZWFyY2ggZXZlbnQgaW5zaWRlIGZvcm0gZmllbGQgc2VsZWN0XHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblNlbGVjdFNlYXJjaChldmVudDogeyBzZWFyY2hFdmVudDogRXZlbnQ7IGNvbnRyb2xOYW1lOiBzdHJpbmcgfSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtU2VsZWN0U2VhcmNoLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGFrZXMgdGhlIGluZGV4IGFuZCB0aGUgZm9ybUdyb3VwIGFzIGFyZ3VtZW50cyBhbmQgbmVlZHMgdG8gcmV0dXJuIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBmb3JtR3JvdXAuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXB9IGZvcm1Hcm91cFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGb3JtR3JvdXAoaW5kZXg6IG51bWJlciwgZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcclxuICAgIHJldHVybiBmb3JtR3JvdXAuY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZGF0ZSBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAcGFyYW0ge1NlbGVjdGVkRGF0ZX0gc2VsZWN0ZWREYXRlXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25EYXRlU2VsZWN0ZWQoc2VsZWN0ZWREYXRlOiBTZWxlY3RlZERhdGUpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybURhdGVTZWxlY3RlZC5lbWl0KHNlbGVjdGVkRGF0ZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSB0aW1lIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBwYXJhbSB7U2VsZWN0ZWRUaW1lfSBzZWxlY3RlZFRpbWVcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblRpbWVTZWxlY3RlZChzZWxlY3RlZFRpbWU6IFNlbGVjdGVkVGltZSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtVGltZVNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRUaW1lKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgc2VsZWN0ZWQgZm9ybSBkYXRlIHJhbmdlXHJcbiAgICogQHBhcmFtIHt7c3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZ319IGRhdGVSYW5nZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VsZWN0ZWREYXRlUmFuZ2UoZGF0ZVJhbmdlOiB7IHN0YXJ0RGF0ZTogc3RyaW5nOyBlbmREYXRlOiBzdHJpbmcgfSkge1xyXG4gICAgdGhpcy5mb3JtU2VsZWN0ZWREYXRlUmFuZ2UuZW1pdChkYXRlUmFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIGF1dG8gY29tcGxldGUgc2VhcmNoIGV2ZW50XHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BdXRvQ29tcGxldGVTZWFyY2goZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQXV0b0NvbXBsZXRlU2VhcmNoLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgYXV0byBjb21wbGV0ZSBzZWFyY2ggY2xlYXIgZXZlbnRcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBjaGVja2JveCBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9ufSBvcHRpb25cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkNoZWNrYm94U2VsZWN0aW9uKG9wdGlvbjogQ2hlY2tib3hPcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNoZWNrYm94U2VsZWN0aW9uLmVtaXQob3B0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBhdXRvIGNvbXBsZXRlIG9wdGlvbiBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkF1dG9Db21wbGV0ZU9wdGlvblNlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIHNsaWRlIHRvZ2dsZSBldmVudCBhbmQgZW1pdHMgZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlIGV2ZW50LlxyXG4gICAqIEBwYXJhbSB7U2xpZGVUb2dnbGVPcHRpb259IHRvZ2dsZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKHRvZ2dsZTogU2xpZGVUb2dnbGVPcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlLmVtaXQodG9nZ2xlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnZlcnRzIHBhc3NlZCBjb250cm9sIG5hbWUgaW4gaHlwaGVuYXRlZCBjc3MgY2xhc3MgbmFtZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWVcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0Um93Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBjbGFzc05hbWVcclxuICAgICAgLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpXHJcbiAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgIC5zcGxpdCgnICcpXHJcbiAgICAgIC5qb2luKCctJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBhZGRGb3JtR3JvdXAgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQWRkRm9ybUdyb3VwKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRGb3JtR3JvdXAuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHN1cHBvcnRUZXh0TGlua0NsaWNrIGV2ZW50IG9uIGNsaWNrIG9mIGZvcm0gc3VwcG9ydCB0ZXh0IGxpbmtcclxuICAgKiBAcGFyYW0ge0xpbmtFdmVudEVtaXRUeXBlfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU3VwcG9ydFRleHRMaW5rQ2xpY2soZXZlbnQ6IExpbmtFdmVudEVtaXRUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1cHBvcnRUZXh0TGlua0NsaWNrLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybVxyXG4gIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybVwiXHJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcclxuICAoY2hhbmdlKT1cIm9uRm9ybUNoYW5nZSgpXCJcclxuICAobmdTdWJtaXQpPVwib25Gb3JtU3VibWl0KClcIlxyXG4gIChpbnB1dCk9XCJmb3JtSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgaWVlZXNhRm9jdXNJbnZhbGlkRm9ybUZpZWxkXHJcbj5cclxuICA8ZmllbGRzZXRcclxuICAgIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybV9fZmllbGRzZXRcIlxyXG4gICAgKm5nRm9yPVwiXHJcbiAgICAgIGxldCBmb3JtR3JwIG9mIGZvcm1Hcm91cEFycmF5O1xyXG4gICAgICBsZXQgaSA9IGluZGV4O1xyXG4gICAgICB0cmFja0J5OiB0cmFja0J5Rm9ybUdyb3VwXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxsZWdlbmRcclxuICAgICAgY2xhc3M9XCJmbG9hdC1ub25lIHctYXV0byBwLTIgaWVlZXNhLWR5bmFtaWMtZm9ybV9fbGVnZW5kXCJcclxuICAgICAgKm5nSWY9XCJpc0xlZ2VuZFZpc2libGVcIlxyXG4gICAgPlxyXG4gICAgICB7eyBsZWdlbmRzQXJyYXlbaV0gfX1cclxuICAgIDwvbGVnZW5kPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjb2wte3sgY29sV2lkdGgueHMgfX0gY29sLXNtLXt7IGNvbFdpZHRoLnNtIH19IGNvbC1tZC17e1xyXG4gICAgICAgICAgY29sV2lkdGgubWRcclxuICAgICAgICB9fSBjb2wtbGcte3sgY29sV2lkdGgubGcgfX0gY29sLXhsLXt7IGNvbFdpZHRoLnhsIH19XHJcbiAgICAgICAgaWVlZXNhLWR5bmFtaWMtZm9ybV9fZm9ybS1maWVsZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0Um93Q2xhc3NOYW1lKGZvcm1Db250cm9sQXJyYXlbaV1bal0uY29udHJvbE5hbWUpXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBmb3JtQ29udHJvbEFycmF5W2ldOyBsZXQgaiA9IGluZGV4XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgaWVlZXNhRHluYW1pY0Zvcm1GaWVsZFxyXG4gICAgICAgICAgW2NvbmZpZ109XCJmb3JtQ29udHJvbEFycmF5W2ldW2pdXCJcclxuICAgICAgICAgIFtncm91cF09XCJmb3JtR3JwXCJcclxuICAgICAgICAgIFtzdWJtaXRSZXNwb25zZV09XCJzdWJtaXRSZXNwb25zZVwiXHJcbiAgICAgICAgICBbc2VhcmNoUmVzcG9uc2VdPVwic2VhcmNoUmVzcG9uc2VcIlxyXG4gICAgICAgICAgKGZvcm1TZWFyY2hBcHBseSk9XCJvblNlYXJjaEFwcGx5KCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1Ecm9wZG93blNlbGVjdGVkKT1cIm9uRm9ybUNoYW5nZSgpOyBvbkRyb3Bkb3duQ2hhbmdlKClcIlxyXG4gICAgICAgICAgKGZvcm1EYXRlU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uRGF0ZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RlZERhdGVSYW5nZSk9XCJvblNlbGVjdGVkRGF0ZVJhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RTZWFyY2gpPVwib25TZWxlY3RTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybUF1dG9Db21wbGV0ZVNlYXJjaCk9XCJvbkF1dG9Db21wbGV0ZVNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKT1cIlxyXG4gICAgICAgICAgICBvbkF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUoJGV2ZW50KVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCk9XCJcclxuICAgICAgICAgICAgb25Gb3JtQ2hhbmdlKCk7IG9uQXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQoKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChmb3JtQ2hlY2tib3hTZWxlY3Rpb24pPVwib25DaGVja2JveFNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtSW5wdXRWYWx1ZSk9XCJvbkZvcm1DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAoYWRkRm9ybUdyb3VwKT1cIm9uQWRkRm9ybUdyb3VwKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1UaW1lU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uVGltZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKHN1cHBvcnRUZXh0TGlua0NsaWNrKT1cIm9uU3VwcG9ydFRleHRMaW5rQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKT1cIm9uRm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZmllbGRzZXQ+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNvbC0xMiBpZWVlc2EtZHluYW1pYy1mb3JtX19hY3Rpb25zXCJcclxuICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtZW5kJzogYWN0aW9uQnV0dG9uQWxpZ24gPT09IGFsaWdubWVudFR5cGUuTEVGVCxcclxuICAgICAgICAnanVzdGlmeS1jb250ZW50LWNlbnRlcic6IGFjdGlvbkJ1dHRvbkFsaWduID09PSBhbGlnbm1lbnRUeXBlLk1JRERMRSxcclxuICAgICAgICAnanVzdGlmeS1jb250ZW50LXN0YXJ0JzogYWN0aW9uQnV0dG9uQWxpZ24gPT09IGFsaWdubWVudFR5cGUuUklHSFRcclxuICAgICAgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJtYXQtcHJpbWFyeS1idXR0b24gaWVlZXNhLWR5bmFtaWMtZm9ybV9fYWN0aW9ucy0tcmlnaHQtYnRuXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNTdWJtaXRCdXR0b25EaXNhYmxlZFwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyByaWdodEJ1dHRvbkxhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJpc0xlZnRCdXR0b25OZWVkZWRcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICBjbGFzcz1cIm1hdC10ZXJ0aWFyeS1idXR0b24gaWVlZXNhLWR5bmFtaWMtZm9ybV9fYWN0aW9ucy0tbGVmdC1idG5cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkxlZnRCdXR0b25DbGlja2VkKClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0xlZnRCdXR0b25EaXNhYmxlZFwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBsZWZ0QnV0dG9uTGFiZWwgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPiJdfQ==
|
|
452
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFFVCxXQUFXLEVBRVgsbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBRTlILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFPeEU7Ozs7OztHQU1HO0FBZUgsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjs7O09BR0c7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFnQjtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1os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QkFBMEI7c0JBQW5DLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFJRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGb3JtQXJyYXksXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZvcm1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmllbGQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUdyaWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1ncmlkLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy1mb3JtLWZpZWxkL2R5bmFtaWMtZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWxpZ24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IEZvY3VzSW52YWxpZEZvcm1GaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtaW52YWxpZC1mb3JtLWZpZWxkL2ZvY3VzLWludmFsaWQtZm9ybS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1jb250cm9sLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWREYXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdGVkLWRhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWxlY3RlZFRpbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0ZWQtdGltZS5tb2RlbCc7XHJcbmltcG9ydCB7IExpbmtFdmVudEVtaXRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50LWVtaXQtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNsaWRlVG9nZ2xlT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NsaWRlLXRvZ2dsZS1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0T3BlbmVkU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0LW9wZW5lZC1zdGF0ZS5tb2RlbCc7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIHJlYWN0aXZlIGZvcm0gZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIHBhc3NlZCBmb3JtIGZpZWxkIGNvbmZpZ3VyYXRpb24gYW5kIGhhbmRsZXMgdGhlIGZvcm0gZXZlbnRzLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7QWZ0ZXJDb250ZW50SW5pdH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnZHluYW1pY0Zvcm0nLFxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWR5bmFtaWMtZm9ybScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIEZvY3VzSW52YWxpZEZvcm1GaWVsZERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xyXG4gIEBWaWV3Q2hpbGRyZW4oRHluYW1pY0Zvcm1GaWVsZERpcmVjdGl2ZSlcclxuICBmb3JtRmllbGRzITogUXVlcnlMaXN0PER5bmFtaWNGb3JtRmllbGREaXJlY3RpdmU+O1xyXG4gIHByaXZhdGUgX2Zvcm1Hcm91cHMhOiBGb3JtTW9kZWw7XHJcbiAgLyoqXHJcbiAgICogRm9ybUdyb3VwcyBwYXNzZWQgYW4gYW4gaW5wdXQgYW5kIHdoaWNoIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgZXZlcnkgZm9ybSBmaWVsZHMuXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZm9ybUdyb3Vwcyh2YWx1ZTogRm9ybU1vZGVsKSB7XHJcbiAgICB0aGlzLl9mb3JtR3JvdXBzID0gdmFsdWU7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cEFycmF5KCk7XHJcbiAgfVxyXG4gIGdldCBmb3JtR3JvdXBzKCk6IEZvcm1Nb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwcztcclxuICB9XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcHJpdmF0ZSBfc3VibWl0UmVzcG9uc2UhOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogU2V0cyBzdWJtaXQgcmVzcG9uc2Ugb24gZm9ybSBzdWJtaXRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgc2V0IHN1Ym1pdFJlc3BvbnNlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX3N1Ym1pdFJlc3BvbnNlID0gdmFsdWU7XHJcbiAgfVxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZ2V0IHN1Ym1pdFJlc3BvbnNlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWl0UmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgX3NlYXJjaFJlc3BvbnNlITogYW55O1xyXG4gIC8qKlxyXG4gICAqIFNldHMgc2VhcmNoIHJlc3BvbnNlIG9uIGZvcm0gc2VhcmNoIGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNldCBzZWFyY2hSZXNwb25zZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9zZWFyY2hSZXNwb25zZSA9IHZhbHVlO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldCBzZWFyY2hSZXNwb25zZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFJlc3BvbnNlO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb2xXaWR0aCE6IEZvcm1HcmlkO1xyXG4gIEBJbnB1dCgpIGlzTGVnZW5kVmlzaWJsZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcmlnaHRCdXR0b25MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBsZWZ0QnV0dG9uTGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzTGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMZWZ0QnV0dG9uTmVlZGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWN0aW9uQnV0dG9uQWxpZ24hOiBBbGlnblR5cGU7XHJcbiAgYWxpZ25tZW50VHlwZSA9IEFsaWduVHlwZTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtU3VibWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZm9ybUlucHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQE91dHB1dCgpIGZvcm1MZWZ0QnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBPdXRwdXQoKSBmb3JtU2VhcmNoQXBwbHk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUdyb3Vwc1JlZmVyZW5jZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwW10+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBAT3V0cHV0KCkgZHJvcGRvd25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUNoZWNrYm94U2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxDaGVja2JveE9wdGlvbj4oKTtcclxuICBAT3V0cHV0KCkgZm9ybURhdGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0ZWREYXRlPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtU2VsZWN0U2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBzZWFyY2hFdmVudDogRXZlbnQ7XHJcbiAgICBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Db250cm9sQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUF1dG9Db21wbGV0ZVNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1BdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgYXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cFtdPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQWZ0ZXJDb250ZW50SW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwW10+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1TZWxlY3RlZERhdGVSYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgICBlbmREYXRlOiBzdHJpbmc7XHJcbiAgfT4oKTtcclxuICBAT3V0cHV0KCkgYWRkRm9ybUdyb3VwID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9ybVRpbWVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0ZWRUaW1lPigpO1xyXG4gIEBPdXRwdXQoKSBzdXBwb3J0VGV4dExpbmtDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TGlua0V2ZW50RW1pdFR5cGU+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1TbGlkZVRvZ2dsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2xpZGVUb2dnbGVPcHRpb24+KCk7XHJcbiAgQE91dHB1dCgpIGRyb3Bkb3duT3BlbmVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RPcGVuZWRTdGF0ZT4oKTtcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIGZvcm1Hcm91cEFycmF5OiBGb3JtR3JvdXBbXSA9IFtdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZm9ybUNvbnRyb2xBcnJheTogYW55W10gPSBbXTtcclxuICBsZWdlbmRzQXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gY3JlYXRlIGZvcm0gZ3JvdXBcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwQXJyYXkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXQgZ2VuZXJhdGVkIGZvcm0gcmVmZXJlbmNlIG9uIG5nQWZ0ZXJDb250ZW50SW5pdCBsaWZlY3ljbGUgaG9vay5cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1BZnRlckNvbnRlbnRJbml0LmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gZ3JvdXAgb24gdGhlIGJhc2lzIG9mIGZvcm1Hcm91cHMgY29uZmlndXJhdGlvbiBpbnB1dFxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlRm9ybUdyb3VwQXJyYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cEFycmF5ID0gW107XHJcbiAgICB0aGlzLmZvcm1Db250cm9sQXJyYXkgPSBbXTtcclxuICAgIHRoaXMubGVnZW5kc0FycmF5ID0gW107XHJcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3Vwcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Hcm91cHM/LmZvcm1Hcm91cD8uZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9scyA9IGVsZW1lbnQuY29udHJvbHMuZmlsdGVyKFxyXG4gICAgICAgIChjb250cm9sKSA9PiBjb250cm9sLnR5cGUgIT09ICdidXR0b24nXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwQXJyYXkucHVzaCh0aGlzLmNyZWF0ZUdyb3VwKGNvbnRyb2xzKSk7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xBcnJheS5wdXNoKGNvbnRyb2xzKTtcclxuICAgICAgdGhpcy5sZWdlbmRzQXJyYXkucHVzaChlbGVtZW50LmxlZ2VuZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBjaGlsZHJlbjogdGhpcy5mb3JtR3JvdXBBcnJheSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybUdyb3Vwc1JlZmVyZW5jZS5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gZ3JvdXAgdXNpbmcgZm9ybSBidWlsZGVyXHJcbiAgICogQHBhcmFtIHthbnlbXX0gY29udHJvbHNcclxuICAgKiBAcmV0dXJuIHtGb3JtR3JvdXB9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVHcm91cChjb250cm9sczogYW55W10pOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIGNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2w6IEZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sLnR5cGUgPT09IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCkge1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woY29udHJvbC5jb250cm9sTmFtZSwgdGhpcy5jcmVhdGVGb3JtQXJyYXkoY29udHJvbCkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woY29udHJvbC5jb250cm9sTmFtZSwgdGhpcy5jcmVhdGVDb250cm9sKGNvbnRyb2wpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgZm9ybSBhcnJheSBmb3IgQ2hlY2tib3ggZ3JvdXAgYW5kIHJldHVybnMuXHJcbiAgICogQHBhcmFtIHtGaWVsZENvbmZpZ30gY29udHJvbHNcclxuICAgKiBAcmV0dXJuIHtGb3JtQXJyYXk8YW55Pn1cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZUZvcm1BcnJheShjb250cm9sczogRmllbGRDb25maWcpOiBGb3JtQXJyYXk8YW55PiB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgbGV0IGZvcm1BcnJheTogRm9ybUFycmF5PGFueT47XHJcbiAgICBjb25zdCBncm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xyXG4gICAgZ3JvdXAuYWRkQ29udHJvbChjb250cm9scy5jb250cm9sTmFtZSwgdGhpcy5jcmVhdGVDb250cm9sKGNvbnRyb2xzKSk7XHJcbiAgICBjb25zdCBpc1JlcXVpcmVkVmFsaWRhdG9yID0gZ3JvdXBcclxuICAgICAgPy5nZXQoY29udHJvbHMuY29udHJvbE5hbWUpXHJcbiAgICAgID8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgaWYgKGlzUmVxdWlyZWRWYWxpZGF0b3IpXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIGZvcm1BcnJheSA9IG5ldyBGb3JtQXJyYXk8YW55PihcclxuICAgICAgICBbXSxcclxuICAgICAgICB0aGlzLmNoZWNrYm94U2VsZWN0aW9uUmVxdWlyZWRWYWxpZGF0b3IoY29udHJvbHM/Lm1pblNlbGVjdGlvblJlcXVpcmVkKVxyXG4gICAgICApO1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgIGVsc2UgZm9ybUFycmF5ID0gbmV3IEZvcm1BcnJheTxhbnk+KFtdKTtcclxuICAgIGNvbnRyb2xzPy5jaGVja2JveE9wdGlvbnM/LmZvckVhY2goKGNvbnRyb2wpID0+IHtcclxuICAgICAgZm9ybUFycmF5LnB1c2gobmV3IEZvcm1Db250cm9sKGNvbnRyb2wuY2hlY2tlZCkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZm9ybUFycmF5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3VzdG9tIHZhbGlkYXRvciB0byBzZXQgcmVxdWlyZWQgZmlsZWQgdmFsaWRhdGlvbiBlcnJvciBmb3IgdGhlIGNoZWNrYm94IGZpZWxkIHR5cGUgYmFzZWQgb24gdGhlIG51bWJlciBvZiBjb25maWd1cmVkIG1pbmltdW0gY2hlY2tib3ggb3B0aW9ucyB0byBiZSBzZWxlY3RlZCB3aGVuZXZlciB0aGUgZmlsZWQgY29uZmlndXJlZCB3aXRoIHJlcXVpcmVkLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWluU2VsZWN0aW9uUmVxdWlyZWQ9MV1cclxuICAgKiBAcmV0dXJuIHsqfVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY2hlY2tib3hTZWxlY3Rpb25SZXF1aXJlZFZhbGlkYXRvcihtaW5TZWxlY3Rpb25SZXF1aXJlZCA9IDEpOiBhbnkge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHZhbGlkYXRlKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICAgIGxldCBjaGVja2VkID0gMDtcclxuICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmNvbnRyb2xzW2tleV07XHJcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICAgIGNoZWNrZWQrKztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoY2hlY2tlZCA8IG1pblNlbGVjdGlvblJlcXVpcmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNoZWNrYm94U2VsZWN0aW9uUmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGZvcm0gY29udHJvbCBiYXNlZCBvbiBmb3JtIGZpZWxkIGNvbmZpZ3VyYXRpb25cclxuICAgKiBAcGFyYW0ge0ZpZWxkQ29uZmlnfSBjb250cm9sXHJcbiAgICogQHJldHVybiB7Rm9ybUNvbnRyb2x9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlQ29udHJvbChjb250cm9sOiBGaWVsZENvbmZpZyk6IEZvcm1Db250cm9sIHtcclxuICAgIGNvbnN0IHsgZGlzYWJsZWQsIHZhbGlkYXRpb24sIHZhbHVlIH0gPSBjb250cm9sO1xyXG4gICAgcmV0dXJuIHRoaXMuZmIuY29udHJvbCh7IGRpc2FibGVkLCB2YWx1ZSB9LCB2YWxpZGF0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm1Hcm91cEFycmF5XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtU3VibWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtU3VibWl0LmVtaXQodGhpcy5mb3JtR3JvdXBBcnJheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtR3JvdXBBcnJheVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTGVmdEJ1dHRvbkNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1MZWZ0QnV0dG9uQ2xpY2tlZC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZm9ybUdyb3VwQXJyYXlcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DaGFuZ2UuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBzZWxlY3QgdHlwZSBkcm9wIGRvd24gc2VsZWN0aW9uIGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Ecm9wZG93bkNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZHJvcGRvd25DaGFuZ2UuZW1pdCh0aGlzLmZvcm1Hcm91cEFycmF5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBpbnB1dCBjaGFuZ2UgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZvcm1JbnB1dENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2xDaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgICB0aGlzLmZvcm1JbnB1dC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIHNlYXJjaCBhcHBseSBldmVudFxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWFyY2hBcHBseShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNlYXJjaEFwcGx5LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBzZWFyY2ggZXZlbnQgaW5zaWRlIGZvcm0gZmllbGQgc2VsZWN0XHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblNlbGVjdFNlYXJjaChldmVudDogeyBzZWFyY2hFdmVudDogRXZlbnQ7IGNvbnRyb2xOYW1lOiBzdHJpbmcgfSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtU2VsZWN0U2VhcmNoLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGFrZXMgdGhlIGluZGV4IGFuZCB0aGUgZm9ybUdyb3VwIGFzIGFyZ3VtZW50cyBhbmQgbmVlZHMgdG8gcmV0dXJuIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBmb3JtR3JvdXAuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXB9IGZvcm1Hcm91cFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGb3JtR3JvdXAoaW5kZXg6IG51bWJlciwgZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcclxuICAgIHJldHVybiBmb3JtR3JvdXAuY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZGF0ZSBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAcGFyYW0ge1NlbGVjdGVkRGF0ZX0gc2VsZWN0ZWREYXRlXHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25EYXRlU2VsZWN0ZWQoc2VsZWN0ZWREYXRlOiBTZWxlY3RlZERhdGUpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybURhdGVTZWxlY3RlZC5lbWl0KHNlbGVjdGVkRGF0ZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSB0aW1lIHNlbGVjdGlvbiBldmVudFxyXG4gICAqIEBwYXJhbSB7U2VsZWN0ZWRUaW1lfSBzZWxlY3RlZFRpbWVcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvblRpbWVTZWxlY3RlZChzZWxlY3RlZFRpbWU6IFNlbGVjdGVkVGltZSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtVGltZVNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRUaW1lKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgc2VsZWN0ZWQgZm9ybSBkYXRlIHJhbmdlXHJcbiAgICogQHBhcmFtIHt7c3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZ319IGRhdGVSYW5nZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VsZWN0ZWREYXRlUmFuZ2UoZGF0ZVJhbmdlOiB7IHN0YXJ0RGF0ZTogc3RyaW5nOyBlbmREYXRlOiBzdHJpbmcgfSkge1xyXG4gICAgdGhpcy5mb3JtU2VsZWN0ZWREYXRlUmFuZ2UuZW1pdChkYXRlUmFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGZpZWxkIGF1dG8gY29tcGxldGUgc2VhcmNoIGV2ZW50XHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BdXRvQ29tcGxldGVTZWFyY2goZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQXV0b0NvbXBsZXRlU2VhcmNoLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gZmllbGQgYXV0byBjb21wbGV0ZSBzZWFyY2ggY2xlYXIgZXZlbnRcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBjaGVja2JveCBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9ufSBvcHRpb25cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkNoZWNrYm94U2VsZWN0aW9uKG9wdGlvbjogQ2hlY2tib3hPcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNoZWNrYm94U2VsZWN0aW9uLmVtaXQob3B0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBmaWVsZCBhdXRvIGNvbXBsZXRlIG9wdGlvbiBzZWxlY3Rpb24gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkF1dG9Db21wbGV0ZU9wdGlvblNlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZC5lbWl0KHRoaXMuZm9ybUdyb3VwQXJyYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIHNsaWRlIHRvZ2dsZSBldmVudCBhbmQgZW1pdHMgZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlIGV2ZW50LlxyXG4gICAqIEBwYXJhbSB7U2xpZGVUb2dnbGVPcHRpb259IHRvZ2dsZVxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKHRvZ2dsZTogU2xpZGVUb2dnbGVPcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlLmVtaXQodG9nZ2xlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnZlcnRzIHBhc3NlZCBjb250cm9sIG5hbWUgaW4gaHlwaGVuYXRlZCBjc3MgY2xhc3MgbmFtZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWVcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIER5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0Um93Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBjbGFzc05hbWVcclxuICAgICAgLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpXHJcbiAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgIC5zcGxpdCgnICcpXHJcbiAgICAgIC5qb2luKCctJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBhZGRGb3JtR3JvdXAgZXZlbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQWRkRm9ybUdyb3VwKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRGb3JtR3JvdXAuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHN1cHBvcnRUZXh0TGlua0NsaWNrIGV2ZW50IG9uIGNsaWNrIG9mIGZvcm0gc3VwcG9ydCB0ZXh0IGxpbmtcclxuICAgKiBAcGFyYW0ge0xpbmtFdmVudEVtaXRUeXBlfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU3VwcG9ydFRleHRMaW5rQ2xpY2soZXZlbnQ6IExpbmtFdmVudEVtaXRUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1cHBvcnRUZXh0TGlua0NsaWNrLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBMaXN0ZW5zIHNlbGVjdCBmb3JtIGZpZWxkIGRyb3Bkb3duT3BlbmVkQ2hhbmdlIGV2ZW50IGFuZCBlbWl0cyBkcm9wZG93bk9wZW5lZENoYW5nZSBldmVudC5cclxuICAgKiBAbWVtYmVyb2YgRHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wZW5lZFN0YXRlfSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBEeW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoZXZlbnQ6IFNlbGVjdE9wZW5lZFN0YXRlKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyb3Bkb3duT3BlbmVkQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybVxyXG4gIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybVwiXHJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcclxuICAoY2hhbmdlKT1cIm9uRm9ybUNoYW5nZSgpXCJcclxuICAobmdTdWJtaXQpPVwib25Gb3JtU3VibWl0KClcIlxyXG4gIChpbnB1dCk9XCJmb3JtSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgaWVlZXNhRm9jdXNJbnZhbGlkRm9ybUZpZWxkXHJcbj5cclxuICA8ZmllbGRzZXRcclxuICAgIGNsYXNzPVwiaWVlZXNhLWR5bmFtaWMtZm9ybV9fZmllbGRzZXRcIlxyXG4gICAgKm5nRm9yPVwiXHJcbiAgICAgIGxldCBmb3JtR3JwIG9mIGZvcm1Hcm91cEFycmF5O1xyXG4gICAgICBsZXQgaSA9IGluZGV4O1xyXG4gICAgICB0cmFja0J5OiB0cmFja0J5Rm9ybUdyb3VwXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxsZWdlbmRcclxuICAgICAgY2xhc3M9XCJmbG9hdC1ub25lIHctYXV0byBwLTIgaWVlZXNhLWR5bmFtaWMtZm9ybV9fbGVnZW5kXCJcclxuICAgICAgKm5nSWY9XCJpc0xlZ2VuZFZpc2libGVcIlxyXG4gICAgPlxyXG4gICAgICB7eyBsZWdlbmRzQXJyYXlbaV0gfX1cclxuICAgIDwvbGVnZW5kPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjb2wte3sgY29sV2lkdGgueHMgfX0gY29sLXNtLXt7IGNvbFdpZHRoLnNtIH19IGNvbC1tZC17e1xyXG4gICAgICAgICAgY29sV2lkdGgubWRcclxuICAgICAgICB9fSBjb2wtbGcte3sgY29sV2lkdGgubGcgfX0gY29sLXhsLXt7IGNvbFdpZHRoLnhsIH19XHJcbiAgICAgICAgaWVlZXNhLWR5bmFtaWMtZm9ybV9fZm9ybS1maWVsZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0Um93Q2xhc3NOYW1lKGZvcm1Db250cm9sQXJyYXlbaV1bal0uY29udHJvbE5hbWUpXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBmb3JtQ29udHJvbEFycmF5W2ldOyBsZXQgaiA9IGluZGV4XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgaWVlZXNhRHluYW1pY0Zvcm1GaWVsZFxyXG4gICAgICAgICAgW2NvbmZpZ109XCJmb3JtQ29udHJvbEFycmF5W2ldW2pdXCJcclxuICAgICAgICAgIFtncm91cF09XCJmb3JtR3JwXCJcclxuICAgICAgICAgIFtzdWJtaXRSZXNwb25zZV09XCJzdWJtaXRSZXNwb25zZVwiXHJcbiAgICAgICAgICBbc2VhcmNoUmVzcG9uc2VdPVwic2VhcmNoUmVzcG9uc2VcIlxyXG4gICAgICAgICAgKGZvcm1TZWFyY2hBcHBseSk9XCJvblNlYXJjaEFwcGx5KCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1Ecm9wZG93blNlbGVjdGVkKT1cIm9uRm9ybUNoYW5nZSgpOyBvbkRyb3Bkb3duQ2hhbmdlKClcIlxyXG4gICAgICAgICAgKGZvcm1EYXRlU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uRGF0ZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RlZERhdGVSYW5nZSk9XCJvblNlbGVjdGVkRGF0ZVJhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1TZWxlY3RTZWFyY2gpPVwib25TZWxlY3RTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybUF1dG9Db21wbGV0ZVNlYXJjaCk9XCJvbkF1dG9Db21wbGV0ZVNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlKT1cIlxyXG4gICAgICAgICAgICBvbkF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUoJGV2ZW50KVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChhdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCk9XCJcclxuICAgICAgICAgICAgb25Gb3JtQ2hhbmdlKCk7IG9uQXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQoKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChmb3JtQ2hlY2tib3hTZWxlY3Rpb24pPVwib25DaGVja2JveFNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChmb3JtSW5wdXRWYWx1ZSk9XCJvbkZvcm1DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAoYWRkRm9ybUdyb3VwKT1cIm9uQWRkRm9ybUdyb3VwKCRldmVudClcIlxyXG4gICAgICAgICAgKGZvcm1UaW1lU2VsZWN0ZWQpPVwib25Gb3JtQ2hhbmdlKCk7IG9uVGltZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgKHN1cHBvcnRUZXh0TGlua0NsaWNrKT1cIm9uU3VwcG9ydFRleHRMaW5rQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAoZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKT1cIm9uRm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgKGRyb3Bkb3duT3BlbmVkQ2hhbmdlKT1cIm9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9maWVsZHNldD5cclxuICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29sLTEyIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnNcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ2p1c3RpZnktY29udGVudC1lbmQnOiBhY3Rpb25CdXR0b25BbGlnbiA9PT0gYWxpZ25tZW50VHlwZS5MRUZULFxyXG4gICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogYWN0aW9uQnV0dG9uQWxpZ24gPT09IGFsaWdubWVudFR5cGUuTUlERExFLFxyXG4gICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtc3RhcnQnOiBhY3Rpb25CdXR0b25BbGlnbiA9PT0gYWxpZ25tZW50VHlwZS5SSUdIVFxyXG4gICAgICB9XCJcclxuICAgID5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICBjbGFzcz1cIm1hdC1wcmltYXJ5LWJ1dHRvbiBpZWVlc2EtZHluYW1pYy1mb3JtX19hY3Rpb25zLS1yaWdodC1idG5cIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHJpZ2h0QnV0dG9uTGFiZWwgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cImlzTGVmdEJ1dHRvbk5lZWRlZFwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXRlcnRpYXJ5LWJ1dHRvbiBpZWVlc2EtZHluYW1pYy1mb3JtX19hY3Rpb25zLS1sZWZ0LWJ0blwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uTGVmdEJ1dHRvbkNsaWNrZWQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzTGVmdEJ1dHRvbkRpc2FibGVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGxlZnRCdXR0b25MYWJlbCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+Il19
|
|
@@ -184,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
184
184
|
}], minCharacterToSearch: [{
|
|
185
185
|
type: Input
|
|
186
186
|
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sU0FBUyxFQUNULEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sS0FBSyxVQUFVLE1BQU0sNkJBQTZCLENBQUM7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QzlENUIsbWlEQStDQSxtcVJER0ksWUFBWSxnT0FDWixtQkFBbUIsbzJCQUNuQixrQkFBa0IsZ0hBQ2xCLGtCQUFrQiwwU0FDbEIsY0FBYywwV0FDZCxhQUFhLCtCQUNiLHdCQUF3Qjs7NEZBTWYsZUFBZTtrQkFoQjNCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYix3QkFBd0I7cUJBQ3pCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7eUlBTzVCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ3FCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDakIsb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgU3ViamVjdCxcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIGZyb21FdmVudCxcclxuICBtYXAsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWVsZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25QYXR0ZXJucyB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24tcGF0dGVybnMnO1xyXG5pbXBvcnQgeyBTZWFyY2hUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1FcnJvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLWNvbnRyb2wtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCAqIGFzIHNlYXJjaEluZm8gZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgRm9ybVN1cHBvcnRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1zdXBwb3J0LXRleHQvZm9ybS1zdXBwb3J0LXRleHQuY29tcG9uZW50JztcclxuY29uc3QgTUlOX0NIQVIgPSAzO1xyXG4vKipcclxuICogQ29tcG9uZW50IHN1cHBvcnQgc2VhcmNoIGNhcGFiaWxpdHkgYW5kIHVzZWQgYXMgYSBmb3JtIGZpbGVkIHdpdGggdHlwZSBzZWFyY2ggYW5kIGluZGVwZW5kZW50bHkgYXMgc2VhcmNoIGNvbXBvbmVudC5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgU2VhcmNoQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtBZnRlclZpZXdJbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxyXG4gKiBAaW1wbGVtZW50cyB7Rm9ybUZpZWxkfVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2Etc2VhcmNoJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3JtRXJyb3JDb21wb25lbnQsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgRm9ybUZpZWxkXHJcbntcclxuICBjb25maWchOiBGaWVsZENvbmZpZztcclxuICBncm91cCE6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWUgPSAnc2VhcmNoJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlckxhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgc2VhcmNoVGVybSA9ICcnO1xyXG4gIEBJbnB1dCgpIHN1cHBvcnRNZXNzYWdlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNlYXJjaFR5cGU6IFNlYXJjaFR5cGUgPSBTZWFyY2hUeXBlLkFVVE87XHJcbiAgQE91dHB1dCgpIHNlYXJjaFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaENvbnRyb2wnKSBzZWFyY2hDb250cm9sITogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSBtaW5DaGFyYWN0ZXJUb1NlYXJjaCA9IE1JTl9DSEFSO1xyXG4gIHNlYXJjaFJlc3BvbnNlITogc3RyaW5nO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNlYXJjaEluZm86IGFueSA9IHNlYXJjaEluZm87XHJcbiAgaXNTZWFyY2hWYWx1ZUVtaXR0ZWQgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZm9ybVV0aWxpdHlTZXJ2aWNlOiBGb3JtVXRpbGl0eVNlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gaW5pdGlhbGl6ZSBjb25maWcgYW5kIGZvcm0gZ3JvdXAgaWYgaXRzIHVuZGVmaW5lZFxyXG4gICAqIEBtZW1iZXJvZiBTZWFyY2hDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZz8uc2VhcmNoVHlwZSkgdGhpcy5zZWFyY2hUeXBlID0gdGhpcy5jb25maWc/LnNlYXJjaFR5cGU7XHJcbiAgICB0aGlzLmNvbmZpZyA9XHJcbiAgICAgIHRoaXMuY29uZmlnID8/XHJcbiAgICAgIHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1GaWVsZENvbmZpZyhcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sTmFtZSxcclxuICAgICAgICBGb3JtQ29udHJvbFR5cGUuU0VBUkNIXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmdyb3VwID1cclxuICAgICAgdGhpcy5ncm91cCA/PyB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5nZXRGb3JtR3JvdXAodGhpcy5mb3JtQ29udHJvbE5hbWUpO1xyXG4gICAgdGhpcy5jb25maWcuc3VwcG9ydE1lc3NhZ2UgPVxyXG4gICAgICB0aGlzLmNvbmZpZz8uc3VwcG9ydE1lc3NhZ2UgPz8gdGhpcy5zdXBwb3J0TWVzc2FnZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgZm9ybSBjb250cm9sIHNlYXJjaCBrZXl1cCBldmVudCBhbmQgZW1pdHMgc2VhcmNoZWQgdmFsdWVcclxuICAgKiBAbWVtYmVyb2YgU2VhcmNoQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5ncm91cD8uZ2V0KHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSk/LnNldFZhbHVlKHRoaXMuY29uZmlnPy52YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBTZWFyY2hUeXBlLkFVVE8gJiYgdGhpcy5zZWFyY2hDb250cm9sKSB7XHJcbiAgICAgIGZyb21FdmVudCh0aGlzLnNlYXJjaENvbnRyb2w/Lm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgICAgbWFwKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGZpbHRlcihcclxuICAgICAgICAgICAgKHJlcykgPT4gcmVzLmxlbmd0aCA+PSB0aGlzLm1pbkNoYXJhY3RlclRvU2VhcmNoIHx8IHJlcy5sZW5ndGggPT09IDBcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5zZWFyY2hJbmZvLmF1dG9jb21wbGV0ZS5kZWJvdW5jZVRpbWUpLFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlLmVtaXQodGV4dCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gU2VhcmNoVHlwZS5PTl9DTElDSykge1xyXG4gICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5zZWFyY2hDb250cm9sPy5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgIGZpbHRlcihcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgICAgKGU6IGFueSkgPT5cclxuICAgICAgICAgICAgICBlLmtleSA9PT0gJ0VudGVyJyAmJlxyXG4gICAgICAgICAgICAgIChlPy50YXJnZXQ/LnZhbHVlPy5sZW5ndGggPj0gdGhpcy5taW5DaGFyYWN0ZXJUb1NlYXJjaCB8fFxyXG4gICAgICAgICAgICAgICAgZT8udGFyZ2V0Py52YWx1ZT8ubGVuZ3RoID09PSAwKVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5zZWFyY2hJbmZvLmF1dG9jb21wbGV0ZS5kZWJvdW5jZVRpbWUpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5pc1NlYXJjaFZhbHVlRW1pdHRlZCkgdGhpcy5zZWFyY2hWYWx1ZS5lbWl0KHRleHQpO1xyXG4gICAgICAgICAgdGhpcy5pc1NlYXJjaFZhbHVlRW1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0ZXMgZW1haWwgYmFzZWQgb24gZGVmaW5lZCB2YWxpZGF0aW9uIHBhdHRlcm5zXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGVtYWlsXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgU2VhcmNoQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaXNWYWxpZGF0ZUVtYWlsKGVtYWlsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlZ3VsYXJFeHByZXNzaW9uID0gVmFsaWRhdGlvblBhdHRlcm5zLmVtYWlsO1xyXG4gICAgcmV0dXJuIHJlZ3VsYXJFeHByZXNzaW9uLnRlc3QoU3RyaW5nKGVtYWlsKS50b0xvd2VyQ2FzZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFycyBzZWFyY2ggcmVzcG9uc2Ugb24gY2hhbmdlIG9mIGZvcm0gc2VhcmNoIGNvbnRyb2wgdmFsdWVcclxuICAgKiBAbWVtYmVyb2YgU2VhcmNoQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFJlc3BvbnNlID0gJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhcnMgc2VhcmNoIHJlc3BvbnNlIGFuZCBlbWl0cyBzZWFyY2hlZCB2YWx1ZSBvbiBzZWFyY2ggaW5wdXQgY2hhbmdlXHJcbiAgICogQG1lbWJlcm9mIFNlYXJjaENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoSW5wdXRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzU2VhcmNoVmFsdWVFbWl0dGVkID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5ncm91cC5nZXQodGhpcy5jb25maWcuY29udHJvbE5hbWUpPy52YWx1ZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5zZWFyY2hWYWx1ZS5lbWl0KHRoaXMuZ3JvdXAuZ2V0KHRoaXMuY29uZmlnLmNvbnRyb2xOYW1lKT8udmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5zZWFyY2hSZXNwb25zZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgdGhlIHNlYXJjaFZhbHVlIGV2ZW50IGFsb25nIHdpdGggdGhlIHNlYXJjaGVkIHRlcm0gd2hpbGUgY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBpY29uXHJcbiAgICogQG1lbWJlcm9mIFNlYXJjaENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VhcmNoQ2xpY2soKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWFyY2hUZXh0VmFsdWUgPSB0aGlzLmdyb3VwLmdldCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSk/LnZhbHVlO1xyXG4gICAgaWYgKFxyXG4gICAgICBzZWFyY2hUZXh0VmFsdWU/Lmxlbmd0aCA+PSB0aGlzLm1pbkNoYXJhY3RlclRvU2VhcmNoIHx8XHJcbiAgICAgIHNlYXJjaFRleHRWYWx1ZT8ubGVuZ3RoID09PSAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1NlYXJjaFZhbHVlRW1pdHRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUuZW1pdChzZWFyY2hUZXh0VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkRlc3Ryb3kgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIHVuc3Vic2NyaWJlIHRoZSBvcGVuIG9ic2VydmFibGUgc3Vic2NyaXB0aW9ucy5cclxuICAgKiBAbWVtYmVyb2YgU2VhcmNoQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICBjbGFzcz1cImllZWVzYS1zZWFyY2gtZmllbGRcIlxyXG4gICpuZ0lmPVwiZ3JvdXBcIlxyXG4gIFtuZ0NsYXNzXT1cIlxyXG4gICAgY29uZmlnLmlzTGFiZWxBbGlnbmVkTGVmdFxyXG4gICAgICA/ICdpZWVlc2Etc2VhcmNoLWZpZWxkX19sYWJlbC1sZWZ0J1xyXG4gICAgICA6ICdpZWVlc2Etc2VhcmNoLWZpZWxkX19sYWJlbC10b3AnXHJcbiAgXCJcclxuPlxyXG4gIDxtYXQtbGFiZWwgY2xhc3M9XCJpZWVlc2EtYm9keS1zbS0xNCBpZWVlc2Etc2VhcmNoLWZpZWxkX19sYWJlbFwiXHJcbiAgICA+e3sgY29uZmlnLmxhYmVsIH19PC9tYXQtbGFiZWxcclxuICA+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1zZWFyY2gtZmllbGRfX2NvbnRlbnQgaWVlZXNhLWJvZHktbWQtMTZcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgIFt0eXBlXT1cInNlYXJjaFR5cGVcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJMYWJlbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25maWcuYXJpYUxhYmVsXCJcclxuICAgICAgICBbYXJpYS1kZXNjcmliZWRieV09XCJjb25maWcuYXJpYURlc2NyaWJlZEJ5SWQgPz8gJydcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgICAgKGlucHV0KT1cIm9uU2VhcmNoSW5wdXRDaGFuZ2UoKVwiXHJcbiAgICAgICAgYmluZG9uLW5nTW9kZWw9XCJzZWFyY2hUZXJtXCJcclxuICAgICAgICAjc2VhcmNoQ29udHJvbFxyXG4gICAgICAvPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJvblNlYXJjaENsaWNrKClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VhcmNoSW5mbz8uYXJpYUxhYmVsPy5zZWFyY2hcIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXNlYXJjaC1maWVsZF9fYnV0dG9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBjbGFzcz1cImZhLXNvbGlkIGZhLW1hZ25pZnlpbmctZ2xhc3MgaWVlZXNhLXNlYXJjaC1maWVsZF9fc2VhcmNoLWljb25cIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGllZWVzYS1mb3JtLWVycm9yIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIiBbY29uZmlnXT1cImNvbmZpZ1wiPiA8L2llZWVzYS1mb3JtLWVycm9yPlxyXG4gIDxpZWVlc2EtZm9ybS1zdXBwb3J0LXRleHRcclxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIlxyXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gID48L2llZWVzYS1mb3JtLXN1cHBvcnQtdGV4dD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sU0FBUyxFQUNULEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sS0FBSyxVQUFVLE1BQU0sNkJBQTZCLENBQUM7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QzlENUIsbWlEQStDQSxtcVJER0ksWUFBWSxnT0FDWixtQkFBbUIsbzJCQUNuQixrQkFBa0IsZ0hBQ2xCLGtCQUFrQiwwU0FDbEIsY0FBYywwV0FDZCxhQUFhLCtCQUNiLHdCQUF3Qjs7NEZBTWYsZUFBZTtrQkFoQjNCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYix3QkFBd0I7cUJBQ3pCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7eUlBTzVCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ3FCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDakIsb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgU3ViamVjdCxcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIGZyb21FdmVudCxcclxuICBtYXAsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWVsZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25QYXR0ZXJucyB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24tcGF0dGVybnMnO1xyXG5pbXBvcnQgeyBTZWFyY2hUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1FcnJvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLWNvbnRyb2wtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCAqIGFzIHNlYXJjaEluZm8gZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgRm9ybVN1cHBvcnRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1zdXBwb3J0LXRleHQvZm9ybS1zdXBwb3J0LXRleHQuY29tcG9uZW50JztcclxuY29uc3QgTUlOX0NIQVIgPSAzO1xyXG4vKipcclxuICogQ29tcG9uZW50IHN1cHBvcnQgc2VhcmNoIGNhcGFiaWxpdHkgYW5kIHVzZWQgYXMgYSBmb3JtIGZpbGVkIHdpdGggdHlwZSBzZWFyY2ggYW5kIGluZGVwZW5kZW50bHkgYXMgc2VhcmNoIGNvbXBvbmVudC5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgU2VhcmNoQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtBZnRlclZpZXdJbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxyXG4gKiBAaW1wbGVtZW50cyB7Rm9ybUZpZWxkfVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2Etc2VhcmNoJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3JtRXJyb3JDb21wb25lbnQsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgRm9ybUZpZWxkXHJcbntcclxuICBjb25maWchOiBGaWVsZENvbmZpZztcclxuICBncm91cCE6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWUgPSAnc2VhcmNoJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlckxhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgc2VhcmNoVGVybSA9ICcnO1xyXG4gIEBJbnB1dCgpIHN1cHBvcnRNZXNzYWdlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNlYXJjaFR5cGU6IFNlYXJjaFR5cGUgPSBTZWFyY2hUeXBlLkFVVE87XHJcbiAgQE91dHB1dCgpIHNlYXJjaFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaENvbnRyb2wnKSBzZWFyY2hDb250cm9sITogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSBtaW5DaGFyYWN0ZXJUb1NlYXJjaCA9IE1JTl9DSEFSO1xyXG4gIHNlYXJjaFJlc3BvbnNlITogc3RyaW5nO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNlYXJjaEluZm86IGFueSA9IHNlYXJjaEluZm87XHJcbiAgaXNTZWFyY2hWYWx1ZUVtaXR0ZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGZvcm1VdGlsaXR5U2VydmljZTogRm9ybVV0aWxpdHlTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50YXRpb24gb2YgbmdPbkluaXQgbGlmZWN5Y2xlIGhvb2sgbWV0aG9kIHRvIGluaXRpYWxpemUgY29uZmlnIGFuZCBmb3JtIGdyb3VwIGlmIGl0cyB1bmRlZmluZWRcclxuICAgKiBAbWVtYmVyb2YgU2VhcmNoQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb25maWc/LnNlYXJjaFR5cGUpIHRoaXMuc2VhcmNoVHlwZSA9IHRoaXMuY29uZmlnPy5zZWFyY2hUeXBlO1xyXG4gICAgdGhpcy5jb25maWcgPVxyXG4gICAgICB0aGlzLmNvbmZpZyA/P1xyXG4gICAgICB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5nZXRGb3JtRmllbGRDb25maWcoXHJcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbE5hbWUsXHJcbiAgICAgICAgRm9ybUNvbnRyb2xUeXBlLlNFQVJDSFxyXG4gICAgICApO1xyXG4gICAgdGhpcy5ncm91cCA9XHJcbiAgICAgIHRoaXMuZ3JvdXAgPz8gdGhpcy5mb3JtVXRpbGl0eVNlcnZpY2UuZ2V0Rm9ybUdyb3VwKHRoaXMuZm9ybUNvbnRyb2xOYW1lKTtcclxuICAgIHRoaXMuY29uZmlnLnN1cHBvcnRNZXNzYWdlID1cclxuICAgICAgdGhpcy5jb25maWc/LnN1cHBvcnRNZXNzYWdlID8/IHRoaXMuc3VwcG9ydE1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gY29udHJvbCBzZWFyY2gga2V5dXAgZXZlbnQgYW5kIGVtaXRzIHNlYXJjaGVkIHZhbHVlXHJcbiAgICogQG1lbWJlcm9mIFNlYXJjaENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZ3JvdXA/LmdldCh0aGlzLmNvbmZpZz8uY29udHJvbE5hbWUpPy5zZXRWYWx1ZSh0aGlzLmNvbmZpZz8udmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gU2VhcmNoVHlwZS5BVVRPICYmIHRoaXMuc2VhcmNoQ29udHJvbCkge1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hDb250cm9sPy5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICAgIChyZXMpID0+IHJlcy5sZW5ndGggPj0gdGhpcy5taW5DaGFyYWN0ZXJUb1NlYXJjaCB8fCByZXMubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuc2VhcmNoSW5mby5hdXRvY29tcGxldGUuZGVib3VuY2VUaW1lKSxcclxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcclxuICAgICAgICApXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZS5lbWl0KHRleHQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IFNlYXJjaFR5cGUuT05fQ0xJQ0spIHtcclxuICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuc2VhcmNoQ29udHJvbD8ubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgICAgIChlOiBhbnkpID0+XHJcbiAgICAgICAgICAgICAgZS5rZXkgPT09ICdFbnRlcicgJiZcclxuICAgICAgICAgICAgICAoZT8udGFyZ2V0Py52YWx1ZT8ubGVuZ3RoID49IHRoaXMubWluQ2hhcmFjdGVyVG9TZWFyY2ggfHxcclxuICAgICAgICAgICAgICAgIGU/LnRhcmdldD8udmFsdWU/Lmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgICAgbWFwKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBldmVudD8udGFyZ2V0Py52YWx1ZTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuc2VhcmNoSW5mby5hdXRvY29tcGxldGUuZGVib3VuY2VUaW1lKVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuaXNTZWFyY2hWYWx1ZUVtaXR0ZWQpIHRoaXMuc2VhcmNoVmFsdWUuZW1pdCh0ZXh0KTtcclxuICAgICAgICAgIHRoaXMuaXNTZWFyY2hWYWx1ZUVtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIGVtYWlsIGJhc2VkIG9uIGRlZmluZWQgdmFsaWRhdGlvbiBwYXR0ZXJuc1xyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBlbWFpbFxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIFNlYXJjaENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGlzVmFsaWRhdGVFbWFpbChlbWFpbDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCByZWd1bGFyRXhwcmVzc2lvbiA9IFZhbGlkYXRpb25QYXR0ZXJucy5lbWFpbDtcclxuICAgIHJldHVybiByZWd1bGFyRXhwcmVzc2lvbi50ZXN0KFN0cmluZyhlbWFpbCkudG9Mb3dlckNhc2UoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhcnMgc2VhcmNoIHJlc3BvbnNlIG9uIGNoYW5nZSBvZiBmb3JtIHNlYXJjaCBjb250cm9sIHZhbHVlXHJcbiAgICogQG1lbWJlcm9mIFNlYXJjaENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hSZXNwb25zZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXJzIHNlYXJjaCByZXNwb25zZSBhbmQgZW1pdHMgc2VhcmNoZWQgdmFsdWUgb24gc2VhcmNoIGlucHV0IGNoYW5nZVxyXG4gICAqIEBtZW1iZXJvZiBTZWFyY2hDb21wb25lbnRcclxuICAgKi9cclxuICBvblNlYXJjaElucHV0Q2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1NlYXJjaFZhbHVlRW1pdHRlZCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuZ2V0KHRoaXMuY29uZmlnLmNvbnRyb2xOYW1lKT8udmFsdWUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUuZW1pdCh0aGlzLmdyb3VwLmdldCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSk/LnZhbHVlKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoUmVzcG9uc2UgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBzZWFyY2hWYWx1ZSBldmVudCBhbG9uZyB3aXRoIHRoZSBzZWFyY2hlZCB0ZXJtIHdoaWxlIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggaWNvblxyXG4gICAqIEBtZW1iZXJvZiBTZWFyY2hDb21wb25lbnRcclxuICAgKi9cclxuICBvblNlYXJjaENsaWNrKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VhcmNoVGV4dFZhbHVlID0gdGhpcy5ncm91cC5nZXQodGhpcy5jb25maWcuY29udHJvbE5hbWUpPy52YWx1ZTtcclxuICAgIGlmIChcclxuICAgICAgc2VhcmNoVGV4dFZhbHVlPy5sZW5ndGggPj0gdGhpcy5taW5DaGFyYWN0ZXJUb1NlYXJjaCB8fFxyXG4gICAgICBzZWFyY2hUZXh0VmFsdWU/Lmxlbmd0aCA9PT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hWYWx1ZUVtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlYXJjaFZhbHVlLmVtaXQoc2VhcmNoVGV4dFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIG5nT25EZXN0cm95IGxpZmVjeWNsZSBob29rIG1ldGhvZCB0byB1bnN1YnNjcmliZSB0aGUgb3BlbiBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIFNlYXJjaENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgW2Zvcm1Hcm91cF09XCJncm91cFwiXHJcbiAgY2xhc3M9XCJpZWVlc2Etc2VhcmNoLWZpZWxkXCJcclxuICAqbmdJZj1cImdyb3VwXCJcclxuICBbbmdDbGFzc109XCJcclxuICAgIGNvbmZpZy5pc0xhYmVsQWxpZ25lZExlZnRcclxuICAgICAgPyAnaWVlZXNhLXNlYXJjaC1maWVsZF9fbGFiZWwtbGVmdCdcclxuICAgICAgOiAnaWVlZXNhLXNlYXJjaC1maWVsZF9fbGFiZWwtdG9wJ1xyXG4gIFwiXHJcbj5cclxuICA8bWF0LWxhYmVsIGNsYXNzPVwiaWVlZXNhLWJvZHktc20tMTQgaWVlZXNhLXNlYXJjaC1maWVsZF9fbGFiZWxcIlxyXG4gICAgPnt7IGNvbmZpZy5sYWJlbCB9fTwvbWF0LWxhYmVsXHJcbiAgPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpZWVlc2Etc2VhcmNoLWZpZWxkX19jb250ZW50IGllZWVzYS1ib2R5LW1kLTE2XCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICBbdHlwZV09XCJzZWFyY2hUeXBlXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbmZpZy5jb250cm9sTmFtZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyTGFiZWxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnLmFyaWFMYWJlbFwiXHJcbiAgICAgICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiY29uZmlnLmFyaWFEZXNjcmliZWRCeUlkID8/ICcnXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgIChpbnB1dCk9XCJvblNlYXJjaElucHV0Q2hhbmdlKClcIlxyXG4gICAgICAgIGJpbmRvbi1uZ01vZGVsPVwic2VhcmNoVGVybVwiXHJcbiAgICAgICAgI3NlYXJjaENvbnRyb2xcclxuICAgICAgLz5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAoY2xpY2spPVwib25TZWFyY2hDbGljaygpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlYXJjaEluZm8/LmFyaWFMYWJlbD8uc2VhcmNoXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1zZWFyY2gtZmllbGRfX2J1dHRvblwiXHJcbiAgICAgID5cclxuICAgICAgICA8aVxyXG4gICAgICAgICAgY2xhc3M9XCJmYS1zb2xpZCBmYS1tYWduaWZ5aW5nLWdsYXNzIGllZWVzYS1zZWFyY2gtZmllbGRfX3NlYXJjaC1pY29uXCJcclxuICAgICAgICA+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxpZWVlc2EtZm9ybS1lcnJvciBbZm9ybUdyb3VwXT1cImdyb3VwXCIgW2NvbmZpZ109XCJjb25maWdcIj4gPC9pZWVlc2EtZm9ybS1lcnJvcj5cclxuICA8aWVlZXNhLWZvcm0tc3VwcG9ydC10ZXh0XHJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICA+PC9pZWVlc2EtZm9ybS1zdXBwb3J0LXRleHQ+XHJcbjwvZGl2PlxyXG4iXX0=
|