@cqa-lib/cqa-ui 1.1.74 → 1.1.76

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.
Files changed (25) hide show
  1. package/esm2020/lib/execution-screen/ai-agent-step/ai-agent-step.component.mjs +6 -3
  2. package/esm2020/lib/execution-screen/api-step/api-step.component.mjs +6 -3
  3. package/esm2020/lib/execution-screen/basic-step/basic-step.component.mjs +6 -3
  4. package/esm2020/lib/execution-screen/condition-step/condition-step.component.mjs +12 -3
  5. package/esm2020/lib/execution-screen/failed-step/failed-step.component.mjs +6 -3
  6. package/esm2020/lib/execution-screen/loop-step/loop-step.component.mjs +10 -3
  7. package/esm2020/lib/execution-screen/step-group/step-group.component.mjs +6 -3
  8. package/esm2020/lib/execution-screen/step-renderer/step-renderer.component.mjs +34 -2
  9. package/esm2020/lib/execution-screen/updated-failed-step/updated-failed-step.component.mjs +6 -3
  10. package/esm2020/lib/execution-screen/visual-comparison/visual-comparison.component.mjs +5 -2
  11. package/fesm2015/cqa-lib-cqa-ui.mjs +88 -18
  12. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  13. package/fesm2020/cqa-lib-cqa-ui.mjs +87 -18
  14. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  15. package/lib/execution-screen/ai-agent-step/ai-agent-step.component.d.ts +2 -1
  16. package/lib/execution-screen/api-step/api-step.component.d.ts +2 -1
  17. package/lib/execution-screen/basic-step/basic-step.component.d.ts +2 -1
  18. package/lib/execution-screen/condition-step/condition-step.component.d.ts +5 -1
  19. package/lib/execution-screen/failed-step/failed-step.component.d.ts +2 -1
  20. package/lib/execution-screen/loop-step/loop-step.component.d.ts +2 -1
  21. package/lib/execution-screen/step-group/step-group.component.d.ts +2 -1
  22. package/lib/execution-screen/step-renderer/step-renderer.component.d.ts +2 -1
  23. package/lib/execution-screen/updated-failed-step/updated-failed-step.component.d.ts +2 -1
  24. package/lib/execution-screen/visual-comparison/visual-comparison.component.d.ts +2 -1
  25. package/package.json +1 -1
@@ -7,6 +7,7 @@ export class UpdatedFailedStepComponent extends BaseStepComponent {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  this.isUploadingBaseline = {};
10
+ this.isLive = false;
10
11
  this.makeCurrentBaseline = new EventEmitter();
11
12
  this.uploadBaseline = new EventEmitter();
12
13
  this.analyze = new EventEmitter();
@@ -46,10 +47,10 @@ export class UpdatedFailedStepComponent extends BaseStepComponent {
46
47
  }
47
48
  }
48
49
  UpdatedFailedStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: UpdatedFailedStepComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
