@colijnit/sharedcomponents 1.0.20 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/colijnit-sharedcomponents.umd.js +161 -122
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.d.ts +3 -3
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/colijnit-sharedcomponents.js +4 -4
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +39 -33
- package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +7 -4
- package/esm2015/lib/components/stock/stock.component.js +33 -18
- package/esm2015/lib/components/stock/stock.module.js +2 -4
- package/esm2015/lib/service/shared-connector.service.js +37 -19
- package/esm2015/lib/service/stock.service.js +31 -22
- package/fesm2015/colijnit-sharedcomponents.js +160 -111
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +6 -7
- package/lib/components/stock/stock.component.d.ts +10 -6
- package/lib/components/stock/style/_layout.scss +1 -2
- package/lib/components/stock/style/_material-definition.scss +1 -1
- package/lib/service/shared-connector.service.d.ts +5 -3
- package/lib/service/stock.service.d.ts +9 -4
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import { IconCacheService } from "../../service/icon-cache.service";
|
|
|
5
5
|
import { SendOption } from "./enums/send-option";
|
|
6
6
|
import { animate, state, style, transition, trigger } from "@angular/animations";
|
|
7
7
|
import { StockService } from "../../service/stock.service";
|
|
8
|
-
import {
|
|
8
|
+
import { StockStickersPrintLayouts } from "@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo";
|
|
9
9
|
import { OptionsService } from "../../service/options.service";
|
|
10
10
|
import { DictionaryService } from "../../service/dictionary.service";
|
|
11
11
|
export class SendMethodDialogComponent {
|
|
@@ -21,22 +21,20 @@ export class SendMethodDialogComponent {
|
|
|
21
21
|
this.showPrintOption = true;
|
|
22
22
|
this.showPdfOption = true;
|
|
23
23
|
this.showXmlOption = true;
|
|
24
|
+
this.showPrintPriceStickers = false;
|
|
25
|
+
this.showPrintStockStickers = true;
|
|
24
26
|
this.sendOptions = [
|
|
25
27
|
{ option: SendOption.Email,
|
|
26
28
|
iconName: this.icons.Email,
|
|
27
|
-
show: this.showEmailOption,
|
|
28
29
|
},
|
|
29
30
|
{ option: SendOption.Print,
|
|
30
31
|
iconName: this.icons.Print,
|
|
31
|
-
show: this.showPrintOption,
|
|
32
32
|
},
|
|
33
33
|
{ option: SendOption.Pdf,
|
|
34
34
|
iconName: this.icons.Pdf,
|
|
35
|
-
show: this.showPdfOption,
|
|
36
35
|
},
|
|
37
36
|
{ option: SendOption.Xml,
|
|
38
37
|
iconName: this.icons.Xml,
|
|
39
|
-
show: this.showXmlOption,
|
|
40
38
|
}
|
|
41
39
|
];
|
|
42
40
|
this.activeSendOption = SendOption.Email;
|
|
@@ -44,6 +42,7 @@ export class SendMethodDialogComponent {
|
|
|
44
42
|
this.showPrinterSelections = false;
|
|
45
43
|
this.showExitButton = true;
|
|
46
44
|
this.printTemplatesField = { text: "name", value: "reportId" };
|
|
45
|
+
this.priceListDataField = { text: "name", value: "priceListCode" };
|
|
47
46
|
this.upAndLoaded = false;
|
|
48
47
|
this.emails = ['lars.vdv@colijn-it.nl', 'david@colijn-it.nl', 'ruben@colijn-it.nl'];
|
|
49
48
|
this.models = [false, false, true];
|
|
@@ -52,24 +51,8 @@ export class SendMethodDialogComponent {
|
|
|
52
51
|
this.startSignatureClicked = new EventEmitter();
|
|
53
52
|
this.printButtonClicked = new EventEmitter();
|
|
54
53
|
this._subscriptions = [];
|
|
55
|
-
this._publicOptions = true;
|
|
56
54
|
this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)));
|
|
57
55
|
}
|
|
58
|
-
set options(value) {
|
|
59
|
-
if (value) {
|
|
60
|
-
if (typeof value === "string") {
|
|
61
|
-
this._options = JSON.parse(value);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
this._options = value;
|
|
65
|
-
}
|
|
66
|
-
this._publicOptions = true;
|
|
67
|
-
this._optionsService.initialize(this._options).then();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
get options() {
|
|
71
|
-
return this._options;
|
|
72
|
-
}
|
|
73
56
|
set articleData(data) {
|
|
74
57
|
this.stockService.printSticker.goodId = data.goodId;
|
|
75
58
|
this.stockService.printSticker.warehouse = data.warehouseNo;
|
|
@@ -96,7 +79,6 @@ export class SendMethodDialogComponent {
|
|
|
96
79
|
}
|
|
97
80
|
handlePrintClicked() {
|
|
98
81
|
// this.printButtonClicked.emit();
|
|
99
|
-
console.log(this.stockService.printSticker);
|
|
100
82
|
if (this.stockService.printSticker.printerName) {
|
|
101
83
|
this.stockService.getPrintStockStickers(this.stockService.printSticker);
|
|
102
84
|
}
|
|
@@ -119,7 +101,7 @@ export class SendMethodDialogComponent {
|
|
|
119
101
|
}
|
|
120
102
|
getPrintTemplates() {
|
|
121
103
|
if (!this.printTemplates) {
|
|
122
|
-
const data = new
|
|
104
|
+
const data = new StockStickersPrintLayouts();
|
|
123
105
|
this.stockService.getStockStickerTemplates(data).then((templates) => {
|
|
124
106
|
this.printTemplates = templates;
|
|
125
107
|
});
|
|
@@ -158,7 +140,8 @@ SendMethodDialogComponent.decorators = [
|
|
|
158
140
|
<div class="dialog-content-wrapper">
|
|
159
141
|
<div class="main-content-container" *ngIf="!showPrinterSelections">
|
|
160
142
|
<div class="send-options-wrapper">
|
|
161
|
-
<div class="custom-button-wrapper"
|
|
143
|
+
<div class="custom-button-wrapper"
|
|
144
|
+
*ngFor="let sendOption of sendOptions"
|
|
162
145
|
[class.selected-option]="sendOption.option === activeSendOption"
|
|
163
146
|
(click)="activeSendOption = sendOption.option">
|
|
164
147
|
<co-icon [iconData]="iconCacheService.getIcon(sendOption.iconName)"></co-icon>
|
|
@@ -193,13 +176,34 @@ SendMethodDialogComponent.decorators = [
|
|
|
193
176
|
</div>
|
|
194
177
|
|
|
195
178
|
<div class="email-option-content" *ngIf="activeSendOption === sendOption.Print" (click)="getPrintTemplates()">
|
|
196
|
-
<div
|
|
197
|
-
<
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
179
|
+
<div *ngIf="showPrintPriceStickers">
|
|
180
|
+
<div class="lov-wrapper">
|
|
181
|
+
<co-input-combo-box
|
|
182
|
+
[(model)]="stockService.printPriceSticker.reportId"
|
|
183
|
+
[collection]="printTemplates"
|
|
184
|
+
[fields]="printTemplatesField"
|
|
185
|
+
placeholder="Layout"
|
|
186
|
+
></co-input-combo-box>
|
|
187
|
+
</div>
|
|
188
|
+
<div class="lov-wrapper" *ngIf="priceListCodeData">
|
|
189
|
+
<co-input-combo-box
|
|
190
|
+
[(model)]="stockService.printPriceSticker.priceListCode"
|
|
191
|
+
[collection]="priceListCodeData"
|
|
192
|
+
[fields]="priceListDataField"
|
|
193
|
+
placeholder="Layout"
|
|
194
|
+
></co-input-combo-box>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
|
|
198
|
+
<div *ngIf="showPrintStockStickers">
|
|
199
|
+
<div class="lov-wrapper">
|
|
200
|
+
<co-input-combo-box
|
|
201
|
+
[(model)]="stockService.printSticker.reportId"
|
|
202
|
+
[collection]="printTemplates"
|
|
203
|
+
[fields]="printTemplatesField"
|
|
204
|
+
placeholder="Layout"
|
|
205
|
+
></co-input-combo-box>
|
|
206
|
+
</div>
|
|
203
207
|
</div>
|
|
204
208
|
|
|
205
209
|
<div class="lov-wrapper clickable" (click)="togglePrinterSelection()">
|
|
@@ -291,7 +295,9 @@ SendMethodDialogComponent.propDecorators = {
|
|
|
291
295
|
showPrintOption: [{ type: Input }],
|
|
292
296
|
showPdfOption: [{ type: Input }],
|
|
293
297
|
showXmlOption: [{ type: Input }],
|
|
294
|
-
|
|
298
|
+
showPrintPriceStickers: [{ type: Input }],
|
|
299
|
+
showPrintStockStickers: [{ type: Input }],
|
|
300
|
+
priceListCodeData: [{ type: Input }],
|
|
295
301
|
showDialog: [{ type: Input }],
|
|
296
302
|
headerTitle: [{ type: Input }],
|
|
297
303
|
printerList: [{ type: Input }],
|
|
@@ -300,4 +306,4 @@ SendMethodDialogComponent.propDecorators = {
|
|
|
300
306
|
printButtonClicked: [{ type: Output }],
|
|
301
307
|
showClass: [{ type: HostBinding, args: ["class.ione-send-method-dialog",] }]
|
|
302
308
|
};
|
|
303
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXRob2QtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9zZW5kLW1ldGhvZC1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFHbkgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBc0luRSxNQUFNLE9BQU8seUJBQXlCO0lBaUdwQyxZQUNTLGdCQUFrQyxFQUNsQyxZQUEwQixFQUN6QixlQUErQixFQUMvQixXQUE4QixFQUM5QixlQUFrQztRQUpuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMv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S0FBSzs0QkFHTCxLQUFLOzRCQUdMLEtBQUs7c0JBcUNMLEtBQUs7eUJBaUJMLEtBQUs7MEJBR0wsS0FBSzswQkFHTCxLQUFLOzBCQUdMLEtBQUs7b0NBTUwsTUFBTTtpQ0FHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1NlbmRPcHRpb259IGZyb20gXCIuL2VudW1zL3NlbmQtb3B0aW9uXCI7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xyXG5pbXBvcnQge1ByaW50ZXJ9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3JlcG9ydC9wcmludGVyLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zdG9jay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0c0JvfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9tb2RlbC9yZXBvcnQvc3RvY2stc3RpY2tlcnMtcHJpbnQtbGF5b3V0cy5ib1wiO1xyXG5pbXBvcnQge0NvRHJvcERvd25MaXN0RmllbGRzfSBmcm9tIFwiLi4vc3RvY2svc3RvY2stdHJhbnNmZXIvY28tZHJvcC1kb3duLWxpc3QtZmllbGRzLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvb3B0aW9ucy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaW9uZS1zZW5kLW1ldGhvZC1kaWFsb2dcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInNlbmQtbWV0aG9kLWRpYWxvZy13cmFwcGVyXCI+XHJcbiAgICAgIDxjby1kaWFsb2ctd2l6YXJkIGlkPVwic2VuZE9wdGlvbnNEaWFsb2dcIiAqbmdJZj1cInNob3dEaWFsb2dcIiBbc2hvd0Nsb3NlSWNvbl09XCJzaG93RXhpdEJ1dHRvblwiIChjbG9zZUNsaWNrKT1cImNsb3NlRGlhbG9nQ2xpY2soKVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPlxyXG4gICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImhlYWRlclRpdGxlXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudC13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50LWNvbnRhaW5lclwiICpuZ0lmPVwiIXNob3dQcmludGVyU2VsZWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VuZC1vcHRpb25zLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWJ1dHRvbi13cmFwcGVyXCIgKm5nRm9yPVwibGV0IHNlbmRPcHRpb24gb2Ygc2VuZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLW9wdGlvbl09XCJzZW5kT3B0aW9uLm9wdGlvbiA9PT0gYWN0aXZlU2VuZE9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZlU2VuZE9wdGlvbiA9IHNlbmRPcHRpb24ub3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKHNlbmRPcHRpb24uaWNvbk5hbWUpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbC1vcHRpb24tY29udGVudFwiICpuZ0lmPVwiYWN0aXZlU2VuZE9wdGlvbiA9PT0gc2VuZE9wdGlvbi5FbWFpbCB8fCBhY3RpdmVTZW5kT3B0aW9uID09PSBzZW5kT3B0aW9uLlBkZlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbHMtY29udGFpbmVyXCIgKm5nSWY9XCJhY3RpdmVTZW5kT3B0aW9uID09PSBzZW5kT3B0aW9uLkVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVtYWlsLCBsZXQgaW5kZXggb2YgZW1haWxzXCJcclxuICAgICAgICAgICAgICAgICAgW25hbWVdPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbHNbaW5kZXhdXCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgW2Nzc0NsYXNzXT1cIidpbnB1dC1jaGVja2JveC13cmFwcGVyJ1wiXHJcbiAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvdi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtY29tYm8tYm94XHJcbiAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInNlbGVjdGVkTGF5b3V0XCJcclxuICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwibGF5b3V0c1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JjZVJlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkxheW91dFwiXHJcbiAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jb21iby1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWduYXR1cmUtYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tYnV0dG9uLXdyYXBwZXIgc2lnbmF0dXJlLWJ1dHRvblwiIChjbGljayk9XCJoYW5kbGVTaWduYXR1cmVTdGFydCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuU2lnbmF0dXJlRmllbGQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtYWlsLW9wdGlvbi1jb250ZW50XCIgKm5nSWY9XCJhY3RpdmVTZW5kT3B0aW9uID09PSBzZW5kT3B0aW9uLlByaW50XCIgKGNsaWNrKT1cImdldFByaW50VGVtcGxhdGVzKClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG92LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jb21iby1ib3hcclxuICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic3RvY2tTZXJ2aWNlLnByaW50U3RpY2tlci5yZXBvcnRJZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInByaW50VGVtcGxhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJwcmludFRlbXBsYXRlc0ZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJMYXlvdXRcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY29tYm8tYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG92LXdyYXBwZXIgY2xpY2thYmxlXCIgKGNsaWNrKT1cInRvZ2dsZVByaW50ZXJTZWxlY3Rpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLXByaW50ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpbnRlci1vcHRpb24tbGlzdC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJwcmludGVyLWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlByaW50KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpbnRlci1kZXRhaWxzXCIgKm5nSWY9XCJwcmludGVyTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmludGVyLW5hbWVcIiBbdGV4dENvbnRlbnRdPVwiZGVmYXVsdFByaW50ZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByaW50ZXItc3RhdHVzXCIgW3RleHRDb250ZW50XT1cImRlZmF1bHRQcmludGVyLmFjY2VwdGluZ0pvYnNcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInNlbGVjdC1wcmludGVyLWFycm93XCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50UmlnaHQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFuZGFyZC1wcmludGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFuZGFyZC1wcmludGVyLWxpbmtcIiAoY2xpY2spPVwic2hvd1N0YW5kYXJkUHJpbnRlck9wdGlvbnMgPSAhc2hvd1N0YW5kYXJkUHJpbnRlck9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJhcnJvdy1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd0ZhdFJpZ2h0KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGFuZGFyZC1wcmludGVyLW1lc3NhZ2VcIiBbdGV4dENvbnRlbnRdPVwiJ1N0YW5kYWFyZCBwcmludGVyIHZvb3IgbGF5LW91dCBpbnN0ZWxsZW4nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YW5kYXJkLXByaW50ZXItc2VsZWN0aW9uc1wiICpuZ0lmPVwic2hvd1N0YW5kYXJkUHJpbnRlck9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWxzWzBdXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1BlciBnZWJydWlrZXIgaW5zdGVsbGVuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Nzc0NsYXNzXT1cIidpbnB1dC1jaGVja2JveC13cmFwcGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbHNbMV1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVm9vciBhbGxlIGdlYnJ1aWtlcnMgaW5zdGVsbGVuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Nzc0NsYXNzXT1cIidpbnB1dC1jaGVja2JveC13cmFwcGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmludC1mb290ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LW51bWJlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyIGNsYXNzPVwibnVtYmVyLXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cIjFcIiBbKG1vZGVsKV09XCJzdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyLmFtb3VudFwiIFttaW5dPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7ZGVib3VuY2U6IDF9XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1idXR0b24td3JhcHBlciBwcmludC1idXR0b25cIiAoY2xpY2spPVwiaGFuZGxlUHJpbnRDbGlja2VkKClcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidQcmludCdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tYnV0dG9uLXdyYXBwZXIgc2lnbmF0dXJlLWJ1dHRvblwiIChjbGljayk9XCJoYW5kbGVTaWduYXR1cmVTdGFydCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuU2lnbmF0dXJlRmllbGQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByaW50ZXItY29udGVudC1jb250YWluZXJcIiBAc2xpZGVJbk91dCAqbmdJZj1cInNob3dQcmludGVyU2VsZWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtcHJpbnRlci13cmFwcGVyIHNlbGVjdGlvbiBjbGlja2FibGVcIiAqbmdGb3I9XCJsZXQgcHJpbnRlcnMgb2YgcHJpbnRlckxpc3RcIiAoY2xpY2spPVwib25QcmludGVyQ2xpY2tlZChwcmludGVycylcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpbnRlci1vcHRpb24tbGlzdC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInByaW50ZXItaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuUHJpbnQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaW50ZXItZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByaW50ZXItbmFtZVwiIFt0ZXh0Q29udGVudF09XCJwcmludGVycy5uYW1lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByaW50ZXItc3RhdHVzXCIgW3RleHRDb250ZW50XT1cInByaW50ZXJzLmFjY2VwdGluZ0pvYnNcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInNlbGVjdC1wcmludGVyLWFycm93XCIgKm5nSWY9XCIhc2hvd1ByaW50ZXJTZWxlY3Rpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRSaWdodClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvY28tZGlhbG9nLXdpemFyZD5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdzbGlkZUluT3V0JywgW1xyXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScsIHdpZHRoOiAnMTAwJScsIG9wYWNpdHk6ICcxJ30pKSxcclxuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxNTAlKScsIG9wYWNpdHk6ICcwJ30pKSxcclxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgYW5pbWF0ZSgyNTApKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU2VuZE1ldGhvZERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbmRPcHRpb246IHR5cGVvZiBTZW5kT3B0aW9uID0gU2VuZE9wdGlvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0VtYWlsT3B0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1ByaW50T3B0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1BkZk9wdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dYbWxPcHRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgc2VuZE9wdGlvbnM6IHtvcHRpb246IFNlbmRPcHRpb24sIGljb25OYW1lOiBJY29uLCBzaG93OiBib29sZWFufVtdID0gW1xyXG4gICAgeyBvcHRpb246IFNlbmRPcHRpb24uRW1haWwsXHJcbiAgICAgIGljb25OYW1lOiB0aGlzLmljb25zLkVtYWlsLFxyXG4gICAgICBzaG93OiB0aGlzLnNob3dFbWFpbE9wdGlvbixcclxuICAgIH0sXHJcbiAgICB7IG9wdGlvbjogU2VuZE9wdGlvbi5QcmludCxcclxuICAgICAgaWNvbk5hbWU6IHRoaXMuaWNvbnMuUHJpbnQsXHJcbiAgICAgIHNob3c6IHRoaXMuc2hvd1ByaW50T3B0aW9uLFxyXG4gICAgfSxcclxuICAgIHsgb3B0aW9uOiBTZW5kT3B0aW9uLlBkZixcclxuICAgICAgaWNvbk5hbWU6IHRoaXMuaWNvbnMuUGRmLFxyXG4gICAgICBzaG93OiB0aGlzLnNob3dQZGZPcHRpb24sXHJcbiAgICB9LFxyXG4gICAgeyBvcHRpb246IFNlbmRPcHRpb24uWG1sLFxyXG4gICAgICBpY29uTmFtZTogdGhpcy5pY29ucy5YbWwsXHJcbiAgICAgIHNob3c6IHRoaXMuc2hvd1htbE9wdGlvbixcclxuICAgIH1cclxuICBdXHJcblxyXG4gIHB1YmxpYyBhY3RpdmVTZW5kT3B0aW9uOiBTZW5kT3B0aW9uID0gU2VuZE9wdGlvbi5FbWFpbDtcclxuICBwdWJsaWMgc2hvd1N0YW5kYXJkUHJpbnRlck9wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1ByaW50ZXJTZWxlY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dFeGl0QnV0dG9uID0gdHJ1ZTtcclxuICBwdWJsaWMgZGVmYXVsdFByaW50ZXI6IFByaW50ZXI7XHJcbiAgcHVibGljIHByaW50VGVtcGxhdGVzOiBTdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzQm9bXTtcclxuICBwdWJsaWMgcHJpbnRUZW1wbGF0ZXNGaWVsZDogQ29Ecm9wRG93bkxpc3RGaWVsZHMgPSB7dGV4dDogXCJuYW1lXCIsIHZhbHVlOiBcInJlcG9ydElkXCJ9O1xyXG4gIHB1YmxpYyB1cEFuZExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZW1haWxzOiBhbnlbXSA9IFsnbGFycy52ZHZAY29saWpuLWl0Lm5sJywgJ2RhdmlkQGNvbGlqbi1pdC5ubCcsICdydWJlbkBjb2xpam4taXQubmwnXTtcclxuICBwdWJsaWMgbW9kZWxzOiBib29sZWFuW10gPSBbZmFsc2UsIGZhbHNlLCB0cnVlXTtcclxuXHJcbiAgcHVibGljIGxheW91dHM6IGFueVtdID0gWydMYXlvdXQgMScsICdMYXlvdXQgMicsICdMYXlvdXQgMyddO1xyXG4gIHB1YmxpYyBzZWxlY3RlZExheW91dDogJ0xheW91dCAxJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IG9wdGlvbnModmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gSlNPTi5wYXJzZSh2YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX3B1YmxpY09wdGlvbnMgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9vcHRpb25zU2VydmljZS5pbml0aWFsaXplKHRoaXMuX29wdGlvbnMpLnRoZW4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb3B0aW9ucygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93RGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGhlYWRlclRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHByaW50ZXJMaXN0OiBQcmludGVyW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhcnRpY2xlRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuc3RvY2tTZXJ2aWNlLnByaW50U3RpY2tlci5nb29kSWQgPSBkYXRhLmdvb2RJZDtcclxuICAgIHRoaXMuc3RvY2tTZXJ2aWNlLnByaW50U3RpY2tlci53YXJlaG91c2UgPSBkYXRhLndhcmVob3VzZU5vO1xyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzdGFydFNpZ25hdHVyZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBwcmludEJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmlvbmUtc2VuZC1tZXRob2QtZGlhbG9nXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF9wdWJsaWNPcHRpb25zOiBib29sZWFuID0gdHJ1ZTtcclxuICBwcml2YXRlIF9vcHRpb25zOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc3RvY2tTZXJ2aWNlOiBTdG9ja1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9vcHRpb25zU2VydmljZTogT3B0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9uc0xvYWRlZC5zdWJzY3JpYmUobG9hZGVkID0+IHRoaXMuX2hhbmRsZVNldHRpbmdzTG9hZGVkKGxvYWRlZCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQcmludGVycygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnN0b2NrU2VydmljZS5nZXRBbGxQcmludGVycyh0cnVlKS50aGVuKChsaXN0KSA9PiB7XHJcbiAgICAgIHRoaXMucHJpbnRlckxpc3QgPSBsaXN0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VEaWFsb2dDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0RpYWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNpZ25hdHVyZVN0YXJ0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGFydFNpZ25hdHVyZUNsaWNrZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVByaW50Q2xpY2tlZCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMucHJpbnRCdXR0b25DbGlja2VkLmVtaXQoKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc3RvY2tTZXJ2aWNlLnByaW50U3RpY2tlcik7XHJcbiAgICBpZiAodGhpcy5zdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyLnByaW50ZXJOYW1lKSB7XHJcbiAgICAgIHRoaXMuc3RvY2tTZXJ2aWNlLmdldFByaW50U3RvY2tTdGlja2Vycyh0aGlzLnN0b2NrU2VydmljZS5wcmludFN0aWNrZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVByaW50ZXJTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldFByaW50ZXJzKCk7XHJcbiAgICBpZiAoIXRoaXMuc2hvd1ByaW50ZXJTZWxlY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuc2hvd1ByaW50ZXJTZWxlY3Rpb25zID0gdHJ1ZTtcclxuICAgICAgdGhpcy5oZWFkZXJUaXRsZSA9ICdQcmludGVyIHNlbGVjdGllJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1ByaW50ZXJTZWxlY3Rpb25zID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaGVhZGVyVGl0bGUgPSAnVmVyemVuZG9wdGllcyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QcmludGVyQ2xpY2tlZChwcmludGVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlZmF1bHRQcmludGVyID0gcHJpbnRlci5uYW1lO1xyXG4gICAgdGhpcy5zdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyLnByaW50ZXJOYW1lID0gcHJpbnRlci5uYW1lO1xyXG4gICAgdGhpcy5zaG93UHJpbnRlclNlbGVjdGlvbnMgPSEgdGhpcy5zaG93UHJpbnRlclNlbGVjdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UHJpbnRUZW1wbGF0ZXMoKTogYW55IHtcclxuICAgIGlmICghdGhpcy5wcmludFRlbXBsYXRlcykge1xyXG4gICAgICBjb25zdCBkYXRhID0gbmV3IFN0b2NrU3RpY2tlcnNQcmludExheW91dHNCbygpO1xyXG4gICAgICB0aGlzLnN0b2NrU2VydmljZS5nZXRTdG9ja1N0aWNrZXJUZW1wbGF0ZXMoZGF0YSkudGhlbigodGVtcGxhdGVzOiBTdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzQm9bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMucHJpbnRUZW1wbGF0ZXMgPSB0ZW1wbGF0ZXM7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlU2V0dGluZ3NMb2FkZWQobG9hZGVkOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAobG9hZGVkKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2luaXRDb25uZWN0aW9uKCkudGhlbigpO1xyXG4gICAgICB0aGlzLnVwQW5kTG9hZGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2luaXRDb25uZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmNvbm5lY3QodGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucyk7XHJcblxyXG4gICAgaWYgKHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMudXJsKSB7XHJcbiAgICAgIHRoaXMuX2RpY3Rpb25hcnkucm9vdFVybCA9IHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMudXJsLnJlcGxhY2UoXCIvYWpheHNlcnZpY2VcIiwgXCJcIik7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLl9kaWN0aW9uYXJ5LnNldERpY3Rpb25hcnkodGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5sYW5ndWFnZUNvZGUpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXRob2QtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9zZW5kLW1ldGhvZC1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFHakgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBNEpuRSxNQUFNLE9BQU8seUJBQXlCO0lBb0ZwQyxZQUNTLGdCQUFrQyxFQUNsQyxZQUEwQixFQUN6QixlQUErQixFQUMvQixXQUE4QixFQUM5QixlQUFrQztRQUpuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMv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O0dBNklUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxVQUFVLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLFlBQVksRUFBRTt3QkFDcEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQzt3QkFDN0UsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7d0JBQ25FLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUN0QyxDQUFDO2lCQUNIO2FBQ0Y7OztZQW5LTyxnQkFBZ0I7WUFJaEIsWUFBWTtZQUlaLGNBQWM7WUFDZCxpQkFBaUI7WUFsQnZCLGlCQUFpQjs7OzhCQWtMaEIsS0FBSzs4QkFHTCxLQUFLOzRCQUdMLEtBQUs7NEJBR0wsS0FBSztxQ0FHTCxLQUFLO3FDQUdMLEtBQUs7Z0NBR0wsS0FBSzt5QkFrQ0wsS0FBSzswQkFHTCxLQUFLOzBCQUdMLEtBQUs7MEJBR0wsS0FBSztvQ0FNTCxNQUFNO2lDQUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCwgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U2VuZE9wdGlvbn0gZnJvbSBcIi4vZW51bXMvc2VuZC1vcHRpb25cIjtcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7UHJpbnRlcn0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvcmVwb3J0L3ByaW50ZXIuYm9cIjtcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9tb2RlbC9yZXBvcnQvc3RvY2stc3RpY2tlcnMtcHJpbnQtbGF5b3V0cy5ib1wiO1xyXG5pbXBvcnQge0NvRHJvcERvd25MaXN0RmllbGRzfSBmcm9tIFwiLi4vc3RvY2svc3RvY2stdHJhbnNmZXIvY28tZHJvcC1kb3duLWxpc3QtZmllbGRzLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvb3B0aW9ucy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaW9uZS1zZW5kLW1ldGhvZC1kaWFsb2dcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInNlbmQtbWV0aG9kLWRpYWxvZy13cmFwcGVyXCI+XHJcbiAgICAgIDxjby1kaWFsb2ctd2l6YXJkIGlkPVwic2VuZE9wdGlvbnNEaWFsb2dcIiAqbmdJZj1cInNob3dEaWFsb2dcIiBbc2hvd0Nsb3NlSWNvbl09XCJzaG93RXhpdEJ1dHRvblwiIChjbG9zZUNsaWNrKT1cImNsb3NlRGlhbG9nQ2xpY2soKVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPlxyXG4gICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImhlYWRlclRpdGxlXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudC13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50LWNvbnRhaW5lclwiICpuZ0lmPVwiIXNob3dQcmludGVyU2VsZWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VuZC1vcHRpb25zLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWJ1dHRvbi13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZW5kT3B0aW9uIG9mIHNlbmRPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1vcHRpb25dPVwic2VuZE9wdGlvbi5vcHRpb24gPT09IGFjdGl2ZVNlbmRPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2ZVNlbmRPcHRpb24gPSBzZW5kT3B0aW9uLm9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihzZW5kT3B0aW9uLmljb25OYW1lKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1haWwtb3B0aW9uLWNvbnRlbnRcIiAqbmdJZj1cImFjdGl2ZVNlbmRPcHRpb24gPT09IHNlbmRPcHRpb24uRW1haWwgfHwgYWN0aXZlU2VuZE9wdGlvbiA9PT0gc2VuZE9wdGlvbi5QZGZcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1haWxzLWNvbnRhaW5lclwiICpuZ0lmPVwiYWN0aXZlU2VuZE9wdGlvbiA9PT0gc2VuZE9wdGlvbi5FbWFpbFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbWFpbCwgbGV0IGluZGV4IG9mIGVtYWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWxzW2luZGV4XVwiXHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjc3NDbGFzc109XCInaW5wdXQtY2hlY2tib3gtd3JhcHBlcidcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb3Ytd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LWNvbWJvLWJveFxyXG4gICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzZWxlY3RlZExheW91dFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cImxheW91dHNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9yY2VSZWFkb25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJMYXlvdXRcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY29tYm8tYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lnbmF0dXJlLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWJ1dHRvbi13cmFwcGVyIHNpZ25hdHVyZS1idXR0b25cIiAoY2xpY2spPVwiaGFuZGxlU2lnbmF0dXJlU3RhcnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlNpZ25hdHVyZUZpZWxkKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbC1vcHRpb24tY29udGVudFwiICpuZ0lmPVwiYWN0aXZlU2VuZE9wdGlvbiA9PT0gc2VuZE9wdGlvbi5QcmludFwiIChjbGljayk9XCJnZXRQcmludFRlbXBsYXRlcygpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dQcmludFByaWNlU3RpY2tlcnNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb3Ytd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY29tYm8tYm94XHJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic3RvY2tTZXJ2aWNlLnByaW50UHJpY2VTdGlja2VyLnJlcG9ydElkXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJwcmludFRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJwcmludFRlbXBsYXRlc0ZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkxheW91dFwiXHJcbiAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWNvbWJvLWJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvdi13cmFwcGVyXCIgKm5nSWY9XCJwcmljZUxpc3RDb2RlRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY29tYm8tYm94XHJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic3RvY2tTZXJ2aWNlLnByaW50UHJpY2VTdGlja2VyLnByaWNlTGlzdENvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInByaWNlTGlzdENvZGVEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cInByaWNlTGlzdERhdGFGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJMYXlvdXRcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jb21iby1ib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dQcmludFN0b2NrU3RpY2tlcnNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb3Ytd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY29tYm8tYm94XHJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic3RvY2tTZXJ2aWNlLnByaW50U3RpY2tlci5yZXBvcnRJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwicHJpbnRUZW1wbGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwicHJpbnRUZW1wbGF0ZXNGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJMYXlvdXRcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jb21iby1ib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvdi13cmFwcGVyIGNsaWNrYWJsZVwiIChjbGljayk9XCJ0b2dnbGVQcmludGVyU2VsZWN0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZC1wcmludGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaW50ZXItb3B0aW9uLWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwicHJpbnRlci1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5QcmludClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaW50ZXItZGV0YWlsc1wiICpuZ0lmPVwicHJpbnRlckxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJpbnRlci1uYW1lXCIgW3RleHRDb250ZW50XT1cImRlZmF1bHRQcmludGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmludGVyLXN0YXR1c1wiIFt0ZXh0Q29udGVudF09XCJkZWZhdWx0UHJpbnRlci5hY2NlcHRpbmdKb2JzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJzZWxlY3QtcHJpbnRlci1hcnJvd1wiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhbmRhcmQtcHJpbnRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhbmRhcmQtcHJpbnRlci1saW5rXCIgKGNsaWNrKT1cInNob3dTdGFuZGFyZFByaW50ZXJPcHRpb25zID0gIXNob3dTdGFuZGFyZFByaW50ZXJPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiYXJyb3ctaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dGYXRSaWdodClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhbmRhcmQtcHJpbnRlci1tZXNzYWdlXCIgW3RleHRDb250ZW50XT1cIidTdGFuZGFhcmQgcHJpbnRlciB2b29yIGxheS1vdXQgaW5zdGVsbGVuJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFuZGFyZC1wcmludGVyLXNlbGVjdGlvbnNcIiAqbmdJZj1cInNob3dTdGFuZGFyZFByaW50ZXJPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cIm1vZGVsc1swXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidQZXIgZ2VicnVpa2VyIGluc3RlbGxlbidcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjc3NDbGFzc109XCInaW5wdXQtY2hlY2tib3gtd3JhcHBlcidcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWxzWzFdXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1Zvb3IgYWxsZSBnZWJydWlrZXJzIGluc3RlbGxlbidcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjc3NDbGFzc109XCInaW5wdXQtY2hlY2tib3gtd3JhcHBlcidcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpbnQtZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1udW1iZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciBjbGFzcz1cIm51bWJlci1waWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RlcF09XCIxXCIgWyhtb2RlbCldPVwic3RvY2tTZXJ2aWNlLnByaW50U3RpY2tlci5hbW91bnRcIiBbbWluXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie2RlYm91bmNlOiAxfVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLWlucHV0LW51bWJlci1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tYnV0dG9uLXdyYXBwZXIgcHJpbnQtYnV0dG9uXCIgKGNsaWNrKT1cImhhbmRsZVByaW50Q2xpY2tlZCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInUHJpbnQnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWJ1dHRvbi13cmFwcGVyIHNpZ25hdHVyZS1idXR0b25cIiAoY2xpY2spPVwiaGFuZGxlU2lnbmF0dXJlU3RhcnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlNpZ25hdHVyZUZpZWxkKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmludGVyLWNvbnRlbnQtY29udGFpbmVyXCIgQHNsaWRlSW5PdXQgKm5nSWY9XCJzaG93UHJpbnRlclNlbGVjdGlvbnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLXByaW50ZXItd3JhcHBlciBzZWxlY3Rpb24gY2xpY2thYmxlXCIgKm5nRm9yPVwibGV0IHByaW50ZXJzIG9mIHByaW50ZXJMaXN0XCIgKGNsaWNrKT1cIm9uUHJpbnRlckNsaWNrZWQocHJpbnRlcnMpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaW50ZXItb3B0aW9uLWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJwcmludGVyLWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlByaW50KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmludGVyLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmludGVyLW5hbWVcIiBbdGV4dENvbnRlbnRdPVwicHJpbnRlcnMubmFtZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmludGVyLXN0YXR1c1wiIFt0ZXh0Q29udGVudF09XCJwcmludGVycy5hY2NlcHRpbmdKb2JzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJzZWxlY3QtcHJpbnRlci1hcnJvd1wiICpuZ0lmPVwiIXNob3dQcmludGVyU2VsZWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50UmlnaHQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2NvLWRpYWxvZy13aXphcmQ+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignc2xpZGVJbk91dCcsIFtcclxuICAgICAgc3RhdGUoJyonLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwJSknLCB3aWR0aDogJzEwMCUnLCBvcGFjaXR5OiAnMSd9KSksXHJcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTUwJSknLCBvcGFjaXR5OiAnMCd9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMjUwKSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbmRNZXRob2REaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSBzZW5kT3B0aW9uOiB0eXBlb2YgU2VuZE9wdGlvbiA9IFNlbmRPcHRpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dFbWFpbE9wdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dQcmludE9wdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dQZGZPcHRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93WG1sT3B0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1ByaW50UHJpY2VTdGlja2VyczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93UHJpbnRTdG9ja1N0aWNrZXJzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJpY2VMaXN0Q29kZURhdGE6IGFueVxyXG5cclxuICBwdWJsaWMgc2VuZE9wdGlvbnM6IHtvcHRpb246IFNlbmRPcHRpb24sIGljb25OYW1lOiBJY29ufVtdID0gW1xyXG4gICAgeyBvcHRpb246IFNlbmRPcHRpb24uRW1haWwsXHJcbiAgICAgIGljb25OYW1lOiB0aGlzLmljb25zLkVtYWlsLFxyXG4gICAgfSxcclxuICAgIHsgb3B0aW9uOiBTZW5kT3B0aW9uLlByaW50LFxyXG4gICAgICBpY29uTmFtZTogdGhpcy5pY29ucy5QcmludCxcclxuICAgIH0sXHJcbiAgICB7IG9wdGlvbjogU2VuZE9wdGlvbi5QZGYsXHJcbiAgICAgIGljb25OYW1lOiB0aGlzLmljb25zLlBkZixcclxuICAgIH0sXHJcbiAgICB7IG9wdGlvbjogU2VuZE9wdGlvbi5YbWwsXHJcbiAgICAgIGljb25OYW1lOiB0aGlzLmljb25zLlhtbCxcclxuICAgIH1cclxuICBdXHJcblxyXG4gIHB1YmxpYyBhY3RpdmVTZW5kT3B0aW9uOiBTZW5kT3B0aW9uID0gU2VuZE9wdGlvbi5FbWFpbDtcclxuICBwdWJsaWMgc2hvd1N0YW5kYXJkUHJpbnRlck9wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1ByaW50ZXJTZWxlY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dFeGl0QnV0dG9uID0gdHJ1ZTtcclxuICBwdWJsaWMgZGVmYXVsdFByaW50ZXI6IFByaW50ZXI7XHJcbiAgcHVibGljIHByaW50VGVtcGxhdGVzOiBTdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzW107XHJcbiAgcHVibGljIHByaW50VGVtcGxhdGVzRmllbGQ6IENvRHJvcERvd25MaXN0RmllbGRzID0ge3RleHQ6IFwibmFtZVwiLCB2YWx1ZTogXCJyZXBvcnRJZFwifTtcclxuICBwdWJsaWMgcHJpY2VMaXN0RGF0YUZpZWxkOiBDb0Ryb3BEb3duTGlzdEZpZWxkcyA9IHt0ZXh0OiBcIm5hbWVcIiwgdmFsdWU6IFwicHJpY2VMaXN0Q29kZVwifTtcclxuICBwdWJsaWMgdXBBbmRMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGVtYWlsczogYW55W10gPSBbJ2xhcnMudmR2QGNvbGlqbi1pdC5ubCcsICdkYXZpZEBjb2xpam4taXQubmwnLCAncnViZW5AY29saWpuLWl0Lm5sJ107XHJcbiAgcHVibGljIG1vZGVsczogYm9vbGVhbltdID0gW2ZhbHNlLCBmYWxzZSwgdHJ1ZV07XHJcblxyXG4gIHB1YmxpYyBsYXlvdXRzOiBhbnlbXSA9IFsnTGF5b3V0IDEnLCAnTGF5b3V0IDInLCAnTGF5b3V0IDMnXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRMYXlvdXQ6ICdMYXlvdXQgMSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaGVhZGVyVGl0bGU6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJpbnRlckxpc3Q6IFByaW50ZXJbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFydGljbGVEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5zdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyLmdvb2RJZCA9IGRhdGEuZ29vZElkO1xyXG4gICAgdGhpcy5zdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyLndhcmVob3VzZSA9IGRhdGEud2FyZWhvdXNlTm87XHJcbiAgfTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHN0YXJ0U2lnbmF0dXJlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHByaW50QnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaW9uZS1zZW5kLW1ldGhvZC1kaWFsb2dcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHN0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnNMb2FkZWQuc3Vic2NyaWJlKGxvYWRlZCA9PiB0aGlzLl9oYW5kbGVTZXR0aW5nc0xvYWRlZChsb2FkZWQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHJpbnRlcnMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9ja1NlcnZpY2UuZ2V0QWxsUHJpbnRlcnModHJ1ZSkudGhlbigobGlzdCkgPT4ge1xyXG4gICAgICB0aGlzLnByaW50ZXJMaXN0ID0gbGlzdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlRGlhbG9nQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dEaWFsb2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaWduYXR1cmVTdGFydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhcnRTaWduYXR1cmVDbGlja2VkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVQcmludENsaWNrZWQoKTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLnByaW50QnV0dG9uQ2xpY2tlZC5lbWl0KCk7XHJcbiAgICBpZiAodGhpcy5zdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyLnByaW50ZXJOYW1lKSB7XHJcbiAgICAgIHRoaXMuc3RvY2tTZXJ2aWNlLmdldFByaW50U3RvY2tTdGlja2Vycyh0aGlzLnN0b2NrU2VydmljZS5wcmludFN0aWNrZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVByaW50ZXJTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldFByaW50ZXJzKCk7XHJcbiAgICBpZiAoIXRoaXMuc2hvd1ByaW50ZXJTZWxlY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuc2hvd1ByaW50ZXJTZWxlY3Rpb25zID0gdHJ1ZTtcclxuICAgICAgdGhpcy5oZWFkZXJUaXRsZSA9ICdQcmludGVyIHNlbGVjdGllJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1ByaW50ZXJTZWxlY3Rpb25zID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaGVhZGVyVGl0bGUgPSAnVmVyemVuZG9wdGllcyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QcmludGVyQ2xpY2tlZChwcmludGVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlZmF1bHRQcmludGVyID0gcHJpbnRlci5uYW1lO1xyXG4gICAgdGhpcy5zdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyLnByaW50ZXJOYW1lID0gcHJpbnRlci5uYW1lO1xyXG4gICAgdGhpcy5zaG93UHJpbnRlclNlbGVjdGlvbnMgPSEgdGhpcy5zaG93UHJpbnRlclNlbGVjdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UHJpbnRUZW1wbGF0ZXMoKTogYW55IHtcclxuICAgIGlmICghdGhpcy5wcmludFRlbXBsYXRlcykge1xyXG4gICAgICBjb25zdCBkYXRhID0gbmV3IFN0b2NrU3RpY2tlcnNQcmludExheW91dHMoKTtcclxuICAgICAgdGhpcy5zdG9ja1NlcnZpY2UuZ2V0U3RvY2tTdGlja2VyVGVtcGxhdGVzKGRhdGEpLnRoZW4oKHRlbXBsYXRlczogU3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0c1tdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcmludFRlbXBsYXRlcyA9IHRlbXBsYXRlcztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVTZXR0aW5nc0xvYWRlZChsb2FkZWQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgYXdhaXQgdGhpcy5faW5pdENvbm5lY3Rpb24oKS50aGVuKCk7XHJcbiAgICAgIHRoaXMudXBBbmRMb2FkZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfaW5pdENvbm5lY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBhd2FpdCB0aGlzLl9jb25uZWN0b3IuY29ubmVjdCh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuXHJcbiAgICBpZiAodGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy51cmwpIHtcclxuICAgICAgdGhpcy5fZGljdGlvbmFyeS5yb290VXJsID0gdGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy51cmwucmVwbGFjZShcIi9hamF4c2VydmljZVwiLCBcIlwiKTtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMuX2RpY3Rpb25hcnkuc2V0RGljdGlvbmFyeSh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmxhbmd1YWdlQ29kZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js
CHANGED
|
@@ -42,7 +42,6 @@ export class StockInformationGridComponent {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
handleTabClick(tabData) {
|
|
45
|
-
console.log(tabData);
|
|
46
45
|
this.activeTab = tabData;
|
|
47
46
|
if (this.activeTab === "IN_ORDER2") {
|
|
48
47
|
this.getInOrderData();
|
|
@@ -131,7 +130,6 @@ export class StockInformationGridComponent {
|
|
|
131
130
|
inOrderData.type = "V";
|
|
132
131
|
inOrderData.goodId = this.articleStockInformation[0].goodId.toString();
|
|
133
132
|
this.inOrderInformation = yield this._stockService.getArticleTransaction(inOrderData);
|
|
134
|
-
console.log(this.inOrderInformation);
|
|
135
133
|
});
|
|
136
134
|
}
|
|
137
135
|
getOrderData() {
|
|
@@ -171,6 +169,7 @@ StockInformationGridComponent.decorators = [
|
|
|
171
169
|
[showToolbar]="true"
|
|
172
170
|
(addRow)="addNewRow()"
|
|
173
171
|
[inlineEdit]="true"
|
|
172
|
+
[rowsPerPage]="20"
|
|
174
173
|
>
|
|
175
174
|
<co-simple-grid-column [headerText]="'WAREHOUSE'" [field]="'warehouseNo'" [order]="10"></co-simple-grid-column>
|
|
176
175
|
<co-simple-grid-column [headerText]="'DESCRIPTION'" [field]="'warehouseName'" [order]="11"></co-simple-grid-column>
|
|
@@ -187,6 +186,7 @@ StockInformationGridComponent.decorators = [
|
|
|
187
186
|
<co-simple-grid *ngIf="activeTab === tabs[1]"
|
|
188
187
|
[data]="inOrderInformation"
|
|
189
188
|
class="simple-grid"
|
|
189
|
+
[rowsPerPage]="20"
|
|
190
190
|
>
|
|
191
191
|
<co-simple-grid-column [headerText]="'IN_ORDER2'" [field]="'transactionNr'"></co-simple-grid-column>
|
|
192
192
|
<co-simple-grid-column [headerText]="'CUSTOMER'" [field]="'user'"></co-simple-grid-column>
|
|
@@ -210,6 +210,7 @@ StockInformationGridComponent.decorators = [
|
|
|
210
210
|
<co-simple-grid *ngIf="activeTab === tabs[2]"
|
|
211
211
|
[data]="orderInformation"
|
|
212
212
|
class="simple-grid"
|
|
213
|
+
[rowsPerPage]="20"
|
|
213
214
|
>
|
|
214
215
|
<co-simple-grid-column [headerText]="'PURCHASE_ORDER_NR'" [field]="'transactionNr'"></co-simple-grid-column>
|
|
215
216
|
<co-simple-grid-column [headerText]="'DATE'" [field]="'transactionDate'"></co-simple-grid-column>
|
|
@@ -240,6 +241,7 @@ StockInformationGridComponent.decorators = [
|
|
|
240
241
|
<!-- TODO move to own component stock-location-->
|
|
241
242
|
<co-simple-grid [data]="articleDetails"
|
|
242
243
|
class="simple-grid"
|
|
244
|
+
[rowsPerPage]="20"
|
|
243
245
|
>
|
|
244
246
|
<div class="stock-location-group">
|
|
245
247
|
<div class="stock-location-left-group">
|
|
@@ -287,6 +289,7 @@ StockInformationGridComponent.decorators = [
|
|
|
287
289
|
</div>
|
|
288
290
|
<co-simple-grid [data]="stockHistoryInformation"
|
|
289
291
|
class="simple-grid"
|
|
292
|
+
[rowsPerPage]="20"
|
|
290
293
|
>
|
|
291
294
|
<co-simple-grid-column [headerText]="'MUTATION_DATE'" [field]="'mutationDate'"></co-simple-grid-column>
|
|
292
295
|
<co-simple-grid-column [headerText]="'MUTATION_TIME'" [field]="'mutationTime'"></co-simple-grid-column>
|
|
@@ -312,7 +315,7 @@ StockInformationGridComponent.decorators = [
|
|
|
312
315
|
|
|
313
316
|
<div class="stock-button-toolbar">
|
|
314
317
|
<div class="stock-button-left-group">
|
|
315
|
-
<co-button [label]="'HISTORY'" (click)="handleHistoryClick()"></co-button>
|
|
318
|
+
<co-button *ngIf="activeTab === tabs[0]" [label]="'HISTORY'" (click)="handleHistoryClick()"></co-button>
|
|
316
319
|
</div>
|
|
317
320
|
<div class="stock-button-middle-group">
|
|
318
321
|
<div class="button-left">
|
|
@@ -344,4 +347,4 @@ StockInformationGridComponent.propDecorators = {
|
|
|
344
347
|
transferIconClicked: [{ type: Output }],
|
|
345
348
|
historyClicked: [{ type: Output }]
|
|
346
349
|
};
|
|
347
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staW5mb3JtYXRpb24tZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay1pbmZvcm1hdGlvbi1ncmlkL3N0b2NrLWluZm9ybWF0aW9uLWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUU1RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUlqRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQTRMeEYsTUFBTSxPQUFPLDZCQUE2QjtJQTJEeEMsWUFDUyxnQkFBa0MsRUFDakMsYUFBMkI7UUFENUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQTVEckIsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFlMUIsd0JBQW1CLEdBQWlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdkUsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdoRSxTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUN2QyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7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TSxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3RGLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDdEMsQ0FBQztLQUFBO0lBRVksWUFBWTs7WUFDdkIsTUFBTSxTQUFTLEdBQXVCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUMvRCxTQUFTLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNyQixTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRixDQUFDO0tBQUE7SUFFTSxTQUFTO0lBRWhCLENBQUM7OztZQTVXRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvTFQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXBNTyxnQkFBZ0I7WUFEaEIsWUFBWTs7O29CQXlNakIsU0FBUyxTQUFDLDZCQUE2QjtzQ0FHdkMsS0FBSztnQ0FHTCxLQUFLO3NDQUdMLEtBQUs7a0NBR0wsTUFBTTs2QkFHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgRXZlbnRFbWl0dGVyLCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2sgYXMgQXJ0aWNsZVN0b2NrQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9ja1wiO1xyXG5pbXBvcnQge1N0b2NrSGlzdG9yeUJvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2staGlzdG9yeS5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja01hbmFnZW1lbnR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLW1hbmFnZW1lbnRcIjtcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1kZXRhaWxzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ib1wiO1xyXG5pbXBvcnQge0NvRHJvcERvd25MaXN0RmllbGRzfSBmcm9tIFwiLi4vc3RvY2stdHJhbnNmZXIvY28tZHJvcC1kb3duLWxpc3QtZmllbGRzLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge0FydGljbGVUcmFuc2FjdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtdHJhbnNhY3Rpb25cIjtcclxuaW1wb3J0IHtBcnRpY2xlVHJhbnNhY3Rpb24gYXMgQXJ0aWNsZVRyYW5zYWN0aW9uQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXRyYW5zYWN0aW9uLmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zdG9jay1pbmZvcm1hdGlvbi1ncmlkXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0YWItbGluayBzaG93XCIgKm5nSWY9XCJoaWRlT3JTaG93VGFic1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRhYi1saW5rLWJ1dHRvbnNcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVGFiQ2xpY2sodGFiKVwiXHJcbiAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJ0YWJcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInRhYiA9PT0gYWN0aXZlVGFiXCJcclxuICAgICAgPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1saW5lXCI+XHJcbiAgICAgIDxkaXYgW3RleHRDb250ZW50XT1cImFjdGl2ZVRhYlRleHRcIj48L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stZ3JpZFwiPlxyXG4gICAgICA8Y28tc2ltcGxlLWdyaWQgKm5nSWY9XCJhY3RpdmVUYWIgPT09IHRhYnNbMF0gJiYgaGlkZU9yU2hvd1RhYnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiYXJ0aWNsZVN0b2NrSW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1wbGUtZ3JpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd0FkZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93VG9vbGJhcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChhZGRSb3cpPVwiYWRkTmV3Um93KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1dBUkVIT1VTRSdcIiBbZmllbGRdPVwiJ3dhcmVob3VzZU5vJ1wiIFtvcmRlcl09XCIxMFwiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInREVTQ1JJUFRJT04nXCIgW2ZpZWxkXT1cIid3YXJlaG91c2VOYW1lJ1wiIFtvcmRlcl09XCIxMVwiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RPQ0snXCIgW2ZpZWxkXT1cIid0ZWNobmljYWxTdG9jaydcIiBbb3JkZXJdPVwiMTJcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FWQUlMQUJMRV9TVE9DSydcIiBbZmllbGRdPVwiJ2F2YWlsYWJsZVN0b2NrJ1wiIFtvcmRlcl09XCIxM1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInRUNPTk9NSUNBTF9TVE9DSydcIiBbZmllbGRdPVwiJ2Vjb25vbWljYWxTdG9jaydcIiBbb3JkZXJdPVwiMTRcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0xPQ0FUSU9OJ1wiIFtmaWVsZF09XCInbG9jYXRpb25ObydcIiBbb3JkZXJdPVwiMTVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidCZWtpamtlbidcIiAoY2xpY2spPVwib25Mb2NhdGlvbkNsaWNrKHJvdylcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuXHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gdGFic1sxXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJpbk9yZGVySW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1wbGUtZ3JpZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidJTl9PUkRFUjInXCIgW2ZpZWxkXT1cIid0cmFuc2FjdGlvbk5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0NVU1RPTUVSJ1wiIFtmaWVsZF09XCIndXNlcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidEQVRFJ1wiIFtmaWVsZF09XCIndHJhbnNhY3Rpb25EYXRlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FNT1VOVCdcIiBbZmllbGRdPVwiJ2Ftb3VudEluT3JkZXInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInV0FSRUhPVVNFJ1wiIFtmaWVsZF09XCInd2FyZUhvdXNlTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInREVTQ1JJUFRJT04nXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLJ1wiIFtmaWVsZF09XCInYW1vdW50SW5TdG9jaydcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidUUkFOU0ZFUidcIiBbZmllbGRdPVwiJ3RyYW5zZmVyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5EZWxpdmVyeVRydWNrKVwiIChjbGljayk9XCJoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soJGV2ZW50KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RJQ0tFUidcIiBbZmllbGRdPVwiJ3N0aWNrZXInXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlByaW50KVwiIChjbGljayk9XCJvcGVuU2VuZE1ldGhvZERpYWxvZyhyb3cpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuXHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gdGFic1syXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJvcmRlckluZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInUFVSQ0hBU0VfT1JERVJfTlInXCIgW2ZpZWxkXT1cIid0cmFuc2FjdGlvbk5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0RBVEUnXCIgW2ZpZWxkXT1cIid0cmFuc2FjdGlvbkRhdGUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQU1PVU5UJ1wiIFtmaWVsZF09XCInYW1vdW50SW5PcmRlcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidSRVNFUlZFRCdcIiBbZmllbGRdPVwiJ3Jlc2VydmVkJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0ZSRUVfU1RPQ0snXCIgW2ZpZWxkXT1cIidmcmVlU3RvY2snXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInREVMSVZFUllfREFURTEnXCIgW2ZpZWxkXT1cIidkZWxpdmVyeURhdGUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInUkVTRVJWRSdcIiBbZmllbGRdPVwiJ3Jlc2VydmF0aW9uJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICA8L2NvLXNpbXBsZS1ncmlkPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN0b2NrLWdyaWRcIiAqbmdJZj1cImhpZGVPclNob3dMb2NhdGlvblRhYlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RvY2stbG9jYXRpb24tZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stbG9jYXRpb24tbGVmdC1ncm91cFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdG9jay1idXR0b24tYmFja1wiIFt0ZXh0Q29udGVudF09XCInQkFDS19UT19TVE9DS19MSU5FUydcIiAoY2xpY2spPVwiaGFuZGxlQmFja1RvU3RvY2tDbGljaygpXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1sb2NhdGlvbi1yaWdodC1ncm91cFwiPlxyXG4gICAgICAgICAgPGNvLWRyb3AtZG93bi1saXN0ICBbKG1vZGVsKV09XCJzZWxlY3RlZFdhcmVob3VzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cImRhdGFXYXJlSG91c2VDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJkYXRhV2FyZUhvdXNlRmllbGRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidXQVJFSE9VU0UnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0V2FyZWhvdXNlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICA+PC9jby1kcm9wLWRvd24tbGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG48IS0tICAgICAgVE9ETyBtb3ZlIHRvIG93biBjb21wb25lbnQgc3RvY2stbG9jYXRpb24tLT5cclxuICAgICAgPGNvLXNpbXBsZS1ncmlkIFtkYXRhXT1cImFydGljbGVEZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWxvY2F0aW9uLWdyb3VwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stbG9jYXRpb24tbGVmdC1ncm91cFwiPlxyXG4gICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic3RvY2stbGluZXMtYnV0dG9uXCIgW3RleHRDb250ZW50XT1cIidCQUNLX1RPX1NUT0NLX0xJTkVTJ1wiIChjbGljayk9XCJoYW5kbGVCYWNrVG9TdG9ja0NsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1dBUkVIT1VTRSdcIiBbZmllbGRdPVwiJ3dhcmVob3VzZURlc2NyaXB0aW9uJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0JBVENIJ1wiIFtmaWVsZF09XCInYmF0Y2hObydcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTRVJJQUxfTk8nXCIgW2ZpZWxkXT1cIidzZXJpYWxObydcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DSydcIiBbZmllbGRdPVwiJ2Ftb3VudEluU3RvY2snXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWlucHV0LW51bWJlci1waWNrZXIgKGtleXVwLmVudGVyKT1cIm9wZW5EaWFsb2dDbGljayhyb3cpXCIgWyhtb2RlbCldPVwicm93WydhbW91bnRJblN0b2NrJ11cIj5cclxuXHJcbiAgICAgICAgICAgIDwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQUxMT0NBVEVEJ1wiIFtmaWVsZF09XCInYW1vdW50SW5TdG9ja0ZyZWUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQVZBSUxBQkxFX1NUT0NLJ1wiIFtmaWVsZF09XCIncGVyY2VwdGlibGVTdG9yYWdlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1BIWVNJQ0FMX1NUT0NLJ1wiIFtmaWVsZF09XCInYW1vdW50SW5TdG9ja09yaWdpbmFsJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1ZBTFVUQSdcIiBbZmllbGRdPVwiJ2N1cnJlbmN5J1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1BVUkNIQVNFX1BSSUNFJ1wiIFtmaWVsZF09XCIncHVyY2hhc2VQcmljZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVVBQTElFUl9OVU1CRVInXCIgW2ZpZWxkXT1cIidzdXBwbGllck5vJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1RSQU5TRkVSJ1wiIFtmaWVsZF09XCIndHJhbnNmZXInXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkRlbGl2ZXJ5VHJ1Y2spXCIgKGNsaWNrKT1cImhhbmRsZVN0b2NrVHJhbnNmZXJDbGljayhyb3cpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVElDS0VSJ1wiIFtmaWVsZF09XCInc3RpY2tlcidcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuUHJpbnQpXCIgKGNsaWNrKT1cIm9wZW5TZW5kTWV0aG9kRGlhbG9nKHJvdylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICA8L2NvLXNpbXBsZS1ncmlkPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGNvLXN0b2NrLWNoYW5nZS1hbW91bnQgKm5nSWY9XCJzaG93Q2hhbmdlU3RvY2tEZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZVN0b2NrQ2hhbmdlQW1vdW50KT1cInNob3dDaGFuZ2VTdG9ja0RldGFpbHMgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGFdPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGFcIlxyXG4gICAgPlxyXG4gICAgPC9jby1zdG9jay1jaGFuZ2UtYW1vdW50PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1ncmlkXCIgKm5nSWY9XCJzaG93U3RvY2tIaXN0b3J5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1idXR0b24tbGVmdC1ncm91cFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3RvY2stYnV0dG9uLWJhY2tcIiBbdGV4dENvbnRlbnRdPVwiJ0JBQ0tfVE9fU1RPQ0tfTElORVMnXCIgKGNsaWNrKT1cImJhY2tUb1N0b2NrSW5mb3JtYXRpb24oKVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCBbZGF0YV09XCJzdG9ja0hpc3RvcnlJbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ01VVEFUSU9OX0RBVEUnXCIgW2ZpZWxkXT1cIidtdXRhdGlvbkRhdGUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTVVUQVRJT05fVElNRSdcIiBbZmllbGRdPVwiJ211dGF0aW9uVGltZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidBTU9VTlQnXCIgW2ZpZWxkXT1cIidhbW91bnQnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInV0FSRUhPVVNFJ1wiIFtmaWVsZF09XCInd2FyZUhvdXNlTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTE9DQVRJT04nXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1RSQU5TQUNUSU9OX1RZUEUnXCIgW2ZpZWxkXT1cIid0cmFuc1R5cGUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInRE9DVU1FTlRfTlVNQkVSJ1wiIFtmaWVsZF09XCInZG9jTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTElORSdcIiBbZmllbGRdPVwiJ3Bvc0xpbmVOcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DS19TVEFURSdcIiBbZmllbGRdPVwiJ3N0b2NrU3RhdGVJZCdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DS19SRU1BUksnXCIgW2ZpZWxkXT1cIidzdG9ja1N0YXRlUmVtYXJrSWQnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInVkFMVVRBJ1wiIFtmaWVsZF09XCInY3VycmVuY3lDb2RlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1JFTEFUSU9OX0lEJ1wiIFtmaWVsZF09XCIncmVsYXRpb25JZCdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidVU0VSJ1wiIFtmaWVsZF09XCIndXNlcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidNVVRBVElPTl9UWVBFJ1wiIFtmaWVsZF09XCInbXV0YXRpb25UeXBlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUSUNLRVInXCIgW2ZpZWxkXT1cIidzdGlja2VyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5QcmludClcIiAoY2xpY2spPVwib3BlblNlbmRNZXRob2REaWFsb2cocm93KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgIDwvY28tc2ltcGxlLWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stYnV0dG9uLXRvb2xiYXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWJ1dHRvbi1sZWZ0LWdyb3VwXCI+XHJcbiAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0hJU1RPUlknXCIgKGNsaWNrKT1cImhhbmRsZUhpc3RvcnlDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RvY2stYnV0dG9uLW1pZGRsZS1ncm91cFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tbGVmdFwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBbdGV4dENvbnRlbnRdPVwiJ09rJ1wiIChjbGljayk9XCJvbk9rQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcmlnaHRcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gW3RleHRDb250ZW50XT1cIidBbm51bGVyZW4nXCIgKGNsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGlvbmUtc2VuZC1tZXRob2QtZGlhbG9nXHJcbiAgICAgICpuZ0lmPVwic2hvd1NlbmRNZXRob2REaWFsb2dcIlxyXG4gICAgICBbc2hvd0RpYWxvZ109XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiXHJcbiAgICAgIChwcmludEJ1dHRvbkNsaWNrZWQpPVwicHJpbnRTdG9ja1N0aWNrZXJzKClcIlxyXG4gICAgPjwvaW9uZS1zZW5kLW1ldGhvZC1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja0luZm9ybWF0aW9uR3JpZENvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBWaWV3Q2hpbGQoU3RvY2tJbmZvcm1hdGlvbkdyaWRDb21wb25lbnQpXHJcbiAgcHVibGljIHN0b2NrOiBTdG9ja0luZm9ybWF0aW9uR3JpZENvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZVN0b2NrSW5mb3JtYXRpb246IEFydGljbGVTdG9ja0JvW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN0b2NrTG9jYXRpb25EYXRhOiBBcnRpY2xlU3RvY2tCb1tdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbjogU3RvY2tIaXN0b3J5Qm9bXTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zZmVySWNvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxBcnRpY2xlU3RvY2tCbz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBoaXN0b3J5Q2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBpbWFnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGhpZGVPclNob3dMb2NhdGlvblRhYjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93U3RvY2tIaXN0b3J5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTZW5kTWV0aG9kRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBpbk9yZGVySW5mb3JtYXRpb246IEFydGljbGVUcmFuc2FjdGlvbkJvW107XHJcbiAgcHVibGljIG9yZGVySW5mb3JtYXRpb246IEFydGljbGVUcmFuc2FjdGlvbkJvW11cclxuICBwdWJsaWMgaGlkZU9yU2hvd1RhYnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlQ29kZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdO1xyXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlRmllbGRzOiBDb0Ryb3BEb3duTGlzdEZpZWxkcyA9IHsgdGV4dDogXCJ3YXJlaG91c2VEZXNjcmlwdGlvblwiLCB2YWx1ZTogXCJ3YXJlaG91c2VOb1wiIH07XHJcbiAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlOiBhbnk7XHJcbiAgcHVibGljIGFydGljbGVTdG9ja1NlYXJjaEluZm86IEFydGljbGVTdG9jayA9IG5ldyBBcnRpY2xlU3RvY2soKTtcclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHM6IEFydGljbGVEZXRhaWxzQm9bXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm87XHJcbiAgcHVibGljIHNob3dDaGFuZ2VTdG9ja0RldGFpbHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCA9IG5ldyBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KClcclxuXHJcbiAgcHVibGljIHRhYnM6IHN0cmluZ1tdID0gW1xyXG4gICAgXCJTVE9DS1wiLFxyXG4gICAgXCJJTl9PUkRFUjJcIixcclxuICAgIFwiT1JERVJTMVwiXHJcbiAgXTtcclxuICBwdWJsaWMgYWN0aXZlVGFiOiBzdHJpbmcgPSB0aGlzLnRhYnNbMF07XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh0aGlzLmFjdGl2ZVRhYikge1xyXG4gICAgICBjYXNlIHRoaXMudGFic1swXTpcclxuICAgICAgICByZXR1cm4gXCJWb29ycmFhZHJlZ2Vsc1wiO1xyXG4gICAgICBjYXNlIHRoaXMudGFic1sxXTpcclxuICAgICAgICByZXR1cm4gXCJHZXZvbmRlbiBpbiBvcmRlcihzKVwiO1xyXG4gICAgICBjYXNlIHRoaXMudGFic1syXTpcclxuICAgICAgICByZXR1cm4gXCJHZXZvbmRlbiBpbiBiZXN0ZWxsaW5nZW5cIjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gXCJWb29ycmFhZGxvY2F0aWUgcmVnZWxzXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlOiBTdG9ja1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVGFiQ2xpY2sodGFiRGF0YSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2codGFiRGF0YSk7XHJcbiAgICB0aGlzLmFjdGl2ZVRhYiA9IHRhYkRhdGE7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT09IFwiSU5fT1JERVIyXCIpIHtcclxuICAgICAgdGhpcy5nZXRJbk9yZGVyRGF0YSgpO1xyXG4gICAgfSBpZiAodGhpcy5hY3RpdmVUYWIgPT09IFwiT1JERVJTMVwiKSB7XHJcbiAgICAgIHRoaXMuZ2V0T3JkZXJEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Mb2NhdGlvbkNsaWNrKGRhdGE6IEFydGljbGVTdG9ja0JvKTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVTdG9ja1NlYXJjaEluZm8uZ29vZElkID0gZGF0YS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYXJ0aWNsZVN0b2NrU2VhcmNoSW5mby53YXJlSG91c2VObyA9IGRhdGEud2FyZWhvdXNlTm8udG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYXJ0aWNsZVN0b2NrU2VhcmNoSW5mby52aWV3S2luZCA9IFwiRFwiO1xyXG4gICAgdGhpcy5zZWxlY3RlZFdhcmVob3VzZSA9IGRhdGEud2FyZWhvdXNlTm87XHJcbiAgICBpZiAoIXRoaXMuZGF0YVdhcmVIb3VzZUNvZGUpIHtcclxuICAgICAgdGhpcy5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKGRhdGEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRBcnRpY2xlRGV0YWlscyhkYXRhKTtcclxuICAgIHRoaXMuaGlkZU9yU2hvd1RhYnMgPSBmYWxzZTtcclxuICAgIHRoaXMuaGlkZU9yU2hvd0xvY2F0aW9uVGFiID0gdHJ1ZTtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5sb2NrQXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVIaXN0b3J5Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpc3RvcnlDbGlja2VkLmVtaXQoKVxyXG4gICAgdGhpcy5oaWRlT3JTaG93TG9jYXRpb25UYWIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0NoYW5nZVN0b2NrRGV0YWlscyA9IGZhbHNlO1xyXG4gICAgdGhpcy5oaWRlT3JTaG93VGFicyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93U3RvY2tIaXN0b3J5ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBiYWNrVG9TdG9ja0luZm9ybWF0aW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93U3RvY2tIaXN0b3J5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmhpZGVPclNob3dUYWJzID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soZXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNmZXJJY29uQ2xpY2tlZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVCYWNrVG9TdG9ja0NsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5hY3RpdmVUYWIgPSB0aGlzLnRhYnNbMF07XHJcbiAgICB0aGlzLmhpZGVPclNob3dUYWJzID0gdHJ1ZTtcclxuICAgIHRoaXMuaGlkZU9yU2hvd0xvY2F0aW9uVGFiID0gZmFsc2U7XHJcbiAgICB0aGlzLmFydGljbGVEZXRhaWxzID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5TZW5kTWV0aG9kRGlhbG9nKGRhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5wcmludFN0aWNrZXIuZ29vZElkID0gZGF0YS5nb29kSWQ7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyLndhcmVob3VzZSA9IGRhdGEud2FyZWhvdXNlTm87XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0hIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2c7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJpbnRTdG9ja1N0aWNrZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFByaW50U3RvY2tTdGlja2Vycyh0aGlzLl9zdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9rQ2xpY2soKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2FuY2VsQ2xpY2soKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5EaWFsb2dDbGljayhkYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhID0gZGF0YTtcclxuICAgIHRoaXMuc2hvd0NoYW5nZVN0b2NrRGV0YWlscyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QXJ0aWNsZURldGFpbHMoZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICAvLyBjb25zdCBpbmZvID0gbmV3IEFydGljbGVTdG9ja01hbmFnZW1lbnQoKTtcclxuICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQgPSBkYXRhLmdvb2RJZDtcclxuICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5saW5lSWQgPSBkYXRhLmxpbmVJZDtcclxuICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi53YXJlaG91c2VOdW1iZXIgPSBkYXRhLndhcmVob3VzZU5vO1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVEZXRhaWxzKHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbikudGhlbigoZGV0YWlscykgPT4ge1xyXG4gICAgICB0aGlzLmFydGljbGVEZXRhaWxzID0gZGV0YWlscztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoZGF0YTogQXJ0aWNsZVN0b2NrQm8pOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCkudGhlbigod2FyZWhvdXNlcykgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFXYXJlSG91c2VDb2RlID0gd2FyZWhvdXNlcztcclxuICAgICAgdGhpcy5zZWxlY3RlZFdhcmVob3VzZSA9IGRhdGEud2FyZWhvdXNlTm87XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0V2FyZWhvdXNlKGV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24ud2FyZWhvdXNlTnVtYmVyID0gZXZlbnQ7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFdhcmVob3VzZSB8fCB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlID09PSAwKSB7XHJcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgICB0aGlzLmFydGljbGVEZXRhaWxzID0gZGV0YWlscztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0SW5PcmRlckRhdGEoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBpbk9yZGVyRGF0YTogQXJ0aWNsZVRyYW5zYWN0aW9uID0gbmV3IEFydGljbGVUcmFuc2FjdGlvbigpO1xyXG4gICAgaW5PcmRlckRhdGEudHlwZSA9IFwiVlwiO1xyXG4gICAgaW5PcmRlckRhdGEuZ29vZElkID0gdGhpcy5hcnRpY2xlU3RvY2tJbmZvcm1hdGlvblswXS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuaW5PcmRlckluZm9ybWF0aW9uID0gYXdhaXQgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVUcmFuc2FjdGlvbihpbk9yZGVyRGF0YSk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmluT3JkZXJJbmZvcm1hdGlvbilcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRPcmRlckRhdGEoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBvcmRlckRhdGE6IEFydGljbGVUcmFuc2FjdGlvbiA9IG5ldyBBcnRpY2xlVHJhbnNhY3Rpb24oKTtcclxuICAgIG9yZGVyRGF0YS50eXBlID0gXCJWXCI7XHJcbiAgICBvcmRlckRhdGEuZ29vZElkID0gdGhpcy5hcnRpY2xlU3RvY2tJbmZvcm1hdGlvblswXS5nb29kSWQudG9TdHJpbmcoKTtcclxuICAgIHRoaXMub3JkZXJJbmZvcm1hdGlvbiA9IGF3YWl0IHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlVHJhbnNhY3Rpb24ob3JkZXJEYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGROZXdSb3coKTogdm9pZCB7XHJcblxyXG4gIH1cclxufVxyXG4iXX0=
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staW5mb3JtYXRpb24tZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay1pbmZvcm1hdGlvbi1ncmlkL3N0b2NrLWluZm9ybWF0aW9uLWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUU1RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUlqRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQWtNeEYsTUFBTSxPQUFPLDZCQUE2QjtJQTJEeEMsWUFDUyxnQkFBa0MsRUFDakMsYUFBMkI7UUFENUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQTVEckIsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFlMUIsd0JBQW1CLEdBQWlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdkUsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdoRSxTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUN2QyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBSXRDLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBRS9CLHdCQUFtQixHQUF5QixFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLENBQUM7UUFFbkcsMkJBQXNCLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHMUQsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBQ3hDLDhCQUF5QixHQUEyQixJQUFJLHNCQUFzQixFQUFFLENBQUE7UUFFaEYsU0FBSSxHQUFhO1lBQ3RCLE9BQU87WUFDUCxXQUFXO1lBQ1gsU0FBUztTQUNWLENBQUM7UUFDSyxjQUFTLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQW1CeEMsQ0FBQztJQWpCRCxJQUFXLGFBQWE7UUFDdEIsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3RCLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2YsT0FBTyxnQkFBZ0IsQ0FBQztZQUMxQixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNmLE9BQU8sc0JBQXNCLENBQUM7WUFDaEMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDZixPQUFPLDBCQUEwQixDQUFDO1lBQ3BDO2dCQUNFLE9BQU8sd0JBQXdCLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBUU0sY0FBYyxDQUFDLE9BQU87UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7UUFBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTSxlQUFlLENBQUMsSUFBb0I7UUFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0RSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzNCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRU0sd0JBQXdCLENBQUMsS0FBSztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFWSxzQkFBc0I7O1lBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQ2xDLENBQUM7S0FBQTtJQUVNLG9CQUFvQixDQUFDLElBQUk7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDN0QsSUFBSSxDQUFDLG9CQUFvQixHQUFFLENBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3pELENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxTQUFTO0lBRWhCLENBQUM7SUFFTSxhQUFhO0lBRXBCLENBQUM7SUFFTSxlQUFlLENBQUMsSUFBSTtRQUN6QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQVM7UUFDaEMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNwRCxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDcEQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEYsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sNEJBQTRCLENBQUMsSUFBb0I7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBSztRQUM1QixJQUFJLENBQUMseUJBQXlCLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUN2RCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3BGLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRVksY0FBYzs7WUFDekIsTUFBTSxXQUFXLEdBQXVCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUNqRSxXQUFXLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUN2QixXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RixDQUFDO0tBQUE7SUFFWSxZQUFZOztZQUN2QixNQUFNLFNBQVMsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQy9ELFNBQVMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1lBQ3JCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7S0FBQTtJQUVNLFNBQVM7SUFFaEIsQ0FBQzs7O1lBaFhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUxUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF6TU8sZ0JBQWdCO1lBRGhCLFlBQVk7OztvQkErTWpCLFNBQVMsU0FBQyw2QkFBNkI7c0NBR3ZDLEtBQUs7Z0NBR0wsS0FBSztzQ0FHTCxLQUFLO2tDQUdMLE1BQU07NkJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIEV2ZW50RW1pdHRlciwgSW5wdXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U3RvY2tTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9zdG9jay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrIGFzIEFydGljbGVTdG9ja0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2tcIjtcclxuaW1wb3J0IHtTdG9ja0hpc3RvcnlCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWhpc3RvcnkuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2tNYW5hZ2VtZW50fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50XCI7XHJcbmltcG9ydCB7QXJ0aWNsZURldGFpbHNCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZGV0YWlscy5ib1wiO1xyXG5pbXBvcnQge1N0b2NrTWFuYWdlbWVudFdhcmVob3VzZXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1tYW5hZ2VtZW50LXdhcmVob3VzZXMuYm9cIjtcclxuaW1wb3J0IHtDb0Ryb3BEb3duTGlzdEZpZWxkc30gZnJvbSBcIi4uL3N0b2NrLXRyYW5zZmVyL2NvLWRyb3AtZG93bi1saXN0LWZpZWxkcy5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtBcnRpY2xlVHJhbnNhY3Rpb259IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXRyYW5zYWN0aW9uXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVRyYW5zYWN0aW9uIGFzIEFydGljbGVUcmFuc2FjdGlvbkJvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS10cmFuc2FjdGlvbi5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tc3RvY2staW5mb3JtYXRpb24tZ3JpZFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidGFiLWxpbmsgc2hvd1wiICpuZ0lmPVwiaGlkZU9yU2hvd1RhYnNcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItbGluay1idXR0b25zXCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRhYkNsaWNrKHRhYilcIlxyXG4gICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwidGFiXCJcclxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJ0YWIgPT09IGFjdGl2ZVRhYlwiXHJcbiAgICAgID48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stbGluZVwiPlxyXG4gICAgICA8ZGl2IFt0ZXh0Q29udGVudF09XCJhY3RpdmVUYWJUZXh0XCI+PC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN0b2NrLWdyaWRcIj5cclxuICAgICAgPGNvLXNpbXBsZS1ncmlkICpuZ0lmPVwiYWN0aXZlVGFiID09PSB0YWJzWzBdICYmIGhpZGVPclNob3dUYWJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImFydGljbGVTdG9ja0luZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dBZGRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd1Rvb2xiYXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoYWRkUm93KT1cImFkZE5ld1JvdygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVFZGl0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Jvd3NQZXJQYWdlXT1cIjIwXCJcclxuICAgICAgPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInV0FSRUhPVVNFJ1wiIFtmaWVsZF09XCInd2FyZWhvdXNlTm8nXCIgW29yZGVyXT1cIjEwXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidERVNDUklQVElPTidcIiBbZmllbGRdPVwiJ3dhcmVob3VzZU5hbWUnXCIgW29yZGVyXT1cIjExXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DSydcIiBbZmllbGRdPVwiJ3RlY2huaWNhbFN0b2NrJ1wiIFtvcmRlcl09XCIxMlwiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQVZBSUxBQkxFX1NUT0NLJ1wiIFtmaWVsZF09XCInYXZhaWxhYmxlU3RvY2snXCIgW29yZGVyXT1cIjEzXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidFQ09OT01JQ0FMX1NUT0NLJ1wiIFtmaWVsZF09XCInZWNvbm9taWNhbFN0b2NrJ1wiIFtvcmRlcl09XCIxNFwiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTE9DQVRJT04nXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5vJ1wiIFtvcmRlcl09XCIxNVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ0Jla2lqa2VuJ1wiIChjbGljayk9XCJvbkxvY2F0aW9uQ2xpY2socm93KVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICA8L2NvLXNpbXBsZS1ncmlkPlxyXG5cclxuICAgICAgPGNvLXNpbXBsZS1ncmlkICpuZ0lmPVwiYWN0aXZlVGFiID09PSB0YWJzWzFdXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImluT3JkZXJJbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyb3dzUGVyUGFnZV09XCIyMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidJTl9PUkRFUjInXCIgW2ZpZWxkXT1cIid0cmFuc2FjdGlvbk5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0NVU1RPTUVSJ1wiIFtmaWVsZF09XCIndXNlcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidEQVRFJ1wiIFtmaWVsZF09XCIndHJhbnNhY3Rpb25EYXRlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FNT1VOVCdcIiBbZmllbGRdPVwiJ2Ftb3VudEluT3JkZXInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInV0FSRUhPVVNFJ1wiIFtmaWVsZF09XCInd2FyZUhvdXNlTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInREVTQ1JJUFRJT04nXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLJ1wiIFtmaWVsZF09XCInYW1vdW50SW5TdG9jaydcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidUUkFOU0ZFUidcIiBbZmllbGRdPVwiJ3RyYW5zZmVyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5EZWxpdmVyeVRydWNrKVwiIChjbGljayk9XCJoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soJGV2ZW50KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1RJQ0tFUidcIiBbZmllbGRdPVwiJ3N0aWNrZXInXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlByaW50KVwiIChjbGljayk9XCJvcGVuU2VuZE1ldGhvZERpYWxvZyhyb3cpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuXHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gdGFic1syXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJvcmRlckluZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Jvd3NQZXJQYWdlXT1cIjIwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1BVUkNIQVNFX09SREVSX05SJ1wiIFtmaWVsZF09XCIndHJhbnNhY3Rpb25OcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidEQVRFJ1wiIFtmaWVsZF09XCIndHJhbnNhY3Rpb25EYXRlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FNT1VOVCdcIiBbZmllbGRdPVwiJ2Ftb3VudEluT3JkZXInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInUkVTRVJWRUQnXCIgW2ZpZWxkXT1cIidyZXNlcnZlZCdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidGUkVFX1NUT0NLJ1wiIFtmaWVsZF09XCInZnJlZVN0b2NrJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0RFTElWRVJZX0RBVEUxJ1wiIFtmaWVsZF09XCInZGVsaXZlcnlEYXRlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1JFU0VSVkUnXCIgW2ZpZWxkXT1cIidyZXNlcnZhdGlvbidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1ncmlkXCIgKm5nSWY9XCJoaWRlT3JTaG93TG9jYXRpb25UYWJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWxvY2F0aW9uLWdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWxvY2F0aW9uLWxlZnQtZ3JvdXBcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RvY2stYnV0dG9uLWJhY2tcIiBbdGV4dENvbnRlbnRdPVwiJ0JBQ0tfVE9fU1RPQ0tfTElORVMnXCIgKGNsaWNrKT1cImhhbmRsZUJhY2tUb1N0b2NrQ2xpY2soKVwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stbG9jYXRpb24tcmlnaHQtZ3JvdXBcIj5cclxuICAgICAgICAgIDxjby1kcm9wLWRvd24tbGlzdCAgWyhtb2RlbCldPVwic2VsZWN0ZWRXYXJlaG91c2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJkYXRhV2FyZUhvdXNlQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZGF0YVdhcmVIb3VzZUZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInV0FSRUhPVVNFJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvblNlbGVjdFdhcmVob3VzZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgPjwvY28tZHJvcC1kb3duLWxpc3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuPCEtLSAgICAgIFRPRE8gbW92ZSB0byBvd24gY29tcG9uZW50IHN0b2NrLWxvY2F0aW9uLS0+XHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCBbZGF0YV09XCJhcnRpY2xlRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyb3dzUGVyUGFnZV09XCIyMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stbG9jYXRpb24tZ3JvdXBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1sb2NhdGlvbi1sZWZ0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzdG9jay1saW5lcy1idXR0b25cIiBbdGV4dENvbnRlbnRdPVwiJ0JBQ0tfVE9fU1RPQ0tfTElORVMnXCIgKGNsaWNrKT1cImhhbmRsZUJhY2tUb1N0b2NrQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInV0FSRUhPVVNFJ1wiIFtmaWVsZF09XCInd2FyZWhvdXNlRGVzY3JpcHRpb24nXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQkFUQ0gnXCIgW2ZpZWxkXT1cIidiYXRjaE5vJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NFUklBTF9OTydcIiBbZmllbGRdPVwiJ3NlcmlhbE5vJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLJ1wiIFtmaWVsZF09XCInYW1vdW50SW5TdG9jaydcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciAoa2V5dXAuZW50ZXIpPVwib3BlbkRpYWxvZ0NsaWNrKHJvdylcIiBbKG1vZGVsKV09XCJyb3dbJ2Ftb3VudEluU3RvY2snXVwiPlxyXG5cclxuICAgICAgICAgICAgPC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidBTExPQ0FURUQnXCIgW2ZpZWxkXT1cIidhbW91bnRJblN0b2NrRnJlZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidBVkFJTEFCTEVfU1RPQ0snXCIgW2ZpZWxkXT1cIidwZXJjZXB0aWJsZVN0b3JhZ2UnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInUEhZU0lDQUxfU1RPQ0snXCIgW2ZpZWxkXT1cIidhbW91bnRJblN0b2NrT3JpZ2luYWwnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInVkFMVVRBJ1wiIFtmaWVsZF09XCInY3VycmVuY3knXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInUFVSQ0hBU0VfUFJJQ0UnXCIgW2ZpZWxkXT1cIidwdXJjaGFzZVByaWNlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NVUFBMSUVSX05VTUJFUidcIiBbZmllbGRdPVwiJ3N1cHBsaWVyTm8nXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInVFJBTlNGRVInXCIgW2ZpZWxkXT1cIid0cmFuc2ZlcidcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuRGVsaXZlcnlUcnVjaylcIiAoY2xpY2spPVwiaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKHJvdylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUSUNLRVInXCIgW2ZpZWxkXT1cIidzdGlja2VyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5QcmludClcIiAoY2xpY2spPVwib3BlblNlbmRNZXRob2REaWFsb2cocm93KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgIDwvY28tc2ltcGxlLWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8Y28tc3RvY2stY2hhbmdlLWFtb3VudCAqbmdJZj1cInNob3dDaGFuZ2VTdG9ja0RldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlU3RvY2tDaGFuZ2VBbW91bnQpPVwic2hvd0NoYW5nZVN0b2NrRGV0YWlscyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YV09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YVwiXHJcbiAgICA+XHJcbiAgICA8L2NvLXN0b2NrLWNoYW5nZS1hbW91bnQ+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN0b2NrLWdyaWRcIiAqbmdJZj1cInNob3dTdG9ja0hpc3RvcnlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWJ1dHRvbi1sZWZ0LWdyb3VwXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdG9jay1idXR0b24tYmFja1wiIFt0ZXh0Q29udGVudF09XCInQkFDS19UT19TVE9DS19MSU5FUydcIiAoY2xpY2spPVwiYmFja1RvU3RvY2tJbmZvcm1hdGlvbigpXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGNvLXNpbXBsZS1ncmlkIFtkYXRhXT1cInN0b2NrSGlzdG9yeUluZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Jvd3NQZXJQYWdlXT1cIjIwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ01VVEFUSU9OX0RBVEUnXCIgW2ZpZWxkXT1cIidtdXRhdGlvbkRhdGUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTVVUQVRJT05fVElNRSdcIiBbZmllbGRdPVwiJ211dGF0aW9uVGltZSdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidBTU9VTlQnXCIgW2ZpZWxkXT1cIidhbW91bnQnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInV0FSRUhPVVNFJ1wiIFtmaWVsZF09XCInd2FyZUhvdXNlTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTE9DQVRJT04nXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5yJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1RSQU5TQUNUSU9OX1RZUEUnXCIgW2ZpZWxkXT1cIid0cmFuc1R5cGUnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInRE9DVU1FTlRfTlVNQkVSJ1wiIFtmaWVsZF09XCInZG9jTnInXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInTElORSdcIiBbZmllbGRdPVwiJ3Bvc0xpbmVOcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DS19TVEFURSdcIiBbZmllbGRdPVwiJ3N0b2NrU3RhdGVJZCdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DS19SRU1BUksnXCIgW2ZpZWxkXT1cIidzdG9ja1N0YXRlUmVtYXJrSWQnXCI+PC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInVkFMVVRBJ1wiIFtmaWVsZF09XCInY3VycmVuY3lDb2RlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1JFTEFUSU9OX0lEJ1wiIFtmaWVsZF09XCIncmVsYXRpb25JZCdcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidVU0VSJ1wiIFtmaWVsZF09XCIndXNlcidcIj48L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidNVVRBVElPTl9UWVBFJ1wiIFtmaWVsZF09XCInbXV0YXRpb25UeXBlJ1wiPjwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUSUNLRVInXCIgW2ZpZWxkXT1cIidzdGlja2VyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5QcmludClcIiAoY2xpY2spPVwib3BlblNlbmRNZXRob2REaWFsb2cocm93KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgIDwvY28tc2ltcGxlLWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stYnV0dG9uLXRvb2xiYXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWJ1dHRvbi1sZWZ0LWdyb3VwXCI+XHJcbiAgICAgICAgPGNvLWJ1dHRvbiAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gdGFic1swXVwiIFtsYWJlbF09XCInSElTVE9SWSdcIiAoY2xpY2spPVwiaGFuZGxlSGlzdG9yeUNsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1idXR0b24tbWlkZGxlLWdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1sZWZ0XCI+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIFt0ZXh0Q29udGVudF09XCInT2snXCIgKGNsaWNrKT1cIm9uT2tDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1yaWdodFwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBbdGV4dENvbnRlbnRdPVwiJ0FubnVsZXJlbidcIiAoY2xpY2spPVwib25DYW5jZWxDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aW9uZS1zZW5kLW1ldGhvZC1kaWFsb2dcclxuICAgICAgKm5nSWY9XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiXHJcbiAgICAgIFtzaG93RGlhbG9nXT1cInNob3dTZW5kTWV0aG9kRGlhbG9nXCJcclxuICAgICAgKHByaW50QnV0dG9uQ2xpY2tlZCk9XCJwcmludFN0b2NrU3RpY2tlcnMoKVwiXHJcbiAgICA+PC9pb25lLXNlbmQtbWV0aG9kLWRpYWxvZz5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTdG9ja0luZm9ybWF0aW9uR3JpZENvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBWaWV3Q2hpbGQoU3RvY2tJbmZvcm1hdGlvbkdyaWRDb21wb25lbnQpXHJcbiAgcHVibGljIHN0b2NrOiBTdG9ja0luZm9ybWF0aW9uR3JpZENvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZVN0b2NrSW5mb3JtYXRpb246IEFydGljbGVTdG9ja0JvW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN0b2NrTG9jYXRpb25EYXRhOiBBcnRpY2xlU3RvY2tCb1tdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja0hpc3RvcnlJbmZvcm1hdGlvbjogU3RvY2tIaXN0b3J5Qm9bXTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zZmVySWNvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxBcnRpY2xlU3RvY2tCbz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBoaXN0b3J5Q2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBpbWFnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGhpZGVPclNob3dMb2NhdGlvblRhYjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93U3RvY2tIaXN0b3J5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTZW5kTWV0aG9kRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBpbk9yZGVySW5mb3JtYXRpb246IEFydGljbGVUcmFuc2FjdGlvbkJvW107XHJcbiAgcHVibGljIG9yZGVySW5mb3JtYXRpb246IEFydGljbGVUcmFuc2FjdGlvbkJvW11cclxuICBwdWJsaWMgaGlkZU9yU2hvd1RhYnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlQ29kZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdO1xyXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlRmllbGRzOiBDb0Ryb3BEb3duTGlzdEZpZWxkcyA9IHsgdGV4dDogXCJ3YXJlaG91c2VEZXNjcmlwdGlvblwiLCB2YWx1ZTogXCJ3YXJlaG91c2VOb1wiIH07XHJcbiAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlOiBhbnk7XHJcbiAgcHVibGljIGFydGljbGVTdG9ja1NlYXJjaEluZm86IEFydGljbGVTdG9jayA9IG5ldyBBcnRpY2xlU3RvY2soKTtcclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHM6IEFydGljbGVEZXRhaWxzQm9bXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm87XHJcbiAgcHVibGljIHNob3dDaGFuZ2VTdG9ja0RldGFpbHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCA9IG5ldyBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KClcclxuXHJcbiAgcHVibGljIHRhYnM6IHN0cmluZ1tdID0gW1xyXG4gICAgXCJTVE9DS1wiLFxyXG4gICAgXCJJTl9PUkRFUjJcIixcclxuICAgIFwiT1JERVJTMVwiXHJcbiAgXTtcclxuICBwdWJsaWMgYWN0aXZlVGFiOiBzdHJpbmcgPSB0aGlzLnRhYnNbMF07XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh0aGlzLmFjdGl2ZVRhYikge1xyXG4gICAgICBjYXNlIHRoaXMudGFic1swXTpcclxuICAgICAgICByZXR1cm4gXCJWb29ycmFhZHJlZ2Vsc1wiO1xyXG4gICAgICBjYXNlIHRoaXMudGFic1sxXTpcclxuICAgICAgICByZXR1cm4gXCJHZXZvbmRlbiBpbiBvcmRlcihzKVwiO1xyXG4gICAgICBjYXNlIHRoaXMudGFic1syXTpcclxuICAgICAgICByZXR1cm4gXCJHZXZvbmRlbiBpbiBiZXN0ZWxsaW5nZW5cIjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gXCJWb29ycmFhZGxvY2F0aWUgcmVnZWxzXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlOiBTdG9ja1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVGFiQ2xpY2sodGFiRGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVUYWIgPSB0YWJEYXRhO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlVGFiID09PSBcIklOX09SREVSMlwiKSB7XHJcbiAgICAgIHRoaXMuZ2V0SW5PcmRlckRhdGEoKTtcclxuICAgIH0gaWYgKHRoaXMuYWN0aXZlVGFiID09PSBcIk9SREVSUzFcIikge1xyXG4gICAgICB0aGlzLmdldE9yZGVyRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTG9jYXRpb25DbGljayhkYXRhOiBBcnRpY2xlU3RvY2tCbyk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlU3RvY2tTZWFyY2hJbmZvLmdvb2RJZCA9IGRhdGEuZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmFydGljbGVTdG9ja1NlYXJjaEluZm8ud2FyZUhvdXNlTm8gPSBkYXRhLndhcmVob3VzZU5vLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmFydGljbGVTdG9ja1NlYXJjaEluZm8udmlld0tpbmQgPSBcIkRcIjtcclxuICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2UgPSBkYXRhLndhcmVob3VzZU5vO1xyXG4gICAgaWYgKCF0aGlzLmRhdGFXYXJlSG91c2VDb2RlKSB7XHJcbiAgICAgIHRoaXMuZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcyhkYXRhKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0QXJ0aWNsZURldGFpbHMoZGF0YSk7XHJcbiAgICB0aGlzLmhpZGVPclNob3dUYWJzID0gZmFsc2U7XHJcbiAgICB0aGlzLmhpZGVPclNob3dMb2NhdGlvblRhYiA9IHRydWU7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UubG9ja0FydGljbGVEZXRhaWxzKHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSGlzdG9yeUNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5oaXN0b3J5Q2xpY2tlZC5lbWl0KClcclxuICAgIHRoaXMuaGlkZU9yU2hvd0xvY2F0aW9uVGFiID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dDaGFuZ2VTdG9ja0RldGFpbHMgPSBmYWxzZTtcclxuICAgIHRoaXMuaGlkZU9yU2hvd1RhYnMgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1N0b2NrSGlzdG9yeSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYmFja1RvU3RvY2tJbmZvcm1hdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1N0b2NrSGlzdG9yeSA9IGZhbHNlO1xyXG4gICAgdGhpcy5oaWRlT3JTaG93VGFicyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKGV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zZmVySWNvbkNsaWNrZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlQmFja1RvU3RvY2tDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYWN0aXZlVGFiID0gdGhpcy50YWJzWzBdO1xyXG4gICAgdGhpcy5oaWRlT3JTaG93VGFicyA9IHRydWU7XHJcbiAgICB0aGlzLmhpZGVPclNob3dMb2NhdGlvblRhYiA9IGZhbHNlO1xyXG4gICAgdGhpcy5hcnRpY2xlRGV0YWlscyA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuU2VuZE1ldGhvZERpYWxvZyhkYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UucHJpbnRTdGlja2VyLmdvb2RJZCA9IGRhdGEuZ29vZElkO1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLnByaW50U3RpY2tlci53YXJlaG91c2UgPSBkYXRhLndhcmVob3VzZU5vO1xyXG4gICAgdGhpcy5zaG93U2VuZE1ldGhvZERpYWxvZyA9ISB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByaW50U3RvY2tTdGlja2VycygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRQcmludFN0b2NrU3RpY2tlcnModGhpcy5fc3RvY2tTZXJ2aWNlLnByaW50U3RpY2tlcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Pa0NsaWNrKCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNhbmNlbENsaWNrKCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuRGlhbG9nQ2xpY2soZGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSA9IGRhdGE7XHJcbiAgICB0aGlzLnNob3dDaGFuZ2VTdG9ja0RldGFpbHMgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFydGljbGVEZXRhaWxzKGRhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gY29uc3QgaW5mbyA9IG5ldyBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KCk7XHJcbiAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24uZ29vZElkID0gZGF0YS5nb29kSWQ7XHJcbiAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24ubGluZUlkID0gZGF0YS5saW5lSWQ7XHJcbiAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24ud2FyZWhvdXNlTnVtYmVyID0gZGF0YS53YXJlaG91c2VObztcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgdGhpcy5hcnRpY2xlRGV0YWlscyA9IGRldGFpbHM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKGRhdGE6IEFydGljbGVTdG9ja0JvKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcygpLnRoZW4oKHdhcmVob3VzZXMpID0+IHtcclxuICAgICAgdGhpcy5kYXRhV2FyZUhvdXNlQ29kZSA9IHdhcmVob3VzZXM7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2UgPSBkYXRhLndhcmVob3VzZU5vO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbGVjdFdhcmVob3VzZShldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLndhcmVob3VzZU51bWJlciA9IGV2ZW50O1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRXYXJlaG91c2UgfHwgdGhpcy5zZWxlY3RlZFdhcmVob3VzZSA9PT0gMCkge1xyXG4gICAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKS50aGVuKChkZXRhaWxzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcnRpY2xlRGV0YWlscyA9IGRldGFpbHM7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEluT3JkZXJEYXRhKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgaW5PcmRlckRhdGE6IEFydGljbGVUcmFuc2FjdGlvbiA9IG5ldyBBcnRpY2xlVHJhbnNhY3Rpb24oKTtcclxuICAgIGluT3JkZXJEYXRhLnR5cGUgPSBcIlZcIjtcclxuICAgIGluT3JkZXJEYXRhLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZVN0b2NrSW5mb3JtYXRpb25bMF0uZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmluT3JkZXJJbmZvcm1hdGlvbiA9IGF3YWl0IHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlVHJhbnNhY3Rpb24oaW5PcmRlckRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldE9yZGVyRGF0YSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IG9yZGVyRGF0YTogQXJ0aWNsZVRyYW5zYWN0aW9uID0gbmV3IEFydGljbGVUcmFuc2FjdGlvbigpO1xyXG4gICAgb3JkZXJEYXRhLnR5cGUgPSBcIlZcIjtcclxuICAgIG9yZGVyRGF0YS5nb29kSWQgPSB0aGlzLmFydGljbGVTdG9ja0luZm9ybWF0aW9uWzBdLmdvb2RJZC50b1N0cmluZygpO1xyXG4gICAgdGhpcy5vcmRlckluZm9ybWF0aW9uID0gYXdhaXQgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVUcmFuc2FjdGlvbihvcmRlckRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZE5ld1JvdygpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG59XHJcbiJdfQ==
|