tango-app-ui-analyse-trax 3.6.0 → 3.6.2-bulktask-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/esm2022/lib/components/action-centre/action-centre.component.mjs +3 -3
  2. package/esm2022/lib/components/activity-log-v2/activity-log-v2.component.mjs +3 -2
  3. package/esm2022/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.mjs +3 -3
  4. package/esm2022/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.mjs +3 -3
  5. package/esm2022/lib/components/add-checklist/add-checklist.component.mjs +5 -3
  6. package/esm2022/lib/components/add-multitask/add-multitask.component.mjs +538 -0
  7. package/esm2022/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.mjs +269 -0
  8. package/esm2022/lib/components/add-multitask/create-task.data.mjs +306 -0
  9. package/esm2022/lib/components/add-multitask/create-task.interface.mjs +2 -0
  10. package/esm2022/lib/components/add-multitask/unique-string-validator.mjs +10 -0
  11. package/esm2022/lib/components/add-multitask/whitespace-validator.mjs +10 -0
  12. package/esm2022/lib/components/add-task/add-task.component.mjs +3 -1
  13. package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +4 -4
  14. package/esm2022/lib/components/dashboard/dashboard.component.mjs +3 -3
  15. package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +1 -1
  16. package/esm2022/lib/components/disabled-select/disabled-select.component.mjs +158 -0
  17. package/esm2022/lib/components/export-gallery/export-gallery.component.mjs +7 -2
  18. package/esm2022/lib/components/eye-test-audit/eye-test/eye-test.component.mjs +11 -17
  19. package/esm2022/lib/components/eye-test-audit/group-select/group-select.component.mjs +3 -3
  20. package/esm2022/lib/components/eye-test-audit/reactive-select/reactive-select.component.mjs +3 -3
  21. package/esm2022/lib/components/flags/flags.component.mjs +1 -1
  22. package/esm2022/lib/components/flags-info/flags-info.component.mjs +1 -1
  23. package/esm2022/lib/components/gallery/gallery.component.mjs +324 -50
  24. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +6 -3
  25. package/esm2022/lib/components/task-configure/task-configure.component.mjs +6 -6
  26. package/esm2022/lib/components/task-info/task-info.component.mjs +1 -1
  27. package/esm2022/lib/services/trax.service.mjs +20 -2
  28. package/esm2022/lib/tango-analyse-trax.module.mjs +12 -5
  29. package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-mp5zGDN4.mjs → tango-app-ui-analyse-trax-eye-test-audit.module-B6bePYMW.mjs} +20 -26
  30. package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-B6bePYMW.mjs.map +1 -0
  31. package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DKvlR9IQ.mjs → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-IHj5-6FY.mjs} +1820 -253
  32. package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-IHj5-6FY.mjs.map +1 -0
  33. package/fesm2022/tango-app-ui-analyse-trax.mjs +1 -1
  34. package/lib/components/activity-log-v2/activity-log-v2.component.d.ts +1 -0
  35. package/lib/components/add-multitask/add-multitask.component.d.ts +95 -0
  36. package/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.d.ts +42 -0
  37. package/lib/components/add-multitask/create-task.data.d.ts +244 -0
  38. package/lib/components/add-multitask/create-task.interface.d.ts +147 -0
  39. package/lib/components/add-multitask/unique-string-validator.d.ts +2 -0
  40. package/lib/components/add-multitask/whitespace-validator.d.ts +2 -0
  41. package/lib/components/disabled-select/disabled-select.component.d.ts +34 -0
  42. package/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.d.ts +2 -2
  43. package/lib/components/flags/flags.component.d.ts +2 -2
  44. package/lib/components/flags-info/flags-info.component.d.ts +3 -3
  45. package/lib/components/flags-new/flags-new.component.d.ts +2 -2
  46. package/lib/components/gallery/gallery.component.d.ts +40 -2
  47. package/lib/components/manage-task/manage-task.component.d.ts +1 -1
  48. package/lib/components/orders/orders.component.d.ts +1 -1
  49. package/lib/components/reactive-select/reactive-select.component.d.ts +2 -2
  50. package/lib/components/reports/reports.component.d.ts +2 -2
  51. package/lib/components/task-configure/task-configure.component.d.ts +3 -3
  52. package/lib/services/trax.service.d.ts +6 -1
  53. package/lib/tango-analyse-trax.module.d.ts +11 -8
  54. package/package.json +1 -1
  55. package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-mp5zGDN4.mjs.map +0 -1
  56. package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DKvlR9IQ.mjs.map +0 -1
