bpm-core 0.0.94 → 0.0.96
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +3 -5
- package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +5 -2
- package/esm2022/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.mjs +7 -1
- package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +3 -3
- package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +11 -6
- package/fesm2022/bpm-core.mjs +24 -12
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/components/shared-components/form-field/attachment-section/attachment-section.component.d.ts +1 -2
- package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +2 -1
- package/lib/components/shared-components/form-field/shared-imports.d.ts +3 -3
- package/package.json +1 -1
|
@@ -24,7 +24,7 @@ export class AttachmentSectionComponent extends ControlValueAccessorDirective {
|
|
|
24
24
|
isSortable = false;
|
|
25
25
|
downloadAll = false;
|
|
26
26
|
popupData = {};
|
|
27
|
-
isRequired = false;
|
|
27
|
+
// @Input() isRequired: boolean = false;
|
|
28
28
|
descriptionRequired;
|
|
29
29
|
commentsRequired;
|
|
30
30
|
allowedExtensions = '';
|
|
@@ -166,7 +166,7 @@ export class AttachmentSectionComponent extends ControlValueAccessorDirective {
|
|
|
166
166
|
this.downloadActionClicked.emit(event);
|
|
167
167
|
}
|
|
168
168
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AttachmentSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
169
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: AttachmentSectionComponent, isStandalone: true, selector: "app-attachment-section", inputs: { className: "className", customDownload: "customDownload", attachmentsMax: "attachmentsMax", isSortable: "isSortable", downloadAll: "downloadAll",
|
|
169
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: AttachmentSectionComponent, isStandalone: true, selector: "app-attachment-section", inputs: { className: "className", customDownload: "customDownload", attachmentsMax: "attachmentsMax", isSortable: "isSortable", downloadAll: "downloadAll", descriptionRequired: "descriptionRequired", commentsRequired: "commentsRequired", allowedExtensions: "allowedExtensions" }, outputs: { downloadActionClicked: "downloadActionClicked", emitedValue: "emitedValue" }, providers: [
|
|
170
170
|
{
|
|
171
171
|
provide: NG_VALUE_ACCESSOR,
|
|
172
172
|
useExisting: forwardRef(() => AttachmentSectionComponent),
|
|
@@ -216,8 +216,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
216
216
|
type: Input
|
|
217
217
|
}], downloadAll: [{
|
|
218
218
|
type: Input
|
|
219
|
-
}], isRequired: [{
|
|
220
|
-
type: Input
|
|
221
219
|
}], descriptionRequired: [{
|
|
222
220
|
type: Input
|
|
223
221
|
}], commentsRequired: [{
|
|
@@ -230,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
230
228
|
type: ViewChild,
|
|
231
229
|
args: ['paginator']
|
|
232
230
|
}] } });
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mb3JtLWZpZWxkL2F0dGFjaG1lbnQtc2VjdGlvbi9hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvYXR0YWNobWVudC1zZWN0aW9uL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEssT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDMUcsT0FBTyxFQUFDLE9BQU8sRUFBZSxXQUFXLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFD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QUE5QixNQUFNO2dCQUNFLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUlpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBdHRhY2htZW50U2VjdGlvbkRhdGFDb21wb25lbnR9IGZyb20gJy4uL2FkZC1hdHRhY2htZW50LXNlY3Rpb24vYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Nka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgbW92ZUl0ZW1JbkFycmF5fSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHtTYXRQb3BvdmVyTW9kdWxlfSBmcm9tICdAbmNzdGF0ZS9zYXQtcG9wb3Zlcic7XHJcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmLCBTbGljZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtEb2NzVXBsb2FkZXJDb21wb25lbnR9IGZyb20gJy4uL2RvYy11cGxvYWRlci9kb2NzLXVwbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGVsZXRlRGlhbG9nQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZGlhbG9ncy9kZWxldGUtZGlhbG9nL2RlbGV0ZS1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmV9IGZyb20gXCIuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TWF0UGFnaW5hdG9yfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XHJcbmltcG9ydCB7XHJcbiAgTWF0Q2VsbCxcclxuICBNYXRDZWxsRGVmLFxyXG4gIE1hdENvbHVtbkRlZixcclxuICBNYXRIZWFkZXJDZWxsLFxyXG4gIE1hdEhlYWRlckNlbGxEZWYsXHJcbiAgTWF0SGVhZGVyUm93LFxyXG4gIE1hdEhlYWRlclJvd0RlZixcclxuICBNYXRSb3csXHJcbiAgTWF0Um93RGVmLFxyXG4gIE1hdFRhYmxlLFxyXG4gIE1hdFRhYmxlRGF0YVNvdXJjZVxyXG59IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xyXG5pbXBvcnQgeyBGb3JtTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWxhYmVsL2Zvcm0tbGFiZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gXCIuLi8uLi8uLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWF0dGFjaG1lbnQtc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXR0YWNobWVudFNlY3Rpb25Db21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBTYXRQb3BvdmVyTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcCxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBDZGtEcm9wTGlzdCxcclxuICAgIERvY3NVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIENka0RyYWcsXHJcbiAgICBTbGljZVBpcGUsXHJcbiAgICBNYXRQYWdpbmF0b3IsXHJcbiAgICBNYXRUYWJsZSxcclxuICAgIE1hdENvbHVtbkRlZixcclxuICAgIE1hdENlbGwsXHJcbiAgICBNYXRDZWxsRGVmLFxyXG4gICAgTWF0SGVhZGVyQ2VsbERlZixcclxuICAgIE1hdEhlYWRlckNlbGwsXHJcbiAgICBNYXRSb3csXHJcbiAgICBNYXRIZWFkZXJSb3csXHJcbiAgICBNYXRIZWFkZXJSb3dEZWYsXHJcbiAgICBNYXRSb3dEZWYsXHJcbiAgICBGb3JtTGFiZWxDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVQaXBlXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRhY2htZW50U2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlPGFueT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnaW5mby1zZWN0aW9uJztcclxuICBAT3V0cHV0KCkgZG93bmxvYWRBY3Rpb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIGN1c3RvbURvd25sb2FkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBhdHRhY2htZW50c01heCA9IDEwMDA7XHJcbiAgQElucHV0KCkgaXNTb3J0YWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRvd25sb2FkQWxsID0gZmFsc2U7XHJcbiAgcG9wdXBEYXRhOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKSBpc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb25SZXF1aXJlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjb21tZW50c1JlcXVpcmVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFsbG93ZWRFeHRlbnNpb25zID0gJyc7XHJcbiAgQE91dHB1dCgpIGVtaXRlZFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1wiaW5kZXhcIiwgXCJmaWxlXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJjb21tZW50XCIsIFwiYWN0aW9uc1wiXTtcclxuICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8YW55PjtcclxuICBAVmlld0NoaWxkKCdwYWdpbmF0b3InKSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuICB0b3RhbFJlY29yZHM6IG51bWJlciA9IDA7XHJcbiAgcGFnZVNpemU6IG51bWJlciA9IDU7XHJcbiAgcGFnZU51bWJlcjogbnVtYmVyID0gMDtcclxuICBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KClcclxuICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5hdHRhY2htZW50cyA9IHRoaXMuY29udHJvbC52YWx1ZVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXR0YWNobWVudHMpIHtcclxuICAgICAgdGhpcy5hdHRhY2htZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIGVsZW1lbnQubmFtZSA9IGVsZW1lbnQuZmlsZU5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2UucmVzZXRBY3Rpb24kXHJcbiAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcclxuICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmlzUmVhZE9ubHkgJiYgdGhpcy5jb250cm9sLmVuYWJsZWQpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmFkZERhdGFUb1RhYmxlKCk7XHJcbiAgICB0aGlzLnBhZ2luYXRvci5faW50bC5pdGVtc1BlclBhZ2VMYWJlbCA9IHRoaXMuaTE4bi50cmFuc2xhdGUoJ2l0ZW1zUGVyUGFnZScpXHJcbiAgfVxyXG5cclxuICBvblBhZ2luYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucGFnZU51bWJlciA9IGV2ZW50LnBhZ2VJbmRleFxyXG4gIH1cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5hdHRhY2htZW50cywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcblxyXG5cclxuICByZXNldEF0dGFjaG1lbnREYXRhKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzUmVhZE9ubHkpIHtcclxuICAgICAgdGhpcy5hdHRhY2htZW50cyA9IFtdO1xyXG4gICAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQodGhpcy5hdHRhY2htZW50cyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGREYXRhVG9UYWJsZSgpe1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmF0dGFjaG1lbnRzKTtcclxuICAgIHRoaXMudG90YWxSZWNvcmRzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRW1pdFZhbHVlKGRhdGE6IGFueSwgZmllbGROYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucG9wdXBEYXRhW2ZpZWxkTmFtZV0gPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgYWRkQXR0YWNobWVudCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50LCB7XHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnbWFpbi1wb3B1cCcsICdhZGQtYXR0YWNobWVudC1kaWFsb2cnXSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGF0dGFjaG1lbnRMaXN0RGF0YTogbnVsbCxcclxuICAgICAgICBkYXRhOiB0aGlzLmFsbG93ZWRFeHRlbnNpb25zLFxyXG4gICAgICAgIGlzUmVxdWlyZWQ6IHRoaXMuaXNSZXF1aXJlZCxcclxuICAgICAgICBtdWx0aXBsZTogdGhpcy5tdWx0aXBsZSxcclxuICAgICAgICBhdHRhY2htZW50czogdGhpcy5hdHRhY2htZW50cyxcclxuICAgICAgICBkZXNjcmlwdGlvblJlcXVpcmVkOiB0aGlzLmRlc2NyaXB0aW9uUmVxdWlyZWQsXHJcbiAgICAgICAgY29tbWVudHNSZXF1aXJlZDogdGhpcy5jb21tZW50c1JlcXVpcmVkXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHREYXRhKSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHREYXRhICE9ICdjbG9zZScpIHtcclxuICAgICAgICBpZiAocmVzdWx0RGF0YT8uYXR0YWNobWVudElkKSB7XHJcbiAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzLnB1c2gocmVzdWx0RGF0YSk7XHJcbiAgICB0aGlzLmFkZERhdGFUb1RhYmxlKCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5hdHRhY2htZW50cylcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQXR0YWNobWVudHMoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERlbGV0ZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnYWRkLWF0dGFjaG1lbnQtZGlhbG9nJ11cclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHREYXRhKSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHREYXRhID09ICd5ZXMnKSB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVBdHRhY2htZW50KGluZGV4LCBpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBdHRhY2htZW50KGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5hdHRhY2htZW50cyA9IHRoaXMuYXR0YWNobWVudHMuZmlsdGVyKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gcm93LmF0dGFjaG1lbnRJZCAhPSBpdGVtLmF0dGFjaG1lbnRJZDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5hZGREYXRhVG9UYWJsZSgpO1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMuYXR0YWNobWVudHMpXHJcbiAgfVxyXG5cclxuICBlZGl0Um93KHJvd0RhdGEsIGluZGV4KTogdm9pZCB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEF0dGFjaG1lbnRTZWN0aW9uRGF0YUNvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnYWRkLWF0dGFjaG1lbnQtZGlhbG9nJ10sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBhdHRhY2htZW50TGlzdERhdGE6IE9iamVjdC5hc3NpZ24ocm93RGF0YSksXHJcbiAgICAgICAgZGF0YTogdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyxcclxuICAgICAgICBpc1JlcXVpcmVkOiB0aGlzLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgbXVsdGlwbGU6IHRoaXMubXVsdGlwbGUsXHJcbiAgICAgICAgYXR0YWNobWVudHM6IHRoaXMuYXR0YWNobWVudHMsXHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0RGF0YSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0RGF0YSAhPSAnY2xvc2UnKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdERhdGE/LmF0dGFjaG1lbnRJZCkge1xyXG4gICAgICAgICAgdGhpcy5hdHRhY2htZW50c1tpbmRleF0gPSByZXN1bHREYXRhO1xyXG4gICAgICAgICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMuYXR0YWNobWVudHMpO1xyXG4gICAgICAgICAgdGhpcy5hZGREYXRhVG9UYWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZEFsbEF0dGFjaG1lbnRzKGV2ZW50KSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXHJcbiAgICBjb25zdCBkb3dubG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRzLm1hcCgoZmlsZSkgPT4gdGhpcy5kb3dubG9hZEZpbGUoZXZlbnQsIGZpbGUpKTtcclxuICAgIFByb21pc2UuYWxsKGRvd25sb2FkcylcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkRmlsZShldmVudCwgZmllbGQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuY29yZVNlcnZpY2UubG9hZEZpbGUoZmllbGQuYXR0YWNobWVudElkKS5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICAgICkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXNwb25zZU9iamVjdDogeyBib2R5OiBhbnk7IH0pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVJbmZvcm1hdGlvbiA9IHJlc3BvbnNlT2JqZWN0LmJvZHk7XHJcbiAgICAgICAgICB0aGlzLmNvcmVTZXJ2aWNlLnNhdmVGaWxlKGZpbGVJbmZvcm1hdGlvbilcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyb3IuZXJyb3I/LlsnbWVzc2FnZSddKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGN1c3RvbURvd25sb2FkQWN0aW9uKGV2ZW50KXtcclxuICAgIHRoaXMuZG93bmxvYWRBY3Rpb25DbGlja2VkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm10LTIgcC0wXCI+XHJcbiAgQGlmKGxhYmVsKXtcclxuICAgIDxhcHAtZm9ybS1sYWJlbCBbbGFiZWxdPVwibGFiZWxcIiBbb3B0aW9uYWxdPVwiIXJlcXVpcmVkICYmICFpc1JlYWRPbmx5XCIgW3Rvb2x0aXBdPVwidG9vbHRpcFwiPjwvYXBwLWZvcm0tbGFiZWw+XHJcbiAgfVxyXG5cclxuICBAaWYgKCFhdHRhY2htZW50cz8ubGVuZ3RoICYmICFpc1JlYWRPbmx5KSB7XHJcbiAgICA8c2VjdGlvblxyXG4gICAgICBbbmdDbGFzc109XCJpbnNpZGVUYWJsZSA/ICdmaWxlLXVwbG9hZGVyLXRhYmxlJyA6ICdmaWxlLXVwbG9hZGVyJ1wiXHJcbiAgICAgIGNsYXNzPVwibWItMlwiXHJcbiAgICAgIFtjbGFzcy5pbnNpZGVUYWJsZVN0eWxlXT1cImluc2lkZVRhYmxlXCJcclxuICAgICAgKGNsaWNrKT1cImFkZEF0dGFjaG1lbnQoKVwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgW25nQ2xhc3NdPVwiaW5zaWRlVGFibGUgPyAnZmlsZS11cGxvYWRlci10YWJsZS1kZXYnIDogJydcIlxyXG4gICAgICAgIGNsYXNzPVwiZmlsZS11cGxvYWRlci1pbnB1dFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uIG1iLTFcIj5cclxuICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaW5zaWRlVGFibGUgPyAnZmlsZS11cGxvYWRlci10YWJsZS1zdmcnIDogJydcIlxyXG4gICAgICAgICAgICB3aWR0aD1cIjQxXCJcclxuICAgICAgICAgICAgaGVpZ2h0PVwiMzhcIlxyXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDQxIDM4XCJcclxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0wIDIyLjE5NDdWMjAuNjczNkMwLjA5NzEzMDMgMjAuMTAxOSAwLjA3MDA5NCAxOS41MTQxIDAuMjc2MzcxIDE4Ljk1MzNDMS4yODM3MiAxNi4yMDg2IDMuMjEyMzEgMTQuNTAyMyA2LjA0MjEgMTMuODA5NEM2LjcwNDk5IDEzLjY0NzIgNi42ODQ5NyAxMy42NjMyIDYuNjk4OTkgMTIuOTg0M0M2LjczMjAzIDExLjMzMjEgNi45OTgzOSA5LjcxOTkyIDcuNjI0MjMgOC4xNzk4NkM4Ljg2Mjg5IDUuMTM2NzggMTAuOTQ2NyAyLjgzOTY5IDEzLjg4MTYgMS4zOTE3NUMxNy4xNjggLTAuMjMwNDI0IDIwLjU5NTYgLTAuNDUwNzE5IDI0LjA1NTMgMC44MTU5OEMyNy40OTI5IDIuMDc0NjcgMjkuOTYyMiA0LjQxNTgxIDMxLjQ4MDIgNy43NDgyOEMzMS43Nzg2IDguNDAzMTYgMzIuMDI3IDkuMDgzMDcgMzIuMTcxMiA5Ljc5MjAyQzMyLjI0MDIgMTAuMTMxNSAzMi40MDM1IDEwLjI1NjYgMzIuNzUyOSAxMC4zMTA3QzM2LjcwMTIgMTAuOTE2NSAzOS4zMzU4IDEzLjEyNTUgNDAuNjk0NiAxNi44NzM1QzQwLjkwNjkgMTcuNDYwMyA0MC45MTk5IDE4LjA3MzEgNDAuOTU5OSAxOC42ODI5QzQwLjk2NDkgMTguNzYwMSA0MC45Mzg5IDE4Ljg0NDIgNDEgMTguOTExM1YyMC41MTI0QzQwLjkxMDkgMjAuOTk1IDQwLjk2OSAyMS40OTM3IDQwLjg2MDggMjEuOTczNEM0MC41MjQ0IDIzLjQ2MTQgMzkuODQ1NCAyNC43ODIxIDM4Ljg1MDEgMjUuOTI5N0MzNy40NTIyIDI3LjU0MTggMzUuNzA1OSAyOC41ODgyIDMzLjYxNjEgMjkuMDUxOUMzMi43OTEgMjkuMjM1MSAzMS45NDk5IDI5LjI1MjEgMzEuMTExNyAyOS4yOTIyQzMwLjY1NzEgMjkuMzE0MiAzMC41ODQgMjkuMTkzIDMwLjU5MiAyOC43NDg0QzMwLjY0NTEgMjUuODQ0NiAyOS44MDIgMjMuMjU3MSAyNy44NjI0IDIxLjA1OTFDMjUuOTk3OSAxOC45NDYzIDIzLjY1OTcgMTcuNzE2NyAyMC44NjcgMTcuNDAxMkMxOC44NTUzIDE3LjE3MzkgMTYuOTA1NyAxNy40NTkzIDE1LjA2MTIgMTguMzM5NUMxMS44MzE5IDE5Ljg4MTYgOS44MTQxNiAyMi40MDY5IDguOTYxMDIgMjUuODY5NkM4Ljc0MjczIDI2Ljc1MzggOC42ODI2NSAyNy42NTggOC43MDU2OCAyOC41NzAyQzguNzIxNyAyOS4yMTExIDguNjAyNTQgMjkuMzEyMiA3Ljk1OTY4IDI5LjI5NzJDNS45NTA5OCAyOS4yNTExIDQuMTA1NTEgMjguNzIzNCAyLjU4MTQ2IDI3LjM1OTZDMS4wNzY0NCAyNi4wMTY4IDAuMDY4MDkxMyAyNC4zOTk2IDAuMDQwMDUzNyAyMi4zMDI4QzAuMDQwMDUzNyAyMi4yNjA3IDAuMDI1MDMzNiAyMi4yMjU3IDAgMjIuMTkzN1YyMi4xOTQ3WlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiNERUUwRTJcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0yOS4wMzAzIDI4LjI2MzJDMjkuMDYwNCAzMy40MDMxIDI0Ljg2NTcgMzcuNjE4NyAxOS42ODM4IDM3LjY1NDhDMTQuNTE2OSAzNy42OTA4IDEwLjI4NTIgMzMuNDk1MiAxMC4yNTIxIDI4LjMwNDJDMTAuMjIwMSAyMy4xNDAzIDE0LjQyOTcgMTguOTEyNiAxOS42MjI3IDE4Ljg5NDZDMjQuODAzNyAxOC44NzY2IDI4Ljk5OTMgMjMuMDU0MiAyOS4wMzAzIDI4LjI2MzJaXCJcclxuICAgICAgICAgICAgICBmaWxsPVwiIzhFOUFBMFwiLz5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwiTTIwLjU1NzMgMjUuMjY0NEMyMC40NjIyIDI1LjQ0NzcgMjAuNTAxMiAyNS41OTM5IDIwLjUwMTIgMjUuNzM0QzIwLjQ5ODIgMjguMjE1NCAyMC41MDAyIDMwLjY5NTcgMjAuNDk4MiAzMy4xNzdDMjAuNDk4MiAzMy44MDk5IDIwLjIzMzkgMzQuMTcwNCAxOS43NDYyIDM0LjIyMzRDMTkuMjY0NSAzNC4yNzY1IDE4Ljg4IDMzLjk4MzEgMTguODE2OSAzMy41MDI1QzE4Ljc5NTkgMzMuMzQ0MyAxOC43OTY5IDMzLjE4MyAxOC43OTY5IDMzLjAyMzhDMTguNzk1OSAzMC41ODI2IDE4Ljc5NjkgMjguMTQyMyAxOC43OTY5IDI1LjcwMUMxOC43OTY5IDI1LjU3MjggMTguNzk2OSAyNS40NDQ3IDE4Ljc5NjkgMjUuMjAwM0MxOC4xOTcxIDI1LjgwMzEgMTcuNjc3NCAyNi4zMjg4IDE3LjE1MjcgMjYuODUwNUMxNy4wMTE1IDI2Ljk5MDcgMTYuODY4MyAyNy4xMzQ5IDE2LjcwNjEgMjcuMjQ3MUMxNi4zNTY2IDI3LjQ4NjQgMTUuOTM0MSAyNy40NDEzIDE1LjY0NTcgMjcuMTU0QzE1LjM2NDMgMjYuODc0NiAxNS4zMjAzIDI2LjQ0MiAxNS41NDg2IDI2LjA5MjVDMTUuNjIwNyAyNS45ODI0IDE1LjcxMjggMjUuODgzMiAxNS44MDY5IDI1Ljc4OTFDMTYuODYxMyAyNC43MzA3IDE3LjkxNjcgMjMuNjczMyAxOC45NzMyIDIyLjYxNzlDMTkuNDAxNyAyMi4xODkzIDE5Ljg3ODQgMjIuMTc2MyAyMC4zMDM5IDIyLjU5ODhDMjEuMzkxNCAyMy42ODAzIDIyLjQ3MzkgMjQuNzY2NyAyMy41NTMzIDI1Ljg1NzJDMjMuOTgwOSAyNi4yODk4IDI0LjAxMjkgMjYuODA2NSAyMy42NTM0IDI3LjE2N0MyMy4yOTkgMjcuNTIxNCAyMi43NzUzIDI3LjQ4NDQgMjIuMzQzNyAyNy4wNTY4QzIxLjc0OTkgMjYuNDcgMjEuMTY2MSAyNS44NzMyIDIwLjU2MDMgMjUuMjY0NEgyMC41NTczWlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGOUY5RjlcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZi0xNCBmYy1ibGFjayBmdy1ub3JtYWxcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmMtY29yYWwgZnctbWVkaXVtXCI+e3sgJ2Jyb3dzZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZzLTEwIGZjLWRhcmstZ3JheVwiPlxyXG4gICAgICAgICAge3sgJ2FkZE11bHRpQXR0YWNobWVudHMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gIH1cclxuXHJcbiAgQGlmIChhdHRhY2htZW50cz8ubGVuZ3RoKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSBmdWxsXCJcclxuICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJhdHRhY2htZW50c1wiXHJcbiAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCI+XHJcblxyXG4gICAgICAgIDwhLS0gaW5kZXggQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAgICAgIDxkcy1idXR0b25cclxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInZG93bmxvYWRBbGwnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICBzcXVhcmUgaWNvbiBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZEFsbEF0dGFjaG1lbnRzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCI+XHJcbiAgICAgICAgICAgICAgQGlmIChsb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgICA8ZHMtaWNvbiBjbGFzcz1cInNmaSBzZmktc3Bpbm5lciBkLWlubGluZS1ibG9jayBzcGluIGZjLWNvcmFsIGZzLTMwLWltcFwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxkcy1pY29uXHJcbiAgICAgICAgICAgICAgICAgIGljb249XCJkb3dubG9hZFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtcHVycGxlXCI+PC9kcy1pY29uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj57eyBpICsgMSArIHBhZ2VTaXplICogKHBhZ2VOdW1iZXIpIH19PC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBOYW1lIENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImZpbGVcIj5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3sgJ0ZpbGVOYW1lJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICA8YXBwLWZpbGUtdXBsb2FkZXJcclxuICAgICAgICAgICAgICBbYWxsb3dlZEV4dGVuc2lvbnNdPVwiYWxsb3dlZEV4dGVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgIFtkaXNwbGF5ZWRGaWxlc109XCJbZWxlbWVudF1cIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJhdHRhY2htZW50XCJcclxuICAgICAgICAgICAgICBbc2hvd0FjdGlvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2lzUmVhZE9ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2N1c3RvbURvd25sb2FkXT1cImN1c3RvbURvd25sb2FkXCJcclxuICAgICAgICAgICAgICAoZG93bmxvYWRBY3Rpb25DbGlja2VkKT1cImN1c3RvbURvd25sb2FkQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIERlc2NyaXB0aW9uIENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7ICdGaWxlRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmdy1tZWRpdW0gZmMtYmxhY2sgdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyIGZzLTEyXCJcclxuICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmaWxlRGVzY3JpcHRpb25BbmNob3IucG9wb3Zlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIFtzYXRQb3BvdmVyQW5jaG9yXT1cImZpbGVEZXNjcmlwdGlvblBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICNmaWxlRGVzY3JpcHRpb25BbmNob3I9XCJzYXRQb3BvdmVyQW5jaG9yXCJcclxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddXCI+XHJcbiAgICAgICAgICAgICAge3sgZWxlbWVudD8uWydmaWxlRGVzY3JpcHRpb24nXT8ubGVuZ3RoID4gMTAgPyAoZWxlbWVudD8uWydmaWxlRGVzY3JpcHRpb24nXSB8IHNsaWNlIDogMCA6IDEwKSArICcuLi4uJyA6IGVsZW1lbnQ/LlsnZmlsZURlc2NyaXB0aW9uJ10gfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8c2F0LXBvcG92ZXJcclxuICAgICAgICAgICAgICAjZmlsZURlc2NyaXB0aW9uUG9wb3ZlclxyXG4gICAgICAgICAgICAgIFthbmNob3JdPVwiZmlsZURlc2NyaXB0aW9uQW5jaG9yXCJcclxuICAgICAgICAgICAgICBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3Jlc3RvcmVGb2N1c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgdmVydGljYWxBbGlnbj1cImJlbG93XCJcclxuICAgICAgICAgICAgICBob3Jpem9udGFsQWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1wb3BvdmVyIHAtMyBmcy0xNCB0ZXh0LWJyZWFrIHZpZXctbm90ZS1wb3BvdmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YmRpIGNsYXNzPVwiZmMtYmxhY2tcIj57eyBlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddIH19PC9iZGk+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIENvbW1lbnQgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29tbWVudFwiPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57eyAnY29tbWVudCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBjbGFzcz1cImZ3LW1lZGl1bSBmYy1ibGFjayB1bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXIgZnMtMTJcIlxyXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWVsZW1lbnQ/LlsnYXR0YWNobWVudGNvbW1lbnQnXVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgY29tbWVudHNBbmNob3IucG9wb3Zlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIFtzYXRQb3BvdmVyQW5jaG9yXT1cImNvbW1lbnRzUG9wb3ZlclwiXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddXCJcclxuICAgICAgICAgICAgICAjY29tbWVudHNBbmNob3I9XCJzYXRQb3BvdmVyQW5jaG9yXCI+XHJcbiAgICAgICAgICAgICAge3sgZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddPy5sZW5ndGggPiAxMCA/IChlbGVtZW50Py5bJ2F0dGFjaG1lbnRjb21tZW50J10gfCBzbGljZSA6IDAgOiAxMCkgKyAnLi4uLicgOiBlbGVtZW50Py5bJ2F0dGFjaG1lbnRjb21tZW50J10gfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8c2F0LXBvcG92ZXJcclxuICAgICAgICAgICAgICAjY29tbWVudHNQb3BvdmVyXHJcbiAgICAgICAgICAgICAgW2FuY2hvcl09XCJjb21tZW50c0FuY2hvclwiXHJcbiAgICAgICAgICAgICAgW2hhc0JhY2tkcm9wXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtyZXN0b3JlRm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ249XCJiZWxvd1wiXHJcbiAgICAgICAgICAgICAgaG9yaXpvbnRhbEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtcG9wb3ZlciBwLTMgZnMtMTQgdGV4dC1icmVhayB2aWV3LW5vdGUtcG9wb3ZlclwiPlxyXG4gICAgICAgICAgICAgICAgPGJkaSBjbGFzcz1cImZjLWJsYWNrXCI+e3sgZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddIH19PC9iZGk+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIEBpZiAoIWlzUmVhZE9ubHkpIHtcclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkcy1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBzcXVhcmVcclxuICAgICAgICAgICAgICAgICAgICBpY29uXHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlQXR0YWNobWVudHMoaSwgZWxlbWVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cInRyYXNoXCIgY2xhc3M9XCJmcy0yMCBmcy1tZC0xNyBmYy1jb3JhbFwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgc3F1YXJlXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRSb3coZWxlbWVudCwgaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cInBlblwiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtcHVycGxlXCI+PC9kcy1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XHJcbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cclxuICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgIDxtYXQtcGFnaW5hdG9yXHJcbiAgICAgICAgI3BhZ2luYXRvclxyXG4gICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzVdXCJcclxuICAgICAgICAocGFnZSk9XCJvblBhZ2luYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtsZW5ndGhdPVwiYXR0YWNobWVudHMubGVuZ3RoXCJcclxuICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgIHNob3dGaXJzdExhc3RCdXR0b25zPjwvbWF0LXBhZ2luYXRvcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuXHJcbiAgQGlmICghaXNSZWFkT25seSAmJiBhdHRhY2htZW50cz8ubGVuZ3RoICYmIGF0dGFjaG1lbnRzPy5sZW5ndGggPCBhdHRhY2htZW50c01heCkge1xyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIGZ1bGwgbXQtM1wiPlxyXG4gICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgc2hhcGU9XCJ7eyBhdHRhY2htZW50cz8ubGVuZ3RoID8gJ291dGxpbmUnIDogJycgfX1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Z1bGwtYWRkLWJ0biB3LTEwMCBwdC0xJzogYXR0YWNobWVudHM/Lmxlbmd0aCB9XCJcclxuICAgICAgICAoY2xpY2spPVwiYWRkQXR0YWNobWVudCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICA8ZHMtaWNvbiBzbG90PVwicHJlZml4XCIgaWNvbj1cInBsdXNcIiBjbGFzcz1cImZzLTIyIHBiLTFcIj48L2RzLWljb24+XHJcbiAgICAgICAge3sgJ2FkZEF0dGFjaG1lbnRzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2RzLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mb3JtLWZpZWxkL2F0dGFjaG1lbnQtc2VjdGlvbi9hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvYXR0YWNobWVudC1zZWN0aW9uL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEssT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDMUcsT0FBTyxFQUFDLE9BQU8sRUFBZSxXQUFXLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFD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QUNFLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFJaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIERlc3Ryb3lSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50fSBmcm9tICcuLi9hZGQtYXR0YWNobWVudC1zZWN0aW9uL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHtDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QsIG1vdmVJdGVtSW5BcnJheX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7U2F0UG9wb3Zlck1vZHVsZX0gZnJvbSAnQG5jc3RhdGUvc2F0LXBvcG92ZXInO1xyXG5pbXBvcnQge01hdFRvb2x0aXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdGb3JPZiwgTmdJZiwgU2xpY2VQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7RG9jc1VwbG9hZGVyQ29tcG9uZW50fSBmcm9tICcuLi9kb2MtdXBsb2FkZXIvZG9jcy11cGxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RlbGV0ZURpYWxvZ0NvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2RpYWxvZ3MvZGVsZXRlLWRpYWxvZy9kZWxldGUtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlfSBmcm9tIFwiLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge01hdFBhZ2luYXRvcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xyXG5pbXBvcnQge1xyXG4gIE1hdENlbGwsXHJcbiAgTWF0Q2VsbERlZixcclxuICBNYXRDb2x1bW5EZWYsXHJcbiAgTWF0SGVhZGVyQ2VsbCxcclxuICBNYXRIZWFkZXJDZWxsRGVmLFxyXG4gIE1hdEhlYWRlclJvdyxcclxuICBNYXRIZWFkZXJSb3dEZWYsXHJcbiAgTWF0Um93LFxyXG4gIE1hdFJvd0RlZixcclxuICBNYXRUYWJsZSxcclxuICBNYXRUYWJsZURhdGFTb3VyY2VcclxufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgRm9ybUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1sYWJlbC9mb3JtLWxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtUcmFuc2xhdGVQaXBlfSBmcm9tIFwiLi4vLi4vLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGVcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hdHRhY2htZW50LXNlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF0dGFjaG1lbnRTZWN0aW9uQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2F0UG9wb3Zlck1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXAsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgQ2RrRHJvcExpc3QsXHJcbiAgICBEb2NzVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBDZGtEcmFnLFxyXG4gICAgU2xpY2VQaXBlLFxyXG4gICAgTWF0UGFnaW5hdG9yLFxyXG4gICAgTWF0VGFibGUsXHJcbiAgICBNYXRDb2x1bW5EZWYsXHJcbiAgICBNYXRDZWxsLFxyXG4gICAgTWF0Q2VsbERlZixcclxuICAgIE1hdEhlYWRlckNlbGxEZWYsXHJcbiAgICBNYXRIZWFkZXJDZWxsLFxyXG4gICAgTWF0Um93LFxyXG4gICAgTWF0SGVhZGVyUm93LFxyXG4gICAgTWF0SGVhZGVyUm93RGVmLFxyXG4gICAgTWF0Um93RGVmLFxyXG4gICAgRm9ybUxhYmVsQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudFNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxhbnk+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJ2luZm8tc2VjdGlvbic7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkQWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBjdXN0b21Eb3dubG9hZDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgYXR0YWNobWVudHNNYXggPSAxMDAwO1xyXG4gIEBJbnB1dCgpIGlzU29ydGFibGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkb3dubG9hZEFsbCA9IGZhbHNlO1xyXG4gIHBvcHVwRGF0YTogYW55ID0ge307XHJcbiAgLy8gQElucHV0KCkgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uUmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY29tbWVudHNSZXF1aXJlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhbGxvd2VkRXh0ZW5zaW9ucyA9ICcnO1xyXG4gIEBPdXRwdXQoKSBlbWl0ZWRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcImluZGV4XCIsIFwiZmlsZVwiLCBcImRlc2NyaXB0aW9uXCIsIFwiY29tbWVudFwiLCBcImFjdGlvbnNcIl07XHJcbiAgZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPGFueT47XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5hdG9yJykgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgdG90YWxSZWNvcmRzOiBudW1iZXIgPSAwO1xyXG4gIHBhZ2VTaXplOiBudW1iZXIgPSA1O1xyXG4gIHBhZ2VOdW1iZXI6IG51bWJlciA9IDA7XHJcbiAgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpXHJcbiAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudHMgPSB0aGlzLmNvbnRyb2wudmFsdWVcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmF0dGFjaG1lbnRzKSB7XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICBlbGVtZW50Lm5hbWUgPSBlbGVtZW50LmZpbGVOYW1lO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnJlc2V0QWN0aW9uJFxyXG4gICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXHJcbiAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMuY29udHJvbC5lbmFibGVkKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5hZGREYXRhVG9UYWJsZSgpO1xyXG4gICAgdGhpcy5wYWdpbmF0b3IuX2ludGwuaXRlbXNQZXJQYWdlTGFiZWwgPSB0aGlzLmkxOG4udHJhbnNsYXRlKCdpdGVtc1BlclBhZ2UnKVxyXG4gIH1cclxuXHJcbiAgb25QYWdpbmF0ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBhZ2VOdW1iZXIgPSBldmVudC5wYWdlSW5kZXhcclxuICB9XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuYXR0YWNobWVudHMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcmVzZXRBdHRhY2htZW50RGF0YSgpIHtcclxuICAgIGlmICghdGhpcy5pc1JlYWRPbmx5KSB7XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudHMgPSBbXTtcclxuICAgICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMuYXR0YWNobWVudHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkRGF0YVRvVGFibGUoKXtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5hdHRhY2htZW50cyk7XHJcbiAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aDtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVtaXRWYWx1ZShkYXRhOiBhbnksIGZpZWxkTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnBvcHVwRGF0YVtmaWVsZE5hbWVdID0gZGF0YTtcclxuICB9XHJcblxyXG4gIGFkZEF0dGFjaG1lbnQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEF0dGFjaG1lbnRTZWN0aW9uRGF0YUNvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnYWRkLWF0dGFjaG1lbnQtZGlhbG9nJ10sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBhdHRhY2htZW50TGlzdERhdGE6IG51bGwsXHJcbiAgICAgICAgZGF0YTogdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyxcclxuICAgICAgICBpc1JlcXVpcmVkOiB0aGlzLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgbXVsdGlwbGU6IHRoaXMubXVsdGlwbGUsXHJcbiAgICAgICAgYXR0YWNobWVudHM6IHRoaXMuYXR0YWNobWVudHMsXHJcbiAgICAgICAgZGVzY3JpcHRpb25SZXF1aXJlZDogdGhpcy5kZXNjcmlwdGlvblJlcXVpcmVkLFxyXG4gICAgICAgIGNvbW1lbnRzUmVxdWlyZWQ6IHRoaXMuY29tbWVudHNSZXF1aXJlZFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0RGF0YSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0RGF0YSAhPSAnY2xvc2UnKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdERhdGE/LmF0dGFjaG1lbnRJZCkge1xyXG4gICAgICAgICAgdGhpcy5hdHRhY2htZW50cy5wdXNoKHJlc3VsdERhdGEpO1xyXG4gICAgdGhpcy5hZGREYXRhVG9UYWJsZSgpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMuYXR0YWNobWVudHMpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUF0dGFjaG1lbnRzKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEZWxldGVEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgcGFuZWxDbGFzczogWydtYWluLXBvcHVwJywgJ2FkZC1hdHRhY2htZW50LWRpYWxvZyddXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0RGF0YSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0RGF0YSA9PSAneWVzJykge1xyXG4gICAgICAgIHRoaXMuZGVsZXRlQXR0YWNobWVudChpbmRleCwgaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQXR0YWNobWVudChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMuYXR0YWNobWVudHMgPSB0aGlzLmF0dGFjaG1lbnRzLmZpbHRlcigocm93OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIHJvdy5hdHRhY2htZW50SWQgIT0gaXRlbS5hdHRhY2htZW50SWQ7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYWRkRGF0YVRvVGFibGUoKTtcclxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLmF0dGFjaG1lbnRzKVxyXG4gIH1cclxuXHJcbiAgZWRpdFJvdyhyb3dEYXRhLCBpbmRleCk6IHZvaWQge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBdHRhY2htZW50U2VjdGlvbkRhdGFDb21wb25lbnQsIHtcclxuICAgICAgcGFuZWxDbGFzczogWydtYWluLXBvcHVwJywgJ2FkZC1hdHRhY2htZW50LWRpYWxvZyddLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgYXR0YWNobWVudExpc3REYXRhOiBPYmplY3QuYXNzaWduKHJvd0RhdGEpLFxyXG4gICAgICAgIGRhdGE6IHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMsXHJcbiAgICAgICAgaXNSZXF1aXJlZDogdGhpcy5pc1JlcXVpcmVkLFxyXG4gICAgICAgIG11bHRpcGxlOiB0aGlzLm11bHRpcGxlLFxyXG4gICAgICAgIGF0dGFjaG1lbnRzOiB0aGlzLmF0dGFjaG1lbnRzLFxyXG5cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdERhdGEpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdERhdGEgIT0gJ2Nsb3NlJykge1xyXG4gICAgICAgIGlmIChyZXN1bHREYXRhPy5hdHRhY2htZW50SWQpIHtcclxuICAgICAgICAgIHRoaXMuYXR0YWNobWVudHNbaW5kZXhdID0gcmVzdWx0RGF0YTtcclxuICAgICAgICAgIHRoaXMuZW1pdGVkVmFsdWUuZW1pdCh0aGlzLmF0dGFjaG1lbnRzKTtcclxuICAgICAgICAgIHRoaXMuYWRkRGF0YVRvVGFibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRBbGxBdHRhY2htZW50cyhldmVudCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxyXG4gICAgY29uc3QgZG93bmxvYWRzID0gdGhpcy5hdHRhY2htZW50cy5tYXAoKGZpbGUpID0+IHRoaXMuZG93bmxvYWRGaWxlKGV2ZW50LCBmaWxlKSk7XHJcbiAgICBQcm9taXNlLmFsbChkb3dubG9hZHMpXHJcbiAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZEZpbGUoZXZlbnQsIGZpZWxkKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmNvcmVTZXJ2aWNlLmxvYWRGaWxlKGZpZWxkLmF0dGFjaG1lbnRJZCkucGlwZShcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgICApLnN1YnNjcmliZShcclxuICAgICAgICAocmVzcG9uc2VPYmplY3Q6IHsgYm9keTogYW55OyB9KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBmaWxlSW5mb3JtYXRpb24gPSByZXNwb25zZU9iamVjdC5ib2R5O1xyXG4gICAgICAgICAgdGhpcy5jb3JlU2VydmljZS5zYXZlRmlsZShmaWxlSW5mb3JtYXRpb24pXHJcbiAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycm9yLmVycm9yPy5bJ21lc3NhZ2UnXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjdXN0b21Eb3dubG9hZEFjdGlvbihldmVudCl7XHJcbiAgICB0aGlzLmRvd25sb2FkQWN0aW9uQ2xpY2tlZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtdC0yIHAtMFwiPlxyXG4gIEBpZihsYWJlbCl7XHJcbiAgICA8YXBwLWZvcm0tbGFiZWwgW2xhYmVsXT1cImxhYmVsXCIgW29wdGlvbmFsXT1cIiFyZXF1aXJlZCAmJiAhaXNSZWFkT25seVwiIFt0b29sdGlwXT1cInRvb2x0aXBcIj48L2FwcC1mb3JtLWxhYmVsPlxyXG4gIH1cclxuXHJcbiAgQGlmICghYXR0YWNobWVudHM/Lmxlbmd0aCAmJiAhaXNSZWFkT25seSkge1xyXG4gICAgPHNlY3Rpb25cclxuICAgICAgW25nQ2xhc3NdPVwiaW5zaWRlVGFibGUgPyAnZmlsZS11cGxvYWRlci10YWJsZScgOiAnZmlsZS11cGxvYWRlcidcIlxyXG4gICAgICBjbGFzcz1cIm1iLTJcIlxyXG4gICAgICBbY2xhc3MuaW5zaWRlVGFibGVTdHlsZV09XCJpbnNpZGVUYWJsZVwiXHJcbiAgICAgIChjbGljayk9XCJhZGRBdHRhY2htZW50KClcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImluc2lkZVRhYmxlID8gJ2ZpbGUtdXBsb2FkZXItdGFibGUtZGV2JyA6ICcnXCJcclxuICAgICAgICBjbGFzcz1cImZpbGUtdXBsb2FkZXItaW5wdXRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiBtYi0xXCI+XHJcbiAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImluc2lkZVRhYmxlID8gJ2ZpbGUtdXBsb2FkZXItdGFibGUtc3ZnJyA6ICcnXCJcclxuICAgICAgICAgICAgd2lkdGg9XCI0MVwiXHJcbiAgICAgICAgICAgIGhlaWdodD1cIjM4XCJcclxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCA0MSAzOFwiXHJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMCAyMi4xOTQ3VjIwLjY3MzZDMC4wOTcxMzAzIDIwLjEwMTkgMC4wNzAwOTQgMTkuNTE0MSAwLjI3NjM3MSAxOC45NTMzQzEuMjgzNzIgMTYuMjA4NiAzLjIxMjMxIDE0LjUwMjMgNi4wNDIxIDEzLjgwOTRDNi43MDQ5OSAxMy42NDcyIDYuNjg0OTcgMTMuNjYzMiA2LjY5ODk5IDEyLjk4NDNDNi43MzIwMyAxMS4zMzIxIDYuOTk4MzkgOS43MTk5MiA3LjYyNDIzIDguMTc5ODZDOC44NjI4OSA1LjEzNjc4IDEwLjk0NjcgMi44Mzk2OSAxMy44ODE2IDEuMzkxNzVDMTcuMTY4IC0wLjIzMDQyNCAyMC41OTU2IC0wLjQ1MDcxOSAyNC4wNTUzIDAuODE1OThDMjcuNDkyOSAyLjA3NDY3IDI5Ljk2MjIgNC40MTU4MSAzMS40ODAyIDcuNzQ4MjhDMzEuNzc4NiA4LjQwMzE2IDMyLjAyNyA5LjA4MzA3IDMyLjE3MTIgOS43OTIwMkMzMi4yNDAyIDEwLjEzMTUgMzIuNDAzNSAxMC4yNTY2IDMyLjc1MjkgMTAuMzEwN0MzNi43MDEyIDEwLjkxNjUgMzkuMzM1OCAxMy4xMjU1IDQwLjY5NDYgMTYuODczNUM0MC45MDY5IDE3LjQ2MDMgNDAuOTE5OSAxOC4wNzMxIDQwLjk1OTkgMTguNjgyOUM0MC45NjQ5IDE4Ljc2MDEgNDAuOTM4OSAxOC44NDQyIDQxIDE4LjkxMTNWMjAuNTEyNEM0MC45MTA5IDIwLjk5NSA0MC45NjkgMjEuNDkzNyA0MC44NjA4IDIxLjk3MzRDNDAuNTI0NCAyMy40NjE0IDM5Ljg0NTQgMjQuNzgyMSAzOC44NTAxIDI1LjkyOTdDMzcuNDUyMiAyNy41NDE4IDM1LjcwNTkgMjguNTg4MiAzMy42MTYxIDI5LjA1MTlDMzIuNzkxIDI5LjIzNTEgMzEuOTQ5OSAyOS4yNTIxIDMxLjExMTcgMjkuMjkyMkMzMC42NTcxIDI5LjMxNDIgMzAuNTg0IDI5LjE5MyAzMC41OTIgMjguNzQ4NEMzMC42NDUxIDI1Ljg0NDYgMjkuODAyIDIzLjI1NzEgMjcuODYyNCAyMS4wNTkxQzI1Ljk5NzkgMTguOTQ2MyAyMy42NTk3IDE3LjcxNjcgMjAuODY3IDE3LjQwMTJDMTguODU1MyAxNy4xNzM5IDE2LjkwNTcgMTcuNDU5MyAxNS4wNjEyIDE4LjMzOTVDMTEuODMxOSAxOS44ODE2IDkuODE0MTYgMjIuNDA2OSA4Ljk2MTAyIDI1Ljg2OTZDOC43NDI3MyAyNi43NTM4IDguNjgyNjUgMjcuNjU4IDguNzA1NjggMjguNTcwMkM4LjcyMTcgMjkuMjExMSA4LjYwMjU0IDI5LjMxMjIgNy45NTk2OCAyOS4yOTcyQzUuOTUwOTggMjkuMjUxMSA0LjEwNTUxIDI4LjcyMzQgMi41ODE0NiAyNy4zNTk2QzEuMDc2NDQgMjYuMDE2OCAwLjA2ODA5MTMgMjQuMzk5NiAwLjA0MDA1MzcgMjIuMzAyOEMwLjA0MDA1MzcgMjIuMjYwNyAwLjAyNTAzMzYgMjIuMjI1NyAwIDIyLjE5MzdWMjIuMTk0N1pcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjREVFMEUyXCIvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMjkuMDMwMyAyOC4yNjMyQzI5LjA2MDQgMzMuNDAzMSAyNC44NjU3IDM3LjYxODcgMTkuNjgzOCAzNy42NTQ4QzE0LjUxNjkgMzcuNjkwOCAxMC4yODUyIDMzLjQ5NTIgMTAuMjUyMSAyOC4zMDQyQzEwLjIyMDEgMjMuMTQwMyAxNC40Mjk3IDE4LjkxMjYgMTkuNjIyNyAxOC44OTQ2QzI0LjgwMzcgMTguODc2NiAyOC45OTkzIDIzLjA1NDIgMjkuMDMwMyAyOC4yNjMyWlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiM4RTlBQTBcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0yMC41NTczIDI1LjI2NDRDMjAuNDYyMiAyNS40NDc3IDIwLjUwMTIgMjUuNTkzOSAyMC41MDEyIDI1LjczNEMyMC40OTgyIDI4LjIxNTQgMjAuNTAwMiAzMC42OTU3IDIwLjQ5ODIgMzMuMTc3QzIwLjQ5ODIgMzMuODA5OSAyMC4yMzM5IDM0LjE3MDQgMTkuNzQ2MiAzNC4yMjM0QzE5LjI2NDUgMzQuMjc2NSAxOC44OCAzMy45ODMxIDE4LjgxNjkgMzMuNTAyNUMxOC43OTU5IDMzLjM0NDMgMTguNzk2OSAzMy4xODMgMTguNzk2OSAzMy4wMjM4QzE4Ljc5NTkgMzAuNTgyNiAxOC43OTY5IDI4LjE0MjMgMTguNzk2OSAyNS43MDFDMTguNzk2OSAyNS41NzI4IDE4Ljc5NjkgMjUuNDQ0NyAxOC43OTY5IDI1LjIwMDNDMTguMTk3MSAyNS44MDMxIDE3LjY3NzQgMjYuMzI4OCAxNy4xNTI3IDI2Ljg1MDVDMTcuMDExNSAyNi45OTA3IDE2Ljg2ODMgMjcuMTM0OSAxNi43MDYxIDI3LjI0NzFDMTYuMzU2NiAyNy40ODY0IDE1LjkzNDEgMjcuNDQxMyAxNS42NDU3IDI3LjE1NEMxNS4zNjQzIDI2Ljg3NDYgMTUuMzIwMyAyNi40NDIgMTUuNTQ4NiAyNi4wOTI1QzE1LjYyMDcgMjUuOTgyNCAxNS43MTI4IDI1Ljg4MzIgMTUuODA2OSAyNS43ODkxQzE2Ljg2MTMgMjQuNzMwNyAxNy45MTY3IDIzLjY3MzMgMTguOTczMiAyMi42MTc5QzE5LjQwMTcgMjIuMTg5MyAxOS44Nzg0IDIyLjE3NjMgMjAuMzAzOSAyMi41OTg4QzIxLjM5MTQgMjMuNjgwMyAyMi40NzM5IDI0Ljc2NjcgMjMuNTUzMyAyNS44NTcyQzIzLjk4MDkgMjYuMjg5OCAyNC4wMTI5IDI2LjgwNjUgMjMuNjUzNCAyNy4xNjdDMjMuMjk5IDI3LjUyMTQgMjIuNzc1MyAyNy40ODQ0IDIyLjM0MzcgMjcuMDU2OEMyMS43NDk5IDI2LjQ3IDIxLjE2NjEgMjUuODczMiAyMC41NjAzIDI1LjI2NDRIMjAuNTU3M1pcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjRjlGOUY5XCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImYtMTQgZmMtYmxhY2sgZnctbm9ybWFsXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZjLWNvcmFsIGZ3LW1lZGl1bVwiPnt7ICdicm93c2UnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcy0xMCBmYy1kYXJrLWdyYXlcIj5cclxuICAgICAgICAgIHt7ICdhZGRNdWx0aUF0dGFjaG1lbnRzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICB9XHJcblxyXG4gIEBpZiAoYXR0YWNobWVudHM/Lmxlbmd0aCkge1xyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgZnVsbFwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiYXR0YWNobWVudHNcIlxyXG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiPlxyXG5cclxuICAgICAgICA8IS0tIGluZGV4IENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2Rvd25sb2FkQWxsJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgc3F1YXJlIGljb24gc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRBbGxBdHRhY2htZW50cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb24tYnRuLXNoYWRvd1wiPlxyXG4gICAgICAgICAgICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgPGRzLWljb24gY2xhc3M9XCJzZmkgc2ZpLXNwaW5uZXIgZC1pbmxpbmUtYmxvY2sgc3BpbiBmYy1jb3JhbCBmcy0zMC1pbXBcIj48L2RzLWljb24+XHJcbiAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8ZHMtaWNvblxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZG93bmxvYWRcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZzLTIwIGZzLW1kLTE3IGZjLXB1cnBsZVwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+e3sgaSArIDEgKyBwYWdlU2l6ZSAqIChwYWdlTnVtYmVyKSB9fTwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gTmFtZSBDb2x1bW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmaWxlXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7ICdGaWxlTmFtZScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgPGFwcC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgICAgICAgW2FsbG93ZWRFeHRlbnNpb25zXT1cImFsbG93ZWRFeHRlbnNpb25zXCJcclxuICAgICAgICAgICAgICBbZGlzcGxheWVkRmlsZXNdPVwiW2VsZW1lbnRdXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiYXR0YWNobWVudFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtjdXN0b21Eb3dubG9hZF09XCJjdXN0b21Eb3dubG9hZFwiXHJcbiAgICAgICAgICAgICAgKGRvd25sb2FkQWN0aW9uQ2xpY2tlZCk9XCJjdXN0b21Eb3dubG9hZEFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2FwcC1maWxlLXVwbG9hZGVyPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBEZXNjcmlwdGlvbiBDb2x1bW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57eyAnRmlsZURlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZnctbWVkaXVtIGZjLWJsYWNrIHVuZGVybGluZSBjdXJzb3ItcG9pbnRlciBmcy0xMlwiXHJcbiAgICAgICAgICAgICAgW2hpZGRlbl09XCIhZWxlbWVudD8uWydmaWxlRGVzY3JpcHRpb24nXVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZmlsZURlc2NyaXB0aW9uQW5jaG9yLnBvcG92ZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICBbc2F0UG9wb3ZlckFuY2hvcl09XCJmaWxlRGVzY3JpcHRpb25Qb3BvdmVyXCJcclxuICAgICAgICAgICAgICAjZmlsZURlc2NyaXB0aW9uQW5jaG9yPVwic2F0UG9wb3ZlckFuY2hvclwiXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZWxlbWVudD8uWydmaWxlRGVzY3JpcHRpb24nXVwiPlxyXG4gICAgICAgICAgICAgIHt7IGVsZW1lbnQ/LlsnZmlsZURlc2NyaXB0aW9uJ10/Lmxlbmd0aCA+IDEwID8gKGVsZW1lbnQ/LlsnZmlsZURlc2NyaXB0aW9uJ10gfCBzbGljZSA6IDAgOiAxMCkgKyAnLi4uLicgOiBlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddIH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPHNhdC1wb3BvdmVyXHJcbiAgICAgICAgICAgICAgI2ZpbGVEZXNjcmlwdGlvblBvcG92ZXJcclxuICAgICAgICAgICAgICBbYW5jaG9yXT1cImZpbGVEZXNjcmlwdGlvbkFuY2hvclwiXHJcbiAgICAgICAgICAgICAgW2hhc0JhY2tkcm9wXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtyZXN0b3JlRm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ249XCJiZWxvd1wiXHJcbiAgICAgICAgICAgICAgaG9yaXpvbnRhbEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtcG9wb3ZlciBwLTMgZnMtMTQgdGV4dC1icmVhayB2aWV3LW5vdGUtcG9wb3ZlclwiPlxyXG4gICAgICAgICAgICAgICAgPGJkaSBjbGFzcz1cImZjLWJsYWNrXCI+e3sgZWxlbWVudD8uWydmaWxlRGVzY3JpcHRpb24nXSB9fTwvYmRpPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NhdC1wb3BvdmVyPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBDb21tZW50IENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvbW1lbnRcIj5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3sgJ2NvbW1lbnQnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmdy1tZWRpdW0gZmMtYmxhY2sgdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyIGZzLTEyXCJcclxuICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFlbGVtZW50Py5bJ2F0dGFjaG1lbnRjb21tZW50J11cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGNvbW1lbnRzQW5jaG9yLnBvcG92ZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICBbc2F0UG9wb3ZlckFuY2hvcl09XCJjb21tZW50c1BvcG92ZXJcIlxyXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImVsZW1lbnQ/LlsnYXR0YWNobWVudGNvbW1lbnQnXVwiXHJcbiAgICAgICAgICAgICAgI2NvbW1lbnRzQW5jaG9yPVwic2F0UG9wb3ZlckFuY2hvclwiPlxyXG4gICAgICAgICAgICAgIHt7IGVsZW1lbnQ/LlsnYXR0YWNobWVudGNvbW1lbnQnXT8ubGVuZ3RoID4gMTAgPyAoZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddIHwgc2xpY2UgOiAwIDogMTApICsgJy4uLi4nIDogZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddIH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPHNhdC1wb3BvdmVyXHJcbiAgICAgICAgICAgICAgI2NvbW1lbnRzUG9wb3ZlclxyXG4gICAgICAgICAgICAgIFthbmNob3JdPVwiY29tbWVudHNBbmNob3JcIlxyXG4gICAgICAgICAgICAgIFtoYXNCYWNrZHJvcF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbcmVzdG9yZUZvY3VzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduPVwiYmVsb3dcIlxyXG4gICAgICAgICAgICAgIGhvcml6b250YWxBbGlnbj1cImNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LXBvcG92ZXIgcC0zIGZzLTE0IHRleHQtYnJlYWsgdmlldy1ub3RlLXBvcG92ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxiZGkgY2xhc3M9XCJmYy1ibGFja1wiPnt7IGVsZW1lbnQ/LlsnYXR0YWNobWVudGNvbW1lbnQnXSB9fTwvYmRpPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NhdC1wb3BvdmVyPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICBAaWYgKCFpc1JlYWRPbmx5KSB7XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgc3F1YXJlXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUF0dGFjaG1lbnRzKGksIGVsZW1lbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb24tYnRuLXNoYWRvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJ0cmFzaFwiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtY29yYWxcIj48L2RzLWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHNxdWFyZVxyXG4gICAgICAgICAgICAgICAgICAgIGljb25cclxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0Um93KGVsZW1lbnQsIGkpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb24tYnRuLXNoYWRvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkcy1pY29uIGljb249XCJwZW5cIiBjbGFzcz1cImZzLTIwIGZzLW1kLTE3IGZjLXB1cnBsZVwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxyXG4gICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XHJcbiAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICA8bWF0LXBhZ2luYXRvclxyXG4gICAgICAgICNwYWdpbmF0b3JcclxuICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cIls1XVwiXHJcbiAgICAgICAgKHBhZ2UpPVwib25QYWdpbmF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbbGVuZ3RoXT1cImF0dGFjaG1lbnRzLmxlbmd0aFwiXHJcbiAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgICBzaG93Rmlyc3RMYXN0QnV0dG9ucz48L21hdC1wYWdpbmF0b3I+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIEBpZiAoIWlzUmVhZE9ubHkgJiYgYXR0YWNobWVudHM/Lmxlbmd0aCAmJiBhdHRhY2htZW50cz8ubGVuZ3RoIDwgYXR0YWNobWVudHNNYXgpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBmdWxsIG10LTNcIj5cclxuICAgICAgPGRzLWJ1dHRvblxyXG4gICAgICAgIHNoYXBlPVwie3sgYXR0YWNobWVudHM/Lmxlbmd0aCA/ICdvdXRsaW5lJyA6ICcnIH19XCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7ICdmdWxsLWFkZC1idG4gdy0xMDAgcHQtMSc6IGF0dGFjaG1lbnRzPy5sZW5ndGggfVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFkZEF0dGFjaG1lbnQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgPGRzLWljb24gc2xvdD1cInByZWZpeFwiIGljb249XCJwbHVzXCIgY2xhc3M9XCJmcy0yMiBwYi0xXCI+PC9kcy1pY29uPlxyXG4gICAgICAgIHt7ICdhZGRBdHRhY2htZW50cycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9kcy1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs
CHANGED
|
@@ -49,6 +49,7 @@ export class ControlValueAccessorDirective {
|
|
|
49
49
|
value;
|
|
50
50
|
control;
|
|
51
51
|
required;
|
|
52
|
+
isRequired;
|
|
52
53
|
maxLength;
|
|
53
54
|
isDisabled = false;
|
|
54
55
|
constructor(injector, i18n, toasterService, coreService, sanitizer, fb, actionStateService) {
|
|
@@ -127,7 +128,7 @@ export class ControlValueAccessorDirective {
|
|
|
127
128
|
this.isDisabled = isDisabled;
|
|
128
129
|
}
|
|
129
130
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ControlValueAccessorDirective, deps: [{ token: i0.Injector }, { token: i1.CoreI18nService }, { token: i2.ToastrService }, { token: i1.CoreService }, { token: i3.DomSanitizer }, { token: i4.FormBuilder }, { token: i1.ActionStateService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
130
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ControlValueAccessorDirective, selector: "[appControlValueAccessor]", inputs: { tooltip: "tooltip", isReadOnly: "isReadOnly", hint: "hint", loading: "loading", placeholder: "placeholder", type: "type", showErrorMessage: "showErrorMessage", showHint: "showHint", showIfEmpty: "showIfEmpty", insideTable: "insideTable", mask: "mask", label: "label", matSuffix: "matSuffix", hasTooltip: "hasTooltip", name: "name", randomID: "randomID", multiple: "multiple", maxDate: "maxDate", minDate: "minDate", customMaxDate: "customMaxDate", customMinDate: "customMinDate", required: "required" }, ngImport: i0 });
|
|
131
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ControlValueAccessorDirective, selector: "[appControlValueAccessor]", inputs: { tooltip: "tooltip", isReadOnly: "isReadOnly", hint: "hint", loading: "loading", placeholder: "placeholder", type: "type", showErrorMessage: "showErrorMessage", showHint: "showHint", showIfEmpty: "showIfEmpty", insideTable: "insideTable", mask: "mask", label: "label", matSuffix: "matSuffix", hasTooltip: "hasTooltip", name: "name", randomID: "randomID", multiple: "multiple", maxDate: "maxDate", minDate: "minDate", customMaxDate: "customMaxDate", customMinDate: "customMinDate", required: "required", isRequired: "isRequired" }, ngImport: i0 });
|
|
131
132
|
}
|
|
132
133
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ControlValueAccessorDirective, decorators: [{
|
|
133
134
|
type: Directive,
|
|
@@ -178,5 +179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
178
179
|
type: Input
|
|
179
180
|
}], required: [{
|
|
180
181
|
type: Input
|
|
182
|
+
}], isRequired: [{
|
|
183
|
+
type: Input
|
|
181
184
|
}] } });
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFZLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQW9DLFdBQVcsRUFBd0IsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxVQUFVLEdBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBU2pLLE1BQU0sT0FBTyw2QkFBNkI7SUFrRHJCO0lBQTJCO0lBQzNCO0lBQ0E7SUFBaUM7SUFDakM7SUFDQTtJQW5EVixPQUFPLENBQUM7SUFDUixVQUFVLENBQVU7SUFDcEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNWLE9BQU8sQ0FBVztJQUNsQixXQUFXLENBQVM7SUFDcEIsSUFBSSxDQUFTO0lBQ2IsZ0JBQWdCLENBQVM7SUFDekIsUUFBUSxDQUFTO0lBQ2pCLFdBQVcsQ0FBUztJQUNwQixXQUFXLENBQU07SUFDakIsSUFBSSxDQUFNO0lBQ1YsS0FBSyxDQUFVO0lBQ2YsU0FBUyxDQUFVO0lBQ25CLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsSUFBSSxDQUFVO0lBQ2QsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDbkMsYUFBYSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDbEMsbUJBQW1CLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUN4QyxxQkFBcUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQzFDLGdCQUFnQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDckMsV0FBVyxH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LEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQWlCRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybUNvbnRyb2xOYW1lLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgVmFsaWRhdG9ycyx9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtBY3Rpb25TdGF0ZVNlcnZpY2UsIENvcmVJMThuU2VydmljZSwgQ29yZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtEb21TYW5pdGl6ZXJ9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcbmltcG9ydCB7VG9hc3RyU2VydmljZX0gZnJvbSBcIm5neC10b2FzdHJcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcENvbnRyb2xWYWx1ZUFjY2Vzc29yXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxUeXBlPlxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdFxyXG57XHJcbiAgQElucHV0KCkgdG9vbHRpcDtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpbnQgPSAnJztcclxuICBASW5wdXQoKSBsb2FkaW5nITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93RXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0hpbnQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93SWZFbXB0eTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluc2lkZVRhYmxlOiBhbnk7XHJcbiAgQElucHV0KCkgbWFzazogYW55O1xyXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1hdFN1ZmZpeDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoYXNUb29sdGlwID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSByYW5kb21JRCE6IHN0cmluZztcclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlYXJjaENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICB0b2dnbGVCdXR0b25Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZW1wbG95ZWVTZWFyY2hDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgdGVsZXBob25lQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGF0dGFjaG1lbnRzID0gW107XHJcblxyXG5cclxuICBzdGFydERhdGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZW5kRGF0ZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBWYWxpZGF0b3JzID0gVmFsaWRhdG9ycztcclxuXHJcblxyXG5cclxuXHJcbiAgbWluRGF0ZVZhbHVlOiBhbnlcclxuICBtYXhEYXRlVmFsdWU6IGFueVxyXG4gIEBJbnB1dCgpIG1heERhdGU6IHN0cmluZztcclxuICAvLyBAVmlld0NoaWxkKCdkZWZhdWx0JylcclxuICBwdWJsaWMgZGF0ZXBpY2tlck9iaiE6IGFueTtcclxuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY3VzdG9tTWF4RGF0ZTogYW55XHJcbiAgQElucHV0KCkgY3VzdG9tTWluRGF0ZTogYW55XHJcblxyXG4gIHZhbHVlOiBhbnk7XHJcbiAgY29udHJvbDogRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6Ym9vbGVhbjtcclxuICBtYXhMZW5ndGg6IGFueTtcclxuXHJcbiAgaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsIHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBjb3JlU2VydmljZTogQ29yZVNlcnZpY2UsIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgICAgICAgICAgICBwdWJsaWMgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBhY3Rpb25TdGF0ZVNlcnZpY2U6IEFjdGlvblN0YXRlU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybUNvbnRyb2woKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XHJcbiAgICAgIHN3aXRjaCAoZm9ybUNvbnRyb2wuY29uc3RydWN0b3IpIHtcclxuICAgICAgICBjYXNlIEZvcm1Db250cm9sTmFtZTpcclxuICAgICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuaW5qZWN0b3JcclxuICAgICAgICAgICAgLmdldChGb3JtR3JvdXBEaXJlY3RpdmUpXHJcbiAgICAgICAgICAgIC5nZXRDb250cm9sKGZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sTmFtZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5jb250cm9sID0gKGZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sRGlyZWN0aXZlKVxyXG4gICAgICAgICAgICAuZm9ybSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEZvcm1WYWxpZGF0b3JzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtVmFsaWRhdG9ycygpe1xyXG5cclxuICAgIC8vIHRoaXMucmVxdWlyZWQgPSB0aGlzLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/PyBmYWxzZTtcclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKXtcclxuICAgICAgdGhpcy5zZWFyY2hDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZWVTZWFyY2hDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlYXJjaENvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZWVTZWFyY2hDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG4gICAgICB0aGlzLnNlYXJjaENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmVtcGxveWVlU2VhcmNoQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogVHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgaWYoIXRoaXMudmFsdWUpe1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZUNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgdGhpcy5lbmREYXRlQ29udHJvbC5yZXNldCgpO1xyXG4gICAgICB0aGlzLnRlbGVwaG9uZUNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgdGhpcy50b2dnbGVCdXR0b25Db250cm9sLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudHMgPSBbXTtcclxuICAgICAgdGhpcy5zZWFyY2hDb250cm9sLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZWVTZWFyY2hDb250cm9sLnJlc2V0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZUNvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZT8uc3RhcnREYXRlKTtcclxuICAgICAgdGhpcy5lbmREYXRlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlPy5lbmREYXRlKTtcclxuICAgICAgdGhpcy50b2dnbGVCdXR0b25Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICAgICAgdGhpcy5zZWFyY2hDb250cm9sLnNldFZhbHVlKHZhbHVlWyd2YWx1ZSddKTtcclxuICAgICAgdGhpcy50ZWxlcGhvbmVDb250cm9sLnNldFZhbHVlKHZhbHVlKVxyXG4gICAgICBpZih0aGlzLnZhbHVlWyd2YWx1ZSddID09PSAnJyl7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLnJlc2V0KClcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtcGxveWVlU2VhcmNoQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZVsncGVyc29uTmFtZSddKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbDogVHlwZSB8IG51bGwpID0+IFR5cGUpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gVHlwZSk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbn1cclxuIl19
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFZLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQW9DLFdBQVcsRUFBd0IsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxVQUFVLEdBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBU2pLLE1BQU0sT0FBTyw2QkFBNkI7SUFtRHJCO0lBQTJCO0lBQzNCO0lBQ0E7SUFBaUM7SUFDakM7SUFDQTtJQXBEVixPQUFPLENBQUM7SUFDUixVQUFVLENBQVU7SUFDcEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNWLE9BQU8sQ0FBVztJQUNsQixXQUFXLENBQVM7SUFDcEIsSUFBSSxDQUFTO0lBQ2IsZ0JBQWdCLENBQVM7SUFDekIsUUFBUSxDQUFTO0lBQ2pCLFdBQVcsQ0FBUztJQUNwQixXQUFXLENBQU07SUFDakIsSUFBSSxDQUFNO0lBQ1YsS0FBSyxDQUFVO0lBQ2YsU0FBUyxDQUFVO0lBQ25CLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsSUFBSSxDQUFVO0lBQ2QsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDbkMsYUFBYSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDbEMsbUJBQW1CLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUN4QyxxQkFBcUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQzFDLGdCQUFnQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDckMsV0FBVyxH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dVBBSVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFpQkcsT0FBTztzQkFBZixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtQ29udHJvbERpcmVjdGl2ZSwgRm9ybUNvbnRyb2xOYW1lLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgVmFsaWRhdG9ycyx9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtBY3Rpb25TdGF0ZVNlcnZpY2UsIENvcmVJMThuU2VydmljZSwgQ29yZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtEb21TYW5pdGl6ZXJ9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcbmltcG9ydCB7VG9hc3RyU2VydmljZX0gZnJvbSBcIm5neC10b2FzdHJcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcENvbnRyb2xWYWx1ZUFjY2Vzc29yXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxUeXBlPlxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdFxyXG57XHJcbiAgQElucHV0KCkgdG9vbHRpcDtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpbnQgPSAnJztcclxuICBASW5wdXQoKSBsb2FkaW5nITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93RXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0hpbnQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93SWZFbXB0eTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluc2lkZVRhYmxlOiBhbnk7XHJcbiAgQElucHV0KCkgbWFzazogYW55O1xyXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1hdFN1ZmZpeDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoYXNUb29sdGlwID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSByYW5kb21JRCE6IHN0cmluZztcclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlYXJjaENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICB0b2dnbGVCdXR0b25Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZW1wbG95ZWVTZWFyY2hDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgdGVsZXBob25lQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGF0dGFjaG1lbnRzID0gW107XHJcblxyXG5cclxuICBzdGFydERhdGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZW5kRGF0ZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBWYWxpZGF0b3JzID0gVmFsaWRhdG9ycztcclxuXHJcblxyXG5cclxuXHJcbiAgbWluRGF0ZVZhbHVlOiBhbnlcclxuICBtYXhEYXRlVmFsdWU6IGFueVxyXG4gIEBJbnB1dCgpIG1heERhdGU6IHN0cmluZztcclxuICAvLyBAVmlld0NoaWxkKCdkZWZhdWx0JylcclxuICBwdWJsaWMgZGF0ZXBpY2tlck9iaiE6IGFueTtcclxuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY3VzdG9tTWF4RGF0ZTogYW55XHJcbiAgQElucHV0KCkgY3VzdG9tTWluRGF0ZTogYW55XHJcblxyXG4gIHZhbHVlOiBhbnk7XHJcbiAgY29udHJvbDogRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6Ym9vbGVhbjtcclxuICBASW5wdXQoKSBpc1JlcXVpcmVkOmJvb2xlYW47XHJcbiAgbWF4TGVuZ3RoOiBhbnk7XHJcblxyXG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLCBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyB0b2FzdGVyU2VydmljZTogVG9hc3RyU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgY29yZVNlcnZpY2U6IENvcmVTZXJ2aWNlLCBwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICAgICAgICAgICAgcHVibGljIGZiOiBGb3JtQnVpbGRlcixcclxuICAgICAgICAgICAgICBwdWJsaWMgYWN0aW9uU3RhdGVTZXJ2aWNlOiBBY3Rpb25TdGF0ZVNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2woKTtcclxuICB9XHJcblxyXG4gIHNldEZvcm1Db250cm9sKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpO1xyXG4gICAgICBzd2l0Y2ggKGZvcm1Db250cm9sLmNvbnN0cnVjdG9yKSB7XHJcbiAgICAgICAgY2FzZSBGb3JtQ29udHJvbE5hbWU6XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmluamVjdG9yXHJcbiAgICAgICAgICAgIC5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlKVxyXG4gICAgICAgICAgICAuZ2V0Q29udHJvbChmb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbE5hbWUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMuY29udHJvbCA9IChmb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbERpcmVjdGl2ZSlcclxuICAgICAgICAgICAgLmZvcm0gYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRGb3JtVmFsaWRhdG9ycygpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybVZhbGlkYXRvcnMoKXtcclxuXHJcbiAgICAvLyB0aGlzLnJlcXVpcmVkID0gdGhpcy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz8gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5yZXF1aXJlZCl7XHJcbiAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB0aGlzLmVtcGxveWVlU2VhcmNoQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2hDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICB0aGlzLmVtcGxveWVlU2VhcmNoQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuICAgICAgdGhpcy5zZWFyY2hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5lbXBsb3llZVNlYXJjaENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IFR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIGlmKCF0aGlzLnZhbHVlKXtcclxuICAgICAgdGhpcy5zdGFydERhdGVDb250cm9sLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZUNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgdGhpcy50ZWxlcGhvbmVDb250cm9sLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMudG9nZ2xlQnV0dG9uQ29udHJvbC5yZXNldCgpO1xyXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzID0gW107XHJcbiAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC5yZXNldCgpO1xyXG4gICAgICB0aGlzLmVtcGxveWVlU2VhcmNoQ29udHJvbC5yZXNldCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdGFydERhdGVDb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWU/LnN0YXJ0RGF0ZSk7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZUNvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZT8uZW5kRGF0ZSk7XHJcbiAgICAgIHRoaXMudG9nZ2xlQnV0dG9uQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZVsndmFsdWUnXSk7XHJcbiAgICAgIHRoaXMudGVsZXBob25lQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSlcclxuICAgICAgaWYodGhpcy52YWx1ZVsndmFsdWUnXSA9PT0gJycpe1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5yZXNldCgpXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbXBsb3llZVNlYXJjaENvbnRyb2wuc2V0VmFsdWUodmFsdWVbJ3BlcnNvbk5hbWUnXSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWw6IFR5cGUgfCBudWxsKSA9PiBUeXBlKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IFR5cGUpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2022/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.mjs
CHANGED
|
@@ -127,6 +127,12 @@ export class DocsUploaderComponent extends ControlValueAccessorDirective {
|
|
|
127
127
|
.subscribe(res => {
|
|
128
128
|
if (!this.isReadOnly && this.control.enabled) {
|
|
129
129
|
this.control.reset();
|
|
130
|
+
if (this.required) {
|
|
131
|
+
this.control.setValidators(this.Validators.required);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this.control.setValidators(null);
|
|
135
|
+
}
|
|
130
136
|
}
|
|
131
137
|
});
|
|
132
138
|
}
|
|
@@ -517,4 +523,4 @@ class FileInfo {
|
|
|
517
523
|
this.filesize = filesize;
|
|
518
524
|
}
|
|
519
525
|
}
|
|
520
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9kb2MtdXBsb2FkZXIvZG9jcy11cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9kb2MtdXBsb2FkZXIvZG9jcy11cGxvYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsU0FBUyxFQUNULHNCQUFzQixFQUN0QixVQUFVLEVBRVYsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFZLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDbEYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztB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QXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7O0FBMlh4QixNQUFNLFFBQVE7SUFFSDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBTFQsWUFDUyxRQUFnQixFQUNoQixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsWUFBb0IsRUFDcEIsUUFBZ0I7UUFKaEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ3JCLENBQUM7Q0FDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGVsZXRlRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuLi8uLi9kaWFsb2dzL2RlbGV0ZS1kaWFsb2cvZGVsZXRlLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQge05vb3BTY3JvbGxTdHJhdGVneX0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQge0RvY3VtZW50RmlsZX0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7Rm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNYXRFcnJvciwgTWF0SGludH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZX0gZnJvbSAnLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtNYXRUb29sdGlwfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5pbXBvcnQge0Zvcm1MYWJlbENvbXBvbmVudH0gZnJvbSAnLi4vZm9ybS1sYWJlbC9mb3JtLWxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7VHJhbnNsYXRlUGlwZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmlsZS11cGxvYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3MtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RvY3MtdXBsb2FkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTWF0RXJyb3IsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTWF0SGludCxcclxuICAgIE1hdFRvb2x0aXAsXHJcbiAgICBGb3JtTGFiZWxDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVQaXBlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERvY3NVcGxvYWRlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEb2NzVXBsb2FkZXJDb21wb25lbnQ8VHlwZT4gZXh0ZW5kcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxUeXBlPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBtYXhTaXplRmxhZyA9IHRydWU7XHJcbiAgbWF4U2l6ZVZhbHVlOiBhbnk7XHJcbiAgd3JvbmdFeHRlbnNpb25GbGFnID0gdHJ1ZTtcclxuICBASW5wdXQoKSB1c2VDcm9wOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGZvcm1LZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0xhYmVsID0gdHJ1ZTtcclxuICBASW5wdXQoKSBkb3dubG9hZExpbmsgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QWN0aW9ucyA9IHRydWU7XHJcbiAgQElucHV0KCkgc3R5bGVIZWlnaHQgPSAnJzsgLy8gbWVkaXVtLCBtaW5pXHJcbiAgQElucHV0KCkgZmlsZUlucHV0SGVpZ2h0ID0gJyc7IC8vIG1lZGl1bSwgbWluaVxyXG4gIEBJbnB1dCgpIHN0eWxlV2lkdGggPSAnNic7XHJcbiAgQElucHV0KCkgaGludHMhOiBhbnk7XHJcbiAgQElucHV0KCkgYWxsb3dlZEV4dGVuc2lvbnMgPSAnJztcclxuICBASW5wdXQoKSBjYWxsQXBpOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBkaXNwbGF5ID0gJyc7XHJcbiAgdmFsaWRFeHRlbnNpb24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGF0dGFjaFR5cGUgPSAnJztcclxuICBASW5wdXQoKSBlcnJvciE6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNwbGF5ZWRGaWxlczogRG9jdW1lbnRGaWxlW10gPSBbXTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRUZW1wbGF0ZUF0dGFjaG1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgZmlsZU5vdER1cGxpY2F0ZWQgPSB0cnVlO1xyXG4gIGFsbG93ZWRGaWxlU2l6ZSA9IHRydWU7XHJcbiAgQElucHV0KCkgZ2V0RGF0YUZyb21UZW1wbGF0ZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFsbG93RmlsZUNvbnRlbnRzV2l0aE11bHRpQXR0YWNobWVudHMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZ1tdO1xyXG4gIGZpbGVzaXplOiBzdHJpbmc7XHJcbiAgd3JvbmdGaWxlID0ge1xyXG4gICAgbWltZVR5cGU6IFwiXCIsXHJcbiAgICBmaWxlQ29udGVudHM6IFwiXCIsXHJcbiAgICBmaWxlTmFtZTogdGhpcy5pMThuLmxhbmd1YWdlID09ICdhcicgPyBcItin2YXYqtiv2KfYryDYp9mE2YXZhNmBINiu2KfYt9mJ2KFcIiA6IFwiV3JvbmcgRmlsZSBFeHRlbnNpb25cIixcclxuICAgIG5hbWU6IHRoaXMuaTE4bi5sYW5ndWFnZSA9PSAnYXInID8gXCLYp9mF2KrYr9in2K8g2KfZhNmF2YTZgSDYrtin2LfZidihXCIgOiBcIldyb25nIEZpbGUgRXh0ZW5zaW9uXCJcclxuICB9XHJcbiAgQElucHV0KCkgYWxsQXR0YWNobWVudHMgPSBbXTtcclxuXHJcbiAgdXBsb2FkRm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIHNpZ25UeXBlID0gJ1NpZ24nO1xyXG4gIEBJbnB1dCgpIGN1c3RvbURvd25sb2FkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dTaWduQnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHJpbnRUeXBlID0gJ1ByaW50JztcclxuICBASW5wdXQoKSBzaG93UHJpbnRCdXR0b24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkb3dubG9hZFR5cGUgPSAnRG93bmxvYWQnO1xyXG4gIEBJbnB1dCgpIHNob3dEb3dubG9hZEJ1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHByZXZlbnRGaWxlQ29udGVudHMgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgYWRkU2lnbmF0dXJlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcHJpbnRBY3Rpb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBlbWl0ZWRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZG93bmxvYWRBY3Rpb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIG1heFNpemUgPSAnMTAnO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RmlsZScpIGlucHV0RmlsZTogRWxlbWVudFJlZjtcclxuICBkaWFsb2c6IE1hdERpYWxvZyA9IGluamVjdChNYXREaWFsb2cpXHJcbiAgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRJbWFnZVR5cGVzID0ge1xyXG4gICAganBnOiBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvcGpwZWcnXSxcclxuICAgIEpQRzogWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BqcGVnJ10sXHJcbiAgICBqcGVnOiBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvcGpwZWcnXSxcclxuICAgIHBuZzogWydpbWFnZS9wbmcnXVxyXG4gIH1cclxuXHJcbiAgdmFsaWRJbWdQZGZUeXBlcyA9IHtcclxuICAgIHBkZjogWydhcHBsaWNhdGlvbi9wZGYnXSxcclxuICAgIGpwZzogWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BqcGVnJ10sXHJcbiAgICBKUEc6IFsnaW1hZ2UvanBlZycsICdpbWFnZS9wanBlZyddLFxyXG4gICAganBlZzogWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BqcGVnJ10sXHJcbiAgICBibXA6IFsnaW1hZ2UvYm1wJywgJ2ltYWdlL3gtd2luZG93cy1ibXAnXSxcclxuICAgIHBuZzogWydpbWFnZS9wbmcnXVxyXG4gIH1cclxuXHJcbiAgdmFsaWRGaWxlVHlwZXMgPSB7XHJcbiAgICAncGRmJzogWydhcHBsaWNhdGlvbi9wZGYnXSxcclxuICAgICdkb2MnOiBbJ2FwcGxpY2F0aW9uL21zd29yZCddLFxyXG4gICAgJ2RvY3gnOiBbJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50J10sXHJcbiAgICAncHB0JzogWydhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCddLFxyXG4gICAgJ3BwdHgnOiBbJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nXSxcclxuICAgICdwcHMnOiBbJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50J10sXHJcbiAgICAncHBzeCc6IFsnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvdyddLFxyXG4gICAgJ29kdCc6IFsnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0J10sXHJcbiAgICAneGxzJzogWydhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnXSxcclxuICAgICd4bHN4JzogWydhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCddLFxyXG4gICAgJ3ppcCc6IFsnYXBwbGljYXRpb24vemlwJywgJ2FwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWQnLCAnbXVsdGlwYXJ0L3gtemlwJywgJ2FwcGxpY2F0aW9uL3ppcCddLFxyXG4gICAgJ21zZyc6IFsnYXBwbGljYXRpb24vdm5kLm1zLW91dGxvb2snLCAnYXBwbGljYXRpb24vbXNnJ10sXHJcbiAgICAnY3N2JzogWyd0ZXh0L2NzdiddLFxyXG4gICAgJ3R4dCc6IFsndGV4dC9wbGFpbiddLFxyXG4gICAgJ3J0Zic6IFsnYXBwbGljYXRpb24vcnRmJywgJ2FwcGxpY2F0aW9uL3gtcnRmJywgJ3RleHQvcmljaHRleHQnXSxcclxuICAgICdodG1sJzogWyd0ZXh0L2h0bWwnXSxcclxuICAgIC8vICdtcDQnOiBbJ3ZpZGVvL21wNCddLFxyXG4gICAgLy8gJ200dic6IFsndmlkZW8vbXA0J10sXHJcbiAgICAnbW92JzogWyd2aWRlby9xdWlja3RpbWUnXSxcclxuICAgICd3bXYnOiBbJ3ZpZGVvL3gtbXMtd212J10sXHJcbiAgICAvLyAnYXZpJzogWyd2aWRlby94LW1zdmlkZW8nXSxcclxuICAgICdtcGcnOiBbJ21wZyddLFxyXG4gICAgJ3JtdmInOiBbJ3JtdmInXSxcclxuICAgIC8vICdvZ3YnOiBbJ3ZpZGVvL29nZyddLFxyXG4gICAgLy8gJzNncCc6IFsndmlkZW8vM2dwcCcsICdhdWRpby8zZ3BwJ10sXHJcbiAgICAvLyAnM2cyJzogWyd2aWRlby8zZ3BwMicsICdhdWRpby8zZ3BwJ10sXHJcbiAgICAnanBnJzogWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BqcGVnJ10sXHJcbiAgICAnanBlZyc6IFsnaW1hZ2UvanBlZycsICdpbWFnZS9wanBlZyddLFxyXG4gICAgJ3BuZyc6IFsnaW1hZ2UvcG5nJ10sXHJcbiAgICAnZ2lmJzogWydpbWFnZS9naWYnXSxcclxuICAgICdibXAnOiBbJ2ltYWdlL2JtcCcsICdpbWFnZS94LXdpbmRvd3MtYm1wJ11cclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkUGRmVHlwZXMgPSB7XHJcbiAgICAncGRmJzogWydhcHBsaWNhdGlvbi9wZGYnXSxcclxuICB9XHJcbiAgdXBsb2FkaW5nOiBib29sZWFuO1xyXG4gIGxlbmd0aEVycm9yOiBib29sZWFuO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hdHRhY2htZW50cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYWxsQXR0YWNobWVudHMgPSBbLi4udGhpcy5hdHRhY2htZW50c107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmFjdGlvblN0YXRlU2VydmljZS5yZXNldEFjdGlvbiRcclxuICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaXNSZWFkT25seSAmJiB0aGlzLmNvbnRyb2wuZW5hYmxlZCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5yZXNldCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEZpbGVUeXBlKGF0dGFjaG1lbnQ6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWF0dGFjaG1lbnQuZmlsZU5hbWU/LmluY2x1ZGVzKCcuJykgJiYgYXR0YWNobWVudC5taW1lVHlwZS5pbmNsdWRlcygnLicpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrRmlsZVR5cGUoYXR0YWNobWVudC5taW1lVHlwZSk7XHJcbiAgICB9IGVsc2UgaWYgKGF0dGFjaG1lbnQuZmlsZU5hbWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tGaWxlVHlwZShhdHRhY2htZW50LmZpbGVOYW1lKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhdHRhY2htZW50Lm1pbWVUeXBlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0ZpbGVUeXBlKGF0dGFjaG1lbnREYXRhOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKGF0dGFjaG1lbnREYXRhLnNwbGl0KCcuJykucG9wKCkgPT0gJ21zZycpIHtcclxuICAgICAgcmV0dXJuICdlbWFpbC1pY29uJ1xyXG4gICAgfSBlbHNlIGlmIChhdHRhY2htZW50RGF0YS5zcGxpdCgnLicpLnBvcCgpID09ICdqcGVnJykge1xyXG4gICAgICByZXR1cm4gJ2pwZydcclxuICAgIH0gZWxzZSBpZiAoYXR0YWNobWVudERhdGEuc3BsaXQoJy4nKS5wb3AoKSA9PSAneGxzeCcgfHwgYXR0YWNobWVudERhdGEuc3BsaXQoJy4nKS5wb3AoKSA9PSAneGxzJykge1xyXG4gICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JztcclxuICAgIH1cclxuICAgIHJldHVybiBhdHRhY2htZW50RGF0YS5zcGxpdCgnLicpLnBvcCgpO1xyXG4gIH1cclxuXHJcbiAgYXR0YWNobWVudEFjdGlvbih0eXBlOiBhbnksIGluZGV4OiBudW1iZXIsIGZpZWxkOiBhbnkpIHtcclxuICAgIGlmICh0eXBlID09IFwiZG93bmxvYWRcIikge1xyXG4gICAgICBpZiAodGhpcy5kb3dubG9hZExpbmspIHtcclxuICAgICAgICB3aW5kb3cub3BlbihmaWVsZD8uYXR0YWNobWVudElkLCAnX2JsYW5rJywgJ3RvcD0wLGxlZnQ9MCxoZWlnaHQ9YXV0byx3aWR0aD1hdXRvJyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZmllbGQ/LmF0dGFjaG1lbnRJZCkge1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKHR5cGUsIGZpZWxkKTtcclxuICAgICAgfSBlbHNlIGlmIChmaWVsZD8uZmlsZUNvbnRlbnRzKSB7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGVOZXcoZmllbGQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PSBcImRlbGV0ZVwiKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbGlkRXh0ZW5zaW9uKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybURlbGV0ZShpbmRleClcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRhY2hlZEZpbGUoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZhbGlkRXh0ZW5zaW9uID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uZmlybURlbGV0ZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERlbGV0ZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnY29uZmlybS1kaWFsb2cnXSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG5ldyBOb29wU2Nyb2xsU3RyYXRlZ3koKSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgaWYgKHJldHVyblZhbHVlID09ICd5ZXMnKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVNdWx0aShpbmRleClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdWx0aShpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmRpc3BsYXllZEZpbGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB0aGlzLmFsbEF0dGFjaG1lbnRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZEZpbGVOZXcoZmlsZURhdGE6IGFueSkge1xyXG4gICAgY29uc3QgZmlsZVR5cGUgPSB0aGlzLmdldEZpbGVUeXBlKGZpbGVEYXRhKTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZmlsZURhdGEuZmlsZUNvbnRlbnRzXSwge3R5cGU6IGZpbGVUeXBlfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGJsb2IsIGAke2ZpbGVEYXRhLmZpbGVOYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldDtcclxuICAgIHRoaXMuY29udHJvbC5yZXNldCgpXHJcbiAgICBpZiAoaW5wdXQ/LmZpbGVzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsZUlucHV0KGlucHV0KTtcclxuICAgICAgdGhpcy5wcm9jZXNzVXBsb2FkZWRGaWxlKGlucHV0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRmlsZUlucHV0KGlucHV0OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChpbnB1dC5maWxlcyAmJiB0aGlzLmZvcm1LZXkgPT09ICdUU1YnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZUF0dGFjaG1lbnQuZW1pdChpbnB1dC5maWxlc1swXSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsZTogRmlsZSA9IGlucHV0LmZpbGVzWzBdO1xyXG4gICAgbGV0IGZpbGVUeXBlID0gZmlsZS5uYW1lPy5lbmRzV2l0aChcIi5tc2dcIikgPyAnYXBwbGljYXRpb24vdm5kLm1zLW91dGxvb2snIDogZmlsZS50eXBlO1xyXG5cclxuICAgIGlmICh0aGlzLmFjY2VwdD8ubGVuZ3RoICYmICF0aGlzLmFjY2VwdC5pbmNsdWRlcyhmaWxlVHlwZSkpIHtcclxuICAgICAgYWxlcnQodGhpcy5pMThuLnRyYW5zbGF0ZSgndGhpc0lzSW52YWxpZEZpbGUnKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwbG9hZEZvcm0/LmdldCgnZmlsZScpPy5zZXRWYWx1ZShmaWxlKTtcclxuICAgIHRoaXMudXBsb2FkRm9ybT8uZ2V0KCduYW1lJyk/LnNldFZhbHVlKGZpbGU/Lm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzVXBsb2FkZWRGaWxlKGlucHV0OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy51cGxvYWRpbmcpIHtcclxuICAgICAgY29uc3QgZmlsZURhdGEgPSBuZXcgRmlsZUluZm8oXHJcbiAgICAgICAgaW5wdXQuZmlsZXNbMF0ubmFtZSxcclxuICAgICAgICBpbnB1dC5maWxlc1swXS5uYW1lLFxyXG4gICAgICAgIGlucHV0LmZpbGVzWzBdLnR5cGUsXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgdGhpcy5maWxlc2l6ZVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbGVQcm9wZXJ0aWVzKGlucHV0LCBmaWxlRGF0YSk7XHJcbiAgICAgIGlmICghdGhpcy5sZW5ndGhFcnJvciAmJiArdGhpcy5maWxlc2l6ZSA8ICt0aGlzLm1heFNpemUpIHtcclxuICAgICAgICB0aGlzLmFsbG93ZWRGaWxlU2l6ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy51cGxvYWRWYWxpZEFuZE5vbkR1cGxpY2F0ZUZpbGUoaW5wdXQsIGZpbGVEYXRhKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFsbG93ZWRGaWxlU2l6ZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVGaWxlUHJvcGVydGllcyhpbnB1dDogYW55LCBmaWxlSW5mbzogRmlsZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMubWF4U2l6ZVZhbHVlID0gdGhpcy5tYXhTaXplID8gdGhpcy5tYXhTaXplIDogMTtcclxuICAgIHRoaXMuZmlsZXNpemUgPSAoKGlucHV0LmZpbGVzWzBdLnNpemUgLyAxMDI0KSAvIDEwMjQpLnRvRml4ZWQoNCk7XHJcbiAgICB0aGlzLm1heFNpemVGbGFnID0gK3RoaXMuZmlsZXNpemUgPCArdGhpcy5tYXhTaXplO1xyXG4gICAgdGhpcy5sZW5ndGhFcnJvciA9IHRoaXMuZGlzcGxheWVkRmlsZXM/Lmxlbmd0aCA+PSArdGhpcy5tYXhMZW5ndGg7XHJcbiAgICB0aGlzLndyb25nRXh0ZW5zaW9uRmxhZyA9IHRoaXMuaXNWYWxpZE1pbWVUeXBlKGlucHV0LmZpbGVzWzBdLnR5cGUpO1xyXG4gICAgdGhpcy52YWxpZEV4dGVuc2lvbiA9IHRoaXMuaXNWYWxpZEV4dGVuc2lvbihpbnB1dC5maWxlc1swXS5uYW1lLnNwbGl0KCcuJykucG9wKCksIHRoaXMudHlwZSk7XHJcbiAgICB0aGlzLnZhbHVlID0gZmlsZUluZm87XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwbG9hZFZhbGlkQW5kTm9uRHVwbGljYXRlRmlsZShpbnB1dDogYW55LCBmaWxlRGF0YTogRmlsZUluZm8pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZhbGlkRXh0ZW5zaW9uKSB7XHJcbiAgICAgIGlmICh0aGlzLmdldERhdGFGcm9tVGVtcGxhdGUpIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZUF0dGFjaG1lbnQuZW1pdChpbnB1dCk7XHJcbiAgICAgIHRoaXMucmVhZEZpbGVBbmRVcGxvYWQoaW5wdXQuZmlsZXNbMF0sIGZpbGVEYXRhKTtcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5lbWl0RW1wdHlGaWxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRGaWxlQW5kVXBsb2FkKGZpbGU6IEZpbGUsIGZpbGVJbmZvOiBGaWxlSW5mbyk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IChyZWFkZXIucmVzdWx0IGFzIHN0cmluZykuc3BsaXQoJywnKVsxXTtcclxuICAgICAgZmlsZUluZm8uZmlsZUNvbnRlbnRzID0gZmlsZUNvbnRlbnRzO1xyXG4gICAgICBmaWxlSW5mby5maWxlc2l6ZSA9IHRoaXMuZmlsZXNpemU7XHJcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMudXBsb2FkU2luZ2xlRmlsZShmaWxlQ29udGVudHMsIGZpbGVJbmZvKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRmlsZU5vdER1cGxpY2F0ZShmaWxlSW5mbykpIHtcclxuICAgICAgICB0aGlzLmFkZE11bHRpQXR0YWNobWVudHMoZmlsZUluZm8pO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwbG9hZFNpbmdsZUZpbGUoZmlsZUNvbnRlbnRzOiBzdHJpbmcsIGZpbGVJbmZvOiBGaWxlSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlTm90RHVwbGljYXRlZCA9IHRoaXMuaXNGaWxlTm90RHVwbGljYXRlKGZpbGVJbmZvKTtcclxuICAgIGlmICghdGhpcy5maWxlTm90RHVwbGljYXRlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlLmZpbGVDb250ZW50cyA9IGZpbGVDb250ZW50cztcclxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlKVxyXG4gICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMudmFsdWUpXHJcbiAgICBpZiAodGhpcy5jYWxsQXBpKSB7XHJcbiAgICAgIHRoaXMuYWRkQXR0YWNobWVudHMoKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlQXR0YWNobWVudC5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0RW1wdHlGaWxlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZW1wdHlPYmogPSB7XHJcbiAgICAgIG1pbWVUeXBlOiBcIlwiLFxyXG4gICAgICBmaWxlQ29udGVudHM6IFwiXCIsXHJcbiAgICAgIGZpbGVOYW1lOiBcIlwiLFxyXG4gICAgfVxyXG4gICAgdGhpcy5lbWl0KGVtcHR5T2JqKVxyXG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlQXR0YWNobWVudC5lbWl0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0F0dGFjaG1lbnRzKGZpZWxkOiBhbnksIGFsbG93TXVsdGlBdHRhY2htZW50czogYm9vbGVhbikge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgXCJmaWxlRGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgXCJhdHRhY2htZW50Y29tbWVudFwiOiBcIlwiLFxyXG4gICAgICBcImZpbGVOYW1lXCI6IGZpZWxkLmZpbGVOYW1lLFxyXG4gICAgICBcIm1pbWVUeXBlXCI6IGZpZWxkLm1pbWVUeXBlLFxyXG4gICAgICBcImZpbGVDb250ZW50c1wiOiBmaWVsZC5maWxlQ29udGVudHMsXHJcbiAgICB9XHJcbiAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNvcmVTZXJ2aWNlLmdldEF0dGFjaG1lbnRzKGRhdGEpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICApLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChmb3JtOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdPYmogPSB7XHJcbiAgICAgICAgICBcImZpbGVOYW1lXCI6IGZpZWxkLmZpbGVOYW1lLFxyXG4gICAgICAgICAgXCJhdHRhY2htZW50SWRcIjogZm9ybS5hdHRhY2htZW50LmF0dGFjaG1lbnRJZCxcclxuICAgICAgICAgIFwibWltZVR5cGVcIjogZm9ybS5hdHRhY2htZW50Lm1pbWVUeXBlLFxyXG4gICAgICAgICAgXCJmaWxlQ29udGVudHNcIjogZmllbGQuZmlsZUNvbnRlbnRzXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhbGxvd011bHRpQXR0YWNobWVudHMpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmFsbG93RmlsZUNvbnRlbnRzV2l0aE11bHRpQXR0YWNobWVudHMpIG5ld09ialsnZmlsZUNvbnRlbnRzJ10gPSBmaWVsZC5maWxlQ29udGVudHM7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXllZEZpbGVzID0gdGhpcy5kaXNwbGF5ZWRGaWxlcz8ubGVuZ3RoID8gdGhpcy5kaXNwbGF5ZWRGaWxlcyA6IFtdXHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXllZEZpbGVzLnB1c2gobmV3T2JqKTtcclxuICAgICAgICAgIHRoaXMuYWxsQXR0YWNobWVudHMucHVzaChuZXdPYmopO1xyXG4gICAgICAgICAgdGhpcy5lbWl0KHRoaXMuZGlzcGxheWVkRmlsZXMpO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMuZGlzcGxheWVkRmlsZXMpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShuZXdPYmopXHJcbiAgICAgICAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQobmV3T2JqKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgZXJyPy5lcnJvcj8ubWV0YT8ubWVzc2FnZXM/LmZvckVhY2goKG1zZykgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihtc2cubWVzc2FnZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkQXR0YWNobWVudHMoKSB7XHJcbiAgICB0aGlzLnByb2Nlc3NBdHRhY2htZW50cyh0aGlzLmNvbnRyb2wudmFsdWUsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGFkZE11bHRpQXR0YWNobWVudHMoZmllbGQ6IGFueSkge1xyXG4gICAgdGhpcy5wcm9jZXNzQXR0YWNobWVudHMoZmllbGQsIHRydWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIGlzRmlsZU5vdER1cGxpY2F0ZShmaWxlOiBGaWxlSW5mbyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuYWxsQXR0YWNobWVudHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5hbGxBdHRhY2htZW50cz8uZmluZEluZGV4KCgkZmlsZSkgPT4gKGZpbGUuZmlsZU5hbWUgPT09ICRmaWxlLmZpbGVOYW1lKSkgPT09IC0xO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgaXNWYWxpZE1pbWVUeXBlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmF0dGFjaFR5cGUgPT0gJ3BkZicpIHtcclxuICAgICAgcmV0dXJuIChbXSBhcyBzdHJpbmdbXSkuY29uY2F0KC4uLk9iamVjdC52YWx1ZXModGhpcy52YWxpZFBkZlR5cGVzKSkuaW5jbHVkZXModmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmF0dGFjaFR5cGUgPT0gJ2ltYWdlJykge1xyXG4gICAgICByZXR1cm4gKFtdIGFzIHN0cmluZ1tdKS5jb25jYXQoLi4uT2JqZWN0LnZhbHVlcyh0aGlzLnZhbGlkSW1hZ2VUeXBlcykpLmluY2x1ZGVzKHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkRXh0ZW5zaW9uKHZhbHVlOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKHR5cGUgPT0gJ2ltYWdlJykge1xyXG4gICAgICByZXR1cm4gW10uY29uY2F0KC4uLk9iamVjdC5rZXlzKHRoaXMudmFsaWRJbWFnZVR5cGVzKSkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJpbWFnZVBkZlwiKSB7XHJcbiAgICAgIHJldHVybiBbXS5jb25jYXQoLi4uT2JqZWN0LmtleXModGhpcy52YWxpZEltZ1BkZlR5cGVzKSkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwicGRmXCIpIHtcclxuICAgICAgcmV0dXJuIFtdLmNvbmNhdCguLi5PYmplY3Qua2V5cyh0aGlzLnZhbGlkUGRmVHlwZXMpKS5pbmNsdWRlcyh2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBbXS5jb25jYXQoLi4uT2JqZWN0LmtleXModGhpcy52YWxpZEZpbGVUeXBlcykpLmluY2x1ZGVzKHZhbHVlLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQXR0YWNoZWRGaWxlKCkge1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG5ldyBGaWxlSW5mbyhudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsKSlcclxuICAgIGlmICh0aGlzLmlucHV0RmlsZSkge1xyXG4gICAgICB0aGlzLmlucHV0RmlsZS5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdCh0aGlzLnZhbHVlKVxyXG4gICAgdGhpcy5jb250cm9sLnJlc2V0KClcclxuICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZUF0dGFjaG1lbnQuZW1pdChudWxsKTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkRmlsZShldmVudCwgZmllbGQpIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbURvd25sb2FkKSB7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRBY3Rpb25DbGlja2VkLmVtaXQoZmllbGQpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvcmVTZXJ2aWNlLmxvYWRGaWxlKGZpZWxkLmF0dGFjaG1lbnRJZCkucGlwZShcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgICApLnN1YnNjcmliZShcclxuICAgICAgICAocmVzcG9uc2VPYmplY3Q6IHsgYm9keTogYW55OyB9KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBmaWxlSW5mb3JtYXRpb24gPSByZXNwb25zZU9iamVjdC5ib2R5O1xyXG4gICAgICAgICAgdGhpcy5jb3JlU2VydmljZS5zYXZlRmlsZShmaWxlSW5mb3JtYXRpb24pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycm9yLmVycm9yPy5bJ21lc3NhZ2UnXSlcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0PFQ+KHZhbHVlOiBUIHwgVFtdKSB7XHJcbiAgICBpZiAodGhpcy5wcmV2ZW50RmlsZUNvbnRlbnRzKSB7XHJcbiAgICAgIHZhbHVlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gICAgICB0aGlzLmRlbGV0ZUZpbGVDb250ZW50cyh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlbGV0ZUZpbGVDb250ZW50cyhkYXRhOiBhbnkpIHtcclxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ2ZpbGVDb250ZW50cycgaW4gZGF0YSkge1xyXG4gICAgICBkZWxldGUgZGF0YS5maWxlQ29udGVudHM7XHJcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgZGF0YS5mb3JFYWNoKGVsZW0gPT4gdGhpcy5kZWxldGVGaWxlQ29udGVudHMoZWxlbSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuY2xhc3MgRmlsZUluZm8ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGZpbGVOYW1lOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxyXG4gICAgcHVibGljIG1pbWVUeXBlOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZmlsZUNvbnRlbnRzOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZmlsZXNpemU6IHN0cmluZ1xyXG4gICkgeyB9XHJcbn1cclxuIiwiQGlmICghaXNSZWFkT25seSkge1xyXG4gIDxuZy1jb250YWluZXI+XHJcbiAgICBAaWYobGFiZWwpIHtcclxuICAgICAgPGFwcC1mb3JtLWxhYmVsIFtsYWJlbF09XCJsYWJlbFwiIFtvcHRpb25hbF09XCIhcmVxdWlyZWRcIiBbdG9vbHRpcF09XCJ0b29sdGlwXCI+PC9hcHAtZm9ybS1sYWJlbD5cclxuICAgIH1cclxuICAgIDxzZWN0aW9uXHJcbiAgICAoY2xpY2spPVwiZmlsZUF0dGFjaGVkLmNsaWNrKClcIlxyXG4gICAgICBbbmdDbGFzc109XCJpbnNpZGVUYWJsZSA/ICdmaWxlLXVwbG9hZGVyLXRhYmxlJyA6ICdmaWxlLXVwbG9hZGVyJ1wiIGNsYXNzPVwiIG1iLTJcIlxyXG4gICAgICBbY2xhc3MuaW5zaWRlVGFibGVTdHlsZV09XCJpbnNpZGVUYWJsZVwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgW25nQ2xhc3NdPVwiaW5zaWRlVGFibGUgPyAnZmlsZS11cGxvYWRlci10YWJsZS1kZXYnIDogJydcIiBjbGFzcz1cImZpbGUtdXBsb2FkZXItaW5wdXRcIlxyXG4gICAgICAgID5cclxuICAgICAgICBAaWYgKCF1cGxvYWRpbmcpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uIG1iLTFcIj5cclxuICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImluc2lkZVRhYmxlID8gJ2ZpbGUtdXBsb2FkZXItdGFibGUtc3ZnJyA6ICcnXCIgd2lkdGg9XCI0MVwiIGhlaWdodD1cIjM4XCIgdmlld0JveD1cIjAgMCA0MSAzOFwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMCAyMi4xOTQ3VjIwLjY3MzZDMC4wOTcxMzAzIDIwLjEwMTkgMC4wNzAwOTQgMTkuNTE0MSAwLjI3NjM3MSAxOC45NTMzQzEuMjgzNzIgMTYuMjA4NiAzLjIxMjMxIDE0LjUwMjMgNi4wNDIxIDEzLjgwOTRDNi43MDQ5OSAxMy42NDcyIDYuNjg0OTcgMTMuNjYzMiA2LjY5ODk5IDEyLjk4NDNDNi43MzIwMyAxMS4zMzIxIDYuOTk4MzkgOS43MTk5MiA3LjYyNDIzIDguMTc5ODZDOC44NjI4OSA1LjEzNjc4IDEwLjk0NjcgMi44Mzk2OSAxMy44ODE2IDEuMzkxNzVDMTcuMTY4IC0wLjIzMDQyNCAyMC41OTU2IC0wLjQ1MDcxOSAyNC4wNTUzIDAuODE1OThDMjcuNDkyOSAyLjA3NDY3IDI5Ljk2MjIgNC40MTU4MSAzMS40ODAyIDcuNzQ4MjhDMzEuNzc4NiA4LjQwMzE2IDMyLjAyNyA5LjA4MzA3IDMyLjE3MTIgOS43OTIwMkMzMi4yNDAyIDEwLjEzMTUgMzIuNDAzNSAxMC4yNTY2IDMyLjc1MjkgMTAuMzEwN0MzNi43MDEyIDEwLjkxNjUgMzkuMzM1OCAxMy4xMjU1IDQwLjY5NDYgMTYuODczNUM0MC45MDY5IDE3LjQ2MDMgNDAuOTE5OSAxOC4wNzMxIDQwLjk1OTkgMTguNjgyOUM0MC45NjQ5IDE4Ljc2MDEgNDAuOTM4OSAxOC44NDQyIDQxIDE4LjkxMTNWMjAuNTEyNEM0MC45MTA5IDIwLjk5NSA0MC45NjkgMjEuNDkzNyA0MC44NjA4IDIxLjk3MzRDNDAuNTI0NCAyMy40NjE0IDM5Ljg0NTQgMjQuNzgyMSAzOC44NTAxIDI1LjkyOTdDMzcuNDUyMiAyNy41NDE4IDM1LjcwNTkgMjguNTg4MiAzMy42MTYxIDI5LjA1MTlDMzIuNzkxIDI5LjIzNTEgMzEuOTQ5OSAyOS4yNTIxIDMxLjExMTcgMjkuMjkyMkMzMC42NTcxIDI5LjMxNDIgMzAuNTg0IDI5LjE5MyAzMC41OTIgMjguNzQ4NEMzMC42NDUxIDI1Ljg0NDYgMjkuODAyIDIzLjI1NzEgMjcuODYyNCAyMS4wNTkxQzI1Ljk5NzkgMTguOTQ2MyAyMy42NTk3IDE3LjcxNjcgMjAuODY3IDE3LjQwMTJDMTguODU1MyAxNy4xNzM5IDE2LjkwNTcgMTcuNDU5MyAxNS4wNjEyIDE4LjMzOTVDMTEuODMxOSAxOS44ODE2IDkuODE0MTYgMjIuNDA2OSA4Ljk2MTAyIDI1Ljg2OTZDOC43NDI3MyAyNi43NTM4IDguNjgyNjUgMjcuNjU4IDguNzA1NjggMjguNTcwMkM4LjcyMTcgMjkuMjExMSA4LjYwMjU0IDI5LjMxMjIgNy45NTk2OCAyOS4yOTcyQzUuOTUwOTggMjkuMjUxMSA0LjEwNTUxIDI4LjcyMzQgMi41ODE0NiAyNy4zNTk2QzEuMDc2NDQgMjYuMDE2OCAwLjA2ODA5MTMgMjQuMzk5NiAwLjA0MDA1MzcgMjIuMzAyOEMwLjA0MDA1MzcgMjIuMjYwNyAwLjAyNTAzMzYgMjIuMjI1NyAwIDIyLjE5MzdWMjIuMTk0N1pcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNERUUwRTJcIi8+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMjkuMDMwMyAyOC4yNjMyQzI5LjA2MDQgMzMuNDAzMSAyNC44NjU3IDM3LjYxODcgMTkuNjgzOCAzNy42NTQ4QzE0LjUxNjkgMzcuNjkwOCAxMC4yODUyIDMzLjQ5NTIgMTAuMjUyMSAyOC4zMDQyQzEwLjIyMDEgMjMuMTQwMyAxNC40Mjk3IDE4LjkxMjYgMTkuNjIyNyAxOC44OTQ2QzI0LjgwMzcgMTguODc2NiAyOC45OTkzIDIzLjA1NDIgMjkuMDMwMyAyOC4yNjMyWlwiXHJcbiAgICAgICAgICAgICAgICBmaWxsPVwiIzhFOUFBMFwiLz5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0yMC41NTczIDI1LjI2NDRDMjAuNDYyMiAyNS40NDc3IDIwLjUwMTIgMjUuNTkzOSAyMC41MDEyIDI1LjczNEMyMC40OTgyIDI4LjIxNTQgMjAuNTAwMiAzMC42OTU3IDIwLjQ5ODIgMzMuMTc3QzIwLjQ5ODIgMzMuODA5OSAyMC4yMzM5IDM0LjE3MDQgMTkuNzQ2MiAzNC4yMjM0QzE5LjI2NDUgMzQuMjc2NSAxOC44OCAzMy45ODMxIDE4LjgxNjkgMzMuNTAyNUMxOC43OTU5IDMzLjM0NDMgMTguNzk2OSAzMy4xODMgMTguNzk2OSAzMy4wMjM4QzE4Ljc5NTkgMzAuNTgyNiAxOC43OTY5IDI4LjE0MjMgMTguNzk2OSAyNS43MDFDMTguNzk2OSAyNS41NzI4IDE4Ljc5NjkgMjUuNDQ0NyAxOC43OTY5IDI1LjIwMDNDMTguMTk3MSAyNS44MDMxIDE3LjY3NzQgMjYuMzI4OCAxNy4xNTI3IDI2Ljg1MDVDMTcuMDExNSAyNi45OTA3IDE2Ljg2ODMgMjcuMTM0OSAxNi43MDYxIDI3LjI0NzFDMTYuMzU2NiAyNy40ODY0IDE1LjkzNDEgMjcuNDQxMyAxNS42NDU3IDI3LjE1NEMxNS4zNjQzIDI2Ljg3NDYgMTUuMzIwMyAyNi40NDIgMTUuNTQ4NiAyNi4wOTI1QzE1LjYyMDcgMjUuOTgyNCAxNS43MTI4IDI1Ljg4MzIgMTUuODA2OSAyNS43ODkxQzE2Ljg2MTMgMjQuNzMwNyAxNy45MTY3IDIzLjY3MzMgMTguOTczMiAyMi42MTc5QzE5LjQwMTcgMjIuMTg5MyAxOS44Nzg0IDIyLjE3NjMgMjAuMzAzOSAyMi41OTg4QzIxLjM5MTQgMjMuNjgwMyAyMi40NzM5IDI0Ljc2NjcgMjMuNTUzMyAyNS44NTcyQzIzLjk4MDkgMjYuMjg5OCAyNC4wMTI5IDI2LjgwNjUgMjMuNjUzNCAyNy4xNjdDMjMuMjk5IDI3LjUyMTQgMjIuNzc1MyAyNy40ODQ0IDIyLjM0MzcgMjcuMDU2OEMyMS43NDk5IDI2LjQ3IDIxLjE2NjEgMjUuODczMiAyMC41NjAzIDI1LjI2NDRIMjAuNTU3M1pcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGOUY5RjlcIi8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAodXBsb2FkaW5nKSB7XHJcbiAgICAgICAgICA8ZHMtaWNvbiBjbGFzcz1cInNmaSBzZmktc3Bpbm5lciBkLWlubGluZS1ibG9jayBzcGluIGZjLWNvcmFsIGZzLTMwLWltcFwiPjwvZHMtaWNvbj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmLTE0IGZjLWJsYWNrIGZ3LW5vcm1hbFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYy1jb3JhbCBmdy1tZWRpdW1cIj57eyAnYnJvd3NlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMTAgZmMtZGFyay1ncmF5XCI+XHJcbiAgICAgICAgICB7eyBhbGxvd2VkRXh0ZW5zaW9ucyA/IGFsbG93ZWRFeHRlbnNpb25zIDogJycgfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgI2lucHV0RmlsZSBbYWNjZXB0XT1cImFjY2VwdFwiIGNsYXNzPVwiZC1ub25lXCIgI2ZpbGVBdHRhY2hlZCAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICBAaWYgKGhpbnRzKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zIG1iLTNcIj5cclxuICAgICAgICBAZm9yIChoaW50IG9mIGhpbnRzOyB0cmFjayBoaW50KSB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBmcy0xMlwiPlxyXG4gICAgICAgICAgICAgIDxkcy1pY29uXHJcbiAgICAgICAgICAgICAgICBpY29uPVwie3sgaGludC52YWxpZCA/ICdjaGVjay1jaXJjbGUtZicgOiAnY2hlY2stY2lyY2xlLW8nIH19XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZnMtMjQge3sgaGludC52YWxpZCA/ICdmYy1ncmVlbicgOiAnZmMtZGFyay1ncmF5JyB9fVwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7IGhpbnQudmFsaWQgPyAnZmMtYmxhY2snIDogJ2ZjLWRhcmstZ3JheScgfX1cIj57eyBoaW50LmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChoaW50KSB7XHJcbiAgICAgIDxtYXQtaGludCBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIj5cclxuICAgICAgICA8ZHMtaWNvbiBpY29uPVwiaW5mb1wiIGNsYXNzPVwiZnMtMTcgZmMtZGFyay1ncmF5XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTIgZmMtYmxhY2sgbGluZS1oZWlnaHQtMVwiPnt7IGhpbnQgfX08L3NwYW4+XHJcbiAgICAgIDwvbWF0LWhpbnQ+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChtdWx0aXBsZSkge1xyXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImZpbGVzLWxpc3RcIj5cclxuICAgICAgICBAZm9yIChmaWxlIG9mIGRpc3BsYXllZEZpbGVzOyB0cmFjayBmaWxlOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRzLWF0dGFjaG1lbnRzXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZmlsZT8uZmlsZU5hbWVcIlxyXG4gICAgICAgICAgICAgIFtmaWxlXT1cInsgbmFtZTogZmlsZS5maWxlTmFtZSB9XCJcclxuICAgICAgICAgICAgICAoZG93bmxvYWRFdmVudCk9XCJhdHRhY2htZW50QWN0aW9uKCdkb3dubG9hZCcsIGksIGZpbGUpXCJcclxuICAgICAgICAgICAgICAoZGVsZXRlRXZlbnQpPVwiYXR0YWNobWVudEFjdGlvbignZGVsZXRlJywgaSwgZmlsZSlcIlxyXG4gICAgICAgICAgICAgIFtzaG93QWN0aW9uc109XCJzaG93QWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8L2RzLWF0dGFjaG1lbnRzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICghbXVsdGlwbGUgJiYgKGNvbnRyb2w/LnZhbHVlPy5maWxlQ29udGVudHMgfHwgY29udHJvbD8udmFsdWU/LmF0dGFjaG1lbnRJZCkpIHtcclxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJmaWxlcy1saXN0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbS1jb250YWluZXIgZmlsZS1pdGVtLWNvbnRhaW5lci1hY3Rpb25zXCI+XHJcbiAgICAgICAgICA8ZHMtYXR0YWNobWVudHNcclxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29udHJvbD8udmFsdWU/LmZpbGVOYW1lXCJcclxuICAgICAgICAgICAgW2ZpbGVdPVwieyBuYW1lOiBjb250cm9sPy52YWx1ZS5maWxlTmFtZSB9XCJcclxuICAgICAgICAgICAgKGRvd25sb2FkRXZlbnQpPVwiYXR0YWNobWVudEFjdGlvbignZG93bmxvYWQnLCBudWxsLCBjb250cm9sPy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAoZGVsZXRlRXZlbnQpPVwiYXR0YWNobWVudEFjdGlvbignZGVsZXRlJywgbnVsbCwgY29udHJvbD8udmFsdWUpXCJcclxuICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cInNob3dBY3Rpb25zXCI+XHJcbiAgICAgICAgICA8L2RzLWF0dGFjaG1lbnRzPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzLWVycm9yXCI+XHJcbiAgICAgIEBpZiAoIXZhbGlkRXh0ZW5zaW9uKSB7XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJmaWxlcy1saXN0IG10LTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWl0ZW0tY29udGFpbmVyIFwiPlxyXG4gICAgICAgICAgICA8ZHMtYXR0YWNobWVudHNcclxuICAgICAgICAgICAgICBbZmlsZV09XCJ3cm9uZ0ZpbGVcIiBlcnJvciBbc2hvd0FjdGlvbnNdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPC9kcy1hdHRhY2htZW50cz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmICghYWxsb3dlZEZpbGVTaXplKSB7XHJcbiAgICAgICAgPG1hdC1lcnJvciBjbGFzcz1cImZzLTEyIG15LTJcIj5cclxuICAgICAgICAgIHt7IG1heFNpemUgPT09IFwiMC4zXCIgPyAoJ3N1cHBvcnQzJyB8IHRyYW5zbGF0ZSApOiAoJ3N1cHBvcnQyJyB8IHRyYW5zbGF0ZSkgKyBtYXhTaXplICsgKCdtYicgfCB0cmFuc2xhdGUpIH19XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAoIWZpbGVOb3REdXBsaWNhdGVkKSB7XHJcbiAgICAgICAgPG1hdC1lcnJvciBjbGFzcz1cImZzLTEyIG15LTJcIj57eyAnZHVwbGljYXRlZC1lcnJvcicgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmIChsZW5ndGhFcnJvcikge1xyXG4gICAgICAgIDxtYXQtZXJyb3IgY2xhc3M9XCJmcy0xMlwiPnt7ICdsZW5ndGhFcnJvcicgfCB0cmFuc2xhdGUgfX0gOnt7IG1heExlbmd0aCB9fTwvbWF0LWVycm9yPlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgKHNob3dFcnJvck1lc3NhZ2UpIHtcclxuICAgICAgICA8IS0tIDxtYXQtZXJyb3IgY2xhc3M9XCJmcy0xMlwiPnt7ZXJyb3JNZXNzYWdlfX0gPC9tYXQtZXJyb3I+IC0tPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxufVxyXG5cclxuQGlmIChpc1JlYWRPbmx5KSB7XHJcbiAgPG5nLWNvbnRhaW5lcj5cclxuICAgIEBpZiAobXVsdGlwbGUgJiYgZGlzcGxheWVkRmlsZXMpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCI+XHJcbiAgICAgICAgICBAaWYgKGxhYmVsKSB7XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPnt7IGxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGlmIChkaXNwbGF5ZWRGaWxlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgIEBmb3IgKGZpbGUgb2YgZGlzcGxheWVkRmlsZXM7IHRyYWNrIGZpbGU7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pdGVtLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZHMtYXR0YWNobWVudHNcclxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJmaWxlPy5maWxlTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteS0yXCIgW2ZpbGVdPVwieyBuYW1lOiBmaWxlLmZpbGVOYW1lIH1cIiByZWFkT25seSAoZG93bmxvYWRFdmVudCk9XCJkb3dubG9hZEZpbGUoJGV2ZW50LCBmaWxlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cInNob3dBY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZHMtYXR0YWNobWVudHM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoIWRpc3BsYXllZEZpbGVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXNjXCI+XHJcbiAgICAgICAgICAgICAge3sgJ05vQXR0YWNobWVudHMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICghbXVsdGlwbGUgJiYgKGNvbnRyb2w/LnZhbHVlPy5bJ2F0dGFjaG1lbnRJZCddIHx8IGNvbnRyb2w/LnZhbHVlPy5bJ2ZpbGVDb250ZW50cyddKSkge1xyXG4gICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIj5cclxuICAgICAgICAgIEBpZiAobGFiZWwpIHtcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzYyBmaWxlLWl0ZW0tY29udGFpbmVyIGZpbGUtaXRlbS1jb250YWluZXItYWN0aW9uc1wiIFtuZ0NsYXNzXT1cInsnaW5zaWRlVGFibGVXaWR0aCc6IGluc2lkZVRhYmxlfVwiPlxyXG4gICAgICAgICAgICBAaWYgKGNvbnRyb2w/LnZhbHVlPy5bJ2F0dGFjaG1lbnRJZCddIHx8IGNvbnRyb2w/LnZhbHVlPy5bJ2ZpbGVDb250ZW50cyddKSB7XHJcbiAgICAgICAgICAgICAgPGRzLWF0dGFjaG1lbnRzXHJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJjb250cm9sPy52YWx1ZT8uZmlsZU5hbWVcIiBbZmlsZV09XCJ7IG5hbWU6IGNvbnRyb2w/LnZhbHVlLmZpbGVOYW1lIH1cIiBbc2hvd0FjdGlvbnNdPVwic2hvd0FjdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgKGRvd25sb2FkRXZlbnQpPVwiYXR0YWNobWVudEFjdGlvbignZG93bmxvYWQnLCBudWxsLCBjb250cm9sPy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgKGRlbGV0ZUV2ZW50KT1cImF0dGFjaG1lbnRBY3Rpb24oJ2RlbGV0ZScsIG51bGwsIGNvbnRyb2w/LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICByZWFkT25seT5cclxuICAgICAgICAgICAgICA8L2RzLWF0dGFjaG1lbnRzPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbn0iXX0=
|
|
526
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9kb2MtdXBsb2FkZXIvZG9jcy11cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9kb2MtdXBsb2FkZXIvZG9jcy11cGxvYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsU0FBUyxFQUNULHNCQUFzQixFQUN0QixVQUFVLEVBRVYsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFZLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDbEYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztB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QkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0cscUNBQXFDO3NCQUE3QyxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFRRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVzs7QUFtWXhCLE1BQU0sUUFBUTtJQUVIO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFMVCxZQUNTLFFBQWdCLEVBQ2hCLElBQVksRUFDWixRQUFnQixFQUNoQixZQUFvQixFQUNwQixRQUFnQjtRQUpoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDckIsQ0FBQztDQUNOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEZWxldGVEaWFsb2dDb21wb25lbnR9IGZyb20gJy4uLy4uL2RpYWxvZ3MvZGVsZXRlLWRpYWxvZy9kZWxldGUtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Tm9vcFNjcm9sbFN0cmF0ZWd5fSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXHJcbiAgRGVzdHJveVJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7RG9jdW1lbnRGaWxlfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge01hdEVycm9yLCBNYXRIaW50fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlfSBmcm9tICcuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge01hdFRvb2x0aXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7Rm9ybUxhYmVsQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtLWxhYmVsL2Zvcm0tbGFiZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtUcmFuc2xhdGVQaXBlfSBmcm9tIFwiLi4vLi4vLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGVcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1maWxlLXVwbG9hZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jcy11cGxvYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZG9jcy11cGxvYWRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBNYXRFcnJvcixcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBNYXRIaW50LFxyXG4gICAgTWF0VG9vbHRpcCxcclxuICAgIEZvcm1MYWJlbENvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRG9jc1VwbG9hZGVyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERvY3NVcGxvYWRlckNvbXBvbmVudDxUeXBlPiBleHRlbmRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlPFR5cGU+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIG1heFNpemVGbGFnID0gdHJ1ZTtcclxuICBtYXhTaXplVmFsdWU6IGFueTtcclxuICB3cm9uZ0V4dGVuc2lvbkZsYWcgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHVzZUNyb3A6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZm9ybUtleSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93TGFiZWwgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRvd25sb2FkTGluayA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dBY3Rpb25zID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzdHlsZUhlaWdodCA9ICcnOyAvLyBtZWRpdW0sIG1pbmlcclxuICBASW5wdXQoKSBmaWxlSW5wdXRIZWlnaHQgPSAnJzsgLy8gbWVkaXVtLCBtaW5pXHJcbiAgQElucHV0KCkgc3R5bGVXaWR0aCA9ICc2JztcclxuICBASW5wdXQoKSBoaW50cyE6IGFueTtcclxuICBASW5wdXQoKSBhbGxvd2VkRXh0ZW5zaW9ucyA9ICcnO1xyXG4gIEBJbnB1dCgpIGNhbGxBcGk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSAnJztcclxuICB2YWxpZEV4dGVuc2lvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgYXR0YWNoVHlwZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGVycm9yITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXllZEZpbGVzOiBEb2N1bWVudEZpbGVbXSA9IFtdO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZFRlbXBsYXRlQXR0YWNobWVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBmaWxlTm90RHVwbGljYXRlZCA9IHRydWU7XHJcbiAgYWxsb3dlZEZpbGVTaXplID0gdHJ1ZTtcclxuICBASW5wdXQoKSBnZXREYXRhRnJvbVRlbXBsYXRlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWxsb3dGaWxlQ29udGVudHNXaXRoTXVsdGlBdHRhY2htZW50cyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjY2VwdDogc3RyaW5nW107XHJcbiAgZmlsZXNpemU6IHN0cmluZztcclxuICB3cm9uZ0ZpbGUgPSB7XHJcbiAgICBtaW1lVHlwZTogXCJcIixcclxuICAgIGZpbGVDb250ZW50czogXCJcIixcclxuICAgIGZpbGVOYW1lOiB0aGlzLmkxOG4ubGFuZ3VhZ2UgPT0gJ2FyJyA/IFwi2KfZhdiq2K/Yp9ivINin2YTZhdmE2YEg2K7Yp9i32YnYoVwiIDogXCJXcm9uZyBGaWxlIEV4dGVuc2lvblwiLFxyXG4gICAgbmFtZTogdGhpcy5pMThuLmxhbmd1YWdlID09ICdhcicgPyBcItin2YXYqtiv2KfYryDYp9mE2YXZhNmBINiu2KfYt9mJ2KFcIiA6IFwiV3JvbmcgRmlsZSBFeHRlbnNpb25cIlxyXG4gIH1cclxuICBASW5wdXQoKSBhbGxBdHRhY2htZW50cyA9IFtdO1xyXG5cclxuICB1cGxvYWRGb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2lnblR5cGUgPSAnU2lnbic7XHJcbiAgQElucHV0KCkgY3VzdG9tRG93bmxvYWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd1NpZ25CdXR0b24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwcmludFR5cGUgPSAnUHJpbnQnO1xyXG4gIEBJbnB1dCgpIHNob3dQcmludEJ1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRvd25sb2FkVHlwZSA9ICdEb3dubG9hZCc7XHJcbiAgQElucHV0KCkgc2hvd0Rvd25sb2FkQnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHJldmVudEZpbGVDb250ZW50cyA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBhZGRTaWduYXR1cmVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwcmludEFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGVtaXRlZFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkb3dubG9hZEFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgbWF4U2l6ZSA9ICcxMCc7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRGaWxlJykgaW5wdXRGaWxlOiBFbGVtZW50UmVmO1xyXG4gIGRpYWxvZzogTWF0RGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZylcclxuICBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSB2YWxpZEltYWdlVHlwZXMgPSB7XHJcbiAgICBqcGc6IFsnaW1hZ2UvanBlZycsICdpbWFnZS9wanBlZyddLFxyXG4gICAgSlBHOiBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvcGpwZWcnXSxcclxuICAgIGpwZWc6IFsnaW1hZ2UvanBlZycsICdpbWFnZS9wanBlZyddLFxyXG4gICAgcG5nOiBbJ2ltYWdlL3BuZyddXHJcbiAgfVxyXG5cclxuICB2YWxpZEltZ1BkZlR5cGVzID0ge1xyXG4gICAgcGRmOiBbJ2FwcGxpY2F0aW9uL3BkZiddLFxyXG4gICAganBnOiBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvcGpwZWcnXSxcclxuICAgIEpQRzogWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BqcGVnJ10sXHJcbiAgICBqcGVnOiBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvcGpwZWcnXSxcclxuICAgIGJtcDogWydpbWFnZS9ibXAnLCAnaW1hZ2UveC13aW5kb3dzLWJtcCddLFxyXG4gICAgcG5nOiBbJ2ltYWdlL3BuZyddXHJcbiAgfVxyXG5cclxuICB2YWxpZEZpbGVUeXBlcyA9IHtcclxuICAgICdwZGYnOiBbJ2FwcGxpY2F0aW9uL3BkZiddLFxyXG4gICAgJ2RvYyc6IFsnYXBwbGljYXRpb24vbXN3b3JkJ10sXHJcbiAgICAnZG9jeCc6IFsnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnXSxcclxuICAgICdwcHQnOiBbJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50J10sXHJcbiAgICAncHB0eCc6IFsnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbiddLFxyXG4gICAgJ3Bwcyc6IFsnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnXSxcclxuICAgICdwcHN4JzogWydhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93J10sXHJcbiAgICAnb2R0JzogWydhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQnXSxcclxuICAgICd4bHMnOiBbJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCddLFxyXG4gICAgJ3hsc3gnOiBbJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0J10sXHJcbiAgICAnemlwJzogWydhcHBsaWNhdGlvbi96aXAnLCAnYXBwbGljYXRpb24veC16aXAtY29tcHJlc3NlZCcsICdtdWx0aXBhcnQveC16aXAnLCAnYXBwbGljYXRpb24vemlwJ10sXHJcbiAgICAnbXNnJzogWydhcHBsaWNhdGlvbi92bmQubXMtb3V0bG9vaycsICdhcHBsaWNhdGlvbi9tc2cnXSxcclxuICAgICdjc3YnOiBbJ3RleHQvY3N2J10sXHJcbiAgICAndHh0JzogWyd0ZXh0L3BsYWluJ10sXHJcbiAgICAncnRmJzogWydhcHBsaWNhdGlvbi9ydGYnLCAnYXBwbGljYXRpb24veC1ydGYnLCAndGV4dC9yaWNodGV4dCddLFxyXG4gICAgJ2h0bWwnOiBbJ3RleHQvaHRtbCddLFxyXG4gICAgLy8gJ21wNCc6IFsndmlkZW8vbXA0J10sXHJcbiAgICAvLyAnbTR2JzogWyd2aWRlby9tcDQnXSxcclxuICAgICdtb3YnOiBbJ3ZpZGVvL3F1aWNrdGltZSddLFxyXG4gICAgJ3dtdic6IFsndmlkZW8veC1tcy13bXYnXSxcclxuICAgIC8vICdhdmknOiBbJ3ZpZGVvL3gtbXN2aWRlbyddLFxyXG4gICAgJ21wZyc6IFsnbXBnJ10sXHJcbiAgICAncm12Yic6IFsncm12YiddLFxyXG4gICAgLy8gJ29ndic6IFsndmlkZW8vb2dnJ10sXHJcbiAgICAvLyAnM2dwJzogWyd2aWRlby8zZ3BwJywgJ2F1ZGlvLzNncHAnXSxcclxuICAgIC8vICczZzInOiBbJ3ZpZGVvLzNncHAyJywgJ2F1ZGlvLzNncHAnXSxcclxuICAgICdqcGcnOiBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvcGpwZWcnXSxcclxuICAgICdqcGVnJzogWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BqcGVnJ10sXHJcbiAgICAncG5nJzogWydpbWFnZS9wbmcnXSxcclxuICAgICdnaWYnOiBbJ2ltYWdlL2dpZiddLFxyXG4gICAgJ2JtcCc6IFsnaW1hZ2UvYm1wJywgJ2ltYWdlL3gtd2luZG93cy1ibXAnXVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRQZGZUeXBlcyA9IHtcclxuICAgICdwZGYnOiBbJ2FwcGxpY2F0aW9uL3BkZiddLFxyXG4gIH1cclxuICB1cGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgbGVuZ3RoRXJyb3I6IGJvb2xlYW47XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF0dGFjaG1lbnRzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5hbGxBdHRhY2htZW50cyA9IFsuLi50aGlzLmF0dGFjaG1lbnRzXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnJlc2V0QWN0aW9uJFxyXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcclxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMuY29udHJvbC5lbmFibGVkKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wucmVzZXQoKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5yZXF1aXJlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLlZhbGlkYXRvcnMucmVxdWlyZWQpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhudWxsKVxyXG4gICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEZpbGVUeXBlKGF0dGFjaG1lbnQ6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWF0dGFjaG1lbnQuZmlsZU5hbWU/LmluY2x1ZGVzKCcuJykgJiYgYXR0YWNobWVudC5taW1lVHlwZS5pbmNsdWRlcygnLicpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrRmlsZVR5cGUoYXR0YWNobWVudC5taW1lVHlwZSk7XHJcbiAgICB9IGVsc2UgaWYgKGF0dGFjaG1lbnQuZmlsZU5hbWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tGaWxlVHlwZShhdHRhY2htZW50LmZpbGVOYW1lKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhdHRhY2htZW50Lm1pbWVUeXBlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0ZpbGVUeXBlKGF0dGFjaG1lbnREYXRhOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKGF0dGFjaG1lbnREYXRhLnNwbGl0KCcuJykucG9wKCkgPT0gJ21zZycpIHtcclxuICAgICAgcmV0dXJuICdlbWFpbC1pY29uJ1xyXG4gICAgfSBlbHNlIGlmIChhdHRhY2htZW50RGF0YS5zcGxpdCgnLicpLnBvcCgpID09ICdqcGVnJykge1xyXG4gICAgICByZXR1cm4gJ2pwZydcclxuICAgIH0gZWxzZSBpZiAoYXR0YWNobWVudERhdGEuc3BsaXQoJy4nKS5wb3AoKSA9PSAneGxzeCcgfHwgYXR0YWNobWVudERhdGEuc3BsaXQoJy4nKS5wb3AoKSA9PSAneGxzJykge1xyXG4gICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JztcclxuICAgIH1cclxuICAgIHJldHVybiBhdHRhY2htZW50RGF0YS5zcGxpdCgnLicpLnBvcCgpO1xyXG4gIH1cclxuXHJcbiAgYXR0YWNobWVudEFjdGlvbih0eXBlOiBhbnksIGluZGV4OiBudW1iZXIsIGZpZWxkOiBhbnkpIHtcclxuICAgIGlmICh0eXBlID09IFwiZG93bmxvYWRcIikge1xyXG4gICAgICBpZiAodGhpcy5kb3dubG9hZExpbmspIHtcclxuICAgICAgICB3aW5kb3cub3BlbihmaWVsZD8uYXR0YWNobWVudElkLCAnX2JsYW5rJywgJ3RvcD0wLGxlZnQ9MCxoZWlnaHQ9YXV0byx3aWR0aD1hdXRvJyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZmllbGQ/LmF0dGFjaG1lbnRJZCkge1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKHR5cGUsIGZpZWxkKTtcclxuICAgICAgfSBlbHNlIGlmIChmaWVsZD8uZmlsZUNvbnRlbnRzKSB7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGVOZXcoZmllbGQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PSBcImRlbGV0ZVwiKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbGlkRXh0ZW5zaW9uKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybURlbGV0ZShpbmRleClcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRhY2hlZEZpbGUoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZhbGlkRXh0ZW5zaW9uID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uZmlybURlbGV0ZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERlbGV0ZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnY29uZmlybS1kaWFsb2cnXSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG5ldyBOb29wU2Nyb2xsU3RyYXRlZ3koKSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgaWYgKHJldHVyblZhbHVlID09ICd5ZXMnKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVNdWx0aShpbmRleClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdWx0aShpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmRpc3BsYXllZEZpbGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB0aGlzLmFsbEF0dGFjaG1lbnRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZEZpbGVOZXcoZmlsZURhdGE6IGFueSkge1xyXG4gICAgY29uc3QgZmlsZVR5cGUgPSB0aGlzLmdldEZpbGVUeXBlKGZpbGVEYXRhKTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZmlsZURhdGEuZmlsZUNvbnRlbnRzXSwge3R5cGU6IGZpbGVUeXBlfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGJsb2IsIGAke2ZpbGVEYXRhLmZpbGVOYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldDtcclxuICAgIHRoaXMuY29udHJvbC5yZXNldCgpXHJcbiAgICBpZiAoaW5wdXQ/LmZpbGVzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsZUlucHV0KGlucHV0KTtcclxuICAgICAgdGhpcy5wcm9jZXNzVXBsb2FkZWRGaWxlKGlucHV0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRmlsZUlucHV0KGlucHV0OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChpbnB1dC5maWxlcyAmJiB0aGlzLmZvcm1LZXkgPT09ICdUU1YnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZUF0dGFjaG1lbnQuZW1pdChpbnB1dC5maWxlc1swXSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsZTogRmlsZSA9IGlucHV0LmZpbGVzWzBdO1xyXG4gICAgbGV0IGZpbGVUeXBlID0gZmlsZS5uYW1lPy5lbmRzV2l0aChcIi5tc2dcIikgPyAnYXBwbGljYXRpb24vdm5kLm1zLW91dGxvb2snIDogZmlsZS50eXBlO1xyXG5cclxuICAgIGlmICh0aGlzLmFjY2VwdD8ubGVuZ3RoICYmICF0aGlzLmFjY2VwdC5pbmNsdWRlcyhmaWxlVHlwZSkpIHtcclxuICAgICAgYWxlcnQodGhpcy5pMThuLnRyYW5zbGF0ZSgndGhpc0lzSW52YWxpZEZpbGUnKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwbG9hZEZvcm0/LmdldCgnZmlsZScpPy5zZXRWYWx1ZShmaWxlKTtcclxuICAgIHRoaXMudXBsb2FkRm9ybT8uZ2V0KCduYW1lJyk/LnNldFZhbHVlKGZpbGU/Lm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzVXBsb2FkZWRGaWxlKGlucHV0OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy51cGxvYWRpbmcpIHtcclxuICAgICAgY29uc3QgZmlsZURhdGEgPSBuZXcgRmlsZUluZm8oXHJcbiAgICAgICAgaW5wdXQuZmlsZXNbMF0ubmFtZSxcclxuICAgICAgICBpbnB1dC5maWxlc1swXS5uYW1lLFxyXG4gICAgICAgIGlucHV0LmZpbGVzWzBdLnR5cGUsXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgdGhpcy5maWxlc2l6ZVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbGVQcm9wZXJ0aWVzKGlucHV0LCBmaWxlRGF0YSk7XHJcbiAgICAgIGlmICghdGhpcy5sZW5ndGhFcnJvciAmJiArdGhpcy5maWxlc2l6ZSA8ICt0aGlzLm1heFNpemUpIHtcclxuICAgICAgICB0aGlzLmFsbG93ZWRGaWxlU2l6ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy51cGxvYWRWYWxpZEFuZE5vbkR1cGxpY2F0ZUZpbGUoaW5wdXQsIGZpbGVEYXRhKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFsbG93ZWRGaWxlU2l6ZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVGaWxlUHJvcGVydGllcyhpbnB1dDogYW55LCBmaWxlSW5mbzogRmlsZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMubWF4U2l6ZVZhbHVlID0gdGhpcy5tYXhTaXplID8gdGhpcy5tYXhTaXplIDogMTtcclxuICAgIHRoaXMuZmlsZXNpemUgPSAoKGlucHV0LmZpbGVzWzBdLnNpemUgLyAxMDI0KSAvIDEwMjQpLnRvRml4ZWQoNCk7XHJcbiAgICB0aGlzLm1heFNpemVGbGFnID0gK3RoaXMuZmlsZXNpemUgPCArdGhpcy5tYXhTaXplO1xyXG4gICAgdGhpcy5sZW5ndGhFcnJvciA9IHRoaXMuZGlzcGxheWVkRmlsZXM/Lmxlbmd0aCA+PSArdGhpcy5tYXhMZW5ndGg7XHJcbiAgICB0aGlzLndyb25nRXh0ZW5zaW9uRmxhZyA9IHRoaXMuaXNWYWxpZE1pbWVUeXBlKGlucHV0LmZpbGVzWzBdLnR5cGUpO1xyXG4gICAgdGhpcy52YWxpZEV4dGVuc2lvbiA9IHRoaXMuaXNWYWxpZEV4dGVuc2lvbihpbnB1dC5maWxlc1swXS5uYW1lLnNwbGl0KCcuJykucG9wKCksIHRoaXMudHlwZSk7XHJcbiAgICB0aGlzLnZhbHVlID0gZmlsZUluZm87XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwbG9hZFZhbGlkQW5kTm9uRHVwbGljYXRlRmlsZShpbnB1dDogYW55LCBmaWxlRGF0YTogRmlsZUluZm8pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZhbGlkRXh0ZW5zaW9uKSB7XHJcbiAgICAgIGlmICh0aGlzLmdldERhdGFGcm9tVGVtcGxhdGUpIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZUF0dGFjaG1lbnQuZW1pdChpbnB1dCk7XHJcbiAgICAgIHRoaXMucmVhZEZpbGVBbmRVcGxvYWQoaW5wdXQuZmlsZXNbMF0sIGZpbGVEYXRhKTtcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5lbWl0RW1wdHlGaWxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRGaWxlQW5kVXBsb2FkKGZpbGU6IEZpbGUsIGZpbGVJbmZvOiBGaWxlSW5mbyk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGVDb250ZW50cyA9IChyZWFkZXIucmVzdWx0IGFzIHN0cmluZykuc3BsaXQoJywnKVsxXTtcclxuICAgICAgZmlsZUluZm8uZmlsZUNvbnRlbnRzID0gZmlsZUNvbnRlbnRzO1xyXG4gICAgICBmaWxlSW5mby5maWxlc2l6ZSA9IHRoaXMuZmlsZXNpemU7XHJcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMudXBsb2FkU2luZ2xlRmlsZShmaWxlQ29udGVudHMsIGZpbGVJbmZvKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRmlsZU5vdER1cGxpY2F0ZShmaWxlSW5mbykpIHtcclxuICAgICAgICB0aGlzLmFkZE11bHRpQXR0YWNobWVudHMoZmlsZUluZm8pO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwbG9hZFNpbmdsZUZpbGUoZmlsZUNvbnRlbnRzOiBzdHJpbmcsIGZpbGVJbmZvOiBGaWxlSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlTm90RHVwbGljYXRlZCA9IHRoaXMuaXNGaWxlTm90RHVwbGljYXRlKGZpbGVJbmZvKTtcclxuICAgIGlmICghdGhpcy5maWxlTm90RHVwbGljYXRlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlLmZpbGVDb250ZW50cyA9IGZpbGVDb250ZW50cztcclxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlKVxyXG4gICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMudmFsdWUpXHJcbiAgICBpZiAodGhpcy5jYWxsQXBpKSB7XHJcbiAgICAgIHRoaXMuYWRkQXR0YWNobWVudHMoKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlQXR0YWNobWVudC5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0RW1wdHlGaWxlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZW1wdHlPYmogPSB7XHJcbiAgICAgIG1pbWVUeXBlOiBcIlwiLFxyXG4gICAgICBmaWxlQ29udGVudHM6IFwiXCIsXHJcbiAgICAgIGZpbGVOYW1lOiBcIlwiLFxyXG4gICAgfVxyXG4gICAgdGhpcy5lbWl0KGVtcHR5T2JqKVxyXG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlQXR0YWNobWVudC5lbWl0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0F0dGFjaG1lbnRzKGZpZWxkOiBhbnksIGFsbG93TXVsdGlBdHRhY2htZW50czogYm9vbGVhbikge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgXCJmaWxlRGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgXCJhdHRhY2htZW50Y29tbWVudFwiOiBcIlwiLFxyXG4gICAgICBcImZpbGVOYW1lXCI6IGZpZWxkLmZpbGVOYW1lLFxyXG4gICAgICBcIm1pbWVUeXBlXCI6IGZpZWxkLm1pbWVUeXBlLFxyXG4gICAgICBcImZpbGVDb250ZW50c1wiOiBmaWVsZC5maWxlQ29udGVudHMsXHJcbiAgICB9XHJcbiAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNvcmVTZXJ2aWNlLmdldEF0dGFjaG1lbnRzKGRhdGEpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICApLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChmb3JtOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdPYmogPSB7XHJcbiAgICAgICAgICBcImZpbGVOYW1lXCI6IGZpZWxkLmZpbGVOYW1lLFxyXG4gICAgICAgICAgXCJhdHRhY2htZW50SWRcIjogZm9ybS5hdHRhY2htZW50LmF0dGFjaG1lbnRJZCxcclxuICAgICAgICAgIFwibWltZVR5cGVcIjogZm9ybS5hdHRhY2htZW50Lm1pbWVUeXBlLFxyXG4gICAgICAgICAgXCJmaWxlQ29udGVudHNcIjogZmllbGQuZmlsZUNvbnRlbnRzXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhbGxvd011bHRpQXR0YWNobWVudHMpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmFsbG93RmlsZUNvbnRlbnRzV2l0aE11bHRpQXR0YWNobWVudHMpIG5ld09ialsnZmlsZUNvbnRlbnRzJ10gPSBmaWVsZC5maWxlQ29udGVudHM7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXllZEZpbGVzID0gdGhpcy5kaXNwbGF5ZWRGaWxlcz8ubGVuZ3RoID8gdGhpcy5kaXNwbGF5ZWRGaWxlcyA6IFtdXHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXllZEZpbGVzLnB1c2gobmV3T2JqKTtcclxuICAgICAgICAgIHRoaXMuYWxsQXR0YWNobWVudHMucHVzaChuZXdPYmopO1xyXG4gICAgICAgICAgdGhpcy5lbWl0KHRoaXMuZGlzcGxheWVkRmlsZXMpO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMuZGlzcGxheWVkRmlsZXMpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShuZXdPYmopXHJcbiAgICAgICAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQobmV3T2JqKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgZXJyPy5lcnJvcj8ubWV0YT8ubWVzc2FnZXM/LmZvckVhY2goKG1zZykgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihtc2cubWVzc2FnZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkQXR0YWNobWVudHMoKSB7XHJcbiAgICB0aGlzLnByb2Nlc3NBdHRhY2htZW50cyh0aGlzLmNvbnRyb2wudmFsdWUsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGFkZE11bHRpQXR0YWNobWVudHMoZmllbGQ6IGFueSkge1xyXG4gICAgdGhpcy5wcm9jZXNzQXR0YWNobWVudHMoZmllbGQsIHRydWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIGlzRmlsZU5vdER1cGxpY2F0ZShmaWxlOiBGaWxlSW5mbyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuYWxsQXR0YWNobWVudHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5hbGxBdHRhY2htZW50cz8uZmluZEluZGV4KCgkZmlsZSkgPT4gKGZpbGUuZmlsZU5hbWUgPT09ICRmaWxlLmZpbGVOYW1lKSkgPT09IC0xO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgaXNWYWxpZE1pbWVUeXBlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmF0dGFjaFR5cGUgPT0gJ3BkZicpIHtcclxuICAgICAgcmV0dXJuIChbXSBhcyBzdHJpbmdbXSkuY29uY2F0KC4uLk9iamVjdC52YWx1ZXModGhpcy52YWxpZFBkZlR5cGVzKSkuaW5jbHVkZXModmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmF0dGFjaFR5cGUgPT0gJ2ltYWdlJykge1xyXG4gICAgICByZXR1cm4gKFtdIGFzIHN0cmluZ1tdKS5jb25jYXQoLi4uT2JqZWN0LnZhbHVlcyh0aGlzLnZhbGlkSW1hZ2VUeXBlcykpLmluY2x1ZGVzKHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkRXh0ZW5zaW9uKHZhbHVlOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKHR5cGUgPT0gJ2ltYWdlJykge1xyXG4gICAgICByZXR1cm4gW10uY29uY2F0KC4uLk9iamVjdC5rZXlzKHRoaXMudmFsaWRJbWFnZVR5cGVzKSkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJpbWFnZVBkZlwiKSB7XHJcbiAgICAgIHJldHVybiBbXS5jb25jYXQoLi4uT2JqZWN0LmtleXModGhpcy52YWxpZEltZ1BkZlR5cGVzKSkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwicGRmXCIpIHtcclxuICAgICAgcmV0dXJuIFtdLmNvbmNhdCguLi5PYmplY3Qua2V5cyh0aGlzLnZhbGlkUGRmVHlwZXMpKS5pbmNsdWRlcyh2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBbXS5jb25jYXQoLi4uT2JqZWN0LmtleXModGhpcy52YWxpZEZpbGVUeXBlcykpLmluY2x1ZGVzKHZhbHVlLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQXR0YWNoZWRGaWxlKCkge1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG5ldyBGaWxlSW5mbyhudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsKSlcclxuICAgIGlmICh0aGlzLmlucHV0RmlsZSkge1xyXG4gICAgICB0aGlzLmlucHV0RmlsZS5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdCh0aGlzLnZhbHVlKVxyXG4gICAgdGhpcy5jb250cm9sLnJlc2V0KClcclxuICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZUF0dGFjaG1lbnQuZW1pdChudWxsKTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkRmlsZShldmVudCwgZmllbGQpIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbURvd25sb2FkKSB7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRBY3Rpb25DbGlja2VkLmVtaXQoZmllbGQpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvcmVTZXJ2aWNlLmxvYWRGaWxlKGZpZWxkLmF0dGFjaG1lbnRJZCkucGlwZShcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgICApLnN1YnNjcmliZShcclxuICAgICAgICAocmVzcG9uc2VPYmplY3Q6IHsgYm9keTogYW55OyB9KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBmaWxlSW5mb3JtYXRpb24gPSByZXNwb25zZU9iamVjdC5ib2R5O1xyXG4gICAgICAgICAgdGhpcy5jb3JlU2VydmljZS5zYXZlRmlsZShmaWxlSW5mb3JtYXRpb24pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycm9yLmVycm9yPy5bJ21lc3NhZ2UnXSlcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0PFQ+KHZhbHVlOiBUIHwgVFtdKSB7XHJcbiAgICBpZiAodGhpcy5wcmV2ZW50RmlsZUNvbnRlbnRzKSB7XHJcbiAgICAgIHZhbHVlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gICAgICB0aGlzLmRlbGV0ZUZpbGVDb250ZW50cyh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlbGV0ZUZpbGVDb250ZW50cyhkYXRhOiBhbnkpIHtcclxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ2ZpbGVDb250ZW50cycgaW4gZGF0YSkge1xyXG4gICAgICBkZWxldGUgZGF0YS5maWxlQ29udGVudHM7XHJcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgZGF0YS5mb3JFYWNoKGVsZW0gPT4gdGhpcy5kZWxldGVGaWxlQ29udGVudHMoZWxlbSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuY2xhc3MgRmlsZUluZm8ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGZpbGVOYW1lOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxyXG4gICAgcHVibGljIG1pbWVUeXBlOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZmlsZUNvbnRlbnRzOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZmlsZXNpemU6IHN0cmluZ1xyXG4gICkgeyB9XHJcbn1cclxuIiwiQGlmICghaXNSZWFkT25seSkge1xyXG4gIDxuZy1jb250YWluZXI+XHJcbiAgICBAaWYobGFiZWwpIHtcclxuICAgICAgPGFwcC1mb3JtLWxhYmVsIFtsYWJlbF09XCJsYWJlbFwiIFtvcHRpb25hbF09XCIhcmVxdWlyZWRcIiBbdG9vbHRpcF09XCJ0b29sdGlwXCI+PC9hcHAtZm9ybS1sYWJlbD5cclxuICAgIH1cclxuICAgIDxzZWN0aW9uXHJcbiAgICAoY2xpY2spPVwiZmlsZUF0dGFjaGVkLmNsaWNrKClcIlxyXG4gICAgICBbbmdDbGFzc109XCJpbnNpZGVUYWJsZSA/ICdmaWxlLXVwbG9hZGVyLXRhYmxlJyA6ICdmaWxlLXVwbG9hZGVyJ1wiIGNsYXNzPVwiIG1iLTJcIlxyXG4gICAgICBbY2xhc3MuaW5zaWRlVGFibGVTdHlsZV09XCJpbnNpZGVUYWJsZVwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgW25nQ2xhc3NdPVwiaW5zaWRlVGFibGUgPyAnZmlsZS11cGxvYWRlci10YWJsZS1kZXYnIDogJydcIiBjbGFzcz1cImZpbGUtdXBsb2FkZXItaW5wdXRcIlxyXG4gICAgICAgID5cclxuICAgICAgICBAaWYgKCF1cGxvYWRpbmcpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uIG1iLTFcIj5cclxuICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImluc2lkZVRhYmxlID8gJ2ZpbGUtdXBsb2FkZXItdGFibGUtc3ZnJyA6ICcnXCIgd2lkdGg9XCI0MVwiIGhlaWdodD1cIjM4XCIgdmlld0JveD1cIjAgMCA0MSAzOFwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMCAyMi4xOTQ3VjIwLjY3MzZDMC4wOTcxMzAzIDIwLjEwMTkgMC4wNzAwOTQgMTkuNTE0MSAwLjI3NjM3MSAxOC45NTMzQzEuMjgzNzIgMTYuMjA4NiAzLjIxMjMxIDE0LjUwMjMgNi4wNDIxIDEzLjgwOTRDNi43MDQ5OSAxMy42NDcyIDYuNjg0OTcgMTMuNjYzMiA2LjY5ODk5IDEyLjk4NDNDNi43MzIwMyAxMS4zMzIxIDYuOTk4MzkgOS43MTk5MiA3LjYyNDIzIDguMTc5ODZDOC44NjI4OSA1LjEzNjc4IDEwLjk0NjcgMi44Mzk2OSAxMy44ODE2IDEuMzkxNzVDMTcuMTY4IC0wLjIzMDQyNCAyMC41OTU2IC0wLjQ1MDcxOSAyNC4wNTUzIDAuODE1OThDMjcuNDkyOSAyLjA3NDY3IDI5Ljk2MjIgNC40MTU4MSAzMS40ODAyIDcuNzQ4MjhDMzEuNzc4NiA4LjQwMzE2IDMyLjAyNyA5LjA4MzA3IDMyLjE3MTIgOS43OTIwMkMzMi4yNDAyIDEwLjEzMTUgMzIuNDAzNSAxMC4yNTY2IDMyLjc1MjkgMTAuMzEwN0MzNi43MDEyIDEwLjkxNjUgMzkuMzM1OCAxMy4xMjU1IDQwLjY5NDYgMTYuODczNUM0MC45MDY5IDE3LjQ2MDMgNDAuOTE5OSAxOC4wNzMxIDQwLjk1OTkgMTguNjgyOUM0MC45NjQ5IDE4Ljc2MDEgNDAuOTM4OSAxOC44NDQyIDQxIDE4LjkxMTNWMjAuNTEyNEM0MC45MTA5IDIwLjk5NSA0MC45NjkgMjEuNDkzNyA0MC44NjA4IDIxLjk3MzRDNDAuNTI0NCAyMy40NjE0IDM5Ljg0NTQgMjQuNzgyMSAzOC44NTAxIDI1LjkyOTdDMzcuNDUyMiAyNy41NDE4IDM1LjcwNTkgMjguNTg4MiAzMy42MTYxIDI5LjA1MTlDMzIuNzkxIDI5LjIzNTEgMzEuOTQ5OSAyOS4yNTIxIDMxLjExMTcgMjkuMjkyMkMzMC42NTcxIDI5LjMxNDIgMzAuNTg0IDI5LjE5MyAzMC41OTIgMjguNzQ4NEMzMC42NDUxIDI1Ljg0NDYgMjkuODAyIDIzLjI1NzEgMjcuODYyNCAyMS4wNTkxQzI1Ljk5NzkgMTguOTQ2MyAyMy42NTk3IDE3LjcxNjcgMjAuODY3IDE3LjQwMTJDMTguODU1MyAxNy4xNzM5IDE2LjkwNTcgMTcuNDU5MyAxNS4wNjEyIDE4LjMzOTVDMTEuODMxOSAxOS44ODE2IDkuODE0MTYgMjIuNDA2OSA4Ljk2MTAyIDI1Ljg2OTZDOC43NDI3MyAyNi43NTM4IDguNjgyNjUgMjcuNjU4IDguNzA1NjggMjguNTcwMkM4LjcyMTcgMjkuMjExMSA4LjYwMjU0IDI5LjMxMjIgNy45NTk2OCAyOS4yOTcyQzUuOTUwOTggMjkuMjUxMSA0LjEwNTUxIDI4LjcyMzQgMi41ODE0NiAyNy4zNTk2QzEuMDc2NDQgMjYuMDE2OCAwLjA2ODA5MTMgMjQuMzk5NiAwLjA0MDA1MzcgMjIuMzAyOEMwLjA0MDA1MzcgMjIuMjYwNyAwLjAyNTAzMzYgMjIuMjI1NyAwIDIyLjE5MzdWMjIuMTk0N1pcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNERUUwRTJcIi8+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMjkuMDMwMyAyOC4yNjMyQzI5LjA2MDQgMzMuNDAzMSAyNC44NjU3IDM3LjYxODcgMTkuNjgzOCAzNy42NTQ4QzE0LjUxNjkgMzcuNjkwOCAxMC4yODUyIDMzLjQ5NTIgMTAuMjUyMSAyOC4zMDQyQzEwLjIyMDEgMjMuMTQwMyAxNC40Mjk3IDE4LjkxMjYgMTkuNjIyNyAxOC44OTQ2QzI0LjgwMzcgMTguODc2NiAyOC45OTkzIDIzLjA1NDIgMjkuMDMwMyAyOC4yNjMyWlwiXHJcbiAgICAgICAgICAgICAgICBmaWxsPVwiIzhFOUFBMFwiLz5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0yMC41NTczIDI1LjI2NDRDMjAuNDYyMiAyNS40NDc3IDIwLjUwMTIgMjUuNTkzOSAyMC41MDEyIDI1LjczNEMyMC40OTgyIDI4LjIxNTQgMjAuNTAwMiAzMC42OTU3IDIwLjQ5ODIgMzMuMTc3QzIwLjQ5ODIgMzMuODA5OSAyMC4yMzM5IDM0LjE3MDQgMTkuNzQ2MiAzNC4yMjM0QzE5LjI2NDUgMzQuMjc2NSAxOC44OCAzMy45ODMxIDE4LjgxNjkgMzMuNTAyNUMxOC43OTU5IDMzLjM0NDMgMTguNzk2OSAzMy4xODMgMTguNzk2OSAzMy4wMjM4QzE4Ljc5NTkgMzAuNTgyNiAxOC43OTY5IDI4LjE0MjMgMTguNzk2OSAyNS43MDFDMTguNzk2OSAyNS41NzI4IDE4Ljc5NjkgMjUuNDQ0NyAxOC43OTY5IDI1LjIwMDNDMTguMTk3MSAyNS44MDMxIDE3LjY3NzQgMjYuMzI4OCAxNy4xNTI3IDI2Ljg1MDVDMTcuMDExNSAyNi45OTA3IDE2Ljg2ODMgMjcuMTM0OSAxNi43MDYxIDI3LjI0NzFDMTYuMzU2NiAyNy40ODY0IDE1LjkzNDEgMjcuNDQxMyAxNS42NDU3IDI3LjE1NEMxNS4zNjQzIDI2Ljg3NDYgMTUuMzIwMyAyNi40NDIgMTUuNTQ4NiAyNi4wOTI1QzE1LjYyMDcgMjUuOTgyNCAxNS43MTI4IDI1Ljg4MzIgMTUuODA2OSAyNS43ODkxQzE2Ljg2MTMgMjQuNzMwNyAxNy45MTY3IDIzLjY3MzMgMTguOTczMiAyMi42MTc5QzE5LjQwMTcgMjIuMTg5MyAxOS44Nzg0IDIyLjE3NjMgMjAuMzAzOSAyMi41OTg4QzIxLjM5MTQgMjMuNjgwMyAyMi40NzM5IDI0Ljc2NjcgMjMuNTUzMyAyNS44NTcyQzIzLjk4MDkgMjYuMjg5OCAyNC4wMTI5IDI2LjgwNjUgMjMuNjUzNCAyNy4xNjdDMjMuMjk5IDI3LjUyMTQgMjIuNzc1MyAyNy40ODQ0IDIyLjM0MzcgMjcuMDU2OEMyMS43NDk5IDI2LjQ3IDIxLjE2NjEgMjUuODczMiAyMC41NjAzIDI1LjI2NDRIMjAuNTU3M1pcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGOUY5RjlcIi8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAodXBsb2FkaW5nKSB7XHJcbiAgICAgICAgICA8ZHMtaWNvbiBjbGFzcz1cInNmaSBzZmktc3Bpbm5lciBkLWlubGluZS1ibG9jayBzcGluIGZjLWNvcmFsIGZzLTMwLWltcFwiPjwvZHMtaWNvbj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmLTE0IGZjLWJsYWNrIGZ3LW5vcm1hbFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYy1jb3JhbCBmdy1tZWRpdW1cIj57eyAnYnJvd3NlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtMTAgZmMtZGFyay1ncmF5XCI+XHJcbiAgICAgICAgICB7eyBhbGxvd2VkRXh0ZW5zaW9ucyA/IGFsbG93ZWRFeHRlbnNpb25zIDogJycgfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgI2lucHV0RmlsZSBbYWNjZXB0XT1cImFjY2VwdFwiIGNsYXNzPVwiZC1ub25lXCIgI2ZpbGVBdHRhY2hlZCAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICBAaWYgKGhpbnRzKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zIG1iLTNcIj5cclxuICAgICAgICBAZm9yIChoaW50IG9mIGhpbnRzOyB0cmFjayBoaW50KSB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBmcy0xMlwiPlxyXG4gICAgICAgICAgICAgIDxkcy1pY29uXHJcbiAgICAgICAgICAgICAgICBpY29uPVwie3sgaGludC52YWxpZCA/ICdjaGVjay1jaXJjbGUtZicgOiAnY2hlY2stY2lyY2xlLW8nIH19XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZnMtMjQge3sgaGludC52YWxpZCA/ICdmYy1ncmVlbicgOiAnZmMtZGFyay1ncmF5JyB9fVwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7IGhpbnQudmFsaWQgPyAnZmMtYmxhY2snIDogJ2ZjLWRhcmstZ3JheScgfX1cIj57eyBoaW50LmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChoaW50KSB7XHJcbiAgICAgIDxtYXQtaGludCBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIj5cclxuICAgICAgICA8ZHMtaWNvbiBpY29uPVwiaW5mb1wiIGNsYXNzPVwiZnMtMTcgZmMtZGFyay1ncmF5XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTIgZmMtYmxhY2sgbGluZS1oZWlnaHQtMVwiPnt7IGhpbnQgfX08L3NwYW4+XHJcbiAgICAgIDwvbWF0LWhpbnQ+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChtdWx0aXBsZSkge1xyXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImZpbGVzLWxpc3RcIj5cclxuICAgICAgICBAZm9yIChmaWxlIG9mIGRpc3BsYXllZEZpbGVzOyB0cmFjayBmaWxlOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRzLWF0dGFjaG1lbnRzXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZmlsZT8uZmlsZU5hbWVcIlxyXG4gICAgICAgICAgICAgIFtmaWxlXT1cInsgbmFtZTogZmlsZS5maWxlTmFtZSB9XCJcclxuICAgICAgICAgICAgICAoZG93bmxvYWRFdmVudCk9XCJhdHRhY2htZW50QWN0aW9uKCdkb3dubG9hZCcsIGksIGZpbGUpXCJcclxuICAgICAgICAgICAgICAoZGVsZXRlRXZlbnQpPVwiYXR0YWNobWVudEFjdGlvbignZGVsZXRlJywgaSwgZmlsZSlcIlxyXG4gICAgICAgICAgICAgIFtzaG93QWN0aW9uc109XCJzaG93QWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8L2RzLWF0dGFjaG1lbnRzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICghbXVsdGlwbGUgJiYgKGNvbnRyb2w/LnZhbHVlPy5maWxlQ29udGVudHMgfHwgY29udHJvbD8udmFsdWU/LmF0dGFjaG1lbnRJZCkpIHtcclxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJmaWxlcy1saXN0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbS1jb250YWluZXIgZmlsZS1pdGVtLWNvbnRhaW5lci1hY3Rpb25zXCI+XHJcbiAgICAgICAgICA8ZHMtYXR0YWNobWVudHNcclxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29udHJvbD8udmFsdWU/LmZpbGVOYW1lXCJcclxuICAgICAgICAgICAgW2ZpbGVdPVwieyBuYW1lOiBjb250cm9sPy52YWx1ZS5maWxlTmFtZSB9XCJcclxuICAgICAgICAgICAgKGRvd25sb2FkRXZlbnQpPVwiYXR0YWNobWVudEFjdGlvbignZG93bmxvYWQnLCBudWxsLCBjb250cm9sPy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAoZGVsZXRlRXZlbnQpPVwiYXR0YWNobWVudEFjdGlvbignZGVsZXRlJywgbnVsbCwgY29udHJvbD8udmFsdWUpXCJcclxuICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cInNob3dBY3Rpb25zXCI+XHJcbiAgICAgICAgICA8L2RzLWF0dGFjaG1lbnRzPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzLWVycm9yXCI+XHJcbiAgICAgIEBpZiAoIXZhbGlkRXh0ZW5zaW9uKSB7XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJmaWxlcy1saXN0IG10LTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWl0ZW0tY29udGFpbmVyIFwiPlxyXG4gICAgICAgICAgICA8ZHMtYXR0YWNobWVudHNcclxuICAgICAgICAgICAgICBbZmlsZV09XCJ3cm9uZ0ZpbGVcIiBlcnJvciBbc2hvd0FjdGlvbnNdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPC9kcy1hdHRhY2htZW50cz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmICghYWxsb3dlZEZpbGVTaXplKSB7XHJcbiAgICAgICAgPG1hdC1lcnJvciBjbGFzcz1cImZzLTEyIG15LTJcIj5cclxuICAgICAgICAgIHt7IG1heFNpemUgPT09IFwiMC4zXCIgPyAoJ3N1cHBvcnQzJyB8IHRyYW5zbGF0ZSApOiAoJ3N1cHBvcnQyJyB8IHRyYW5zbGF0ZSkgKyBtYXhTaXplICsgKCdtYicgfCB0cmFuc2xhdGUpIH19XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAoIWZpbGVOb3REdXBsaWNhdGVkKSB7XHJcbiAgICAgICAgPG1hdC1lcnJvciBjbGFzcz1cImZzLTEyIG15LTJcIj57eyAnZHVwbGljYXRlZC1lcnJvcicgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmIChsZW5ndGhFcnJvcikge1xyXG4gICAgICAgIDxtYXQtZXJyb3IgY2xhc3M9XCJmcy0xMlwiPnt7ICdsZW5ndGhFcnJvcicgfCB0cmFuc2xhdGUgfX0gOnt7IG1heExlbmd0aCB9fTwvbWF0LWVycm9yPlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgKHNob3dFcnJvck1lc3NhZ2UpIHtcclxuICAgICAgICA8IS0tIDxtYXQtZXJyb3IgY2xhc3M9XCJmcy0xMlwiPnt7ZXJyb3JNZXNzYWdlfX0gPC9tYXQtZXJyb3I+IC0tPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxufVxyXG5cclxuQGlmIChpc1JlYWRPbmx5KSB7XHJcbiAgPG5nLWNvbnRhaW5lcj5cclxuICAgIEBpZiAobXVsdGlwbGUgJiYgZGlzcGxheWVkRmlsZXMpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCI+XHJcbiAgICAgICAgICBAaWYgKGxhYmVsKSB7XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPnt7IGxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGlmIChkaXNwbGF5ZWRGaWxlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgIEBmb3IgKGZpbGUgb2YgZGlzcGxheWVkRmlsZXM7IHRyYWNrIGZpbGU7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pdGVtLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZHMtYXR0YWNobWVudHNcclxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJmaWxlPy5maWxlTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJteS0yXCIgW2ZpbGVdPVwieyBuYW1lOiBmaWxlLmZpbGVOYW1lIH1cIiByZWFkT25seSAoZG93bmxvYWRFdmVudCk9XCJkb3dubG9hZEZpbGUoJGV2ZW50LCBmaWxlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cInNob3dBY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZHMtYXR0YWNobWVudHM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoIWRpc3BsYXllZEZpbGVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXNjXCI+XHJcbiAgICAgICAgICAgICAge3sgJ05vQXR0YWNobWVudHMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICghbXVsdGlwbGUgJiYgKGNvbnRyb2w/LnZhbHVlPy5bJ2F0dGFjaG1lbnRJZCddIHx8IGNvbnRyb2w/LnZhbHVlPy5bJ2ZpbGVDb250ZW50cyddKSkge1xyXG4gICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIj5cclxuICAgICAgICAgIEBpZiAobGFiZWwpIHtcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzYyBmaWxlLWl0ZW0tY29udGFpbmVyIGZpbGUtaXRlbS1jb250YWluZXItYWN0aW9uc1wiIFtuZ0NsYXNzXT1cInsnaW5zaWRlVGFibGVXaWR0aCc6IGluc2lkZVRhYmxlfVwiPlxyXG4gICAgICAgICAgICBAaWYgKGNvbnRyb2w/LnZhbHVlPy5bJ2F0dGFjaG1lbnRJZCddIHx8IGNvbnRyb2w/LnZhbHVlPy5bJ2ZpbGVDb250ZW50cyddKSB7XHJcbiAgICAgICAgICAgICAgPGRzLWF0dGFjaG1lbnRzXHJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJjb250cm9sPy52YWx1ZT8uZmlsZU5hbWVcIiBbZmlsZV09XCJ7IG5hbWU6IGNvbnRyb2w/LnZhbHVlLmZpbGVOYW1lIH1cIiBbc2hvd0FjdGlvbnNdPVwic2hvd0FjdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgKGRvd25sb2FkRXZlbnQpPVwiYXR0YWNobWVudEFjdGlvbignZG93bmxvYWQnLCBudWxsLCBjb250cm9sPy52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgKGRlbGV0ZUV2ZW50KT1cImF0dGFjaG1lbnRBY3Rpb24oJ2RlbGV0ZScsIG51bGwsIGNvbnRyb2w/LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICByZWFkT25seT5cclxuICAgICAgICAgICAgICA8L2RzLWF0dGFjaG1lbnRzPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbn0iXX0=
|