@cqa-lib/cqa-ui 1.1.210 → 1.1.211
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/detail-side-panel/detail-side-panel.component.mjs +3 -3
- package/esm2020/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.mjs +3 -3
- package/esm2020/lib/test-case-details/test-case-details.component.mjs +3 -3
- package/esm2020/lib/test-case-details/test-case-details.models.mjs +9 -2
- package/fesm2015/cqa-lib-cqa-ui.mjs +17 -11
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +17 -11
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -94,10 +94,10 @@ export class TestCaseDetailsComponent {
|
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
TestCaseDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestCaseDetailsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
-
TestCaseDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestCaseDetailsComponent, selector: "cqa-test-case-details", inputs: { startInEditMode: "startInEditMode", descriptionTitle: "descriptionTitle", descriptionContent: "descriptionContent", showEditButton: "showEditButton", metadataItems: "metadataItems", labels: "labels", configTitle: "configTitle", configSections: "configSections", configSectionsRow2: "configSectionsRow2", platform: "platform", selectConfigOverrides: "selectConfigOverrides" }, outputs: { editDescription: "editDescription", saveChanges: "saveChanges", metadataLinkClick: "metadataLinkClick", selectSearch: "selectSearch", selectLoadMore: "selectLoadMore", selectOpened: "selectOpened", selectionChange: "selectionChange" }, ngImport: i0, template: "<!-- Edit mode: show edit form (Figma design) -->\n<cqa-test-case-details-edit\n *ngIf=\"editing\"\n [descriptionTitle]=\"descriptionTitle\"\n [descriptionContent]=\"descriptionContent\"\n [metadataItems]=\"metadataItems\"\n [labels]=\"labels\"\n [configTitle]=\"configTitle\"\n [configSections]=\"configSections\"\n [configSectionsRow2]=\"configSectionsRow2\"\n [platform]=\"platform\"\n [selectConfigOverrides]=\"selectConfigOverrides\"\n (save)=\"onSaveChanges($event)\"\n (cancel)=\"onCancelEdit()\"\n (selectSearch)=\"selectSearch.emit($event)\"\n (selectLoadMore)=\"selectLoadMore.emit($event)\"\n (selectOpened)=\"selectOpened.emit($event)\"\n (selectionChange)=\"selectionChange.emit($event)\">\n</cqa-test-case-details-edit>\n\n<!-- View mode: read-only details -->\n<div *ngIf=\"!editing\" class=\"cqa-self-stretch cqa-py-4 cqa-px-0 cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <!-- Description Section -->\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-inline-flex cqa-justify-between cqa-items-center\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div class=\"cqa-w-5 cqa-h-5 cqa-p-1 cqa-flex-shrink-0 cqa-bg-[#3F43EE1A] cqa-rounded-md cqa-inline-flex cqa-justify-center cqa-items-center\">\n <mat-icon class=\"cqa-text-[#1B1FEB] cqa-text-[12px] cqa-w-3 cqa-h-3 cqa-leading-none cqa-block\">description</mat-icon>\n </div>\n <span class=\"cqa-text-[#374151] cqa-text-sm cqa-font-semibold cqa-leading-[19.6px]\">{{ descriptionTitle }}</span>\n </div>\n <button\n *ngIf=\"showEditButton\"\n type=\"button\"\n class=\"cqa-flex cqa-justify-end cqa-items-center cqa-gap-2 cqa-text-[#A3A3A3] cqa-text-xs cqa-font-semibold hover:cqa-text-[#737373] cqa-transition-colors focus:cqa-outline-none focus-visible:cqa-ring-2 focus-visible:cqa-ring-[#3F43EE] focus-visible:cqa-ring-offset-2\"\n (click)=\"onEditClick()\">\n <mat-icon class=\"cqa-text-[14px] cqa-w-4 cqa-h-4\">edit</mat-icon>\n Edit\n </button>\n </div>\n <div *ngIf=\"descriptionContent\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start\">\n <div class=\"cqa-self-stretch cqa-text-[#111827] cqa-text-sm cqa-leading-[19.6px] cqa-font-normal\">{{ descriptionContent }}</div>\n </div>\n </div>\n\n <!-- Metadata Section -->\n <div *ngIf=\"metadataItems.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-grid cqa-grid-cols-3 cqa-gap-x-0 cqa-gap-y-4\">\n <ng-container *ngFor=\"let item of metadataItems; trackBy: trackByMetadataLabel\">\n <div class=\"cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-0.5\">\n <div class=\"cqa-text-[#6B7280] cqa-text-xs cqa-leading-[15px] cqa-font-medium\">{{ item.label }}</div>\n <div
|
|
97
|
+
TestCaseDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestCaseDetailsComponent, selector: "cqa-test-case-details", inputs: { startInEditMode: "startInEditMode", descriptionTitle: "descriptionTitle", descriptionContent: "descriptionContent", showEditButton: "showEditButton", metadataItems: "metadataItems", labels: "labels", configTitle: "configTitle", configSections: "configSections", configSectionsRow2: "configSectionsRow2", platform: "platform", selectConfigOverrides: "selectConfigOverrides" }, outputs: { editDescription: "editDescription", saveChanges: "saveChanges", metadataLinkClick: "metadataLinkClick", selectSearch: "selectSearch", selectLoadMore: "selectLoadMore", selectOpened: "selectOpened", selectionChange: "selectionChange" }, ngImport: i0, template: "<!-- Edit mode: show edit form (Figma design) -->\n<cqa-test-case-details-edit\n *ngIf=\"editing\"\n [descriptionTitle]=\"descriptionTitle\"\n [descriptionContent]=\"descriptionContent\"\n [metadataItems]=\"metadataItems\"\n [labels]=\"labels\"\n [configTitle]=\"configTitle\"\n [configSections]=\"configSections\"\n [configSectionsRow2]=\"configSectionsRow2\"\n [platform]=\"platform\"\n [selectConfigOverrides]=\"selectConfigOverrides\"\n (save)=\"onSaveChanges($event)\"\n (cancel)=\"onCancelEdit()\"\n (selectSearch)=\"selectSearch.emit($event)\"\n (selectLoadMore)=\"selectLoadMore.emit($event)\"\n (selectOpened)=\"selectOpened.emit($event)\"\n (selectionChange)=\"selectionChange.emit($event)\">\n</cqa-test-case-details-edit>\n\n<!-- View mode: read-only details -->\n<div *ngIf=\"!editing\" class=\"cqa-self-stretch cqa-py-4 cqa-px-0 cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <!-- Description Section -->\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-inline-flex cqa-justify-between cqa-items-center\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div class=\"cqa-w-5 cqa-h-5 cqa-p-1 cqa-flex-shrink-0 cqa-bg-[#3F43EE1A] cqa-rounded-md cqa-inline-flex cqa-justify-center cqa-items-center\">\n <mat-icon class=\"cqa-text-[#1B1FEB] cqa-text-[12px] cqa-w-3 cqa-h-3 cqa-leading-none cqa-block\">description</mat-icon>\n </div>\n <span class=\"cqa-text-[#374151] cqa-text-sm cqa-font-semibold cqa-leading-[19.6px]\">{{ descriptionTitle }}</span>\n </div>\n <button\n *ngIf=\"showEditButton\"\n type=\"button\"\n class=\"cqa-flex cqa-justify-end cqa-items-center cqa-gap-2 cqa-text-[#A3A3A3] cqa-text-xs cqa-font-semibold hover:cqa-text-[#737373] cqa-transition-colors focus:cqa-outline-none focus-visible:cqa-ring-2 focus-visible:cqa-ring-[#3F43EE] focus-visible:cqa-ring-offset-2\"\n (click)=\"onEditClick()\">\n <mat-icon class=\"cqa-text-[14px] cqa-w-4 cqa-h-4\">edit</mat-icon>\n Edit\n </button>\n </div>\n <div *ngIf=\"descriptionContent\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start\">\n <div class=\"cqa-self-stretch cqa-text-[#111827] cqa-text-sm cqa-leading-[19.6px] cqa-font-normal\">{{ descriptionContent }}</div>\n </div>\n </div>\n\n <!-- Metadata Section -->\n <div *ngIf=\"metadataItems.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-grid cqa-grid-cols-3 cqa-gap-x-0 cqa-gap-y-4\">\n <ng-container *ngFor=\"let item of metadataItems; trackBy: trackByMetadataLabel\">\n <div class=\"cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-0.5\">\n <div class=\"cqa-text-[#6B7280] cqa-text-xs cqa-leading-[15px] cqa-font-medium\">{{ item.label }}</div>\n <div\n class=\"cqa-flex cqa-justify-start cqa-items-end cqa-gap-[5px] cqa-min-w-0 cqa-w-full cqa-text-left cqa-text-[#0A0A0A] cqa-border cqa-border-[#F5F5F5]\">\n <mat-icon *ngIf=\"item.icon && (!item.iconLibrary || item.iconLibrary === 'mat')\" class=\"cqa-text-[#6B7280] cqa-text-sm cqa-w-4 cqa-h-4\">\n {{ item.icon }}\n </mat-icon>\n <span *ngIf=\"item.statusColor\" class=\"cqa-w-3.5 cqa-h-3.5 cqa-rounded-full cqa-flex-shrink-0\" [ngClass]=\"getStatusDotClass(item)\"></span>\n <a\n *ngIf=\"item.link\"\n href=\"javascript:void(0)\"\n class=\"cqa-text-[#2563EB] cqa-text-xs cqa-leading-[12px] cqa-font-normal hover:cqa-underline cqa-cursor-pointer cqa-block cqa-truncate cqa-min-w-0\"\n (click)=\"onMetadataLinkClick(item); $event.preventDefault()\">\n {{ item.value }}\n </a>\n <span *ngIf=\"!item.link\" class=\"cqa-text-xs cqa-leading-[12px] cqa-font-normal cqa-align-middle\" [ngClass]=\"getValueTextClass(item)\">\n {{ item.value }}\n </span>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <!-- Labels (Figma: Labels title, cqa-badge chips with tag icon) -->\n <div *ngIf=\"labels.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2 cqa-text-sm cqa-leading-[19.6px]\">\n <span class=\"cqa-text-[#111827] cqa-text-sm cqa-font-medium cqa-leading-5\">Labels</span>\n <div class=\"cqa-flex cqa-flex-wrap cqa-gap-2\">\n <cqa-badge\n *ngFor=\"let label of labels\"\n [label]=\"label\"\n icon=\"label\"\n variant=\"outline\"\n size=\"small\"\n backgroundColor=\"#ffffff\"\n textColor=\"#475569\"\n borderColor=\"#E2E8F0\"\n iconColor=\"#94A3B8\">\n </cqa-badge>\n </div>\n </div>\n\n <!-- Configuration Section -->\n <div *ngIf=\"configSections.length || configSectionsRow2.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-inline-flex cqa-justify-start cqa-items-center\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div class=\"cqa-w-5 cqa-h-5 cqa-p-1 cqa-flex-shrink-0 cqa-bg-[#3F43EE1A] cqa-rounded-md cqa-inline-flex cqa-justify-center cqa-items-center\">\n <mat-icon class=\"cqa-text-[#1B1FEB] cqa-text-[12px] cqa-w-3 cqa-h-3 cqa-leading-none cqa-block\">settings</mat-icon>\n </div>\n <span class=\"cqa-text-[#374151] cqa-text-sm cqa-font-semibold cqa-leading-[19.6px]\">{{ configTitle }}</span>\n </div>\n </div>\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-grid cqa-grid-cols-1 cqa-gap-2.5\">\n <ng-container *ngFor=\"let section of configSections; trackBy: trackByConfigTitle\">\n <cqa-configuration-card\n [icon]=\"section.icon || 'tune'\"\n [title]=\"section.title\"\n [data]=\"section.items\">\n </cqa-configuration-card>\n </ng-container>\n </div>\n <div *ngIf=\"configSectionsRow2.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <cqa-configuration-card\n *ngFor=\"let section of configSectionsRow2; trackBy: trackByConfigTitle\"\n [icon]=\"section.icon || 'tune'\"\n [title]=\"section.title\"\n [data]=\"section.items\">\n </cqa-configuration-card>\n </div>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: i1.TestCaseDetailsEditComponent, selector: "cqa-test-case-details-edit", inputs: ["descriptionTitle", "descriptionContent", "metadataItems", "labels", "configTitle", "configSections", "configSectionsRow2", "prerequisiteCaseOptions", "platform", "selectConfigOverrides"], outputs: ["save", "cancel", "selectSearch", "selectLoadMore", "selectOpened", "selectionChange"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.BadgeComponent, selector: "cqa-badge", inputs: ["type", "label", "icon", "iconLibrary", "variant", "size", "backgroundColor", "textColor", "borderColor", "iconBackgroundColor", "iconColor", "iconSize", "inlineStyles", "key", "value", "keyTextColor", "valueTextColor", "isLoading"] }, { type: i4.ConfigurationCardComponent, selector: "cqa-configuration-card", inputs: ["icon", "title", "data"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
98
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestCaseDetailsComponent, decorators: [{
|
|
99
99
|
type: Component,
|
|
100
|
-
args: [{ selector: 'cqa-test-case-details', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Edit mode: show edit form (Figma design) -->\n<cqa-test-case-details-edit\n *ngIf=\"editing\"\n [descriptionTitle]=\"descriptionTitle\"\n [descriptionContent]=\"descriptionContent\"\n [metadataItems]=\"metadataItems\"\n [labels]=\"labels\"\n [configTitle]=\"configTitle\"\n [configSections]=\"configSections\"\n [configSectionsRow2]=\"configSectionsRow2\"\n [platform]=\"platform\"\n [selectConfigOverrides]=\"selectConfigOverrides\"\n (save)=\"onSaveChanges($event)\"\n (cancel)=\"onCancelEdit()\"\n (selectSearch)=\"selectSearch.emit($event)\"\n (selectLoadMore)=\"selectLoadMore.emit($event)\"\n (selectOpened)=\"selectOpened.emit($event)\"\n (selectionChange)=\"selectionChange.emit($event)\">\n</cqa-test-case-details-edit>\n\n<!-- View mode: read-only details -->\n<div *ngIf=\"!editing\" class=\"cqa-self-stretch cqa-py-4 cqa-px-0 cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <!-- Description Section -->\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-inline-flex cqa-justify-between cqa-items-center\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div class=\"cqa-w-5 cqa-h-5 cqa-p-1 cqa-flex-shrink-0 cqa-bg-[#3F43EE1A] cqa-rounded-md cqa-inline-flex cqa-justify-center cqa-items-center\">\n <mat-icon class=\"cqa-text-[#1B1FEB] cqa-text-[12px] cqa-w-3 cqa-h-3 cqa-leading-none cqa-block\">description</mat-icon>\n </div>\n <span class=\"cqa-text-[#374151] cqa-text-sm cqa-font-semibold cqa-leading-[19.6px]\">{{ descriptionTitle }}</span>\n </div>\n <button\n *ngIf=\"showEditButton\"\n type=\"button\"\n class=\"cqa-flex cqa-justify-end cqa-items-center cqa-gap-2 cqa-text-[#A3A3A3] cqa-text-xs cqa-font-semibold hover:cqa-text-[#737373] cqa-transition-colors focus:cqa-outline-none focus-visible:cqa-ring-2 focus-visible:cqa-ring-[#3F43EE] focus-visible:cqa-ring-offset-2\"\n (click)=\"onEditClick()\">\n <mat-icon class=\"cqa-text-[14px] cqa-w-4 cqa-h-4\">edit</mat-icon>\n Edit\n </button>\n </div>\n <div *ngIf=\"descriptionContent\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start\">\n <div class=\"cqa-self-stretch cqa-text-[#111827] cqa-text-sm cqa-leading-[19.6px] cqa-font-normal\">{{ descriptionContent }}</div>\n </div>\n </div>\n\n <!-- Metadata Section -->\n <div *ngIf=\"metadataItems.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-grid cqa-grid-cols-3 cqa-gap-x-0 cqa-gap-y-4\">\n <ng-container *ngFor=\"let item of metadataItems; trackBy: trackByMetadataLabel\">\n <div class=\"cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-0.5\">\n <div class=\"cqa-text-[#6B7280] cqa-text-xs cqa-leading-[15px] cqa-font-medium\">{{ item.label }}</div>\n <div
|
|
100
|
+
args: [{ selector: 'cqa-test-case-details', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Edit mode: show edit form (Figma design) -->\n<cqa-test-case-details-edit\n *ngIf=\"editing\"\n [descriptionTitle]=\"descriptionTitle\"\n [descriptionContent]=\"descriptionContent\"\n [metadataItems]=\"metadataItems\"\n [labels]=\"labels\"\n [configTitle]=\"configTitle\"\n [configSections]=\"configSections\"\n [configSectionsRow2]=\"configSectionsRow2\"\n [platform]=\"platform\"\n [selectConfigOverrides]=\"selectConfigOverrides\"\n (save)=\"onSaveChanges($event)\"\n (cancel)=\"onCancelEdit()\"\n (selectSearch)=\"selectSearch.emit($event)\"\n (selectLoadMore)=\"selectLoadMore.emit($event)\"\n (selectOpened)=\"selectOpened.emit($event)\"\n (selectionChange)=\"selectionChange.emit($event)\">\n</cqa-test-case-details-edit>\n\n<!-- View mode: read-only details -->\n<div *ngIf=\"!editing\" class=\"cqa-self-stretch cqa-py-4 cqa-px-0 cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <!-- Description Section -->\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-inline-flex cqa-justify-between cqa-items-center\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div class=\"cqa-w-5 cqa-h-5 cqa-p-1 cqa-flex-shrink-0 cqa-bg-[#3F43EE1A] cqa-rounded-md cqa-inline-flex cqa-justify-center cqa-items-center\">\n <mat-icon class=\"cqa-text-[#1B1FEB] cqa-text-[12px] cqa-w-3 cqa-h-3 cqa-leading-none cqa-block\">description</mat-icon>\n </div>\n <span class=\"cqa-text-[#374151] cqa-text-sm cqa-font-semibold cqa-leading-[19.6px]\">{{ descriptionTitle }}</span>\n </div>\n <button\n *ngIf=\"showEditButton\"\n type=\"button\"\n class=\"cqa-flex cqa-justify-end cqa-items-center cqa-gap-2 cqa-text-[#A3A3A3] cqa-text-xs cqa-font-semibold hover:cqa-text-[#737373] cqa-transition-colors focus:cqa-outline-none focus-visible:cqa-ring-2 focus-visible:cqa-ring-[#3F43EE] focus-visible:cqa-ring-offset-2\"\n (click)=\"onEditClick()\">\n <mat-icon class=\"cqa-text-[14px] cqa-w-4 cqa-h-4\">edit</mat-icon>\n Edit\n </button>\n </div>\n <div *ngIf=\"descriptionContent\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start\">\n <div class=\"cqa-self-stretch cqa-text-[#111827] cqa-text-sm cqa-leading-[19.6px] cqa-font-normal\">{{ descriptionContent }}</div>\n </div>\n </div>\n\n <!-- Metadata Section -->\n <div *ngIf=\"metadataItems.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-grid cqa-grid-cols-3 cqa-gap-x-0 cqa-gap-y-4\">\n <ng-container *ngFor=\"let item of metadataItems; trackBy: trackByMetadataLabel\">\n <div class=\"cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-0.5\">\n <div class=\"cqa-text-[#6B7280] cqa-text-xs cqa-leading-[15px] cqa-font-medium\">{{ item.label }}</div>\n <div\n class=\"cqa-flex cqa-justify-start cqa-items-end cqa-gap-[5px] cqa-min-w-0 cqa-w-full cqa-text-left cqa-text-[#0A0A0A] cqa-border cqa-border-[#F5F5F5]\">\n <mat-icon *ngIf=\"item.icon && (!item.iconLibrary || item.iconLibrary === 'mat')\" class=\"cqa-text-[#6B7280] cqa-text-sm cqa-w-4 cqa-h-4\">\n {{ item.icon }}\n </mat-icon>\n <span *ngIf=\"item.statusColor\" class=\"cqa-w-3.5 cqa-h-3.5 cqa-rounded-full cqa-flex-shrink-0\" [ngClass]=\"getStatusDotClass(item)\"></span>\n <a\n *ngIf=\"item.link\"\n href=\"javascript:void(0)\"\n class=\"cqa-text-[#2563EB] cqa-text-xs cqa-leading-[12px] cqa-font-normal hover:cqa-underline cqa-cursor-pointer cqa-block cqa-truncate cqa-min-w-0\"\n (click)=\"onMetadataLinkClick(item); $event.preventDefault()\">\n {{ item.value }}\n </a>\n <span *ngIf=\"!item.link\" class=\"cqa-text-xs cqa-leading-[12px] cqa-font-normal cqa-align-middle\" [ngClass]=\"getValueTextClass(item)\">\n {{ item.value }}\n </span>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <!-- Labels (Figma: Labels title, cqa-badge chips with tag icon) -->\n <div *ngIf=\"labels.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2 cqa-text-sm cqa-leading-[19.6px]\">\n <span class=\"cqa-text-[#111827] cqa-text-sm cqa-font-medium cqa-leading-5\">Labels</span>\n <div class=\"cqa-flex cqa-flex-wrap cqa-gap-2\">\n <cqa-badge\n *ngFor=\"let label of labels\"\n [label]=\"label\"\n icon=\"label\"\n variant=\"outline\"\n size=\"small\"\n backgroundColor=\"#ffffff\"\n textColor=\"#475569\"\n borderColor=\"#E2E8F0\"\n iconColor=\"#94A3B8\">\n </cqa-badge>\n </div>\n </div>\n\n <!-- Configuration Section -->\n <div *ngIf=\"configSections.length || configSectionsRow2.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-inline-flex cqa-justify-start cqa-items-center\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div class=\"cqa-w-5 cqa-h-5 cqa-p-1 cqa-flex-shrink-0 cqa-bg-[#3F43EE1A] cqa-rounded-md cqa-inline-flex cqa-justify-center cqa-items-center\">\n <mat-icon class=\"cqa-text-[#1B1FEB] cqa-text-[12px] cqa-w-3 cqa-h-3 cqa-leading-none cqa-block\">settings</mat-icon>\n </div>\n <span class=\"cqa-text-[#374151] cqa-text-sm cqa-font-semibold cqa-leading-[19.6px]\">{{ configTitle }}</span>\n </div>\n </div>\n <div class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-justify-start cqa-items-start cqa-gap-2.5\">\n <div class=\"cqa-self-stretch cqa-grid cqa-grid-cols-1 cqa-gap-2.5\">\n <ng-container *ngFor=\"let section of configSections; trackBy: trackByConfigTitle\">\n <cqa-configuration-card\n [icon]=\"section.icon || 'tune'\"\n [title]=\"section.title\"\n [data]=\"section.items\">\n </cqa-configuration-card>\n </ng-container>\n </div>\n <div *ngIf=\"configSectionsRow2.length\" class=\"cqa-self-stretch cqa-flex cqa-flex-col cqa-gap-4 cqa-text-sm cqa-leading-[19.6px]\">\n <cqa-configuration-card\n *ngFor=\"let section of configSectionsRow2; trackBy: trackByConfigTitle\"\n [icon]=\"section.icon || 'tune'\"\n [title]=\"section.title\"\n [data]=\"section.items\">\n </cqa-configuration-card>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [] }]
|
|
101
101
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { startInEditMode: [{
|
|
102
102
|
type: Input
|
|
103
103
|
}], descriptionTitle: [{
|
|
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
135
135
|
}], selectionChange: [{
|
|
136
136
|
type: Output
|
|
137
137
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy90ZXN0LWNhc2UtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3Rlc3QtY2FzZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEdBR3hCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBZ0J2QixNQUFNLE9BQU8sd0JBQXdCO0lBT25DLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBTjFDLDRDQUE0QztRQUM1QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLDREQUE0RDtRQUNuRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQVNqQyxnQ0FBZ0M7UUFDdkIscUJBQWdCLEdBQUcsYUFBYSxDQUFDO1FBRTFDLCtCQUErQjtRQUN0Qix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFakMsZ0VBQWdFO1FBQ3ZELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRWhDLDZGQUE2RjtRQUNwRixrQkFBYSxHQUFrQyxFQUFFLENBQUM7UUFFM0QscURBQXFEO1FBQzVDLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFFL0Isa0NBQWtDO1FBQ3pCLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBRXZDLGdFQUFnRTtRQUN2RCxtQkFBYyxHQUFtQyxFQUFFLENBQUM7UUFFN0QsMEZBQTBGO1FBQ2pGLHVCQUFrQixHQUFtQyxFQUFFLENBQUM7UUFDakUsdUZBQXVGO1FBQzlFLGFBQVEsR0FBcUIsS0FBSyxDQUFDO1FBRTVDLG1GQUFtRjtRQUMxRSwwQkFBcUIsR0FBMEIsRUFBRSxDQUFDO1FB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aEIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb24sXG4gIFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbSxcbn0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy5tb2RlbHMnO1xuaW1wb3J0IHtcbiAgVGVzdENhc2VEZXRhaWxzRWRpdEZvcm1EYXRhLFxuICBTZWxlY3RDb25maWdPdmVycmlkZXMsXG59IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMtZWRpdC90ZXN0LWNhc2UtZGV0YWlscy1lZGl0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS10ZXN0LWNhc2UtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXN0LWNhc2UtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZXN0Q2FzZURldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGluIGVkaXQgbW9kZSAqL1xuICBlZGl0aW5nID0gZmFsc2U7XG5cbiAgLyoqIFdoZW4gdHJ1ZSwgc3RhcnQgaW4gZWRpdCBtb2RlICh1c2VmdWwgZm9yIFN0b3J5Ym9vaykuICovXG4gIEBJbnB1dCgpIHN0YXJ0SW5FZGl0TW9kZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGFydEluRWRpdE1vZGUpIHtcbiAgICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgfVxuICB9XG4gIC8qKiBEZXNjcmlwdGlvbiBzZWN0aW9uIHRpdGxlICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uVGl0bGUgPSAnRGVzY3JpcHRpb24nO1xuXG4gIC8qKiBEZXNjcmlwdGlvbiB0ZXh0IGNvbnRlbnQgKi9cbiAgQElucHV0KCkgZGVzY3JpcHRpb25Db250ZW50ID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgRWRpdCBidXR0b24gaW4gdGhlIERlc2NyaXB0aW9uIGhlYWRlciAqL1xuICBASW5wdXQoKSBzaG93RWRpdEJ1dHRvbiA9IGZhbHNlO1xuXG4gIC8qKiBNZXRhZGF0YSBpdGVtcyAoY3JlYXRlZE9uLCBzdGF0dXMsIHByaW9yaXR5LCBlbnZpcm9ubWVudCwgdmVyc2lvbiwgdGVzdFBsYW5OYW1lLCBldGMuKSAqL1xuICBASW5wdXQoKSBtZXRhZGF0YUl0ZW1zOiBUZXN0Q2FzZURldGFpbHNNZXRhZGF0YUl0ZW1bXSA9IFtdO1xuXG4gIC8qKiBMYWJlbHMvdGFncyAoZS5nLiBBdXRvbWF0aW9uLCBBUEksIFNESywgVUkvVVgpICovXG4gIEBJbnB1dCgpIGxhYmVsczogc3RyaW5nW10gPSBbXTtcblxuICAvKiogQ29uZmlndXJhdGlvbiBzZWN0aW9uIHRpdGxlICovXG4gIEBJbnB1dCgpIGNvbmZpZ1RpdGxlID0gJ0NvbmZpZ3VyYXRpb24nO1xuXG4gIC8qKiBDb25maWd1cmF0aW9uIHNlY3Rpb25zIChlLmcuIEV4ZWN1dGlvbiwgQUkgQ29uZmlndXJhdGlvbikgKi9cbiAgQElucHV0KCkgY29uZmlnU2VjdGlvbnM6IFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb25bXSA9IFtdO1xuXG4gIC8qKiBPcHRpb25hbCBjb25maWcgc2VjdGlvbnMgZGlzcGxheWVkIGluIGEgMi1jb2x1bW4gcm93IChlLmcuIFdhaXRzICYgUmV0cmllcywgRGV2aWNlKSAqL1xuICBASW5wdXQoKSBjb25maWdTZWN0aW9uc1JvdzI6IFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb25bXSA9IFtdO1xuICAvKiogUGxhdGZvcm06ICd3ZWInIG9yICdtb2JpbGUnLiBEZWZhdWx0cyB0byAnd2ViJy4gVXNlZCBmb3IgRGV2aWNlIFNldHRpbmdzIGZpZWxkcy4gKi9cbiAgQElucHV0KCkgcGxhdGZvcm06ICd3ZWInIHwgJ21vYmlsZScgPSAnd2ViJztcblxuICAvKiogT3ZlcnJpZGUgY29uZmlnIHBlciBzZWxlY3QgZm9yIEFQSS1kcml2ZW4gb3B0aW9ucywgc2VydmVyIHNlYXJjaCwgbG9hZCBtb3JlLiAqL1xuICBASW5wdXQoKSBzZWxlY3RDb25maWdPdmVycmlkZXM6IFNlbGVjdENvbmZpZ092ZXJyaWRlcyA9IHt9O1xuXG4gIEBPdXRwdXQoKSBlZGl0RGVzY3JpcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzYXZlQ2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8VGVzdENhc2VEZXRhaWxzRWRpdEZvcm1EYXRhPigpO1xuICBAT3V0cHV0KCkgbWV0YWRhdGFMaW5rQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdFNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBrZXk6IHN0cmluZzsgcXVlcnk6IHN0cmluZyB9PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0TG9hZE1vcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHsga2V5OiBzdHJpbmc7IHF1ZXJ5OiBzdHJpbmcgfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBrZXk6IHN0cmluZyB9PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9PigpO1xuXG4gIG9uRWRpdENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2F2ZUNoYW5nZXMoZGF0YTogVGVzdENhc2VEZXRhaWxzRWRpdEZvcm1EYXRhKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2F2ZUNoYW5nZXMuZW1pdChkYXRhKTtcbiAgfVxuXG4gIG9uQ2FuY2VsRWRpdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0cmFja0J5Q29uZmlnVGl0bGUoX2k6IG51bWJlciwgc2VjdGlvbjogVGVzdENhc2VEZXRhaWxzQ29uZmlnU2VjdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlY3Rpb24udGl0bGU7XG4gIH1cblxuICB0cmFja0J5TWV0YWRhdGFMYWJlbChfaTogbnVtYmVyLCBpdGVtOiBUZXN0Q2FzZURldGFpbHNNZXRhZGF0YUl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLmxhYmVsO1xuICB9XG5cblxuICBvbk1ldGFkYXRhTGlua0NsaWNrKGl0ZW06IFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbSk6IHZvaWQge1xuICAgIGlmIChpdGVtLmxpbmspIHtcbiAgICAgIHRoaXMubWV0YWRhdGFMaW5rQ2xpY2suZW1pdChpdGVtKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdGF0dXNEb3RDbGFzcyhpdGVtOiBUZXN0Q2FzZURldGFpbHNNZXRhZGF0YUl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghaXRlbS5zdGF0dXNDb2xvcikgcmV0dXJuICcnO1xuICAgIHN3aXRjaCAoaXRlbS5zdGF0dXNDb2xvcikge1xuICAgICAgY2FzZSAneWVsbG93JzpcbiAgICAgICAgcmV0dXJuICdjcWEtYmctWyNFQUIzMDhdJztcbiAgICAgIGNhc2UgJ3JlZCc6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjREMyNjI2XSc7XG4gICAgICBjYXNlICdncmVlbic6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjMTZBMzRBXSc7XG4gICAgICBjYXNlICdncmF5JzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjOTRBM0I4XSc7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRleHQgY29sb3IgZm9yIG1ldGFkYXRhIHZhbHVlIChlLmcuIHJlZCBmb3IgY3JpdGljYWwgcHJpb3JpdHkpICovXG4gIGdldFZhbHVlVGV4dENsYXNzKGl0ZW06IFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbSk6IHN0cmluZyB7XG4gICAgaWYgKGl0ZW0uc3RhdHVzQ29sb3IgPT09ICdyZWQnKSB7XG4gICAgICByZXR1cm4gJ2NxYS10ZXh0LVsjREMyNjI2XSc7XG4gICAgfVxuICAgIHJldHVybiAnY3FhLXRleHQtWyMxMTE4MjddJztcbiAgfVxufVxuIiwiPCEtLSBFZGl0IG1vZGU6IHNob3cgZWRpdCBmb3JtIChGaWdtYSBkZXNpZ24pIC0tPlxuPGNxYS10ZXN0LWNhc2UtZGV0YWlscy1lZGl0XG4gICpuZ0lmPVwiZWRpdGluZ1wiXG4gIFtkZXNjcmlwdGlvblRpdGxlXT1cImRlc2NyaXB0aW9uVGl0bGVcIlxuICBbZGVzY3JpcHRpb25Db250ZW50XT1cImRlc2NyaXB0aW9uQ29udGVudFwiXG4gIFttZXRhZGF0YUl0ZW1zXT1cIm1ldGFkYXRhSXRlbXNcIlxuICBbbGFiZWxzXT1cImxhYmVsc1wiXG4gIFtjb25maWdUaXRsZV09XCJjb25maWdUaXRsZVwiXG4gIFtjb25maWdTZWN0aW9uc109XCJjb25maWdTZWN0aW9uc1wiXG4gIFtjb25maWdTZWN0aW9uc1JvdzJdPVwiY29uZmlnU2VjdGlvbnNSb3cyXCJcbiAgW3BsYXRmb3JtXT1cInBsYXRmb3JtXCJcbiAgW3NlbGVjdENvbmZpZ092ZXJyaWRlc109XCJzZWxlY3RDb25maWdPdmVycmlkZXNcIlxuICAoc2F2ZSk9XCJvblNhdmVDaGFuZ2VzKCRldmVudClcIlxuICAoY2FuY2VsKT1cIm9uQ2FuY2VsRWRpdCgpXCJcbiAgKHNlbGVjdFNlYXJjaCk9XCJzZWxlY3RTZWFyY2guZW1pdCgkZXZlbnQpXCJcbiAgKHNlbGVjdExvYWRNb3JlKT1cInNlbGVjdExvYWRNb3JlLmVtaXQoJGV2ZW50KVwiXG4gIChzZWxlY3RPcGVuZWQpPVwic2VsZWN0T3BlbmVkLmVtaXQoJGV2ZW50KVwiXG4gIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxuPC9jcWEtdGVzdC1jYXNlLWRldGFpbHMtZWRpdD5cblxuPCEtLSBWaWV3IG1vZGU6IHJlYWQtb25seSBkZXRhaWxzIC0tPlxuPGRpdiAqbmdJZj1cIiFlZGl0aW5nXCIgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1weS00IGNxYS1weC0wIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC00IGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLVsxOS42cHhdXCI+XG4gIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC00IGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLVsxOS42cHhdXCI+XG4gICAgPCEtLSBEZXNjcmlwdGlvbiBTZWN0aW9uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0yLjVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1pbmxpbmUtZmxleCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS13LTUgY3FhLWgtNSBjcWEtcC0xIGNxYS1mbGV4LXNocmluay0wIGNxYS1iZy1bIzNGNDNFRTFBXSBjcWEtcm91bmRlZC1tZCBjcWEtaW5saW5lLWZsZXggY3FhLWp1c3RpZnktY2VudGVyIGNxYS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LVsjMUIxRkVCXSBjcWEtdGV4dC1bMTJweF0gY3FhLXctMyBjcWEtaC0zIGNxYS1sZWFkaW5nLW5vbmUgY3FhLWJsb2NrXCI+ZGVzY3JpcHRpb248L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyMzNzQxNTFdIGNxYS10ZXh0LXNtIGNxYS1mb250LXNlbWlib2xkIGNxYS1sZWFkaW5nLVsxOS42cHhdXCI+e3sgZGVzY3JpcHRpb25UaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cInNob3dFZGl0QnV0dG9uXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1qdXN0aWZ5LWVuZCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtdGV4dC1bI0EzQTNBM10gY3FhLXRleHQteHMgY3FhLWZvbnQtc2VtaWJvbGQgaG92ZXI6Y3FhLXRleHQtWyM3MzczNzNdIGNxYS10cmFuc2l0aW9uLWNvbG9ycyBmb2N1czpjcWEtb3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6Y3FhLXJpbmctMiBmb2N1cy12aXNpYmxlOmNxYS1yaW5nLVsjM0Y0M0VFXSBmb2N1cy12aXNpYmxlOmNxYS1yaW5nLW9mZnNldC0yXCJcbiAgICAgICAgICAoY2xpY2spPVwib25FZGl0Q2xpY2soKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LVsxNHB4XSBjcWEtdy00IGNxYS1oLTRcIj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgICBFZGl0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZGVzY3JpcHRpb25Db250ZW50XCIgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1zZWxmLXN0cmV0Y2ggY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLVsxOS42cHhdIGNxYS1mb250LW5vcm1hbFwiPnt7IGRlc2NyaXB0aW9uQ29udGVudCB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE1ldGFkYXRhIFNlY3Rpb24gLS0+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhSXRlbXMubGVuZ3RoXCIgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0yLjVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMyBjcWEtZ2FwLXgtMCBjcWEtZ2FwLXktNFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1ldGFkYXRhSXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlNZXRhZGF0YUxhYmVsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0wLjVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLXRleHQteHMgY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bVwiPnt7IGl0ZW0ubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMi41IGNxYS1taW4tdy0wIGNxYS13LWZ1bGxcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uICYmICghaXRlbS5pY29uTGlicmFyeSB8fCBpdGVtLmljb25MaWJyYXJ5ID09PSAnbWF0JylcIiBjbGFzcz1cImNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtdGV4dC1zbSBjcWEtdy00IGNxYS1oLTRcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmljb24gfX1cbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnN0YXR1c0NvbG9yXCIgY2xhc3M9XCJjcWEtdy0zLjUgY3FhLWgtMy41IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWZsZXgtc2hyaW5rLTBcIiBbbmdDbGFzc109XCJnZXRTdGF0dXNEb3RDbGFzcyhpdGVtKVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0ubGlua1wiXG4gICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtdGV4dC1bIzI1NjNFQl0gY3FhLXRleHQteHMgY3FhLWxlYWRpbmctWzEycHhdIGNxYS1mb250LW5vcm1hbCBob3ZlcjpjcWEtdW5kZXJsaW5lIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtYmxvY2sgY3FhLXRydW5jYXRlIGNxYS1taW4tdy0wXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25NZXRhZGF0YUxpbmtDbGljayhpdGVtKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5saW5rXCIgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtbGVhZGluZy1bMTJweF0gY3FhLWZvbnQtbm9ybWFsXCIgW25nQ2xhc3NdPVwiZ2V0VmFsdWVUZXh0Q2xhc3MoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBMYWJlbHMgKEZpZ21hOiBMYWJlbHMgdGl0bGUsIGNxYS1iYWRnZSBjaGlwcyB3aXRoIHRhZyBpY29uKSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwibGFiZWxzLmxlbmd0aFwiIGNsYXNzPVwiY3FhLXNlbGYtc3RyZXRjaCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWp1c3RpZnktc3RhcnQgY3FhLWl0ZW1zLXN0YXJ0IGNxYS1nYXAtMiBjcWEtdGV4dC1zbSBjcWEtbGVhZGluZy1bMTkuNnB4XVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzExMTgyN10gY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS1sZWFkaW5nLTVcIj5MYWJlbHM8L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtZ2FwLTJcIj5cbiAgICAgICAgPGNxYS1iYWRnZVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBsYWJlbHNcIlxuICAgICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICAgICAgaWNvbj1cImxhYmVsXCJcbiAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9XCIjZmZmZmZmXCJcbiAgICAgICAgICB0ZXh0Q29sb3I9XCIjNDc1NTY5XCJcbiAgICAgICAgICBib3JkZXJDb2xvcj1cIiNFMkU4RjBcIlxuICAgICAgICAgIGljb25Db2xvcj1cIiM5NEEzQjhcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ29uZmlndXJhdGlvbiBTZWN0aW9uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWdTZWN0aW9ucy5sZW5ndGggfHwgY29uZmlnU2VjdGlvbnNSb3cyLmxlbmd0aFwiIGNsYXNzPVwiY3FhLXNlbGYtc3RyZXRjaCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWp1c3RpZnktc3RhcnQgY3FhLWl0ZW1zLXN0YXJ0IGNxYS1nYXAtMi41XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXNlbGYtc3RyZXRjaCBjcWEtaW5saW5lLWZsZXggY3FhLWp1c3RpZnktc3RhcnQgY3FhLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXctNSBjcWEtaC01IGNxYS1wLTEgY3FhLWZsZXgtc2hyaW5rLTAgY3FhLWJnLVsjM0Y0M0VFMUFdIGNxYS1yb3VuZGVkLW1kIGNxYS1pbmxpbmUtZmxleCBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtWyMxQjFGRUJdIGNxYS10ZXh0LVsxMnB4XSBjcWEtdy0zIGNxYS1oLTMgY3FhLWxlYWRpbmctbm9uZSBjcWEtYmxvY2tcIj5zZXR0aW5nczwvbWF0LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWxlYWRpbmctWzE5LjZweF1cIj57eyBjb25maWdUaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0yLjVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1zZWxmLXN0cmV0Y2ggY3FhLWdyaWQgY3FhLWdyaWQtY29scy0xIGNxYS1nYXAtMi41XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBjb25maWdTZWN0aW9uczsgdHJhY2tCeTogdHJhY2tCeUNvbmZpZ1RpdGxlXCI+XG4gICAgICAgICAgICA8Y3FhLWNvbmZpZ3VyYXRpb24tY2FyZFxuICAgICAgICAgICAgICBbaWNvbl09XCJzZWN0aW9uLmljb24gfHwgJ3R1bmUnXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cInNlY3Rpb24udGl0bGVcIlxuICAgICAgICAgICAgICBbZGF0YV09XCJzZWN0aW9uLml0ZW1zXCI+XG4gICAgICAgICAgICA8L2NxYS1jb25maWd1cmF0aW9uLWNhcmQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnU2VjdGlvbnNSb3cyLmxlbmd0aFwiIGNsYXNzPVwiY3FhLXNlbGYtc3RyZXRjaCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC00IGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLVsxOS42cHhdXCI+XG4gICAgICAgICAgPGNxYS1jb25maWd1cmF0aW9uLWNhcmRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGNvbmZpZ1NlY3Rpb25zUm93MjsgdHJhY2tCeTogdHJhY2tCeUNvbmZpZ1RpdGxlXCJcbiAgICAgICAgICAgIFtpY29uXT1cInNlY3Rpb24uaWNvbiB8fCAndHVuZSdcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInNlY3Rpb24udGl0bGVcIlxuICAgICAgICAgICAgW2RhdGFdPVwic2VjdGlvbi5pdGVtc1wiPlxuICAgICAgICAgIDwvY3FhLWNvbmZpZ3VyYXRpb24tY2FyZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy90ZXN0LWNhc2UtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3Rlc3QtY2FzZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEdBR3hCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBZ0J2QixNQUFNLE9BQU8sd0JBQXdCO0lBT25DLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBTjFDLDRDQUE0QztRQUM1QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLDREQUE0RDtRQUNuRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQVNqQyxnQ0FBZ0M7UUFDdkIscUJBQWdCLEdBQUcsYUFBYSxDQUFDO1FBRTFDLCtCQUErQjtRQUN0Qix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFakMsZ0VBQWdFO1FBQ3ZELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRWhDLDZGQUE2RjtRQUNwRixrQkFBYSxHQUFrQyxFQUFFLENBQUM7UUFFM0QscURBQXFEO1FBQzVDLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFFL0Isa0NBQWtDO1FBQ3pCLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBRXZDLGdFQUFnRTtRQUN2RCxtQkFBYyxHQUFtQyxFQUFFLENBQUM7UUFFN0QsMEZBQTBGO1FBQ2pGLHVCQUFrQixHQUFtQyxFQUFFLENBQUM7UUFDakUsdUZBQXVGO1FBQzlFLGFBQVEsR0FBcUIsS0FBSyxDQUFDO1FBRTVDLG1GQUFtRjtRQUMxRSwwQkFBcUIsR0FBMEIsRUFBRSxDQUFDO1FBRWpELG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMzQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO1FBQzlELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO1FBQ3BFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWtDLENBQUM7UUFDbEUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBa0MsQ0FBQztRQUNwRSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQ25ELG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQW1DLENBQUM7SUExQ25DLENBQUM7SUFFOUMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUNyQjtJQUNILENBQUM7SUFzQ0QsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWlDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsT0FBcUM7UUFDbEUsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxFQUFVLEVBQUUsSUFBaUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxJQUFpQztRQUNuRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQWlDO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN4QixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixLQUFLLE1BQU0sQ0FBQztZQUNaO2dCQUNFLE9BQU8sa0JBQWtCLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLGlCQUFpQixDQUFDLElBQWlDO1FBQ2pELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLEVBQUU7WUFDOUIsT0FBTyxvQkFBb0IsQ0FBQztTQUM3QjtRQUNELE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQzs7cUhBeEdVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHNyQkN4QnJDLHE2TkE0SEE7MkZEcEdhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU07d0dBT3RDLGVBQWU7c0JBQXZCLEtBQUs7Z0JBVUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb24sXG4gIFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbSxcbn0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy5tb2RlbHMnO1xuaW1wb3J0IHtcbiAgVGVzdENhc2VEZXRhaWxzRWRpdEZvcm1EYXRhLFxuICBTZWxlY3RDb25maWdPdmVycmlkZXMsXG59IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMtZWRpdC90ZXN0LWNhc2UtZGV0YWlscy1lZGl0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS10ZXN0LWNhc2UtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXN0LWNhc2UtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZXN0Q2FzZURldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGluIGVkaXQgbW9kZSAqL1xuICBlZGl0aW5nID0gZmFsc2U7XG5cbiAgLyoqIFdoZW4gdHJ1ZSwgc3RhcnQgaW4gZWRpdCBtb2RlICh1c2VmdWwgZm9yIFN0b3J5Ym9vaykuICovXG4gIEBJbnB1dCgpIHN0YXJ0SW5FZGl0TW9kZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGFydEluRWRpdE1vZGUpIHtcbiAgICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgfVxuICB9XG4gIC8qKiBEZXNjcmlwdGlvbiBzZWN0aW9uIHRpdGxlICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uVGl0bGUgPSAnRGVzY3JpcHRpb24nO1xuXG4gIC8qKiBEZXNjcmlwdGlvbiB0ZXh0IGNvbnRlbnQgKi9cbiAgQElucHV0KCkgZGVzY3JpcHRpb25Db250ZW50ID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgRWRpdCBidXR0b24gaW4gdGhlIERlc2NyaXB0aW9uIGhlYWRlciAqL1xuICBASW5wdXQoKSBzaG93RWRpdEJ1dHRvbiA9IGZhbHNlO1xuXG4gIC8qKiBNZXRhZGF0YSBpdGVtcyAoY3JlYXRlZE9uLCBzdGF0dXMsIHByaW9yaXR5LCBlbnZpcm9ubWVudCwgdmVyc2lvbiwgdGVzdFBsYW5OYW1lLCBldGMuKSAqL1xuICBASW5wdXQoKSBtZXRhZGF0YUl0ZW1zOiBUZXN0Q2FzZURldGFpbHNNZXRhZGF0YUl0ZW1bXSA9IFtdO1xuXG4gIC8qKiBMYWJlbHMvdGFncyAoZS5nLiBBdXRvbWF0aW9uLCBBUEksIFNESywgVUkvVVgpICovXG4gIEBJbnB1dCgpIGxhYmVsczogc3RyaW5nW10gPSBbXTtcblxuICAvKiogQ29uZmlndXJhdGlvbiBzZWN0aW9uIHRpdGxlICovXG4gIEBJbnB1dCgpIGNvbmZpZ1RpdGxlID0gJ0NvbmZpZ3VyYXRpb24nO1xuXG4gIC8qKiBDb25maWd1cmF0aW9uIHNlY3Rpb25zIChlLmcuIEV4ZWN1dGlvbiwgQUkgQ29uZmlndXJhdGlvbikgKi9cbiAgQElucHV0KCkgY29uZmlnU2VjdGlvbnM6IFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb25bXSA9IFtdO1xuXG4gIC8qKiBPcHRpb25hbCBjb25maWcgc2VjdGlvbnMgZGlzcGxheWVkIGluIGEgMi1jb2x1bW4gcm93IChlLmcuIFdhaXRzICYgUmV0cmllcywgRGV2aWNlKSAqL1xuICBASW5wdXQoKSBjb25maWdTZWN0aW9uc1JvdzI6IFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb25bXSA9IFtdO1xuICAvKiogUGxhdGZvcm06ICd3ZWInIG9yICdtb2JpbGUnLiBEZWZhdWx0cyB0byAnd2ViJy4gVXNlZCBmb3IgRGV2aWNlIFNldHRpbmdzIGZpZWxkcy4gKi9cbiAgQElucHV0KCkgcGxhdGZvcm06ICd3ZWInIHwgJ21vYmlsZScgPSAnd2ViJztcblxuICAvKiogT3ZlcnJpZGUgY29uZmlnIHBlciBzZWxlY3QgZm9yIEFQSS1kcml2ZW4gb3B0aW9ucywgc2VydmVyIHNlYXJjaCwgbG9hZCBtb3JlLiAqL1xuICBASW5wdXQoKSBzZWxlY3RDb25maWdPdmVycmlkZXM6IFNlbGVjdENvbmZpZ092ZXJyaWRlcyA9IHt9O1xuXG4gIEBPdXRwdXQoKSBlZGl0RGVzY3JpcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzYXZlQ2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8VGVzdENhc2VEZXRhaWxzRWRpdEZvcm1EYXRhPigpO1xuICBAT3V0cHV0KCkgbWV0YWRhdGFMaW5rQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdFNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBrZXk6IHN0cmluZzsgcXVlcnk6IHN0cmluZyB9PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0TG9hZE1vcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHsga2V5OiBzdHJpbmc7IHF1ZXJ5OiBzdHJpbmcgfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBrZXk6IHN0cmluZyB9PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9PigpO1xuXG4gIG9uRWRpdENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2F2ZUNoYW5nZXMoZGF0YTogVGVzdENhc2VEZXRhaWxzRWRpdEZvcm1EYXRhKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2F2ZUNoYW5nZXMuZW1pdChkYXRhKTtcbiAgfVxuXG4gIG9uQ2FuY2VsRWRpdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0cmFja0J5Q29uZmlnVGl0bGUoX2k6IG51bWJlciwgc2VjdGlvbjogVGVzdENhc2VEZXRhaWxzQ29uZmlnU2VjdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlY3Rpb24udGl0bGU7XG4gIH1cblxuICB0cmFja0J5TWV0YWRhdGFMYWJlbChfaTogbnVtYmVyLCBpdGVtOiBUZXN0Q2FzZURldGFpbHNNZXRhZGF0YUl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLmxhYmVsO1xuICB9XG5cblxuICBvbk1ldGFkYXRhTGlua0NsaWNrKGl0ZW06IFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbSk6IHZvaWQge1xuICAgIGlmIChpdGVtLmxpbmspIHtcbiAgICAgIHRoaXMubWV0YWRhdGFMaW5rQ2xpY2suZW1pdChpdGVtKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdGF0dXNEb3RDbGFzcyhpdGVtOiBUZXN0Q2FzZURldGFpbHNNZXRhZGF0YUl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghaXRlbS5zdGF0dXNDb2xvcikgcmV0dXJuICcnO1xuICAgIHN3aXRjaCAoaXRlbS5zdGF0dXNDb2xvcikge1xuICAgICAgY2FzZSAneWVsbG93JzpcbiAgICAgICAgcmV0dXJuICdjcWEtYmctWyNFQUIzMDhdJztcbiAgICAgIGNhc2UgJ3JlZCc6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjREMyNjI2XSc7XG4gICAgICBjYXNlICdncmVlbic6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjMTZBMzRBXSc7XG4gICAgICBjYXNlICdncmF5JzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjOTRBM0I4XSc7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRleHQgY29sb3IgZm9yIG1ldGFkYXRhIHZhbHVlIChlLmcuIHJlZCBmb3IgY3JpdGljYWwgcHJpb3JpdHkpICovXG4gIGdldFZhbHVlVGV4dENsYXNzKGl0ZW06IFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbSk6IHN0cmluZyB7XG4gICAgaWYgKGl0ZW0uc3RhdHVzQ29sb3IgPT09ICdyZWQnKSB7XG4gICAgICByZXR1cm4gJ2NxYS10ZXh0LVsjREMyNjI2XSc7XG4gICAgfVxuICAgIHJldHVybiAnY3FhLXRleHQtWyMxMTE4MjddJztcbiAgfVxufVxuIiwiPCEtLSBFZGl0IG1vZGU6IHNob3cgZWRpdCBmb3JtIChGaWdtYSBkZXNpZ24pIC0tPlxuPGNxYS10ZXN0LWNhc2UtZGV0YWlscy1lZGl0XG4gICpuZ0lmPVwiZWRpdGluZ1wiXG4gIFtkZXNjcmlwdGlvblRpdGxlXT1cImRlc2NyaXB0aW9uVGl0bGVcIlxuICBbZGVzY3JpcHRpb25Db250ZW50XT1cImRlc2NyaXB0aW9uQ29udGVudFwiXG4gIFttZXRhZGF0YUl0ZW1zXT1cIm1ldGFkYXRhSXRlbXNcIlxuICBbbGFiZWxzXT1cImxhYmVsc1wiXG4gIFtjb25maWdUaXRsZV09XCJjb25maWdUaXRsZVwiXG4gIFtjb25maWdTZWN0aW9uc109XCJjb25maWdTZWN0aW9uc1wiXG4gIFtjb25maWdTZWN0aW9uc1JvdzJdPVwiY29uZmlnU2VjdGlvbnNSb3cyXCJcbiAgW3BsYXRmb3JtXT1cInBsYXRmb3JtXCJcbiAgW3NlbGVjdENvbmZpZ092ZXJyaWRlc109XCJzZWxlY3RDb25maWdPdmVycmlkZXNcIlxuICAoc2F2ZSk9XCJvblNhdmVDaGFuZ2VzKCRldmVudClcIlxuICAoY2FuY2VsKT1cIm9uQ2FuY2VsRWRpdCgpXCJcbiAgKHNlbGVjdFNlYXJjaCk9XCJzZWxlY3RTZWFyY2guZW1pdCgkZXZlbnQpXCJcbiAgKHNlbGVjdExvYWRNb3JlKT1cInNlbGVjdExvYWRNb3JlLmVtaXQoJGV2ZW50KVwiXG4gIChzZWxlY3RPcGVuZWQpPVwic2VsZWN0T3BlbmVkLmVtaXQoJGV2ZW50KVwiXG4gIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxuPC9jcWEtdGVzdC1jYXNlLWRldGFpbHMtZWRpdD5cblxuPCEtLSBWaWV3IG1vZGU6IHJlYWQtb25seSBkZXRhaWxzIC0tPlxuPGRpdiAqbmdJZj1cIiFlZGl0aW5nXCIgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1weS00IGNxYS1weC0wIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC00IGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLVsxOS42cHhdXCI+XG4gIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC00IGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLVsxOS42cHhdXCI+XG4gICAgPCEtLSBEZXNjcmlwdGlvbiBTZWN0aW9uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0yLjVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1pbmxpbmUtZmxleCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS13LTUgY3FhLWgtNSBjcWEtcC0xIGNxYS1mbGV4LXNocmluay0wIGNxYS1iZy1bIzNGNDNFRTFBXSBjcWEtcm91bmRlZC1tZCBjcWEtaW5saW5lLWZsZXggY3FhLWp1c3RpZnktY2VudGVyIGNxYS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LVsjMUIxRkVCXSBjcWEtdGV4dC1bMTJweF0gY3FhLXctMyBjcWEtaC0zIGNxYS1sZWFkaW5nLW5vbmUgY3FhLWJsb2NrXCI+ZGVzY3JpcHRpb248L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyMzNzQxNTFdIGNxYS10ZXh0LXNtIGNxYS1mb250LXNlbWlib2xkIGNxYS1sZWFkaW5nLVsxOS42cHhdXCI+e3sgZGVzY3JpcHRpb25UaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cInNob3dFZGl0QnV0dG9uXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1qdXN0aWZ5LWVuZCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtdGV4dC1bI0EzQTNBM10gY3FhLXRleHQteHMgY3FhLWZvbnQtc2VtaWJvbGQgaG92ZXI6Y3FhLXRleHQtWyM3MzczNzNdIGNxYS10cmFuc2l0aW9uLWNvbG9ycyBmb2N1czpjcWEtb3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6Y3FhLXJpbmctMiBmb2N1cy12aXNpYmxlOmNxYS1yaW5nLVsjM0Y0M0VFXSBmb2N1cy12aXNpYmxlOmNxYS1yaW5nLW9mZnNldC0yXCJcbiAgICAgICAgICAoY2xpY2spPVwib25FZGl0Q2xpY2soKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LVsxNHB4XSBjcWEtdy00IGNxYS1oLTRcIj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgICBFZGl0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZGVzY3JpcHRpb25Db250ZW50XCIgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1zZWxmLXN0cmV0Y2ggY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLVsxOS42cHhdIGNxYS1mb250LW5vcm1hbFwiPnt7IGRlc2NyaXB0aW9uQ29udGVudCB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE1ldGFkYXRhIFNlY3Rpb24gLS0+XG4gICAgPGRpdiAqbmdJZj1cIm1ldGFkYXRhSXRlbXMubGVuZ3RoXCIgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0yLjVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMyBjcWEtZ2FwLXgtMCBjcWEtZ2FwLXktNFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1ldGFkYXRhSXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlNZXRhZGF0YUxhYmVsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0wLjVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLXRleHQteHMgY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bVwiPnt7IGl0ZW0ubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtZW5kIGNxYS1nYXAtWzVweF0gY3FhLW1pbi13LTAgY3FhLXctZnVsbCBjcWEtdGV4dC1sZWZ0IGNxYS10ZXh0LVsjMEEwQTBBXSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNGNUY1RjVdXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIml0ZW0uaWNvbiAmJiAoIWl0ZW0uaWNvbkxpYnJhcnkgfHwgaXRlbS5pY29uTGlicmFyeSA9PT0gJ21hdCcpXCIgY2xhc3M9XCJjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLXRleHQtc20gY3FhLXctNCBjcWEtaC00XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5pY29uIH19XG4gICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5zdGF0dXNDb2xvclwiIGNsYXNzPVwiY3FhLXctMy41IGNxYS1oLTMuNSBjcWEtcm91bmRlZC1mdWxsIGNxYS1mbGV4LXNocmluay0wXCIgW25nQ2xhc3NdPVwiZ2V0U3RhdHVzRG90Q2xhc3MoaXRlbSlcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmxpbmtcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLXRleHQtWyMyNTYzRUJdIGNxYS10ZXh0LXhzIGNxYS1sZWFkaW5nLVsxMnB4XSBjcWEtZm9udC1ub3JtYWwgaG92ZXI6Y3FhLXVuZGVybGluZSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLWJsb2NrIGNxYS10cnVuY2F0ZSBjcWEtbWluLXctMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWV0YWRhdGFMaW5rQ2xpY2soaXRlbSk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0ubGlua1wiIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLWxlYWRpbmctWzEycHhdIGNxYS1mb250LW5vcm1hbCBjcWEtYWxpZ24tbWlkZGxlXCIgW25nQ2xhc3NdPVwiZ2V0VmFsdWVUZXh0Q2xhc3MoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBMYWJlbHMgKEZpZ21hOiBMYWJlbHMgdGl0bGUsIGNxYS1iYWRnZSBjaGlwcyB3aXRoIHRhZyBpY29uKSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwibGFiZWxzLmxlbmd0aFwiIGNsYXNzPVwiY3FhLXNlbGYtc3RyZXRjaCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWp1c3RpZnktc3RhcnQgY3FhLWl0ZW1zLXN0YXJ0IGNxYS1nYXAtMiBjcWEtdGV4dC1zbSBjcWEtbGVhZGluZy1bMTkuNnB4XVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzExMTgyN10gY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS1sZWFkaW5nLTVcIj5MYWJlbHM8L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtZ2FwLTJcIj5cbiAgICAgICAgPGNxYS1iYWRnZVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBsYWJlbHNcIlxuICAgICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICAgICAgaWNvbj1cImxhYmVsXCJcbiAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9XCIjZmZmZmZmXCJcbiAgICAgICAgICB0ZXh0Q29sb3I9XCIjNDc1NTY5XCJcbiAgICAgICAgICBib3JkZXJDb2xvcj1cIiNFMkU4RjBcIlxuICAgICAgICAgIGljb25Db2xvcj1cIiM5NEEzQjhcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ29uZmlndXJhdGlvbiBTZWN0aW9uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWdTZWN0aW9ucy5sZW5ndGggfHwgY29uZmlnU2VjdGlvbnNSb3cyLmxlbmd0aFwiIGNsYXNzPVwiY3FhLXNlbGYtc3RyZXRjaCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWp1c3RpZnktc3RhcnQgY3FhLWl0ZW1zLXN0YXJ0IGNxYS1nYXAtMi41XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXNlbGYtc3RyZXRjaCBjcWEtaW5saW5lLWZsZXggY3FhLWp1c3RpZnktc3RhcnQgY3FhLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXctNSBjcWEtaC01IGNxYS1wLTEgY3FhLWZsZXgtc2hyaW5rLTAgY3FhLWJnLVsjM0Y0M0VFMUFdIGNxYS1yb3VuZGVkLW1kIGNxYS1pbmxpbmUtZmxleCBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtWyMxQjFGRUJdIGNxYS10ZXh0LVsxMnB4XSBjcWEtdy0zIGNxYS1oLTMgY3FhLWxlYWRpbmctbm9uZSBjcWEtYmxvY2tcIj5zZXR0aW5nczwvbWF0LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWxlYWRpbmctWzE5LjZweF1cIj57eyBjb25maWdUaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtc2VsZi1zdHJldGNoIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1zdGFydCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0yLjVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1zZWxmLXN0cmV0Y2ggY3FhLWdyaWQgY3FhLWdyaWQtY29scy0xIGNxYS1nYXAtMi41XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBjb25maWdTZWN0aW9uczsgdHJhY2tCeTogdHJhY2tCeUNvbmZpZ1RpdGxlXCI+XG4gICAgICAgICAgICA8Y3FhLWNvbmZpZ3VyYXRpb24tY2FyZFxuICAgICAgICAgICAgICBbaWNvbl09XCJzZWN0aW9uLmljb24gfHwgJ3R1bmUnXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cInNlY3Rpb24udGl0bGVcIlxuICAgICAgICAgICAgICBbZGF0YV09XCJzZWN0aW9uLml0ZW1zXCI+XG4gICAgICAgICAgICA8L2NxYS1jb25maWd1cmF0aW9uLWNhcmQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnU2VjdGlvbnNSb3cyLmxlbmd0aFwiIGNsYXNzPVwiY3FhLXNlbGYtc3RyZXRjaCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC00IGNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLVsxOS42cHhdXCI+XG4gICAgICAgICAgPGNxYS1jb25maWd1cmF0aW9uLWNhcmRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGNvbmZpZ1NlY3Rpb25zUm93MjsgdHJhY2tCeTogdHJhY2tCeUNvbmZpZ1RpdGxlXCJcbiAgICAgICAgICAgIFtpY29uXT1cInNlY3Rpb24uaWNvbiB8fCAndHVuZSdcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInNlY3Rpb24udGl0bGVcIlxuICAgICAgICAgICAgW2RhdGFdPVwic2VjdGlvbi5pdGVtc1wiPlxuICAgICAgICAgIDwvY3FhLWNvbmZpZ3VyYXRpb24tY2FyZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as momentImport from 'moment';
|
|
2
|
+
const moment = momentImport.default || momentImport;
|
|
1
3
|
/** Default status value -> dot color. Override via BuildTestCaseDetailsOptions. */
|
|
2
4
|
export const DEFAULT_STATUS_COLOR_CONFIG = {
|
|
3
5
|
active: 'green',
|
|
@@ -78,7 +80,12 @@ export const TEST_CASE_DETAILS_FIELD_MAP = {
|
|
|
78
80
|
* Use in ts-portal when mapping test case API response to component inputs.
|
|
79
81
|
*/
|
|
80
82
|
export function buildTestCaseDetailsFromApi(data, options) {
|
|
81
|
-
const formatDate = (v) =>
|
|
83
|
+
const formatDate = (v) => {
|
|
84
|
+
if (!v)
|
|
85
|
+
return '';
|
|
86
|
+
const m = moment(v);
|
|
87
|
+
return m.isValid() ? m.format('MMM D, YYYY h:mm A') : String(v);
|
|
88
|
+
};
|
|
82
89
|
const statusConfig = { ...DEFAULT_STATUS_COLOR_CONFIG, ...options?.statusColorConfig };
|
|
83
90
|
const priorityConfig = { ...DEFAULT_PRIORITY_COLOR_CONFIG, ...options?.priorityColorConfig };
|
|
84
91
|
const resolveColor = (value, config) => config[value.toLowerCase().trim()] ?? 'gray';
|
|
@@ -164,4 +171,4 @@ export function buildTestCaseDetailsFromApi(data, options) {
|
|
|
164
171
|
configSectionsRow2,
|
|
165
172
|
};
|
|
166
173
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlLWRldGFpbHMubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy90ZXN0LWNhc2UtZGV0YWlscy5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLG1GQUFtRjtBQUNuRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBbUM7SUFDekUsTUFBTSxFQUFFLE9BQU87SUFDZixRQUFRLEVBQUUsTUFBTTtJQUNoQixPQUFPLEVBQUUsUUFBUTtJQUNqQixTQUFTLEVBQUUsT0FBTztJQUNsQixXQUFXLEVBQUUsUUFBUTtJQUNyQixLQUFLLEVBQUUsTUFBTTtJQUNiLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLEtBQUs7SUFDZCxhQUFhLEVBQUUsUUFBUTtJQUN2QixJQUFJLEVBQUUsT0FBTztDQUNkLENBQUM7QUFFRixxRkFBcUY7QUFDckYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQW1DO0lBQzNFLFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLEtBQUs7SUFDWixJQUFJLEVBQUUsS0FBSztJQUNYLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEdBQUcsRUFBRSxPQUFPO0lBQ1osS0FBSyxFQUFFLE9BQU87SUFDZCxTQUFTLEVBQUUsTUFBTTtJQUNqQixFQUFFLEVBQUUsS0FBSztJQUNULEVBQUUsRUFBRSxRQUFRO0lBQ1osRUFBRSxFQUFFLE9BQU87SUFDWCxFQUFFLEVBQUUsTUFBTTtDQUNYLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6QyxxQ0FBcUM7SUFDckMsUUFBUSxFQUFFO1FBQ1IsU0FBUyxFQUFFLFdBQVc7UUFDdEIsTUFBTSxFQUFFLFFBQVE7UUFDaEIsUUFBUSxFQUFFLFVBQVU7UUFDcEIsV0FBVyxFQUFFLGFBQWE7UUFDMUIsT0FB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LEVBQUUsRUFBRTtxQkFDbEYsQ0FBQztpQkFDSDtnQkFDRCxPQUFPO29CQUNMLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7b0JBQ25ELEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUU7aUJBQ3pELENBQUM7WUFDSixDQUFDLENBQUMsRUFBRTtTQUNMO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsV0FBVztZQUNsQixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRTtnQkFDTCxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUU7Z0JBQzVELEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLEVBQUU7Z0JBQzFELEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUU7YUFDdkQ7U0FDRjtLQUNGLENBQUM7SUFFRixPQUFPO1FBQ0wsYUFBYTtRQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUU7UUFDekIsY0FBYztRQUNkLGtCQUFrQjtLQUNuQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ3VyYXRpb25JdGVtIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi1jYXJkL2NvbmZpZ3VyYXRpb24tY2FyZC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb24ge1xuICB0aXRsZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBpdGVtczogQ29uZmlndXJhdGlvbkl0ZW1bXTtcbn1cblxuZXhwb3J0IHR5cGUgU3RhdHVzRG90Q29sb3IgPSAneWVsbG93JyB8ICdyZWQnIHwgJ2dyZWVuJyB8ICdncmF5JztcblxuZXhwb3J0IGludGVyZmFjZSBUZXN0Q2FzZURldGFpbHNNZXRhZGF0YUl0ZW0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBpY29uTGlicmFyeT86ICdtYXQnIHwgJ2ZhJztcbiAgbGluaz86IHN0cmluZztcbiAgc3RhdHVzQ29sb3I/OiBTdGF0dXNEb3RDb2xvcjtcbn1cblxuLyoqIE1hcHMgc3RhdHVzL3ByaW9yaXR5IHZhbHVlIChsb3dlcmNhc2UpIHRvIGRvdCBjb2xvci4gT3ZlcnJpZGUgdG8gY3VzdG9taXplLiAqL1xuZXhwb3J0IHR5cGUgU3RhdHVzQ29sb3JDb25maWcgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIFN0YXR1c0RvdENvbG9yPj47XG5cbi8qKiBEZWZhdWx0IHN0YXR1cyB2YWx1ZSAtPiBkb3QgY29sb3IuIE92ZXJyaWRlIHZpYSBCdWlsZFRlc3RDYXNlRGV0YWlsc09wdGlvbnMuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFUVVNfQ09MT1JfQ09ORklHOiBSZWNvcmQ8c3RyaW5nLCBTdGF0dXNEb3RDb2xvcj4gPSB7XG4gIGFjdGl2ZTogJ2dyZWVuJyxcbiAgaW5hY3RpdmU6ICdncmF5JyxcbiAgcGVuZGluZzogJ3llbGxvdycsXG4gIGNvbXBsZXRlZDogJ2dyZWVuJyxcbiAgJ2luIHJldmlldyc6ICd5ZWxsb3cnLFxuICBkcmFmdDogJ2dyYXknLFxuICBhcHByb3ZlZDogJ2dyZWVuJyxcbiAgcmVqZWN0ZWQ6ICdyZWQnLFxuICBibG9ja2VkOiAncmVkJyxcbiAgJ2luIHByb2dyZXNzJzogJ3llbGxvdycsXG4gIGRvbmU6ICdncmVlbicsXG59O1xuXG4vKiogRGVmYXVsdCBwcmlvcml0eSB2YWx1ZSAtPiBkb3QgY29sb3IuIE92ZXJyaWRlIHZpYSBCdWlsZFRlc3RDYXNlRGV0YWlsc09wdGlvbnMuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9QUklPUklUWV9DT0xPUl9DT05GSUc6IFJlY29yZDxzdHJpbmcsIFN0YXR1c0RvdENvbG9yPiA9IHtcbiAgY3JpdGljYWw6ICdyZWQnLFxuICBtYWpvcjogJ3JlZCcsXG4gIGhpZ2g6ICdyZWQnLFxuICBtZWRpdW06ICd5ZWxsb3cnLFxuICBsb3c6ICdncmVlbicsXG4gIG1pbm9yOiAnZ3JlZW4nLFxuICAnbm90IHNldCc6ICdncmF5JyxcbiAgcDA6ICdyZWQnLFxuICBwMTogJ3llbGxvdycsXG4gIHAyOiAnZ3JlZW4nLFxuICBwMzogJ2dyYXknLFxufTtcblxuLyoqXG4gKiBBUEkgZmllbGQgbmFtZXMgZm9yIG1hcHBpbmcgdGVzdCBjYXNlIGRhdGEgdG8gY3FhLXRlc3QtY2FzZS1kZXRhaWxzLlxuICogVXNlIHRoZXNlIHdoZW4gYnVpbGRpbmcgbWV0YWRhdGFJdGVtcyBhbmQgY29uZmlnU2VjdGlvbnMgZnJvbSB5b3VyIEFQSSByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRFU1RfQ0FTRV9ERVRBSUxTX0ZJRUxEX01BUCA9IHtcbiAgLyoqIE1ldGFkYXRhIChkZXNjcmlwdGlvbiBzZWN0aW9uKSAqL1xuICBtZXRhZGF0YToge1xuICAgIGNyZWF0ZWRPbjogJ2NyZWF0ZWRPbicsXG4gICAgc3RhdHVzOiAnc3RhdHVzJyxcbiAgICBwcmlvcml0eTogJ3ByaW9yaXR5JyxcbiAgICBlbnZpcm9ubWVudDogJ2Vudmlyb25tZW50JyxcbiAgICB2ZXJzaW9uOiAndmVyc2lvbicsXG4gICAgcGxhdGZvcm06ICdwbGF0Zm9ybScsXG4gICAgbGFiZWxzOiAnbGFiZWxzJyxcbiAgfSxcbiAgLyoqIEV4ZWN1dGlvbiBjb25maWcgKi9cbiAgZXhlY3V0aW9uOiB7XG4gICAgcHJlcmVxdWlzaXRlQ2FzZTogJ3ByZXJlcXVpc2l0ZUNhc2UnLFxuICAgIGRlZmF1bHRCcm93c2VyOiAnZGVmYXVsdEJyb3dzZXInLFxuICAgIHZpZGVvUmVjb3JkaW5nOiAndmlkZW9SZWNvcmRpbmcnLFxuICAgIHRlc3RDYXNlVGltZW91dDogJ3Rlc3RDYXNlVGltZW91dCcsXG4gICAgd2FpdFRpbWVvdXRGb3JMb2NhdG9yczogJ3dhaXRUaW1lb3V0Rm9yTG9jYXRvcnMnLFxuICAgIHdlYkJyb3dzZXI6ICd3ZWJCcm93c2VyJyxcbiAgICB2aWV3cG9ydDogJ3ZpZXdwb3J0JyxcbiAgfSxcbiAgLyoqIEFJIENvbmZpZ3VyYXRpb24gKi9cbiAgYWlDb25maWc6IHtcbiAgICBlbmFibGVBaVNtYXJ0bmVzczogJ2VuYWJsZUFpU21hcnRuZXNzJyxcbiAgICBkZWZhdWx0QWlBY3Rpb246ICdkZWZhdWx0QWlBY3Rpb24nLFxuICAgIGtub3dsZWRnZUJhc2VEZWZhdWx0VGVzdENhc2U6ICdrbm93bGVkZ2VCYXNlRGVmYXVsdFRlc3RDYXNlJyxcbiAgICB1c2VBaU1ldGFkYXRhOiAndXNlQWlNZXRhZGF0YScsXG4gIH0sXG4gIC8qKiBXYWl0cyAmIFJldHJpZXMgKi9cbiAgd2FpdHNSZXRyaWVzOiB7XG4gICAgYXV0b1dhaXQ6ICdhdXRvV2FpdCcsXG4gICAgcmV0cnlGYWlsZWRTdGVwczogJ3JldHJ5RmFpbGVkU3RlcHMnLFxuICB9LFxuICAvKiogRGV2aWNlICovXG4gIGRldmljZToge1xuICAgIHBsYXRmb3JtOiAncGxhdGZvcm0nLFxuICAgIGRldmljZVR5cGU6ICdkZXZpY2VUeXBlJyxcbiAgICBkZXZpY2VPUzogJ2RldmljZU9TJyxcbiAgICBkZWZhdWx0QnJvd3NlcjogJ2RlZmF1bHRCcm93c2VyJyxcbiAgICBkZWZhdWx0Vmlld3BvcnQ6ICdkZWZhdWx0Vmlld3BvcnQnLFxuICAgIHZpZXdwb3J0OiAndmlld3BvcnQnLFxuICB9LFxufSBhcyBjb25zdDtcblxuLyoqIEFQSSByZXNwb25zZSBzaGFwZSBmb3IgdGVzdCBjYXNlIGRldGFpbHMuIE1hcCB5b3VyIEFQSSBmaWVsZHMgdG8gdGhpcyBzdHJ1Y3R1cmUuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RDYXNlRGV0YWlsc0FwaURhdGEge1xuICBjcmVhdGVkT24/OiBzdHJpbmcgfCBEYXRlO1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIHByaW9yaXR5Pzogc3RyaW5nO1xuICBlbnZpcm9ubWVudD86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgdGVzdFBsYW5OYW1lPzogc3RyaW5nO1xuICB0ZXN0UGxhblJlZGlyZWN0VXJsPzogc3RyaW5nO1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcbiAgcHJlcmVxdWlzaXRlQ2FzZT86IHN0cmluZyB8IG51bGw7XG4gIGRlZmF1bHRCcm93c2VyPzogc3RyaW5nO1xuICB2aWRlb1JlY29yZGluZz86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIHRlc3RDYXNlVGltZW91dD86IHN0cmluZztcbiAgd2FpdFRpbWVvdXRGb3JMb2NhdG9ycz86IHN0cmluZztcbiAgd2ViQnJvd3Nlcj86IHN0cmluZztcbiAgdmlld3BvcnQ/OiBzdHJpbmc7XG4gIGVuYWJsZUFpU21hcnRuZXNzPzogc3RyaW5nO1xuICBkZWZhdWx0QWlBY3Rpb24/OiBzdHJpbmc7XG4gIGtub3dsZWRnZUJhc2VEZWZhdWx0VGVzdENhc2U/OiBzdHJpbmcgfCBudWxsO1xuICB1c2VBaU1ldGFkYXRhPzogc3RyaW5nO1xuICBhdXRvV2FpdD86IHN0cmluZztcbiAgYXV0b1dhaXRFbmFibGVkPzogYm9vbGVhbjtcbiAgcmV0cnlGYWlsZWRTdGVwcz86IHN0cmluZztcbiAgcGxhdGZvcm0/OiAnd2ViJyB8ICdtb2JpbGUnO1xuICBkZXZpY2VUeXBlPzogc3RyaW5nO1xuICBkZXZpY2VPUz86IHN0cmluZztcbiAgZGVmYXVsdFZpZXdwb3J0Pzogc3RyaW5nO1xuICAvKiogS2V5IEZsYWdzICovXG4gIG1vYmlsZVRlc3Rpbmc/OiBzdHJpbmcgfCBib29sZWFuO1xuICBleHRlbnNpb25Vc2U/OiBzdHJpbmcgfCBib29sZWFuO1xuICBkYXRhRHJpdmVuPzogc3RyaW5nIHwgYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGJ1aWxkVGVzdENhc2VEZXRhaWxzRnJvbUFwaSAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZFRlc3RDYXNlRGV0YWlsc09wdGlvbnMge1xuICAvKiogT3ZlcnJpZGUgc3RhdHVzIHZhbHVlIC0+IGRvdCBjb2xvci4gTWVyZ2VkIHdpdGggZGVmYXVsdHMuICovXG4gIHN0YXR1c0NvbG9yQ29uZmlnPzogU3RhdHVzQ29sb3JDb25maWc7XG4gIC8qKiBPdmVycmlkZSBwcmlvcml0eSB2YWx1ZSAtPiBkb3QgY29sb3IuIE1lcmdlZCB3aXRoIGRlZmF1bHRzLiAqL1xuICBwcmlvcml0eUNvbG9yQ29uZmlnPzogU3RhdHVzQ29sb3JDb25maWc7XG59XG5cbi8qKlxuICogQnVpbGQgbWV0YWRhdGFJdGVtcyBhbmQgY29uZmlnU2VjdGlvbnMgZnJvbSBBUEkgZGF0YSBmb3IgY3FhLXRlc3QtY2FzZS1kZXRhaWxzLlxuICogVXNlIGluIHRzLXBvcnRhbCB3aGVuIG1hcHBpbmcgdGVzdCBjYXNlIEFQSSByZXNwb25zZSB0byBjb21wb25lbnQgaW5wdXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUZXN0Q2FzZURldGFpbHNGcm9tQXBpKFxuICBkYXRhOiBUZXN0Q2FzZURldGFpbHNBcGlEYXRhLFxuICBvcHRpb25zPzogQnVpbGRUZXN0Q2FzZURldGFpbHNPcHRpb25zXG4pOiB7XG4gIG1ldGFkYXRhSXRlbXM6IFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbVtdO1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICBjb25maWdTZWN0aW9uczogVGVzdENhc2VEZXRhaWxzQ29uZmlnU2VjdGlvbltdO1xuICBjb25maWdTZWN0aW9uc1JvdzI6IFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb25bXTtcbn0ge1xuICBjb25zdCBmb3JtYXREYXRlID0gKHY6IHN0cmluZyB8IERhdGUgfCB1bmRlZmluZWQpID0+XG4gICAgdiA/ICh0eXBlb2YgdiA9PT0gJ3N0cmluZycgPyB2IDogKHYgYXMgRGF0ZSkudG9JU09TdHJpbmc/LigpID8/IFN0cmluZyh2KSkgOiAnJztcblxuICBjb25zdCBzdGF0dXNDb25maWcgPSB7IC4uLkRFRkFVTFRfU1RBVFVTX0NPTE9SX0NPTkZJRywgLi4ub3B0aW9ucz8uc3RhdHVzQ29sb3JDb25maWcgfTtcbiAgY29uc3QgcHJpb3JpdHlDb25maWcgPSB7IC4uLkRFRkFVTFRfUFJJT1JJVFlfQ09MT1JfQ09ORklHLCAuLi5vcHRpb25zPy5wcmlvcml0eUNvbG9yQ29uZmlnIH07XG4gIGNvbnN0IHJlc29sdmVDb2xvciA9ICh2YWx1ZTogc3RyaW5nLCBjb25maWc6IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgU3RhdHVzRG90Q29sb3I+Pik6IFN0YXR1c0RvdENvbG9yID0+XG4gICAgY29uZmlnW3ZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpXSA/PyAnZ3JheSc7XG5cbiAgY29uc3QgbWV0YWRhdGFJdGVtczogVGVzdENhc2VEZXRhaWxzTWV0YWRhdGFJdGVtW10gPSBbXTtcbiAgaWYgKGRhdGEuY3JlYXRlZE9uICE9IG51bGwpXG4gICAgbWV0YWRhdGFJdGVtcy5wdXNoKHsgbGFiZWw6ICdDcmVhdGVkIG9uJywgdmFsdWU6IGZvcm1hdERhdGUoZGF0YS5jcmVhdGVkT24pLCBpY29uOiAnY2FsZW5kYXJfdG9kYXknIH0pO1xuICBpZiAoZGF0YS5zdGF0dXMgIT0gbnVsbClcbiAgICBtZXRhZGF0YUl0ZW1zLnB1c2goeyBsYWJlbDogJ1N0YXR1cycsIHZhbHVlOiBkYXRhLnN0YXR1cywgc3RhdHVzQ29sb3I6IHJlc29sdmVDb2xvcihkYXRhLnN0YXR1cywgc3RhdHVzQ29uZmlnKSB9KTtcbiAgaWYgKGRhdGEucHJpb3JpdHkgIT0gbnVsbClcbiAgICBtZXRhZGF0YUl0ZW1zLnB1c2goeyBsYWJlbDogJ1ByaW9yaXR5JywgdmFsdWU6IGRhdGEucHJpb3JpdHksIHN0YXR1c0NvbG9yOiByZXNvbHZlQ29sb3IoZGF0YS5wcmlvcml0eSwgcHJpb3JpdHlDb25maWcpIH0pO1xuICBpZiAoZGF0YS5lbnZpcm9ubWVudCAhPSBudWxsKVxuICAgIG1ldGFkYXRhSXRlbXMucHVzaCh7IGxhYmVsOiAnRW52aXJvbm1lbnQnLCB2YWx1ZTogZGF0YS5lbnZpcm9ubWVudCwgaWNvbjogJ3N0b3JhZ2UnIH0pO1xuICBpZiAoZGF0YS52ZXJzaW9uICE9IG51bGwpXG4gICAgbWV0YWRhdGFJdGVtcy5wdXNoKHsgbGFiZWw6ICdWZXJzaW9uJywgdmFsdWU6IGRhdGEudmVyc2lvbiwgaWNvbjogJ2xhYmVsJyB9KTtcbiAgaWYgKGRhdGEucGxhdGZvcm0gIT0gbnVsbClcbiAgICBtZXRhZGF0YUl0ZW1zLnB1c2goe1xuICAgICAgbGFiZWw6ICdQbGF0Zm9ybScsXG4gICAgICB2YWx1ZTogZGF0YS5wbGF0Zm9ybSA9PT0gJ3dlYicgPyAnd2ViJyA6ICdpT1MnLFxuICAgICAgaWNvbjogJ2RldmljZXMnLFxuICAgIH0pO1xuXG4gIGNvbnN0IGNvbmZpZ1NlY3Rpb25zOiBUZXN0Q2FzZURldGFpbHNDb25maWdTZWN0aW9uW10gPSBbXG4gICAge1xuICAgICAgdGl0bGU6ICdFeGVjdXRpb24nLFxuICAgICAgaWNvbjogJ3BsYXlfY2lyY2xlJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHsgbGFiZWw6ICdQcmVyZXF1aXNpdGUgQ2FzZScsIHZhbHVlOiBkYXRhLnByZXJlcXVpc2l0ZUNhc2UgPz8gbnVsbCB9LFxuICAgICAgICB7IGxhYmVsOiAnVmlkZW8gUmVjb3JkaW5nJywgdmFsdWU6IGRhdGEudmlkZW9SZWNvcmRpbmcgPz8gJycgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FJIENvbmZpZ3VyYXRpb24nLFxuICAgICAgaWNvbjogJ3NtYXJ0X3RveScsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7IGxhYmVsOiAnRW5hYmxlIEFJIFNtYXJ0bmVzcycsIHZhbHVlOiBkYXRhLmVuYWJsZUFpU21hcnRuZXNzID8/ICcnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZWZhdWx0IEFJIEFjdGlvbicsIHZhbHVlOiBkYXRhLmRlZmF1bHRBaUFjdGlvbiA/PyAnJyB9LFxuICAgICAgICB7IGxhYmVsOiAnS25vd2xlZGdlIEJhc2UgRGVmYXVsdCBUZXN0IENhc2UnLCB2YWx1ZTogZGF0YS5rbm93bGVkZ2VCYXNlRGVmYXVsdFRlc3RDYXNlID8/IG51bGwgfSxcbiAgICAgICAgeyBsYWJlbDogJ0VuYWJsZSBBSSBtZXRhZGF0YSBjb2xsZWN0aW9uJywgdmFsdWU6IGRhdGEudXNlQWlNZXRhZGF0YSA/PyAnJyB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGNvbmZpZ1NlY3Rpb25zUm93MjogVGVzdENhc2VEZXRhaWxzQ29uZmlnU2VjdGlvbltdID0gW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnV2FpdCBhbmQgcmV0cmllcycsXG4gICAgICBpY29uOiAndGltZXInLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAgeyBsYWJlbDogJ0VuYWJsZSBBdm9pZCBBdXRvIHdhaXQgZm9yIHN0ZXBzJywgdmFsdWU6IGRhdGEuYXV0b1dhaXRFbmFibGVkID8/IGZhbHNlIH0sXG4gICAgICAgIHsgbGFiZWw6ICdSZXRyeSBGYWlsZWQgU3RlcHMnLCB2YWx1ZTogZGF0YS5yZXRyeUZhaWxlZFN0ZXBzID8/ICcnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdUZXN0IENhc2UgVGltZW91dCAobWludXRlcyknLCB2YWx1ZTogZGF0YS50ZXN0Q2FzZVRpbWVvdXQgPz8gJycgfSxcbiAgICAgICAgeyBsYWJlbDogJ1dhaXQgVGltZW91dCBmb3IgTG9jYXRvcnMgKHNlY3MpJywgdmFsdWU6IGRhdGEud2FpdFRpbWVvdXRGb3JMb2NhdG9ycyA/PyAnJyB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnRGV2aWNlIFNldHRpbmcnLFxuICAgICAgaWNvbjogJ2RldmljZXMnLFxuICAgICAgaXRlbXM6ICgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBsYXRmb3JtID0gZGF0YS5wbGF0Zm9ybSA/PyAnd2ViJztcbiAgICAgICAgaWYgKHBsYXRmb3JtID09PSAnd2ViJykge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IGxhYmVsOiAnRGVmYXVsdCBCcm93c2VyJywgdmFsdWU6IGRhdGEuZGVmYXVsdEJyb3dzZXIgPz8gZGF0YS53ZWJCcm93c2VyID8/ICcnIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiAnRGVmYXVsdCBWaWV3cG9ydCcsIHZhbHVlOiBkYXRhLmRlZmF1bHRWaWV3cG9ydCA/PyBkYXRhLnZpZXdwb3J0ID8/ICcnIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHsgbGFiZWw6ICdEZWZhdWx0IE9TJywgdmFsdWU6IGRhdGEuZGV2aWNlT1MgPz8gJycgfSxcbiAgICAgICAgICB7IGxhYmVsOiAnRGVmYXVsdCBQaG9uZScsIHZhbHVlOiBkYXRhLmRldmljZVR5cGUgPz8gJycgfSxcbiAgICAgICAgXTtcbiAgICAgIH0pKCksXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0tleSBGbGFncycsXG4gICAgICBpY29uOiAnZmxhZycsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7IGxhYmVsOiAnTW9iaWxlIFRlc3RpbmcnLCB2YWx1ZTogZGF0YS5tb2JpbGVUZXN0aW5nID8/ICcnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdFeHRlbnNpb24gVXNlJywgdmFsdWU6IGRhdGEuZXh0ZW5zaW9uVXNlID8/ICcnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdEYXRhIERyaXZlbicsIHZhbHVlOiBkYXRhLmRhdGFEcml2ZW4gPz8gJycgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhSXRlbXMsXG4gICAgbGFiZWxzOiBkYXRhLmxhYmVscyA/PyBbXSxcbiAgICBjb25maWdTZWN0aW9ucyxcbiAgICBjb25maWdTZWN0aW9uc1JvdzIsXG4gIH07XG59XG4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlLWRldGFpbHMubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy90ZXN0LWNhc2UtZGV0YWlscy5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFlBQVksTUFBTSxRQUFRLENBQUM7QUFHdkMsTUFBTSxNQUFNLEdBQUksWUFBb0IsQ0FBQyxPQUFPLElBQUssWUFBb0IsQ0FBQztBQXNCdEUsbUZBQW1GO0FBQ25GLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFtQztJQUN6RSxNQUFNLEVBQUUsT0FBTztJQUNmLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLFdBQVcsRUFBRSxRQUFRO0lBQ3JCLEtBQUssRUFBRSxNQUFNO0lBQ2IsUUFBUSxFQUFFLE9BQU87SUFDakIsUUFBUSxFQUFFLEtBQUs7SUFDZixPQUFPLEVBQUUsS0FBSztJQUNkLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLElBQUksRUFBRSxPQUFPO0NBQ2QsQ0FBQztBQUVGLHFGQUFxRjtBQUNyRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBbUM7SUFDM0UsUUFBUSxFQUFFLEtBQUs7SUFDZixLQUFLLEVBQUUsS0FBSztJQUNaLElBQUksRUFBRSxLQUFLO0lBQ1gsTUFBTSxFQUFFLFFBQVE7SUFDaEIsR0FBRyxFQUFFLE9BQU87SUFDWixLQUFLLEVBQUUsT0FBTztJQUNkLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLEVBQUUsRUFBRSxLQUFLO0lBQ1QsRUFBRSxFQUFFLFFBQVE7SUFDWixFQUFFLEVBQUUsT0FBTztJQUNYLEVBQUUsRUFBRSxNQUFNO0NBQ1gsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQ3pDLHFDQUFxQztJQUNyQyxRQUFRLEVBQUU7UUFD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S0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUU7d0JBQ2pGLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO3FCQUNsRixDQUFDO2lCQUNIO2dCQUNELE9BQU87b0JBQ0wsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTtvQkFDbkQsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRTtpQkFDekQsQ0FBQztZQUNKLENBQUMsQ0FBQyxFQUFFO1NBQ0w7UUFDRDtZQUNFLEtBQUssRUFBRSxXQUFXO1lBQ2xCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFO2dCQUNMLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFBRTtnQkFDNUQsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsRUFBRTtnQkFDMUQsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRTthQUN2RDtTQUNGO0tBQ0YsQ0FBQztJQUVGLE9BQU87UUFDTCxhQUFhO1FBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTtRQUN6QixjQUFjO1FBQ2Qsa0JBQWtCO0tBQ25CLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbW9tZW50SW1wb3J0IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uSXRlbSB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24tY2FyZC9jb25maWd1cmF0aW9uLWNhcmQuY29tcG9uZW50JztcblxuY29uc3QgbW9tZW50ID0gKG1vbWVudEltcG9ydCBhcyBhbnkpLmRlZmF1bHQgfHwgKG1vbWVudEltcG9ydCBhcyBhbnkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb24ge1xuICB0aXRsZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBpdGVtczogQ29uZmlndXJhdGlvbkl0ZW1bXTtcbn1cblxuZXhwb3J0IHR5cGUgU3RhdHVzRG90Q29sb3IgPSAneWVsbG93JyB8ICdyZWQnIHwgJ2dyZWVuJyB8ICdncmF5JztcblxuZXhwb3J0IGludGVyZmFjZSBUZXN0Q2FzZURldGFpbHNNZXRhZGF0YUl0ZW0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBpY29uTGlicmFyeT86ICdtYXQnIHwgJ2ZhJztcbiAgbGluaz86IHN0cmluZztcbiAgc3RhdHVzQ29sb3I/OiBTdGF0dXNEb3RDb2xvcjtcbn1cblxuLyoqIE1hcHMgc3RhdHVzL3ByaW9yaXR5IHZhbHVlIChsb3dlcmNhc2UpIHRvIGRvdCBjb2xvci4gT3ZlcnJpZGUgdG8gY3VzdG9taXplLiAqL1xuZXhwb3J0IHR5cGUgU3RhdHVzQ29sb3JDb25maWcgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIFN0YXR1c0RvdENvbG9yPj47XG5cbi8qKiBEZWZhdWx0IHN0YXR1cyB2YWx1ZSAtPiBkb3QgY29sb3IuIE92ZXJyaWRlIHZpYSBCdWlsZFRlc3RDYXNlRGV0YWlsc09wdGlvbnMuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFUVVNfQ09MT1JfQ09ORklHOiBSZWNvcmQ8c3RyaW5nLCBTdGF0dXNEb3RDb2xvcj4gPSB7XG4gIGFjdGl2ZTogJ2dyZWVuJyxcbiAgaW5hY3RpdmU6ICdncmF5JyxcbiAgcGVuZGluZzogJ3llbGxvdycsXG4gIGNvbXBsZXRlZDogJ2dyZWVuJyxcbiAgJ2luIHJldmlldyc6ICd5ZWxsb3cnLFxuICBkcmFmdDogJ2dyYXknLFxuICBhcHByb3ZlZDogJ2dyZWVuJyxcbiAgcmVqZWN0ZWQ6ICdyZWQnLFxuICBibG9ja2VkOiAncmVkJyxcbiAgJ2luIHByb2dyZXNzJzogJ3llbGxvdycsXG4gIGRvbmU6ICdncmVlbicsXG59O1xuXG4vKiogRGVmYXVsdCBwcmlvcml0eSB2YWx1ZSAtPiBkb3QgY29sb3IuIE92ZXJyaWRlIHZpYSBCdWlsZFRlc3RDYXNlRGV0YWlsc09wdGlvbnMuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9QUklPUklUWV9DT0xPUl9DT05GSUc6IFJlY29yZDxzdHJpbmcsIFN0YXR1c0RvdENvbG9yPiA9IHtcbiAgY3JpdGljYWw6ICdyZWQnLFxuICBtYWpvcjogJ3JlZCcsXG4gIGhpZ2g6ICdyZWQnLFxuICBtZWRpdW06ICd5ZWxsb3cnLFxuICBsb3c6ICdncmVlbicsXG4gIG1pbm9yOiAnZ3JlZW4nLFxuICAnbm90IHNldCc6ICdncmF5JyxcbiAgcDA6ICdyZWQnLFxuICBwMTogJ3llbGxvdycsXG4gIHAyOiAnZ3JlZW4nLFxuICBwMzogJ2dyYXknLFxufTtcblxuLyoqXG4gKiBBUEkgZmllbGQgbmFtZXMgZm9yIG1hcHBpbmcgdGVzdCBjYXNlIGRhdGEgdG8gY3FhLXRlc3QtY2FzZS1kZXRhaWxzLlxuICogVXNlIHRoZXNlIHdoZW4gYnVpbGRpbmcgbWV0YWRhdGFJdGVtcyBhbmQgY29uZmlnU2VjdGlvbnMgZnJvbSB5b3VyIEFQSSByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRFU1RfQ0FTRV9ERVRBSUxTX0ZJRUxEX01BUCA9IHtcbiAgLyoqIE1ldGFkYXRhIChkZXNjcmlwdGlvbiBzZWN0aW9uKSAqL1xuICBtZXRhZGF0YToge1xuICAgIGNyZWF0ZWRPbjogJ2NyZWF0ZWRPbicsXG4gICAgc3RhdHVzOiAnc3RhdHVzJyxcbiAgICBwcmlvcml0eTogJ3ByaW9yaXR5JyxcbiAgICBlbnZpcm9ubWVudDogJ2Vudmlyb25tZW50JyxcbiAgICB2ZXJzaW9uOiAndmVyc2lvbicsXG4gICAgcGxhdGZvcm06ICdwbGF0Zm9ybScsXG4gICAgbGFiZWxzOiAnbGFiZWxzJyxcbiAgfSxcbiAgLyoqIEV4ZWN1dGlvbiBjb25maWcgKi9cbiAgZXhlY3V0aW9uOiB7XG4gICAgcHJlcmVxdWlzaXRlQ2FzZTogJ3ByZXJlcXVpc2l0ZUNhc2UnLFxuICAgIGRlZmF1bHRCcm93c2VyOiAnZGVmYXVsdEJyb3dzZXInLFxuICAgIHZpZGVvUmVjb3JkaW5nOiAndmlkZW9SZWNvcmRpbmcnLFxuICAgIHRlc3RDYXNlVGltZW91dDogJ3Rlc3RDYXNlVGltZW91dCcsXG4gICAgd2FpdFRpbWVvdXRGb3JMb2NhdG9yczogJ3dhaXRUaW1lb3V0Rm9yTG9jYXRvcnMnLFxuICAgIHdlYkJyb3dzZXI6ICd3ZWJCcm93c2VyJyxcbiAgICB2aWV3cG9ydDogJ3ZpZXdwb3J0JyxcbiAgfSxcbiAgLyoqIEFJIENvbmZpZ3VyYXRpb24gKi9cbiAgYWlDb25maWc6IHtcbiAgICBlbmFibGVBaVNtYXJ0bmVzczogJ2VuYWJsZUFpU21hcnRuZXNzJyxcbiAgICBkZWZhdWx0QWlBY3Rpb246ICdkZWZhdWx0QWlBY3Rpb24nLFxuICAgIGtub3dsZWRnZUJhc2VEZWZhdWx0VGVzdENhc2U6ICdrbm93bGVkZ2VCYXNlRGVmYXVsdFRlc3RDYXNlJyxcbiAgICB1c2VBaU1ldGFkYXRhOiAndXNlQWlNZXRhZGF0YScsXG4gIH0sXG4gIC8qKiBXYWl0cyAmIFJldHJpZXMgKi9cbiAgd2FpdHNSZXRyaWVzOiB7XG4gICAgYXV0b1dhaXQ6ICdhdXRvV2FpdCcsXG4gICAgcmV0cnlGYWlsZWRTdGVwczogJ3JldHJ5RmFpbGVkU3RlcHMnLFxuICB9LFxuICAvKiogRGV2aWNlICovXG4gIGRldmljZToge1xuICAgIHBsYXRmb3JtOiAncGxhdGZvcm0nLFxuICAgIGRldmljZVR5cGU6ICdkZXZpY2VUeXBlJyxcbiAgICBkZXZpY2VPUzogJ2RldmljZU9TJyxcbiAgICBkZWZhdWx0QnJvd3NlcjogJ2RlZmF1bHRCcm93c2VyJyxcbiAgICBkZWZhdWx0Vmlld3BvcnQ6ICdkZWZhdWx0Vmlld3BvcnQnLFxuICAgIHZpZXdwb3J0OiAndmlld3BvcnQnLFxuICB9LFxufSBhcyBjb25zdDtcblxuLyoqIEFQSSByZXNwb25zZSBzaGFwZSBmb3IgdGVzdCBjYXNlIGRldGFpbHMuIE1hcCB5b3VyIEFQSSBmaWVsZHMgdG8gdGhpcyBzdHJ1Y3R1cmUuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RDYXNlRGV0YWlsc0FwaURhdGEge1xuICBjcmVhdGVkT24/OiBzdHJpbmcgfCBEYXRlO1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIHByaW9yaXR5Pzogc3RyaW5nO1xuICBlbnZpcm9ubWVudD86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgdGVzdFBsYW5OYW1lPzogc3RyaW5nO1xuICB0ZXN0UGxhblJlZGlyZWN0VXJsPzogc3RyaW5nO1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcbiAgcHJlcmVxdWlzaXRlQ2FzZT86IHN0cmluZyB8IG51bGw7XG4gIGRlZmF1bHRCcm93c2VyPzogc3RyaW5nO1xuICB2aWRlb1JlY29yZGluZz86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIHRlc3RDYXNlVGltZW91dD86IHN0cmluZztcbiAgd2FpdFRpbWVvdXRGb3JMb2NhdG9ycz86IHN0cmluZztcbiAgd2ViQnJvd3Nlcj86IHN0cmluZztcbiAgdmlld3BvcnQ/OiBzdHJpbmc7XG4gIGVuYWJsZUFpU21hcnRuZXNzPzogc3RyaW5nO1xuICBkZWZhdWx0QWlBY3Rpb24/OiBzdHJpbmc7XG4gIGtub3dsZWRnZUJhc2VEZWZhdWx0VGVzdENhc2U/OiBzdHJpbmcgfCBudWxsO1xuICB1c2VBaU1ldGFkYXRhPzogc3RyaW5nO1xuICBhdXRvV2FpdD86IHN0cmluZztcbiAgYXV0b1dhaXRFbmFibGVkPzogYm9vbGVhbjtcbiAgcmV0cnlGYWlsZWRTdGVwcz86IHN0cmluZztcbiAgcGxhdGZvcm0/OiAnd2ViJyB8ICdtb2JpbGUnO1xuICBkZXZpY2VUeXBlPzogc3RyaW5nO1xuICBkZXZpY2VPUz86IHN0cmluZztcbiAgZGVmYXVsdFZpZXdwb3J0Pzogc3RyaW5nO1xuICAvKiogS2V5IEZsYWdzICovXG4gIG1vYmlsZVRlc3Rpbmc/OiBzdHJpbmcgfCBib29sZWFuO1xuICBleHRlbnNpb25Vc2U/OiBzdHJpbmcgfCBib29sZWFuO1xuICBkYXRhRHJpdmVuPzogc3RyaW5nIHwgYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGJ1aWxkVGVzdENhc2VEZXRhaWxzRnJvbUFwaSAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZFRlc3RDYXNlRGV0YWlsc09wdGlvbnMge1xuICAvKiogT3ZlcnJpZGUgc3RhdHVzIHZhbHVlIC0+IGRvdCBjb2xvci4gTWVyZ2VkIHdpdGggZGVmYXVsdHMuICovXG4gIHN0YXR1c0NvbG9yQ29uZmlnPzogU3RhdHVzQ29sb3JDb25maWc7XG4gIC8qKiBPdmVycmlkZSBwcmlvcml0eSB2YWx1ZSAtPiBkb3QgY29sb3IuIE1lcmdlZCB3aXRoIGRlZmF1bHRzLiAqL1xuICBwcmlvcml0eUNvbG9yQ29uZmlnPzogU3RhdHVzQ29sb3JDb25maWc7XG59XG5cbi8qKlxuICogQnVpbGQgbWV0YWRhdGFJdGVtcyBhbmQgY29uZmlnU2VjdGlvbnMgZnJvbSBBUEkgZGF0YSBmb3IgY3FhLXRlc3QtY2FzZS1kZXRhaWxzLlxuICogVXNlIGluIHRzLXBvcnRhbCB3aGVuIG1hcHBpbmcgdGVzdCBjYXNlIEFQSSByZXNwb25zZSB0byBjb21wb25lbnQgaW5wdXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUZXN0Q2FzZURldGFpbHNGcm9tQXBpKFxuICBkYXRhOiBUZXN0Q2FzZURldGFpbHNBcGlEYXRhLFxuICBvcHRpb25zPzogQnVpbGRUZXN0Q2FzZURldGFpbHNPcHRpb25zXG4pOiB7XG4gIG1ldGFkYXRhSXRlbXM6IFRlc3RDYXNlRGV0YWlsc01ldGFkYXRhSXRlbVtdO1xuICBsYWJlbHM6IHN0cmluZ1tdO1xuICBjb25maWdTZWN0aW9uczogVGVzdENhc2VEZXRhaWxzQ29uZmlnU2VjdGlvbltdO1xuICBjb25maWdTZWN0aW9uc1JvdzI6IFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb25bXTtcbn0ge1xuICBjb25zdCBmb3JtYXREYXRlID0gKHY6IHN0cmluZyB8IERhdGUgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuICAgIGlmICghdikgcmV0dXJuICcnO1xuICAgIGNvbnN0IG0gPSBtb21lbnQodik7XG4gICAgcmV0dXJuIG0uaXNWYWxpZCgpID8gbS5mb3JtYXQoJ01NTSBELCBZWVlZIGg6bW0gQScpIDogU3RyaW5nKHYpO1xuICB9O1xuXG4gIGNvbnN0IHN0YXR1c0NvbmZpZyA9IHsgLi4uREVGQVVMVF9TVEFUVVNfQ09MT1JfQ09ORklHLCAuLi5vcHRpb25zPy5zdGF0dXNDb2xvckNvbmZpZyB9O1xuICBjb25zdCBwcmlvcml0eUNvbmZpZyA9IHsgLi4uREVGQVVMVF9QUklPUklUWV9DT0xPUl9DT05GSUcsIC4uLm9wdGlvbnM/LnByaW9yaXR5Q29sb3JDb25maWcgfTtcbiAgY29uc3QgcmVzb2x2ZUNvbG9yID0gKHZhbHVlOiBzdHJpbmcsIGNvbmZpZzogUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCBTdGF0dXNEb3RDb2xvcj4+KTogU3RhdHVzRG90Q29sb3IgPT5cbiAgICBjb25maWdbdmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCldID8/ICdncmF5JztcblxuICBjb25zdCBtZXRhZGF0YUl0ZW1zOiBUZXN0Q2FzZURldGFpbHNNZXRhZGF0YUl0ZW1bXSA9IFtdO1xuICBpZiAoZGF0YS5jcmVhdGVkT24gIT0gbnVsbClcbiAgICBtZXRhZGF0YUl0ZW1zLnB1c2goeyBsYWJlbDogJ0NyZWF0ZWQgb24nLCB2YWx1ZTogZm9ybWF0RGF0ZShkYXRhLmNyZWF0ZWRPbiksIGljb246ICdjYWxlbmRhcl90b2RheScgfSk7XG4gIGlmIChkYXRhLnN0YXR1cyAhPSBudWxsKVxuICAgIG1ldGFkYXRhSXRlbXMucHVzaCh7IGxhYmVsOiAnU3RhdHVzJywgdmFsdWU6IGRhdGEuc3RhdHVzLCBzdGF0dXNDb2xvcjogcmVzb2x2ZUNvbG9yKGRhdGEuc3RhdHVzLCBzdGF0dXNDb25maWcpIH0pO1xuICBpZiAoZGF0YS5wcmlvcml0eSAhPSBudWxsKVxuICAgIG1ldGFkYXRhSXRlbXMucHVzaCh7IGxhYmVsOiAnUHJpb3JpdHknLCB2YWx1ZTogZGF0YS5wcmlvcml0eSwgc3RhdHVzQ29sb3I6IHJlc29sdmVDb2xvcihkYXRhLnByaW9yaXR5LCBwcmlvcml0eUNvbmZpZykgfSk7XG4gIGlmIChkYXRhLmVudmlyb25tZW50ICE9IG51bGwpXG4gICAgbWV0YWRhdGFJdGVtcy5wdXNoKHsgbGFiZWw6ICdFbnZpcm9ubWVudCcsIHZhbHVlOiBkYXRhLmVudmlyb25tZW50LCBpY29uOiAnc3RvcmFnZScgfSk7XG4gIGlmIChkYXRhLnZlcnNpb24gIT0gbnVsbClcbiAgICBtZXRhZGF0YUl0ZW1zLnB1c2goeyBsYWJlbDogJ1ZlcnNpb24nLCB2YWx1ZTogZGF0YS52ZXJzaW9uLCBpY29uOiAnbGFiZWwnIH0pO1xuICBpZiAoZGF0YS5wbGF0Zm9ybSAhPSBudWxsKVxuICAgIG1ldGFkYXRhSXRlbXMucHVzaCh7XG4gICAgICBsYWJlbDogJ1BsYXRmb3JtJyxcbiAgICAgIHZhbHVlOiBkYXRhLnBsYXRmb3JtID09PSAnd2ViJyA/ICd3ZWInIDogJ2lPUycsXG4gICAgICBpY29uOiAnZGV2aWNlcycsXG4gICAgfSk7XG5cbiAgY29uc3QgY29uZmlnU2VjdGlvbnM6IFRlc3RDYXNlRGV0YWlsc0NvbmZpZ1NlY3Rpb25bXSA9IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0V4ZWN1dGlvbicsXG4gICAgICBpY29uOiAncGxheV9jaXJjbGUnLFxuICAgICAgaXRlbXM6IFtcbiAgICAgICAgeyBsYWJlbDogJ1ByZXJlcXVpc2l0ZSBDYXNlJywgdmFsdWU6IGRhdGEucHJlcmVxdWlzaXRlQ2FzZSA/PyBudWxsIH0sXG4gICAgICAgIHsgbGFiZWw6ICdWaWRlbyBSZWNvcmRpbmcnLCB2YWx1ZTogZGF0YS52aWRlb1JlY29yZGluZyA/PyAnJyB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQUkgQ29uZmlndXJhdGlvbicsXG4gICAgICBpY29uOiAnc21hcnRfdG95JyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHsgbGFiZWw6ICdFbmFibGUgQUkgU21hcnRuZXNzJywgdmFsdWU6IGRhdGEuZW5hYmxlQWlTbWFydG5lc3MgPz8gJycgfSxcbiAgICAgICAgeyBsYWJlbDogJ0RlZmF1bHQgQUkgQWN0aW9uJywgdmFsdWU6IGRhdGEuZGVmYXVsdEFpQWN0aW9uID8/ICcnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdLbm93bGVkZ2UgQmFzZSBEZWZhdWx0IFRlc3QgQ2FzZScsIHZhbHVlOiBkYXRhLmtub3dsZWRnZUJhc2VEZWZhdWx0VGVzdENhc2UgPz8gbnVsbCB9LFxuICAgICAgICB7IGxhYmVsOiAnRW5hYmxlIEFJIG1ldGFkYXRhIGNvbGxlY3Rpb24nLCB2YWx1ZTogZGF0YS51c2VBaU1ldGFkYXRhID8/ICcnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgY29uZmlnU2VjdGlvbnNSb3cyOiBUZXN0Q2FzZURldGFpbHNDb25maWdTZWN0aW9uW10gPSBbXG4gICAge1xuICAgICAgdGl0bGU6ICdXYWl0IGFuZCByZXRyaWVzJyxcbiAgICAgIGljb246ICd0aW1lcicsXG4gICAgICBpdGVtczogW1xuICAgICAgICB7IGxhYmVsOiAnRW5hYmxlIEF2b2lkIEF1dG8gd2FpdCBmb3Igc3RlcHMnLCB2YWx1ZTogZGF0YS5hdXRvV2FpdEVuYWJsZWQgPz8gZmFsc2UgfSxcbiAgICAgICAgeyBsYWJlbDogJ1JldHJ5IEZhaWxlZCBTdGVwcycsIHZhbHVlOiBkYXRhLnJldHJ5RmFpbGVkU3RlcHMgPz8gJycgfSxcbiAgICAgICAgeyBsYWJlbDogJ1Rlc3QgQ2FzZSBUaW1lb3V0IChtaW51dGVzKScsIHZhbHVlOiBkYXRhLnRlc3RDYXNlVGltZW91dCA/PyAnJyB9LFxuICAgICAgICB7IGxhYmVsOiAnV2FpdCBUaW1lb3V0IGZvciBMb2NhdG9ycyAoc2VjcyknLCB2YWx1ZTogZGF0YS53YWl0VGltZW91dEZvckxvY2F0b3JzID8/ICcnIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdEZXZpY2UgU2V0dGluZycsXG4gICAgICBpY29uOiAnZGV2aWNlcycsXG4gICAgICBpdGVtczogKCgpID0+IHtcbiAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBkYXRhLnBsYXRmb3JtID8/ICd3ZWInO1xuICAgICAgICBpZiAocGxhdGZvcm0gPT09ICd3ZWInKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbGFiZWw6ICdEZWZhdWx0IEJyb3dzZXInLCB2YWx1ZTogZGF0YS5kZWZhdWx0QnJvd3NlciA/PyBkYXRhLndlYkJyb3dzZXIgPz8gJycgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdEZWZhdWx0IFZpZXdwb3J0JywgdmFsdWU6IGRhdGEuZGVmYXVsdFZpZXdwb3J0ID8/IGRhdGEudmlld3BvcnQgPz8gJycgfSxcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgeyBsYWJlbDogJ0RlZmF1bHQgT1MnLCB2YWx1ZTogZGF0YS5kZXZpY2VPUyA/PyAnJyB9LFxuICAgICAgICAgIHsgbGFiZWw6ICdEZWZhdWx0IFBob25lJywgdmFsdWU6IGRhdGEuZGV2aWNlVHlwZSA/PyAnJyB9LFxuICAgICAgICBdO1xuICAgICAgfSkoKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnS2V5IEZsYWdzJyxcbiAgICAgIGljb246ICdmbGFnJyxcbiAgICAgIGl0ZW1zOiBbXG4gICAgICAgIHsgbGFiZWw6ICdNb2JpbGUgVGVzdGluZycsIHZhbHVlOiBkYXRhLm1vYmlsZVRlc3RpbmcgPz8gJycgfSxcbiAgICAgICAgeyBsYWJlbDogJ0V4dGVuc2lvbiBVc2UnLCB2YWx1ZTogZGF0YS5leHRlbnNpb25Vc2UgPz8gJycgfSxcbiAgICAgICAgeyBsYWJlbDogJ0RhdGEgRHJpdmVuJywgdmFsdWU6IGRhdGEuZGF0YURyaXZlbiA/PyAnJyB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbWV0YWRhdGFJdGVtcyxcbiAgICBsYWJlbHM6IGRhdGEubGFiZWxzID8/IFtdLFxuICAgIGNvbmZpZ1NlY3Rpb25zLFxuICAgIGNvbmZpZ1NlY3Rpb25zUm93MixcbiAgfTtcbn1cbiJdfQ==
|