iptdevs-design-system 3.1.308 → 3.1.309

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.
@@ -371,10 +371,10 @@ export class CodFormComponent {
371
371
  }
372
372
  }
373
373
  CodFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormComponent, deps: [{ token: i1.BaseService }, { token: i2.LocalStorageCODService }, { token: i3.CodFormControls }, { token: i4.CommercialService }], target: i0.ɵɵFactoryTarget.Component });
374
- CodFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormComponent, selector: "ipt-cod-form", inputs: { dataFromPreviusCodData: "dataFromPreviusCodData", courseSelect: "courseSelect", isNewCod: "isNewCod", editCod: "editCod" }, outputs: { okCreatedCOD: "okCreatedCOD" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i6.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i7.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "component", type: i8.CodFormStepOneComponent, selector: "app-cod-form-step-one", inputs: ["initialData", "dataPreviusCodData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i9.CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i10.CodFormStepThreeComponent, selector: "app-cod-form-step-three", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i11.CodFormStepFourComponent, selector: "app-cod-form-step-four", inputs: ["isEditCod", "initialData"], outputs: ["changeStepEvent", "financingData"] }, { kind: "component", type: i12.CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: ["userRole", "initialData", "isEditCod"], outputs: ["changeStepEvent", "action"] }] });
374
+ CodFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormComponent, selector: "ipt-cod-form", inputs: { dataFromPreviusCodData: "dataFromPreviusCodData", courseSelect: "courseSelect", isNewCod: "isNewCod", editCod: "editCod" }, outputs: { okCreatedCOD: "okCreatedCOD" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i6.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i7.LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "component", type: i8.CodFormStepOneComponent, selector: "app-cod-form-step-one", inputs: ["initialData", "dataPreviusCodData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i9.CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i10.CodFormStepThreeComponent, selector: "app-cod-form-step-three", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: i11.CodFormStepFourComponent, selector: "app-cod-form-step-four", inputs: ["isEditCod", "initialData"], outputs: ["changeStepEvent", "financingData"] }, { kind: "component", type: i12.CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: ["userRole", "initialData", "isEditCod"], outputs: ["changeStepEvent", "action"] }] });
375
375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormComponent, decorators: [{
376
376
  type: Component,
377
- args: [{ selector: 'ipt-cod-form', template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n" }]
377
+ args: [{ selector: 'ipt-cod-form', template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n" }]
378
378
  }], ctorParameters: function () { return [{ type: i1.BaseService }, { type: i2.LocalStorageCODService }, { type: i3.CodFormControls }, { type: i4.CommercialService }]; }, propDecorators: { dataFromPreviusCodData: [{
379
379
  type: Input
380
380
  }], courseSelect: [{
@@ -386,4 +386,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
386
386
  }], okCreatedCOD: [{
387
387
  type: Output
388
388
  }] } });
389
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9jb2QtZm9ybS9jb2QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL2NvZC1mb3JtL2NvZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTVHLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXL0IsTUFBTSxPQUFPLGdCQUFnQjtJQXNCM0IsWUFDVSxXQUF3QixFQUN4QixlQUF1QyxFQUN2QyxlQUFnQyxFQUNoQyxpQkFBb0M7UUFIcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBcEJwQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHN0MsaUJBQVksR0FBYTtZQUMvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1NBQ3RDLENBQUM7UUFFSyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBRXZCLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFFdEIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQiw0QkFBdUIsR0FBd0IsSUFBSSxDQUFDO1FBUXpELElBQUksQ0FB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QWlDQTsyRkRwQmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7cU1BTWYsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBDcmVhdGVDT0RScSwgSVVwZGF0ZUNPRFJxIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY29kL2NvZC1ycS5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZXJjaWFsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvY29tbWVyY2lhbC1zZXJ2aWNlL2NvbWVyY2lhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scywgQ29udHJvbCB9IGZyb20gJy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZUNPRFNlcnZpY2UgfSBmcm9tICcuLi9sb2dpYy9sb2NhbC1zdG9yYWdlLWNvZC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lwdC1jb2QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2QtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgQ29kRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBkYXRhRnJvbVByZXZpdXNDb2REYXRhPzogYW55O1xuICBASW5wdXQoKSBjb3Vyc2VTZWxlY3Q/OiBhbnk7XG4gIEBJbnB1dCgpIGlzTmV3Q29kITogYm9vbGVhbjtcbiAgQElucHV0KCkgZWRpdENvZCE6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBva0NyZWF0ZWRDT0QgPSBuZXcgRXZlbnRFbWl0dGVyPEJvb2xlYW4+KCk7XG4gIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGFsbG93ZWRSb2xlczogbnVtYmVyW10gPSBbXG4gICAgMSwgMzAsIDMxLCAzMiwgNDAsIDQxLCA0MiwgNTAsIDUxLCA1MixcbiAgXTtcblxuICBwdWJsaWMgY3VycmVudFN0ZXA6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBmb3JtVGl0bGU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgdXNlclJvbGU6IG51bWJlcjtcbiAgcHVibGljIGZvcm1TdGVwczogbnVtYmVyID0gNTtcbiAgcHVibGljIGZpbmFuY2luZ0RhdGE/OiBhbnlbXTtcbiAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBjb2RDcmVhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VDT0Q6IExvY2FsU3RvcmFnZUNPRFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2RGb3JtQ29udHJvbHM6IENvZEZvcm1Db250cm9scyxcbiAgICBwcml2YXRlIGNvbW1lcmNpYWxTZXJ2aWNlOiBDb21tZXJjaWFsU2VydmljZVxuICApIHtcbiAgICB0aGlzLnVzZXJSb2xlID0gdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyUm9sZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydlZGl0Q29kJ10pIHtcbiAgICAgIGlmICh0aGlzLmVkaXRDb2QpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGFGcm9tUHJldml1c0NvZERhdGEuZWRpdF9jb3Vyc2VfcGF5bWVudCkge1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1F1ZXJpZG8gYXNlc29yJyxcbiAgICAgICAgICAgIHRleHQ6ICdTb2xvIHB1ZWRlIGVkaXRhciBEYXRvcyBkZWwgZXN0dWRpYW50ZScsXG4gICAgICAgICAgICBpY29uOiAnd2FybmluZydcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybVRpdGxlID0gJ0Zvcm11bGFyaW8gcGFyYSB2ZXJpZmljYXIgeSBlZGl0YXIgaW5mb3JtYWNpw7NuIGRlbCBDT0QgYWN0dWFsJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhLmNvZF9yZW5vdmF0aW9uID09IGZhbHNlICYmIHRoaXMuZWRpdENvZCA9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmZvcm1UaXRsZSA9ICdGb3JtdWxhcmlvIHBhcmEgY3JlYWNpw7NuIGRlbCBDT0QnO1xuICAgICAgfWVsc2UgaWYodGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhLmNvZF9yZW5vdmF0aW9uID09IHRydWUgJiYgdGhpcy5lZGl0Q29kID09IGZhbHNlKXtcbiAgICAgICAgdGhpcy5mb3JtVGl0bGUgPSAnRm9ybXVsYXJpbyBwYXJhIGxhIHJlbm92YWNpb24gZGVsIENPRCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFsbG93ZWRSb2xlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93ZWRSb2xlcy5pbmNsdWRlcyh0aGlzLnVzZXJSb2xlKTtcbiAgfVxuXG4gIGdldENvZGJ5Q29kZSgpIHtcbiAgICAvLyBUT0RPOiBUcmFlciBDT0QgcG9yIGPDs2RpZ28geSBwaW50YXJsb1xuICB9XG5cblxuICBzYXZlRmluYW5jaW5nRGF0YShkYXRhOiBhbnlbXSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBjb25zdCBkYXRlczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGRhdGEuZm9yRWFjaChwID0+IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHBbMl07XG4gICAgICAgIGRhdGVzLnB1c2goZGF0ZSk7XG4gICAgICB9KVxuICAgICAgdGhpcy5maW5hbmNpbmdEYXRhID0gZGF0ZXM7XG4gICAgfVxuICB9XG5cbiAgZ2V0Rm9ybUFjdGlvbihhY3Rpb246IHN0cmluZykge1xuICAgIGlmICghdGhpcy5maW5hbmNpbmdEYXRhICYmIHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDQsICdwYXltZW50X21ldGhvZCcpID09PSAnMScpIHtcbiAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgIHRpdGxlOiAnUXVlcmlkbyBhc2Vzb3InLFxuICAgICAgICB0ZXh0OiAnRGViZSBoYWNlciBlbCBjw6FsY3VsbyBkZSBsYXMgY3VvdGFzIGVuIGVsIHBhc28gNCcsXG4gICAgICAgIGljb246ICdlcnJvcidcbiAgICAgIH0pXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRvdGFsRGF0YTogYW55W10gPSBbXTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jb2RGb3JtQ29udHJvbHMuZ2V0Q29udHJvbFZhbHVlcygpLnN1YnNjcmliZSgoY29udHJvbHMpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5mb3JtU3RlcHM7IGkrKykge1xuICAgICAgICAgIGxldCBjb250cm9sc0J5U3RlcDogQ29udHJvbFtdID0gY29udHJvbHNbaS0xXTtcbiAgICAgICAgICAgIGNvbnRyb2xzQnlTdGVwLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKGksIGNvbnRyb2wubmFtZSk7XG4gICAgICAgICAgICAgIC8vIENhbWJpYXIgVHJ1ZS9GYWxzZSBkZWwgbXVsdGljdWx0dXJhbGlzbW8gMS8wXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJyAmJiBjb250cm9sLmRlc2NyaXB0aW9uID09PSAnTXVsdGljdWx0dXJhbGlzbW8nKSB7XG4gICAgICAgICAgICAgICAgdG90YWxEYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogY29udHJvbC5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09ICd0cnVlJyAmJiBjb250cm9sLmRlc2NyaXB0aW9uID09PSAnTXVsdGljdWx0dXJhbGlzbW8nKSB7XG4gICAgICAgICAgICAgICAgdG90YWxEYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnMScsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogY29udHJvbC5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG90YWxEYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbnRyb2wuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gVmFsaWRhciBlcnJvcmVzXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvdGFsRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdG90YWxEYXRhW2ldO1xuICAgICAgICBpZiAoIWVsZW1lbnQudmFsdWUgJiYgZWxlbWVudC5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHRpdGxlOiAnRXJyb3IgRm9ybSBBY3Rpb24gVmFsaWRhdGUgRXJyb3InLFxuICAgICAgICAgICAgdGV4dDogYFJldmlzYXIgZWwgY2FtcG86IFwiJHtlbGVtZW50LmRlc2NyaXB0aW9ufVwiYCxcbiAgICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWN0aW9uID09PSAnY3JlYXRlJykgdGhpcy5jcmVhdGVDT0QodG90YWxEYXRhKTtcbiAgICAgIGlmIChhY3Rpb24gPT09ICd1cGRhdGUnKSB0aGlzLnVwZGF0ZUNPRCh0b3RhbERhdGEpO1xuICAgIH0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gIH1cblxuICB1cGRhdGVDT0QodG90YWxEYXRhOiBhbnlbXSkge1xuICAgIGlmICh0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uICYmICF0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJ0VkaXRhbmRvIENPRCwgZXNwZXJlIHVuIG1vbWVudG8nXG4gICAgbGV0IHJlcXVlc3Q6IElVcGRhdGVDT0RScSA9IHRoaXMuZ2V0VXBkYXRlQ09EKHRvdGFsRGF0YSk7XG4gICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS51cGRhdGVDT0QocmVxdWVzdCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5tZXNzYWdlLmNvZGUgPT09IDEpIHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubG9hZGVyTWVzc2FnZSA9ICcnO1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1BlcmZlY3RvIScsXG4gICAgICAgICAgICB0ZXh0OiAnRWwgQ09EIGhhIHNpZG8gRWRpdGFkbyBleGl0b3NhbWVudGUuJyxcbiAgICAgICAgICAgIGljb246ICdzdWNjZXNzJ1xuICAgICAgICAgIH0pXG4gICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VDT0QuY2xlYXJEYXRhKCk7XG4gICAgICAgICAgdGhpcy5va0NyZWF0ZWRDT0QuZW1pdCh0cnVlKTtcbiAgICAgICAgfWVsc2UgaWYgKHJlc3BvbnNlLm1lc3NhZ2UuY29kZSA9PT0gNCkge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IChyZXNwb25zZS5kYXRhLmVycm9ycyBhcyBhbnlbXSkubWFwKGVycm9yID0+IGAtICR7ZXJyb3IubWVzc2FnZX1gKS5qb2luKCc8YnI+Jyk7XG5cbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdSZXZpc2FyIGxvIHNlbGVjY2lvbmFkbyBlbiBsb3MgY2FtcG9zJyxcbiAgICAgICAgICAgIGh0bWw6IGAke2Vycm9yTWVzc2FnZXN9YCxcbiAgICAgICAgICAgIGljb246ICd3YXJuaW5nJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG5cbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdXYXJuaW5nIScsXG4gICAgICAgICAgICB0ZXh0OiByZXNwb25zZS5tZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgICAgICBpY29uOiAnZXJyb3InXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgdGl0bGU6ICdFcnJvciBpbiBjb2QgY3JlYXRpb24nLFxuICAgICAgICAgIHRleHQ6IGVyci5tZXNzYWdlLFxuICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICB0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KVxuXG4gIH1cblxuICBjcmVhdGVDT0QodG90YWxEYXRhOiBhbnlbXSkge1xuICAgIGlmICh0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uICYmICF0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJ0NyZWFuZG8gQ09ELCBlc3BlcmUgdW4gbW9tZW50bydcbiAgICBsZXQgcmVxdWVzdDogQ3JlYXRlQ09EUnEgPSB0aGlzLmdldENyZWF0ZUNPRCh0b3RhbERhdGEpO1xuICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuY3JlYXRlQ09EKHJlcXVlc3QpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UubWVzc2FnZS5jb2RlID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdQZXJmZWN0byEnLFxuICAgICAgICAgICAgdGV4dDogJ0VsIENPRCBoYSBzaWRvIGNyZWFkbyBleGl0b3NhbWVudGUuJyxcbiAgICAgICAgICAgIGljb246ICdzdWNjZXNzJ1xuICAgICAgICAgIH0pXG4gICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VDT0QuY2xlYXJEYXRhKCk7XG4gICAgICAgICAgdGhpcy5va0NyZWF0ZWRDT0QuZW1pdCh0cnVlKTtcbiAgICAgICAgfWVsc2UgaWYgKHJlc3BvbnNlLm1lc3NhZ2UuY29kZSA9PT0gNCkge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IChyZXNwb25zZS5kYXRhLmVycm9ycyBhcyBhbnlbXSkubWFwKGVycm9yID0+IGAtICR7ZXJyb3IubWVzc2FnZX1gKS5qb2luKCc8YnI+Jyk7XG5cbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdSZXZpc2FyIGxvIHNlbGVjY2lvbmFkbyBlbiBsb3MgY2FtcG9zJyxcbiAgICAgICAgICAgIGh0bWw6IGAke2Vycm9yTWVzc2FnZXN9YCxcbiAgICAgICAgICAgIGljb246ICd3YXJuaW5nJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG5cbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdXYXJuaW5nIScsXG4gICAgICAgICAgICB0ZXh0OiByZXNwb25zZS5tZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgICAgICBpY29uOiAnZXJyb3InXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgdGl0bGU6ICdFcnJvciBpbiBjb2QgY3JlYXRpb24nLFxuICAgICAgICAgIHRleHQ6IGVyci5tZXNzYWdlLFxuICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICB0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KVxuXG4gIH1cblxuICBnZXRDcmVhdGVDT0QoZGF0YTogYW55W10pOiBDcmVhdGVDT0RScSB7XG4gICAgbGV0IHJlcXVlc3Q6IENyZWF0ZUNPRFJxID0ge1xuICAgICAgdG9rZW46IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gICAgICBzdHVkZW50X25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2xhc3RfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2xhc3RfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgbmlja25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmlja25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfZW1haWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9lbWFpbCcpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9udW1iZXI6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIGdlbmRlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdnZW5kZXInKVswXS52YWx1ZSxcbiAgICAgIGJpcnRoZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdiaXJ0aGRhdGUnKVswXS52YWx1ZSxcbiAgICAgIGNpdHk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l0eScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIHBhc3N3b3JkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Bhc3N3b3JkJylbMF0udmFsdWUsXG4gICAgICBuZWVkQXRlbmRhbnQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmVlZEF0ZW5kYW50JylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X2xhc3RfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfbGFzdF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfaWRfY2FyZF90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X3Bob25lX251bWJlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfbnVtYmVyJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfb2NjdXBhdGlvbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfb2NjdXBhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X29mZmljZV9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBzb2NpYWxfc3RyYXR1bTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHJhdHVtJylbMF0udmFsdWUsXG4gICAgICBjaXZpbF9zdGF0dXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l2aWxfc3RhdHVzJylbMF0udmFsdWUsXG4gICAgICBlZHVjYXRpb25hbF9sZXZlbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdncmFkZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfYWRkcmVzcycpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9vY2N1cGF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfb2NjdXBhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgZGlzYWJpbGl0eTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdkaXNhYmlsaXR5JylbMF0udmFsdWUsXG4gICAgICBoZWFsdGhfcmVnaW1lbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdoZWFsdGhfcmVnaW1lbicpWzBdLnZhbHVlLFxuICAgICAgbWFya2V0aW5nX3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbWFya2V0aW5nX3JlYXNvbnMnKVswXS52YWx1ZSxcbiAgICAgIHN0dWR5X3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZHlfcmVhc29ucycpWzBdLnZhbHVlLFxuICAgICAgb2JzZXJ2YXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnb2JzZXJ2YXRpb24nKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzEnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzInKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMzogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzMnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzQnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzUnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzYnKVswXS52YWx1ZSxcbiAgICAgIGF2YWlsaWJsZV9jb3Vyc2VzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2F2YWlsaWJsZV9jb3Vyc2VzJylbMF0udmFsdWUsXG4gICAgICBjb3Vyc2VfdHlwZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb3Vyc2VfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpWzBdLnZhbHVlLFxuICAgICAgZW5nbGlzaF9sZXZlbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdlbmdsaXNoX2xldmVsJylbMF0udmFsdWUsXG4gICAgICBwYXltZW50X21ldGhvZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X21ldGhvZCcpWzBdLnZhbHVlLFxuICAgICAgcXVvdGFfdGltZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncXVvdGFfdGltZXMnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X2RhdGUnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZXM6IHRoaXMuZmluYW5jaW5nRGF0YSEsXG4gICAgICBwcm9ncmFtX3ByaWNlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Byb2dyYW1fcHJpY2UnKVswXS52YWx1ZSxcbiAgICAgIHRvdGFsX3ByaWNlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3RvdGFsX3ByaWNlJylbMF0udmFsdWUsXG4gICAgICBwYWlkX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhaWRfbGV2ZWwnKVswXS52YWx1ZSxcbiAgICAgIHRlcm1zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Rlcm1zJylbMF0udmFsdWUsXG4gICAgICByZV9wYXNzd29yZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdyZV9wYXNzd29yZCcpWzBdLnZhbHVlLFxuICAgICAgYWdlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FnZScpWzBdLnZhbHVlLFxuICAgICAgY291bnRyeTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb3VudHJ5JylbMF0udmFsdWUsXG4gICAgICBzdGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdGF0ZScpWzBdLnZhbHVlLFxuICAgICAgYWNhZGVtaWNfcGxhbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdhY2FkZW1pY19wbGFuJylbMF0udmFsdWUsXG4gICAgICBjb2RlX3JlZmVyczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb2RlX3JlZmVycycpWzBdLnZhbHVlLFxuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIGdldFVwZGF0ZUNPRChkYXRhOiBhbnlbXSk6IElVcGRhdGVDT0RScSB7XG4gICAgbGV0IHJlcXVlc3Q6IElVcGRhdGVDT0RScSA9IHtcbiAgICAgIHRva2VuOiB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpLFxuICAgICAgc3R1ZGVudF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9sYXN0X25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9sYXN0X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIG5pY2tuYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ25pY2tuYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2VtYWlsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfZW1haWwnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X3Bob25lX2luZGljYXRpdmUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfcGhvbmVfbnVtYmVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfcGhvbmVfbnVtYmVyJylbMF0udmFsdWUsXG4gICAgICBnZW5kZXI6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnZ2VuZGVyJylbMF0udmFsdWUsXG4gICAgICBiaXJ0aGRhdGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYmlydGhkYXRlJylbMF0udmFsdWUsXG4gICAgICBjaXR5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NpdHknKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZF90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfaWRfY2FyZF90eXBlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2lkX2NhcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9pZF9jYXJkJylbMF0udmFsdWUsXG4gICAgICBuZWVkQXRlbmRhbnQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmVlZEF0ZW5kYW50JylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X2xhc3RfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfbGFzdF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfaWRfY2FyZF90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X3Bob25lX251bWJlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfbnVtYmVyJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfb2NjdXBhdGlvbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfb2NjdXBhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X29mZmljZV9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBzb2NpYWxfc3RyYXR1bTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHJhdHVtJylbMF0udmFsdWUsXG4gICAgICBjaXZpbF9zdGF0dXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l2aWxfc3RhdHVzJylbMF0udmFsdWUsXG4gICAgICBlZHVjYXRpb25hbF9sZXZlbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdncmFkZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfYWRkcmVzcycpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9vY2N1cGF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfb2NjdXBhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgZGlzYWJpbGl0eTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdkaXNhYmlsaXR5JylbMF0udmFsdWUsXG4gICAgICBoZWFsdGhfcmVnaW1lbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdoZWFsdGhfcmVnaW1lbicpWzBdLnZhbHVlLFxuICAgICAgbWFya2V0aW5nX3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbWFya2V0aW5nX3JlYXNvbnMnKVswXS52YWx1ZSxcbiAgICAgIHN0dWR5X3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZHlfcmVhc29ucycpWzBdLnZhbHVlLFxuICAgICAgb2JzZXJ2YXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnb2JzZXJ2YXRpb24nKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzEnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzInKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMzogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzMnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzQnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzUnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzYnKVswXS52YWx1ZSxcbiAgICAgIGF2YWlsaWJsZV9jb3Vyc2VzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2F2YWlsaWJsZV9jb3Vyc2VzJylbMF0udmFsdWUsXG4gICAgICBjb3Vyc2VfdHlwZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb3Vyc2VfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpWzBdLnZhbHVlLFxuICAgICAgZW5nbGlzaF9sZXZlbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdlbmdsaXNoX2xldmVsJylbMF0udmFsdWUsXG4gICAgICBwYXltZW50X21ldGhvZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X21ldGhvZCcpWzBdLnZhbHVlLFxuICAgICAgcXVvdGFfdGltZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncXVvdGFfdGltZXMnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X2RhdGUnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZXM6IHRoaXMuZmluYW5jaW5nRGF0YSEsXG4gICAgICBwcm9ncmFtX3ByaWNlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Byb2dyYW1fcHJpY2UnKVswXS52YWx1ZSxcbiAgICAgIHRvdGFsX3ByaWNlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3RvdGFsX3ByaWNlJylbMF0udmFsdWUsXG4gICAgICBwYWlkX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhaWRfbGV2ZWwnKVswXS52YWx1ZSxcbiAgICAgIHRlcm1zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Rlcm1zJylbMF0udmFsdWUsXG4gICAgICBhZ2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdlJylbMF0udmFsdWUsXG4gICAgICBjb3VudHJ5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvdW50cnknKVswXS52YWx1ZSxcbiAgICAgIHN0YXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0YXRlJylbMF0udmFsdWUsXG4gICAgICBhY2FkZW1pY19wbGFuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FjYWRlbWljX3BsYW4nKVswXS52YWx1ZSxcbiAgICAgIGNvZGVfcmVmZXJzOiB0aGlzLnBhcnNlTnVtYmVyKGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY29kZV9yZWZlcnMnKVswXS52YWx1ZSksXG4gICAgICBjb2RlX2NvZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb2RlX2NvZCcpWzBdLnZhbHVlLFxuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIGNoYW5nZVN0ZXAoc3RlcDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IHN0ZXA7XG4gIH1cblxuICBwYXJzZU51bWJlcih2YWx1ZTogYW55KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICByZXR1cm4gaXNOYU4ocGFyc2VkVmFsdWUpID8gbnVsbCA6IHBhcnNlZFZhbHVlO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiYWxsb3dlZFJvbGUoKSA7IGVsc2UgVW5hdXRob3JpemVkXCIgY2xhc3M9XCJjb250YWluZXIgZmxleCBmbGV4LWNvbHVtbiBiZy13aGl0ZSBib3JkZXItcm91bmQtMnhsIHAtMyBjb250YWluZXIgYW5pbWF0ZV9fYW5pbWF0ZWQgYW5pbWF0ZV9fZmFkZUluVXBcIj5cblxuICA8c3BhbiAqbmdJZj1cImVkaXRDb2RcIiBjbGFzcz1cImJnLXllbGxvdy01MDAgcC0yIGJvcmRlci1yb3VuZCBtYi0yIHctYXV0byB0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIiBzdHlsZT1cImNvbG9yOiB3aGl0ZTtcIj57eyBmb3JtVGl0bGUgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiIWVkaXRDb2RcIiBjbGFzcz1cImJnLXByaW1hcnkgcC0yIGJvcmRlci1yb3VuZCBtYi0yIHctYXV0byB0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIj57eyBmb3JtVGl0bGUgfX08L3NwYW4+XG5cbiAgPHAtdGFiVmlldyBbYWN0aXZlSW5kZXhdPVwiY3VycmVudFN0ZXBcIiAoYWN0aXZlSW5kZXhDaGFuZ2UpPVwiY3VycmVudFN0ZXAgPSAkZXZlbnRcIiBbc2Nyb2xsYWJsZV09XCJ0cnVlXCI+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS1zdGFyXCIgaGVhZGVyPVwiMS4gUGxhbmVzIHkgY29udmVuaW9zXCI+XG4gICAgICA8YXBwLWNvZC1mb3JtLXN0ZXAtb25lIChjaGFuZ2VTdGVwRXZlbnQpPVwiY2hhbmdlU3RlcCgkZXZlbnQpXCIgW2luaXRpYWxEYXRhXT1cImNvdXJzZVNlbGVjdFwiIFtkYXRhUHJldml1c0NvZERhdGFdPVwiZGF0YUZyb21QcmV2aXVzQ29kRGF0YVwiIFtpc0VkaXRDb2RdPVwiZWRpdENvZFwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC1vbmU+XG4gICAgPC9wLXRhYlBhbmVsPlxuICAgIDxwLXRhYlBhbmVsIGxlZnRJY29uPVwicGkgcGktaWQtY2FyZFwiIGhlYWRlcj1cIjIuIERhdG9zIGRlbCBlc3R1ZGlhbnRlXCI+XG4gICAgICA8YXBwLWNvZC1mb3JtLXN0ZXAtdHdvIChjaGFuZ2VTdGVwRXZlbnQpPVwiY2hhbmdlU3RlcCgkZXZlbnQpXCIgW2luaXRpYWxEYXRhXT1cImRhdGFGcm9tUHJldml1c0NvZERhdGFcIiBbaXNFZGl0Q29kXT1cImVkaXRDb2RcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtdHdvPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLXVzZXItZWRpdFwiIGhlYWRlcj1cIjMuIERhdG9zIGRlbCBhY3VkaWVudGVcIj5cbiAgICAgIDxhcHAtY29kLWZvcm0tc3RlcC10aHJlZSAgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiBbaW5pdGlhbERhdGFdPVwiZGF0YUZyb21QcmV2aXVzQ29kRGF0YVwiIFtpc0VkaXRDb2RdPVwiZWRpdENvZFwiIGNsYXNzPVwicC0xXCI+PC9hcHAtY29kLWZvcm0tc3RlcC10aHJlZT5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS1tb25leS1iaWxsXCIgaGVhZGVyPVwiNC4gVmFsb3Jlc1wiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLWZvdXIgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiAoZmluYW5jaW5nRGF0YSk9XCJzYXZlRmluYW5jaW5nRGF0YSgkZXZlbnQpXCIgW2luaXRpYWxEYXRhXT1cImRhdGFGcm9tUHJldml1c0NvZERhdGFcIiBbaXNFZGl0Q29kXT1cImVkaXRDb2RcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtZm91cj5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS1leWVcIiBoZWFkZXI9XCI1LiBPYnNlcnZhY2lvbmVzXCI+XG4gICAgICA8YXBwLWNvZC1mb3JtLXN0ZXAtZml2ZSAoY2hhbmdlU3RlcEV2ZW50KT1cImNoYW5nZVN0ZXAoJGV2ZW50KVwiIFt1c2VyUm9sZV09XCJ1c2VyUm9sZVwiIFtpbml0aWFsRGF0YV09XCJkYXRhRnJvbVByZXZpdXNDb2REYXRhXCIgKGFjdGlvbik9XCJnZXRGb3JtQWN0aW9uKCRldmVudClcIiBbaXNFZGl0Q29kXT1cImVkaXRDb2RcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtZml2ZT5cbiAgICA8L3AtdGFiUGFuZWw+XG4gIDwvcC10YWJWaWV3PlxuXG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNVbmF1dGhvcml6ZWQ+XG4gIDxzcGFuIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZvbnQtYm9sZCBwLTIgYmcteWVsbG93LTIwMCBib3JkZXItcm91bmQtbGcgdy1mdWxsXCI+XG4gICAgTm8gdGllbmVzIGxvcyBwZXJtaXNvcyBwYXJhIGFjY2VkZXIgYSBlc3RhIGZ1bmNpb25hbGlkYWQsIGNvbXVuw61jYXRlIGNvbiBlbCBkZXNhcnJvbGxhZG9yLlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG5cbjxpcHQtbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2lzRGlhbG9nXT1cInRydWVcIiBbbWVzc2FnZV09XCJsb2FkZXJNZXNzYWdlXCI+PC9pcHQtbG9hZGVyPlxuIl19
389
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9jb2QtZm9ybS9jb2QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL2NvZC1mb3JtL2NvZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTVHLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXL0IsTUFBTSxPQUFPLGdCQUFnQjtJQXNCM0IsWUFDVSxXQUF3QixFQUN4QixlQUF1QyxFQUN2QyxlQUFnQyxFQUNoQyxpQkFBb0M7UUFIcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBcEJwQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHN0MsaUJBQVksR0FBYTtZQUMvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1NBQ3RDLENBQUM7UUFFSyxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBRXZCLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFFdEIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQiw0QkFBdUIsR0FBd0IsSUFBSSxDQUFDO1FBUXpELElBQUksQ0FB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QWtDQTsyRkRyQmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7cU1BTWYsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBDcmVhdGVDT0RScSwgSVVwZGF0ZUNPRFJxIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY29kL2NvZC1ycS5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZXJjaWFsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvY29tbWVyY2lhbC1zZXJ2aWNlL2NvbWVyY2lhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scywgQ29udHJvbCB9IGZyb20gJy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZUNPRFNlcnZpY2UgfSBmcm9tICcuLi9sb2dpYy9sb2NhbC1zdG9yYWdlLWNvZC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lwdC1jb2QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2QtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgQ29kRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBkYXRhRnJvbVByZXZpdXNDb2REYXRhPzogYW55O1xuICBASW5wdXQoKSBjb3Vyc2VTZWxlY3Q/OiBhbnk7XG4gIEBJbnB1dCgpIGlzTmV3Q29kITogYm9vbGVhbjtcbiAgQElucHV0KCkgZWRpdENvZCE6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBva0NyZWF0ZWRDT0QgPSBuZXcgRXZlbnRFbWl0dGVyPEJvb2xlYW4+KCk7XG4gIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGFsbG93ZWRSb2xlczogbnVtYmVyW10gPSBbXG4gICAgMSwgMzAsIDMxLCAzMiwgNDAsIDQxLCA0MiwgNTAsIDUxLCA1MixcbiAgXTtcblxuICBwdWJsaWMgY3VycmVudFN0ZXA6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBmb3JtVGl0bGU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgdXNlclJvbGU6IG51bWJlcjtcbiAgcHVibGljIGZvcm1TdGVwczogbnVtYmVyID0gNTtcbiAgcHVibGljIGZpbmFuY2luZ0RhdGE/OiBhbnlbXTtcbiAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBjb2RDcmVhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VDT0Q6IExvY2FsU3RvcmFnZUNPRFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2RGb3JtQ29udHJvbHM6IENvZEZvcm1Db250cm9scyxcbiAgICBwcml2YXRlIGNvbW1lcmNpYWxTZXJ2aWNlOiBDb21tZXJjaWFsU2VydmljZVxuICApIHtcbiAgICB0aGlzLnVzZXJSb2xlID0gdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyUm9sZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydlZGl0Q29kJ10pIHtcbiAgICAgIGlmICh0aGlzLmVkaXRDb2QpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGFGcm9tUHJldml1c0NvZERhdGEuZWRpdF9jb3Vyc2VfcGF5bWVudCkge1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1F1ZXJpZG8gYXNlc29yJyxcbiAgICAgICAgICAgIHRleHQ6ICdTb2xvIHB1ZWRlIGVkaXRhciBEYXRvcyBkZWwgZXN0dWRpYW50ZScsXG4gICAgICAgICAgICBpY29uOiAnd2FybmluZydcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybVRpdGxlID0gJ0Zvcm11bGFyaW8gcGFyYSB2ZXJpZmljYXIgeSBlZGl0YXIgaW5mb3JtYWNpw7NuIGRlbCBDT0QgYWN0dWFsJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhLmNvZF9yZW5vdmF0aW9uID09IGZhbHNlICYmIHRoaXMuZWRpdENvZCA9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmZvcm1UaXRsZSA9ICdGb3JtdWxhcmlvIHBhcmEgY3JlYWNpw7NuIGRlbCBDT0QnO1xuICAgICAgfWVsc2UgaWYodGhpcy5kYXRhRnJvbVByZXZpdXNDb2REYXRhLmNvZF9yZW5vdmF0aW9uID09IHRydWUgJiYgdGhpcy5lZGl0Q29kID09IGZhbHNlKXtcbiAgICAgICAgdGhpcy5mb3JtVGl0bGUgPSAnRm9ybXVsYXJpbyBwYXJhIGxhIHJlbm92YWNpb24gZGVsIENPRCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFsbG93ZWRSb2xlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93ZWRSb2xlcy5pbmNsdWRlcyh0aGlzLnVzZXJSb2xlKTtcbiAgfVxuXG4gIGdldENvZGJ5Q29kZSgpIHtcbiAgICAvLyBUT0RPOiBUcmFlciBDT0QgcG9yIGPDs2RpZ28geSBwaW50YXJsb1xuICB9XG5cblxuICBzYXZlRmluYW5jaW5nRGF0YShkYXRhOiBhbnlbXSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBjb25zdCBkYXRlczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGRhdGEuZm9yRWFjaChwID0+IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHBbMl07XG4gICAgICAgIGRhdGVzLnB1c2goZGF0ZSk7XG4gICAgICB9KVxuICAgICAgdGhpcy5maW5hbmNpbmdEYXRhID0gZGF0ZXM7XG4gICAgfVxuICB9XG5cbiAgZ2V0Rm9ybUFjdGlvbihhY3Rpb246IHN0cmluZykge1xuICAgIGlmICghdGhpcy5maW5hbmNpbmdEYXRhICYmIHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDQsICdwYXltZW50X21ldGhvZCcpID09PSAnMScpIHtcbiAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgIHRpdGxlOiAnUXVlcmlkbyBhc2Vzb3InLFxuICAgICAgICB0ZXh0OiAnRGViZSBoYWNlciBlbCBjw6FsY3VsbyBkZSBsYXMgY3VvdGFzIGVuIGVsIHBhc28gNCcsXG4gICAgICAgIGljb246ICdlcnJvcidcbiAgICAgIH0pXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRvdGFsRGF0YTogYW55W10gPSBbXTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jb2RGb3JtQ29udHJvbHMuZ2V0Q29udHJvbFZhbHVlcygpLnN1YnNjcmliZSgoY29udHJvbHMpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5mb3JtU3RlcHM7IGkrKykge1xuICAgICAgICAgIGxldCBjb250cm9sc0J5U3RlcDogQ29udHJvbFtdID0gY29udHJvbHNbaS0xXTtcbiAgICAgICAgICAgIGNvbnRyb2xzQnlTdGVwLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKGksIGNvbnRyb2wubmFtZSk7XG4gICAgICAgICAgICAgIC8vIENhbWJpYXIgVHJ1ZS9GYWxzZSBkZWwgbXVsdGljdWx0dXJhbGlzbW8gMS8wXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJyAmJiBjb250cm9sLmRlc2NyaXB0aW9uID09PSAnTXVsdGljdWx0dXJhbGlzbW8nKSB7XG4gICAgICAgICAgICAgICAgdG90YWxEYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogY29udHJvbC5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09ICd0cnVlJyAmJiBjb250cm9sLmRlc2NyaXB0aW9uID09PSAnTXVsdGljdWx0dXJhbGlzbW8nKSB7XG4gICAgICAgICAgICAgICAgdG90YWxEYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnMScsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogY29udHJvbC5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG90YWxEYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogY29udHJvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogY29udHJvbC5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbnRyb2wuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gVmFsaWRhciBlcnJvcmVzXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvdGFsRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdG90YWxEYXRhW2ldO1xuICAgICAgICBpZiAoIWVsZW1lbnQudmFsdWUgJiYgZWxlbWVudC5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHRpdGxlOiAnRXJyb3IgRm9ybSBBY3Rpb24gVmFsaWRhdGUgRXJyb3InLFxuICAgICAgICAgICAgdGV4dDogYFJldmlzYXIgZWwgY2FtcG86IFwiJHtlbGVtZW50LmRlc2NyaXB0aW9ufVwiYCxcbiAgICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWN0aW9uID09PSAnY3JlYXRlJykgdGhpcy5jcmVhdGVDT0QodG90YWxEYXRhKTtcbiAgICAgIGlmIChhY3Rpb24gPT09ICd1cGRhdGUnKSB0aGlzLnVwZGF0ZUNPRCh0b3RhbERhdGEpO1xuICAgIH0pXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gIH1cblxuICB1cGRhdGVDT0QodG90YWxEYXRhOiBhbnlbXSkge1xuICAgIGlmICh0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uICYmICF0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJ0VkaXRhbmRvIENPRCwgZXNwZXJlIHVuIG1vbWVudG8nXG4gICAgbGV0IHJlcXVlc3Q6IElVcGRhdGVDT0RScSA9IHRoaXMuZ2V0VXBkYXRlQ09EKHRvdGFsRGF0YSk7XG4gICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS51cGRhdGVDT0QocmVxdWVzdCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5tZXNzYWdlLmNvZGUgPT09IDEpIHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubG9hZGVyTWVzc2FnZSA9ICcnO1xuICAgICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ1BlcmZlY3RvIScsXG4gICAgICAgICAgICB0ZXh0OiAnRWwgQ09EIGhhIHNpZG8gRWRpdGFkbyBleGl0b3NhbWVudGUuJyxcbiAgICAgICAgICAgIGljb246ICdzdWNjZXNzJ1xuICAgICAgICAgIH0pXG4gICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VDT0QuY2xlYXJEYXRhKCk7XG4gICAgICAgICAgdGhpcy5va0NyZWF0ZWRDT0QuZW1pdCh0cnVlKTtcbiAgICAgICAgfWVsc2UgaWYgKHJlc3BvbnNlLm1lc3NhZ2UuY29kZSA9PT0gNCkge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IChyZXNwb25zZS5kYXRhLmVycm9ycyBhcyBhbnlbXSkubWFwKGVycm9yID0+IGAtICR7ZXJyb3IubWVzc2FnZX1gKS5qb2luKCc8YnI+Jyk7XG5cbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdSZXZpc2FyIGxvIHNlbGVjY2lvbmFkbyBlbiBsb3MgY2FtcG9zJyxcbiAgICAgICAgICAgIGh0bWw6IGAke2Vycm9yTWVzc2FnZXN9YCxcbiAgICAgICAgICAgIGljb246ICd3YXJuaW5nJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG5cbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdXYXJuaW5nIScsXG4gICAgICAgICAgICB0ZXh0OiByZXNwb25zZS5tZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgICAgICBpY29uOiAnZXJyb3InXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgdGl0bGU6ICdFcnJvciBpbiBjb2QgY3JlYXRpb24nLFxuICAgICAgICAgIHRleHQ6IGVyci5tZXNzYWdlLFxuICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICB0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KVxuXG4gIH1cblxuICBjcmVhdGVDT0QodG90YWxEYXRhOiBhbnlbXSkge1xuICAgIGlmICh0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uICYmICF0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJ0NyZWFuZG8gQ09ELCBlc3BlcmUgdW4gbW9tZW50bydcbiAgICBsZXQgcmVxdWVzdDogQ3JlYXRlQ09EUnEgPSB0aGlzLmdldENyZWF0ZUNPRCh0b3RhbERhdGEpO1xuICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuY3JlYXRlQ09EKHJlcXVlc3QpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UubWVzc2FnZS5jb2RlID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRlck1lc3NhZ2UgPSAnJztcbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdQZXJmZWN0byEnLFxuICAgICAgICAgICAgdGV4dDogJ0VsIENPRCBoYSBzaWRvIGNyZWFkbyBleGl0b3NhbWVudGUuJyxcbiAgICAgICAgICAgIGljb246ICdzdWNjZXNzJ1xuICAgICAgICAgIH0pXG4gICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VDT0QuY2xlYXJEYXRhKCk7XG4gICAgICAgICAgdGhpcy5va0NyZWF0ZWRDT0QuZW1pdCh0cnVlKTtcbiAgICAgICAgfWVsc2UgaWYgKHJlc3BvbnNlLm1lc3NhZ2UuY29kZSA9PT0gNCkge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IChyZXNwb25zZS5kYXRhLmVycm9ycyBhcyBhbnlbXSkubWFwKGVycm9yID0+IGAtICR7ZXJyb3IubWVzc2FnZX1gKS5qb2luKCc8YnI+Jyk7XG5cbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdSZXZpc2FyIGxvIHNlbGVjY2lvbmFkbyBlbiBsb3MgY2FtcG9zJyxcbiAgICAgICAgICAgIGh0bWw6IGAke2Vycm9yTWVzc2FnZXN9YCxcbiAgICAgICAgICAgIGljb246ICd3YXJuaW5nJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG5cbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdXYXJuaW5nIScsXG4gICAgICAgICAgICB0ZXh0OiByZXNwb25zZS5tZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgICAgICBpY29uOiAnZXJyb3InXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkZXJNZXNzYWdlID0gJyc7XG4gICAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgICAgdGl0bGU6ICdFcnJvciBpbiBjb2QgY3JlYXRpb24nLFxuICAgICAgICAgIHRleHQ6IGVyci5tZXNzYWdlLFxuICAgICAgICAgIGljb246ICdlcnJvcidcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICB0aGlzLmNvZENyZWF0aW9uU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KVxuXG4gIH1cblxuICBnZXRDcmVhdGVDT0QoZGF0YTogYW55W10pOiBDcmVhdGVDT0RScSB7XG4gICAgbGV0IHJlcXVlc3Q6IENyZWF0ZUNPRFJxID0ge1xuICAgICAgdG9rZW46IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gICAgICBzdHVkZW50X25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2xhc3RfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2xhc3RfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgbmlja25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmlja25hbWUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfZW1haWw6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9lbWFpbCcpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9udW1iZXI6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9waG9uZV9udW1iZXInKVswXS52YWx1ZSxcbiAgICAgIGdlbmRlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdnZW5kZXInKVswXS52YWx1ZSxcbiAgICAgIGJpcnRoZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdiaXJ0aGRhdGUnKVswXS52YWx1ZSxcbiAgICAgIGNpdHk6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l0eScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkX3R5cGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X2lkX2NhcmQnKVswXS52YWx1ZSxcbiAgICAgIHBhc3N3b3JkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Bhc3N3b3JkJylbMF0udmFsdWUsXG4gICAgICBuZWVkQXRlbmRhbnQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmVlZEF0ZW5kYW50JylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X2xhc3RfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfbGFzdF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfaWRfY2FyZF90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X3Bob25lX251bWJlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfbnVtYmVyJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfb2NjdXBhdGlvbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfb2NjdXBhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X29mZmljZV9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBzb2NpYWxfc3RyYXR1bTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHJhdHVtJylbMF0udmFsdWUsXG4gICAgICBjaXZpbF9zdGF0dXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l2aWxfc3RhdHVzJylbMF0udmFsdWUsXG4gICAgICBlZHVjYXRpb25hbF9sZXZlbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdncmFkZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfYWRkcmVzcycpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9vY2N1cGF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfb2NjdXBhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgZGlzYWJpbGl0eTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdkaXNhYmlsaXR5JylbMF0udmFsdWUsXG4gICAgICBoZWFsdGhfcmVnaW1lbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdoZWFsdGhfcmVnaW1lbicpWzBdLnZhbHVlLFxuICAgICAgbWFya2V0aW5nX3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbWFya2V0aW5nX3JlYXNvbnMnKVswXS52YWx1ZSxcbiAgICAgIHN0dWR5X3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZHlfcmVhc29ucycpWzBdLnZhbHVlLFxuICAgICAgb2JzZXJ2YXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnb2JzZXJ2YXRpb24nKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzEnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzInKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMzogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzMnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzQnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzUnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzYnKVswXS52YWx1ZSxcbiAgICAgIGF2YWlsaWJsZV9jb3Vyc2VzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2F2YWlsaWJsZV9jb3Vyc2VzJylbMF0udmFsdWUsXG4gICAgICBjb3Vyc2VfdHlwZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb3Vyc2VfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpWzBdLnZhbHVlLFxuICAgICAgZW5nbGlzaF9sZXZlbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdlbmdsaXNoX2xldmVsJylbMF0udmFsdWUsXG4gICAgICBwYXltZW50X21ldGhvZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X21ldGhvZCcpWzBdLnZhbHVlLFxuICAgICAgcXVvdGFfdGltZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncXVvdGFfdGltZXMnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X2RhdGUnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZXM6IHRoaXMuZmluYW5jaW5nRGF0YSEsXG4gICAgICBwcm9ncmFtX3ByaWNlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Byb2dyYW1fcHJpY2UnKVswXS52YWx1ZSxcbiAgICAgIHRvdGFsX3ByaWNlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3RvdGFsX3ByaWNlJylbMF0udmFsdWUsXG4gICAgICBwYWlkX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhaWRfbGV2ZWwnKVswXS52YWx1ZSxcbiAgICAgIHRlcm1zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Rlcm1zJylbMF0udmFsdWUsXG4gICAgICByZV9wYXNzd29yZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdyZV9wYXNzd29yZCcpWzBdLnZhbHVlLFxuICAgICAgYWdlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FnZScpWzBdLnZhbHVlLFxuICAgICAgY291bnRyeTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb3VudHJ5JylbMF0udmFsdWUsXG4gICAgICBzdGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdGF0ZScpWzBdLnZhbHVlLFxuICAgICAgYWNhZGVtaWNfcGxhbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdhY2FkZW1pY19wbGFuJylbMF0udmFsdWUsXG4gICAgICBjb2RlX3JlZmVyczogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb2RlX3JlZmVycycpWzBdLnZhbHVlLFxuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIGdldFVwZGF0ZUNPRChkYXRhOiBhbnlbXSk6IElVcGRhdGVDT0RScSB7XG4gICAgbGV0IHJlcXVlc3Q6IElVcGRhdGVDT0RScSA9IHtcbiAgICAgIHRva2VuOiB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpLFxuICAgICAgc3R1ZGVudF9uYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9sYXN0X25hbWU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9sYXN0X25hbWUnKVswXS52YWx1ZSxcbiAgICAgIG5pY2tuYW1lOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ25pY2tuYW1lJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2VtYWlsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfZW1haWwnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHVkZW50X3Bob25lX2luZGljYXRpdmUnKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfcGhvbmVfbnVtYmVyOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfcGhvbmVfbnVtYmVyJylbMF0udmFsdWUsXG4gICAgICBnZW5kZXI6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnZ2VuZGVyJylbMF0udmFsdWUsXG4gICAgICBiaXJ0aGRhdGU6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYmlydGhkYXRlJylbMF0udmFsdWUsXG4gICAgICBjaXR5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NpdHknKVswXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZF90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfaWRfY2FyZF90eXBlJylbMF0udmFsdWUsXG4gICAgICBzdHVkZW50X2lkX2NhcmQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZGVudF9pZF9jYXJkJylbMF0udmFsdWUsXG4gICAgICBuZWVkQXRlbmRhbnQ6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbmVlZEF0ZW5kYW50JylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfbmFtZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X2xhc3RfbmFtZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfbGFzdF9uYW1lJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfaWRfY2FyZF90eXBlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkX3R5cGUnKVswXS52YWx1ZSxcbiAgICAgIHBhcmVudF9pZF9jYXJkOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9pZF9jYXJkJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfaW5kaWNhdGl2ZScpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X3Bob25lX251bWJlcjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfcGhvbmVfbnVtYmVyJylbMF0udmFsdWUsXG4gICAgICBwYXJlbnRfb2NjdXBhdGlvbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXJlbnRfb2NjdXBhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgcGFyZW50X29mZmljZV9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhcmVudF9hZGRyZXNzJylbMF0udmFsdWUsXG4gICAgICBzb2NpYWxfc3RyYXR1bTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdzdHJhdHVtJylbMF0udmFsdWUsXG4gICAgICBjaXZpbF9zdGF0dXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY2l2aWxfc3RhdHVzJylbMF0udmFsdWUsXG4gICAgICBlZHVjYXRpb25hbF9sZXZlbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdncmFkZScpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9hZGRyZXNzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfYWRkcmVzcycpWzBdLnZhbHVlLFxuICAgICAgc3R1ZGVudF9vY2N1cGF0aW9uOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0dWRlbnRfb2NjdXBhdGlvbicpWzBdLnZhbHVlLFxuICAgICAgZGlzYWJpbGl0eTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdkaXNhYmlsaXR5JylbMF0udmFsdWUsXG4gICAgICBoZWFsdGhfcmVnaW1lbjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdoZWFsdGhfcmVnaW1lbicpWzBdLnZhbHVlLFxuICAgICAgbWFya2V0aW5nX3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnbWFya2V0aW5nX3JlYXNvbnMnKVswXS52YWx1ZSxcbiAgICAgIHN0dWR5X3JlYXNvbnM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnc3R1ZHlfcmVhc29ucycpWzBdLnZhbHVlLFxuICAgICAgb2JzZXJ2YXRpb246IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnb2JzZXJ2YXRpb24nKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzEnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzInKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMzogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzMnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzQnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzUnKVswXS52YWx1ZSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNjogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdtdWx0aWN1bHR1cmFsaXNtXzYnKVswXS52YWx1ZSxcbiAgICAgIGF2YWlsaWJsZV9jb3Vyc2VzOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2F2YWlsaWJsZV9jb3Vyc2VzJylbMF0udmFsdWUsXG4gICAgICBjb3Vyc2VfdHlwZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb3Vyc2VfdHlwZScpWzBdLnZhbHVlLFxuICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpWzBdLnZhbHVlLFxuICAgICAgZW5nbGlzaF9sZXZlbDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdlbmdsaXNoX2xldmVsJylbMF0udmFsdWUsXG4gICAgICBwYXltZW50X21ldGhvZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X21ldGhvZCcpWzBdLnZhbHVlLFxuICAgICAgcXVvdGFfdGltZXM6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAncXVvdGFfdGltZXMnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZTogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdwYXltZW50X2RhdGUnKVswXS52YWx1ZSxcbiAgICAgIHBheW1lbnRfZGF0ZXM6IHRoaXMuZmluYW5jaW5nRGF0YSEsXG4gICAgICBwcm9ncmFtX3ByaWNlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Byb2dyYW1fcHJpY2UnKVswXS52YWx1ZSxcbiAgICAgIHRvdGFsX3ByaWNlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3RvdGFsX3ByaWNlJylbMF0udmFsdWUsXG4gICAgICBwYWlkX2xldmVsOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3BhaWRfbGV2ZWwnKVswXS52YWx1ZSxcbiAgICAgIHRlcm1zOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3Rlcm1zJylbMF0udmFsdWUsXG4gICAgICBhZ2U6IGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnYWdlJylbMF0udmFsdWUsXG4gICAgICBjb3VudHJ5OiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2NvdW50cnknKVswXS52YWx1ZSxcbiAgICAgIHN0YXRlOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ3N0YXRlJylbMF0udmFsdWUsXG4gICAgICBhY2FkZW1pY19wbGFuOiBkYXRhLmZpbHRlcihkYXRhID0+IGRhdGEuY29udHJvbCA9PT0gJ2FjYWRlbWljX3BsYW4nKVswXS52YWx1ZSxcbiAgICAgIGNvZGVfcmVmZXJzOiB0aGlzLnBhcnNlTnVtYmVyKGRhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5jb250cm9sID09PSAnY29kZV9yZWZlcnMnKVswXS52YWx1ZSksXG4gICAgICBjb2RlX2NvZDogZGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLmNvbnRyb2wgPT09ICdjb2RlX2NvZCcpWzBdLnZhbHVlLFxuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIGNoYW5nZVN0ZXAoc3RlcDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IHN0ZXA7XG4gIH1cblxuICBwYXJzZU51bWJlcih2YWx1ZTogYW55KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICByZXR1cm4gaXNOYU4ocGFyc2VkVmFsdWUpID8gbnVsbCA6IHBhcnNlZFZhbHVlO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiYWxsb3dlZFJvbGUoKSA7IGVsc2UgVW5hdXRob3JpemVkXCIgY2xhc3M9XCJjb250YWluZXIgZmxleCBmbGV4LWNvbHVtbiBiZy13aGl0ZSBib3JkZXItcm91bmQtMnhsIHAtMyBjb250YWluZXIgYW5pbWF0ZV9fYW5pbWF0ZWQgYW5pbWF0ZV9fZmFkZUluVXBcIj5cblxuICA8c3BhbiAqbmdJZj1cImVkaXRDb2RcIiBjbGFzcz1cImJnLXllbGxvdy01MDAgcC0yIGJvcmRlci1yb3VuZCBtYi0yIHctYXV0byB0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIiBzdHlsZT1cImNvbG9yOiB3aGl0ZTtcIj57eyBmb3JtVGl0bGUgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiIWVkaXRDb2RcIiBjbGFzcz1cImJnLXByaW1hcnkgcC0yIGJvcmRlci1yb3VuZCBtYi0yIHctYXV0byB0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIj57eyBmb3JtVGl0bGUgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiIWVkaXRDb2QgJiYgZGF0YUZyb21QcmV2aXVzQ29kRGF0YS5jb2RfcmVub3ZhdGlvblwiIGNsYXNzPVwiYmctcHJpbWFyeSBwLTIgYm9yZGVyLXJvdW5kIG1iLTIgdy1hdXRvIHRleHQtbGcgZm9udC1zZW1pYm9sZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojMWRhNzUwOyBjb2xvcjogd2hpdGU7XCI+e3sgZm9ybVRpdGxlIH19PC9zcGFuPlxuXG4gIDxwLXRhYlZpZXcgW2FjdGl2ZUluZGV4XT1cImN1cnJlbnRTdGVwXCIgKGFjdGl2ZUluZGV4Q2hhbmdlKT1cImN1cnJlbnRTdGVwID0gJGV2ZW50XCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiPlxuICAgIDxwLXRhYlBhbmVsIGxlZnRJY29uPVwicGkgcGktc3RhclwiIGhlYWRlcj1cIjEuIFBsYW5lcyB5IGNvbnZlbmlvc1wiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLW9uZSAoY2hhbmdlU3RlcEV2ZW50KT1cImNoYW5nZVN0ZXAoJGV2ZW50KVwiIFtpbml0aWFsRGF0YV09XCJjb3Vyc2VTZWxlY3RcIiBbZGF0YVByZXZpdXNDb2REYXRhXT1cImRhdGFGcm9tUHJldml1c0NvZERhdGFcIiBbaXNFZGl0Q29kXT1cImVkaXRDb2RcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtb25lPlxuICAgIDwvcC10YWJQYW5lbD5cbiAgICA8cC10YWJQYW5lbCBsZWZ0SWNvbj1cInBpIHBpLWlkLWNhcmRcIiBoZWFkZXI9XCIyLiBEYXRvcyBkZWwgZXN0dWRpYW50ZVwiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLXR3byAoY2hhbmdlU3RlcEV2ZW50KT1cImNoYW5nZVN0ZXAoJGV2ZW50KVwiIFtpbml0aWFsRGF0YV09XCJkYXRhRnJvbVByZXZpdXNDb2REYXRhXCIgW2lzRWRpdENvZF09XCJlZGl0Q29kXCIgY2xhc3M9XCJwLTFcIj48L2FwcC1jb2QtZm9ybS1zdGVwLXR3bz5cbiAgICA8L3AtdGFiUGFuZWw+XG4gICAgPHAtdGFiUGFuZWwgbGVmdEljb249XCJwaSBwaS11c2VyLWVkaXRcIiBoZWFkZXI9XCIzLiBEYXRvcyBkZWwgYWN1ZGllbnRlXCI+XG4gICAgICA8YXBwLWNvZC1mb3JtLXN0ZXAtdGhyZWUgIChjaGFuZ2VTdGVwRXZlbnQpPVwiY2hhbmdlU3RlcCgkZXZlbnQpXCIgW2luaXRpYWxEYXRhXT1cImRhdGFGcm9tUHJldml1c0NvZERhdGFcIiBbaXNFZGl0Q29kXT1cImVkaXRDb2RcIiBjbGFzcz1cInAtMVwiPjwvYXBwLWNvZC1mb3JtLXN0ZXAtdGhyZWU+XG4gICAgPC9wLXRhYlBhbmVsPlxuICAgIDxwLXRhYlBhbmVsIGxlZnRJY29uPVwicGkgcGktbW9uZXktYmlsbFwiIGhlYWRlcj1cIjQuIFZhbG9yZXNcIj5cbiAgICAgIDxhcHAtY29kLWZvcm0tc3RlcC1mb3VyIChjaGFuZ2VTdGVwRXZlbnQpPVwiY2hhbmdlU3RlcCgkZXZlbnQpXCIgKGZpbmFuY2luZ0RhdGEpPVwic2F2ZUZpbmFuY2luZ0RhdGEoJGV2ZW50KVwiIFtpbml0aWFsRGF0YV09XCJkYXRhRnJvbVByZXZpdXNDb2REYXRhXCIgW2lzRWRpdENvZF09XCJlZGl0Q29kXCIgY2xhc3M9XCJwLTFcIj48L2FwcC1jb2QtZm9ybS1zdGVwLWZvdXI+XG4gICAgPC9wLXRhYlBhbmVsPlxuICAgIDxwLXRhYlBhbmVsIGxlZnRJY29uPVwicGkgcGktZXllXCIgaGVhZGVyPVwiNS4gT2JzZXJ2YWNpb25lc1wiPlxuICAgICAgPGFwcC1jb2QtZm9ybS1zdGVwLWZpdmUgKGNoYW5nZVN0ZXBFdmVudCk9XCJjaGFuZ2VTdGVwKCRldmVudClcIiBbdXNlclJvbGVdPVwidXNlclJvbGVcIiBbaW5pdGlhbERhdGFdPVwiZGF0YUZyb21QcmV2aXVzQ29kRGF0YVwiIChhY3Rpb24pPVwiZ2V0Rm9ybUFjdGlvbigkZXZlbnQpXCIgW2lzRWRpdENvZF09XCJlZGl0Q29kXCIgY2xhc3M9XCJwLTFcIj48L2FwcC1jb2QtZm9ybS1zdGVwLWZpdmU+XG4gICAgPC9wLXRhYlBhbmVsPlxuICA8L3AtdGFiVmlldz5cblxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjVW5hdXRob3JpemVkPlxuICA8c3BhbiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmb250LWJvbGQgcC0yIGJnLXllbGxvdy0yMDAgYm9yZGVyLXJvdW5kLWxnIHctZnVsbFwiPlxuICAgIE5vIHRpZW5lcyBsb3MgcGVybWlzb3MgcGFyYSBhY2NlZGVyIGEgZXN0YSBmdW5jaW9uYWxpZGFkLCBjb211bsOtY2F0ZSBjb24gZWwgZGVzYXJyb2xsYWRvci5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuXG48aXB0LWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiIFtpc0RpYWxvZ109XCJ0cnVlXCIgW21lc3NhZ2VdPVwibG9hZGVyTWVzc2FnZVwiPjwvaXB0LWxvYWRlcj5cbiJdfQ==
@@ -5074,10 +5074,10 @@ class CodFormComponent {
5074
5074
  }
5075
5075
  }
5076
5076
  CodFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormComponent, deps: [{ token: BaseService }, { token: LocalStorageCODService }, { token: CodFormControls }, { token: CommercialService }], target: i0.ɵɵFactoryTarget.Component });
5077
- CodFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormComponent, selector: "ipt-cod-form", inputs: { dataFromPreviusCodData: "dataFromPreviusCodData", courseSelect: "courseSelect", isNewCod: "isNewCod", editCod: "editCod" }, outputs: { okCreatedCOD: "okCreatedCOD" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$2.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i6$2.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "component", type: CodFormStepOneComponent, selector: "app-cod-form-step-one", inputs: ["initialData", "dataPreviusCodData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: CodFormStepThreeComponent, selector: "app-cod-form-step-three", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: CodFormStepFourComponent, selector: "app-cod-form-step-four", inputs: ["isEditCod", "initialData"], outputs: ["changeStepEvent", "financingData"] }, { kind: "component", type: CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: ["userRole", "initialData", "isEditCod"], outputs: ["changeStepEvent", "action"] }] });
5077
+ CodFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormComponent, selector: "ipt-cod-form", inputs: { dataFromPreviusCodData: "dataFromPreviusCodData", courseSelect: "courseSelect", isNewCod: "isNewCod", editCod: "editCod" }, outputs: { okCreatedCOD: "okCreatedCOD" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$2.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i6$2.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: LoaderComponent, selector: "ipt-loader", inputs: ["message", "isDialog"] }, { kind: "component", type: CodFormStepOneComponent, selector: "app-cod-form-step-one", inputs: ["initialData", "dataPreviusCodData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: CodFormStepThreeComponent, selector: "app-cod-form-step-three", inputs: ["initialData", "isEditCod"], outputs: ["changeStepEvent"] }, { kind: "component", type: CodFormStepFourComponent, selector: "app-cod-form-step-four", inputs: ["isEditCod", "initialData"], outputs: ["changeStepEvent", "financingData"] }, { kind: "component", type: CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: ["userRole", "initialData", "isEditCod"], outputs: ["changeStepEvent", "action"] }] });
5078
5078
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormComponent, decorators: [{
5079
5079
  type: Component,
5080
- args: [{ selector: 'ipt-cod-form', template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n" }]
5080
+ args: [{ selector: 'ipt-cod-form', template: "<div *ngIf=\"allowedRole() ; else Unauthorized\" class=\"container flex flex-column bg-white border-round-2xl p-3 container animate__animated animate__fadeInUp\">\n\n <span *ngIf=\"editCod\" class=\"bg-yellow-500 p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"color: white;\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\">{{ formTitle }}</span>\n <span *ngIf=\"!editCod && dataFromPreviusCodData.cod_renovation\" class=\"bg-primary p-2 border-round mb-2 w-auto text-lg font-semibold\" style=\"background-color:#1da750; color: white;\">{{ formTitle }}</span>\n\n <p-tabView [activeIndex]=\"currentStep\" (activeIndexChange)=\"currentStep = $event\" [scrollable]=\"true\">\n <p-tabPanel leftIcon=\"pi pi-star\" header=\"1. Planes y convenios\">\n <app-cod-form-step-one (changeStepEvent)=\"changeStep($event)\" [initialData]=\"courseSelect\" [dataPreviusCodData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-one>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-id-card\" header=\"2. Datos del estudiante\">\n <app-cod-form-step-two (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-two>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-user-edit\" header=\"3. Datos del acudiente\">\n <app-cod-form-step-three (changeStepEvent)=\"changeStep($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-three>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-money-bill\" header=\"4. Valores\">\n <app-cod-form-step-four (changeStepEvent)=\"changeStep($event)\" (financingData)=\"saveFinancingData($event)\" [initialData]=\"dataFromPreviusCodData\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-four>\n </p-tabPanel>\n <p-tabPanel leftIcon=\"pi pi-eye\" header=\"5. Observaciones\">\n <app-cod-form-step-five (changeStepEvent)=\"changeStep($event)\" [userRole]=\"userRole\" [initialData]=\"dataFromPreviusCodData\" (action)=\"getFormAction($event)\" [isEditCod]=\"editCod\" class=\"p-1\"></app-cod-form-step-five>\n </p-tabPanel>\n </p-tabView>\n\n</div>\n\n<ng-template #Unauthorized>\n <span class=\"flex justify-content-center font-bold p-2 bg-yellow-200 border-round-lg w-full\">\n No tienes los permisos para acceder a esta funcionalidad, comun\u00EDcate con el desarrollador.\n </span>\n</ng-template>\n\n\n<ipt-loader *ngIf=\"isLoading\" [isDialog]=\"true\" [message]=\"loaderMessage\"></ipt-loader>\n" }]
5081
5081
  }], ctorParameters: function () { return [{ type: BaseService }, { type: LocalStorageCODService }, { type: CodFormControls }, { type: CommercialService }]; }, propDecorators: { dataFromPreviusCodData: [{
5082
5082
  type: Input
5083
5083
  }], courseSelect: [{