@senior-gestao-pessoas/payroll-core 9.3.0-4d39b464-875a-426e-94a5-e9a89ba0079c → 9.3.0-56ba6c21-b9f9-42a3-b8a4-a98934e9ccdf
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/senior-gestao-pessoas-payroll-core.umd.js +84 -31
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
- package/components/historical-pix-account/historical-pix-account.component.d.ts +11 -2
- package/components/historical-pix-account-list/historical-pix-account-list.component.d.ts +2 -0
- package/esm2015/components/historical-pix-account/historical-pix-account.component.js +61 -20
- package/esm2015/components/historical-pix-account-list/historical-pix-account-list.component.js +19 -15
- package/esm5/components/historical-pix-account/historical-pix-account.component.js +69 -20
- package/esm5/components/historical-pix-account-list/historical-pix-account-list.component.js +19 -15
- package/fesm2015/senior-gestao-pessoas-payroll-core.js +76 -31
- package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/fesm5/senior-gestao-pessoas-payroll-core.js +84 -31
- package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/package.json +1 -1
- package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as tslib_1 from "tslib";
|
|
2
|
-
import { Component, OnInit, ViewChild, Input, ChangeDetectorRef, AfterViewInit, OnDestroy, EventEmitter, } from "@angular/core";
|
|
2
|
+
import { Component, OnInit, ViewChild, Input, ChangeDetectorRef, AfterViewInit, OnDestroy, EventEmitter, Output, OnChanges, SimpleChanges, } from "@angular/core";
|
|
3
3
|
import { FormGroup, FormBuilder } from "@angular/forms";
|
|
4
4
|
import { TranslateService } from "@ngx-translate/core";
|
|
5
5
|
import { CustomFieldsComponent } from "@seniorsistemas/angular-components";
|
|
@@ -7,7 +7,7 @@ import { compareValues, isValid, mountCustomToSave } from "../utils/helpers";
|
|
|
7
7
|
import { DirectionEnumeration } from "../../core/enums";
|
|
8
8
|
import { Subject } from "rxjs";
|
|
9
9
|
import { FormatUtilsService } from "../utils/format-utils/format-utils.service";
|
|
10
|
-
import {
|
|
10
|
+
import { MessageService } from "primeng/api";
|
|
11
11
|
var HistoricalPixAccountComponent = /** @class */ (function () {
|
|
12
12
|
function HistoricalPixAccountComponent(translateService, cd, formBuilder, messageService) {
|
|
13
13
|
var _this = this;
|
|
@@ -21,6 +21,11 @@ var HistoricalPixAccountComponent = /** @class */ (function () {
|
|
|
21
21
|
this.isViewMode = false;
|
|
22
22
|
this.withSideBar = true;
|
|
23
23
|
this.defaultCpfNumber = null;
|
|
24
|
+
this.listDataReciever = [];
|
|
25
|
+
this.isViewModeActive = new EventEmitter();
|
|
26
|
+
this.isEditModeActive = new EventEmitter();
|
|
27
|
+
this.isDeleteModeActive = new EventEmitter();
|
|
28
|
+
this.listFromApp = [];
|
|
24
29
|
this.visibleChange = new EventEmitter();
|
|
25
30
|
this.ngUnsubscribe = new Subject();
|
|
26
31
|
this.orderBy = {
|
|
@@ -54,26 +59,32 @@ var HistoricalPixAccountComponent = /** @class */ (function () {
|
|
|
54
59
|
visible: _this.isEditMode,
|
|
55
60
|
label: _this.translateService.instant("hcm.payroll.employees_image_cropper_view"),
|
|
56
61
|
command: function () {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
if (_this.isAllowToViewHistorical) {
|
|
63
|
+
rowData["index"] = key;
|
|
64
|
+
_this.pixAccountItemInput = { currentItem: rowData, listData: _this.listDataNoPage, isEditMode: false };
|
|
65
|
+
_this.visible = true;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
_this.isViewModeActive.emit(true);
|
|
69
|
+
}
|
|
60
70
|
},
|
|
61
71
|
},
|
|
62
72
|
{
|
|
63
73
|
visible: !!(!_this.isEditMode && _this.withSideBar),
|
|
64
74
|
label: _this.translateService.instant("hcm.payroll.edit"),
|
|
65
75
|
command: function () {
|
|
66
|
-
if (_this.isAllowToEditHistorical
|
|
76
|
+
if (_this.isAllowToEditHistorical) {
|
|
67
77
|
rowData["index"] = key;
|
|
68
78
|
_this.pixAccountItemInput = { currentItem: rowData, listData: _this.listDataNoPage, isEditMode: true };
|
|
69
79
|
_this.visible = true;
|
|
70
80
|
}
|
|
71
81
|
else {
|
|
72
|
-
_this.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
_this.isEditModeActive.emit(true);
|
|
83
|
+
if (_this.listFromApp.length == 0) {
|
|
84
|
+
rowData["index"] = key;
|
|
85
|
+
_this.pixAccountItemInput = { currentItem: rowData, listData: _this.listDataNoPage, isEditMode: true };
|
|
86
|
+
_this.visible = true;
|
|
87
|
+
}
|
|
77
88
|
}
|
|
78
89
|
},
|
|
79
90
|
},
|
|
@@ -81,16 +92,16 @@ var HistoricalPixAccountComponent = /** @class */ (function () {
|
|
|
81
92
|
visible: !_this.isEditMode,
|
|
82
93
|
label: _this.translateService.instant("hcm.payroll.delete"),
|
|
83
94
|
command: function () {
|
|
84
|
-
if (_this.isAllowToDeleteHistorical
|
|
95
|
+
if (_this.isAllowToDeleteHistorical) {
|
|
85
96
|
_this.loading = true;
|
|
86
97
|
_this.deleteAnnuityItem(key);
|
|
87
98
|
}
|
|
88
99
|
else {
|
|
89
|
-
_this.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
100
|
+
_this.isDeleteModeActive.emit(true);
|
|
101
|
+
if (_this.listFromApp.length == 0) {
|
|
102
|
+
_this.loading = true;
|
|
103
|
+
_this.deleteAnnuityItem(key);
|
|
104
|
+
}
|
|
94
105
|
}
|
|
95
106
|
},
|
|
96
107
|
},
|
|
@@ -101,6 +112,11 @@ var HistoricalPixAccountComponent = /** @class */ (function () {
|
|
|
101
112
|
HistoricalPixAccountComponent.prototype.ngOnInit = function () {
|
|
102
113
|
this.formGroup.setControl(this.fieldFormGroup, this.historicalPixAccountList);
|
|
103
114
|
};
|
|
115
|
+
HistoricalPixAccountComponent.prototype.ngOnChanges = function (changes) {
|
|
116
|
+
if (changes['listDataReciever'] && changes['listDataReciever'].currentValue) {
|
|
117
|
+
this.listFromApp = changes['listDataReciever'].currentValue;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
104
120
|
HistoricalPixAccountComponent.prototype.createFormGroup = function () {
|
|
105
121
|
this.historicalPixAccountList = this.formBuilder.group({
|
|
106
122
|
historicalPixAccountList: this.formBuilder.control(null),
|
|
@@ -157,6 +173,13 @@ var HistoricalPixAccountComponent = /** @class */ (function () {
|
|
|
157
173
|
this.pixAccountItemInput = {};
|
|
158
174
|
this.visible = true;
|
|
159
175
|
};
|
|
176
|
+
HistoricalPixAccountComponent.prototype.isNotAllowMessage = function () {
|
|
177
|
+
this.messageService.add({
|
|
178
|
+
severity: "error",
|
|
179
|
+
summary: this.translateService.instant("hcm.payroll.error"),
|
|
180
|
+
detail: this.translateService.instant("hcm.payroll.permission_error_not_allowed"),
|
|
181
|
+
});
|
|
182
|
+
};
|
|
160
183
|
HistoricalPixAccountComponent.prototype.deleteAnnuityItem = function (index) {
|
|
161
184
|
var newlist = tslib_1.__spread(this.getHistoricalPixAccountList());
|
|
162
185
|
newlist.sort(compareValues(this.orderBy.field, this.orderBy.direction));
|
|
@@ -302,16 +325,30 @@ var HistoricalPixAccountComponent = /** @class */ (function () {
|
|
|
302
325
|
HistoricalPixAccountComponent.prototype.getFormattedPercentage = function (value) {
|
|
303
326
|
return FormatUtilsService.getFormattedPercentage(value);
|
|
304
327
|
};
|
|
328
|
+
Object.defineProperty(HistoricalPixAccountComponent.prototype, "isAllowToAddHistorical", {
|
|
329
|
+
get: function () {
|
|
330
|
+
return (this.permission["incluir"]);
|
|
331
|
+
},
|
|
332
|
+
enumerable: true,
|
|
333
|
+
configurable: true
|
|
334
|
+
});
|
|
305
335
|
Object.defineProperty(HistoricalPixAccountComponent.prototype, "isAllowToDeleteHistorical", {
|
|
306
336
|
get: function () {
|
|
307
|
-
return (this.permission["
|
|
337
|
+
return (this.permission["excluir"]);
|
|
308
338
|
},
|
|
309
339
|
enumerable: true,
|
|
310
340
|
configurable: true
|
|
311
341
|
});
|
|
312
342
|
Object.defineProperty(HistoricalPixAccountComponent.prototype, "isAllowToEditHistorical", {
|
|
313
343
|
get: function () {
|
|
314
|
-
return (this.permission["
|
|
344
|
+
return (this.permission["editar"]);
|
|
345
|
+
},
|
|
346
|
+
enumerable: true,
|
|
347
|
+
configurable: true
|
|
348
|
+
});
|
|
349
|
+
Object.defineProperty(HistoricalPixAccountComponent.prototype, "isAllowToViewHistorical", {
|
|
350
|
+
get: function () {
|
|
351
|
+
return (this.permission["visualizar"]);
|
|
315
352
|
},
|
|
316
353
|
enumerable: true,
|
|
317
354
|
configurable: true
|
|
@@ -373,6 +410,18 @@ var HistoricalPixAccountComponent = /** @class */ (function () {
|
|
|
373
410
|
tslib_1.__decorate([
|
|
374
411
|
Input()
|
|
375
412
|
], HistoricalPixAccountComponent.prototype, "permission", void 0);
|
|
413
|
+
tslib_1.__decorate([
|
|
414
|
+
Input()
|
|
415
|
+
], HistoricalPixAccountComponent.prototype, "listDataReciever", void 0);
|
|
416
|
+
tslib_1.__decorate([
|
|
417
|
+
Output()
|
|
418
|
+
], HistoricalPixAccountComponent.prototype, "isViewModeActive", void 0);
|
|
419
|
+
tslib_1.__decorate([
|
|
420
|
+
Output()
|
|
421
|
+
], HistoricalPixAccountComponent.prototype, "isEditModeActive", void 0);
|
|
422
|
+
tslib_1.__decorate([
|
|
423
|
+
Output()
|
|
424
|
+
], HistoricalPixAccountComponent.prototype, "isDeleteModeActive", void 0);
|
|
376
425
|
tslib_1.__decorate([
|
|
377
426
|
Input()
|
|
378
427
|
], HistoricalPixAccountComponent.prototype, "dateChange", null);
|
|
@@ -396,4 +445,4 @@ var HistoricalPixAccountComponent = /** @class */ (function () {
|
|
|
396
445
|
return HistoricalPixAccountComponent;
|
|
397
446
|
}());
|
|
398
447
|
export { HistoricalPixAccountComponent };
|
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvaGlzdG9yaWNhbC1waXgtYWNjb3VudC9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFNBQVMsRUFBRSxZQUFZLEdBQzFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUF1QixNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBU2xFO0lBbUhJLHVDQUNZLGdCQUFrQyxFQUNsQyxFQUFxQixFQUNyQixXQUF3QixFQUN4QixjQUE4QjtRQUoxQyxpQkFPQztRQU5XLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMs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UDtJQVVEO1FBREMsS0FBSyxFQUFFOzBFQUdQO0lBVUQ7UUFEQyxLQUFLLEVBQUU7b0VBTVA7SUFHRDtRQURDLEtBQUssRUFBRTtnRUFHUDtJQXZUUSw2QkFBNkI7UUFOekMsU0FBUyxDQUFDO1lBQ1AsOENBQThDO1lBQzlDLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsNHJRQUFzRDs7U0FFekQsQ0FBQztPQUNXLDZCQUE2QixDQTRWekM7SUFBRCxvQ0FBQztDQUFBLEFBNVZELElBNFZDO1NBNVZZLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgSW5wdXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkRlc3Ryb3ksIEV2ZW50RW1pdHRlcixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQ3VzdG9tRmllbGRzQ29tcG9uZW50LCBOdW1iZXJMb2NhbGVPcHRpb25zIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IGNvbXBhcmVWYWx1ZXMsIGlzVmFsaWQsIG1vdW50Q3VzdG9tVG9TYXZlIH0gZnJvbSBcIi4uL3V0aWxzL2hlbHBlcnNcIjtcbmltcG9ydCB7IERpcmVjdGlvbkVudW1lcmF0aW9uIH0gZnJvbSBcIi4uLy4uL2NvcmUvZW51bXNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRm9ybWF0VXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL2Zvcm1hdC11dGlscy9mb3JtYXQtdXRpbHMuc2VydmljZVwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcblxuXG5AQ29tcG9uZW50KHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6IFwiYy1oaXN0b3JpY2FsLXBpeC1hY2NvdW50XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2hpc3RvcmljYWwtcGl4LWFjY291bnQuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEhpc3RvcmljYWxQaXhBY2NvdW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoQ3VzdG9tRmllbGRzQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZHNDb21wb25lbnQ7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmllbGRGb3JtR3JvdXA6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBfZGF0ZUNoYW5nZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIF9kaXNwbGF5RGF0ZUNoYW5nZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlY29yZEJ5Um93OiBudW1iZXIgPSAxO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dEYXRlQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbXNnVG9vbHRpcEFkZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzRWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc1ZpZXdNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VycmVuY3k6IE51bWJlckxvY2FsZU9wdGlvbnM7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VzdG9tRW50aXR5OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VzdG9tU2VydmljZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdpdGhTaWRlQmFyOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwYXJhbXNGb3JtOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVmYXVsdENwZk51bWJlcjogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwZXJtaXNzaW9uOiBvYmplY3Q7XG5cbiAgICBwcml2YXRlIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0OiBGb3JtR3JvdXA7XG4gICAgcHJpdmF0ZSBvcmRlckJ5OiB7IGZpZWxkOiBzdHJpbmc7IGRpcmVjdGlvbjogRGlyZWN0aW9uRW51bWVyYXRpb24gfSA9IHtcbiAgICAgICAgZmllbGQ6IFwiZGF0ZUNoYW5nZVwiLFxuICAgICAgICBkaXJlY3Rpb246IERpcmVjdGlvbkVudW1lcmF0aW9uLkRFU0MsXG4gICAgfTtcblxuICAgIHByaXZhdGUgX3Zpc2libGU6IGJvb2xlYW47XG4gICAgcHVibGljIHBpeEFjY291bnRJdGVtSW5wdXQ6IG9iamVjdCA9IHt9O1xuICAgIHB1YmxpYyB0b3RhbFJlY29yZHM6IG51bWJlciA9IDA7XG4gICAgcHVibGljIGFjdGlvbkxhYmVsOiBzdHJpbmcgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmVudHJpZXNfcXVlcnlfYWN0aW9uc190b3RhbF90aXRsZVwiKTtcbiAgICBwdWJsaWMgbG9hZGluZyA9IHRydWU7XG4gICAgcHVibGljIHBhcmFtZXRlcnM6IGFueTtcbiAgICBwdWJsaWMgbXNnVG90YWxMaW1pdEJ5UGVyY2VudGFnZTogc3RyaW5nO1xuICAgIHB1YmxpYyBsaXN0RGF0YTogb2JqZWN0W10gPSBbXTtcbiAgICBwdWJsaWMgbGlzdERhdGFOb1BhZ2U6IG9iamVjdFtdID0gW107XG4gICAgcHVibGljIGNvbHMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmVtcGxveWVlc19hZGRpdGlvbl9waXhfa2V5X3R5cGVcIiksXG4gICAgICAgICAgICBmaWVsZDogXCJwaXhLZXlUeXBlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmVtcGxveWVlc19hZGRpdGlvbl9waXhfa2V5XCIpLFxuICAgICAgICAgICAgZmllbGQ6IFwicGl4S2V5XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmhpc3RvcmljYWxfcGl4X2FjY291bnRfbGFiZWxfcGVyY2VudGFnZVwiKSxcbiAgICAgICAgICAgIGZpZWxkOiBcInBlcmNlbnRhZ2VcIixcbiAgICAgICAgfSxcbiAgICBdO1xuICAgIGFjdGlvbnMgPSAocm93RGF0YTogYW55ID0ge30sIGtleTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmlzaWJsZTogdGhpcy5pc0VkaXRNb2RlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmVtcGxveWVlc19pbWFnZV9jcm9wcGVyX3ZpZXdcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByb3dEYXRhW1wiaW5kZXhcIl0gPSBrZXk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEl0ZW1JbnB1dCA9IHsgY3VycmVudEl0ZW06IHJvd0RhdGEsIGxpc3REYXRhOiB0aGlzLmxpc3REYXRhTm9QYWdlLCBpc0VkaXRNb2RlOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZpc2libGU6ICEhKCF0aGlzLmlzRWRpdE1vZGUgJiYgdGhpcy53aXRoU2lkZUJhciksXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuZWRpdFwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQWxsb3dUb0VkaXRIaXN0b3JpY2FsICYmIHJvd0RhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0RhdGFbXCJpbmRleFwiXSA9IGtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEl0ZW1JbnB1dCA9IHsgY3VycmVudEl0ZW06IHJvd0RhdGEsIGxpc3REYXRhOiB0aGlzLmxpc3REYXRhTm9QYWdlLCBpc0VkaXRNb2RlOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lcnJvclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwucGVybWlzc2lvbl9lcnJvcl9ub3RfYWxsb3dlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2aXNpYmxlOiAhdGhpcy5pc0VkaXRNb2RlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmRlbGV0ZVwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQWxsb3dUb0RlbGV0ZUhpc3RvcmljYWwgJiYgcm93RGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlQW5udWl0eUl0ZW0oa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLnBlcm1pc3Npb25fZXJyb3Jfbm90X2FsbG93ZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuc2V0Q29udHJvbCh0aGlzLmZpZWxkRm9ybUdyb3VwLCB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtR3JvdXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0ID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBoaXN0b3JpY2FsUGl4QWNjb3VudExpc3Q6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChudWxsKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTGF6eUxvYWQoZXZlbnQ/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBldmVudCAmJiBldmVudC5maXJzdCA/IGV2ZW50LmZpcnN0IDogMDtcbiAgICAgICAgY29uc3Qgcm93cyA9IGV2ZW50ICYmIGV2ZW50LnJvd3MgPyBldmVudC5yb3dzIDogdGhpcy5yZWNvcmRCeVJvdztcbiAgICAgICAgY29uc3QgYXJyTGlzdCA9IHRoaXMuZ2V0SGlzdG9yaWNhbFBpeEFjY291bnRMaXN0KCk7XG4gICAgICAgIHRoaXMubGlzdERhdGEgPSBbXTtcbiAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSBudWxsO1xuXG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5tdWx0aVNvcnRNZXRhICYmIGV2ZW50Lm11bHRpU29ydE1ldGEubGVuZ3RoKSB7XG4gICAgICAgICAgICBldmVudC5tdWx0aVNvcnRNZXRhLm1hcCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3JkZXJCeS5maWVsZCA9IHZhbHVlLmZpZWxkO1xuICAgICAgICAgICAgICAgIHRoaXMub3JkZXJCeS5kaXJlY3Rpb24gPSB2YWx1ZS5vcmRlciA9PT0gMSA/IERpcmVjdGlvbkVudW1lcmF0aW9uLkFTQyA6IERpcmVjdGlvbkVudW1lcmF0aW9uLkRFU0M7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhcnJMaXN0ICYmIGFyckxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IGFyckxpc3QubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5saXN0RGF0YSA9IGFyckxpc3Q7XG4gICAgICAgICAgICB0aGlzLmxpc3REYXRhTm9QYWdlID0gWy4uLmFyckxpc3RdO1xuICAgICAgICAgICAgdGhpcy5saXN0RGF0YS5zb3J0KGNvbXBhcmVWYWx1ZXModGhpcy5vcmRlckJ5LmZpZWxkLCB0aGlzLm9yZGVyQnkuZGlyZWN0aW9uKSk7XG4gICAgICAgICAgICB0aGlzLmxpc3REYXRhID0gdGhpcy5saXN0RGF0YS5zbGljZShmaXJzdCwgKGZpcnN0ICsgcm93cykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5saXN0RGF0YU5vUGFnZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNFZGl0TW9kZSB8fCBhcnJMaXN0ICYmIGFyckxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hDc3NJbklFMTEoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW0gQnVnIGRlIENTUyBxdWUgYWNvbnRlY2UgbmFzIGxpbmhhcyBkYSB0YWJlbGEsIHF1ZSByZXNvbHZlIHPDsyBhdHVhbGl6YW5kbyBxdWFscXVlciBwYXJ0ZSBkbyBDU1MgZGEgcGFnaW5hLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVmcmVzaENzc0luSUUxMSgpIHtcbiAgICAgICAgaWYgKC9tc2llXFxzfHRyaWRlbnRcXC98ZWRnZVxcLy9pLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInJvdzBcIik7XG4gICAgICAgICAgICAgICAgaWYgKHJvdyAmJiByb3dbMF0pXG4gICAgICAgICAgICAgICAgICAgIHJvd1swXS5jbGFzc05hbWUgPSAncmVmcmVzaCc7XG4gICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhZGQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGl4QWNjb3VudEl0ZW1JbnB1dCA9IHt9O1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVsZXRlQW5udWl0eUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBsZXQgbmV3bGlzdCA9IFsuLi50aGlzLmdldEhpc3RvcmljYWxQaXhBY2NvdW50TGlzdCgpXTtcbiAgICAgICAgbmV3bGlzdC5zb3J0KGNvbXBhcmVWYWx1ZXModGhpcy5vcmRlckJ5LmZpZWxkLCB0aGlzLm9yZGVyQnkuZGlyZWN0aW9uKSk7XG4gICAgICAgIGRlbGV0ZSBuZXdsaXN0W2luZGV4XTtcbiAgICAgICAgbmV3bGlzdCA9IG5ld2xpc3QuZmlsdGVyKHZhbCA9PiB2YWwpO1xuICAgICAgICB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdC5nZXQoXCJoaXN0b3JpY2FsUGl4QWNjb3VudExpc3RcIikuc2V0VmFsdWUobmV3bGlzdCk7XG4gICAgICAgIHRoaXMudmVyaWZ5VG90YWxQZXJjZW50YWdlKCk7XG4gICAgICAgIHRoaXMub25MYXp5TG9hZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIaXN0b3JpY2FsUGl4QWNjb3VudExpc3QoKTogb2JqZWN0W10ge1xuICAgICAgICBpZiAodGhpcy5oaXN0b3JpY2FsUGl4QWNjb3VudExpc3QuZ2V0KFwiaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0XCIpICYmXG4gICAgICAgICAgICB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdC5nZXQoXCJoaXN0b3JpY2FsUGl4QWNjb3VudExpc3RcIikudmFsdWUgJiZcbiAgICAgICAgICAgIHRoaXMuaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0LmdldChcImhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFwiKS52YWx1ZS5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oaXN0b3JpY2FsUGl4QWNjb3VudExpc3QuZ2V0KFwiaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0XCIpICYmIHRoaXMuaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0LmdldChcImhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFwiKS52YWx1ZTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRJdGVtSW5MaXN0KCRldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gJGV2ZW50ICYmICRldmVudC5pbmRleCA+PSAwID8gJGV2ZW50LmluZGV4IDogbnVsbDtcbiAgICAgICAgY29uc3QgbmV3RGF0YUxpc3QgPSB0aGlzLmdldEhpc3RvcmljYWxQaXhBY2NvdW50TGlzdCgpID8gdGhpcy5nZXRIaXN0b3JpY2FsUGl4QWNjb3VudExpc3QoKSA6IFtdO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICBuZXdEYXRhTGlzdFtpbmRleF0gPSAkZXZlbnQ7XG4gICAgICAgICAgICBkZWxldGUgJGV2ZW50LmluZGV4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWQoJGV2ZW50W1wiY3VzdG9tRmllbGRzXCJdKSAmJiBPYmplY3Qua2V5cygkZXZlbnRbXCJjdXN0b21GaWVsZHNcIl0pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1c3RvbVZhbHVlID0gbW91bnRDdXN0b21Ub1NhdmUoJGV2ZW50W1wiY3VzdG9tRmllbGRzXCJdKTtcbiAgICAgICAgICAgICAgICAkZXZlbnRbXCJjdXN0b21GaWVsZHNcIl0gPSBbLi4uY3VzdG9tVmFsdWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGV2ZW50W1wiZGF0ZUNoYW5nZVwiXSA9IHRoaXMuZGF0ZUNoYW5nZTtcbiAgICAgICAgICAgIG5ld0RhdGFMaXN0LnB1c2goJGV2ZW50KTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdC5nZXQoXCJoaXN0b3JpY2FsUGl4QWNjb3VudExpc3RcIikuc2V0VmFsdWUobmV3RGF0YUxpc3QpO1xuICAgICAgICB0aGlzLnZlcmlmeVRvdGFsUGVyY2VudGFnZSgpO1xuICAgICAgICB0aGlzLm9uTGF6eUxvYWQoeyBmaXJzdDogdGhpcy5nZXROdW1iZXJQYWdlQnlJbmRleChpbmRleCwgbmV3RGF0YUxpc3QpIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TnVtYmVyUGFnZUJ5SW5kZXgoaW5kZXg6IG51bWJlciwgbGlzdDogb2JqZWN0W10pOiBudW1iZXIge1xuICAgICAgICBpZiAoaW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gbGlzdC5sZW5ndGg7XG4gICAgICAgICAgICBjb25zdCBzdWIgPSB0aGlzLnJlY29yZEJ5Um93IC0gMTtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwodG90YWwgLyB0aGlzLnJlY29yZEJ5Um93KSAqIHRoaXMucmVjb3JkQnlSb3cgLSBzdWIgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmVyaWZ5VG90YWxQZXJjZW50YWdlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5nZXRIaXN0b3JpY2FsUGl4QWNjb3VudExpc3QoKSA/IHRoaXMuZ2V0SGlzdG9yaWNhbFBpeEFjY291bnRMaXN0KCkgOiBbXTtcbiAgICAgICAgY29uc3QgYXJyYXlQZXJjZW50YWdlOiBhbnkgPSBbXTtcblxuICAgICAgICBpZiAoIWxpc3QubGVuZ3RoKSByZXR1cm4gdGhpcy5tc2dUb3RhbExpbWl0QnlQZXJjZW50YWdlID0gbnVsbDtcblxuICAgICAgICBsaXN0LmZpbHRlcigoaXRlbTogYW55KSA9PiBhcnJheVBlcmNlbnRhZ2UucHVzaChpdGVtICYmIGl0ZW1bXCJwZXJjZW50YWdlXCJdKSk7XG5cbiAgICAgICAgY29uc3Qgc3VtUGVyY2VudGFnZSA9IGFycmF5UGVyY2VudGFnZS5yZWR1Y2UoKHRvdGFsOiBudW1iZXIsIHBlcmNlbnRhZ2U6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRvdGFsICsgcGVyY2VudGFnZTtcbiAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgaWYgKHN1bVBlcmNlbnRhZ2UgPT09IDEwMCkge1xuICAgICAgICAgICAgdGhpcy5tc2dUb3RhbExpbWl0QnlQZXJjZW50YWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5oaXN0b3JpY2FsX3BpeF9hY2NvdW50X21zZ19saW1pdF90b3RhbF9ieV9wZXJjZW50YWdlXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tc2dUb3RhbExpbWl0QnlQZXJjZW50YWdlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzY29wZWRBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25zLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZWNvcmRzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIGAkeyB0aGlzLnRvdGFsUmVjb3JkcyB8fCAwIH0gJHsgdGhpcy50b3RhbFJlY29yZHMgPT09IDEgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmFkbWlzc2lvbl9yZWdpc3RlclwiKSA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuYWRtaXNzaW9uX3JlZ2lzdGVyc1wiKSB9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGdldFRvb2x0aXBBbmREaXNhYmxlQnV0dG9uQWRkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlQ2hhbmdlID8gbnVsbCA6IHRoaXMubXNnVG9vbHRpcEFkZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGF0ZUNoYW5nZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZUNoYW5nZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGRhdGVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9kYXRlQ2hhbmdlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9kYXRlQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3REYXRhLmZpbHRlcigocm93OiBhbnkpID0+IHJvd1tcImRhdGVDaGFuZ2VcIl0gPSB0aGlzLl9kYXRlQ2hhbmdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkaXNwbGF5RGF0ZUNoYW5nZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheURhdGVDaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBkaXNwbGF5RGF0ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlEYXRlQ2hhbmdlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9kaXNwbGF5RGF0ZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5saXN0RGF0YS5maWx0ZXIoKHJvdzogYW55KSA9PiByb3dbXCJkaXNwbGF5RGF0ZUNoYW5nZVwiXSA9IHRoaXMuX2Rpc3BsYXlEYXRlQ2hhbmdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBhZGRMaXN0RGF0YShsaXN0OiBvYmplY3RbXSkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdC5nZXQoXCJoaXN0b3JpY2FsUGl4QWNjb3VudExpc3RcIikucGF0Y2hWYWx1ZShsaXN0KTtcbiAgICAgICAgdGhpcy52ZXJpZnlUb3RhbFBlcmNlbnRhZ2UoKTtcbiAgICAgICAgdGhpcy5vbkxhenlMb2FkKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMudmlzaWJsZSk7XG4gICAgfVxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvcm1hdHRlZFRlbGVwaG9uZU51bWJlcih0ZWxlcGhvbmVOdW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBGb3JtYXRVdGlsc1NlcnZpY2UuZ2V0Rm9ybWF0dGVkVGVsZXBob25lTnVtYmVyKHRlbGVwaG9uZU51bWJlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvcm1hdHRlZENwZihjcGY6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBGb3JtYXRVdGlsc1NlcnZpY2UuZ2V0Rm9ybWF0dGVkQ3BmKGNwZik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvcm1hdHRlZENucGooY25wajogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEZvcm1hdFV0aWxzU2VydmljZS5nZXRGb3JtYXR0ZWRDbnBqKGNucGopO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtYXR0ZWRQZXJjZW50YWdlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRm9ybWF0VXRpbHNTZXJ2aWNlLmdldEZvcm1hdHRlZFBlcmNlbnRhZ2UodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzQWxsb3dUb0RlbGV0ZUhpc3RvcmljYWwoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25bXCJFeGNsdWlyXCJdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNBbGxvd1RvRWRpdEhpc3RvcmljYWwoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25bXCJFZGl0YXJcIl1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
448
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvaGlzdG9yaWNhbC1waXgtYWNjb3VudC9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFNBQVMsRUFDVCxhQUFhLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUF1QixNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBUTdDO0lBaUlJLHVDQUNZLGdCQUFrQyxFQUNsQyxFQUFxQixFQUNyQixXQUF3QixFQUN4QixjQUE4QjtRQUoxQyxpQkFPQztRQU5XLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsZ0JBQVcsR0FBWCxXQUFX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QUFLLEVBQUU7MkVBQytCO0lBRXZDO1FBREMsS0FBSyxFQUFFO3FFQUNrQjtJQUUxQjtRQURDLEtBQUssRUFBRTsyRUFDNEI7SUFHcEM7UUFEQyxNQUFNLEVBQUU7MkVBQ2dFO0lBRXpFO1FBREMsTUFBTSxFQUFFOzJFQUNnRTtJQUV6RTtRQURDLE1BQU0sRUFBRTs2RUFDa0U7SUFzUTNFO1FBREMsS0FBSyxFQUFFO21FQUdQO0lBVUQ7UUFEQyxLQUFLLEVBQUU7MEVBR1A7SUFVRDtRQURDLEtBQUssRUFBRTtvRUFNUDtJQUdEO1FBREMsS0FBSyxFQUFFO2dFQUdQO0lBblZRLDZCQUE2QjtRQU56QyxTQUFTLENBQUM7WUFDUCw4Q0FBOEM7WUFDOUMsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyw0clFBQXNEOztTQUV6RCxDQUFDO09BQ1csNkJBQTZCLENBb1l6QztJQUFELG9DQUFDO0NBQUEsQUFwWUQsSUFvWUM7U0FwWVksNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBJbnB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT3V0cHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBDdXN0b21GaWVsZHNDb21wb25lbnQsIE51bWJlckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgY29tcGFyZVZhbHVlcywgaXNWYWxpZCwgbW91bnRDdXN0b21Ub1NhdmUgfSBmcm9tIFwiLi4vdXRpbHMvaGVscGVyc1wiO1xuaW1wb3J0IHsgRGlyZWN0aW9uRW51bWVyYXRpb24gfSBmcm9tIFwiLi4vLi4vY29yZS9lbnVtc1wiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBGb3JtYXRVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvZm9ybWF0LXV0aWxzL2Zvcm1hdC11dGlscy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6IFwiYy1oaXN0b3JpY2FsLXBpeC1hY2NvdW50XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2hpc3RvcmljYWwtcGl4LWFjY291bnQuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEhpc3RvcmljYWxQaXhBY2NvdW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZChDdXN0b21GaWVsZHNDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBjdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkc0NvbXBvbmVudDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWVsZEZvcm1Hcm91cDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIF9kYXRlQ2hhbmdlOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgX2Rpc3BsYXlEYXRlQ2hhbmdlOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3JkQnlSb3c6IG51bWJlciA9IDE7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0RhdGVDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtc2dUb29sdGlwQWRkOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXNFZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzVmlld01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXJyZW5jeTogTnVtYmVyTG9jYWxlT3B0aW9ucztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXN0b21FbnRpdHk6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXN0b21TZXJ2aWNlOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgd2l0aFNpZGVCYXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhcmFtc0Zvcm06IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWZhdWx0Q3BmTnVtYmVyOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBlcm1pc3Npb246IG9iamVjdDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsaXN0RGF0YVJlY2lldmVyOiBhbnlbXSA9IFtdO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGlzVmlld01vZGVBY3RpdmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBpc0VkaXRNb2RlQWN0aXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaXNEZWxldGVNb2RlQWN0aXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgbGlzdEZyb21BcHA6IGFueVtdID0gW107XG4gICAgcHJpdmF0ZSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlIGhpc3RvcmljYWxQaXhBY2NvdW50TGlzdDogRm9ybUdyb3VwO1xuICAgIHByaXZhdGUgb3JkZXJCeTogeyBmaWVsZDogc3RyaW5nOyBkaXJlY3Rpb246IERpcmVjdGlvbkVudW1lcmF0aW9uIH0gPSB7XG4gICAgICAgIGZpZWxkOiBcImRhdGVDaGFuZ2VcIixcbiAgICAgICAgZGlyZWN0aW9uOiBEaXJlY3Rpb25FbnVtZXJhdGlvbi5ERVNDLFxuICAgIH07XG5cbiAgICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuO1xuICAgIHB1YmxpYyBwaXhBY2NvdW50SXRlbUlucHV0OiBvYmplY3QgPSB7fTtcbiAgICBwdWJsaWMgdG90YWxSZWNvcmRzOiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBhY3Rpb25MYWJlbDogc3RyaW5nID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lbnRyaWVzX3F1ZXJ5X2FjdGlvbnNfdG90YWxfdGl0bGVcIik7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICAgIHB1YmxpYyBwYXJhbWV0ZXJzOiBhbnk7XG4gICAgcHVibGljIG1zZ1RvdGFsTGltaXRCeVBlcmNlbnRhZ2U6IHN0cmluZztcbiAgICBwdWJsaWMgbGlzdERhdGE6IG9iamVjdFtdID0gW107XG4gICAgcHVibGljIGxpc3REYXRhTm9QYWdlOiBvYmplY3RbXSA9IFtdO1xuICAgIHB1YmxpYyBjb2xzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfYWRkaXRpb25fcGl4X2tleV90eXBlXCIpLFxuICAgICAgICAgICAgZmllbGQ6IFwicGl4S2V5VHlwZVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfYWRkaXRpb25fcGl4X2tleVwiKSxcbiAgICAgICAgICAgIGZpZWxkOiBcInBpeEtleVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5oaXN0b3JpY2FsX3BpeF9hY2NvdW50X2xhYmVsX3BlcmNlbnRhZ2VcIiksXG4gICAgICAgICAgICBmaWVsZDogXCJwZXJjZW50YWdlXCIsXG4gICAgICAgIH0sXG4gICAgXTtcbiAgICBhY3Rpb25zID0gKHJvd0RhdGE6IGFueSA9IHt9LCBrZXk6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZpc2libGU6IHRoaXMuaXNFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfaW1hZ2VfY3JvcHBlcl92aWV3XCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBbGxvd1RvVmlld0hpc3RvcmljYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0RhdGFbXCJpbmRleFwiXSA9IGtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEl0ZW1JbnB1dCA9IHsgY3VycmVudEl0ZW06IHJvd0RhdGEsIGxpc3REYXRhOiB0aGlzLmxpc3REYXRhTm9QYWdlLCBpc0VkaXRNb2RlOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNWaWV3TW9kZUFjdGl2ZS5lbWl0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmlzaWJsZTogISEoIXRoaXMuaXNFZGl0TW9kZSAmJiB0aGlzLndpdGhTaWRlQmFyKSxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lZGl0XCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBbGxvd1RvRWRpdEhpc3RvcmljYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0RhdGFbXCJpbmRleFwiXSA9IGtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEl0ZW1JbnB1dCA9IHsgY3VycmVudEl0ZW06IHJvd0RhdGEsIGxpc3REYXRhOiB0aGlzLmxpc3REYXRhTm9QYWdlLCBpc0VkaXRNb2RlOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRNb2RlQWN0aXZlLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5saXN0RnJvbUFwcC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd0RhdGFbXCJpbmRleFwiXSA9IGtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBpeEFjY291bnRJdGVtSW5wdXQgPSB7IGN1cnJlbnRJdGVtOiByb3dEYXRhLCBsaXN0RGF0YTogdGhpcy5saXN0RGF0YU5vUGFnZSwgaXNFZGl0TW9kZTogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2aXNpYmxlOiAhdGhpcy5pc0VkaXRNb2RlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmRlbGV0ZVwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQWxsb3dUb0RlbGV0ZUhpc3RvcmljYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUFubnVpdHlJdGVtKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRGVsZXRlTW9kZUFjdGl2ZS5lbWl0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubGlzdEZyb21BcHAubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlQW5udWl0eUl0ZW0oa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnNldENvbnRyb2wodGhpcy5maWVsZEZvcm1Hcm91cCwgdGhpcy5oaXN0b3JpY2FsUGl4QWNjb3VudExpc3QpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2xpc3REYXRhUmVjaWV2ZXInXSAmJiBjaGFuZ2VzWydsaXN0RGF0YVJlY2lldmVyJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RGcm9tQXBwID0gY2hhbmdlc1snbGlzdERhdGFSZWNpZXZlciddLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0OiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxhenlMb2FkKGV2ZW50PzogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpcnN0ID0gZXZlbnQgJiYgZXZlbnQuZmlyc3QgPyBldmVudC5maXJzdCA6IDA7XG4gICAgICAgIGNvbnN0IHJvd3MgPSBldmVudCAmJiBldmVudC5yb3dzID8gZXZlbnQucm93cyA6IHRoaXMucmVjb3JkQnlSb3c7XG4gICAgICAgIGNvbnN0IGFyckxpc3QgPSB0aGlzLmdldEhpc3RvcmljYWxQaXhBY2NvdW50TGlzdCgpO1xuICAgICAgICB0aGlzLmxpc3REYXRhID0gW107XG4gICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gbnVsbDtcblxuICAgICAgICBpZiAoZXZlbnQgJiYgZXZlbnQubXVsdGlTb3J0TWV0YSAmJiBldmVudC5tdWx0aVNvcnRNZXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgZXZlbnQubXVsdGlTb3J0TWV0YS5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVyQnkuZmllbGQgPSB2YWx1ZS5maWVsZDtcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVyQnkuZGlyZWN0aW9uID0gdmFsdWUub3JkZXIgPT09IDEgPyBEaXJlY3Rpb25FbnVtZXJhdGlvbi5BU0MgOiBEaXJlY3Rpb25FbnVtZXJhdGlvbi5ERVNDO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXJyTGlzdCAmJiBhcnJMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSBhcnJMaXN0Lmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGEgPSBhcnJMaXN0O1xuICAgICAgICAgICAgdGhpcy5saXN0RGF0YU5vUGFnZSA9IFsuLi5hcnJMaXN0XTtcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGEuc29ydChjb21wYXJlVmFsdWVzKHRoaXMub3JkZXJCeS5maWVsZCwgdGhpcy5vcmRlckJ5LmRpcmVjdGlvbikpO1xuICAgICAgICAgICAgdGhpcy5saXN0RGF0YSA9IHRoaXMubGlzdERhdGEuc2xpY2UoZmlyc3QsIChmaXJzdCArIHJvd3MpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGFOb1BhZ2UgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRWRpdE1vZGUgfHwgYXJyTGlzdCAmJiBhcnJMaXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoQ3NzSW5JRTExKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVtIEJ1ZyBkZSBDU1MgcXVlIGFjb250ZWNlIG5hcyBsaW5oYXMgZGEgdGFiZWxhLCBxdWUgcmVzb2x2ZSBzw7MgYXR1YWxpemFuZG8gcXVhbHF1ZXIgcGFydGUgZG8gQ1NTIGRhIHBhZ2luYS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlZnJlc2hDc3NJbklFMTEoKSB7XG4gICAgICAgIGlmICgvbXNpZVxcc3x0cmlkZW50XFwvfGVkZ2VcXC8vaS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCggKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJyb3cwXCIpO1xuICAgICAgICAgICAgICAgIGlmIChyb3cgJiYgcm93WzBdKVxuICAgICAgICAgICAgICAgICAgICByb3dbMF0uY2xhc3NOYW1lID0gJ3JlZnJlc2gnO1xuICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBpeEFjY291bnRJdGVtSW5wdXQgPSB7fTtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTm90QWxsb3dNZXNzYWdlKCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lcnJvclwiKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5wZXJtaXNzaW9uX2Vycm9yX25vdF9hbGxvd2VkXCIpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZUFubnVpdHlJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IG5ld2xpc3QgPSBbLi4udGhpcy5nZXRIaXN0b3JpY2FsUGl4QWNjb3VudExpc3QoKV07XG4gICAgICAgIG5ld2xpc3Quc29ydChjb21wYXJlVmFsdWVzKHRoaXMub3JkZXJCeS5maWVsZCwgdGhpcy5vcmRlckJ5LmRpcmVjdGlvbikpO1xuICAgICAgICBkZWxldGUgbmV3bGlzdFtpbmRleF07XG4gICAgICAgIG5ld2xpc3QgPSBuZXdsaXN0LmZpbHRlcih2YWwgPT4gdmFsKTtcbiAgICAgICAgdGhpcy5oaXN0b3JpY2FsUGl4QWNjb3VudExpc3QuZ2V0KFwiaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0XCIpLnNldFZhbHVlKG5ld2xpc3QpO1xuICAgICAgICB0aGlzLnZlcmlmeVRvdGFsUGVyY2VudGFnZSgpO1xuICAgICAgICB0aGlzLm9uTGF6eUxvYWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SGlzdG9yaWNhbFBpeEFjY291bnRMaXN0KCk6IG9iamVjdFtdIHtcbiAgICAgICAgaWYgKHRoaXMuaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0LmdldChcImhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFwiKSAmJlxuICAgICAgICAgICAgdGhpcy5oaXN0b3JpY2FsUGl4QWNjb3VudExpc3QuZ2V0KFwiaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0XCIpLnZhbHVlICYmXG4gICAgICAgICAgICB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdC5nZXQoXCJoaXN0b3JpY2FsUGl4QWNjb3VudExpc3RcIikudmFsdWUubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0LmdldChcImhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFwiKSAmJiB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdC5nZXQoXCJoaXN0b3JpY2FsUGl4QWNjb3VudExpc3RcIikudmFsdWU7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSXRlbUluTGlzdCgkZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9ICRldmVudCAmJiAkZXZlbnQuaW5kZXggPj0gMCA/ICRldmVudC5pbmRleCA6IG51bGw7XG4gICAgICAgIGNvbnN0IG5ld0RhdGFMaXN0ID0gdGhpcy5nZXRIaXN0b3JpY2FsUGl4QWNjb3VudExpc3QoKSA/IHRoaXMuZ2V0SGlzdG9yaWNhbFBpeEFjY291bnRMaXN0KCkgOiBbXTtcblxuICAgICAgICBpZiAoaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgbmV3RGF0YUxpc3RbaW5kZXhdID0gJGV2ZW50O1xuICAgICAgICAgICAgZGVsZXRlICRldmVudC5pbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkKCRldmVudFtcImN1c3RvbUZpZWxkc1wiXSkgJiYgT2JqZWN0LmtleXMoJGV2ZW50W1wiY3VzdG9tRmllbGRzXCJdKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXN0b21WYWx1ZSA9IG1vdW50Q3VzdG9tVG9TYXZlKCRldmVudFtcImN1c3RvbUZpZWxkc1wiXSk7XG4gICAgICAgICAgICAgICAgJGV2ZW50W1wiY3VzdG9tRmllbGRzXCJdID0gWy4uLmN1c3RvbVZhbHVlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRldmVudFtcImRhdGVDaGFuZ2VcIl0gPSB0aGlzLmRhdGVDaGFuZ2U7XG4gICAgICAgICAgICBuZXdEYXRhTGlzdC5wdXNoKCRldmVudCk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgdGhpcy5oaXN0b3JpY2FsUGl4QWNjb3VudExpc3QuZ2V0KFwiaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0XCIpLnNldFZhbHVlKG5ld0RhdGFMaXN0KTtcbiAgICAgICAgdGhpcy52ZXJpZnlUb3RhbFBlcmNlbnRhZ2UoKTtcbiAgICAgICAgdGhpcy5vbkxhenlMb2FkKHsgZmlyc3Q6IHRoaXMuZ2V0TnVtYmVyUGFnZUJ5SW5kZXgoaW5kZXgsIG5ld0RhdGFMaXN0KSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE51bWJlclBhZ2VCeUluZGV4KGluZGV4OiBudW1iZXIsIGxpc3Q6IG9iamVjdFtdKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKGluZGV4KSB7XG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IGxpc3QubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3Qgc3ViID0gdGhpcy5yZWNvcmRCeVJvdyAtIDE7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHRvdGFsIC8gdGhpcy5yZWNvcmRCeVJvdykgKiB0aGlzLnJlY29yZEJ5Um93IC0gc3ViIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZlcmlmeVRvdGFsUGVyY2VudGFnZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMuZ2V0SGlzdG9yaWNhbFBpeEFjY291bnRMaXN0KCkgPyB0aGlzLmdldEhpc3RvcmljYWxQaXhBY2NvdW50TGlzdCgpIDogW107XG4gICAgICAgIGNvbnN0IGFycmF5UGVyY2VudGFnZTogYW55ID0gW107XG5cbiAgICAgICAgaWYgKCFsaXN0Lmxlbmd0aCkgcmV0dXJuIHRoaXMubXNnVG90YWxMaW1pdEJ5UGVyY2VudGFnZSA9IG51bGw7XG5cbiAgICAgICAgbGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gYXJyYXlQZXJjZW50YWdlLnB1c2goaXRlbSAmJiBpdGVtW1wicGVyY2VudGFnZVwiXSkpO1xuXG4gICAgICAgIGNvbnN0IHN1bVBlcmNlbnRhZ2UgPSBhcnJheVBlcmNlbnRhZ2UucmVkdWNlKCh0b3RhbDogbnVtYmVyLCBwZXJjZW50YWdlOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0b3RhbCArIHBlcmNlbnRhZ2U7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIGlmIChzdW1QZXJjZW50YWdlID09PSAxMDApIHtcbiAgICAgICAgICAgIHRoaXMubXNnVG90YWxMaW1pdEJ5UGVyY2VudGFnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuaGlzdG9yaWNhbF9waXhfYWNjb3VudF9tc2dfbGltaXRfdG90YWxfYnlfcGVyY2VudGFnZVwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubXNnVG90YWxMaW1pdEJ5UGVyY2VudGFnZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2NvcGVkQWN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucy5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVjb3Jkc01lc3NhZ2UoKSB7XG4gICAgICAgIHJldHVybiBgJHsgdGhpcy50b3RhbFJlY29yZHMgfHwgMCB9ICR7IHRoaXMudG90YWxSZWNvcmRzID09PSAxID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5hZG1pc3Npb25fcmVnaXN0ZXJcIikgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmFkbWlzc2lvbl9yZWdpc3RlcnNcIikgfWA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBnZXRUb29sdGlwQW5kRGlzYWJsZUJ1dHRvbkFkZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUNoYW5nZSA/IG51bGwgOiB0aGlzLm1zZ1Rvb2x0aXBBZGQ7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRhdGVDaGFuZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGVDaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBkYXRlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZGF0ZUNoYW5nZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fZGF0ZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5saXN0RGF0YS5maWx0ZXIoKHJvdzogYW55KSA9PiByb3dbXCJkYXRlQ2hhbmdlXCJdID0gdGhpcy5fZGF0ZUNoYW5nZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGlzcGxheURhdGVDaGFuZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlEYXRlQ2hhbmdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZGlzcGxheURhdGVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9kaXNwbGF5RGF0ZUNoYW5nZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fZGlzcGxheURhdGVDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGEuZmlsdGVyKChyb3c6IGFueSkgPT4gcm93W1wiZGlzcGxheURhdGVDaGFuZ2VcIl0gPSB0aGlzLl9kaXNwbGF5RGF0ZUNoYW5nZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgYWRkTGlzdERhdGEobGlzdDogb2JqZWN0W10pIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5oaXN0b3JpY2FsUGl4QWNjb3VudExpc3QuZ2V0KFwiaGlzdG9yaWNhbFBpeEFjY291bnRMaXN0XCIpLnBhdGNoVmFsdWUobGlzdCk7XG4gICAgICAgIHRoaXMudmVyaWZ5VG90YWxQZXJjZW50YWdlKCk7XG4gICAgICAgIHRoaXMub25MYXp5TG9hZCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGUpO1xuICAgIH1cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtYXR0ZWRUZWxlcGhvbmVOdW1iZXIodGVsZXBob25lTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRm9ybWF0VXRpbHNTZXJ2aWNlLmdldEZvcm1hdHRlZFRlbGVwaG9uZU51bWJlcih0ZWxlcGhvbmVOdW1iZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtYXR0ZWRDcGYoY3BmOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRm9ybWF0VXRpbHNTZXJ2aWNlLmdldEZvcm1hdHRlZENwZihjcGYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtYXR0ZWRDbnBqKGNucGo6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBGb3JtYXRVdGlsc1NlcnZpY2UuZ2V0Rm9ybWF0dGVkQ25waihjbnBqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rm9ybWF0dGVkUGVyY2VudGFnZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEZvcm1hdFV0aWxzU2VydmljZS5nZXRGb3JtYXR0ZWRQZXJjZW50YWdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc0FsbG93VG9BZGRIaXN0b3JpY2FsKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uW1wiaW5jbHVpclwiXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzQWxsb3dUb0RlbGV0ZUhpc3RvcmljYWwoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25bXCJleGNsdWlyXCJdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNBbGxvd1RvRWRpdEhpc3RvcmljYWwoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25bXCJlZGl0YXJcIl1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc0FsbG93VG9WaWV3SGlzdG9yaWNhbCgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbltcInZpc3VhbGl6YXJcIl1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
package/esm5/components/historical-pix-account-list/historical-pix-account-list.component.js
CHANGED
|
@@ -23,6 +23,7 @@ var HistoricalPixAccountListComponent = /** @class */ (function () {
|
|
|
23
23
|
this.endPoint = "hcm/payroll/queries/historicalEmployeePixQuery";
|
|
24
24
|
this.keyPayload = "historicalEmployeePix";
|
|
25
25
|
this.withSidebar = true;
|
|
26
|
+
this.isOnlyView = new EventEmitter();
|
|
26
27
|
this.enableView = new EventEmitter();
|
|
27
28
|
this.ngUnsubscribe = new Subject();
|
|
28
29
|
this.loading = true;
|
|
@@ -90,9 +91,10 @@ var HistoricalPixAccountListComponent = /** @class */ (function () {
|
|
|
90
91
|
{
|
|
91
92
|
label: this.translateService.instant("hcm.payroll.employees_image_cropper_view"),
|
|
92
93
|
command: function () {
|
|
93
|
-
if (_this.isAllowToViewHistorical
|
|
94
|
+
if (_this.isAllowToViewHistorical) {
|
|
94
95
|
var dateChange = rowData && rowData.dateChange && moment(rowData.dateChange, _this.dateFormat).format("YYYY-MM-DD");
|
|
95
96
|
if (_this.withSidebar) {
|
|
97
|
+
_this.isOnlyView.emit(true);
|
|
96
98
|
_this.router.navigate(["historical-pix-account/" + dateChange], {
|
|
97
99
|
relativeTo: _this.activatedRoute,
|
|
98
100
|
});
|
|
@@ -102,11 +104,7 @@ var HistoricalPixAccountListComponent = /** @class */ (function () {
|
|
|
102
104
|
}
|
|
103
105
|
}
|
|
104
106
|
else {
|
|
105
|
-
_this.
|
|
106
|
-
severity: "error",
|
|
107
|
-
summary: _this.translateService.instant("hcm.payroll.error"),
|
|
108
|
-
detail: _this.translateService.instant("hcm.payroll.permission_error_not_allowed"),
|
|
109
|
-
});
|
|
107
|
+
_this.isNotAllowMessage();
|
|
110
108
|
}
|
|
111
109
|
},
|
|
112
110
|
},
|
|
@@ -117,11 +115,7 @@ var HistoricalPixAccountListComponent = /** @class */ (function () {
|
|
|
117
115
|
_this.delete(rowData.id, rowData.dateChange);
|
|
118
116
|
}
|
|
119
117
|
else {
|
|
120
|
-
_this.
|
|
121
|
-
severity: "error",
|
|
122
|
-
summary: _this.translateService.instant("hcm.payroll.error"),
|
|
123
|
-
detail: _this.translateService.instant("hcm.payroll.permission_error_not_allowed"),
|
|
124
|
-
});
|
|
118
|
+
_this.isNotAllowMessage();
|
|
125
119
|
}
|
|
126
120
|
},
|
|
127
121
|
},
|
|
@@ -179,6 +173,13 @@ var HistoricalPixAccountListComponent = /** @class */ (function () {
|
|
|
179
173
|
});
|
|
180
174
|
}
|
|
181
175
|
};
|
|
176
|
+
HistoricalPixAccountListComponent.prototype.isNotAllowMessage = function () {
|
|
177
|
+
this.messageService.add({
|
|
178
|
+
severity: "error",
|
|
179
|
+
summary: this.translateService.instant("hcm.payroll.error"),
|
|
180
|
+
detail: this.translateService.instant("hcm.payroll.permission_error_not_allowed"),
|
|
181
|
+
});
|
|
182
|
+
};
|
|
182
183
|
HistoricalPixAccountListComponent.prototype.onGridLoad = function (payload) {
|
|
183
184
|
if (payload && payload.length) {
|
|
184
185
|
this.lastRecord = payload[0];
|
|
@@ -186,21 +187,21 @@ var HistoricalPixAccountListComponent = /** @class */ (function () {
|
|
|
186
187
|
};
|
|
187
188
|
Object.defineProperty(HistoricalPixAccountListComponent.prototype, "isAllowToAddHistorical", {
|
|
188
189
|
get: function () {
|
|
189
|
-
return (this.permission["
|
|
190
|
+
return (this.permission["incluir"]);
|
|
190
191
|
},
|
|
191
192
|
enumerable: true,
|
|
192
193
|
configurable: true
|
|
193
194
|
});
|
|
194
195
|
Object.defineProperty(HistoricalPixAccountListComponent.prototype, "isAllowToDeleteHistorical", {
|
|
195
196
|
get: function () {
|
|
196
|
-
return (this.permission["
|
|
197
|
+
return (this.permission["excluir"]);
|
|
197
198
|
},
|
|
198
199
|
enumerable: true,
|
|
199
200
|
configurable: true
|
|
200
201
|
});
|
|
201
202
|
Object.defineProperty(HistoricalPixAccountListComponent.prototype, "isAllowToViewHistorical", {
|
|
202
203
|
get: function () {
|
|
203
|
-
return (this.permission["
|
|
204
|
+
return (this.permission["visualizar"]);
|
|
204
205
|
},
|
|
205
206
|
enumerable: true,
|
|
206
207
|
configurable: true
|
|
@@ -255,6 +256,9 @@ var HistoricalPixAccountListComponent = /** @class */ (function () {
|
|
|
255
256
|
tslib_1.__decorate([
|
|
256
257
|
Input()
|
|
257
258
|
], HistoricalPixAccountListComponent.prototype, "withSidebar", void 0);
|
|
259
|
+
tslib_1.__decorate([
|
|
260
|
+
Output()
|
|
261
|
+
], HistoricalPixAccountListComponent.prototype, "isOnlyView", void 0);
|
|
258
262
|
tslib_1.__decorate([
|
|
259
263
|
Output()
|
|
260
264
|
], HistoricalPixAccountListComponent.prototype, "enableView", void 0);
|
|
@@ -272,4 +276,4 @@ var HistoricalPixAccountListComponent = /** @class */ (function () {
|
|
|
272
276
|
return HistoricalPixAccountListComponent;
|
|
273
277
|
}());
|
|
274
278
|
export { HistoricalPixAccountListComponent };
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWxpc3QvaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFaEYsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBUXZCO0lBOERJLDJDQUNZLG1CQUF3QyxFQUN4QyxnQkFBa0MsRUFDbEMsY0FBOEIsRUFDOUIsRUFB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LDhDQUE4QztZQUM5QyxRQUFRLEVBQUUsK0JBQStCO1lBQ3pDLDIvQkFBMkQ7O1NBRTlELENBQUM7T0FDVyxpQ0FBaUMsQ0F5UDdDO0lBQUQsd0NBQUM7Q0FBQSxBQXpQRCxJQXlQQztTQXpQWSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25EZXN0cm95LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBDdXN0b21GaWVsZHNDb21wb25lbnQgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgU2VydmljZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL3NlcnZpY2VUeXBlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBIaXN0b3JpY2FsUGl4QWNjb3VudExpc3RTZXJ2aWNlIH0gZnJvbSBcIi4vaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0LnNlcnZpY2VcIjtcbmltcG9ydCB7IEZvcm1hdFV0aWxzU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9mb3JtYXQtdXRpbHMvZm9ybWF0LXV0aWxzLnNlcnZpY2VcIjtcblxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiBcImMtaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0LmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBIaXN0b3JpY2FsUGl4QWNjb3VudExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChDdXN0b21GaWVsZHNDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBjdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkc0NvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBlcm1pc3Npb246IG9iamVjdDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXBsb3llZUlkOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVwZW5kZW50SWQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkYXRlRm9ybWF0OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW5kUG9pbnQ6IHN0cmluZyA9IFwiaGNtL3BheXJvbGwvcXVlcmllcy9oaXN0b3JpY2FsRW1wbG95ZWVQaXhRdWVyeVwiO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGtleVBheWxvYWQ6IHN0cmluZyA9IFwiaGlzdG9yaWNhbEVtcGxveWVlUGl4XCI7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgd2l0aFNpZGViYXI6IGJvb2xlYW4gPSB0cnVlO1xuXG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZW5hYmxlVmlldzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByaXZhdGUgbGFzdFJlY29yZDogYW55O1xuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIGluaXRQYXJhbWV0ZXJzOiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHB1YmxpYyBwYXJhbWV0ZXJzOiBhbnk7XG5cbiAgICBwdWJsaWMgY29sdW1ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgIFwiaGNtLnBheXJvbGwuaGlzdG9yaWNhbF9waXhfYWNjb3VudF9sYWJlbF9kYXRlX2NoYW5nZVwiLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZpZWxkOiBcImRhdGVDaGFuZ2VcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgIFwiaGNtLnBheXJvbGwuaGlzdG9yaWNhbF9waXhfYWNjb3VudF9sYWJlbF9waXhfa2V5X3R5cGVcIixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmaWVsZDogXCJwaXhLZXlUeXBlLnZhbHVlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICBcImhjbS5wYXlyb2xsLmhpc3RvcmljYWxfcGl4X2FjY291bnRfbGFiZWxfcGl4X2tleVwiLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZpZWxkOiBcInBpeEtleVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgXCJoY20ucGF5cm9sbC5oaXN0b3JpY2FsX3BpeF9hY2NvdW50X2xhYmVsX3BlcmNlbnRhZ2VcIixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmaWVsZDogXCJwZXJjZW50YWdlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICBcImhjbS5wYXlyb2xsLmVtcGxveWVlc19tb3ZpbWVudGF0aW9uX2hpc3RvcmljYWxfcGl4X2FjY291bnRfbGFiZWxfcXRkX2FjY291bnRcIixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmaWVsZDogXCJudW1iZXJPZlBpeEFjY291bnRcIixcbiAgICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFNlcnZpY2U6IEhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdFBhcmFtZXRlcnMgPSB7IGVtcGxveWVlSWQ6IHRoaXMuZW1wbG95ZWVJZCwgZGVwZW5kZW50SWQ6IHRoaXMuZGVwZW5kZW50SWQgfTtcbiAgICB9XG5cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxhenlMb2FkKHBheWxvYWQ6IGFueSkge1xuICAgICAgICBwYXlsb2FkLmZvckVhY2goKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHZhbHVlLmRhdGVDaGFuZ2UgPSBtb21lbnQodmFsdWUuZGF0ZUNoYW5nZSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdCk7XG5cbiAgICAgICAgICAgIHZhbHVlLnBpeEtleSA9IHRoaXMuZm9ybWF0UGl4S2V5QnlUeXBlKHZhbHVlLnBpeEtleVR5cGUsIHZhbHVlLnBpeEtleSk7XG4gICAgICAgICAgICB2YWx1ZS5wZXJjZW50YWdlID0gRm9ybWF0VXRpbHNTZXJ2aWNlLmdldEZvcm1hdHRlZFBlcmNlbnRhZ2UodmFsdWUucGVyY2VudGFnZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub25HcmlkTG9hZChwYXlsb2FkKTtcblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdFBpeEtleUJ5VHlwZShwaXhLZXlUeXBlOiBhbnksIHBpeEtleTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGtleVR5cGUgPSBwaXhLZXlUeXBlID8gcGl4S2V5VHlwZS5rZXkudG9VcHBlckNhc2UoKSA6IFwiXCI7XG5cbiAgICAgICAgaWYgKGtleVR5cGUgPT09IFwiVEVMRVBIT05FXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBGb3JtYXRVdGlsc1NlcnZpY2UuZ2V0Rm9ybWF0dGVkVGVsZXBob25lTnVtYmVyKHBpeEtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoa2V5VHlwZSA9PT0gXCJDUEZcIikge1xuICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFV0aWxzU2VydmljZS5nZXRGb3JtYXR0ZWRDcGYocGl4S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChrZXlUeXBlID09PSBcIkNOUEpcIikge1xuICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFV0aWxzU2VydmljZS5nZXRGb3JtYXR0ZWRDbnBqKHBpeEtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcGl4S2V5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1lbnVBY3Rpb25zKHJvd0RhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmVtcGxveWVlc19pbWFnZV9jcm9wcGVyX3ZpZXdcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0FsbG93VG9WaWV3SGlzdG9yaWNhbCAmJiByb3dEYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlQ2hhbmdlID0gcm93RGF0YSAmJiByb3dEYXRhLmRhdGVDaGFuZ2UgJiYgbW9tZW50KHJvd0RhdGEuZGF0ZUNoYW5nZSwgdGhpcy5kYXRlRm9ybWF0KS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMud2l0aFNpZGViYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYGhpc3RvcmljYWwtcGl4LWFjY291bnQvJHsgZGF0ZUNoYW5nZSB9YF0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGVWaWV3LmVtaXQoZGF0ZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmVycm9yXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5wZXJtaXNzaW9uX2Vycm9yX25vdF9hbGxvd2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5kZWxldGVcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0FsbG93VG9EZWxldGVIaXN0b3JpY2FsICYmIHJvd0RhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlKHJvd0RhdGEuaWQsIHJvd0RhdGEuZGF0ZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmVycm9yXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5wZXJtaXNzaW9uX2Vycm9yX25vdF9hbGxvd2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVsZXRlKGlkOiBhbnksIGRhdGVDaGFuZ2U6IHN0cmluZykge1xuICAgICAgICBpZiAoaWQgPT09IHRoaXMubGFzdFJlY29yZC5pZCkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZUNoYW5nZVRvRHRvID0gbW9tZW50KGRhdGVDaGFuZ2UsIHRoaXMuZGF0ZUZvcm1hdCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgJHsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgIFwiaGNtLnBheXJvbGwuZW1wbG95ZWVzX21vdmltZW50YXRpb25faGlzdG9yaWNhbF9waXhfYWNjb3VudF9xdWVzdGlvbl9jb25maXJtX2RlbGV0ZVwiLFxuICAgICAgICAgICAgICAgICkgfT9gLFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy53aXRoU2lkZWJhciA/ICBTZXJ2aWNlVHlwZS5QQVlST0xMIDogU2VydmljZVR5cGUuREVQRU5ERU5UO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZW1vdmUodGhpcy5lbXBsb3llZUlkLCBkYXRlQ2hhbmdlVG9EdG8sIHNlcnZpY2UsIHRoaXMuZGVwZW5kZW50SWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLnN1Y2Nlc3NcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuZW1wbG95ZWVzX21vdmltZW50YXRpb25faGlzdG9yaWNhbF9waXhfYWNjb3VudF9yZW1vdmVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSAodGhpcy5wYXJhbWV0ZXJzICYmIHsgLi4udGhpcy5wYXJhbWV0ZXJzIH0pIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lcnJvclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfbW92aW1lbnRhdGlvbl9oaXN0b3JpY2FsX3BpeF9hY2NvdW50X2Vycm9yX3JlbW92ZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLm5vdF9hbGxvd2VkX2RlbGV0ZV9sYXN0XCIpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkKCkge1xuICAgICAgICBpZiAodGhpcy5pc0FsbG93VG9BZGRIaXN0b3JpY2FsKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJoaXN0b3JpY2FsLXBpeC1hY2NvdW50LW5ld1wiXSwge1xuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLnBlcm1pc3Npb25fZXJyb3Jfbm90X2FsbG93ZWRcIiksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25HcmlkTG9hZChwYXlsb2FkOiBhbnkpIHtcbiAgICAgICAgaWYgKHBheWxvYWQgJiYgcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFJlY29yZCA9IHBheWxvYWRbMF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc0FsbG93VG9BZGRIaXN0b3JpY2FsKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uW1wiSW5jbHVpclwiXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzQWxsb3dUb0RlbGV0ZUhpc3RvcmljYWwoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25bXCJFeGNsdWlyXCJdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNBbGxvd1RvVmlld0hpc3RvcmljYWwoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25bXCJWaXNhdWxpemFyXCJdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzY29wZWRBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZW51QWN0aW9ucy5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZWxvYWRMaXN0KGNvbmRpdGlvbjogYm9vbGVhbikge1xuICAgICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gKHRoaXMucGFyYW1ldGVycyAmJiB7IC4uLnRoaXMucGFyYW1ldGVycyB9KSB8fCB7fTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWxpc3QvaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFaEYsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBUXZCO0lBK0RJLDJDQUNZLG1CQUF3QyxFQUN4QyxnQkFBa0MsRUFDbEMsY0FBOEIsRUFDOUIsRUFB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UCw4Q0FBOEM7WUFDOUMsUUFBUSxFQUFFLCtCQUErQjtZQUN6QywyL0JBQTJEOztTQUU5RCxDQUFDO09BQ1csaUNBQWlDLENBNFA3QztJQUFELHdDQUFDO0NBQUEsQUE1UEQsSUE0UEM7U0E1UFksaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQ3VzdG9tRmllbGRzQ29tcG9uZW50IH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IFNlcnZpY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9lbnVtcy9zZXJ2aWNlVHlwZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgSGlzdG9yaWNhbFBpeEFjY291bnRMaXN0U2VydmljZSB9IGZyb20gXCIuL2hpc3RvcmljYWwtcGl4LWFjY291bnQtbGlzdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGb3JtYXRVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvZm9ybWF0LXV0aWxzL2Zvcm1hdC11dGlscy5zZXJ2aWNlXCI7XG5cbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogXCJjLWhpc3RvcmljYWwtcGl4LWFjY291bnQtbGlzdFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2hpc3RvcmljYWwtcGl4LWFjY291bnQtbGlzdC5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgSGlzdG9yaWNhbFBpeEFjY291bnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoQ3VzdG9tRmllbGRzQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZHNDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwZXJtaXNzaW9uOiBvYmplY3Q7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW1wbG95ZWVJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlcGVuZGVudElkOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0ZUZvcm1hdDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVuZFBvaW50OiBzdHJpbmcgPSBcImhjbS9wYXlyb2xsL3F1ZXJpZXMvaGlzdG9yaWNhbEVtcGxveWVlUGl4UXVlcnlcIjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBrZXlQYXlsb2FkOiBzdHJpbmcgPSBcImhpc3RvcmljYWxFbXBsb3llZVBpeFwiO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdpdGhTaWRlYmFyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBpc09ubHlWaWV3OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZW5hYmxlVmlldzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByaXZhdGUgbGFzdFJlY29yZDogYW55O1xuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIGluaXRQYXJhbWV0ZXJzOiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHB1YmxpYyBwYXJhbWV0ZXJzOiBhbnk7XG5cbiAgICBwdWJsaWMgY29sdW1ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgIFwiaGNtLnBheXJvbGwuaGlzdG9yaWNhbF9waXhfYWNjb3VudF9sYWJlbF9kYXRlX2NoYW5nZVwiLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZpZWxkOiBcImRhdGVDaGFuZ2VcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgIFwiaGNtLnBheXJvbGwuaGlzdG9yaWNhbF9waXhfYWNjb3VudF9sYWJlbF9waXhfa2V5X3R5cGVcIixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmaWVsZDogXCJwaXhLZXlUeXBlLnZhbHVlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICBcImhjbS5wYXlyb2xsLmhpc3RvcmljYWxfcGl4X2FjY291bnRfbGFiZWxfcGl4X2tleVwiLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZpZWxkOiBcInBpeEtleVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgXCJoY20ucGF5cm9sbC5oaXN0b3JpY2FsX3BpeF9hY2NvdW50X2xhYmVsX3BlcmNlbnRhZ2VcIixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmaWVsZDogXCJwZXJjZW50YWdlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICBcImhjbS5wYXlyb2xsLmVtcGxveWVlc19tb3ZpbWVudGF0aW9uX2hpc3RvcmljYWxfcGl4X2FjY291bnRfbGFiZWxfcXRkX2FjY291bnRcIixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmaWVsZDogXCJudW1iZXJPZlBpeEFjY291bnRcIixcbiAgICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFNlcnZpY2U6IEhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdFBhcmFtZXRlcnMgPSB7IGVtcGxveWVlSWQ6IHRoaXMuZW1wbG95ZWVJZCwgZGVwZW5kZW50SWQ6IHRoaXMuZGVwZW5kZW50SWQgfTtcbiAgICB9XG5cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxhenlMb2FkKHBheWxvYWQ6IGFueSkge1xuICAgICAgICBwYXlsb2FkLmZvckVhY2goKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHZhbHVlLmRhdGVDaGFuZ2UgPSBtb21lbnQodmFsdWUuZGF0ZUNoYW5nZSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdCk7XG5cbiAgICAgICAgICAgIHZhbHVlLnBpeEtleSA9IHRoaXMuZm9ybWF0UGl4S2V5QnlUeXBlKHZhbHVlLnBpeEtleVR5cGUsIHZhbHVlLnBpeEtleSk7XG4gICAgICAgICAgICB2YWx1ZS5wZXJjZW50YWdlID0gRm9ybWF0VXRpbHNTZXJ2aWNlLmdldEZvcm1hdHRlZFBlcmNlbnRhZ2UodmFsdWUucGVyY2VudGFnZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub25HcmlkTG9hZChwYXlsb2FkKTtcblxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdFBpeEtleUJ5VHlwZShwaXhLZXlUeXBlOiBhbnksIHBpeEtleTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGtleVR5cGUgPSBwaXhLZXlUeXBlID8gcGl4S2V5VHlwZS5rZXkudG9VcHBlckNhc2UoKSA6IFwiXCI7XG5cbiAgICAgICAgaWYgKGtleVR5cGUgPT09IFwiVEVMRVBIT05FXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBGb3JtYXRVdGlsc1NlcnZpY2UuZ2V0Rm9ybWF0dGVkVGVsZXBob25lTnVtYmVyKHBpeEtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoa2V5VHlwZSA9PT0gXCJDUEZcIikge1xuICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFV0aWxzU2VydmljZS5nZXRGb3JtYXR0ZWRDcGYocGl4S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChrZXlUeXBlID09PSBcIkNOUEpcIikge1xuICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFV0aWxzU2VydmljZS5nZXRGb3JtYXR0ZWRDbnBqKHBpeEtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcGl4S2V5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1lbnVBY3Rpb25zKHJvd0RhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmVtcGxveWVlc19pbWFnZV9jcm9wcGVyX3ZpZXdcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5pc0FsbG93VG9WaWV3SGlzdG9yaWNhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZUNoYW5nZSA9IHJvd0RhdGEgJiYgcm93RGF0YS5kYXRlQ2hhbmdlICYmIG1vbWVudChyb3dEYXRhLmRhdGVDaGFuZ2UsIHRoaXMuZGF0ZUZvcm1hdCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLndpdGhTaWRlYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc09ubHlWaWV3LmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2BoaXN0b3JpY2FsLXBpeC1hY2NvdW50LyR7IGRhdGVDaGFuZ2UgfWBdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGVWaWV3LmVtaXQoZGF0ZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTm90QWxsb3dNZXNzYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5kZWxldGVcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0FsbG93VG9EZWxldGVIaXN0b3JpY2FsICYmIHJvd0RhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlKHJvd0RhdGEuaWQsIHJvd0RhdGEuZGF0ZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTm90QWxsb3dNZXNzYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVsZXRlKGlkOiBhbnksIGRhdGVDaGFuZ2U6IHN0cmluZykge1xuICAgICAgICBpZiAoaWQgPT09IHRoaXMubGFzdFJlY29yZC5pZCkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZUNoYW5nZVRvRHRvID0gbW9tZW50KGRhdGVDaGFuZ2UsIHRoaXMuZGF0ZUZvcm1hdCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgJHsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgIFwiaGNtLnBheXJvbGwuZW1wbG95ZWVzX21vdmltZW50YXRpb25faGlzdG9yaWNhbF9waXhfYWNjb3VudF9xdWVzdGlvbl9jb25maXJtX2RlbGV0ZVwiLFxuICAgICAgICAgICAgICAgICkgfT9gLFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy53aXRoU2lkZWJhciA/ICBTZXJ2aWNlVHlwZS5QQVlST0xMIDogU2VydmljZVR5cGUuREVQRU5ERU5UO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcmljYWxQaXhBY2NvdW50TGlzdFNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZW1vdmUodGhpcy5lbXBsb3llZUlkLCBkYXRlQ2hhbmdlVG9EdG8sIHNlcnZpY2UsIHRoaXMuZGVwZW5kZW50SWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLnN1Y2Nlc3NcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuZW1wbG95ZWVzX21vdmltZW50YXRpb25faGlzdG9yaWNhbF9waXhfYWNjb3VudF9yZW1vdmVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSAodGhpcy5wYXJhbWV0ZXJzICYmIHsgLi4udGhpcy5wYXJhbWV0ZXJzIH0pIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lcnJvclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfbW92aW1lbnRhdGlvbl9oaXN0b3JpY2FsX3BpeF9hY2NvdW50X2Vycm9yX3JlbW92ZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLm5vdF9hbGxvd2VkX2RlbGV0ZV9sYXN0XCIpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkKCkge1xuICAgICAgICBpZiAodGhpcy5pc0FsbG93VG9BZGRIaXN0b3JpY2FsKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJoaXN0b3JpY2FsLXBpeC1hY2NvdW50LW5ld1wiXSwge1xuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLnBlcm1pc3Npb25fZXJyb3Jfbm90X2FsbG93ZWRcIiksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNOb3RBbGxvd01lc3NhZ2UoKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLmVycm9yXCIpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLnBlcm1pc3Npb25fZXJyb3Jfbm90X2FsbG93ZWRcIiksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25HcmlkTG9hZChwYXlsb2FkOiBhbnkpIHtcbiAgICAgICAgaWYgKHBheWxvYWQgJiYgcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFJlY29yZCA9IHBheWxvYWRbMF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc0FsbG93VG9BZGRIaXN0b3JpY2FsKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uW1wiaW5jbHVpclwiXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzQWxsb3dUb0RlbGV0ZUhpc3RvcmljYWwoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25bXCJleGNsdWlyXCJdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNBbGxvd1RvVmlld0hpc3RvcmljYWwoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25bXCJ2aXN1YWxpemFyXCJdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzY29wZWRBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZW51QWN0aW9ucy5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZWxvYWRMaXN0KGNvbmRpdGlvbjogYm9vbGVhbikge1xuICAgICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gKHRoaXMucGFyYW1ldGVycyAmJiB7IC4uLnRoaXMucGFyYW1ldGVycyB9KSB8fCB7fTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
|