mmhglobal-dynamicform 2.12.0 → 2.12.2
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/README.md +21 -0
- package/esm2020/lib/components/datalistingfieldbase.component.mjs +10 -1
- package/esm2020/lib/components/fieldbase.component.mjs +63 -7
- package/esm2020/lib/embed-components/spinner/spinner.component.mjs +27 -0
- package/esm2020/lib/input-error-message/input-error-message.component.mjs +2 -2
- package/esm2020/lib/ksplitter/ksplitter.component.mjs +3 -3
- package/esm2020/lib/mmhglobal-dynamicform.module.mjs +25 -13
- package/esm2020/lib/services/zcomponent.service.mjs +11 -3
- package/esm2020/lib/uicontent/uicontent.component.mjs +8 -9
- package/esm2020/lib/virtual-scroll/virtual-scroll.component.mjs +142 -0
- package/esm2020/lib/zcard/zcard.component.mjs +4 -3
- package/esm2020/lib/zchip/zchip.component.mjs +80 -60
- package/esm2020/lib/zdatetime/dateIonicMinMaxDate.pipe.mjs +2 -2
- package/esm2020/lib/zform/zform.component.mjs +3 -3
- package/esm2020/lib/zgrid/container/zgrid-container.component.mjs +3 -4
- package/esm2020/lib/zgrid/zgrid.component.mjs +3 -3
- package/esm2020/lib/zinput-container/zinput-container.component.mjs +2 -2
- package/esm2020/lib/zloop/zloop.component.mjs +23 -17
- package/esm2020/lib/ztab/ztab.component.mjs +5 -4
- package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +8 -3
- package/esm2020/lib/ztreelist/ztreelist.component.mjs +15 -10
- package/esm2020/lib/zupload/zupload.component.mjs +2 -2
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/mmhglobal-dynamicform.mjs +399 -135
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +398 -135
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/components/datalistingfieldbase.component.d.ts +2 -0
- package/lib/components/fieldbase.component.d.ts +10 -1
- package/lib/embed-components/spinner/spinner.component.d.ts +14 -0
- package/lib/mmhglobal-dynamicform.module.d.ts +39 -37
- package/lib/virtual-scroll/virtual-scroll.component.d.ts +32 -0
- package/lib/zchip/zchip.component.d.ts +11 -15
- package/lib/zloop/zloop.component.d.ts +1 -0
- package/lib/ztexteditor/ztexteditor.component.d.ts +3 -0
- package/lib/ztreelist/ztreelist.component.d.ts +2 -2
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -44,7 +44,7 @@ export class ZInputContainerComponent extends FieldBase {
|
|
|
44
44
|
this.ztexteditor_type = ['ztexteditor'];
|
|
45
45
|
}
|
|
46
46
|
ngOnInit() {
|
|
47
|
-
super.initComponent(
|
|
47
|
+
super.initComponent().pipe(tap(() => {
|
|
48
48
|
this.setAddOnValue();
|
|
49
49
|
this.componentService.setEditMode(this);
|
|
50
50
|
this.data.zlayout = this.data.zlayout || (this.containerField ? this.containerField.zlayout : "row");
|
|
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
81
81
|
type: Component,
|
|
82
82
|
args: [{ selector: "app-zinput-container", template: "<div class=\"mobile-input-container e1tag-container-style\" *ngIf=\"isMobileScreen() && !isLoading\"\r\n [style]=\"componentProperties.containerStyle.style\">\r\n <ion-item [formGroup]=\"form\" class=\"e1tag-container-style1\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getIon_InvalidClass(form, data)\" [style]=\"componentProperties.containerStyle.style1\">\r\n <ion-label [attr.for]=\"data.Value\" class=\"input-label e1tag-container-style2\"\r\n *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\"\r\n [style]=\"componentProperties.containerStyle.style2\">\r\n {{componentProperties.label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n color=\"danger\" class=\"required-icon\">*</ion-text>\r\n </ion-label>\r\n <div class=\"input-value-field\">\r\n <div class=\"input-fields-options\">\r\n <app-ztext *ngIf=\"ztext_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-ztext>\r\n <app-zselectmultiple *ngIf=\"zselect_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zselectmultiple>\r\n <app-zdatetime *ngIf=\"zdate_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zdatetime>\r\n <app-zpostselectinput *ngIf=\"zpostselectinput_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\"\r\n [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n class=\"e1tag-container-style5\" [style]=\"componentProperties.containerStyle.style5\"\r\n (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zpostselectinput>\r\n <app-zcheckbox *ngIf=\"zcheckbox_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zcheckbox>\r\n <app-znumeric *ngIf=\"znumeric_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-znumeric>\r\n <app-ztextarea *ngIf=\"textarea_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-ztextarea>\r\n <app-zupload *ngIf=\"zupload_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zupload>\r\n <app-zimg *ngIf=\"zimg_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zimg>\r\n <app-ztexteditor *ngIf=\"ztexteditor_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-ztexteditor>\r\n </div>\r\n <app-error [data]=\"data\" [group]=\"group\" [form]=\"form\"></app-error>\r\n <!-- <app-field-suffix-element [data]=\"data\" [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\"\r\n [componentProperties]=\"componentProperties\"></app-field-suffix-element> -->\r\n </div>\r\n </ion-item>\r\n</div>\r\n\r\n<div class=\"desktop-input-container e1tag-container-style\" [formGroup]=\"form\"\r\n [style]=\"componentProperties.containerStyle.style\"\r\n *ngIf=\"!isMobileScreen() && !isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getClass(form, data)\" [fxLayout]=\"data.FieldLayoutType !== 1 ? 'column' : 'row'\"\r\n fxLayoutAlign=\"space-between stretch\" [class.editMode]=\"(data['_EditMode'].value)\">\r\n <kendo-label class=\"input-label e1tag-container-style1\" [for]=\"data.Name\" [text]=\"componentProperties.label\"\r\n *ngIf=\"data.ShowLabel\" [style]=\"componentProperties.containerStyle.style1\"\r\n [fxFlex]=\"componentProperties.labelFlexLayoutSize.all\" [fxFlex.xs]=\"componentProperties.labelFlexLayoutSize.xs\"\r\n [fxFlex.sm]=\"componentProperties.labelFlexLayoutSize.sm\" [fxFlex.md]=\"componentProperties.labelFlexLayoutSize.md\"\r\n [fxFlex.lg]=\"componentProperties.labelFlexLayoutSize.lg\" [fxFlex.xl]=\"componentProperties.labelFlexLayoutSize.xl\">\r\n <kendo-label *ngIf=\"data['_EditMode'].value && (!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n text=\"*\" class=\"required-icon\">\r\n </kendo-label>\r\n <app-input-field-addons class=\"addon-top e1tag-container-style7\" [position]=\"'top'\" [addOn]=\"inputFieldAddOn.top\"\r\n [data]=\"data\" [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\"\r\n [componentProperties]=\"componentProperties\" [style]=\"componentProperties.containerStyle.style7\">\r\n </app-input-field-addons>\r\n </kendo-label>\r\n <div class=\"input-value-container e1tag-container-style2\" [style]=\"componentProperties.containerStyle.style2\"\r\n [fxFlex]=\"componentProperties.fieldFlexLayoutSize.all\" [fxFlex.xs]=\"componentProperties.fieldFlexLayoutSize.xs\"\r\n [fxFlex.sm]=\"componentProperties.fieldFlexLayoutSize.sm\" [fxFlex.md]=\"componentProperties.fieldFlexLayoutSize.md\"\r\n [fxFlex.lg]=\"componentProperties.fieldFlexLayoutSize.lg\" [fxFlex.xl]=\"componentProperties.fieldFlexLayoutSize.xl\">\r\n <div *ngIf=\"data['_EditMode'].value\" class=\"input-value-field e1tag-container-style3\"\r\n [style]=\"componentProperties.containerStyle.style3\">\r\n <!-- TODO: Add 1 more layer for this switch case-->\r\n <app-input-field-addons class=\"addon-left e1tag-container-style7\" [position]=\"'left'\"\r\n [addOn]=\"inputFieldAddOn.left\" [data]=\"data\" [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\"\r\n [componentProperties]=\"componentProperties\" [style]=\"componentProperties.containerStyle.style7\">\r\n </app-input-field-addons>\r\n <div class=\"input-fields-options e1tag-container-style4\" [style]=\"componentProperties.containerStyle.style4\">\r\n <app-ztext *ngIf=\"ztext_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-ztext>\r\n <app-zselectmultiple *ngIf=\"zselect_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zselectmultiple>\r\n <app-zdatetime *ngIf=\"zdate_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zdatetime>\r\n <app-zpostselectinput *ngIf=\"zpostselectinput_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\"\r\n [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n class=\"e1tag-container-style5\" [style]=\"componentProperties.containerStyle.style5\"\r\n (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zpostselectinput>\r\n <app-zcheckbox *ngIf=\"zcheckbox_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zcheckbox>\r\n <app-znumeric *ngIf=\"znumeric_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-znumeric>\r\n <app-ztextarea *ngIf=\"textarea_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-ztextarea>\r\n <app-zupload *ngIf=\"zupload_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zupload>\r\n <app-zimg *ngIf=\"zimg_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-zimg>\r\n <app-ztexteditor *ngIf=\"ztexteditor_type.includes(data.Type)\" [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style5\"\r\n [style]=\"componentProperties.containerStyle.style5\" (triggerContainerEvent)=\"triggerContainerEvent($event)\">\r\n </app-ztexteditor>\r\n </div>\r\n <app-input-field-addons class=\"addon-right e1tag-container-style7\" [position]=\"'right'\"\r\n [addOn]=\"inputFieldAddOn.right\" [data]=\"data\" [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\"\r\n [componentProperties]=\"componentProperties\" [style]=\"componentProperties.containerStyle.style7\">\r\n </app-input-field-addons>\r\n </div>\r\n <app-input-field-addons class=\"addon-bottom e1tag-container-style7\" [position]=\"'bottom'\"\r\n [addOn]=\"inputFieldAddOn.bottom\" [data]=\"data\" [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\"\r\n [componentProperties]=\"componentProperties\" [style]=\"componentProperties.containerStyle.style7\">\r\n </app-input-field-addons>\r\n <app-error [data]=\"data\" [group]=\"group\" [form]=\"form\"></app-error>\r\n <kendo-label class=\"input-value e1tag-container-style6\" *ngIf=\"!(data['_EditMode'].value)\"\r\n [style]=\"componentProperties.containerStyle.style6\"\r\n [text]=\"group.zModel[data.Value] | inputText : data: group | async\"></kendo-label>\r\n </div>\r\n</div>\r\n", styles: [".required-icon{color:var(--ion-color-danger);padding-left:3px}.desktop-input-container{padding:8px 0;min-height:calc(var(--input-field-height) + 5px)!important;margin:1px 0;display:inline-flex}.desktop-input-container .input-label{font-size:var(--content-font-size);display:flex;padding-left:20px}.desktop-input-container>.input-value-container{margin:auto}.desktop-input-container>.input-value-container .input-value-field{display:flex}.desktop-input-container>.input-value-container .input-value-field .input-fields-options{flex-grow:10}.desktop-input-container>.input-value-container .input-value-field app-field-suffix-icon{margin:auto}.desktop-input-container>.input-value-container .input-value{font-size:calc(var(--content-font-size) + 2px);font-weight:600;margin-top:3px}.desktop-input-container.style1 .input-value-container{margin-left:0;padding-right:25px}.desktop-input-container.style1 .input-label{margin:3px 0}.desktop-input-container.style2 .input-value-container{width:100%;margin-top:3px;padding:0 25px 0 20px}.desktop-input-container.style2 .input-label{margin-top:0}.desktop-input-container .addon-right{margin:auto 0;padding-bottom:4px}.desktop-input-container.editMode.style1 .input-label{margin:6px 0 0}.mobile-input-container .input-value-field{width:100%}.tooltipsinfo-icon{padding-left:10px;color:var(--ion-color-primary-tint)}\n"] }]
|
|
83
83
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemlucHV0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96aW5wdXQtY29udGFpbmVyL3ppbnB1dC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemlucHV0LWNvbnRhaW5lci96aW5wdXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR2xELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBYyxnQkFBZ0IsRUFBaUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVM5RixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsU0FBUztJQWNyRCxZQUNTLGdCQUFtQztRQUUxQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBZHJDLG9CQUFlLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFFdEQsZUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENB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QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LCBaRmllbGQgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC16aW5wdXQtY29udGFpbmVyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96aW5wdXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3ppbnB1dC1jb250YWluZXIuY29tcG9uZW50LnNjc3NcIl1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBaSW5wdXRDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIHB1YmxpYyBpbnB1dEZpZWxkQWRkT24gPSB7IHRvcDoge30sIGxlZnQ6IHt9LCByaWdodDoge30sIGJvdHRvbToge30gfTtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHp0ZXh0X3R5cGUgPSBbJ251bWJlcicsICdudW1lcmljJywgJ2RhdGUnLCAnZW1haWwnLCAncGFzc3dvcmQnLCAnc2VhcmNoJywgJ3RlbCcsICd0ZXh0JywgJ3VybCcsICdjdXJyZW5jeSddO1xyXG4gIHB1YmxpYyByZWFkb25seSB6c2VsZWN0X3R5cGUgPSBbJ3p1aXNlbGVjdG11bHRpcGxlJywgJ3p1aXNlbGVjdG11bHRpcGxlX2J1dHRvbicsICdzZWxlY3QnXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgemRhdGVfdHlwZSA9IFsnemRhdGUnLCAnenRpbWUnLCAnemRhdGV0aW1lJywgJ3pzaG9ydGRhdGUnLCAnenVpZGF0ZXRpbWUnLCAnenVpdGltZSddO1xyXG4gIHB1YmxpYyByZWFkb25seSB6cG9zdHNlbGVjdGlucHV0X3R5cGUgPSBbJ3Bvc3Rfc2VsZWN0X2lucHV0JywgJ3ByZV9zZWxlY3RfaW5wdXQnLCAnenBob25lX2NvdW50cnljb2RlJ107XHJcbiAgcHVibGljIHJlYWRvbmx5IHpjaGVja2JveF90eXBlID0gWydjaGVja2JveCddO1xyXG4gIHB1YmxpYyByZWFkb25seSB6bnVtZXJpY190eXBlID0gWyd6bnVtZXJpYyddO1xyXG4gIHB1YmxpYyByZWFkb25seSB0ZXh0YXJlYV90eXBlID0gWyd0ZXh0YXJlYSddO1xyXG4gIHB1YmxpYyByZWFkb25seSB6dXBsb2FkX3R5cGUgPSBbJ3p1cGxvYWQnXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgemltZ190eXBlID0gWyd6aW1nJ107XHJcbiAgcHVibGljIHJlYWRvbmx5IHp0ZXh0ZWRpdG9yX3R5cGUgPSBbJ3p0ZXh0ZWRpdG9yJ107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCh7IGlzUmVnaXN0ZXJDb21wb25lbnQ6IGZhbHNlIH0pLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRBZGRPblZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLnNldEVkaXRNb2RlKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuZGF0YS56bGF5b3V0ID0gdGhpcy5kYXRhLnpsYXlvdXQgfHwgKHRoaXMuY29udGFpbmVyRmllbGQgPyB0aGlzLmNvbnRhaW5lckZpZWxkLnpsYXlvdXQgOiBcInJvd1wiKTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KSlcclxuICAgICAgLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENsYXNzKGZvcm06IEZvcm1Hcm91cCwgZGF0YTogWkZpZWxkKSB7XHJcbiAgICByZXR1cm4gYHN0eWxlJHtkYXRhLkZpZWxkTGF5b3V0VHlwZX0gJHtzdXBlci5nZXRDbGFzcyhmb3JtLCBkYXRhKX1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyaWdnZXJDb250YWluZXJFdmVudChldmVudDogWkNvbXBvbmVudE91dHB1dEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwic2V0QWRkT25WYWx1ZVwiKSB7XHJcbiAgICAgICAgdGhpcy5zZXRBZGRPblZhbHVlKGV2ZW50LmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEFkZE9uVmFsdWUoYWRkT25zPzogYW55KSB7XHJcbiAgICBjb25zdCBpbnB1dEZpZWxkQWRkT25Hcm91cFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGFkZE9ucyB8fCB0aGlzLmRhdGEuSW5wdXRGaWVsZEFkZE9ucyBhcyBhbnksIHRoaXMuZ3JvdXApO1xyXG4gICAgY29uc3QgYWRkT25WYWx1ZSA9IGlucHV0RmllbGRBZGRPbkdyb3VwVmFsdWUgfHwgYWRkT25zIHx8IHRoaXMuZGF0YS5JbnB1dEZpZWxkQWRkT25zO1xyXG4gICAgaWYgKGFkZE9uVmFsdWUgJiYgQXJyYXkuaXNBcnJheShhZGRPblZhbHVlKSkge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmlucHV0RmllbGRBZGRPbikpIHtcclxuICAgICAgICB0aGlzLmlucHV0RmllbGRBZGRPbltrZXldID0gYWRkT25WYWx1ZS5maW5kKGkgPT4gaS5Qb3NpdGlvbiA9PT0ga2V5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibW9iaWxlLWlucHV0LWNvbnRhaW5lciBlMXRhZy1jb250YWluZXItc3R5bGVcIiAqbmdJZj1cImlzTW9iaWxlU2NyZWVuKCkgJiYgIWlzTG9hZGluZ1wiXHJcbiAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGVcIj5cclxuICA8aW9uLWl0ZW0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGUxXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJnZXRJb25fSW52YWxpZENsYXNzKGZvcm0sIGRhdGEpXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUxXCI+XHJcbiAgICA8aW9uLWxhYmVsIFthdHRyLmZvcl09XCJkYXRhLlZhbHVlXCIgY2xhc3M9XCJpbnB1dC1sYWJlbCBlMXRhZy1jb250YWluZXItc3R5bGUyXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLlNob3dMYWJlbCA9PT0gdW5kZWZpbmVkIHx8IGRhdGEuU2hvd0xhYmVsXCJcclxuICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT1cImRhdGEuTGFiZWxQb3NpdGlvbiA/IGRhdGEuTGFiZWxQb3NpdGlvbiA6ICdzdGFja2VkJ1wiXHJcbiAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlMlwiPlxyXG4gICAgICB7e2NvbXBvbmVudFByb3BlcnRpZXMubGFiZWx9fVxyXG4gICAgICA8aW9uLXRleHQgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZClcIlxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cInJlcXVpcmVkLWljb25cIj4qPC9pb24tdGV4dD5cclxuICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LXZhbHVlLWZpZWxkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1maWVsZHMtb3B0aW9uc1wiPlxyXG4gICAgICAgIDxhcHAtenRleHQgKm5nSWY9XCJ6dGV4dF90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16dGV4dD5cclxuICAgICAgICA8YXBwLXpzZWxlY3RtdWx0aXBsZSAqbmdJZj1cInpzZWxlY3RfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16c2VsZWN0bXVsdGlwbGU+XHJcbiAgICAgICAgPGFwcC16ZGF0ZXRpbWUgKm5nSWY9XCJ6ZGF0ZV90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXpkYXRldGltZT5cclxuICAgICAgICA8YXBwLXpwb3N0c2VsZWN0aW5wdXQgKm5nSWY9XCJ6cG9zdHNlbGVjdGlucHV0X3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtXCIgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16cG9zdHNlbGVjdGlucHV0PlxyXG4gICAgICAgIDxhcHAtemNoZWNrYm94ICpuZ0lmPVwiemNoZWNrYm94X3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtemNoZWNrYm94PlxyXG4gICAgICAgIDxhcHAtem51bWVyaWMgKm5nSWY9XCJ6bnVtZXJpY190eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16bnVtZXJpYz5cclxuICAgICAgICA8YXBwLXp0ZXh0YXJlYSAqbmdJZj1cInRleHRhcmVhX3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtenRleHRhcmVhPlxyXG4gICAgICAgIDxhcHAtenVwbG9hZCAqbmdJZj1cInp1cGxvYWRfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXp1cGxvYWQ+XHJcbiAgICAgICAgPGFwcC16aW1nICpuZ0lmPVwiemltZ190eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtemltZz5cclxuICAgICAgICA8YXBwLXp0ZXh0ZWRpdG9yICpuZ0lmPVwienRleHRlZGl0b3JfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtenRleHRlZGl0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLWVycm9yIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgIDwhLS0gPGFwcC1maWVsZC1zdWZmaXgtZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiXHJcbiAgICAgICAgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiPjwvYXBwLWZpZWxkLXN1ZmZpeC1lbGVtZW50PiAtLT5cclxuICAgIDwvZGl2PlxyXG4gIDwvaW9uLWl0ZW0+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImRlc2t0b3AtaW5wdXQtY29udGFpbmVyIGUxdGFnLWNvbnRhaW5lci1zdHlsZVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiXHJcbiAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGVcIlxyXG4gICAgICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKCkgJiYgIWlzTG9hZGluZyAmJiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIlxyXG4gICAgIFtuZ0NsYXNzXT1cImdldENsYXNzKGZvcm0sIGRhdGEpXCIgW2Z4TGF5b3V0XT1cImRhdGEuRmllbGRMYXlvdXRUeXBlICE9PSAxID8gJ2NvbHVtbicgOiAncm93J1wiXHJcbiAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gc3RyZXRjaFwiIFtjbGFzcy5lZGl0TW9kZV09XCIoZGF0YVsnX0VkaXRNb2RlJ10udmFsdWUpXCI+XHJcbiAgPGtlbmRvLWxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwgZTF0YWctY29udGFpbmVyLXN0eWxlMVwiIFtmb3JdPVwiZGF0YS5OYW1lXCIgW3RleHRdPVwiY29tcG9uZW50UHJvcGVydGllcy5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5TaG93TGFiZWxcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTFcIlxyXG4gICAgICAgICAgICAgICBbZnhGbGV4XT1cImNvbXBvbmVudFByb3BlcnRpZXMubGFiZWxGbGV4TGF5b3V0U2l6ZS5hbGxcIiBbZnhGbGV4LnhzXT1cImNvbXBvbmVudFByb3BlcnRpZXMubGFiZWxGbGV4TGF5b3V0U2l6ZS54c1wiXHJcbiAgICAgICAgICAgICAgIFtmeEZsZXguc21dPVwiY29tcG9uZW50UHJvcGVydGllcy5sYWJlbEZsZXhMYXlvdXRTaXplLnNtXCIgW2Z4RmxleC5tZF09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmxhYmVsRmxleExheW91dFNpemUubWRcIlxyXG4gICAgICAgICAgICAgICBbZnhGbGV4LmxnXT1cImNvbXBvbmVudFByb3BlcnRpZXMubGFiZWxGbGV4TGF5b3V0U2l6ZS5sZ1wiIFtmeEZsZXgueGxdPVwiY29tcG9uZW50UHJvcGVydGllcy5sYWJlbEZsZXhMYXlvdXRTaXplLnhsXCI+XHJcbiAgICA8a2VuZG8tbGFiZWwgKm5nSWY9XCJkYXRhWydfRWRpdE1vZGUnXS52YWx1ZSAmJiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZClcIlxyXG4gICAgICAgICAgICAgICAgIHRleHQ9XCIqXCIgY2xhc3M9XCJyZXF1aXJlZC1pY29uXCI+XHJcbiAgICA8L2tlbmRvLWxhYmVsPlxyXG4gICAgPGFwcC1pbnB1dC1maWVsZC1hZGRvbnMgY2xhc3M9XCJhZGRvbi10b3AgZTF0YWctY29udGFpbmVyLXN0eWxlN1wiIFtwb3NpdGlvbl09XCIndG9wJ1wiIFthZGRPbl09XCJpbnB1dEZpZWxkQWRkT24udG9wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTdcIj5cclxuICAgIDwvYXBwLWlucHV0LWZpZWxkLWFkZG9ucz5cclxuICA8L2tlbmRvLWxhYmVsPlxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC12YWx1ZS1jb250YWluZXIgZTF0YWctY29udGFpbmVyLXN0eWxlMlwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlMlwiXHJcbiAgICAgICBbZnhGbGV4XT1cImNvbXBvbmVudFByb3BlcnRpZXMuZmllbGRGbGV4TGF5b3V0U2l6ZS5hbGxcIiBbZnhGbGV4LnhzXT1cImNvbXBvbmVudFByb3BlcnRpZXMuZmllbGRGbGV4TGF5b3V0U2l6ZS54c1wiXHJcbiAgICAgICBbZnhGbGV4LnNtXT1cImNvbXBvbmVudFByb3BlcnRpZXMuZmllbGRGbGV4TGF5b3V0U2l6ZS5zbVwiIFtmeEZsZXgubWRdPVwiY29tcG9uZW50UHJvcGVydGllcy5maWVsZEZsZXhMYXlvdXRTaXplLm1kXCJcclxuICAgICAgIFtmeEZsZXgubGddPVwiY29tcG9uZW50UHJvcGVydGllcy5maWVsZEZsZXhMYXlvdXRTaXplLmxnXCIgW2Z4RmxleC54bF09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmZpZWxkRmxleExheW91dFNpemUueGxcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJkYXRhWydfRWRpdE1vZGUnXS52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtdmFsdWUtZmllbGQgZTF0YWctY29udGFpbmVyLXN0eWxlM1wiXHJcbiAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlM1wiPlxyXG4gICAgICA8IS0tIFRPRE86IEFkZCAxIG1vcmUgbGF5ZXIgZm9yIHRoaXMgc3dpdGNoIGNhc2UtLT5cclxuICAgICAgPGFwcC1pbnB1dC1maWVsZC1hZGRvbnMgY2xhc3M9XCJhZGRvbi1sZWZ0IGUxdGFnLWNvbnRhaW5lci1zdHlsZTdcIiBbcG9zaXRpb25dPVwiJ2xlZnQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZE9uXT1cImlucHV0RmllbGRBZGRPbi5sZWZ0XCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIiBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU3XCI+XHJcbiAgICAgIDwvYXBwLWlucHV0LWZpZWxkLWFkZG9ucz5cclxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWZpZWxkcy1vcHRpb25zIGUxdGFnLWNvbnRhaW5lci1zdHlsZTRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTRcIj5cclxuICAgICAgICA8YXBwLXp0ZXh0ICpuZ0lmPVwienRleHRfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtenRleHQ+XHJcbiAgICAgICAgPGFwcC16c2VsZWN0bXVsdGlwbGUgKm5nSWY9XCJ6c2VsZWN0X3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtenNlbGVjdG11bHRpcGxlPlxyXG4gICAgICAgIDxhcHAtemRhdGV0aW1lICpuZ0lmPVwiemRhdGVfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16ZGF0ZXRpbWU+XHJcbiAgICAgICAgPGFwcC16cG9zdHNlbGVjdGlucHV0ICpuZ0lmPVwienBvc3RzZWxlY3RpbnB1dF90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtenBvc3RzZWxlY3RpbnB1dD5cclxuICAgICAgICA8YXBwLXpjaGVja2JveCAqbmdJZj1cInpjaGVja2JveF90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXpjaGVja2JveD5cclxuICAgICAgICA8YXBwLXpudW1lcmljICpuZ0lmPVwiem51bWVyaWNfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtem51bWVyaWM+XHJcbiAgICAgICAgPGFwcC16dGV4dGFyZWEgKm5nSWY9XCJ0ZXh0YXJlYV90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXp0ZXh0YXJlYT5cclxuICAgICAgICA8YXBwLXp1cGxvYWQgKm5nSWY9XCJ6dXBsb2FkX3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16dXBsb2FkPlxyXG4gICAgICAgIDxhcHAtemltZyAqbmdJZj1cInppbWdfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXppbWc+XHJcbiAgICAgICAgPGFwcC16dGV4dGVkaXRvciAqbmdJZj1cInp0ZXh0ZWRpdG9yX3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXp0ZXh0ZWRpdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFwcC1pbnB1dC1maWVsZC1hZGRvbnMgY2xhc3M9XCJhZGRvbi1yaWdodCBlMXRhZy1jb250YWluZXItc3R5bGU3XCIgW3Bvc2l0aW9uXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWRkT25dPVwiaW5wdXRGaWVsZEFkZE9uLnJpZ2h0XCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIiBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU3XCI+XHJcbiAgICAgIDwvYXBwLWlucHV0LWZpZWxkLWFkZG9ucz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGFwcC1pbnB1dC1maWVsZC1hZGRvbnMgY2xhc3M9XCJhZGRvbi1ib3R0b20gZTF0YWctY29udGFpbmVyLXN0eWxlN1wiIFtwb3NpdGlvbl09XCInYm90dG9tJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWRkT25dPVwiaW5wdXRGaWVsZEFkZE9uLmJvdHRvbVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTdcIj5cclxuICAgIDwvYXBwLWlucHV0LWZpZWxkLWFkZG9ucz5cclxuICAgIDxhcHAtZXJyb3IgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIj48L2FwcC1lcnJvcj5cclxuICAgIDxrZW5kby1sYWJlbCBjbGFzcz1cImlucHV0LXZhbHVlIGUxdGFnLWNvbnRhaW5lci1zdHlsZTZcIiAqbmdJZj1cIiEoZGF0YVsnX0VkaXRNb2RlJ10udmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTZcIlxyXG4gICAgICAgICAgICAgICAgIFt0ZXh0XT1cImdyb3VwLnpNb2RlbFtkYXRhLlZhbHVlXSB8IGlucHV0VGV4dCA6IGRhdGE6IGdyb3VwIHwgYXN5bmNcIj48L2tlbmRvLWxhYmVsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemlucHV0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96aW5wdXQtY29udGFpbmVyL3ppbnB1dC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemlucHV0LWNvbnRhaW5lci96aW5wdXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR2xELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTlELE9BQU8sRUFBYyxnQkFBZ0IsRUFBaUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVM5RixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsU0FBUztJQWNyRCxZQUNTLGdCQUFtQztRQUUxQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBZHJDLG9CQUFlLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFFdEQsZUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENB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KiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IHRhcCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEZpZWxkQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL2ZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCwgWkZpZWxkIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtemlucHV0LWNvbnRhaW5lclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vemlucHV0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96aW5wdXQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWklucHV0Q29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBwdWJsaWMgaW5wdXRGaWVsZEFkZE9uID0geyB0b3A6IHt9LCBsZWZ0OiB7fSwgcmlnaHQ6IHt9LCBib3R0b206IHt9IH07XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSB6dGV4dF90eXBlID0gWydudW1iZXInLCAnbnVtZXJpYycsICdkYXRlJywgJ2VtYWlsJywgJ3Bhc3N3b3JkJywgJ3NlYXJjaCcsICd0ZWwnLCAndGV4dCcsICd1cmwnLCAnY3VycmVuY3knXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgenNlbGVjdF90eXBlID0gWyd6dWlzZWxlY3RtdWx0aXBsZScsICd6dWlzZWxlY3RtdWx0aXBsZV9idXR0b24nLCAnc2VsZWN0J107XHJcbiAgcHVibGljIHJlYWRvbmx5IHpkYXRlX3R5cGUgPSBbJ3pkYXRlJywgJ3p0aW1lJywgJ3pkYXRldGltZScsICd6c2hvcnRkYXRlJywgJ3p1aWRhdGV0aW1lJywgJ3p1aXRpbWUnXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgenBvc3RzZWxlY3RpbnB1dF90eXBlID0gWydwb3N0X3NlbGVjdF9pbnB1dCcsICdwcmVfc2VsZWN0X2lucHV0JywgJ3pwaG9uZV9jb3VudHJ5Y29kZSddO1xyXG4gIHB1YmxpYyByZWFkb25seSB6Y2hlY2tib3hfdHlwZSA9IFsnY2hlY2tib3gnXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgem51bWVyaWNfdHlwZSA9IFsnem51bWVyaWMnXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdGV4dGFyZWFfdHlwZSA9IFsndGV4dGFyZWEnXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgenVwbG9hZF90eXBlID0gWyd6dXBsb2FkJ107XHJcbiAgcHVibGljIHJlYWRvbmx5IHppbWdfdHlwZSA9IFsnemltZyddO1xyXG4gIHB1YmxpYyByZWFkb25seSB6dGV4dGVkaXRvcl90eXBlID0gWyd6dGV4dGVkaXRvciddO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5waXBlKFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0QWRkT25WYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5zZXRFZGl0TW9kZSh0aGlzKTtcclxuICAgICAgICB0aGlzLmRhdGEuemxheW91dCA9IHRoaXMuZGF0YS56bGF5b3V0IHx8ICh0aGlzLmNvbnRhaW5lckZpZWxkID8gdGhpcy5jb250YWluZXJGaWVsZC56bGF5b3V0IDogXCJyb3dcIik7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDbGFzcyhmb3JtOiBGb3JtR3JvdXAsIGRhdGE6IFpGaWVsZCkge1xyXG4gICAgcmV0dXJuIGBzdHlsZSR7ZGF0YS5GaWVsZExheW91dFR5cGV9ICR7c3VwZXIuZ2V0Q2xhc3MoZm9ybSwgZGF0YSl9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmlnZ2VyQ29udGFpbmVyRXZlbnQoZXZlbnQ6IFpDb21wb25lbnRPdXRwdXRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGlmIChldmVudC50eXBlID09PSBcInNldEFkZE9uVmFsdWVcIikge1xyXG4gICAgICAgIHRoaXMuc2V0QWRkT25WYWx1ZShldmVudC5kYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRBZGRPblZhbHVlKGFkZE9ucz86IGFueSkge1xyXG4gICAgY29uc3QgaW5wdXRGaWVsZEFkZE9uR3JvdXBWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShhZGRPbnMgfHwgdGhpcy5kYXRhLklucHV0RmllbGRBZGRPbnMgYXMgYW55LCB0aGlzLmdyb3VwKTtcclxuICAgIGNvbnN0IGFkZE9uVmFsdWUgPSBpbnB1dEZpZWxkQWRkT25Hcm91cFZhbHVlIHx8IGFkZE9ucyB8fCB0aGlzLmRhdGEuSW5wdXRGaWVsZEFkZE9ucztcclxuICAgIGlmIChhZGRPblZhbHVlICYmIEFycmF5LmlzQXJyYXkoYWRkT25WYWx1ZSkpIHtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5pbnB1dEZpZWxkQWRkT24pKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dEZpZWxkQWRkT25ba2V5XSA9IGFkZE9uVmFsdWUuZmluZChpID0+IGkuUG9zaXRpb24gPT09IGtleSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1vYmlsZS1pbnB1dC1jb250YWluZXIgZTF0YWctY29udGFpbmVyLXN0eWxlXCIgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpICYmICFpc0xvYWRpbmdcIlxyXG4gICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlXCI+XHJcbiAgPGlvbi1pdGVtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlMVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtLCBkYXRhKVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlMVwiPlxyXG4gICAgPGlvbi1sYWJlbCBbYXR0ci5mb3JdPVwiZGF0YS5WYWx1ZVwiIGNsYXNzPVwiaW5wdXQtbGFiZWwgZTF0YWctY29udGFpbmVyLXN0eWxlMlwiXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5TaG93TGFiZWwgPT09IHVuZGVmaW5lZCB8fCBkYXRhLlNob3dMYWJlbFwiXHJcbiAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJkYXRhLkxhYmVsUG9zaXRpb24gPyBkYXRhLkxhYmVsUG9zaXRpb24gOiAnc3RhY2tlZCdcIlxyXG4gICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTJcIj5cclxuICAgICAge3tjb21wb25lbnRQcm9wZXJ0aWVzLmxhYmVsfX1cclxuICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQpXCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwiZGFuZ2VyXCIgY2xhc3M9XCJyZXF1aXJlZC1pY29uXCI+KjwvaW9uLXRleHQ+XHJcbiAgICA8L2lvbi1sYWJlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC12YWx1ZS1maWVsZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZmllbGRzLW9wdGlvbnNcIj5cclxuICAgICAgICA8YXBwLXp0ZXh0ICpuZ0lmPVwienRleHRfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtenRleHQ+XHJcbiAgICAgICAgPGFwcC16c2VsZWN0bXVsdGlwbGUgKm5nSWY9XCJ6c2VsZWN0X3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtenNlbGVjdG11bHRpcGxlPlxyXG4gICAgICAgIDxhcHAtemRhdGV0aW1lICpuZ0lmPVwiemRhdGVfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16ZGF0ZXRpbWU+XHJcbiAgICAgICAgPGFwcC16cG9zdHNlbGVjdGlucHV0ICpuZ0lmPVwienBvc3RzZWxlY3RpbnB1dF90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtenBvc3RzZWxlY3RpbnB1dD5cclxuICAgICAgICA8YXBwLXpjaGVja2JveCAqbmdJZj1cInpjaGVja2JveF90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXpjaGVja2JveD5cclxuICAgICAgICA8YXBwLXpudW1lcmljICpuZ0lmPVwiem51bWVyaWNfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtem51bWVyaWM+XHJcbiAgICAgICAgPGFwcC16dGV4dGFyZWEgKm5nSWY9XCJ0ZXh0YXJlYV90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXp0ZXh0YXJlYT5cclxuICAgICAgICA8YXBwLXp1cGxvYWQgKm5nSWY9XCJ6dXBsb2FkX3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16dXBsb2FkPlxyXG4gICAgICAgIDxhcHAtemltZyAqbmdJZj1cInppbWdfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXppbWc+XHJcbiAgICAgICAgPGFwcC16dGV4dGVkaXRvciAqbmdJZj1cInp0ZXh0ZWRpdG9yX3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXp0ZXh0ZWRpdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFwcC1lcnJvciBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8IS0tIDxhcHAtZmllbGQtc3VmZml4LWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIiBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIlxyXG4gICAgICAgIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIj48L2FwcC1maWVsZC1zdWZmaXgtZWxlbWVudD4gLS0+XHJcbiAgICA8L2Rpdj5cclxuICA8L2lvbi1pdGVtPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJkZXNrdG9wLWlucHV0LWNvbnRhaW5lciBlMXRhZy1jb250YWluZXItc3R5bGVcIiBbZm9ybUdyb3VwXT1cImZvcm1cIlxyXG4gICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlXCJcclxuICAgICAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpICYmICFpc0xvYWRpbmcgJiYgKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCJcclxuICAgICBbbmdDbGFzc109XCJnZXRDbGFzcyhmb3JtLCBkYXRhKVwiIFtmeExheW91dF09XCJkYXRhLkZpZWxkTGF5b3V0VHlwZSAhPT0gMSA/ICdjb2x1bW4nIDogJ3JvdydcIlxyXG4gICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIHN0cmV0Y2hcIiBbY2xhc3MuZWRpdE1vZGVdPVwiKGRhdGFbJ19FZGl0TW9kZSddLnZhbHVlKVwiPlxyXG4gIDxrZW5kby1sYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsIGUxdGFnLWNvbnRhaW5lci1zdHlsZTFcIiBbZm9yXT1cImRhdGEuTmFtZVwiIFt0ZXh0XT1cImNvbXBvbmVudFByb3BlcnRpZXMubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuU2hvd0xhYmVsXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUxXCJcclxuICAgICAgICAgICAgICAgW2Z4RmxleF09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmxhYmVsRmxleExheW91dFNpemUuYWxsXCIgW2Z4RmxleC54c109XCJjb21wb25lbnRQcm9wZXJ0aWVzLmxhYmVsRmxleExheW91dFNpemUueHNcIlxyXG4gICAgICAgICAgICAgICBbZnhGbGV4LnNtXT1cImNvbXBvbmVudFByb3BlcnRpZXMubGFiZWxGbGV4TGF5b3V0U2l6ZS5zbVwiIFtmeEZsZXgubWRdPVwiY29tcG9uZW50UHJvcGVydGllcy5sYWJlbEZsZXhMYXlvdXRTaXplLm1kXCJcclxuICAgICAgICAgICAgICAgW2Z4RmxleC5sZ109XCJjb21wb25lbnRQcm9wZXJ0aWVzLmxhYmVsRmxleExheW91dFNpemUubGdcIiBbZnhGbGV4LnhsXT1cImNvbXBvbmVudFByb3BlcnRpZXMubGFiZWxGbGV4TGF5b3V0U2l6ZS54bFwiPlxyXG4gICAgPGtlbmRvLWxhYmVsICpuZ0lmPVwiZGF0YVsnX0VkaXRNb2RlJ10udmFsdWUgJiYgKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQpXCJcclxuICAgICAgICAgICAgICAgICB0ZXh0PVwiKlwiIGNsYXNzPVwicmVxdWlyZWQtaWNvblwiPlxyXG4gICAgPC9rZW5kby1sYWJlbD5cclxuICAgIDxhcHAtaW5wdXQtZmllbGQtYWRkb25zIGNsYXNzPVwiYWRkb24tdG9wIGUxdGFnLWNvbnRhaW5lci1zdHlsZTdcIiBbcG9zaXRpb25dPVwiJ3RvcCdcIiBbYWRkT25dPVwiaW5wdXRGaWVsZEFkZE9uLnRvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU3XCI+XHJcbiAgICA8L2FwcC1pbnB1dC1maWVsZC1hZGRvbnM+XHJcbiAgPC9rZW5kby1sYWJlbD5cclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtdmFsdWUtY29udGFpbmVyIGUxdGFnLWNvbnRhaW5lci1zdHlsZTJcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTJcIlxyXG4gICAgICAgW2Z4RmxleF09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmZpZWxkRmxleExheW91dFNpemUuYWxsXCIgW2Z4RmxleC54c109XCJjb21wb25lbnRQcm9wZXJ0aWVzLmZpZWxkRmxleExheW91dFNpemUueHNcIlxyXG4gICAgICAgW2Z4RmxleC5zbV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmZpZWxkRmxleExheW91dFNpemUuc21cIiBbZnhGbGV4Lm1kXT1cImNvbXBvbmVudFByb3BlcnRpZXMuZmllbGRGbGV4TGF5b3V0U2l6ZS5tZFwiXHJcbiAgICAgICBbZnhGbGV4LmxnXT1cImNvbXBvbmVudFByb3BlcnRpZXMuZmllbGRGbGV4TGF5b3V0U2l6ZS5sZ1wiIFtmeEZsZXgueGxdPVwiY29tcG9uZW50UHJvcGVydGllcy5maWVsZEZsZXhMYXlvdXRTaXplLnhsXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZGF0YVsnX0VkaXRNb2RlJ10udmFsdWVcIiBjbGFzcz1cImlucHV0LXZhbHVlLWZpZWxkIGUxdGFnLWNvbnRhaW5lci1zdHlsZTNcIlxyXG4gICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTNcIj5cclxuICAgICAgPCEtLSBUT0RPOiBBZGQgMSBtb3JlIGxheWVyIGZvciB0aGlzIHN3aXRjaCBjYXNlLS0+XHJcbiAgICAgIDxhcHAtaW5wdXQtZmllbGQtYWRkb25zIGNsYXNzPVwiYWRkb24tbGVmdCBlMXRhZy1jb250YWluZXItc3R5bGU3XCIgW3Bvc2l0aW9uXT1cIidsZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthZGRPbl09XCJpbnB1dEZpZWxkQWRkT24ubGVmdFwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlN1wiPlxyXG4gICAgICA8L2FwcC1pbnB1dC1maWVsZC1hZGRvbnM+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1maWVsZHMtb3B0aW9ucyBlMXRhZy1jb250YWluZXItc3R5bGU0XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU0XCI+XHJcbiAgICAgICAgPGFwcC16dGV4dCAqbmdJZj1cInp0ZXh0X3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXp0ZXh0PlxyXG4gICAgICAgIDxhcHAtenNlbGVjdG11bHRpcGxlICpuZ0lmPVwienNlbGVjdF90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXpzZWxlY3RtdWx0aXBsZT5cclxuICAgICAgICA8YXBwLXpkYXRldGltZSAqbmdJZj1cInpkYXRlX3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtemRhdGV0aW1lPlxyXG4gICAgICAgIDxhcHAtenBvc3RzZWxlY3RpbnB1dCAqbmdJZj1cInpwb3N0c2VsZWN0aW5wdXRfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIiBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXpwb3N0c2VsZWN0aW5wdXQ+XHJcbiAgICAgICAgPGFwcC16Y2hlY2tib3ggKm5nSWY9XCJ6Y2hlY2tib3hfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16Y2hlY2tib3g+XHJcbiAgICAgICAgPGFwcC16bnVtZXJpYyAqbmdJZj1cInpudW1lcmljX3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU1XCIgKHRyaWdnZXJDb250YWluZXJFdmVudCk9XCJ0cmlnZ2VyQ29udGFpbmVyRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXpudW1lcmljPlxyXG4gICAgICAgIDxhcHAtenRleHRhcmVhICpuZ0lmPVwidGV4dGFyZWFfdHlwZS5pbmNsdWRlcyhkYXRhLlR5cGUpXCIgW2RhdGFdPVwiZGF0YVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16dGV4dGFyZWE+XHJcbiAgICAgICAgPGFwcC16dXBsb2FkICpuZ0lmPVwienVwbG9hZF90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIiAodHJpZ2dlckNvbnRhaW5lckV2ZW50KT1cInRyaWdnZXJDb250YWluZXJFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtenVwbG9hZD5cclxuICAgICAgICA8YXBwLXppbWcgKm5nSWY9XCJ6aW1nX3R5cGUuaW5jbHVkZXMoZGF0YS5UeXBlKVwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16aW1nPlxyXG4gICAgICAgIDxhcHAtenRleHRlZGl0b3IgKm5nSWY9XCJ6dGV4dGVkaXRvcl90eXBlLmluY2x1ZGVzKGRhdGEuVHlwZSlcIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiICh0cmlnZ2VyQ29udGFpbmVyRXZlbnQpPVwidHJpZ2dlckNvbnRhaW5lckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC16dGV4dGVkaXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxhcHAtaW5wdXQtZmllbGQtYWRkb25zIGNsYXNzPVwiYWRkb24tcmlnaHQgZTF0YWctY29udGFpbmVyLXN0eWxlN1wiIFtwb3NpdGlvbl09XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZE9uXT1cImlucHV0RmllbGRBZGRPbi5yaWdodFwiIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlN1wiPlxyXG4gICAgICA8L2FwcC1pbnB1dC1maWVsZC1hZGRvbnM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtaW5wdXQtZmllbGQtYWRkb25zIGNsYXNzPVwiYWRkb24tYm90dG9tIGUxdGFnLWNvbnRhaW5lci1zdHlsZTdcIiBbcG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZE9uXT1cImlucHV0RmllbGRBZGRPbi5ib3R0b21cIiBbZGF0YV09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU3XCI+XHJcbiAgICA8L2FwcC1pbnB1dC1maWVsZC1hZGRvbnM+XHJcbiAgICA8YXBwLWVycm9yIFtkYXRhXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCI+PC9hcHAtZXJyb3I+XHJcbiAgICA8a2VuZG8tbGFiZWwgY2xhc3M9XCJpbnB1dC12YWx1ZSBlMXRhZy1jb250YWluZXItc3R5bGU2XCIgKm5nSWY9XCIhKGRhdGFbJ19FZGl0TW9kZSddLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU2XCJcclxuICAgICAgICAgICAgICAgICBbdGV4dF09XCJncm91cC56TW9kZWxbZGF0YS5WYWx1ZV0gfCBpbnB1dFRleHQgOiBkYXRhOiBncm91cCB8IGFzeW5jXCI+PC9rZW5kby1sYWJlbD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -14,6 +14,7 @@ export class ZloopComponent extends ContainerFieldBase {
|
|
|
14
14
|
super(componentService);
|
|
15
15
|
this.componentService = componentService;
|
|
16
16
|
this.fieldService = fieldService;
|
|
17
|
+
this.originalFieldNameField = 'OriNameForZloop';
|
|
17
18
|
this.clonedFields = [];
|
|
18
19
|
this.clonedFormControlList = new Array();
|
|
19
20
|
this.initField = {};
|
|
@@ -40,7 +41,7 @@ export class ZloopComponent extends ContainerFieldBase {
|
|
|
40
41
|
this.clonedFields = this.cloneFieldElementChild(this.data);
|
|
41
42
|
// Append cloned fields to group.fields for error message displaying
|
|
42
43
|
this.group.clonedFields = ZComponentHelper.deepClone(this.group.fields);
|
|
43
|
-
const thisField = ZComponentHelper.getFieldFromFieldsByName(this.group.clonedFields, this.data.Name);
|
|
44
|
+
const thisField = ZComponentHelper.getFieldFromFieldsByName(this.group.clonedFields, this.data[this.originalFieldNameField] || this.data.Name);
|
|
44
45
|
thisField.Value = this.clonedFields;
|
|
45
46
|
}
|
|
46
47
|
}
|
|
@@ -59,23 +60,28 @@ export class ZloopComponent extends ContainerFieldBase {
|
|
|
59
60
|
}
|
|
60
61
|
updateFieldPropertiesToMakeThemDistinct(fields, loopingElementConfig, index) {
|
|
61
62
|
for (const field of fields) {
|
|
62
|
-
const elementConfig = loopingElementConfig.ToReplace.find(x => x.ElementName == field.Name);
|
|
63
|
+
const elementConfig = loopingElementConfig.ToReplace.find(x => x.ElementName == field.Name) || loopingElementConfig.ToReplace.find(x => x.ElementName == field[this.originalFieldNameField]);
|
|
63
64
|
const elementConfigProperty = elementConfig && elementConfig.Property && elementConfig.Property.length > index ? elementConfig.Property[index] : {};
|
|
64
|
-
field.
|
|
65
|
-
|
|
66
|
-
field.Label
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
else {
|
|
72
|
-
if (elementConfigProperty.Value != undefined) {
|
|
73
|
-
field.Value = elementConfigProperty.Value;
|
|
65
|
+
if (field.Type !== 'zloop') {
|
|
66
|
+
field.Name = `${field.Name}_${index + 1}`;
|
|
67
|
+
if (field.Label) {
|
|
68
|
+
field.Label = `${field.Label}`;
|
|
69
|
+
}
|
|
70
|
+
if (Array.isArray(field.Value)) {
|
|
71
|
+
this.updateFieldPropertiesToMakeThemDistinct(field.Value, loopingElementConfig, index);
|
|
74
72
|
}
|
|
75
|
-
else
|
|
76
|
-
|
|
73
|
+
else {
|
|
74
|
+
if (elementConfigProperty.Value != undefined) {
|
|
75
|
+
field.Value = elementConfigProperty.Value;
|
|
76
|
+
}
|
|
77
|
+
else if (!this.conponentTypesToNotUpdateValue.includes(field.Type)) {
|
|
78
|
+
field.Value = `${field.Value}_${index + 1}`;
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
}
|
|
82
|
+
else {
|
|
83
|
+
field[this.originalFieldNameField] = field.Name;
|
|
84
|
+
}
|
|
79
85
|
for (const key of Object.keys(elementConfigProperty)) {
|
|
80
86
|
field[key] = elementConfigProperty[key];
|
|
81
87
|
}
|
|
@@ -109,9 +115,9 @@ export class ZloopComponent extends ContainerFieldBase {
|
|
|
109
115
|
}
|
|
110
116
|
}
|
|
111
117
|
ZloopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZloopComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FieldService }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
-
ZloopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZloopComponent, selector: "app-zloop", usesInheritance: true, ngImport: i0, template: "<div [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style\"\r\n *ngIf=\"(!!componentProperties.isVisibleField? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of clonedFields\"\r\n [field]=\"field\"\r\n [containerField]=\"data\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\"\r\n [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </app-zformcontrol>\r\n</div>\r\n
|
|
118
|
+
ZloopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZloopComponent, selector: "app-zloop", usesInheritance: true, ngImport: i0, template: "<div [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style zloop-container\"\r\n *ngIf=\"(!!componentProperties.isVisibleField? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of clonedFields\"\r\n [field]=\"field\"\r\n [containerField]=\"data\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\"\r\n [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </app-zformcontrol>\r\n</div>\r\n", styles: [".zloop-container{display:flex}@media (min-width: 357px){.zloop-container>app-zformcontrol.col-xs-1{width:8.333%}.zloop-container>app-zformcontrol.col-xs-2{width:16.666%}.zloop-container>app-zformcontrol.col-xs-3{width:25%}.zloop-container>app-zformcontrol.col-xs-4{width:33.333%}.zloop-container>app-zformcontrol.col-xs-5{width:41.666%}.zloop-container>app-zformcontrol.col-xs-6{width:50%}.zloop-container>app-zformcontrol.col-xs-8{width:66.666%}.zloop-container>app-zformcontrol.col-xs-9{width:75%}.zloop-container>app-zformcontrol.col-xs-10{width:83.333%}.zloop-container>app-zformcontrol.col-xs-11{width:91.667%}.zloop-container>app-zformcontrol.col-xs-12{width:100%}}@media (min-width: 576px){.zloop-container>app-zformcontrol.col-sm-1{width:8.333%}.zloop-container>app-zformcontrol.col-sm-2{width:16.666%}.zloop-container>app-zformcontrol.col-sm-3{width:25%}.zloop-container>app-zformcontrol.col-sm-4{width:33.333%}.zloop-container>app-zformcontrol.col-sm-5{width:41.666%}.zloop-container>app-zformcontrol.col-sm-6{width:50%}.zloop-container>app-zformcontrol.col-sm-7{width:58.333%}.zloop-container>app-zformcontrol.col-sm-8{width:66.666%}.zloop-container>app-zformcontrol.col-sm-9{width:75%}.zloop-container>app-zformcontrol.col-sm-10{width:83.333%}.zloop-container>app-zformcontrol.col-sm-11{width:91.667%}.zloop-container>app-zformcontrol.col-sm-12{width:100%}}@media (min-width: 768px){.zloop-container>app-zformcontrol.col-1,.zloop-container>app-zformcontrol.col-md-1{width:8.333%}.zloop-container>app-zformcontrol.col-2,.zloop-container>app-zformcontrol.col-md-2{width:16.666%}.zloop-container>app-zformcontrol.col-3,.zloop-container>app-zformcontrol.col-md-3{width:25%}.zloop-container>app-zformcontrol.col-4,.zloop-container>app-zformcontrol.col-md-4{width:33.333%}.zloop-container>app-zformcontrol.col-5,.zloop-container>app-zformcontrol.col-md-5{width:41.666%}.zloop-container>app-zformcontrol.col-6,.zloop-container>app-zformcontrol.col-md-6{width:50%}.zloop-container>app-zformcontrol.col-7,.zloop-container>app-zformcontrol.col-md-7{width:58.333%}.zloop-container>app-zformcontrol.col-8,.zloop-container>app-zformcontrol.col-md-8{width:66.666%}.zloop-container>app-zformcontrol.col-9,.zloop-container>app-zformcontrol.col-md-9{width:75%}.zloop-container>app-zformcontrol.col-10,.zloop-container>app-zformcontrol.col-md-10{width:83.333%}.zloop-container>app-zformcontrol.col-11,.zloop-container>app-zformcontrol.col-md-11{width:91.667%}.zloop-container>app-zformcontrol.col-12,.zloop-container>app-zformcontrol.col-md-12{width:100%}}@media (min-width: 992px){.zloop-container>app-zformcontrol.col-lg-1{width:8.333%}.zloop-container>app-zformcontrol.col-lg-2{width:16.666%}.zloop-container>app-zformcontrol.col-lg-3{width:25%}.zloop-container>app-zformcontrol.col-lg-4{width:33.333%}.zloop-container>app-zformcontrol.col-lg-5{width:41.666%}.zloop-container>app-zformcontrol.col-lg-6{width:50%}.zloop-container>app-zformcontrol.col-lg-7{width:58.333%}.zloop-container>app-zformcontrol.col-lg-8{width:66.666%}.zloop-container>app-zformcontrol.col-lg-9{width:75%}.zloop-container>app-zformcontrol.col-lg-10{width:83.333%}.zloop-container>app-zformcontrol.col-lg-11{width:91.667%}.zloop-container>app-zformcontrol.col-lg-12{width:100%}}@media (min-width: 1200px){.zloop-container>app-zformcontrol.col-xl-1{width:8.333%}.zloop-container>app-zformcontrol.col-xl-2{width:16.666%}.zloop-container>app-zformcontrol.col-xl-3{width:25%}.zloop-container>app-zformcontrol.col-xl-4{width:33.333%}.zloop-container>app-zformcontrol.col-xl-5{width:41.666%}.zloop-container>app-zformcontrol.col-xl-6{width:50%}.zloop-container>app-zformcontrol.col-xl-7{width:58.333%}.zloop-container>app-zformcontrol.col-xl-8{width:66.666%}.zloop-container>app-zformcontrol.col-xl-9{width:75%}.zloop-container>app-zformcontrol.col-xl-10{width:83.333%}.zloop-container>app-zformcontrol.col-xl-11{width:91.667%}.zloop-container>app-zformcontrol.col-xl-12{width:100%}}\n"], components: [{ type: i3.ZformcontrolComponent, selector: "app-zformcontrol", inputs: ["field", "group", "form", "containerField"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
|
|
113
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZloopComponent, decorators: [{
|
|
114
120
|
type: Component,
|
|
115
|
-
args: [{ selector: 'app-zloop', template: "<div [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style\"\r\n *ngIf=\"(!!componentProperties.isVisibleField? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of clonedFields\"\r\n [field]=\"field\"\r\n [containerField]=\"data\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\"\r\n [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </app-zformcontrol>\r\n</div>\r\n
|
|
121
|
+
args: [{ selector: 'app-zloop', template: "<div [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style zloop-container\"\r\n *ngIf=\"(!!componentProperties.isVisibleField? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of clonedFields\"\r\n [field]=\"field\"\r\n [containerField]=\"data\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\"\r\n [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </app-zformcontrol>\r\n</div>\r\n", styles: [".zloop-container{display:flex}@media (min-width: 357px){.zloop-container>app-zformcontrol.col-xs-1{width:8.333%}.zloop-container>app-zformcontrol.col-xs-2{width:16.666%}.zloop-container>app-zformcontrol.col-xs-3{width:25%}.zloop-container>app-zformcontrol.col-xs-4{width:33.333%}.zloop-container>app-zformcontrol.col-xs-5{width:41.666%}.zloop-container>app-zformcontrol.col-xs-6{width:50%}.zloop-container>app-zformcontrol.col-xs-8{width:66.666%}.zloop-container>app-zformcontrol.col-xs-9{width:75%}.zloop-container>app-zformcontrol.col-xs-10{width:83.333%}.zloop-container>app-zformcontrol.col-xs-11{width:91.667%}.zloop-container>app-zformcontrol.col-xs-12{width:100%}}@media (min-width: 576px){.zloop-container>app-zformcontrol.col-sm-1{width:8.333%}.zloop-container>app-zformcontrol.col-sm-2{width:16.666%}.zloop-container>app-zformcontrol.col-sm-3{width:25%}.zloop-container>app-zformcontrol.col-sm-4{width:33.333%}.zloop-container>app-zformcontrol.col-sm-5{width:41.666%}.zloop-container>app-zformcontrol.col-sm-6{width:50%}.zloop-container>app-zformcontrol.col-sm-7{width:58.333%}.zloop-container>app-zformcontrol.col-sm-8{width:66.666%}.zloop-container>app-zformcontrol.col-sm-9{width:75%}.zloop-container>app-zformcontrol.col-sm-10{width:83.333%}.zloop-container>app-zformcontrol.col-sm-11{width:91.667%}.zloop-container>app-zformcontrol.col-sm-12{width:100%}}@media (min-width: 768px){.zloop-container>app-zformcontrol.col-1,.zloop-container>app-zformcontrol.col-md-1{width:8.333%}.zloop-container>app-zformcontrol.col-2,.zloop-container>app-zformcontrol.col-md-2{width:16.666%}.zloop-container>app-zformcontrol.col-3,.zloop-container>app-zformcontrol.col-md-3{width:25%}.zloop-container>app-zformcontrol.col-4,.zloop-container>app-zformcontrol.col-md-4{width:33.333%}.zloop-container>app-zformcontrol.col-5,.zloop-container>app-zformcontrol.col-md-5{width:41.666%}.zloop-container>app-zformcontrol.col-6,.zloop-container>app-zformcontrol.col-md-6{width:50%}.zloop-container>app-zformcontrol.col-7,.zloop-container>app-zformcontrol.col-md-7{width:58.333%}.zloop-container>app-zformcontrol.col-8,.zloop-container>app-zformcontrol.col-md-8{width:66.666%}.zloop-container>app-zformcontrol.col-9,.zloop-container>app-zformcontrol.col-md-9{width:75%}.zloop-container>app-zformcontrol.col-10,.zloop-container>app-zformcontrol.col-md-10{width:83.333%}.zloop-container>app-zformcontrol.col-11,.zloop-container>app-zformcontrol.col-md-11{width:91.667%}.zloop-container>app-zformcontrol.col-12,.zloop-container>app-zformcontrol.col-md-12{width:100%}}@media (min-width: 992px){.zloop-container>app-zformcontrol.col-lg-1{width:8.333%}.zloop-container>app-zformcontrol.col-lg-2{width:16.666%}.zloop-container>app-zformcontrol.col-lg-3{width:25%}.zloop-container>app-zformcontrol.col-lg-4{width:33.333%}.zloop-container>app-zformcontrol.col-lg-5{width:41.666%}.zloop-container>app-zformcontrol.col-lg-6{width:50%}.zloop-container>app-zformcontrol.col-lg-7{width:58.333%}.zloop-container>app-zformcontrol.col-lg-8{width:66.666%}.zloop-container>app-zformcontrol.col-lg-9{width:75%}.zloop-container>app-zformcontrol.col-lg-10{width:83.333%}.zloop-container>app-zformcontrol.col-lg-11{width:91.667%}.zloop-container>app-zformcontrol.col-lg-12{width:100%}}@media (min-width: 1200px){.zloop-container>app-zformcontrol.col-xl-1{width:8.333%}.zloop-container>app-zformcontrol.col-xl-2{width:16.666%}.zloop-container>app-zformcontrol.col-xl-3{width:25%}.zloop-container>app-zformcontrol.col-xl-4{width:33.333%}.zloop-container>app-zformcontrol.col-xl-5{width:41.666%}.zloop-container>app-zformcontrol.col-xl-6{width:50%}.zloop-container>app-zformcontrol.col-xl-7{width:58.333%}.zloop-container>app-zformcontrol.col-xl-8{width:66.666%}.zloop-container>app-zformcontrol.col-xl-9{width:75%}.zloop-container>app-zformcontrol.col-xl-10{width:83.333%}.zloop-container>app-zformcontrol.col-xl-11{width:91.667%}.zloop-container>app-zformcontrol.col-xl-12{width:100%}}\n"] }]
|
|
116
122
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FieldService }]; } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemxvb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxvb3Avemxvb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxvb3Avemxvb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFvQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVExRCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQU1wRCxZQUNTLGdCQUFtQyxFQUNuQyxZQUEwQjtRQUVqQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUhqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUDVCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLDBCQUFxQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDNUMsY0FBUyxHQUFHLEVBQVksQ0FBQztRQUN6QixtQ0FBOEIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBT3RELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMs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QUMsQ0FBQzt3QkFDbkcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxZQUFZLENBQy9DLENBQUMsQ0FBQzt3QkFDSCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDaEQ7aUJBQ0Y7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7MkdBeEhVLGNBQWM7K0ZBQWQsY0FBYyx3RUNiM0Isa3BCQVVBOzJGREdhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250YWluZXJGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9jb250YWluZXJmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50SGVscGVyLCBGaWVsZFNlcnZpY2UsIFpDb21wb25lbnQsIFpGaWVsZCB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemxvb3AnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96bG9vcC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vemxvb3AuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBabG9vcENvbXBvbmVudCBleHRlbmRzIENvbnRhaW5lckZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgcHVibGljIGNsb25lZEZpZWxkcyA9IFtdO1xyXG4gIHByaXZhdGUgY2xvbmVkRm9ybUNvbnRyb2xMaXN0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuICBwcml2YXRlIGluaXRGaWVsZCA9IHt9IGFzIFpGaWVsZDtcclxuICBwcml2YXRlIGNvbnBvbmVudFR5cGVzVG9Ob3RVcGRhdGVWYWx1ZSA9IFsnemJ1dHRvbnMnXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZmllbGRTZXJ2aWNlOiBGaWVsZFNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0RmllbGQgPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZSh0aGlzLmRhdGEpO1xyXG5cclxuICAgIHRoaXMuc2V0dXBMb29waW5nRWxlbWVudCgpO1xyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCgpLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7IH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZnJlc2hGaWVsZEVsZW1lbnQoKSB7XHJcbiAgICB0aGlzLmRhdGEgPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZSh0aGlzLmluaXRGaWVsZCk7XHJcbiAgICB0aGlzLnNldHVwTG9vcGluZ0VsZW1lbnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBMb29waW5nRWxlbWVudCgpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuTG9vcGluZ0VsZW1lbnRDb25maWcpIHtcclxuICAgICAgLy8gUmVtb3ZlIHByZXZpb3VzbHkgY2xvbmVkIGZpZWxkcyBmcm9tIGZvcm0gY29udHJvbHMgKGlmIGFueSlcclxuICAgICAgaWYgKHRoaXMuY2xvbmVkRm9ybUNvbnRyb2xMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGZnTmFtZSBvZiB0aGlzLmNsb25lZEZvcm1Db250cm9sTGlzdCkge1xyXG4gICAgICAgICAgdGhpcy5ncm91cC5mb3JtLnJlbW92ZUNvbnRyb2woZmdOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIENsb25lIHpsb29wJ3MgY2hpbGRcclxuICAgICAgdGhpcy5jbG9uZWRGaWVsZHMgPSB0aGlzLmNsb25lRmllbGRFbGVtZW50Q2hpbGQodGhpcy5kYXRhKTtcclxuXHJcbiAgICAgIC8vIEFwcGVuZCBjbG9uZWQgZmllbGRzIHRvIGdyb3VwLmZpZWxkcyBmb3IgZXJyb3IgbWVzc2FnZSBkaXNwbGF5aW5nXHJcbiAgICAgIHRoaXMuZ3JvdXAuY2xvbmVkRmllbGRzID0gWkNvbXBvbmVudEhlbHBlci5kZWVwQ2xvbmUodGhpcy5ncm91cC5maWVsZHMpO1xyXG4gICAgICBjb25zdCB0aGlzRmllbGQgPSBaQ29tcG9uZW50SGVscGVyLmdldEZpZWxkRnJvbUZpZWxkc0J5TmFtZSh0aGlzLmdyb3VwLmNsb25lZEZpZWxkcywgdGhpcy5kYXRhLk5hbWUpO1xyXG4gICAgICB0aGlzRmllbGQuVmFsdWUgPSB0aGlzLmNsb25lZEZpZWxkcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xvbmVGaWVsZEVsZW1lbnRDaGlsZChmaWVsZDogWkZpZWxkKTogQXJyYXk8WkZpZWxkPiB7XHJcbiAgICBjb25zdCBsb29waW5nRWxlbWVudENvbmZpZyA9IHR5cGVvZiBmaWVsZC5Mb29waW5nRWxlbWVudENvbmZpZyA9PSAnc3RyaW5nJyA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZC5Mb29waW5nRWxlbWVudENvbmZpZywgdGhpcy5ncm91cCkgOiBmaWVsZC5Mb29waW5nRWxlbWVudENvbmZpZztcclxuXHJcbiAgICBpZiAobG9vcGluZ0VsZW1lbnRDb25maWcgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiBmaWVsZC5WYWx1ZTtcclxuICAgIH1cclxuICAgIGxldCBmaWVsZFRvSW5zZXJ0ID0gbmV3IEFycmF5PFpGaWVsZD4oKTtcclxuICAgIGZvciAobGV0IGNvbmZpZ0luZGV4ID0gMDsgY29uZmlnSW5kZXggPCBsb29waW5nRWxlbWVudENvbmZpZy5Db3VudDsgY29uZmlnSW5kZXgrKykge1xyXG4gICAgICBjb25zdCBjbG9uZWRGaWVsZHMgPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZShmaWVsZC5WYWx1ZSk7XHJcbiAgICAgIHRoaXMudXBkYXRlRmllbGRQcm9wZXJ0aWVzVG9NYWtlVGhlbURpc3RpbmN0KGNsb25lZEZpZWxkcywgbG9vcGluZ0VsZW1lbnRDb25maWcsIGNvbmZpZ0luZGV4KTtcclxuICAgICAgZmllbGRUb0luc2VydCA9IGZpZWxkVG9JbnNlcnQuY29uY2F0KGNsb25lZEZpZWxkcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZpZWxkVG9JbnNlcnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUZpZWxkUHJvcGVydGllc1RvTWFrZVRoZW1EaXN0aW5jdChmaWVsZHM6IEFycmF5PFpGaWVsZD4sIGxvb3BpbmdFbGVtZW50Q29uZmlnOiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRDb25maWcgPSBsb29waW5nRWxlbWVudENvbmZpZy5Ub1JlcGxhY2UuZmluZCh4ID0+IHguRWxlbWVudE5hbWUgPT0gZmllbGQuTmFtZSk7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRDb25maWdQcm9wZXJ0eSA9IGVsZW1lbnRDb25maWcgJiYgZWxlbWVudENvbmZpZy5Qcm9wZXJ0eSAmJiBlbGVtZW50Q29uZmlnLlByb3BlcnR5Lmxlbmd0aCA+IGluZGV4ID8gZWxlbWVudENvbmZpZy5Qcm9wZXJ0eVtpbmRleF0gOiB7fTtcclxuXHJcbiAgICAgIGZpZWxkLk5hbWUgPSBgJHtmaWVsZC5OYW1lfV8ke2luZGV4ICsgMX1gO1xyXG4gICAgICBpZiAoZmllbGQuTGFiZWwpIHtcclxuICAgICAgICBmaWVsZC5MYWJlbCA9IGAke2ZpZWxkLkxhYmVsfWA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLlZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlRmllbGRQcm9wZXJ0aWVzVG9NYWtlVGhlbURpc3RpbmN0KGZpZWxkLlZhbHVlLCBsb29waW5nRWxlbWVudENvbmZpZywgaW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChlbGVtZW50Q29uZmlnUHJvcGVydHkuVmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBmaWVsZC5WYWx1ZSA9IGVsZW1lbnRDb25maWdQcm9wZXJ0eS5WYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuY29ucG9uZW50VHlwZXNUb05vdFVwZGF0ZVZhbHVlLmluY2x1ZGVzKGZpZWxkLlR5cGUpKSB7XHJcbiAgICAgICAgICBmaWVsZC5WYWx1ZSA9IGAke2ZpZWxkLlZhbHVlfV8ke2luZGV4ICsgMX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZWxlbWVudENvbmZpZ1Byb3BlcnR5KSkge1xyXG4gICAgICAgIGZpZWxkW2tleV0gPSBlbGVtZW50Q29uZmlnUHJvcGVydHlba2V5XTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zZXRDbG9uZWRGaWVsZHNUb0Zvcm1Db250cm9scyhmaWVsZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENsb25lZEZpZWxkc1RvRm9ybUNvbnRyb2xzKGZpZWxkOiBaRmllbGQpIHtcclxuICAgIGlmICghZmllbGQuU3ViVHlwZSkge1xyXG4gICAgICB0aGlzLmZpZWxkU2VydmljZS5wYXRjaEZpZWxkUHJvcGVydHkoZmllbGQpO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBmaWVsZC5WYWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBmaWVsZC5WYWx1ZS5pbmRleE9mKFwiLlwiKSAhPT0gLTEpIHtcclxuICAgICAgICBpZiAoWyd6Z3JpZCcsICd6dHJlZScsICd0ZXh0YXJlYWpzb24nXS5pbmRleE9mKGZpZWxkLlR5cGUpID09PSAtMSkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKFwiRm9ybUNvbnRyb2wgLSBpbnZhbGlkIGZpZWxkIHZhbHVlXCIsIGZpZWxkLlZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgaXNGb3JtQ29udHJvbCA9IFpDb21wb25lbnRIZWxwZXIuaXNGb3JtQ29udHJvbChmaWVsZCk7XHJcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gWkNvbXBvbmVudEhlbHBlci5pc1Zpc2libGVGb3JtQ29udHJvbCh0aGlzLCBmaWVsZCk7XHJcbiAgICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IFpDb21wb25lbnRIZWxwZXIuaXNSZXF1aXJlZEZvcm1Db250cm9sKHRoaXMsIGZpZWxkKTtcclxuXHJcbiAgICAgICAgaWYgKGlzRm9ybUNvbnRyb2wgPT09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBaQ29tcG9uZW50SGVscGVyLmdldFZhbGlkYXRvcnMoZmllbGQsIGlzVmlzaWJsZSwgaXNSZXF1aXJlZCk7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwLmZvcm0uYWRkQ29udHJvbChmaWVsZC5WYWx1ZSwgbmV3IEZvcm1Db250cm9sKFxyXG4gICAgICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFtmaWVsZC5WYWx1ZV0sIHZhbGlkYXRvcnNcclxuICAgICAgICAgICkpO1xyXG4gICAgICAgICAgdGhpcy5jbG9uZWRGb3JtQ29udHJvbExpc3QucHVzaChmaWVsZC5WYWx1ZSk7XHJcblxyXG4gICAgICAgICAgaWYgKFpDb21wb25lbnRIZWxwZXIuaGFzQ0NGaWVsZChmaWVsZC5UeXBlKSkge1xyXG4gICAgICAgICAgICBjb25zdCBjY1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBaQ29tcG9uZW50SGVscGVyLmdldENDVmFsaWRhdG9ycyhmaWVsZCwgaXNWaXNpYmxlLCBpc1JlcXVpcmVkKTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cC5mb3JtLmFkZENvbnRyb2woZmllbGQuQ0NWYWx1ZSwgbmV3IEZvcm1Db250cm9sKFxyXG4gICAgICAgICAgICAgIHRoaXMuZ3JvdXAuek1vZGVsW2ZpZWxkLkNDVmFsdWVdLCBjY1ZhbGlkYXRvcnNcclxuICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvbmVkRm9ybUNvbnRyb2xMaXN0LnB1c2goZmllbGQuQ0NWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGVcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZVwiXHJcbiAgICAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQ/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCI+XHJcbiAgPGFwcC16Zm9ybWNvbnRyb2wgW25nQ2xhc3NdPVwiZ3JvdXBbZmllbGQuaXNWaXNpYmxlRmllbGRdID8gZmllbGQuRGl2Q2xhc3MgOiAoKGZpZWxkLlZpc2libGUgPT09IHRydWUpID8gIGZpZWxkLkRpdkNsYXNzIDogJ2ZsZXgtaGlkZScpXCJcclxuICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjbG9uZWRGaWVsZHNcIlxyXG4gICAgW2ZpZWxkXT1cImZpZWxkXCJcclxuICAgIFtjb250YWluZXJGaWVsZF09XCJkYXRhXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIGlkPVwie3tmaWVsZC5UeXBlfX0te3tmaWVsZC5OYW1lfX1cIlxyXG4gICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCIgY2xhc3M9XCJlMXRhZy1zdHlsZTFcIj5cclxuICA8L2FwcC16Zm9ybWNvbnRyb2w+XHJcbjwvZGl2PlxyXG5cclxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemxvb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxvb3Avemxvb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxvb3Avemxvb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFvQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVExRCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQU9wRCxZQUNTLGdCQUFtQyxFQUNuQyxZQUEwQjtRQUVqQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUhqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUmxCLDJCQUFzQixHQUFHLGlCQUFpQixDQUFDO1FBQ3JELGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLDBCQUFxQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDNUMsY0FBUyxHQUFHLEVBQVksQ0FBQztRQUN6QixtQ0FBOEIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBT3RELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLEtBQUss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QyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsQ0FDM0MsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUU3QyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQzNDLE1BQU0sWUFBWSxHQUFrQixnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQzt3QkFDbkcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxZQUFZLENBQy9DLENBQUMsQ0FBQzt3QkFDSCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDaEQ7aUJBQ0Y7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7MkdBL0hVLGNBQWM7K0ZBQWQsY0FBYyx3RUNiM0IsOHBCQVNBOzJGRElhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250YWluZXJGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9jb250YWluZXJmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50SGVscGVyLCBGaWVsZFNlcnZpY2UsIFpDb21wb25lbnQsIFpGaWVsZCB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemxvb3AnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96bG9vcC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vemxvb3AuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBabG9vcENvbXBvbmVudCBleHRlbmRzIENvbnRhaW5lckZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBvcmlnaW5hbEZpZWxkTmFtZUZpZWxkID0gJ09yaU5hbWVGb3JabG9vcCc7XHJcbiAgcHVibGljIGNsb25lZEZpZWxkcyA9IFtdO1xyXG4gIHByaXZhdGUgY2xvbmVkRm9ybUNvbnRyb2xMaXN0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuICBwcml2YXRlIGluaXRGaWVsZCA9IHt9IGFzIFpGaWVsZDtcclxuICBwcml2YXRlIGNvbnBvbmVudFR5cGVzVG9Ob3RVcGRhdGVWYWx1ZSA9IFsnemJ1dHRvbnMnXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZmllbGRTZXJ2aWNlOiBGaWVsZFNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0RmllbGQgPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZSh0aGlzLmRhdGEpO1xyXG5cclxuICAgIHRoaXMuc2V0dXBMb29waW5nRWxlbWVudCgpO1xyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCgpLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7IH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZnJlc2hGaWVsZEVsZW1lbnQoKSB7XHJcbiAgICB0aGlzLmRhdGEgPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZSh0aGlzLmluaXRGaWVsZCk7XHJcbiAgICB0aGlzLnNldHVwTG9vcGluZ0VsZW1lbnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBMb29waW5nRWxlbWVudCgpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuTG9vcGluZ0VsZW1lbnRDb25maWcpIHtcclxuICAgICAgLy8gUmVtb3ZlIHByZXZpb3VzbHkgY2xvbmVkIGZpZWxkcyBmcm9tIGZvcm0gY29udHJvbHMgKGlmIGFueSlcclxuICAgICAgaWYgKHRoaXMuY2xvbmVkRm9ybUNvbnRyb2xMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGZnTmFtZSBvZiB0aGlzLmNsb25lZEZvcm1Db250cm9sTGlzdCkge1xyXG4gICAgICAgICAgdGhpcy5ncm91cC5mb3JtLnJlbW92ZUNvbnRyb2woZmdOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIENsb25lIHpsb29wJ3MgY2hpbGRcclxuICAgICAgdGhpcy5jbG9uZWRGaWVsZHMgPSB0aGlzLmNsb25lRmllbGRFbGVtZW50Q2hpbGQodGhpcy5kYXRhKTtcclxuXHJcbiAgICAgIC8vIEFwcGVuZCBjbG9uZWQgZmllbGRzIHRvIGdyb3VwLmZpZWxkcyBmb3IgZXJyb3IgbWVzc2FnZSBkaXNwbGF5aW5nXHJcbiAgICAgIHRoaXMuZ3JvdXAuY2xvbmVkRmllbGRzID0gWkNvbXBvbmVudEhlbHBlci5kZWVwQ2xvbmUodGhpcy5ncm91cC5maWVsZHMpO1xyXG4gICAgICBjb25zdCB0aGlzRmllbGQgPSBaQ29tcG9uZW50SGVscGVyLmdldEZpZWxkRnJvbUZpZWxkc0J5TmFtZSh0aGlzLmdyb3VwLmNsb25lZEZpZWxkcywgdGhpcy5kYXRhW3RoaXMub3JpZ2luYWxGaWVsZE5hbWVGaWVsZF0gfHwgdGhpcy5kYXRhLk5hbWUpO1xyXG4gICAgICB0aGlzRmllbGQuVmFsdWUgPSB0aGlzLmNsb25lZEZpZWxkcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xvbmVGaWVsZEVsZW1lbnRDaGlsZChmaWVsZDogWkZpZWxkKTogQXJyYXk8WkZpZWxkPiB7XHJcbiAgICBjb25zdCBsb29waW5nRWxlbWVudENvbmZpZyA9IHR5cGVvZiBmaWVsZC5Mb29waW5nRWxlbWVudENvbmZpZyA9PSAnc3RyaW5nJyA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZC5Mb29waW5nRWxlbWVudENvbmZpZywgdGhpcy5ncm91cCkgOiBmaWVsZC5Mb29waW5nRWxlbWVudENvbmZpZztcclxuXHJcbiAgICBpZiAobG9vcGluZ0VsZW1lbnRDb25maWcgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiBmaWVsZC5WYWx1ZTtcclxuICAgIH1cclxuICAgIGxldCBmaWVsZFRvSW5zZXJ0ID0gbmV3IEFycmF5PFpGaWVsZD4oKTtcclxuICAgIGZvciAobGV0IGNvbmZpZ0luZGV4ID0gMDsgY29uZmlnSW5kZXggPCBsb29waW5nRWxlbWVudENvbmZpZy5Db3VudDsgY29uZmlnSW5kZXgrKykge1xyXG4gICAgICBjb25zdCBjbG9uZWRGaWVsZHMgPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZShmaWVsZC5WYWx1ZSk7XHJcbiAgICAgIHRoaXMudXBkYXRlRmllbGRQcm9wZXJ0aWVzVG9NYWtlVGhlbURpc3RpbmN0KGNsb25lZEZpZWxkcywgbG9vcGluZ0VsZW1lbnRDb25maWcsIGNvbmZpZ0luZGV4KTtcclxuICAgICAgZmllbGRUb0luc2VydCA9IGZpZWxkVG9JbnNlcnQuY29uY2F0KGNsb25lZEZpZWxkcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZpZWxkVG9JbnNlcnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUZpZWxkUHJvcGVydGllc1RvTWFrZVRoZW1EaXN0aW5jdChmaWVsZHM6IEFycmF5PFpGaWVsZD4sIGxvb3BpbmdFbGVtZW50Q29uZmlnOiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XHJcblxyXG4gICAgICBjb25zdCBlbGVtZW50Q29uZmlnID0gbG9vcGluZ0VsZW1lbnRDb25maWcuVG9SZXBsYWNlLmZpbmQoeCA9PiB4LkVsZW1lbnROYW1lID09IGZpZWxkLk5hbWUpIHx8IGxvb3BpbmdFbGVtZW50Q29uZmlnLlRvUmVwbGFjZS5maW5kKHggPT4geC5FbGVtZW50TmFtZSA9PSBmaWVsZFt0aGlzLm9yaWdpbmFsRmllbGROYW1lRmllbGRdKTtcclxuICAgICAgY29uc3QgZWxlbWVudENvbmZpZ1Byb3BlcnR5ID0gZWxlbWVudENvbmZpZyAmJiBlbGVtZW50Q29uZmlnLlByb3BlcnR5ICYmIGVsZW1lbnRDb25maWcuUHJvcGVydHkubGVuZ3RoID4gaW5kZXggPyBlbGVtZW50Q29uZmlnLlByb3BlcnR5W2luZGV4XSA6IHt9O1xyXG5cclxuICAgICAgaWYgKGZpZWxkLlR5cGUgIT09ICd6bG9vcCcpIHtcclxuICAgICAgICBmaWVsZC5OYW1lID0gYCR7ZmllbGQuTmFtZX1fJHtpbmRleCArIDF9YDtcclxuICAgICAgICBpZiAoZmllbGQuTGFiZWwpIHtcclxuICAgICAgICAgIGZpZWxkLkxhYmVsID0gYCR7ZmllbGQuTGFiZWx9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLlZhbHVlKSkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVGaWVsZFByb3BlcnRpZXNUb01ha2VUaGVtRGlzdGluY3QoZmllbGQuVmFsdWUsIGxvb3BpbmdFbGVtZW50Q29uZmlnLCBpbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnRDb25maWdQcm9wZXJ0eS5WYWx1ZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgZmllbGQuVmFsdWUgPSBlbGVtZW50Q29uZmlnUHJvcGVydHkuVmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICghdGhpcy5jb25wb25lbnRUeXBlc1RvTm90VXBkYXRlVmFsdWUuaW5jbHVkZXMoZmllbGQuVHlwZSkpIHtcclxuICAgICAgICAgICAgZmllbGQuVmFsdWUgPSBgJHtmaWVsZC5WYWx1ZX1fJHtpbmRleCArIDF9YDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZmllbGRbdGhpcy5vcmlnaW5hbEZpZWxkTmFtZUZpZWxkXSA9IGZpZWxkLk5hbWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGVsZW1lbnRDb25maWdQcm9wZXJ0eSkpIHtcclxuICAgICAgICBmaWVsZFtrZXldID0gZWxlbWVudENvbmZpZ1Byb3BlcnR5W2tleV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc2V0Q2xvbmVkRmllbGRzVG9Gb3JtQ29udHJvbHMoZmllbGQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDbG9uZWRGaWVsZHNUb0Zvcm1Db250cm9scyhmaWVsZDogWkZpZWxkKSB7XHJcbiAgICBpZiAoIWZpZWxkLlN1YlR5cGUpIHtcclxuICAgICAgdGhpcy5maWVsZFNlcnZpY2UucGF0Y2hGaWVsZFByb3BlcnR5KGZpZWxkKTtcclxuXHJcbiAgICAgIGlmICh0eXBlb2YgZmllbGQuVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgZmllbGQuVmFsdWUuaW5kZXhPZihcIi5cIikgIT09IC0xKSB7XHJcbiAgICAgICAgaWYgKFsnemdyaWQnLCAnenRyZWUnLCAndGV4dGFyZWFqc29uJ10uaW5kZXhPZihmaWVsZC5UeXBlKSA9PT0gLTEpIHtcclxuICAgICAgICAgIGNvbnNvbGUud2FybihcIkZvcm1Db250cm9sIC0gaW52YWxpZCBmaWVsZCB2YWx1ZVwiLCBmaWVsZC5WYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGlzRm9ybUNvbnRyb2wgPSBaQ29tcG9uZW50SGVscGVyLmlzRm9ybUNvbnRyb2woZmllbGQpO1xyXG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IFpDb21wb25lbnRIZWxwZXIuaXNWaXNpYmxlRm9ybUNvbnRyb2wodGhpcywgZmllbGQpO1xyXG4gICAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBaQ29tcG9uZW50SGVscGVyLmlzUmVxdWlyZWRGb3JtQ29udHJvbCh0aGlzLCBmaWVsZCk7XHJcblxyXG4gICAgICAgIGlmIChpc0Zvcm1Db250cm9sID09PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gWkNvbXBvbmVudEhlbHBlci5nZXRWYWxpZGF0b3JzKGZpZWxkLCBpc1Zpc2libGUsIGlzUmVxdWlyZWQpO1xyXG4gICAgICAgICAgdGhpcy5ncm91cC5mb3JtLmFkZENvbnRyb2woZmllbGQuVmFsdWUsIG5ldyBGb3JtQ29udHJvbChcclxuICAgICAgICAgICAgdGhpcy5ncm91cC56TW9kZWxbZmllbGQuVmFsdWVdLCB2YWxpZGF0b3JzXHJcbiAgICAgICAgICApKTtcclxuICAgICAgICAgIHRoaXMuY2xvbmVkRm9ybUNvbnRyb2xMaXN0LnB1c2goZmllbGQuVmFsdWUpO1xyXG5cclxuICAgICAgICAgIGlmIChaQ29tcG9uZW50SGVscGVyLmhhc0NDRmllbGQoZmllbGQuVHlwZSkpIHtcclxuICAgICAgICAgICAgY29uc3QgY2NWYWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gWkNvbXBvbmVudEhlbHBlci5nZXRDQ1ZhbGlkYXRvcnMoZmllbGQsIGlzVmlzaWJsZSwgaXNSZXF1aXJlZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXAuZm9ybS5hZGRDb250cm9sKGZpZWxkLkNDVmFsdWUsIG5ldyBGb3JtQ29udHJvbChcclxuICAgICAgICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFtmaWVsZC5DQ1ZhbHVlXSwgY2NWYWxpZGF0b3JzXHJcbiAgICAgICAgICAgICkpO1xyXG4gICAgICAgICAgICB0aGlzLmNsb25lZEZvcm1Db250cm9sTGlzdC5wdXNoKGZpZWxkLkNDVmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGUgemxvb3AtY29udGFpbmVyXCJcclxuICAgICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZD8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIj5cclxuICA8YXBwLXpmb3JtY29udHJvbCBbbmdDbGFzc109XCJncm91cFtmaWVsZC5pc1Zpc2libGVGaWVsZF0gPyBmaWVsZC5EaXZDbGFzcyA6ICgoZmllbGQuVmlzaWJsZSA9PT0gdHJ1ZSkgPyAgZmllbGQuRGl2Q2xhc3MgOiAnZmxleC1oaWRlJylcIlxyXG4gICAgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGNsb25lZEZpZWxkc1wiXHJcbiAgICBbZmllbGRdPVwiZmllbGRcIlxyXG4gICAgW2NvbnRhaW5lckZpZWxkXT1cImRhdGFcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgaWQ9XCJ7e2ZpZWxkLlR5cGV9fS17e2ZpZWxkLk5hbWV9fVwiXHJcbiAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIiBjbGFzcz1cImUxdGFnLXN0eWxlMVwiPlxyXG4gIDwvYXBwLXpmb3JtY29udHJvbD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -16,7 +16,8 @@ import * as i5 from "@fortawesome/angular-fontawesome";
|
|
|
16
16
|
import * as i6 from "@ionic/angular";
|
|
17
17
|
import * as i7 from "../zdiv/zdiv.component";
|
|
18
18
|
import * as i8 from "@angular/common";
|
|
19
|
-
import * as i9 from "
|
|
19
|
+
import * as i9 from "@angular/flex-layout/extended";
|
|
20
|
+
import * as i10 from "./ztab.pipe";
|
|
20
21
|
export class ZtabComponent extends ContainerFieldBase {
|
|
21
22
|
constructor(componentService, fontAweSomeService, translationService, storageService, mainService) {
|
|
22
23
|
super(componentService);
|
|
@@ -199,12 +200,12 @@ export class ZtabComponent extends ContainerFieldBase {
|
|
|
199
200
|
}
|
|
200
201
|
}
|
|
201
202
|
ZtabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZtabComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FontAweSomeService }, { token: i2.TranslationService }, { token: i2.StorageSessionService }, { token: i3.MainService }], target: i0.ɵɵFactoryTarget.Component });
|
|
202
|
-
ZtabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZtabComponent, selector: "app-ztab", viewQueries: [{ propertyName: "tabstrip", first: true, predicate: ["kendoTabStripInstance"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" class=\"container e1tag-container-style\"\r\n [style]=\"componentProperties.containerStyle.style\">\r\n <kendo-tabstrip class=\"ztab e1tag-container-style1\" #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\"\r\n [style]=\"componentProperties.containerStyle.style1\" [class]=\"data.ComponentStyleType\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\">\r\n <div class=\"tab-content e1tag-container-style3\" [style]=\"componentProperties.containerStyle.style3\">\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon, fontAweSomeService)\" [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter e1tag-container-style5\" color=\"danger\" *ngIf=\"!!tab.Counter\" [style]=\"componentProperties.containerStyle.style5\">{{tab.Counter}}</ion-badge>\r\n </div>\r\n </ng-template>\r\n <ng-template kendoTabContent>\r\n <app-zdiv [style]=\"componentProperties.containerStyle.style6\" class=\"e1tag-container-style6\" [data]=\"data | tabfilter: tab.Index + ''\" [form]=\"form\" [group]=\"group\" [containerField]=\"containerField\">\r\n </app-zdiv>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>\r\n", styles: [".container{margin:var(--container-margin-top) 0px 6px 0px}.tab-item-counter{margin-left:4px;position:relative;top:4px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper{border-color:rgba(var(--ion-color-primary-rgb),.5)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{box-shadow:none;font-weight:600;color:gray;font-size:calc(var(--content-subtitle1-font-size) - 1px);background:rgba(var(--ion-color-primary-rgb),.1);border:1px solid rgba(var(--ion-color-primary-rgb),.2);padding:5px 1px 3px;margin-right:2px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected{color:var(--ion-color-primary);background:white;border:1px solid rgba(var(--ion-color-primary-rgb),.5);border-bottom:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-disabled,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content{padding:5px;background:white;border-color:rgba(var(--ion-color-primary-rgb),.5)}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-focused,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-state-focused{outline:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items{background:transparent;padding-left:10px;border-bottom:2px solid var(--ion-app-seperator-line-color)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item{font-weight:600;color:rgba(var(--ion-color-dark-rgb),.6);font-size:calc(var(--content-subtitle1-font-size) - 1px);padding-bottom:5px;box-shadow:none!important;background:transparent!important}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected{padding:0;color:var(--ion-color-dark);font-size:var(--content-subtitle1-font-size);border:none;border-radius:4px;border-bottom:5px solid var(--ion-color-primary);background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-disabled,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content{padding:0;border:none;background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-state-focused{outline:none}\n"], components: [{ type: i4.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i4.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon"], exportAs: ["kendoTabStripTab"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i6.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { type: i7.ZdivComponent, selector: "app-zdiv" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.TabTitleDirective, selector: "[kendoTabTitle]" }, { type: i4.TabContentDirective, selector: "[kendoTabContent]" }], pipes: { "tabfilter":
|
|
203
|
+
ZtabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZtabComponent, selector: "app-ztab", viewQueries: [{ propertyName: "tabstrip", first: true, predicate: ["kendoTabStripInstance"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" class=\"container e1tag-container-style\" [ngClass]=\"data.Class\"\r\n [style]=\"componentProperties.containerStyle.style\">\r\n <kendo-tabstrip class=\"ztab e1tag-container-style1\" #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\"\r\n [style]=\"componentProperties.containerStyle.style1\" [class]=\"data.ComponentStyleType\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\">\r\n <div class=\"tab-content e1tag-container-style3\" [style]=\"componentProperties.containerStyle.style3\">\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon, fontAweSomeService)\" [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter e1tag-container-style5\" color=\"danger\" *ngIf=\"!!tab.Counter\" [style]=\"componentProperties.containerStyle.style5\">{{tab.Counter}}</ion-badge>\r\n </div>\r\n </ng-template>\r\n <ng-template kendoTabContent>\r\n <app-zdiv [style]=\"componentProperties.containerStyle.style6\" class=\"e1tag-container-style6\" [data]=\"data | tabfilter: tab.Index + ''\" [form]=\"form\" [group]=\"group\" [containerField]=\"containerField\">\r\n </app-zdiv>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>\r\n", styles: [".container{margin:var(--container-margin-top) 0px 6px 0px}.tab-item-counter{margin-left:4px;position:relative;top:4px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper{border-color:rgba(var(--ion-color-primary-rgb),.5)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{box-shadow:none;font-weight:600;color:gray;font-size:calc(var(--content-subtitle1-font-size) - 1px);background:rgba(var(--ion-color-primary-rgb),.1);border:1px solid rgba(var(--ion-color-primary-rgb),.2);padding:5px 1px 3px;margin-right:2px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected{color:var(--ion-color-primary);background:white;border:1px solid rgba(var(--ion-color-primary-rgb),.5);border-bottom:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-disabled,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content{padding:5px;background:white;border-color:rgba(var(--ion-color-primary-rgb),.5)}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-focused,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-state-focused{outline:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items{background:transparent;padding-left:10px;border-bottom:2px solid var(--ion-app-seperator-line-color)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item{font-weight:600;color:rgba(var(--ion-color-dark-rgb),.6);font-size:calc(var(--content-subtitle1-font-size) - 1px);padding-bottom:5px;box-shadow:none!important;background:transparent!important}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected{padding:0;color:var(--ion-color-dark);font-size:var(--content-subtitle1-font-size);border:none;border-radius:4px;border-bottom:5px solid var(--ion-color-primary);background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-disabled,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content{padding:0;border:none;background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-state-focused{outline:none}\n"], components: [{ type: i4.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i4.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon"], exportAs: ["kendoTabStripTab"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i6.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { type: i7.ZdivComponent, selector: "app-zdiv" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.TabTitleDirective, selector: "[kendoTabTitle]" }, { type: i4.TabContentDirective, selector: "[kendoTabContent]" }], pipes: { "tabfilter": i10.TabFilter } });
|
|
203
204
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZtabComponent, decorators: [{
|
|
204
205
|
type: Component,
|
|
205
|
-
args: [{ selector: 'app-ztab', template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" class=\"container e1tag-container-style\"\r\n [style]=\"componentProperties.containerStyle.style\">\r\n <kendo-tabstrip class=\"ztab e1tag-container-style1\" #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\"\r\n [style]=\"componentProperties.containerStyle.style1\" [class]=\"data.ComponentStyleType\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\">\r\n <div class=\"tab-content e1tag-container-style3\" [style]=\"componentProperties.containerStyle.style3\">\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon, fontAweSomeService)\" [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter e1tag-container-style5\" color=\"danger\" *ngIf=\"!!tab.Counter\" [style]=\"componentProperties.containerStyle.style5\">{{tab.Counter}}</ion-badge>\r\n </div>\r\n </ng-template>\r\n <ng-template kendoTabContent>\r\n <app-zdiv [style]=\"componentProperties.containerStyle.style6\" class=\"e1tag-container-style6\" [data]=\"data | tabfilter: tab.Index + ''\" [form]=\"form\" [group]=\"group\" [containerField]=\"containerField\">\r\n </app-zdiv>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>\r\n", styles: [".container{margin:var(--container-margin-top) 0px 6px 0px}.tab-item-counter{margin-left:4px;position:relative;top:4px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper{border-color:rgba(var(--ion-color-primary-rgb),.5)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{box-shadow:none;font-weight:600;color:gray;font-size:calc(var(--content-subtitle1-font-size) - 1px);background:rgba(var(--ion-color-primary-rgb),.1);border:1px solid rgba(var(--ion-color-primary-rgb),.2);padding:5px 1px 3px;margin-right:2px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected{color:var(--ion-color-primary);background:white;border:1px solid rgba(var(--ion-color-primary-rgb),.5);border-bottom:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-disabled,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content{padding:5px;background:white;border-color:rgba(var(--ion-color-primary-rgb),.5)}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-focused,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-state-focused{outline:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items{background:transparent;padding-left:10px;border-bottom:2px solid var(--ion-app-seperator-line-color)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item{font-weight:600;color:rgba(var(--ion-color-dark-rgb),.6);font-size:calc(var(--content-subtitle1-font-size) - 1px);padding-bottom:5px;box-shadow:none!important;background:transparent!important}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected{padding:0;color:var(--ion-color-dark);font-size:var(--content-subtitle1-font-size);border:none;border-radius:4px;border-bottom:5px solid var(--ion-color-primary);background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-disabled,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content{padding:0;border:none;background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-state-focused{outline:none}\n"] }]
|
|
206
|
+
args: [{ selector: 'app-ztab', template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" class=\"container e1tag-container-style\" [ngClass]=\"data.Class\"\r\n [style]=\"componentProperties.containerStyle.style\">\r\n <kendo-tabstrip class=\"ztab e1tag-container-style1\" #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\"\r\n [style]=\"componentProperties.containerStyle.style1\" [class]=\"data.ComponentStyleType\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\">\r\n <div class=\"tab-content e1tag-container-style3\" [style]=\"componentProperties.containerStyle.style3\">\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon, fontAweSomeService)\" [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter e1tag-container-style5\" color=\"danger\" *ngIf=\"!!tab.Counter\" [style]=\"componentProperties.containerStyle.style5\">{{tab.Counter}}</ion-badge>\r\n </div>\r\n </ng-template>\r\n <ng-template kendoTabContent>\r\n <app-zdiv [style]=\"componentProperties.containerStyle.style6\" class=\"e1tag-container-style6\" [data]=\"data | tabfilter: tab.Index + ''\" [form]=\"form\" [group]=\"group\" [containerField]=\"containerField\">\r\n </app-zdiv>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>\r\n", styles: [".container{margin:var(--container-margin-top) 0px 6px 0px}.tab-item-counter{margin-left:4px;position:relative;top:4px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper{border-color:rgba(var(--ion-color-primary-rgb),.5)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{box-shadow:none;font-weight:600;color:gray;font-size:calc(var(--content-subtitle1-font-size) - 1px);background:rgba(var(--ion-color-primary-rgb),.1);border:1px solid rgba(var(--ion-color-primary-rgb),.2);padding:5px 1px 3px;margin-right:2px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected{color:var(--ion-color-primary);background:white;border:1px solid rgba(var(--ion-color-primary-rgb),.5);border-bottom:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-disabled,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content{padding:5px;background:white;border-color:rgba(var(--ion-color-primary-rgb),.5)}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-focused,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-state-focused{outline:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items{background:transparent;padding-left:10px;border-bottom:2px solid var(--ion-app-seperator-line-color)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item{font-weight:600;color:rgba(var(--ion-color-dark-rgb),.6);font-size:calc(var(--content-subtitle1-font-size) - 1px);padding-bottom:5px;box-shadow:none!important;background:transparent!important}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected{padding:0;color:var(--ion-color-dark);font-size:var(--content-subtitle1-font-size);border:none;border-radius:4px;border-bottom:5px solid var(--ion-color-primary);background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-disabled,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content{padding:0;border:none;background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-state-focused{outline:none}\n"] }]
|
|
206
207
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }, { type: i2.TranslationService }, { type: i2.StorageSessionService }, { type: i3.MainService }]; }, propDecorators: { tabstrip: [{
|
|
207
208
|
type: ViewChild,
|
|
208
209
|
args: ['kendoTabStripInstance']
|
|
209
210
|
}] } });
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dGFiL3p0YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRhYi96dGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFHaEYsT0FBTyxFQUVPLGdCQUFnQixFQUM3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQVN6QixNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUFrQjtJQVNuRCxZQUNTLGdCQUFtQyxFQUNuQyxrQkFBc0MsRUFDckMsa0JBQXNDLEVBQ3RDLGNBQXFDLEVBQ3JDLFdBQXdCO1FBRWhDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBTmpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVgzQixVQUFLLEdBQUc7WUFDYixvQkFBb0IsRUFBRSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLLEVBQVk7WUFD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RyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUU5RSxNQUFNLGVBQWUsR0FBRztnQkFDdEIsR0FBRyxFQUFFLE9BQU87Z0JBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUU7Z0JBQ3ZELFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUE7WUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1NBQ3RFO0lBRUgsQ0FBQzs7MEdBdk5VLGFBQWE7OEZBQWIsYUFBYSwwTEMxQjFCLGt1REFvQkE7MkZETWEsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxVQUFVO3dPQU11QixRQUFRO3NCQUFsRCxTQUFTO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFiU3RyaXBDb21wb25lbnQgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1sYXlvdXQnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb250YWluZXJGaWVsZEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbnRhaW5lcmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1haW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBGb250QXdlU29tZVNlcnZpY2UsIFN0b3JhZ2VTZXNzaW9uU2VydmljZSwgVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpUYWJJdGVtXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16dGFiJyxcclxuICB0ZW1wbGF0ZVVybDogJy4venRhYi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4venRhYi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFp0YWJDb21wb25lbnQgZXh0ZW5kcyBDb250YWluZXJGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2tlbmRvVGFiU3RyaXBJbnN0YW5jZScpIHB1YmxpYyB0YWJzdHJpcDogVGFiU3RyaXBDb21wb25lbnQ7XHJcblxyXG4gIHB1YmxpYyBzdGF0ZSA9IHtcclxuICAgIGxhc3RTZWxlY3RlZFRhYkluZGV4OiAwLFxyXG4gICAgY3VycmVudFRhYnM6IEFycmF5PFpUYWJJdGVtPigpLFxyXG4gICAgYWxsVGFiczogQXJyYXk8WlRhYkl0ZW0+KClcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBmb250QXdlU29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1haW5TZXJ2aWNlOiBNYWluU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGEuVGFiSXRlbXMgJiYgdGhpcy5kYXRhLlRhYkl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS4kdHJhbnNsYXRlSXRlbUxpc3QodGhpcy5kYXRhLlRhYkl0ZW1zLCBcIkxhYmVsXCIsIHsgZWxlbWVudE5hbWU6IHRoaXMuZ3JvdXAuZmllbGROYW1lLCBncm91cDogdGhpcy5ncm91cCB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgICAgfSksXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50VGFicygpO1xyXG4gICAgICAgIHRoaXMucmVzdG9yZVRhYlNlbGVjdGlvbigpO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q3VycmVudFRhYnMoKSB7XHJcbiAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzID0gbmV3IEFycmF5PFpUYWJJdGVtPigpO1xyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5MYWJlbCkpIHtcclxuICAgICAgbGV0IHZhbGlkSWNvbiA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5kYXRhLkljb24gJiYgQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuSWNvbikgJiYgdGhpcy5kYXRhLkljb24ubGVuZ3RoID09PSB0aGlzLmRhdGEuTGFiZWwubGVuZ3RoKSB7XHJcbiAgICAgICAgdmFsaWRJY29uID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGd1YXJkLWZvci1pblxyXG4gICAgICBmb3IgKGNvbnN0IGluZGV4IGluIHRoaXMuZGF0YS5MYWJlbCkge1xyXG4gICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMucHVzaChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgTGFiZWw6IHRoaXMuZGF0YS5MYWJlbFtpbmRleF0sXHJcbiAgICAgICAgICAgIEljb246IHZhbGlkSWNvbiA/IHRoaXMuZGF0YS5JY29uW2luZGV4XSA6IG51bGwsXHJcbiAgICAgICAgICAgIFZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgIEluZGV4OiBwYXJzZUludChpbmRleClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhdGUuYWxsVGFicyA9IHRoaXMuc3RhdGUuY3VycmVudFRhYnM7XHJcblxyXG4gICAgICBpZiAodGhpcy5kYXRhLlRhYlZpc2libGVGYWxzZUluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5zZXRUYWJzVmlzaWJsZSh0aGlzLmRhdGEuVGFiVmlzaWJsZUZhbHNlSW5kZXgsIGZhbHNlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLlRhYkl0ZW1zKSB7XHJcbiAgICAgIGxldCBpbmQgPSAwO1xyXG4gICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMuZGF0YS5UYWJJdGVtcykge1xyXG4gICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMucHVzaChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgTGFiZWw6IGZpZWxkLkxhYmVsIGFzIHN0cmluZyxcclxuICAgICAgICAgICAgSWNvbjogZmllbGQuSWNvbiA/IGZpZWxkLkljb24gYXMgc3RyaW5nIDogbnVsbCxcclxuICAgICAgICAgICAgVmlzaWJsZTogWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGZpZWxkLlZpc2libGUgYXMgc3RyaW5nLCB0aGlzLmdyb3VwKSxcclxuICAgICAgICAgICAgQ291bnRlcjogdHlwZW9mIChmaWVsZFtcIkNvdW50ZXJcIl0pID09PSBcInN0cmluZ1wiID8gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGZpZWxkW1wiQ291bnRlclwiXSBhcyBzdHJpbmcsIHRoaXMuZ3JvdXApIDogZmllbGRbXCJDb3VudGVyXCJdLFxyXG4gICAgICAgICAgICBJbmRleDogaW5kKytcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhdGUuYWxsVGFicyA9IHRoaXMuc3RhdGUuY3VycmVudFRhYnM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hDdXJyZW50VGFicygpIHtcclxuICAgIGNvbnN0IHByZXZpb3VzU3RhdGVUYWJzID0gdGhpcy5zdGF0ZS5hbGxUYWJzO1xyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5MYWJlbCkpIHtcclxuICAgICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFicyA9IG5ldyBBcnJheTxaVGFiSXRlbT4oKTtcclxuICAgICAgbGV0IHZhbGlkSWNvbiA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5kYXRhLkljb24gJiYgQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuSWNvbikgJiYgdGhpcy5kYXRhLkljb24ubGVuZ3RoID09PSB0aGlzLmRhdGEuTGFiZWwubGVuZ3RoKSB7XHJcbiAgICAgICAgdmFsaWRJY29uID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGd1YXJkLWZvci1pblxyXG4gICAgICBmb3IgKGNvbnN0IGluZGV4IGluIHRoaXMuZGF0YS5MYWJlbCkge1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzVGFiID0gcHJldmlvdXNTdGF0ZVRhYnMuZmlsdGVyKHggPT4geC5MYWJlbCA9PSB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdKTtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1RhYlZpc2libGUgPSBwcmV2aW91c1RhYi5sZW5ndGggPiAwID8gcHJldmlvdXNUYWJbMF0uVmlzaWJsZSA6IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBwcmV2aW91c1RhYlZpc2libGU7XHJcbiAgICAgICAgaWYgKGlzVmlzaWJsZSkge1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFicy5wdXNoKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgTGFiZWw6IHRoaXMuZGF0YS5MYWJlbFtpbmRleF0sXHJcbiAgICAgICAgICAgICAgSWNvbjogdmFsaWRJY29uID8gdGhpcy5kYXRhLkljb25baW5kZXhdIDogbnVsbCxcclxuICAgICAgICAgICAgICBWaXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgIEluZGV4OiBwYXJzZUludChpbmRleClcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuc3RhdGUuY3VycmVudFRhYnMsIHRoaXMuc3RhdGUuYWxsVGFicyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0VGFiID0gKGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgIHRoaXMuc3RhdGUubGFzdFNlbGVjdGVkVGFiSW5kZXggPSBpbmRleDtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkVGFiKHRhYkluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID09PSB0YWJJbmRleDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTZWxlY3RUYWIodGFiSW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5zdG9yZVRhYlNlbGVjdEluZGV4VG9TdG9yYWdlKHRhYkluZGV4KTtcclxuICAgIHRoaXMuc3RhdGUubGFzdFNlbGVjdGVkVGFiSW5kZXggPSB0YWJJbmRleDtcclxuICB9XHJcblxyXG4gIHJlc3RvcmVUYWJTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kYXRhLkFsbG93U2F2ZVN0YXRlID09PSBmYWxzZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdHJ5IHJldHJpZXZlIGZyb20gc2Vzc2lvbnN0b3JhZ2VcclxuICAgIGlmICh0aGlzLmdyb3VwLmN0cmxTY29wZSkge1xyXG4gICAgICBjb25zdCB1cmxQYXRoID0gdGhpcy5ncm91cC5jdHJsU2NvcGUuYWN0aXZhdGVkUm91dGUuX3JvdXRlclN0YXRlLnNuYXBzaG90LnVybDtcclxuICAgICAgY29uc3QgdXJsUGF0aFNlZ21lbnQgPSB1cmxQYXRoLnNwbGl0KCcvJyk7XHJcbiAgICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSB1cmxQYXRoU2VnbWVudFt1cmxQYXRoU2VnbWVudC5sZW5ndGggLSAxXSArIHRoaXMuZGF0YS5OYW1lO1xyXG4gICAgICBsZXQgc2F2ZWRUYWJTZWxlY3Rpb24gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHN0b3JhZ2VLZXkpO1xyXG4gICAgICBpZiAoc2F2ZWRUYWJTZWxlY3Rpb24pIHtcclxuICAgICAgICBzYXZlZFRhYlNlbGVjdGlvbiA9IEpTT04ucGFyc2Uoc2F2ZWRUYWJTZWxlY3Rpb24pO1xyXG4gICAgICAgIGNvbnN0IGFjdGl2YXRlZFJvdXRlVXJsID0gdGhpcy5ncm91cC5jdHJsU2NvcGUuYWN0aXZhdGVkUm91dGUuX3JvdXRlclN0YXRlLnNuYXBzaG90LnVybDtcclxuICAgICAgICBpZiAoc2F2ZWRUYWJTZWxlY3Rpb25bJ3VybCddID09IGFjdGl2YXRlZFJvdXRlVXJsICYmIHNhdmVkVGFiU2VsZWN0aW9uWydwYWdlUGFyYW0nXSA9PSB0aGlzLm1haW5TZXJ2aWNlLmdldE5hdmlnYXRpb25DdXJyZW50UGFyYW0oKSkge1xyXG4gICAgICAgICAgdGhpcy5ncm91cFsndGFiU2VsZWN0aW9ucyddID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcclxuICAgICAgICAgIHRoaXMuZ3JvdXBbJ3RhYlNlbGVjdGlvbnMnXS5zZXQodGhpcy5kYXRhLk5hbWUsIHNhdmVkVGFiU2VsZWN0aW9uWyd0YWJJbmRleCddKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgdGFiU2VsZWN0aW9uczogTWFwPHN0cmluZywgbnVtYmVyPiA9IFwidGFiU2VsZWN0aW9uc1wiIGluIHRoaXMuZ3JvdXAgPyB0aGlzLmdyb3VwWyd0YWJTZWxlY3Rpb25zJ10gOiBudWxsO1xyXG4gICAgaWYgKHRhYlNlbGVjdGlvbnMgIT09IG51bGwgJiYgdGFiU2VsZWN0aW9ucy5oYXModGhpcy5kYXRhLk5hbWUpKSB7IC8vIHN1YnNlcXVlbnQgbG9hZHNcclxuICAgICAgdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9IHRhYlNlbGVjdGlvbnMuZ2V0KHRoaXMuZGF0YS5OYW1lKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHRhYlNlbGVjdGlvbnMgPT09IG51bGwpIHsgLy8gZmlyc3QgbG9hZCBvZiBmaXJzdCB0YWJcclxuICAgICAgdGFiU2VsZWN0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XHJcbiAgICAgIHRoaXMuZ3JvdXBbJ3RhYlNlbGVjdGlvbnMnXSA9IHRhYlNlbGVjdGlvbnM7XHJcbiAgICAgIHRhYlNlbGVjdGlvbnMuc2V0KHRoaXMuZGF0YS5OYW1lLCAwKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKCF0YWJTZWxlY3Rpb25zLmhhcyh0aGlzLmRhdGEuTmFtZSkpIHsgLy8gZmlyc3QgbG9hZCBvZiByZXN0IHRhYnNcclxuICAgICAgdGFiU2VsZWN0aW9ucy5zZXQodGhpcy5kYXRhLk5hbWUsIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVGFiU2VsZWN0KGUpIHtcclxuICAgIHRoaXMuc3RhdGUubGFzdFNlbGVjdGVkVGFiSW5kZXggPSBlLmluZGV4O1xyXG4gICAgdGhpcy5zYXZlU3RhdGUoZSk7XHJcblxyXG4gICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuQ2xpY2tFdmVudCk7XHJcbiAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBmdW5jLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICBjYWxsRnVuYyhlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2F2ZVN0YXRlKGUpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuQWxsb3dTYXZlU3RhdGUgPT09IGZhbHNlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc3RvcmVUYWJTZWxlY3RJbmRleFRvU3RvcmFnZShlLmluZGV4KTtcclxuXHJcbiAgICBjb25zdCB0YWJTZWxlY3Rpb25zID0gdGhpcy5ncm91cFsndGFiU2VsZWN0aW9ucyddIGFzIE1hcDxzdHJpbmcsIG51bWJlcj47XHJcbiAgICB0YWJTZWxlY3Rpb25zLnNldCh0aGlzLmRhdGEuTmFtZSwgZS5pbmRleCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFic1Zpc2libGUgPSAodGFiSW5kZXhlczogbnVtYmVyW10sIHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgaWYgKHRoaXMuc3RhdGUuYWxsVGFicy5sZW5ndGggPD0gTWF0aC5tYXguYXBwbHkobnVsbCwgdGFiSW5kZXhlcykgfHwgTWF0aC5taW4uYXBwbHkobnVsbCwgdGFiSW5kZXhlcykgPCAwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBUYWIgaW5kZXggOiBcIiArIHRhYkluZGV4ZXMuam9pbihcIixcIikpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGFiSW5kZXhlcy5mb3JFYWNoKGluZGV4ID0+IHtcclxuICAgICAgdGhpcy5zdGF0ZS5hbGxUYWJzW2luZGV4XS5WaXNpYmxlID0gc3RhdHVzO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlZnJlc2hDdXJyZW50VGFicygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRhYkNvdW50ZXIgPSAodGFiSW5kZXg6IG51bWJlciwgY291bnRlcjogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmRhdGEuTGFiZWwgPyB0aGlzLmRhdGEuTGFiZWwgOiB0aGlzLmRhdGEuVGFiSXRlbXM7XHJcbiAgICBpZiAobGFiZWxzLmxlbmd0aCA8PSB0YWJJbmRleCB8fCB0YWJJbmRleCA8IDApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJJbnZhbGlkIFRhYiBpbmRleCA6IFwiICsgdGFiSW5kZXgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFic1t0YWJJbmRleF0uQ291bnRlciA9IGNvdW50ZXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0b3JlVGFiU2VsZWN0SW5kZXhUb1N0b3JhZ2UodGFiSW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5BbGxvd1NhdmVTdGF0ZSkge1xyXG4gICAgICBjb25zdCB1cmxQYXRoID0gdGhpcy5ncm91cC5jdHJsU2NvcGUuYWN0aXZhdGVkUm91dGUuX3JvdXRlclN0YXRlLnNuYXBzaG90LnVybDtcclxuICAgICAgY29uc3QgdXJsUGF0aFNlZ21lbnQgPSB1cmxQYXRoLnNwbGl0KCcvJyk7XHJcbiAgICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSB1cmxQYXRoU2VnbWVudFt1cmxQYXRoU2VnbWVudC5sZW5ndGggLSAxXSArIHRoaXMuZGF0YS5OYW1lO1xyXG5cclxuICAgICAgY29uc3Qgc2VsZWN0ZWRUYWJKc29uID0ge1xyXG4gICAgICAgIHVybDogdXJsUGF0aCxcclxuICAgICAgICBwYWdlUGFyYW06IHRoaXMubWFpblNlcnZpY2UuZ2V0TmF2aWdhdGlvbkN1cnJlbnRQYXJhbSgpLFxyXG4gICAgICAgIHRhYkluZGV4OiB0YWJJbmRleFxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KHN0b3JhZ2VLZXksIEpTT04uc3RyaW5naWZ5KHNlbGVjdGVkVGFiSnNvbikpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiIGNsYXNzPVwiY29udGFpbmVyIGUxdGFnLWNvbnRhaW5lci1zdHlsZVwiXHJcbiAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGVcIj5cclxuICA8a2VuZG8tdGFic3RyaXAgY2xhc3M9XCJ6dGFiIGUxdGFnLWNvbnRhaW5lci1zdHlsZTFcIiAja2VuZG9UYWJTdHJpcEluc3RhbmNlIFtrZWVwVGFiQ29udGVudF09XCJ0cnVlXCIgKHRhYlNlbGVjdCk9XCJvblRhYlNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUxXCIgW2NsYXNzXT1cImRhdGEuQ29tcG9uZW50U3R5bGVUeXBlXCI+XHJcbiAgICA8a2VuZG8tdGFic3RyaXAtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2Ygc3RhdGUuY3VycmVudFRhYnM7IGxldCBpID0gaW5kZXhcIiBbc2VsZWN0ZWRdPVwiZ2V0U2VsZWN0ZWRUYWIoaSlcIiBbZGlzYWJsZWRdPVwiIXRhYi5WaXNpYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUyXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGUyXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1RhYlRpdGxlICpuZ0lmPVwidGFiLlZpc2libGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgZTF0YWctY29udGFpbmVyLXN0eWxlM1wiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlM1wiPlxyXG4gICAgICAgICAgPGZhLWljb24gKm5nSWY9XCIhIXRhYi5JY29uXCIgW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUodGFiLkljb24sIGZvbnRBd2VTb21lU2VydmljZSlcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTRcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTRcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICB7e3RhYi5MYWJlbH19XHJcbiAgICAgICAgICA8aW9uLWJhZGdlIGNsYXNzPVwidGFiLWl0ZW0tY291bnRlciBlMXRhZy1jb250YWluZXItc3R5bGU1XCIgY29sb3I9XCJkYW5nZXJcIiAqbmdJZj1cIiEhdGFiLkNvdW50ZXJcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIj57e3RhYi5Db3VudGVyfX08L2lvbi1iYWRnZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvVGFiQ29udGVudD5cclxuICAgICAgICA8YXBwLXpkaXYgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU2XCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU2XCIgW2RhdGFdPVwiZGF0YSB8IHRhYmZpbHRlcjogdGFiLkluZGV4ICsgJydcIiBbZm9ybV09XCJmb3JtXCIgW2dyb3VwXT1cImdyb3VwXCIgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCI+XHJcbiAgICAgICAgPC9hcHAtemRpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwva2VuZG8tdGFic3RyaXAtdGFiPlxyXG4gIDwva2VuZG8tdGFic3RyaXA+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dGFiL3p0YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRhYi96dGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFHaEYsT0FBTyxFQUVPLGdCQUFnQixFQUM3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7QUFTekIsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBa0I7SUFTbkQsWUFDUyxnQkFBbUMsRUFDbkMsa0JBQXNDLEVBQ3JDLGtCQUFzQyxFQUN0QyxjQUFxQyxFQUNyQyxXQUF3QjtRQUVoQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQU5qQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFYM0IsVUFBSyxHQUFHO1lBQ2Isb0JBQW9CLEVBQUUsQ0FBQztZQUN2QixXQUFXLEVBQUUsS0FBSyxFQUFZO1lB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QUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFFOUUsTUFBTSxlQUFlLEdBQUc7Z0JBQ3RCLEdBQUcsRUFBRSxPQUFPO2dCQUNaLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QixFQUFFO2dCQUN2RCxRQUFRLEVBQUUsUUFBUTthQUNuQixDQUFBO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztTQUN0RTtJQUVILENBQUM7OzBHQXZOVSxhQUFhOzhGQUFiLGFBQWEsMExDMUIxQiwydkRBb0JBOzJGRE1hLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UsVUFBVTt3T0FNdUIsUUFBUTtzQkFBbEQsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhYlN0cmlwQ29tcG9uZW50IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbGF5b3V0JztcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29udGFpbmVyRmllbGRCYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb250YWluZXJmaWVsZGJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYWluU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21haW4uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRm9udEF3ZVNvbWVTZXJ2aWNlLCBTdG9yYWdlU2Vzc2lvblNlcnZpY2UsIFRyYW5zbGF0aW9uU2VydmljZSxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaVGFiSXRlbVxyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtenRhYicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3p0YWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3p0YWIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBadGFiQ29tcG9uZW50IGV4dGVuZHMgQ29udGFpbmVyRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdrZW5kb1RhYlN0cmlwSW5zdGFuY2UnKSBwdWJsaWMgdGFic3RyaXA6IFRhYlN0cmlwQ29tcG9uZW50O1xyXG5cclxuICBwdWJsaWMgc3RhdGUgPSB7XHJcbiAgICBsYXN0U2VsZWN0ZWRUYWJJbmRleDogMCxcclxuICAgIGN1cnJlbnRUYWJzOiBBcnJheTxaVGFiSXRlbT4oKSxcclxuICAgIGFsbFRhYnM6IEFycmF5PFpUYWJJdGVtPigpXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZm9udEF3ZVNvbWVTZXJ2aWNlOiBGb250QXdlU29tZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtYWluU2VydmljZTogTWFpblNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhLlRhYkl0ZW1zICYmIHRoaXMuZGF0YS5UYWJJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuJHRyYW5zbGF0ZUl0ZW1MaXN0KHRoaXMuZGF0YS5UYWJJdGVtcywgXCJMYWJlbFwiLCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFRhYnMoKTtcclxuICAgICAgICB0aGlzLnJlc3RvcmVUYWJTZWxlY3Rpb24oKTtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZGVjcmVtZW50Q29tcG9uZW50Q291bnRlckZvckZpZWxkKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnRUYWJzKCkge1xyXG4gICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFicyA9IG5ldyBBcnJheTxaVGFiSXRlbT4oKTtcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuTGFiZWwpKSB7XHJcbiAgICAgIGxldCB2YWxpZEljb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5JY29uICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLkljb24pICYmIHRoaXMuZGF0YS5JY29uLmxlbmd0aCA9PT0gdGhpcy5kYXRhLkxhYmVsLmxlbmd0aCkge1xyXG4gICAgICAgIHZhbGlkSWNvbiA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cclxuICAgICAgZm9yIChjb25zdCBpbmRleCBpbiB0aGlzLmRhdGEuTGFiZWwpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIExhYmVsOiB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdLFxyXG4gICAgICAgICAgICBJY29uOiB2YWxpZEljb24gPyB0aGlzLmRhdGEuSWNvbltpbmRleF0gOiBudWxsLFxyXG4gICAgICAgICAgICBWaXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBJbmRleDogcGFyc2VJbnQoaW5kZXgpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnMgPSB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YS5UYWJWaXNpYmxlRmFsc2VJbmRleCkge1xyXG4gICAgICAgIHRoaXMuc2V0VGFic1Zpc2libGUodGhpcy5kYXRhLlRhYlZpc2libGVGYWxzZUluZGV4LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS5UYWJJdGVtcykge1xyXG4gICAgICBsZXQgaW5kID0gMDtcclxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmRhdGEuVGFiSXRlbXMpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIExhYmVsOiBmaWVsZC5MYWJlbCBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgIEljb246IGZpZWxkLkljb24gPyBmaWVsZC5JY29uIGFzIHN0cmluZyA6IG51bGwsXHJcbiAgICAgICAgICAgIFZpc2libGU6IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZC5WaXNpYmxlIGFzIHN0cmluZywgdGhpcy5ncm91cCksXHJcbiAgICAgICAgICAgIENvdW50ZXI6IHR5cGVvZiAoZmllbGRbXCJDb3VudGVyXCJdKSA9PT0gXCJzdHJpbmdcIiA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZFtcIkNvdW50ZXJcIl0gYXMgc3RyaW5nLCB0aGlzLmdyb3VwKSA6IGZpZWxkW1wiQ291bnRlclwiXSxcclxuICAgICAgICAgICAgSW5kZXg6IGluZCsrXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnMgPSB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoQ3VycmVudFRhYnMoKSB7XHJcbiAgICBjb25zdCBwcmV2aW91c1N0YXRlVGFicyA9IHRoaXMuc3RhdGUuYWxsVGFicztcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuTGFiZWwpKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMgPSBuZXcgQXJyYXk8WlRhYkl0ZW0+KCk7XHJcbiAgICAgIGxldCB2YWxpZEljb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5JY29uICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLkljb24pICYmIHRoaXMuZGF0YS5JY29uLmxlbmd0aCA9PT0gdGhpcy5kYXRhLkxhYmVsLmxlbmd0aCkge1xyXG4gICAgICAgIHZhbGlkSWNvbiA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cclxuICAgICAgZm9yIChjb25zdCBpbmRleCBpbiB0aGlzLmRhdGEuTGFiZWwpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1RhYiA9IHByZXZpb3VzU3RhdGVUYWJzLmZpbHRlcih4ID0+IHguTGFiZWwgPT0gdGhpcy5kYXRhLkxhYmVsW2luZGV4XSk7XHJcbiAgICAgICAgY29uc3QgcHJldmlvdXNUYWJWaXNpYmxlID0gcHJldmlvdXNUYWIubGVuZ3RoID4gMCA/IHByZXZpb3VzVGFiWzBdLlZpc2libGUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gcHJldmlvdXNUYWJWaXNpYmxlO1xyXG4gICAgICAgIGlmIChpc1Zpc2libGUpIHtcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMucHVzaChcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIExhYmVsOiB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdLFxyXG4gICAgICAgICAgICAgIEljb246IHZhbGlkSWNvbiA/IHRoaXMuZGF0YS5JY29uW2luZGV4XSA6IG51bGwsXHJcbiAgICAgICAgICAgICAgVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBJbmRleDogcGFyc2VJbnQoaW5kZXgpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLCB0aGlzLnN0YXRlLmFsbFRhYnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdFRhYiA9IChpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZFRhYih0YWJJbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9PT0gdGFiSW5kZXg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0U2VsZWN0VGFiKHRhYkluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3RvcmVUYWJTZWxlY3RJbmRleFRvU3RvcmFnZSh0YWJJbmRleCk7XHJcbiAgICB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gdGFiSW5kZXg7XHJcbiAgfVxyXG5cclxuICByZXN0b3JlVGFiU2VsZWN0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5BbGxvd1NhdmVTdGF0ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRyeSByZXRyaWV2ZSBmcm9tIHNlc3Npb25zdG9yYWdlXHJcbiAgICBpZiAodGhpcy5ncm91cC5jdHJsU2NvcGUpIHtcclxuICAgICAgY29uc3QgdXJsUGF0aCA9IHRoaXMuZ3JvdXAuY3RybFNjb3BlLmFjdGl2YXRlZFJvdXRlLl9yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmw7XHJcbiAgICAgIGNvbnN0IHVybFBhdGhTZWdtZW50ID0gdXJsUGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICBjb25zdCBzdG9yYWdlS2V5ID0gdXJsUGF0aFNlZ21lbnRbdXJsUGF0aFNlZ21lbnQubGVuZ3RoIC0gMV0gKyB0aGlzLmRhdGEuTmFtZTtcclxuICAgICAgbGV0IHNhdmVkVGFiU2VsZWN0aW9uID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShzdG9yYWdlS2V5KTtcclxuICAgICAgaWYgKHNhdmVkVGFiU2VsZWN0aW9uKSB7XHJcbiAgICAgICAgc2F2ZWRUYWJTZWxlY3Rpb24gPSBKU09OLnBhcnNlKHNhdmVkVGFiU2VsZWN0aW9uKTtcclxuICAgICAgICBjb25zdCBhY3RpdmF0ZWRSb3V0ZVVybCA9IHRoaXMuZ3JvdXAuY3RybFNjb3BlLmFjdGl2YXRlZFJvdXRlLl9yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmw7XHJcbiAgICAgICAgaWYgKHNhdmVkVGFiU2VsZWN0aW9uWyd1cmwnXSA9PSBhY3RpdmF0ZWRSb3V0ZVVybCAmJiBzYXZlZFRhYlNlbGVjdGlvblsncGFnZVBhcmFtJ10gPT0gdGhpcy5tYWluU2VydmljZS5nZXROYXZpZ2F0aW9uQ3VycmVudFBhcmFtKCkpIHtcclxuICAgICAgICAgIHRoaXMuZ3JvdXBbJ3RhYlNlbGVjdGlvbnMnXSA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwWyd0YWJTZWxlY3Rpb25zJ10uc2V0KHRoaXMuZGF0YS5OYW1lLCBzYXZlZFRhYlNlbGVjdGlvblsndGFiSW5kZXgnXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHRhYlNlbGVjdGlvbnM6IE1hcDxzdHJpbmcsIG51bWJlcj4gPSBcInRhYlNlbGVjdGlvbnNcIiBpbiB0aGlzLmdyb3VwID8gdGhpcy5ncm91cFsndGFiU2VsZWN0aW9ucyddIDogbnVsbDtcclxuICAgIGlmICh0YWJTZWxlY3Rpb25zICE9PSBudWxsICYmIHRhYlNlbGVjdGlvbnMuaGFzKHRoaXMuZGF0YS5OYW1lKSkgeyAvLyBzdWJzZXF1ZW50IGxvYWRzXHJcbiAgICAgIHRoaXMuc3RhdGUubGFzdFNlbGVjdGVkVGFiSW5kZXggPSB0YWJTZWxlY3Rpb25zLmdldCh0aGlzLmRhdGEuTmFtZSk7XHJcblxyXG4gICAgfSBlbHNlIGlmICh0YWJTZWxlY3Rpb25zID09PSBudWxsKSB7IC8vIGZpcnN0IGxvYWQgb2YgZmlyc3QgdGFiXHJcbiAgICAgIHRhYlNlbGVjdGlvbnMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xyXG4gICAgICB0aGlzLmdyb3VwWyd0YWJTZWxlY3Rpb25zJ10gPSB0YWJTZWxlY3Rpb25zO1xyXG4gICAgICB0YWJTZWxlY3Rpb25zLnNldCh0aGlzLmRhdGEuTmFtZSwgMCk7XHJcblxyXG4gICAgfSBlbHNlIGlmICghdGFiU2VsZWN0aW9ucy5oYXModGhpcy5kYXRhLk5hbWUpKSB7IC8vIGZpcnN0IGxvYWQgb2YgcmVzdCB0YWJzXHJcbiAgICAgIHRhYlNlbGVjdGlvbnMuc2V0KHRoaXMuZGF0YS5OYW1lLCAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblRhYlNlbGVjdChlKSB7XHJcbiAgICB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gZS5pbmRleDtcclxuICAgIHRoaXMuc2F2ZVN0YXRlKGUpO1xyXG5cclxuICAgIGNvbnN0IGZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLkNsaWNrRXZlbnQpO1xyXG4gICAgaWYgKHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gZnVuYy5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgY2FsbEZ1bmMoZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNhdmVTdGF0ZShlKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLkFsbG93U2F2ZVN0YXRlID09PSBmYWxzZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3JlVGFiU2VsZWN0SW5kZXhUb1N0b3JhZ2UoZS5pbmRleCk7XHJcblxyXG4gICAgY29uc3QgdGFiU2VsZWN0aW9ucyA9IHRoaXMuZ3JvdXBbJ3RhYlNlbGVjdGlvbnMnXSBhcyBNYXA8c3RyaW5nLCBudW1iZXI+O1xyXG4gICAgdGFiU2VsZWN0aW9ucy5zZXQodGhpcy5kYXRhLk5hbWUsIGUuaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRhYnNWaXNpYmxlID0gKHRhYkluZGV4ZXM6IG51bWJlcltdLCBzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIGlmICh0aGlzLnN0YXRlLmFsbFRhYnMubGVuZ3RoIDw9IE1hdGgubWF4LmFwcGx5KG51bGwsIHRhYkluZGV4ZXMpIHx8IE1hdGgubWluLmFwcGx5KG51bGwsIHRhYkluZGV4ZXMpIDwgMCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkludmFsaWQgVGFiIGluZGV4IDogXCIgKyB0YWJJbmRleGVzLmpvaW4oXCIsXCIpKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRhYkluZGV4ZXMuZm9yRWFjaChpbmRleCA9PiB7XHJcbiAgICAgIHRoaXMuc3RhdGUuYWxsVGFic1tpbmRleF0uVmlzaWJsZSA9IHN0YXR1cztcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWZyZXNoQ3VycmVudFRhYnMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUYWJDb3VudGVyID0gKHRhYkluZGV4OiBudW1iZXIsIGNvdW50ZXI6IG51bWJlciB8IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgbGFiZWxzID0gdGhpcy5kYXRhLkxhYmVsID8gdGhpcy5kYXRhLkxhYmVsIDogdGhpcy5kYXRhLlRhYkl0ZW1zO1xyXG4gICAgaWYgKGxhYmVscy5sZW5ndGggPD0gdGFiSW5kZXggfHwgdGFiSW5kZXggPCAwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBUYWIgaW5kZXggOiBcIiArIHRhYkluZGV4KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnNbdGFiSW5kZXhdLkNvdW50ZXIgPSBjb3VudGVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdG9yZVRhYlNlbGVjdEluZGV4VG9TdG9yYWdlKHRhYkluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuQWxsb3dTYXZlU3RhdGUpIHtcclxuICAgICAgY29uc3QgdXJsUGF0aCA9IHRoaXMuZ3JvdXAuY3RybFNjb3BlLmFjdGl2YXRlZFJvdXRlLl9yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmw7XHJcbiAgICAgIGNvbnN0IHVybFBhdGhTZWdtZW50ID0gdXJsUGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICBjb25zdCBzdG9yYWdlS2V5ID0gdXJsUGF0aFNlZ21lbnRbdXJsUGF0aFNlZ21lbnQubGVuZ3RoIC0gMV0gKyB0aGlzLmRhdGEuTmFtZTtcclxuXHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkVGFiSnNvbiA9IHtcclxuICAgICAgICB1cmw6IHVybFBhdGgsXHJcbiAgICAgICAgcGFnZVBhcmFtOiB0aGlzLm1haW5TZXJ2aWNlLmdldE5hdmlnYXRpb25DdXJyZW50UGFyYW0oKSxcclxuICAgICAgICB0YWJJbmRleDogdGFiSW5kZXhcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldChzdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShzZWxlY3RlZFRhYkpzb24pKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIiBjbGFzcz1cImNvbnRhaW5lciBlMXRhZy1jb250YWluZXItc3R5bGVcIiBbbmdDbGFzc109XCJkYXRhLkNsYXNzXCJcclxuICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZVwiPlxyXG4gIDxrZW5kby10YWJzdHJpcCBjbGFzcz1cInp0YWIgZTF0YWctY29udGFpbmVyLXN0eWxlMVwiICNrZW5kb1RhYlN0cmlwSW5zdGFuY2UgW2tlZXBUYWJDb250ZW50XT1cInRydWVcIiAodGFiU2VsZWN0KT1cIm9uVGFiU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTFcIiBbY2xhc3NdPVwiZGF0YS5Db21wb25lbnRTdHlsZVR5cGVcIj5cclxuICAgIDxrZW5kby10YWJzdHJpcC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiBzdGF0ZS5jdXJyZW50VGFiczsgbGV0IGkgPSBpbmRleFwiIFtzZWxlY3RlZF09XCJnZXRTZWxlY3RlZFRhYihpKVwiIFtkaXNhYmxlZF09XCIhdGFiLlZpc2libGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTJcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTJcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvVGFiVGl0bGUgKm5nSWY9XCJ0YWIuVmlzaWJsZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudCBlMXRhZy1jb250YWluZXItc3R5bGUzXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUzXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiAqbmdJZj1cIiEhdGFiLkljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZSh0YWIuSWNvbiwgZm9udEF3ZVNvbWVTZXJ2aWNlKVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNFwiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNFwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgIHt7dGFiLkxhYmVsfX1cclxuICAgICAgICAgIDxpb24tYmFkZ2UgY2xhc3M9XCJ0YWItaXRlbS1jb3VudGVyIGUxdGFnLWNvbnRhaW5lci1zdHlsZTVcIiBjb2xvcj1cImRhbmdlclwiICpuZ0lmPVwiISF0YWIuQ291bnRlclwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNVwiPnt7dGFiLkNvdW50ZXJ9fTwvaW9uLWJhZGdlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9UYWJDb250ZW50PlxyXG4gICAgICAgIDxhcHAtemRpdiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTZcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTZcIiBbZGF0YV09XCJkYXRhIHwgdGFiZmlsdGVyOiB0YWIuSW5kZXggKyAnJ1wiIFtmb3JtXT1cImZvcm1cIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIj5cclxuICAgICAgICA8L2FwcC16ZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9rZW5kby10YWJzdHJpcC10YWI+XHJcbiAgPC9rZW5kby10YWJzdHJpcD5cclxuPC9kaXY+XHJcbiJdfQ==
|