@seniorsistemas/angular-components 17.3.18 → 17.3.19
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/seniorsistemas-angular-components.umd.js +2 -1
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/esm2015/components/custom-fields/custom-fields.component.js +3 -2
- package/esm5/components/custom-fields/custom-fields.component.js +3 -2
- package/fesm2015/seniorsistemas-angular-components.js +2 -1
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +2 -1
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
|
@@ -70,8 +70,9 @@ var CustomFieldsComponent = /** @class */ (function () {
|
|
|
70
70
|
var observables = [this.getCustomFields(), this.localeService.get()];
|
|
71
71
|
forkJoin(observables)
|
|
72
72
|
.pipe(takeUntil(this.ngUsubscribe), finalize(function () {
|
|
73
|
+
var _a;
|
|
73
74
|
_this.formGroup.markAsPristine();
|
|
74
|
-
_this.parentControl.markAsPristine();
|
|
75
|
+
(_a = _this.parentControl) === null || _a === void 0 ? void 0 : _a.markAsPristine();
|
|
75
76
|
if (_this.ready$)
|
|
76
77
|
_this.ready$.next(true);
|
|
77
78
|
}))
|
|
@@ -624,4 +625,4 @@ function isUploading(file) {
|
|
|
624
625
|
function errorOnUpload(file) {
|
|
625
626
|
return function () { return (file.error ? { uploadError: true } : null); };
|
|
626
627
|
}
|
|
627
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jdXN0b20tZmllbGRzL2N1c3RvbS1maWVsZHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUErQyxRQUFRLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUFFLGFBQWEsRUFDeEIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxFQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQStCLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxJQUFLLGVBY0o7QUFkRCxXQUFL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RUFDc0I7SUExQnJCLHFCQUFxQjtRQWhCakMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixvT0FBNkM7WUFDN0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSx1QkFBcUI7b0JBQ2xDLEtBQUssRUFBRSxJQUFJO2lCQUNkO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxhQUFhO29CQUN0QixXQUFXLEVBQUUsdUJBQXFCO29CQUNsQyxLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUNKO1NBQ0osQ0FBQztRQTRDTyxXQUFBLFFBQVEsRUFBRSxDQUFBO09BM0NOLHFCQUFxQixDQTRrQmpDO0lBQUQsNEJBQUM7Q0FBQSxBQTVrQkQsSUE0a0JDO1NBNWtCWSxxQkFBcUI7QUE4a0JsQyxTQUFTLFdBQVcsQ0FBQyxJQUFhO0lBQzlCLE9BQU8sY0FBTSxPQUFBLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFqRCxDQUFpRCxDQUFDO0FBQ25FLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxJQUFhO0lBQ2hDLE9BQU8sY0FBTSxPQUFBLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUEzQyxDQUEyQyxDQUFDO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT3B0aW9uYWwsIFNpbXBsZUNoYW5nZSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICAgIENvbnRyb2xDb250YWluZXIsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgRm9ybUFycmF5LFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Hcm91cCwgTkdfVkFMSURBVE9SUyxcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBWYWxpZGF0b3IsXG4gICAgVmFsaWRhdG9yRm4sXG4gICAgVmFsaWRhdG9yc1xufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSBcImJpZ251bWJlci5qc1wiO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGZvcmtKb2luLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1GaWVsZCB9IGZyb20gXCIuLi9keW5hbWljLWZvcm0vaW5kZXhcIjtcbmltcG9ydCB7IEZpbGVEdG8gfSBmcm9tIFwiLi4vZmlsZS11cGxvYWQvaW5kZXhcIjtcbmltcG9ydCB7IExvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vbG9jYWxlXCI7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xvY2FsZS9sb2NhbGUuc2VydmljZVwiO1xuaW1wb3J0IHsgQ3VzdG9tRmllbGRzU2VydmljZSB9IGZyb20gXCIuL2N1c3RvbS1maWVsZHMuc2VydmljZVwiO1xuXG5lbnVtIEN1c3RvbUZpZWxkVHlwZSB7XG4gICAgU3RyaW5nID0gXCJTdHJpbmdcIixcbiAgICBCb29sZWFuID0gXCJCb29sZWFuXCIsXG4gICAgSW50ZWdlciA9IFwiSW50ZWdlclwiLFxuICAgIERvdWJsZSA9IFwiRG91YmxlXCIsXG4gICAgRGF0ZSA9IFwiRGF0ZVwiLFxuICAgIERhdGVUaW1lID0gXCJEYXRlVGltZVwiLFxuICAgIExvY2FsRGF0ZVRpbWUgPSBcIkxvY2FsRGF0ZVRpbWVcIixcbiAgICBUaW1lID0gXCJUaW1lXCIsXG4gICAgTW9uZXkgPSBcIk1vbmV5XCIsXG4gICAgQmxvYiA9IFwiQmxvYlwiLFxuICAgIEJpbmFyeSA9IFwiQmluYXJ5XCIsXG4gICAgQW55ID0gXCJBbnlcIixcbiAgICBFbnVtID0gXCJFbnVtXCJcbn1cblxuY29uc3QgbW9tZW50ID0gbW9tZW50XzsgLy8gQEhBQ0sgTmVjZXNzYXJ5IGJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL3JvbGx1cC9yb2xsdXAvaXNzdWVzLzY3MFxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWN1c3RvbS1maWVsZHNcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2N1c3RvbS1maWVsZHMuY29tcG9uZW50Lmh0bWxcIixcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ3VzdG9tRmllbGRzQ29tcG9uZW50LFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ3VzdG9tRmllbGRzQ29tcG9uZW50LFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tRmllbGRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZG9tYWluOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VydmljZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVudGl0eTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGludmFsaWRFcnJvckxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW50aXR5T2JqZWN0OiBhbnk7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VzdG9tRmllbGRzRW5kcG9pbnQgPSBcInBsYXRmb3JtL2ZpZWxkX2N1c3RvbWl6YXRpb24vcXVlcmllcy9nZXRFbnRpdHlcIjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWxlTG9jYXRpb25FbmRwb2ludCA9IFwicGxhdGZvcm0vZmllbGRfY3VzdG9taXphdGlvbi9hY3Rpb25zL3JlcXVlc3RVcGxvYWRcIjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXF1ZXN0QWNjZXNzRW5kcG9pbnQgPSBcInBsYXRmb3JtL2ZpZWxkX2N1c3RvbWl6YXRpb24vYWN0aW9ucy9yZXF1ZXN0QWNjZXNzXCI7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVxdWlyZWRFcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5VGltZUluZm9TaWduOiBudW1iZXI7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0ZpbGVVcGxvYWREYXRlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVhZHkkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZUZpZWxkczogYm9vbGVhbjtcbiAgICBwdWJsaWMgZmllbGRzOiBGb3JtRmllbGRbXSA9IFtdO1xuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwcml2YXRlIHJlYWR5ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55O1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiBhbnk7XG4gICAgcHJpdmF0ZSB2YWx1ZTogYW55O1xuICAgIHByaXZhdGUgbmdVc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlIHVwbG9hZENhbmNlbGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgaGFzQmxvYjogYm9vbGVhbjtcbiAgICBwcml2YXRlIGhhc1VwbG9hZGVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY3VzdG9tRmllbGRzU2VydmljZTogQ3VzdG9tRmllbGRzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2NhbGVTZXJ2aWNlOiBMb2NhbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lclxuICAgICkge1xuICAgIH1cblxuICAgIGdldCBwYXJlbnRGb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xDb250YWluZXIuY29udHJvbCBhcyBGb3JtR3JvdXA7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudENvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnRGb3JtLmdldChcImN1c3RvbVwiKSBhcyBGb3JtQ29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5kb21haW4pIHRocm93IG5ldyBFcnJvcihcIllvdSBuZWVkIHRvIHNwZWNpZnkgdGhlIGN1c3RvbS1maWVsZHMgZG9tYWluIVwiKTtcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UpIHRocm93IG5ldyBFcnJvcihcIllvdSBuZWVkIHRvIHNwZWNpZnkgdGhlIGN1c3RvbS1maWVsZHMgc2VydmljZSFcIik7XG4gICAgICAgIGlmICghdGhpcy5lbnRpdHkpIHRocm93IG5ldyBFcnJvcihcIllvdSBuZWVkIHRvIHNwZWNpZnkgdGhlIGN1c3RvbS1maWVsZHMgZW50aXR5IVwiKTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFt0aGlzLmdldEN1c3RvbUZpZWxkcygpLCB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0KCldO1xuICAgICAgICBmb3JrSm9pbihvYnNlcnZhYmxlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVXN1YnNjcmliZSksIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Q29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVhZHkkKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWR5JC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55W10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbY3VzdG9tRmllbGRzUmVzcG9uc2UsIGxvY2FsZU9wdGlvbnNdID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdHM6IGFueSA9IHt9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW0N1c3RvbUZpZWxkVHlwZS5TdHJpbmddID0ge307XG4gICAgICAgICAgICAgICAgZGVmYXVsdHNbQ3VzdG9tRmllbGRUeXBlLkJvb2xlYW5dID0geyBkZWZhdWx0VmFsdWU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgZGVmYXVsdHNbQ3VzdG9tRmllbGRUeXBlLkludGVnZXJdID0ge307XG4gICAgICAgICAgICAgICAgZGVmYXVsdHNbQ3VzdG9tRmllbGRUeXBlLkRvdWJsZV0gPSB7IGRlZmF1bHRNYXNrOiBcIlwiIH07XG4gICAgICAgICAgICAgICAgZGVmYXVsdHNbQ3VzdG9tRmllbGRUeXBlLk1vbmV5XSA9IHt9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW0N1c3RvbUZpZWxkVHlwZS5EYXRlXSA9IHt9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW0N1c3RvbUZpZWxkVHlwZS5EYXRlVGltZV0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuTG9jYWxEYXRlVGltZV0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuVGltZV0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuQmxvYl0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuRW51bV0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuQmluYXJ5XSA9IHt9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW0N1c3RvbUZpZWxkVHlwZS5BbnldID0ge307XG5cbiAgICAgICAgICAgICAgICBpZiAoIWN1c3RvbUZpZWxkc1Jlc3BvbnNlIHx8ICFjdXN0b21GaWVsZHNSZXNwb25zZS5lbnRpdHlfKSByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3QgeyBhY3RpdmUsIGZpZWxkcyB9ID0gY3VzdG9tRmllbGRzUmVzcG9uc2UuZW50aXR5XztcbiAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgZmllbGRzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkOiBhbnkpID0+IGZpZWxkLmN1c3RvbWl6YWJsZSAmJiBmaWVsZC5jdXN0b21pemF0aW9uICYmIGZpZWxkLmN1c3RvbWl6YXRpb24uYWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5nZXRGb3JtRmllbGQoZmllbGQsIGxvY2FsZU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRUeXBlID0gZmllbGQudHlwZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEN1c3RvbUZpZWxkVHlwZS5CbG9iICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZVtmb3JtRmllbGQubmFtZV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVCbG9iVG9GaWxlVXBsb2FkKGZvcm1GaWVsZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgdmFsaWRhdGlvblJlZ2V4IH0gPSBmaWVsZC5jdXN0b21pemF0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhc0lzVHlwZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmllbGRUeXBlLkJvb2xlYW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmllbGRUeXBlLk1vbmV5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZpZWxkVHlwZS5EYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZpZWxkVHlwZS5EYXRlVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21GaWVsZFR5cGUuTG9jYWxEYXRlVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21GaWVsZFR5cGUuVGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRpb25SZWdleCAmJiAhYXNJc1R5cGVzLmluY2x1ZGVzKGZpZWxkVHlwZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih2YWxpZGF0aW9uUmVnZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZFR5cGUgPT09IEN1c3RvbUZpZWxkVHlwZS5JbnRlZ2VyICYmICFmb3JtRmllbGQubWFzaykgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybigvXlxcLT9cXGQqJC8pKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1GaWVsZC5yZXF1aXJlZD8uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogZGVmYXVsdHNbZmllbGRUeXBlXS5kZWZhdWx0VmFsdWUsIGRpc2FibGVkOiB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woZm9ybUZpZWxkLm5hbWUsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZHMucHVzaChmb3JtRmllbGQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlRmllbGRDdXN0b21pemF0aW9uKGZpZWxkcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLnBhcnNlVmFsdWVzRm9yRmllbGRzKHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW5hYmxlT3JEaXNhYmxlRmllbGRzKHRoaXMuZGlzYWJsZUZpZWxkcyk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5kaXNhYmxlRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZU9yRGlzYWJsZUZpZWxkcyhjaGFuZ2VzLmRpc2FibGVGaWVsZHMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1VzdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVXN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnBhcnNlRmllbGRzVmFsdWVzKCkpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5yZWFkeSkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnBhcnNlVmFsdWVzRm9yRmllbGRzKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVGaWxlc0lmU2V0Rm9ybVZhbHVlc0FmdGVySW5pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh2YWx1ZSB8fCB7fSk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgZWxzZSB0aGlzLmZvcm1Hcm91cC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXN0b21GaWVsZHMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuZW50aXR5T2JqZWN0ICYmIHRoaXMuZW50aXR5T2JqZWN0LmVudGl0eV8pIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmVudGl0eU9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tRmllbGRzU2VydmljZS5nZXRDdXN0b21GaWVsZHModGhpcy5kb21haW4sIHRoaXMuc2VydmljZSwgdGhpcy5lbnRpdHksIHRoaXMuY3VzdG9tRmllbGRzRW5kcG9pbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgZXJyb3JzOiBhbnkgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBlcnJvcnM6IGNvbnRyb2xFcnJvcnMgfSA9IHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICAgICAgICBpZiAoY29udHJvbEVycm9ycykgZXJyb3JzW2ZpZWxkXSA9IGNvbnRyb2xFcnJvcnM7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5hYmxlT3JEaXNhYmxlRmllbGRzKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmKCF0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yKGNvbnN0IGNvbnRyb2xOYW1lIG9mIE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLnZhbHVlKSkge1xuICAgICAgICAgICBkaXNhYmxlZCA/IHRoaXMuZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSkuZGlzYWJsZSgpIDogdGhpcy5mb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lKS5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhbkZpZWxkcygpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgcGFyc2VWYWx1ZXNGb3JGaWVsZHModmFsdWVzOiBhbnkpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVmFsdWVzID0geyAuLi52YWx1ZXMgfTtcblxuICAgICAgICB0aGlzLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgdHlwZSwgbmFtZSB9ID0gZmllbGQ7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlcyAmJiB2YWx1ZXNbbmFtZV07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVHJhdGFtZW50byBleGNsdXNpdm8gcGFyYSBjYW1wb3MgYm9vbGVhbiBxdWUgdGVtIG8gc3RhdHVzIEVtcHR5XG4gICAgICAgICAgICAgKiBFc3NhIGNvbmRpY2lvbmFsIG5lY2Vzc2l0YSBlc3RhciBhbnRlcyBkbyBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICAgICAgICAgKiBQb2lzIGVsYSB0ZW0gdW0gc3RhdHVzIHF1ZSB1c2EgbnVsbCBubyB2YWxvciBkbyBjYW1wbyByYWRpbyBib29sZWFuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0eXBlID09PSBGaWVsZFR5cGUuQm9vbGVhbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU3RyaW5nID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vdFZhbGlkID0gIWlzU3RyaW5nICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJib29sZWFuXCI7XG4gICAgICAgICAgICAgICAgaWYgKG5vdFZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlc1tuYW1lXSA9IG51bGw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29uZGljaW9uYWwgcGFyYSBjYW1wb3MgcXVlIHJldG9ybmFtIHN0cmluZyBkZSBib29sZW4gZG8gYmFja2FuZFxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlc1tuYW1lXSA9IHZhbHVlID09PSBcInRydWVcIiA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlc1tuYW1lXSA9IG1vbWVudCh2YWx1ZSkudG9EYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZXNbbmFtZV0gPSBtb21lbnQodmFsdWUpLnRvRGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5Mb2NhbERhdGVUaW1lOlxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZXNbbmFtZV0gPSBtb21lbnQodmFsdWUsIFwiWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1wiKS50b0RhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuVGltZTpcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWVzW25hbWVdID0gbW9tZW50KHZhbHVlLCBcIkhIOm1tOnNzXCIpLnRvRGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlZFZhbHVlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbGd1bWFzIGVxdWlwZXMgc8OzIHNldGFtIHZhbG9yIG5vIGZvcm11bMOhcmlvLCBhcMOzcyBvIGNhcnJlZ2FtZW50byBkYSB0ZWxhXG4gICAgICogQ29tbyDDqSBiZW0gcGFkcsOjbyBpc3NvLCBmb2kgbmVjZXNzw6FyaW8gY3JpYXIgZXNzZSBtw6l0b2RvIHBhcmEgZ2VyYXIgbyBmaWxlXG4gICAgICogYXDDs3Mgc2V0YXIgbyB2YWxvciBubyBmb3JtdWzDoXJpb1xuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlRmlsZXNJZlNldEZvcm1WYWx1ZXNBZnRlckluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5oYXNVcGxvYWRlZCkge1xuICAgICAgICAgICAgdGhpcy5maWVsZHMuZmlsdGVyKChmaWVsZDogRm9ybUZpZWxkKSA9PiBmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuQmxvYikuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS52YWx1ZSkgdGhpcy5jcmVhdGVCbG9iVG9GaWxlVXBsb2FkKGZpZWxkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZUZpZWxkc1ZhbHVlcygpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVmFsdWVzOiBhbnkgPSB7fTtcblxuICAgICAgICB0aGlzLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgdHlwZSwgbmFtZSwgbWFzaywgc2NhbGUgfSA9IGZpZWxkO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KG5hbWUpLnZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuTnVtYmVyOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2spIHZhbHVlID0gbmV3IEJpZ051bWJlcih2YWx1ZSkudG9GaXhlZChzY2FsZSBhcyBudW1iZXIpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuRGF0ZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbW9tZW50KHZhbHVlKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBtb21lbnQodmFsdWUpLmZvcm1hdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkxvY2FsRGF0ZVRpbWU6XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG1vbWVudCh2YWx1ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBtb21lbnQodmFsdWUpLmZvcm1hdChcIkhIOm1tOnNzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgIU51bWJlci5pc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1R5cGVOdW1iZXJPckVudW0odHlwZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZXNbbmFtZV0gPSBmaWVsZC5tdWx0aXBsZSA/IFtdIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzQmxvYikgcGFyc2VkVmFsdWVzW1wiZmllbGRDdXN0b21pemF0aW9uXCJdID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiZmllbGRDdXN0b21pemF0aW9uXCIpLnZhbHVlO1xuICAgICAgICByZXR1cm4gcGFyc2VkVmFsdWVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUeXBlTnVtYmVyT3JFbnVtKHR5cGU6IEZpZWxkVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBudW1iZXJPckVudW0gPSBbXG4gICAgICAgICAgICBGaWVsZFR5cGUuTnVtYmVyLFxuICAgICAgICAgICAgRmllbGRUeXBlLkVudW1cbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIG51bWJlck9yRW51bS5pbmNsdWRlcyh0eXBlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1GaWVsZChmaWVsZDogYW55LCBsb2NhbGVPcHRpb25zOiBMb2NhbGVPcHRpb25zKTogRm9ybUZpZWxkIHtcbiAgICAgICAgbGV0IHBhcmFtZXRlcnM7XG5cbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEN1c3RvbUZpZWxkVHlwZS5CbG9iOlxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB0aGlzLmdldEJsb2JQYXJhbWV0ZXJzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEN1c3RvbUZpZWxkVHlwZS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB0aGlzLmdldEJvb2xlYW5QYXJhbWV0ZXJzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiRW51bWVyYXRpb25cIjpcbiAgICAgICAgICAgIGNhc2UgQ3VzdG9tRmllbGRUeXBlLkVudW06XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9IEZpZWxkVHlwZS5FbnVtO1xuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB0aGlzLmdldEVudW1QYXJhbWV0ZXJzKGZpZWxkKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ3VzdG9tRmllbGRUeXBlLk1vbmV5OlxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5OdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIGxlZnRBZGRvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxvY2FsZU9wdGlvbnM/Lm51bWJlcj8uY3VycmVuY3lTeW1ib2wgPz8gXCJSJFwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEN1c3RvbUZpZWxkVHlwZS5Eb3VibGU6XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLk51bWJlclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEN1c3RvbUZpZWxkVHlwZS5JbnRlZ2VyOlxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5OdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIHNjYWxlOiAwXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVycyA9IHt9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgbmFtZTogZmllbGQuaWQsXG4gICAgICAgICAgICBsYWJlbDogZmllbGQuY3VzdG9taXphdGlvbi5sYWJlbCxcbiAgICAgICAgICAgIHRvb2x0aXA6IGZpZWxkLmN1c3RvbWl6YXRpb24udG9vbHRpcCxcbiAgICAgICAgICAgIGluZm9TaWduOiBmaWVsZC5jdXN0b21pemF0aW9uLmluZm9TaWduLFxuICAgICAgICAgICAgdHlwZTogZmllbGQudHlwZSxcbiAgICAgICAgICAgIG1hc2s6IGZpZWxkLmN1c3RvbWl6YXRpb24ubWFzayxcbiAgICAgICAgICAgIHJlcXVpcmVkOiAoKSA9PiBmaWVsZC5jdXN0b21pemF0aW9uLm1hbmRhdG9yeSxcbiAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9uczogbG9jYWxlT3B0aW9ucy5jYWxlbmRhcixcbiAgICAgICAgICAgIGN1cnJlbmN5T3B0aW9uczogbG9jYWxlT3B0aW9ucy5udW1iZXIsXG4gICAgICAgICAgICAuLi5wYXJhbWV0ZXJzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVudW1QYXJhbWV0ZXJzKGZpZWxkOiBhbnkpOiBvYmplY3Qge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hvd0NsZWFyOiB0cnVlLFxuICAgICAgICAgICAgbXVsdGlwbGU6IGZpZWxkLmN1c3RvbWl6YXRpb24uY3VzdG9tRW51bWVyYXRpb24ubXVsdGlwbGUsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWVsZC5jdXN0b21pemF0aW9uLmN1c3RvbUVudW1lcmF0aW9uLnZhbHVlcy5tYXAoKGU6IGFueSkgPT4gKHsgbGFiZWw6IGUudmFsdWUsIHZhbHVlOiBlLmtleSB9KSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCb29sZWFuUGFyYW1ldGVycygpOiBvYmplY3Qge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgb3B0aW9uc0xhYmVsOiB7XG4gICAgICAgICAgICAgICAgdHJ1ZTogdGhpcy5nZXRUcmFuc2xhdGVMYWJlbChgdHJ1ZV9sYWJlbGApLFxuICAgICAgICAgICAgICAgIGZhbHNlOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBmYWxzZV9sYWJlbGApLFxuICAgICAgICAgICAgICAgIGVtcHR5OiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBlbXB0eV9sYWJlbGApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJsb2JQYXJhbWV0ZXJzKCk6IG9iamVjdCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICAgICAgc206IDEyLFxuICAgICAgICAgICAgICAgIG1kOiAxMixcbiAgICAgICAgICAgICAgICBsZzogMTIsXG4gICAgICAgICAgICAgICAgeGw6IDEyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY2VwdDogXCJpbWFnZS8qLCBhcHBsaWNhdGlvbi8qLCB0ZXh0LypcIixcbiAgICAgICAgICAgIGNob29zZUxhYmVsOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBjaG9vc2VfbGFiZWxgKSxcbiAgICAgICAgICAgIHJlbW92ZUxhYmVsOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGByZW1vdmVfbGFiZWxgKSxcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBjYW5jZWxfbGFiZWxgKSxcbiAgICAgICAgICAgIHN1Y2Nlc3NUb29sdGlwOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBzdWNjZXNzX3Rvb2x0aXBgKSxcbiAgICAgICAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgICAgIG9uVXBsb2FkRmlsZTogKGV2ZW50OiB7IGZpbGVzOiBGaWxlRHRvW10gfSwgZm9ybWZpZWxkOiBGb3JtRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1VwbG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZXZlbnQsIGZvcm1maWVsZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25SZW1vdmVGaWxlOiAoZXZlbnQ6IHsgZmlsZTogRmlsZUR0byB9LCBmb3JtZmllbGQ6IEZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRmlsZShldmVudCwgZm9ybWZpZWxkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNhbmNlbFVwbG9hZDogKGV2ZW50OiBudW1iZXIsIGZvcm1maWVsZDogRm9ybUZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxVcGxvYWQoZXZlbnQsIGZvcm1maWVsZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25Eb3dubG9hZEZpbGU6IChldmVudDogeyBpbmRleDogbnVtYmVyOyBhbmNob3I6IEVsZW1lbnRSZWYgfSwgZm9ybWZpZWxkOiBGb3JtRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZShldmVudCwgZm9ybWZpZWxkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaG93RmlsZVVwbG9hZERhdGU6IHRoaXMuc2hvd0ZpbGVVcGxvYWREYXRlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogw4kgbmVjZXNzw6FyaW8gY3JpYXIgbyBmaWVsZEN1c3RvbWl6YXRpb24gcXVhbmRvIGjDoSB1bSBCbG9iIG5hIGVudGlkYWRlIHBhcmEgZ2VyYXIgb1xuICAgICAqIGNvbSBvcyBmaWVsZHMgaW5zZXJpZG9zIGUgZGVsZXRhZG9zLlxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlRmllbGRDdXN0b21pemF0aW9uKGZpZWxkczogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNCbG9iID0gISFmaWVsZHMuZmlsdGVyKChmaWVsZDogYW55KSA9PiBmaWVsZC50eXBlID09PSBDdXN0b21GaWVsZFR5cGUuQmxvYikubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5oYXNCbG9iKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgIFwiZmllbGRDdXN0b21pemF0aW9uXCIsXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1BcnJheShbXG4gICAgICAgICAgICAgICAgICAgIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5kb21haW4pLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZTogbmV3IEZvcm1Db250cm9sKHRoaXMuc2VydmljZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVudGl0eSksXG4gICAgICAgICAgICAgICAgICAgICAgICB0b0RlbGV0ZTogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHt9LCBkaXNhYmxlZDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB0b0luc2VydDogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHt9LCBkaXNhYmxlZDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVCbG9iVG9GaWxlVXBsb2FkKGZpZWxkOiBGb3JtRmllbGQpIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0SWQgPSB0aGlzLnZhbHVlW2ZpZWxkLm5hbWVdID8gdGhpcy52YWx1ZVtmaWVsZC5uYW1lXSA6IHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS52YWx1ZTtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBvYmplY3RJZC5zdWJzdHJpbmcob2JqZWN0SWQubGFzdEluZGV4T2YoXCIvXCIpICsgMSk7XG4gICAgICAgIGNvbnN0IGZpbGU6IFBhcnRpYWw8RmlsZUR0bz4gPSB7IG5hbWU6IGZpbGVOYW1lLCBvYmplY3RJZCwgc2F2ZWRGaWxlOiB0cnVlIH07XG4gICAgICAgIGZpZWxkLmZpbGVzID0gW2ZpbGUgYXMgRmlsZUR0b107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkb3dubG9hZEZpbGUoZXZlbnQ6IHsgaW5kZXg6IG51bWJlcjsgYW5jaG9yOiBFbGVtZW50UmVmIH0sIGZpZWxkOiBGb3JtRmllbGQpIHtcbiAgICAgICAgY29uc3QgeyBpbmRleCwgYW5jaG9yIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgY3VycmVudEZpbGUgPSBmaWVsZC5maWxlc1tpbmRleF07XG4gICAgICAgIGlmIChjdXJyZW50RmlsZS5vYmplY3RVUkwpIHtcbiAgICAgICAgICAgIGFuY2hvci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAucmVxdWVzdEFjY2VzcyhjdXJyZW50RmlsZS5vYmplY3RJZCwgdGhpcy5yZXF1ZXN0QWNjZXNzRW5kcG9pbnQpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVc3Vic2NyaWJlKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiB7IGZpbGVOYW1lOiBzdHJpbmc7IHVyaTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmaWxlTmFtZSwgdXJpIH0gPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRGaWxlKHVyaSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVXN1YnNjcmliZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChibG9iOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWxlID0gPEZpbGVEdG8+bmV3IEZpbGUoW2Jsb2JdLCBmaWxlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3RmlsZS5vYmplY3RVUkwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHVyaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCB1cmkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0ZpbGUub2JqZWN0SWQgPSBjdXJyZW50RmlsZS5vYmplY3RJZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdGaWxlLnNhdmVkRmlsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuZmlsZXNbaW5kZXhdID0gbmV3RmlsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5maWxlcyA9IFsuLi5maWVsZC5maWxlc107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGxvYWRGaWxlKGV2ZW50OiB7IGZpbGVzOiBGaWxlRHRvW10gfSwgZm9ybUZpZWxkOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWxlcyB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgocmVjb3JkOiBGb3JtRmllbGQpID0+IHJlY29yZC5uYW1lID09PSBmb3JtRmllbGQubmFtZSk7XG5cbiAgICAgICAgLy8gU2Ugb2NvcnJlciB1bSB1cGxvYWQsIGrDoSBleGlzdGluZG8gdW0gYXJxdWl2byBjb20gdXBsb2FkIGZlaXRvLiDDiSBuZWNlc3PDoXJpbyBleGNsdWlyIG8gbWVzbW8uXG4gICAgICAgIGlmIChmaWVsZC5maWxlcyAmJiBmaWVsZC5maWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRmlsZSh7IGZpbGU6IGZpZWxkLmZpbGVzWzBdIH0sIGZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgICBmaWVsZC5maWxlcyA9IGZpbGVzO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1tpXTtcbiAgICAgICAgICAgIGlmICghZmlsZS5zYXZlZEZpbGUgJiYgIWZpbGUucHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICBmaWxlLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSkuc2V0VmFsaWRhdG9ycyhpc1VwbG9hZGluZyhmaWxlKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLmdldEZpbGVMb2NhdGlvblVybChcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2U6IHRoaXMuc2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlOYW1lOiB0aGlzLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogZmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUxvY2F0aW9uRW5kcG9pbnRcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVXN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih0aGlzLmRlZmFsdENhdGNoRXJyb3IoZmllbGQsIGVyciwgaSkpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBsb2NhdGlvbiwgdmVyc2lvbiwgb2JqZWN0SWQgfSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5vYmplY3RJZCA9IG9iamVjdElkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZVtcInVwbG9hZFN1YnNjcmliZVwiXSA9IHRoaXMuY3VzdG9tRmllbGRzU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC51cGxvYWRUZW1wRmlsZShsb2NhdGlvbiwgZmlsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YodGhpcy5kZWZhbHRDYXRjaEVycm9yKGZpZWxkLCBlcnIsIGkpKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHR5cGUgfSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXBsb2FkQ2FuY2VsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSBNYXRoLnJvdW5kKHJlc3BvbnNlLmxvYWRlZCAvIHJlc3BvbnNlLnRvdGFsKSAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLm9iamVjdFVSTCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHsgb2JqZWN0SWQsIG5hbWU6IGZpbGUubmFtZSwgdmVyc2lvbjogZmlsZS52ZXJzaW9uIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9JbnNlcnQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJmaWVsZEN1c3RvbWl6YXRpb25cIikudmFsdWVbMF0udG9JbnNlcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiZmllbGRDdXN0b21pemF0aW9uXCIpLnZhbHVlWzBdLnRvSW5zZXJ0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50b0luc2VydCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkLm5hbWVdOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS5zZXRWYWx1ZShgJHtmaWxlLm9iamVjdElkfS8ke2ZpbGUubmFtZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSkuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5maWxlcyA9IFtmaWxlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVwbG9hZENhbmNlbGVkICYmIHR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHRoaXMudXBsb2FkQ2FuY2VsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZpbGVzID0gW2ZpbGVdO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRmlsZShldmVudDogeyBmaWxlOiBGaWxlRHRvIH0sIGZvcm1GaWVsZDogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsZSB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgocmVjb3JkOiBGb3JtRmllbGQpID0+IHJlY29yZC5uYW1lID09PSBmb3JtRmllbGQubmFtZSk7XG4gICAgICAgIGZpZWxkLmZpbGVzID0gW107XG4gICAgICAgIGlmIChmaWxlLm9iamVjdElkKSB7XG4gICAgICAgICAgICAvLyBRdWFuZG8gw6kgdW0gYXJxdWl2byBqw6Egc2Fsdm8gbyBvYmplY3RJZCBqw6Egw6kgbm8gZm9ybWF0byBcIm9iamVjdElkL25hbWVcIlxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWxlLnNhdmVkRmlsZSA/IGAke2ZpbGUub2JqZWN0SWR9YCA6IGAke2ZpbGUub2JqZWN0SWR9LyR7ZmlsZS5uYW1lfWA7XG4gICAgICAgICAgICBjb25zdCB0b0RlbGV0ZSA9IHRoaXMuZm9ybUdyb3VwLmdldChcImZpZWxkQ3VzdG9taXphdGlvblwiKS52YWx1ZVswXS50b0RlbGV0ZTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJmaWVsZEN1c3RvbWl6YXRpb25cIikudmFsdWVbMF0udG9JbnNlcnRbZmllbGQubmFtZV07XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJmaWVsZEN1c3RvbWl6YXRpb25cIikudmFsdWVbMF0udG9EZWxldGUgPSB7XG4gICAgICAgICAgICAgICAgLi4udG9EZWxldGUsXG4gICAgICAgICAgICAgICAgW2ZpZWxkLm5hbWVdOiBbLi4uKHRvRGVsZXRlW2ZpZWxkLm5hbWVdIHx8IFtdKSwgdmFsdWVdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLnNldFZhbHVlKFwiXCIpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FuY2VsVXBsb2FkKGluZGV4OiBudW1iZXIsIGZvcm1GaWVsZDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkQ2FuY2VsZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmllbGRzLmZpbmQoKHJlY29yZDogRm9ybUZpZWxkKSA9PiByZWNvcmQubmFtZSA9PT0gZm9ybUZpZWxkLm5hbWUpO1xuICAgICAgICBmaWVsZC5maWxlc1tpbmRleF1bXCJ1cGxvYWRTdWJzY3JpYmVcIl0udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgZmllbGQuZmlsZXMgPSBbXTtcbiAgICAgICAgZGVsZXRlIHRoaXMuZm9ybUdyb3VwLmdldChcImZpZWxkQ3VzdG9taXphdGlvblwiKS52YWx1ZVswXS50b0luc2VydFtmaWVsZC5uYW1lXTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSkuc2V0VmFsdWUoXCJcIik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZhbHRDYXRjaEVycm9yKGZpZWxkOiBGb3JtRmllbGQsIGVycjogSHR0cEVycm9yUmVzcG9uc2UsIGluZGV4OiBudW1iZXIpOiBPYnNlcnZhYmxlPG5ldmVyPiB7XG4gICAgICAgIGNvbnN0IHsgZmlsZXMgfSA9IGZpZWxkO1xuICAgICAgICBmaWxlc1tpbmRleF0uZXJyb3IgPSBlcnI7XG4gICAgICAgIGZpbGVzW2luZGV4XS5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBmaWVsZC5maWxlcyA9IFsuLi5maWxlc107XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS5zZXRWYWxpZGF0b3JzKFtlcnJvck9uVXBsb2FkKGZpbGVzW2luZGV4XSldKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IEVycm9yKFwiZXJyb3IgaW4gdXBsb2FkIGZpbGUuIERldGFpbHM6IFwiICsgZXJyLm1lc3NhZ2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRyYW5zbGF0ZUxhYmVsKGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYCR7dGhpcy5kb21haW59LiR7dGhpcy5zZXJ2aWNlfS4ke2xhYmVsfWApO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaXNVcGxvYWRpbmcoZmlsZTogRmlsZUR0byk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKCkgPT4gKGZpbGUuaXNVcGxvYWRpbmcgPyB7IGlzVXBsb2FkaW5nOiB0cnVlIH0gOiBudWxsKTtcbn1cblxuZnVuY3Rpb24gZXJyb3JPblVwbG9hZChmaWxlOiBGaWxlRHRvKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoKSA9PiAoZmlsZS5lcnJvciA/IHsgdXBsb2FkRXJyb3I6IHRydWUgfSA6IG51bGwpO1xufVxuIl19
|
|
628
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jdXN0b20tZmllbGRzL2N1c3RvbS1maWVsZHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUErQyxRQUFRLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUFFLGFBQWEsRUFDeEIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxFQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQStCLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxJQUFLLGVBY0o7QUFkRCxXQUFLLGVBQWU7SUFDaEIsb0NBQWlCLENBQUE7SUFDakIsc0NBQW1CLENBQUE7SUFDbkIsc0NBQW1CLENBQUE7SUFDbkIsb0NBQWlCLENBQUE7SUFDakIsZ0NBQWEsQ0FBQTtJQUNiLHdDQUFxQixDQUFBO0lBQ3JCLGtEQUErQixDQUFBO0lBQy9CLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2YsZ0NBQWEsQ0FBQTtJQUNiLG9DQUFpQixDQUFBO0lBQ2pCLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0FBQ2pCLENBQUMsRUFkSSxlQUFlLEtBQWYsZUFBZSxRQWNuQjtBQUVELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLHlFQUF5RTtBQWtCakc7SUFzQ0ksK0JBQ1ksbUJBQXdDLEVBQ3hDLGFBQTRCLEVBQzVCLFNBQXVCLEVBQ3ZCLGdCQUFrQyxFQUN0QixnQkFBa0M7UUFKOUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQS9CbkQseUJBQW9CLEdBQUcsZ0RBQWdELENBQUM7UUFFeEUseUJBQW9CLEdBQUcsb0RBQW9ELENBQUM7UUFFNUUsMEJBQXFCLEdBQUcsb0RBQW9ELENBQUM7UUFNN0UsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBS3BDLFdBQU0sR0FBZ0IsRUFBRSxDQUFDO1FBRXhCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFJZCxpQkFBWSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBWXBELENBQUM7OEJBN0NRLHFCQUFxQjtJQStDOUIsc0JBQUksNkNBQVU7YUFBZDtZQUNJLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQW9CLENBQUM7UUFDdEQsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxnREFBYTthQUFqQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFnQixDQUFDO1FBQ3hELENBQUM7OztPQUFBO0lBRU0sd0NBQVEsR0FBZjtRQUFBLGlCQThFQztRQTdFRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUVuRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN2RSxRQUFRLENBQUMsV0FBVyxDQUFDO2FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsQ0FBQzs7WUFDekMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoQyxNQUFBLEtBQUksQ0FBQyxhQUFhLDBDQUFFLGNBQWMsR0FBRztZQUVyQyxJQUFJLEtBQUksQ0FBQyxNQUFNO2dCQUNYLEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO2FBQ0YsU0FBUyxDQUFDLFVBQUMsUUFBZTtZQUNqQixJQUFBLHdCQUFnRCxFQUEvQyw0QkFBb0IsRUFBRSxxQkFBeUIsQ0FBQztZQUN2RCxJQUFNLFFBQVEsR0FBUSxFQUFFLENBQUM7WUFDekIsUUFBUSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdEMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUM1RCxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3hDLFFBQVEsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzdDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRW5DLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU87Z0JBQUUsT0FBTztZQUM3RCxJQUFBLGlDQUFpRCxFQUEvQyxrQkFBTSxFQUFFLGtCQUF1QyxDQUFDO1lBQ3hELElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFFcEIsTUFBTTtpQkFDRCxNQUFNLENBQUMsVUFBQyxLQUFVLElBQUssT0FBQSxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQXZFLENBQXVFLENBQUM7aUJBQy9GLE9BQU8sQ0FBQyxVQUFDLEtBQVU7O2dCQUNoQixJQUFNLFNBQVMsR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDMUQsSUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFFN0IsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxJQUFJLElBQUksS0FBSSxDQUFDLEtBQUssSUFBSSxLQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7b0JBQy9FLEtBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFbkMsSUFBQSxxREFBZSxDQUF5QjtnQkFFaEQsSUFBTSxTQUFTLEdBQUc7b0JBQ2QsZUFBZSxDQUFDLE9BQU87b0JBQ3ZCLGVBQWUsQ0FBQyxLQUFLO29CQUNyQixlQUFlLENBQUMsSUFBSTtvQkFDcEIsZUFBZSxDQUFDLFFBQVE7b0JBQ3hCLGVBQWUsQ0FBQyxhQUFhO29CQUM3QixlQUFlLENBQUMsSUFBSTtpQkFDdkIsQ0FBQztnQkFFRixJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksZUFBZSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7b0JBQ2pELFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLFNBQVMsS0FBSyxlQUFlLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUk7b0JBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBRTlHLFVBQUksU0FBUyxDQUFDLFFBQVEsK0NBQWxCLFNBQVMsR0FBZTtvQkFDeEIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3hDO2dCQUVELElBQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUMzQixFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUM5RSxVQUFVLENBQ2IsQ0FBQztnQkFFRixLQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNuRCxLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztZQUVQLEtBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxLQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakUsS0FBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sK0NBQWUsR0FBdEI7UUFDSSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCwyQ0FBVyxHQUFYLFVBQVksT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2xFO0lBQ0wsQ0FBQztJQUVNLDJDQUFXLEdBQWxCO1FBQ0ksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxnREFBZ0IsR0FBdkIsVUFBd0IsRUFBWTtRQUFwQyxpQkFHQztRQUZHLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLFFBQVEsQ0FBQyxLQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxFQUF2QyxDQUF1QyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVNLGlEQUFpQixHQUF4QixVQUF5QixFQUFZO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSwwQ0FBVSxHQUFqQixVQUFrQixLQUFVO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztZQUN0QixJQUFJLENBQUMsbUNBQW1DLEVBQUUsQ0FBQztTQUM5QzthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUVNLGdEQUFnQixHQUF2QixVQUF3QixVQUFtQjtRQUN2QyxJQUFJLFVBQVU7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDOztZQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSwrQ0FBZSxHQUF0QjtRQUNJLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUNoRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEM7UUFDRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkgsQ0FBQztJQUVNLHdDQUFRLEdBQWY7UUFBQSxpQkFPQztRQU5HLElBQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsS0FBSztZQUN0QyxJQUFBLGlEQUFxQixDQUErQjtZQUM1RCxJQUFJLGFBQWE7Z0JBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxxREFBcUIsR0FBN0IsVUFBOEIsUUFBaUI7O1FBQzNDLElBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLE9BQU87U0FDVjs7WUFFRCxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7Z0JBQXhELElBQU0sV0FBVyxXQUFBO2dCQUNsQixRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNsRzs7Ozs7Ozs7O0lBQ0wsQ0FBQztJQUVNLDJDQUFXLEdBQWxCO1FBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR08sb0RBQW9CLEdBQTVCLFVBQTZCLE1BQVc7UUFDcEMsSUFBTSxZQUFZLGdCQUFRLE1BQU0sQ0FBRSxDQUFDO1FBRW5DLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUEsS0FBSztZQUNiLElBQUEsaUJBQUksRUFBRSxpQkFBSSxDQUFXO1lBQzdCLElBQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFckM7Ozs7ZUFJRztZQUNILElBQUksSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUU7Z0JBQzVCLElBQU0sUUFBUSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztnQkFDM0MsSUFBTSxRQUFRLEdBQUcsQ0FBQyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDO2dCQUN6RCxJQUFJLFFBQVEsRUFBRTtvQkFDVixZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUM3QjtxQkFBTTtvQkFDSCxtRUFBbUU7b0JBQ25FLElBQUksUUFBUSxFQUFFO3dCQUNWLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztxQkFDeEQ7eUJBQU07d0JBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztxQkFDOUI7aUJBQ0o7YUFDSjtZQUVELElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU87WUFFbkIsUUFBUSxJQUFJLEVBQUU7Z0JBQ1YsS0FBSyxTQUFTLENBQUMsSUFBSTtvQkFDZixZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM1QyxNQUFNO2dCQUNWLEtBQUssU0FBUyxDQUFDLFFBQVE7b0JBQ25CLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzVDLE1BQU07Z0JBQ1YsS0FBSyxTQUFTLENBQUMsYUFBYTtvQkFDeEIsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDekUsTUFBTTtnQkFDVixLQUFLLFNBQVMsQ0FBQyxJQUFJO29CQUNmLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN4RCxNQUFNO2FBQ2I7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssbUVBQW1DLEdBQTNDO1FBQUEsaUJBTUM7UUFMRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFDLEtBQWdCLElBQUssT0FBQSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQTdCLENBQTZCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxLQUFLO2dCQUNqRixJQUFJLEtBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLO29CQUFFLEtBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVPLGlEQUFpQixHQUF6QjtRQUFBLGlCQW9DQztRQW5DRyxJQUFNLFlBQVksR0FBUSxFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBQSxLQUFLO1lBQ2IsSUFBQSxpQkFBSSxFQUFFLGlCQUFJLEVBQUUsaUJBQUksRUFBRSxtQkFBSyxDQUFXO1lBQzFDLElBQUksS0FBSyxHQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUUzQyxJQUFJLEtBQUssRUFBRTtnQkFDUCxRQUFRLElBQUksRUFBRTtvQkFDVixLQUFLLFNBQVMsQ0FBQyxNQUFNO3dCQUNqQixJQUFJLElBQUk7NEJBQUUsS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDM0UsTUFBTTtvQkFDVixLQUFLLFNBQVMsQ0FBQyxJQUFJO3dCQUNmLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUMzQyxNQUFNO29CQUNWLEtBQUssU0FBUyxDQUFDLFFBQVE7d0JBQ25CLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQy9CLE1BQU07b0JBQ1YsS0FBSyxTQUFTLENBQUMsYUFBYTt3QkFDeEIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQzt3QkFDMUQsTUFBTTtvQkFDVixLQUFLLFNBQVMsQ0FBQyxJQUFJO3dCQUNmLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN6QyxNQUFNO2lCQUNiO2FBQ0o7WUFFRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQzlCO2lCQUFNLElBQUksS0FBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0QyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDbkQ7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxZQUFZLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN0RyxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRU8sa0RBQWtCLEdBQTFCLFVBQTJCLElBQWU7UUFDdEMsSUFBTSxZQUFZLEdBQUc7WUFDakIsU0FBUyxDQUFDLE1BQU07WUFDaEIsU0FBUyxDQUFDLElBQUk7U0FDakIsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sNENBQVksR0FBcEIsVUFBcUIsS0FBVSxFQUFFLGFBQTRCOztRQUN6RCxJQUFJLFVBQVUsQ0FBQztRQUVmLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtZQUNoQixLQUFLLGVBQWUsQ0FBQyxJQUFJO2dCQUNyQixVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3RDLE1BQU07WUFDVixLQUFLLGVBQWUsQ0FBQyxPQUFPO2dCQUN4QixVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3pDLE1BQU07WUFDVixLQUFLLGFBQWEsQ0FBQztZQUNuQixLQUFLLGVBQWUsQ0FBQyxJQUFJO2dCQUNyQixLQUFLLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQzVCLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU07WUFDVixLQUFLLGVBQWUsQ0FBQyxLQUFLO2dCQUN0QixVQUFVLEdBQUc7b0JBQ1QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO29CQUN0QixTQUFTLEVBQUU7d0JBQ1AsS0FBSyxjQUFFLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxNQUFNLDBDQUFFLGNBQWMsbUNBQUksSUFBSTtxQkFDdkQ7aUJBQ0osQ0FBQztnQkFDRixNQUFNO1lBQ1YsS0FBSyxlQUFlLENBQUMsTUFBTTtnQkFDdkIsVUFBVSxHQUFHO29CQUNULElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtpQkFDekIsQ0FBQztnQkFDRixNQUFNO1lBQ1YsS0FBSyxlQUFlLENBQUMsT0FBTztnQkFDeEIsVUFBVSxHQUFHO29CQUNULElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtvQkFDdEIsS0FBSyxFQUFFLENBQUM7aUJBQ1gsQ0FBQztnQkFDRixNQUFNO1lBQ1Y7Z0JBQ0ksVUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsTUFBTTtTQUNiO1FBRUQsT0FBTyxJQUFJLFNBQVMsWUFDaEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQ2QsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUNoQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQ3BDLFFBQVEsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFDdEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQ2hCLElBQUksRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFDOUIsUUFBUSxFQUFFLGNBQU0sT0FBQSxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBN0IsQ0FBNkIsRUFDN0MsZUFBZSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQ3ZDLGVBQWUsRUFBRSxhQUFhLENBQUMsTUFBTSxJQUNsQyxVQUFVLEVBQ2YsQ0FBQztJQUNQLENBQUM7SUFFTyxpREFBaUIsR0FBekIsVUFBMEIsS0FBVTtRQUNoQyxPQUFPO1lBQ0gsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRO1lBQ3hELE9BQU8sRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFNLElBQUssT0FBQSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFsQyxDQUFrQyxDQUFDO1NBQzVHLENBQUM7SUFDTixDQUFDO0lBRU8sb0RBQW9CLEdBQTVCO1FBQ0ksT0FBTztZQUNILFlBQVksRUFBRTtnQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQztnQkFDMUMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUM7Z0JBQzVDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO2FBQy9DO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxpREFBaUIsR0FBekI7UUFBQSxpQkE2QkM7UUE1QkcsT0FBTztZQUNILElBQUksRUFBRTtnQkFDRixFQUFFLEVBQUUsRUFBRTtnQkFDTixFQUFFLEVBQUUsRUFBRTtnQkFDTixFQUFFLEVBQUUsRUFBRTtnQkFDTixFQUFFLEVBQUUsRUFBRTthQUNUO1lBQ0QsTUFBTSxFQUFFLGdDQUFnQztZQUN4QyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztZQUNuRCxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztZQUNuRCxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztZQUNuRCxjQUFjLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1lBQ3pELFFBQVEsRUFBRSxLQUFLO1lBQ2YsWUFBWSxFQUFFLFVBQUMsS0FBMkIsRUFBRSxTQUFvQjtnQkFDNUQsS0FBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLEtBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7WUFDRCxZQUFZLEVBQUUsVUFBQyxLQUF3QixFQUFFLFNBQW9CO2dCQUN6RCxLQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsY0FBYyxFQUFFLFVBQUMsS0FBYSxFQUFFLFNBQW9CO2dCQUNoRCxLQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsY0FBYyxFQUFFLFVBQUMsS0FBNEMsRUFBRSxTQUFvQjtnQkFDL0UsS0FBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7U0FDOUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSyx3REFBd0IsR0FBaEMsVUFBaUMsTUFBYTtRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQUMsS0FBVSxJQUFLLE9BQUEsS0FBSyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsSUFBSSxFQUFuQyxDQUFtQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzNGLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUNyQixvQkFBb0IsRUFDcEIsSUFBSSxTQUFTLENBQUM7Z0JBQ1YsSUFBSSxTQUFTLENBQUM7b0JBQ1YsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUN0QyxNQUFNLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDcEMsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQ3pELFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO2lCQUM1RCxDQUFDO2FBQ0wsQ0FBQyxDQUNMLENBQUM7U0FDTDtJQUNMLENBQUM7SUFFTyxzREFBc0IsR0FBOUIsVUFBK0IsS0FBZ0I7UUFDM0MsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3hHLElBQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFNLElBQUksR0FBcUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsVUFBQSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM3RSxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBZSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLDRDQUFZLEdBQXBCLFVBQXFCLEtBQTRDLEVBQUUsS0FBZ0I7UUFBbkYsaUJBMEJDO1FBekJXLElBQUEsbUJBQUssRUFBRSxxQkFBTSxDQUFXO1FBQ2hDLElBQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEM7YUFBTTtZQUNILElBQUksQ0FBQyxtQkFBbUI7aUJBQ25CLGFBQWEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztpQkFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ2xDLFNBQVMsQ0FBQyxVQUFDLElBQXVDO2dCQUN2QyxJQUFBLHdCQUFRLEVBQUUsY0FBRyxDQUFVO2dCQUMvQixLQUFJLENBQUMsbUJBQW1CO3FCQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDO3FCQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO3FCQUNsQyxTQUFTLENBQUMsVUFBQyxJQUFTO29CQUNqQixJQUFNLE9BQU8sR0FBWSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUNwRCxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQy9ELE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDL0MsT0FBTyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO29CQUN4QyxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDekIsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQzdCLEtBQUssQ0FBQyxLQUFLLFlBQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMvQixNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNqQyxDQUFDLENBQUMsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7SUFDTCxDQUFDO0lBRU8sMENBQVUsR0FBbEIsVUFBbUIsS0FBMkIsRUFBRSxTQUFjO1FBQTlELGlCQXFFQztRQXBFVyxJQUFBLG1CQUFLLENBQVc7UUFDeEIsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBQyxNQUFpQixJQUFLLE9BQUEsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxFQUE5QixDQUE4QixDQUFDLENBQUM7UUFFdEYsZ0dBQWdHO1FBQ2hHLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNwRDtRQUNELEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dDQUVYLENBQUM7WUFDTixJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBSyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLE9BQUssU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDeEQsT0FBSyxtQkFBbUI7cUJBQ25CLGtCQUFrQixDQUNmO29CQUNJLE1BQU0sRUFBRSxPQUFLLE1BQU07b0JBQ25CLE9BQU8sRUFBRSxPQUFLLE9BQU87b0JBQ3JCLFVBQVUsRUFBRSxPQUFLLE1BQU07b0JBQ3ZCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJO2lCQUN0QixFQUNELE9BQUssb0JBQW9CLENBQzVCO3FCQUNBLElBQUksQ0FDRCxTQUFTLENBQUMsT0FBSyxZQUFZLENBQUMsRUFDNUIsVUFBVSxDQUFDLFVBQUMsR0FBc0IsSUFBSyxPQUFBLEVBQUUsQ0FBQyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUF4QyxDQUF3QyxDQUFDLENBQ25GO3FCQUNBLFNBQVMsQ0FBQyxVQUFDLElBQVM7b0JBQ1QsSUFBQSx3QkFBUSxFQUFFLHNCQUFPLEVBQUUsd0JBQVEsQ0FBVTtvQkFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO29CQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxLQUFJLENBQUMsbUJBQW1CO3lCQUM3QyxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQzt5QkFDOUIsSUFBSSxDQUNELFNBQVMsQ0FBQyxLQUFJLENBQUMsWUFBWSxDQUFDLEVBQzVCLFVBQVUsQ0FBQyxVQUFDLEdBQXNCLElBQUssT0FBQSxFQUFFLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBeEMsQ0FBd0MsQ0FBQyxFQUNoRixRQUFRLENBQUM7d0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7b0JBQzdCLENBQUMsQ0FBQyxDQUNMO3lCQUNBLFNBQVMsQ0FBQyxVQUFDLFFBQWE7O3dCQUNiLElBQUEsb0JBQUksQ0FBYzt3QkFDMUIsSUFBSSxDQUFDLEtBQUksQ0FBQyxjQUFjLEVBQUU7NEJBQ3RCLElBQUksSUFBSSxLQUFLLGFBQWEsQ0FBQyxjQUFjO2dDQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO2lDQUNsRSxJQUFJLElBQUksS0FBSyxhQUFhLENBQUMsUUFBUSxFQUFFO2dDQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dDQUVsRixJQUFNLEtBQUssR0FBRyxFQUFFLFFBQVEsVUFBQSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0NBQ25FLElBQU0sUUFBUSxHQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQ0FDNUUsS0FBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSx5QkFDbkQsUUFBUSxnQkFDVixLQUFLLENBQUMsSUFBSSxJQUFHLEtBQUssTUFDdEIsQ0FBQztnQ0FDRixLQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFJLElBQUksQ0FBQyxRQUFRLFNBQUksSUFBSSxDQUFDLElBQU0sQ0FBQyxDQUFDO2dDQUN6RSxLQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7Z0NBQ2pELEtBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dDQUN4RCxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7NkJBQ3hCO3lCQUNKOzZCQUFNLElBQUksS0FBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLEtBQUssYUFBYSxDQUFDLFFBQVE7NEJBQUUsS0FBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7b0JBQ25HLENBQUMsQ0FBQyxDQUFDO29CQUNQLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsQ0FBQyxDQUFDLENBQUM7YUFDVjs7O1FBekRMLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtvQkFBNUIsQ0FBQztTQTBEVDtJQUNMLENBQUM7SUFFTywwQ0FBVSxHQUFsQixVQUFtQixLQUF3QixFQUFFLFNBQWM7O1FBQy9DLElBQUEsaUJBQUksQ0FBVztRQUN2QixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFDLE1BQWlCLElBQUssT0FBQSxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQTlCLENBQThCLENBQUMsQ0FBQztRQUN0RixLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZiwwRUFBMEU7WUFDMUUsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBRyxJQUFJLENBQUMsUUFBVSxDQUFDLENBQUMsQ0FBSSxJQUFJLENBQUMsUUFBUSxTQUFJLElBQUksQ0FBQyxJQUFNLENBQUM7WUFDcEYsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQzVFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLHlCQUNuRCxRQUFRLGdCQUNWLEtBQUssQ0FBQyxJQUFJLGFBQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFFLEtBQUssUUFDeEQsQ0FBQztTQUNMO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVPLDRDQUFZLEdBQXBCLFVBQXFCLEtBQWEsRUFBRSxTQUFjO1FBQzlDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBaUIsSUFBSyxPQUFBLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksRUFBOUIsQ0FBOEIsQ0FBQyxDQUFDO1FBQ3RGLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwRCxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVPLGdEQUFnQixHQUF4QixVQUF5QixLQUFnQixFQUFFLEdBQXNCLEVBQUUsS0FBYTtRQUNwRSxJQUFBLG1CQUFLLENBQVc7UUFDeEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDekIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDakMsS0FBSyxDQUFDLEtBQUssWUFBTyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN4RCxPQUFPLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU8saURBQWlCLEdBQXpCLFVBQTBCLEtBQWE7UUFDbkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFJLElBQUksQ0FBQyxNQUFNLFNBQUksSUFBSSxDQUFDLE9BQU8sU0FBSSxLQUFPLENBQUMsQ0FBQztJQUNwRixDQUFDOzs7Z0JBcGlCZ0MsbUJBQW1CO2dCQUN6QixhQUFhO2dCQUNqQixZQUFZO2dCQUNMLGdCQUFnQjtnQkFDSixnQkFBZ0IsdUJBQXJELFFBQVE7O0lBekNiO1FBREMsS0FBSyxFQUFFO3lEQUNjO0lBRXRCO1FBREMsS0FBSyxFQUFFOzBEQUNlO0lBRXZCO1FBREMsS0FBSyxFQUFFO3lEQUNjO0lBRXRCO1FBREMsS0FBSyxFQUFFO29FQUN5QjtJQUVqQztRQURDLEtBQUssRUFBRTsrREFDaUI7SUFFekI7UUFEQyxLQUFLLEVBQUU7dUVBQ3VFO0lBRS9FO1FBREMsS0FBSyxFQUFFO3VFQUMyRTtJQUVuRjtRQURDLEtBQUssRUFBRTt3RUFDNEU7SUFFcEY7UUFEQyxLQUFLLEVBQUU7dUVBQzRCO0lBRXBDO1FBREMsS0FBSyxFQUFFO3NFQUMyQjtJQUVuQztRQURDLEtBQUssRUFBRTtxRUFDbUM7SUFFM0M7UUFEQyxLQUFLLEVBQUU7eURBQ2dDO0lBRXhDO1FBREMsS0FBSyxFQUFFO2dFQUNzQjtJQTFCckIscUJBQXFCO1FBaEJqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLG9PQUE2QztZQUM3QyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLHVCQUFxQjtvQkFDbEMsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFdBQVcsRUFBRSx1QkFBcUI7b0JBQ2xDLEtBQUssRUFBRSxJQUFJO2lCQUNkO2FBQ0o7U0FDSixDQUFDO1FBNENPLFdBQUEsUUFBUSxFQUFFLENBQUE7T0EzQ04scUJBQXFCLENBNGtCakM7SUFBRCw0QkFBQztDQUFBLEFBNWtCRCxJQTRrQkM7U0E1a0JZLHFCQUFxQjtBQThrQmxDLFNBQVMsV0FBVyxDQUFDLElBQWE7SUFDOUIsT0FBTyxjQUFNLE9BQUEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQWpELENBQWlELENBQUM7QUFDbkUsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLElBQWE7SUFDaEMsT0FBTyxjQUFNLE9BQUEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQTNDLENBQTJDLENBQUM7QUFDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwRXZlbnRUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPcHRpb25hbCwgU2ltcGxlQ2hhbmdlLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gICAgQ29udHJvbENvbnRhaW5lcixcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQXJyYXksXG4gICAgRm9ybUNvbnRyb2wsXG4gICAgRm9ybUdyb3VwLCBOR19WQUxJREFUT1JTLFxuICAgIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIFZhbGlkYXRvcixcbiAgICBWYWxpZGF0b3JGbixcbiAgICBWYWxpZGF0b3JzXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tIFwiYmlnbnVtYmVyLmpzXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZm9ya0pvaW4sIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEZpZWxkVHlwZSwgRm9ybUZpZWxkIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS9pbmRleFwiO1xuaW1wb3J0IHsgRmlsZUR0byB9IGZyb20gXCIuLi9maWxlLXVwbG9hZC9pbmRleFwiO1xuaW1wb3J0IHsgTG9jYWxlT3B0aW9ucyB9IGZyb20gXCIuLi9sb2NhbGVcIjtcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tIFwiLi4vbG9jYWxlL2xvY2FsZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDdXN0b21GaWVsZHNTZXJ2aWNlIH0gZnJvbSBcIi4vY3VzdG9tLWZpZWxkcy5zZXJ2aWNlXCI7XG5cbmVudW0gQ3VzdG9tRmllbGRUeXBlIHtcbiAgICBTdHJpbmcgPSBcIlN0cmluZ1wiLFxuICAgIEJvb2xlYW4gPSBcIkJvb2xlYW5cIixcbiAgICBJbnRlZ2VyID0gXCJJbnRlZ2VyXCIsXG4gICAgRG91YmxlID0gXCJEb3VibGVcIixcbiAgICBEYXRlID0gXCJEYXRlXCIsXG4gICAgRGF0ZVRpbWUgPSBcIkRhdGVUaW1lXCIsXG4gICAgTG9jYWxEYXRlVGltZSA9IFwiTG9jYWxEYXRlVGltZVwiLFxuICAgIFRpbWUgPSBcIlRpbWVcIixcbiAgICBNb25leSA9IFwiTW9uZXlcIixcbiAgICBCbG9iID0gXCJCbG9iXCIsXG4gICAgQmluYXJ5ID0gXCJCaW5hcnlcIixcbiAgICBBbnkgPSBcIkFueVwiLFxuICAgIEVudW0gPSBcIkVudW1cIlxufVxuXG5jb25zdCBtb21lbnQgPSBtb21lbnRfOyAvLyBASEFDSyBOZWNlc3NhcnkgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vcm9sbHVwL3JvbGx1cC9pc3N1ZXMvNjcwXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtY3VzdG9tLWZpZWxkc1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vY3VzdG9tLWZpZWxkcy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBDdXN0b21GaWVsZHNDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBDdXN0b21GaWVsZHNDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21GaWVsZHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkb21haW46IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXJ2aWNlOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW50aXR5OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW52YWxpZEVycm9yTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbnRpdHlPYmplY3Q6IGFueTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXN0b21GaWVsZHNFbmRwb2ludCA9IFwicGxhdGZvcm0vZmllbGRfY3VzdG9taXphdGlvbi9xdWVyaWVzL2dldEVudGl0eVwiO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbGVMb2NhdGlvbkVuZHBvaW50ID0gXCJwbGF0Zm9ybS9maWVsZF9jdXN0b21pemF0aW9uL2FjdGlvbnMvcmVxdWVzdFVwbG9hZFwiO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlcXVlc3RBY2Nlc3NFbmRwb2ludCA9IFwicGxhdGZvcm0vZmllbGRfY3VzdG9taXphdGlvbi9hY3Rpb25zL3JlcXVlc3RBY2Nlc3NcIjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXF1aXJlZEVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc3BsYXlUaW1lSW5mb1NpZ246IG51bWJlcjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93RmlsZVVwbG9hZERhdGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZWFkeSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlRmllbGRzOiBib29sZWFuO1xuICAgIHB1YmxpYyBmaWVsZHM6IEZvcm1GaWVsZFtdID0gW107XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHByaXZhdGUgcmVhZHkgPSBmYWxzZTtcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiBhbnk7XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6IGFueTtcbiAgICBwcml2YXRlIHZhbHVlOiBhbnk7XG4gICAgcHJpdmF0ZSBuZ1VzdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgdXBsb2FkQ2FuY2VsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBoYXNCbG9iOiBib29sZWFuO1xuICAgIHByaXZhdGUgaGFzVXBsb2FkZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjdXN0b21GaWVsZHNTZXJ2aWNlOiBDdXN0b21GaWVsZHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyXG4gICAgKSB7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudEZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbENvbnRhaW5lci5jb250cm9sIGFzIEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50Q29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudEZvcm0uZ2V0KFwiY3VzdG9tXCIpIGFzIEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvbWFpbikgdGhyb3cgbmV3IEVycm9yKFwiWW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgY3VzdG9tLWZpZWxkcyBkb21haW4hXCIpO1xuICAgICAgICBpZiAoIXRoaXMuc2VydmljZSkgdGhyb3cgbmV3IEVycm9yKFwiWW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgY3VzdG9tLWZpZWxkcyBzZXJ2aWNlIVwiKTtcbiAgICAgICAgaWYgKCF0aGlzLmVudGl0eSkgdGhyb3cgbmV3IEVycm9yKFwiWW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgY3VzdG9tLWZpZWxkcyBlbnRpdHkhXCIpO1xuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgIGNvbnN0IG9ic2VydmFibGVzID0gW3RoaXMuZ2V0Q3VzdG9tRmllbGRzKCksIHRoaXMubG9jYWxlU2VydmljZS5nZXQoKV07XG4gICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVc3Vic2NyaWJlKSwgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sPy5tYXJrQXNQcmlzdGluZSgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVhZHkkKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWR5JC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55W10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbY3VzdG9tRmllbGRzUmVzcG9uc2UsIGxvY2FsZU9wdGlvbnNdID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdHM6IGFueSA9IHt9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW0N1c3RvbUZpZWxkVHlwZS5TdHJpbmddID0ge307XG4gICAgICAgICAgICAgICAgZGVmYXVsdHNbQ3VzdG9tRmllbGRUeXBlLkJvb2xlYW5dID0geyBkZWZhdWx0VmFsdWU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgZGVmYXVsdHNbQ3VzdG9tRmllbGRUeXBlLkludGVnZXJdID0ge307XG4gICAgICAgICAgICAgICAgZGVmYXVsdHNbQ3VzdG9tRmllbGRUeXBlLkRvdWJsZV0gPSB7IGRlZmF1bHRNYXNrOiBcIlwiIH07XG4gICAgICAgICAgICAgICAgZGVmYXVsdHNbQ3VzdG9tRmllbGRUeXBlLk1vbmV5XSA9IHt9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW0N1c3RvbUZpZWxkVHlwZS5EYXRlXSA9IHt9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW0N1c3RvbUZpZWxkVHlwZS5EYXRlVGltZV0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuTG9jYWxEYXRlVGltZV0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuVGltZV0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuQmxvYl0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuRW51bV0gPSB7fTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1tDdXN0b21GaWVsZFR5cGUuQmluYXJ5XSA9IHt9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW0N1c3RvbUZpZWxkVHlwZS5BbnldID0ge307XG5cbiAgICAgICAgICAgICAgICBpZiAoIWN1c3RvbUZpZWxkc1Jlc3BvbnNlIHx8ICFjdXN0b21GaWVsZHNSZXNwb25zZS5lbnRpdHlfKSByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3QgeyBhY3RpdmUsIGZpZWxkcyB9ID0gY3VzdG9tRmllbGRzUmVzcG9uc2UuZW50aXR5XztcbiAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgZmllbGRzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkOiBhbnkpID0+IGZpZWxkLmN1c3RvbWl6YWJsZSAmJiBmaWVsZC5jdXN0b21pemF0aW9uICYmIGZpZWxkLmN1c3RvbWl6YXRpb24uYWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5nZXRGb3JtRmllbGQoZmllbGQsIGxvY2FsZU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRUeXBlID0gZmllbGQudHlwZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEN1c3RvbUZpZWxkVHlwZS5CbG9iICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZVtmb3JtRmllbGQubmFtZV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVCbG9iVG9GaWxlVXBsb2FkKGZvcm1GaWVsZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgdmFsaWRhdGlvblJlZ2V4IH0gPSBmaWVsZC5jdXN0b21pemF0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhc0lzVHlwZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmllbGRUeXBlLkJvb2xlYW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmllbGRUeXBlLk1vbmV5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZpZWxkVHlwZS5EYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbUZpZWxkVHlwZS5EYXRlVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21GaWVsZFR5cGUuTG9jYWxEYXRlVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21GaWVsZFR5cGUuVGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRpb25SZWdleCAmJiAhYXNJc1R5cGVzLmluY2x1ZGVzKGZpZWxkVHlwZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih2YWxpZGF0aW9uUmVnZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZFR5cGUgPT09IEN1c3RvbUZpZWxkVHlwZS5JbnRlZ2VyICYmICFmb3JtRmllbGQubWFzaykgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybigvXlxcLT9cXGQqJC8pKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1GaWVsZC5yZXF1aXJlZD8uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogZGVmYXVsdHNbZmllbGRUeXBlXS5kZWZhdWx0VmFsdWUsIGRpc2FibGVkOiB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woZm9ybUZpZWxkLm5hbWUsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZHMucHVzaChmb3JtRmllbGQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlRmllbGRDdXN0b21pemF0aW9uKGZpZWxkcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLnBhcnNlVmFsdWVzRm9yRmllbGRzKHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW5hYmxlT3JEaXNhYmxlRmllbGRzKHRoaXMuZGlzYWJsZUZpZWxkcyk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5kaXNhYmxlRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZU9yRGlzYWJsZUZpZWxkcyhjaGFuZ2VzLmRpc2FibGVGaWVsZHMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1VzdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVXN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnBhcnNlRmllbGRzVmFsdWVzKCkpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5yZWFkeSkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnBhcnNlVmFsdWVzRm9yRmllbGRzKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVGaWxlc0lmU2V0Rm9ybVZhbHVlc0FmdGVySW5pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh2YWx1ZSB8fCB7fSk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgZWxzZSB0aGlzLmZvcm1Hcm91cC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXN0b21GaWVsZHMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuZW50aXR5T2JqZWN0ICYmIHRoaXMuZW50aXR5T2JqZWN0LmVudGl0eV8pIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmVudGl0eU9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tRmllbGRzU2VydmljZS5nZXRDdXN0b21GaWVsZHModGhpcy5kb21haW4sIHRoaXMuc2VydmljZSwgdGhpcy5lbnRpdHksIHRoaXMuY3VzdG9tRmllbGRzRW5kcG9pbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgZXJyb3JzOiBhbnkgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBlcnJvcnM6IGNvbnRyb2xFcnJvcnMgfSA9IHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICAgICAgICBpZiAoY29udHJvbEVycm9ycykgZXJyb3JzW2ZpZWxkXSA9IGNvbnRyb2xFcnJvcnM7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5hYmxlT3JEaXNhYmxlRmllbGRzKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmKCF0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yKGNvbnN0IGNvbnRyb2xOYW1lIG9mIE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLnZhbHVlKSkge1xuICAgICAgICAgICBkaXNhYmxlZCA/IHRoaXMuZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSkuZGlzYWJsZSgpIDogdGhpcy5mb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lKS5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhbkZpZWxkcygpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgcGFyc2VWYWx1ZXNGb3JGaWVsZHModmFsdWVzOiBhbnkpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVmFsdWVzID0geyAuLi52YWx1ZXMgfTtcblxuICAgICAgICB0aGlzLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgdHlwZSwgbmFtZSB9ID0gZmllbGQ7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlcyAmJiB2YWx1ZXNbbmFtZV07XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVHJhdGFtZW50byBleGNsdXNpdm8gcGFyYSBjYW1wb3MgYm9vbGVhbiBxdWUgdGVtIG8gc3RhdHVzIEVtcHR5XG4gICAgICAgICAgICAgKiBFc3NhIGNvbmRpY2lvbmFsIG5lY2Vzc2l0YSBlc3RhciBhbnRlcyBkbyBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICAgICAgICAgKiBQb2lzIGVsYSB0ZW0gdW0gc3RhdHVzIHF1ZSB1c2EgbnVsbCBubyB2YWxvciBkbyBjYW1wbyByYWRpbyBib29sZWFuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0eXBlID09PSBGaWVsZFR5cGUuQm9vbGVhbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU3RyaW5nID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vdFZhbGlkID0gIWlzU3RyaW5nICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJib29sZWFuXCI7XG4gICAgICAgICAgICAgICAgaWYgKG5vdFZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlc1tuYW1lXSA9IG51bGw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29uZGljaW9uYWwgcGFyYSBjYW1wb3MgcXVlIHJldG9ybmFtIHN0cmluZyBkZSBib29sZW4gZG8gYmFja2FuZFxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlc1tuYW1lXSA9IHZhbHVlID09PSBcInRydWVcIiA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlc1tuYW1lXSA9IG1vbWVudCh2YWx1ZSkudG9EYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZXNbbmFtZV0gPSBtb21lbnQodmFsdWUpLnRvRGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5Mb2NhbERhdGVUaW1lOlxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZXNbbmFtZV0gPSBtb21lbnQodmFsdWUsIFwiWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1wiKS50b0RhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuVGltZTpcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWVzW25hbWVdID0gbW9tZW50KHZhbHVlLCBcIkhIOm1tOnNzXCIpLnRvRGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlZFZhbHVlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbGd1bWFzIGVxdWlwZXMgc8OzIHNldGFtIHZhbG9yIG5vIGZvcm11bMOhcmlvLCBhcMOzcyBvIGNhcnJlZ2FtZW50byBkYSB0ZWxhXG4gICAgICogQ29tbyDDqSBiZW0gcGFkcsOjbyBpc3NvLCBmb2kgbmVjZXNzw6FyaW8gY3JpYXIgZXNzZSBtw6l0b2RvIHBhcmEgZ2VyYXIgbyBmaWxlXG4gICAgICogYXDDs3Mgc2V0YXIgbyB2YWxvciBubyBmb3JtdWzDoXJpb1xuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlRmlsZXNJZlNldEZvcm1WYWx1ZXNBZnRlckluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5oYXNVcGxvYWRlZCkge1xuICAgICAgICAgICAgdGhpcy5maWVsZHMuZmlsdGVyKChmaWVsZDogRm9ybUZpZWxkKSA9PiBmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuQmxvYikuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS52YWx1ZSkgdGhpcy5jcmVhdGVCbG9iVG9GaWxlVXBsb2FkKGZpZWxkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZUZpZWxkc1ZhbHVlcygpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVmFsdWVzOiBhbnkgPSB7fTtcblxuICAgICAgICB0aGlzLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgdHlwZSwgbmFtZSwgbWFzaywgc2NhbGUgfSA9IGZpZWxkO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KG5hbWUpLnZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuTnVtYmVyOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2spIHZhbHVlID0gbmV3IEJpZ051bWJlcih2YWx1ZSkudG9GaXhlZChzY2FsZSBhcyBudW1iZXIpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuRGF0ZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbW9tZW50KHZhbHVlKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBtb21lbnQodmFsdWUpLmZvcm1hdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkxvY2FsRGF0ZVRpbWU6XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG1vbWVudCh2YWx1ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBtb21lbnQodmFsdWUpLmZvcm1hdChcIkhIOm1tOnNzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgIU51bWJlci5pc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1R5cGVOdW1iZXJPckVudW0odHlwZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZXNbbmFtZV0gPSBmaWVsZC5tdWx0aXBsZSA/IFtdIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzQmxvYikgcGFyc2VkVmFsdWVzW1wiZmllbGRDdXN0b21pemF0aW9uXCJdID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiZmllbGRDdXN0b21pemF0aW9uXCIpLnZhbHVlO1xuICAgICAgICByZXR1cm4gcGFyc2VkVmFsdWVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUeXBlTnVtYmVyT3JFbnVtKHR5cGU6IEZpZWxkVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBudW1iZXJPckVudW0gPSBbXG4gICAgICAgICAgICBGaWVsZFR5cGUuTnVtYmVyLFxuICAgICAgICAgICAgRmllbGRUeXBlLkVudW1cbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIG51bWJlck9yRW51bS5pbmNsdWRlcyh0eXBlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1GaWVsZChmaWVsZDogYW55LCBsb2NhbGVPcHRpb25zOiBMb2NhbGVPcHRpb25zKTogRm9ybUZpZWxkIHtcbiAgICAgICAgbGV0IHBhcmFtZXRlcnM7XG5cbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEN1c3RvbUZpZWxkVHlwZS5CbG9iOlxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB0aGlzLmdldEJsb2JQYXJhbWV0ZXJzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEN1c3RvbUZpZWxkVHlwZS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB0aGlzLmdldEJvb2xlYW5QYXJhbWV0ZXJzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiRW51bWVyYXRpb25cIjpcbiAgICAgICAgICAgIGNhc2UgQ3VzdG9tRmllbGRUeXBlLkVudW06XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9IEZpZWxkVHlwZS5FbnVtO1xuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB0aGlzLmdldEVudW1QYXJhbWV0ZXJzKGZpZWxkKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ3VzdG9tRmllbGRUeXBlLk1vbmV5OlxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5OdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIGxlZnRBZGRvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxvY2FsZU9wdGlvbnM/Lm51bWJlcj8uY3VycmVuY3lTeW1ib2wgPz8gXCJSJFwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEN1c3RvbUZpZWxkVHlwZS5Eb3VibGU6XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLk51bWJlclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEN1c3RvbUZpZWxkVHlwZS5JbnRlZ2VyOlxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5OdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIHNjYWxlOiAwXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVycyA9IHt9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgbmFtZTogZmllbGQuaWQsXG4gICAgICAgICAgICBsYWJlbDogZmllbGQuY3VzdG9taXphdGlvbi5sYWJlbCxcbiAgICAgICAgICAgIHRvb2x0aXA6IGZpZWxkLmN1c3RvbWl6YXRpb24udG9vbHRpcCxcbiAgICAgICAgICAgIGluZm9TaWduOiBmaWVsZC5jdXN0b21pemF0aW9uLmluZm9TaWduLFxuICAgICAgICAgICAgdHlwZTogZmllbGQudHlwZSxcbiAgICAgICAgICAgIG1hc2s6IGZpZWxkLmN1c3RvbWl6YXRpb24ubWFzayxcbiAgICAgICAgICAgIHJlcXVpcmVkOiAoKSA9PiBmaWVsZC5jdXN0b21pemF0aW9uLm1hbmRhdG9yeSxcbiAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9uczogbG9jYWxlT3B0aW9ucy5jYWxlbmRhcixcbiAgICAgICAgICAgIGN1cnJlbmN5T3B0aW9uczogbG9jYWxlT3B0aW9ucy5udW1iZXIsXG4gICAgICAgICAgICAuLi5wYXJhbWV0ZXJzLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVudW1QYXJhbWV0ZXJzKGZpZWxkOiBhbnkpOiBvYmplY3Qge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hvd0NsZWFyOiB0cnVlLFxuICAgICAgICAgICAgbXVsdGlwbGU6IGZpZWxkLmN1c3RvbWl6YXRpb24uY3VzdG9tRW51bWVyYXRpb24ubXVsdGlwbGUsXG4gICAgICAgICAgICBvcHRpb25zOiBmaWVsZC5jdXN0b21pemF0aW9uLmN1c3RvbUVudW1lcmF0aW9uLnZhbHVlcy5tYXAoKGU6IGFueSkgPT4gKHsgbGFiZWw6IGUudmFsdWUsIHZhbHVlOiBlLmtleSB9KSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCb29sZWFuUGFyYW1ldGVycygpOiBvYmplY3Qge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgb3B0aW9uc0xhYmVsOiB7XG4gICAgICAgICAgICAgICAgdHJ1ZTogdGhpcy5nZXRUcmFuc2xhdGVMYWJlbChgdHJ1ZV9sYWJlbGApLFxuICAgICAgICAgICAgICAgIGZhbHNlOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBmYWxzZV9sYWJlbGApLFxuICAgICAgICAgICAgICAgIGVtcHR5OiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBlbXB0eV9sYWJlbGApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJsb2JQYXJhbWV0ZXJzKCk6IG9iamVjdCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICAgICAgc206IDEyLFxuICAgICAgICAgICAgICAgIG1kOiAxMixcbiAgICAgICAgICAgICAgICBsZzogMTIsXG4gICAgICAgICAgICAgICAgeGw6IDEyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY2VwdDogXCJpbWFnZS8qLCBhcHBsaWNhdGlvbi8qLCB0ZXh0LypcIixcbiAgICAgICAgICAgIGNob29zZUxhYmVsOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBjaG9vc2VfbGFiZWxgKSxcbiAgICAgICAgICAgIHJlbW92ZUxhYmVsOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGByZW1vdmVfbGFiZWxgKSxcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBjYW5jZWxfbGFiZWxgKSxcbiAgICAgICAgICAgIHN1Y2Nlc3NUb29sdGlwOiB0aGlzLmdldFRyYW5zbGF0ZUxhYmVsKGBzdWNjZXNzX3Rvb2x0aXBgKSxcbiAgICAgICAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgICAgIG9uVXBsb2FkRmlsZTogKGV2ZW50OiB7IGZpbGVzOiBGaWxlRHRvW10gfSwgZm9ybWZpZWxkOiBGb3JtRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1VwbG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZXZlbnQsIGZvcm1maWVsZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25SZW1vdmVGaWxlOiAoZXZlbnQ6IHsgZmlsZTogRmlsZUR0byB9LCBmb3JtZmllbGQ6IEZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRmlsZShldmVudCwgZm9ybWZpZWxkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNhbmNlbFVwbG9hZDogKGV2ZW50OiBudW1iZXIsIGZvcm1maWVsZDogRm9ybUZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxVcGxvYWQoZXZlbnQsIGZvcm1maWVsZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25Eb3dubG9hZEZpbGU6IChldmVudDogeyBpbmRleDogbnVtYmVyOyBhbmNob3I6IEVsZW1lbnRSZWYgfSwgZm9ybWZpZWxkOiBGb3JtRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZShldmVudCwgZm9ybWZpZWxkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaG93RmlsZVVwbG9hZERhdGU6IHRoaXMuc2hvd0ZpbGVVcGxvYWREYXRlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogw4kgbmVjZXNzw6FyaW8gY3JpYXIgbyBmaWVsZEN1c3RvbWl6YXRpb24gcXVhbmRvIGjDoSB1bSBCbG9iIG5hIGVudGlkYWRlIHBhcmEgZ2VyYXIgb1xuICAgICAqIGNvbSBvcyBmaWVsZHMgaW5zZXJpZG9zIGUgZGVsZXRhZG9zLlxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlRmllbGRDdXN0b21pemF0aW9uKGZpZWxkczogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNCbG9iID0gISFmaWVsZHMuZmlsdGVyKChmaWVsZDogYW55KSA9PiBmaWVsZC50eXBlID09PSBDdXN0b21GaWVsZFR5cGUuQmxvYikubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5oYXNCbG9iKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgIFwiZmllbGRDdXN0b21pemF0aW9uXCIsXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1BcnJheShbXG4gICAgICAgICAgICAgICAgICAgIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5kb21haW4pLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZTogbmV3IEZvcm1Db250cm9sKHRoaXMuc2VydmljZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVudGl0eSksXG4gICAgICAgICAgICAgICAgICAgICAgICB0b0RlbGV0ZTogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHt9LCBkaXNhYmxlZDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB0b0luc2VydDogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHt9LCBkaXNhYmxlZDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVCbG9iVG9GaWxlVXBsb2FkKGZpZWxkOiBGb3JtRmllbGQpIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0SWQgPSB0aGlzLnZhbHVlW2ZpZWxkLm5hbWVdID8gdGhpcy52YWx1ZVtmaWVsZC5uYW1lXSA6IHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS52YWx1ZTtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBvYmplY3RJZC5zdWJzdHJpbmcob2JqZWN0SWQubGFzdEluZGV4T2YoXCIvXCIpICsgMSk7XG4gICAgICAgIGNvbnN0IGZpbGU6IFBhcnRpYWw8RmlsZUR0bz4gPSB7IG5hbWU6IGZpbGVOYW1lLCBvYmplY3RJZCwgc2F2ZWRGaWxlOiB0cnVlIH07XG4gICAgICAgIGZpZWxkLmZpbGVzID0gW2ZpbGUgYXMgRmlsZUR0b107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkb3dubG9hZEZpbGUoZXZlbnQ6IHsgaW5kZXg6IG51bWJlcjsgYW5jaG9yOiBFbGVtZW50UmVmIH0sIGZpZWxkOiBGb3JtRmllbGQpIHtcbiAgICAgICAgY29uc3QgeyBpbmRleCwgYW5jaG9yIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgY3VycmVudEZpbGUgPSBmaWVsZC5maWxlc1tpbmRleF07XG4gICAgICAgIGlmIChjdXJyZW50RmlsZS5vYmplY3RVUkwpIHtcbiAgICAgICAgICAgIGFuY2hvci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAucmVxdWVzdEFjY2VzcyhjdXJyZW50RmlsZS5vYmplY3RJZCwgdGhpcy5yZXF1ZXN0QWNjZXNzRW5kcG9pbnQpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVc3Vic2NyaWJlKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiB7IGZpbGVOYW1lOiBzdHJpbmc7IHVyaTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmaWxlTmFtZSwgdXJpIH0gPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRGaWxlKHVyaSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVXN1YnNjcmliZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChibG9iOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWxlID0gPEZpbGVEdG8+bmV3IEZpbGUoW2Jsb2JdLCBmaWxlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3RmlsZS5vYmplY3RVUkwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHVyaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCB1cmkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0ZpbGUub2JqZWN0SWQgPSBjdXJyZW50RmlsZS5vYmplY3RJZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdGaWxlLnNhdmVkRmlsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuZmlsZXNbaW5kZXhdID0gbmV3RmlsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5maWxlcyA9IFsuLi5maWVsZC5maWxlc107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGxvYWRGaWxlKGV2ZW50OiB7IGZpbGVzOiBGaWxlRHRvW10gfSwgZm9ybUZpZWxkOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWxlcyB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgocmVjb3JkOiBGb3JtRmllbGQpID0+IHJlY29yZC5uYW1lID09PSBmb3JtRmllbGQubmFtZSk7XG5cbiAgICAgICAgLy8gU2Ugb2NvcnJlciB1bSB1cGxvYWQsIGrDoSBleGlzdGluZG8gdW0gYXJxdWl2byBjb20gdXBsb2FkIGZlaXRvLiDDiSBuZWNlc3PDoXJpbyBleGNsdWlyIG8gbWVzbW8uXG4gICAgICAgIGlmIChmaWVsZC5maWxlcyAmJiBmaWVsZC5maWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRmlsZSh7IGZpbGU6IGZpZWxkLmZpbGVzWzBdIH0sIGZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgICBmaWVsZC5maWxlcyA9IGZpbGVzO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1tpXTtcbiAgICAgICAgICAgIGlmICghZmlsZS5zYXZlZEZpbGUgJiYgIWZpbGUucHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICBmaWxlLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSkuc2V0VmFsaWRhdG9ycyhpc1VwbG9hZGluZyhmaWxlKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLmdldEZpbGVMb2NhdGlvblVybChcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW46IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2U6IHRoaXMuc2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlOYW1lOiB0aGlzLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogZmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUxvY2F0aW9uRW5kcG9pbnRcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVXN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih0aGlzLmRlZmFsdENhdGNoRXJyb3IoZmllbGQsIGVyciwgaSkpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBsb2NhdGlvbiwgdmVyc2lvbiwgb2JqZWN0SWQgfSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5vYmplY3RJZCA9IG9iamVjdElkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZVtcInVwbG9hZFN1YnNjcmliZVwiXSA9IHRoaXMuY3VzdG9tRmllbGRzU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC51cGxvYWRUZW1wRmlsZShsb2NhdGlvbiwgZmlsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YodGhpcy5kZWZhbHRDYXRjaEVycm9yKGZpZWxkLCBlcnIsIGkpKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHR5cGUgfSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXBsb2FkQ2FuY2VsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSBNYXRoLnJvdW5kKHJlc3BvbnNlLmxvYWRlZCAvIHJlc3BvbnNlLnRvdGFsKSAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLm9iamVjdFVSTCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHsgb2JqZWN0SWQsIG5hbWU6IGZpbGUubmFtZSwgdmVyc2lvbjogZmlsZS52ZXJzaW9uIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9JbnNlcnQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJmaWVsZEN1c3RvbWl6YXRpb25cIikudmFsdWVbMF0udG9JbnNlcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiZmllbGRDdXN0b21pemF0aW9uXCIpLnZhbHVlWzBdLnRvSW5zZXJ0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50b0luc2VydCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkLm5hbWVdOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS5zZXRWYWx1ZShgJHtmaWxlLm9iamVjdElkfS8ke2ZpbGUubmFtZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSkuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5maWxlcyA9IFtmaWxlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVwbG9hZENhbmNlbGVkICYmIHR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHRoaXMudXBsb2FkQ2FuY2VsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZpbGVzID0gW2ZpbGVdO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRmlsZShldmVudDogeyBmaWxlOiBGaWxlRHRvIH0sIGZvcm1GaWVsZDogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsZSB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgocmVjb3JkOiBGb3JtRmllbGQpID0+IHJlY29yZC5uYW1lID09PSBmb3JtRmllbGQubmFtZSk7XG4gICAgICAgIGZpZWxkLmZpbGVzID0gW107XG4gICAgICAgIGlmIChmaWxlLm9iamVjdElkKSB7XG4gICAgICAgICAgICAvLyBRdWFuZG8gw6kgdW0gYXJxdWl2byBqw6Egc2Fsdm8gbyBvYmplY3RJZCBqw6Egw6kgbm8gZm9ybWF0byBcIm9iamVjdElkL25hbWVcIlxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWxlLnNhdmVkRmlsZSA/IGAke2ZpbGUub2JqZWN0SWR9YCA6IGAke2ZpbGUub2JqZWN0SWR9LyR7ZmlsZS5uYW1lfWA7XG4gICAgICAgICAgICBjb25zdCB0b0RlbGV0ZSA9IHRoaXMuZm9ybUdyb3VwLmdldChcImZpZWxkQ3VzdG9taXphdGlvblwiKS52YWx1ZVswXS50b0RlbGV0ZTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJmaWVsZEN1c3RvbWl6YXRpb25cIikudmFsdWVbMF0udG9JbnNlcnRbZmllbGQubmFtZV07XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJmaWVsZEN1c3RvbWl6YXRpb25cIikudmFsdWVbMF0udG9EZWxldGUgPSB7XG4gICAgICAgICAgICAgICAgLi4udG9EZWxldGUsXG4gICAgICAgICAgICAgICAgW2ZpZWxkLm5hbWVdOiBbLi4uKHRvRGVsZXRlW2ZpZWxkLm5hbWVdIHx8IFtdKSwgdmFsdWVdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLnNldFZhbHVlKFwiXCIpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FuY2VsVXBsb2FkKGluZGV4OiBudW1iZXIsIGZvcm1GaWVsZDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkQ2FuY2VsZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmllbGRzLmZpbmQoKHJlY29yZDogRm9ybUZpZWxkKSA9PiByZWNvcmQubmFtZSA9PT0gZm9ybUZpZWxkLm5hbWUpO1xuICAgICAgICBmaWVsZC5maWxlc1tpbmRleF1bXCJ1cGxvYWRTdWJzY3JpYmVcIl0udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgZmllbGQuZmlsZXMgPSBbXTtcbiAgICAgICAgZGVsZXRlIHRoaXMuZm9ybUdyb3VwLmdldChcImZpZWxkQ3VzdG9taXphdGlvblwiKS52YWx1ZVswXS50b0luc2VydFtmaWVsZC5uYW1lXTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSkuc2V0VmFsdWUoXCJcIik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZhbHRDYXRjaEVycm9yKGZpZWxkOiBGb3JtRmllbGQsIGVycjogSHR0cEVycm9yUmVzcG9uc2UsIGluZGV4OiBudW1iZXIpOiBPYnNlcnZhYmxlPG5ldmVyPiB7XG4gICAgICAgIGNvbnN0IHsgZmlsZXMgfSA9IGZpZWxkO1xuICAgICAgICBmaWxlc1tpbmRleF0uZXJyb3IgPSBlcnI7XG4gICAgICAgIGZpbGVzW2luZGV4XS5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBmaWVsZC5maWxlcyA9IFsuLi5maWxlc107XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKS5zZXRWYWxpZGF0b3JzKFtlcnJvck9uVXBsb2FkKGZpbGVzW2luZGV4XSldKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IEVycm9yKFwiZXJyb3IgaW4gdXBsb2FkIGZpbGUuIERldGFpbHM6IFwiICsgZXJyLm1lc3NhZ2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRyYW5zbGF0ZUxhYmVsKGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYCR7dGhpcy5kb21haW59LiR7dGhpcy5zZXJ2aWNlfS4ke2xhYmVsfWApO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaXNVcGxvYWRpbmcoZmlsZTogRmlsZUR0byk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKCkgPT4gKGZpbGUuaXNVcGxvYWRpbmcgPyB7IGlzVXBsb2FkaW5nOiB0cnVlIH0gOiBudWxsKTtcbn1cblxuZnVuY3Rpb24gZXJyb3JPblVwbG9hZChmaWxlOiBGaWxlRHRvKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoKSA9PiAoZmlsZS5lcnJvciA/IHsgdXBsb2FkRXJyb3I6IHRydWUgfSA6IG51bGwpO1xufVxuIl19
|
|
@@ -9386,8 +9386,9 @@ let CustomFieldsComponent = CustomFieldsComponent_1 = class CustomFieldsComponen
|
|
|
9386
9386
|
const observables = [this.getCustomFields(), this.localeService.get()];
|
|
9387
9387
|
forkJoin(observables)
|
|
9388
9388
|
.pipe(takeUntil(this.ngUsubscribe), finalize(() => {
|
|
9389
|
+
var _a;
|
|
9389
9390
|
this.formGroup.markAsPristine();
|
|
9390
|
-
this.parentControl.markAsPristine();
|
|
9391
|
+
(_a = this.parentControl) === null || _a === void 0 ? void 0 : _a.markAsPristine();
|
|
9391
9392
|
if (this.ready$)
|
|
9392
9393
|
this.ready$.next(true);
|
|
9393
9394
|
}))
|