49
- UpdatedFailedStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: UpdatedFailedStepComponent, selector: "cqa-updated-failed-step", inputs: { timingBreakdown: "timingBreakdown", testStepResultId: "testStepResultId", expanded: "expanded", subSteps: "subSteps", failureDetails: "failureDetails", reasoning: "reasoning", confidence: "confidence", isUploadingBaseline: "isUploadingBaseline" }, outputs: { makeCurrentBaseline: "makeCurrentBaseline", uploadBaseline: "uploadBaseline", analyze: "analyze", viewFullLogs: "viewFullLogs" }, host: { classAttribute: "cqa-ui-root" }, usesInheritance: true, ngImport: i0, template: "<div>\n <!-- Header -->\n\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-p-2\" style=\"border-left: '2px solid #FAC7C7'; border-bottom: '1px solid #FEE2E2'\">\n <!-- Sub-steps -->\n\n <!-- Expected vs Actual Comparison -->\n <div *ngIf=\"config?.failureDetails?.expected || config?.failureDetails?.actual\" class=\"cqa-grid cqa-grid-cols-2 cqa-rounded cqa-overflow-hidden cqa-border cqa-border-solid cqa-border-[#E5E7EB]\">\n <!-- Expected Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-white\" style=\"border-right: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-[#9CA3AF]\">EXPECTED</div>\n <div class=\"cqa-text-[#374151]\">\n {{ config?.failureDetails?.expected }}\n </div>\n </div>\n\n <!-- Actual Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-[#FEF8F8]\">\n <div class=\"cqa-text-[#F87171]\">ACTUAL</div>\n <div class=\"cqa-text-[#991B1B]\">\n {{ config?.failureDetails?.actual }}\n </div>\n </div>\n </div>\n\n <!-- Visual Comparison Component -->\n <cqa-visual-comparison\n *ngIf=\"config.failureDetails && \n ((config.failureDetails.screenshots?.current || config.failureDetails.screenshots?.baseline || config.failureDetails.screenshots?.difference)\n || config.failureDetails.logs?.length)\"\n [screenshots]=\"config.failureDetails.screenshots\"\n [logs]=\"config.failureDetails.logs\"\n (makeCurrentBaseline)=\"onMakeCurrentBaseline($event)\"\n (uploadBaseline)=\"onUploadBaseline($event)\"\n (analyze)=\"onAnalyze()\"\n [isUploadingBaseline]=\"isUploadingBaseline\"\n [testStepResultId]=\"testStepResultId\"\n (viewFullLogs)=\"onViewFullLogs()\">\n </cqa-visual-comparison>\n\n <!-- AI Fix Message -->\n <div *ngIf=\"config?.failureDetails?.aiFixApplied && (config?.failureDetails?.aiFixMessage || config?.confidence || config?.reasoning?.length)\" class=\"cqa-px-3 cqa-pt-1.5 cqa-pb-2 cqa-rounded-xl cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-[#FAF5FF]\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0F172A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-3\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"16\" height=\"16\" rx=\"4\" fill=\"url(#paint0_linear_4070_7201)\"/><path d=\"M8.00941 3.5C8.06489 3.52274 8.08859 3.57827 8.11131 3.62985C8.12269 3.6599 8.13314 3.69012 8.14329 3.72058C8.14726 3.73225 8.15123 3.74392 8.15532 3.75594C8.20806 3.913 8.25504 4.07175 8.30229 4.23038C8.31297 4.26619 8.32369 4.30199 8.33442 4.33778C8.38905 4.52004 8.44327 4.7024 8.49719 4.88484C8.50476 4.91047 8.51234 4.93609 8.51992 4.96171C8.54128 5.03395 8.56262 5.10619 8.58383 5.17847C8.62867 5.3312 8.67473 5.48347 8.72378 5.63501C8.72807 5.64827 8.73236 5.66152 8.73677 5.67518C8.8642 6.065 9.04482 6.41437 9.3409 6.71196C9.34823 6.7197 9.35556 6.72744 9.36312 6.73541C9.4895 6.86437 9.65169 6.96771 9.8138 7.05111C9.82206 7.05542 9.83031 7.05974 9.83882 7.06419C10.3159 7.30925 10.8895 7.41704 11.4062 7.5605C11.6326 7.6234 11.8583 7.68829 12.0832 7.75603C12.099 7.76079 12.1148 7.76554 12.1306 7.77028C12.1778 7.78445 12.225 7.79887 12.2721 7.81347C12.2831 7.81679 12.2941 7.82011 12.3054 7.82353C12.3703 7.84406 12.4324 7.86829 12.4857 7.91027C12.5019 7.94418 12.5019 7.94418 12.4975 7.9781C12.4456 8.02736 12.3942 8.05046 12.3258 8.073C12.316 8.07632 12.3062 8.07965 12.2961 8.08308C12.1806 8.12183 12.0635 8.15575 11.9463 8.18935C11.9222 8.1963 11.8981 8.20326 11.8741 8.21021C11.7257 8.25301 11.5771 8.2949 11.4283 8.33632C11.2323 8.39088 11.0366 8.44634 10.8411 8.50243C10.8091 8.51162 10.7771 8.52078 10.745 8.52991C10.5767 8.57786 10.4092 8.62753 10.2431 8.68208C10.2294 8.68659 10.2156 8.6911 10.2014 8.69574C9.64511 8.88082 9.2211 9.22609 8.95571 9.73099C8.81263 10.0148 8.72823 10.3216 8.64214 10.6245C8.61884 10.7062 8.59409 10.7875 8.56905 10.8687C8.5494 10.9326 8.5302 10.9966 8.51149 11.0608C8.50926 11.0684 8.50703 11.0761 8.50473 11.0839C8.49394 11.1209 8.48319 11.1579 8.47252 11.195C8.44519 11.2888 8.41578 11.3819 8.38555 11.4749C8.33191 11.6402 8.2831 11.8067 8.23459 11.9735C8.16144 12.2246 8.16144 12.2246 8.11997 12.3453C8.11721 12.3534 8.11446 12.3615 8.11163 12.3698C8.09649 12.4128 8.08092 12.4523 8.05226 12.4887C8.00867 12.4979 8.00867 12.4979 7.96951 12.5C7.92473 12.4376 7.89508 12.3771 7.87133 12.3051C7.86787 12.2949 7.86441 12.2847 7.86085 12.2741C7.81684 12.1425 7.77751 12.0095 7.73817 11.8765C7.72916 11.846 7.72011 11.8156 7.71106 11.7852C7.6436 11.5586 7.57725 11.3317 7.51101 11.1048C7.23507 9.98224 7.23507 9.98224 6.539 9.07466C6.52784 9.06596 6.51669 9.05726 6.50519 9.0483C6.04913 8.69902 5.44834 8.5697 4.89815 8.41813C4.76207 8.38062 4.62605 8.34293 4.49003 8.30523C4.47814 8.30193 4.47814 8.30193 4.466 8.29857C4.26981 8.24417 4.07367 8.18963 3.87822 8.13283C3.86996 8.13045 3.86169 8.12806 3.85317 8.12561C3.5529 8.03883 3.5529 8.03883 3.50065 7.9781C3.49917 7.95054 3.49917 7.95054 3.51247 7.92157C3.56708 7.8704 3.62008 7.84848 3.69216 7.82619C3.7026 7.82284 3.71303 7.81948 3.72379 7.81603C3.75575 7.80582 3.78779 7.79584 3.81985 7.78592C3.829 7.78305 3.83815 7.78017 3.84758 7.77722C3.91228 7.75693 3.97722 7.7374 4.04226 7.71809C4.05824 7.71332 4.05824 7.71332 4.07454 7.70846C4.35227 7.62587 4.63181 7.549 4.91126 7.47196C5.1195 7.41455 5.32738 7.35618 5.5346 7.29548C5.54413 7.29271 5.55365 7.28993 5.56346 7.28707C6.0435 7.14696 6.51278 6.94816 6.82274 6.5537C6.82738 6.54785 6.83202 6.542 6.8368 6.53597C7.18197 6.09815 7.31658 5.56572 7.46696 5.04621C7.51642 4.87535 7.56649 4.70464 7.61673 4.53399C7.63064 4.48673 7.64453 4.43947 7.65836 4.39219C7.71394 4.20229 7.77035 4.01264 7.83 3.82386C7.83558 3.80619 7.84114 3.7885 7.84666 3.77081C7.93017 3.50399 7.93017 3.50399 8.00941 3.5Z\" fill=\"white\"/><path d=\"M10.7358 4.05535C10.7901 4.11409 10.801 4.18312 10.8179 4.25813C10.8742 4.49376 10.9392 4.71042 11.1645 4.8473C11.3036 4.92083 11.4693 4.9543 11.6234 4.9859C11.6884 4.99951 11.7434 5.01758 11.7991 5.0537C11.8117 5.07278 11.8117 5.07278 11.8109 5.10598C11.798 5.14637 11.7867 5.15939 11.7526 5.18582C11.7153 5.19775 11.7153 5.19775 11.6706 5.20702C11.6536 5.21074 11.6367 5.21449 11.6198 5.21828C11.6107 5.22029 11.6017 5.2223 11.5924 5.22437C11.3168 5.28531 11.3168 5.28531 11.0787 5.42322C11.071 5.42918 11.0632 5.43514 11.0552 5.44128C10.885 5.58479 10.849 5.82351 10.7978 6.0235C10.7949 6.03448 10.7919 6.04546 10.7889 6.05678C10.7864 6.0665 10.7838 6.07622 10.7812 6.08624C10.7702 6.11593 10.7587 6.13528 10.7358 6.15803C10.6722 6.16576 10.6722 6.16576 10.6413 6.15803C10.592 6.12155 10.581 6.07999 10.5682 6.02414C10.566 6.01549 10.5639 6.00685 10.5616 5.99794C10.5548 5.97032 10.5481 5.94266 10.5415 5.91498C10.4897 5.69946 10.4311 5.488 10.2244 5.36167C10.0628 5.2755 9.86634 5.23475 9.68575 5.20185C9.63625 5.19199 9.60789 5.1796 9.57725 5.1406C9.5706 5.10104 9.5706 5.10104 9.57725 5.06147C9.62435 5.01486 9.6739 5.00348 9.73759 4.9894C9.75766 4.98465 9.77772 4.97987 9.79777 4.97505C9.80813 4.97258 9.81849 4.97011 9.82917 4.96756C9.882 4.95456 9.93431 4.93998 9.9866 4.92511C9.99611 4.92247 10.0056 4.91984 10.0154 4.91712C10.1217 4.88673 10.2134 4.84786 10.2984 4.77885C10.3063 4.77261 10.3143 4.76638 10.3224 4.75995C10.4547 4.64614 10.4996 4.47516 10.5404 4.31562C10.5435 4.30351 10.5466 4.2914 10.5498 4.27892C10.556 4.25459 10.5621 4.23023 10.5681 4.20585C10.5723 4.18888 10.5723 4.18888 10.5767 4.17157C10.5791 4.16144 10.5816 4.1513 10.5842 4.14086C10.5951 4.1086 10.6094 4.08326 10.6294 4.05535C10.668 4.03692 10.695 4.04525 10.7358 4.05535Z\" fill=\"#EDE9FE\"/><path d=\"M5.29554 9.74722C5.3096 9.74731 5.3096 9.74731 5.32395 9.74741C5.42486 9.75035 5.49314 9.78127 5.56745 9.84613C5.65393 9.93545 5.69386 10.0362 5.69159 10.1566C5.68188 10.2542 5.62167 10.3395 5.54782 10.4055C5.4609 10.4725 5.37322 10.4947 5.26215 10.4916C5.1685 10.4812 5.08039 10.4386 5.01402 10.3746C4.93147 10.2669 4.90734 10.1682 4.91944 10.0355C4.94443 9.93104 5.01646 9.84625 5.1086 9.78678C5.1726 9.75576 5.22408 9.74665 5.29554 9.74722Z\" fill=\"white\"/><defs><linearGradient id=\"paint0_linear_4070_7201\" x1=\"0\" y1=\"0\" x2=\"16\" y2=\"16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8B5CF6\"/><stop offset=\"1\" stop-color=\"#9333EA\"/></linearGradient></defs></svg></div>\n {{ config.failureDetails.aiFixMessage || 'AI Insights' }}\n <span *ngIf=\"config?.confidence\" class=\"cqa-inline-block cqa-py-[2px] cqa-px-[10px] cqa-text-center cqa-rounded-[5px] cqa-bg-[#EDE9FE] cqa-text-[8px] cqa-leading-[12px] cqa-text-[#6D28D9]\">{{ config?.confidence }} confidence</span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\" *ngIf=\"config?.reasoning?.length\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Reasoning</div>\n <ul class=\"cqa-flex cqa-flex-col cqa-gap-1.5\">\n <li *ngFor=\"let point of config.reasoning\" class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n {{ point }}</li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.VisualComparisonComponent, selector: "cqa-visual-comparison", inputs: ["screenshots", "logs", "showFullLogsLink", "isUploadingBaseline", "testStepResultId"], outputs: ["makeCurrentBaseline", "uploadBaseline", "analyze", "viewFullLogs"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
50
+ UpdatedFailedStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: UpdatedFailedStepComponent, selector: "cqa-updated-failed-step", inputs: { timingBreakdown: "timingBreakdown", testStepResultId: "testStepResultId", expanded: "expanded", subSteps: "subSteps", failureDetails: "failureDetails", reasoning: "reasoning", confidence: "confidence", isUploadingBaseline: "isUploadingBaseline", isLive: "isLive" }, outputs: { makeCurrentBaseline: "makeCurrentBaseline", uploadBaseline: "uploadBaseline", analyze: "analyze", viewFullLogs: "viewFullLogs" }, host: { classAttribute: "cqa-ui-root" }, usesInheritance: true, ngImport: i0, template: "<div>\n <!-- Header -->\n\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-p-2\" style=\"border-left: '2px solid #FAC7C7'; border-bottom: '1px solid #FEE2E2'\">\n <!-- Sub-steps -->\n\n <!-- Expected vs Actual Comparison -->\n <div *ngIf=\"config?.failureDetails?.expected || config?.failureDetails?.actual\" class=\"cqa-grid cqa-grid-cols-2 cqa-rounded cqa-overflow-hidden cqa-border cqa-border-solid cqa-border-[#E5E7EB]\">\n <!-- Expected Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-white\" style=\"border-right: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-[#9CA3AF]\">EXPECTED</div>\n <div class=\"cqa-text-[#374151]\">\n {{ config?.failureDetails?.expected }}\n </div>\n </div>\n\n <!-- Actual Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-[#FEF8F8]\">\n <div class=\"cqa-text-[#F87171]\">ACTUAL</div>\n <div class=\"cqa-text-[#991B1B]\">\n {{ config?.failureDetails?.actual }}\n </div>\n </div>\n </div>\n\n <!-- Visual Comparison Component -->\n <cqa-visual-comparison\n *ngIf=\"config.failureDetails && \n ((config.failureDetails.screenshots?.current || config.failureDetails.screenshots?.baseline || config.failureDetails.screenshots?.difference)\n || config.failureDetails.logs?.length)\"\n [screenshots]=\"config.failureDetails.screenshots\"\n [logs]=\"config.failureDetails.logs\"\n (makeCurrentBaseline)=\"onMakeCurrentBaseline($event)\"\n (uploadBaseline)=\"onUploadBaseline($event)\"\n (analyze)=\"onAnalyze()\"\n [isUploadingBaseline]=\"isUploadingBaseline\"\n [isLive]=\"isLive\"\n [testStepResultId]=\"testStepResultId\"\n (viewFullLogs)=\"onViewFullLogs()\">\n </cqa-visual-comparison>\n\n <!-- AI Fix Message -->\n <div *ngIf=\"config?.failureDetails?.aiFixApplied && (config?.failureDetails?.aiFixMessage || config?.confidence || config?.reasoning?.length)\" class=\"cqa-px-3 cqa-pt-1.5 cqa-pb-2 cqa-rounded-xl cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-[#FAF5FF]\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0F172A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-3\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"16\" height=\"16\" rx=\"4\" fill=\"url(#paint0_linear_4070_7201)\"/><path d=\"M8.00941 3.5C8.06489 3.52274 8.08859 3.57827 8.11131 3.62985C8.12269 3.6599 8.13314 3.69012 8.14329 3.72058C8.14726 3.73225 8.15123 3.74392 8.15532 3.75594C8.20806 3.913 8.25504 4.07175 8.30229 4.23038C8.31297 4.26619 8.32369 4.30199 8.33442 4.33778C8.38905 4.52004 8.44327 4.7024 8.49719 4.88484C8.50476 4.91047 8.51234 4.93609 8.51992 4.96171C8.54128 5.03395 8.56262 5.10619 8.58383 5.17847C8.62867 5.3312 8.67473 5.48347 8.72378 5.63501C8.72807 5.64827 8.73236 5.66152 8.73677 5.67518C8.8642 6.065 9.04482 6.41437 9.3409 6.71196C9.34823 6.7197 9.35556 6.72744 9.36312 6.73541C9.4895 6.86437 9.65169 6.96771 9.8138 7.05111C9.82206 7.05542 9.83031 7.05974 9.83882 7.06419C10.3159 7.30925 10.8895 7.41704 11.4062 7.5605C11.6326 7.6234 11.8583 7.68829 12.0832 7.75603C12.099 7.76079 12.1148 7.76554 12.1306 7.77028C12.1778 7.78445 12.225 7.79887 12.2721 7.81347C12.2831 7.81679 12.2941 7.82011 12.3054 7.82353C12.3703 7.84406 12.4324 7.86829 12.4857 7.91027C12.5019 7.94418 12.5019 7.94418 12.4975 7.9781C12.4456 8.02736 12.3942 8.05046 12.3258 8.073C12.316 8.07632 12.3062 8.07965 12.2961 8.08308C12.1806 8.12183 12.0635 8.15575 11.9463 8.18935C11.9222 8.1963 11.8981 8.20326 11.8741 8.21021C11.7257 8.25301 11.5771 8.2949 11.4283 8.33632C11.2323 8.39088 11.0366 8.44634 10.8411 8.50243C10.8091 8.51162 10.7771 8.52078 10.745 8.52991C10.5767 8.57786 10.4092 8.62753 10.2431 8.68208C10.2294 8.68659 10.2156 8.6911 10.2014 8.69574C9.64511 8.88082 9.2211 9.22609 8.95571 9.73099C8.81263 10.0148 8.72823 10.3216 8.64214 10.6245C8.61884 10.7062 8.59409 10.7875 8.56905 10.8687C8.5494 10.9326 8.5302 10.9966 8.51149 11.0608C8.50926 11.0684 8.50703 11.0761 8.50473 11.0839C8.49394 11.1209 8.48319 11.1579 8.47252 11.195C8.44519 11.2888 8.41578 11.3819 8.38555 11.4749C8.33191 11.6402 8.2831 11.8067 8.23459 11.9735C8.16144 12.2246 8.16144 12.2246 8.11997 12.3453C8.11721 12.3534 8.11446 12.3615 8.11163 12.3698C8.09649 12.4128 8.08092 12.4523 8.05226 12.4887C8.00867 12.4979 8.00867 12.4979 7.96951 12.5C7.92473 12.4376 7.89508 12.3771 7.87133 12.3051C7.86787 12.2949 7.86441 12.2847 7.86085 12.2741C7.81684 12.1425 7.77751 12.0095 7.73817 11.8765C7.72916 11.846 7.72011 11.8156 7.71106 11.7852C7.6436 11.5586 7.57725 11.3317 7.51101 11.1048C7.23507 9.98224 7.23507 9.98224 6.539 9.07466C6.52784 9.06596 6.51669 9.05726 6.50519 9.0483C6.04913 8.69902 5.44834 8.5697 4.89815 8.41813C4.76207 8.38062 4.62605 8.34293 4.49003 8.30523C4.47814 8.30193 4.47814 8.30193 4.466 8.29857C4.26981 8.24417 4.07367 8.18963 3.87822 8.13283C3.86996 8.13045 3.86169 8.12806 3.85317 8.12561C3.5529 8.03883 3.5529 8.03883 3.50065 7.9781C3.49917 7.95054 3.49917 7.95054 3.51247 7.92157C3.56708 7.8704 3.62008 7.84848 3.69216 7.82619C3.7026 7.82284 3.71303 7.81948 3.72379 7.81603C3.75575 7.80582 3.78779 7.79584 3.81985 7.78592C3.829 7.78305 3.83815 7.78017 3.84758 7.77722C3.91228 7.75693 3.97722 7.7374 4.04226 7.71809C4.05824 7.71332 4.05824 7.71332 4.07454 7.70846C4.35227 7.62587 4.63181 7.549 4.91126 7.47196C5.1195 7.41455 5.32738 7.35618 5.5346 7.29548C5.54413 7.29271 5.55365 7.28993 5.56346 7.28707C6.0435 7.14696 6.51278 6.94816 6.82274 6.5537C6.82738 6.54785 6.83202 6.542 6.8368 6.53597C7.18197 6.09815 7.31658 5.56572 7.46696 5.04621C7.51642 4.87535 7.56649 4.70464 7.61673 4.53399C7.63064 4.48673 7.64453 4.43947 7.65836 4.39219C7.71394 4.20229 7.77035 4.01264 7.83 3.82386C7.83558 3.80619 7.84114 3.7885 7.84666 3.77081C7.93017 3.50399 7.93017 3.50399 8.00941 3.5Z\" fill=\"white\"/><path d=\"M10.7358 4.05535C10.7901 4.11409 10.801 4.18312 10.8179 4.25813C10.8742 4.49376 10.9392 4.71042 11.1645 4.8473C11.3036 4.92083 11.4693 4.9543 11.6234 4.9859C11.6884 4.99951 11.7434 5.01758 11.7991 5.0537C11.8117 5.07278 11.8117 5.07278 11.8109 5.10598C11.798 5.14637 11.7867 5.15939 11.7526 5.18582C11.7153 5.19775 11.7153 5.19775 11.6706 5.20702C11.6536 5.21074 11.6367 5.21449 11.6198 5.21828C11.6107 5.22029 11.6017 5.2223 11.5924 5.22437C11.3168 5.28531 11.3168 5.28531 11.0787 5.42322C11.071 5.42918 11.0632 5.43514 11.0552 5.44128C10.885 5.58479 10.849 5.82351 10.7978 6.0235C10.7949 6.03448 10.7919 6.04546 10.7889 6.05678C10.7864 6.0665 10.7838 6.07622 10.7812 6.08624C10.7702 6.11593 10.7587 6.13528 10.7358 6.15803C10.6722 6.16576 10.6722 6.16576 10.6413 6.15803C10.592 6.12155 10.581 6.07999 10.5682 6.02414C10.566 6.01549 10.5639 6.00685 10.5616 5.99794C10.5548 5.97032 10.5481 5.94266 10.5415 5.91498C10.4897 5.69946 10.4311 5.488 10.2244 5.36167C10.0628 5.2755 9.86634 5.23475 9.68575 5.20185C9.63625 5.19199 9.60789 5.1796 9.57725 5.1406C9.5706 5.10104 9.5706 5.10104 9.57725 5.06147C9.62435 5.01486 9.6739 5.00348 9.73759 4.9894C9.75766 4.98465 9.77772 4.97987 9.79777 4.97505C9.80813 4.97258 9.81849 4.97011 9.82917 4.96756C9.882 4.95456 9.93431 4.93998 9.9866 4.92511C9.99611 4.92247 10.0056 4.91984 10.0154 4.91712C10.1217 4.88673 10.2134 4.84786 10.2984 4.77885C10.3063 4.77261 10.3143 4.76638 10.3224 4.75995C10.4547 4.64614 10.4996 4.47516 10.5404 4.31562C10.5435 4.30351 10.5466 4.2914 10.5498 4.27892C10.556 4.25459 10.5621 4.23023 10.5681 4.20585C10.5723 4.18888 10.5723 4.18888 10.5767 4.17157C10.5791 4.16144 10.5816 4.1513 10.5842 4.14086C10.5951 4.1086 10.6094 4.08326 10.6294 4.05535C10.668 4.03692 10.695 4.04525 10.7358 4.05535Z\" fill=\"#EDE9FE\"/><path d=\"M5.29554 9.74722C5.3096 9.74731 5.3096 9.74731 5.32395 9.74741C5.42486 9.75035 5.49314 9.78127 5.56745 9.84613C5.65393 9.93545 5.69386 10.0362 5.69159 10.1566C5.68188 10.2542 5.62167 10.3395 5.54782 10.4055C5.4609 10.4725 5.37322 10.4947 5.26215 10.4916C5.1685 10.4812 5.08039 10.4386 5.01402 10.3746C4.93147 10.2669 4.90734 10.1682 4.91944 10.0355C4.94443 9.93104 5.01646 9.84625 5.1086 9.78678C5.1726 9.75576 5.22408 9.74665 5.29554 9.74722Z\" fill=\"white\"/><defs><linearGradient id=\"paint0_linear_4070_7201\" x1=\"0\" y1=\"0\" x2=\"16\" y2=\"16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8B5CF6\"/><stop offset=\"1\" stop-color=\"#9333EA\"/></linearGradient></defs></svg></div>\n {{ config.failureDetails.aiFixMessage || 'AI Insights' }}\n <span *ngIf=\"config?.confidence\" class=\"cqa-inline-block cqa-py-[2px] cqa-px-[10px] cqa-text-center cqa-rounded-[5px] cqa-bg-[#EDE9FE] cqa-text-[8px] cqa-leading-[12px] cqa-text-[#6D28D9]\">{{ config?.confidence }} confidence</span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\" *ngIf=\"config?.reasoning?.length\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Reasoning</div>\n <ul class=\"cqa-flex cqa-flex-col cqa-gap-1.5\">\n <li *ngFor=\"let point of config.reasoning\" class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n {{ point }}</li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.VisualComparisonComponent, selector: "cqa-visual-comparison", inputs: ["screenshots", "logs", "showFullLogsLink", "isUploadingBaseline", "isLive", "testStepResultId"], outputs: ["makeCurrentBaseline", "uploadBaseline", "analyze", "viewFullLogs"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
50
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: UpdatedFailedStepComponent, decorators: [{
51
52
  type: Component,
52
- args: [{ selector: 'cqa-updated-failed-step', host: { class: 'cqa-ui-root' }, template: "<div>\n <!-- Header -->\n\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-p-2\" style=\"border-left: '2px solid #FAC7C7'; border-bottom: '1px solid #FEE2E2'\">\n <!-- Sub-steps -->\n\n <!-- Expected vs Actual Comparison -->\n <div *ngIf=\"config?.failureDetails?.expected || config?.failureDetails?.actual\" class=\"cqa-grid cqa-grid-cols-2 cqa-rounded cqa-overflow-hidden cqa-border cqa-border-solid cqa-border-[#E5E7EB]\">\n <!-- Expected Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-white\" style=\"border-right: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-[#9CA3AF]\">EXPECTED</div>\n <div class=\"cqa-text-[#374151]\">\n {{ config?.failureDetails?.expected }}\n </div>\n </div>\n\n <!-- Actual Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-[#FEF8F8]\">\n <div class=\"cqa-text-[#F87171]\">ACTUAL</div>\n <div class=\"cqa-text-[#991B1B]\">\n {{ config?.failureDetails?.actual }}\n </div>\n </div>\n </div>\n\n <!-- Visual Comparison Component -->\n <cqa-visual-comparison\n *ngIf=\"config.failureDetails && \n ((config.failureDetails.screenshots?.current || config.failureDetails.screenshots?.baseline || config.failureDetails.screenshots?.difference)\n || config.failureDetails.logs?.length)\"\n [screenshots]=\"config.failureDetails.screenshots\"\n [logs]=\"config.failureDetails.logs\"\n (makeCurrentBaseline)=\"onMakeCurrentBaseline($event)\"\n (uploadBaseline)=\"onUploadBaseline($event)\"\n (analyze)=\"onAnalyze()\"\n [isUploadingBaseline]=\"isUploadingBaseline\"\n [testStepResultId]=\"testStepResultId\"\n (viewFullLogs)=\"onViewFullLogs()\">\n </cqa-visual-comparison>\n\n <!-- AI Fix Message -->\n <div *ngIf=\"config?.failureDetails?.aiFixApplied && (config?.failureDetails?.aiFixMessage || config?.confidence || config?.reasoning?.length)\" class=\"cqa-px-3 cqa-pt-1.5 cqa-pb-2 cqa-rounded-xl cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-[#FAF5FF]\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0F172A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-3\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"16\" height=\"16\" rx=\"4\" fill=\"url(#paint0_linear_4070_7201)\"/><path d=\"M8.00941 3.5C8.06489 3.52274 8.08859 3.57827 8.11131 3.62985C8.12269 3.6599 8.13314 3.69012 8.14329 3.72058C8.14726 3.73225 8.15123 3.74392 8.15532 3.75594C8.20806 3.913 8.25504 4.07175 8.30229 4.23038C8.31297 4.26619 8.32369 4.30199 8.33442 4.33778C8.38905 4.52004 8.44327 4.7024 8.49719 4.88484C8.50476 4.91047 8.51234 4.93609 8.51992 4.96171C8.54128 5.03395 8.56262 5.10619 8.58383 5.17847C8.62867 5.3312 8.67473 5.48347 8.72378 5.63501C8.72807 5.64827 8.73236 5.66152 8.73677 5.67518C8.8642 6.065 9.04482 6.41437 9.3409 6.71196C9.34823 6.7197 9.35556 6.72744 9.36312 6.73541C9.4895 6.86437 9.65169 6.96771 9.8138 7.05111C9.82206 7.05542 9.83031 7.05974 9.83882 7.06419C10.3159 7.30925 10.8895 7.41704 11.4062 7.5605C11.6326 7.6234 11.8583 7.68829 12.0832 7.75603C12.099 7.76079 12.1148 7.76554 12.1306 7.77028C12.1778 7.78445 12.225 7.79887 12.2721 7.81347C12.2831 7.81679 12.2941 7.82011 12.3054 7.82353C12.3703 7.84406 12.4324 7.86829 12.4857 7.91027C12.5019 7.94418 12.5019 7.94418 12.4975 7.9781C12.4456 8.02736 12.3942 8.05046 12.3258 8.073C12.316 8.07632 12.3062 8.07965 12.2961 8.08308C12.1806 8.12183 12.0635 8.15575 11.9463 8.18935C11.9222 8.1963 11.8981 8.20326 11.8741 8.21021C11.7257 8.25301 11.5771 8.2949 11.4283 8.33632C11.2323 8.39088 11.0366 8.44634 10.8411 8.50243C10.8091 8.51162 10.7771 8.52078 10.745 8.52991C10.5767 8.57786 10.4092 8.62753 10.2431 8.68208C10.2294 8.68659 10.2156 8.6911 10.2014 8.69574C9.64511 8.88082 9.2211 9.22609 8.95571 9.73099C8.81263 10.0148 8.72823 10.3216 8.64214 10.6245C8.61884 10.7062 8.59409 10.7875 8.56905 10.8687C8.5494 10.9326 8.5302 10.9966 8.51149 11.0608C8.50926 11.0684 8.50703 11.0761 8.50473 11.0839C8.49394 11.1209 8.48319 11.1579 8.47252 11.195C8.44519 11.2888 8.41578 11.3819 8.38555 11.4749C8.33191 11.6402 8.2831 11.8067 8.23459 11.9735C8.16144 12.2246 8.16144 12.2246 8.11997 12.3453C8.11721 12.3534 8.11446 12.3615 8.11163 12.3698C8.09649 12.4128 8.08092 12.4523 8.05226 12.4887C8.00867 12.4979 8.00867 12.4979 7.96951 12.5C7.92473 12.4376 7.89508 12.3771 7.87133 12.3051C7.86787 12.2949 7.86441 12.2847 7.86085 12.2741C7.81684 12.1425 7.77751 12.0095 7.73817 11.8765C7.72916 11.846 7.72011 11.8156 7.71106 11.7852C7.6436 11.5586 7.57725 11.3317 7.51101 11.1048C7.23507 9.98224 7.23507 9.98224 6.539 9.07466C6.52784 9.06596 6.51669 9.05726 6.50519 9.0483C6.04913 8.69902 5.44834 8.5697 4.89815 8.41813C4.76207 8.38062 4.62605 8.34293 4.49003 8.30523C4.47814 8.30193 4.47814 8.30193 4.466 8.29857C4.26981 8.24417 4.07367 8.18963 3.87822 8.13283C3.86996 8.13045 3.86169 8.12806 3.85317 8.12561C3.5529 8.03883 3.5529 8.03883 3.50065 7.9781C3.49917 7.95054 3.49917 7.95054 3.51247 7.92157C3.56708 7.8704 3.62008 7.84848 3.69216 7.82619C3.7026 7.82284 3.71303 7.81948 3.72379 7.81603C3.75575 7.80582 3.78779 7.79584 3.81985 7.78592C3.829 7.78305 3.83815 7.78017 3.84758 7.77722C3.91228 7.75693 3.97722 7.7374 4.04226 7.71809C4.05824 7.71332 4.05824 7.71332 4.07454 7.70846C4.35227 7.62587 4.63181 7.549 4.91126 7.47196C5.1195 7.41455 5.32738 7.35618 5.5346 7.29548C5.54413 7.29271 5.55365 7.28993 5.56346 7.28707C6.0435 7.14696 6.51278 6.94816 6.82274 6.5537C6.82738 6.54785 6.83202 6.542 6.8368 6.53597C7.18197 6.09815 7.31658 5.56572 7.46696 5.04621C7.51642 4.87535 7.56649 4.70464 7.61673 4.53399C7.63064 4.48673 7.64453 4.43947 7.65836 4.39219C7.71394 4.20229 7.77035 4.01264 7.83 3.82386C7.83558 3.80619 7.84114 3.7885 7.84666 3.77081C7.93017 3.50399 7.93017 3.50399 8.00941 3.5Z\" fill=\"white\"/><path d=\"M10.7358 4.05535C10.7901 4.11409 10.801 4.18312 10.8179 4.25813C10.8742 4.49376 10.9392 4.71042 11.1645 4.8473C11.3036 4.92083 11.4693 4.9543 11.6234 4.9859C11.6884 4.99951 11.7434 5.01758 11.7991 5.0537C11.8117 5.07278 11.8117 5.07278 11.8109 5.10598C11.798 5.14637 11.7867 5.15939 11.7526 5.18582C11.7153 5.19775 11.7153 5.19775 11.6706 5.20702C11.6536 5.21074 11.6367 5.21449 11.6198 5.21828C11.6107 5.22029 11.6017 5.2223 11.5924 5.22437C11.3168 5.28531 11.3168 5.28531 11.0787 5.42322C11.071 5.42918 11.0632 5.43514 11.0552 5.44128C10.885 5.58479 10.849 5.82351 10.7978 6.0235C10.7949 6.03448 10.7919 6.04546 10.7889 6.05678C10.7864 6.0665 10.7838 6.07622 10.7812 6.08624C10.7702 6.11593 10.7587 6.13528 10.7358 6.15803C10.6722 6.16576 10.6722 6.16576 10.6413 6.15803C10.592 6.12155 10.581 6.07999 10.5682 6.02414C10.566 6.01549 10.5639 6.00685 10.5616 5.99794C10.5548 5.97032 10.5481 5.94266 10.5415 5.91498C10.4897 5.69946 10.4311 5.488 10.2244 5.36167C10.0628 5.2755 9.86634 5.23475 9.68575 5.20185C9.63625 5.19199 9.60789 5.1796 9.57725 5.1406C9.5706 5.10104 9.5706 5.10104 9.57725 5.06147C9.62435 5.01486 9.6739 5.00348 9.73759 4.9894C9.75766 4.98465 9.77772 4.97987 9.79777 4.97505C9.80813 4.97258 9.81849 4.97011 9.82917 4.96756C9.882 4.95456 9.93431 4.93998 9.9866 4.92511C9.99611 4.92247 10.0056 4.91984 10.0154 4.91712C10.1217 4.88673 10.2134 4.84786 10.2984 4.77885C10.3063 4.77261 10.3143 4.76638 10.3224 4.75995C10.4547 4.64614 10.4996 4.47516 10.5404 4.31562C10.5435 4.30351 10.5466 4.2914 10.5498 4.27892C10.556 4.25459 10.5621 4.23023 10.5681 4.20585C10.5723 4.18888 10.5723 4.18888 10.5767 4.17157C10.5791 4.16144 10.5816 4.1513 10.5842 4.14086C10.5951 4.1086 10.6094 4.08326 10.6294 4.05535C10.668 4.03692 10.695 4.04525 10.7358 4.05535Z\" fill=\"#EDE9FE\"/><path d=\"M5.29554 9.74722C5.3096 9.74731 5.3096 9.74731 5.32395 9.74741C5.42486 9.75035 5.49314 9.78127 5.56745 9.84613C5.65393 9.93545 5.69386 10.0362 5.69159 10.1566C5.68188 10.2542 5.62167 10.3395 5.54782 10.4055C5.4609 10.4725 5.37322 10.4947 5.26215 10.4916C5.1685 10.4812 5.08039 10.4386 5.01402 10.3746C4.93147 10.2669 4.90734 10.1682 4.91944 10.0355C4.94443 9.93104 5.01646 9.84625 5.1086 9.78678C5.1726 9.75576 5.22408 9.74665 5.29554 9.74722Z\" fill=\"white\"/><defs><linearGradient id=\"paint0_linear_4070_7201\" x1=\"0\" y1=\"0\" x2=\"16\" y2=\"16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8B5CF6\"/><stop offset=\"1\" stop-color=\"#9333EA\"/></linearGradient></defs></svg></div>\n {{ config.failureDetails.aiFixMessage || 'AI Insights' }}\n <span *ngIf=\"config?.confidence\" class=\"cqa-inline-block cqa-py-[2px] cqa-px-[10px] cqa-text-center cqa-rounded-[5px] cqa-bg-[#EDE9FE] cqa-text-[8px] cqa-leading-[12px] cqa-text-[#6D28D9]\">{{ config?.confidence }} confidence</span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\" *ngIf=\"config?.reasoning?.length\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Reasoning</div>\n <ul class=\"cqa-flex cqa-flex-col cqa-gap-1.5\">\n <li *ngFor=\"let point of config.reasoning\" class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n {{ point }}</li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
53
+ args: [{ selector: 'cqa-updated-failed-step', host: { class: 'cqa-ui-root' }, template: "<div>\n <!-- Header -->\n\n <!-- Expanded Content -->\n <div *ngIf=\"isExpanded\" class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-p-2\" style=\"border-left: '2px solid #FAC7C7'; border-bottom: '1px solid #FEE2E2'\">\n <!-- Sub-steps -->\n\n <!-- Expected vs Actual Comparison -->\n <div *ngIf=\"config?.failureDetails?.expected || config?.failureDetails?.actual\" class=\"cqa-grid cqa-grid-cols-2 cqa-rounded cqa-overflow-hidden cqa-border cqa-border-solid cqa-border-[#E5E7EB]\">\n <!-- Expected Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-white\" style=\"border-right: 1px solid #E5E7EB;\">\n <div class=\"cqa-text-[#9CA3AF]\">EXPECTED</div>\n <div class=\"cqa-text-[#374151]\">\n {{ config?.failureDetails?.expected }}\n </div>\n </div>\n\n <!-- Actual Column -->\n <div class=\"cqa-p-1.5 cqa-text-[9px] cqa-leading-[20px] cqa-bg-[#FEF8F8]\">\n <div class=\"cqa-text-[#F87171]\">ACTUAL</div>\n <div class=\"cqa-text-[#991B1B]\">\n {{ config?.failureDetails?.actual }}\n </div>\n </div>\n </div>\n\n <!-- Visual Comparison Component -->\n <cqa-visual-comparison\n *ngIf=\"config.failureDetails && \n ((config.failureDetails.screenshots?.current || config.failureDetails.screenshots?.baseline || config.failureDetails.screenshots?.difference)\n || config.failureDetails.logs?.length)\"\n [screenshots]=\"config.failureDetails.screenshots\"\n [logs]=\"config.failureDetails.logs\"\n (makeCurrentBaseline)=\"onMakeCurrentBaseline($event)\"\n (uploadBaseline)=\"onUploadBaseline($event)\"\n (analyze)=\"onAnalyze()\"\n [isUploadingBaseline]=\"isUploadingBaseline\"\n [isLive]=\"isLive\"\n [testStepResultId]=\"testStepResultId\"\n (viewFullLogs)=\"onViewFullLogs()\">\n </cqa-visual-comparison>\n\n <!-- AI Fix Message -->\n <div *ngIf=\"config?.failureDetails?.aiFixApplied && (config?.failureDetails?.aiFixMessage || config?.confidence || config?.reasoning?.length)\" class=\"cqa-px-3 cqa-pt-1.5 cqa-pb-2 cqa-rounded-xl cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-[#FAF5FF]\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0F172A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-3\">\n <div><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"16\" height=\"16\" rx=\"4\" fill=\"url(#paint0_linear_4070_7201)\"/><path d=\"M8.00941 3.5C8.06489 3.52274 8.08859 3.57827 8.11131 3.62985C8.12269 3.6599 8.13314 3.69012 8.14329 3.72058C8.14726 3.73225 8.15123 3.74392 8.15532 3.75594C8.20806 3.913 8.25504 4.07175 8.30229 4.23038C8.31297 4.26619 8.32369 4.30199 8.33442 4.33778C8.38905 4.52004 8.44327 4.7024 8.49719 4.88484C8.50476 4.91047 8.51234 4.93609 8.51992 4.96171C8.54128 5.03395 8.56262 5.10619 8.58383 5.17847C8.62867 5.3312 8.67473 5.48347 8.72378 5.63501C8.72807 5.64827 8.73236 5.66152 8.73677 5.67518C8.8642 6.065 9.04482 6.41437 9.3409 6.71196C9.34823 6.7197 9.35556 6.72744 9.36312 6.73541C9.4895 6.86437 9.65169 6.96771 9.8138 7.05111C9.82206 7.05542 9.83031 7.05974 9.83882 7.06419C10.3159 7.30925 10.8895 7.41704 11.4062 7.5605C11.6326 7.6234 11.8583 7.68829 12.0832 7.75603C12.099 7.76079 12.1148 7.76554 12.1306 7.77028C12.1778 7.78445 12.225 7.79887 12.2721 7.81347C12.2831 7.81679 12.2941 7.82011 12.3054 7.82353C12.3703 7.84406 12.4324 7.86829 12.4857 7.91027C12.5019 7.94418 12.5019 7.94418 12.4975 7.9781C12.4456 8.02736 12.3942 8.05046 12.3258 8.073C12.316 8.07632 12.3062 8.07965 12.2961 8.08308C12.1806 8.12183 12.0635 8.15575 11.9463 8.18935C11.9222 8.1963 11.8981 8.20326 11.8741 8.21021C11.7257 8.25301 11.5771 8.2949 11.4283 8.33632C11.2323 8.39088 11.0366 8.44634 10.8411 8.50243C10.8091 8.51162 10.7771 8.52078 10.745 8.52991C10.5767 8.57786 10.4092 8.62753 10.2431 8.68208C10.2294 8.68659 10.2156 8.6911 10.2014 8.69574C9.64511 8.88082 9.2211 9.22609 8.95571 9.73099C8.81263 10.0148 8.72823 10.3216 8.64214 10.6245C8.61884 10.7062 8.59409 10.7875 8.56905 10.8687C8.5494 10.9326 8.5302 10.9966 8.51149 11.0608C8.50926 11.0684 8.50703 11.0761 8.50473 11.0839C8.49394 11.1209 8.48319 11.1579 8.47252 11.195C8.44519 11.2888 8.41578 11.3819 8.38555 11.4749C8.33191 11.6402 8.2831 11.8067 8.23459 11.9735C8.16144 12.2246 8.16144 12.2246 8.11997 12.3453C8.11721 12.3534 8.11446 12.3615 8.11163 12.3698C8.09649 12.4128 8.08092 12.4523 8.05226 12.4887C8.00867 12.4979 8.00867 12.4979 7.96951 12.5C7.92473 12.4376 7.89508 12.3771 7.87133 12.3051C7.86787 12.2949 7.86441 12.2847 7.86085 12.2741C7.81684 12.1425 7.77751 12.0095 7.73817 11.8765C7.72916 11.846 7.72011 11.8156 7.71106 11.7852C7.6436 11.5586 7.57725 11.3317 7.51101 11.1048C7.23507 9.98224 7.23507 9.98224 6.539 9.07466C6.52784 9.06596 6.51669 9.05726 6.50519 9.0483C6.04913 8.69902 5.44834 8.5697 4.89815 8.41813C4.76207 8.38062 4.62605 8.34293 4.49003 8.30523C4.47814 8.30193 4.47814 8.30193 4.466 8.29857C4.26981 8.24417 4.07367 8.18963 3.87822 8.13283C3.86996 8.13045 3.86169 8.12806 3.85317 8.12561C3.5529 8.03883 3.5529 8.03883 3.50065 7.9781C3.49917 7.95054 3.49917 7.95054 3.51247 7.92157C3.56708 7.8704 3.62008 7.84848 3.69216 7.82619C3.7026 7.82284 3.71303 7.81948 3.72379 7.81603C3.75575 7.80582 3.78779 7.79584 3.81985 7.78592C3.829 7.78305 3.83815 7.78017 3.84758 7.77722C3.91228 7.75693 3.97722 7.7374 4.04226 7.71809C4.05824 7.71332 4.05824 7.71332 4.07454 7.70846C4.35227 7.62587 4.63181 7.549 4.91126 7.47196C5.1195 7.41455 5.32738 7.35618 5.5346 7.29548C5.54413 7.29271 5.55365 7.28993 5.56346 7.28707C6.0435 7.14696 6.51278 6.94816 6.82274 6.5537C6.82738 6.54785 6.83202 6.542 6.8368 6.53597C7.18197 6.09815 7.31658 5.56572 7.46696 5.04621C7.51642 4.87535 7.56649 4.70464 7.61673 4.53399C7.63064 4.48673 7.64453 4.43947 7.65836 4.39219C7.71394 4.20229 7.77035 4.01264 7.83 3.82386C7.83558 3.80619 7.84114 3.7885 7.84666 3.77081C7.93017 3.50399 7.93017 3.50399 8.00941 3.5Z\" fill=\"white\"/><path d=\"M10.7358 4.05535C10.7901 4.11409 10.801 4.18312 10.8179 4.25813C10.8742 4.49376 10.9392 4.71042 11.1645 4.8473C11.3036 4.92083 11.4693 4.9543 11.6234 4.9859C11.6884 4.99951 11.7434 5.01758 11.7991 5.0537C11.8117 5.07278 11.8117 5.07278 11.8109 5.10598C11.798 5.14637 11.7867 5.15939 11.7526 5.18582C11.7153 5.19775 11.7153 5.19775 11.6706 5.20702C11.6536 5.21074 11.6367 5.21449 11.6198 5.21828C11.6107 5.22029 11.6017 5.2223 11.5924 5.22437C11.3168 5.28531 11.3168 5.28531 11.0787 5.42322C11.071 5.42918 11.0632 5.43514 11.0552 5.44128C10.885 5.58479 10.849 5.82351 10.7978 6.0235C10.7949 6.03448 10.7919 6.04546 10.7889 6.05678C10.7864 6.0665 10.7838 6.07622 10.7812 6.08624C10.7702 6.11593 10.7587 6.13528 10.7358 6.15803C10.6722 6.16576 10.6722 6.16576 10.6413 6.15803C10.592 6.12155 10.581 6.07999 10.5682 6.02414C10.566 6.01549 10.5639 6.00685 10.5616 5.99794C10.5548 5.97032 10.5481 5.94266 10.5415 5.91498C10.4897 5.69946 10.4311 5.488 10.2244 5.36167C10.0628 5.2755 9.86634 5.23475 9.68575 5.20185C9.63625 5.19199 9.60789 5.1796 9.57725 5.1406C9.5706 5.10104 9.5706 5.10104 9.57725 5.06147C9.62435 5.01486 9.6739 5.00348 9.73759 4.9894C9.75766 4.98465 9.77772 4.97987 9.79777 4.97505C9.80813 4.97258 9.81849 4.97011 9.82917 4.96756C9.882 4.95456 9.93431 4.93998 9.9866 4.92511C9.99611 4.92247 10.0056 4.91984 10.0154 4.91712C10.1217 4.88673 10.2134 4.84786 10.2984 4.77885C10.3063 4.77261 10.3143 4.76638 10.3224 4.75995C10.4547 4.64614 10.4996 4.47516 10.5404 4.31562C10.5435 4.30351 10.5466 4.2914 10.5498 4.27892C10.556 4.25459 10.5621 4.23023 10.5681 4.20585C10.5723 4.18888 10.5723 4.18888 10.5767 4.17157C10.5791 4.16144 10.5816 4.1513 10.5842 4.14086C10.5951 4.1086 10.6094 4.08326 10.6294 4.05535C10.668 4.03692 10.695 4.04525 10.7358 4.05535Z\" fill=\"#EDE9FE\"/><path d=\"M5.29554 9.74722C5.3096 9.74731 5.3096 9.74731 5.32395 9.74741C5.42486 9.75035 5.49314 9.78127 5.56745 9.84613C5.65393 9.93545 5.69386 10.0362 5.69159 10.1566C5.68188 10.2542 5.62167 10.3395 5.54782 10.4055C5.4609 10.4725 5.37322 10.4947 5.26215 10.4916C5.1685 10.4812 5.08039 10.4386 5.01402 10.3746C4.93147 10.2669 4.90734 10.1682 4.91944 10.0355C4.94443 9.93104 5.01646 9.84625 5.1086 9.78678C5.1726 9.75576 5.22408 9.74665 5.29554 9.74722Z\" fill=\"white\"/><defs><linearGradient id=\"paint0_linear_4070_7201\" x1=\"0\" y1=\"0\" x2=\"16\" y2=\"16\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#8B5CF6\"/><stop offset=\"1\" stop-color=\"#9333EA\"/></linearGradient></defs></svg></div>\n {{ config.failureDetails.aiFixMessage || 'AI Insights' }}\n <span *ngIf=\"config?.confidence\" class=\"cqa-inline-block cqa-py-[2px] cqa-px-[10px] cqa-text-center cqa-rounded-[5px] cqa-bg-[#EDE9FE] cqa-text-[8px] cqa-leading-[12px] cqa-text-[#6D28D9]\">{{ config?.confidence }} confidence</span>\n </div>\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\" *ngIf=\"config?.reasoning?.length\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#64748B]\">Reasoning</div>\n <ul class=\"cqa-flex cqa-flex-col cqa-gap-1.5\">\n <li *ngFor=\"let point of config.reasoning\" class=\"cqa-flex cqa-gap-2 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#475569]\">\n <div class=\"cqa-mt-1\"><svg width=\"6\" height=\"6\" viewBox=\"0 0 6 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"6\" height=\"6\" rx=\"3\" fill=\"#A78BFA\"/></svg></div>\n {{ point }}</li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
53
54
  }], propDecorators: { timingBreakdown: [{
54
55
  type: Input
55
56
  }], testStepResultId: [{
@@ -66,6 +67,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
66
67
  type: Input
67
68
  }], isUploadingBaseline: [{
68
69
  type: Input
70
+ }], isLive: [{
71
+ type: Input
69
72
  }], makeCurrentBaseline: [{
70
73
  type: Output
71
74
  }], uploadBaseline: [{
@@ -75,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
75
78
  }], viewFullLogs: [{
76
79
  type: Output
77
80
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlZC1mYWlsZWQtc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2V4ZWN1dGlvbi1zY3JlZW4vdXBkYXRlZC1mYWlsZWQtc3RlcC91cGRhdGVkLWZhaWxlZC1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi91cGRhdGVkLWZhaWxlZC1zdGVwL3VwZGF0ZWQtZmFpbGVkLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVMzRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBTmpFOztRQWVXLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUN4Qix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUNuRSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQ3pELFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ25DLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQTJDbkQ7SUF0Q1UsUUFBUTtRQUNmLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osSUFBSSxFQUFFLFFBQVE7WUFDZCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQ1IsQ0FBQztRQUV0QixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7SUFDbkUsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQStCO1FBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUEwQjtRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7O3VIQXZEVSwwQkFBMEI7MkdBQTFCLDBCQUEwQiw4Z0JDWHZDLG81U0E0RE07MkZEakRPLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDRSx5QkFBeUIsUUFHN0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzhCQUlyQixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZhaWxlZFN0ZXBDb25maWcsIFN1YlN0ZXAsIEZhaWx1cmVEZXRhaWxzLCBTdGVwU3RhdHVzLCBUaW1pbmdCcmVha2Rvd24gfSBmcm9tICcuLi9leGVjdXRpb24tc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IG1ha2VDdXJyZW50QmFzZWxpbmVFdmVudCwgdXBsb2FkQmFzZWxpbmVFdmVudCB9IGZyb20gJy4uL3Zpc3VhbC1jb21wYXJpc29uL3Zpc3VhbC1jb21wYXJpc29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS11cGRhdGVkLWZhaWxlZC1zdGVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwZGF0ZWQtZmFpbGVkLXN0ZXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH1cbn0pXG5leHBvcnQgY2xhc3MgVXBkYXRlZEZhaWxlZFN0ZXBDb21wb25lbnQgZXh0ZW5kcyBCYXNlU3RlcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIEluZGl2aWR1YWwgaW5wdXRzXG4gIEBJbnB1dCgpIHRpbWluZ0JyZWFrZG93bj86IFRpbWluZ0JyZWFrZG93bjtcbiAgQElucHV0KCkgdGVzdFN0ZXBSZXN1bHRJZCE6IHN0cmluZztcbiAgQElucHV0KCkgZXhwYW5kZWQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBzdWJTdGVwcyE6IFN1YlN0ZXBbXTtcbiAgQElucHV0KCkgZmFpbHVyZURldGFpbHMhOiBGYWlsdXJlRGV0YWlscztcbiAgQElucHV0KCkgcmVhc29uaW5nPzogc3RyaW5nW107XG4gIEBJbnB1dCgpIGNvbmZpZGVuY2U/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzVXBsb2FkaW5nQmFzZWxpbmUgPSB7fTtcbiAgQE91dHB1dCgpIG1ha2VDdXJyZW50QmFzZWxpbmUgPSBuZXcgRXZlbnRFbWl0dGVyPG1ha2VDdXJyZW50QmFzZWxpbmVFdmVudD4oKTtcbiAgQE91dHB1dCgpIHVwbG9hZEJhc2VsaW5lID0gbmV3IEV2ZW50RW1pdHRlcjx1cGxvYWRCYXNlbGluZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgYW5hbHl6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHZpZXdGdWxsTG9ncyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvLyBDb25maWcgcHJvcGVydHkgZm9yIGJhc2UgY2xhc3MgLSBidWlsdCBmcm9tIGluZGl2aWR1YWwgaW5wdXRzIGluIG5nT25Jbml0XG4gIG92ZXJyaWRlIGNvbmZpZyE6IEZhaWxlZFN0ZXBDb25maWc7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQnVpbGQgY29uZmlnIGZyb20gaW5kaXZpZHVhbCBpbnB1dHNcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIHR5cGU6ICdmYWlsZWQnLFxuICAgICAgdGVzdFN0ZXBSZXN1bHRJZDogdGhpcy50ZXN0U3RlcFJlc3VsdElkLFxuICAgICAgc3ViU3RlcHM6IHRoaXMuc3ViU3RlcHMsXG4gICAgICBmYWlsdXJlRGV0YWlsczogdGhpcy5mYWlsdXJlRGV0YWlscyxcbiAgICAgIHRpbWluZ0JyZWFrZG93bjogdGhpcy50aW1pbmdCcmVha2Rvd24sXG4gICAgICBleHBhbmRlZDogdGhpcy5leHBhbmRlZCxcbiAgICAgIHJlYXNvbmluZzogdGhpcy5yZWFzb25pbmcsXG4gICAgICBjb25maWRlbmNlOiB0aGlzLmNvbmZpZGVuY2UsXG4gICAgfSBhcyBGYWlsZWRTdGVwQ29uZmlnO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBcbiAgICAvLyBFbnN1cmUgaXNFeHBhbmRlZCByZWZsZWN0cyB0aGUgZXhwYW5kZWQgaW5wdXRcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkID8/IHRoaXMuY29uZmlnLmV4cGFuZGVkID8/IGZhbHNlO1xuICB9XG5cbiAgb25NYWtlQ3VycmVudEJhc2VsaW5lKGV2ZW50OiBtYWtlQ3VycmVudEJhc2VsaW5lRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnTWFrZSBjdXJyZW50IGJhc2VsaW5lIGNsaWNrZWQnKTtcbiAgICB0aGlzLm1ha2VDdXJyZW50QmFzZWxpbmUuZW1pdChldmVudCk7XG4gIH1cblxuICBvblVwbG9hZEJhc2VsaW5lKGV2ZW50OiB1cGxvYWRCYXNlbGluZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1VwbG9hZCBiYXNlbGluZSBjbGlja2VkJyk7XG4gICAgdGhpcy51cGxvYWRCYXNlbGluZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQW5hbHl6ZSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnQW5hbHl6ZSBjbGlja2VkJyk7XG4gICAgdGhpcy5hbmFseXplLmVtaXQoKTtcbiAgfVxuXG4gIG9uVmlld0Z1bGxMb2dzKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdWaWV3IGZ1bGwgbG9ncyBjbGlja2VkJyk7XG4gICAgdGhpcy52aWV3RnVsbExvZ3MuZW1pdCgpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8IS0tIEhlYWRlciAtLT5cblxuICA8IS0tIEV4cGFuZGVkIENvbnRlbnQgLS0+XG4gIDxkaXYgKm5nSWY9XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1wLTJcIiBzdHlsZT1cImJvcmRlci1sZWZ0OiAnMnB4IHNvbGlkICNGQUM3QzcnOyBib3JkZXItYm90dG9tOiAnMXB4IHNvbGlkICNGRUUyRTInXCI+XG4gICAgPCEtLSBTdWItc3RlcHMgLS0+XG5cbiAgICA8IS0tIEV4cGVjdGVkIHZzIEFjdHVhbCBDb21wYXJpc29uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWc/LmZhaWx1cmVEZXRhaWxzPy5leHBlY3RlZCB8fCBjb25maWc/LmZhaWx1cmVEZXRhaWxzPy5hY3R1YWxcIiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtcm91bmRlZCBjcWEtb3ZlcmZsb3ctaGlkZGVuIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFN0VCXVwiPlxuICAgICAgPCEtLSBFeHBlY3RlZCBDb2x1bW4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXAtMS41IGNxYS10ZXh0LVs5cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtYmctd2hpdGVcIiBzdHlsZT1cImJvcmRlci1yaWdodDogMXB4IHNvbGlkICNFNUU3RUI7XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bIzlDQTNBRl1cIj5FWFBFQ1RFRDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWyMzNzQxNTFdXCI+XG4gICAgICAgICAge3sgY29uZmlnPy5mYWlsdXJlRGV0YWlscz8uZXhwZWN0ZWQgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBBY3R1YWwgQ29sdW1uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1wLTEuNSBjcWEtdGV4dC1bOXB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLWJnLVsjRkVGOEY4XVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWyNGODcxNzFdXCI+QUNUVUFMPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bIzk5MUIxQl1cIj5cbiAgICAgICAgICB7eyBjb25maWc/LmZhaWx1cmVEZXRhaWxzPy5hY3R1YWwgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVmlzdWFsIENvbXBhcmlzb24gQ29tcG9uZW50IC0tPlxuICAgIDxjcWEtdmlzdWFsLWNvbXBhcmlzb25cbiAgICAgICpuZ0lmPVwiY29uZmlnLmZhaWx1cmVEZXRhaWxzICYmIFxuICAgICAgICAoKGNvbmZpZy5mYWlsdXJlRGV0YWlscy5zY3JlZW5zaG90cz8uY3VycmVudCB8fCBjb25maWcuZmFpbHVyZURldGFpbHMuc2NyZWVuc2hvdHM/LmJhc2VsaW5lIHx8IGNvbmZpZy5mYWlsdXJlRGV0YWlscy5zY3JlZW5zaG90cz8uZGlmZmVyZW5jZSlcbiAgICAgICAgfHwgY29uZmlnLmZhaWx1cmVEZXRhaWxzLmxvZ3M/Lmxlbmd0aClcIlxuICAgICAgW3NjcmVlbnNob3RzXT1cImNvbmZpZy5mYWlsdXJlRGV0YWlscy5zY3JlZW5zaG90c1wiXG4gICAgICBbbG9nc109XCJjb25maWcuZmFpbHVyZURldGFpbHMubG9nc1wiXG4gICAgICAobWFrZUN1cnJlbnRCYXNlbGluZSk9XCJvbk1ha2VDdXJyZW50QmFzZWxpbmUoJGV2ZW50KVwiXG4gICAgICAodXBsb2FkQmFzZWxpbmUpPVwib25VcGxvYWRCYXNlbGluZSgkZXZlbnQpXCJcbiAgICAgIChhbmFseXplKT1cIm9uQW5hbHl6ZSgpXCJcbiAgICAgIFtpc1VwbG9hZGluZ0Jhc2VsaW5lXT1cImlzVXBsb2FkaW5nQmFzZWxpbmVcIlxuICAgICAgW3Rlc3RTdGVwUmVzdWx0SWRdPVwidGVzdFN0ZXBSZXN1bHRJZFwiXG4gICAgICAodmlld0Z1bGxMb2dzKT1cIm9uVmlld0Z1bGxMb2dzKClcIj5cbiAgICA8L2NxYS12aXN1YWwtY29tcGFyaXNvbj5cblxuICAgIDwhLS0gQUkgRml4IE1lc3NhZ2UgLS0+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZz8uZmFpbHVyZURldGFpbHM/LmFpRml4QXBwbGllZCAmJiAoY29uZmlnPy5mYWlsdXJlRGV0YWlscz8uYWlGaXhNZXNzYWdlIHx8IGNvbmZpZz8uY29uZmlkZW5jZSB8fCBjb25maWc/LnJlYXNvbmluZz8ubGVuZ3RoKVwiIGNsYXNzPVwiY3FhLXB4LTMgY3FhLXB0LTEuNSBjcWEtcGItMiBjcWEtcm91bmRlZC14bCBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0UyRThGMF0gY3FhLWJnLVsjRkFGNUZGXVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMEYxNzJBXSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtbWItM1wiPlxuICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiNFwiIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfNDA3MF83MjAxKVwiLz48cGF0aCBkPVwiTTguMDA5NDEgMy41QzguMDY0ODkgMy41MjI3NCA4LjA4ODU5IDMuNTc4MjcgOC4xMTEzMSAzLjYyOTg1QzguMTIyNjkgMy42NTk5IDguMTMzMTQgMy42OTAxMiA4LjE0MzI5IDMuNzIwNThDOC4xNDcyNiAzLjczMjI1IDguMTUxMjMgMy43NDM5MiA4LjE1NTMyIDMuNzU1OTRDOC4yMDgwNiAzLjkxMyA4LjI1NTA0IDQuMDcxNzUgOC4zMDIyOSA0LjIzMDM4QzguMzEyOTcgNC4yNjYxOSA4LjMyMzY5IDQuMzAxOTkgOC4zMzQ0MiA0LjMzNzc4QzguMzg5MDUgNC41MjAwNCA4LjQ0MzI3IDQuNzAyNCA4LjQ5NzE5IDQuODg0ODRDOC41MDQ3NiA0LjkxMDQ3IDguNTEyMzQgNC45MzYwOSA4LjUxOTkyIDQuOTYxNzFDOC41NDEyOCA1LjAzMzk1IDguNTYyNjIgNS4xMDYxOSA4LjU4MzgzIDUuMTc4NDdDOC42Mjg2NyA1LjMzMTIgOC42NzQ3MyA1LjQ4MzQ3IDguNzIzNzggNS42MzUwMUM4LjcyODA3IDUuNjQ4MjcgOC43MzIzNiA1LjY2MTUyIDguNzM2NzcgNS42NzUxOEM4Ljg2NDIgNi4wNjUgOS4wNDQ4MiA2LjQxNDM3IDkuMzQwOSA2LjcxMTk2QzkuMzQ4MjMgNi43MTk3IDkuMzU1NTYgNi43Mjc0NCA5LjM2MzEyIDYuNzM1NDFDOS40ODk1IDYuODY0MzcgOS42NTE2OSA2Ljk2NzcxIDkuODEzOCA3LjA1MTExQzkuODIyMDYgNy4wNTU0MiA5LjgzMDMxIDcuMDU5NzQgOS44Mzg4MiA3LjA2NDE5QzEwLjMxNTkgNy4zMDkyNSAxMC44ODk1IDcuNDE3MDQgMTEuNDA2MiA3LjU2MDVDMTEuNjMyNiA3LjYyMzQgMTEuODU4MyA3LjY4ODI5IDEyLjA4MzIgNy43NTYwM0MxMi4wOTkgNy43NjA3OSAxMi4xMTQ4IDcuNzY1NTQgMTIuMTMwNiA3Ljc3MDI4QzEyLjE3NzggNy43ODQ0NSAxMi4yMjUgNy43OTg4NyAxMi4yNzIxIDcuODEzNDdDMTIuMjgzMSA3LjgxNjc5IDEyLjI5NDEgNy44MjAxMSAxMi4zMDU0IDcuODIzNTNDMTIuMzcwMyA3Ljg0NDA2IDEyLjQzMjQgNy44NjgyOSAxMi40ODU3IDcuOTEwMjdDMTIuNTAxOSA3Ljk0NDE4IDEyLjUwMTkgNy45NDQxOCAxMi40OTc1IDcuOTc4MUMxMi40NDU2IDguMDI3MzYgMTIuMzk0MiA4LjA1MDQ2IDEyLjMyNTggOC4wNzNDMTIuMzE2IDguMDc2MzIgMTIuMzA2MiA4LjA3OTY1IDEyLjI5NjEgOC4wODMwOEMxMi4xODA2IDguMTIxODMgMTIuMDYzNSA4LjE1NTc1IDExLjk0NjMgOC4xODkzNUMxMS45MjIyIDguMTk2MyAxMS44OTgxIDguMjAzMjYgMTEuODc0MSA4LjIxMDIxQzExLjcyNTcgOC4yNTMwMSAxMS41NzcxIDguMjk0OSAxMS40MjgzIDguMzM2MzJDMTEuMjMyMyA4LjM5MDg4IDExLjAzNjYgOC40NDYzNCAxMC44NDExIDguNTAyNDNDMTAuODA5MSA4LjUxMTYyIDEwLjc3NzEgOC41MjA3OCAxMC43NDUgOC41Mjk5MUMxMC41NzY3IDguNTc3ODYgMTAuNDA5MiA4LjYyNzUzIDEwLjI0MzEgOC42ODIwOEMxMC4yMjk0IDguNjg2NTkgMTAuMjE1NiA4LjY5MTEgMTAuMjAxNCA4LjY5NTc0QzkuNjQ1MTEgOC44ODA4MiA5LjIyMTEgOS4yMjYwOSA4Ljk1NTcxIDkuNzMwOTlDOC44MTI2MyAxMC4wMTQ4IDguNzI4MjMgMTAuMzIxNiA4LjY0MjE0IDEwLjYyNDVDOC42MTg4NCAxMC43MDYyIDguNTk0MDkgMTAuNzg3NSA4LjU2OTA1IDEwLjg2ODdDOC41NDk0IDEwLjkzMjYgOC41MzAyIDEwLjk5NjYgOC41MTE0OSAxMS4wNjA4QzguNTA5MjYgMTEuMDY4NCA4LjUwNzAzIDExLjA3NjEgOC41MDQ3MyAxMS4wODM5QzguNDkzOTQgMTEuMTIwOSA4LjQ4MzE5IDExLjE1NzkgOC40NzI1MiAxMS4xOTVDOC40NDUxOSAxMS4yODg4IDguNDE1NzggMTEuMzgxOSA4LjM4NTU1IDExLjQ3NDlDOC4zMzE5MSAxMS42NDAyIDguMjgzMSAxMS44MDY3IDguMjM0NTkgMTEuOTczNUM4LjE2MTQ0IDEyLjIyNDYgOC4xNjE0NCAxMi4yMjQ2IDguMTE5OTcgMTIuMzQ1M0M4LjExNzIxIDEyLjM1MzQgOC4xMTQ0NiAxMi4zNjE1IDguMTExNjMgMTIuMzY5OEM4LjA5NjQ5IDEyLjQxMjggOC4wODA5MiAxMi40NTIzIDguMDUyMjYgMTIuNDg4N0M4LjAwODY3IDEyLjQ5NzkgOC4wMDg2NyAxMi40OTc5IDcuOTY5NTEgMTIuNUM3LjkyNDczIDEyLjQzNzYgNy44OTUwOCAxMi4zNzcxIDcuODcxMzMgMTIuMzA1MUM3Ljg2Nzg3IDEyLjI5NDkgNy44NjQ0MSAxMi4yODQ3IDcuODYwODUgMTIuMjc0MUM3LjgxNjg0IDEyLjE0MjUgNy43Nzc1MSAxMi4wMDk1IDcuNzM4MTcgMTEuODc2NUM3LjcyOTE2IDExLjg0NiA3LjcyMDExIDExLjgxNTYgNy43MTEwNiAxMS43ODUyQzcuNjQzNiAxMS41NTg2IDcuNTc3MjUgMTEuMzMxNyA3LjUxMTAxIDExLjEwNDhDNy4yMzUwNyA5Ljk4MjI0IDcuMjM1MDcgOS45ODIyNCA2LjUzOSA5LjA3NDY2QzYuNTI3ODQgOS4wNjU5NiA2LjUxNjY5IDkuMDU3MjYgNi41MDUxOSA5LjA0ODNDNi4wNDkxMyA4LjY5OTAyIDUuNDQ4MzQgOC41Njk3IDQuODk4MTUgOC40MTgxM0M0Ljc2MjA3IDguMzgwNjIgNC42MjYwNSA4LjM0MjkzIDQuNDkwMDMgOC4zMDUyM0M0LjQ3ODE0IDguMzAxOTMgNC40NzgxNCA4LjMwMTkzIDQuNDY2IDguMjk4NTdDNC4yNjk4MSA4LjI0NDE3IDQuMDczNjcgOC4xODk2MyAzLjg3ODIyIDguMTMyODNDMy44Njk5NiA4LjEzMDQ1IDMuODYxNjkgOC4xMjgwNiAzLjg1MzE3IDguMTI1NjFDMy41NTI5IDguMDM4ODMgMy41NTI5IDguMDM4ODMgMy41MDA2NSA3Ljk3ODFDMy40OTkxNyA3Ljk1MDU0IDMuNDk5MTcgNy45NTA1NCAzLjUxMjQ3IDcuOTIxNTdDMy41NjcwOCA3Ljg3MDQgMy42MjAwOCA3Ljg0ODQ4IDMuNjkyMTYgNy44MjYxOUMzLjcwMjYgNy44MjI4NCAzLjcxMzAzIDcuODE5NDggMy43MjM3OSA3LjgxNjAzQzMuNzU1NzUgNy44MDU4MiAzLjc4Nzc5IDcuNzk1ODQgMy44MTk4NSA3Ljc4NTkyQzMuODI5IDcuNzgzMDUgMy44MzgxNSA3Ljc4MDE3IDMuODQ3NTggNy43NzcyMkMzLjkxMjI4IDcuNzU2OTMgMy45NzcyMiA3LjczNzQgNC4wNDIyNiA3LjcxODA5QzQuMDU4MjQgNy43MTMzMiA0LjA1ODI0IDcuNzEzMzIgNC4wNzQ1NCA3LjcwODQ2QzQuMzUyMjcgNy42MjU4NyA0LjYzMTgxIDcuNTQ5IDQuOTExMjYgNy40NzE5NkM1LjExOTUgNy40MTQ1NSA1LjMyNzM4IDcuMzU2MTggNS41MzQ2IDcuMjk1NDhDNS41NDQxMyA3LjI5MjcxIDUuNTUzNjUgNy4yODk5MyA1LjU2MzQ2IDcuMjg3MDdDNi4wNDM1IDcuMTQ2OTYgNi41MTI3OCA2Ljk0ODE2IDYuODIyNzQgNi41NTM3QzYuODI3MzggNi41NDc4NSA2LjgzMjAyIDYuNTQyIDYuODM2OCA2LjUzNTk3QzcuMTgxOTcgNi4wOTgxNSA3LjMxNjU4IDUuNTY1NzIgNy40NjY5NiA1LjA0NjIxQzcuNTE2NDIgNC44NzUzNSA3LjU2NjQ5IDQuNzA0NjQgNy42MTY3MyA0LjUzMzk5QzcuNjMwNjQgNC40ODY3MyA3LjY0NDUzIDQuNDM5NDcgNy42NTgzNiA0LjM5MjE5QzcuNzEzOTQgNC4yMDIyOSA3Ljc3MDM1IDQuMDEyNjQgNy44MyAzLjgyMzg2QzcuODM1NTggMy44MDYxOSA3Ljg0MTE0IDMuNzg4NSA3Ljg0NjY2IDMuNzcwODFDNy45MzAxNyAzLjUwMzk5IDcuOTMwMTcgMy41MDM5OSA4LjAwOTQxIDMuNVpcIiBmaWxsPVwid2hpdGVcIi8+PHBhdGggZD1cIk0xMC43MzU4IDQuMDU1MzVDMTAuNzkwMSA0LjExNDA5IDEwLjgwMSA0LjE4MzEyIDEwLjgxNzkgNC4yNTgxM0MxMC44NzQyIDQuNDkzNzYgMTAuOTM5MiA0LjcxMDQyIDExLjE2NDUgNC44NDczQzExLjMwMzYgNC45MjA4MyAxMS40NjkzIDQuOTU0MyAxMS42MjM0IDQuOTg1OUMxMS42ODg0IDQuOTk5NTEgMTEuNzQzNCA1LjAxNzU4IDExLjc5OTEgNS4wNTM3QzExLjgxMTcgNS4wNzI3OCAxMS44MTE3IDUuMDcyNzggMTEuODEwOSA1LjEwNTk4QzExLjc5OCA1LjE0NjM3IDExLjc4NjcgNS4xNTkzOSAxMS43NTI2IDUuMTg1ODJDMTEuNzE1MyA1LjE5Nzc1IDExLjcxNTMgNS4xOTc3NSAxMS42NzA2IDUuMjA3MDJDMTEuNjUzNiA1LjIxMDc0IDExLjYzNjcgNS4yMTQ0OSAxMS42MTk4IDUuMjE4MjhDMTEuNjEwNyA1LjIyMDI5IDExLjYwMTcgNS4yMjIzIDExLjU5MjQgNS4yMjQzN0MxMS4zMTY4IDUuMjg1MzEgMTEuMzE2OCA1LjI4NTMxIDExLjA3ODcgNS40MjMyMkMxMS4wNzEgNS40MjkxOCAxMS4wNjMyIDUuNDM1MTQgMTEuMDU1MiA1LjQ0MTI4QzEwLjg4NSA1LjU4NDc5IDEwLjg0OSA1LjgyMzUxIDEwLjc5NzggNi4wMjM1QzEwLjc5NDkgNi4wMzQ0OCAxMC43OTE5IDYuMDQ1NDYgMTAuNzg4OSA2LjA1Njc4QzEwLjc4NjQgNi4wNjY1IDEwLjc4MzggNi4wNzYyMiAxMC43ODEyIDYuMDg2MjRDMTAuNzcwMiA2LjExNTkzIDEwLjc1ODcgNi4xMzUyOCAxMC43MzU4IDYuMTU4MDNDMTAuNjcyMiA2LjE2NTc2IDEwLjY3MjIgNi4xNjU3NiAxMC42NDEzIDYuMTU4MDNDMTAuNTkyIDYuMTIxNTUgMTAuNTgxIDYuMDc5OTkgMTAuNTY4MiA2LjAyNDE0QzEwLjU2NiA2LjAxNTQ5IDEwLjU2MzkgNi4wMDY4NSAxMC41NjE2IDUuOTk3OTRDMTAuNTU0OCA1Ljk3MDMyIDEwLjU0ODEgNS45NDI2NiAxMC41NDE1IDUuOTE0OThDMTAuNDg5NyA1LjY5OTQ2IDEwLjQzMTEgNS40ODggMTAuMjI0NCA1LjM2MTY3QzEwLjA2MjggNS4yNzU1IDkuODY2MzQgNS4yMzQ3NSA5LjY4NTc1IDUuMjAxODVDOS42MzYyNSA1LjE5MTk5IDkuNjA3ODkgNS4xNzk2IDkuNTc3MjUgNS4xNDA2QzkuNTcwNiA1LjEwMTA0IDkuNTcwNiA1LjEwMTA0IDkuNTc3MjUgNS4wNjE0N0M5LjYyNDM1IDUuMDE0ODYgOS42NzM5IDUuMDAzNDggOS43Mzc1OSA0Ljk4OTRDOS43NTc2NiA0Ljk4NDY1IDkuNzc3NzIgNC45Nzk4NyA5Ljc5Nzc3IDQuOTc1MDVDOS44MDgxMyA0Ljk3MjU4IDkuODE4NDkgNC45NzAxMSA5LjgyOTE3IDQuOTY3NTZDOS44ODIgNC45NTQ1NiA5LjkzNDMxIDQuOTM5OTggOS45ODY2IDQuOTI1MTFDOS45OTYxMSA0LjkyMjQ3IDEwLjAwNTYgNC45MTk4NCAxMC4wMTU0IDQuOTE3MTJDMTAuMTIxNyA0Ljg4NjczIDEwLjIxMzQgNC44NDc4NiAxMC4yOTg0IDQuNzc4ODVDMTAuMzA2MyA0Ljc3MjYxIDEwLjMxNDMgNC43NjYzOCAxMC4zMjI0IDQuNzU5OTVDMTAuNDU0NyA0LjY0NjE0IDEwLjQ5OTYgNC40NzUxNiAxMC41NDA0IDQuMzE1NjJDMTAuNTQzNSA0LjMwMzUxIDEwLjU0NjYgNC4yOTE0IDEwLjU0OTggNC4yNzg5MkMxMC41NTYgNC4yNTQ1OSAxMC41NjIxIDQuMjMwMjMgMTAuNTY4MSA0LjIwNTg1QzEwLjU3MjMgNC4xODg4OCAxMC41NzIzIDQuMTg4ODggMTAuNTc2NyA0LjE3MTU3QzEwLjU3OTEgNC4xNjE0NCAxMC41ODE2IDQuMTUxMyAxMC41ODQyIDQuMTQwODZDMTAuNTk1MSA0LjEwODYgMTAuNjA5NCA0LjA4MzI2IDEwLjYyOTQgNC4wNTUzNUMxMC42NjggNC4wMzY5MiAxMC42OTUgNC4wNDUyNSAxMC43MzU4IDQuMDU1MzVaXCIgZmlsbD1cIiNFREU5RkVcIi8+PHBhdGggZD1cIk01LjI5NTU0IDkuNzQ3MjJDNS4zMDk2IDkuNzQ3MzEgNS4zMDk2IDkuNzQ3MzEgNS4zMjM5NSA5Ljc0NzQxQzUuNDI0ODYgOS43NTAzNSA1LjQ5MzE0IDkuNzgxMjcgNS41Njc0NSA5Ljg0NjEzQzUuNjUzOTMgOS45MzU0NSA1LjY5Mzg2IDEwLjAzNjIgNS42OTE1OSAxMC4xNTY2QzUuNjgxODggMTAuMjU0MiA1LjYyMTY3IDEwLjMzOTUgNS41NDc4MiAxMC40MDU1QzUuNDYwOSAxMC40NzI1IDUuMzczMjIgMTAuNDk0NyA1LjI2MjE1IDEwLjQ5MTZDNS4xNjg1IDEwLjQ4MTIgNS4wODAzOSAxMC40Mzg2IDUuMDE0MDIgMTAuMzc0NkM0LjkzMTQ3IDEwLjI2NjkgNC45MDczNCAxMC4xNjgyIDQuOTE5NDQgMTAuMDM1NUM0Ljk0NDQzIDkuOTMxMDQgNS4wMTY0NiA5Ljg0NjI1IDUuMTA4NiA5Ljc4Njc4QzUuMTcyNiA5Ljc1NTc2IDUuMjI0MDggOS43NDY2NSA1LjI5NTU0IDkuNzQ3MjJaXCIgZmlsbD1cIndoaXRlXCIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50MF9saW5lYXJfNDA3MF83MjAxXCIgeDE9XCIwXCIgeTE9XCIwXCIgeDI9XCIxNlwiIHkyPVwiMTZcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj48c3RvcCBzdG9wLWNvbG9yPVwiIzhCNUNGNlwiLz48c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiM5MzMzRUFcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+PC9kaXY+XG4gICAgICAgIHt7IGNvbmZpZy5mYWlsdXJlRGV0YWlscy5haUZpeE1lc3NhZ2UgfHwgJ0FJIEluc2lnaHRzJyB9fVxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZz8uY29uZmlkZW5jZVwiIGNsYXNzPVwiY3FhLWlubGluZS1ibG9jayBjcWEtcHktWzJweF0gY3FhLXB4LVsxMHB4XSBjcWEtdGV4dC1jZW50ZXIgY3FhLXJvdW5kZWQtWzVweF0gY3FhLWJnLVsjRURFOUZFXSBjcWEtdGV4dC1bOHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLXRleHQtWyM2RDI4RDldXCI+e3sgY29uZmlnPy5jb25maWRlbmNlIH19IGNvbmZpZGVuY2U8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgY3FhLWdhcC00XCIgKm5nSWY9XCJjb25maWc/LnJlYXNvbmluZz8ubGVuZ3RoXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjQ3NDhCXVwiPlJlYXNvbmluZzwvZGl2PlxuICAgICAgICAgIDx1bCBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBwb2ludCBvZiBjb25maWcucmVhc29uaW5nXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZ2FwLTIgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM0NzU1NjldXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbXQtMVwiPjxzdmcgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHZpZXdCb3g9XCIwIDAgNiA2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHJ4PVwiM1wiIGZpbGw9XCIjQTc4QkZBXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgICAgICAgICB7eyBwb2ludCB9fTwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlZC1mYWlsZWQtc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2V4ZWN1dGlvbi1zY3JlZW4vdXBkYXRlZC1mYWlsZWQtc3RlcC91cGRhdGVkLWZhaWxlZC1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi91cGRhdGVkLWZhaWxlZC1zdGVwL3VwZGF0ZWQtZmFpbGVkLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVMzRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBTmpFOztRQWVXLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2Qsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDbkUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN6RCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0EyQ25EO0lBdENVLFFBQVE7UUFDZixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLElBQUksRUFBRSxRQUFRO1lBQ2QsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUNSLENBQUM7UUFFdEIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO0lBQ25FLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUErQjtRQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBMEI7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOzt1SEF4RFUsMEJBQTBCOzJHQUExQiwwQkFBMEIsZ2lCQ1h2QywrNlNBNkRNOzJGRGxETywwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UseUJBQXlCLFFBRzdCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs4QkFJckIsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmFpbGVkU3RlcENvbmZpZywgU3ViU3RlcCwgRmFpbHVyZURldGFpbHMsIFN0ZXBTdGF0dXMsIFRpbWluZ0JyZWFrZG93biB9IGZyb20gJy4uL2V4ZWN1dGlvbi1zdGVwLm1vZGVscyc7XG5pbXBvcnQgeyBCYXNlU3RlcENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2Utc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbWFrZUN1cnJlbnRCYXNlbGluZUV2ZW50LCB1cGxvYWRCYXNlbGluZUV2ZW50IH0gZnJvbSAnLi4vdmlzdWFsLWNvbXBhcmlzb24vdmlzdWFsLWNvbXBhcmlzb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXVwZGF0ZWQtZmFpbGVkLXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBkYXRlZC1mYWlsZWQtc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBVcGRhdGVkRmFpbGVkU3RlcENvbXBvbmVudCBleHRlbmRzIEJhc2VTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gSW5kaXZpZHVhbCBpbnB1dHNcbiAgQElucHV0KCkgdGltaW5nQnJlYWtkb3duPzogVGltaW5nQnJlYWtkb3duO1xuICBASW5wdXQoKSB0ZXN0U3RlcFJlc3VsdElkITogc3RyaW5nO1xuICBASW5wdXQoKSBleHBhbmRlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN1YlN0ZXBzITogU3ViU3RlcFtdO1xuICBASW5wdXQoKSBmYWlsdXJlRGV0YWlscyE6IEZhaWx1cmVEZXRhaWxzO1xuICBASW5wdXQoKSByZWFzb25pbmc/OiBzdHJpbmdbXTtcbiAgQElucHV0KCkgY29uZmlkZW5jZT86IHN0cmluZztcbiAgQElucHV0KCkgaXNVcGxvYWRpbmdCYXNlbGluZSA9IHt9O1xuICBASW5wdXQoKSBpc0xpdmUgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG1ha2VDdXJyZW50QmFzZWxpbmUgPSBuZXcgRXZlbnRFbWl0dGVyPG1ha2VDdXJyZW50QmFzZWxpbmVFdmVudD4oKTtcbiAgQE91dHB1dCgpIHVwbG9hZEJhc2VsaW5lID0gbmV3IEV2ZW50RW1pdHRlcjx1cGxvYWRCYXNlbGluZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgYW5hbHl6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHZpZXdGdWxsTG9ncyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvLyBDb25maWcgcHJvcGVydHkgZm9yIGJhc2UgY2xhc3MgLSBidWlsdCBmcm9tIGluZGl2aWR1YWwgaW5wdXRzIGluIG5nT25Jbml0XG4gIG92ZXJyaWRlIGNvbmZpZyE6IEZhaWxlZFN0ZXBDb25maWc7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQnVpbGQgY29uZmlnIGZyb20gaW5kaXZpZHVhbCBpbnB1dHNcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIHR5cGU6ICdmYWlsZWQnLFxuICAgICAgdGVzdFN0ZXBSZXN1bHRJZDogdGhpcy50ZXN0U3RlcFJlc3VsdElkLFxuICAgICAgc3ViU3RlcHM6IHRoaXMuc3ViU3RlcHMsXG4gICAgICBmYWlsdXJlRGV0YWlsczogdGhpcy5mYWlsdXJlRGV0YWlscyxcbiAgICAgIHRpbWluZ0JyZWFrZG93bjogdGhpcy50aW1pbmdCcmVha2Rvd24sXG4gICAgICBleHBhbmRlZDogdGhpcy5leHBhbmRlZCxcbiAgICAgIHJlYXNvbmluZzogdGhpcy5yZWFzb25pbmcsXG4gICAgICBjb25maWRlbmNlOiB0aGlzLmNvbmZpZGVuY2UsXG4gICAgfSBhcyBGYWlsZWRTdGVwQ29uZmlnO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBcbiAgICAvLyBFbnN1cmUgaXNFeHBhbmRlZCByZWZsZWN0cyB0aGUgZXhwYW5kZWQgaW5wdXRcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkID8/IHRoaXMuY29uZmlnLmV4cGFuZGVkID8/IGZhbHNlO1xuICB9XG5cbiAgb25NYWtlQ3VycmVudEJhc2VsaW5lKGV2ZW50OiBtYWtlQ3VycmVudEJhc2VsaW5lRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnTWFrZSBjdXJyZW50IGJhc2VsaW5lIGNsaWNrZWQnKTtcbiAgICB0aGlzLm1ha2VDdXJyZW50QmFzZWxpbmUuZW1pdChldmVudCk7XG4gIH1cblxuICBvblVwbG9hZEJhc2VsaW5lKGV2ZW50OiB1cGxvYWRCYXNlbGluZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1VwbG9hZCBiYXNlbGluZSBjbGlja2VkJyk7XG4gICAgdGhpcy51cGxvYWRCYXNlbGluZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQW5hbHl6ZSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnQW5hbHl6ZSBjbGlja2VkJyk7XG4gICAgdGhpcy5hbmFseXplLmVtaXQoKTtcbiAgfVxuXG4gIG9uVmlld0Z1bGxMb2dzKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdWaWV3IGZ1bGwgbG9ncyBjbGlja2VkJyk7XG4gICAgdGhpcy52aWV3RnVsbExvZ3MuZW1pdCgpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8IS0tIEhlYWRlciAtLT5cblxuICA8IS0tIEV4cGFuZGVkIENvbnRlbnQgLS0+XG4gIDxkaXYgKm5nSWY9XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1wLTJcIiBzdHlsZT1cImJvcmRlci1sZWZ0OiAnMnB4IHNvbGlkICNGQUM3QzcnOyBib3JkZXItYm90dG9tOiAnMXB4IHNvbGlkICNGRUUyRTInXCI+XG4gICAgPCEtLSBTdWItc3RlcHMgLS0+XG5cbiAgICA8IS0tIEV4cGVjdGVkIHZzIEFjdHVhbCBDb21wYXJpc29uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWc/LmZhaWx1cmVEZXRhaWxzPy5leHBlY3RlZCB8fCBjb25maWc/LmZhaWx1cmVEZXRhaWxzPy5hY3R1YWxcIiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtcm91bmRlZCBjcWEtb3ZlcmZsb3ctaGlkZGVuIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFN0VCXVwiPlxuICAgICAgPCEtLSBFeHBlY3RlZCBDb2x1bW4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXAtMS41IGNxYS10ZXh0LVs5cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtYmctd2hpdGVcIiBzdHlsZT1cImJvcmRlci1yaWdodDogMXB4IHNvbGlkICNFNUU3RUI7XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bIzlDQTNBRl1cIj5FWFBFQ1RFRDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWyMzNzQxNTFdXCI+XG4gICAgICAgICAge3sgY29uZmlnPy5mYWlsdXJlRGV0YWlscz8uZXhwZWN0ZWQgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBBY3R1YWwgQ29sdW1uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1wLTEuNSBjcWEtdGV4dC1bOXB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLWJnLVsjRkVGOEY4XVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWyNGODcxNzFdXCI+QUNUVUFMPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bIzk5MUIxQl1cIj5cbiAgICAgICAgICB7eyBjb25maWc/LmZhaWx1cmVEZXRhaWxzPy5hY3R1YWwgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVmlzdWFsIENvbXBhcmlzb24gQ29tcG9uZW50IC0tPlxuICAgIDxjcWEtdmlzdWFsLWNvbXBhcmlzb25cbiAgICAgICpuZ0lmPVwiY29uZmlnLmZhaWx1cmVEZXRhaWxzICYmIFxuICAgICAgICAoKGNvbmZpZy5mYWlsdXJlRGV0YWlscy5zY3JlZW5zaG90cz8uY3VycmVudCB8fCBjb25maWcuZmFpbHVyZURldGFpbHMuc2NyZWVuc2hvdHM/LmJhc2VsaW5lIHx8IGNvbmZpZy5mYWlsdXJlRGV0YWlscy5zY3JlZW5zaG90cz8uZGlmZmVyZW5jZSlcbiAgICAgICAgfHwgY29uZmlnLmZhaWx1cmVEZXRhaWxzLmxvZ3M/Lmxlbmd0aClcIlxuICAgICAgW3NjcmVlbnNob3RzXT1cImNvbmZpZy5mYWlsdXJlRGV0YWlscy5zY3JlZW5zaG90c1wiXG4gICAgICBbbG9nc109XCJjb25maWcuZmFpbHVyZURldGFpbHMubG9nc1wiXG4gICAgICAobWFrZUN1cnJlbnRCYXNlbGluZSk9XCJvbk1ha2VDdXJyZW50QmFzZWxpbmUoJGV2ZW50KVwiXG4gICAgICAodXBsb2FkQmFzZWxpbmUpPVwib25VcGxvYWRCYXNlbGluZSgkZXZlbnQpXCJcbiAgICAgIChhbmFseXplKT1cIm9uQW5hbHl6ZSgpXCJcbiAgICAgIFtpc1VwbG9hZGluZ0Jhc2VsaW5lXT1cImlzVXBsb2FkaW5nQmFzZWxpbmVcIlxuICAgICAgW2lzTGl2ZV09XCJpc0xpdmVcIlxuICAgICAgW3Rlc3RTdGVwUmVzdWx0SWRdPVwidGVzdFN0ZXBSZXN1bHRJZFwiXG4gICAgICAodmlld0Z1bGxMb2dzKT1cIm9uVmlld0Z1bGxMb2dzKClcIj5cbiAgICA8L2NxYS12aXN1YWwtY29tcGFyaXNvbj5cblxuICAgIDwhLS0gQUkgRml4IE1lc3NhZ2UgLS0+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZz8uZmFpbHVyZURldGFpbHM/LmFpRml4QXBwbGllZCAmJiAoY29uZmlnPy5mYWlsdXJlRGV0YWlscz8uYWlGaXhNZXNzYWdlIHx8IGNvbmZpZz8uY29uZmlkZW5jZSB8fCBjb25maWc/LnJlYXNvbmluZz8ubGVuZ3RoKVwiIGNsYXNzPVwiY3FhLXB4LTMgY3FhLXB0LTEuNSBjcWEtcGItMiBjcWEtcm91bmRlZC14bCBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0UyRThGMF0gY3FhLWJnLVsjRkFGNUZGXVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMEYxNzJBXSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtbWItM1wiPlxuICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiNFwiIGZpbGw9XCJ1cmwoI3BhaW50MF9saW5lYXJfNDA3MF83MjAxKVwiLz48cGF0aCBkPVwiTTguMDA5NDEgMy41QzguMDY0ODkgMy41MjI3NCA4LjA4ODU5IDMuNTc4MjcgOC4xMTEzMSAzLjYyOTg1QzguMTIyNjkgMy42NTk5IDguMTMzMTQgMy42OTAxMiA4LjE0MzI5IDMuNzIwNThDOC4xNDcyNiAzLjczMjI1IDguMTUxMjMgMy43NDM5MiA4LjE1NTMyIDMuNzU1OTRDOC4yMDgwNiAzLjkxMyA4LjI1NTA0IDQuMDcxNzUgOC4zMDIyOSA0LjIzMDM4QzguMzEyOTcgNC4yNjYxOSA4LjMyMzY5IDQuMzAxOTkgOC4zMzQ0MiA0LjMzNzc4QzguMzg5MDUgNC41MjAwNCA4LjQ0MzI3IDQuNzAyNCA4LjQ5NzE5IDQuODg0ODRDOC41MDQ3NiA0LjkxMDQ3IDguNTEyMzQgNC45MzYwOSA4LjUxOTkyIDQuOTYxNzFDOC41NDEyOCA1LjAzMzk1IDguNTYyNjIgNS4xMDYxOSA4LjU4MzgzIDUuMTc4NDdDOC42Mjg2NyA1LjMzMTIgOC42NzQ3MyA1LjQ4MzQ3IDguNzIzNzggNS42MzUwMUM4LjcyODA3IDUuNjQ4MjcgOC43MzIzNiA1LjY2MTUyIDguNzM2NzcgNS42NzUxOEM4Ljg2NDIgNi4wNjUgOS4wNDQ4MiA2LjQxNDM3IDkuMzQwOSA2LjcxMTk2QzkuMzQ4MjMgNi43MTk3IDkuMzU1NTYgNi43Mjc0NCA5LjM2MzEyIDYuNzM1NDFDOS40ODk1IDYuODY0MzcgOS42NTE2OSA2Ljk2NzcxIDkuODEzOCA3LjA1MTExQzkuODIyMDYgNy4wNTU0MiA5LjgzMDMxIDcuMDU5NzQgOS44Mzg4MiA3LjA2NDE5QzEwLjMxNTkgNy4zMDkyNSAxMC44ODk1IDcuNDE3MDQgMTEuNDA2MiA3LjU2MDVDMTEuNjMyNiA3LjYyMzQgMTEuODU4MyA3LjY4ODI5IDEyLjA4MzIgNy43NTYwM0MxMi4wOTkgNy43NjA3OSAxMi4xMTQ4IDcuNzY1NTQgMTIuMTMwNiA3Ljc3MDI4QzEyLjE3NzggNy43ODQ0NSAxMi4yMjUgNy43OTg4NyAxMi4yNzIxIDcuODEzNDdDMTIuMjgzMSA3LjgxNjc5IDEyLjI5NDEgNy44MjAxMSAxMi4zMDU0IDcuODIzNTNDMTIuMzcwMyA3Ljg0NDA2IDEyLjQzMjQgNy44NjgyOSAxMi40ODU3IDcuOTEwMjdDMTIuNTAxOSA3Ljk0NDE4IDEyLjUwMTkgNy45NDQxOCAxMi40OTc1IDcuOTc4MUMxMi40NDU2IDguMDI3MzYgMTIuMzk0MiA4LjA1MDQ2IDEyLjMyNTggOC4wNzNDMTIuMzE2IDguMDc2MzIgMTIuMzA2MiA4LjA3OTY1IDEyLjI5NjEgOC4wODMwOEMxMi4xODA2IDguMTIxODMgMTIuMDYzNSA4LjE1NTc1IDExLjk0NjMgOC4xODkzNUMxMS45MjIyIDguMTk2MyAxMS44OTgxIDguMjAzMjYgMTEuODc0MSA4LjIxMDIxQzExLjcyNTcgOC4yNTMwMSAxMS41NzcxIDguMjk0OSAxMS40MjgzIDguMzM2MzJDMTEuMjMyMyA4LjM5MDg4IDExLjAzNjYgOC40NDYzNCAxMC44NDExIDguNTAyNDNDMTAuODA5MSA4LjUxMTYyIDEwLjc3NzEgOC41MjA3OCAxMC43NDUgOC41Mjk5MUMxMC41NzY3IDguNTc3ODYgMTAuNDA5MiA4LjYyNzUzIDEwLjI0MzEgOC42ODIwOEMxMC4yMjk0IDguNjg2NTkgMTAuMjE1NiA4LjY5MTEgMTAuMjAxNCA4LjY5NTc0QzkuNjQ1MTEgOC44ODA4MiA5LjIyMTEgOS4yMjYwOSA4Ljk1NTcxIDkuNzMwOTlDOC44MTI2MyAxMC4wMTQ4IDguNzI4MjMgMTAuMzIxNiA4LjY0MjE0IDEwLjYyNDVDOC42MTg4NCAxMC43MDYyIDguNTk0MDkgMTAuNzg3NSA4LjU2OTA1IDEwLjg2ODdDOC41NDk0IDEwLjkzMjYgOC41MzAyIDEwLjk5NjYgOC41MTE0OSAxMS4wNjA4QzguNTA5MjYgMTEuMDY4NCA4LjUwNzAzIDExLjA3NjEgOC41MDQ3MyAxMS4wODM5QzguNDkzOTQgMTEuMTIwOSA4LjQ4MzE5IDExLjE1NzkgOC40NzI1MiAxMS4xOTVDOC40NDUxOSAxMS4yODg4IDguNDE1NzggMTEuMzgxOSA4LjM4NTU1IDExLjQ3NDlDOC4zMzE5MSAxMS42NDAyIDguMjgzMSAxMS44MDY3IDguMjM0NTkgMTEuOTczNUM4LjE2MTQ0IDEyLjIyNDYgOC4xNjE0NCAxMi4yMjQ2IDguMTE5OTcgMTIuMzQ1M0M4LjExNzIxIDEyLjM1MzQgOC4xMTQ0NiAxMi4zNjE1IDguMTExNjMgMTIuMzY5OEM4LjA5NjQ5IDEyLjQxMjggOC4wODA5MiAxMi40NTIzIDguMDUyMjYgMTIuNDg4N0M4LjAwODY3IDEyLjQ5NzkgOC4wMDg2NyAxMi40OTc5IDcuOTY5NTEgMTIuNUM3LjkyNDczIDEyLjQzNzYgNy44OTUwOCAxMi4zNzcxIDcuODcxMzMgMTIuMzA1MUM3Ljg2Nzg3IDEyLjI5NDkgNy44NjQ0MSAxMi4yODQ3IDcuODYwODUgMTIuMjc0MUM3LjgxNjg0IDEyLjE0MjUgNy43Nzc1MSAxMi4wMDk1IDcuNzM4MTcgMTEuODc2NUM3LjcyOTE2IDExLjg0NiA3LjcyMDExIDExLjgxNTYgNy43MTEwNiAxMS43ODUyQzcuNjQzNiAxMS41NTg2IDcuNTc3MjUgMTEuMzMxNyA3LjUxMTAxIDExLjEwNDhDNy4yMzUwNyA5Ljk4MjI0IDcuMjM1MDcgOS45ODIyNCA2LjUzOSA5LjA3NDY2QzYuNTI3ODQgOS4wNjU5NiA2LjUxNjY5IDkuMDU3MjYgNi41MDUxOSA5LjA0ODNDNi4wNDkxMyA4LjY5OTAyIDUuNDQ4MzQgOC41Njk3IDQuODk4MTUgOC40MTgxM0M0Ljc2MjA3IDguMzgwNjIgNC42MjYwNSA4LjM0MjkzIDQuNDkwMDMgOC4zMDUyM0M0LjQ3ODE0IDguMzAxOTMgNC40NzgxNCA4LjMwMTkzIDQuNDY2IDguMjk4NTdDNC4yNjk4MSA4LjI0NDE3IDQuMDczNjcgOC4xODk2MyAzLjg3ODIyIDguMTMyODNDMy44Njk5NiA4LjEzMDQ1IDMuODYxNjkgOC4xMjgwNiAzLjg1MzE3IDguMTI1NjFDMy41NTI5IDguMDM4ODMgMy41NTI5IDguMDM4ODMgMy41MDA2NSA3Ljk3ODFDMy40OTkxNyA3Ljk1MDU0IDMuNDk5MTcgNy45NTA1NCAzLjUxMjQ3IDcuOTIxNTdDMy41NjcwOCA3Ljg3MDQgMy42MjAwOCA3Ljg0ODQ4IDMuNjkyMTYgNy44MjYxOUMzLjcwMjYgNy44MjI4NCAzLjcxMzAzIDcuODE5NDggMy43MjM3OSA3LjgxNjAzQzMuNzU1NzUgNy44MDU4MiAzLjc4Nzc5IDcuNzk1ODQgMy44MTk4NSA3Ljc4NTkyQzMuODI5IDcuNzgzMDUgMy44MzgxNSA3Ljc4MDE3IDMuODQ3NTggNy43NzcyMkMzLjkxMjI4IDcuNzU2OTMgMy45NzcyMiA3LjczNzQgNC4wNDIyNiA3LjcxODA5QzQuMDU4MjQgNy43MTMzMiA0LjA1ODI0IDcuNzEzMzIgNC4wNzQ1NCA3LjcwODQ2QzQuMzUyMjcgNy42MjU4NyA0LjYzMTgxIDcuNTQ5IDQuOTExMjYgNy40NzE5NkM1LjExOTUgNy40MTQ1NSA1LjMyNzM4IDcuMzU2MTggNS41MzQ2IDcuMjk1NDhDNS41NDQxMyA3LjI5MjcxIDUuNTUzNjUgNy4yODk5MyA1LjU2MzQ2IDcuMjg3MDdDNi4wNDM1IDcuMTQ2OTYgNi41MTI3OCA2Ljk0ODE2IDYuODIyNzQgNi41NTM3QzYuODI3MzggNi41NDc4NSA2LjgzMjAyIDYuNTQyIDYuODM2OCA2LjUzNTk3QzcuMTgxOTcgNi4wOTgxNSA3LjMxNjU4IDUuNTY1NzIgNy40NjY5NiA1LjA0NjIxQzcuNTE2NDIgNC44NzUzNSA3LjU2NjQ5IDQuNzA0NjQgNy42MTY3MyA0LjUzMzk5QzcuNjMwNjQgNC40ODY3MyA3LjY0NDUzIDQuNDM5NDcgNy42NTgzNiA0LjM5MjE5QzcuNzEzOTQgNC4yMDIyOSA3Ljc3MDM1IDQuMDEyNjQgNy44MyAzLjgyMzg2QzcuODM1NTggMy44MDYxOSA3Ljg0MTE0IDMuNzg4NSA3Ljg0NjY2IDMuNzcwODFDNy45MzAxNyAzLjUwMzk5IDcuOTMwMTcgMy41MDM5OSA4LjAwOTQxIDMuNVpcIiBmaWxsPVwid2hpdGVcIi8+PHBhdGggZD1cIk0xMC43MzU4IDQuMDU1MzVDMTAuNzkwMSA0LjExNDA5IDEwLjgwMSA0LjE4MzEyIDEwLjgxNzkgNC4yNTgxM0MxMC44NzQyIDQuNDkzNzYgMTAuOTM5MiA0LjcxMDQyIDExLjE2NDUgNC44NDczQzExLjMwMzYgNC45MjA4MyAxMS40NjkzIDQuOTU0MyAxMS42MjM0IDQuOTg1OUMxMS42ODg0IDQuOTk5NTEgMTEuNzQzNCA1LjAxNzU4IDExLjc5OTEgNS4wNTM3QzExLjgxMTcgNS4wNzI3OCAxMS44MTE3IDUuMDcyNzggMTEuODEwOSA1LjEwNTk4QzExLjc5OCA1LjE0NjM3IDExLjc4NjcgNS4xNTkzOSAxMS43NTI2IDUuMTg1ODJDMTEuNzE1MyA1LjE5Nzc1IDExLjcxNTMgNS4xOTc3NSAxMS42NzA2IDUuMjA3MDJDMTEuNjUzNiA1LjIxMDc0IDExLjYzNjcgNS4yMTQ0OSAxMS42MTk4IDUuMjE4MjhDMTEuNjEwNyA1LjIyMDI5IDExLjYwMTcgNS4yMjIzIDExLjU5MjQgNS4yMjQzN0MxMS4zMTY4IDUuMjg1MzEgMTEuMzE2OCA1LjI4NTMxIDExLjA3ODcgNS40MjMyMkMxMS4wNzEgNS40MjkxOCAxMS4wNjMyIDUuNDM1MTQgMTEuMDU1MiA1LjQ0MTI4QzEwLjg4NSA1LjU4NDc5IDEwLjg0OSA1LjgyMzUxIDEwLjc5NzggNi4wMjM1QzEwLjc5NDkgNi4wMzQ0OCAxMC43OTE5IDYuMDQ1NDYgMTAuNzg4OSA2LjA1Njc4QzEwLjc4NjQgNi4wNjY1IDEwLjc4MzggNi4wNzYyMiAxMC43ODEyIDYuMDg2MjRDMTAuNzcwMiA2LjExNTkzIDEwLjc1ODcgNi4xMzUyOCAxMC43MzU4IDYuMTU4MDNDMTAuNjcyMiA2LjE2NTc2IDEwLjY3MjIgNi4xNjU3NiAxMC42NDEzIDYuMTU4MDNDMTAuNTkyIDYuMTIxNTUgMTAuNTgxIDYuMDc5OTkgMTAuNTY4MiA2LjAyNDE0QzEwLjU2NiA2LjAxNTQ5IDEwLjU2MzkgNi4wMDY4NSAxMC41NjE2IDUuOTk3OTRDMTAuNTU0OCA1Ljk3MDMyIDEwLjU0ODEgNS45NDI2NiAxMC41NDE1IDUuOTE0OThDMTAuNDg5NyA1LjY5OTQ2IDEwLjQzMTEgNS40ODggMTAuMjI0NCA1LjM2MTY3QzEwLjA2MjggNS4yNzU1IDkuODY2MzQgNS4yMzQ3NSA5LjY4NTc1IDUuMjAxODVDOS42MzYyNSA1LjE5MTk5IDkuNjA3ODkgNS4xNzk2IDkuNTc3MjUgNS4xNDA2QzkuNTcwNiA1LjEwMTA0IDkuNTcwNiA1LjEwMTA0IDkuNTc3MjUgNS4wNjE0N0M5LjYyNDM1IDUuMDE0ODYgOS42NzM5IDUuMDAzNDggOS43Mzc1OSA0Ljk4OTRDOS43NTc2NiA0Ljk4NDY1IDkuNzc3NzIgNC45Nzk4NyA5Ljc5Nzc3IDQuOTc1MDVDOS44MDgxMyA0Ljk3MjU4IDkuODE4NDkgNC45NzAxMSA5LjgyOTE3IDQuOTY3NTZDOS44ODIgNC45NTQ1NiA5LjkzNDMxIDQuOTM5OTggOS45ODY2IDQuOTI1MTFDOS45OTYxMSA0LjkyMjQ3IDEwLjAwNTYgNC45MTk4NCAxMC4wMTU0IDQuOTE3MTJDMTAuMTIxNyA0Ljg4NjczIDEwLjIxMzQgNC44NDc4NiAxMC4yOTg0IDQuNzc4ODVDMTAuMzA2MyA0Ljc3MjYxIDEwLjMxNDMgNC43NjYzOCAxMC4zMjI0IDQuNzU5OTVDMTAuNDU0NyA0LjY0NjE0IDEwLjQ5OTYgNC40NzUxNiAxMC41NDA0IDQuMzE1NjJDMTAuNTQzNSA0LjMwMzUxIDEwLjU0NjYgNC4yOTE0IDEwLjU0OTggNC4yNzg5MkMxMC41NTYgNC4yNTQ1OSAxMC41NjIxIDQuMjMwMjMgMTAuNTY4MSA0LjIwNTg1QzEwLjU3MjMgNC4xODg4OCAxMC41NzIzIDQuMTg4ODggMTAuNTc2NyA0LjE3MTU3QzEwLjU3OTEgNC4xNjE0NCAxMC41ODE2IDQuMTUxMyAxMC41ODQyIDQuMTQwODZDMTAuNTk1MSA0LjEwODYgMTAuNjA5NCA0LjA4MzI2IDEwLjYyOTQgNC4wNTUzNUMxMC42NjggNC4wMzY5MiAxMC42OTUgNC4wNDUyNSAxMC43MzU4IDQuMDU1MzVaXCIgZmlsbD1cIiNFREU5RkVcIi8+PHBhdGggZD1cIk01LjI5NTU0IDkuNzQ3MjJDNS4zMDk2IDkuNzQ3MzEgNS4zMDk2IDkuNzQ3MzEgNS4zMjM5NSA5Ljc0NzQxQzUuNDI0ODYgOS43NTAzNSA1LjQ5MzE0IDkuNzgxMjcgNS41Njc0NSA5Ljg0NjEzQzUuNjUzOTMgOS45MzU0NSA1LjY5Mzg2IDEwLjAzNjIgNS42OTE1OSAxMC4xNTY2QzUuNjgxODggMTAuMjU0MiA1LjYyMTY3IDEwLjMzOTUgNS41NDc4MiAxMC40MDU1QzUuNDYwOSAxMC40NzI1IDUuMzczMjIgMTAuNDk0NyA1LjI2MjE1IDEwLjQ5MTZDNS4xNjg1IDEwLjQ4MTIgNS4wODAzOSAxMC40Mzg2IDUuMDE0MDIgMTAuMzc0NkM0LjkzMTQ3IDEwLjI2NjkgNC45MDczNCAxMC4xNjgyIDQuOTE5NDQgMTAuMDM1NUM0Ljk0NDQzIDkuOTMxMDQgNS4wMTY0NiA5Ljg0NjI1IDUuMTA4NiA5Ljc4Njc4QzUuMTcyNiA5Ljc1NTc2IDUuMjI0MDggOS43NDY2NSA1LjI5NTU0IDkuNzQ3MjJaXCIgZmlsbD1cIndoaXRlXCIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cInBhaW50MF9saW5lYXJfNDA3MF83MjAxXCIgeDE9XCIwXCIgeTE9XCIwXCIgeDI9XCIxNlwiIHkyPVwiMTZcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj48c3RvcCBzdG9wLWNvbG9yPVwiIzhCNUNGNlwiLz48c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiM5MzMzRUFcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+PC9kaXY+XG4gICAgICAgIHt7IGNvbmZpZy5mYWlsdXJlRGV0YWlscy5haUZpeE1lc3NhZ2UgfHwgJ0FJIEluc2lnaHRzJyB9fVxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZz8uY29uZmlkZW5jZVwiIGNsYXNzPVwiY3FhLWlubGluZS1ibG9jayBjcWEtcHktWzJweF0gY3FhLXB4LVsxMHB4XSBjcWEtdGV4dC1jZW50ZXIgY3FhLXJvdW5kZWQtWzVweF0gY3FhLWJnLVsjRURFOUZFXSBjcWEtdGV4dC1bOHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLXRleHQtWyM2RDI4RDldXCI+e3sgY29uZmlnPy5jb25maWRlbmNlIH19IGNvbmZpZGVuY2U8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgY3FhLWdhcC00XCIgKm5nSWY9XCJjb25maWc/LnJlYXNvbmluZz8ubGVuZ3RoXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjQ3NDhCXVwiPlJlYXNvbmluZzwvZGl2PlxuICAgICAgICAgIDx1bCBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBwb2ludCBvZiBjb25maWcucmVhc29uaW5nXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZ2FwLTIgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM0NzU1NjldXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbXQtMVwiPjxzdmcgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHZpZXdCb3g9XCIwIDAgNiA2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCI2XCIgaGVpZ2h0PVwiNlwiIHJ4PVwiM1wiIGZpbGw9XCIjQTc4QkZBXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgICAgICAgICB7eyBwb2ludCB9fTwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -6,6 +6,7 @@ export class VisualComparisonComponent {
6
6
  constructor() {
7
7
  this.showFullLogsLink = true;
8
8
  this.isUploadingBaseline = {};
9
+ this.isLive = false;
9
10
  this.makeCurrentBaseline = new EventEmitter();
10
11
  this.uploadBaseline = new EventEmitter();
11
12
  this.analyze = new EventEmitter();
@@ -69,7 +70,7 @@ export class VisualComparisonComponent {
69
70
  }
70
71
  }
71
72
  VisualComparisonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VisualComparisonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
72
- VisualComparisonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VisualComparisonComponent, selector: "cqa-visual-comparison", inputs: { screenshots: "screenshots", logs: "logs", showFullLogsLink: "showFullLogsLink", isUploadingBaseline: "isUploadingBaseline", testStepResultId: "testStepResultId" }, outputs: { makeCurrentBaseline: "makeCurrentBaseline", uploadBaseline: "uploadBaseline", analyze: "analyze", viewFullLogs: "viewFullLogs" }, host: { classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"cqa-grid cqa-grid-cols-12 cqa-gap-x-4 cqa-w-full cqa-max-h-[200px] cqa-h-full cqa-overflow-hidden\">\n <!-- Left Panel: Screenshots & Visual Comparison -->\n <div class=\"cqa-col-span-9 cqa-border cqa-border-solid cqa-border-[##E5E5E5] cqa-rounded-[10px] cqa-pt-2 cqa-px-3 cqa-pb-1 cqa-h-full cqa-max-h-[200px] cqa-overflow-auto\"\n style=\"scrollbar-width: thin;\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0A0A0A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2Z\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.00033 7.33268C6.73671 7.33268 7.33366 6.73573 7.33366 5.99935C7.33366 5.26297 6.73671 4.66602 6.00033 4.66602C5.26395 4.66602 4.66699 5.26297 4.66699 5.99935C4.66699 6.73573 5.26395 7.33268 6.00033 7.33268Z\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 10.0004L11.9427 7.94312C11.6926 7.69315 11.3536 7.55273 11 7.55273C10.6464 7.55273 10.3074 7.69315 10.0573 7.94312L4 14.0004\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n Screenshots & Visual Comparison\n </div>\n \n <!-- Screenshot Comparison Grid -->\n <div class=\"cqa-grid cqa-grid-cols-3 cqa-gap-3 cqa-mb-2\">\n <!-- Baseline -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Baseline</div>\n <div class=\"cqa-bg-[#F5F5F5] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-flex cqa-items-center cqa-justify-center cqa-h-[112px] cqa-cursor-pointer\" (click)=\"onImageClick('baseline')\">\n <div *ngIf=\"!screenshots?.baseline\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.9997 14.6673C13.4724 14.6673 14.6663 13.4734 14.6663 12.0007C14.6663 10.5279 13.4724 9.33398 11.9997 9.33398C10.5269 9.33398 9.33301 10.5279 9.33301 12.0007C9.33301 13.4734 10.5269 14.6673 11.9997 14.6673Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 20.0009L23.8853 15.8862C23.3853 15.3863 22.7071 15.1055 22 15.1055C21.2929 15.1055 20.6147 15.3863 20.1147 15.8862L8 28.0009\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n <img *ngIf=\"screenshots?.baseline\" [src]=\"screenshots.baseline\" alt=\"Baseline\" class=\"cqa-w-full cqa-h-full cqa-object-cover cqa-rounded-lg\" />\n </div>\n </div>\n\n <!-- Current -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Current</div>\n <div class=\"cqa-bg-[#FEF2F3] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#F9C2C5] cqa-flex cqa-items-center cqa-justify-center cqa-h-[112px] cqa-cursor-pointer\" (click)=\"onImageClick('current')\">\n <div *ngIf=\"!screenshots?.current\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-gap-2 cqa-text-[#EF4444]\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.9997 14.6673C13.4724 14.6673 14.6663 13.4734 14.6663 12.0007C14.6663 10.5279 13.4724 9.33398 11.9997 9.33398C10.5269 9.33398 9.33301 10.5279 9.33301 12.0007C9.33301 13.4734 10.5269 14.6673 11.9997 14.6673Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 20.0009L23.8853 15.8862C23.3853 15.3863 22.7071 15.1055 22 15.1055C21.2929 15.1055 20.6147 15.3863 20.1147 15.8862L8 28.0009\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n <img *ngIf=\"screenshots?.current\" [src]=\"screenshots.current\" alt=\"Current\" class=\"cqa-w-full cqa-h-full cqa-object-cover cqa-rounded-lg\" />\n </div>\n </div>\n\n <!-- Difference -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Difference</div>\n <div class=\"cqa-bg-[#FEF2F3] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#F9C2C5] cqa-flex cqa-items-center cqa-justify-center cqa-h-[112px] cqa-cursor-pointer\" (click)=\"onImageClick('difference')\">\n <div *ngIf=\"!screenshots?.difference\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-gap-2 cqa-text-[#EF4444]\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.9997 14.6673C13.4724 14.6673 14.6663 13.4734 14.6663 12.0007C14.6663 10.5279 13.4724 9.33398 11.9997 9.33398C10.5269 9.33398 9.33301 10.5279 9.33301 12.0007C9.33301 13.4734 10.5269 14.6673 11.9997 14.6673Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 20.0009L23.8853 15.8862C23.3853 15.3863 22.7071 15.1055 22 15.1055C21.2929 15.1055 20.6147 15.3863 20.1147 15.8862L8 28.0009\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n <img *ngIf=\"screenshots?.difference\" [src]=\"screenshots.difference\" alt=\"Difference\" class=\"cqa-w-full cqa-h-full cqa-object-cover cqa-rounded-lg\" />\n </div>\n </div>\n </div>\n\n <!-- Action Buttons -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-end cqa-gap-2 cqa-flex-wrap\">\n <button \n (click)=\"onMakeCurrentBaseline()\"\n [disabled]=\"!isCurrentImageAvailable\"\n [class.cqa-opacity-50]=\"!isCurrentImageAvailable\"\n [class.cqa-cursor-not-allowed]=\"!isCurrentImageAvailable\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-pl-2 cqa-pr-4 cqa-py-[2px] cqa-rounded-lg cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-bg-transparent cqa-text-[#212122] cqa-border cqa-border-solid cqa-border-[#212122] disabled:cqa-cursor-not-allowed\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.39754 7.93752L2.31254 5.85252L1.60254 6.55752L4.39754 9.35252L10.3975 3.35252L9.69254 2.64752L4.39754 7.93752Z\" fill=\"black\"/></svg>\n Make current baseline\n </button>\n <button \n (click)=\"onUploadBaseline()\"\n [disabled]=\"isUploadingBaseline?.[testStepResultId] === true\"\n [class.cqa-opacity-50]=\"isUploadingBaseline?.[testStepResultId] === true\"\n [class.cqa-cursor-not-allowed]=\"isUploadingBaseline?.[testStepResultId] === true\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-pl-2 cqa-pr-4 cqa-py-[2px] cqa-rounded-lg cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-bg-transparent cqa-text-[#212122] cqa-border cqa-border-solid cqa-border-[#212122] disabled:cqa-cursor-not-allowed\">\n <svg *ngIf=\"!isUploadingBaseline?.[testStepResultId]\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9 7.5V9H3V7.5H2V9C2 9.55 2.45 10 3 10H9C9.55 10 10 9.55 10 9V7.5H9ZM3.5 4.5L4.205 5.205L5.5 3.915V8H6.5V3.915L7.795 5.205L8.5 4.5L6 2L3.5 4.5Z\" fill=\"black\"/></svg>\n <svg *ngIf=\"isUploadingBaseline?.[testStepResultId] === true\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"animation: spin 1s linear infinite;\">\n <circle cx=\"6\" cy=\"6\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-dasharray=\"8 4\" opacity=\"0.3\"/>\n <circle cx=\"6\" cy=\"6\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-dasharray=\"8 4\" stroke-dashoffset=\"2\"/>\n </svg>\n <span>{{ isUploadingBaseline?.[testStepResultId] === true ? 'Uploading...' : 'Upload baseline' }}</span>\n </button>\n <!-- Hidden file input -->\n <input \n #fileInput\n type=\"file\" \n accept=\"image/*\"\n (change)=\"onFileSelected($event)\"\n style=\"display: none;\" \n />\n <button \n (click)=\"onAnalyze()\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-pl-2 cqa-pr-4 cqa-py-[2px] cqa-rounded-lg cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-bg-transparent cqa-text-[#212122] cqa-border cqa-border-solid cqa-border-[#212122]\">\n <svg width=\"11\" height=\"12\" viewBox=\"0 0 11 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.5115 0C5.57931 0.0303178 5.60828 0.104354 5.63604 0.173128C5.64996 0.2132 5.66273 0.253489 5.67513 0.2941C5.67998 0.309662 5.68484 0.325224 5.68984 0.341258C5.7543 0.550673 5.81172 0.762331 5.86946 0.97384C5.88251 1.02159 5.89563 1.06932 5.90874 1.11704C5.97551 1.36005 6.04177 1.6032 6.10767 1.84646C6.11693 1.88062 6.12619 1.91479 6.13545 1.94895C6.16156 2.04527 6.18764 2.14159 6.21357 2.23796C6.26837 2.44159 6.32467 2.64463 6.38463 2.84668C6.38986 2.86435 6.3951 2.88203 6.4005 2.90024C6.55624 3.42 6.77701 3.88583 7.13888 4.28262C7.14784 4.29294 7.1568 4.30325 7.16603 4.31388C7.3205 4.48583 7.51873 4.62361 7.71687 4.73481C7.72696 4.74057 7.73705 4.74632 7.74745 4.75225C8.33051 5.079 9.03162 5.22272 9.66313 5.414C9.93984 5.49787 10.2157 5.58438 10.4905 5.6747C10.5099 5.68105 10.5292 5.68738 10.5485 5.6937C10.6062 5.7126 10.6639 5.73182 10.7215 5.7513C10.7349 5.75572 10.7483 5.76015 10.7621 5.76471C10.8415 5.79208 10.9174 5.82439 10.9825 5.88036C11.0023 5.92558 11.0023 5.92558 10.9969 5.9708C10.9336 6.03648 10.8707 6.06728 10.7871 6.09733C10.7751 6.10176 10.7632 6.1062 10.7508 6.11077C10.6096 6.16244 10.4665 6.20766 10.3232 6.25247C10.2938 6.26174 10.2644 6.27101 10.235 6.28028C10.0537 6.33735 9.87199 6.3932 9.69014 6.44842C9.45061 6.52117 9.21143 6.59512 8.97249 6.66991C8.93334 6.68216 8.89418 6.69437 8.85501 6.70654C8.64931 6.77048 8.44462 6.83671 8.24162 6.90944C8.22478 6.91545 8.20794 6.92147 8.19059 6.92766C7.51069 7.17443 6.99245 7.63478 6.66809 8.30799C6.49321 8.68634 6.39006 9.09548 6.28483 9.49929C6.25637 9.60825 6.22611 9.7166 6.1955 9.82492C6.17149 9.91015 6.14803 9.99551 6.12515 10.0811C6.12243 10.0913 6.1197 10.1014 6.1169 10.1119C6.1037 10.1612 6.09056 10.2106 6.07752 10.2599C6.04413 10.3851 6.00817 10.5092 5.97123 10.6332C5.90567 10.8536 5.84601 11.0757 5.78672 11.298C5.69732 11.6328 5.69732 11.6328 5.64662 11.7937C5.64326 11.8045 5.6399 11.8153 5.63644 11.8264C5.61793 11.8837 5.5989 11.9364 5.56388 11.9849C5.5106 11.9972 5.5106 11.9972 5.46273 12C5.40801 11.9168 5.37177 11.8361 5.34273 11.7401C5.33851 11.7265 5.33428 11.7129 5.32993 11.6989C5.27614 11.5233 5.22807 11.3459 5.17999 11.1686C5.16898 11.1281 5.15791 11.0875 5.14685 11.047C5.0644 10.7448 4.98331 10.4423 4.90234 10.1397C4.56509 8.64299 4.56509 8.64299 3.71433 7.43288C3.7007 7.42128 3.68706 7.40968 3.67302 7.39773C3.1156 6.93203 2.3813 6.75959 1.70885 6.55751C1.54254 6.50749 1.37628 6.45724 1.21004 6.40697C1.1955 6.40258 1.1955 6.40258 1.18067 6.39809C0.940881 6.32556 0.701157 6.25283 0.462274 6.17711C0.452168 6.17393 0.442063 6.17075 0.431651 6.16747C0.0646543 6.05178 0.0646543 6.05178 0.000790211 5.9708C-0.00101599 5.93406 -0.00101599 5.93406 0.0152398 5.89543C0.0819909 5.8272 0.14676 5.79797 0.234862 5.76825C0.247618 5.76378 0.260375 5.75931 0.273518 5.75471C0.312587 5.7411 0.351741 5.72779 0.390929 5.71455C0.402112 5.71073 0.413295 5.7069 0.424817 5.70296C0.503904 5.6759 0.583275 5.64986 0.662762 5.62412C0.682294 5.61777 0.682294 5.61777 0.70222 5.61129C1.04166 5.50116 1.38332 5.39867 1.72487 5.29595C1.97939 5.21939 2.23347 5.14157 2.48674 5.06065C2.49838 5.05694 2.51001 5.05324 2.52201 5.04943C3.10872 4.86262 3.68229 4.59755 4.06112 4.0716C4.06679 4.0638 4.07247 4.05599 4.07831 4.04796C4.50019 3.4642 4.6647 2.7543 4.8485 2.06161C4.90896 1.83379 4.97015 1.60619 5.03155 1.37865C5.04856 1.31564 5.06553 1.25263 5.08244 1.18959C5.15037 0.936385 5.21932 0.683523 5.29222 0.431818C5.29904 0.408248 5.30583 0.384667 5.31259 0.361076C5.41466 0.00531681 5.41466 0.00531681 5.5115 0Z\" fill=\"#161617\"/><path d=\"M8.84391 0.740443C8.91024 0.818762 8.92349 0.910806 8.94415 1.01081C9.01305 1.32499 9.09241 1.61388 9.36787 1.79638C9.53782 1.89443 9.74037 1.93904 9.92867 1.98118C10.0082 1.99933 10.0753 2.02341 10.1435 2.07158C10.1588 2.09701 10.1588 2.09701 10.1579 2.14129C10.1421 2.19513 10.1282 2.2125 10.0866 2.24774C10.041 2.26364 10.041 2.26364 9.98633 2.27601C9.96564 2.28096 9.94496 2.28597 9.9243 2.29102C9.91322 2.2937 9.90215 2.29638 9.89075 2.29914C9.55401 2.38039 9.55401 2.38039 9.26295 2.56428C9.25348 2.57222 9.24402 2.58017 9.23427 2.58836C9.02625 2.7797 8.98226 3.098 8.91963 3.36464C8.91605 3.37928 8.91246 3.39393 8.90876 3.40901C8.90566 3.42198 8.90255 3.43494 8.89935 3.4483C8.88584 3.48788 8.87183 3.51369 8.84391 3.54402C8.76614 3.55432 8.76614 3.55432 8.72831 3.54402C8.66814 3.49537 8.65468 3.43996 8.63896 3.3655C8.63633 3.35397 8.63369 3.34244 8.63098 3.33056C8.62259 3.29374 8.61447 3.25686 8.60639 3.21995C8.54302 2.93259 8.47148 2.65064 8.21879 2.4822C8.02131 2.36732 7.78118 2.31298 7.56045 2.26911C7.49996 2.25597 7.4653 2.23944 7.42785 2.18745C7.41972 2.1347 7.41972 2.1347 7.42785 2.08194C7.48541 2.01979 7.54597 2.00462 7.62382 1.98585C7.64835 1.97952 7.67286 1.97314 7.69737 1.96671C7.71003 1.96342 7.72269 1.96012 7.73574 1.95673C7.80032 1.93939 7.86425 1.91995 7.92817 1.90012C7.93978 1.89661 7.95139 1.89309 7.96336 1.88947C8.09329 1.84895 8.20541 1.79712 8.30927 1.70512C8.31896 1.6968 8.32864 1.68848 8.33862 1.67992C8.50026 1.52817 8.55518 1.3002 8.60504 1.08748C8.60884 1.07133 8.61264 1.05518 8.61655 1.03854C8.62411 1.0061 8.63154 0.973622 8.63882 0.94111C8.64403 0.918489 8.64403 0.918489 8.64935 0.895412C8.65238 0.881899 8.65542 0.868385 8.65855 0.854462C8.67186 0.811441 8.68935 0.77766 8.71386 0.740443C8.76096 0.715878 8.79401 0.726983 8.84391 0.740443Z\" fill=\"#414146\"/><path d=\"M2.19446 8.32962C2.21166 8.32975 2.21166 8.32975 2.22919 8.32988C2.35253 8.3338 2.43597 8.37503 2.5268 8.46151C2.6325 8.58061 2.6813 8.71497 2.67852 8.87549C2.66666 9.00565 2.59307 9.11929 2.50282 9.20727C2.39658 9.29672 2.28941 9.32628 2.15366 9.32215C2.03919 9.30825 1.93151 9.25153 1.85038 9.16618C1.7495 9.02258 1.72 8.89087 1.73479 8.71398C1.76533 8.57472 1.85337 8.46167 1.96598 8.38238C2.04421 8.34101 2.10713 8.32886 2.19446 8.32962Z\" fill=\"#4C4C51\"/></svg>\n Analyze\n </button>\n </div>\n </div>\n\n <!-- Right Panel: Logs -->\n <div class=\"cqa-col-span-3 cqa-border cqa-border-solid cqa-border-[##E5E5E5] cqa-rounded-[10px] cqa-py-2 cqa-px-3 cqa-h-full cqa-max-h-[200px] cqa-overflow-auto\"\n style=\"scrollbar-width: thin;\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0A0A0A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.6666 12L14.6666 8L10.6666 4\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.33337 4L1.33337 8L5.33337 12\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n Logs\n </div>\n \n <div class=\"cqa-flex cqa-flex-col cqa-gap-2 \">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Console</div>\n \n <div *ngFor=\"let log of logs\" class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-break-words\" [ngClass]=\"getLogClass(log.level)\">\n {{ log.message }}\n </div>\n \n <div *ngIf=\"!logs || logs.length === 0\" class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#9CA3AF] cqa-bg-[#f8f8f8] cqa-text-center\">\n No logs available\n </div>\n </div>\n\n <!-- <a \n *ngIf=\"showFullLogsLink && logs?.length\"\n (click)=\"onViewFullLogs()\"\n class=\"cqa-text-[10px] cqa-leading-[15px] cqa-text-[#3F43EE] cqa-font-medium cqa-flex cqa-items-center cqa-justify-end cqa-gap-[2px] cqa-cursor-pointer hover:cqa-underline cqa-mt-4\">\n View full logs Iterations\n <div><svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.03833 6.74335L2.62833 7.33335L5.96166 4.00002L2.62833 0.666687L2.03833 1.25669L4.78166 4.00002L2.03833 6.74335Z\" fill=\"#3F43EE\"/></svg></div>\n </a> -->\n </div>\n\n \n <cqa-visual-difference-modal\n [isOpen]=\"isModalOpen\"\n [baselineUrl]=\"screenshots?.baseline || ''\"\n [currentUrl]=\"screenshots?.current || ''\"\n [differenceUrl]=\"screenshots?.difference || ''\"\n [initialView]=\"initialModalView\"\n (close)=\"onCloseModal()\">\n </cqa-visual-difference-modal>\n</div>\n\n<style>\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n</style>", styles: ["\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n"], components: [{ type: i1.VisualDifferenceModalComponent, selector: "cqa-visual-difference-modal", inputs: ["baselineUrl", "currentUrl", "differenceUrl", "title", "subtitle", "isOpen", "initialView"], outputs: ["close"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
73
+ VisualComparisonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VisualComparisonComponent, selector: "cqa-visual-comparison", inputs: { screenshots: "screenshots", logs: "logs", showFullLogsLink: "showFullLogsLink", isUploadingBaseline: "isUploadingBaseline", isLive: "isLive", testStepResultId: "testStepResultId" }, outputs: { makeCurrentBaseline: "makeCurrentBaseline", uploadBaseline: "uploadBaseline", analyze: "analyze", viewFullLogs: "viewFullLogs" }, host: { classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"cqa-grid cqa-grid-cols-12 cqa-gap-x-4 cqa-w-full cqa-max-h-[200px] cqa-h-full cqa-overflow-hidden\">\n <!-- Left Panel: Screenshots & Visual Comparison -->\n <div class=\"cqa-col-span-9 cqa-border cqa-border-solid cqa-border-[##E5E5E5] cqa-rounded-[10px] cqa-pt-2 cqa-px-3 cqa-pb-1 cqa-h-full cqa-max-h-[200px] cqa-overflow-auto\"\n style=\"scrollbar-width: thin;\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0A0A0A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2Z\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.00033 7.33268C6.73671 7.33268 7.33366 6.73573 7.33366 5.99935C7.33366 5.26297 6.73671 4.66602 6.00033 4.66602C5.26395 4.66602 4.66699 5.26297 4.66699 5.99935C4.66699 6.73573 5.26395 7.33268 6.00033 7.33268Z\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 10.0004L11.9427 7.94312C11.6926 7.69315 11.3536 7.55273 11 7.55273C10.6464 7.55273 10.3074 7.69315 10.0573 7.94312L4 14.0004\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n Screenshots & Visual Comparison\n </div>\n \n <!-- Screenshot Comparison Grid -->\n <div class=\"cqa-grid cqa-grid-cols-3 cqa-gap-3 cqa-mb-2\">\n <!-- Baseline -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Baseline</div>\n <div class=\"cqa-bg-[#F5F5F5] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-flex cqa-items-center cqa-justify-center cqa-h-[112px] cqa-cursor-pointer\" (click)=\"onImageClick('baseline')\">\n <div *ngIf=\"!screenshots?.baseline\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.9997 14.6673C13.4724 14.6673 14.6663 13.4734 14.6663 12.0007C14.6663 10.5279 13.4724 9.33398 11.9997 9.33398C10.5269 9.33398 9.33301 10.5279 9.33301 12.0007C9.33301 13.4734 10.5269 14.6673 11.9997 14.6673Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 20.0009L23.8853 15.8862C23.3853 15.3863 22.7071 15.1055 22 15.1055C21.2929 15.1055 20.6147 15.3863 20.1147 15.8862L8 28.0009\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n <img *ngIf=\"screenshots?.baseline\" [src]=\"screenshots.baseline\" alt=\"Baseline\" class=\"cqa-w-full cqa-h-full cqa-object-cover cqa-rounded-lg\" />\n </div>\n </div>\n\n <!-- Current -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Current</div>\n <div class=\"cqa-bg-[#FEF2F3] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#F9C2C5] cqa-flex cqa-items-center cqa-justify-center cqa-h-[112px] cqa-cursor-pointer\" (click)=\"onImageClick('current')\">\n <div *ngIf=\"!screenshots?.current\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-gap-2 cqa-text-[#EF4444]\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.9997 14.6673C13.4724 14.6673 14.6663 13.4734 14.6663 12.0007C14.6663 10.5279 13.4724 9.33398 11.9997 9.33398C10.5269 9.33398 9.33301 10.5279 9.33301 12.0007C9.33301 13.4734 10.5269 14.6673 11.9997 14.6673Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 20.0009L23.8853 15.8862C23.3853 15.3863 22.7071 15.1055 22 15.1055C21.2929 15.1055 20.6147 15.3863 20.1147 15.8862L8 28.0009\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n <img *ngIf=\"screenshots?.current\" [src]=\"screenshots.current\" alt=\"Current\" class=\"cqa-w-full cqa-h-full cqa-object-cover cqa-rounded-lg\" />\n </div>\n </div>\n\n <!-- Difference -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Difference</div>\n <div class=\"cqa-bg-[#FEF2F3] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#F9C2C5] cqa-flex cqa-items-center cqa-justify-center cqa-h-[112px] cqa-cursor-pointer\" (click)=\"onImageClick('difference')\">\n <div *ngIf=\"!screenshots?.difference\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-gap-2 cqa-text-[#EF4444]\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.9997 14.6673C13.4724 14.6673 14.6663 13.4734 14.6663 12.0007C14.6663 10.5279 13.4724 9.33398 11.9997 9.33398C10.5269 9.33398 9.33301 10.5279 9.33301 12.0007C9.33301 13.4734 10.5269 14.6673 11.9997 14.6673Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 20.0009L23.8853 15.8862C23.3853 15.3863 22.7071 15.1055 22 15.1055C21.2929 15.1055 20.6147 15.3863 20.1147 15.8862L8 28.0009\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n <img *ngIf=\"screenshots?.difference\" [src]=\"screenshots.difference\" alt=\"Difference\" class=\"cqa-w-full cqa-h-full cqa-object-cover cqa-rounded-lg\" />\n </div>\n </div>\n </div>\n\n <!-- Action Buttons -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-end cqa-gap-2 cqa-flex-wrap\">\n <button \n (click)=\"onMakeCurrentBaseline()\"\n [disabled]=\"!isCurrentImageAvailable\"\n [class.cqa-opacity-50]=\"!isCurrentImageAvailable\"\n [class.cqa-cursor-not-allowed]=\"!isCurrentImageAvailable\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-pl-2 cqa-pr-4 cqa-py-[2px] cqa-rounded-lg cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-bg-transparent cqa-text-[#212122] cqa-border cqa-border-solid cqa-border-[#212122] disabled:cqa-cursor-not-allowed\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.39754 7.93752L2.31254 5.85252L1.60254 6.55752L4.39754 9.35252L10.3975 3.35252L9.69254 2.64752L4.39754 7.93752Z\" fill=\"black\"/></svg>\n Make current baseline\n </button>\n <button \n (click)=\"onUploadBaseline()\"\n [disabled]=\"isUploadingBaseline?.[testStepResultId] === true\"\n [class.cqa-opacity-50]=\"isUploadingBaseline?.[testStepResultId] === true\"\n [class.cqa-cursor-not-allowed]=\"isUploadingBaseline?.[testStepResultId] === true\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-pl-2 cqa-pr-4 cqa-py-[2px] cqa-rounded-lg cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-bg-transparent cqa-text-[#212122] cqa-border cqa-border-solid cqa-border-[#212122] disabled:cqa-cursor-not-allowed\">\n <svg *ngIf=\"!isUploadingBaseline?.[testStepResultId]\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9 7.5V9H3V7.5H2V9C2 9.55 2.45 10 3 10H9C9.55 10 10 9.55 10 9V7.5H9ZM3.5 4.5L4.205 5.205L5.5 3.915V8H6.5V3.915L7.795 5.205L8.5 4.5L6 2L3.5 4.5Z\" fill=\"black\"/></svg>\n <svg *ngIf=\"isUploadingBaseline?.[testStepResultId] === true\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"animation: spin 1s linear infinite;\">\n <circle cx=\"6\" cy=\"6\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-dasharray=\"8 4\" opacity=\"0.3\"/>\n <circle cx=\"6\" cy=\"6\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-dasharray=\"8 4\" stroke-dashoffset=\"2\"/>\n </svg>\n <span>{{ isUploadingBaseline?.[testStepResultId] === true ? 'Uploading...' : 'Upload baseline' }}</span>\n </button>\n <!-- Hidden file input -->\n <input \n #fileInput\n type=\"file\" \n accept=\"image/*\"\n (change)=\"onFileSelected($event)\"\n style=\"display: none;\" \n />\n <button \n (click)=\"onAnalyze()\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-pl-2 cqa-pr-4 cqa-py-[2px] cqa-rounded-lg cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-bg-transparent cqa-text-[#212122] cqa-border cqa-border-solid cqa-border-[#212122]\">\n <svg width=\"11\" height=\"12\" viewBox=\"0 0 11 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.5115 0C5.57931 0.0303178 5.60828 0.104354 5.63604 0.173128C5.64996 0.2132 5.66273 0.253489 5.67513 0.2941C5.67998 0.309662 5.68484 0.325224 5.68984 0.341258C5.7543 0.550673 5.81172 0.762331 5.86946 0.97384C5.88251 1.02159 5.89563 1.06932 5.90874 1.11704C5.97551 1.36005 6.04177 1.6032 6.10767 1.84646C6.11693 1.88062 6.12619 1.91479 6.13545 1.94895C6.16156 2.04527 6.18764 2.14159 6.21357 2.23796C6.26837 2.44159 6.32467 2.64463 6.38463 2.84668C6.38986 2.86435 6.3951 2.88203 6.4005 2.90024C6.55624 3.42 6.77701 3.88583 7.13888 4.28262C7.14784 4.29294 7.1568 4.30325 7.16603 4.31388C7.3205 4.48583 7.51873 4.62361 7.71687 4.73481C7.72696 4.74057 7.73705 4.74632 7.74745 4.75225C8.33051 5.079 9.03162 5.22272 9.66313 5.414C9.93984 5.49787 10.2157 5.58438 10.4905 5.6747C10.5099 5.68105 10.5292 5.68738 10.5485 5.6937C10.6062 5.7126 10.6639 5.73182 10.7215 5.7513C10.7349 5.75572 10.7483 5.76015 10.7621 5.76471C10.8415 5.79208 10.9174 5.82439 10.9825 5.88036C11.0023 5.92558 11.0023 5.92558 10.9969 5.9708C10.9336 6.03648 10.8707 6.06728 10.7871 6.09733C10.7751 6.10176 10.7632 6.1062 10.7508 6.11077C10.6096 6.16244 10.4665 6.20766 10.3232 6.25247C10.2938 6.26174 10.2644 6.27101 10.235 6.28028C10.0537 6.33735 9.87199 6.3932 9.69014 6.44842C9.45061 6.52117 9.21143 6.59512 8.97249 6.66991C8.93334 6.68216 8.89418 6.69437 8.85501 6.70654C8.64931 6.77048 8.44462 6.83671 8.24162 6.90944C8.22478 6.91545 8.20794 6.92147 8.19059 6.92766C7.51069 7.17443 6.99245 7.63478 6.66809 8.30799C6.49321 8.68634 6.39006 9.09548 6.28483 9.49929C6.25637 9.60825 6.22611 9.7166 6.1955 9.82492C6.17149 9.91015 6.14803 9.99551 6.12515 10.0811C6.12243 10.0913 6.1197 10.1014 6.1169 10.1119C6.1037 10.1612 6.09056 10.2106 6.07752 10.2599C6.04413 10.3851 6.00817 10.5092 5.97123 10.6332C5.90567 10.8536 5.84601 11.0757 5.78672 11.298C5.69732 11.6328 5.69732 11.6328 5.64662 11.7937C5.64326 11.8045 5.6399 11.8153 5.63644 11.8264C5.61793 11.8837 5.5989 11.9364 5.56388 11.9849C5.5106 11.9972 5.5106 11.9972 5.46273 12C5.40801 11.9168 5.37177 11.8361 5.34273 11.7401C5.33851 11.7265 5.33428 11.7129 5.32993 11.6989C5.27614 11.5233 5.22807 11.3459 5.17999 11.1686C5.16898 11.1281 5.15791 11.0875 5.14685 11.047C5.0644 10.7448 4.98331 10.4423 4.90234 10.1397C4.56509 8.64299 4.56509 8.64299 3.71433 7.43288C3.7007 7.42128 3.68706 7.40968 3.67302 7.39773C3.1156 6.93203 2.3813 6.75959 1.70885 6.55751C1.54254 6.50749 1.37628 6.45724 1.21004 6.40697C1.1955 6.40258 1.1955 6.40258 1.18067 6.39809C0.940881 6.32556 0.701157 6.25283 0.462274 6.17711C0.452168 6.17393 0.442063 6.17075 0.431651 6.16747C0.0646543 6.05178 0.0646543 6.05178 0.000790211 5.9708C-0.00101599 5.93406 -0.00101599 5.93406 0.0152398 5.89543C0.0819909 5.8272 0.14676 5.79797 0.234862 5.76825C0.247618 5.76378 0.260375 5.75931 0.273518 5.75471C0.312587 5.7411 0.351741 5.72779 0.390929 5.71455C0.402112 5.71073 0.413295 5.7069 0.424817 5.70296C0.503904 5.6759 0.583275 5.64986 0.662762 5.62412C0.682294 5.61777 0.682294 5.61777 0.70222 5.61129C1.04166 5.50116 1.38332 5.39867 1.72487 5.29595C1.97939 5.21939 2.23347 5.14157 2.48674 5.06065C2.49838 5.05694 2.51001 5.05324 2.52201 5.04943C3.10872 4.86262 3.68229 4.59755 4.06112 4.0716C4.06679 4.0638 4.07247 4.05599 4.07831 4.04796C4.50019 3.4642 4.6647 2.7543 4.8485 2.06161C4.90896 1.83379 4.97015 1.60619 5.03155 1.37865C5.04856 1.31564 5.06553 1.25263 5.08244 1.18959C5.15037 0.936385 5.21932 0.683523 5.29222 0.431818C5.29904 0.408248 5.30583 0.384667 5.31259 0.361076C5.41466 0.00531681 5.41466 0.00531681 5.5115 0Z\" fill=\"#161617\"/><path d=\"M8.84391 0.740443C8.91024 0.818762 8.92349 0.910806 8.94415 1.01081C9.01305 1.32499 9.09241 1.61388 9.36787 1.79638C9.53782 1.89443 9.74037 1.93904 9.92867 1.98118C10.0082 1.99933 10.0753 2.02341 10.1435 2.07158C10.1588 2.09701 10.1588 2.09701 10.1579 2.14129C10.1421 2.19513 10.1282 2.2125 10.0866 2.24774C10.041 2.26364 10.041 2.26364 9.98633 2.27601C9.96564 2.28096 9.94496 2.28597 9.9243 2.29102C9.91322 2.2937 9.90215 2.29638 9.89075 2.29914C9.55401 2.38039 9.55401 2.38039 9.26295 2.56428C9.25348 2.57222 9.24402 2.58017 9.23427 2.58836C9.02625 2.7797 8.98226 3.098 8.91963 3.36464C8.91605 3.37928 8.91246 3.39393 8.90876 3.40901C8.90566 3.42198 8.90255 3.43494 8.89935 3.4483C8.88584 3.48788 8.87183 3.51369 8.84391 3.54402C8.76614 3.55432 8.76614 3.55432 8.72831 3.54402C8.66814 3.49537 8.65468 3.43996 8.63896 3.3655C8.63633 3.35397 8.63369 3.34244 8.63098 3.33056C8.62259 3.29374 8.61447 3.25686 8.60639 3.21995C8.54302 2.93259 8.47148 2.65064 8.21879 2.4822C8.02131 2.36732 7.78118 2.31298 7.56045 2.26911C7.49996 2.25597 7.4653 2.23944 7.42785 2.18745C7.41972 2.1347 7.41972 2.1347 7.42785 2.08194C7.48541 2.01979 7.54597 2.00462 7.62382 1.98585C7.64835 1.97952 7.67286 1.97314 7.69737 1.96671C7.71003 1.96342 7.72269 1.96012 7.73574 1.95673C7.80032 1.93939 7.86425 1.91995 7.92817 1.90012C7.93978 1.89661 7.95139 1.89309 7.96336 1.88947C8.09329 1.84895 8.20541 1.79712 8.30927 1.70512C8.31896 1.6968 8.32864 1.68848 8.33862 1.67992C8.50026 1.52817 8.55518 1.3002 8.60504 1.08748C8.60884 1.07133 8.61264 1.05518 8.61655 1.03854C8.62411 1.0061 8.63154 0.973622 8.63882 0.94111C8.64403 0.918489 8.64403 0.918489 8.64935 0.895412C8.65238 0.881899 8.65542 0.868385 8.65855 0.854462C8.67186 0.811441 8.68935 0.77766 8.71386 0.740443C8.76096 0.715878 8.79401 0.726983 8.84391 0.740443Z\" fill=\"#414146\"/><path d=\"M2.19446 8.32962C2.21166 8.32975 2.21166 8.32975 2.22919 8.32988C2.35253 8.3338 2.43597 8.37503 2.5268 8.46151C2.6325 8.58061 2.6813 8.71497 2.67852 8.87549C2.66666 9.00565 2.59307 9.11929 2.50282 9.20727C2.39658 9.29672 2.28941 9.32628 2.15366 9.32215C2.03919 9.30825 1.93151 9.25153 1.85038 9.16618C1.7495 9.02258 1.72 8.89087 1.73479 8.71398C1.76533 8.57472 1.85337 8.46167 1.96598 8.38238C2.04421 8.34101 2.10713 8.32886 2.19446 8.32962Z\" fill=\"#4C4C51\"/></svg>\n Analyze\n </button>\n </div>\n </div>\n\n <!-- Right Panel: Logs -->\n <div class=\"cqa-col-span-3 cqa-border cqa-border-solid cqa-border-[##E5E5E5] cqa-rounded-[10px] cqa-py-2 cqa-px-3 cqa-h-full cqa-max-h-[200px] cqa-overflow-auto\"\n style=\"scrollbar-width: thin;\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0A0A0A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.6666 12L14.6666 8L10.6666 4\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.33337 4L1.33337 8L5.33337 12\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n Logs\n </div>\n \n <div class=\"cqa-flex cqa-flex-col cqa-gap-2 \">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Console</div>\n \n <div *ngFor=\"let log of logs\" class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-break-words\" [ngClass]=\"getLogClass(log.level)\">\n {{ log.message }}\n </div>\n \n <div *ngIf=\"!logs || logs.length === 0\" class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#9CA3AF] cqa-bg-[#f8f8f8] cqa-text-center\">\n No logs available\n </div>\n </div>\n\n <!-- <a \n *ngIf=\"showFullLogsLink && logs?.length\"\n (click)=\"onViewFullLogs()\"\n class=\"cqa-text-[10px] cqa-leading-[15px] cqa-text-[#3F43EE] cqa-font-medium cqa-flex cqa-items-center cqa-justify-end cqa-gap-[2px] cqa-cursor-pointer hover:cqa-underline cqa-mt-4\">\n View full logs Iterations\n <div><svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.03833 6.74335L2.62833 7.33335L5.96166 4.00002L2.62833 0.666687L2.03833 1.25669L4.78166 4.00002L2.03833 6.74335Z\" fill=\"#3F43EE\"/></svg></div>\n </a> -->\n </div>\n\n \n <cqa-visual-difference-modal\n [isOpen]=\"isModalOpen\"\n [baselineUrl]=\"screenshots?.baseline || ''\"\n [currentUrl]=\"screenshots?.current || ''\"\n [differenceUrl]=\"screenshots?.difference || ''\"\n [initialView]=\"initialModalView\"\n (close)=\"onCloseModal()\">\n </cqa-visual-difference-modal>\n</div>\n\n<style>\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n</style>", styles: ["\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n"], components: [{ type: i1.VisualDifferenceModalComponent, selector: "cqa-visual-difference-modal", inputs: ["baselineUrl", "currentUrl", "differenceUrl", "title", "subtitle", "isOpen", "initialView"], outputs: ["close"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
73
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VisualComparisonComponent, decorators: [{
74
75
  type: Component,
75
76
  args: [{ selector: 'cqa-visual-comparison', host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-grid cqa-grid-cols-12 cqa-gap-x-4 cqa-w-full cqa-max-h-[200px] cqa-h-full cqa-overflow-hidden\">\n <!-- Left Panel: Screenshots & Visual Comparison -->\n <div class=\"cqa-col-span-9 cqa-border cqa-border-solid cqa-border-[##E5E5E5] cqa-rounded-[10px] cqa-pt-2 cqa-px-3 cqa-pb-1 cqa-h-full cqa-max-h-[200px] cqa-overflow-auto\"\n style=\"scrollbar-width: thin;\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0A0A0A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2Z\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.00033 7.33268C6.73671 7.33268 7.33366 6.73573 7.33366 5.99935C7.33366 5.26297 6.73671 4.66602 6.00033 4.66602C5.26395 4.66602 4.66699 5.26297 4.66699 5.99935C4.66699 6.73573 5.26395 7.33268 6.00033 7.33268Z\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 10.0004L11.9427 7.94312C11.6926 7.69315 11.3536 7.55273 11 7.55273C10.6464 7.55273 10.3074 7.69315 10.0573 7.94312L4 14.0004\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n Screenshots & Visual Comparison\n </div>\n \n <!-- Screenshot Comparison Grid -->\n <div class=\"cqa-grid cqa-grid-cols-3 cqa-gap-3 cqa-mb-2\">\n <!-- Baseline -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Baseline</div>\n <div class=\"cqa-bg-[#F5F5F5] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-flex cqa-items-center cqa-justify-center cqa-h-[112px] cqa-cursor-pointer\" (click)=\"onImageClick('baseline')\">\n <div *ngIf=\"!screenshots?.baseline\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.9997 14.6673C13.4724 14.6673 14.6663 13.4734 14.6663 12.0007C14.6663 10.5279 13.4724 9.33398 11.9997 9.33398C10.5269 9.33398 9.33301 10.5279 9.33301 12.0007C9.33301 13.4734 10.5269 14.6673 11.9997 14.6673Z\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 20.0009L23.8853 15.8862C23.3853 15.3863 22.7071 15.1055 22 15.1055C21.2929 15.1055 20.6147 15.3863 20.1147 15.8862L8 28.0009\" stroke=\"#737373\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n <img *ngIf=\"screenshots?.baseline\" [src]=\"screenshots.baseline\" alt=\"Baseline\" class=\"cqa-w-full cqa-h-full cqa-object-cover cqa-rounded-lg\" />\n </div>\n </div>\n\n <!-- Current -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Current</div>\n <div class=\"cqa-bg-[#FEF2F3] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#F9C2C5] cqa-flex cqa-items-center cqa-justify-center cqa-h-[112px] cqa-cursor-pointer\" (click)=\"onImageClick('current')\">\n <div *ngIf=\"!screenshots?.current\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-gap-2 cqa-text-[#EF4444]\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.9997 14.6673C13.4724 14.6673 14.6663 13.4734 14.6663 12.0007C14.6663 10.5279 13.4724 9.33398 11.9997 9.33398C10.5269 9.33398 9.33301 10.5279 9.33301 12.0007C9.33301 13.4734 10.5269 14.6673 11.9997 14.6673Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 20.0009L23.8853 15.8862C23.3853 15.3863 22.7071 15.1055 22 15.1055C21.2929 15.1055 20.6147 15.3863 20.1147 15.8862L8 28.0009\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n <img *ngIf=\"screenshots?.current\" [src]=\"screenshots.current\" alt=\"Current\" class=\"cqa-w-full cqa-h-full cqa-object-cover cqa-rounded-lg\" />\n </div>\n </div>\n\n <!-- Difference -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Difference</div>\n <div class=\"cqa-bg-[#FEF2F3] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#F9C2C5] cqa-flex cqa-items-center cqa-justify-center cqa-h-[112px] cqa-cursor-pointer\" (click)=\"onImageClick('difference')\">\n <div *ngIf=\"!screenshots?.difference\" class=\"cqa-flex cqa-flex-col cqa-items-center cqa-gap-2 cqa-text-[#EF4444]\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.3333 4H6.66667C5.19391 4 4 5.19391 4 6.66667V25.3333C4 26.8061 5.19391 28 6.66667 28H25.3333C26.8061 28 28 26.8061 28 25.3333V6.66667C28 5.19391 26.8061 4 25.3333 4Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.9997 14.6673C13.4724 14.6673 14.6663 13.4734 14.6663 12.0007C14.6663 10.5279 13.4724 9.33398 11.9997 9.33398C10.5269 9.33398 9.33301 10.5279 9.33301 12.0007C9.33301 13.4734 10.5269 14.6673 11.9997 14.6673Z\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M28 20.0009L23.8853 15.8862C23.3853 15.3863 22.7071 15.1055 22 15.1055C21.2929 15.1055 20.6147 15.3863 20.1147 15.8862L8 28.0009\" stroke=\"#E7000B\" stroke-opacity=\"0.5\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </div>\n <img *ngIf=\"screenshots?.difference\" [src]=\"screenshots.difference\" alt=\"Difference\" class=\"cqa-w-full cqa-h-full cqa-object-cover cqa-rounded-lg\" />\n </div>\n </div>\n </div>\n\n <!-- Action Buttons -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-end cqa-gap-2 cqa-flex-wrap\">\n <button \n (click)=\"onMakeCurrentBaseline()\"\n [disabled]=\"!isCurrentImageAvailable\"\n [class.cqa-opacity-50]=\"!isCurrentImageAvailable\"\n [class.cqa-cursor-not-allowed]=\"!isCurrentImageAvailable\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-pl-2 cqa-pr-4 cqa-py-[2px] cqa-rounded-lg cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-bg-transparent cqa-text-[#212122] cqa-border cqa-border-solid cqa-border-[#212122] disabled:cqa-cursor-not-allowed\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.39754 7.93752L2.31254 5.85252L1.60254 6.55752L4.39754 9.35252L10.3975 3.35252L9.69254 2.64752L4.39754 7.93752Z\" fill=\"black\"/></svg>\n Make current baseline\n </button>\n <button \n (click)=\"onUploadBaseline()\"\n [disabled]=\"isUploadingBaseline?.[testStepResultId] === true\"\n [class.cqa-opacity-50]=\"isUploadingBaseline?.[testStepResultId] === true\"\n [class.cqa-cursor-not-allowed]=\"isUploadingBaseline?.[testStepResultId] === true\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-pl-2 cqa-pr-4 cqa-py-[2px] cqa-rounded-lg cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-bg-transparent cqa-text-[#212122] cqa-border cqa-border-solid cqa-border-[#212122] disabled:cqa-cursor-not-allowed\">\n <svg *ngIf=\"!isUploadingBaseline?.[testStepResultId]\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9 7.5V9H3V7.5H2V9C2 9.55 2.45 10 3 10H9C9.55 10 10 9.55 10 9V7.5H9ZM3.5 4.5L4.205 5.205L5.5 3.915V8H6.5V3.915L7.795 5.205L8.5 4.5L6 2L3.5 4.5Z\" fill=\"black\"/></svg>\n <svg *ngIf=\"isUploadingBaseline?.[testStepResultId] === true\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"animation: spin 1s linear infinite;\">\n <circle cx=\"6\" cy=\"6\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-dasharray=\"8 4\" opacity=\"0.3\"/>\n <circle cx=\"6\" cy=\"6\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-dasharray=\"8 4\" stroke-dashoffset=\"2\"/>\n </svg>\n <span>{{ isUploadingBaseline?.[testStepResultId] === true ? 'Uploading...' : 'Upload baseline' }}</span>\n </button>\n <!-- Hidden file input -->\n <input \n #fileInput\n type=\"file\" \n accept=\"image/*\"\n (change)=\"onFileSelected($event)\"\n style=\"display: none;\" \n />\n <button \n (click)=\"onAnalyze()\"\n class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-pl-2 cqa-pr-4 cqa-py-[2px] cqa-rounded-lg cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-bg-transparent cqa-text-[#212122] cqa-border cqa-border-solid cqa-border-[#212122]\">\n <svg width=\"11\" height=\"12\" viewBox=\"0 0 11 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.5115 0C5.57931 0.0303178 5.60828 0.104354 5.63604 0.173128C5.64996 0.2132 5.66273 0.253489 5.67513 0.2941C5.67998 0.309662 5.68484 0.325224 5.68984 0.341258C5.7543 0.550673 5.81172 0.762331 5.86946 0.97384C5.88251 1.02159 5.89563 1.06932 5.90874 1.11704C5.97551 1.36005 6.04177 1.6032 6.10767 1.84646C6.11693 1.88062 6.12619 1.91479 6.13545 1.94895C6.16156 2.04527 6.18764 2.14159 6.21357 2.23796C6.26837 2.44159 6.32467 2.64463 6.38463 2.84668C6.38986 2.86435 6.3951 2.88203 6.4005 2.90024C6.55624 3.42 6.77701 3.88583 7.13888 4.28262C7.14784 4.29294 7.1568 4.30325 7.16603 4.31388C7.3205 4.48583 7.51873 4.62361 7.71687 4.73481C7.72696 4.74057 7.73705 4.74632 7.74745 4.75225C8.33051 5.079 9.03162 5.22272 9.66313 5.414C9.93984 5.49787 10.2157 5.58438 10.4905 5.6747C10.5099 5.68105 10.5292 5.68738 10.5485 5.6937C10.6062 5.7126 10.6639 5.73182 10.7215 5.7513C10.7349 5.75572 10.7483 5.76015 10.7621 5.76471C10.8415 5.79208 10.9174 5.82439 10.9825 5.88036C11.0023 5.92558 11.0023 5.92558 10.9969 5.9708C10.9336 6.03648 10.8707 6.06728 10.7871 6.09733C10.7751 6.10176 10.7632 6.1062 10.7508 6.11077C10.6096 6.16244 10.4665 6.20766 10.3232 6.25247C10.2938 6.26174 10.2644 6.27101 10.235 6.28028C10.0537 6.33735 9.87199 6.3932 9.69014 6.44842C9.45061 6.52117 9.21143 6.59512 8.97249 6.66991C8.93334 6.68216 8.89418 6.69437 8.85501 6.70654C8.64931 6.77048 8.44462 6.83671 8.24162 6.90944C8.22478 6.91545 8.20794 6.92147 8.19059 6.92766C7.51069 7.17443 6.99245 7.63478 6.66809 8.30799C6.49321 8.68634 6.39006 9.09548 6.28483 9.49929C6.25637 9.60825 6.22611 9.7166 6.1955 9.82492C6.17149 9.91015 6.14803 9.99551 6.12515 10.0811C6.12243 10.0913 6.1197 10.1014 6.1169 10.1119C6.1037 10.1612 6.09056 10.2106 6.07752 10.2599C6.04413 10.3851 6.00817 10.5092 5.97123 10.6332C5.90567 10.8536 5.84601 11.0757 5.78672 11.298C5.69732 11.6328 5.69732 11.6328 5.64662 11.7937C5.64326 11.8045 5.6399 11.8153 5.63644 11.8264C5.61793 11.8837 5.5989 11.9364 5.56388 11.9849C5.5106 11.9972 5.5106 11.9972 5.46273 12C5.40801 11.9168 5.37177 11.8361 5.34273 11.7401C5.33851 11.7265 5.33428 11.7129 5.32993 11.6989C5.27614 11.5233 5.22807 11.3459 5.17999 11.1686C5.16898 11.1281 5.15791 11.0875 5.14685 11.047C5.0644 10.7448 4.98331 10.4423 4.90234 10.1397C4.56509 8.64299 4.56509 8.64299 3.71433 7.43288C3.7007 7.42128 3.68706 7.40968 3.67302 7.39773C3.1156 6.93203 2.3813 6.75959 1.70885 6.55751C1.54254 6.50749 1.37628 6.45724 1.21004 6.40697C1.1955 6.40258 1.1955 6.40258 1.18067 6.39809C0.940881 6.32556 0.701157 6.25283 0.462274 6.17711C0.452168 6.17393 0.442063 6.17075 0.431651 6.16747C0.0646543 6.05178 0.0646543 6.05178 0.000790211 5.9708C-0.00101599 5.93406 -0.00101599 5.93406 0.0152398 5.89543C0.0819909 5.8272 0.14676 5.79797 0.234862 5.76825C0.247618 5.76378 0.260375 5.75931 0.273518 5.75471C0.312587 5.7411 0.351741 5.72779 0.390929 5.71455C0.402112 5.71073 0.413295 5.7069 0.424817 5.70296C0.503904 5.6759 0.583275 5.64986 0.662762 5.62412C0.682294 5.61777 0.682294 5.61777 0.70222 5.61129C1.04166 5.50116 1.38332 5.39867 1.72487 5.29595C1.97939 5.21939 2.23347 5.14157 2.48674 5.06065C2.49838 5.05694 2.51001 5.05324 2.52201 5.04943C3.10872 4.86262 3.68229 4.59755 4.06112 4.0716C4.06679 4.0638 4.07247 4.05599 4.07831 4.04796C4.50019 3.4642 4.6647 2.7543 4.8485 2.06161C4.90896 1.83379 4.97015 1.60619 5.03155 1.37865C5.04856 1.31564 5.06553 1.25263 5.08244 1.18959C5.15037 0.936385 5.21932 0.683523 5.29222 0.431818C5.29904 0.408248 5.30583 0.384667 5.31259 0.361076C5.41466 0.00531681 5.41466 0.00531681 5.5115 0Z\" fill=\"#161617\"/><path d=\"M8.84391 0.740443C8.91024 0.818762 8.92349 0.910806 8.94415 1.01081C9.01305 1.32499 9.09241 1.61388 9.36787 1.79638C9.53782 1.89443 9.74037 1.93904 9.92867 1.98118C10.0082 1.99933 10.0753 2.02341 10.1435 2.07158C10.1588 2.09701 10.1588 2.09701 10.1579 2.14129C10.1421 2.19513 10.1282 2.2125 10.0866 2.24774C10.041 2.26364 10.041 2.26364 9.98633 2.27601C9.96564 2.28096 9.94496 2.28597 9.9243 2.29102C9.91322 2.2937 9.90215 2.29638 9.89075 2.29914C9.55401 2.38039 9.55401 2.38039 9.26295 2.56428C9.25348 2.57222 9.24402 2.58017 9.23427 2.58836C9.02625 2.7797 8.98226 3.098 8.91963 3.36464C8.91605 3.37928 8.91246 3.39393 8.90876 3.40901C8.90566 3.42198 8.90255 3.43494 8.89935 3.4483C8.88584 3.48788 8.87183 3.51369 8.84391 3.54402C8.76614 3.55432 8.76614 3.55432 8.72831 3.54402C8.66814 3.49537 8.65468 3.43996 8.63896 3.3655C8.63633 3.35397 8.63369 3.34244 8.63098 3.33056C8.62259 3.29374 8.61447 3.25686 8.60639 3.21995C8.54302 2.93259 8.47148 2.65064 8.21879 2.4822C8.02131 2.36732 7.78118 2.31298 7.56045 2.26911C7.49996 2.25597 7.4653 2.23944 7.42785 2.18745C7.41972 2.1347 7.41972 2.1347 7.42785 2.08194C7.48541 2.01979 7.54597 2.00462 7.62382 1.98585C7.64835 1.97952 7.67286 1.97314 7.69737 1.96671C7.71003 1.96342 7.72269 1.96012 7.73574 1.95673C7.80032 1.93939 7.86425 1.91995 7.92817 1.90012C7.93978 1.89661 7.95139 1.89309 7.96336 1.88947C8.09329 1.84895 8.20541 1.79712 8.30927 1.70512C8.31896 1.6968 8.32864 1.68848 8.33862 1.67992C8.50026 1.52817 8.55518 1.3002 8.60504 1.08748C8.60884 1.07133 8.61264 1.05518 8.61655 1.03854C8.62411 1.0061 8.63154 0.973622 8.63882 0.94111C8.64403 0.918489 8.64403 0.918489 8.64935 0.895412C8.65238 0.881899 8.65542 0.868385 8.65855 0.854462C8.67186 0.811441 8.68935 0.77766 8.71386 0.740443C8.76096 0.715878 8.79401 0.726983 8.84391 0.740443Z\" fill=\"#414146\"/><path d=\"M2.19446 8.32962C2.21166 8.32975 2.21166 8.32975 2.22919 8.32988C2.35253 8.3338 2.43597 8.37503 2.5268 8.46151C2.6325 8.58061 2.6813 8.71497 2.67852 8.87549C2.66666 9.00565 2.59307 9.11929 2.50282 9.20727C2.39658 9.29672 2.28941 9.32628 2.15366 9.32215C2.03919 9.30825 1.93151 9.25153 1.85038 9.16618C1.7495 9.02258 1.72 8.89087 1.73479 8.71398C1.76533 8.57472 1.85337 8.46167 1.96598 8.38238C2.04421 8.34101 2.10713 8.32886 2.19446 8.32962Z\" fill=\"#4C4C51\"/></svg>\n Analyze\n </button>\n </div>\n </div>\n\n <!-- Right Panel: Logs -->\n <div class=\"cqa-col-span-3 cqa-border cqa-border-solid cqa-border-[##E5E5E5] cqa-rounded-[10px] cqa-py-2 cqa-px-3 cqa-h-full cqa-max-h-[200px] cqa-overflow-auto\"\n style=\"scrollbar-width: thin;\">\n <div class=\"cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#0A0A0A] cqa-flex cqa-items-center cqa-gap-2 cqa-mb-2\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.6666 12L14.6666 8L10.6666 4\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.33337 4L1.33337 8L5.33337 12\" stroke=\"#0A0A0A\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n Logs\n </div>\n \n <div class=\"cqa-flex cqa-flex-col cqa-gap-2 \">\n <div class=\"cqa-text-[11px] cqa-leading-[100%] cqa-text-[#737373]\">Console</div>\n \n <div *ngFor=\"let log of logs\" class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-break-words\" [ngClass]=\"getLogClass(log.level)\">\n {{ log.message }}\n </div>\n \n <div *ngIf=\"!logs || logs.length === 0\" class=\"cqa-px-2 cqa-py-[2px] cqa-rounded cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-text-[#9CA3AF] cqa-bg-[#f8f8f8] cqa-text-center\">\n No logs available\n </div>\n </div>\n\n <!-- <a \n *ngIf=\"showFullLogsLink && logs?.length\"\n (click)=\"onViewFullLogs()\"\n class=\"cqa-text-[10px] cqa-leading-[15px] cqa-text-[#3F43EE] cqa-font-medium cqa-flex cqa-items-center cqa-justify-end cqa-gap-[2px] cqa-cursor-pointer hover:cqa-underline cqa-mt-4\">\n View full logs Iterations\n <div><svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.03833 6.74335L2.62833 7.33335L5.96166 4.00002L2.62833 0.666687L2.03833 1.25669L4.78166 4.00002L2.03833 6.74335Z\" fill=\"#3F43EE\"/></svg></div>\n </a> -->\n </div>\n\n \n <cqa-visual-difference-modal\n [isOpen]=\"isModalOpen\"\n [baselineUrl]=\"screenshots?.baseline || ''\"\n [currentUrl]=\"screenshots?.current || ''\"\n [differenceUrl]=\"screenshots?.difference || ''\"\n [initialView]=\"initialModalView\"\n (close)=\"onCloseModal()\">\n </cqa-visual-difference-modal>\n</div>\n\n<style>\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n</style>", styles: ["\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n"] }]
@@ -81,6 +82,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
81
82
  type: Input
82
83
  }], isUploadingBaseline: [{
83
84
  type: Input
85
+ }], isLive: [{
86
+ type: Input
84
87
  }], testStepResultId: [{
85
88
  type: Input
86
89
  }], makeCurrentBaseline: [{
@@ -95,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
95
98
  type: ViewChild,
96
99
  args: ['fileInput']
97
100
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWNvbXBhcmlzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL3Zpc3VhbC1jb21wYXJpc29uL3Zpc3VhbC1jb21wYXJpc29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi92aXN1YWwtY29tcGFyaXNvbi92aXN1YWwtY29tcGFyaXNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7OztBQW9COUYsTUFBTSxPQUFPLHlCQUF5QjtJQU50QztRQVNXLHFCQUFnQixHQUFhLElBQUksQ0FBQztRQUNsQyx3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFHeEIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDbkUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN6RCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFJbEQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIscUJBQWdCLEdBQWtCLFVBQVUsQ0FBQztLQWdFOUM7SUE5REMsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7SUFDckMsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMseUNBQXlDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO2dCQUM1QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2dCQUN2QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO2FBQ3JDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVk7UUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFDL0MsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJLEVBQUUsSUFBSTtnQkFDVixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2FBQ3hDLENBQUMsQ0FBQztZQUNILG1CQUFtQjtZQUNuQixLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsUUFBUSxLQUFLLEVBQUU7WUFDYixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxxQ0FBcUMsQ0FBQztZQUMvQyxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxxQ0FBcUMsQ0FBQztZQUMvQztnQkFDRSxPQUFPLHFDQUFxQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFxQixDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQzs7c0hBOUVVLHlCQUF5QjswR0FBekIseUJBQXlCLHlnQkNwQnRDLG9pa0JBbUlROzJGRC9HSyx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0UsdUJBQXVCLFFBRzNCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs4QkFHckIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUVpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY3JlZW5zaG90RGF0YSwgTG9nRW50cnkgfSBmcm9tICcuLi9leGVjdXRpb24tc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgSW1hZ2VWaWV3VHlwZSB9IGZyb20gJy4uLy4uL3Zpc3VhbC1kaWZmZXJlbmNlLW1vZGFsL3Zpc3VhbC1kaWZmZXJlbmNlLW1vZGFsLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgbWFrZUN1cnJlbnRCYXNlbGluZUV2ZW50IHtcbiAgdGVzdFN0ZXBSZXN1bHRJZDogc3RyaW5nO1xuICBjdXJyZW50VXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgdXBsb2FkQmFzZWxpbmVFdmVudCB7XG4gIGZpbGU6IEZpbGU7XG4gIHRlc3RTdGVwUmVzdWx0SWQ6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXZpc3VhbC1jb21wYXJpc29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Zpc3VhbC1jb21wYXJpc29uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIFZpc3VhbENvbXBhcmlzb25Db21wb25lbnQge1xuICBASW5wdXQoKSBzY3JlZW5zaG90cz86IFNjcmVlbnNob3REYXRhO1xuICBASW5wdXQoKSBsb2dzPzogTG9nRW50cnlbXTtcbiAgQElucHV0KCkgc2hvd0Z1bGxMb2dzTGluaz86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBpc1VwbG9hZGluZ0Jhc2VsaW5lID0ge307XG4gIEBJbnB1dCgpIHRlc3RTdGVwUmVzdWx0SWQhOiBzdHJpbmc7XG4gIFxuICBAT3V0cHV0KCkgbWFrZUN1cnJlbnRCYXNlbGluZSA9IG5ldyBFdmVudEVtaXR0ZXI8bWFrZUN1cnJlbnRCYXNlbGluZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgdXBsb2FkQmFzZWxpbmUgPSBuZXcgRXZlbnRFbWl0dGVyPHVwbG9hZEJhc2VsaW5lRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBhbmFseXplID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdmlld0Z1bGxMb2dzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgXG4gIGlzTW9kYWxPcGVuID0gZmFsc2U7XG4gIGluaXRpYWxNb2RhbFZpZXc6IEltYWdlVmlld1R5cGUgPSAnYmFzZWxpbmUnO1xuXG4gIGdldCBpc0N1cnJlbnRJbWFnZUF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnNjcmVlbnNob3RzPy5jdXJyZW50O1xuICB9XG5cbiAgb25NYWtlQ3VycmVudEJhc2VsaW5lKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNjcmVlbnNob3RzPy5jdXJyZW50KSB7XG4gICAgICBjb25zb2xlLmxvZygnTWFrZSBjdXJyZW50IGJhc2VsaW5lIGNsaWNrZWQgd2l0aCBVUkw6JywgdGhpcy5zY3JlZW5zaG90cy5jdXJyZW50KTtcbiAgICAgIHRoaXMubWFrZUN1cnJlbnRCYXNlbGluZS5lbWl0KHtcbiAgICAgICAgdGVzdFN0ZXBSZXN1bHRJZDogdGhpcy50ZXN0U3RlcFJlc3VsdElkLFxuICAgICAgICBjdXJyZW50VXJsOiB0aGlzLnNjcmVlbnNob3RzLmN1cnJlbnRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uVXBsb2FkQmFzZWxpbmUoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1VwbG9hZCBiYXNlbGluZSBjbGlja2VkJyk7XG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoaW5wdXQuZmlsZXMgJiYgaW5wdXQuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzWzBdO1xuICAgICAgY29uc29sZS5sb2coJ0ZpbGUgc2VsZWN0ZWQ6JywgZmlsZS5uYW1lKTtcbiAgICAgIHRoaXMudXBsb2FkQmFzZWxpbmUuZW1pdCh7XG4gICAgICAgIGZpbGU6IGZpbGUsXG4gICAgICAgIHRlc3RTdGVwUmVzdWx0SWQ6IHRoaXMudGVzdFN0ZXBSZXN1bHRJZFxuICAgICAgfSk7XG4gICAgICAvLyBSZXNldCBmaWxlIGlucHV0XG4gICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIG9uQW5hbHl6ZSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnQW5hbHl6ZSBjbGlja2VkJyk7XG4gICAgdGhpcy5hbmFseXplLmVtaXQoKTtcbiAgfVxuXG4gIG9uVmlld0Z1bGxMb2dzKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdWaWV3IGZ1bGwgbG9ncyBjbGlja2VkJyk7XG4gICAgdGhpcy52aWV3RnVsbExvZ3MuZW1pdCgpO1xuICB9XG5cbiAgZ2V0TG9nQ2xhc3MobGV2ZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChsZXZlbCkge1xuICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgIHJldHVybiAnY3FhLXRleHQtWyNCQjREMDBdIGNxYS1iZy1bI0ZGRkJFQl0nO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LVsjRTcwMDBCXSBjcWEtYmctWyNGREU1RTddJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnY3FhLXRleHQtWyM5Q0EzQUZdIGNxYS1iZy1bI2Y4ZjhmOF0nO1xuICAgIH1cbiAgfVxuXG4gIG9uSW1hZ2VDbGljayh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxNb2RhbFZpZXcgPSB0eXBlIGFzIEltYWdlVmlld1R5cGU7XG4gICAgdGhpcy5pc01vZGFsT3BlbiA9IHRydWU7XG4gIH1cblxuICBvbkNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5pc01vZGFsT3BlbiA9IGZhbHNlO1xuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTEyIGNxYS1nYXAteC00IGNxYS13LWZ1bGwgY3FhLW1heC1oLVsyMDBweF0gY3FhLWgtZnVsbCBjcWEtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDwhLS0gTGVmdCBQYW5lbDogU2NyZWVuc2hvdHMgJiBWaXN1YWwgQ29tcGFyaXNvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi05IGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjI0U1RTVFNV0gY3FhLXJvdW5kZWQtWzEwcHhdIGNxYS1wdC0yIGNxYS1weC0zIGNxYS1wYi0xIGNxYS1oLWZ1bGwgY3FhLW1heC1oLVsyMDBweF0gY3FhLW92ZXJmbG93LWF1dG9cIlxuICAgIHN0eWxlPVwic2Nyb2xsYmFyLXdpZHRoOiB0aGluO1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzBBMEEwQV0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLW1iLTJcIj5cbiAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTIuNjY2NyAySDMuMzMzMzNDMi41OTY5NSAyIDIgMi41OTY5NSAyIDMuMzMzMzNWMTIuNjY2N0MyIDEzLjQwMyAyLjU5Njk1IDE0IDMuMzMzMzMgMTRIMTIuNjY2N0MxMy40MDMgMTQgMTQgMTMuNDAzIDE0IDEyLjY2NjdWMy4zMzMzM0MxNCAyLjU5Njk1IDEzLjQwMyAyIDEyLjY2NjcgMlpcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYuMDAwMzMgNy4zMzI2OEM2LjczNjcxIDcuMzMyNjggNy4zMzM2NiA2LjczNTczIDcuMzMzNjYgNS45OTkzNUM3LjMzMzY2IDUuMjYyOTcgNi43MzY3MSA0LjY2NjAyIDYuMDAwMzMgNC42NjYwMkM1LjI2Mzk1IDQuNjY2MDIgNC42NjY5OSA1LjI2Mjk3IDQuNjY2OTkgNS45OTkzNUM0LjY2Njk5IDYuNzM1NzMgNS4yNjM5NSA3LjMzMjY4IDYuMDAwMzMgNy4zMzI2OFpcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTE0IDEwLjAwMDRMMTEuOTQyNyA3Ljk0MzEyQzExLjY5MjYgNy42OTMxNSAxMS4zNTM2IDcuNTUyNzMgMTEgNy41NTI3M0MxMC42NDY0IDcuNTUyNzMgMTAuMzA3NCA3LjY5MzE1IDEwLjA1NzMgNy45NDMxMkw0IDE0LjAwMDRcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgIFNjcmVlbnNob3RzICYgVmlzdWFsIENvbXBhcmlzb25cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIFNjcmVlbnNob3QgQ29tcGFyaXNvbiBHcmlkIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTMgY3FhLWdhcC0zIGNxYS1tYi0yXCI+XG4gICAgICA8IS0tIEJhc2VsaW5lIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTAwJV0gY3FhLXRleHQtWyM3MzczNzNdXCI+QmFzZWxpbmU8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1bI0Y1RjVGNV0gY3FhLXJvdW5kZWQtWzEwcHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFNUU1XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtaC1bMTEycHhdIGNxYS1jdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvbkltYWdlQ2xpY2soJ2Jhc2VsaW5lJylcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNjcmVlbnNob3RzPy5iYXNlbGluZVwiPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0yNS4zMzMzIDRINi42NjY2N0M1LjE5MzkxIDQgNCA1LjE5MzkxIDQgNi42NjY2N1YyNS4zMzMzQzQgMjYuODA2MSA1LjE5MzkxIDI4IDYuNjY2NjcgMjhIMjUuMzMzM0MyNi44MDYxIDI4IDI4IDI2LjgwNjEgMjggMjUuMzMzM1Y2LjY2NjY3QzI4IDUuMTkzOTEgMjYuODA2MSA0IDI1LjMzMzMgNFpcIiBzdHJva2U9XCIjNzM3MzczXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMTEuOTk5NyAxNC42NjczQzEzLjQ3MjQgMTQuNjY3MyAxNC42NjYzIDEzLjQ3MzQgMTQuNjY2MyAxMi4wMDA3QzE0LjY2NjMgMTAuNTI3OSAxMy40NzI0IDkuMzMzOTggMTEuOTk5NyA5LjMzMzk4QzEwLjUyNjkgOS4zMzM5OCA5LjMzMzAxIDEwLjUyNzkgOS4zMzMwMSAxMi4wMDA3QzkuMzMzMDEgMTMuNDczNCAxMC41MjY5IDE0LjY2NzMgMTEuOTk5NyAxNC42NjczWlwiIHN0cm9rZT1cIiM3MzczNzNcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yOCAyMC4wMDA5TDIzLjg4NTMgMTUuODg2MkMyMy4zODUzIDE1LjM4NjMgMjIuNzA3MSAxNS4xMDU1IDIyIDE1LjEwNTVDMjEuMjkyOSAxNS4xMDU1IDIwLjYxNDcgMTUuMzg2MyAyMC4xMTQ3IDE1Ljg4NjJMOCAyOC4wMDA5XCIgc3Ryb2tlPVwiIzczNzM3M1wiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aW1nICpuZ0lmPVwic2NyZWVuc2hvdHM/LmJhc2VsaW5lXCIgW3NyY109XCJzY3JlZW5zaG90cy5iYXNlbGluZVwiIGFsdD1cIkJhc2VsaW5lXCIgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1oLWZ1bGwgY3FhLW9iamVjdC1jb3ZlciBjcWEtcm91bmRlZC1sZ1wiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ3VycmVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTFweF0gY3FhLWxlYWRpbmctWzEwMCVdIGNxYS10ZXh0LVsjNzM3MzczXVwiPkN1cnJlbnQ8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1bI0ZFRjJGM10gY3FhLXJvdW5kZWQtWzEwcHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRjlDMkM1XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtaC1bMTEycHhdIGNxYS1jdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvbkltYWdlQ2xpY2soJ2N1cnJlbnQnKVwiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2NyZWVuc2hvdHM/LmN1cnJlbnRcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtdGV4dC1bI0VGNDQ0NF1cIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMjUuMzMzMyA0SDYuNjY2NjdDNS4xOTM5MSA0IDQgNS4xOTM5MSA0IDYuNjY2NjdWMjUuMzMzM0M0IDI2LjgwNjEgNS4xOTM5MSAyOCA2LjY2NjY3IDI4SDI1LjMzMzNDMjYuODA2MSAyOCAyOCAyNi44MDYxIDI4IDI1LjMzMzNWNi42NjY2N0MyOCA1LjE5MzkxIDI2LjgwNjEgNCAyNS4zMzMzIDRaXCIgc3Ryb2tlPVwiI0U3MDAwQlwiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTExLjk5OTcgMTQuNjY3M0MxMy40NzI0IDE0LjY2NzMgMTQuNjY2MyAxMy40NzM0IDE0LjY2NjMgMTIuMDAwN0MxNC42NjYzIDEwLjUyNzkgMTMuNDcyNCA5LjMzMzk4IDExLjk5OTcgOS4zMzM5OEMxMC41MjY5IDkuMzMzOTggOS4zMzMwMSAxMC41Mjc5IDkuMzMzMDEgMTIuMDAwN0M5LjMzMzAxIDEzLjQ3MzQgMTAuNTI2OSAxNC42NjczIDExLjk5OTcgMTQuNjY3M1pcIiBzdHJva2U9XCIjRTcwMDBCXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMjggMjAuMDAwOUwyMy44ODUzIDE1Ljg4NjJDMjMuMzg1MyAxNS4zODYzIDIyLjcwNzEgMTUuMTA1NSAyMiAxNS4xMDU1QzIxLjI5MjkgMTUuMTA1NSAyMC42MTQ3IDE1LjM4NjMgMjAuMTE0NyAxNS44ODYyTDggMjguMDAwOVwiIHN0cm9rZT1cIiNFNzAwMEJcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGltZyAqbmdJZj1cInNjcmVlbnNob3RzPy5jdXJyZW50XCIgW3NyY109XCJzY3JlZW5zaG90cy5jdXJyZW50XCIgYWx0PVwiQ3VycmVudFwiIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtaC1mdWxsIGNxYS1vYmplY3QtY292ZXIgY3FhLXJvdW5kZWQtbGdcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIERpZmZlcmVuY2UgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtdGV4dC1bIzczNzM3M11cIj5EaWZmZXJlbmNlPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYmctWyNGRUYyRjNdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0Y5QzJDNV0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWgtWzExMnB4XSBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25JbWFnZUNsaWNrKCdkaWZmZXJlbmNlJylcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNjcmVlbnNob3RzPy5kaWZmZXJlbmNlXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXRleHQtWyNFRjQ0NDRdXCI+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTI1LjMzMzMgNEg2LjY2NjY3QzUuMTkzOTEgNCA0IDUuMTkzOTEgNCA2LjY2NjY3VjI1LjMzMzNDNCAyNi44MDYxIDUuMTkzOTEgMjggNi42NjY2NyAyOEgyNS4zMzMzQzI2LjgwNjEgMjggMjggMjYuODA2MSAyOCAyNS4zMzMzVjYuNjY2NjdDMjggNS4xOTM5MSAyNi44MDYxIDQgMjUuMzMzMyA0WlwiIHN0cm9rZT1cIiNFNzAwMEJcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMS45OTk3IDE0LjY2NzNDMTMuNDcyNCAxNC42NjczIDE0LjY2NjMgMTMuNDczNCAxNC42NjYzIDEyLjAwMDdDMTQuNjY2MyAxMC41Mjc5IDEzLjQ3MjQgOS4zMzM5OCAxMS45OTk3IDkuMzMzOThDMTAuNTI2OSA5LjMzMzk4IDkuMzMzMDEgMTAuNTI3OSA5LjMzMzAxIDEyLjAwMDdDOS4zMzMwMSAxMy40NzM0IDEwLjUyNjkgMTQuNjY3MyAxMS45OTk3IDE0LjY2NzNaXCIgc3Ryb2tlPVwiI0U3MDAwQlwiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTI4IDIwLjAwMDlMMjMuODg1MyAxNS44ODYyQzIzLjM4NTMgMTUuMzg2MyAyMi43MDcxIDE1LjEwNTUgMjIgMTUuMTA1NUMyMS4yOTI5IDE1LjEwNTUgMjAuNjE0NyAxNS4zODYzIDIwLjExNDcgMTUuODg2Mkw4IDI4LjAwMDlcIiBzdHJva2U9XCIjRTcwMDBCXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpbWcgKm5nSWY9XCJzY3JlZW5zaG90cz8uZGlmZmVyZW5jZVwiIFtzcmNdPVwic2NyZWVuc2hvdHMuZGlmZmVyZW5jZVwiIGFsdD1cIkRpZmZlcmVuY2VcIiBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWgtZnVsbCBjcWEtb2JqZWN0LWNvdmVyIGNxYS1yb3VuZGVkLWxnXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQWN0aW9uIEJ1dHRvbnMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktZW5kIGNxYS1nYXAtMiBjcWEtZmxleC13cmFwXCI+XG4gICAgICA8YnV0dG9uIFxuICAgICAgICAoY2xpY2spPVwib25NYWtlQ3VycmVudEJhc2VsaW5lKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWlzQ3VycmVudEltYWdlQXZhaWxhYmxlXCJcbiAgICAgICAgW2NsYXNzLmNxYS1vcGFjaXR5LTUwXT1cIiFpc0N1cnJlbnRJbWFnZUF2YWlsYWJsZVwiXG4gICAgICAgIFtjbGFzcy5jcWEtY3Vyc29yLW5vdC1hbGxvd2VkXT1cIiFpc0N1cnJlbnRJbWFnZUF2YWlsYWJsZVwiXG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXBsLTIgY3FhLXByLTQgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLWxnIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtdGV4dC1bIzIxMjEyMl0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyMyMTIxMjJdIGRpc2FibGVkOmNxYS1jdXJzb3Itbm90LWFsbG93ZWRcIj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk00LjM5NzU0IDcuOTM3NTJMMi4zMTI1NCA1Ljg1MjUyTDEuNjAyNTQgNi41NTc1Mkw0LjM5NzU0IDkuMzUyNTJMMTAuMzk3NSAzLjM1MjUyTDkuNjkyNTQgMi42NDc1Mkw0LjM5NzU0IDcuOTM3NTJaXCIgZmlsbD1cImJsYWNrXCIvPjwvc3ZnPlxuICAgICAgICBNYWtlIGN1cnJlbnQgYmFzZWxpbmVcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBcbiAgICAgICAgKGNsaWNrKT1cIm9uVXBsb2FkQmFzZWxpbmUoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1VwbG9hZGluZ0Jhc2VsaW5lPy5bdGVzdFN0ZXBSZXN1bHRJZF0gPT09IHRydWVcIlxuICAgICAgICBbY2xhc3MuY3FhLW9wYWNpdHktNTBdPVwiaXNVcGxvYWRpbmdCYXNlbGluZT8uW3Rlc3RTdGVwUmVzdWx0SWRdID09PSB0cnVlXCJcbiAgICAgICAgW2NsYXNzLmNxYS1jdXJzb3Itbm90LWFsbG93ZWRdPVwiaXNVcGxvYWRpbmdCYXNlbGluZT8uW3Rlc3RTdGVwUmVzdWx0SWRdID09PSB0cnVlXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcGwtMiBjcWEtcHItNCBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQtbGcgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWJnLXRyYW5zcGFyZW50IGNxYS10ZXh0LVsjMjEyMTIyXSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bIzIxMjEyMl0gZGlzYWJsZWQ6Y3FhLWN1cnNvci1ub3QtYWxsb3dlZFwiPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzVXBsb2FkaW5nQmFzZWxpbmU/Llt0ZXN0U3RlcFJlc3VsdElkXVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTkgNy41VjlIM1Y3LjVIMlY5QzIgOS41NSAyLjQ1IDEwIDMgMTBIOUM5LjU1IDEwIDEwIDkuNTUgMTAgOVY3LjVIOVpNMy41IDQuNUw0LjIwNSA1LjIwNUw1LjUgMy45MTVWOEg2LjVWMy45MTVMNy43OTUgNS4yMDVMOC41IDQuNUw2IDJMMy41IDQuNVpcIiBmaWxsPVwiYmxhY2tcIi8+PC9zdmc+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJpc1VwbG9hZGluZ0Jhc2VsaW5lPy5bdGVzdFN0ZXBSZXN1bHRJZF0gPT09IHRydWVcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgc3R5bGU9XCJhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI2XCIgY3k9XCI2XCIgcj1cIjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWRhc2hhcnJheT1cIjggNFwiIG9wYWNpdHk9XCIwLjNcIi8+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjZcIiBjeT1cIjZcIiByPVwiNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtZGFzaGFycmF5PVwiOCA0XCIgc3Ryb2tlLWRhc2hvZmZzZXQ9XCIyXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHNwYW4+e3sgaXNVcGxvYWRpbmdCYXNlbGluZT8uW3Rlc3RTdGVwUmVzdWx0SWRdID09PSB0cnVlID8gJ1VwbG9hZGluZy4uLicgOiAnVXBsb2FkIGJhc2VsaW5lJyB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPCEtLSBIaWRkZW4gZmlsZSBpbnB1dCAtLT5cbiAgICAgIDxpbnB1dCBcbiAgICAgICAgI2ZpbGVJbnB1dFxuICAgICAgICB0eXBlPVwiZmlsZVwiIFxuICAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIFxuICAgICAgLz5cbiAgICAgIDxidXR0b24gXG4gICAgICAgIChjbGljayk9XCJvbkFuYWx5emUoKVwiXG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXBsLTIgY3FhLXByLTQgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLWxnIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtdGV4dC1bIzIxMjEyMl0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyMyMTIxMjJdXCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIxMVwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMSAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNS41MTE1IDBDNS41NzkzMSAwLjAzMDMxNzggNS42MDgyOCAwLjEwNDM1NCA1LjYzNjA0IDAuMTczMTI4QzUuNjQ5OTYgMC4yMTMyIDUuNjYyNzMgMC4yNTM0ODkgNS42NzUxMyAwLjI5NDFDNS42Nzk5OCAwLjMwOTY2MiA1LjY4NDg0IDAuMzI1MjI0IDUuNjg5ODQgMC4zNDEyNThDNS43NTQzIDAuNTUwNjczIDUuODExNzIgMC43NjIzMzEgNS44Njk0NiAwLjk3Mzg0QzUuODgyNTEgMS4wMjE1OSA1Ljg5NTYzIDEuMDY5MzIgNS45MDg3NCAxLjExNzA0QzUuOTc1NTEgMS4zNjAwNSA2LjA0MTc3IDEuNjAzMiA2LjEwNzY3IDEuODQ2NDZDNi4xMTY5MyAxLjg4MDYyIDYuMTI2MTkgMS45MTQ3OSA2LjEzNTQ1IDEuOTQ4OTVDNi4xNjE1NiAyLjA0NTI3IDYuMTg3NjQgMi4xNDE1OSA2LjIxMzU3IDIuMjM3OTZDNi4yNjgzNyAyLjQ0MTU5IDYuMzI0NjcgMi42NDQ2MyA2LjM4NDYzIDIuODQ2NjhDNi4zODk4NiAyLjg2NDM1IDYuMzk1MSAyLjg4MjAzIDYuNDAwNSAyLjkwMDI0QzYuNTU2MjQgMy40MiA2Ljc3NzAxIDMuODg1ODMgNy4xMzg4OCA0LjI4MjYyQzcuMTQ3ODQgNC4yOTI5NCA3LjE1NjggNC4zMDMyNSA3LjE2NjAzIDQuMzEzODhDNy4zMjA1IDQuNDg1ODMgNy41MTg3MyA0LjYyMzYxIDcuNzE2ODcgNC43MzQ4MUM3LjcyNjk2IDQuNzQwNTcgNy43MzcwNSA0Ljc0NjMyIDcuNzQ3NDUgNC43NTIyNUM4LjMzMDUxIDUuMDc5IDkuMDMxNjIgNS4yMjI3MiA5LjY2MzEzIDUuNDE0QzkuOTM5ODQgNS40OTc4NyAxMC4yMTU3IDUuNTg0MzggMTAuNDkwNSA1LjY3NDdDMTAuNTA5OSA1LjY4MTA1IDEwLjUyOTIgNS42ODczOCAxMC41NDg1IDUuNjkzN0MxMC42MDYyIDUuNzEyNiAxMC42NjM5IDUuNzMxODIgMTAuNzIxNSA1Ljc1MTNDMTAuNzM0OSA1Ljc1NTcyIDEwLjc0ODMgNS43NjAxNSAxMC43NjIxIDUuNzY0NzFDMTAuODQxNSA1Ljc5MjA4IDEwLjkxNzQgNS44MjQzOSAxMC45ODI1IDUuODgwMzZDMTEuMDAyMyA1LjkyNTU4IDExLjAwMjMgNS45MjU1OCAxMC45OTY5IDUuOTcwOEMxMC45MzM2IDYuMDM2NDggMTAuODcwNyA2LjA2NzI4IDEwLjc4NzEgNi4wOTczM0MxMC43NzUxIDYuMTAxNzYgMTAuNzYzMiA2LjEwNjIgMTAuNzUwOCA2LjExMDc3QzEwLjYwOTYgNi4xNjI0NCAxMC40NjY1IDYuMjA3NjYgMTAuMzIzMiA2LjI1MjQ3QzEwLjI5MzggNi4yNjE3NCAxMC4yNjQ0IDYuMjcxMDEgMTAuMjM1IDYuMjgwMjhDMTAuMDUzNyA2LjMzNzM1IDkuODcxOTkgNi4zOTMyIDkuNjkwMTQgNi40NDg0MkM5LjQ1MDYxIDYuNTIxMTcgOS4yMTE0MyA2LjU5NTEyIDguOTcyNDkgNi42Njk5MUM4LjkzMzM0IDYuNjgyMTYgOC44OTQxOCA2LjY5NDM3IDguODU1MDEgNi43MDY1NEM4LjY0OTMxIDYuNzcwNDggOC40NDQ2MiA2LjgzNjcxIDguMjQxNjIgNi45MDk0NEM4LjIyNDc4IDYuOTE1NDUgOC4yMDc5NCA2LjkyMTQ3IDguMTkwNTkgNi45Mjc2NkM3LjUxMDY5IDcuMTc0NDMgNi45OTI0NSA3LjYzNDc4IDYuNjY4MDkgOC4zMDc5OUM2LjQ5MzIxIDguNjg2MzQgNi4zOTAwNiA5LjA5NTQ4IDYuMjg0ODMgOS40OTkyOUM2LjI1NjM3IDkuNjA4MjUgNi4yMjYxMSA5LjcxNjYgNi4xOTU1IDkuODI0OTJDNi4xNzE0OSA5LjkxMDE1IDYuMTQ4MDMgOS45OTU1MSA2LjEyNTE1IDEwLjA4MTFDNi4xMjI0MyAxMC4wOTEzIDYuMTE5NyAxMC4xMDE0IDYuMTE2OSAxMC4xMTE5QzYuMTAzNyAxMC4xNjEyIDYuMDkwNTYgMTAuMjEwNiA2LjA3NzUyIDEwLjI1OTlDNi4wNDQxMyAxMC4zODUxIDYuMDA4MTcgMTAuNTA5MiA1Ljk3MTIzIDEwLjYzMzJDNS45MDU2NyAxMC44NTM2IDUuODQ2MDEgMTEuMDc1NyA1Ljc4NjcyIDExLjI5OEM1LjY5NzMyIDExLjYzMjggNS42OTczMiAxMS42MzI4IDUuNjQ2NjIgMTEuNzkzN0M1LjY0MzI2IDExLjgwNDUgNS42Mzk5IDExLjgxNTMgNS42MzY0NCAxMS44MjY0QzUuNjE3OTMgMTEuODgzNyA1LjU5ODkgMTEuOTM2NCA1LjU2Mzg4IDExLjk4NDlDNS41MTA2IDExLjk5NzIgNS41MTA2IDExLjk5NzIgNS40NjI3MyAxMkM1LjQwODAxIDExLjkxNjggNS4zNzE3NyAxMS44MzYxIDUuMzQyNzMgMTEuNzQwMUM1LjMzODUxIDExLjcyNjUgNS4zMzQyOCAxMS43MTI5IDUuMzI5OTMgMTEuNjk4OUM1LjI3NjE0IDExLjUyMzMgNS4yMjgwNyAxMS4zNDU5IDUuMTc5OTkgMTEuMTY4NkM1LjE2ODk4IDExLjEyODEgNS4xNTc5MSAxMS4wODc1IDUuMTQ2ODUgMTEuMDQ3QzUuMDY0NCAxMC43NDQ4IDQuOTgzMzEgMTAuNDQyMyA0LjkwMjM0IDEwLjEzOTdDNC41NjUwOSA4LjY0Mjk5IDQuNTY1MDkgOC42NDI5OSAzLjcxNDMzIDcuNDMyODhDMy43MDA3IDcuNDIxMjggMy42ODcwNiA3LjQwOTY4IDMuNjczMDIgNy4zOTc3M0MzLjExNTYgNi45MzIwMyAyLjM4MTMgNi43NTk1OSAxLjcwODg1IDYuNTU3NTFDMS41NDI1NCA2LjUwNzQ5IDEuMzc2MjggNi40NTcyNCAxLjIxMDA0IDYuNDA2OTdDMS4xOTU1IDYuNDAyNTggMS4xOTU1IDYuNDAyNTggMS4xODA2NyA2LjM5ODA5QzAuOTQwODgxIDYuMzI1NTYgMC43MDExNTcgNi4yNTI4MyAwLjQ2MjI3NCA2LjE3NzExQzAuNDUyMTY4IDYuMTczOTMgMC40NDIwNjMgNi4xNzA3NSAwLjQzMTY1MSA2LjE2NzQ3QzAuMDY0NjU0MyA2LjA1MTc4IDAuMDY0NjU0MyA2LjA1MTc4IDAuMDAwNzkwMjExIDUuOTcwOEMtMC4wMDEwMTU5OSA1LjkzNDA2IC0wLjAwMTAxNTk5IDUuOTM0MDYgMC4wMTUyMzk4IDUuODk1NDNDMC4wODE5OTA5IDUuODI3MiAwLjE0Njc2IDUuNzk3OTcgMC4yMzQ4NjIgNS43NjgyNUMwLjI0NzYxOCA1Ljc2Mzc4IDAuMjYwMzc1IDUuNzU5MzEgMC4yNzM1MTggNS43NTQ3MUMwLjMxMjU4NyA1Ljc0MTEgMC4zNTE3NDEgNS43Mjc3OSAwLjM5MDkyOSA1LjcxNDU1QzAuNDAyMTEyIDUuNzEwNzMgMC40MTMyOTUgNS43MDY5IDAuNDI0ODE3IDUuNzAyOTZDMC41MDM5MDQgNS42NzU5IDAuNTgzMjc1IDUuNjQ5ODYgMC42NjI3NjIgNS42MjQxMkMwLjY4MjI5NCA1LjYxNzc3IDAuNjgyMjk0IDUuNjE3NzcgMC43MDIyMiA1LjYxMTI5QzEuMDQxNjYgNS41MDExNiAxLjM4MzMyIDUuMzk4NjcgMS43MjQ4NyA1LjI5NTk1QzEuOTc5MzkgNS4yMTkzOSAyLjIzMzQ3IDUuMTQxNTcgMi40ODY3NCA1LjA2MDY1QzIuNDk4MzggNS4wNTY5NCAyLjUxMDAxIDUuMDUzMjQgMi41MjIwMSA1LjA0OTQzQzMuMTA4NzIgNC44NjI2MiAzLjY4MjI5IDQuNTk3NTUgNC4wNjExMiA0LjA3MTZDNC4wNjY3OSA0LjA2MzggNC4wNzI0NyA0LjA1NTk5IDQuMDc4MzEgNC4wNDc5NkM0LjUwMDE5IDMuNDY0MiA0LjY2NDcgMi43NTQzIDQuODQ4NSAyLjA2MTYxQzQuOTA4OTYgMS44MzM3OSA0Ljk3MDE1IDEuNjA2MTkgNS4wMzE1NSAxLjM3ODY1QzUuMDQ4NTYgMS4zMTU2NCA1LjA2NTUzIDEuMjUyNjMgNS4wODI0NCAxLjE4OTU5QzUuMTUwMzcgMC45MzYzODUgNS4yMTkzMiAwLjY4MzUyMyA1LjI5MjIyIDAuNDMxODE4QzUuMjk5MDQgMC40MDgyNDggNS4zMDU4MyAwLjM4NDY2NyA1LjMxMjU5IDAuMzYxMDc2QzUuNDE0NjYgMC4wMDUzMTY4MSA1LjQxNDY2IDAuMDA1MzE2ODEgNS41MTE1IDBaXCIgZmlsbD1cIiMxNjE2MTdcIi8+PHBhdGggZD1cIk04Ljg0MzkxIDAuNzQwNDQzQzguOTEwMjQgMC44MTg3NjIgOC45MjM0OSAwLjkxMDgwNiA4Ljk0NDE1IDEuMDEwODFDOS4wMTMwNSAxLjMyNDk5IDkuMDkyNDEgMS42MTM4OCA5LjM2Nzg3IDEuNzk2MzhDOS41Mzc4MiAxLjg5NDQzIDkuNzQwMzcgMS45MzkwNCA5LjkyODY3IDEuOTgxMThDMTAuMDA4MiAxLjk5OTMzIDEwLjA3NTMgMi4wMjM0MSAxMC4xNDM1IDIuMDcxNThDMTAuMTU4OCAyLjA5NzAxIDEwLjE1ODggMi4wOTcwMSAxMC4xNTc5IDIuMTQxMjlDMTAuMTQyMSAyLjE5NTEzIDEwLjEyODIgMi4yMTI1IDEwLjA4NjYgMi4yNDc3NEMxMC4wNDEgMi4yNjM2NCAxMC4wNDEgMi4yNjM2NCA5Ljk4NjMzIDIuMjc2MDFDOS45NjU2NCAyLjI4MDk2IDkuOTQ0OTYgMi4yODU5NyA5LjkyNDMgMi4yOTEwMkM5LjkxMzIyIDIuMjkzNyA5LjkwMjE1IDIuMjk2MzggOS44OTA3NSAyLjI5OTE0QzkuNTU0MDEgMi4zODAzOSA5LjU1NDAxIDIuMzgwMzkgOS4yNjI5NSAyLjU2NDI4QzkuMjUzNDggMi41NzIyMiA5LjI0NDAyIDIuNTgwMTcgOS4yMzQyNyAyLjU4ODM2QzkuMDI2MjUgMi43Nzk3IDguOTgyMjYgMy4wOTggOC45MTk2MyAzLjM2NDY0QzguOTE2MDUgMy4zNzkyOCA4LjkxMjQ2IDMuMzkzOTMgOC45MDg3NiAzLjQwOTAxQzguOTA1NjYgMy40MjE5OCA4LjkwMjU1IDMuNDM0OTQgOC44OTkzNSAzLjQ0ODNDOC44ODU4NCAzLjQ4Nzg4IDguODcxODMgMy41MTM2OSA4Ljg0MzkxIDMuNTQ0MDJDOC43NjYxNCAzLjU1NDMyIDguNzY2MTQgMy41NTQzMiA4LjcyODMxIDMuNTQ0MDJDOC42NjgxNCAzLjQ5NTM3IDguNjU0NjggMy40Mzk5NiA4LjYzODk2IDMuMzY1NUM4LjYzNjMzIDMuMzUzOTcgOC42MzM2OSAzLjM0MjQ0IDguNjMwOTggMy4zMzA1NkM4LjYyMjU5IDMuMjkzNzQgOC42MTQ0NyAzLjI1Njg2IDguNjA2MzkgMy4yMTk5NUM4LjU0MzAyIDIuOTMyNTkgOC40NzE0OCAyLjY1MDY0IDguMjE4NzkgMi40ODIyQzguMDIxMzEgMi4zNjczMiA3Ljc4MTE4IDIuMzEyOTggNy41NjA0NSAyLjI2OTExQzcuNDk5OTYgMi4yNTU5NyA3LjQ2NTMgMi4yMzk0NCA3LjQyNzg1IDIuMTg3NDVDNy40MTk3MiAyLjEzNDcgNy40MTk3MiAyLjEzNDcgNy40Mjc4NSAyLjA4MTk0QzcuNDg1NDEgMi4wMTk3OSA3LjU0NTk3IDIuMDA0NjIgNy42MjM4MiAxLjk4NTg1QzcuNjQ4MzUgMS45Nzk1MiA3LjY3Mjg2IDEuOTczMTQgNy42OTczNyAxLjk2NjcxQzcuNzEwMDMgMS45NjM0MiA3LjcyMjY5IDEuOTYwMTIgNy43MzU3NCAxLjk1NjczQzcuODAwMzIgMS45MzkzOSA3Ljg2NDI1IDEuOTE5OTUgNy45MjgxNyAxLjkwMDEyQzcuOTM5NzggMS44OTY2MSA3Ljk1MTM5IDEuODkzMDkgNy45NjMzNiAxLjg4OTQ3QzguMDkzMjkgMS44NDg5NSA4LjIwNTQxIDEuNzk3MTIgOC4zMDkyNyAxLjcwNTEyQzguMzE4OTYgMS42OTY4IDguMzI4NjQgMS42ODg0OCA4LjMzODYyIDEuNjc5OTJDOC41MDAyNiAxLjUyODE3IDguNTU1MTggMS4zMDAyIDguNjA1MDQgMS4wODc0OEM4LjYwODg0IDEuMDcxMzMgOC42MTI2NCAxLjA1NTE4IDguNjE2NTUgMS4wMzg1NEM4LjYyNDExIDEuMDA2MSA4LjYzMTU0IDAuOTczNjIyIDguNjM4ODIgMC45NDExMUM4LjY0NDAzIDAuOTE4NDg5IDguNjQ0MDMgMC45MTg0ODkgOC42NDkzNSAwLjg5NTQxMkM4LjY1MjM4IDAuODgxODk5IDguNjU1NDIgMC44NjgzODUgOC42NTg1NSAwLjg1NDQ2MkM4LjY3MTg2IDAuODExNDQxIDguNjg5MzUgMC43Nzc2NiA4LjcxMzg2IDAuNzQwNDQzQzguNzYwOTYgMC43MTU4NzggOC43OTQwMSAwLjcyNjk4MyA4Ljg0MzkxIDAuNzQwNDQzWlwiIGZpbGw9XCIjNDE0MTQ2XCIvPjxwYXRoIGQ9XCJNMi4xOTQ0NiA4LjMyOTYyQzIuMjExNjYgOC4zMjk3NSAyLjIxMTY2IDguMzI5NzUgMi4yMjkxOSA4LjMyOTg4QzIuMzUyNTMgOC4zMzM4IDIuNDM1OTcgOC4zNzUwMyAyLjUyNjggOC40NjE1MUMyLjYzMjUgOC41ODA2MSAyLjY4MTMgOC43MTQ5NyAyLjY3ODUyIDguODc1NDlDMi42NjY2NiA5LjAwNTY1IDIuNTkzMDcgOS4xMTkyOSAyLjUwMjgyIDkuMjA3MjdDMi4zOTY1OCA5LjI5NjcyIDIuMjg5NDEgOS4zMjYyOCAyLjE1MzY2IDkuMzIyMTVDMi4wMzkxOSA5LjMwODI1IDEuOTMxNTEgOS4yNTE1MyAxLjg1MDM4IDkuMTY2MThDMS43NDk1IDkuMDIyNTggMS43MiA4Ljg5MDg3IDEuNzM0NzkgOC43MTM5OEMxLjc2NTMzIDguNTc0NzIgMS44NTMzNyA4LjQ2MTY3IDEuOTY1OTggOC4zODIzOEMyLjA0NDIxIDguMzQxMDEgMi4xMDcxMyA4LjMyODg2IDIuMTk0NDYgOC4zMjk2MlpcIiBmaWxsPVwiIzRDNEM1MVwiLz48L3N2Zz5cbiAgICAgICAgQW5hbHl6ZVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gUmlnaHQgUGFuZWw6IExvZ3MgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtY29sLXNwYW4tMyBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bIyNFNUU1RTVdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtcHktMiBjcWEtcHgtMyBjcWEtaC1mdWxsIGNxYS1tYXgtaC1bMjAwcHhdIGNxYS1vdmVyZmxvdy1hdXRvXCJcbiAgICBzdHlsZT1cInNjcm9sbGJhci13aWR0aDogdGhpbjtcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwQTBBMEFdIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEwLjY2NjYgMTJMMTQuNjY2NiA4TDEwLjY2NjYgNFwiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNS4zMzMzNyA0TDEuMzMzMzcgOEw1LjMzMzM3IDEyXCIgc3Ryb2tlPVwiIzBBMEEwQVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICBMb2dzXG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtdGV4dC1bIzczNzM3M11cIj5Db25zb2xlPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGxvZyBvZiBsb2dzXCIgY2xhc3M9XCJjcWEtcHgtMiBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWJyZWFrLXdvcmRzXCIgW25nQ2xhc3NdPVwiZ2V0TG9nQ2xhc3MobG9nLmxldmVsKVwiPlxuICAgICAgICB7eyBsb2cubWVzc2FnZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgKm5nSWY9XCIhbG9ncyB8fCBsb2dzLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjOUNBM0FGXSBjcWEtYmctWyNmOGY4ZjhdIGNxYS10ZXh0LWNlbnRlclwiPlxuICAgICAgICBObyBsb2dzIGF2YWlsYWJsZVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIDxhIFxuICAgICAgKm5nSWY9XCJzaG93RnVsbExvZ3NMaW5rICYmIGxvZ3M/Lmxlbmd0aFwiXG4gICAgICAoY2xpY2spPVwib25WaWV3RnVsbExvZ3MoKVwiXG4gICAgICBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyMzRjQzRUVdIGNxYS1mb250LW1lZGl1bSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWVuZCBjcWEtZ2FwLVsycHhdIGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtdW5kZXJsaW5lIGNxYS1tdC00XCI+XG4gICAgICBWaWV3IGZ1bGwgbG9ncyBJdGVyYXRpb25zXG4gICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCI4XCIgaGVpZ2h0PVwiOFwiIHZpZXdCb3g9XCIwIDAgOCA4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0yLjAzODMzIDYuNzQzMzVMMi42MjgzMyA3LjMzMzM1TDUuOTYxNjYgNC4wMDAwMkwyLjYyODMzIDAuNjY2Njg3TDIuMDM4MzMgMS4yNTY2OUw0Ljc4MTY2IDQuMDAwMDJMMi4wMzgzMyA2Ljc0MzM1WlwiIGZpbGw9XCIjM0Y0M0VFXCIvPjwvc3ZnPjwvZGl2PlxuICAgIDwvYT4gLS0+XG4gIDwvZGl2PlxuXG4gIFxuICA8Y3FhLXZpc3VhbC1kaWZmZXJlbmNlLW1vZGFsXG4gICAgW2lzT3Blbl09XCJpc01vZGFsT3BlblwiXG4gICAgW2Jhc2VsaW5lVXJsXT1cInNjcmVlbnNob3RzPy5iYXNlbGluZSB8fCAnJ1wiXG4gICAgW2N1cnJlbnRVcmxdPVwic2NyZWVuc2hvdHM/LmN1cnJlbnQgfHwgJydcIlxuICAgIFtkaWZmZXJlbmNlVXJsXT1cInNjcmVlbnNob3RzPy5kaWZmZXJlbmNlIHx8ICcnXCJcbiAgICBbaW5pdGlhbFZpZXddPVwiaW5pdGlhbE1vZGFsVmlld1wiXG4gICAgKGNsb3NlKT1cIm9uQ2xvc2VNb2RhbCgpXCI+XG4gIDwvY3FhLXZpc3VhbC1kaWZmZXJlbmNlLW1vZGFsPlxuPC9kaXY+XG5cbjxzdHlsZT5cbiAgQGtleWZyYW1lcyBzcGluIHtcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgfVxuPC9zdHlsZT4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWNvbXBhcmlzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL3Zpc3VhbC1jb21wYXJpc29uL3Zpc3VhbC1jb21wYXJpc29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi92aXN1YWwtY29tcGFyaXNvbi92aXN1YWwtY29tcGFyaXNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7OztBQW9COUYsTUFBTSxPQUFPLHlCQUF5QjtJQU50QztRQVNXLHFCQUFnQixHQUFhLElBQUksQ0FBQztRQUNsQyx3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDekIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdkLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQ25FLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDekQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSWxELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHFCQUFnQixHQUFrQixVQUFVLENBQUM7S0FnRTlDO0lBOURDLElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRTtZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDNUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTzthQUNyQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFZO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQy9DLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDdkIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjthQUN4QyxDQUFDLENBQUM7WUFDSCxtQkFBbUI7WUFDbkIsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLFFBQVEsS0FBSyxFQUFFO1lBQ2IsS0FBSyxTQUFTO2dCQUNaLE9BQU8scUNBQXFDLENBQUM7WUFDL0MsS0FBSyxPQUFPO2dCQUNWLE9BQU8scUNBQXFDLENBQUM7WUFDL0M7Z0JBQ0UsT0FBTyxxQ0FBcUMsQ0FBQztTQUNoRDtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBcUIsQ0FBQztRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7O3NIQS9FVSx5QkFBeUI7MEdBQXpCLHlCQUF5QiwyaEJDcEJ0QyxvaWtCQW1JUTsyRkQvR0sseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHVCQUF1QixRQUczQixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7OEJBR3JCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRWlCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjcmVlbnNob3REYXRhLCBMb2dFbnRyeSB9IGZyb20gJy4uL2V4ZWN1dGlvbi1zdGVwLm1vZGVscyc7XG5pbXBvcnQgeyBJbWFnZVZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vdmlzdWFsLWRpZmZlcmVuY2UtbW9kYWwvdmlzdWFsLWRpZmZlcmVuY2UtbW9kYWwuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBtYWtlQ3VycmVudEJhc2VsaW5lRXZlbnQge1xuICB0ZXN0U3RlcFJlc3VsdElkOiBzdHJpbmc7XG4gIGN1cnJlbnRVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSB1cGxvYWRCYXNlbGluZUV2ZW50IHtcbiAgZmlsZTogRmlsZTtcbiAgdGVzdFN0ZXBSZXN1bHRJZDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtdmlzdWFsLWNvbXBhcmlzb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlzdWFsLWNvbXBhcmlzb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH1cbn0pXG5leHBvcnQgY2xhc3MgVmlzdWFsQ29tcGFyaXNvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNjcmVlbnNob3RzPzogU2NyZWVuc2hvdERhdGE7XG4gIEBJbnB1dCgpIGxvZ3M/OiBMb2dFbnRyeVtdO1xuICBASW5wdXQoKSBzaG93RnVsbExvZ3NMaW5rPzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGlzVXBsb2FkaW5nQmFzZWxpbmUgPSB7fTtcbiAgQElucHV0KCkgaXNMaXZlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRlc3RTdGVwUmVzdWx0SWQhOiBzdHJpbmc7XG4gIFxuICBAT3V0cHV0KCkgbWFrZUN1cnJlbnRCYXNlbGluZSA9IG5ldyBFdmVudEVtaXR0ZXI8bWFrZUN1cnJlbnRCYXNlbGluZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgdXBsb2FkQmFzZWxpbmUgPSBuZXcgRXZlbnRFbWl0dGVyPHVwbG9hZEJhc2VsaW5lRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBhbmFseXplID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdmlld0Z1bGxMb2dzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgXG4gIGlzTW9kYWxPcGVuID0gZmFsc2U7XG4gIGluaXRpYWxNb2RhbFZpZXc6IEltYWdlVmlld1R5cGUgPSAnYmFzZWxpbmUnO1xuXG4gIGdldCBpc0N1cnJlbnRJbWFnZUF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnNjcmVlbnNob3RzPy5jdXJyZW50O1xuICB9XG5cbiAgb25NYWtlQ3VycmVudEJhc2VsaW5lKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNjcmVlbnNob3RzPy5jdXJyZW50KSB7XG4gICAgICBjb25zb2xlLmxvZygnTWFrZSBjdXJyZW50IGJhc2VsaW5lIGNsaWNrZWQgd2l0aCBVUkw6JywgdGhpcy5zY3JlZW5zaG90cy5jdXJyZW50KTtcbiAgICAgIHRoaXMubWFrZUN1cnJlbnRCYXNlbGluZS5lbWl0KHtcbiAgICAgICAgdGVzdFN0ZXBSZXN1bHRJZDogdGhpcy50ZXN0U3RlcFJlc3VsdElkLFxuICAgICAgICBjdXJyZW50VXJsOiB0aGlzLnNjcmVlbnNob3RzLmN1cnJlbnRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uVXBsb2FkQmFzZWxpbmUoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1VwbG9hZCBiYXNlbGluZSBjbGlja2VkJyk7XG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoaW5wdXQuZmlsZXMgJiYgaW5wdXQuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzWzBdO1xuICAgICAgY29uc29sZS5sb2coJ0ZpbGUgc2VsZWN0ZWQ6JywgZmlsZS5uYW1lKTtcbiAgICAgIHRoaXMudXBsb2FkQmFzZWxpbmUuZW1pdCh7XG4gICAgICAgIGZpbGU6IGZpbGUsXG4gICAgICAgIHRlc3RTdGVwUmVzdWx0SWQ6IHRoaXMudGVzdFN0ZXBSZXN1bHRJZFxuICAgICAgfSk7XG4gICAgICAvLyBSZXNldCBmaWxlIGlucHV0XG4gICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIG9uQW5hbHl6ZSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnQW5hbHl6ZSBjbGlja2VkJyk7XG4gICAgdGhpcy5hbmFseXplLmVtaXQoKTtcbiAgfVxuXG4gIG9uVmlld0Z1bGxMb2dzKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdWaWV3IGZ1bGwgbG9ncyBjbGlja2VkJyk7XG4gICAgdGhpcy52aWV3RnVsbExvZ3MuZW1pdCgpO1xuICB9XG5cbiAgZ2V0TG9nQ2xhc3MobGV2ZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChsZXZlbCkge1xuICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgIHJldHVybiAnY3FhLXRleHQtWyNCQjREMDBdIGNxYS1iZy1bI0ZGRkJFQl0nO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LVsjRTcwMDBCXSBjcWEtYmctWyNGREU1RTddJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnY3FhLXRleHQtWyM5Q0EzQUZdIGNxYS1iZy1bI2Y4ZjhmOF0nO1xuICAgIH1cbiAgfVxuXG4gIG9uSW1hZ2VDbGljayh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxNb2RhbFZpZXcgPSB0eXBlIGFzIEltYWdlVmlld1R5cGU7XG4gICAgdGhpcy5pc01vZGFsT3BlbiA9IHRydWU7XG4gIH1cblxuICBvbkNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5pc01vZGFsT3BlbiA9IGZhbHNlO1xuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTEyIGNxYS1nYXAteC00IGNxYS13LWZ1bGwgY3FhLW1heC1oLVsyMDBweF0gY3FhLWgtZnVsbCBjcWEtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDwhLS0gTGVmdCBQYW5lbDogU2NyZWVuc2hvdHMgJiBWaXN1YWwgQ29tcGFyaXNvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi05IGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjI0U1RTVFNV0gY3FhLXJvdW5kZWQtWzEwcHhdIGNxYS1wdC0yIGNxYS1weC0zIGNxYS1wYi0xIGNxYS1oLWZ1bGwgY3FhLW1heC1oLVsyMDBweF0gY3FhLW92ZXJmbG93LWF1dG9cIlxuICAgIHN0eWxlPVwic2Nyb2xsYmFyLXdpZHRoOiB0aGluO1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzBBMEEwQV0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLW1iLTJcIj5cbiAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTIuNjY2NyAySDMuMzMzMzNDMi41OTY5NSAyIDIgMi41OTY5NSAyIDMuMzMzMzNWMTIuNjY2N0MyIDEzLjQwMyAyLjU5Njk1IDE0IDMuMzMzMzMgMTRIMTIuNjY2N0MxMy40MDMgMTQgMTQgMTMuNDAzIDE0IDEyLjY2NjdWMy4zMzMzM0MxNCAyLjU5Njk1IDEzLjQwMyAyIDEyLjY2NjcgMlpcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYuMDAwMzMgNy4zMzI2OEM2LjczNjcxIDcuMzMyNjggNy4zMzM2NiA2LjczNTczIDcuMzMzNjYgNS45OTkzNUM3LjMzMzY2IDUuMjYyOTcgNi43MzY3MSA0LjY2NjAyIDYuMDAwMzMgNC42NjYwMkM1LjI2Mzk1IDQuNjY2MDIgNC42NjY5OSA1LjI2Mjk3IDQuNjY2OTkgNS45OTkzNUM0LjY2Njk5IDYuNzM1NzMgNS4yNjM5NSA3LjMzMjY4IDYuMDAwMzMgNy4zMzI2OFpcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTE0IDEwLjAwMDRMMTEuOTQyNyA3Ljk0MzEyQzExLjY5MjYgNy42OTMxNSAxMS4zNTM2IDcuNTUyNzMgMTEgNy41NTI3M0MxMC42NDY0IDcuNTUyNzMgMTAuMzA3NCA3LjY5MzE1IDEwLjA1NzMgNy45NDMxMkw0IDE0LjAwMDRcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgIFNjcmVlbnNob3RzICYgVmlzdWFsIENvbXBhcmlzb25cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIFNjcmVlbnNob3QgQ29tcGFyaXNvbiBHcmlkIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTMgY3FhLWdhcC0zIGNxYS1tYi0yXCI+XG4gICAgICA8IS0tIEJhc2VsaW5lIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTAwJV0gY3FhLXRleHQtWyM3MzczNzNdXCI+QmFzZWxpbmU8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1bI0Y1RjVGNV0gY3FhLXJvdW5kZWQtWzEwcHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFNUU1XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtaC1bMTEycHhdIGNxYS1jdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvbkltYWdlQ2xpY2soJ2Jhc2VsaW5lJylcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNjcmVlbnNob3RzPy5iYXNlbGluZVwiPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0yNS4zMzMzIDRINi42NjY2N0M1LjE5MzkxIDQgNCA1LjE5MzkxIDQgNi42NjY2N1YyNS4zMzMzQzQgMjYuODA2MSA1LjE5MzkxIDI4IDYuNjY2NjcgMjhIMjUuMzMzM0MyNi44MDYxIDI4IDI4IDI2LjgwNjEgMjggMjUuMzMzM1Y2LjY2NjY3QzI4IDUuMTkzOTEgMjYuODA2MSA0IDI1LjMzMzMgNFpcIiBzdHJva2U9XCIjNzM3MzczXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMTEuOTk5NyAxNC42NjczQzEzLjQ3MjQgMTQuNjY3MyAxNC42NjYzIDEzLjQ3MzQgMTQuNjY2MyAxMi4wMDA3QzE0LjY2NjMgMTAuNTI3OSAxMy40NzI0IDkuMzMzOTggMTEuOTk5NyA5LjMzMzk4QzEwLjUyNjkgOS4zMzM5OCA5LjMzMzAxIDEwLjUyNzkgOS4zMzMwMSAxMi4wMDA3QzkuMzMzMDEgMTMuNDczNCAxMC41MjY5IDE0LjY2NzMgMTEuOTk5NyAxNC42NjczWlwiIHN0cm9rZT1cIiM3MzczNzNcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yOCAyMC4wMDA5TDIzLjg4NTMgMTUuODg2MkMyMy4zODUzIDE1LjM4NjMgMjIuNzA3MSAxNS4xMDU1IDIyIDE1LjEwNTVDMjEuMjkyOSAxNS4xMDU1IDIwLjYxNDcgMTUuMzg2MyAyMC4xMTQ3IDE1Ljg4NjJMOCAyOC4wMDA5XCIgc3Ryb2tlPVwiIzczNzM3M1wiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aW1nICpuZ0lmPVwic2NyZWVuc2hvdHM/LmJhc2VsaW5lXCIgW3NyY109XCJzY3JlZW5zaG90cy5iYXNlbGluZVwiIGFsdD1cIkJhc2VsaW5lXCIgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1oLWZ1bGwgY3FhLW9iamVjdC1jb3ZlciBjcWEtcm91bmRlZC1sZ1wiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ3VycmVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTFweF0gY3FhLWxlYWRpbmctWzEwMCVdIGNxYS10ZXh0LVsjNzM3MzczXVwiPkN1cnJlbnQ8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1bI0ZFRjJGM10gY3FhLXJvdW5kZWQtWzEwcHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRjlDMkM1XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtaC1bMTEycHhdIGNxYS1jdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvbkltYWdlQ2xpY2soJ2N1cnJlbnQnKVwiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2NyZWVuc2hvdHM/LmN1cnJlbnRcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtdGV4dC1bI0VGNDQ0NF1cIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMjUuMzMzMyA0SDYuNjY2NjdDNS4xOTM5MSA0IDQgNS4xOTM5MSA0IDYuNjY2NjdWMjUuMzMzM0M0IDI2LjgwNjEgNS4xOTM5MSAyOCA2LjY2NjY3IDI4SDI1LjMzMzNDMjYuODA2MSAyOCAyOCAyNi44MDYxIDI4IDI1LjMzMzNWNi42NjY2N0MyOCA1LjE5MzkxIDI2LjgwNjEgNCAyNS4zMzMzIDRaXCIgc3Ryb2tlPVwiI0U3MDAwQlwiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTExLjk5OTcgMTQuNjY3M0MxMy40NzI0IDE0LjY2NzMgMTQuNjY2MyAxMy40NzM0IDE0LjY2NjMgMTIuMDAwN0MxNC42NjYzIDEwLjUyNzkgMTMuNDcyNCA5LjMzMzk4IDExLjk5OTcgOS4zMzM5OEMxMC41MjY5IDkuMzMzOTggOS4zMzMwMSAxMC41Mjc5IDkuMzMzMDEgMTIuMDAwN0M5LjMzMzAxIDEzLjQ3MzQgMTAuNTI2OSAxNC42NjczIDExLjk5OTcgMTQuNjY3M1pcIiBzdHJva2U9XCIjRTcwMDBCXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMjggMjAuMDAwOUwyMy44ODUzIDE1Ljg4NjJDMjMuMzg1MyAxNS4zODYzIDIyLjcwNzEgMTUuMTA1NSAyMiAxNS4xMDU1QzIxLjI5MjkgMTUuMTA1NSAyMC42MTQ3IDE1LjM4NjMgMjAuMTE0NyAxNS44ODYyTDggMjguMDAwOVwiIHN0cm9rZT1cIiNFNzAwMEJcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGltZyAqbmdJZj1cInNjcmVlbnNob3RzPy5jdXJyZW50XCIgW3NyY109XCJzY3JlZW5zaG90cy5jdXJyZW50XCIgYWx0PVwiQ3VycmVudFwiIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtaC1mdWxsIGNxYS1vYmplY3QtY292ZXIgY3FhLXJvdW5kZWQtbGdcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIERpZmZlcmVuY2UgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtdGV4dC1bIzczNzM3M11cIj5EaWZmZXJlbmNlPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYmctWyNGRUYyRjNdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0Y5QzJDNV0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWgtWzExMnB4XSBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25JbWFnZUNsaWNrKCdkaWZmZXJlbmNlJylcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNjcmVlbnNob3RzPy5kaWZmZXJlbmNlXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXRleHQtWyNFRjQ0NDRdXCI+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTI1LjMzMzMgNEg2LjY2NjY3QzUuMTkzOTEgNCA0IDUuMTkzOTEgNCA2LjY2NjY3VjI1LjMzMzNDNCAyNi44MDYxIDUuMTkzOTEgMjggNi42NjY2NyAyOEgyNS4zMzMzQzI2LjgwNjEgMjggMjggMjYuODA2MSAyOCAyNS4zMzMzVjYuNjY2NjdDMjggNS4xOTM5MSAyNi44MDYxIDQgMjUuMzMzMyA0WlwiIHN0cm9rZT1cIiNFNzAwMEJcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMS45OTk3IDE0LjY2NzNDMTMuNDcyNCAxNC42NjczIDE0LjY2NjMgMTMuNDczNCAxNC42NjYzIDEyLjAwMDdDMTQuNjY2MyAxMC41Mjc5IDEzLjQ3MjQgOS4zMzM5OCAxMS45OTk3IDkuMzMzOThDMTAuNTI2OSA5LjMzMzk4IDkuMzMzMDEgMTAuNTI3OSA5LjMzMzAxIDEyLjAwMDdDOS4zMzMwMSAxMy40NzM0IDEwLjUyNjkgMTQuNjY3MyAxMS45OTk3IDE0LjY2NzNaXCIgc3Ryb2tlPVwiI0U3MDAwQlwiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTI4IDIwLjAwMDlMMjMuODg1MyAxNS44ODYyQzIzLjM4NTMgMTUuMzg2MyAyMi43MDcxIDE1LjEwNTUgMjIgMTUuMTA1NUMyMS4yOTI5IDE1LjEwNTUgMjAuNjE0NyAxNS4zODYzIDIwLjExNDcgMTUuODg2Mkw4IDI4LjAwMDlcIiBzdHJva2U9XCIjRTcwMDBCXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpbWcgKm5nSWY9XCJzY3JlZW5zaG90cz8uZGlmZmVyZW5jZVwiIFtzcmNdPVwic2NyZWVuc2hvdHMuZGlmZmVyZW5jZVwiIGFsdD1cIkRpZmZlcmVuY2VcIiBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWgtZnVsbCBjcWEtb2JqZWN0LWNvdmVyIGNxYS1yb3VuZGVkLWxnXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQWN0aW9uIEJ1dHRvbnMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktZW5kIGNxYS1nYXAtMiBjcWEtZmxleC13cmFwXCI+XG4gICAgICA8YnV0dG9uIFxuICAgICAgICAoY2xpY2spPVwib25NYWtlQ3VycmVudEJhc2VsaW5lKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWlzQ3VycmVudEltYWdlQXZhaWxhYmxlXCJcbiAgICAgICAgW2NsYXNzLmNxYS1vcGFjaXR5LTUwXT1cIiFpc0N1cnJlbnRJbWFnZUF2YWlsYWJsZVwiXG4gICAgICAgIFtjbGFzcy5jcWEtY3Vyc29yLW5vdC1hbGxvd2VkXT1cIiFpc0N1cnJlbnRJbWFnZUF2YWlsYWJsZVwiXG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXBsLTIgY3FhLXByLTQgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLWxnIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtdGV4dC1bIzIxMjEyMl0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyMyMTIxMjJdIGRpc2FibGVkOmNxYS1jdXJzb3Itbm90LWFsbG93ZWRcIj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk00LjM5NzU0IDcuOTM3NTJMMi4zMTI1NCA1Ljg1MjUyTDEuNjAyNTQgNi41NTc1Mkw0LjM5NzU0IDkuMzUyNTJMMTAuMzk3NSAzLjM1MjUyTDkuNjkyNTQgMi42NDc1Mkw0LjM5NzU0IDcuOTM3NTJaXCIgZmlsbD1cImJsYWNrXCIvPjwvc3ZnPlxuICAgICAgICBNYWtlIGN1cnJlbnQgYmFzZWxpbmVcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBcbiAgICAgICAgKGNsaWNrKT1cIm9uVXBsb2FkQmFzZWxpbmUoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1VwbG9hZGluZ0Jhc2VsaW5lPy5bdGVzdFN0ZXBSZXN1bHRJZF0gPT09IHRydWVcIlxuICAgICAgICBbY2xhc3MuY3FhLW9wYWNpdHktNTBdPVwiaXNVcGxvYWRpbmdCYXNlbGluZT8uW3Rlc3RTdGVwUmVzdWx0SWRdID09PSB0cnVlXCJcbiAgICAgICAgW2NsYXNzLmNxYS1jdXJzb3Itbm90LWFsbG93ZWRdPVwiaXNVcGxvYWRpbmdCYXNlbGluZT8uW3Rlc3RTdGVwUmVzdWx0SWRdID09PSB0cnVlXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcGwtMiBjcWEtcHItNCBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQtbGcgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWJnLXRyYW5zcGFyZW50IGNxYS10ZXh0LVsjMjEyMTIyXSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bIzIxMjEyMl0gZGlzYWJsZWQ6Y3FhLWN1cnNvci1ub3QtYWxsb3dlZFwiPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzVXBsb2FkaW5nQmFzZWxpbmU/Llt0ZXN0U3RlcFJlc3VsdElkXVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTkgNy41VjlIM1Y3LjVIMlY5QzIgOS41NSAyLjQ1IDEwIDMgMTBIOUM5LjU1IDEwIDEwIDkuNTUgMTAgOVY3LjVIOVpNMy41IDQuNUw0LjIwNSA1LjIwNUw1LjUgMy45MTVWOEg2LjVWMy45MTVMNy43OTUgNS4yMDVMOC41IDQuNUw2IDJMMy41IDQuNVpcIiBmaWxsPVwiYmxhY2tcIi8+PC9zdmc+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJpc1VwbG9hZGluZ0Jhc2VsaW5lPy5bdGVzdFN0ZXBSZXN1bHRJZF0gPT09IHRydWVcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgc3R5bGU9XCJhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI2XCIgY3k9XCI2XCIgcj1cIjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWRhc2hhcnJheT1cIjggNFwiIG9wYWNpdHk9XCIwLjNcIi8+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjZcIiBjeT1cIjZcIiByPVwiNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtZGFzaGFycmF5PVwiOCA0XCIgc3Ryb2tlLWRhc2hvZmZzZXQ9XCIyXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHNwYW4+e3sgaXNVcGxvYWRpbmdCYXNlbGluZT8uW3Rlc3RTdGVwUmVzdWx0SWRdID09PSB0cnVlID8gJ1VwbG9hZGluZy4uLicgOiAnVXBsb2FkIGJhc2VsaW5lJyB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPCEtLSBIaWRkZW4gZmlsZSBpbnB1dCAtLT5cbiAgICAgIDxpbnB1dCBcbiAgICAgICAgI2ZpbGVJbnB1dFxuICAgICAgICB0eXBlPVwiZmlsZVwiIFxuICAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIFxuICAgICAgLz5cbiAgICAgIDxidXR0b24gXG4gICAgICAgIChjbGljayk9XCJvbkFuYWx5emUoKVwiXG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXBsLTIgY3FhLXByLTQgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLWxnIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtdGV4dC1bIzIxMjEyMl0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyMyMTIxMjJdXCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIxMVwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMSAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNS41MTE1IDBDNS41NzkzMSAwLjAzMDMxNzggNS42MDgyOCAwLjEwNDM1NCA1LjYzNjA0IDAuMTczMTI4QzUuNjQ5OTYgMC4yMTMyIDUuNjYyNzMgMC4yNTM0ODkgNS42NzUxMyAwLjI5NDFDNS42Nzk5OCAwLjMwOTY2MiA1LjY4NDg0IDAuMzI1MjI0IDUuNjg5ODQgMC4zNDEyNThDNS43NTQzIDAuNTUwNjczIDUuODExNzIgMC43NjIzMzEgNS44Njk0NiAwLjk3Mzg0QzUuODgyNTEgMS4wMjE1OSA1Ljg5NTYzIDEuMDY5MzIgNS45MDg3NCAxLjExNzA0QzUuOTc1NTEgMS4zNjAwNSA2LjA0MTc3IDEuNjAzMiA2LjEwNzY3IDEuODQ2NDZDNi4xMTY5MyAxLjg4MDYyIDYuMTI2MTkgMS45MTQ3OSA2LjEzNTQ1IDEuOTQ4OTVDNi4xNjE1NiAyLjA0NTI3IDYuMTg3NjQgMi4xNDE1OSA2LjIxMzU3IDIuMjM3OTZDNi4yNjgzNyAyLjQ0MTU5IDYuMzI0NjcgMi42NDQ2MyA2LjM4NDYzIDIuODQ2NjhDNi4zODk4NiAyLjg2NDM1IDYuMzk1MSAyLjg4MjAzIDYuNDAwNSAyLjkwMDI0QzYuNTU2MjQgMy40MiA2Ljc3NzAxIDMuODg1ODMgNy4xMzg4OCA0LjI4MjYyQzcuMTQ3ODQgNC4yOTI5NCA3LjE1NjggNC4zMDMyNSA3LjE2NjAzIDQuMzEzODhDNy4zMjA1IDQuNDg1ODMgNy41MTg3MyA0LjYyMzYxIDcuNzE2ODcgNC43MzQ4MUM3LjcyNjk2IDQuNzQwNTcgNy43MzcwNSA0Ljc0NjMyIDcuNzQ3NDUgNC43NTIyNUM4LjMzMDUxIDUuMDc5IDkuMDMxNjIgNS4yMjI3MiA5LjY2MzEzIDUuNDE0QzkuOTM5ODQgNS40OTc4NyAxMC4yMTU3IDUuNTg0MzggMTAuNDkwNSA1LjY3NDdDMTAuNTA5OSA1LjY4MTA1IDEwLjUyOTIgNS42ODczOCAxMC41NDg1IDUuNjkzN0MxMC42MDYyIDUuNzEyNiAxMC42NjM5IDUuNzMxODIgMTAuNzIxNSA1Ljc1MTNDMTAuNzM0OSA1Ljc1NTcyIDEwLjc0ODMgNS43NjAxNSAxMC43NjIxIDUuNzY0NzFDMTAuODQxNSA1Ljc5MjA4IDEwLjkxNzQgNS44MjQzOSAxMC45ODI1IDUuODgwMzZDMTEuMDAyMyA1LjkyNTU4IDExLjAwMjMgNS45MjU1OCAxMC45OTY5IDUuOTcwOEMxMC45MzM2IDYuMDM2NDggMTAuODcwNyA2LjA2NzI4IDEwLjc4NzEgNi4wOTczM0MxMC43NzUxIDYuMTAxNzYgMTAuNzYzMiA2LjEwNjIgMTAuNzUwOCA2LjExMDc3QzEwLjYwOTYgNi4xNjI0NCAxMC40NjY1IDYuMjA3NjYgMTAuMzIzMiA2LjI1MjQ3QzEwLjI5MzggNi4yNjE3NCAxMC4yNjQ0IDYuMjcxMDEgMTAuMjM1IDYuMjgwMjhDMTAuMDUzNyA2LjMzNzM1IDkuODcxOTkgNi4zOTMyIDkuNjkwMTQgNi40NDg0MkM5LjQ1MDYxIDYuNTIxMTcgOS4yMTE0MyA2LjU5NTEyIDguOTcyNDkgNi42Njk5MUM4LjkzMzM0IDYuNjgyMTYgOC44OTQxOCA2LjY5NDM3IDguODU1MDEgNi43MDY1NEM4LjY0OTMxIDYuNzcwNDggOC40NDQ2MiA2LjgzNjcxIDguMjQxNjIgNi45MDk0NEM4LjIyNDc4IDYuOTE1NDUgOC4yMDc5NCA2LjkyMTQ3IDguMTkwNTkgNi45Mjc2NkM3LjUxMDY5IDcuMTc0NDMgNi45OTI0NSA3LjYzNDc4IDYuNjY4MDkgOC4zMDc5OUM2LjQ5MzIxIDguNjg2MzQgNi4zOTAwNiA5LjA5NTQ4IDYuMjg0ODMgOS40OTkyOUM2LjI1NjM3IDkuNjA4MjUgNi4yMjYxMSA5LjcxNjYgNi4xOTU1IDkuODI0OTJDNi4xNzE0OSA5LjkxMDE1IDYuMTQ4MDMgOS45OTU1MSA2LjEyNTE1IDEwLjA4MTFDNi4xMjI0MyAxMC4wOTEzIDYuMTE5NyAxMC4xMDE0IDYuMTE2OSAxMC4xMTE5QzYuMTAzNyAxMC4xNjEyIDYuMDkwNTYgMTAuMjEwNiA2LjA3NzUyIDEwLjI1OTlDNi4wNDQxMyAxMC4zODUxIDYuMDA4MTcgMTAuNTA5MiA1Ljk3MTIzIDEwLjYzMzJDNS45MDU2NyAxMC44NTM2IDUuODQ2MDEgMTEuMDc1NyA1Ljc4NjcyIDExLjI5OEM1LjY5NzMyIDExLjYzMjggNS42OTczMiAxMS42MzI4IDUuNjQ2NjIgMTEuNzkzN0M1LjY0MzI2IDExLjgwNDUgNS42Mzk5IDExLjgxNTMgNS42MzY0NCAxMS44MjY0QzUuNjE3OTMgMTEuODgzNyA1LjU5ODkgMTEuOTM2NCA1LjU2Mzg4IDExLjk4NDlDNS41MTA2IDExLjk5NzIgNS41MTA2IDExLjk5NzIgNS40NjI3MyAxMkM1LjQwODAxIDExLjkxNjggNS4zNzE3NyAxMS44MzYxIDUuMzQyNzMgMTEuNzQwMUM1LjMzODUxIDExLjcyNjUgNS4zMzQyOCAxMS43MTI5IDUuMzI5OTMgMTEuNjk4OUM1LjI3NjE0IDExLjUyMzMgNS4yMjgwNyAxMS4zNDU5IDUuMTc5OTkgMTEuMTY4NkM1LjE2ODk4IDExLjEyODEgNS4xNTc5MSAxMS4wODc1IDUuMTQ2ODUgMTEuMDQ3QzUuMDY0NCAxMC43NDQ4IDQuOTgzMzEgMTAuNDQyMyA0LjkwMjM0IDEwLjEzOTdDNC41NjUwOSA4LjY0Mjk5IDQuNTY1MDkgOC42NDI5OSAzLjcxNDMzIDcuNDMyODhDMy43MDA3IDcuNDIxMjggMy42ODcwNiA3LjQwOTY4IDMuNjczMDIgNy4zOTc3M0MzLjExNTYgNi45MzIwMyAyLjM4MTMgNi43NTk1OSAxLjcwODg1IDYuNTU3NTFDMS41NDI1NCA2LjUwNzQ5IDEuMzc2MjggNi40NTcyNCAxLjIxMDA0IDYuNDA2OTdDMS4xOTU1IDYuNDAyNTggMS4xOTU1IDYuNDAyNTggMS4xODA2NyA2LjM5ODA5QzAuOTQwODgxIDYuMzI1NTYgMC43MDExNTcgNi4yNTI4MyAwLjQ2MjI3NCA2LjE3NzExQzAuNDUyMTY4IDYuMTczOTMgMC40NDIwNjMgNi4xNzA3NSAwLjQzMTY1MSA2LjE2NzQ3QzAuMDY0NjU0MyA2LjA1MTc4IDAuMDY0NjU0MyA2LjA1MTc4IDAuMDAwNzkwMjExIDUuOTcwOEMtMC4wMDEwMTU5OSA1LjkzNDA2IC0wLjAwMTAxNTk5IDUuOTM0MDYgMC4wMTUyMzk4IDUuODk1NDNDMC4wODE5OTA5IDUuODI3MiAwLjE0Njc2IDUuNzk3OTcgMC4yMzQ4NjIgNS43NjgyNUMwLjI0NzYxOCA1Ljc2Mzc4IDAuMjYwMzc1IDUuNzU5MzEgMC4yNzM1MTggNS43NTQ3MUMwLjMxMjU4NyA1Ljc0MTEgMC4zNTE3NDEgNS43Mjc3OSAwLjM5MDkyOSA1LjcxNDU1QzAuNDAyMTEyIDUuNzEwNzMgMC40MTMyOTUgNS43MDY5IDAuNDI0ODE3IDUuNzAyOTZDMC41MDM5MDQgNS42NzU5IDAuNTgzMjc1IDUuNjQ5ODYgMC42NjI3NjIgNS42MjQxMkMwLjY4MjI5NCA1LjYxNzc3IDAuNjgyMjk0IDUuNjE3NzcgMC43MDIyMiA1LjYxMTI5QzEuMDQxNjYgNS41MDExNiAxLjM4MzMyIDUuMzk4NjcgMS43MjQ4NyA1LjI5NTk1QzEuOTc5MzkgNS4yMTkzOSAyLjIzMzQ3IDUuMTQxNTcgMi40ODY3NCA1LjA2MDY1QzIuNDk4MzggNS4wNTY5NCAyLjUxMDAxIDUuMDUzMjQgMi41MjIwMSA1LjA0OTQzQzMuMTA4NzIgNC44NjI2MiAzLjY4MjI5IDQuNTk3NTUgNC4wNjExMiA0LjA3MTZDNC4wNjY3OSA0LjA2MzggNC4wNzI0NyA0LjA1NTk5IDQuMDc4MzEgNC4wNDc5NkM0LjUwMDE5IDMuNDY0MiA0LjY2NDcgMi43NTQzIDQuODQ4NSAyLjA2MTYxQzQuOTA4OTYgMS44MzM3OSA0Ljk3MDE1IDEuNjA2MTkgNS4wMzE1NSAxLjM3ODY1QzUuMDQ4NTYgMS4zMTU2NCA1LjA2NTUzIDEuMjUyNjMgNS4wODI0NCAxLjE4OTU5QzUuMTUwMzcgMC45MzYzODUgNS4yMTkzMiAwLjY4MzUyMyA1LjI5MjIyIDAuNDMxODE4QzUuMjk5MDQgMC40MDgyNDggNS4zMDU4MyAwLjM4NDY2NyA1LjMxMjU5IDAuMzYxMDc2QzUuNDE0NjYgMC4wMDUzMTY4MSA1LjQxNDY2IDAuMDA1MzE2ODEgNS41MTE1IDBaXCIgZmlsbD1cIiMxNjE2MTdcIi8+PHBhdGggZD1cIk04Ljg0MzkxIDAuNzQwNDQzQzguOTEwMjQgMC44MTg3NjIgOC45MjM0OSAwLjkxMDgwNiA4Ljk0NDE1IDEuMDEwODFDOS4wMTMwNSAxLjMyNDk5IDkuMDkyNDEgMS42MTM4OCA5LjM2Nzg3IDEuNzk2MzhDOS41Mzc4MiAxLjg5NDQzIDkuNzQwMzcgMS45MzkwNCA5LjkyODY3IDEuOTgxMThDMTAuMDA4MiAxLjk5OTMzIDEwLjA3NTMgMi4wMjM0MSAxMC4xNDM1IDIuMDcxNThDMTAuMTU4OCAyLjA5NzAxIDEwLjE1ODggMi4wOTcwMSAxMC4xNTc5IDIuMTQxMjlDMTAuMTQyMSAyLjE5NTEzIDEwLjEyODIgMi4yMTI1IDEwLjA4NjYgMi4yNDc3NEMxMC4wNDEgMi4yNjM2NCAxMC4wNDEgMi4yNjM2NCA5Ljk4NjMzIDIuMjc2MDFDOS45NjU2NCAyLjI4MDk2IDkuOTQ0OTYgMi4yODU5NyA5LjkyNDMgMi4yOTEwMkM5LjkxMzIyIDIuMjkzNyA5LjkwMjE1IDIuMjk2MzggOS44OTA3NSAyLjI5OTE0QzkuNTU0MDEgMi4zODAzOSA5LjU1NDAxIDIuMzgwMzkgOS4yNjI5NSAyLjU2NDI4QzkuMjUzNDggMi41NzIyMiA5LjI0NDAyIDIuNTgwMTcgOS4yMzQyNyAyLjU4ODM2QzkuMDI2MjUgMi43Nzk3IDguOTgyMjYgMy4wOTggOC45MTk2MyAzLjM2NDY0QzguOTE2MDUgMy4zNzkyOCA4LjkxMjQ2IDMuMzkzOTMgOC45MDg3NiAzLjQwOTAxQzguOTA1NjYgMy40MjE5OCA4LjkwMjU1IDMuNDM0OTQgOC44OTkzNSAzLjQ0ODNDOC44ODU4NCAzLjQ4Nzg4IDguODcxODMgMy41MTM2OSA4Ljg0MzkxIDMuNTQ0MDJDOC43NjYxNCAzLjU1NDMyIDguNzY2MTQgMy41NTQzMiA4LjcyODMxIDMuNTQ0MDJDOC42NjgxNCAzLjQ5NTM3IDguNjU0NjggMy40Mzk5NiA4LjYzODk2IDMuMzY1NUM4LjYzNjMzIDMuMzUzOTcgOC42MzM2OSAzLjM0MjQ0IDguNjMwOTggMy4zMzA1NkM4LjYyMjU5IDMuMjkzNzQgOC42MTQ0NyAzLjI1Njg2IDguNjA2MzkgMy4yMTk5NUM4LjU0MzAyIDIuOTMyNTkgOC40NzE0OCAyLjY1MDY0IDguMjE4NzkgMi40ODIyQzguMDIxMzEgMi4zNjczMiA3Ljc4MTE4IDIuMzEyOTggNy41NjA0NSAyLjI2OTExQzcuNDk5OTYgMi4yNTU5NyA3LjQ2NTMgMi4yMzk0NCA3LjQyNzg1IDIuMTg3NDVDNy40MTk3MiAyLjEzNDcgNy40MTk3MiAyLjEzNDcgNy40Mjc4NSAyLjA4MTk0QzcuNDg1NDEgMi4wMTk3OSA3LjU0NTk3IDIuMDA0NjIgNy42MjM4MiAxLjk4NTg1QzcuNjQ4MzUgMS45Nzk1MiA3LjY3Mjg2IDEuOTczMTQgNy42OTczNyAxLjk2NjcxQzcuNzEwMDMgMS45NjM0MiA3LjcyMjY5IDEuOTYwMTIgNy43MzU3NCAxLjk1NjczQzcuODAwMzIgMS45MzkzOSA3Ljg2NDI1IDEuOTE5OTUgNy45MjgxNyAxLjkwMDEyQzcuOTM5NzggMS44OTY2MSA3Ljk1MTM5IDEuODkzMDkgNy45NjMzNiAxLjg4OTQ3QzguMDkzMjkgMS44NDg5NSA4LjIwNTQxIDEuNzk3MTIgOC4zMDkyNyAxLjcwNTEyQzguMzE4OTYgMS42OTY4IDguMzI4NjQgMS42ODg0OCA4LjMzODYyIDEuNjc5OTJDOC41MDAyNiAxLjUyODE3IDguNTU1MTggMS4zMDAyIDguNjA1MDQgMS4wODc0OEM4LjYwODg0IDEuMDcxMzMgOC42MTI2NCAxLjA1NTE4IDguNjE2NTUgMS4wMzg1NEM4LjYyNDExIDEuMDA2MSA4LjYzMTU0IDAuOTczNjIyIDguNjM4ODIgMC45NDExMUM4LjY0NDAzIDAuOTE4NDg5IDguNjQ0MDMgMC45MTg0ODkgOC42NDkzNSAwLjg5NTQxMkM4LjY1MjM4IDAuODgxODk5IDguNjU1NDIgMC44NjgzODUgOC42NTg1NSAwLjg1NDQ2MkM4LjY3MTg2IDAuODExNDQxIDguNjg5MzUgMC43Nzc2NiA4LjcxMzg2IDAuNzQwNDQzQzguNzYwOTYgMC43MTU4NzggOC43OTQwMSAwLjcyNjk4MyA4Ljg0MzkxIDAuNzQwNDQzWlwiIGZpbGw9XCIjNDE0MTQ2XCIvPjxwYXRoIGQ9XCJNMi4xOTQ0NiA4LjMyOTYyQzIuMjExNjYgOC4zMjk3NSAyLjIxMTY2IDguMzI5NzUgMi4yMjkxOSA4LjMyOTg4QzIuMzUyNTMgOC4zMzM4IDIuNDM1OTcgOC4zNzUwMyAyLjUyNjggOC40NjE1MUMyLjYzMjUgOC41ODA2MSAyLjY4MTMgOC43MTQ5NyAyLjY3ODUyIDguODc1NDlDMi42NjY2NiA5LjAwNTY1IDIuNTkzMDcgOS4xMTkyOSAyLjUwMjgyIDkuMjA3MjdDMi4zOTY1OCA5LjI5NjcyIDIuMjg5NDEgOS4zMjYyOCAyLjE1MzY2IDkuMzIyMTVDMi4wMzkxOSA5LjMwODI1IDEuOTMxNTEgOS4yNTE1MyAxLjg1MDM4IDkuMTY2MThDMS43NDk1IDkuMDIyNTggMS43MiA4Ljg5MDg3IDEuNzM0NzkgOC43MTM5OEMxLjc2NTMzIDguNTc0NzIgMS44NTMzNyA4LjQ2MTY3IDEuOTY1OTggOC4zODIzOEMyLjA0NDIxIDguMzQxMDEgMi4xMDcxMyA4LjMyODg2IDIuMTk0NDYgOC4zMjk2MlpcIiBmaWxsPVwiIzRDNEM1MVwiLz48L3N2Zz5cbiAgICAgICAgQW5hbHl6ZVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gUmlnaHQgUGFuZWw6IExvZ3MgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtY29sLXNwYW4tMyBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bIyNFNUU1RTVdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtcHktMiBjcWEtcHgtMyBjcWEtaC1mdWxsIGNxYS1tYXgtaC1bMjAwcHhdIGNxYS1vdmVyZmxvdy1hdXRvXCJcbiAgICBzdHlsZT1cInNjcm9sbGJhci13aWR0aDogdGhpbjtcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwQTBBMEFdIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEwLjY2NjYgMTJMMTQuNjY2NiA4TDEwLjY2NjYgNFwiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNS4zMzMzNyA0TDEuMzMzMzcgOEw1LjMzMzM3IDEyXCIgc3Ryb2tlPVwiIzBBMEEwQVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICBMb2dzXG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtdGV4dC1bIzczNzM3M11cIj5Db25zb2xlPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGxvZyBvZiBsb2dzXCIgY2xhc3M9XCJjcWEtcHgtMiBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWJyZWFrLXdvcmRzXCIgW25nQ2xhc3NdPVwiZ2V0TG9nQ2xhc3MobG9nLmxldmVsKVwiPlxuICAgICAgICB7eyBsb2cubWVzc2FnZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgKm5nSWY9XCIhbG9ncyB8fCBsb2dzLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjOUNBM0FGXSBjcWEtYmctWyNmOGY4ZjhdIGNxYS10ZXh0LWNlbnRlclwiPlxuICAgICAgICBObyBsb2dzIGF2YWlsYWJsZVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIDxhIFxuICAgICAgKm5nSWY9XCJzaG93RnVsbExvZ3NMaW5rICYmIGxvZ3M/Lmxlbmd0aFwiXG4gICAgICAoY2xpY2spPVwib25WaWV3RnVsbExvZ3MoKVwiXG4gICAgICBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyMzRjQzRUVdIGNxYS1mb250LW1lZGl1bSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWVuZCBjcWEtZ2FwLVsycHhdIGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtdW5kZXJsaW5lIGNxYS1tdC00XCI+XG4gICAgICBWaWV3IGZ1bGwgbG9ncyBJdGVyYXRpb25zXG4gICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCI4XCIgaGVpZ2h0PVwiOFwiIHZpZXdCb3g9XCIwIDAgOCA4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0yLjAzODMzIDYuNzQzMzVMMi42MjgzMyA3LjMzMzM1TDUuOTYxNjYgNC4wMDAwMkwyLjYyODMzIDAuNjY2Njg3TDIuMDM4MzMgMS4yNTY2OUw0Ljc4MTY2IDQuMDAwMDJMMi4wMzgzMyA2Ljc0MzM1WlwiIGZpbGw9XCIjM0Y0M0VFXCIvPjwvc3ZnPjwvZGl2PlxuICAgIDwvYT4gLS0+XG4gIDwvZGl2PlxuXG4gIFxuICA8Y3FhLXZpc3VhbC1kaWZmZXJlbmNlLW1vZGFsXG4gICAgW2lzT3Blbl09XCJpc01vZGFsT3BlblwiXG4gICAgW2Jhc2VsaW5lVXJsXT1cInNjcmVlbnNob3RzPy5iYXNlbGluZSB8fCAnJ1wiXG4gICAgW2N1cnJlbnRVcmxdPVwic2NyZWVuc2hvdHM/LmN1cnJlbnQgfHwgJydcIlxuICAgIFtkaWZmZXJlbmNlVXJsXT1cInNjcmVlbnNob3RzPy5kaWZmZXJlbmNlIHx8ICcnXCJcbiAgICBbaW5pdGlhbFZpZXddPVwiaW5pdGlhbE1vZGFsVmlld1wiXG4gICAgKGNsb3NlKT1cIm9uQ2xvc2VNb2RhbCgpXCI+XG4gIDwvY3FhLXZpc3VhbC1kaWZmZXJlbmNlLW1vZGFsPlxuPC9kaXY+XG5cbjxzdHlsZT5cbiAgQGtleWZyYW1lcyBzcGluIHtcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgfVxuPC9zdHlsZT4iXX0=