@@ -0,0 +1,158 @@
1
+ import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/trax.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ export class DisabledSelectComponent {
7
+ cd;
8
+ authService;
9
+ onClick(event) {
10
+ const target = event.target;
11
+ if (!target.closest('.dropdown')) {
12
+ this.showDropdown = false;
13
+ }
14
+ }
15
+ items;
16
+ searchField;
17
+ multi;
18
+ idField;
19
+ selectedValues = [];
20
+ disabled;
21
+ dropDowndisabled;
22
+ label;
23
+ selected = new EventEmitter();
24
+ filteredValues = [];
25
+ showDropdown;
26
+ searchValue;
27
+ instanceId;
28
+ constructor(cd, authService) {
29
+ this.cd = cd;
30
+ this.authService = authService;
31
+ }
32
+ ngOnInit() {
33
+ this.instanceId = crypto.randomUUID();
34
+ this.authService.dropDownTrigger.subscribe((e) => {
35
+ if (e !== this.instanceId) {
36
+ this.showDropdown = false;
37
+ this.cd.detectChanges();
38
+ }
39
+ });
40
+ }
41
+ ngOnChanges(changes) {
42
+ if (changes['items'] && this.items?.length) {
43
+ this.initializeItems();
44
+ }
45
+ if (changes['selectedValues'] && Array.isArray(changes['selectedValues']?.currentValue) && changes['selectedValues']?.currentValue?.length > 0 && changes['selectedValues']?.currentValue[0]) {
46
+ this.updateSelectedValues();
47
+ }
48
+ }
49
+ initializeItems() {
50
+ this.filteredValues = this.items.map((item) => ({ ...item }));
51
+ this.updateSelectedValues();
52
+ }
53
+ updateSelectedValues() {
54
+ this.selectedValues?.forEach((selectedItem) => {
55
+ const item = this.filteredValues?.find((filteredItem) => filteredItem?.[this.idField] === selectedItem?.[this.idField]);
56
+ if (item) {
57
+ item.isSelected = true;
58
+ }
59
+ });
60
+ }
61
+ openDropdown(event) {
62
+ this.authService.dropDownTrigger.next(this.instanceId);
63
+ event.stopPropagation();
64
+ this.showDropdown = !this.showDropdown;
65
+ }
66
+ onInput(event) {
67
+ if (!event.target.value) {
68
+ this.filteredValues = [...this.items];
69
+ }
70
+ else {
71
+ const searchTerm = event.target.value.toLowerCase();
72
+ this.filteredValues = this.items.filter((item) => item[this.searchField].toLowerCase().includes(searchTerm));
73
+ }
74
+ this.updateSelectedValues();
75
+ this.cd.detectChanges();
76
+ }
77
+ onSelect(event, item) {
78
+ if (this.multi) {
79
+ if (event.currentTarget.checked) {
80
+ this.selectedValues.push(item);
81
+ }
82
+ else {
83
+ this.selectedValues = this.selectedValues.filter((elem) => elem[this.idField] !== item[this.idField]);
84
+ }
85
+ }
86
+ else {
87
+ this.selectedValues = [{ ...item }];
88
+ this.filteredValues.forEach((element) => {
89
+ if (element[this.idField] !== item[this.idField]) {
90
+ element.isSelected = false;
91
+ }
92
+ });
93
+ this.showDropdown = false;
94
+ }
95
+ const valuesToEmit = this.selectedValues.map((value) => {
96
+ const selectedItem = { ...value };
97
+ delete selectedItem.isSelected;
98
+ return selectedItem;
99
+ });
100
+ this.cd.detectChanges();
101
+ this.emitSelectedValues(valuesToEmit);
102
+ }
103
+ onSelectAll(event) {
104
+ const selectAll = event.currentTarget.checked;
105
+ this.filteredValues.forEach((item) => item.isSelected = selectAll);
106
+ if (selectAll) {
107
+ this.selectedValues = [...this.filteredValues];
108
+ }
109
+ else {
110
+ this.selectedValues = [];
111
+ }
112
+ const valuesToEmit = this.selectedValues.map((value) => {
113
+ const { isSelected, ...selectedItem } = value;
114
+ return selectedItem;
115
+ });
116
+ this.cd.detectChanges();
117
+ this.emitSelectedValues(valuesToEmit);
118
+ }
119
+ emitSelectedValues(values) {
120
+ if (this.multi) {
121
+ this.selected.emit(values);
122
+ }
123
+ else {
124
+ this.selected.emit(values[0]);
125
+ }
126
+ }
127
+ checkIfAllSelected() {
128
+ return this.filteredValues.every((item) => item.isSelected);
129
+ }
130
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DisabledSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TraxService }], target: i0.ɵɵFactoryTarget.Component });
131
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DisabledSelectComponent, selector: "lib-disabled-select", inputs: { items: "items", searchField: "searchField", multi: "multi", idField: "idField", selectedValues: "selectedValues", disabled: "disabled", dropDowndisabled: "dropDowndisabled", label: "label" }, outputs: { selected: "selected" }, host: { listeners: { "document:click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n <span *ngIf=\"selectedValues?.length\" class=\"select-value mx-2\"> <img class=\"me-2\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\">{{selectedValues?.[0]?.[searchField]}}</span> \r\n <!-- <span *ngIf=\"selectedValues?.length > 1\" class=\"select-value mx-2\"><img class=\"me-2\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\">{{selectedValues?.[1]?.[searchField]}}</span> -->\r\n <span class=\"select-value mx-2\" *ngIf=\"selectedValues?.length > 1\">+{{selectedValues?.length -1}}</span> {{label}} \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"[showDropdown ? '' : 'd-none', dropDowndisabled ? 'disabled-dropdown' : '']\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul ngc>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" [for]=\"instanceId\" >\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n [id]=\"instanceId\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:42.5px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.disabled-dropdown ul,.disabled-dropdown li{pointer-events:none;opacity:.5}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.select-value{border-radius:16px!important;background:var(--Gray-100, #F2F4F7)!important;mix-blend-mode:multiply;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-style:normal;font-weight:500;line-height:20px;padding:4px 12px 4px 6px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DisabledSelectComponent, decorators: [{
134
+ type: Component,
135
+ args: [{ selector: 'lib-disabled-select', template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n <span *ngIf=\"selectedValues?.length\" class=\"select-value mx-2\"> <img class=\"me-2\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\">{{selectedValues?.[0]?.[searchField]}}</span> \r\n <!-- <span *ngIf=\"selectedValues?.length > 1\" class=\"select-value mx-2\"><img class=\"me-2\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\">{{selectedValues?.[1]?.[searchField]}}</span> -->\r\n <span class=\"select-value mx-2\" *ngIf=\"selectedValues?.length > 1\">+{{selectedValues?.length -1}}</span> {{label}} \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"[showDropdown ? '' : 'd-none', dropDowndisabled ? 'disabled-dropdown' : '']\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul ngc>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" [for]=\"instanceId\" >\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n [id]=\"instanceId\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:42.5px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.disabled-dropdown ul,.disabled-dropdown li{pointer-events:none;opacity:.5}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.select-value{border-radius:16px!important;background:var(--Gray-100, #F2F4F7)!important;mix-blend-mode:multiply;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-style:normal;font-weight:500;line-height:20px;padding:4px 12px 4px 6px}\n"] }]
136
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TraxService }], propDecorators: { onClick: [{
137
+ type: HostListener,
138
+ args: ['document:click', ['$event']]
139
+ }], items: [{
140
+ type: Input
141
+ }], searchField: [{
142
+ type: Input
143
+ }], multi: [{
144
+ type: Input
145
+ }], idField: [{
146
+ type: Input
147
+ }], selectedValues: [{
148
+ type: Input
149
+ }], disabled: [{
150
+ type: Input
151
+ }], dropDowndisabled: [{
152
+ type: Input
153
+ }], label: [{
154
+ type: Input
155
+ }], selected: [{
156
+ type: Output
157
+ }] } });
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvZGlzYWJsZWQtc2VsZWN0L2Rpc2FibGVkLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2Rpc2FibGVkLXNlbGVjdC9kaXNhYmxlZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBT25LLE1BQU0sT0FBTyx1QkFBdUI7SUF3QmQ7SUFBK0I7SUF0Qm5ELE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFUSxLQUFLLENBQUs7SUFDVixXQUFXLENBQVE7SUFDbkIsS0FBSyxDQUFTO0lBQ2QsT0FBTyxDQUFRO0lBQ2YsY0FBYyxHQUFRLEVBQUUsQ0FBQTtJQUN4QixRQUFRLENBQXFCO0lBQzdCLGdCQUFnQixDQUFxQjtJQUNyQyxLQUFLLENBQVE7SUFDWixRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtJQUM1QyxjQUFjLEdBQVEsRUFBRSxDQUFBO0lBQ3hCLFlBQVksQ0FBUztJQUNyQixXQUFXLENBQVE7SUFDbkIsVUFBVSxDQUFNO0lBR2hCLFlBQW9CLEVBQXFCLEVBQVUsV0FBdUI7UUFBdEQs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LEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO3dHQXpJVSx1QkFBdUI7NEZBQXZCLHVCQUF1QiwyWENQcEMsd2lHQTJDTTs7NEZEcENPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7Z0hBTS9CLE9BQU87c0JBRFIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRL0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWRpc2FibGVkLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Rpc2FibGVkLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Rpc2FibGVkLXNlbGVjdC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERpc2FibGVkU2VsZWN0Q29tcG9uZW50IHtcclxuQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bicpKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbiAgQElucHV0KCkgaXRlbXM6IGFueVxyXG4gIEBJbnB1dCgpIHNlYXJjaEZpZWxkOiBzdHJpbmdcclxuICBASW5wdXQoKSBtdWx0aTogYm9vbGVhblxyXG4gIEBJbnB1dCgpIGlkRmllbGQ6IHN0cmluZ1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWVzOiBhbnkgPSBbXVxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkXHJcbiAgQElucHV0KCkgZHJvcERvd25kaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmdcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxyXG4gIGZpbHRlcmVkVmFsdWVzOiBhbnkgPSBbXVxyXG4gIHNob3dEcm9wZG93bjogYm9vbGVhblxyXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmdcclxuICBpbnN0YW5jZUlkOiBhbnk7XHJcbiBcclxuIFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGF1dGhTZXJ2aWNlOlRyYXhTZXJ2aWNlKSB7IH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5zdGFuY2VJZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmRyb3BEb3duVHJpZ2dlci5zdWJzY3JpYmUoKGUpPT57ICAgICAgICAgICBcclxuICAgICAgaWYoZSAhPT0gdGhpcy5pbnN0YW5jZUlkKXsgICAgICAgIFxyXG4gICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuIFxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuIFxyXG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zJ10gJiYgdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWRWYWx1ZXMnXSAmJiBBcnJheS5pc0FycmF5KGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVzJ10/LmN1cnJlbnRWYWx1ZSkgJiYgY2hhbmdlc1snc2VsZWN0ZWRWYWx1ZXMnXT8uY3VycmVudFZhbHVlPy5sZW5ndGggPiAwICYmIGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVzJ10/LmN1cnJlbnRWYWx1ZVswXSkgeyAgICAgICAgICAgIFxyXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbiAgaW5pdGlhbGl6ZUl0ZW1zKCkge1xyXG4gICAgdGhpcy5maWx0ZXJlZFZhbHVlcyA9IHRoaXMuaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7IC4uLml0ZW0gfSkpO1xyXG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpXHJcbiAgfVxyXG4gXHJcbiAgdXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKSB7ICAgIFxyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlcz8uZm9yRWFjaCgoc2VsZWN0ZWRJdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZmlsdGVyZWRWYWx1ZXM/LmZpbmQoKGZpbHRlcmVkSXRlbTogYW55KSA9PiBmaWx0ZXJlZEl0ZW0/Llt0aGlzLmlkRmllbGRdID09PSBzZWxlY3RlZEl0ZW0/Llt0aGlzLmlkRmllbGRdKTtcclxuICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICBpdGVtLmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgXHJcbiAgfVxyXG4gXHJcbiAgb3BlbkRyb3Bkb3duKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZHJvcERvd25UcmlnZ2VyLm5leHQodGhpcy5pbnN0YW5jZUlkKVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnNob3dEcm9wZG93biA9ICF0aGlzLnNob3dEcm9wZG93bjtcclxuICB9XHJcbiBcclxuICBvbklucHV0KGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghZXZlbnQudGFyZ2V0LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMgPSBbLi4udGhpcy5pdGVtc107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBzZWFyY2hUZXJtID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMgPSB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbTogYW55KSA9PlxyXG4gICAgICAgIGl0ZW1bdGhpcy5zZWFyY2hGaWVsZF0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gXHJcbiAgb25TZWxlY3QoZXZlbnQ6IGFueSwgaXRlbTogYW55KSB7ICAgIFxyXG4gICAgaWYgKHRoaXMubXVsdGkpIHtcclxuICAgICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucHVzaChpdGVtICk7ICAgICAgICBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5maWx0ZXIoKGVsZW06IGFueSkgPT4gZWxlbVt0aGlzLmlkRmllbGRdICE9PSBpdGVtW3RoaXMuaWRGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW3sgLi4uaXRlbSB9XTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFZhbHVlcy5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge1xyXG4gICAgICAgIGlmKGVsZW1lbnRbdGhpcy5pZEZpZWxkXSAhPT0gaXRlbVt0aGlzLmlkRmllbGRdKXtcclxuICAgICAgICAgIGVsZW1lbnQuaXNTZWxlY3RlZCA9IGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zaG93RHJvcGRvd24gPSBmYWxzZTtcclxuICAgIH1cclxuIFxyXG4gICAgY29uc3QgdmFsdWVzVG9FbWl0ID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5tYXAoKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0geyAuLi52YWx1ZSB9O1xyXG4gICAgICBkZWxldGUgc2VsZWN0ZWRJdGVtLmlzU2VsZWN0ZWQ7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW07XHJcbiAgICB9KTtcclxuIFxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmVtaXRTZWxlY3RlZFZhbHVlcyh2YWx1ZXNUb0VtaXQpO1xyXG4gXHJcbiAgfVxyXG4gXHJcbiAgb25TZWxlY3RBbGwoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0QWxsID0gZXZlbnQuY3VycmVudFRhcmdldC5jaGVja2VkO1xyXG4gICAgdGhpcy5maWx0ZXJlZFZhbHVlcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IGl0ZW0uaXNTZWxlY3RlZCA9IHNlbGVjdEFsbCk7XHJcbiBcclxuICAgIGlmIChzZWxlY3RBbGwpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFsuLi50aGlzLmZpbHRlcmVkVmFsdWVzXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcclxuICAgIH1cclxuIFxyXG4gICAgY29uc3QgdmFsdWVzVG9FbWl0ID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5tYXAoKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBpc1NlbGVjdGVkLCAuLi5zZWxlY3RlZEl0ZW0gfSA9IHZhbHVlO1xyXG4gICAgICByZXR1cm4gc2VsZWN0ZWRJdGVtO1xyXG4gICAgfSk7XHJcbiBcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5lbWl0U2VsZWN0ZWRWYWx1ZXModmFsdWVzVG9FbWl0KTtcclxuICB9XHJcbiBcclxuIFxyXG4gIGVtaXRTZWxlY3RlZFZhbHVlcyh2YWx1ZXM6IGFueVtdKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodmFsdWVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh2YWx1ZXNbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIGNoZWNrSWZBbGxTZWxlY3RlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkVmFsdWVzLmV2ZXJ5KChpdGVtOiBhbnkpID0+IGl0ZW0uaXNTZWxlY3RlZCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJvdXRlci1jb250YWluZXJcIj5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZS1pbnB1dCc6JydcIiAgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCIgIGNsYXNzPVwiZm9ybS1zZWxlY3RcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aVwiID5cclxuICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/Lmxlbmd0aFwiIGNsYXNzPVwic2VsZWN0LXZhbHVlIG14LTJcIj4gPGltZyBjbGFzcz1cIm1lLTJcIiBhbHQ9XCJQaWNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZS91c2Vycy10ZWFtcy5zdmdcIj57e3NlbGVjdGVkVmFsdWVzPy5bMF0/LltzZWFyY2hGaWVsZF19fTwvc3Bhbj4gXHJcbiAgICA8IS0tIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cInNlbGVjdC12YWx1ZSBteC0yXCI+PGltZyBjbGFzcz1cIm1lLTJcIiAgYWx0PVwiUGljXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2UvdXNlcnMtdGVhbXMuc3ZnXCI+e3tzZWxlY3RlZFZhbHVlcz8uWzFdPy5bc2VhcmNoRmllbGRdfX08L3NwYW4+ICAtLT5cclxuICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0LXZhbHVlIG14LTJcIiAqbmdJZj1cInNlbGVjdGVkVmFsdWVzPy5sZW5ndGggPiAxXCI+K3t7c2VsZWN0ZWRWYWx1ZXM/Lmxlbmd0aCAtMX19PC9zcGFuPiB7e2xhYmVsfX0gICAgXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlcIiA+XHJcbiAgICAgICAge3tzZWxlY3RlZFZhbHVlcz8uWzBdPy5bc2VhcmNoRmllbGRdfX1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIltzaG93RHJvcGRvd24gPyAnJyA6ICdkLW5vbmUnLCBkcm9wRG93bmRpc2FibGVkID8gJ2Rpc2FibGVkLWRyb3Bkb3duJyA6ICcnXVwiICBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBkcm9wZG93blwiID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCI+ICBcclxuICAgICAgICA8c3ZnIGNsYXNzPVwic2VhcmNoLWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNiAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQgMTQuNUwxMS4xIDExLjZNMTIuNjY2NyA3LjgzMzMzQzEyLjY2NjcgMTAuNzc4OSAxMC4yNzg5IDEzLjE2NjcgNy4zMzMzMyAxMy4xNjY3QzQuMzg3ODEgMTMuMTY2NyAyIDEwLjc3ODkgMiA3LjgzMzMzQzIgNC44ODc4MSA0LjM4NzgxIDIuNSA3LjMzMzMzIDIuNUMxMC4yNzg5IDIuNSAxMi42NjY3IDQuODg3ODEgMTIuNjY2NyA3LjgzMzMzWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICA8L3N2Zz4gIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDx1bCBuZ2M+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cIm11bHRpICYmIGZpbHRlcmVkVmFsdWVzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2tcIiBbZm9yXT1cImluc3RhbmNlSWRcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiIFtjaGVja2VkXT1cImNoZWNrSWZBbGxTZWxlY3RlZCgpXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTNcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpbnN0YW5jZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgQWxsXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkVmFsdWVzXCIgW25nQ2xhc3NdPVwiaXRlbS5pc1NlbGVjdGVkICYmICFtdWx0aSA/ICdzZWxlY3RlZCcgOiAnJ1wiID5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIml0ZW1baWRGaWVsZF0gKyBpbnN0YW5jZUlkXCIgW25nQ2xhc3NdPVwibXVsdGkgID8gJyc6ICdwcy0wJ1wiIGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbbmdDbGFzc109XCJtdWx0aSAgPyAnJzogJ2Qtbm9uZSdcIiAoY2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudCwgaXRlbSlcIiBbKG5nTW9kZWwpXT1cIml0ZW0uaXNTZWxlY3RlZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtZS0zXCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaXRlbVtpZEZpZWxkXSArIGluc3RhbmNlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbVtzZWFyY2hGaWVsZF19fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cIiFmaWx0ZXJlZFZhbHVlcz8ubGVuZ3RoXCIgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiA+Tm8gZGF0YSBmb3VuZDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPiAgXHJcbiAgICA8L2Rpdj4gIFxyXG4gICBcclxuPC9kaXY+Il19
@@ -185,7 +185,12 @@ export class ExportGalleryComponent {
185
185
  }
