@cqa-lib/cqa-ui 1.1.21 → 1.1.22
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/execution-screen/execution-step.models.mjs +1 -1
- package/esm2020/lib/execution-screen/failed-step/failed-step.component.mjs +1 -1
- package/esm2020/lib/execution-screen/updated-failed-step/updated-failed-step.component.mjs +64 -0
- package/esm2020/lib/execution-screen/view-more-failed-step-button/view-more-failed-step-button.component.mjs +27 -0
- package/esm2020/lib/execution-screen/visual-comparison/visual-comparison.component.mjs +9 -3
- package/esm2020/lib/ui-kit.module.mjs +13 -1
- package/esm2020/lib/visual-difference-modal/visual-difference-modal.component.mjs +11 -2
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +225 -117
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +225 -117
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/execution-screen/execution-step.models.d.ts +2 -0
- package/lib/execution-screen/updated-failed-step/updated-failed-step.component.d.ts +24 -0
- package/lib/execution-screen/view-more-failed-step-button/view-more-failed-step-button.component.d.ts +13 -0
- package/lib/execution-screen/visual-comparison/visual-comparison.component.d.ts +3 -1
- package/lib/ui-kit.module.d.ts +38 -36
- package/lib/visual-difference-modal/visual-difference-modal.component.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/styles.css +1 -1
|
@@ -9,6 +9,7 @@ export class VisualDifferenceModalComponent {
|
|
|
9
9
|
this.title = 'Visual Difference';
|
|
10
10
|
this.subtitle = 'Comparing Baseline vs. Current Execution';
|
|
11
11
|
this.isOpen = false;
|
|
12
|
+
this.initialView = 'baseline';
|
|
12
13
|
this.close = new EventEmitter();
|
|
13
14
|
this.currentView = 'baseline';
|
|
14
15
|
this.baselineImageError = false;
|
|
@@ -25,6 +26,12 @@ export class VisualDifferenceModalComponent {
|
|
|
25
26
|
if (changes['differenceUrl']) {
|
|
26
27
|
this.differenceImageError = false;
|
|
27
28
|
}
|
|
29
|
+
if (changes['isOpen'] && this.isOpen) {
|
|
30
|
+
this.currentView = this.initialView;
|
|
31
|
+
}
|
|
32
|
+
if (changes['initialView'] && this.isOpen) {
|
|
33
|
+
this.currentView = this.initialView;
|
|
34
|
+
}
|
|
28
35
|
}
|
|
29
36
|
get currentImageUrl() {
|
|
30
37
|
switch (this.currentView) {
|
|
@@ -94,7 +101,7 @@ export class VisualDifferenceModalComponent {
|
|
|
94
101
|
}
|
|
95
102
|
}
|
|
96
103
|
VisualDifferenceModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VisualDifferenceModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
-
VisualDifferenceModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VisualDifferenceModalComponent, selector: "cqa-visual-difference-modal", inputs: { baselineUrl: "baselineUrl", currentUrl: "currentUrl", differenceUrl: "differenceUrl", title: "title", subtitle: "subtitle", isOpen: "isOpen" }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div \n *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-50 cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div \n class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-xl cqa-flex cqa-flex-col cqa-max-w-[90vw] cqa-h-[70vh] cqa-w-full cqa-overflow-hidden\"\n style=\"max-width: 1200px;\"\n (click)=\"$event.stopPropagation()\">\n \n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-px-6 cqa-pt-6 cqa-pb-4 cqa-border-b cqa-border-gray-200 cqa-bg-[#FBFCFF] cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <h2 class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#0B0B0B] cqa-m-0\">\n {{ title }}\n </h2>\n <p class=\"cqa-text-xs cqa-text-[#6D6D74] cqa-m-0\">{{ subtitle }}</p>\n </div>\n \n <div class=\"cqa-flex cqa-items-center cqa-gap-3\">\n <button\n type=\"button\"\n class=\"cqa-p-1.5 cqa-rounded-md cqa-text-gray-400 hover:cqa-text-gray-600 hover:cqa-bg-gray-100 cqa-transition-colors cqa-outline-none\"\n (click)=\"onClose(); $event.stopPropagation()\"\n aria-label=\"Close modal\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </div>\n </div>\n \n <div class=\"cqa-flex-1 cqa-overflow-auto cqa-relative\">\n <button\n type=\"button\"\n class=\"cqa-absolute cqa-left-8 cqa-top-1/2 cqa-transform -cqa-translate-y-1/2 cqa-z-10 cqa-w-10 cqa-h-10 cqa-rounded-full cqa-bg-[#00000080] cqa-text-white hover:cqa-bg-gray-700 cqa-transition-colors cqa-flex cqa-items-center cqa-justify-center cqa-outline-none cqa-shadow-lg\"\n (click)=\"navigatePrevious()\" style=\"transform: translate(-50%, -50%);\"\n aria-label=\"Previous image\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n\n <div class=\"cqa-w-full cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-p-8 cqa-px-16 cqa-overflow-auto\">\n <div *ngIf=\"currentImageUrl\" \n class=\"cqa-flex cqa-items-center cqa-justify-center cqa-h-full\"\n [style.transition]=\"'transform 0.2s ease-in-out'\">\n <img\n [src]=\"currentImageUrl\"\n [alt]=\"currentView + ' image'\"\n class=\"cqa-max-w-full cqa-max-h-full cqa-object-contain cqa-rounded-md cqa-shadow-lg cqa-bg-white\"\n (error)=\"onImageError($event)\"\n />\n </div>\n \n <div *ngIf=\"!currentImageUrl\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-justify-center cqa-py-12 cqa-px-6\">\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"12\" y=\"12\" width=\"56\" height=\"56\" rx=\"4\" stroke=\"#9CA3AF\" stroke-width=\"2\"/>\n <path d=\"M12 52L28 36L40 48L68 20\" stroke=\"#9CA3AF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"52\" cy=\"28\" r=\"6\" fill=\"#9CA3AF\"/>\n </svg>\n <p class=\"cqa-text-gray-500 cqa-text-sm cqa-font-medium cqa-mt-2\">No image available</p>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"cqa-absolute cqa-right-8 cqa-top-1/2 cqa-transform -cqa-translate-y-1/2 cqa-z-10 cqa-w-10 cqa-h-10 cqa-rounded-full cqa-bg-[#00000080] cqa-text-white hover:cqa-bg-gray-700 cqa-transition-colors cqa-flex cqa-items-center cqa-justify-center cqa-outline-none cqa-shadow-lg\"\n (click)=\"navigateNext()\" style=\"transform: translate(50%, -50%);\"\n aria-label=\"Next image\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-justify-center cqa-gap-2 cqa-p-4 cqa-bg-white\" style=\"border-top: 1px solid #D8D9FC;\">\n <div class=\"cqa-h-[52px] cqa-w-[76px] cqa-rounded-[6px] cqa-relative cqa-overflow-hidden cqa-cursor-pointer\" style=\"border: 2px solid #374151;\" [ngStyle]=\"{'border-color': currentView === 'baseline' ? '#3F43EE' : '#374151', 'box-shadow': currentView === 'baseline' ? '0px 0px 0px 2px #3B82F64D' : 'none'}\" (click)=\"setView('baseline')\">\n <img \n *ngIf=\"hasThumbnailImage('baseline')\"\n [src]=\"baselineUrl\" \n alt=\"Baseline image\" \n class=\"cqa-h-full cqa-w-full cqa-object-cover\"\n (error)=\"onThumbnailError('baseline', $event)\">\n <div \n *ngIf=\"!hasThumbnailImage('baseline')\"\n class=\"cqa-h-full cqa-w-full cqa-bg-gray-100 cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-text-gray-400\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"/>\n <path d=\"M3 15L9 9L13 13L21 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"cqa-absolute cqa-bottom-0 cqa-left-0 cqa-w-full cqa-h-[19px] cqa-p-[2px] cqa-text-center cqa-bg-[#00000080] cqa-flex cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[10px] cqa-text-white cqa-font-medium cqa-capitalize\">Baseline</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[52px] cqa-w-[76px] cqa-rounded-[6px] cqa-relative cqa-overflow-hidden cqa-cursor-pointer\" style=\"border: 2px solid #374151;\" [ngStyle]=\"{'border-color': currentView === 'current' ? '#3F43EE' : '#374151', 'box-shadow': currentView === 'current' ? '0px 0px 0px 2px #3B82F64D' : 'none'}\" (click)=\"setView('current')\">\n <img \n *ngIf=\"hasThumbnailImage('current')\"\n [src]=\"currentUrl\" \n alt=\"Current image\" \n class=\"cqa-h-full cqa-w-full cqa-object-cover\"\n (error)=\"onThumbnailError('current', $event)\">\n <div \n *ngIf=\"!hasThumbnailImage('current')\"\n class=\"cqa-h-full cqa-w-full cqa-bg-gray-100 cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-text-gray-400\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"/>\n <path d=\"M3 15L9 9L13 13L21 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"cqa-absolute cqa-bottom-0 cqa-left-0 cqa-w-full cqa-h-[19px] cqa-p-[2px] cqa-text-center cqa-bg-[#00000080] cqa-flex cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[10px] cqa-text-white cqa-font-medium cqa-capitalize\">Current</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[52px] cqa-w-[76px] cqa-rounded-[6px] cqa-relative cqa-overflow-hidden cqa-cursor-pointer\" style=\"border: 2px solid #374151;\" [ngStyle]=\"{'border-color': currentView === 'difference' ? '#3F43EE' : '#374151', 'box-shadow': currentView === 'difference' ? '0px 0px 0px 2px #3B82F64D' : 'none'}\" (click)=\"setView('difference')\">\n <img \n *ngIf=\"hasThumbnailImage('difference')\"\n [src]=\"differenceUrl\" \n alt=\"Difference image\" \n class=\"cqa-h-full cqa-w-full cqa-object-cover\"\n (error)=\"onThumbnailError('difference', $event)\">\n <div \n *ngIf=\"!hasThumbnailImage('difference')\"\n class=\"cqa-h-full cqa-w-full cqa-bg-gray-100 cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-text-gray-400\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"/>\n <path d=\"M3 15L9 9L13 13L21 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"cqa-absolute cqa-bottom-0 cqa-left-0 cqa-w-full cqa-h-[19px] cqa-p-[2px] cqa-text-center cqa-bg-[#00000080] cqa-flex cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[10px] cqa-text-white cqa-font-medium cqa-capitalize\">Difference</span>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
104
|
+
VisualDifferenceModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VisualDifferenceModalComponent, selector: "cqa-visual-difference-modal", inputs: { baselineUrl: "baselineUrl", currentUrl: "currentUrl", differenceUrl: "differenceUrl", title: "title", subtitle: "subtitle", isOpen: "isOpen", initialView: "initialView" }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div \n *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-50 cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div \n class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-xl cqa-flex cqa-flex-col cqa-max-w-[90vw] cqa-h-[70vh] cqa-w-full cqa-overflow-hidden\"\n style=\"max-width: 1200px;\"\n (click)=\"$event.stopPropagation()\">\n \n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-px-6 cqa-pt-6 cqa-pb-4 cqa-border-b cqa-border-gray-200 cqa-bg-[#FBFCFF] cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <h2 class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#0B0B0B] cqa-m-0\">\n {{ title }}\n </h2>\n <p class=\"cqa-text-xs cqa-text-[#6D6D74] cqa-m-0\">{{ subtitle }}</p>\n </div>\n \n <div class=\"cqa-flex cqa-items-center cqa-gap-3\">\n <button\n type=\"button\"\n class=\"cqa-p-1.5 cqa-rounded-md cqa-text-gray-400 hover:cqa-text-gray-600 hover:cqa-bg-gray-100 cqa-transition-colors cqa-outline-none\"\n (click)=\"onClose(); $event.stopPropagation()\"\n aria-label=\"Close modal\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </div>\n </div>\n \n <div class=\"cqa-flex-1 cqa-overflow-auto cqa-relative\">\n <button\n type=\"button\"\n class=\"cqa-absolute cqa-left-8 cqa-top-1/2 cqa-transform -cqa-translate-y-1/2 cqa-z-10 cqa-w-10 cqa-h-10 cqa-rounded-full cqa-bg-[#00000080] cqa-text-white hover:cqa-bg-gray-700 cqa-transition-colors cqa-flex cqa-items-center cqa-justify-center cqa-outline-none cqa-shadow-lg\"\n (click)=\"navigatePrevious()\" style=\"transform: translate(-50%, -50%);\"\n aria-label=\"Previous image\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n\n <div class=\"cqa-w-full cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-p-8 cqa-px-16 cqa-overflow-auto\">\n <div *ngIf=\"currentImageUrl\" \n class=\"cqa-flex cqa-items-center cqa-justify-center cqa-h-full\"\n [style.transition]=\"'transform 0.2s ease-in-out'\">\n <img\n [src]=\"currentImageUrl\"\n [alt]=\"currentView + ' image'\"\n class=\"cqa-max-w-full cqa-max-h-full cqa-object-contain cqa-rounded-md cqa-shadow-lg cqa-bg-white\"\n (error)=\"onImageError($event)\"\n />\n </div>\n \n <div *ngIf=\"!currentImageUrl\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-justify-center cqa-py-12 cqa-px-6\">\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"12\" y=\"12\" width=\"56\" height=\"56\" rx=\"4\" stroke=\"#9CA3AF\" stroke-width=\"2\"/>\n <path d=\"M12 52L28 36L40 48L68 20\" stroke=\"#9CA3AF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"52\" cy=\"28\" r=\"6\" fill=\"#9CA3AF\"/>\n </svg>\n <p class=\"cqa-text-gray-500 cqa-text-sm cqa-font-medium cqa-mt-2\">No image available</p>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"cqa-absolute cqa-right-8 cqa-top-1/2 cqa-transform -cqa-translate-y-1/2 cqa-z-10 cqa-w-10 cqa-h-10 cqa-rounded-full cqa-bg-[#00000080] cqa-text-white hover:cqa-bg-gray-700 cqa-transition-colors cqa-flex cqa-items-center cqa-justify-center cqa-outline-none cqa-shadow-lg\"\n (click)=\"navigateNext()\" style=\"transform: translate(50%, -50%);\"\n aria-label=\"Next image\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-justify-center cqa-gap-2 cqa-p-4 cqa-bg-white\" style=\"border-top: 1px solid #D8D9FC;\">\n <div class=\"cqa-h-[52px] cqa-w-[76px] cqa-rounded-[6px] cqa-relative cqa-overflow-hidden cqa-cursor-pointer\" style=\"border: 2px solid #374151;\" [ngStyle]=\"{'border-color': currentView === 'baseline' ? '#3F43EE' : '#374151', 'box-shadow': currentView === 'baseline' ? '0px 0px 0px 2px #3B82F64D' : 'none'}\" (click)=\"setView('baseline')\">\n <img \n *ngIf=\"hasThumbnailImage('baseline')\"\n [src]=\"baselineUrl\" \n alt=\"Baseline image\" \n class=\"cqa-h-full cqa-w-full cqa-object-cover\"\n (error)=\"onThumbnailError('baseline', $event)\">\n <div \n *ngIf=\"!hasThumbnailImage('baseline')\"\n class=\"cqa-h-full cqa-w-full cqa-bg-gray-100 cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-text-gray-400\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"/>\n <path d=\"M3 15L9 9L13 13L21 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"cqa-absolute cqa-bottom-0 cqa-left-0 cqa-w-full cqa-h-[19px] cqa-p-[2px] cqa-text-center cqa-bg-[#00000080] cqa-flex cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[10px] cqa-text-white cqa-font-medium cqa-capitalize\">Baseline</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[52px] cqa-w-[76px] cqa-rounded-[6px] cqa-relative cqa-overflow-hidden cqa-cursor-pointer\" style=\"border: 2px solid #374151;\" [ngStyle]=\"{'border-color': currentView === 'current' ? '#3F43EE' : '#374151', 'box-shadow': currentView === 'current' ? '0px 0px 0px 2px #3B82F64D' : 'none'}\" (click)=\"setView('current')\">\n <img \n *ngIf=\"hasThumbnailImage('current')\"\n [src]=\"currentUrl\" \n alt=\"Current image\" \n class=\"cqa-h-full cqa-w-full cqa-object-cover\"\n (error)=\"onThumbnailError('current', $event)\">\n <div \n *ngIf=\"!hasThumbnailImage('current')\"\n class=\"cqa-h-full cqa-w-full cqa-bg-gray-100 cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-text-gray-400\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"/>\n <path d=\"M3 15L9 9L13 13L21 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"cqa-absolute cqa-bottom-0 cqa-left-0 cqa-w-full cqa-h-[19px] cqa-p-[2px] cqa-text-center cqa-bg-[#00000080] cqa-flex cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[10px] cqa-text-white cqa-font-medium cqa-capitalize\">Current</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[52px] cqa-w-[76px] cqa-rounded-[6px] cqa-relative cqa-overflow-hidden cqa-cursor-pointer\" style=\"border: 2px solid #374151;\" [ngStyle]=\"{'border-color': currentView === 'difference' ? '#3F43EE' : '#374151', 'box-shadow': currentView === 'difference' ? '0px 0px 0px 2px #3B82F64D' : 'none'}\" (click)=\"setView('difference')\">\n <img \n *ngIf=\"hasThumbnailImage('difference')\"\n [src]=\"differenceUrl\" \n alt=\"Difference image\" \n class=\"cqa-h-full cqa-w-full cqa-object-cover\"\n (error)=\"onThumbnailError('difference', $event)\">\n <div \n *ngIf=\"!hasThumbnailImage('difference')\"\n class=\"cqa-h-full cqa-w-full cqa-bg-gray-100 cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-text-gray-400\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"/>\n <path d=\"M3 15L9 9L13 13L21 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"cqa-absolute cqa-bottom-0 cqa-left-0 cqa-w-full cqa-h-[19px] cqa-p-[2px] cqa-text-center cqa-bg-[#00000080] cqa-flex cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[10px] cqa-text-white cqa-font-medium cqa-capitalize\">Difference</span>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
98
105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VisualDifferenceModalComponent, decorators: [{
|
|
99
106
|
type: Component,
|
|
100
107
|
args: [{ selector: 'cqa-visual-difference-modal', template: "<div \n *ngIf=\"isOpen\"\n class=\"modal-backdrop cqa-fixed cqa-inset-0 cqa-bg-black cqa-bg-opacity-50 cqa-z-50 cqa-flex cqa-items-center cqa-justify-center cqa-p-4\"\n (click)=\"onBackdropClick($event)\">\n <div \n class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-xl cqa-flex cqa-flex-col cqa-max-w-[90vw] cqa-h-[70vh] cqa-w-full cqa-overflow-hidden\"\n style=\"max-width: 1200px;\"\n (click)=\"$event.stopPropagation()\">\n \n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-px-6 cqa-pt-6 cqa-pb-4 cqa-border-b cqa-border-gray-200 cqa-bg-[#FBFCFF] cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <h2 class=\"cqa-text-[18px] cqa-font-medium cqa-text-[#0B0B0B] cqa-m-0\">\n {{ title }}\n </h2>\n <p class=\"cqa-text-xs cqa-text-[#6D6D74] cqa-m-0\">{{ subtitle }}</p>\n </div>\n \n <div class=\"cqa-flex cqa-items-center cqa-gap-3\">\n <button\n type=\"button\"\n class=\"cqa-p-1.5 cqa-rounded-md cqa-text-gray-400 hover:cqa-text-gray-600 hover:cqa-bg-gray-100 cqa-transition-colors cqa-outline-none\"\n (click)=\"onClose(); $event.stopPropagation()\"\n aria-label=\"Close modal\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </div>\n </div>\n \n <div class=\"cqa-flex-1 cqa-overflow-auto cqa-relative\">\n <button\n type=\"button\"\n class=\"cqa-absolute cqa-left-8 cqa-top-1/2 cqa-transform -cqa-translate-y-1/2 cqa-z-10 cqa-w-10 cqa-h-10 cqa-rounded-full cqa-bg-[#00000080] cqa-text-white hover:cqa-bg-gray-700 cqa-transition-colors cqa-flex cqa-items-center cqa-justify-center cqa-outline-none cqa-shadow-lg\"\n (click)=\"navigatePrevious()\" style=\"transform: translate(-50%, -50%);\"\n aria-label=\"Previous image\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n\n <div class=\"cqa-w-full cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-p-8 cqa-px-16 cqa-overflow-auto\">\n <div *ngIf=\"currentImageUrl\" \n class=\"cqa-flex cqa-items-center cqa-justify-center cqa-h-full\"\n [style.transition]=\"'transform 0.2s ease-in-out'\">\n <img\n [src]=\"currentImageUrl\"\n [alt]=\"currentView + ' image'\"\n class=\"cqa-max-w-full cqa-max-h-full cqa-object-contain cqa-rounded-md cqa-shadow-lg cqa-bg-white\"\n (error)=\"onImageError($event)\"\n />\n </div>\n \n <div *ngIf=\"!currentImageUrl\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-justify-center cqa-py-12 cqa-px-6\">\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"12\" y=\"12\" width=\"56\" height=\"56\" rx=\"4\" stroke=\"#9CA3AF\" stroke-width=\"2\"/>\n <path d=\"M12 52L28 36L40 48L68 20\" stroke=\"#9CA3AF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"52\" cy=\"28\" r=\"6\" fill=\"#9CA3AF\"/>\n </svg>\n <p class=\"cqa-text-gray-500 cqa-text-sm cqa-font-medium cqa-mt-2\">No image available</p>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"cqa-absolute cqa-right-8 cqa-top-1/2 cqa-transform -cqa-translate-y-1/2 cqa-z-10 cqa-w-10 cqa-h-10 cqa-rounded-full cqa-bg-[#00000080] cqa-text-white hover:cqa-bg-gray-700 cqa-transition-colors cqa-flex cqa-items-center cqa-justify-center cqa-outline-none cqa-shadow-lg\"\n (click)=\"navigateNext()\" style=\"transform: translate(50%, -50%);\"\n aria-label=\"Next image\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-justify-center cqa-gap-2 cqa-p-4 cqa-bg-white\" style=\"border-top: 1px solid #D8D9FC;\">\n <div class=\"cqa-h-[52px] cqa-w-[76px] cqa-rounded-[6px] cqa-relative cqa-overflow-hidden cqa-cursor-pointer\" style=\"border: 2px solid #374151;\" [ngStyle]=\"{'border-color': currentView === 'baseline' ? '#3F43EE' : '#374151', 'box-shadow': currentView === 'baseline' ? '0px 0px 0px 2px #3B82F64D' : 'none'}\" (click)=\"setView('baseline')\">\n <img \n *ngIf=\"hasThumbnailImage('baseline')\"\n [src]=\"baselineUrl\" \n alt=\"Baseline image\" \n class=\"cqa-h-full cqa-w-full cqa-object-cover\"\n (error)=\"onThumbnailError('baseline', $event)\">\n <div \n *ngIf=\"!hasThumbnailImage('baseline')\"\n class=\"cqa-h-full cqa-w-full cqa-bg-gray-100 cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-text-gray-400\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"/>\n <path d=\"M3 15L9 9L13 13L21 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"cqa-absolute cqa-bottom-0 cqa-left-0 cqa-w-full cqa-h-[19px] cqa-p-[2px] cqa-text-center cqa-bg-[#00000080] cqa-flex cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[10px] cqa-text-white cqa-font-medium cqa-capitalize\">Baseline</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[52px] cqa-w-[76px] cqa-rounded-[6px] cqa-relative cqa-overflow-hidden cqa-cursor-pointer\" style=\"border: 2px solid #374151;\" [ngStyle]=\"{'border-color': currentView === 'current' ? '#3F43EE' : '#374151', 'box-shadow': currentView === 'current' ? '0px 0px 0px 2px #3B82F64D' : 'none'}\" (click)=\"setView('current')\">\n <img \n *ngIf=\"hasThumbnailImage('current')\"\n [src]=\"currentUrl\" \n alt=\"Current image\" \n class=\"cqa-h-full cqa-w-full cqa-object-cover\"\n (error)=\"onThumbnailError('current', $event)\">\n <div \n *ngIf=\"!hasThumbnailImage('current')\"\n class=\"cqa-h-full cqa-w-full cqa-bg-gray-100 cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-text-gray-400\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"/>\n <path d=\"M3 15L9 9L13 13L21 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"cqa-absolute cqa-bottom-0 cqa-left-0 cqa-w-full cqa-h-[19px] cqa-p-[2px] cqa-text-center cqa-bg-[#00000080] cqa-flex cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[10px] cqa-text-white cqa-font-medium cqa-capitalize\">Current</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[52px] cqa-w-[76px] cqa-rounded-[6px] cqa-relative cqa-overflow-hidden cqa-cursor-pointer\" style=\"border: 2px solid #374151;\" [ngStyle]=\"{'border-color': currentView === 'difference' ? '#3F43EE' : '#374151', 'box-shadow': currentView === 'difference' ? '0px 0px 0px 2px #3B82F64D' : 'none'}\" (click)=\"setView('difference')\">\n <img \n *ngIf=\"hasThumbnailImage('difference')\"\n [src]=\"differenceUrl\" \n alt=\"Difference image\" \n class=\"cqa-h-full cqa-w-full cqa-object-cover\"\n (error)=\"onThumbnailError('difference', $event)\">\n <div \n *ngIf=\"!hasThumbnailImage('difference')\"\n class=\"cqa-h-full cqa-w-full cqa-bg-gray-100 cqa-flex cqa-items-center cqa-justify-center\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-text-gray-400\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"/>\n <path d=\"M3 15L9 9L13 13L21 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"cqa-absolute cqa-bottom-0 cqa-left-0 cqa-w-full cqa-h-[19px] cqa-p-[2px] cqa-text-center cqa-bg-[#00000080] cqa-flex cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[10px] cqa-text-white cqa-font-medium cqa-capitalize\">Difference</span>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n", styles: [] }]
|
|
@@ -110,7 +117,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
110
117
|
type: Input
|
|
111
118
|
}], isOpen: [{
|
|
112
119
|
type: Input
|
|
120
|
+
}], initialView: [{
|
|
121
|
+
type: Input
|
|
113
122
|
}], close: [{
|
|
114
123
|
type: Output
|
|
115
124
|
}] } });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWRpZmZlcmVuY2UtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi92aXN1YWwtZGlmZmVyZW5jZS1tb2RhbC92aXN1YWwtZGlmZmVyZW5jZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Zpc3VhbC1kaWZmZXJlbmNlLW1vZGFsL3Zpc3VhbC1kaWZmZXJlbmNlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7QUFTakcsTUFBTSxPQUFPLDhCQUE4QjtJQUwzQztRQU1XLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsVUFBSyxHQUFXLG1CQUFtQixDQUFDO1FBQ3BDLGFBQVEsR0FBVywwQ0FBMEMsQ0FBQztRQUM5RCxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTNDLGdCQUFXLEdBQWtCLFVBQVUsQ0FBQztRQUN4Qyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLHlCQUFvQixHQUFZLEtBQUssQ0FBQztLQXFGdkM7SUFuRkMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7U0FDakM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxPQUFPLENB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SUFDMUMsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLEtBQUssR0FBb0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sU0FBUyxHQUFHLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OzJIQWhHVSw4QkFBOEI7K0dBQTlCLDhCQUE4QiwrUUNUM0Mscy9SQTBJQTsyRkRqSWEsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLDZCQUE2Qjs4QkFLOUIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgSW1hZ2VWaWV3VHlwZSA9ICdiYXNlbGluZScgfCAnY3VycmVudCcgfCAnZGlmZmVyZW5jZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS12aXN1YWwtZGlmZmVyZW5jZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92aXN1YWwtZGlmZmVyZW5jZS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgVmlzdWFsRGlmZmVyZW5jZU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgYmFzZWxpbmVVcmw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjdXJyZW50VXJsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGlmZmVyZW5jZVVybDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnVmlzdWFsIERpZmZlcmVuY2UnO1xuICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nID0gJ0NvbXBhcmluZyBCYXNlbGluZSB2cy4gQ3VycmVudCBFeGVjdXRpb24nO1xuICBASW5wdXQoKSBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGN1cnJlbnRWaWV3OiBJbWFnZVZpZXdUeXBlID0gJ2Jhc2VsaW5lJztcbiAgYmFzZWxpbmVJbWFnZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGN1cnJlbnRJbWFnZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGRpZmZlcmVuY2VJbWFnZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydiYXNlbGluZVVybCddKSB7XG4gICAgICB0aGlzLmJhc2VsaW5lSW1hZ2VFcnJvciA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snY3VycmVudFVybCddKSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbWFnZUVycm9yID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydkaWZmZXJlbmNlVXJsJ10pIHtcbiAgICAgIHRoaXMuZGlmZmVyZW5jZUltYWdlRXJyb3IgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXQgY3VycmVudEltYWdlVXJsKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRWaWV3KSB7XG4gICAgICBjYXNlICdiYXNlbGluZSc6XG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VsaW5lVXJsO1xuICAgICAgY2FzZSAnY3VycmVudCc6XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRVcmw7XG4gICAgICBjYXNlICdkaWZmZXJlbmNlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlmZmVyZW5jZVVybDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgb25CYWNrZHJvcENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGN1cnJlbnRUYXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIFxuICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQgfHwgdGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnbW9kYWwtYmFja2Ryb3AnKSkge1xuICAgICAgdGhpcy5vbkNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgb25JbWFnZUVycm9yKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGltZyA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgIGltZy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICB9XG5cbiAgb25UaHVtYm5haWxFcnJvcih0eXBlOiAnYmFzZWxpbmUnIHwgJ2N1cnJlbnQnIHwgJ2RpZmZlcmVuY2UnLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbWcgPSBldmVudC50YXJnZXQgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICBpbWcuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICBpZiAodHlwZSA9PT0gJ2Jhc2VsaW5lJykge1xuICAgICAgdGhpcy5iYXNlbGluZUltYWdlRXJyb3IgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2N1cnJlbnQnKSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbWFnZUVycm9yID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdkaWZmZXJlbmNlJykge1xuICAgICAgdGhpcy5kaWZmZXJlbmNlSW1hZ2VFcnJvciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaGFzVGh1bWJuYWlsSW1hZ2UodHlwZTogJ2Jhc2VsaW5lJyB8ICdjdXJyZW50JyB8ICdkaWZmZXJlbmNlJyk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlID09PSAnYmFzZWxpbmUnKSB7XG4gICAgICByZXR1cm4gISF0aGlzLmJhc2VsaW5lVXJsICYmICF0aGlzLmJhc2VsaW5lSW1hZ2VFcnJvcjtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdjdXJyZW50Jykge1xuICAgICAgcmV0dXJuICEhdGhpcy5jdXJyZW50VXJsICYmICF0aGlzLmN1cnJlbnRJbWFnZUVycm9yO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2RpZmZlcmVuY2UnKSB7XG4gICAgICByZXR1cm4gISF0aGlzLmRpZmZlcmVuY2VVcmwgJiYgIXRoaXMuZGlmZmVyZW5jZUltYWdlRXJyb3I7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHNldFZpZXcodmlldzogSW1hZ2VWaWV3VHlwZSk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFZpZXcgPSB2aWV3O1xuICB9XG5cbiAgbmF2aWdhdGVQcmV2aW91cygpOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3czogSW1hZ2VWaWV3VHlwZVtdID0gWydiYXNlbGluZScsICdjdXJyZW50JywgJ2RpZmZlcmVuY2UnXTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB2aWV3cy5pbmRleE9mKHRoaXMuY3VycmVudFZpZXcpO1xuICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBjdXJyZW50SW5kZXggPiAwID8gY3VycmVudEluZGV4IC0gMSA6IHZpZXdzLmxlbmd0aCAtIDE7XG4gICAgdGhpcy5jdXJyZW50VmlldyA9IHZpZXdzW3ByZXZpb3VzSW5kZXhdO1xuICB9XG5cbiAgbmF2aWdhdGVOZXh0KCk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdzOiBJbWFnZVZpZXdUeXBlW10gPSBbJ2Jhc2VsaW5lJywgJ2N1cnJlbnQnLCAnZGlmZmVyZW5jZSddO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHZpZXdzLmluZGV4T2YodGhpcy5jdXJyZW50Vmlldyk7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gY3VycmVudEluZGV4IDwgdmlld3MubGVuZ3RoIC0gMSA/IGN1cnJlbnRJbmRleCArIDEgOiAwO1xuICAgIHRoaXMuY3VycmVudFZpZXcgPSB2aWV3c1tuZXh0SW5kZXhdO1xuICB9XG59XG5cbiIsIjxkaXYgXG4gICpuZ0lmPVwiaXNPcGVuXCJcbiAgY2xhc3M9XCJtb2RhbC1iYWNrZHJvcCBjcWEtZml4ZWQgY3FhLWluc2V0LTAgY3FhLWJnLWJsYWNrIGNxYS1iZy1vcGFjaXR5LTUwIGNxYS16LTUwIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1wLTRcIlxuICAoY2xpY2spPVwib25CYWNrZHJvcENsaWNrKCRldmVudClcIj5cbiAgPGRpdiBcbiAgICBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1sZyBjcWEtc2hhZG93LXhsIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtbWF4LXctWzkwdnddIGNxYS1oLVs3MHZoXSBjcWEtdy1mdWxsIGNxYS1vdmVyZmxvdy1oaWRkZW5cIlxuICAgIHN0eWxlPVwibWF4LXdpZHRoOiAxMjAwcHg7XCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtcHgtNiBjcWEtcHQtNiBjcWEtcGItNCBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1ncmF5LTIwMCBjcWEtYmctWyNGQkZDRkZdIGNxYS1nYXAtNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTFcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzBCMEIwQl0gY3FhLW0tMFwiPlxuICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM2RDZENzRdIGNxYS1tLTBcIj57eyBzdWJ0aXRsZSB9fTwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLXAtMS41IGNxYS1yb3VuZGVkLW1kIGNxYS10ZXh0LWdyYXktNDAwIGhvdmVyOmNxYS10ZXh0LWdyYXktNjAwIGhvdmVyOmNxYS1iZy1ncmF5LTEwMCBjcWEtdHJhbnNpdGlvbi1jb2xvcnMgY3FhLW91dGxpbmUtbm9uZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgbW9kYWxcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgNUw1IDE1TTUgNUwxNSAxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtb3ZlcmZsb3ctYXV0byBjcWEtcmVsYXRpdmVcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS1sZWZ0LTggY3FhLXRvcC0xLzIgY3FhLXRyYW5zZm9ybSAtY3FhLXRyYW5zbGF0ZS15LTEvMiBjcWEtei0xMCBjcWEtdy0xMCBjcWEtaC0xMCBjcWEtcm91bmRlZC1mdWxsIGNxYS1iZy1bIzAwMDAwMDgwXSBjcWEtdGV4dC13aGl0ZSBob3ZlcjpjcWEtYmctZ3JheS03MDAgY3FhLXRyYW5zaXRpb24tY29sb3JzIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1vdXRsaW5lLW5vbmUgY3FhLXNoYWRvdy1sZ1wiXG4gICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVByZXZpb3VzKClcIiBzdHlsZT1cInRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1wiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJQcmV2aW91cyBpbWFnZVwiPlxuICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTE1IDE4TDkgMTJMMTUgNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1oLWZ1bGwgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXAtOCBjcWEtcHgtMTYgY3FhLW92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRJbWFnZVVybFwiIFxuICAgICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWgtZnVsbFwiXG4gICAgICAgICAgICAgW3N0eWxlLnRyYW5zaXRpb25dPVwiJ3RyYW5zZm9ybSAwLjJzIGVhc2UtaW4tb3V0J1wiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIFtzcmNdPVwiY3VycmVudEltYWdlVXJsXCJcbiAgICAgICAgICAgIFthbHRdPVwiY3VycmVudFZpZXcgKyAnIGltYWdlJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1tYXgtdy1mdWxsIGNxYS1tYXgtaC1mdWxsIGNxYS1vYmplY3QtY29udGFpbiBjcWEtcm91bmRlZC1tZCBjcWEtc2hhZG93LWxnIGNxYS1iZy13aGl0ZVwiXG4gICAgICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFjdXJyZW50SW1hZ2VVcmxcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtcHktMTIgY3FhLXB4LTZcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiODBcIiBoZWlnaHQ9XCI4MFwiIHZpZXdCb3g9XCIwIDAgODAgODBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIxMlwiIHk9XCIxMlwiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHJ4PVwiNFwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2Utd2lkdGg9XCIyXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xMiA1MkwyOCAzNkw0MCA0OEw2OCAyMFwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjUyXCIgY3k9XCIyOFwiIHI9XCI2XCIgZmlsbD1cIiM5Q0EzQUZcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC1ncmF5LTUwMCBjcWEtdGV4dC1zbSBjcWEtZm9udC1tZWRpdW0gY3FhLW10LTJcIj5ObyBpbWFnZSBhdmFpbGFibGU8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS1yaWdodC04IGNxYS10b3AtMS8yIGNxYS10cmFuc2Zvcm0gLWNxYS10cmFuc2xhdGUteS0xLzIgY3FhLXotMTAgY3FhLXctMTAgY3FhLWgtMTAgY3FhLXJvdW5kZWQtZnVsbCBjcWEtYmctWyMwMDAwMDA4MF0gY3FhLXRleHQtd2hpdGUgaG92ZXI6Y3FhLWJnLWdyYXktNzAwIGNxYS10cmFuc2l0aW9uLWNvbG9ycyBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtb3V0bGluZS1ub25lIGNxYS1zaGFkb3ctbGdcIlxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVOZXh0KClcIiBzdHlsZT1cInRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgLTUwJSk7XCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIk5leHQgaW1hZ2VcIj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDE4TDE1IDEyTDkgNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWdhcC0yIGNxYS1wLTQgY3FhLWJnLXdoaXRlXCIgc3R5bGU9XCJib3JkZXItdG9wOiAxcHggc29saWQgI0Q4RDlGQztcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtaC1bNTJweF0gY3FhLXctWzc2cHhdIGNxYS1yb3VuZGVkLVs2cHhdIGNxYS1yZWxhdGl2ZSBjcWEtb3ZlcmZsb3ctaGlkZGVuIGNxYS1jdXJzb3ItcG9pbnRlclwiIHN0eWxlPVwiYm9yZGVyOiAycHggc29saWQgIzM3NDE1MTtcIiBbbmdTdHlsZV09XCJ7J2JvcmRlci1jb2xvcic6IGN1cnJlbnRWaWV3ID09PSAnYmFzZWxpbmUnID8gJyMzRjQzRUUnIDogJyMzNzQxNTEnLCAnYm94LXNoYWRvdyc6IGN1cnJlbnRWaWV3ID09PSAnYmFzZWxpbmUnID8gJzBweCAwcHggMHB4IDJweCAjM0I4MkY2NEQnIDogJ25vbmUnfVwiIChjbGljayk9XCJzZXRWaWV3KCdiYXNlbGluZScpXCI+XG4gICAgICAgIDxpbWcgXG4gICAgICAgICAgKm5nSWY9XCJoYXNUaHVtYm5haWxJbWFnZSgnYmFzZWxpbmUnKVwiXG4gICAgICAgICAgW3NyY109XCJiYXNlbGluZVVybFwiIFxuICAgICAgICAgIGFsdD1cIkJhc2VsaW5lIGltYWdlXCIgXG4gICAgICAgICAgY2xhc3M9XCJjcWEtaC1mdWxsIGNxYS13LWZ1bGwgY3FhLW9iamVjdC1jb3ZlclwiXG4gICAgICAgICAgKGVycm9yKT1cIm9uVGh1bWJuYWlsRXJyb3IoJ2Jhc2VsaW5lJywgJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IFxuICAgICAgICAgICpuZ0lmPVwiIWhhc1RodW1ibmFpbEltYWdlKCdiYXNlbGluZScpXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1oLWZ1bGwgY3FhLXctZnVsbCBjcWEtYmctZ3JheS0xMDAgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImNxYS10ZXh0LWdyYXktNDAwXCI+XG4gICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgcng9XCIyXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMyAxNUw5IDlMMTMgMTNMMjEgNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS1ib3R0b20tMCBjcWEtbGVmdC0wIGNxYS13LWZ1bGwgY3FhLWgtWzE5cHhdIGNxYS1wLVsycHhdIGNxYS10ZXh0LWNlbnRlciBjcWEtYmctWyMwMDAwMDA4MF0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtdGV4dC13aGl0ZSBjcWEtZm9udC1tZWRpdW0gY3FhLWNhcGl0YWxpemVcIj5CYXNlbGluZTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1oLVs1MnB4XSBjcWEtdy1bNzZweF0gY3FhLXJvdW5kZWQtWzZweF0gY3FhLXJlbGF0aXZlIGNxYS1vdmVyZmxvdy1oaWRkZW4gY3FhLWN1cnNvci1wb2ludGVyXCIgc3R5bGU9XCJib3JkZXI6IDJweCBzb2xpZCAjMzc0MTUxO1wiIFtuZ1N0eWxlXT1cInsnYm9yZGVyLWNvbG9yJzogY3VycmVudFZpZXcgPT09ICdjdXJyZW50JyA/ICcjM0Y0M0VFJyA6ICcjMzc0MTUxJywgJ2JveC1zaGFkb3cnOiBjdXJyZW50VmlldyA9PT0gJ2N1cnJlbnQnID8gJzBweCAwcHggMHB4IDJweCAjM0I4MkY2NEQnIDogJ25vbmUnfVwiIChjbGljayk9XCJzZXRWaWV3KCdjdXJyZW50JylcIj5cbiAgICAgICAgPGltZyBcbiAgICAgICAgICAqbmdJZj1cImhhc1RodW1ibmFpbEltYWdlKCdjdXJyZW50JylcIlxuICAgICAgICAgIFtzcmNdPVwiY3VycmVudFVybFwiIFxuICAgICAgICAgIGFsdD1cIkN1cnJlbnQgaW1hZ2VcIiBcbiAgICAgICAgICBjbGFzcz1cImNxYS1oLWZ1bGwgY3FhLXctZnVsbCBjcWEtb2JqZWN0LWNvdmVyXCJcbiAgICAgICAgICAoZXJyb3IpPVwib25UaHVtYm5haWxFcnJvcignY3VycmVudCcsICRldmVudClcIj5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICAqbmdJZj1cIiFoYXNUaHVtYm5haWxJbWFnZSgnY3VycmVudCcpXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1oLWZ1bGwgY3FhLXctZnVsbCBjcWEtYmctZ3JheS0xMDAgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImNxYS10ZXh0LWdyYXktNDAwXCI+XG4gICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgcng9XCIyXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMyAxNUw5IDlMMTMgMTNMMjEgNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS1ib3R0b20tMCBjcWEtbGVmdC0wIGNxYS13LWZ1bGwgY3FhLWgtWzE5cHhdIGNxYS1wLVsycHhdIGNxYS10ZXh0LWNlbnRlciBjcWEtYmctWyMwMDAwMDA4MF0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtdGV4dC13aGl0ZSBjcWEtZm9udC1tZWRpdW0gY3FhLWNhcGl0YWxpemVcIj5DdXJyZW50PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtWzUycHhdIGNxYS13LVs3NnB4XSBjcWEtcm91bmRlZC1bNnB4XSBjcWEtcmVsYXRpdmUgY3FhLW92ZXJmbG93LWhpZGRlbiBjcWEtY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cImJvcmRlcjogMnB4IHNvbGlkICMzNzQxNTE7XCIgW25nU3R5bGVdPVwieydib3JkZXItY29sb3InOiBjdXJyZW50VmlldyA9PT0gJ2RpZmZlcmVuY2UnID8gJyMzRjQzRUUnIDogJyMzNzQxNTEnLCAnYm94LXNoYWRvdyc6IGN1cnJlbnRWaWV3ID09PSAnZGlmZmVyZW5jZScgPyAnMHB4IDBweCAwcHggMnB4ICMzQjgyRjY0RCcgOiAnbm9uZSd9XCIgKGNsaWNrKT1cInNldFZpZXcoJ2RpZmZlcmVuY2UnKVwiPlxuICAgICAgICA8aW1nIFxuICAgICAgICAgICpuZ0lmPVwiaGFzVGh1bWJuYWlsSW1hZ2UoJ2RpZmZlcmVuY2UnKVwiXG4gICAgICAgICAgW3NyY109XCJkaWZmZXJlbmNlVXJsXCIgXG4gICAgICAgICAgYWx0PVwiRGlmZmVyZW5jZSBpbWFnZVwiIFxuICAgICAgICAgIGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtdy1mdWxsIGNxYS1vYmplY3QtY292ZXJcIlxuICAgICAgICAgIChlcnJvcik9XCJvblRodW1ibmFpbEVycm9yKCdkaWZmZXJlbmNlJywgJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IFxuICAgICAgICAgICpuZ0lmPVwiIWhhc1RodW1ibmFpbEltYWdlKCdkaWZmZXJlbmNlJylcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtdy1mdWxsIGNxYS1iZy1ncmF5LTEwMCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiY3FhLXRleHQtZ3JheS00MDBcIj5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiByeD1cIjJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0zIDE1TDkgOUwxMyAxM0wyMSA1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYWJzb2x1dGUgY3FhLWJvdHRvbS0wIGNxYS1sZWZ0LTAgY3FhLXctZnVsbCBjcWEtaC1bMTlweF0gY3FhLXAtWzJweF0gY3FhLXRleHQtY2VudGVyIGNxYS1iZy1bIzAwMDAwMDgwXSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS10ZXh0LXdoaXRlIGNxYS1mb250LW1lZGl1bSBjcWEtY2FwaXRhbGl6ZVwiPkRpZmZlcmVuY2U8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWRpZmZlcmVuY2UtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi92aXN1YWwtZGlmZmVyZW5jZS1tb2RhbC92aXN1YWwtZGlmZmVyZW5jZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Zpc3VhbC1kaWZmZXJlbmNlLW1vZGFsL3Zpc3VhbC1kaWZmZXJlbmNlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7QUFTakcsTUFBTSxPQUFPLDhCQUE4QjtJQUwzQztRQU1XLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsVUFBSyxHQUFXLG1CQUFtQixDQUFDO1FBQ3BDLGFBQVEsR0FBVywwQ0FBMEMsQ0FBQztRQUM5RCxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLGdCQUFXLEdBQWtCLFVBQVUsQ0FBQztRQUN2QyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzQyxnQkFBVyxHQUFrQixVQUFVLENBQUM7UUFDeEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7S0EyRnZDO0lBekZDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztTQUNoQztRQUNELElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUNyQztRQUNELElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixRQUFRLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDeEIsS0FBSyxVQUFVO2dCQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUMxQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3pCLEtBQUssWUFBWTtnQkFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUI7Z0JBQ0UsT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWlCO1FBQy9CLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUE0QixDQUFDO1FBRXpELElBQUksTUFBTSxLQUFLLGFBQWEsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQzNFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsS0FBWTtRQUN2QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUM3QyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQTJDLEVBQUUsS0FBWTtRQUN4RSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUM3QyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDM0IsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7U0FDaEM7YUFBTSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztTQUMvQjthQUFNLElBQUksSUFBSSxLQUFLLFlBQVksRUFBRTtZQUNoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQTJDO1FBQzNELElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRTtZQUN2QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQ3ZEO2FBQU0sSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDckQ7YUFBTSxJQUFJLElBQUksS0FBSyxZQUFZLEVBQUU7WUFDaEMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztTQUMzRDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFtQjtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxLQUFLLEdBQW9CLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNyRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRCxNQUFNLGFBQWEsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFvQixDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDckUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsTUFBTSxTQUFTLEdBQUcsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7MkhBdkdVLDhCQUE4QjsrR0FBOUIsOEJBQThCLDJTQ1QzQyxzL1JBMElBOzJGRGpJYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsNkJBQTZCOzhCQUs5QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEltYWdlVmlld1R5cGUgPSAnYmFzZWxpbmUnIHwgJ2N1cnJlbnQnIHwgJ2RpZmZlcmVuY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtdmlzdWFsLWRpZmZlcmVuY2UtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlzdWFsLWRpZmZlcmVuY2UtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFZpc3VhbERpZmZlcmVuY2VNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGJhc2VsaW5lVXJsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3VycmVudFVybDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRpZmZlcmVuY2VVcmw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJ1Zpc3VhbCBEaWZmZXJlbmNlJztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZyA9ICdDb21wYXJpbmcgQmFzZWxpbmUgdnMuIEN1cnJlbnQgRXhlY3V0aW9uJztcbiAgQElucHV0KCkgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluaXRpYWxWaWV3OiBJbWFnZVZpZXdUeXBlID0gJ2Jhc2VsaW5lJztcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGN1cnJlbnRWaWV3OiBJbWFnZVZpZXdUeXBlID0gJ2Jhc2VsaW5lJztcbiAgYmFzZWxpbmVJbWFnZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGN1cnJlbnRJbWFnZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGRpZmZlcmVuY2VJbWFnZUVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydiYXNlbGluZVVybCddKSB7XG4gICAgICB0aGlzLmJhc2VsaW5lSW1hZ2VFcnJvciA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snY3VycmVudFVybCddKSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbWFnZUVycm9yID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydkaWZmZXJlbmNlVXJsJ10pIHtcbiAgICAgIHRoaXMuZGlmZmVyZW5jZUltYWdlRXJyb3IgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2lzT3BlbiddICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdGhpcy5pbml0aWFsVmlldztcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxWaWV3J10gJiYgdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuY3VycmVudFZpZXcgPSB0aGlzLmluaXRpYWxWaWV3O1xuICAgIH1cbiAgfVxuXG4gIGdldCBjdXJyZW50SW1hZ2VVcmwoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFZpZXcpIHtcbiAgICAgIGNhc2UgJ2Jhc2VsaW5lJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZWxpbmVVcmw7XG4gICAgICBjYXNlICdjdXJyZW50JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFVybDtcbiAgICAgIGNhc2UgJ2RpZmZlcmVuY2UnOlxuICAgICAgICByZXR1cm4gdGhpcy5kaWZmZXJlbmNlVXJsO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cblxuICBvbkJhY2tkcm9wQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgY3VycmVudFRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKHRhcmdldCA9PT0gY3VycmVudFRhcmdldCB8fCB0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtb2RhbC1iYWNrZHJvcCcpKSB7XG4gICAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkltYWdlRXJyb3IoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW1nID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbWFnZUVsZW1lbnQ7XG4gICAgaW1nLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIH1cblxuICBvblRodW1ibmFpbEVycm9yKHR5cGU6ICdiYXNlbGluZScgfCAnY3VycmVudCcgfCAnZGlmZmVyZW5jZScsIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGltZyA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgIGltZy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIGlmICh0eXBlID09PSAnYmFzZWxpbmUnKSB7XG4gICAgICB0aGlzLmJhc2VsaW5lSW1hZ2VFcnJvciA9IHRydWU7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnY3VycmVudCcpIHtcbiAgICAgIHRoaXMuY3VycmVudEltYWdlRXJyb3IgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2RpZmZlcmVuY2UnKSB7XG4gICAgICB0aGlzLmRpZmZlcmVuY2VJbWFnZUVycm9yID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBoYXNUaHVtYm5haWxJbWFnZSh0eXBlOiAnYmFzZWxpbmUnIHwgJ2N1cnJlbnQnIHwgJ2RpZmZlcmVuY2UnKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGUgPT09ICdiYXNlbGluZScpIHtcbiAgICAgIHJldHVybiAhIXRoaXMuYmFzZWxpbmVVcmwgJiYgIXRoaXMuYmFzZWxpbmVJbWFnZUVycm9yO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2N1cnJlbnQnKSB7XG4gICAgICByZXR1cm4gISF0aGlzLmN1cnJlbnRVcmwgJiYgIXRoaXMuY3VycmVudEltYWdlRXJyb3I7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZGlmZmVyZW5jZScpIHtcbiAgICAgIHJldHVybiAhIXRoaXMuZGlmZmVyZW5jZVVybCAmJiAhdGhpcy5kaWZmZXJlbmNlSW1hZ2VFcnJvcjtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc2V0Vmlldyh2aWV3OiBJbWFnZVZpZXdUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50VmlldyA9IHZpZXc7XG4gIH1cblxuICBuYXZpZ2F0ZVByZXZpb3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdzOiBJbWFnZVZpZXdUeXBlW10gPSBbJ2Jhc2VsaW5lJywgJ2N1cnJlbnQnLCAnZGlmZmVyZW5jZSddO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHZpZXdzLmluZGV4T2YodGhpcy5jdXJyZW50Vmlldyk7XG4gICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGN1cnJlbnRJbmRleCA+IDAgPyBjdXJyZW50SW5kZXggLSAxIDogdmlld3MubGVuZ3RoIC0gMTtcbiAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdmlld3NbcHJldmlvdXNJbmRleF07XG4gIH1cblxuICBuYXZpZ2F0ZU5leHQoKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld3M6IEltYWdlVmlld1R5cGVbXSA9IFsnYmFzZWxpbmUnLCAnY3VycmVudCcsICdkaWZmZXJlbmNlJ107XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdmlld3MuaW5kZXhPZih0aGlzLmN1cnJlbnRWaWV3KTtcbiAgICBjb25zdCBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggPCB2aWV3cy5sZW5ndGggLSAxID8gY3VycmVudEluZGV4ICsgMSA6IDA7XG4gICAgdGhpcy5jdXJyZW50VmlldyA9IHZpZXdzW25leHRJbmRleF07XG4gIH1cbn1cblxuIiwiPGRpdiBcbiAgKm5nSWY9XCJpc09wZW5cIlxuICBjbGFzcz1cIm1vZGFsLWJhY2tkcm9wIGNxYS1maXhlZCBjcWEtaW5zZXQtMCBjcWEtYmctYmxhY2sgY3FhLWJnLW9wYWNpdHktNTAgY3FhLXotNTAgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXAtNFwiXG4gIChjbGljayk9XCJvbkJhY2tkcm9wQ2xpY2soJGV2ZW50KVwiPlxuICA8ZGl2IFxuICAgIGNsYXNzPVwiY3FhLWJnLXdoaXRlIGNxYS1yb3VuZGVkLWxnIGNxYS1zaGFkb3cteGwgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1tYXgtdy1bOTB2d10gY3FhLWgtWzcwdmhdIGNxYS13LWZ1bGwgY3FhLW92ZXJmbG93LWhpZGRlblwiXG4gICAgc3R5bGU9XCJtYXgtd2lkdGg6IDEyMDBweDtcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1weC02IGNxYS1wdC02IGNxYS1wYi00IGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwIGNxYS1iZy1bI0ZCRkNGRl0gY3FhLWdhcC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJjcWEtdGV4dC1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMEIwQjBCXSBjcWEtbS0wXCI+XG4gICAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzZENkQ3NF0gY3FhLW0tMFwiPnt7IHN1YnRpdGxlIH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtM1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtcC0xLjUgY3FhLXJvdW5kZWQtbWQgY3FhLXRleHQtZ3JheS00MDAgaG92ZXI6Y3FhLXRleHQtZ3JheS02MDAgaG92ZXI6Y3FhLWJnLWdyYXktMTAwIGNxYS10cmFuc2l0aW9uLWNvbG9ycyBjcWEtb3V0bGluZS1ub25lXCJcbiAgICAgICAgICAoY2xpY2spPVwib25DbG9zZSgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBtb2RhbFwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNSA1TDUgMTVNNSA1TDE1IDE1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1vdmVyZmxvdy1hdXRvIGNxYS1yZWxhdGl2ZVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtYWJzb2x1dGUgY3FhLWxlZnQtOCBjcWEtdG9wLTEvMiBjcWEtdHJhbnNmb3JtIC1jcWEtdHJhbnNsYXRlLXktMS8yIGNxYS16LTEwIGNxYS13LTEwIGNxYS1oLTEwIGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWJnLVsjMDAwMDAwODBdIGNxYS10ZXh0LXdoaXRlIGhvdmVyOmNxYS1iZy1ncmF5LTcwMCBjcWEtdHJhbnNpdGlvbi1jb2xvcnMgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLW91dGxpbmUtbm9uZSBjcWEtc2hhZG93LWxnXCJcbiAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUHJldmlvdXMoKVwiIHN0eWxlPVwidHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIlByZXZpb3VzIGltYWdlXCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgMThMOSAxMkwxNSA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWgtZnVsbCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtcC04IGNxYS1weC0xNiBjcWEtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudEltYWdlVXJsXCIgXG4gICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtaC1mdWxsXCJcbiAgICAgICAgICAgICBbc3R5bGUudHJhbnNpdGlvbl09XCIndHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQnXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW3NyY109XCJjdXJyZW50SW1hZ2VVcmxcIlxuICAgICAgICAgICAgW2FsdF09XCJjdXJyZW50VmlldyArICcgaW1hZ2UnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLW1heC13LWZ1bGwgY3FhLW1heC1oLWZ1bGwgY3FhLW9iamVjdC1jb250YWluIGNxYS1yb3VuZGVkLW1kIGNxYS1zaGFkb3ctbGcgY3FhLWJnLXdoaXRlXCJcbiAgICAgICAgICAgIChlcnJvcik9XCJvbkltYWdlRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWN1cnJlbnRJbWFnZVVybFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1weS0xMiBjcWEtcHgtNlwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjgwXCIgdmlld0JveD1cIjAgMCA4MCA4MFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHJlY3QgeD1cIjEyXCIgeT1cIjEyXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgcng9XCI0XCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS13aWR0aD1cIjJcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTEyIDUyTDI4IDM2TDQwIDQ4TDY4IDIwXCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNTJcIiBjeT1cIjI4XCIgcj1cIjZcIiBmaWxsPVwiIzlDQTNBRlwiLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LWdyYXktNTAwIGNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtbXQtMlwiPk5vIGltYWdlIGF2YWlsYWJsZTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtYWJzb2x1dGUgY3FhLXJpZ2h0LTggY3FhLXRvcC0xLzIgY3FhLXRyYW5zZm9ybSAtY3FhLXRyYW5zbGF0ZS15LTEvMiBjcWEtei0xMCBjcWEtdy0xMCBjcWEtaC0xMCBjcWEtcm91bmRlZC1mdWxsIGNxYS1iZy1bIzAwMDAwMDgwXSBjcWEtdGV4dC13aGl0ZSBob3ZlcjpjcWEtYmctZ3JheS03MDAgY3FhLXRyYW5zaXRpb24tY29sb3JzIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1vdXRsaW5lLW5vbmUgY3FhLXNoYWRvdy1sZ1wiXG4gICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZU5leHQoKVwiIHN0eWxlPVwidHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTtcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiTmV4dCBpbWFnZVwiPlxuICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTkgMThMMTUgMTJMOSA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtZ2FwLTIgY3FhLXAtNCBjcWEtYmctd2hpdGVcIiBzdHlsZT1cImJvcmRlci10b3A6IDFweCBzb2xpZCAjRDhEOUZDO1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1oLVs1MnB4XSBjcWEtdy1bNzZweF0gY3FhLXJvdW5kZWQtWzZweF0gY3FhLXJlbGF0aXZlIGNxYS1vdmVyZmxvdy1oaWRkZW4gY3FhLWN1cnNvci1wb2ludGVyXCIgc3R5bGU9XCJib3JkZXI6IDJweCBzb2xpZCAjMzc0MTUxO1wiIFtuZ1N0eWxlXT1cInsnYm9yZGVyLWNvbG9yJzogY3VycmVudFZpZXcgPT09ICdiYXNlbGluZScgPyAnIzNGNDNFRScgOiAnIzM3NDE1MScsICdib3gtc2hhZG93JzogY3VycmVudFZpZXcgPT09ICdiYXNlbGluZScgPyAnMHB4IDBweCAwcHggMnB4ICMzQjgyRjY0RCcgOiAnbm9uZSd9XCIgKGNsaWNrKT1cInNldFZpZXcoJ2Jhc2VsaW5lJylcIj5cbiAgICAgICAgPGltZyBcbiAgICAgICAgICAqbmdJZj1cImhhc1RodW1ibmFpbEltYWdlKCdiYXNlbGluZScpXCJcbiAgICAgICAgICBbc3JjXT1cImJhc2VsaW5lVXJsXCIgXG4gICAgICAgICAgYWx0PVwiQmFzZWxpbmUgaW1hZ2VcIiBcbiAgICAgICAgICBjbGFzcz1cImNxYS1oLWZ1bGwgY3FhLXctZnVsbCBjcWEtb2JqZWN0LWNvdmVyXCJcbiAgICAgICAgICAoZXJyb3IpPVwib25UaHVtYm5haWxFcnJvcignYmFzZWxpbmUnLCAkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgXG4gICAgICAgICAgKm5nSWY9XCIhaGFzVGh1bWJuYWlsSW1hZ2UoJ2Jhc2VsaW5lJylcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtdy1mdWxsIGNxYS1iZy1ncmF5LTEwMCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiY3FhLXRleHQtZ3JheS00MDBcIj5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiByeD1cIjJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0zIDE1TDkgOUwxMyAxM0wyMSA1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYWJzb2x1dGUgY3FhLWJvdHRvbS0wIGNxYS1sZWZ0LTAgY3FhLXctZnVsbCBjcWEtaC1bMTlweF0gY3FhLXAtWzJweF0gY3FhLXRleHQtY2VudGVyIGNxYS1iZy1bIzAwMDAwMDgwXSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS10ZXh0LXdoaXRlIGNxYS1mb250LW1lZGl1bSBjcWEtY2FwaXRhbGl6ZVwiPkJhc2VsaW5lPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtWzUycHhdIGNxYS13LVs3NnB4XSBjcWEtcm91bmRlZC1bNnB4XSBjcWEtcmVsYXRpdmUgY3FhLW92ZXJmbG93LWhpZGRlbiBjcWEtY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cImJvcmRlcjogMnB4IHNvbGlkICMzNzQxNTE7XCIgW25nU3R5bGVdPVwieydib3JkZXItY29sb3InOiBjdXJyZW50VmlldyA9PT0gJ2N1cnJlbnQnID8gJyMzRjQzRUUnIDogJyMzNzQxNTEnLCAnYm94LXNoYWRvdyc6IGN1cnJlbnRWaWV3ID09PSAnY3VycmVudCcgPyAnMHB4IDBweCAwcHggMnB4ICMzQjgyRjY0RCcgOiAnbm9uZSd9XCIgKGNsaWNrKT1cInNldFZpZXcoJ2N1cnJlbnQnKVwiPlxuICAgICAgICA8aW1nIFxuICAgICAgICAgICpuZ0lmPVwiaGFzVGh1bWJuYWlsSW1hZ2UoJ2N1cnJlbnQnKVwiXG4gICAgICAgICAgW3NyY109XCJjdXJyZW50VXJsXCIgXG4gICAgICAgICAgYWx0PVwiQ3VycmVudCBpbWFnZVwiIFxuICAgICAgICAgIGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtdy1mdWxsIGNxYS1vYmplY3QtY292ZXJcIlxuICAgICAgICAgIChlcnJvcik9XCJvblRodW1ibmFpbEVycm9yKCdjdXJyZW50JywgJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IFxuICAgICAgICAgICpuZ0lmPVwiIWhhc1RodW1ibmFpbEltYWdlKCdjdXJyZW50JylcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtdy1mdWxsIGNxYS1iZy1ncmF5LTEwMCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiY3FhLXRleHQtZ3JheS00MDBcIj5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiByeD1cIjJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0zIDE1TDkgOUwxMyAxM0wyMSA1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYWJzb2x1dGUgY3FhLWJvdHRvbS0wIGNxYS1sZWZ0LTAgY3FhLXctZnVsbCBjcWEtaC1bMTlweF0gY3FhLXAtWzJweF0gY3FhLXRleHQtY2VudGVyIGNxYS1iZy1bIzAwMDAwMDgwXSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS10ZXh0LXdoaXRlIGNxYS1mb250LW1lZGl1bSBjcWEtY2FwaXRhbGl6ZVwiPkN1cnJlbnQ8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtaC1bNTJweF0gY3FhLXctWzc2cHhdIGNxYS1yb3VuZGVkLVs2cHhdIGNxYS1yZWxhdGl2ZSBjcWEtb3ZlcmZsb3ctaGlkZGVuIGNxYS1jdXJzb3ItcG9pbnRlclwiIHN0eWxlPVwiYm9yZGVyOiAycHggc29saWQgIzM3NDE1MTtcIiBbbmdTdHlsZV09XCJ7J2JvcmRlci1jb2xvcic6IGN1cnJlbnRWaWV3ID09PSAnZGlmZmVyZW5jZScgPyAnIzNGNDNFRScgOiAnIzM3NDE1MScsICdib3gtc2hhZG93JzogY3VycmVudFZpZXcgPT09ICdkaWZmZXJlbmNlJyA/ICcwcHggMHB4IDBweCAycHggIzNCODJGNjREJyA6ICdub25lJ31cIiAoY2xpY2spPVwic2V0VmlldygnZGlmZmVyZW5jZScpXCI+XG4gICAgICAgIDxpbWcgXG4gICAgICAgICAgKm5nSWY9XCJoYXNUaHVtYm5haWxJbWFnZSgnZGlmZmVyZW5jZScpXCJcbiAgICAgICAgICBbc3JjXT1cImRpZmZlcmVuY2VVcmxcIiBcbiAgICAgICAgICBhbHQ9XCJEaWZmZXJlbmNlIGltYWdlXCIgXG4gICAgICAgICAgY2xhc3M9XCJjcWEtaC1mdWxsIGNxYS13LWZ1bGwgY3FhLW9iamVjdC1jb3ZlclwiXG4gICAgICAgICAgKGVycm9yKT1cIm9uVGh1bWJuYWlsRXJyb3IoJ2RpZmZlcmVuY2UnLCAkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgXG4gICAgICAgICAgKm5nSWY9XCIhaGFzVGh1bWJuYWlsSW1hZ2UoJ2RpZmZlcmVuY2UnKVwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtaC1mdWxsIGNxYS13LWZ1bGwgY3FhLWJnLWdyYXktMTAwIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJjcWEtdGV4dC1ncmF5LTQwMFwiPlxuICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHJ4PVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTMgMTVMOSA5TDEzIDEzTDIxIDVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1hYnNvbHV0ZSBjcWEtYm90dG9tLTAgY3FhLWxlZnQtMCBjcWEtdy1mdWxsIGNxYS1oLVsxOXB4XSBjcWEtcC1bMnB4XSBjcWEtdGV4dC1jZW50ZXIgY3FhLWJnLVsjMDAwMDAwODBdIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLXRleHQtd2hpdGUgY3FhLWZvbnQtbWVkaXVtIGNxYS1jYXBpdGFsaXplXCI+RGlmZmVyZW5jZTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -57,6 +57,8 @@ export * from './lib/execution-screen/step-group/step-group.component';
|
|
|
57
57
|
export * from './lib/execution-screen/loop-step/loop-step.component';
|
|
58
58
|
export * from './lib/execution-screen/condition-step/condition-step.component';
|
|
59
59
|
export * from './lib/execution-screen/failed-step/failed-step.component';
|
|
60
|
+
export * from './lib/execution-screen/updated-failed-step/updated-failed-step.component';
|
|
61
|
+
export * from './lib/execution-screen/view-more-failed-step-button/view-more-failed-step-button.component';
|
|
60
62
|
export * from './lib/execution-screen/self-heal-analysis/self-heal-analysis.component';
|
|
61
63
|
export * from './lib/execution-screen/ai-agent-step/ai-agent-step.component';
|
|
62
64
|
export * from './lib/execution-screen/api-step/api-step.component';
|
|
@@ -67,4 +69,4 @@ export * from './lib/execution-screen/visual-comparison/visual-comparison.compon
|
|
|
67
69
|
export * from './lib/execution-screen/step-renderer/step-renderer.component';
|
|
68
70
|
export * from './lib/ai-reasoning/ai-reasoning.component';
|
|
69
71
|
export * from './lib/execution-result-modal/execution-result-modal.component';
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsNEZBQTRGLENBQUM7QUFDM0csY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLHdGQUF3RixDQUFDO0FBQ3ZHLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywrREFBK0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3VpLWtpdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VhcmNoLWJhci9zZWFyY2gtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWdtZW50LWNvbnRyb2wvc2VnbWVudC1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nL2RpYWxvZy5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nL2RpYWxvZy50b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nL2RpYWxvZy1yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJsZS9keW5hbWljLXRhYmxlL2R5bmFtaWMtY2VsbC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLWNlbGwtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJsZS9keW5hbWljLXRhYmxlL2NvbXBvbmVudC1yZW5kZXItY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vdGhlci1idXR0b24vb3RoZXItYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWx0ZXJzL2R5bmFtaWMtZmlsdGVyL2R5bmFtaWMtZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWx0ZXJzL2RhdGVyYW5nZXBpY2tlci9kYXRlcmFuZ2VwaWNrZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlcnMvZGF0ZXJhbmdlcGlja2VyL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sdW1uLXZpc2liaWxpdHkvY29sdW1uLXZpc2liaWxpdHkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYmxlLWFjdGlvbi10b29sYmFyL3RhYmxlLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXNoYm9hcmRzL21ldHJpY3MtY2FyZC9tZXRyaWNzLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rhc2hib2FyZHMvY2hhcnQtY2FyZC9jaGFydC1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXNoYm9hcmRzL3Byb2dyZXNzLXRleHQtY2FyZC9wcm9ncmVzcy10ZXh0LWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rhc2hib2FyZHMvZGFzaGJvYXJkLWhlYWRlci9kYXNoYm9hcmQtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXNoYm9hcmRzL2NvdmVyYWdlLW1vZHVsZS1jYXJkL2NvdmVyYWdlLW1vZHVsZS1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXNoYm9hcmRzL3Rlc3QtZGlzdHJpYnV0aW9uLWNhcmQvdGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGFzaGJvYXJkcy9mYWlsZWQtdGVzdC1jYXNlcy1jYXJkL2ZhaWxlZC10ZXN0LWNhc2VzLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWxlY3RlZC1maWx0ZXJzL3NlbGVjdGVkLWZpbHRlcnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rhc2hib2FyZHMvaW5zaWdodC1jYXJkL2luc2lnaHQtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFkZ2UvYmFkZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duLWJ1dHRvbi9kcm9wZG93bi1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rhc2hib2FyZHMvaGVhdC1lcnJvci1tYXAtY2VsbC9oZWF0LWVycm9yLW1hcC1jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUtcHJlc2V0cy5jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUtY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZXMvdGFibGUtdGVtcGxhdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc2V0cy9pbWFnZXMvaW1hZ2UtYXNzZXRzLmNvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9tZXRhZGF0YS1jb2xvcnMudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdWxsLXRhYmxlLWxvYWRlci9mdWxsLXRhYmxlLWxvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFibGUtZGF0YS1sb2FkZXIvdGFibGUtZGF0YS1sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3R3LW92ZXJsYXktY29udGFpbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NpbXVsYXRvci9zaW11bGF0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnNvbGUtYWxlcnQvY29uc29sZS1hbGVydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWktZGVidWctYWxlcnQvYWktZGVidWctYWxlcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25ldHdvcmstcmVxdWVzdC9uZXR3b3JrLXJlcXVlc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bi1oaXN0b3J5LWNhcmQvcnVuLWhpc3RvcnktY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlzdWFsLWRpZmZlcmVuY2UtbW9kYWwvdmlzdWFsLWRpZmZlcmVuY2UtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZ3VyYXRpb24tY2FyZC9jb25maWd1cmF0aW9uLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBhcmUtcnVucy9jb21wYXJlLXJ1bnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2l0ZXJhdGlvbnMtbG9vcC9pdGVyYXRpb25zLWxvb3AuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhaWxlZC1zdGVwLWNhcmQvZmFpbGVkLXN0ZXAtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXhlY3V0aW9uLXNjcmVlbi9iYXNpYy1zdGVwL2Jhc2ljLXN0ZXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4ZWN1dGlvbi1zY3JlZW4vc3RlcC1ncm91cC9zdGVwLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9leGVjdXRpb24tc2NyZWVuL2xvb3Atc3RlcC9sb29wLXN0ZXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4ZWN1dGlvbi1zY3JlZW4vY29uZGl0aW9uLXN0ZXAvY29uZGl0aW9uLXN0ZXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4ZWN1dGlvbi1zY3JlZW4vZmFpbGVkLXN0ZXAvZmFpbGVkLXN0ZXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4ZWN1dGlvbi1zY3JlZW4vdXBkYXRlZC1mYWlsZWQtc3RlcC91cGRhdGVkLWZhaWxlZC1zdGVwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9leGVjdXRpb24tc2NyZWVuL3ZpZXctbW9yZS1mYWlsZWQtc3RlcC1idXR0b24vdmlldy1tb3JlLWZhaWxlZC1zdGVwLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXhlY3V0aW9uLXNjcmVlbi9zZWxmLWhlYWwtYW5hbHlzaXMvc2VsZi1oZWFsLWFuYWx5c2lzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9leGVjdXRpb24tc2NyZWVuL2FpLWFnZW50LXN0ZXAvYWktYWdlbnQtc3RlcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXhlY3V0aW9uLXNjcmVlbi9hcGktc3RlcC9hcGktc3RlcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXhlY3V0aW9uLXNjcmVlbi9maWxlLWRvd25sb2FkLXN0ZXAvZmlsZS1kb3dubG9hZC1zdGVwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9leGVjdXRpb24tc2NyZWVuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9leGVjdXRpb24tc2NyZWVuL21haW4tc3RlcC1jb2xsYXBzZS9tYWluLXN0ZXAtY29sbGFwc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4ZWN1dGlvbi1zY3JlZW4vdmlzdWFsLWNvbXBhcmlzb24vdmlzdWFsLWNvbXBhcmlzb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4ZWN1dGlvbi1zY3JlZW4vc3RlcC1yZW5kZXJlci9zdGVwLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9haS1yZWFzb25pbmcvYWktcmVhc29uaW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9leGVjdXRpb24tcmVzdWx0LW1vZGFsL2V4ZWN1dGlvbi1yZXN1bHQtbW9kYWwuY29tcG9uZW50JztcbiJdfQ==
|