@cqa-lib/cqa-ui 1.1.385 → 1.1.387
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/esm2020/lib/table-action-toolbar/table-action-toolbar.component.mjs +3 -3
- package/esm2020/lib/test-case-details/element-popup/element-form/element-form.component.mjs +4 -3
- package/esm2020/lib/test-case-details/test-data-modal/test-data-modal.component.mjs +4 -3
- package/fesm2015/cqa-lib-cqa-ui.mjs +8 -6
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +8 -6
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -65,10 +65,10 @@ export class TableActionToolbarComponent {
|
|
|
65
65
|
}
|
|
66
66
|
TableActionToolbarComponent.ACTION_COOLDOWN_MS = 500;
|
|
67
67
|
TableActionToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableActionToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
-
TableActionToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TableActionToolbarComponent, selector: "cqa-table-action-toolbar", inputs: { selectedItems: "selectedItems", actions: "actions", showSelectAll: "showSelectAll", allSelected: "allSelected", showDismiss: "showDismiss" }, outputs: { actionClick: "actionClick", selectAllChange: "selectAllChange", dismiss: "dismiss" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div\n class=\"action-toolbar cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-py-[15.5px] sm:cqa-px-[34px] cqa-px-[20px] cqa-bg-primary cqa-text-white cqa-rounded-[7px] cqa-shadow-md\"\n *ngIf=\"hasSelection\">\n <div class=\"action-toolbar-left cqa-flex cqa-items-center cqa-gap-2 cqa-text-[14px] cqa-leading-[21px] cqa-font-medium\">\n <ng-container *ngIf=\"showSelectAll\">\n <label class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-cursor-pointer cqa-select-none\">\n <input type=\"checkbox\" [checked]=\"allSelected\" (change)=\"onSelectAllChange($any($event.target).checked)\"\n class=\"cqa-w-4 cqa-h-4 cqa-rounded cqa-border cqa-border-white cqa-bg-transparent cqa-accent-primary\" />\n <span>Select all</span>\n </label>\n <span class=\"cqa-border-l cqa-border-white/50 cqa-pl-2 cqa-border-solid cqa-self-stretch cqa-flex cqa-items-center\">{{ selectionLabel }}</span>\n </ng-container>\n <span *ngIf=\"!showSelectAll\">{{ selectionLabel }}</span>\n </div>\n <div class=\"action-toolbar-right cqa-flex cqa-items-center cqa-gap-[7px]\">\n <ng-container *ngFor=\"let action of visibleActions()\">\n <div [attr.aria-disabled]=\"isDisabled(action)\" [class.cqa-opacity-50]=\"isDisabled(action)\" [class.cqa-cursor-not-allowed]=\"isDisabled(action)\" (click)=\"!isDisabled(action) && onAction(action)\"\n class=\"cqa-flex cqa-items-center cqa-gap-[8.75px] cqa-py-[5px] cqa-px-[8.75px] cqa-cursor-pointer cqa-text-[12.3px] cqa-leading-[17.5px] cqa-font-medium hover:cqa-bg-white/10 cqa-rounded\">\n <mat-icon class=\"!cqa-w-[16px] !cqa-h-[16px] !cqa-text-[16px]\">{{ action.icon }}</mat-icon>\n <span class=\"md:cqa-flex cqa-hidden\">{{ action.label }}</span>\n </div>\n </ng-container>\n <button *ngIf=\"showDismiss\" type=\"button\" (click)=\"onDismiss()\" class=\"cqa-p-1 cqa-rounded hover:cqa-bg-white/10 cqa-flex cqa-items-center cqa-justify-center\"\n title=\"Dismiss\" aria-label=\"Dismiss\">\n <mat-icon class=\"!cqa-w-[20px] !cqa-h-[20px] !cqa-text-[20px]\">close</mat-icon>\n </button>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
68
|
+
TableActionToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TableActionToolbarComponent, selector: "cqa-table-action-toolbar", inputs: { selectedItems: "selectedItems", actions: "actions", showSelectAll: "showSelectAll", allSelected: "allSelected", showDismiss: "showDismiss" }, outputs: { actionClick: "actionClick", selectAllChange: "selectAllChange", dismiss: "dismiss" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div\n class=\"action-toolbar cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-py-[15.5px] sm:cqa-px-[34px] cqa-px-[20px] cqa-bg-primary cqa-text-white cqa-rounded-[7px] cqa-shadow-md\"\n *ngIf=\"hasSelection\">\n <div class=\"action-toolbar-left cqa-flex cqa-items-center cqa-gap-2 cqa-text-[14px] cqa-leading-[21px] cqa-font-medium\">\n <ng-container *ngIf=\"showSelectAll\">\n <label class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-cursor-pointer cqa-select-none\">\n <input type=\"checkbox\" [checked]=\"allSelected\" (change)=\"onSelectAllChange($any($event.target).checked)\"\n class=\"select-all cqa-w-4 cqa-h-4 cqa-rounded cqa-border cqa-border-white cqa-bg-transparent hover:cqa-bg-transparent cqa-accent-primary\" />\n <span>Select all</span>\n </label>\n <span class=\"cqa-border-l cqa-border-white/50 cqa-pl-2 cqa-border-solid cqa-self-stretch cqa-flex cqa-items-center\">{{ selectionLabel }}</span>\n </ng-container>\n <span *ngIf=\"!showSelectAll\">{{ selectionLabel }}</span>\n </div>\n <div class=\"action-toolbar-right cqa-flex cqa-items-center cqa-gap-[7px]\">\n <ng-container *ngFor=\"let action of visibleActions()\">\n <div [attr.aria-disabled]=\"isDisabled(action)\" [class.cqa-opacity-50]=\"isDisabled(action)\" [class.cqa-cursor-not-allowed]=\"isDisabled(action)\" (click)=\"!isDisabled(action) && onAction(action)\"\n class=\"cqa-flex cqa-items-center cqa-gap-[8.75px] cqa-py-[5px] cqa-px-[8.75px] cqa-cursor-pointer cqa-text-[12.3px] cqa-leading-[17.5px] cqa-font-medium hover:cqa-bg-white/10 cqa-rounded\">\n <mat-icon class=\"!cqa-w-[16px] !cqa-h-[16px] !cqa-text-[16px]\">{{ action.icon }}</mat-icon>\n <span class=\"md:cqa-flex cqa-hidden\">{{ action.label }}</span>\n </div>\n </ng-container>\n <button *ngIf=\"showDismiss\" type=\"button\" (click)=\"onDismiss()\" class=\"cqa-p-1 cqa-rounded hover:cqa-bg-white/10 cqa-flex cqa-items-center cqa-justify-center\"\n title=\"Dismiss\" aria-label=\"Dismiss\">\n <mat-icon class=\"!cqa-w-[20px] !cqa-h-[20px] !cqa-text-[20px]\">close</mat-icon>\n </button>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TableActionToolbarComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
|
-
args: [{ selector: 'cqa-table-action-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div\n class=\"action-toolbar cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-py-[15.5px] sm:cqa-px-[34px] cqa-px-[20px] cqa-bg-primary cqa-text-white cqa-rounded-[7px] cqa-shadow-md\"\n *ngIf=\"hasSelection\">\n <div class=\"action-toolbar-left cqa-flex cqa-items-center cqa-gap-2 cqa-text-[14px] cqa-leading-[21px] cqa-font-medium\">\n <ng-container *ngIf=\"showSelectAll\">\n <label class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-cursor-pointer cqa-select-none\">\n <input type=\"checkbox\" [checked]=\"allSelected\" (change)=\"onSelectAllChange($any($event.target).checked)\"\n class=\"cqa-w-4 cqa-h-4 cqa-rounded cqa-border cqa-border-white cqa-bg-transparent cqa-accent-primary\" />\n <span>Select all</span>\n </label>\n <span class=\"cqa-border-l cqa-border-white/50 cqa-pl-2 cqa-border-solid cqa-self-stretch cqa-flex cqa-items-center\">{{ selectionLabel }}</span>\n </ng-container>\n <span *ngIf=\"!showSelectAll\">{{ selectionLabel }}</span>\n </div>\n <div class=\"action-toolbar-right cqa-flex cqa-items-center cqa-gap-[7px]\">\n <ng-container *ngFor=\"let action of visibleActions()\">\n <div [attr.aria-disabled]=\"isDisabled(action)\" [class.cqa-opacity-50]=\"isDisabled(action)\" [class.cqa-cursor-not-allowed]=\"isDisabled(action)\" (click)=\"!isDisabled(action) && onAction(action)\"\n class=\"cqa-flex cqa-items-center cqa-gap-[8.75px] cqa-py-[5px] cqa-px-[8.75px] cqa-cursor-pointer cqa-text-[12.3px] cqa-leading-[17.5px] cqa-font-medium hover:cqa-bg-white/10 cqa-rounded\">\n <mat-icon class=\"!cqa-w-[16px] !cqa-h-[16px] !cqa-text-[16px]\">{{ action.icon }}</mat-icon>\n <span class=\"md:cqa-flex cqa-hidden\">{{ action.label }}</span>\n </div>\n </ng-container>\n <button *ngIf=\"showDismiss\" type=\"button\" (click)=\"onDismiss()\" class=\"cqa-p-1 cqa-rounded hover:cqa-bg-white/10 cqa-flex cqa-items-center cqa-justify-center\"\n title=\"Dismiss\" aria-label=\"Dismiss\">\n <mat-icon class=\"!cqa-w-[20px] !cqa-h-[20px] !cqa-text-[20px]\">close</mat-icon>\n </button>\n </div>\n </div>\n</div>", styles: [] }]
|
|
71
|
+
args: [{ selector: 'cqa-table-action-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div\n class=\"action-toolbar cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-flex-wrap cqa-py-[15.5px] sm:cqa-px-[34px] cqa-px-[20px] cqa-bg-primary cqa-text-white cqa-rounded-[7px] cqa-shadow-md\"\n *ngIf=\"hasSelection\">\n <div class=\"action-toolbar-left cqa-flex cqa-items-center cqa-gap-2 cqa-text-[14px] cqa-leading-[21px] cqa-font-medium\">\n <ng-container *ngIf=\"showSelectAll\">\n <label class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-cursor-pointer cqa-select-none\">\n <input type=\"checkbox\" [checked]=\"allSelected\" (change)=\"onSelectAllChange($any($event.target).checked)\"\n class=\"select-all cqa-w-4 cqa-h-4 cqa-rounded cqa-border cqa-border-white cqa-bg-transparent hover:cqa-bg-transparent cqa-accent-primary\" />\n <span>Select all</span>\n </label>\n <span class=\"cqa-border-l cqa-border-white/50 cqa-pl-2 cqa-border-solid cqa-self-stretch cqa-flex cqa-items-center\">{{ selectionLabel }}</span>\n </ng-container>\n <span *ngIf=\"!showSelectAll\">{{ selectionLabel }}</span>\n </div>\n <div class=\"action-toolbar-right cqa-flex cqa-items-center cqa-gap-[7px]\">\n <ng-container *ngFor=\"let action of visibleActions()\">\n <div [attr.aria-disabled]=\"isDisabled(action)\" [class.cqa-opacity-50]=\"isDisabled(action)\" [class.cqa-cursor-not-allowed]=\"isDisabled(action)\" (click)=\"!isDisabled(action) && onAction(action)\"\n class=\"cqa-flex cqa-items-center cqa-gap-[8.75px] cqa-py-[5px] cqa-px-[8.75px] cqa-cursor-pointer cqa-text-[12.3px] cqa-leading-[17.5px] cqa-font-medium hover:cqa-bg-white/10 cqa-rounded\">\n <mat-icon class=\"!cqa-w-[16px] !cqa-h-[16px] !cqa-text-[16px]\">{{ action.icon }}</mat-icon>\n <span class=\"md:cqa-flex cqa-hidden\">{{ action.label }}</span>\n </div>\n </ng-container>\n <button *ngIf=\"showDismiss\" type=\"button\" (click)=\"onDismiss()\" class=\"cqa-p-1 cqa-rounded hover:cqa-bg-white/10 cqa-flex cqa-items-center cqa-justify-center\"\n title=\"Dismiss\" aria-label=\"Dismiss\">\n <mat-icon class=\"!cqa-w-[20px] !cqa-h-[20px] !cqa-text-[20px]\">close</mat-icon>\n </button>\n </div>\n </div>\n</div>", styles: [] }]
|
|
72
72
|
}], propDecorators: { selectedItems: [{
|
|
73
73
|
type: Input
|
|
74
74
|
}], actions: [{
|
|
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
86
86
|
}], dismiss: [{
|
|
87
87
|
type: Output
|
|
88
88
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90YWJsZS1hY3Rpb24tdG9vbGJhci90YWJsZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3RhYmxlLWFjdGlvbi10b29sYmFyL3RhYmxlLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFvQmhHLE1BQU0sT0FBTywyQkFBMkI7SUFQeEM7UUFRVyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUVyQyx3R0FBd0c7UUFDL0Ysa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDeEMsbUVBQW1FO1FBQzFELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQ3RDLHNFQUFzRTtRQUM3RCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFtQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUM5QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU3Qyw0RUFBNEU7UUFDcEUsbUJBQWMsR0FBd0MsSUFBSSxDQUFDO0tBdURwRTtJQXBEQyxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFB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QXhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICBzaG93PzogKGNvbnRleHQ6IHsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IGJvb2xlYW47XG4gIGRpc2FibGVkPzogKGNvbnRleHQ6IHsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiAoY29udGV4dDogeyBpZDogc3RyaW5nOyBzZWxlY3RlZDogYW55W10gfSkgPT4gdm9pZDtcbiAgYWN0aW9uPzogKGNvbnRleHQ6IHsgaWQ6IHN0cmluZzsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IHZvaWQ7IC8vIFN1cHBvcnQgJ2FjdGlvbicgYXMgYW4gYWxpYXMgZm9yIG9uQ2xpY2tcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXRhYmxlLWFjdGlvbi10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUFjdGlvblRvb2xiYXJDb21wb25lbnQge1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBhY3Rpb25zOiBUYWJsZUFjdGlvbltdID0gW107XG5cbiAgLyoqIFdoZW4gdHJ1ZSwgc2hvdyBhIFwiU2VsZWN0IGFsbFwiIGNoZWNrYm94IG5leHQgdG8gdGhlIHNlbGVjdGlvbiBjb3VudCAoZS5nLiBmb3IgdGVzdCBjYXNlIGRldGFpbHMpLiAqL1xuICBASW5wdXQoKSBzaG93U2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBCb3VuZCB0byB0aGUgU2VsZWN0IGFsbCBjaGVja2JveCB3aGVuIHNob3dTZWxlY3RBbGwgaXMgdHJ1ZS4gKi9cbiAgQElucHV0KCkgYWxsU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFdoZW4gdHJ1ZSwgc2hvdyBhIGRpc21pc3MgKFgpIGJ1dHRvbiBhdCB0aGUgZW5kIG9mIHRoZSB0b29sYmFyLiAqL1xuICBASW5wdXQoKSBzaG93RGlzbWlzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpZDogc3RyaW5nOyBzZWxlY3RlZDogYW55W10gfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdEFsbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIENvb2xkb3duIG1zIHRvIHByZXZlbnQgZG91YmxlLWNsaWNrIGZyb20gZmlyaW5nIHRoZSBzYW1lIGFjdGlvbiB0d2ljZSAqL1xuICBwcml2YXRlIGxhc3RBY3Rpb25FbWl0OiB7IGlkOiBzdHJpbmc7IHRpbWU6IG51bWJlciB9IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9DT09MRE9XTl9NUyA9IDUwMDtcblxuICBnZXQgaGFzU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5zZWxlY3RlZEl0ZW1zPy5sZW5ndGggfHwgMCkgPiAwO1xuICB9XG5cbiAgZ2V0IGlzU2luZ2xlU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGdldCBzZWxlY3Rpb25MYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG4gPSB0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCB8fCAwO1xuICAgIHJldHVybiBuID09PSAxID8gJzEgc2VsZWN0ZWQnIDogYCR7bn0gc2VsZWN0ZWRgO1xuICB9XG5cbiAgdmlzaWJsZUFjdGlvbnMoKTogVGFibGVBY3Rpb25bXSB7XG4gICAgY29uc3QgY3R4ID0geyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zIHx8IFtdIH07XG4gICAgcmV0dXJuICh0aGlzLmFjdGlvbnMgfHwgW10pLmZpbHRlcihhID0+IChhLnNob3cgPyBhLnNob3coY3R4KSA6IHRydWUpKTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoYWN0aW9uOiBUYWJsZUFjdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGN0eCA9IHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRJdGVtcyB8fCBbXSB9O1xuICAgIHJldHVybiBhY3Rpb24uZGlzYWJsZWQgPyAhIWFjdGlvbi5kaXNhYmxlZChjdHgpIDogZmFsc2U7XG4gIH1cblxuICBvbkFjdGlvbihhY3Rpb246IFRhYmxlQWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZChhY3Rpb24pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKFxuICAgICAgdGhpcy5sYXN0QWN0aW9uRW1pdCAmJlxuICAgICAgdGhpcy5sYXN0QWN0aW9uRW1pdC5pZCA9PT0gYWN0aW9uLmlkICYmXG4gICAgICBub3cgLSB0aGlzLmxhc3RBY3Rpb25FbWl0LnRpbWUgPCBUYWJsZUFjdGlvblRvb2xiYXJDb21wb25lbnQuQUNUSU9OX0NPT0xET1dOX01TXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFzdEFjdGlvbkVtaXQgPSB7IGlkOiBhY3Rpb24uaWQsIHRpbWU6IG5vdyB9O1xuICAgIGNvbnN0IGNvbnRleHQgPSB7IGlkOiBhY3Rpb24uaWQsIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMgfHwgW10gfTtcbiAgICBpZiAoYWN0aW9uLm9uQ2xpY2spIHtcbiAgICAgIGFjdGlvbi5vbkNsaWNrKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAoYWN0aW9uLmFjdGlvbikge1xuICAgICAgYWN0aW9uLmFjdGlvbihjb250ZXh0KTtcbiAgICB9XG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGNvbnRleHQpO1xuICB9XG5cbiAgb25TZWxlY3RBbGxDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0QWxsQ2hhbmdlLmVtaXQoY2hlY2tlZCk7XG4gIH1cblxuICBvbkRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQoKTtcbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhY3Rpb24tdG9vbGJhciBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1mbGV4LXdyYXAgY3FhLXB5LVsxNS41cHhdIHNtOmNxYS1weC1bMzRweF0gY3FhLXB4LVsyMHB4XSBjcWEtYmctcHJpbWFyeSBjcWEtdGV4dC13aGl0ZSBjcWEtcm91bmRlZC1bN3B4XSBjcWEtc2hhZG93LW1kXCJcbiAgICAqbmdJZj1cImhhc1NlbGVjdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tdG9vbGJhci1sZWZ0IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMjFweF0gY3FhLWZvbnQtbWVkaXVtXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1NlbGVjdEFsbFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXNlbGVjdC1ub25lXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImFsbFNlbGVjdGVkXCIgKGNoYW5nZSk9XCJvblNlbGVjdEFsbENoYW5nZSgkYW55KCRldmVudC50YXJnZXQpLmNoZWNrZWQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXctNCBjcWEtaC00IGNxYS1yb3VuZGVkIGNxYS1ib3JkZXIgY3FhLWJvcmRlci13aGl0ZSBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWFjY2VudC1wcmltYXJ5XCIgLz5cbiAgICAgICAgICA8c3Bhbj5TZWxlY3QgYWxsPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1ib3JkZXItbCBjcWEtYm9yZGVyLXdoaXRlLzUwIGNxYS1wbC0yIGNxYS1ib3JkZXItc29saWQgY3FhLXNlbGYtc3RyZXRjaCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+e3sgc2VsZWN0aW9uTGFiZWwgfX08L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIXNob3dTZWxlY3RBbGxcIj57eyBzZWxlY3Rpb25MYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXRvb2xiYXItcmlnaHQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVs3cHhdXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdmlzaWJsZUFjdGlvbnMoKVwiPlxuICAgICAgICA8ZGl2IFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChhY3Rpb24pXCIgW2NsYXNzLmNxYS1vcGFjaXR5LTUwXT1cImlzRGlzYWJsZWQoYWN0aW9uKVwiIFtjbGFzcy5jcWEtY3Vyc29yLW5vdC1hbGxvd2VkXT1cImlzRGlzYWJsZWQoYWN0aW9uKVwiIChjbGljayk9XCIhaXNEaXNhYmxlZChhY3Rpb24pICYmIG9uQWN0aW9uKGFjdGlvbilcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVs4Ljc1cHhdIGNxYS1weS1bNXB4XSBjcWEtcHgtWzguNzVweF0gY3FhLWN1cnNvci1wb2ludGVyIGNxYS10ZXh0LVsxMi4zcHhdIGNxYS1sZWFkaW5nLVsxNy41cHhdIGNxYS1mb250LW1lZGl1bSBob3ZlcjpjcWEtYmctd2hpdGUvMTAgY3FhLXJvdW5kZWRcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXctWzE2cHhdICFjcWEtaC1bMTZweF0gIWNxYS10ZXh0LVsxNnB4XVwiPnt7IGFjdGlvbi5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kOmNxYS1mbGV4IGNxYS1oaWRkZW5cIj57eyBhY3Rpb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0Rpc21pc3NcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRGlzbWlzcygpXCIgY2xhc3M9XCJjcWEtcC0xIGNxYS1yb3VuZGVkIGhvdmVyOmNxYS1iZy13aGl0ZS8xMCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgIHRpdGxlPVwiRGlzbWlzc1wiIGFyaWEtbGFiZWw9XCJEaXNtaXNzXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdy1bMjBweF0gIWNxYS1oLVsyMHB4XSAhY3FhLXRleHQtWzIwcHhdXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90YWJsZS1hY3Rpb24tdG9vbGJhci90YWJsZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3RhYmxlLWFjdGlvbi10b29sYmFyL3RhYmxlLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFvQmhHLE1BQU0sT0FBTywyQkFBMkI7SUFQeEM7UUFRVyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUVyQyx3R0FBd0c7UUFDL0Ysa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDeEMsbUVBQW1FO1FBQzFELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQ3RDLHNFQUFzRTtRQUM3RCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFtQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUM5QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU3Qyw0RUFBNEU7UUFDcEUsbUJBQWMsR0FBd0MsSUFBSSxDQUFDO0tBdURwRTtJQXBEQyxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFB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QXhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICBzaG93PzogKGNvbnRleHQ6IHsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IGJvb2xlYW47XG4gIGRpc2FibGVkPzogKGNvbnRleHQ6IHsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiAoY29udGV4dDogeyBpZDogc3RyaW5nOyBzZWxlY3RlZDogYW55W10gfSkgPT4gdm9pZDtcbiAgYWN0aW9uPzogKGNvbnRleHQ6IHsgaWQ6IHN0cmluZzsgc2VsZWN0ZWQ6IGFueVtdIH0pID0+IHZvaWQ7IC8vIFN1cHBvcnQgJ2FjdGlvbicgYXMgYW4gYWxpYXMgZm9yIG9uQ2xpY2tcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXRhYmxlLWFjdGlvbi10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUFjdGlvblRvb2xiYXJDb21wb25lbnQge1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBhY3Rpb25zOiBUYWJsZUFjdGlvbltdID0gW107XG5cbiAgLyoqIFdoZW4gdHJ1ZSwgc2hvdyBhIFwiU2VsZWN0IGFsbFwiIGNoZWNrYm94IG5leHQgdG8gdGhlIHNlbGVjdGlvbiBjb3VudCAoZS5nLiBmb3IgdGVzdCBjYXNlIGRldGFpbHMpLiAqL1xuICBASW5wdXQoKSBzaG93U2VsZWN0QWxsOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBCb3VuZCB0byB0aGUgU2VsZWN0IGFsbCBjaGVja2JveCB3aGVuIHNob3dTZWxlY3RBbGwgaXMgdHJ1ZS4gKi9cbiAgQElucHV0KCkgYWxsU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFdoZW4gdHJ1ZSwgc2hvdyBhIGRpc21pc3MgKFgpIGJ1dHRvbiBhdCB0aGUgZW5kIG9mIHRoZSB0b29sYmFyLiAqL1xuICBASW5wdXQoKSBzaG93RGlzbWlzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpZDogc3RyaW5nOyBzZWxlY3RlZDogYW55W10gfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdEFsbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIENvb2xkb3duIG1zIHRvIHByZXZlbnQgZG91YmxlLWNsaWNrIGZyb20gZmlyaW5nIHRoZSBzYW1lIGFjdGlvbiB0d2ljZSAqL1xuICBwcml2YXRlIGxhc3RBY3Rpb25FbWl0OiB7IGlkOiBzdHJpbmc7IHRpbWU6IG51bWJlciB9IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9DT09MRE9XTl9NUyA9IDUwMDtcblxuICBnZXQgaGFzU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5zZWxlY3RlZEl0ZW1zPy5sZW5ndGggfHwgMCkgPiAwO1xuICB9XG5cbiAgZ2V0IGlzU2luZ2xlU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGdldCBzZWxlY3Rpb25MYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG4gPSB0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCB8fCAwO1xuICAgIHJldHVybiBuID09PSAxID8gJzEgc2VsZWN0ZWQnIDogYCR7bn0gc2VsZWN0ZWRgO1xuICB9XG5cbiAgdmlzaWJsZUFjdGlvbnMoKTogVGFibGVBY3Rpb25bXSB7XG4gICAgY29uc3QgY3R4ID0geyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zIHx8IFtdIH07XG4gICAgcmV0dXJuICh0aGlzLmFjdGlvbnMgfHwgW10pLmZpbHRlcihhID0+IChhLnNob3cgPyBhLnNob3coY3R4KSA6IHRydWUpKTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoYWN0aW9uOiBUYWJsZUFjdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGN0eCA9IHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRJdGVtcyB8fCBbXSB9O1xuICAgIHJldHVybiBhY3Rpb24uZGlzYWJsZWQgPyAhIWFjdGlvbi5kaXNhYmxlZChjdHgpIDogZmFsc2U7XG4gIH1cblxuICBvbkFjdGlvbihhY3Rpb246IFRhYmxlQWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZChhY3Rpb24pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKFxuICAgICAgdGhpcy5sYXN0QWN0aW9uRW1pdCAmJlxuICAgICAgdGhpcy5sYXN0QWN0aW9uRW1pdC5pZCA9PT0gYWN0aW9uLmlkICYmXG4gICAgICBub3cgLSB0aGlzLmxhc3RBY3Rpb25FbWl0LnRpbWUgPCBUYWJsZUFjdGlvblRvb2xiYXJDb21wb25lbnQuQUNUSU9OX0NPT0xET1dOX01TXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFzdEFjdGlvbkVtaXQgPSB7IGlkOiBhY3Rpb24uaWQsIHRpbWU6IG5vdyB9O1xuICAgIGNvbnN0IGNvbnRleHQgPSB7IGlkOiBhY3Rpb24uaWQsIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMgfHwgW10gfTtcbiAgICBpZiAoYWN0aW9uLm9uQ2xpY2spIHtcbiAgICAgIGFjdGlvbi5vbkNsaWNrKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAoYWN0aW9uLmFjdGlvbikge1xuICAgICAgYWN0aW9uLmFjdGlvbihjb250ZXh0KTtcbiAgICB9XG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGNvbnRleHQpO1xuICB9XG5cbiAgb25TZWxlY3RBbGxDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0QWxsQ2hhbmdlLmVtaXQoY2hlY2tlZCk7XG4gIH1cblxuICBvbkRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQoKTtcbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhY3Rpb24tdG9vbGJhciBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1mbGV4LXdyYXAgY3FhLXB5LVsxNS41cHhdIHNtOmNxYS1weC1bMzRweF0gY3FhLXB4LVsyMHB4XSBjcWEtYmctcHJpbWFyeSBjcWEtdGV4dC13aGl0ZSBjcWEtcm91bmRlZC1bN3B4XSBjcWEtc2hhZG93LW1kXCJcbiAgICAqbmdJZj1cImhhc1NlbGVjdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tdG9vbGJhci1sZWZ0IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMjFweF0gY3FhLWZvbnQtbWVkaXVtXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1NlbGVjdEFsbFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXNlbGVjdC1ub25lXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImFsbFNlbGVjdGVkXCIgKGNoYW5nZSk9XCJvblNlbGVjdEFsbENoYW5nZSgkYW55KCRldmVudC50YXJnZXQpLmNoZWNrZWQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWFsbCBjcWEtdy00IGNxYS1oLTQgY3FhLXJvdW5kZWQgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXdoaXRlIGNxYS1iZy10cmFuc3BhcmVudCBob3ZlcjpjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWFjY2VudC1wcmltYXJ5XCIgLz5cbiAgICAgICAgICA8c3Bhbj5TZWxlY3QgYWxsPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1ib3JkZXItbCBjcWEtYm9yZGVyLXdoaXRlLzUwIGNxYS1wbC0yIGNxYS1ib3JkZXItc29saWQgY3FhLXNlbGYtc3RyZXRjaCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+e3sgc2VsZWN0aW9uTGFiZWwgfX08L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIXNob3dTZWxlY3RBbGxcIj57eyBzZWxlY3Rpb25MYWJlbCB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXRvb2xiYXItcmlnaHQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVs3cHhdXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdmlzaWJsZUFjdGlvbnMoKVwiPlxuICAgICAgICA8ZGl2IFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNEaXNhYmxlZChhY3Rpb24pXCIgW2NsYXNzLmNxYS1vcGFjaXR5LTUwXT1cImlzRGlzYWJsZWQoYWN0aW9uKVwiIFtjbGFzcy5jcWEtY3Vyc29yLW5vdC1hbGxvd2VkXT1cImlzRGlzYWJsZWQoYWN0aW9uKVwiIChjbGljayk9XCIhaXNEaXNhYmxlZChhY3Rpb24pICYmIG9uQWN0aW9uKGFjdGlvbilcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVs4Ljc1cHhdIGNxYS1weS1bNXB4XSBjcWEtcHgtWzguNzVweF0gY3FhLWN1cnNvci1wb2ludGVyIGNxYS10ZXh0LVsxMi4zcHhdIGNxYS1sZWFkaW5nLVsxNy41cHhdIGNxYS1mb250LW1lZGl1bSBob3ZlcjpjcWEtYmctd2hpdGUvMTAgY3FhLXJvdW5kZWRcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXctWzE2cHhdICFjcWEtaC1bMTZweF0gIWNxYS10ZXh0LVsxNnB4XVwiPnt7IGFjdGlvbi5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kOmNxYS1mbGV4IGNxYS1oaWRkZW5cIj57eyBhY3Rpb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0Rpc21pc3NcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRGlzbWlzcygpXCIgY2xhc3M9XCJjcWEtcC0xIGNxYS1yb3VuZGVkIGhvdmVyOmNxYS1iZy13aGl0ZS8xMCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgIHRpdGxlPVwiRGlzbWlzc1wiIGFyaWEtbGFiZWw9XCJEaXNtaXNzXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdy1bMjBweF0gIWNxYS1oLVsyMHB4XSAhY3FhLXRleHQtWzIwcHhdXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -201,6 +201,7 @@ export class ElementFormComponent {
|
|
|
201
201
|
}
|
|
202
202
|
onEditInDepth(event) {
|
|
203
203
|
event.preventDefault();
|
|
204
|
+
event.stopPropagation();
|
|
204
205
|
this.editInDepth.emit();
|
|
205
206
|
}
|
|
206
207
|
getFormControl(controlName) {
|
|
@@ -245,10 +246,10 @@ export class ElementFormComponent {
|
|
|
245
246
|
}
|
|
246
247
|
}
|
|
247
248
|
ElementFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ElementFormComponent, deps: [{ token: i1.FormBuilder, optional: true }, { token: i0.ChangeDetectorRef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
248
|
-
ElementFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ElementFormComponent, selector: "cqa-element-form", inputs: { elementId: "elementId", element: "element", screenNameOptions: "screenNameOptions", hasMoreScreenNames: "hasMoreScreenNames", isLoadingScreenNames: "isLoadingScreenNames", isElementLoading: "isElementLoading", isEditMode: "isEditMode", isCreateMode: "isCreateMode", isEditInDepthAvailable: "isEditInDepthAvailable" }, outputs: { createElement: "createElement", updateElement: "updateElement", createScreenNameRequest: "createScreenNameRequest", searchScreenName: "searchScreenName", loadMoreScreenNames: "loadMoreScreenNames", cancel: "cancel", editInDepth: "editInDepth" }, host: { classAttribute: "cqa-ui-root" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-px-1 cqa-pt-3\">\n <div *ngIf=\"isElementLoading && isEditMode\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-justify-center cqa-gap-3 cqa-py-8\">\n <svg class=\"cqa-animate-spin cqa-h-6 cqa-w-6 cqa-text-[#3F43EE]\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"cqa-opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"cqa-opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n <span class=\"cqa-text-[#6B7280] cqa-text-sm\">Loading element data...</span>\n </div>\n <div *ngIf=\"!isElementLoading\" class=\"cqa-flex cqa-gap-1.5\">\n <cqa-custom-input \n class=\"cqa-w-1/2\" \n label=\"Name\" \n placeholder=\"default-element\"\n [value]=\"getFormControlValue('name')\"\n [errors]=\"getFormControl('name')?.touched && getFormControl('name')?.invalid ? ['Name is required'] : []\"\n [required]=\"true\"\n (valueChange)=\"onFormControlChange('name', $event)\">\n </cqa-custom-input>\n <div class=\"cqa-w-1/2\">\n <cqa-dynamic-select [form]=\"form\" [config]=\"screenNameSelectConfig\"\n (addCustomValue)=\"createScreenNameRequest.emit($event.value)\"\n class=\"cqa-w-full\">\n </cqa-dynamic-select>\n <div *ngIf=\"getFormControl('screenNameId')?.touched && getFormControl('screenNameId')?.invalid\" class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-mt-1.5\">\n <div class=\"cqa-flex cqa-items-start cqa-gap-1.5\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n class=\"cqa-flex-shrink-0 cqa-mt-0.5\">\n <path d=\"M7 1.75C4.1 1.75 1.75 4.1 1.75 7C1.75 9.9 4.1 12.25 7 12.25C9.9 12.25 12.25 9.9 12.25 7C12.25 4.1 9.9 1.75 7 1.75ZM7 9.625C6.65625 9.625 6.375 9.34375 6.375 9V7C6.375 6.65625 6.65625 6.375 7 6.375C7.34375 6.375 7.625 6.65625 7.625 7V9C7.625 9.34375 7.34375 9.625 7 9.625ZM7.625 5.25H6.375V4H7.625V5.25Z\" fill=\"#EF4444\"/>\n </svg>\n <span class=\"cqa-text-xs cqa-text-[#EF4444] cqa-font-medium cqa-leading-[18px]\">\n Screen Name is required\n </span>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"!isElementLoading\">\n <cqa-custom-input \n class=\"cqa-w-full\" \n label=\"Enter Value\" \n placeholder=\"#default_id or xpath\"\n [value]=\"getFormControlValue('value')\"\n [errors]=\"getFormControl('value')?.touched && getFormControl('value')?.invalid ? ['Value is required'] : []\"\n [required]=\"true\"\n (valueChange)=\"onFormControlChange('value', $event)\">\n </cqa-custom-input>\n <div class=\"cqa-w-full\">\n <label class=\"cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#374151] cqa-mb-1\">Labels (tags)</label>\n <div\n class=\"cqa-flex cqa-flex-wrap cqa-gap-2 cqa-p-2 cqa-border cqa-border-solid cqa-border-gray-200 cqa-rounded-md cqa-min-h-[42px] cqa-max-h-[80px] cqa-overflow-y-auto cqa-scrollbar-thin cqa-scrollbar-track-transparent cqa-scrollbar-thumb-[#E5E7EB] cqa-scrollbar-thumb-rounded-full cqa-scrollbar-thumb-hover:cqa-bg-[#D1D5DB]\"\n *ngIf=\"formLabels?.length; else noTagsContainer\">\n <span *ngFor=\"let tag of visibleTags\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-1 cqa-px-2 cqa-py-1 cqa-bg-[#eff6ff] cqa-border cqa-border-[#c8e0ff] cqa-rounded-[8px] cqa-text-[12px] cqa-text-[#3F43EE]\"\n [matTooltip]=\"tag\"\n matTooltipPosition=\"above\"\n style=\"max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\">\n <span class=\"cqa-max-w-full cqa-truncate\">{{ tag }}</span>\n <button type=\"button\" (click)=\"removeTag(tag)\" class=\"cqa-p-0.5 hover:cqa-bg-[#c8e0ff] cqa-rounded cqa-cursor-pointer cqa-h-[16px] cqa-w-[16px]\">\n <mat-icon class=\"!cqa-w-3 !cqa-h-3 !cqa-text-[14px]\">close</mat-icon>\n </button>\n </span>\n <input type=\"text\"\n class=\"cqa-flex-1 cqa-min-w-[120px] cqa-px-2 cqa-py-1 cqa-text-sm cqa-border-0 cqa-outline-none cqa-bg-transparent\"\n placeholder=\"Type and press Enter to add\"\n [(ngModel)]=\"tagInputValue\"\n (keydown)=\"onTagInputKeydown($event)\"\n (blur)=\"addTag()\"\n [ngModelOptions]=\"{standalone: true}\">\n </div>\n <ng-template #noTagsContainer>\n <div class=\"cqa-flex cqa-flex-wrap cqa-gap-2 cqa-p-2 cqa-border cqa-border-solid cqa-border-gray-200 cqa-rounded-md cqa-min-h-[42px]\">\n <input type=\"text\"\n class=\"cqa-flex-1 cqa-min-w-[120px] cqa-px-2 cqa-py-1 cqa-text-sm cqa-border-0 cqa-outline-none cqa-bg-transparent\"\n placeholder=\"Type and press Enter to add\"\n [(ngModel)]=\"tagInputValue\"\n (keydown)=\"onTagInputKeydown($event)\"\n (blur)=\"addTag()\"\n [ngModelOptions]=\"{standalone: true}\">\n </div>\n </ng-template>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <div class=\"cqa-flex cqa-items-stretch cqa-gap-2 cqa-w-full\">\n <div class=\"cqa-flex-1 cqa-min-w-0\">\n <cqa-button variant=\"outlined\" btnSize=\"lg\" [text]=\"(elementId ? 'Cancel' : 'Select from Element list')\" [fullWidth]=\"true\" (clicked)=\"onCancel()\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-border-[#414146]'\" [disabled]=\"saving\"></cqa-button>\n </div>\n <div class=\"cqa-flex-1 cqa-min-w-0\">\n <cqa-button variant=\"filled\" btnSize=\"lg\" [text]=\"saving ? 'Saving...' : (isEditMode ? 'Update' : 'Create')\" [fullWidth]=\"true\" (clicked)=\"onApply()\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-border-[#3F43EE]'\" [disabled]=\"saving\"></cqa-button>\n </div>\n </div>\n </div>\n <a href=\"
|
|
249
|
+
ElementFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ElementFormComponent, selector: "cqa-element-form", inputs: { elementId: "elementId", element: "element", screenNameOptions: "screenNameOptions", hasMoreScreenNames: "hasMoreScreenNames", isLoadingScreenNames: "isLoadingScreenNames", isElementLoading: "isElementLoading", isEditMode: "isEditMode", isCreateMode: "isCreateMode", isEditInDepthAvailable: "isEditInDepthAvailable" }, outputs: { createElement: "createElement", updateElement: "updateElement", createScreenNameRequest: "createScreenNameRequest", searchScreenName: "searchScreenName", loadMoreScreenNames: "loadMoreScreenNames", cancel: "cancel", editInDepth: "editInDepth" }, host: { classAttribute: "cqa-ui-root" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-px-1 cqa-pt-3\">\n <div *ngIf=\"isElementLoading && isEditMode\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-justify-center cqa-gap-3 cqa-py-8\">\n <svg class=\"cqa-animate-spin cqa-h-6 cqa-w-6 cqa-text-[#3F43EE]\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"cqa-opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"cqa-opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n <span class=\"cqa-text-[#6B7280] cqa-text-sm\">Loading element data...</span>\n </div>\n <div *ngIf=\"!isElementLoading\" class=\"cqa-flex cqa-gap-1.5\">\n <cqa-custom-input \n class=\"cqa-w-1/2\" \n label=\"Name\" \n placeholder=\"default-element\"\n [value]=\"getFormControlValue('name')\"\n [errors]=\"getFormControl('name')?.touched && getFormControl('name')?.invalid ? ['Name is required'] : []\"\n [required]=\"true\"\n (valueChange)=\"onFormControlChange('name', $event)\">\n </cqa-custom-input>\n <div class=\"cqa-w-1/2\">\n <cqa-dynamic-select [form]=\"form\" [config]=\"screenNameSelectConfig\"\n (addCustomValue)=\"createScreenNameRequest.emit($event.value)\"\n class=\"cqa-w-full\">\n </cqa-dynamic-select>\n <div *ngIf=\"getFormControl('screenNameId')?.touched && getFormControl('screenNameId')?.invalid\" class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-mt-1.5\">\n <div class=\"cqa-flex cqa-items-start cqa-gap-1.5\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n class=\"cqa-flex-shrink-0 cqa-mt-0.5\">\n <path d=\"M7 1.75C4.1 1.75 1.75 4.1 1.75 7C1.75 9.9 4.1 12.25 7 12.25C9.9 12.25 12.25 9.9 12.25 7C12.25 4.1 9.9 1.75 7 1.75ZM7 9.625C6.65625 9.625 6.375 9.34375 6.375 9V7C6.375 6.65625 6.65625 6.375 7 6.375C7.34375 6.375 7.625 6.65625 7.625 7V9C7.625 9.34375 7.34375 9.625 7 9.625ZM7.625 5.25H6.375V4H7.625V5.25Z\" fill=\"#EF4444\"/>\n </svg>\n <span class=\"cqa-text-xs cqa-text-[#EF4444] cqa-font-medium cqa-leading-[18px]\">\n Screen Name is required\n </span>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"!isElementLoading\">\n <cqa-custom-input \n class=\"cqa-w-full\" \n label=\"Enter Value\" \n placeholder=\"#default_id or xpath\"\n [value]=\"getFormControlValue('value')\"\n [errors]=\"getFormControl('value')?.touched && getFormControl('value')?.invalid ? ['Value is required'] : []\"\n [required]=\"true\"\n (valueChange)=\"onFormControlChange('value', $event)\">\n </cqa-custom-input>\n <div class=\"cqa-w-full\">\n <label class=\"cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#374151] cqa-mb-1\">Labels (tags)</label>\n <div\n class=\"cqa-flex cqa-flex-wrap cqa-gap-2 cqa-p-2 cqa-border cqa-border-solid cqa-border-gray-200 cqa-rounded-md cqa-min-h-[42px] cqa-max-h-[80px] cqa-overflow-y-auto cqa-scrollbar-thin cqa-scrollbar-track-transparent cqa-scrollbar-thumb-[#E5E7EB] cqa-scrollbar-thumb-rounded-full cqa-scrollbar-thumb-hover:cqa-bg-[#D1D5DB]\"\n *ngIf=\"formLabels?.length; else noTagsContainer\">\n <span *ngFor=\"let tag of visibleTags\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-1 cqa-px-2 cqa-py-1 cqa-bg-[#eff6ff] cqa-border cqa-border-[#c8e0ff] cqa-rounded-[8px] cqa-text-[12px] cqa-text-[#3F43EE]\"\n [matTooltip]=\"tag\"\n matTooltipPosition=\"above\"\n style=\"max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\">\n <span class=\"cqa-max-w-full cqa-truncate\">{{ tag }}</span>\n <button type=\"button\" (click)=\"removeTag(tag)\" class=\"cqa-p-0.5 hover:cqa-bg-[#c8e0ff] cqa-rounded cqa-cursor-pointer cqa-h-[16px] cqa-w-[16px]\">\n <mat-icon class=\"!cqa-w-3 !cqa-h-3 !cqa-text-[14px]\">close</mat-icon>\n </button>\n </span>\n <input type=\"text\"\n class=\"cqa-flex-1 cqa-min-w-[120px] cqa-px-2 cqa-py-1 cqa-text-sm cqa-border-0 cqa-outline-none cqa-bg-transparent\"\n placeholder=\"Type and press Enter to add\"\n [(ngModel)]=\"tagInputValue\"\n (keydown)=\"onTagInputKeydown($event)\"\n (blur)=\"addTag()\"\n [ngModelOptions]=\"{standalone: true}\">\n </div>\n <ng-template #noTagsContainer>\n <div class=\"cqa-flex cqa-flex-wrap cqa-gap-2 cqa-p-2 cqa-border cqa-border-solid cqa-border-gray-200 cqa-rounded-md cqa-min-h-[42px]\">\n <input type=\"text\"\n class=\"cqa-flex-1 cqa-min-w-[120px] cqa-px-2 cqa-py-1 cqa-text-sm cqa-border-0 cqa-outline-none cqa-bg-transparent\"\n placeholder=\"Type and press Enter to add\"\n [(ngModel)]=\"tagInputValue\"\n (keydown)=\"onTagInputKeydown($event)\"\n (blur)=\"addTag()\"\n [ngModelOptions]=\"{standalone: true}\">\n </div>\n </ng-template>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <div class=\"cqa-flex cqa-items-stretch cqa-gap-2 cqa-w-full\">\n <div class=\"cqa-flex-1 cqa-min-w-0\">\n <cqa-button variant=\"outlined\" btnSize=\"lg\" [text]=\"(elementId ? 'Cancel' : 'Select from Element list')\" [fullWidth]=\"true\" (clicked)=\"onCancel()\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-border-[#414146]'\" [disabled]=\"saving\"></cqa-button>\n </div>\n <div class=\"cqa-flex-1 cqa-min-w-0\">\n <cqa-button variant=\"filled\" btnSize=\"lg\" [text]=\"saving ? 'Saving...' : (isEditMode ? 'Update' : 'Create')\" [fullWidth]=\"true\" (clicked)=\"onApply()\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-border-[#3F43EE]'\" [disabled]=\"saving\"></cqa-button>\n </div>\n </div>\n </div>\n <a role=\"button\" tabindex=\"0\" href=\"javascript:void(0)\" *ngIf=\"isEditInDepthAvailable\" (click)=\"onEditInDepth($event)\"\n class=\"cqa-text-[#3F43EE] cqa-text-[12px] cqa-leading-[18px] cqa-font-medium cqa-flex cqa-items-center cqa-gap-1.5 cqa-no-underline hover:cqa-no-underline cqa-self-center cqa-cursor-pointer\">\n <mat-icon class=\"!cqa-w-4 !cqa-h-4 !cqa-text-[16px]\">open_in_new</mat-icon>\n Edit in depth (open detailed right panel)\n </a>\n </ng-container>\n</div>\n\n\n", components: [{ type: i2.CustomInputComponent, selector: "cqa-custom-input", inputs: ["label", "type", "placeholder", "value", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "inputInlineStyle", "labelInlineStyle"], outputs: ["valueChange", "blurred", "focused", "enterPressed"] }, { type: i3.DynamicSelectFieldComponent, selector: "cqa-dynamic-select", inputs: ["form", "config"], outputs: ["selectionChange", "selectClick", "searchChange", "loadMore", "addCustomValue"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
249
250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ElementFormComponent, decorators: [{
|
|
250
251
|
type: Component,
|
|
251
|
-
args: [{ selector: 'cqa-element-form', host: { class: 'cqa-ui-root' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-px-1 cqa-pt-3\">\n <div *ngIf=\"isElementLoading && isEditMode\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-justify-center cqa-gap-3 cqa-py-8\">\n <svg class=\"cqa-animate-spin cqa-h-6 cqa-w-6 cqa-text-[#3F43EE]\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"cqa-opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"cqa-opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n <span class=\"cqa-text-[#6B7280] cqa-text-sm\">Loading element data...</span>\n </div>\n <div *ngIf=\"!isElementLoading\" class=\"cqa-flex cqa-gap-1.5\">\n <cqa-custom-input \n class=\"cqa-w-1/2\" \n label=\"Name\" \n placeholder=\"default-element\"\n [value]=\"getFormControlValue('name')\"\n [errors]=\"getFormControl('name')?.touched && getFormControl('name')?.invalid ? ['Name is required'] : []\"\n [required]=\"true\"\n (valueChange)=\"onFormControlChange('name', $event)\">\n </cqa-custom-input>\n <div class=\"cqa-w-1/2\">\n <cqa-dynamic-select [form]=\"form\" [config]=\"screenNameSelectConfig\"\n (addCustomValue)=\"createScreenNameRequest.emit($event.value)\"\n class=\"cqa-w-full\">\n </cqa-dynamic-select>\n <div *ngIf=\"getFormControl('screenNameId')?.touched && getFormControl('screenNameId')?.invalid\" class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-mt-1.5\">\n <div class=\"cqa-flex cqa-items-start cqa-gap-1.5\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n class=\"cqa-flex-shrink-0 cqa-mt-0.5\">\n <path d=\"M7 1.75C4.1 1.75 1.75 4.1 1.75 7C1.75 9.9 4.1 12.25 7 12.25C9.9 12.25 12.25 9.9 12.25 7C12.25 4.1 9.9 1.75 7 1.75ZM7 9.625C6.65625 9.625 6.375 9.34375 6.375 9V7C6.375 6.65625 6.65625 6.375 7 6.375C7.34375 6.375 7.625 6.65625 7.625 7V9C7.625 9.34375 7.34375 9.625 7 9.625ZM7.625 5.25H6.375V4H7.625V5.25Z\" fill=\"#EF4444\"/>\n </svg>\n <span class=\"cqa-text-xs cqa-text-[#EF4444] cqa-font-medium cqa-leading-[18px]\">\n Screen Name is required\n </span>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"!isElementLoading\">\n <cqa-custom-input \n class=\"cqa-w-full\" \n label=\"Enter Value\" \n placeholder=\"#default_id or xpath\"\n [value]=\"getFormControlValue('value')\"\n [errors]=\"getFormControl('value')?.touched && getFormControl('value')?.invalid ? ['Value is required'] : []\"\n [required]=\"true\"\n (valueChange)=\"onFormControlChange('value', $event)\">\n </cqa-custom-input>\n <div class=\"cqa-w-full\">\n <label class=\"cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#374151] cqa-mb-1\">Labels (tags)</label>\n <div\n class=\"cqa-flex cqa-flex-wrap cqa-gap-2 cqa-p-2 cqa-border cqa-border-solid cqa-border-gray-200 cqa-rounded-md cqa-min-h-[42px] cqa-max-h-[80px] cqa-overflow-y-auto cqa-scrollbar-thin cqa-scrollbar-track-transparent cqa-scrollbar-thumb-[#E5E7EB] cqa-scrollbar-thumb-rounded-full cqa-scrollbar-thumb-hover:cqa-bg-[#D1D5DB]\"\n *ngIf=\"formLabels?.length; else noTagsContainer\">\n <span *ngFor=\"let tag of visibleTags\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-1 cqa-px-2 cqa-py-1 cqa-bg-[#eff6ff] cqa-border cqa-border-[#c8e0ff] cqa-rounded-[8px] cqa-text-[12px] cqa-text-[#3F43EE]\"\n [matTooltip]=\"tag\"\n matTooltipPosition=\"above\"\n style=\"max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\">\n <span class=\"cqa-max-w-full cqa-truncate\">{{ tag }}</span>\n <button type=\"button\" (click)=\"removeTag(tag)\" class=\"cqa-p-0.5 hover:cqa-bg-[#c8e0ff] cqa-rounded cqa-cursor-pointer cqa-h-[16px] cqa-w-[16px]\">\n <mat-icon class=\"!cqa-w-3 !cqa-h-3 !cqa-text-[14px]\">close</mat-icon>\n </button>\n </span>\n <input type=\"text\"\n class=\"cqa-flex-1 cqa-min-w-[120px] cqa-px-2 cqa-py-1 cqa-text-sm cqa-border-0 cqa-outline-none cqa-bg-transparent\"\n placeholder=\"Type and press Enter to add\"\n [(ngModel)]=\"tagInputValue\"\n (keydown)=\"onTagInputKeydown($event)\"\n (blur)=\"addTag()\"\n [ngModelOptions]=\"{standalone: true}\">\n </div>\n <ng-template #noTagsContainer>\n <div class=\"cqa-flex cqa-flex-wrap cqa-gap-2 cqa-p-2 cqa-border cqa-border-solid cqa-border-gray-200 cqa-rounded-md cqa-min-h-[42px]\">\n <input type=\"text\"\n class=\"cqa-flex-1 cqa-min-w-[120px] cqa-px-2 cqa-py-1 cqa-text-sm cqa-border-0 cqa-outline-none cqa-bg-transparent\"\n placeholder=\"Type and press Enter to add\"\n [(ngModel)]=\"tagInputValue\"\n (keydown)=\"onTagInputKeydown($event)\"\n (blur)=\"addTag()\"\n [ngModelOptions]=\"{standalone: true}\">\n </div>\n </ng-template>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <div class=\"cqa-flex cqa-items-stretch cqa-gap-2 cqa-w-full\">\n <div class=\"cqa-flex-1 cqa-min-w-0\">\n <cqa-button variant=\"outlined\" btnSize=\"lg\" [text]=\"(elementId ? 'Cancel' : 'Select from Element list')\" [fullWidth]=\"true\" (clicked)=\"onCancel()\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-border-[#414146]'\" [disabled]=\"saving\"></cqa-button>\n </div>\n <div class=\"cqa-flex-1 cqa-min-w-0\">\n <cqa-button variant=\"filled\" btnSize=\"lg\" [text]=\"saving ? 'Saving...' : (isEditMode ? 'Update' : 'Create')\" [fullWidth]=\"true\" (clicked)=\"onApply()\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-border-[#3F43EE]'\" [disabled]=\"saving\"></cqa-button>\n </div>\n </div>\n </div>\n <a href=\"
|
|
252
|
+
args: [{ selector: 'cqa-element-form', host: { class: 'cqa-ui-root' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-px-1 cqa-pt-3\">\n <div *ngIf=\"isElementLoading && isEditMode\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-justify-center cqa-gap-3 cqa-py-8\">\n <svg class=\"cqa-animate-spin cqa-h-6 cqa-w-6 cqa-text-[#3F43EE]\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"cqa-opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"cqa-opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n <span class=\"cqa-text-[#6B7280] cqa-text-sm\">Loading element data...</span>\n </div>\n <div *ngIf=\"!isElementLoading\" class=\"cqa-flex cqa-gap-1.5\">\n <cqa-custom-input \n class=\"cqa-w-1/2\" \n label=\"Name\" \n placeholder=\"default-element\"\n [value]=\"getFormControlValue('name')\"\n [errors]=\"getFormControl('name')?.touched && getFormControl('name')?.invalid ? ['Name is required'] : []\"\n [required]=\"true\"\n (valueChange)=\"onFormControlChange('name', $event)\">\n </cqa-custom-input>\n <div class=\"cqa-w-1/2\">\n <cqa-dynamic-select [form]=\"form\" [config]=\"screenNameSelectConfig\"\n (addCustomValue)=\"createScreenNameRequest.emit($event.value)\"\n class=\"cqa-w-full\">\n </cqa-dynamic-select>\n <div *ngIf=\"getFormControl('screenNameId')?.touched && getFormControl('screenNameId')?.invalid\" class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-mt-1.5\">\n <div class=\"cqa-flex cqa-items-start cqa-gap-1.5\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n class=\"cqa-flex-shrink-0 cqa-mt-0.5\">\n <path d=\"M7 1.75C4.1 1.75 1.75 4.1 1.75 7C1.75 9.9 4.1 12.25 7 12.25C9.9 12.25 12.25 9.9 12.25 7C12.25 4.1 9.9 1.75 7 1.75ZM7 9.625C6.65625 9.625 6.375 9.34375 6.375 9V7C6.375 6.65625 6.65625 6.375 7 6.375C7.34375 6.375 7.625 6.65625 7.625 7V9C7.625 9.34375 7.34375 9.625 7 9.625ZM7.625 5.25H6.375V4H7.625V5.25Z\" fill=\"#EF4444\"/>\n </svg>\n <span class=\"cqa-text-xs cqa-text-[#EF4444] cqa-font-medium cqa-leading-[18px]\">\n Screen Name is required\n </span>\n </div>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"!isElementLoading\">\n <cqa-custom-input \n class=\"cqa-w-full\" \n label=\"Enter Value\" \n placeholder=\"#default_id or xpath\"\n [value]=\"getFormControlValue('value')\"\n [errors]=\"getFormControl('value')?.touched && getFormControl('value')?.invalid ? ['Value is required'] : []\"\n [required]=\"true\"\n (valueChange)=\"onFormControlChange('value', $event)\">\n </cqa-custom-input>\n <div class=\"cqa-w-full\">\n <label class=\"cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#374151] cqa-mb-1\">Labels (tags)</label>\n <div\n class=\"cqa-flex cqa-flex-wrap cqa-gap-2 cqa-p-2 cqa-border cqa-border-solid cqa-border-gray-200 cqa-rounded-md cqa-min-h-[42px] cqa-max-h-[80px] cqa-overflow-y-auto cqa-scrollbar-thin cqa-scrollbar-track-transparent cqa-scrollbar-thumb-[#E5E7EB] cqa-scrollbar-thumb-rounded-full cqa-scrollbar-thumb-hover:cqa-bg-[#D1D5DB]\"\n *ngIf=\"formLabels?.length; else noTagsContainer\">\n <span *ngFor=\"let tag of visibleTags\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-1 cqa-px-2 cqa-py-1 cqa-bg-[#eff6ff] cqa-border cqa-border-[#c8e0ff] cqa-rounded-[8px] cqa-text-[12px] cqa-text-[#3F43EE]\"\n [matTooltip]=\"tag\"\n matTooltipPosition=\"above\"\n style=\"max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\">\n <span class=\"cqa-max-w-full cqa-truncate\">{{ tag }}</span>\n <button type=\"button\" (click)=\"removeTag(tag)\" class=\"cqa-p-0.5 hover:cqa-bg-[#c8e0ff] cqa-rounded cqa-cursor-pointer cqa-h-[16px] cqa-w-[16px]\">\n <mat-icon class=\"!cqa-w-3 !cqa-h-3 !cqa-text-[14px]\">close</mat-icon>\n </button>\n </span>\n <input type=\"text\"\n class=\"cqa-flex-1 cqa-min-w-[120px] cqa-px-2 cqa-py-1 cqa-text-sm cqa-border-0 cqa-outline-none cqa-bg-transparent\"\n placeholder=\"Type and press Enter to add\"\n [(ngModel)]=\"tagInputValue\"\n (keydown)=\"onTagInputKeydown($event)\"\n (blur)=\"addTag()\"\n [ngModelOptions]=\"{standalone: true}\">\n </div>\n <ng-template #noTagsContainer>\n <div class=\"cqa-flex cqa-flex-wrap cqa-gap-2 cqa-p-2 cqa-border cqa-border-solid cqa-border-gray-200 cqa-rounded-md cqa-min-h-[42px]\">\n <input type=\"text\"\n class=\"cqa-flex-1 cqa-min-w-[120px] cqa-px-2 cqa-py-1 cqa-text-sm cqa-border-0 cqa-outline-none cqa-bg-transparent\"\n placeholder=\"Type and press Enter to add\"\n [(ngModel)]=\"tagInputValue\"\n (keydown)=\"onTagInputKeydown($event)\"\n (blur)=\"addTag()\"\n [ngModelOptions]=\"{standalone: true}\">\n </div>\n </ng-template>\n </div>\n\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3\">\n <div class=\"cqa-flex cqa-items-stretch cqa-gap-2 cqa-w-full\">\n <div class=\"cqa-flex-1 cqa-min-w-0\">\n <cqa-button variant=\"outlined\" btnSize=\"lg\" [text]=\"(elementId ? 'Cancel' : 'Select from Element list')\" [fullWidth]=\"true\" (clicked)=\"onCancel()\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-border-[#414146]'\" [disabled]=\"saving\"></cqa-button>\n </div>\n <div class=\"cqa-flex-1 cqa-min-w-0\">\n <cqa-button variant=\"filled\" btnSize=\"lg\" [text]=\"saving ? 'Saving...' : (isEditMode ? 'Update' : 'Create')\" [fullWidth]=\"true\" (clicked)=\"onApply()\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-border-[#3F43EE]'\" [disabled]=\"saving\"></cqa-button>\n </div>\n </div>\n </div>\n <a role=\"button\" tabindex=\"0\" href=\"javascript:void(0)\" *ngIf=\"isEditInDepthAvailable\" (click)=\"onEditInDepth($event)\"\n class=\"cqa-text-[#3F43EE] cqa-text-[12px] cqa-leading-[18px] cqa-font-medium cqa-flex cqa-items-center cqa-gap-1.5 cqa-no-underline hover:cqa-no-underline cqa-self-center cqa-cursor-pointer\">\n <mat-icon class=\"!cqa-w-4 !cqa-h-4 !cqa-text-[16px]\">open_in_new</mat-icon>\n Edit in depth (open detailed right panel)\n </a>\n </ng-container>\n</div>\n\n\n" }]
|
|
252
253
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder, decorators: [{
|
|
253
254
|
type: Optional
|
|
254
255
|
}] }, { type: i0.ChangeDetectorRef, decorators: [{
|
|
@@ -286,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
286
287
|
}], editInDepth: [{
|
|
287
288
|
type: Output
|
|
288
289
|
}] } });
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvZWxlbWVudC1wb3B1cC9lbGVtZW50LWZvcm0vZWxlbWVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvZWxlbWVudC1wb3B1cC9lbGVtZW50LWZvcm0vZWxlbWVudC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBV2pGLE1BQU0sT0FBTyxvQkFBb0I7SUFpRC9CLFlBQ2MsRUFBZ0IsRUFDQyxHQUF1QjtRQUF2QixRQUFHLEdBQUgsR0FBRyxDQUFvQjtRQWhEdEQsMkNBQTJDO1FBQ2xDLFlBQU8sR0FBNkIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3JGLHNEQUFzRDtRQUM3QyxzQkFBaUIsR0FBdUIsRUFBRSxDQUFDO1FBQ3BELGtFQUFrRTtRQUN6RCx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDN0Msc0VBQXNFO1FBQzdELHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUMvQyx1RkFBdUY7UUFDOUUscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQzNDLGlDQUFpQztRQUN4QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQ3JDLG1DQUFtQztRQUMxQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUV2Qyx5Q0FBeUM7UUFD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O2lIQTdRVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwrckJDdkJqQyw2OE1BNEdBOzJGRHJGYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLFFBRXRCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxtQkFDYix1QkFBdUIsQ0FBQyxNQUFNOzswQkFvRDVDLFFBQVE7OzBCQUNSLFFBQVE7NENBakRGLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRUcsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUVHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZywgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vZHluYW1pYy1zZWxlY3QvZHluYW1pYy1zZWxlY3QtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEVsZW1lbnRDcmVhdGVQYXlsb2FkLCBFbGVtZW50VXBkYXRlUGF5bG9hZCwgU2NyZWVuTmFtZU9wdGlvbiB9IGZyb20gJy4uL2VsZW1lbnQtcG9wdXAtZm9ybS1kYXRhJztcbmltcG9ydCB7IEVsZW1lbnRQb3B1cERhdGFFbGVtZW50cyB9IGZyb20gJy4uL2VsZW1lbnQtcG9wdXAtZGF0YSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1lbGVtZW50LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxlbWVudC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKiBFbGVtZW50IElEIHdoZW4gZWRpdGluZyBleGlzdGluZyBlbGVtZW50ICovXG4gIEBJbnB1dCgpIGVsZW1lbnRJZD86IG51bWJlcjtcbiAgLyoqIEN1cnJlbnQgZWxlbWVudCBkYXRhIChmb3IgZWRpdCBtb2RlKSAqL1xuICBASW5wdXQoKSBlbGVtZW50OiBFbGVtZW50UG9wdXBEYXRhRWxlbWVudHMgPSB7IHRpdGxlOiAnJywgc2VsZWN0b3I6ICcnLCBsYWJlbHM6IFtdIH07XG4gIC8qKiBTY3JlZW4gbmFtZSBvcHRpb25zIGZvciBhdXRvY29tcGxldGUgKGZyb20gQVBJKSAqL1xuICBASW5wdXQoKSBzY3JlZW5OYW1lT3B0aW9uczogU2NyZWVuTmFtZU9wdGlvbltdID0gW107XG4gIC8qKiBXaGV0aGVyIG1vcmUgc2NyZWVuIG5hbWVzIGFyZSBhdmFpbGFibGUgZm9yIGluZmluaXRlIHNjcm9sbCAqL1xuICBASW5wdXQoKSBoYXNNb3JlU2NyZWVuTmFtZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFRydWUgd2hpbGUgcGFyZW50IGlzIGxvYWRpbmcgc2NyZWVuIG5hbWVzIChzZWFyY2ggb3IgbG9hZCBtb3JlKSAqL1xuICBASW5wdXQoKSBpc0xvYWRpbmdTY3JlZW5OYW1lczogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogVHJ1ZSB3aGlsZSBwYXJlbnQgaXMgZmV0Y2hpbmcgbGF0ZXN0IGVsZW1lbnQgZGF0YSBmb3IgZWRpdCAoc2hvd3MgbG9hZGluZyBzdGF0ZSkgKi9cbiAgQElucHV0KCkgaXNFbGVtZW50TG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogV2hldGhlciB3ZSdyZSBpbiBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaXNFZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogV2hldGhlciB3ZSdyZSBpbiBjcmVhdGUgbW9kZSAqL1xuICBASW5wdXQoKSBpc0NyZWF0ZU1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciBlZGl0IGluIGRlcHRoIGlzIGF2YWlsYWJsZSAqL1xuICBASW5wdXQoKSBpc0VkaXRJbkRlcHRoQXZhaWxhYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKiogRW1pdHRlZCB3aGVuIHVzZXIgY3JlYXRlcyBhIG5ldyBlbGVtZW50IChwYXJlbnQgc2hvdWxkIGNhbGwgQVBJKSAqL1xuICBAT3V0cHV0KCkgY3JlYXRlRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudENyZWF0ZVBheWxvYWQ+KCk7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdXNlciB1cGRhdGVzIGFuIGVsZW1lbnQgKHBhcmVudCBzaG91bGQgY2FsbCBBUEkpICovXG4gIEBPdXRwdXQoKSB1cGRhdGVFbGVtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxFbGVtZW50VXBkYXRlUGF5bG9hZD4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIHJlcXVlc3RzIHRvIGNyZWF0ZSBhIG5ldyBzY3JlZW4gbmFtZSAqL1xuICBAT3V0cHV0KCkgY3JlYXRlU2NyZWVuTmFtZVJlcXVlc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIHNlYXJjaGVzIHNjcmVlbiBuYW1lcyAoc2VydmVyIHNlYXJjaCkgKi9cbiAgQE91dHB1dCgpIHNlYXJjaFNjcmVlbk5hbWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIHNjcm9sbHMgdG8gbG9hZCBtb3JlIHNjcmVlbiBuYW1lcyAocGFzc2VzIGN1cnJlbnQgc2VhcmNoIHF1ZXJ5KSAqL1xuICBAT3V0cHV0KCkgbG9hZE1vcmVTY3JlZW5OYW1lcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAvKiogRW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIFwiU2VsZWN0IGZyb20gRWxlbWVudCBsaXN0XCIgb3IgXCJDYW5jZWxcIiAqL1xuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvKiogRW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIFwiRWRpdCBpbiBkZXB0aFwiICovXG4gIEBPdXRwdXQoKSBlZGl0SW5EZXB0aCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBmb3JtITogRm9ybUdyb3VwO1xuICAvKiogTGFiZWxzICh0YWdzKSBhcyBzdHJpbmcgYXJyYXkgZm9yIG11bHRpLXRhZyBpbnB1dCAqL1xuICBmb3JtTGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKiBDdXJyZW50IHRhZyBpbnB1dCB2YWx1ZSAqL1xuICB0YWdJbnB1dFZhbHVlID0gJyc7XG4gIC8qKiBDb25maWcgZm9yIHNjcmVlbiBuYW1lIGR5bmFtaWMtc2VsZWN0IChzZXJ2ZXIgc2VhcmNoLCBhbGxvd0N1c3RvbVZhbHVlLCBpbmZpbml0ZSBzY3JvbGwpICovXG4gIHNjcmVlbk5hbWVTZWxlY3RDb25maWchOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWc7XG4gIC8qKiBXaGV0aGVyIHdlJ3JlIHNhdmluZyAoZGlzYWJsZSBidXR0b25zKSAqL1xuICBzYXZpbmcgPSBmYWxzZTtcblxuICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBmYj86IEZvcm1CdWlsZGVyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgY2RyPzogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5mYiA9IGZiIHx8IG5ldyBGb3JtQnVpbGRlcigpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc2NyZWVuTmFtZU9wdGlvbnMnXSB8fCBjaGFuZ2VzWydoYXNNb3JlU2NyZWVuTmFtZXMnXSB8fCBjaGFuZ2VzWydpc0xvYWRpbmdTY3JlZW5OYW1lcyddKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNjcmVlbk5hbWVTZWxlY3RDb25maWcoKTtcbiAgICB9XG4gICAgaWYgKChjaGFuZ2VzWydlbGVtZW50J10gfHwgY2hhbmdlc1snZWxlbWVudElkJ10pICYmIHRoaXMuZWxlbWVudElkKSB7XG4gICAgICB0aGlzLnBvcHVsYXRlRm9ybUZvckVkaXQoKTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZXNbJ2VsZW1lbnQnXSAmJiAhdGhpcy5lbGVtZW50SWQgJiYgdGhpcy5pc0NyZWF0ZU1vZGUpIHtcbiAgICAgIHRoaXMucG9wdWxhdGVGb3JtRm9yQ3JlYXRlV2l0aEVsZW1lbnQoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbGVtZW50SWQpIHtcbiAgICAgIHRoaXMucG9wdWxhdGVGb3JtRm9yRWRpdCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0NyZWF0ZU1vZGUgJiYgdGhpcy5lbGVtZW50KSB7XG4gICAgICB0aGlzLnBvcHVsYXRlRm9ybUZvckNyZWF0ZVdpdGhFbGVtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHNjcmVlbk5hbWVJZDogW251bGwgYXMgbnVtYmVyIHwgbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHZhbHVlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVTY3JlZW5OYW1lU2VsZWN0Q29uZmlnKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNjcmVlbk5hbWVTZWxlY3RDb25maWcoKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0czogU2VsZWN0T3B0aW9uW10gPSAodGhpcy5zY3JlZW5OYW1lT3B0aW9ucyB8fCBbXSkubWFwKChvKSA9PiAoe1xuICAgICAgaWQ6IG8uaWQsXG4gICAgICB2YWx1ZTogby5pZCxcbiAgICAgIG5hbWU6IG8ubmFtZSxcbiAgICAgIGxhYmVsOiBvLm5hbWUsXG4gICAgfSkpO1xuICAgIGNvbnN0IGN1cnJlbnRJZCA9IHRoaXMuZm9ybT8uZ2V0KCdzY3JlZW5OYW1lSWQnKT8udmFsdWU7XG4gICAgaWYgKGN1cnJlbnRJZCAmJiB0aGlzLmVsZW1lbnQ/LnNjcmVlbk5hbWVJZCA9PT0gY3VycmVudElkICYmIHRoaXMuZWxlbWVudD8uc2NyZWVuTmFtZSkge1xuICAgICAgY29uc3QgZXhpc3RzID0gb3B0cy5zb21lKChvKSA9PiBvLmlkID09PSBjdXJyZW50SWQpO1xuICAgICAgaWYgKCFleGlzdHMpIHtcbiAgICAgICAgb3B0cy51bnNoaWZ0KHtcbiAgICAgICAgICBpZDogY3VycmVudElkLFxuICAgICAgICAgIHZhbHVlOiBjdXJyZW50SWQsXG4gICAgICAgICAgbmFtZTogU3RyaW5nKHRoaXMuZWxlbWVudC5zY3JlZW5OYW1lKSxcbiAgICAgICAgICBsYWJlbDogU3RyaW5nKHRoaXMuZWxlbWVudC5zY3JlZW5OYW1lKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2NyZWVuTmFtZVNlbGVjdENvbmZpZyA9IHtcbiAgICAgIGtleTogJ3NjcmVlbk5hbWVJZCcsXG4gICAgICBsYWJlbDogJ1NjcmVlbiBOYW1lJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IG9yIGNyZWF0ZSBzY3JlZW4nLFxuICAgICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICAgIHNlcnZlclNlYXJjaDogdHJ1ZSxcbiAgICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWUsXG4gICAgICBvcHRpb25zOiBvcHRzLFxuICAgICAgaGFzTW9yZTogdGhpcy5oYXNNb3JlU2NyZWVuTmFtZXMsXG4gICAgICBpc0xvYWRpbmc6IHRoaXMuaXNMb2FkaW5nU2NyZWVuTmFtZXMsXG4gICAgICBvblNlYXJjaDogKHEpID0+IHRoaXMuc2VhcmNoU2NyZWVuTmFtZS5lbWl0KHEgfHwgJycpLFxuICAgICAgb25Mb2FkTW9yZTogKHEpID0+IHRoaXMubG9hZE1vcmVTY3JlZW5OYW1lcy5lbWl0KHEgfHwgJycpLFxuICAgIH07XG4gICAgdGhpcy5jZHI/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUZvcm1Gb3JFZGl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVsZW1lbnQgJiYgdGhpcy5lbGVtZW50SWQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5pc0VkaXRNb2RlID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNDcmVhdGVNb2RlID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIG5hbWU6IHRoaXMuZWxlbWVudC50aXRsZSA/PyAnJyxcbiAgICAgICAgc2NyZWVuTmFtZUlkOiB0aGlzLmVsZW1lbnQuc2NyZWVuTmFtZUlkID8/IG51bGwsXG4gICAgICAgIHZhbHVlOiB0aGlzLmVsZW1lbnQuc2VsZWN0b3IgPz8gJycsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZm9ybUxhYmVscyA9IFsuLi4odGhpcy5lbGVtZW50LmxhYmVscyB8fCBbXSldO1xuICAgICAgdGhpcy51cGRhdGVTY3JlZW5OYW1lU2VsZWN0Q29uZmlnKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0NyZWF0ZU1vZGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9ybUxhYmVscyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLmNkcj8ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlRm9ybUZvckNyZWF0ZVdpdGhFbGVtZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaXNDcmVhdGVNb2RlID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBuYW1lOiB0aGlzLmVsZW1lbnQudGl0bGUgPz8gJycsXG4gICAgICAgIHNjcmVlbk5hbWVJZDogdGhpcy5lbGVtZW50LnNjcmVlbk5hbWVJZCA/PyBudWxsLFxuICAgICAgICB2YWx1ZTogdGhpcy5lbGVtZW50LnNlbGVjdG9yID8/ICcnLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmZvcm1MYWJlbHMgPSBbLi4uKHRoaXMuZWxlbWVudC5sYWJlbHMgfHwgW10pXTtcbiAgICAgIHRoaXMudXBkYXRlU2NyZWVuTmFtZVNlbGVjdENvbmZpZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzQ3JlYXRlTW9kZSA9IHRydWU7XG4gICAgICB0aGlzLmlzRWRpdE1vZGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9ybUxhYmVscyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLmNkcj8ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQ2FsbGVkIGJ5IHBhcmVudCB3aGVuIGEgbmV3IHNjcmVlbiBuYW1lIHdhcyBjcmVhdGVkIChzbyB3ZSBjYW4gc2V0IHRoZSBzZWxlY3RlZCB2YWx1ZSkgKi9cbiAgc2V0Q3JlYXRlZFNjcmVlbk5hbWUob3B0OiB7IGlkOiBudW1iZXI7IG5hbWU6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLmdldCgnc2NyZWVuTmFtZUlkJyk/LnNldFZhbHVlKG9wdC5pZCk7XG4gICAgdGhpcy51cGRhdGVTY3JlZW5OYW1lU2VsZWN0Q29uZmlnKCk7XG4gICAgdGhpcy5jZHI/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25BcHBseSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PlxuICAgICAgICB0aGlzLmZvcm0uZ2V0KGtleSk/Lm1hcmtBc1RvdWNoZWQoKVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm0udmFsdWU7XG4gICAgY29uc3Qgc2NyZWVuTmFtZUlkID0gZm9ybVZhbHVlLnNjcmVlbk5hbWVJZDtcbiAgICBjb25zdCBzZWxlY3RlZE9wdCA9IHRoaXMuc2NyZWVuTmFtZU9wdGlvbnMuZmluZCgobykgPT4gby5pZCA9PT0gc2NyZWVuTmFtZUlkKTtcbiAgICBjb25zdCBzY3JlZW5OYW1lTmFtZSA9IHNlbGVjdGVkT3B0Py5uYW1lID8gU3RyaW5nKHNlbGVjdGVkT3B0Lm5hbWUpLnRyaW0oKSA6ICcnO1xuICAgIGlmICghc2NyZWVuTmFtZUlkIHx8ICFzY3JlZW5OYW1lTmFtZSkge1xuICAgICAgdGhpcy5mb3JtLmdldCgnc2NyZWVuTmFtZUlkJyk/LnNldEVycm9ycyh7IHJlcXVpcmVkOiB0cnVlIH0pO1xuICAgICAgdGhpcy5mb3JtLmdldCgnc2NyZWVuTmFtZUlkJyk/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XG4gICAgdGhpcy5jZHI/Lm1hcmtGb3JDaGVjaygpO1xuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIG5hbWU6IGZvcm1WYWx1ZS5uYW1lLnRyaW0oKSxcbiAgICAgIHNjcmVlbk5hbWVJZCxcbiAgICAgIHNjcmVlbk5hbWVOYW1lLFxuICAgICAgbG9jYXRvclZhbHVlOiBmb3JtVmFsdWUudmFsdWUudHJpbSgpLFxuICAgICAgbGFiZWxzOiBbLi4udGhpcy5mb3JtTGFiZWxzXSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuaXNFZGl0TW9kZSAmJiB0aGlzLmVsZW1lbnRJZCkge1xuICAgICAgdGhpcy51cGRhdGVFbGVtZW50LmVtaXQoe1xuICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICBlbGVtZW50SWQ6IHRoaXMuZWxlbWVudElkLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3JlYXRlRWxlbWVudC5lbWl0KHBheWxvYWQpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ3JlYXRlT3JVcGRhdGVTdWNjZXNzKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgdGhpcy5jZHI/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25DcmVhdGVPclVwZGF0ZUVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgdGhpcy5jZHI/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgb25FZGl0SW5EZXB0aChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuZWRpdEluRGVwdGguZW1pdCgpO1xuICB9XG5cbiAgZ2V0Rm9ybUNvbnRyb2woY29udHJvbE5hbWU6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChjb250cm9sTmFtZSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBnZXRGb3JtQ29udHJvbFZhbHVlKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KGNvbnRyb2xOYW1lKT8udmFsdWUgfHwgJyc7XG4gIH1cblxuICBvbkZvcm1Db250cm9sQ2hhbmdlKGNvbnRyb2xOYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IFtjb250cm9sTmFtZV06IHZhbHVlIH0pO1xuICAgIHRoaXMuY2RyPy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKiBBZGQgYSB0YWcgKGxhYmVsKSAqL1xuICBhZGRUYWcodGFnPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdCA9ICh0YWcgfHwgdGhpcy50YWdJbnB1dFZhbHVlIHx8ICcnKS50cmltKCk7XG4gICAgaWYgKHQgJiYgIXRoaXMuZm9ybUxhYmVscy5pbmNsdWRlcyh0KSkge1xuICAgICAgdGhpcy5mb3JtTGFiZWxzID0gWy4uLnRoaXMuZm9ybUxhYmVscywgdF07XG4gICAgICB0aGlzLnRhZ0lucHV0VmFsdWUgPSAnJztcbiAgICAgIHRoaXMuY2RyPy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVUYWcodGFnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1MYWJlbHMgPSB0aGlzLmZvcm1MYWJlbHMuZmlsdGVyKChsKSA9PiBsICE9PSB0YWcpO1xuICAgIHRoaXMuY2RyPy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uVGFnSW5wdXRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcsJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuYWRkVGFnKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRhZ3MgdG8gcmVuZGVyIGFzIGNoaXBzIChsaW1pdGVkKSAqL1xuICBnZXQgdmlzaWJsZVRhZ3MoKTogc3RyaW5nW10ge1xuICAgIGlmICghdGhpcy5mb3JtTGFiZWxzIHx8IHRoaXMuZm9ybUxhYmVscy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1MYWJlbHMgfHwgW107XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKiBUb29sdGlwIHRleHQgc2hvd2luZyBhbGwgdGFncyAqL1xuICBnZXQgYWxsVGFnc1Rvb2x0aXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuZm9ybUxhYmVscyB8fCBbXSkuam9pbignLCAnKTtcbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC00IGNxYS1weC0xIGNxYS1wdC0zXCI+XG4gIDxkaXYgKm5nSWY9XCJpc0VsZW1lbnRMb2FkaW5nICYmIGlzRWRpdE1vZGVcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtZ2FwLTMgY3FhLXB5LThcIj5cbiAgICA8c3ZnIGNsYXNzPVwiY3FhLWFuaW1hdGUtc3BpbiBjcWEtaC02IGNxYS13LTYgY3FhLXRleHQtWyMzRjQzRUVdXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgPGNpcmNsZSBjbGFzcz1cImNxYS1vcGFjaXR5LTI1XCIgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiMTBcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCI0XCI+PC9jaXJjbGU+XG4gICAgICA8cGF0aCBjbGFzcz1cImNxYS1vcGFjaXR5LTc1XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNNCAxMmE4IDggMCAwMTgtOFYwQzUuMzczIDAgMCA1LjM3MyAwIDEyaDR6bTIgNS4yOTFBNy45NjIgNy45NjIgMCAwMTQgMTJIMGMwIDMuMDQyIDEuMTM1IDUuODI0IDMgNy45MzhsMy0yLjY0N3pcIj48L3BhdGg+XG4gICAgPC9zdmc+XG4gICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLXRleHQtc21cIj5Mb2FkaW5nIGVsZW1lbnQgZGF0YS4uLjwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhaXNFbGVtZW50TG9hZGluZ1wiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWdhcC0xLjVcIj5cbiAgICA8Y3FhLWN1c3RvbS1pbnB1dCBcbiAgICAgIGNsYXNzPVwiY3FhLXctMS8yXCIgXG4gICAgICBsYWJlbD1cIk5hbWVcIiBcbiAgICAgIHBsYWNlaG9sZGVyPVwiZGVmYXVsdC1lbGVtZW50XCJcbiAgICAgIFt2YWx1ZV09XCJnZXRGb3JtQ29udHJvbFZhbHVlKCduYW1lJylcIlxuICAgICAgW2Vycm9yc109XCJnZXRGb3JtQ29udHJvbCgnbmFtZScpPy50b3VjaGVkICYmIGdldEZvcm1Db250cm9sKCduYW1lJyk/LmludmFsaWQgPyBbJ05hbWUgaXMgcmVxdWlyZWQnXSA6IFtdXCJcbiAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkZvcm1Db250cm9sQ2hhbmdlKCduYW1lJywgJGV2ZW50KVwiPlxuICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXctMS8yXCI+XG4gICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFtmb3JtXT1cImZvcm1cIiBbY29uZmlnXT1cInNjcmVlbk5hbWVTZWxlY3RDb25maWdcIlxuICAgICAgICAoYWRkQ3VzdG9tVmFsdWUpPVwiY3JlYXRlU2NyZWVuTmFtZVJlcXVlc3QuZW1pdCgkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtdy1mdWxsXCI+XG4gICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICAgIDxkaXYgKm5nSWY9XCJnZXRGb3JtQ29udHJvbCgnc2NyZWVuTmFtZUlkJyk/LnRvdWNoZWQgJiYgZ2V0Rm9ybUNvbnRyb2woJ3NjcmVlbk5hbWVJZCcpPy5pbnZhbGlkXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xIGNxYS1tdC0xLjVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdGFydCBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgd2lkdGg9XCIxNFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIxNFwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE0IDE0XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTAgY3FhLW10LTAuNVwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk03IDEuNzVDNC4xIDEuNzUgMS43NSA0LjEgMS43NSA3QzEuNzUgOS45IDQuMSAxMi4yNSA3IDEyLjI1QzkuOSAxMi4yNSAxMi4yNSA5LjkgMTIuMjUgN0MxMi4yNSA0LjEgOS45IDEuNzUgNyAxLjc1Wk03IDkuNjI1QzYuNjU2MjUgOS42MjUgNi4zNzUgOS4zNDM3NSA2LjM3NSA5VjdDNi4zNzUgNi42NTYyNSA2LjY1NjI1IDYuMzc1IDcgNi4zNzVDNy4zNDM3NSA2LjM3NSA3LjYyNSA2LjY1NjI1IDcuNjI1IDdWOUM3LjYyNSA5LjM0Mzc1IDcuMzQzNzUgOS42MjUgNyA5LjYyNVpNNy42MjUgNS4yNUg2LjM3NVY0SDcuNjI1VjUuMjVaXCIgZmlsbD1cIiNFRjQ0NDRcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bI0VGNDQ0NF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1sZWFkaW5nLVsxOHB4XVwiPlxuICAgICAgICAgICAgU2NyZWVuIE5hbWUgaXMgcmVxdWlyZWRcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWxlbWVudExvYWRpbmdcIj5cbiAgICA8Y3FhLWN1c3RvbS1pbnB1dCBcbiAgICAgIGNsYXNzPVwiY3FhLXctZnVsbFwiICBcbiAgICAgIGxhYmVsPVwiRW50ZXIgVmFsdWVcIiBcbiAgICAgIHBsYWNlaG9sZGVyPVwiI2RlZmF1bHRfaWQgb3IgeHBhdGhcIlxuICAgICAgW3ZhbHVlXT1cImdldEZvcm1Db250cm9sVmFsdWUoJ3ZhbHVlJylcIlxuICAgICAgW2Vycm9yc109XCJnZXRGb3JtQ29udHJvbCgndmFsdWUnKT8udG91Y2hlZCAmJiBnZXRGb3JtQ29udHJvbCgndmFsdWUnKT8uaW52YWxpZCA/IFsnVmFsdWUgaXMgcmVxdWlyZWQnXSA6IFtdXCJcbiAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkZvcm1Db250cm9sQ2hhbmdlKCd2YWx1ZScsICRldmVudClcIj5cbiAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgPGRpdiBjbGFzcz1cImNxYS13LWZ1bGxcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1ibG9jayBjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbWItMVwiPkxhYmVscyAodGFncyk8L2xhYmVsPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LXdyYXAgY3FhLWdhcC0yIGNxYS1wLTIgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItZ3JheS0yMDAgY3FhLXJvdW5kZWQtbWQgY3FhLW1pbi1oLVs0MnB4XSBjcWEtbWF4LWgtWzgwcHhdIGNxYS1vdmVyZmxvdy15LWF1dG8gY3FhLXNjcm9sbGJhci10aGluIGNxYS1zY3JvbGxiYXItdHJhY2stdHJhbnNwYXJlbnQgY3FhLXNjcm9sbGJhci10aHVtYi1bI0U1RTdFQl0gY3FhLXNjcm9sbGJhci10aHVtYi1yb3VuZGVkLWZ1bGwgY3FhLXNjcm9sbGJhci10aHVtYi1ob3ZlcjpjcWEtYmctWyNEMUQ1REJdXCJcbiAgICAgICAgKm5nSWY9XCJmb3JtTGFiZWxzPy5sZW5ndGg7IGVsc2Ugbm9UYWdzQ29udGFpbmVyXCI+XG4gICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCB0YWcgb2YgdmlzaWJsZVRhZ3NcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS1weC0yIGNxYS1weS0xIGNxYS1iZy1bI2VmZjZmZl0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLVsjYzhlMGZmXSBjcWEtcm91bmRlZC1bOHB4XSBjcWEtdGV4dC1bMTJweF0gY3FhLXRleHQtWyMzRjQzRUVdXCJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0YWdcIlxuICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMTQwcHg7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwO1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLW1heC13LWZ1bGwgY3FhLXRydW5jYXRlXCI+e3sgdGFnIH19PC9zcGFuPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZW1vdmVUYWcodGFnKVwiIGNsYXNzPVwiY3FhLXAtMC41IGhvdmVyOmNxYS1iZy1bI2M4ZTBmZl0gY3FhLXJvdW5kZWQgY3FhLWN1cnNvci1wb2ludGVyIGNxYS1oLVsxNnB4XSBjcWEtdy1bMTZweF1cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdy0zICFjcWEtaC0zICFjcWEtdGV4dC1bMTRweF1cIj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LVsxMjBweF0gY3FhLXB4LTIgY3FhLXB5LTEgY3FhLXRleHQtc20gY3FhLWJvcmRlci0wIGNxYS1vdXRsaW5lLW5vbmUgY3FhLWJnLXRyYW5zcGFyZW50XCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgYW5kIHByZXNzIEVudGVyIHRvIGFkZFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWdJbnB1dFZhbHVlXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJvblRhZ0lucHV0S2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAoYmx1cik9XCJhZGRUYWcoKVwiXG4gICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI25vVGFnc0NvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LXdyYXAgY3FhLWdhcC0yIGNxYS1wLTIgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItZ3JheS0yMDAgY3FhLXJvdW5kZWQtbWQgY3FhLW1pbi1oLVs0MnB4XVwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LVsxMjBweF0gY3FhLXB4LTIgY3FhLXB5LTEgY3FhLXRleHQtc20gY3FhLWJvcmRlci0wIGNxYS1vdXRsaW5lLW5vbmUgY3FhLWJnLXRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVHlwZSBhbmQgcHJlc3MgRW50ZXIgdG8gYWRkXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnSW5wdXRWYWx1ZVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvblRhZ0lucHV0S2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgIChibHVyKT1cImFkZFRhZygpXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RyZXRjaCBjcWEtZ2FwLTIgY3FhLXctZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMFwiPlxuICAgICAgICAgIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJvdXRsaW5lZFwiIGJ0blNpemU9XCJsZ1wiIFt0ZXh0XT1cIihlbGVtZW50SWQgPyAnQ2FuY2VsJyA6ICdTZWxlY3QgZnJvbSBFbGVtZW50IGxpc3QnKVwiIFtmdWxsV2lkdGhdPVwidHJ1ZVwiIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cIidjcWEtdGV4dC1bMTRweF0gY3FhLXB5LVs5cHhdIGNxYS1ib3JkZXItWyM0MTQxNDZdJ1wiIFtkaXNhYmxlZF09XCJzYXZpbmdcIj48L2NxYS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMFwiPlxuICAgICAgICAgIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJmaWxsZWRcIiBidG5TaXplPVwibGdcIiBbdGV4dF09XCJzYXZpbmcgPyAnU2F2aW5nLi4uJyA6IChpc0VkaXRNb2RlID8gJ1VwZGF0ZScgOiAnQ3JlYXRlJylcIiBbZnVsbFdpZHRoXT1cInRydWVcIiAoY2xpY2tlZCk9XCJvbkFwcGx5KClcIlxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cIidjcWEtdGV4dC1bMTRweF0gY3FhLXB5LVs5cHhdIGNxYS1ib3JkZXItWyMzRjQzRUVdJ1wiIFtkaXNhYmxlZF09XCJzYXZpbmdcIj48L2NxYS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGEgaHJlZj1cIiNcIiAqbmdJZj1cImlzRWRpdEluRGVwdGhBdmFpbGFibGVcIiAoY2xpY2spPVwib25FZGl0SW5EZXB0aCgkZXZlbnQpXCJcbiAgICAgIGNsYXNzPVwiY3FhLXRleHQtWyMzRjQzRUVdIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjUgY3FhLW5vLXVuZGVybGluZSBob3ZlcjpjcWEtbm8tdW5kZXJsaW5lIGNxYS1zZWxmLWNlbnRlclwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS13LTQgIWNxYS1oLTQgIWNxYS10ZXh0LVsxNnB4XVwiPm9wZW5faW5fbmV3PC9tYXQtaWNvbj5cbiAgICAgIEVkaXQgaW4gZGVwdGggKG9wZW4gZGV0YWlsZWQgcmlnaHQgcGFuZWwpXG4gICAgPC9hPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG5cbiJdfQ==
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvZWxlbWVudC1wb3B1cC9lbGVtZW50LWZvcm0vZWxlbWVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvZWxlbWVudC1wb3B1cC9lbGVtZW50LWZvcm0vZWxlbWVudC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBV2pGLE1BQU0sT0FBTyxvQkFBb0I7SUFpRC9CLFlBQ2MsRUFBZ0IsRUFDQyxHQUF1QjtRQUF2QixRQUFHLEdBQUgsR0FBRyxDQUFvQjtRQWhEdEQsMkNBQTJDO1FBQ2xDLFlBQU8sR0FBNkIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3JGLHNEQUFzRDtRQUM3QyxzQkFBaUIsR0FBdUIsRUFBRSxDQUFDO1FBQ3BELGtFQUFrRTtRQUN6RCx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDN0Msc0VBQXNFO1FBQzdELHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUMvQyx1RkFBdUY7UUFDOUUscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQzNDLGlDQUFpQztRQUN4QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQ3JDLG1DQUFtQztRQUMxQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUV2Qyx5Q0FBeUM7UUFD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Q0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDOztpSEE5UVUsb0JBQW9CO3FHQUFwQixvQkFBb0IsK3JCQ3ZCakMsZ2hOQTRHQTsyRkRyRmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGtCQUFrQixRQUV0QixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsbUJBQ2IsdUJBQXVCLENBQUMsTUFBTTs7MEJBb0Q1QyxRQUFROzswQkFDUixRQUFROzRDQWpERixTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUVHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUVHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0RmllbGRDb25maWcsIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGVtZW50Q3JlYXRlUGF5bG9hZCwgRWxlbWVudFVwZGF0ZVBheWxvYWQsIFNjcmVlbk5hbWVPcHRpb24gfSBmcm9tICcuLi9lbGVtZW50LXBvcHVwLWZvcm0tZGF0YSc7XG5pbXBvcnQgeyBFbGVtZW50UG9wdXBEYXRhRWxlbWVudHMgfSBmcm9tICcuLi9lbGVtZW50LXBvcHVwLWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtZWxlbWVudC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZW1lbnQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvKiogRWxlbWVudCBJRCB3aGVuIGVkaXRpbmcgZXhpc3RpbmcgZWxlbWVudCAqL1xuICBASW5wdXQoKSBlbGVtZW50SWQ/OiBudW1iZXI7XG4gIC8qKiBDdXJyZW50IGVsZW1lbnQgZGF0YSAoZm9yIGVkaXQgbW9kZSkgKi9cbiAgQElucHV0KCkgZWxlbWVudDogRWxlbWVudFBvcHVwRGF0YUVsZW1lbnRzID0geyB0aXRsZTogJycsIHNlbGVjdG9yOiAnJywgbGFiZWxzOiBbXSB9O1xuICAvKiogU2NyZWVuIG5hbWUgb3B0aW9ucyBmb3IgYXV0b2NvbXBsZXRlIChmcm9tIEFQSSkgKi9cbiAgQElucHV0KCkgc2NyZWVuTmFtZU9wdGlvbnM6IFNjcmVlbk5hbWVPcHRpb25bXSA9IFtdO1xuICAvKiogV2hldGhlciBtb3JlIHNjcmVlbiBuYW1lcyBhcmUgYXZhaWxhYmxlIGZvciBpbmZpbml0ZSBzY3JvbGwgKi9cbiAgQElucHV0KCkgaGFzTW9yZVNjcmVlbk5hbWVzOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBUcnVlIHdoaWxlIHBhcmVudCBpcyBsb2FkaW5nIHNjcmVlbiBuYW1lcyAoc2VhcmNoIG9yIGxvYWQgbW9yZSkgKi9cbiAgQElucHV0KCkgaXNMb2FkaW5nU2NyZWVuTmFtZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFRydWUgd2hpbGUgcGFyZW50IGlzIGZldGNoaW5nIGxhdGVzdCBlbGVtZW50IGRhdGEgZm9yIGVkaXQgKHNob3dzIGxvYWRpbmcgc3RhdGUpICovXG4gIEBJbnB1dCgpIGlzRWxlbWVudExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFdoZXRoZXIgd2UncmUgaW4gZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFdoZXRoZXIgd2UncmUgaW4gY3JlYXRlIG1vZGUgKi9cbiAgQElucHV0KCkgaXNDcmVhdGVNb2RlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgZWRpdCBpbiBkZXB0aCBpcyBhdmFpbGFibGUgKi9cbiAgQElucHV0KCkgaXNFZGl0SW5EZXB0aEF2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIGNyZWF0ZXMgYSBuZXcgZWxlbWVudCAocGFyZW50IHNob3VsZCBjYWxsIEFQSSkgKi9cbiAgQE91dHB1dCgpIGNyZWF0ZUVsZW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRDcmVhdGVQYXlsb2FkPigpO1xuICAvKiogRW1pdHRlZCB3aGVuIHVzZXIgdXBkYXRlcyBhbiBlbGVtZW50IChwYXJlbnQgc2hvdWxkIGNhbGwgQVBJKSAqL1xuICBAT3V0cHV0KCkgdXBkYXRlRWxlbWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudFVwZGF0ZVBheWxvYWQ+KCk7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdXNlciByZXF1ZXN0cyB0byBjcmVhdGUgYSBuZXcgc2NyZWVuIG5hbWUgKi9cbiAgQE91dHB1dCgpIGNyZWF0ZVNjcmVlbk5hbWVSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdXNlciBzZWFyY2hlcyBzY3JlZW4gbmFtZXMgKHNlcnZlciBzZWFyY2gpICovXG4gIEBPdXRwdXQoKSBzZWFyY2hTY3JlZW5OYW1lID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdXNlciBzY3JvbGxzIHRvIGxvYWQgbW9yZSBzY3JlZW4gbmFtZXMgKHBhc3NlcyBjdXJyZW50IHNlYXJjaCBxdWVyeSkgKi9cbiAgQE91dHB1dCgpIGxvYWRNb3JlU2NyZWVuTmFtZXMgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrcyBcIlNlbGVjdCBmcm9tIEVsZW1lbnQgbGlzdFwiIG9yIFwiQ2FuY2VsXCIgKi9cbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrcyBcIkVkaXQgaW4gZGVwdGhcIiAqL1xuICBAT3V0cHV0KCkgZWRpdEluRGVwdGggPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZm9ybSE6IEZvcm1Hcm91cDtcbiAgLyoqIExhYmVscyAodGFncykgYXMgc3RyaW5nIGFycmF5IGZvciBtdWx0aS10YWcgaW5wdXQgKi9cbiAgZm9ybUxhYmVsczogc3RyaW5nW10gPSBbXTtcblxuICAvKiogQ3VycmVudCB0YWcgaW5wdXQgdmFsdWUgKi9cbiAgdGFnSW5wdXRWYWx1ZSA9ICcnO1xuICAvKiogQ29uZmlnIGZvciBzY3JlZW4gbmFtZSBkeW5hbWljLXNlbGVjdCAoc2VydmVyIHNlYXJjaCwgYWxsb3dDdXN0b21WYWx1ZSwgaW5maW5pdGUgc2Nyb2xsKSAqL1xuICBzY3JlZW5OYW1lU2VsZWN0Q29uZmlnITogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnO1xuICAvKiogV2hldGhlciB3ZSdyZSBzYXZpbmcgKGRpc2FibGUgYnV0dG9ucykgKi9cbiAgc2F2aW5nID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgZmI/OiBGb3JtQnVpbGRlcixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGNkcj86IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuZmIgPSBmYiB8fCBuZXcgRm9ybUJ1aWxkZXIoKTtcbiAgICB0aGlzLmluaXRpYWxpemVGb3JtKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3NjcmVlbk5hbWVPcHRpb25zJ10gfHwgY2hhbmdlc1snaGFzTW9yZVNjcmVlbk5hbWVzJ10gfHwgY2hhbmdlc1snaXNMb2FkaW5nU2NyZWVuTmFtZXMnXSkge1xuICAgICAgdGhpcy51cGRhdGVTY3JlZW5OYW1lU2VsZWN0Q29uZmlnKCk7XG4gICAgfVxuICAgIGlmICgoY2hhbmdlc1snZWxlbWVudCddIHx8IGNoYW5nZXNbJ2VsZW1lbnRJZCddKSAmJiB0aGlzLmVsZW1lbnRJZCkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZvcm1Gb3JFZGl0KCk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzWydlbGVtZW50J10gJiYgIXRoaXMuZWxlbWVudElkICYmIHRoaXMuaXNDcmVhdGVNb2RlKSB7XG4gICAgICB0aGlzLnBvcHVsYXRlRm9ybUZvckNyZWF0ZVdpdGhFbGVtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWxlbWVudElkKSB7XG4gICAgICB0aGlzLnBvcHVsYXRlRm9ybUZvckVkaXQoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDcmVhdGVNb2RlICYmIHRoaXMuZWxlbWVudCkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZvcm1Gb3JDcmVhdGVXaXRoRWxlbWVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBzY3JlZW5OYW1lSWQ6IFtudWxsIGFzIG51bWJlciB8IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICB2YWx1ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlU2NyZWVuTmFtZVNlbGVjdENvbmZpZygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTY3JlZW5OYW1lU2VsZWN0Q29uZmlnKCk6IHZvaWQge1xuICAgIGNvbnN0IG9wdHM6IFNlbGVjdE9wdGlvbltdID0gKHRoaXMuc2NyZWVuTmFtZU9wdGlvbnMgfHwgW10pLm1hcCgobykgPT4gKHtcbiAgICAgIGlkOiBvLmlkLFxuICAgICAgdmFsdWU6IG8uaWQsXG4gICAgICBuYW1lOiBvLm5hbWUsXG4gICAgICBsYWJlbDogby5uYW1lLFxuICAgIH0pKTtcbiAgICBjb25zdCBjdXJyZW50SWQgPSB0aGlzLmZvcm0/LmdldCgnc2NyZWVuTmFtZUlkJyk/LnZhbHVlO1xuICAgIGlmIChjdXJyZW50SWQgJiYgdGhpcy5lbGVtZW50Py5zY3JlZW5OYW1lSWQgPT09IGN1cnJlbnRJZCAmJiB0aGlzLmVsZW1lbnQ/LnNjcmVlbk5hbWUpIHtcbiAgICAgIGNvbnN0IGV4aXN0cyA9IG9wdHMuc29tZSgobykgPT4gby5pZCA9PT0gY3VycmVudElkKTtcbiAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgIG9wdHMudW5zaGlmdCh7XG4gICAgICAgICAgaWQ6IGN1cnJlbnRJZCxcbiAgICAgICAgICB2YWx1ZTogY3VycmVudElkLFxuICAgICAgICAgIG5hbWU6IFN0cmluZyh0aGlzLmVsZW1lbnQuc2NyZWVuTmFtZSksXG4gICAgICAgICAgbGFiZWw6IFN0cmluZyh0aGlzLmVsZW1lbnQuc2NyZWVuTmFtZSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNjcmVlbk5hbWVTZWxlY3RDb25maWcgPSB7XG4gICAgICBrZXk6ICdzY3JlZW5OYW1lSWQnLFxuICAgICAgbGFiZWw6ICdTY3JlZW4gTmFtZScsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlbGVjdCBvciBjcmVhdGUgc2NyZWVuJyxcbiAgICAgIHNlYXJjaGFibGU6IHRydWUsXG4gICAgICBzZXJ2ZXJTZWFyY2g6IHRydWUsXG4gICAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlLFxuICAgICAgb3B0aW9uczogb3B0cyxcbiAgICAgIGhhc01vcmU6IHRoaXMuaGFzTW9yZVNjcmVlbk5hbWVzLFxuICAgICAgaXNMb2FkaW5nOiB0aGlzLmlzTG9hZGluZ1NjcmVlbk5hbWVzLFxuICAgICAgb25TZWFyY2g6IChxKSA9PiB0aGlzLnNlYXJjaFNjcmVlbk5hbWUuZW1pdChxIHx8ICcnKSxcbiAgICAgIG9uTG9hZE1vcmU6IChxKSA9PiB0aGlzLmxvYWRNb3JlU2NyZWVuTmFtZXMuZW1pdChxIHx8ICcnKSxcbiAgICB9O1xuICAgIHRoaXMuY2RyPy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgcG9wdWxhdGVGb3JtRm9yRWRpdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbGVtZW50ICYmIHRoaXMuZWxlbWVudElkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IHRydWU7XG4gICAgICB0aGlzLmlzQ3JlYXRlTW9kZSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBuYW1lOiB0aGlzLmVsZW1lbnQudGl0bGUgPz8gJycsXG4gICAgICAgIHNjcmVlbk5hbWVJZDogdGhpcy5lbGVtZW50LnNjcmVlbk5hbWVJZCA/PyBudWxsLFxuICAgICAgICB2YWx1ZTogdGhpcy5lbGVtZW50LnNlbGVjdG9yID8/ICcnLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmZvcm1MYWJlbHMgPSBbLi4uKHRoaXMuZWxlbWVudC5sYWJlbHMgfHwgW10pXTtcbiAgICAgIHRoaXMudXBkYXRlU2NyZWVuTmFtZVNlbGVjdENvbmZpZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRWRpdE1vZGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNDcmVhdGVNb2RlID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm1MYWJlbHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5jZHI/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUZvcm1Gb3JDcmVhdGVXaXRoRWxlbWVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbGVtZW50KSB7XG4gICAgICB0aGlzLmlzQ3JlYXRlTW9kZSA9IHRydWU7XG4gICAgICB0aGlzLmlzRWRpdE1vZGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgbmFtZTogdGhpcy5lbGVtZW50LnRpdGxlID8/ICcnLFxuICAgICAgICBzY3JlZW5OYW1lSWQ6IHRoaXMuZWxlbWVudC5zY3JlZW5OYW1lSWQgPz8gbnVsbCxcbiAgICAgICAgdmFsdWU6IHRoaXMuZWxlbWVudC5zZWxlY3RvciA/PyAnJyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5mb3JtTGFiZWxzID0gWy4uLih0aGlzLmVsZW1lbnQubGFiZWxzIHx8IFtdKV07XG4gICAgICB0aGlzLnVwZGF0ZVNjcmVlbk5hbWVTZWxlY3RDb25maWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0NyZWF0ZU1vZGUgPSB0cnVlO1xuICAgICAgdGhpcy5pc0VkaXRNb2RlID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm1MYWJlbHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5jZHI/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIENhbGxlZCBieSBwYXJlbnQgd2hlbiBhIG5ldyBzY3JlZW4gbmFtZSB3YXMgY3JlYXRlZCAoc28gd2UgY2FuIHNldCB0aGUgc2VsZWN0ZWQgdmFsdWUpICovXG4gIHNldENyZWF0ZWRTY3JlZW5OYW1lKG9wdDogeyBpZDogbnVtYmVyOyBuYW1lOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5nZXQoJ3NjcmVlbk5hbWVJZCcpPy5zZXRWYWx1ZShvcHQuaWQpO1xuICAgIHRoaXMudXBkYXRlU2NyZWVuTmFtZVNlbGVjdENvbmZpZygpO1xuICAgIHRoaXMuY2RyPy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQXBwbHkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpLmZvckVhY2goKGtleSkgPT5cbiAgICAgICAgdGhpcy5mb3JtLmdldChrZXkpPy5tYXJrQXNUb3VjaGVkKClcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtLnZhbHVlO1xuICAgIGNvbnN0IHNjcmVlbk5hbWVJZCA9IGZvcm1WYWx1ZS5zY3JlZW5OYW1lSWQ7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHQgPSB0aGlzLnNjcmVlbk5hbWVPcHRpb25zLmZpbmQoKG8pID0+IG8uaWQgPT09IHNjcmVlbk5hbWVJZCk7XG4gICAgY29uc3Qgc2NyZWVuTmFtZU5hbWUgPSBzZWxlY3RlZE9wdD8ubmFtZSA/IFN0cmluZyhzZWxlY3RlZE9wdC5uYW1lKS50cmltKCkgOiAnJztcbiAgICBpZiAoIXNjcmVlbk5hbWVJZCB8fCAhc2NyZWVuTmFtZU5hbWUpIHtcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NjcmVlbk5hbWVJZCcpPy5zZXRFcnJvcnMoeyByZXF1aXJlZDogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NjcmVlbk5hbWVJZCcpPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgIHRoaXMuY2RyPy5tYXJrRm9yQ2hlY2soKTtcblxuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBuYW1lOiBmb3JtVmFsdWUubmFtZS50cmltKCksXG4gICAgICBzY3JlZW5OYW1lSWQsXG4gICAgICBzY3JlZW5OYW1lTmFtZSxcbiAgICAgIGxvY2F0b3JWYWx1ZTogZm9ybVZhbHVlLnZhbHVlLnRyaW0oKSxcbiAgICAgIGxhYmVsczogWy4uLnRoaXMuZm9ybUxhYmVsc10sXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmlzRWRpdE1vZGUgJiYgdGhpcy5lbGVtZW50SWQpIHtcbiAgICAgIHRoaXMudXBkYXRlRWxlbWVudC5lbWl0KHtcbiAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgZWxlbWVudElkOiB0aGlzLmVsZW1lbnRJZCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNyZWF0ZUVsZW1lbnQuZW1pdChwYXlsb2FkKTtcbiAgICB9XG4gIH1cblxuICBvbkNyZWF0ZU9yVXBkYXRlU3VjY2VzcygpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2RyPy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQ3JlYXRlT3JVcGRhdGVFcnJvcigpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2RyPy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIG9uRWRpdEluRGVwdGgoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmVkaXRJbkRlcHRoLmVtaXQoKTtcbiAgfVxuXG4gIGdldEZvcm1Db250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoY29udHJvbE5hbWUpIGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0Rm9ybUNvbnRyb2xWYWx1ZShjb250cm9sTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChjb250cm9sTmFtZSk/LnZhbHVlIHx8ICcnO1xuICB9XG5cbiAgb25Gb3JtQ29udHJvbENoYW5nZShjb250cm9sTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBbY29udHJvbE5hbWVdOiB2YWx1ZSB9KTtcbiAgICB0aGlzLmNkcj8ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQWRkIGEgdGFnIChsYWJlbCkgKi9cbiAgYWRkVGFnKHRhZz86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHQgPSAodGFnIHx8IHRoaXMudGFnSW5wdXRWYWx1ZSB8fCAnJykudHJpbSgpO1xuICAgIGlmICh0ICYmICF0aGlzLmZvcm1MYWJlbHMuaW5jbHVkZXModCkpIHtcbiAgICAgIHRoaXMuZm9ybUxhYmVscyA9IFsuLi50aGlzLmZvcm1MYWJlbHMsIHRdO1xuICAgICAgdGhpcy50YWdJbnB1dFZhbHVlID0gJyc7XG4gICAgICB0aGlzLmNkcj8ubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlVGFnKHRhZzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtTGFiZWxzID0gdGhpcy5mb3JtTGFiZWxzLmZpbHRlcigobCkgPT4gbCAhPT0gdGFnKTtcbiAgICB0aGlzLmNkcj8ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvblRhZ0lucHV0S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnLCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmFkZFRhZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBUYWdzIHRvIHJlbmRlciBhcyBjaGlwcyAobGltaXRlZCkgKi9cbiAgZ2V0IHZpc2libGVUYWdzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuZm9ybUxhYmVscyB8fCB0aGlzLmZvcm1MYWJlbHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtTGFiZWxzIHx8IFtdO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKiogVG9vbHRpcCB0ZXh0IHNob3dpbmcgYWxsIHRhZ3MgKi9cbiAgZ2V0IGFsbFRhZ3NUb29sdGlwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm1MYWJlbHMgfHwgW10pLmpvaW4oJywgJyk7XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtNCBjcWEtcHgtMSBjcWEtcHQtM1wiPlxuICA8ZGl2ICpuZ0lmPVwiaXNFbGVtZW50TG9hZGluZyAmJiBpc0VkaXRNb2RlXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWdhcC0zIGNxYS1weS04XCI+XG4gICAgPHN2ZyBjbGFzcz1cImNxYS1hbmltYXRlLXNwaW4gY3FhLWgtNiBjcWEtdy02IGNxYS10ZXh0LVsjM0Y0M0VFXVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxjaXJjbGUgY2xhc3M9XCJjcWEtb3BhY2l0eS0yNVwiIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjEwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiNFwiPjwvY2lyY2xlPlxuICAgICAgPHBhdGggY2xhc3M9XCJjcWEtb3BhY2l0eS03NVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTQgMTJhOCA4IDAgMDE4LThWMEM1LjM3MyAwIDAgNS4zNzMgMCAxMmg0em0yIDUuMjkxQTcuOTYyIDcuOTYyIDAgMDE0IDEySDBjMCAzLjA0MiAxLjEzNSA1LjgyNCAzIDcuOTM4bDMtMi42NDd6XCI+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyM2QjcyODBdIGNxYS10ZXh0LXNtXCI+TG9hZGluZyBlbGVtZW50IGRhdGEuLi48L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWlzRWxlbWVudExvYWRpbmdcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1nYXAtMS41XCI+XG4gICAgPGNxYS1jdXN0b20taW5wdXQgXG4gICAgICBjbGFzcz1cImNxYS13LTEvMlwiIFxuICAgICAgbGFiZWw9XCJOYW1lXCIgXG4gICAgICBwbGFjZWhvbGRlcj1cImRlZmF1bHQtZWxlbWVudFwiXG4gICAgICBbdmFsdWVdPVwiZ2V0Rm9ybUNvbnRyb2xWYWx1ZSgnbmFtZScpXCJcbiAgICAgIFtlcnJvcnNdPVwiZ2V0Rm9ybUNvbnRyb2woJ25hbWUnKT8udG91Y2hlZCAmJiBnZXRGb3JtQ29udHJvbCgnbmFtZScpPy5pbnZhbGlkID8gWydOYW1lIGlzIHJlcXVpcmVkJ10gOiBbXVwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25Gb3JtQ29udHJvbENoYW5nZSgnbmFtZScsICRldmVudClcIj5cbiAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgPGRpdiBjbGFzcz1cImNxYS13LTEvMlwiPlxuICAgICAgPGNxYS1keW5hbWljLXNlbGVjdCBbZm9ybV09XCJmb3JtXCIgW2NvbmZpZ109XCJzY3JlZW5OYW1lU2VsZWN0Q29uZmlnXCJcbiAgICAgICAgKGFkZEN1c3RvbVZhbHVlKT1cImNyZWF0ZVNjcmVlbk5hbWVSZXF1ZXN0LmVtaXQoJGV2ZW50LnZhbHVlKVwiXG4gICAgICAgIGNsYXNzPVwiY3FhLXctZnVsbFwiPlxuICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZ2V0Rm9ybUNvbnRyb2woJ3NjcmVlbk5hbWVJZCcpPy50b3VjaGVkICYmIGdldEZvcm1Db250cm9sKCdzY3JlZW5OYW1lSWQnKT8uaW52YWxpZFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMSBjcWEtbXQtMS41XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0xLjVcIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIHdpZHRoPVwiMTRcIlxuICAgICAgICAgICAgaGVpZ2h0PVwiMTRcIlxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNCAxNFwiXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4LXNocmluay0wIGNxYS1tdC0wLjVcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNNyAxLjc1QzQuMSAxLjc1IDEuNzUgNC4xIDEuNzUgN0MxLjc1IDkuOSA0LjEgMTIuMjUgNyAxMi4yNUM5LjkgMTIuMjUgMTIuMjUgOS45IDEyLjI1IDdDMTIuMjUgNC4xIDkuOSAxLjc1IDcgMS43NVpNNyA5LjYyNUM2LjY1NjI1IDkuNjI1IDYuMzc1IDkuMzQzNzUgNi4zNzUgOVY3QzYuMzc1IDYuNjU2MjUgNi42NTYyNSA2LjM3NSA3IDYuMzc1QzcuMzQzNzUgNi4zNzUgNy42MjUgNi42NTYyNSA3LjYyNSA3VjlDNy42MjUgOS4zNDM3NSA3LjM0Mzc1IDkuNjI1IDcgOS42MjVaTTcuNjI1IDUuMjVINi4zNzVWNEg3LjYyNVY1LjI1WlwiIGZpbGw9XCIjRUY0NDQ0XCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyNFRjQ0NDRdIGNxYS1mb250LW1lZGl1bSBjcWEtbGVhZGluZy1bMThweF1cIj5cbiAgICAgICAgICAgIFNjcmVlbiBOYW1lIGlzIHJlcXVpcmVkXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0VsZW1lbnRMb2FkaW5nXCI+XG4gICAgPGNxYS1jdXN0b20taW5wdXQgXG4gICAgICBjbGFzcz1cImNxYS13LWZ1bGxcIiAgXG4gICAgICBsYWJlbD1cIkVudGVyIFZhbHVlXCIgXG4gICAgICBwbGFjZWhvbGRlcj1cIiNkZWZhdWx0X2lkIG9yIHhwYXRoXCJcbiAgICAgIFt2YWx1ZV09XCJnZXRGb3JtQ29udHJvbFZhbHVlKCd2YWx1ZScpXCJcbiAgICAgIFtlcnJvcnNdPVwiZ2V0Rm9ybUNvbnRyb2woJ3ZhbHVlJyk/LnRvdWNoZWQgJiYgZ2V0Rm9ybUNvbnRyb2woJ3ZhbHVlJyk/LmludmFsaWQgPyBbJ1ZhbHVlIGlzIHJlcXVpcmVkJ10gOiBbXVwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25Gb3JtQ29udHJvbENoYW5nZSgndmFsdWUnLCAkZXZlbnQpXCI+XG4gICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdy1mdWxsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtYmxvY2sgY3FhLXRleHQtWzE0cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW1iLTFcIj5MYWJlbHMgKHRhZ3MpPC9sYWJlbD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1nYXAtMiBjcWEtcC0yIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLWdyYXktMjAwIGNxYS1yb3VuZGVkLW1kIGNxYS1taW4taC1bNDJweF0gY3FhLW1heC1oLVs4MHB4XSBjcWEtb3ZlcmZsb3cteS1hdXRvIGNxYS1zY3JvbGxiYXItdGhpbiBjcWEtc2Nyb2xsYmFyLXRyYWNrLXRyYW5zcGFyZW50IGNxYS1zY3JvbGxiYXItdGh1bWItWyNFNUU3RUJdIGNxYS1zY3JvbGxiYXItdGh1bWItcm91bmRlZC1mdWxsIGNxYS1zY3JvbGxiYXItdGh1bWItaG92ZXI6Y3FhLWJnLVsjRDFENURCXVwiXG4gICAgICAgICpuZ0lmPVwiZm9ybUxhYmVscz8ubGVuZ3RoOyBlbHNlIG5vVGFnc0NvbnRhaW5lclwiPlxuICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgdGFnIG9mIHZpc2libGVUYWdzXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBjcWEtcHgtMiBjcWEtcHktMSBjcWEtYmctWyNlZmY2ZmZdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI2M4ZTBmZl0gY3FhLXJvdW5kZWQtWzhweF0gY3FhLXRleHQtWzEycHhdIGNxYS10ZXh0LVsjM0Y0M0VFXVwiXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwidGFnXCJcbiAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDE0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDtcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1tYXgtdy1mdWxsIGNxYS10cnVuY2F0ZVwiPnt7IHRhZyB9fTwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVtb3ZlVGFnKHRhZylcIiBjbGFzcz1cImNxYS1wLTAuNSBob3ZlcjpjcWEtYmctWyNjOGUwZmZdIGNxYS1yb3VuZGVkIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtaC1bMTZweF0gY3FhLXctWzE2cHhdXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXctMyAhY3FhLWgtMyAhY3FhLXRleHQtWzE0cHhdXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy1bMTIwcHhdIGNxYS1weC0yIGNxYS1weS0xIGNxYS10ZXh0LXNtIGNxYS1ib3JkZXItMCBjcWEtb3V0bGluZS1ub25lIGNxYS1iZy10cmFuc3BhcmVudFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJUeXBlIGFuZCBwcmVzcyBFbnRlciB0byBhZGRcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnSW5wdXRWYWx1ZVwiXG4gICAgICAgICAgKGtleWRvd24pPVwib25UYWdJbnB1dEtleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgKGJsdXIpPVwiYWRkVGFnKClcIlxuICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNub1RhZ3NDb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1nYXAtMiBjcWEtcC0yIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLWdyYXktMjAwIGNxYS1yb3VuZGVkLW1kIGNxYS1taW4taC1bNDJweF1cIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy1bMTIwcHhdIGNxYS1weC0yIGNxYS1weS0xIGNxYS10ZXh0LXNtIGNxYS1ib3JkZXItMCBjcWEtb3V0bGluZS1ub25lIGNxYS1iZy10cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgYW5kIHByZXNzIEVudGVyIHRvIGFkZFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZ0lucHV0VmFsdWVcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25UYWdJbnB1dEtleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAoYmx1cik9XCJhZGRUYWcoKVwiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0cmV0Y2ggY3FhLWdhcC0yIGNxYS13LWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTBcIj5cbiAgICAgICAgICA8Y3FhLWJ1dHRvbiB2YXJpYW50PVwib3V0bGluZWRcIiBidG5TaXplPVwibGdcIiBbdGV4dF09XCIoZWxlbWVudElkID8gJ0NhbmNlbCcgOiAnU2VsZWN0IGZyb20gRWxlbWVudCBsaXN0JylcIiBbZnVsbFdpZHRoXT1cInRydWVcIiAoY2xpY2tlZCk9XCJvbkNhbmNlbCgpXCJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLXRleHQtWzE0cHhdIGNxYS1weS1bOXB4XSBjcWEtYm9yZGVyLVsjNDE0MTQ2XSdcIiBbZGlzYWJsZWRdPVwic2F2aW5nXCI+PC9jcWEtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTBcIj5cbiAgICAgICAgICA8Y3FhLWJ1dHRvbiB2YXJpYW50PVwiZmlsbGVkXCIgYnRuU2l6ZT1cImxnXCIgW3RleHRdPVwic2F2aW5nID8gJ1NhdmluZy4uLicgOiAoaXNFZGl0TW9kZSA/ICdVcGRhdGUnIDogJ0NyZWF0ZScpXCIgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgKGNsaWNrZWQpPVwib25BcHBseSgpXCJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLXRleHQtWzE0cHhdIGNxYS1weS1bOXB4XSBjcWEtYm9yZGVyLVsjM0Y0M0VFXSdcIiBbZGlzYWJsZWRdPVwic2F2aW5nXCI+PC9jcWEtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxhIHJvbGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKm5nSWY9XCJpc0VkaXRJbkRlcHRoQXZhaWxhYmxlXCIgKGNsaWNrKT1cIm9uRWRpdEluRGVwdGgoJGV2ZW50KVwiXG4gICAgICBjbGFzcz1cImNxYS10ZXh0LVsjM0Y0M0VFXSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMS41IGNxYS1uby11bmRlcmxpbmUgaG92ZXI6Y3FhLW5vLXVuZGVybGluZSBjcWEtc2VsZi1jZW50ZXIgY3FhLWN1cnNvci1wb2ludGVyXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXctNCAhY3FhLWgtNCAhY3FhLXRleHQtWzE2cHhdXCI+b3Blbl9pbl9uZXc8L21hdC1pY29uPlxuICAgICAgRWRpdCBpbiBkZXB0aCAob3BlbiBkZXRhaWxlZCByaWdodCBwYW5lbClcbiAgICA8L2E+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cblxuIl19
|