186
186
  this.csvheight = '';
187
187
  this.getstore = false;
188
- this.getStoreData();
188
+ if (this.payload.filtertype === 'Clusters') {
189
+ this.getStoreData();
190
+ }
191
+ else {
192
+ this.getuserData();
193
+ }
189
194
  }
190
195
  dayjs = dayjs;
191
196
  isCustomDate = (m) => {
@@ -258,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
258
263
  type: ViewChild,
259
264
  args: ['dateRangePickerInput', { read: ElementRef }]
260
265
  }] } });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtZ2FsbGVyeS9leHBvcnQtZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydC1nYWxsZXJ5L2V4cG9ydC1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxILE9BQU8sRUFBRSxPQUFPLEVBQThDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFFbkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQU1sQixNQUFNLE9BQU8sc0JBQXNCO0lBY3ZCO0lBQ0E7SUFDQTtJQUNBO0lBaEJELElBQUksQ0FBTTtJQUNWLE9BQU8sQ0FBTTtJQUNiLFVBQVUsQ0FBTTtJQUN6QixpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDcEIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDakMsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxXQUFXLEdBQVEsT0FBTyxDQUFDO0lBQzNCLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFDZCxRQUFRLEdBQUUsRUFBRSxDQUFBO0lBQ1osYUFBYSxHQUFHLEVBQUUsQ0FBQTtJQUNsQixhQUFhLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLFFBQVEsR0FBWSxLQUFLLENBQUE7SUFDekIsWUFDVSxXQUEyQixFQUMzQixFQUFxQixFQUNyQixXQUF3QixFQUN4QixZQUEwQjtRQUgxQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFLcEMsQ0FBQztJQUN3RCxvQkFBb0IsQ0FBYTtJQUMxRixRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHO1lBQ3ZCLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzdELE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1NBQzFELENBQUE7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFBO1FBQzNDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUU7WUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ3BDLElBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUcsVUFBVSxFQUFDO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7YUFDcEI7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO2FBQ25CO1NBQ0Y7SUFFSCxDQUFDO0lBR0QsWUFBWTtRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3BHLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtvQkFDMUIsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7b0JBQ2pFLElBQUksR0FBRyxHQUFHO3dCQUNSLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO3dCQUM3RCxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQzt3QkFDekQsZUFBZSxFQUFFLFFBQVE7d0JBQ3pCLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7d0JBQzNDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQjt3QkFDOUMsU0FBUyxFQUFFLE1BQU07d0JBQ2pCLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ3JDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7d0JBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7d0JBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07d0JBQzdCLFlBQVksRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ3BDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7cUJBQy9JLENBQUE7b0JBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUNwQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLE1BQU0sRUFBRTt3QkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7NEJBQzVFLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dDQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRTtvQ0FDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQTtvQ0FDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQTtvQ0FDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7aUNBRXRCOzRCQUNILENBQUM7eUJBQ0YsQ0FBQyxDQUFBO3FCQUNIO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDOzRCQUM1RSxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQ0FDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7b0NBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUE7b0NBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUE7b0NBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO2lDQUN0Qjs0QkFDSCxDQUFDO3lCQUNGLENBQUMsQ0FBQTtxQkFDSDtpQkFDRjtZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFFSixDQUFDO0lBQ0QsV0FBVztRQUVULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQy9GLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtvQkFDMUIsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtvQkFDdkQsSUFBSSxHQUFHLEdBQUc7d0JBQ1IsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTt3QkFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTt3QkFDN0IsZUFBZSxFQUFFLFFBQVE7d0JBQ3pCLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7d0JBQzNDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQjt3QkFDOUMsU0FBUyxFQUFFLEVBQUU7d0JBQ2IsV0FBVyxFQUFFLEtBQUs7d0JBQ2xCLFlBQVksRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ3BDLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ3JDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7d0JBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7d0JBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07d0JBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7cUJBQy9JLENBQUE7b0JBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUNwQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLE1BQU0sRUFBRTt3QkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7NEJBQzVFLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dDQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRTtvQ0FDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQTtvQ0FDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQTtvQ0FDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7aUNBQ3RCOzRCQUNILENBQUM7eUJBQ0YsQ0FBQyxDQUFBO3FCQUNIO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDOzRCQUM1RSxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQ0FDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7b0NBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUE7b0NBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUE7b0NBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO2lDQUN0Qjs0QkFDSCxDQUFDO3lCQUNGLENBQUMsQ0FBQTtxQkFDSDtpQkFDRjtZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFFSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUN2RSxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQWdCLENBQUM7Z0JBQzdFLElBQUksVUFBVSxFQUFFO29CQUNkLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN0QyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7b0JBQ3ZDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztpQkFDbEM7WUFDSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTtRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQTtJQUV6QixDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUE7SUFDNUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFpQjtRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDdEMsT0FBTTtTQUNQO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFBO1FBQ25DLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZDLGlEQUFpRDtRQUNqRCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMzQyxJQUFJLFVBQVUsR0FBRyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDNUI7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7UUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3JCLENBQUM7SUFDRCxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsWUFBWSxHQUFHLENBQUMsQ0FBYyxFQUFFLEVBQUU7UUFDaEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQyxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDOUMsQ0FBQyxDQUFBO0lBQ0QsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzlDLENBQUMsQ0FBQztTQUNIO1FBQ0QsK0JBQStCO0lBQ2pDLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFnQixDQUFDO1FBQ2hGLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO1FBQ3BCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtTQUM1RTtRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtTQUNuRjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUN6RSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7WUFDMUYsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFO29CQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtvQkFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ25DO3FCQUFNO29CQUNMLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO29CQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsNEJBQTRCLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssZUFBZSxDQUFDLENBQUE7WUFDdEcsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUlKLENBQUM7SUFDRCxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ2YsVUFBVTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFBO0lBQzFCLENBQUM7d0dBalBVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDJPQXVCVSxVQUFVLDZCQ3JDdkQsdzRhQThLTTs7NEZEaEtPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7d0tBS3JCLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFvQm1ELG9CQUFvQjtzQkFBNUUsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRpbWVQZXJpb2QgfSBmcm9tICduZ3gtZGF0ZXJhbmdlcGlja2VyLW1hdGVyaWFsL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZXhwb3J0LWdhbGxlcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBvcnQtZ2FsbGVyeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2V4cG9ydC1nYWxsZXJ5LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXhwb3J0R2FsbGVyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgdHlwZTogYW55O1xyXG4gIEBJbnB1dCgpIHBheWxvYWQ6IGFueTtcclxuICBASW5wdXQoKSBjbGllbnROYW1lOiBhbnk7XHJcbiAgc2VsZWN0ZWREYXRlUmFuZ2U6IGFueSA9IHt9O1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIG1heGRheXNSZWFjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJldmlld1R5cGU6IGFueSA9ICdpbWFnZSc7XHJcbiAgc3RvcmVMaXN0ID0gW11cclxuICB1c2VyTGlzdD0gW11cclxuICBzZWxlY3RlZFN0b3JlID0gW11cclxuICBzZWxlY3RlZHVzZXJzID0gW11cclxuICBnZXRzdG9yZTogYm9vbGVhbiA9IGZhbHNlXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB0cmF4U2VydmljZTogVHJheFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXHJcbiAgKSB7XHJcblxyXG5cclxuXHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVSYW5nZVBpY2tlcklucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGRhdGVSYW5nZVBpY2tlcklucHV0OiBFbGVtZW50UmVmO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiBkYXlqcyh0aGlzLnBheWxvYWQ/LmZyb21EYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxcclxuICAgICAgZW5kRGF0ZTogZGF5anModGhpcy5wYXlsb2FkPy50b0RhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpLFxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2codGhpcy5wYXlsb2FkKVxyXG4gICAgdGhpcy5wYXlsb2FkLnByZXZpZXdUeXBlID0gdGhpcy5wcmV2aWV3VHlwZVxyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ0V4cG9ydCBhcyBDU1YnKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMucGF5bG9hZC5maWx0ZXJ0eXBlKVxyXG4gICAgICBpZih0aGlzLnBheWxvYWQuZmlsdGVydHlwZT09PSdDbHVzdGVycycpe1xyXG4gICAgICAgIHRoaXMuZ2V0U3RvcmVEYXRhKClcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5nZXR1c2VyRGF0YSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0U3RvcmVEYXRhKCkge1xyXG4gICAgdGhpcy5nZXRzdG9yZSA9IHRydWVcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0U3RvcmVzbGlzdCh7IGNsaWVudElkOiB0aGlzLnBheWxvYWQuY2xpZW50SWQsIGNsdXN0ZXJzOiBbXSwgY2l0eTogW10gfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIGxldCBzdG9yZXMgPSByZXMuZGF0YS5zdG9yZXNEYXRhLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICBcImZyb21EYXRlXCI6IGRheWpzKHRoaXMucGF5bG9hZC5mcm9tRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyksXHJcbiAgICAgICAgICAgIFwidG9EYXRlXCI6IGRheWpzKHRoaXMucGF5bG9hZC50b0RhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxyXG4gICAgICAgICAgICBcIkNoZWNrbGlzdFR5cGVcIjogJ2N1c3RvbScsXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0TmFtZVwiOiB0aGlzLnBheWxvYWQuY2hlY2tsaXN0TmFtZSxcclxuICAgICAgICAgICAgXCJjaGVja2xpc3RJZFwiOiB0aGlzLnBheWxvYWQuc291cmNlQ2hlY2tMaXN0X2lkLFxyXG4gICAgICAgICAgICBcInN0b3JlSWRcIjogc3RvcmVzLFxyXG4gICAgICAgICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5wYXlsb2FkLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICAgICAgICBcInZpZXdGbGFnXCI6IHRoaXMucGF5bG9hZC52aWV3RmxhZywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLnBheWxvYWQudmlld1JlZG8sXHJcbiAgICAgICAgICAgIFwiZmlsdGVyXCI6IHRoaXMucGF5bG9hZC5maWx0ZXIsXHJcbiAgICAgICAgICAgIFwiZmlsdGVydHlwZVwiOnRoaXMucGF5bG9hZC5maWx0ZXJ0eXBlLFxyXG4gICAgICAgICAgICBcInF1ZXN0aW9uc1wiOiB0aGlzLnBheWxvYWQucXVlc3Rpb25zLmxlbmd0aCA+IDAgJiYgdGhpcy5wYXlsb2FkLnF1ZXN0aW9uc1swXS5xdWVzdGlvbnMubGVuZ3RoID4gMCA/IHRoaXMucGF5bG9hZC5xdWVzdGlvbnNbMF0ucXVlc3Rpb25zWzBdIDogXCJcIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy5wYXlsb2FkLmluc2VydFR5cGUpXHJcbiAgICAgICAgICBpZiAodGhpcy5wYXlsb2FkLmluc2VydFR5cGUgPT09ICd0YXNrJykge1xyXG4gICAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFF1ZXN0aW9ucyhvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlXHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y2hlY2tsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVMaXN0ID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldHN0b3JlID0gZmFsc2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICB9XHJcbiAgZ2V0dXNlckRhdGEoKSB7XHJcblxyXG4gICAgdGhpcy5nZXRzdG9yZSA9IHRydWVcclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0dXNlcnMoeyBjbGllbnRJZDogdGhpcy5wYXlsb2FkLmNsaWVudElkLCBjbHVzdGVyczogW10sIGNpdHk6IFtdIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBsZXQgdXNlcnMgPSByZXMuZGF0YS5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS51c2VyRW1haWwpXHJcbiAgICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgICBcImZyb21EYXRlXCI6IHRoaXMucGF5bG9hZC5mcm9tRGF0ZSxcclxuICAgICAgICAgICAgXCJ0b0RhdGVcIjogdGhpcy5wYXlsb2FkLnRvRGF0ZSxcclxuICAgICAgICAgICAgXCJDaGVja2xpc3RUeXBlXCI6ICdjdXN0b20nLFxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5wYXlsb2FkLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5wYXlsb2FkLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgICAgICAgXCJzdG9yZUlkXCI6IFtdLFxyXG4gICAgICAgICAgICBcInVzZXJFbWFpbFwiOiB1c2VycyxcclxuICAgICAgICAgICAgXCJmaWx0ZXJ0eXBlXCI6dGhpcy5wYXlsb2FkLmZpbHRlcnR5cGUsXHJcbiAgICAgICAgICAgIFwiYW5zd2VyVHlwZVwiOiB0aGlzLnBheWxvYWQuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgICAgICAgIFwidmlld0ZsYWdcIjogdGhpcy5wYXlsb2FkLnZpZXdGbGFnLC8vW3RydWUsIGZhbHNlXVxyXG4gICAgICAgICAgICBcInZpZXdSZWRvXCI6IHRoaXMucGF5bG9hZC52aWV3UmVkbyxcclxuICAgICAgICAgICAgXCJmaWx0ZXJcIjogdGhpcy5wYXlsb2FkLmZpbHRlcixcclxuICAgICAgICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5wYXlsb2FkLnF1ZXN0aW9ucy5sZW5ndGggPiAwICYmIHRoaXMucGF5bG9hZC5xdWVzdGlvbnNbMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnBheWxvYWQucXVlc3Rpb25zWzBdLnF1ZXN0aW9uc1swXSA6IFwiXCJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMucGF5bG9hZC5pbnNlcnRUeXBlKVxyXG4gICAgICAgICAgaWYgKHRoaXMucGF5bG9hZC5pbnNlcnRUeXBlID09PSAndGFzaycpIHtcclxuICAgICAgICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRRdWVzdGlvbnMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWR1c2VycyA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRjaGVja2xpc3Qob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWR1c2VycyA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmRhdGVSYW5nZVBpY2tlcklucHV0Py5uYXRpdmVFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZGF0ZVBpY2tlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kYXRlcmFuZ2VwaWNrZXInKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAoZGF0ZVBpY2tlcikge1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkYXRlUGlja2VyKTtcclxuICAgICAgICAgIGRhdGVQaWNrZXIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgICAgICAgZGF0ZVBpY2tlci5zdHlsZS56SW5kZXggPSAnMTA1MCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBvblN0b3JlU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZSA9IGV2ZW50XHJcbiAgICB0aGlzLnNlbGVjdGVkdXNlcnMgPSBbXVxyXG5cclxuICB9XHJcbiAgb251c2VyU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZSA9IFtdXHJcbiAgICB0aGlzLnNlbGVjdGVkdXNlcnMgPSBldmVudFxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogVGltZVBlcmlvZCkge1xyXG4gICAgaWYgKCFldmVudC5lbmREYXRlIHx8ICFldmVudC5zdGFydERhdGUpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICB0aGlzLnBheWxvYWQuZnJvbURhdGUgPSBldmVudC5zdGFydERhdGVcclxuICAgIHRoaXMucGF5bG9hZC50b0RhdGUgPSBldmVudC5lbmREYXRlXHJcbiAgICBjb25zdCBzdGFydCA9IGRheWpzKHRoaXMucGF5bG9hZC5mcm9tRGF0ZSk7XHJcbiAgICBjb25zdCBlbmQgPSBkYXlqcyh0aGlzLnBheWxvYWQudG9EYXRlKTtcclxuXHJcbiAgICAvLyBDYWxjdWxhdGUgdGhlIGRpZmZlcmVuY2UgaW4gdGhlIHNwZWNpZmllZCB1bml0XHJcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gZW5kLmRpZmYoc3RhcnQsICdkYXlzJyk7XHJcbiAgICBpZiAoZGlmZmVyZW5jZSA+IDMwKSB7XHJcbiAgICAgIHRoaXMubWF4ZGF5c1JlYWNoZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tYXhkYXlzUmVhY2hlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jc3ZoZWlnaHQgPSAnJztcclxuICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZVxyXG4gICAgdGhpcy5nZXRTdG9yZURhdGEoKVxyXG4gIH1cclxuICBkYXlqcyA9IGRheWpzO1xyXG4gIGlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgY29uc3QgaXNWYWxpZERhdGUgPSBtID4gdGhpcy5kYXlqcygpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICB9XHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9XHJcbiAgICAgICAgICBtID4gdGhpcy5kYXlqcygpIHx8IG0gPiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZS5hZGQoOTAsIFwiZGF5c1wiKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gXCJpbnZhbGlkLWRhdGVcIiA6IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5nZXRBbGxDaGVja0xpc3RzKGZhbHNlKVxyXG4gIH1cclxuICBvblNlbGVjdCh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnByZXZpZXdUeXBlID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheWxvYWQucHJldmlld1R5cGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpIHtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ2Nsb3NlJyk7XHJcbiAgICBjb25zdCB0cmlnZ2VyQnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RyaWdnZXJCdXR0b25JZCcpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgdHJpZ2dlckJ1dHRvbj8uZm9jdXMoKTtcclxuICB9XHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmdldHN0b3JlID0gdHJ1ZVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdG9yZSAmJiB0aGlzLnNlbGVjdGVkU3RvcmUubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnBheWxvYWQuc3RvcmVJZHMgPSB0aGlzLnNlbGVjdGVkU3RvcmUubWFwKChkYXRhOiBhbnkpID0+IGRhdGEuc3RvcmVJZClcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkdXNlcnMgJiYgdGhpcy5zZWxlY3RlZHVzZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5wYXlsb2FkLnVzZXJFbWFpbExpc3QgPSB0aGlzLnNlbGVjdGVkdXNlcnMubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgfVxyXG4gICAgdGhpcy5wYXlsb2FkLmZyb21EYXRlID0gZGF5anModGhpcy5wYXlsb2FkLmZyb21EYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKVxyXG4gICAgdGhpcy5wYXlsb2FkLnRvRGF0ZSA9IGRheWpzKHRoaXMucGF5bG9hZC50b0RhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnBheWxvYWQpXHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLnJlcG9ydFRhYmxlRXhwb3J0KHRoaXMucGF5bG9hZCk/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmdldHN0b3JlID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ3N1Y2Nlc3MnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlXHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdlcnJvcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpXHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChgPGRpdj48c3BhbiBjbGFzcz1cIm1lLThcIiA+JHtlcnI/LmVycm9yPy5lcnJvcj8uZXJyb3J9PC9zcGFuPjwvZGl2PmApXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG4gIGNzdmhlaWdodCA9ICcnO1xyXG4gIGRhdGVoZWlnaHQoKSB7XHJcbiAgICB0aGlzLmNzdmhlaWdodCA9IFwiMzAwcHhcIlxyXG4gIH1cclxufVxyXG5cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIGdyb3VwLWRlbGV0ZSBweS0wIHNjcm9sbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0wIGQtZmxleCBmbGV4LXN0YXJ0IGZsZXgtY29sdW1uIHAtOSBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC03NXB4IHN5bWJvbC1jaXJjbGVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzcgMzFWMzVDMzcgMzUuNTMwNCAzNi43ODkzIDM2LjAzOTEgMzYuNDE0MiAzNi40MTQyQzM2LjAzOTEgMzYuNzg5MyAzNS41MzA0IDM3IDM1IDM3SDIxQzIwLjQ2OTYgMzcgMTkuOTYwOSAzNi43ODkzIDE5LjU4NTggMzYuNDE0MkMxOS4yMTA3IDM2LjAzOTEgMTkgMzUuNTMwNCAxOSAzNVYzMU0yMyAyNkwyOCAzMU0yOCAzMUwzMyAyNk0yOCAzMVYxOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YSBjbGFzcz1cImZzLTQgdGV4dC1ncmF5LTgwMCB0ZXh0LWhvdmVyLXByaW1hcnkgZnctYm9sZCBtYi0wIHRpdGxlIGN1cnNvci1wb2ludGVyXCI+e3t0eXBlfX08L2E+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwidHlwZSA9PT0nRXhwb3J0IGFzIENTVidcIiBjbGFzcz1cImZ3LW5vcm1hbCBtdC0yXCI+PHNwYW4gY2xhc3M9XCJkYXJrLWxpbmUxXCI+T25lIG9mIHlvdXIgdGVhbSBoYXNcclxuICAgICAgICAgICAgICAgIHJlcXVlc3RlZCBlZGl0IGFjY2VzcyB0byB5b3VyIHByb2plY3Q8L3NwYW4+IDxzcGFuIGNsYXNzPVwiZGFyay1saW5lIG1zLTFcIj5XZWJzaXRlIERlc2lnbi48L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSdFeHBvcnQgYXMgQ1NWJ1wiIGNsYXNzPVwiY29sLW1kLTEyIHBvc2l0aW9uLXJlbGF0aXZlIG10LTMgaC0zNTBweFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBzdHlsZT1cInRvcDogMiU7XCIgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNCBcIiAjZGF0ZVJhbmdlUGlja2VySW5wdXRcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWluLXdpZHRoOiAyNjBweCAhaW1wb3J0YW50OyB6LWluZGV4OiAxMDUwICFpbXBvcnRhbnQ7XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZFxyXG4gICAgICAgICAgICAgICAgW2Ryb3BzXT1cIidkb3duJ1wiIFtvcGVuc109XCIncmlnaHQnXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsXT1cImZhbHNlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIChjbGljayk9XCJkYXRlaGVpZ2h0KClcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgW2F1dG9BcHBseV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIChzdGFydERhdGVDaGFuZ2VkKT1cIm9uU3RhcnREYXRlQ2hhbmdlKCRldmVudClcIiBbaXNDdXN0b21EYXRlXT1cImlzQ3VzdG9tRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOCBtYi00IG10LTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Qtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlci1vdmVybGF5XCIgKm5nSWY9XCJ0aGlzLnBheWxvYWQuZmlsdGVydHlwZT09PSdDbHVzdGVycydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IFN0b3Jlc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItc3RvcmVzLXNlbGVjdCAqbmdJZj1cInRoaXMucGF5bG9hZC5maWx0ZXJ0eXBlPT09J0NsdXN0ZXJzJ1wiIFtpdGVtc109XCJzdG9yZUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIiBbbXVsdGldPVwidHJ1ZVwiIFtzZWFyY2hGaWVsZF09XCInc3RvcmVOYW1lJ1wiIFtpZEZpZWxkXT1cIidzdG9yZUlkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJvblN0b3JlU2VsZWN0KCRldmVudClcIiBbc2VsZWN0ZWRWYWx1ZXNdPVwic2VsZWN0ZWRTdG9yZVwiPjwvbGliLXN0b3Jlcy1zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlci1vdmVybGF5XCIgKm5nSWY9XCJ0aGlzLnBheWxvYWQuZmlsdGVydHlwZT09PSdUZWFtcydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IFVzZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1zdG9yZXMtc2VsZWN0ICpuZ0lmPVwidGhpcy5wYXlsb2FkLmZpbHRlcnR5cGU9PT0nVGVhbXMnXCIgW2l0ZW1zXT1cInVzZXJMaXN0XCIgW2Rpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpXT1cInRydWVcIiBbc2VhcmNoRmllbGRdPVwiJ3VzZXJOYW1lJ1wiIFtpZEZpZWxkXT1cIid1c2VyTmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwib251c2VyU2VsZWN0KCRldmVudClcIiBbc2VsZWN0ZWRWYWx1ZXNdPVwic2VsZWN0ZWR1c2Vyc1wiPjwvbGliLXN0b3Jlcy1zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0eXBlID09PSdFeHBvcnQgYXMgQ1NWJ1wiIFtuZ0NsYXNzXT1cIm1heGRheXNSZWFjaGVkID8gJ2ZsYWdjbG91cic6JydcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImRhcmstbGluZTEgZnctbm9ybWFsIG10LTJcIj5EYXRhIGRvd25sb2FkcyBhcmUgbGltaXRlZCB0byBvbmUgbW9udGggYXQgYSB0aW1lLjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInR5cGUgPT09J0V4cG9ydCBhcyBQREYnXCIgY2xhc3M9XCJkYXJrLWxpbmUxIGZ3LW5vcm1hbCBtdC0yXCI+VGhpcyBibG9nIHBvc3QgaGFzIGJlZW4gcHVibGlzaGVkLiBUZWFtXHJcbiAgICAgICAgICAgIG1lbWJlcnMgd2lsbCBiZSBhYmxlIHRvIGVkaXQgdGhpcyBwb3N0IGFuZCByZXB1Ymxpc2ggY2hhbmdlcy48L3NwYW4+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInR5cGU9PT0nRXhwb3J0IGFzIFBERidcIiBjbGFzcz1cImNvbC1tZC0xMiAgbXQtM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiPlNlbGVjdCBjaGVja2xpc3Q8L2xhYmVsPlxyXG4gICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uPjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS42NjU0IDEuNjY2MDJINC45OTg3QzQuNTU2NjcgMS42NjYwMiA0LjEzMjc1IDEuODQxNjEgMy44MjAxOSAyLjE1NDE3QzMuNTA3NjMgMi40NjY3MyAzLjMzMjAzIDIuODkwNjUgMy4zMzIwMyAzLjMzMjY4VjE2LjY2NkMzLjMzMjAzIDE3LjEwOCAzLjUwNzYzIDE3LjUzMiAzLjgyMDE5IDE3Ljg0NDVDNC4xMzI3NSAxOC4xNTcxIDQuNTU2NjcgMTguMzMyNyA0Ljk5ODcgMTguMzMyN0gxNC45OTg3QzE1LjQ0MDcgMTguMzMyNyAxNS44NjQ2IDE4LjE1NzEgMTYuMTc3MiAxNy44NDQ1QzE2LjQ4OTggMTcuNTMyIDE2LjY2NTQgMTcuMTA4IDE2LjY2NTQgMTYuNjY2VjYuNjY2MDJNMTEuNjY1NCAxLjY2NjAyTDE2LjY2NTQgNi42NjYwMk0xMS42NjU0IDEuNjY2MDJWNi42NjYwMkgxNi42NjU0TTEzLjMzMiAxMC44MzI3SDYuNjY1MzZNMTMuMzMyIDE0LjE2Nkg2LjY2NTM2TTguMzMyMDMgNy40OTkzNUg2LjY2NTM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlN0b3JlIE9wZXJhdGlvbiBjaGVja2xpc3Q8L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInR5cGU9PT0nRXhwb3J0IGFzIFBERidcIiBjbGFzcz1cImNvbC1tZC0xMiAgbXQtM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiPlNlbGVjdCBTdG9yZTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24+PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZT09PSdFeHBvcnQgYXMgUERGJ1wiIGNsYXNzPVwiY29sLW1kLTEyIHBvc2l0aW9uLXJlbGF0aXZlIG10LTVcIj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJ0b3A6IDIwJTtcIiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgI2RhdGVSYW5nZVBpY2tlcklucHV0XHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDsgei1pbmRleDogMTA1MCAhaW1wb3J0YW50O1wiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWRcclxuICAgICAgICAgICAgICAgIFtkcm9wc109XCInZG93bidcIiBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCIgW29wZW5zXT1cIidyaWdodCdcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwiZmFsc2VcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBbYXV0b0FwcGx5XT1cInRydWVcIiAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtpc0N1c3RvbURhdGVdPVwiaXNDdXN0b21EYXRlXCJcclxuICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGUgZnctbm9ybWFsIG10LTJcIj5Pbmx5IDEgZGF5IGRhdGEgY2FuIGJlIGRvd25sb2FkZWQ8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInR5cGU9PT0nRXhwb3J0IGFzIFBQVCd8fHR5cGU9PT0nRXhwb3J0IGFzIFpJUCdcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIG10LTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBtaW4tdy0yMDBweCBjdXJzb3ItcG9pbnRlciBweS0zIHB4LTQgbWUtNiBtYi0zXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJwcmV2aWV3VHlwZSA9PT0gJ2ltYWdlJyA/ICduYXYtbGluZS10YWJzMScgOiAnYm9yZGVyLWdyYXktMzAwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KCdpbWFnZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwicHJldmlld1R5cGUgPT09ICdpbWFnZSdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMjFIMTlDMjAuMTA0NiAyMSAyMSAyMC4xMDQ2IDIxIDE5VjVDMjEgMy44OTU0MyAyMC4xMDQ2IDMgMTkgM0g1QzMuODk1NDMgMyAzIDMuODk1NDMgMyA1VjE5QzMgMjAuMTA0NiAzLjg5NTQzIDIxIDUgMjFaTTUgMjFMMTYgMTBMMjEgMTVNMTAgOC41QzEwIDkuMzI4NDMgOS4zMjg0MyAxMCA4LjUgMTBDNy42NzE1NyAxMCA3IDkuMzI4NDMgNyA4LjVDNyA3LjY3MTU3IDcuNjcxNTcgNyA4LjUgN0M5LjMyODQzIDcgMTAgNy42NzE1NyAxMCA4LjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwicHJldmlld1R5cGUgPT09ICd2aWRlbydcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMjFIMTlDMjAuMTA0NiAyMSAyMSAyMC4xMDQ2IDIxIDE5VjVDMjEgMy44OTU0MyAyMC4xMDQ2IDMgMTkgM0g1QzMuODk1NDMgMyAzIDMuODk1NDMgMyA1VjE5QzMgMjAuMTA0NiAzLjg5NTQzIDIxIDUgMjFaTTUgMjFMMTYgMTBMMjEgMTVNMTAgOC41QzEwIDkuMzI4NDMgOS4zMjg0MyAxMCA4LjUgMTBDNy42NzE1NyAxMCA3IDkuMzI4NDMgNyA4LjVDNyA3LjY3MTU3IDcuNjcxNTcgNyA4LjUgN0M5LjMyODQzIDcgMTAgNy42NzE1NyAxMCA4LjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwicHJldmlld1R5cGUgPT09ICdpbWFnZScgPyAndGV4dC1ib3JkZXItcHJpYW1yeScgOiAndGV4dHZhbHVlJ1wiPkltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBtaW4tdy0yMDBweCBjdXJzb3ItcG9pbnRlciBweS0zIHB4LTQgIG1iLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInByZXZpZXdUeXBlID09PSAndmlkZW8nID8gJ25hdi1saW5lLXRhYnMxJyA6ICdib3JkZXItZ3JheS0zMDAnXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3QoJ3ZpZGVvJylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJwcmV2aWV3VHlwZSA9PT0gJ2ltYWdlJ1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgMjJDMTcuNTIyOCAyMiAyMiAxNy41MjI4IDIyIDEyQzIyIDYuNDc3MTUgMTcuNTIyOCAyIDEyIDJDNi40NzcxNSAyIDIgNi40NzcxNSAyIDEyQzIgMTcuNTIyOCA2LjQ3NzE1IDIyIDEyIDIyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMCA4TDE2IDEyTDEwIDE2VjhaXCIgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwicHJldmlld1R5cGUgPT09ICd2aWRlbydcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDIyQzE3LjUyMjggMjIgMjIgMTcuNTIyOCAyMiAxMkMyMiA2LjQ3NzE1IDE3LjUyMjggMiAxMiAyQzYuNDc3MTUgMiAyIDYuNDc3MTUgMiAxMkMyIDE3LjUyMjggNi40NzcxNSAyMiAxMiAyMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgOEwxNiAxMkwxMCAxNlY4WlwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInByZXZpZXdUeXBlID09PSAndmlkZW8nID8gJ3RleHQtYm9yZGVyLXByaWFtcnknIDogJ3RleHR2YWx1ZSdcIj5WaWRlbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8bGFiZWwgZm9yPVwiZHJvcGRvd25cIiBjbGFzcz1cIm0tNCBmcy00XCI+Q2hvb3NlIGFuIG9wdGlvbjogPC9sYWJlbD4gLS0+XHJcbiAgICAgICAgICAgIDwhLS0gPHNlbGVjdCBpZD1cImRyb3Bkb3duXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInByZXZpZXdUeXBlXCIgKGNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiJ2ltYWdlJ1wiPkltYWdlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiJ3ZpZGVvJ1wiPlZpZGVvPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0nRXhwb3J0IGFzIENTVidcIiBjbGFzcz1cInJvdyB3LTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IG10LTIgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgcm9sZT1cImdyb3VwXCIgY2xhc3M9XCJkLWZsZXggbXQtMyBtYi0xNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtMlwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJhbGVydC10b2FzdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG1zLTJcIiBbZGlzYWJsZWRdPVwibWF4ZGF5c1JlYWNoZWR8fGdldHN0b3JlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5Db25maXJtPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9PSdFeHBvcnQgYXMgQ1NWJ1wiIGNsYXNzPVwibXQtMiB3LTEwMCB0ZXh0LWVuZFwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiByb2xlPVwiZ3JvdXBcIiBjbGFzcz1cImQtZmxleCBtdC0zIG1iLTE1XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTJcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJhbGVydC10b2FzdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG1zLTJcIiBbZGlzYWJsZWRdPVwibWF4ZGF5c1JlYWNoZWR8fGdldHN0b3JlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiPkNvbmZpcm08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtZ2FsbGVyeS9leHBvcnQtZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydC1nYWxsZXJ5L2V4cG9ydC1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxILE9BQU8sRUFBRSxPQUFPLEVBQThDLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFFbkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQU1sQixNQUFNLE9BQU8sc0JBQXNCO0lBY3ZCO0lBQ0E7SUFDQTtJQUNBO0lBaEJELElBQUksQ0FBTTtJQUNWLE9BQU8sQ0FBTTtJQUNiLFVBQVUsQ0FBTTtJQUN6QixpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDcEIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDakMsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxXQUFXLEdBQVEsT0FBTyxDQUFDO0lBQzNCLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFDZCxRQUFRLEdBQUUsRUFBRSxDQUFBO0lBQ1osYUFBYSxHQUFHLEVBQUUsQ0FBQTtJQUNsQixhQUFhLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLFFBQVEsR0FBWSxLQUFLLENBQUE7SUFDekIs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QkFBTTtvQkFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtvQkFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLDRCQUE0QixHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLGVBQWUsQ0FBQyxDQUFBO1lBQ3RHLENBQUM7U0FDRixDQUFDLENBQUE7SUFJSixDQUFDO0lBQ0QsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNmLFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQTtJQUMxQixDQUFDO3dHQXJQVSxzQkFBc0I7NEZBQXRCLHNCQUFzQiwyT0F1QlUsVUFBVSw2QkNyQ3ZELHc0YUE4S007OzRGRGhLTyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CO3dLQUtyQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBb0JtRCxvQkFBb0I7c0JBQTVFLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUaW1lUGVyaW9kIH0gZnJvbSAnbmd4LWRhdGVyYW5nZXBpY2tlci1tYXRlcmlhbC9kYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCBkYXlqcywgeyBEYXlqcyB9IGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuZGF5anMuZXh0ZW5kKHV0Yyk7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWV4cG9ydC1nYWxsZXJ5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXhwb3J0LWdhbGxlcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9leHBvcnQtZ2FsbGVyeS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4cG9ydEdhbGxlcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIHR5cGU6IGFueTtcclxuICBASW5wdXQoKSBwYXlsb2FkOiBhbnk7XHJcbiAgQElucHV0KCkgY2xpZW50TmFtZTogYW55O1xyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7fTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBtYXhkYXlzUmVhY2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByZXZpZXdUeXBlOiBhbnkgPSAnaW1hZ2UnO1xyXG4gIHN0b3JlTGlzdCA9IFtdXHJcbiAgdXNlckxpc3Q9IFtdXHJcbiAgc2VsZWN0ZWRTdG9yZSA9IFtdXHJcbiAgc2VsZWN0ZWR1c2VycyA9IFtdXHJcbiAgZ2V0c3RvcmU6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgdHJheFNlcnZpY2U6IFRyYXhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZVxyXG4gICkge1xyXG5cclxuXHJcblxyXG4gIH1cclxuICBAVmlld0NoaWxkKCdkYXRlUmFuZ2VQaWNrZXJJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBkYXRlUmFuZ2VQaWNrZXJJbnB1dDogRWxlbWVudFJlZjtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgIHN0YXJ0RGF0ZTogZGF5anModGhpcy5wYXlsb2FkPy5mcm9tRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyksXHJcbiAgICAgIGVuZERhdGU6IGRheWpzKHRoaXMucGF5bG9hZD8udG9EYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKSxcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMucGF5bG9hZClcclxuICAgIHRoaXMucGF5bG9hZC5wcmV2aWV3VHlwZSA9IHRoaXMucHJldmlld1R5cGVcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdFeHBvcnQgYXMgQ1NWJykge1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnBheWxvYWQuZmlsdGVydHlwZSlcclxuICAgICAgaWYodGhpcy5wYXlsb2FkLmZpbHRlcnR5cGU9PT0nQ2x1c3RlcnMnKXtcclxuICAgICAgICB0aGlzLmdldFN0b3JlRGF0YSgpXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuZ2V0dXNlckRhdGEoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGdldFN0b3JlRGF0YSgpIHtcclxuICAgIHRoaXMuZ2V0c3RvcmUgPSB0cnVlXHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlc2xpc3QoeyBjbGllbnRJZDogdGhpcy5wYXlsb2FkLmNsaWVudElkLCBjbHVzdGVyczogW10sIGNpdHk6IFtdIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBsZXQgc3RvcmVzID0gcmVzLmRhdGEuc3RvcmVzRGF0YS5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgICAgXCJmcm9tRGF0ZVwiOiBkYXlqcyh0aGlzLnBheWxvYWQuZnJvbURhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxyXG4gICAgICAgICAgICBcInRvRGF0ZVwiOiBkYXlqcyh0aGlzLnBheWxvYWQudG9EYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKSxcclxuICAgICAgICAgICAgXCJDaGVja2xpc3RUeXBlXCI6ICdjdXN0b20nLFxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdE5hbWVcIjogdGhpcy5wYXlsb2FkLmNoZWNrbGlzdE5hbWUsXHJcbiAgICAgICAgICAgIFwiY2hlY2tsaXN0SWRcIjogdGhpcy5wYXlsb2FkLnNvdXJjZUNoZWNrTGlzdF9pZCxcclxuICAgICAgICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMucGF5bG9hZC5hbnN3ZXJUeXBlLCAvL1tcImRlc2NyaXB0aXZlXCIsXCJ5ZXMvbm9cIixcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXCJpbWFnZVwiLFwidmlkZW9cIixcImRlc2NyaXB0aXZlSW1hZ2VcIixcIm11bHRpcGxlSW1hZ2VcIl1cclxuICAgICAgICAgICAgXCJ2aWV3RmxhZ1wiOiB0aGlzLnBheWxvYWQudmlld0ZsYWcsLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICAgICAgICAgIFwidmlld1JlZG9cIjogdGhpcy5wYXlsb2FkLnZpZXdSZWRvLFxyXG4gICAgICAgICAgICBcImZpbHRlclwiOiB0aGlzLnBheWxvYWQuZmlsdGVyLFxyXG4gICAgICAgICAgICBcImZpbHRlcnR5cGVcIjp0aGlzLnBheWxvYWQuZmlsdGVydHlwZSxcclxuICAgICAgICAgICAgXCJxdWVzdGlvbnNcIjogdGhpcy5wYXlsb2FkLnF1ZXN0aW9ucy5sZW5ndGggPiAwICYmIHRoaXMucGF5bG9hZC5xdWVzdGlvbnNbMF0ucXVlc3Rpb25zLmxlbmd0aCA+IDAgPyB0aGlzLnBheWxvYWQucXVlc3Rpb25zWzBdLnF1ZXN0aW9uc1swXSA6IFwiXCJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMucGF5bG9hZC5pbnNlcnRUeXBlKVxyXG4gICAgICAgICAgaWYgKHRoaXMucGF5bG9hZC5pbnNlcnRUeXBlID09PSAndGFzaycpIHtcclxuICAgICAgICAgICAgdGhpcy50cmF4U2VydmljZS5nZXRRdWVzdGlvbnMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZSA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldGNoZWNrbGlzdChvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlID0gcmVzLmRhdGEuc3RvcmVzRGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnN0b3Jlc0RldGFpbHNcclxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG4gIGdldHVzZXJEYXRhKCkge1xyXG5cclxuICAgIHRoaXMuZ2V0c3RvcmUgPSB0cnVlXHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldHVzZXJzKHsgY2xpZW50SWQ6IHRoaXMucGF5bG9hZC5jbGllbnRJZCwgY2x1c3RlcnM6IFtdLCBjaXR5OiBbXSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgbGV0IHVzZXJzID0gcmVzLmRhdGEubWFwKChkYXRhOiBhbnkpID0+IGRhdGEudXNlckVtYWlsKVxyXG4gICAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgICAgXCJmcm9tRGF0ZVwiOiB0aGlzLnBheWxvYWQuZnJvbURhdGUsXHJcbiAgICAgICAgICAgIFwidG9EYXRlXCI6IHRoaXMucGF5bG9hZC50b0RhdGUsXHJcbiAgICAgICAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiAnY3VzdG9tJyxcclxuICAgICAgICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMucGF5bG9hZC5jaGVja2xpc3ROYW1lLFxyXG4gICAgICAgICAgICBcImNoZWNrbGlzdElkXCI6IHRoaXMucGF5bG9hZC5zb3VyY2VDaGVja0xpc3RfaWQsXHJcbiAgICAgICAgICAgIFwic3RvcmVJZFwiOiBbXSxcclxuICAgICAgICAgICAgXCJ1c2VyRW1haWxcIjogdXNlcnMsXHJcbiAgICAgICAgICAgIFwiZmlsdGVydHlwZVwiOnRoaXMucGF5bG9hZC5maWx0ZXJ0eXBlLFxyXG4gICAgICAgICAgICBcImFuc3dlclR5cGVcIjogdGhpcy5wYXlsb2FkLmFuc3dlclR5cGUsIC8vW1wiZGVzY3JpcHRpdmVcIixcInllcy9ub1wiLFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIixcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcImltYWdlXCIsXCJ2aWRlb1wiLFwiZGVzY3JpcHRpdmVJbWFnZVwiLFwibXVsdGlwbGVJbWFnZVwiXVxyXG4gICAgICAgICAgICBcInZpZXdGbGFnXCI6IHRoaXMucGF5bG9hZC52aWV3RmxhZywvL1t0cnVlLCBmYWxzZV1cclxuICAgICAgICAgICAgXCJ2aWV3UmVkb1wiOiB0aGlzLnBheWxvYWQudmlld1JlZG8sXHJcbiAgICAgICAgICAgIFwiZmlsdGVyXCI6IHRoaXMucGF5bG9hZC5maWx0ZXIsXHJcbiAgICAgICAgICAgIFwicXVlc3Rpb25zXCI6IHRoaXMucGF5bG9hZC5xdWVzdGlvbnMubGVuZ3RoID4gMCAmJiB0aGlzLnBheWxvYWQucXVlc3Rpb25zWzBdLnF1ZXN0aW9ucy5sZW5ndGggPiAwID8gdGhpcy5wYXlsb2FkLnF1ZXN0aW9uc1swXS5xdWVzdGlvbnNbMF0gOiBcIlwiXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnBheWxvYWQuaW5zZXJ0VHlwZSlcclxuICAgICAgICAgIGlmICh0aGlzLnBheWxvYWQuaW5zZXJ0VHlwZSA9PT0gJ3Rhc2snKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0UXVlc3Rpb25zKG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkdXNlcnMgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y2hlY2tsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkdXNlcnMgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXNlckxpc3QgPSByZXMuZGF0YS5zdG9yZXNEZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5kYXRlUmFuZ2VQaWNrZXJJbnB1dD8ubmF0aXZlRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGVQaWNrZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZGF0ZXJhbmdlcGlja2VyJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKGRhdGVQaWNrZXIpIHtcclxuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGF0ZVBpY2tlcik7XHJcbiAgICAgICAgICBkYXRlUGlja2VyLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcclxuICAgICAgICAgIGRhdGVQaWNrZXIuc3R5bGUuekluZGV4ID0gJzEwNTAnO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25TdG9yZVNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSBldmVudFxyXG4gICAgdGhpcy5zZWxlY3RlZHVzZXJzID0gW11cclxuXHJcbiAgfVxyXG4gIG9udXNlclNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSBbXVxyXG4gICAgdGhpcy5zZWxlY3RlZHVzZXJzID0gZXZlbnRcclxuICB9XHJcblxyXG4gIGRhdGVjaGFuZ2UoZXZlbnQ6IFRpbWVQZXJpb2QpIHtcclxuICAgIGlmICghZXZlbnQuZW5kRGF0ZSB8fCAhZXZlbnQuc3RhcnREYXRlKSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgdGhpcy5wYXlsb2FkLmZyb21EYXRlID0gZXZlbnQuc3RhcnREYXRlXHJcbiAgICB0aGlzLnBheWxvYWQudG9EYXRlID0gZXZlbnQuZW5kRGF0ZVxyXG4gICAgY29uc3Qgc3RhcnQgPSBkYXlqcyh0aGlzLnBheWxvYWQuZnJvbURhdGUpO1xyXG4gICAgY29uc3QgZW5kID0gZGF5anModGhpcy5wYXlsb2FkLnRvRGF0ZSk7XHJcblxyXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGluIHRoZSBzcGVjaWZpZWQgdW5pdFxyXG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IGVuZC5kaWZmKHN0YXJ0LCAnZGF5cycpO1xyXG4gICAgaWYgKGRpZmZlcmVuY2UgPiAzMCkge1xyXG4gICAgICB0aGlzLm1heGRheXNSZWFjaGVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF4ZGF5c1JlYWNoZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuY3N2aGVpZ2h0ID0gJyc7XHJcbiAgICB0aGlzLmdldHN0b3JlID0gZmFsc2VcclxuICAgICBpZih0aGlzLnBheWxvYWQuZmlsdGVydHlwZT09PSdDbHVzdGVycycpe1xyXG4gICAgICAgIHRoaXMuZ2V0U3RvcmVEYXRhKClcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5nZXR1c2VyRGF0YSgpXHJcbiAgICAgIH1cclxuICB9XHJcbiAgZGF5anMgPSBkYXlqcztcclxuICBpc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgIGNvbnN0IGlzVmFsaWREYXRlID0gbSA+IHRoaXMuZGF5anMoKTtcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbiAgfVxyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPVxyXG4gICAgICAgICAgbSA+IHRoaXMuZGF5anMoKSB8fCBtID4gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDkwLCBcImRheXNcIikpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/IFwiaW52YWxpZC1kYXRlXCIgOiBmYWxzZTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMuZ2V0QWxsQ2hlY2tMaXN0cyhmYWxzZSlcclxuICB9XHJcbiAgb25TZWxlY3QodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5wcmV2aWV3VHlwZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXlsb2FkLnByZXZpZXdUeXBlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdjbG9zZScpO1xyXG4gICAgY29uc3QgdHJpZ2dlckJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0cmlnZ2VyQnV0dG9uSWQnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIHRyaWdnZXJCdXR0b24/LmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5nZXRzdG9yZSA9IHRydWVcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkU3RvcmUgJiYgdGhpcy5zZWxlY3RlZFN0b3JlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5wYXlsb2FkLnN0b3JlSWRzID0gdGhpcy5zZWxlY3RlZFN0b3JlLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnN0b3JlSWQpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZHVzZXJzICYmIHRoaXMuc2VsZWN0ZWR1c2Vycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucGF5bG9hZC51c2VyRW1haWxMaXN0ID0gdGhpcy5zZWxlY3RlZHVzZXJzLm1hcCgoZGF0YTogYW55KSA9PiBkYXRhLnVzZXJFbWFpbClcclxuICAgIH1cclxuICAgIHRoaXMucGF5bG9hZC5mcm9tRGF0ZSA9IGRheWpzKHRoaXMucGF5bG9hZC5mcm9tRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJylcclxuICAgIHRoaXMucGF5bG9hZC50b0RhdGUgPSBkYXlqcyh0aGlzLnBheWxvYWQudG9EYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKVxyXG4gICAgY29uc29sZS5sb2codGhpcy5wYXlsb2FkKVxyXG4gICAgdGhpcy50cmF4U2VydmljZS5yZXBvcnRUYWJsZUV4cG9ydCh0aGlzLnBheWxvYWQpPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRzdG9yZSA9IGZhbHNlXHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWNjZXNzJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZ2V0c3RvcmUgPSBmYWxzZVxyXG4gICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnZXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKVxyXG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoYDxkaXY+PHNwYW4gY2xhc3M9XCJtZS04XCIgPiR7ZXJyPy5lcnJvcj8uZXJyb3I/LmVycm9yfTwvc3Bhbj48L2Rpdj5gKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuXHJcblxyXG4gIH1cclxuICBjc3ZoZWlnaHQgPSAnJztcclxuICBkYXRlaGVpZ2h0KCkge1xyXG4gICAgdGhpcy5jc3ZoZWlnaHQgPSBcIjMwMHB4XCJcclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBncm91cC1kZWxldGUgcHktMCBzY3JvbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMCBkLWZsZXggZmxleC1zdGFydCBmbGV4LWNvbHVtbiBwLTkgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTM3IDMxVjM1QzM3IDM1LjUzMDQgMzYuNzg5MyAzNi4wMzkxIDM2LjQxNDIgMzYuNDE0MkMzNi4wMzkxIDM2Ljc4OTMgMzUuNTMwNCAzNyAzNSAzN0gyMUMyMC40Njk2IDM3IDE5Ljk2MDkgMzYuNzg5MyAxOS41ODU4IDM2LjQxNDJDMTkuMjEwNyAzNi4wMzkxIDE5IDM1LjUzMDQgMTkgMzVWMzFNMjMgMjZMMjggMzFNMjggMzFMMzMgMjZNMjggMzFWMTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPnt7dHlwZX19PC9hPlxyXG5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInR5cGUgPT09J0V4cG9ydCBhcyBDU1YnXCIgY2xhc3M9XCJmdy1ub3JtYWwgbXQtMlwiPjxzcGFuIGNsYXNzPVwiZGFyay1saW5lMVwiPk9uZSBvZiB5b3VyIHRlYW0gaGFzXHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0ZWQgZWRpdCBhY2Nlc3MgdG8geW91ciBwcm9qZWN0PC9zcGFuPiA8c3BhbiBjbGFzcz1cImRhcmstbGluZSBtcy0xXCI+V2Vic2l0ZSBEZXNpZ24uPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0nRXhwb3J0IGFzIENTVidcIiBjbGFzcz1cImNvbC1tZC0xMiBwb3NpdGlvbi1yZWxhdGl2ZSBtdC0zIGgtMzUwcHhcIj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJ0b3A6IDIlO1wiIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTQgXCIgI2RhdGVSYW5nZVBpY2tlcklucHV0XHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDsgei1pbmRleDogMTA1MCAhaW1wb3J0YW50O1wiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWRcclxuICAgICAgICAgICAgICAgIFtkcm9wc109XCInZG93bidcIiBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCIgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbF09XCJmYWxzZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiAoY2xpY2spPVwiZGF0ZWhlaWdodCgpXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIFthdXRvQXBwbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTggbWItNCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItb3ZlcmxheVwiICpuZ0lmPVwidGhpcy5wYXlsb2FkLmZpbHRlcnR5cGU9PT0nQ2x1c3RlcnMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBTdG9yZXNcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXN0b3Jlcy1zZWxlY3QgKm5nSWY9XCJ0aGlzLnBheWxvYWQuZmlsdGVydHlwZT09PSdDbHVzdGVycydcIiBbaXRlbXNdPVwic3RvcmVMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCIgW211bHRpXT1cInRydWVcIiBbc2VhcmNoRmllbGRdPVwiJ3N0b3JlTmFtZSdcIiBbaWRGaWVsZF09XCInc3RvcmVJZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwib25TdG9yZVNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cInNlbGVjdGVkU3RvcmVcIj48L2xpYi1zdG9yZXMtc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItb3ZlcmxheVwiICpuZ0lmPVwidGhpcy5wYXlsb2FkLmZpbHRlcnR5cGU9PT0nVGVhbXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBVc2Vyc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItc3RvcmVzLXNlbGVjdCAqbmdJZj1cInRoaXMucGF5bG9hZC5maWx0ZXJ0eXBlPT09J1RlYW1zJ1wiIFtpdGVtc109XCJ1c2VyTGlzdFwiIFtkaXNhYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aV09XCJ0cnVlXCIgW3NlYXJjaEZpZWxkXT1cIid1c2VyTmFtZSdcIiBbaWRGaWVsZF09XCIndXNlck5hbWUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cIm9udXNlclNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cInNlbGVjdGVkdXNlcnNcIj48L2xpYi1zdG9yZXMtc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwidHlwZSA9PT0nRXhwb3J0IGFzIENTVidcIiBbbmdDbGFzc109XCJtYXhkYXlzUmVhY2hlZCA/ICdmbGFnY2xvdXInOicnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJkYXJrLWxpbmUxIGZ3LW5vcm1hbCBtdC0yXCI+RGF0YSBkb3dubG9hZHMgYXJlIGxpbWl0ZWQgdG8gb25lIG1vbnRoIGF0IGEgdGltZS48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0eXBlID09PSdFeHBvcnQgYXMgUERGJ1wiIGNsYXNzPVwiZGFyay1saW5lMSBmdy1ub3JtYWwgbXQtMlwiPlRoaXMgYmxvZyBwb3N0IGhhcyBiZWVuIHB1Ymxpc2hlZC4gVGVhbVxyXG4gICAgICAgICAgICBtZW1iZXJzIHdpbGwgYmUgYWJsZSB0byBlZGl0IHRoaXMgcG9zdCBhbmQgcmVwdWJsaXNoIGNoYW5nZXMuPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlPT09J0V4cG9ydCBhcyBQREYnXCIgY2xhc3M9XCJjb2wtbWQtMTIgIG10LTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj5TZWxlY3QgY2hlY2tsaXN0PC9sYWJlbD5cclxuICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbj48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuNjY1NCAxLjY2NjAySDQuOTk4N0M0LjU1NjY3IDEuNjY2MDIgNC4xMzI3NSAxLjg0MTYxIDMuODIwMTkgMi4xNTQxN0MzLjUwNzYzIDIuNDY2NzMgMy4zMzIwMyAyLjg5MDY1IDMuMzMyMDMgMy4zMzI2OFYxNi42NjZDMy4zMzIwMyAxNy4xMDggMy41MDc2MyAxNy41MzIgMy44MjAxOSAxNy44NDQ1QzQuMTMyNzUgMTguMTU3MSA0LjU1NjY3IDE4LjMzMjcgNC45OTg3IDE4LjMzMjdIMTQuOTk4N0MxNS40NDA3IDE4LjMzMjcgMTUuODY0NiAxOC4xNTcxIDE2LjE3NzIgMTcuODQ0NUMxNi40ODk4IDE3LjUzMiAxNi42NjU0IDE3LjEwOCAxNi42NjU0IDE2LjY2NlY2LjY2NjAyTTExLjY2NTQgMS42NjYwMkwxNi42NjU0IDYuNjY2MDJNMTEuNjY1NCAxLjY2NjAyVjYuNjY2MDJIMTYuNjY1NE0xMy4zMzIgMTAuODMyN0g2LjY2NTM2TTEzLjMzMiAxNC4xNjZINi42NjUzNk04LjMzMjAzIDcuNDk5MzVINi42NjUzNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5TdG9yZSBPcGVyYXRpb24gY2hlY2tsaXN0PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlPT09J0V4cG9ydCBhcyBQREYnXCIgY2xhc3M9XCJjb2wtbWQtMTIgIG10LTNcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj5TZWxlY3QgU3RvcmU8L2xhYmVsPlxyXG4gICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInR5cGU9PT0nRXhwb3J0IGFzIFBERidcIiBjbGFzcz1cImNvbC1tZC0xMiBwb3NpdGlvbi1yZWxhdGl2ZSBtdC01XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwidG9wOiAyMCU7XCIgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiICNkYXRlUmFuZ2VQaWNrZXJJbnB1dFxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtaW4td2lkdGg6IDI2MHB4ICFpbXBvcnRhbnQ7IHotaW5kZXg6IDEwNTAgIWltcG9ydGFudDtcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kXHJcbiAgICAgICAgICAgICAgICBbZHJvcHNdPVwiJ2Rvd24nXCIgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFtvcGVuc109XCIncmlnaHQnXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cImZhbHNlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgW2F1dG9BcHBseV09XCJ0cnVlXCIgKHN0YXJ0RGF0ZUNoYW5nZWQpPVwib25TdGFydERhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbaXNDdXN0b21EYXRlXT1cImlzQ3VzdG9tRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlIGZ3LW5vcm1hbCBtdC0yXCI+T25seSAxIGRheSBkYXRhIGNhbiBiZSBkb3dubG9hZGVkPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0eXBlPT09J0V4cG9ydCBhcyBQUFQnfHx0eXBlPT09J0V4cG9ydCBhcyBaSVAnXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgbWluLXctMjAwcHggY3Vyc29yLXBvaW50ZXIgcHktMyBweC00IG1lLTYgbWItM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicHJldmlld1R5cGUgPT09ICdpbWFnZScgPyAnbmF2LWxpbmUtdGFiczEnIDogJ2JvcmRlci1ncmF5LTMwMCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdCgnaW1hZ2UnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInByZXZpZXdUeXBlID09PSAnaW1hZ2UnXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk01IDIxSDE5QzIwLjEwNDYgMjEgMjEgMjAuMTA0NiAyMSAxOVY1QzIxIDMuODk1NDMgMjAuMTA0NiAzIDE5IDNINUMzLjg5NTQzIDMgMyAzLjg5NTQzIDMgNVYxOUMzIDIwLjEwNDYgMy44OTU0MyAyMSA1IDIxWk01IDIxTDE2IDEwTDIxIDE1TTEwIDguNUMxMCA5LjMyODQzIDkuMzI4NDMgMTAgOC41IDEwQzcuNjcxNTcgMTAgNyA5LjMyODQzIDcgOC41QzcgNy42NzE1NyA3LjY3MTU3IDcgOC41IDdDOS4zMjg0MyA3IDEwIDcuNjcxNTcgMTAgOC41WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInByZXZpZXdUeXBlID09PSAndmlkZW8nXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk01IDIxSDE5QzIwLjEwNDYgMjEgMjEgMjAuMTA0NiAyMSAxOVY1QzIxIDMuODk1NDMgMjAuMTA0NiAzIDE5IDNINUMzLjg5NTQzIDMgMyAzLjg5NTQzIDMgNVYxOUMzIDIwLjEwNDYgMy44OTU0MyAyMSA1IDIxWk01IDIxTDE2IDEwTDIxIDE1TTEwIDguNUMxMCA5LjMyODQzIDkuMzI4NDMgMTAgOC41IDEwQzcuNjcxNTcgMTAgNyA5LjMyODQzIDcgOC41QzcgNy42NzE1NyA3LjY3MTU3IDcgOC41IDdDOS4zMjg0MyA3IDEwIDcuNjcxNTcgMTAgOC41WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInByZXZpZXdUeXBlID09PSAnaW1hZ2UnID8gJ3RleHQtYm9yZGVyLXByaWFtcnknIDogJ3RleHR2YWx1ZSdcIj5JbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgbWluLXctMjAwcHggY3Vyc29yLXBvaW50ZXIgcHktMyBweC00ICBtYi0zXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJwcmV2aWV3VHlwZSA9PT0gJ3ZpZGVvJyA/ICduYXYtbGluZS10YWJzMScgOiAnYm9yZGVyLWdyYXktMzAwJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KCd2aWRlbycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwicHJldmlld1R5cGUgPT09ICdpbWFnZSdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDIyQzE3LjUyMjggMjIgMjIgMTcuNTIyOCAyMiAxMkMyMiA2LjQ3NzE1IDE3LjUyMjggMiAxMiAyQzYuNDc3MTUgMiAyIDYuNDc3MTUgMiAxMkMyIDE3LjUyMjggNi40NzcxNSAyMiAxMiAyMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgOEwxNiAxMkwxMCAxNlY4WlwiIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInByZXZpZXdUeXBlID09PSAndmlkZW8nXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMiAyMkMxNy41MjI4IDIyIDIyIDE3LjUyMjggMjIgMTJDMjIgNi40NzcxNSAxNy41MjI4IDIgMTIgMkM2LjQ3NzE1IDIgMiA2LjQ3NzE1IDIgMTJDMiAxNy41MjI4IDYuNDc3MTUgMjIgMTIgMjJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDhMMTYgMTJMMTAgMTZWOFpcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJwcmV2aWV3VHlwZSA9PT0gJ3ZpZGVvJyA/ICd0ZXh0LWJvcmRlci1wcmlhbXJ5JyA6ICd0ZXh0dmFsdWUnXCI+VmlkZW88L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPGxhYmVsIGZvcj1cImRyb3Bkb3duXCIgY2xhc3M9XCJtLTQgZnMtNFwiPkNob29zZSBhbiBvcHRpb246IDwvbGFiZWw+IC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxzZWxlY3QgaWQ9XCJkcm9wZG93blwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJwcmV2aWV3VHlwZVwiIChjaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIidpbWFnZSdcIj5JbWFnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIid2aWRlbydcIj5WaWRlbzwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInR5cGUgPT09J0V4cG9ydCBhcyBDU1YnXCIgY2xhc3M9XCJyb3cgdy0xMDBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0yIHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHJvbGU9XCJncm91cFwiIGNsYXNzPVwiZC1mbGV4IG10LTMgbWItMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTJcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYWxlcnQtdG9hc3RcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0yXCIgW2Rpc2FibGVkXT1cIm1heGRheXNSZWFjaGVkfHxnZXRzdG9yZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCI+Q29uZmlybTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0nRXhwb3J0IGFzIENTVidcIiBjbGFzcz1cIm10LTIgdy0xMDAgdGV4dC1lbmRcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgcm9sZT1cImdyb3VwXCIgY2xhc3M9XCJkLWZsZXggbXQtMyBtYi0xNVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtZS0yXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYWxlcnQtdG9hc3RcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0yXCIgW2Rpc2FibGVkXT1cIm1heGRheXNSZWFjaGVkfHxnZXRzdG9yZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5Db25maXJtPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19