vcomply-workflow-engine 6.0.0 → 6.0.1
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/esm2022/lib/pipes/get-editor-config.pipe.mjs +3 -3
- package/esm2022/lib/report-a-case/components/case-category/case-category.component.mjs +37 -21
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +2 -1
- package/fesm2022/vcomply-workflow-engine.mjs +39 -22
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/pipes/get-editor-config.pipe.d.ts +1 -1
- package/lib/report-a-case/components/case-category/case-category.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class GetEditorConfigPipe {
|
|
4
|
-
transform(index) {
|
|
4
|
+
transform(index, additionalValue) {
|
|
5
5
|
return {
|
|
6
6
|
mode: 'prime',
|
|
7
7
|
colorPalette: true,
|
|
8
8
|
link: true,
|
|
9
9
|
placeholder: 'Add value',
|
|
10
|
-
id:
|
|
10
|
+
id: additionalValue + index
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GetEditorConfigPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
20
20
|
pure: true
|
|
21
21
|
}]
|
|
22
22
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWVkaXRvci1jb25maWcucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3BpcGVzL2dldC1lZGl0b3ItY29uZmlnLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBUXBELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsU0FBUyxDQUFDLEtBQWEsRUFBRSxlQUF1QjtRQUM5QyxPQUFTO1lBQ0wsSUFBSSxFQUFFLE9BQU87WUFDYixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUUsSUFBSTtZQUNWLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLEVBQUUsRUFBRSxlQUFlLEdBQUcsS0FBSztTQUM1QixDQUFDO0lBQ04sQ0FBQzsrR0FUVSxtQkFBbUI7NkdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsaUJBQWlCO29CQUN2QixJQUFJLEVBQUUsSUFBSTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvckNvbmZpZyB9IGZyb20gJ0B2Y29tcGx5L2VkaXRvcic7XG5cblxuQFBpcGUoe1xuICBuYW1lOiAnZ2V0RWRpdG9yQ29uZmlnJyxcbiAgcHVyZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBHZXRFZGl0b3JDb25maWdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShpbmRleDogbnVtYmVyLCBhZGRpdGlvbmFsVmFsdWU6IHN0cmluZyk6IEVkaXRvckNvbmZpZyB7XG4gICAgcmV0dXJuICAge1xuICAgICAgICBtb2RlOiAncHJpbWUnLFxuICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXG4gICAgICAgIGxpbms6IHRydWUsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnQWRkIHZhbHVlJyxcbiAgICAgICAgaWQ6IGFkZGl0aW9uYWxWYWx1ZSArIGluZGV4XG4gICAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -99,20 +99,32 @@ export class CaseCategoryComponent {
|
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
populateInitialCategory() {
|
|
102
|
-
if (
|
|
102
|
+
if (this.isACTWWorkflow()) {
|
|
103
103
|
this.updateACTWCategory();
|
|
104
|
+
return;
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
+
if (this.isRACWorkflow()) {
|
|
106
107
|
this.updateRACCategory();
|
|
108
|
+
return;
|
|
107
109
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
110
|
+
this.handleDefaultCase();
|
|
111
|
+
}
|
|
112
|
+
isACTWWorkflow() {
|
|
113
|
+
return ((this.initialCategory?.length || this.initialAdditionalCategory?.length) &&
|
|
114
|
+
this.workflowType === 'ACTW');
|
|
115
|
+
}
|
|
116
|
+
isRACWorkflow() {
|
|
117
|
+
return (this.initialCategory?.length || this.initialAdditionalCategory?.length) && this.workflowType === 'RAC';
|
|
118
|
+
}
|
|
119
|
+
handleDefaultCase() {
|
|
120
|
+
const isEditModeWithRestrictions = this.mode === 'EDIT' &&
|
|
121
|
+
this.workflowType !== 'ACTW' &&
|
|
122
|
+
this.caseTypeSelected === this.caseType.ADD_CASE_TO_WORKFLOW;
|
|
123
|
+
this.state = isEditModeWithRestrictions
|
|
124
|
+
? SelectionState.DISABLED
|
|
125
|
+
: SelectionState.EMPTY;
|
|
126
|
+
if (isEditModeWithRestrictions) {
|
|
127
|
+
this.config.disabledText = this.categoryTexts.case_details.category.placeholder;
|
|
116
128
|
}
|
|
117
129
|
}
|
|
118
130
|
updateRACCategory() {
|
|
@@ -127,22 +139,22 @@ export class CaseCategoryComponent {
|
|
|
127
139
|
}));
|
|
128
140
|
}
|
|
129
141
|
if (this.initialAdditionalCategory?.length) {
|
|
130
|
-
this.
|
|
131
|
-
this.
|
|
132
|
-
this.selectedAdditionalItems = this.caseCategoryList
|
|
133
|
-
.filter((category) => this.initialAdditionalCategory?.includes(category?._id))
|
|
142
|
+
this.selectedAdditionalCategoryList = this.caseCategoryList?.filter((category) => this.initialAdditionalCategory?.some((id) => id === category?._id) || this.initialAdditionalCategory?.includes(category?._id));
|
|
143
|
+
this.selectedAdditionalItems = this.selectedAdditionalCategoryList
|
|
134
144
|
.map((category) => ({
|
|
135
145
|
label: category?.name,
|
|
136
146
|
value: category?._id,
|
|
137
147
|
}));
|
|
148
|
+
this.additionalCategoryState = SelectionState.SELECTED;
|
|
149
|
+
if (!this.initialCategory?.length) {
|
|
150
|
+
this.handleDefaultCase();
|
|
151
|
+
}
|
|
138
152
|
}
|
|
139
153
|
}
|
|
140
154
|
updateACTWCategory() {
|
|
141
155
|
this.additionalCategoryState = SelectionState.SELECTED;
|
|
142
|
-
this.selectedAdditionalCategoryList = this.caseCategoryList?.filter((category) => this.initialCategory.some((id) => id === category?._id));
|
|
143
|
-
this.selectedAdditionalItems = this.
|
|
144
|
-
.filter((category) => this.initialCategory.includes(category?._id))
|
|
145
|
-
.map((category) => ({
|
|
156
|
+
this.selectedAdditionalCategoryList = this.caseCategoryList?.filter((category) => this.initialCategory.some((id) => id === category?._id) || this.initialAdditionalCategory.includes(category?._id));
|
|
157
|
+
this.selectedAdditionalItems = this.selectedAdditionalCategoryList.map((category) => ({
|
|
146
158
|
label: category?.name,
|
|
147
159
|
value: category?._id,
|
|
148
160
|
}));
|
|
@@ -245,6 +257,7 @@ export class CaseCategoryComponent {
|
|
|
245
257
|
}
|
|
246
258
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaseCategoryComponent, deps: [{ token: i1.ReportACaseService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
247
259
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CaseCategoryComponent, selector: "app-case-category", inputs: { payload: "payload", fieldSelected: "fieldSelected", caseTypeSelected: "caseTypeSelected", initialSelection: "initialSelection", initialAdditionalSelection: "initialAdditionalSelection", mode: "mode", workflowType: "workflowType" }, outputs: { onCategoryChange: "onCategoryChange", fieldClicked: "fieldClicked" }, usesOnChanges: true, ngImport: i0, template: `
|
|
260
|
+
|
|
248
261
|
<app-field-holder
|
|
249
262
|
[image]="ASSETS.case_category"
|
|
250
263
|
[disabled]="fieldSelector?.includes(fieldSelected)"
|
|
@@ -275,6 +288,7 @@ export class CaseCategoryComponent {
|
|
|
275
288
|
<vcomply-editor
|
|
276
289
|
[(ngModel)]="tag.value"
|
|
277
290
|
[editorConfig]="customField"
|
|
291
|
+
[editorConfig]="(i | getEditorConfig: 'category') ?? customField"
|
|
278
292
|
></vcomply-editor>
|
|
279
293
|
</div>
|
|
280
294
|
</ng-container>
|
|
@@ -306,7 +320,7 @@ export class CaseCategoryComponent {
|
|
|
306
320
|
<vcomply-editor
|
|
307
321
|
[ngModel]="tag?.value || ''"
|
|
308
322
|
(ngModelChange)="updateCustomField($event, i)"
|
|
309
|
-
[editorConfig]="(i | getEditorConfig) ?? customField"
|
|
323
|
+
[editorConfig]="(i | getEditorConfig: 'additionalCategory') ?? customField"
|
|
310
324
|
></vcomply-editor>
|
|
311
325
|
</div>
|
|
312
326
|
</ng-container>
|
|
@@ -342,6 +356,7 @@ export class CaseCategoryComponent {
|
|
|
342
356
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaseCategoryComponent, decorators: [{
|
|
343
357
|
type: Component,
|
|
344
358
|
args: [{ selector: 'app-case-category', template: `
|
|
359
|
+
|
|
345
360
|
<app-field-holder
|
|
346
361
|
[image]="ASSETS.case_category"
|
|
347
362
|
[disabled]="fieldSelector?.includes(fieldSelected)"
|
|
@@ -372,6 +387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
372
387
|
<vcomply-editor
|
|
373
388
|
[(ngModel)]="tag.value"
|
|
374
389
|
[editorConfig]="customField"
|
|
390
|
+
[editorConfig]="(i | getEditorConfig: 'category') ?? customField"
|
|
375
391
|
></vcomply-editor>
|
|
376
392
|
</div>
|
|
377
393
|
</ng-container>
|
|
@@ -403,7 +419,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
403
419
|
<vcomply-editor
|
|
404
420
|
[ngModel]="tag?.value || ''"
|
|
405
421
|
(ngModelChange)="updateCustomField($event, i)"
|
|
406
|
-
[editorConfig]="(i | getEditorConfig) ?? customField"
|
|
422
|
+
[editorConfig]="(i | getEditorConfig: 'additionalCategory') ?? customField"
|
|
407
423
|
></vcomply-editor>
|
|
408
424
|
</div>
|
|
409
425
|
</ng-container>
|
|
@@ -454,4 +470,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
454
470
|
}], fieldClicked: [{
|
|
455
471
|
type: Output
|
|
456
472
|
}] } });
|
|
457
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jYXRlZ29yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9yZXBvcnQtYS1jYXNlL2NvbXBvbmVudHMvY2FzZS1jYXRlZ29yeS9jYXNlLWNhdGVnb3J5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRCxPQUFPLEVBRUwsY0FBYyxFQUNkLFdBQVcsRUFDWCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGNBQWMsR0FDZixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFzR2pFLE1BQU0sT0FBTyxxQkFBcUI7SUFtQ2hDLElBQWEsZ0JBQWdCLENBQUMsS0FBVTtRQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUM7SUFFcEMsQ0FBQztJQUNELElBQWEsMEJBQTBCLENBQUMsS0FBVTtRQUNoRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUM5QyxDQUFDO0lBT0QsWUFBb0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBL0NuRCxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsV0FBVyxDQUFDO1FBQzVCLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQVE7WUFDWixHQUFHLGVBQWUsQ0FBQyxhQUFhO1lBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FB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Ozs7Ozs7Ozs7Ozs7Ozs7R0E2RlQ7eUdBbUNRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDTyxnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBSU8sMEJBQTBCO3NCQUF0QyxLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Fzc2Vzc3RzLmNvbnN0YW50cyc7XG5pbXBvcnQge1xuICBBQ1RJT05fQ09ERSxcbiAgRklFTERfU0VMRUNUT1IsXG4gIFJFUE9SVF9DQVNFLFxuICBTRUxFQ1RPUl9DT05GSUcsXG4gIFNlbGVjdGlvblBvcHVwU3RhdGUsXG4gIFNlbGVjdGlvblN0YXRlLFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMvcmVwb3J0LWNhc2UuY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydCB9IGZyb20gJy4uL2Nhc2UtdHlwZS1zbGlkZXIvY2FzZS10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXBvcnRBQ2FzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXBvcnQtYS1jYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdG9yQ29uZmlnIH0gZnJvbSAnQHZjb21wbHkvZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhc2UtY2F0ZWdvcnknLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhcHAtZmllbGQtaG9sZGVyXG4gICAgICBbaW1hZ2VdPVwiQVNTRVRTLmNhc2VfY2F0ZWdvcnlcIlxuICAgICAgW2Rpc2FibGVkXT1cImZpZWxkU2VsZWN0b3I/LmluY2x1ZGVzKGZpZWxkU2VsZWN0ZWQpXCJcbiAgICAgIFthY3RpdmVdPVwiY2F0ZWdvcnlDbGlja2VkXCJcbiAgICAgIFtjaGVja2VkXT1cInBheWxvYWQ/LmNhdGVnb3J5Py5pZHM/Lmxlbmd0aFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBmaWVsZD5cbiAgICAgICAgPGFwcC1mb3JtLXNlbGVjdEJveFxuICAgICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgIFtwb3B1cFN0YXRlXT1cIlNlbGVjdGlvblBvcHVwU3RhdGUuU0VMRUNUSU9OX0RJQUxPR1wiXG4gICAgICAgICAgW2NoaXBJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCJcbiAgICAgICAgICBbZWRpdERpc2FibGVkXT1cImNhdGVnb3J5RWRpdERpc2FibGVcIlxuICAgICAgICAgIFtyZW1vdmFibGVdPVwiIWNhdGVnb3J5RWRpdERpc2FibGVcIlxuICAgICAgICAgIChmaWVsZENsaWNrZWQpPVwiYWN0aXZhdGVTZWxlY3RvcigkZXZlbnQpXCJcbiAgICAgICAgICAoc2VsZWN0ZWRJdGVtTGlzdENoYW5nZSk9XCJzZXRDYXRlZ29yeUxpc3QoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXBwLXZjLWxhYmVsXG4gICAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgW2xhYmVsVGV4dF09XCJjYXRlZ29yeVRleHRzLmNhc2VfZGV0YWlscy5jYXRlZ29yeS50aXRsZVwiXG4gICAgICAgICAgPjwvYXBwLXZjLWxhYmVsPlxuICAgICAgICA8L2FwcC1mb3JtLXNlbGVjdEJveD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidngtZm9ybS1ncm91cFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHRhZyBvZiBwYXlsb2FkPy5jYXRlZ29yeT8uY3VzdG9tX2ZpZWxkc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+e3sgdGFnPy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICA8dmNvbXBseS1lZGl0b3JcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnLnZhbHVlXCJcbiAgICAgICAgICAgIFtlZGl0b3JDb25maWddPVwiY3VzdG9tRmllbGRcIlxuICAgICAgICAgID48L3Zjb21wbHktZWRpdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYXBwLWZpZWxkLWhvbGRlcj5cbiAgICA8YXBwLWZpZWxkLWhvbGRlclxuICAgICAgKm5nSWY9XCJjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPV1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGRTZWxlY3RlZCA9PT0gJ1JDJ1wiXG4gICAgICBbYWN0aXZlXT1cImNhdGVnb3J5Q2xpY2tlZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBmaWVsZD5cbiAgICAgICAgPGFwcC1mb3JtLXNlbGVjdEJveFxuICAgICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgICBbc3RhdGVdPVwiYWRkaXRpb25hbENhdGVnb3J5U3RhdGVcIlxuICAgICAgICAgIFtwb3B1cFN0YXRlXT1cIlNlbGVjdGlvblBvcHVwU3RhdGUuU0VMRUNUSU9OX0RJQUxPR1wiXG4gICAgICAgICAgW2NoaXBJdGVtc109XCJzZWxlY3RlZEFkZGl0aW9uYWxJdGVtc1wiXG4gICAgICAgICAgKGZpZWxkQ2xpY2tlZCk9XCJhY3RpdmF0ZUFkZGl0aW9uYWxDYXRlZ29yeVNlbGVjdG9yKCRldmVudClcIlxuICAgICAgICAgIChzZWxlY3RlZEl0ZW1MaXN0Q2hhbmdlKT1cInNldEFkZGl0aW9uYWxDYXRlZ29yeUxpc3QoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXBwLXZjLWxhYmVsXG4gICAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgW2xhYmVsVGV4dF09XCJjYXRlZ29yeVRleHRzLmNhc2VfZGV0YWlscy5hZGRpdGlvbmFsX2NhdGVnb3J5LnRpdGxlXCJcbiAgICAgICAgICA+PC9hcHAtdmMtbGFiZWw+XG4gICAgICAgIDwvYXBwLWZvcm0tc2VsZWN0Qm94PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHBheWxvYWQ/LmFkZGl0aW9uYWxfY2F0ZWdvcnk/LmN1c3RvbV9maWVsZHM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+e3sgdGFnPy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICA8dmNvbXBseS1lZGl0b3JcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInRhZz8udmFsdWUgfHwgJydcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlQ3VzdG9tRmllbGQoJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIihpIHwgZ2V0RWRpdG9yQ29uZmlnKSA/PyBjdXN0b21GaWVsZFwiXG4gICAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9hcHAtZmllbGQtaG9sZGVyPlxuICAgIDxhcHAtY2F0ZWdvcnktbGlzdC1zZWxlY3Rpb25cbiAgICAgICpuZ0lmPVwiY2F0ZWdvcnlDbGlja2VkXCJcbiAgICAgIFtjYXRlZ29yeUxpc3RdPVwiY2FzZUNhdGVnb3J5TGlzdFwiXG4gICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICBbbG9hZGluZ109XCJjYXRlZ29yeUxpc3RMb2FkZXJcIlxuICAgICAgW3NlbGVjdGVkTGlzdF09XCJzZWxlY3RlZENhdGVnb3J5TGlzdFwiXG4gICAgICBbc2VsZWN0aW9uTW9kZV09XCJcbiAgICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuUkVQT1JUX0NBU0UgPyAnbXVsdGlwbGUnIDogJ3NpbmdsZSdcbiAgICAgIFwiXG4gICAgICAoY2FuY2VsKT1cImFjdGl2YXRlU2VsZWN0b3IoZmFsc2UpXCJcbiAgICAgIChuZXh0KT1cInNhdmVTZWxlY3RlZENhdGVnb3J5TGlzdCgkZXZlbnQpXCJcbiAgICA+PC9hcHAtY2F0ZWdvcnktbGlzdC1zZWxlY3Rpb24+IFxuICAgIDxhcHAtY2F0ZWdvcnktbGlzdC1zZWxlY3Rpb25cbiAgICAgICpuZ0lmPVwiYWRkaXRpb25hbENhdGVnb3J5Q2xpY2tlZFwiXG4gICAgICBbY2F0ZWdvcnlMaXN0XT1cIlxuICAgICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPVyAmJlxuICAgICAgICBwYXlsb2FkPy5jYXRlZ29yeT8uaWRzPy5sZW5ndGhcbiAgICAgICAgICA/IGZpbHRlcmVkQ2FzZUNhdGVnb3J5TGlzdFxuICAgICAgICAgIDogY2FzZUNhdGVnb3J5TGlzdFxuICAgICAgXCJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgIFtsb2FkaW5nXT1cImNhdGVnb3J5TGlzdExvYWRlclwiXG4gICAgICBbc2VsZWN0ZWRMaXN0XT1cInNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdFwiXG4gICAgICAoY2FuY2VsKT1cImFjdGl2YXRlQWRkaXRpb25hbENhdGVnb3J5U2VsZWN0b3IoZmFsc2UpXCJcbiAgICAgIChuZXh0KT1cInNhdmVTZWxlY3RlZEFkZGl0aW9uYWxDYXRlZ29yeUxpc3QoJGV2ZW50KVwiXG4gICAgPjwvYXBwLWNhdGVnb3J5LWxpc3Qtc2VsZWN0aW9uPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi4vLi4vLi4vZm9ybXMubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXNlQ2F0ZWdvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlc3tcbiAgQVNTRVRTID0gQVNTRVRTO1xuICBjYXRlZ29yeVRleHRzID0gUkVQT1JUX0NBU0U7XG4gIGNhc2VDYXRlZ29yeUxpc3Q6IGFueVtdID0gW107XG4gIGNvbmZpZzogYW55ID0ge1xuICAgIC4uLlNFTEVDVE9SX0NPTkZJRy5DQVNFX0NBVEVHT1JZLFxuICAgIHBsYWNlaG9sZGVyOiB0aGlzLmNhdGVnb3J5VGV4dHMuY2FzZV9kZXRhaWxzLmNhdGVnb3J5LnBsYWNlaG9sZGVyLFxuICB9O1xuICBjYXRlZ29yeUNsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWRkaXRpb25hbENhdGVnb3J5Q2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBjYXRlZ29yeUxpc3RMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgU2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZTtcbiAgU2VsZWN0aW9uUG9wdXBTdGF0ZSA9IFNlbGVjdGlvblBvcHVwU3RhdGU7XG4gIHN0YXRlOiBzdHJpbmcgPSBTZWxlY3Rpb25TdGF0ZS5FTVBUWTtcbiAgYWRkaXRpb25hbENhdGVnb3J5U3RhdGU6IHN0cmluZyA9IFNlbGVjdGlvblN0YXRlLkVNUFRZO1xuICBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZEFkZGl0aW9uYWxJdGVtczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRDYXRlZ29yeUxpc3Q6IGFueVtdID0gW107XG4gIHNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcbiAgaW5pdGlhbENhdGVnb3J5OiBhbnk7XG4gIGNhc2VUeXBlID0gcmVwb3J0O1xuICBmaWVsZFNlbGVjdG9yID0gRklFTERfU0VMRUNUT1I7XG4gIGN1c3RvbUZpZWxkOiBFZGl0b3JDb25maWcgPSB7XG4gICAgbW9kZTogJ3ByaW1lJyxcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXG4gICAgbGluazogdHJ1ZSxcbiAgICBwbGFjZWhvbGRlcjogJ0FkZCB2YWx1ZScsXG4gICAgaWQ6ICdjdXN0b21GaWVsZCdcbiAgfTtcbiAgaW5pdGlhbEFkZGl0aW9uYWxDYXRlZ29yeTogYW55O1xuICBmaWx0ZXJlZENhc2VDYXRlZ29yeUxpc3Q6IGFueVtdID0gW107XG5cbiAgQElucHV0KCkgcGF5bG9hZDogYW55ID0ge307XG4gIEBJbnB1dCgpIGZpZWxkU2VsZWN0ZWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjYXNlVHlwZVNlbGVjdGVkOiBhbnk7XG4gIEBJbnB1dCgpIHNldCBpbml0aWFsU2VsZWN0aW9uKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmluaXRpYWxDYXRlZ29yeSA9IHZhbHVlPy5pZHM7XG4gIFxuICB9XG4gIEBJbnB1dCgpIHNldCBpbml0aWFsQWRkaXRpb25hbFNlbGVjdGlvbih2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5pbml0aWFsQWRkaXRpb25hbENhdGVnb3J5ID0gdmFsdWU/LmlkcztcbiAgfVxuICBASW5wdXQoKSBtb2RlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgd29ya2Zsb3dUeXBlOiBzdHJpbmcgPSAnJztcblxuICBAT3V0cHV0KCkgb25DYXRlZ29yeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZmllbGRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYXNlU2VydmljZTogUmVwb3J0QUNhc2VTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0QWxsQ2F0ZWdvcmllcygpO1xuICB9XG5cbiAgdHJhY2tCeUluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cbiAgXG4gIHVwZGF0ZUN1c3RvbUZpZWxkKHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5wYXlsb2FkPy5hZGRpdGlvbmFsX2NhdGVnb3J5Py5jdXN0b21fZmllbGRzKSB7XG4gICAgICB0aGlzLnBheWxvYWQuYWRkaXRpb25hbF9jYXRlZ29yeS5jdXN0b21fZmllbGRzW2luZGV4XS52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5wYXlsb2FkLmFkZGl0aW9uYWxfY2F0ZWdvcnkuY3VzdG9tX2ZpZWxkcyA9IFsuLi50aGlzLnBheWxvYWQuYWRkaXRpb25hbF9jYXRlZ29yeS5jdXN0b21fZmllbGRzXTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3BheWxvYWQnXSkge1xuICAgICAgaWYgKCF0aGlzLnBheWxvYWQ/LmNhdGVnb3J5Py5pZHM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gU2VsZWN0aW9uU3RhdGUuRU1QVFk7XG4gICAgICAgIHRoaXMuYWRkaXRpb25hbENhdGVnb3J5U3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5FTVBUWTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUxpc3QgPSBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFkZGl0aW9uYWxJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdCA9IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZENhdGVnb3J5TGlzdCgpO1xuXG4gICAgICB9XG4gICAgICB0aGlzLnBvcHVsYXRlSW5pdGlhbENhdGVnb3J5KCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydpbml0aWFsU2VsZWN0aW9uJ10gfHwgY2hhbmdlc1snaW5pdGlhbEFkZGl0aW9uYWxTZWxlY3Rpb24nXSkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUluaXRpYWxDYXRlZ29yeSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFsbENhdGVnb3JpZXMoKSB7XG4gICAgdGhpcy5jYXRlZ29yeUxpc3RMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMuY2FzZVNlcnZpY2UuZ2V0QWxsQ2F0ZWdvcmllcygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY2FzZUNhdGVnb3J5TGlzdCA9IHJlcz8uZGF0YTtcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xuICAgICAgICB0aGlzLnBvcHVsYXRlSW5pdGlhbENhdGVnb3J5KCk7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWRDYXRlZ29yeUxpc3QoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0TG9hZGVyID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwb3B1bGF0ZUluaXRpYWxDYXRlZ29yeSgpIHtcbiAgICBpZiAoKHRoaXMuaW5pdGlhbENhdGVnb3J5Py5sZW5ndGggfHwgdGhpcy5pbml0aWFsQWRkaXRpb25hbENhdGVnb3J5Py5sZW5ndGgpICYmIHRoaXMud29ya2Zsb3dUeXBlID09PSAnQUNUVycpIHtcbiAgICAgIHRoaXMudXBkYXRlQUNUV0NhdGVnb3J5KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmluaXRpYWxDYXRlZ29yeT8ubGVuZ3RoICYmIHRoaXMud29ya2Zsb3dUeXBlID09PSAnUkFDJykge1xuICAgICAgdGhpcy51cGRhdGVSQUNDYXRlZ29yeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGUgPT09ICdFRElUJyAmJlxuICAgICAgdGhpcy53b3JrZmxvd1R5cGUgIT09ICdBQ1RXJyAmJlxuICAgICAgdGhpcy5jYXNlVHlwZVNlbGVjdGVkID09PSB0aGlzLmNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XXG4gICAgICAgID8gKCh0aGlzLnN0YXRlID0gU2VsZWN0aW9uU3RhdGUuRElTQUJMRUQpLFxuICAgICAgICAgICh0aGlzLmNvbmZpZy5kaXNhYmxlZFRleHQgPVxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVRleHRzLmNhc2VfZGV0YWlscy5jYXRlZ29yeS5wbGFjZWhvbGRlcikpXG4gICAgICAgIDogKHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5FTVBUWSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUkFDQ2F0ZWdvcnkoKSB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbENhdGVnb3J5Py5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUxpc3QgPSB0aGlzLmNhc2VDYXRlZ29yeUxpc3Q/LmZpbHRlcihcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+XG4gICAgICAgICAgdGhpcy5pbml0aWFsQ2F0ZWdvcnk/LnNvbWUoKGlkOiBhbnkpID0+IGlkID09PSBjYXRlZ29yeT8uX2lkKVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuY2FzZUNhdGVnb3J5TGlzdFxuICAgICAgICAuZmlsdGVyKChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgICAgIHRoaXMuaW5pdGlhbENhdGVnb3J5Py5zb21lKChpZDogYW55KSA9PiBpZCA9PT0gY2F0ZWdvcnk/Ll9pZClcbiAgICAgICAgKVxuICAgICAgICAubWFwKChjYXRlZ29yeTogYW55KSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiBjYXRlZ29yeT8ubmFtZSxcbiAgICAgICAgICB2YWx1ZTogY2F0ZWdvcnk/Ll9pZCxcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbml0aWFsQWRkaXRpb25hbENhdGVnb3J5Py5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYWRkaXRpb25hbENhdGVnb3J5U3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0ID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0Py5maWx0ZXIoXG4gICAgICAgIChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgICAgIHRoaXMuaW5pdGlhbEFkZGl0aW9uYWxDYXRlZ29yeT8uc29tZShcbiAgICAgICAgICAgIChpZDogYW55KSA9PiBpZCA9PT0gY2F0ZWdvcnk/Ll9pZFxuICAgICAgICAgIClcbiAgICAgICk7XG4gICAgICB0aGlzLnNlbGVjdGVkQWRkaXRpb25hbEl0ZW1zID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0XG4gICAgICAgIC5maWx0ZXIoKGNhdGVnb3J5OiBhbnkpID0+XG4gICAgICAgICAgdGhpcy5pbml0aWFsQWRkaXRpb25hbENhdGVnb3J5Py5pbmNsdWRlcyhjYXRlZ29yeT8uX2lkKVxuICAgICAgICApXG4gICAgICAgIC5tYXAoKGNhdGVnb3J5OiBhbnkpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IGNhdGVnb3J5Py5uYW1lLFxuICAgICAgICAgIHZhbHVlOiBjYXRlZ29yeT8uX2lkLFxuICAgICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQUNUV0NhdGVnb3J5KCkge1xuICAgIHRoaXMuYWRkaXRpb25hbENhdGVnb3J5U3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDtcbiAgICB0aGlzLnNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdCA9IHRoaXMuY2FzZUNhdGVnb3J5TGlzdD8uZmlsdGVyKFxuICAgICAgKGNhdGVnb3J5OiBhbnkpID0+XG4gICAgICAgIHRoaXMuaW5pdGlhbENhdGVnb3J5LnNvbWUoKGlkOiBhbnkpID0+IGlkID09PSBjYXRlZ29yeT8uX2lkKVxuICAgICk7XG4gICAgdGhpcy5zZWxlY3RlZEFkZGl0aW9uYWxJdGVtcyA9IHRoaXMuY2FzZUNhdGVnb3J5TGlzdFxuICAgICAgLmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT4gdGhpcy5pbml0aWFsQ2F0ZWdvcnkuaW5jbHVkZXMoY2F0ZWdvcnk/Ll9pZCkpXG4gICAgICAubWFwKChjYXRlZ29yeTogYW55KSA9PiAoe1xuICAgICAgICBsYWJlbDogY2F0ZWdvcnk/Lm5hbWUsXG4gICAgICAgIHZhbHVlOiBjYXRlZ29yeT8uX2lkLFxuICAgICAgfSkpO1xuICB9XG5cbiAgc2F2ZVNlbGVjdGVkQ2F0ZWdvcnlMaXN0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmNhdGVnb3J5Q2xpY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRDYXRlZ29yeUxpc3QoZXZlbnQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuY2FzZUNhdGVnb3J5TGlzdFxuICAgICAgLmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgICAgZXZlbnQuc29tZSgoZXZlbnRJdGVtOiBhbnkpID0+IGV2ZW50SXRlbT8uX2lkID09PSBjYXRlZ29yeT8uX2lkKVxuICAgICAgKVxuICAgICAgLm1hcCgoY2F0ZWdvcnk6IGFueSkgPT4gKHtcbiAgICAgICAgbGFiZWw6IGNhdGVnb3J5Py5uYW1lLFxuICAgICAgICB2YWx1ZTogY2F0ZWdvcnk/Ll9pZCxcbiAgICAgIH0pKTtcbiAgICB0aGlzLnBheWxvYWQuY2F0ZWdvcnkuaWRzID0gZXZlbnQubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0/Ll9pZCk7XG4gICAgdGhpcy51cGRhdGVGaWx0ZXJlZENhdGVnb3J5TGlzdCgpO1xuICAgIHRoaXMucGF5bG9hZC5jYXRlZ29yeS5jdXN0b21fZmllbGRzID0gZXZlbnQuZmxhdE1hcChcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0/LmN1c3RvbV9maWVsZHNcbiAgICApO1xuICAgIHRoaXMub25DYXRlZ29yeUNoYW5nZS5lbWl0KHRoaXMucGF5bG9hZC5jYXRlZ29yeS5pZHMpO1xuICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDtcbiAgICB0aGlzLmZpZWxkQ2xpY2tlZC5lbWl0KCcnKTtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcmVkQ2F0ZWdvcnlMaXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhc2VUeXBlU2VsZWN0ZWQgPT09IHRoaXMuY2FzZVR5cGUuQUREX0NBU0VfVE9fV09SS0ZMT1cpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRDYXNlQ2F0ZWdvcnlMaXN0ID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0LmZpbHRlcihcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+ICF0aGlzLnBheWxvYWQuY2F0ZWdvcnkuaWRzLmluY2x1ZGVzKGNhdGVnb3J5Ll9pZClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZVNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdChldmVudDogYW55KSB7XG4gICAgdGhpcy5hZGRpdGlvbmFsQ2F0ZWdvcnlDbGlja2VkID0gZmFsc2U7XG4gICAgdGhpcy5zZXRTZWxlY3RlZEFkZGl0aW9uYWxDYXRlZ29yeUxpc3QoZXZlbnQpO1xuICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsSXRlbXMgPSB0aGlzLmNhc2VDYXRlZ29yeUxpc3RcbiAgICAgIC5maWx0ZXIoKGNhdGVnb3J5OiBhbnkpID0+XG4gICAgICAgIGV2ZW50LnNvbWUoKGV2ZW50SXRlbTogYW55KSA9PiBldmVudEl0ZW0/Ll9pZCA9PT0gY2F0ZWdvcnk/Ll9pZClcbiAgICAgIClcbiAgICAgIC5tYXAoKGNhdGVnb3J5OiBhbnkpID0+ICh7XG4gICAgICAgIGxhYmVsOiBjYXRlZ29yeT8ubmFtZSxcbiAgICAgICAgdmFsdWU6IGNhdGVnb3J5Py5faWQsXG4gICAgICB9KSk7XG4gICAgICBpZighdGhpcy5wYXlsb2FkWydhZGRpdGlvbmFsX2NhdGVnb3J5J10pe1xuICAgICAgICB0aGlzLnBheWxvYWRbJ2FkZGl0aW9uYWxfY2F0ZWdvcnknXSA9IHt9O1xuICAgICAgfVxuICAgIHRoaXMucGF5bG9hZFsnYWRkaXRpb25hbF9jYXRlZ29yeSddWydpZHMnXSA9IGV2ZW50Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtPy5faWQpO1xuICAgIHRoaXMucGF5bG9hZFsnYWRkaXRpb25hbF9jYXRlZ29yeSddWydjdXN0b21fZmllbGRzJ10gPSBldmVudC5mbGF0TWFwKFxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbT8uY3VzdG9tX2ZpZWxkc1xuICAgICk7XG4gICAgdGhpcy5hZGRpdGlvbmFsQ2F0ZWdvcnlTdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEO1xuICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJycpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0KGV2ZW50OiBhbnlbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0ID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0LmZpbHRlcihcbiAgICAgIChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgICBldmVudC5zb21lKChldmVudEl0ZW06IGFueSkgPT4gZXZlbnRJdGVtPy5faWQgPT09IGNhdGVnb3J5Py5faWQpXG4gICAgKTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkQ2F0ZWdvcnlMaXN0KGV2ZW50OiBhbnlbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUxpc3QgPSB0aGlzLmNhc2VDYXRlZ29yeUxpc3QuZmlsdGVyKChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgZXZlbnQuc29tZSgoZXZlbnRJdGVtOiBhbnkpID0+IGV2ZW50SXRlbT8uX2lkID09PSBjYXRlZ29yeT8uX2lkKVxuICAgICk7XG4gIH1cblxuICBhY3RpdmF0ZVNlbGVjdG9yKGFjdGl2ZTogYm9vbGVhbikge1xuICAgIHRoaXMuY2F0ZWdvcnlDbGlja2VkID0gYWN0aXZlO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJ2NhdGVnb3J5Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJycpO1xuICAgIH1cbiAgfVxuXG4gIGFjdGl2YXRlQWRkaXRpb25hbENhdGVnb3J5U2VsZWN0b3IoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgdGhpcy5hZGRpdGlvbmFsQ2F0ZWdvcnlDbGlja2VkID0gYWN0aXZlO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJ2FkZGl0aW9uYWxDYXRlZ29yeScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpZWxkQ2xpY2tlZC5lbWl0KCcnKTtcbiAgICB9XG4gIH1cblxuICBzZXRDYXRlZ29yeUxpc3QoZXZlbnQ6IGFueSkge1xuICAgIGlmICghZXZlbnQ/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5yZXNldENhdGVnb3J5TGlzdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlMaXN0ID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0LmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgIGV2ZW50LnNvbWUoKGV2ZW50SXRlbTogYW55KSA9PiBldmVudEl0ZW0/LnZhbHVlID09PSBjYXRlZ29yeT8uX2lkKVxuICAgICk7XG4gICAgdGhpcy5wYXlsb2FkLmNhdGVnb3J5LmlkcyA9IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUxpc3Q/Lm1hcChcbiAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeT8uX2lkXG4gICAgKTtcbiAgICB0aGlzLm9uQ2F0ZWdvcnlDaGFuZ2UuZW1pdCh0aGlzLnBheWxvYWQuY2F0ZWdvcnkuaWRzKTtcbiAgfVxuXG4gIHNldEFkZGl0aW9uYWxDYXRlZ29yeUxpc3QoZXZlbnQ6IGFueVtdKSB7XG4gICAgaWYgKCFldmVudD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlc2V0QWRkaXRpb25hbENhdGVnb3J5TGlzdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdCA9IHRoaXMuY2FzZUNhdGVnb3J5TGlzdC5maWx0ZXIoXG4gICAgICAoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgICAgZXZlbnQuc29tZSgoZXZlbnRJdGVtOiBhbnkpID0+IGV2ZW50SXRlbT8udmFsdWUgPT09IGNhdGVnb3J5Py5faWQpXG4gICAgKTtcbiAgICB0aGlzLnBheWxvYWQuYWRkaXRpb25hbF9jYXRlZ29yeS5pZHMgPVxuICAgICAgdGhpcy5zZWxlY3RlZEFkZGl0aW9uYWxDYXRlZ29yeUxpc3Q/Lm1hcChcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5Py5faWRcbiAgICAgICk7XG4gIH1cblxuICBnZXQgY2F0ZWdvcnlFZGl0RGlzYWJsZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5tb2RlID09PSAnRURJVCcgJiZcbiAgICAgIHRoaXMuY2FzZVR5cGVTZWxlY3RlZCA9PT0gdGhpcy5jYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPVyAmJlxuICAgICAgdGhpcy53b3JrZmxvd1R5cGUgIT09ICdBQ1RXJ1xuICAgICk7XG4gIH1cblxuICByZXNldENhdGVnb3J5TGlzdCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlMaXN0ID0gW107XG4gICAgdGhpcy5wYXlsb2FkLmNhdGVnb3J5LmlkcyA9IFtdO1xuICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5FTVBUWTtcbiAgICB0aGlzLmZpbHRlcmVkQ2FzZUNhdGVnb3J5TGlzdCA9IFsuLi50aGlzLmNhc2VDYXRlZ29yeUxpc3RdO1xuICB9XG5cbiAgcmVzZXRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0ID0gW107XG4gICAgdGhpcy5wYXlsb2FkLmFkZGl0aW9uYWxfY2F0ZWdvcnkuaWRzID0gW107XG4gICAgdGhpcy5hZGRpdGlvbmFsQ2F0ZWdvcnlTdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkVNUFRZO1xuICB9XG59XG4iXX0=
|
|
473
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jYXRlZ29yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9yZXBvcnQtYS1jYXNlL2NvbXBvbmVudHMvY2FzZS1jYXRlZ29yeS9jYXNlLWNhdGVnb3J5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRCxPQUFPLEVBRUwsY0FBYyxFQUNkLFdBQVcsRUFDWCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGNBQWMsR0FDZixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7QUF3R2pFLE1BQU0sT0FBTyxxQkFBcUI7SUFtQ2hDLElBQWEsZ0JBQWdCLENBQUMsS0FBVTtRQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUM7SUFFcEMsQ0FBQztJQUNELElBQWEsMEJBQTBCLENBQUMsS0FBVTtRQUNoRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUM5QyxDQUFDO0lBT0QsWUFBb0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBL0NuRCxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsV0FBVyxDQUFDO1FBQzVCLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQVE7WUFDWixHQUFHLGVBQWUsQ0FBQyxhQUFhO1lBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FB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QixxQkFBcUIsaVpBbEd0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErRlQ7OzRGQUdVLHFCQUFxQjtrQkFwR2pDLFNBQVM7K0JBQ0UsbUJBQW1CLFlBQ25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStGVDt5R0FtQ1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFJTywwQkFBMEI7c0JBQXRDLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXNzdHMuY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIEFDVElPTl9DT0RFLFxuICBGSUVMRF9TRUxFQ1RPUixcbiAgUkVQT1JUX0NBU0UsXG4gIFNFTEVDVE9SX0NPTkZJRyxcbiAgU2VsZWN0aW9uUG9wdXBTdGF0ZSxcbiAgU2VsZWN0aW9uU3RhdGUsXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cy9yZXBvcnQtY2FzZS5jb25zdGFudHMnO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSAnLi4vY2FzZS10eXBlLXNsaWRlci9jYXNlLXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydEFDYXNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlcG9ydC1hLWNhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICdAdmNvbXBseS9lZGl0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2FzZS1jYXRlZ29yeScsXG4gIHRlbXBsYXRlOiBgXG5cbiAgICA8YXBwLWZpZWxkLWhvbGRlclxuICAgICAgW2ltYWdlXT1cIkFTU0VUUy5jYXNlX2NhdGVnb3J5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJmaWVsZFNlbGVjdG9yPy5pbmNsdWRlcyhmaWVsZFNlbGVjdGVkKVwiXG4gICAgICBbYWN0aXZlXT1cImNhdGVnb3J5Q2xpY2tlZFwiXG4gICAgICBbY2hlY2tlZF09XCJwYXlsb2FkPy5jYXRlZ29yeT8uaWRzPy5sZW5ndGhcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgZmllbGQ+XG4gICAgICAgIDxhcHAtZm9ybS1zZWxlY3RCb3hcbiAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICBbcG9wdXBTdGF0ZV09XCJTZWxlY3Rpb25Qb3B1cFN0YXRlLlNFTEVDVElPTl9ESUFMT0dcIlxuICAgICAgICAgIFtjaGlwSXRlbXNdPVwic2VsZWN0ZWRJdGVtc1wiXG4gICAgICAgICAgW2VkaXREaXNhYmxlZF09XCJjYXRlZ29yeUVkaXREaXNhYmxlXCJcbiAgICAgICAgICBbcmVtb3ZhYmxlXT1cIiFjYXRlZ29yeUVkaXREaXNhYmxlXCJcbiAgICAgICAgICAoZmllbGRDbGlja2VkKT1cImFjdGl2YXRlU2VsZWN0b3IoJGV2ZW50KVwiXG4gICAgICAgICAgKHNlbGVjdGVkSXRlbUxpc3RDaGFuZ2UpPVwic2V0Q2F0ZWdvcnlMaXN0KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFwcC12Yy1sYWJlbFxuICAgICAgICAgICAgbGFiZWxcbiAgICAgICAgICAgIFtsYWJlbFRleHRdPVwiY2F0ZWdvcnlUZXh0cy5jYXNlX2RldGFpbHMuY2F0ZWdvcnkudGl0bGVcIlxuICAgICAgICAgID48L2FwcC12Yy1sYWJlbD5cbiAgICAgICAgPC9hcHAtZm9ybS1zZWxlY3RCb3g+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWcgb2YgcGF5bG9hZD8uY2F0ZWdvcnk/LmN1c3RvbV9maWVsZHNcIlxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPnt7IHRhZz8ubmFtZSB9fTwvbGFiZWw+XG4gICAgICAgICAgPHZjb21wbHktZWRpdG9yXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZy52YWx1ZVwiXG4gICAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cImN1c3RvbUZpZWxkXCJcbiAgICAgICAgICAgIFtlZGl0b3JDb25maWddPVwiKGkgfCBnZXRFZGl0b3JDb25maWc6ICdjYXRlZ29yeScpID8/IGN1c3RvbUZpZWxkXCJcbiAgICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2FwcC1maWVsZC1ob2xkZXI+XG4gICAgPGFwcC1maWVsZC1ob2xkZXJcbiAgICAgICpuZ0lmPVwiY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuQUREX0NBU0VfVE9fV09SS0ZMT1dcIlxuICAgICAgW2Rpc2FibGVkXT1cImZpZWxkU2VsZWN0ZWQgPT09ICdSQydcIlxuICAgICAgW2FjdGl2ZV09XCJjYXRlZ29yeUNsaWNrZWRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgZmllbGQ+XG4gICAgICAgIDxhcHAtZm9ybS1zZWxlY3RCb3hcbiAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgW3N0YXRlXT1cImFkZGl0aW9uYWxDYXRlZ29yeVN0YXRlXCJcbiAgICAgICAgICBbcG9wdXBTdGF0ZV09XCJTZWxlY3Rpb25Qb3B1cFN0YXRlLlNFTEVDVElPTl9ESUFMT0dcIlxuICAgICAgICAgIFtjaGlwSXRlbXNdPVwic2VsZWN0ZWRBZGRpdGlvbmFsSXRlbXNcIlxuICAgICAgICAgIChmaWVsZENsaWNrZWQpPVwiYWN0aXZhdGVBZGRpdGlvbmFsQ2F0ZWdvcnlTZWxlY3RvcigkZXZlbnQpXCJcbiAgICAgICAgICAoc2VsZWN0ZWRJdGVtTGlzdENoYW5nZSk9XCJzZXRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFwcC12Yy1sYWJlbFxuICAgICAgICAgICAgbGFiZWxcbiAgICAgICAgICAgIFtsYWJlbFRleHRdPVwiY2F0ZWdvcnlUZXh0cy5jYXNlX2RldGFpbHMuYWRkaXRpb25hbF9jYXRlZ29yeS50aXRsZVwiXG4gICAgICAgICAgPjwvYXBwLXZjLWxhYmVsPlxuICAgICAgICA8L2FwcC1mb3JtLXNlbGVjdEJveD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidngtZm9ybS1ncm91cFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHRhZyBvZiBwYXlsb2FkPy5hZGRpdGlvbmFsX2NhdGVnb3J5Py5jdXN0b21fZmllbGRzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPnt7IHRhZz8ubmFtZSB9fTwvbGFiZWw+XG4gICAgICAgICAgPHZjb21wbHktZWRpdG9yXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJ0YWc/LnZhbHVlIHx8ICcnXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUN1c3RvbUZpZWxkKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgW2VkaXRvckNvbmZpZ109XCIoaSB8IGdldEVkaXRvckNvbmZpZzogJ2FkZGl0aW9uYWxDYXRlZ29yeScpID8/IGN1c3RvbUZpZWxkXCJcbiAgICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2FwcC1maWVsZC1ob2xkZXI+XG4gICAgPGFwcC1jYXRlZ29yeS1saXN0LXNlbGVjdGlvblxuICAgICAgKm5nSWY9XCJjYXRlZ29yeUNsaWNrZWRcIlxuICAgICAgW2NhdGVnb3J5TGlzdF09XCJjYXNlQ2F0ZWdvcnlMaXN0XCJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgIFtsb2FkaW5nXT1cImNhdGVnb3J5TGlzdExvYWRlclwiXG4gICAgICBbc2VsZWN0ZWRMaXN0XT1cInNlbGVjdGVkQ2F0ZWdvcnlMaXN0XCJcbiAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cIlxuICAgICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5SRVBPUlRfQ0FTRSA/ICdtdWx0aXBsZScgOiAnc2luZ2xlJ1xuICAgICAgXCJcbiAgICAgIChjYW5jZWwpPVwiYWN0aXZhdGVTZWxlY3RvcihmYWxzZSlcIlxuICAgICAgKG5leHQpPVwic2F2ZVNlbGVjdGVkQ2F0ZWdvcnlMaXN0KCRldmVudClcIlxuICAgID48L2FwcC1jYXRlZ29yeS1saXN0LXNlbGVjdGlvbj4gXG4gICAgPGFwcC1jYXRlZ29yeS1saXN0LXNlbGVjdGlvblxuICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsQ2F0ZWdvcnlDbGlja2VkXCJcbiAgICAgIFtjYXRlZ29yeUxpc3RdPVwiXG4gICAgICAgIGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XICYmXG4gICAgICAgIHBheWxvYWQ/LmNhdGVnb3J5Py5pZHM/Lmxlbmd0aFxuICAgICAgICAgID8gZmlsdGVyZWRDYXNlQ2F0ZWdvcnlMaXN0XG4gICAgICAgICAgOiBjYXNlQ2F0ZWdvcnlMaXN0XG4gICAgICBcIlxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgW2xvYWRpbmddPVwiY2F0ZWdvcnlMaXN0TG9hZGVyXCJcbiAgICAgIFtzZWxlY3RlZExpc3RdPVwic2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0XCJcbiAgICAgIChjYW5jZWwpPVwiYWN0aXZhdGVBZGRpdGlvbmFsQ2F0ZWdvcnlTZWxlY3RvcihmYWxzZSlcIlxuICAgICAgKG5leHQpPVwic2F2ZVNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdCgkZXZlbnQpXCJcbiAgICA+PC9hcHAtY2F0ZWdvcnktbGlzdC1zZWxlY3Rpb24+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuLi8uLi8uLi9mb3Jtcy5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENhc2VDYXRlZ29yeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2Vze1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIGNhdGVnb3J5VGV4dHMgPSBSRVBPUlRfQ0FTRTtcbiAgY2FzZUNhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcbiAgY29uZmlnOiBhbnkgPSB7XG4gICAgLi4uU0VMRUNUT1JfQ09ORklHLkNBU0VfQ0FURUdPUlksXG4gICAgcGxhY2Vob2xkZXI6IHRoaXMuY2F0ZWdvcnlUZXh0cy5jYXNlX2RldGFpbHMuY2F0ZWdvcnkucGxhY2Vob2xkZXIsXG4gIH07XG4gIGNhdGVnb3J5Q2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBhZGRpdGlvbmFsQ2F0ZWdvcnlDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGNhdGVnb3J5TGlzdExvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBTZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlO1xuICBTZWxlY3Rpb25Qb3B1cFN0YXRlID0gU2VsZWN0aW9uUG9wdXBTdGF0ZTtcbiAgc3RhdGU6IHN0cmluZyA9IFNlbGVjdGlvblN0YXRlLkVNUFRZO1xuICBhZGRpdGlvbmFsQ2F0ZWdvcnlTdGF0ZTogc3RyaW5nID0gU2VsZWN0aW9uU3RhdGUuRU1QVFk7XG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG4gIHNlbGVjdGVkQWRkaXRpb25hbEl0ZW1zOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZENhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0OiBhbnlbXSA9IFtdO1xuICBpbml0aWFsQ2F0ZWdvcnk6IGFueTtcbiAgY2FzZVR5cGUgPSByZXBvcnQ7XG4gIGZpZWxkU2VsZWN0b3IgPSBGSUVMRF9TRUxFQ1RPUjtcbiAgY3VzdG9tRmllbGQ6IEVkaXRvckNvbmZpZyA9IHtcbiAgICBtb2RlOiAncHJpbWUnLFxuICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcbiAgICBsaW5rOiB0cnVlLFxuICAgIHBsYWNlaG9sZGVyOiAnQWRkIHZhbHVlJyxcbiAgICBpZDogJ2N1c3RvbUZpZWxkJ1xuICB9O1xuICBpbml0aWFsQWRkaXRpb25hbENhdGVnb3J5OiBhbnk7XG4gIGZpbHRlcmVkQ2FzZUNhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcblxuICBASW5wdXQoKSBwYXlsb2FkOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgZmllbGRTZWxlY3RlZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNhc2VUeXBlU2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KCkgc2V0IGluaXRpYWxTZWxlY3Rpb24odmFsdWU6IGFueSkge1xuICAgIHRoaXMuaW5pdGlhbENhdGVnb3J5ID0gdmFsdWU/LmlkcztcbiAgXG4gIH1cbiAgQElucHV0KCkgc2V0IGluaXRpYWxBZGRpdGlvbmFsU2VsZWN0aW9uKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmluaXRpYWxBZGRpdGlvbmFsQ2F0ZWdvcnkgPSB2YWx1ZT8uaWRzO1xuICB9XG4gIEBJbnB1dCgpIG1vZGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB3b3JrZmxvd1R5cGU6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBvbkNhdGVnb3J5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBmaWVsZENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhc2VTZXJ2aWNlOiBSZXBvcnRBQ2FzZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXRBbGxDYXRlZ29yaWVzKCk7XG4gIH1cblxuICB0cmFja0J5SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuICBcbiAgdXBkYXRlQ3VzdG9tRmllbGQodmFsdWU6IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnBheWxvYWQ/LmFkZGl0aW9uYWxfY2F0ZWdvcnk/LmN1c3RvbV9maWVsZHMpIHtcbiAgICAgIHRoaXMucGF5bG9hZC5hZGRpdGlvbmFsX2NhdGVnb3J5LmN1c3RvbV9maWVsZHNbaW5kZXhdLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnBheWxvYWQuYWRkaXRpb25hbF9jYXRlZ29yeS5jdXN0b21fZmllbGRzID0gWy4uLnRoaXMucGF5bG9hZC5hZGRpdGlvbmFsX2NhdGVnb3J5LmN1c3RvbV9maWVsZHNdO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncGF5bG9hZCddKSB7XG4gICAgICBpZiAoIXRoaXMucGF5bG9hZD8uY2F0ZWdvcnk/Lmlkcz8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5FTVBUWTtcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsQ2F0ZWdvcnlTdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkVNUFRZO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5TGlzdCA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQWRkaXRpb25hbEl0ZW1zID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0ID0gW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkQ2F0ZWdvcnlMaXN0KCk7XG5cbiAgICAgIH1cbiAgICAgIHRoaXMucG9wdWxhdGVJbml0aWFsQ2F0ZWdvcnkoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxTZWxlY3Rpb24nXSB8fCBjaGFuZ2VzWydpbml0aWFsQWRkaXRpb25hbFNlbGVjdGlvbiddKSB7XG4gICAgICB0aGlzLnBvcHVsYXRlSW5pdGlhbENhdGVnb3J5KCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWxsQ2F0ZWdvcmllcygpIHtcbiAgICB0aGlzLmNhdGVnb3J5TGlzdExvYWRlciA9IHRydWU7XG4gICAgdGhpcy5jYXNlU2VydmljZS5nZXRBbGxDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0ID0gcmVzPy5kYXRhO1xuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICAgIHRoaXMucG9wdWxhdGVJbml0aWFsQ2F0ZWdvcnkoKTtcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZENhdGVnb3J5TGlzdCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3RMb2FkZXIgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHBvcHVsYXRlSW5pdGlhbENhdGVnb3J5KCkge1xuICAgIGlmICh0aGlzLmlzQUNUV1dvcmtmbG93KCkpIHtcbiAgICAgIHRoaXMudXBkYXRlQUNUV0NhdGVnb3J5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNSQUNXb3JrZmxvdygpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVJBQ0NhdGVnb3J5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGVEZWZhdWx0Q2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FDVFdXb3JrZmxvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMuaW5pdGlhbENhdGVnb3J5Py5sZW5ndGggfHwgdGhpcy5pbml0aWFsQWRkaXRpb25hbENhdGVnb3J5Py5sZW5ndGgpICYmIFxuICAgICAgdGhpcy53b3JrZmxvd1R5cGUgPT09ICdBQ1RXJ1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzUkFDV29ya2Zsb3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmluaXRpYWxDYXRlZ29yeT8ubGVuZ3RoIHx8IHRoaXMuaW5pdGlhbEFkZGl0aW9uYWxDYXRlZ29yeT8ubGVuZ3RoKSAmJiB0aGlzLndvcmtmbG93VHlwZSA9PT0gJ1JBQyc7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURlZmF1bHRDYXNlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzRWRpdE1vZGVXaXRoUmVzdHJpY3Rpb25zID0gXG4gICAgICB0aGlzLm1vZGUgPT09ICdFRElUJyAmJlxuICAgICAgdGhpcy53b3JrZmxvd1R5cGUgIT09ICdBQ1RXJyAmJlxuICAgICAgdGhpcy5jYXNlVHlwZVNlbGVjdGVkID09PSB0aGlzLmNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XO1xuXG4gICAgdGhpcy5zdGF0ZSA9IGlzRWRpdE1vZGVXaXRoUmVzdHJpY3Rpb25zIFxuICAgICAgPyBTZWxlY3Rpb25TdGF0ZS5ESVNBQkxFRCBcbiAgICAgIDogU2VsZWN0aW9uU3RhdGUuRU1QVFk7XG5cbiAgICBpZiAoaXNFZGl0TW9kZVdpdGhSZXN0cmljdGlvbnMpIHtcbiAgICAgIHRoaXMuY29uZmlnLmRpc2FibGVkVGV4dCA9IHRoaXMuY2F0ZWdvcnlUZXh0cy5jYXNlX2RldGFpbHMuY2F0ZWdvcnkucGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gIH1cblxuICB1cGRhdGVSQUNDYXRlZ29yeSgpIHtcbiAgICBpZiAodGhpcy5pbml0aWFsQ2F0ZWdvcnk/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5zdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEO1xuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5TGlzdCA9IHRoaXMuY2FzZUNhdGVnb3J5TGlzdD8uZmlsdGVyKFxuICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgICAgICB0aGlzLmluaXRpYWxDYXRlZ29yeT8uc29tZSgoaWQ6IGFueSkgPT4gaWQgPT09IGNhdGVnb3J5Py5faWQpXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0XG4gICAgICAgIC5maWx0ZXIoKGNhdGVnb3J5OiBhbnkpID0+XG4gICAgICAgICAgdGhpcy5pbml0aWFsQ2F0ZWdvcnk/LnNvbWUoKGlkOiBhbnkpID0+IGlkID09PSBjYXRlZ29yeT8uX2lkKVxuICAgICAgICApXG4gICAgICAgIC5tYXAoKGNhdGVnb3J5OiBhbnkpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IGNhdGVnb3J5Py5uYW1lLFxuICAgICAgICAgIHZhbHVlOiBjYXRlZ29yeT8uX2lkLFxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmluaXRpYWxBZGRpdGlvbmFsQ2F0ZWdvcnk/Lmxlbmd0aCkge1xuICAgICBcbiAgICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0ID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0Py5maWx0ZXIoXG4gICAgICAgIChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgICAgIHRoaXMuaW5pdGlhbEFkZGl0aW9uYWxDYXRlZ29yeT8uc29tZShcbiAgICAgICAgICAgIChpZDogYW55KSA9PiBpZCA9PT0gY2F0ZWdvcnk/Ll9pZFxuICAgICAgICAgICkgfHwgdGhpcy5pbml0aWFsQWRkaXRpb25hbENhdGVnb3J5Py5pbmNsdWRlcyhjYXRlZ29yeT8uX2lkKVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsSXRlbXMgPSB0aGlzLnNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdFxuICAgICAgICAubWFwKChjYXRlZ29yeTogYW55KSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiBjYXRlZ29yeT8ubmFtZSxcbiAgICAgICAgICB2YWx1ZTogY2F0ZWdvcnk/Ll9pZCxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLmFkZGl0aW9uYWxDYXRlZ29yeVN0YXRlID0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7XG5cbiAgICAgICAgaWYoIXRoaXMuaW5pdGlhbENhdGVnb3J5Py5sZW5ndGgpe1xuICAgICAgICAgIHRoaXMuaGFuZGxlRGVmYXVsdENhc2UoKTtcbiAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUFDVFdDYXRlZ29yeSgpIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxDYXRlZ29yeVN0YXRlID0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7XG4gICAgdGhpcy5zZWxlY3RlZEFkZGl0aW9uYWxDYXRlZ29yeUxpc3QgPSB0aGlzLmNhc2VDYXRlZ29yeUxpc3Q/LmZpbHRlcihcbiAgICAgIChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgICB0aGlzLmluaXRpYWxDYXRlZ29yeS5zb21lKChpZDogYW55KSA9PiBpZCA9PT0gY2F0ZWdvcnk/Ll9pZCkgfHwgdGhpcy5pbml0aWFsQWRkaXRpb25hbENhdGVnb3J5LmluY2x1ZGVzKGNhdGVnb3J5Py5faWQpXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkQWRkaXRpb25hbEl0ZW1zID0gdGhpcy5zZWxlY3RlZEFkZGl0aW9uYWxDYXRlZ29yeUxpc3QubWFwKChjYXRlZ29yeTogYW55KSA9PiAoe1xuICAgICAgbGFiZWw6IGNhdGVnb3J5Py5uYW1lLFxuICAgICAgdmFsdWU6IGNhdGVnb3J5Py5faWQsXG4gICAgfSkpO1xuICB9XG5cbiAgc2F2ZVNlbGVjdGVkQ2F0ZWdvcnlMaXN0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmNhdGVnb3J5Q2xpY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRDYXRlZ29yeUxpc3QoZXZlbnQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuY2FzZUNhdGVnb3J5TGlzdFxuICAgICAgLmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgICAgZXZlbnQuc29tZSgoZXZlbnRJdGVtOiBhbnkpID0+IGV2ZW50SXRlbT8uX2lkID09PSBjYXRlZ29yeT8uX2lkKVxuICAgICAgKVxuICAgICAgLm1hcCgoY2F0ZWdvcnk6IGFueSkgPT4gKHtcbiAgICAgICAgbGFiZWw6IGNhdGVnb3J5Py5uYW1lLFxuICAgICAgICB2YWx1ZTogY2F0ZWdvcnk/Ll9pZCxcbiAgICAgIH0pKTtcbiAgICB0aGlzLnBheWxvYWQuY2F0ZWdvcnkuaWRzID0gZXZlbnQubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0/Ll9pZCk7XG4gICAgdGhpcy51cGRhdGVGaWx0ZXJlZENhdGVnb3J5TGlzdCgpO1xuICAgIHRoaXMucGF5bG9hZC5jYXRlZ29yeS5jdXN0b21fZmllbGRzID0gZXZlbnQuZmxhdE1hcChcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0/LmN1c3RvbV9maWVsZHNcbiAgICApO1xuICAgIHRoaXMub25DYXRlZ29yeUNoYW5nZS5lbWl0KHRoaXMucGF5bG9hZC5jYXRlZ29yeS5pZHMpO1xuICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDtcbiAgICB0aGlzLmZpZWxkQ2xpY2tlZC5lbWl0KCcnKTtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcmVkQ2F0ZWdvcnlMaXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhc2VUeXBlU2VsZWN0ZWQgPT09IHRoaXMuY2FzZVR5cGUuQUREX0NBU0VfVE9fV09SS0ZMT1cpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRDYXNlQ2F0ZWdvcnlMaXN0ID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0LmZpbHRlcihcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+ICF0aGlzLnBheWxvYWQuY2F0ZWdvcnkuaWRzLmluY2x1ZGVzKGNhdGVnb3J5Ll9pZClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZVNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdChldmVudDogYW55KSB7XG4gICAgdGhpcy5hZGRpdGlvbmFsQ2F0ZWdvcnlDbGlja2VkID0gZmFsc2U7XG4gICAgdGhpcy5zZXRTZWxlY3RlZEFkZGl0aW9uYWxDYXRlZ29yeUxpc3QoZXZlbnQpO1xuICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsSXRlbXMgPSB0aGlzLmNhc2VDYXRlZ29yeUxpc3RcbiAgICAgIC5maWx0ZXIoKGNhdGVnb3J5OiBhbnkpID0+XG4gICAgICAgIGV2ZW50LnNvbWUoKGV2ZW50SXRlbTogYW55KSA9PiBldmVudEl0ZW0/Ll9pZCA9PT0gY2F0ZWdvcnk/Ll9pZClcbiAgICAgIClcbiAgICAgIC5tYXAoKGNhdGVnb3J5OiBhbnkpID0+ICh7XG4gICAgICAgIGxhYmVsOiBjYXRlZ29yeT8ubmFtZSxcbiAgICAgICAgdmFsdWU6IGNhdGVnb3J5Py5faWQsXG4gICAgICB9KSk7XG4gICAgICBpZighdGhpcy5wYXlsb2FkWydhZGRpdGlvbmFsX2NhdGVnb3J5J10pe1xuICAgICAgICB0aGlzLnBheWxvYWRbJ2FkZGl0aW9uYWxfY2F0ZWdvcnknXSA9IHt9O1xuICAgICAgfVxuICAgIHRoaXMucGF5bG9hZFsnYWRkaXRpb25hbF9jYXRlZ29yeSddWydpZHMnXSA9IGV2ZW50Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtPy5faWQpO1xuICAgIHRoaXMucGF5bG9hZFsnYWRkaXRpb25hbF9jYXRlZ29yeSddWydjdXN0b21fZmllbGRzJ10gPSBldmVudC5mbGF0TWFwKFxuICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbT8uY3VzdG9tX2ZpZWxkc1xuICAgICk7XG4gICAgdGhpcy5hZGRpdGlvbmFsQ2F0ZWdvcnlTdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEO1xuICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJycpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0KGV2ZW50OiBhbnlbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0ID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0LmZpbHRlcihcbiAgICAgIChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgICBldmVudC5zb21lKChldmVudEl0ZW06IGFueSkgPT4gZXZlbnRJdGVtPy5faWQgPT09IGNhdGVnb3J5Py5faWQpXG4gICAgKTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkQ2F0ZWdvcnlMaXN0KGV2ZW50OiBhbnlbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUxpc3QgPSB0aGlzLmNhc2VDYXRlZ29yeUxpc3QuZmlsdGVyKChjYXRlZ29yeTogYW55KSA9PlxuICAgICAgZXZlbnQuc29tZSgoZXZlbnRJdGVtOiBhbnkpID0+IGV2ZW50SXRlbT8uX2lkID09PSBjYXRlZ29yeT8uX2lkKVxuICAgICk7XG4gIH1cblxuICBhY3RpdmF0ZVNlbGVjdG9yKGFjdGl2ZTogYm9vbGVhbikge1xuICAgIHRoaXMuY2F0ZWdvcnlDbGlja2VkID0gYWN0aXZlO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJ2NhdGVnb3J5Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJycpO1xuICAgIH1cbiAgfVxuXG4gIGFjdGl2YXRlQWRkaXRpb25hbENhdGVnb3J5U2VsZWN0b3IoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgdGhpcy5hZGRpdGlvbmFsQ2F0ZWdvcnlDbGlja2VkID0gYWN0aXZlO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJ2FkZGl0aW9uYWxDYXRlZ29yeScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpZWxkQ2xpY2tlZC5lbWl0KCcnKTtcbiAgICB9XG4gIH1cblxuICBzZXRDYXRlZ29yeUxpc3QoZXZlbnQ6IGFueSkge1xuICAgIGlmICghZXZlbnQ/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5yZXNldENhdGVnb3J5TGlzdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlMaXN0ID0gdGhpcy5jYXNlQ2F0ZWdvcnlMaXN0LmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgIGV2ZW50LnNvbWUoKGV2ZW50SXRlbTogYW55KSA9PiBldmVudEl0ZW0/LnZhbHVlID09PSBjYXRlZ29yeT8uX2lkKVxuICAgICk7XG4gICAgdGhpcy5wYXlsb2FkLmNhdGVnb3J5LmlkcyA9IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUxpc3Q/Lm1hcChcbiAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeT8uX2lkXG4gICAgKTtcbiAgICB0aGlzLm9uQ2F0ZWdvcnlDaGFuZ2UuZW1pdCh0aGlzLnBheWxvYWQuY2F0ZWdvcnkuaWRzKTtcbiAgfVxuXG4gIHNldEFkZGl0aW9uYWxDYXRlZ29yeUxpc3QoZXZlbnQ6IGFueVtdKSB7XG4gICAgaWYgKCFldmVudD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlc2V0QWRkaXRpb25hbENhdGVnb3J5TGlzdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkQWRkaXRpb25hbENhdGVnb3J5TGlzdCA9IHRoaXMuY2FzZUNhdGVnb3J5TGlzdC5maWx0ZXIoXG4gICAgICAoY2F0ZWdvcnk6IGFueSkgPT5cbiAgICAgICAgZXZlbnQuc29tZSgoZXZlbnRJdGVtOiBhbnkpID0+IGV2ZW50SXRlbT8udmFsdWUgPT09IGNhdGVnb3J5Py5faWQpXG4gICAgKTtcbiAgICB0aGlzLnBheWxvYWQuYWRkaXRpb25hbF9jYXRlZ29yeS5pZHMgPVxuICAgICAgdGhpcy5zZWxlY3RlZEFkZGl0aW9uYWxDYXRlZ29yeUxpc3Q/Lm1hcChcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5Py5faWRcbiAgICAgICk7XG4gIH1cblxuICBnZXQgY2F0ZWdvcnlFZGl0RGlzYWJsZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5tb2RlID09PSAnRURJVCcgJiZcbiAgICAgIHRoaXMuY2FzZVR5cGVTZWxlY3RlZCA9PT0gdGhpcy5jYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPVyAmJlxuICAgICAgdGhpcy53b3JrZmxvd1R5cGUgIT09ICdBQ1RXJ1xuICAgICk7XG4gIH1cblxuICByZXNldENhdGVnb3J5TGlzdCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlMaXN0ID0gW107XG4gICAgdGhpcy5wYXlsb2FkLmNhdGVnb3J5LmlkcyA9IFtdO1xuICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5FTVBUWTtcbiAgICB0aGlzLmZpbHRlcmVkQ2FzZUNhdGVnb3J5TGlzdCA9IFsuLi50aGlzLmNhc2VDYXRlZ29yeUxpc3RdO1xuICB9XG5cbiAgcmVzZXRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRBZGRpdGlvbmFsQ2F0ZWdvcnlMaXN0ID0gW107XG4gICAgdGhpcy5wYXlsb2FkLmFkZGl0aW9uYWxfY2F0ZWdvcnkuaWRzID0gW107XG4gICAgdGhpcy5hZGRpdGlvbmFsQ2F0ZWdvcnlTdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkVNUFRZO1xuICB9XG59XG4iXX0=
|