@bnsights/bbsf-admin-portal 1.1.74 → 1.1.75

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/README.md CHANGED
@@ -4,6 +4,10 @@ BBSF Admin Portal package is part of BBSF 3 packages. It hosts all the angular m
4
4
 
5
5
  For more info please visit [BBSF documentation](https://bnsightsprojects.visualstudio.com/BBSF%203/_wiki/wikis/BBSF-3.wiki/65/BBSF-Documentation)
6
6
 
7
+ ## 1.1.75 / 11-08-2025
8
+ =====================
9
+ - Updating controls package to 1.0.177
10
+
7
11
  ## 1.1.74 / 11-08-2025
8
12
  =====================
9
13
  - Updating controls package version
@@ -63,10 +63,10 @@ export class UploadLicenseComponent {
63
63
  this.utilityService.stopBlockUI();
64
64
  }
65
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UploadLicenseComponent, deps: [{ token: i1.AccountService }, { token: i2.UtilityService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: UploadLicenseComponent, selector: "lib-upload-license", ngImport: i0, template: "<block-ui></block-ui>\r\n<div class=\"form w-100\" novalidate=\"novalidate\" id=\"kt_sign_in_form\">\r\n <div class=\"text-center mb-10\">\r\n <h1 class=\"text-dark mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}} ?</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-FileUplaod [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUplaod>\r\n </div>\r\n <div class=\"text-center\">\r\n <!--begin::Submit button-->\r\n <button type=\"submit\"\r\n class=\"btn btn-primary btn-sm\">\r\n {{utilityService.getResourceValue(\"Upload\")}}\r\n </button>\r\n </div>\r\n </BBSF-Form>\r\n <div *ngIf=\"ErrorMessage!=null\">\r\n <ul class=\"alert alert-InvalidValidation bg-light-danger list-unstyled\">\r\n <li>\r\n {{ErrorMessage}}\r\n </li>\r\n </ul>\r\n <a href=\"/Admin/account/login\"\r\n class=\"link-primary fs-6 fw-bolder d-flex justify-content-end mt-2\">\r\n <i class=\"fas fa-arrow-left text-light-primary me-2 anchor \"></i> {{utilityService.getResourceValue(\"Back\")}}\r\n </a>\r\n\r\n </div>\r\n</div>\r\n<!--end::Form-->\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.FileUploadComponent, selector: "BBSF-FileUplaod", inputs: ["group", "options"], outputs: ["OnChange", "isUploadComplete"] }, { kind: "component", type: i5.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "component", type: i6.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }] }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: UploadLicenseComponent, selector: "lib-upload-license", ngImport: i0, template: "<block-ui></block-ui>\r\n<div class=\"form w-100\" novalidate=\"novalidate\" id=\"kt_sign_in_form\">\r\n <div class=\"text-center mb-10\">\r\n <h1 class=\"text-dark mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}} ?</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-FileUpload [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUpload>\r\n </div>\r\n <div class=\"text-center\">\r\n <!--begin::Submit button-->\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">\r\n {{utilityService.getResourceValue(\"Upload\")}}\r\n </button>\r\n </div>\r\n </BBSF-Form>\r\n <div *ngIf=\"ErrorMessage!=null\">\r\n <ul class=\"alert alert-InvalidValidation bg-light-danger list-unstyled\">\r\n <li>\r\n {{ErrorMessage}}\r\n </li>\r\n </ul>\r\n <a href=\"/Admin/account/login\" class=\"link-primary fs-6 fw-bolder d-flex justify-content-end mt-2\">\r\n <i class=\"fas fa-arrow-left text-light-primary me-2 anchor \"></i> {{utilityService.getResourceValue(\"Back\")}}\r\n </a>\r\n\r\n </div>\r\n</div>\r\n<!--end::Form-->", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.FileUploadComponent, selector: "BBSF-FileUpload", inputs: ["group", "options"], outputs: ["OnChange", "isUploadComplete"] }, { kind: "component", type: i5.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "component", type: i6.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }] }); }
67
67
  }
68
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UploadLicenseComponent, decorators: [{
69
69
  type: Component,
70
- args: [{ selector: 'lib-upload-license', template: "<block-ui></block-ui>\r\n<div class=\"form w-100\" novalidate=\"novalidate\" id=\"kt_sign_in_form\">\r\n <div class=\"text-center mb-10\">\r\n <h1 class=\"text-dark mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}} ?</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-FileUplaod [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUplaod>\r\n </div>\r\n <div class=\"text-center\">\r\n <!--begin::Submit button-->\r\n <button type=\"submit\"\r\n class=\"btn btn-primary btn-sm\">\r\n {{utilityService.getResourceValue(\"Upload\")}}\r\n </button>\r\n </div>\r\n </BBSF-Form>\r\n <div *ngIf=\"ErrorMessage!=null\">\r\n <ul class=\"alert alert-InvalidValidation bg-light-danger list-unstyled\">\r\n <li>\r\n {{ErrorMessage}}\r\n </li>\r\n </ul>\r\n <a href=\"/Admin/account/login\"\r\n class=\"link-primary fs-6 fw-bolder d-flex justify-content-end mt-2\">\r\n <i class=\"fas fa-arrow-left text-light-primary me-2 anchor \"></i> {{utilityService.getResourceValue(\"Back\")}}\r\n </a>\r\n\r\n </div>\r\n</div>\r\n<!--end::Form-->\r\n" }]
70
+ args: [{ selector: 'lib-upload-license', template: "<block-ui></block-ui>\r\n<div class=\"form w-100\" novalidate=\"novalidate\" id=\"kt_sign_in_form\">\r\n <div class=\"text-center mb-10\">\r\n <h1 class=\"text-dark mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}} ?</h1>\r\n </div>\r\n\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <div class=\"fv-row mb-10\">\r\n <BBSF-FileUpload [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUpload>\r\n </div>\r\n <div class=\"text-center\">\r\n <!--begin::Submit button-->\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">\r\n {{utilityService.getResourceValue(\"Upload\")}}\r\n </button>\r\n </div>\r\n </BBSF-Form>\r\n <div *ngIf=\"ErrorMessage!=null\">\r\n <ul class=\"alert alert-InvalidValidation bg-light-danger list-unstyled\">\r\n <li>\r\n {{ErrorMessage}}\r\n </li>\r\n </ul>\r\n <a href=\"/Admin/account/login\" class=\"link-primary fs-6 fw-bolder d-flex justify-content-end mt-2\">\r\n <i class=\"fas fa-arrow-left text-light-primary me-2 anchor \"></i> {{utilityService.getResourceValue(\"Back\")}}\r\n </a>\r\n\r\n </div>\r\n</div>\r\n<!--end::Form-->" }]
71
71
  }], ctorParameters: () => [{ type: i1.AccountService }, { type: i2.UtilityService }, { type: i3.Router }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWxpY2Vuc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9hbm9ueW1vdXNsYXlvdXQvdXBsb2FkLWxpY2Vuc2UvdXBsb2FkLWxpY2Vuc2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9hbm9ueW1vdXNsYXlvdXQvdXBsb2FkLWxpY2Vuc2UvdXBsb2FkLWxpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUduRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7O0FBTzdFLE1BQU0sT0FBTyxzQkFBc0I7SUFXakMsWUFFWSxjQUE4QixFQUMvQixjQUE4QixFQUM3QixNQUFjO1FBRmQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBYjFCLFlBQVk7UUFDWixpQkFBWSxHQUFXLElBQUksQ0FBQztRQUU1Qix1QkFBdUI7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQWtDbkMsdUJBQWtCLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLElBQUksVUFBVSxHQUFVLEVBQUUsQ0FBQztZQUMzQixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztZ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bmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGaWxlVHlwZSwgRmlsZVVwbG9hZE9wdGlvbnMsIEZvcm1PcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTGljZW5zZU1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9MaWNlbnNlTW9kZWwvTGljZW5zZU1vZGVsJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvQWNjb3VudFNlcnZpY2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi11cGxvYWQtbGljZW5zZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1saWNlbnNlLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwbG9hZExpY2Vuc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvL1BhZ2UgIGRhdGFcclxuICBFcnJvck1lc3NhZ2U6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIC8vVXBsb2FkIE1vZGVsIENvbnRyb2xzXHJcbiAgdXBsb2FkRmlsZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICB1cGxvYWRGaWxlRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zO1xyXG4gIGxpY2Vuc2VGaWxlSW5wdXQ6IEZpbGVVcGxvYWRPcHRpb25zO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3JcclxuICAgIChcclxuICAgICAgcHJpdmF0ZSBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXHJcbiAgICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm0ucmVzZXQoKTtcclxuXHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuZm9ybUdyb3VwID0gdGhpcy51cGxvYWRGaWxlRm9ybTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLmdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEFkZExpY2Vuc2VNb2RlbDtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLnNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTGljZW5zZUZ1bmN0aW9uO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMub25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25TdWNjZXNzSGFuZGxlcjtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLm9uRXJyb3JIYW5kbGVyID0gdGhpcy5vbkVycm9ySGFuZGxlcjtcclxuXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5uYW1lID0gXCJMaWNlbnNlRmlsZUlucHV0XCI7XHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQubGFiZWxLZXkgPSBcIlVwbG9hZEZpbGVcIjtcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5pc011bHRpcGxlRmlsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LmZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgPSBbRmlsZVR5cGUuTGljZW5zZV07XHJcblxyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG5cclxuICB9XHJcblxyXG4gIGdldEFkZExpY2Vuc2VNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy51cGxvYWRGaWxlRm9ybS52YWx1ZTtcclxuICAgIGxldCBNb2RlbCA9IG5ldyBMaWNlbnNlTW9kZWwoKTtcclxuXHJcbiAgICBNb2RlbC5MaWNlbnNlRmlsZSA9IHtcclxuICAgICAgZmlsZUJhc2U2NDogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZUJhc2U2NCxcclxuICAgICAgZmlsZU5hbWU6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVOYW1lLFxyXG4gICAgICBmaWxlU2l6ZUluTUI6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVTaXplSW5NQixcclxuICAgICAgZmlsZVR5cGU6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVUeXBlLFxyXG4gICAgICBpc05ldzogdHJ1ZVxyXG4gICAgfTtcclxuICAgIHBhcmFtQXJyYXkucHVzaChNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9O1xyXG5cclxuICBnZXRBZGRMaWNlbnNlRnVuY3Rpb24gPSAoTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFNlcnZpY2UudXBsb2FkTGljZW5zZShNb2RlbCk7XHJcbiAgfTtcclxuICBvblN1Y2Nlc3NIYW5kbGVyID0gKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYgKHJlc3VsdC52YWwpIHtcclxuICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSgpO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9BZG1pbi9hY2NvdW50L2xvZ2luJ10pO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgb25FcnJvckhhbmRsZXIgPSAoZXJyKSA9PiB7XHJcbiAgICB0aGlzLkVycm9yTWVzc2FnZSA9IGBBbiBlcnJvciBvY2N1cnJlZDogJHtlcnIuZXJyb3J9YDtcclxuICB9O1xyXG5cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcbjxkaXYgY2xhc3M9XCJmb3JtIHctMTAwXCIgbm92YWxpZGF0ZT1cIm5vdmFsaWRhdGVcIiBpZD1cImt0X3NpZ25faW5fZm9ybVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtYi0xMFwiPlxyXG4gICAgPGgxIGNsYXNzPVwidGV4dC1kYXJrIG1iLTNcIj4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVXBsb2FkTGljZW5zZVwiKX19ID88L2gxPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cInVwbG9hZEZpbGVGb3JtT3B0aW9uc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZ2LXJvdyBtYi0xMFwiPlxyXG4gICAgICA8QkJTRi1GaWxlVXBsYW9kIFtvcHRpb25zXT1cImxpY2Vuc2VGaWxlSW5wdXRcIiBbZ3JvdXBdPVwidXBsb2FkRmlsZUZvcm1cIj5cclxuICAgICAgPC9CQlNGLUZpbGVVcGxhb2Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8IS0tYmVnaW46OlN1Ym1pdCBidXR0b24tLT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj5cclxuICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJVcGxvYWRcIil9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvQkJTRi1Gb3JtPlxyXG4gIDxkaXYgKm5nSWY9XCJFcnJvck1lc3NhZ2UhPW51bGxcIj5cclxuICAgIDx1bCBjbGFzcz1cImFsZXJ0IGFsZXJ0LUludmFsaWRWYWxpZGF0aW9uIGJnLWxpZ2h0LWRhbmdlciBsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgIDxsaT5cclxuICAgICAgICB7e0Vycm9yTWVzc2FnZX19XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gICAgPGEgaHJlZj1cIi9BZG1pbi9hY2NvdW50L2xvZ2luXCJcclxuICAgICAgIGNsYXNzPVwibGluay1wcmltYXJ5IGZzLTYgZnctYm9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTJcIj5cclxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYXJyb3ctbGVmdCB0ZXh0LWxpZ2h0LXByaW1hcnkgbWUtMiBhbmNob3IgXCI+PC9pPiB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJCYWNrXCIpfX1cclxuICAgIDwvYT5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48IS0tZW5kOjpGb3JtLS0+XHJcbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWxpY2Vuc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9hbm9ueW1vdXNsYXlvdXQvdXBsb2FkLWxpY2Vuc2UvdXBsb2FkLWxpY2Vuc2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9hbm9ueW1vdXNsYXlvdXQvdXBsb2FkLWxpY2Vuc2UvdXBsb2FkLWxpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUduRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7O0FBTzdFLE1BQU0sT0FBTyxzQkFBc0I7SUFXakMsWUFFWSxjQUE4QixFQUMvQixjQUE4QixFQUM3QixNQUFjO1FBRmQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBYjFCLFlBQVk7UUFDWixpQkFBWSxHQUFXLElBQUksQ0FBQztRQUU1Qix1QkFBdUI7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQWtDbkMsdUJBQWtCLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLElBQUksVUFBVSxHQUFVLEVBQUUsQ0FBQztZQUMzQixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztZ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YW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRmlsZVR5cGUsIEZpbGVVcGxvYWRPcHRpb25zLCBGb3JtT3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExpY2Vuc2VNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTGljZW5zZU1vZGVsL0xpY2Vuc2VNb2RlbCc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0FjY291bnRTZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdXBsb2FkLWxpY2Vuc2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtbGljZW5zZS5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRMaWNlbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLy9QYWdlICBkYXRhXHJcbiAgRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvL1VwbG9hZCBNb2RlbCBDb250cm9sc1xyXG4gIHVwbG9hZEZpbGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgdXBsb2FkRmlsZUZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICBsaWNlbnNlRmlsZUlucHV0OiBGaWxlVXBsb2FkT3B0aW9ucztcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yXHJcbiAgICAoXHJcbiAgICAgIHByaXZhdGUgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtLnJlc2V0KCk7XHJcblxyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMudXBsb2FkRmlsZUZvcm07XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5nZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMaWNlbnNlTW9kZWw7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZExpY2Vuc2VGdW5jdGlvbjtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLm9uU3VjY2Vzc0hhbmRsZXIgPSB0aGlzLm9uU3VjY2Vzc0hhbmRsZXI7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5vbkVycm9ySGFuZGxlciA9IHRoaXMub25FcnJvckhhbmRsZXI7XHJcblxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0ID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQubmFtZSA9IFwiTGljZW5zZUZpbGVJbnB1dFwiO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LmxhYmVsS2V5ID0gXCJVcGxvYWRGaWxlXCI7XHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQuaXNNdWx0aXBsZUZpbGUgPSBmYWxzZTtcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5maWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gW0ZpbGVUeXBlLkxpY2Vuc2VdO1xyXG5cclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRBZGRMaWNlbnNlTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMudXBsb2FkRmlsZUZvcm0udmFsdWU7XHJcbiAgICBsZXQgTW9kZWwgPSBuZXcgTGljZW5zZU1vZGVsKCk7XHJcblxyXG4gICAgTW9kZWwuTGljZW5zZUZpbGUgPSB7XHJcbiAgICAgIGZpbGVCYXNlNjQ6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVCYXNlNjQsXHJcbiAgICAgIGZpbGVOYW1lOiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlTmFtZSxcclxuICAgICAgZmlsZVNpemVJbk1COiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlU2l6ZUluTUIsXHJcbiAgICAgIGZpbGVUeXBlOiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlVHlwZSxcclxuICAgICAgaXNOZXc6IHRydWVcclxuICAgIH07XHJcbiAgICBwYXJhbUFycmF5LnB1c2goTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0QWRkTGljZW5zZUZ1bmN0aW9uID0gKE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmFjY291bnRTZXJ2aWNlLnVwbG9hZExpY2Vuc2UoTW9kZWwpO1xyXG4gIH07XHJcbiAgb25TdWNjZXNzSGFuZGxlciA9IChyZXN1bHQpID0+IHtcclxuICAgIGlmIChyZXN1bHQudmFsKSB7XHJcbiAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UoKTtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vYWNjb3VudC9sb2dpbiddKTtcclxuICAgIH1cclxuICB9O1xyXG4gIG9uRXJyb3JIYW5kbGVyID0gKGVycikgPT4ge1xyXG4gICAgdGhpcy5FcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZXJyLmVycm9yfWA7XHJcbiAgfTtcclxuXHJcblxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG48ZGl2IGNsYXNzPVwiZm9ybSB3LTEwMFwiIG5vdmFsaWRhdGU9XCJub3ZhbGlkYXRlXCIgaWQ9XCJrdF9zaWduX2luX2Zvcm1cIj5cclxuICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbWItMTBcIj5cclxuICAgIDxoMSBjbGFzcz1cInRleHQtZGFyayBtYi0zXCI+IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlVwbG9hZExpY2Vuc2VcIil9fSA/PC9oMT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJ1cGxvYWRGaWxlRm9ybU9wdGlvbnNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgbWItMTBcIj5cclxuICAgICAgPEJCU0YtRmlsZVVwbG9hZCBbb3B0aW9uc109XCJsaWNlbnNlRmlsZUlucHV0XCIgW2dyb3VwXT1cInVwbG9hZEZpbGVGb3JtXCI+XHJcbiAgICAgIDwvQkJTRi1GaWxlVXBsb2FkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgPCEtLWJlZ2luOjpTdWJtaXQgYnV0dG9uLS0+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPlxyXG4gICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlVwbG9hZFwiKX19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9CQlNGLUZvcm0+XHJcbiAgPGRpdiAqbmdJZj1cIkVycm9yTWVzc2FnZSE9bnVsbFwiPlxyXG4gICAgPHVsIGNsYXNzPVwiYWxlcnQgYWxlcnQtSW52YWxpZFZhbGlkYXRpb24gYmctbGlnaHQtZGFuZ2VyIGxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgPGxpPlxyXG4gICAgICAgIHt7RXJyb3JNZXNzYWdlfX1cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgICA8YSBocmVmPVwiL0FkbWluL2FjY291bnQvbG9naW5cIiBjbGFzcz1cImxpbmstcHJpbWFyeSBmcy02IGZ3LWJvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0yXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWFycm93LWxlZnQgdGV4dC1saWdodC1wcmltYXJ5IG1lLTIgYW5jaG9yIFwiPjwvaT4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQmFja1wiKX19XHJcbiAgICA8L2E+XHJcblxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPCEtLWVuZDo6Rm9ybS0tPiJdfQ==
@@ -155,10 +155,10 @@ export class LicenseComponent {
155
155
  this.requestHandlerService.destroyHandler();
156
156
  }
157
157
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LicenseComponent, deps: [{ token: i1.PageInfoService }, { token: i2.UtilityService }, { token: i2.EnvironmentService }, { token: i3.LicenseService }, { token: i4.NgbModal }, { token: i2.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
158
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LicenseComponent, selector: "lib-license", ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n <!--Begin::Section-->\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <h3 *ngIf=\"!noLicenseFound\" class=\"\">{{name}}</h3>\r\n <span *ngIf=\"!noLicenseFound\" class=\"badge badge-light-success m-3 badge-lg\">\r\n {{utilityService.getResourceValue(\"LicenseActivatedSuccessfully\")}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"showUploadModal(uploadFileModal)\">\r\n {{utilityService.getResourceValue(\"Activate\")}}\r\n </button>\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex align-items-center justify-content-center\" *ngIf=\"!noLicenseFound\">\r\n <ng-container *ngIf=\"showTimer\">\r\n <div class=\"main_Timer\">\r\n <div class=\"clock\">\r\n <div class=\"time row\">\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Years\")}}</div>\r\n <span class=\"years fs-2hx fw-bolder text-gray-900\">{{years}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Months\")}}</div>\r\n <span class=\"months fs-2hx fw-bolder text-gray-900\">{{months}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Days\")}}</div>\r\n <span class=\"days fs-2hx fw-bolder text-gray-900\">{{days}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Hours\")}}</div>\r\n <span class=\"hours fs-2hx fw-bolder text-gray-900\">{{hours}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Minutes\")}}</div>\r\n <span class=\"min fs-2hx fw-bolder text-gray-900\">{{minutes}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Seconds\")}}</div>\r\n <span class=\"sec fs-2hx fw-bolder text-gray-900\">{{seconds}}</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center license-head\" *ngIf=\"noLicenseFound\">\r\n <h3 class=\"text-danger\">\r\n {{utilityService.getResourceValue(\"LicenseNotFound\")}}\r\n </h3>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!noLicenseFound\" class=\"card-footer border-0 d-flex justify-content-between\">\r\n <div class=\"mb-4\">\r\n <p class=\"badge badge-light-primary fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseStartDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseStartDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n <div>\r\n <p class=\"badge badge-light-danger fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseExpiryDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseEndDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- activate-->\r\n <ng-template #uploadFileModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'.././src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <BBSF-FileUplaod [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUplaod>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseLicenseFileModal id=\"CloseLicenseFileModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(false)\" class=\"btn btn-light-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(true)\" class=\"btn btn-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Append\")}}</button>\r\n\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n", styles: [".counter-item{padding:50px 5px;margin:0 10px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i7.FileUploadComponent, selector: "BBSF-FileUplaod", inputs: ["group", "options"], outputs: ["OnChange", "isUploadComplete"] }, { kind: "component", type: i7.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "directive", type: i8.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
158
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LicenseComponent, selector: "lib-license", ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<!--Begin::Section-->\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <h3 *ngIf=\"!noLicenseFound\" class=\"\">{{name}}</h3>\r\n <span *ngIf=\"!noLicenseFound\" class=\"badge badge-light-success m-3 badge-lg\">\r\n {{utilityService.getResourceValue(\"LicenseActivatedSuccessfully\")}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"showUploadModal(uploadFileModal)\">\r\n {{utilityService.getResourceValue(\"Activate\")}}\r\n </button>\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex align-items-center justify-content-center\" *ngIf=\"!noLicenseFound\">\r\n <ng-container *ngIf=\"showTimer\">\r\n <div class=\"main_Timer\">\r\n <div class=\"clock\">\r\n <div class=\"time row\">\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Years\")}}</div>\r\n <span class=\"years fs-2hx fw-bolder text-gray-900\">{{years}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Months\")}}</div>\r\n <span class=\"months fs-2hx fw-bolder text-gray-900\">{{months}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Days\")}}</div>\r\n <span class=\"days fs-2hx fw-bolder text-gray-900\">{{days}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div\r\n class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Hours\")}}</div>\r\n <span class=\"hours fs-2hx fw-bolder text-gray-900\">{{hours}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div\r\n class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Minutes\")}}</div>\r\n <span class=\"min fs-2hx fw-bolder text-gray-900\">{{minutes}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div\r\n class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Seconds\")}}</div>\r\n <span class=\"sec fs-2hx fw-bolder text-gray-900\">{{seconds}}</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center license-head\" *ngIf=\"noLicenseFound\">\r\n <h3 class=\"text-danger\">\r\n {{utilityService.getResourceValue(\"LicenseNotFound\")}}\r\n </h3>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!noLicenseFound\" class=\"card-footer border-0 d-flex justify-content-between\">\r\n <div class=\"mb-4\">\r\n <p class=\"badge badge-light-primary fs-7 fw-bolder me-2 min-w-150px\">\r\n {{utilityService.getResourceValue(\"LicenseStartDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseStartDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n <div>\r\n <p class=\"badge badge-light-danger fs-7 fw-bolder me-2 min-w-150px\">\r\n {{utilityService.getResourceValue(\"LicenseExpiryDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseEndDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<!-- activate-->\r\n<ng-template #uploadFileModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'.././src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <BBSF-FileUpload [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUpload>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseLicenseFileModal id=\"CloseLicenseFileModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\"\r\n (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(false)\"\r\n class=\"btn btn-light-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(true)\"\r\n class=\"btn btn-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Append\")}}</button>\r\n\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>", styles: [".counter-item{padding:50px 5px;margin:0 10px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i7.FileUploadComponent, selector: "BBSF-FileUpload", inputs: ["group", "options"], outputs: ["OnChange", "isUploadComplete"] }, { kind: "component", type: i7.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "directive", type: i8.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
159
159
  }
160
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LicenseComponent, decorators: [{
161
161
  type: Component,
162
- args: [{ selector: 'lib-license', template: "<block-ui></block-ui>\r\n\r\n <!--Begin::Section-->\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <h3 *ngIf=\"!noLicenseFound\" class=\"\">{{name}}</h3>\r\n <span *ngIf=\"!noLicenseFound\" class=\"badge badge-light-success m-3 badge-lg\">\r\n {{utilityService.getResourceValue(\"LicenseActivatedSuccessfully\")}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"showUploadModal(uploadFileModal)\">\r\n {{utilityService.getResourceValue(\"Activate\")}}\r\n </button>\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex align-items-center justify-content-center\" *ngIf=\"!noLicenseFound\">\r\n <ng-container *ngIf=\"showTimer\">\r\n <div class=\"main_Timer\">\r\n <div class=\"clock\">\r\n <div class=\"time row\">\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Years\")}}</div>\r\n <span class=\"years fs-2hx fw-bolder text-gray-900\">{{years}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Months\")}}</div>\r\n <span class=\"months fs-2hx fw-bolder text-gray-900\">{{months}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Days\")}}</div>\r\n <span class=\"days fs-2hx fw-bolder text-gray-900\">{{days}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Hours\")}}</div>\r\n <span class=\"hours fs-2hx fw-bolder text-gray-900\">{{hours}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Minutes\")}}</div>\r\n <span class=\"min fs-2hx fw-bolder text-gray-900\">{{minutes}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Seconds\")}}</div>\r\n <span class=\"sec fs-2hx fw-bolder text-gray-900\">{{seconds}}</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center license-head\" *ngIf=\"noLicenseFound\">\r\n <h3 class=\"text-danger\">\r\n {{utilityService.getResourceValue(\"LicenseNotFound\")}}\r\n </h3>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!noLicenseFound\" class=\"card-footer border-0 d-flex justify-content-between\">\r\n <div class=\"mb-4\">\r\n <p class=\"badge badge-light-primary fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseStartDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseStartDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n <div>\r\n <p class=\"badge badge-light-danger fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseExpiryDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseEndDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- activate-->\r\n <ng-template #uploadFileModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'.././src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <BBSF-FileUplaod [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUplaod>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseLicenseFileModal id=\"CloseLicenseFileModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(false)\" class=\"btn btn-light-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(true)\" class=\"btn btn-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Append\")}}</button>\r\n\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n", styles: [".counter-item{padding:50px 5px;margin:0 10px}\n"] }]
162
+ args: [{ selector: 'lib-license', template: "<block-ui></block-ui>\r\n\r\n<!--Begin::Section-->\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <h3 *ngIf=\"!noLicenseFound\" class=\"\">{{name}}</h3>\r\n <span *ngIf=\"!noLicenseFound\" class=\"badge badge-light-success m-3 badge-lg\">\r\n {{utilityService.getResourceValue(\"LicenseActivatedSuccessfully\")}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"showUploadModal(uploadFileModal)\">\r\n {{utilityService.getResourceValue(\"Activate\")}}\r\n </button>\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex align-items-center justify-content-center\" *ngIf=\"!noLicenseFound\">\r\n <ng-container *ngIf=\"showTimer\">\r\n <div class=\"main_Timer\">\r\n <div class=\"clock\">\r\n <div class=\"time row\">\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Years\")}}</div>\r\n <span class=\"years fs-2hx fw-bolder text-gray-900\">{{years}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Months\")}}</div>\r\n <span class=\"months fs-2hx fw-bolder text-gray-900\">{{months}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Days\")}}</div>\r\n <span class=\"days fs-2hx fw-bolder text-gray-900\">{{days}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div\r\n class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Hours\")}}</div>\r\n <span class=\"hours fs-2hx fw-bolder text-gray-900\">{{hours}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div\r\n class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Minutes\")}}</div>\r\n <span class=\"min fs-2hx fw-bolder text-gray-900\">{{minutes}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div\r\n class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">\r\n {{utilityService.getResourceValue(\"Seconds\")}}</div>\r\n <span class=\"sec fs-2hx fw-bolder text-gray-900\">{{seconds}}</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center license-head\" *ngIf=\"noLicenseFound\">\r\n <h3 class=\"text-danger\">\r\n {{utilityService.getResourceValue(\"LicenseNotFound\")}}\r\n </h3>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!noLicenseFound\" class=\"card-footer border-0 d-flex justify-content-between\">\r\n <div class=\"mb-4\">\r\n <p class=\"badge badge-light-primary fs-7 fw-bolder me-2 min-w-150px\">\r\n {{utilityService.getResourceValue(\"LicenseStartDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseStartDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n <div>\r\n <p class=\"badge badge-light-danger fs-7 fw-bolder me-2 min-w-150px\">\r\n {{utilityService.getResourceValue(\"LicenseExpiryDate\")}}:</p>\r\n <p class=\"font-weight-500\">{{licenseEndDate | date:'dd-MM-y'}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<!-- activate-->\r\n<ng-template #uploadFileModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'.././src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"UploadLicense\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <BBSF-FileUpload [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUpload>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseLicenseFileModal id=\"CloseLicenseFileModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\"\r\n (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(false)\"\r\n class=\"btn btn-light-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(true)\"\r\n class=\"btn btn-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Append\")}}</button>\r\n\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>", styles: [".counter-item{padding:50px 5px;margin:0 10px}\n"] }]
163
163
  }], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.UtilityService }, { type: i2.EnvironmentService }, { type: i3.LicenseService }, { type: i4.NgbModal }, { type: i2.RequestHandlerService }] });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2xpY2Vuc2UvbGljZW5zZS9saWNlbnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbGljZW5zZS9saWNlbnNlL2xpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7QUFTckYsTUFBTSxPQUFPLGdCQUFnQjtJQTRCeUIsQ0FBQztJQUdyRCxZQUNVLGVBQWdDLEVBQ2pDLGNBQThCLEVBQzdCLGtCQUFzQyxFQUN0QyxjQUE4QixFQUM5QixZQUFzQixFQUN0QixxQkFBNEM7UUFMNUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBbkN0RCxvQkFBZSxHQUFHLEtBQUssQ0FBQztR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QztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSztRQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLFFBQVEsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBR0QsMERBQTBEO0lBQzFELGVBQWUsQ0FBQyxlQUFlO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzRCxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3RFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDOUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUdwRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBR2xFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFcEMsQ0FBQztJQXVCRCw0REFBNEQ7SUFFNUQsZ0JBQWdCLENBQUMsY0FBYztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBUUQsb0RBQW9EO0lBQ3BELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzsrR0FuTFUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsbURDZjdCLDR6TkE0SEE7OzRGRDdHYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWxlVHlwZSwgRmlsZVVwbG9hZE9wdGlvbnMsIEZvcm1PcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBMaWNlbnNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xpY2Vuc2VTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExpY2Vuc2VNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTGljZW5zZU1vZGVsL0xpY2Vuc2VNb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saWNlbnNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGljZW5zZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGljZW5zZS5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWNlbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgU2hvd1BhZ2VDb250ZW50ID0gZmFsc2U7XHJcbiAgY2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1NoYWRvdyA9IFtdO1xyXG4gIG5vTGljZW5zZUZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWN0aXZhdGlvbkRhdGU6IHN0cmluZztcclxuICBsaWNlbnNlU3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgbGljZW5zZUVuZERhdGU6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0ZUluTWludXRlczogbnVtYmVyID0gMDtcclxuICBzZWNvbmRzOiBudW1iZXIgPSAwO1xyXG4gIG1pbnV0ZXM6IG51bWJlciA9IDA7XHJcbiAgaG91cnM6IG51bWJlciA9IDA7XHJcbiAgZGF5czogbnVtYmVyID0gMDtcclxuICB3ZWVrczogbnVtYmVyID0gMDtcclxuICBtb250aHM6IG51bWJlciA9IDA7XHJcbiAgeWVhcnM6IG51bWJlciA9IDA7XHJcbiAgZGF0ZV9mdXR1cmU6IGFueTtcclxuICBkYXRlX25vdzogYW55O1xyXG4gIHNob3dUaW1lcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGludGVydmFsQ29uc3Q6IGFueTtcclxuICAvL1VwbG9hZCBNb2RlbCBDb250cm9sc1xyXG4gIHVwbG9hZEZpbGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgdXBsb2FkRmlsZUZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICBsaWNlbnNlRmlsZUlucHV0OiBGaWxlVXBsb2FkT3B0aW9ucztcclxuICBhcHBlbmRFeGlzdGluZzogYm9vbGVhbjtcclxuICBpbml0aWFsTWludXRlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDI0ICogNjAgKiAzMCk7O1xyXG4gIHZhbHVlID0gMDtcclxuICB0aW1lciQ6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgbGljZW5zZVNlcnZpY2U6IExpY2Vuc2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZVwiKTtcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKCk7XHJcbiAgICAvL2luaXRpYWxpemUgcGFnZVxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxpY2Vuc2VTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbkxpY2Vuc2UoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgTW9kZWwgPSByZXN1bHQgYXMgYW55O1xyXG4gICAgICBpZiAoTW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZUxpY2Vuc2VEYXRhKE1vZGVsLnZhbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRQYWdlTGljZW5zZURhdGEobGljZW5zZTogYW55KSB7XHJcbiAgICBsZXQgc3RhcnREYXRlID0gbmV3IERhdGUobGljZW5zZS5saWNlbnNlU3RhcnREYXRlKTtcclxuICAgIGxldCBlbmREYXRlID0gbmV3IERhdGUobGljZW5zZS5saWNlbnNlRW5kRGF0ZSk7XHJcbiAgICBsZXQgYWN0aXZhdGlvbkRhdGUgPSBuZXcgRGF0ZShsaWNlbnNlLmFjdGl2YXRpb25EYXRlKTtcclxuICAgIHRoaXMuYWN0aXZhdGlvbkRhdGUgPSBhY3RpdmF0aW9uRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcclxuICAgIHRoaXMubGljZW5zZVN0YXJ0RGF0ZSA9IHN0YXJ0RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcclxuICAgIHRoaXMubGljZW5zZUVuZERhdGUgPSBlbmREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xyXG4gICAgdGhpcy5uYW1lID0gbGljZW5zZS5uYW1lLmN1cnJlbnQ7XHJcblxyXG4gICAgbGV0IEN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGlmICgoZW5kRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA9PSBDdXJyZW50RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSkpXHJcbiAgICAgIHRoaXMubm9MaWNlbnNlRm91bmQgPSB0cnVlO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLm5vTGljZW5zZUZvdW5kID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5kYXRlSW5NaW51dGVzID0gdGhpcy5nZXREaWZmZXJlbmNlSW5NaW51dGVzKEN1cnJlbnREYXRlLCBlbmREYXRlKTtcclxuICAgIC8vc2V0IGZpcnN0IHRpbWVcclxuICAgIHRoaXMuc2V0Q291bnRlcihlbmREYXRlKTtcclxuICAgIHRoaXMuc2hvd1RpbWVyID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmludGVydmFsQ29uc3QgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0Q291bnRlcihlbmREYXRlKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgc2V0Q291bnRlcihlbmREYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLmRhdGVfZnV0dXJlID0gZW5kRGF0ZTtcclxuICAgIHRoaXMuZGF0ZV9ub3cgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgIHRoaXMuc2Vjb25kcyA9IE1hdGguZmxvb3IoKHRoaXMuZGF0ZV9mdXR1cmUgLSAodGhpcy5kYXRlX25vdykpIC8gMTAwMCk7XHJcbiAgICB0aGlzLm1pbnV0ZXMgPSBNYXRoLmZsb29yKHRoaXMuc2Vjb25kcyAvIDYwKTtcclxuICAgIHRoaXMuaG91cnMgPSBNYXRoLmZsb29yKHRoaXMubWludXRlcyAvIDYwKTtcclxuICAgIHRoaXMuZGF5cyA9IE1hdGguZmxvb3IodGhpcy5ob3VycyAvIDI0KTtcclxuICAgIHRoaXMubW9udGhzID0gTWF0aC5mbG9vcih0aGlzLmRheXMgLyAzMSk7XHJcbiAgICB0aGlzLnllYXJzID0gTWF0aC5mbG9vcih0aGlzLm1vbnRocyAvIDEyKTtcclxuXHJcbiAgICB0aGlzLmhvdXJzID0gdGhpcy5ob3VycyAtICh0aGlzLmRheXMgKiAyNCk7XHJcbiAgICB0aGlzLm1pbnV0ZXMgPSB0aGlzLm1pbnV0ZXMgLSAodGhpcy5kYXlzICogMjQgKiA2MCkgLSAodGhpcy5ob3VycyAqIDYwKTtcclxuICAgIHRoaXMuc2Vjb25kcyA9IHRoaXMuc2Vjb25kcyAtICh0aGlzLmRheXMgKiAyNCAqIDYwICogNjApIC0gKHRoaXMuaG91cnMgKiA2MCAqIDYwKSAtICh0aGlzLm1pbnV0ZXMgKiA2MCk7XHJcbiAgICB0aGlzLmRheXMgPSB0aGlzLmRheXMgLSAodGhpcy5tb250aHMgKiAzMSk7XHJcbiAgICB0aGlzLm1vbnRocyA9IHRoaXMubW9udGhzIC0gKHRoaXMueWVhcnMgKiAxMik7XHJcbiAgfVxyXG5cclxuICBnZXREaWZmZXJlbmNlSW5NaW51dGVzKGRhdGUxLCBkYXRlMikge1xyXG4gICAgY29uc3QgZGlmZkluTXMgPSBNYXRoLmFicyhkYXRlMiAtIGRhdGUxKTtcclxuICAgIHJldHVybiBkaWZmSW5NcyAvICgxMDAwICogNjApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vLy8gU3RhcnQgYWRkIExpY2Vuc2UgUGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzaG93VXBsb2FkTW9kYWwodXBsb2FkRmlsZU1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybS5yZXNldCgpO1xyXG5cclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5mb3JtR3JvdXAgPSB0aGlzLnVwbG9hZEZpbGVGb3JtO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuZ2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTGljZW5zZU1vZGVsO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMaWNlbnNlRnVuY3Rpb247XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5vblN1Y2Nlc3NIYW5kbGVyID0gdGhpcy5PblN1Y2Nlc3NIYW5kbGVyO1xyXG5cclxuXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5uYW1lID0gXCJMaWNlbnNlRmlsZUlucHV0XCI7XHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQubGFiZWxLZXkgPSBcIlVwbG9hZEZpbGVcIjtcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5pc011bHRpcGxlRmlsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LmZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgPSBbRmlsZVR5cGUuTGljZW5zZV07XHJcblxyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odXBsb2FkRmlsZU1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QWRkTGljZW5zZU1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLnVwbG9hZEZpbGVGb3JtLnZhbHVlO1xyXG4gICAgbGV0IE1vZGVsID0gbmV3IExpY2Vuc2VNb2RlbCgpO1xyXG5cclxuICAgIE1vZGVsLmFwcGVuZEV4aXN0aW5nID0gdGhpcy5hcHBlbmRFeGlzdGluZztcclxuICAgIE1vZGVsLkxpY2Vuc2VGaWxlID0ge1xyXG4gICAgICBmaWxlQmFzZTY0OiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlQmFzZTY0LFxyXG4gICAgICBmaWxlTmFtZTogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZU5hbWUsXHJcbiAgICAgIGZpbGVTaXplSW5NQjogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZVNpemVJbk1CLFxyXG4gICAgICBmaWxlVHlwZTogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZVR5cGUsXHJcbiAgICAgIGlzTmV3OiB0cnVlXHJcbiAgICB9O1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH07XHJcblxyXG4gIGdldEFkZExpY2Vuc2VGdW5jdGlvbiA9IChNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5saWNlbnNlU2VydmljZS51cGxvYWRMaWNlbnNlKE1vZGVsKTtcclxuICB9O1xyXG4gIC8vLy8vLy8vLy8vLyBFbmQgb2YgYWRkIExpY2Vuc2UgIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuICBpc0FwcGVuZEV4aXN0aW5nKGFwcGVuZEV4aXN0aW5nKSB7XHJcbiAgICB0aGlzLmFwcGVuZEV4aXN0aW5nID0gYXBwZW5kRXhpc3Rpbmc7XHJcbiAgfVxyXG4gIE9uU3VjY2Vzc0hhbmRsZXIgPSAocmVzKSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxDb25zdCk7XHJcbiAgICB0aGlzLnNldFBhZ2VMaWNlbnNlRGF0YShyZXMudmFsKTtcclxuICB9O1xyXG5cclxuICAvLy8vLy8vLy8vL0Rlc3Ryb3kgT2JzZXJ2YWJsZSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcblxyXG4gIDwhLS1CZWdpbjo6U2VjdGlvbi0tPlxyXG4gIDxkaXYgIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICA8aDMgKm5nSWY9XCIhbm9MaWNlbnNlRm91bmRcIiBjbGFzcz1cIlwiPnt7bmFtZX19PC9oMz5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW5vTGljZW5zZUZvdW5kXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIG0tMyBiYWRnZS1sZ1wiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMaWNlbnNlQWN0aXZhdGVkU3VjY2Vzc2Z1bGx5XCIpfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzaG93VXBsb2FkTW9kYWwodXBsb2FkRmlsZU1vZGFsKVwiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmF0ZVwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwhLS0gZW5kOjpNZW51IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93VGltZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluX1RpbWVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlllYXJzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInllYXJzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7eWVhcnN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTW9udGhzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1vbnRocyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e21vbnRoc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEYXlzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRheXMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3tkYXlzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZCBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvdXJzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdXJzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7aG91cnN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWludXRlc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaW4gZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3ttaW51dGVzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWQgZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWNvbmRzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlYyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e3NlY29uZHN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbGljZW5zZS1oZWFkXCIgKm5nSWY9XCJub0xpY2Vuc2VGb3VuZFwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VOb3RGb3VuZFwiKX19XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhbm9MaWNlbnNlRm91bmRcIiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgZnMtNyBmdy1ib2xkZXIgbWUtMiBtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VTdGFydERhdGVcIil9fTo8L3A+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtd2VpZ2h0LTUwMFwiPnt7bGljZW5zZVN0YXJ0RGF0ZSB8IGRhdGU6J2RkLU1NLXknfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGFuZ2VyIGZzLTcgZnctYm9sZGVyIG1lLTIgbWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMaWNlbnNlRXhwaXJ5RGF0ZVwiKX19OjwvcD5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC13ZWlnaHQtNTAwXCI+e3tsaWNlbnNlRW5kRGF0ZSB8IGRhdGU6J2RkLU1NLXknfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPCEtLSBhY3RpdmF0ZS0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjdXBsb2FkRmlsZU1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4uLy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlVwbG9hZExpY2Vuc2VcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cInVwbG9hZEZpbGVGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxCQlNGLUZpbGVVcGxhb2QgW29wdGlvbnNdPVwibGljZW5zZUZpbGVJbnB1dFwiIFtncm91cF09XCJ1cGxvYWRGaWxlRm9ybVwiPlxyXG4gICAgICAgIDwvQkJTRi1GaWxlVXBsYW9kPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uICNDbG9zZUxpY2Vuc2VGaWxlTW9kYWwgaWQ9XCJDbG9zZUxpY2Vuc2VGaWxlTW9kYWxcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJpc0FwcGVuZEV4aXN0aW5nKGZhbHNlKVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IG1lLTMgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVwbGFjZVwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiaXNBcHBlbmRFeGlzdGluZyh0cnVlKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1lLTMgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQXBwZW5kXCIpfX08L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9CQlNGLUZvcm0+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2xpY2Vuc2UvbGljZW5zZS9saWNlbnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbGljZW5zZS9saWNlbnNlL2xpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7QUFTckYsTUFBTSxPQUFPLGdCQUFnQjtJQTRCeUIsQ0FBQztJQUdyRCxZQUNVLGVBQWdDLEVBQ2pDLGNBQThCLEVBQzdCLGtCQUFzQyxFQUN0QyxjQUE4QixFQUM5QixZQUFzQixFQUN0QixxQkFBNEM7UUFMNUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBbkN0RCxvQkFBZSxHQUFHLEtBQUssQ0FBQztR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QztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSztRQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLFFBQVEsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBR0QsMERBQTBEO0lBQzFELGVBQWUsQ0FBQyxlQUFlO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzRCxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3RFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDOUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUdwRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBR2xFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFcEMsQ0FBQztJQXVCRCw0REFBNEQ7SUFFNUQsZ0JBQWdCLENBQUMsY0FBYztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBUUQsb0RBQW9EO0lBQ3BELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzsrR0FuTFUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsbURDZjdCLGczTkF3SWM7OzRGRHpIRCxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWxlVHlwZSwgRmlsZVVwbG9hZE9wdGlvbnMsIEZvcm1PcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBMaWNlbnNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xpY2Vuc2VTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExpY2Vuc2VNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTGljZW5zZU1vZGVsL0xpY2Vuc2VNb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saWNlbnNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGljZW5zZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGljZW5zZS5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWNlbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgU2hvd1BhZ2VDb250ZW50ID0gZmFsc2U7XHJcbiAgY2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1NoYWRvdyA9IFtdO1xyXG4gIG5vTGljZW5zZUZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWN0aXZhdGlvbkRhdGU6IHN0cmluZztcclxuICBsaWNlbnNlU3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgbGljZW5zZUVuZERhdGU6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0ZUluTWludXRlczogbnVtYmVyID0gMDtcclxuICBzZWNvbmRzOiBudW1iZXIgPSAwO1xyXG4gIG1pbnV0ZXM6IG51bWJlciA9IDA7XHJcbiAgaG91cnM6IG51bWJlciA9IDA7XHJcbiAgZGF5czogbnVtYmVyID0gMDtcclxuICB3ZWVrczogbnVtYmVyID0gMDtcclxuICBtb250aHM6IG51bWJlciA9IDA7XHJcbiAgeWVhcnM6IG51bWJlciA9IDA7XHJcbiAgZGF0ZV9mdXR1cmU6IGFueTtcclxuICBkYXRlX25vdzogYW55O1xyXG4gIHNob3dUaW1lcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGludGVydmFsQ29uc3Q6IGFueTtcclxuICAvL1VwbG9hZCBNb2RlbCBDb250cm9sc1xyXG4gIHVwbG9hZEZpbGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgdXBsb2FkRmlsZUZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICBsaWNlbnNlRmlsZUlucHV0OiBGaWxlVXBsb2FkT3B0aW9ucztcclxuICBhcHBlbmRFeGlzdGluZzogYm9vbGVhbjtcclxuICBpbml0aWFsTWludXRlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDI0ICogNjAgKiAzMCk7O1xyXG4gIHZhbHVlID0gMDtcclxuICB0aW1lciQ6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgbGljZW5zZVNlcnZpY2U6IExpY2Vuc2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZVwiKTtcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKCk7XHJcbiAgICAvL2luaXRpYWxpemUgcGFnZVxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxpY2Vuc2VTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbkxpY2Vuc2UoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgTW9kZWwgPSByZXN1bHQgYXMgYW55O1xyXG4gICAgICBpZiAoTW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZUxpY2Vuc2VEYXRhKE1vZGVsLnZhbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRQYWdlTGljZW5zZURhdGEobGljZW5zZTogYW55KSB7XHJcbiAgICBsZXQgc3RhcnREYXRlID0gbmV3IERhdGUobGljZW5zZS5saWNlbnNlU3RhcnREYXRlKTtcclxuICAgIGxldCBlbmREYXRlID0gbmV3IERhdGUobGljZW5zZS5saWNlbnNlRW5kRGF0ZSk7XHJcbiAgICBsZXQgYWN0aXZhdGlvbkRhdGUgPSBuZXcgRGF0ZShsaWNlbnNlLmFjdGl2YXRpb25EYXRlKTtcclxuICAgIHRoaXMuYWN0aXZhdGlvbkRhdGUgPSBhY3RpdmF0aW9uRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcclxuICAgIHRoaXMubGljZW5zZVN0YXJ0RGF0ZSA9IHN0YXJ0RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcclxuICAgIHRoaXMubGljZW5zZUVuZERhdGUgPSBlbmREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xyXG4gICAgdGhpcy5uYW1lID0gbGljZW5zZS5uYW1lLmN1cnJlbnQ7XHJcblxyXG4gICAgbGV0IEN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGlmICgoZW5kRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA9PSBDdXJyZW50RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSkpXHJcbiAgICAgIHRoaXMubm9MaWNlbnNlRm91bmQgPSB0cnVlO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLm5vTGljZW5zZUZvdW5kID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5kYXRlSW5NaW51dGVzID0gdGhpcy5nZXREaWZmZXJlbmNlSW5NaW51dGVzKEN1cnJlbnREYXRlLCBlbmREYXRlKTtcclxuICAgIC8vc2V0IGZpcnN0IHRpbWVcclxuICAgIHRoaXMuc2V0Q291bnRlcihlbmREYXRlKTtcclxuICAgIHRoaXMuc2hvd1RpbWVyID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmludGVydmFsQ29uc3QgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0Q291bnRlcihlbmREYXRlKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgc2V0Q291bnRlcihlbmREYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLmRhdGVfZnV0dXJlID0gZW5kRGF0ZTtcclxuICAgIHRoaXMuZGF0ZV9ub3cgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgIHRoaXMuc2Vjb25kcyA9IE1hdGguZmxvb3IoKHRoaXMuZGF0ZV9mdXR1cmUgLSAodGhpcy5kYXRlX25vdykpIC8gMTAwMCk7XHJcbiAgICB0aGlzLm1pbnV0ZXMgPSBNYXRoLmZsb29yKHRoaXMuc2Vjb25kcyAvIDYwKTtcclxuICAgIHRoaXMuaG91cnMgPSBNYXRoLmZsb29yKHRoaXMubWludXRlcyAvIDYwKTtcclxuICAgIHRoaXMuZGF5cyA9IE1hdGguZmxvb3IodGhpcy5ob3VycyAvIDI0KTtcclxuICAgIHRoaXMubW9udGhzID0gTWF0aC5mbG9vcih0aGlzLmRheXMgLyAzMSk7XHJcbiAgICB0aGlzLnllYXJzID0gTWF0aC5mbG9vcih0aGlzLm1vbnRocyAvIDEyKTtcclxuXHJcbiAgICB0aGlzLmhvdXJzID0gdGhpcy5ob3VycyAtICh0aGlzLmRheXMgKiAyNCk7XHJcbiAgICB0aGlzLm1pbnV0ZXMgPSB0aGlzLm1pbnV0ZXMgLSAodGhpcy5kYXlzICogMjQgKiA2MCkgLSAodGhpcy5ob3VycyAqIDYwKTtcclxuICAgIHRoaXMuc2Vjb25kcyA9IHRoaXMuc2Vjb25kcyAtICh0aGlzLmRheXMgKiAyNCAqIDYwICogNjApIC0gKHRoaXMuaG91cnMgKiA2MCAqIDYwKSAtICh0aGlzLm1pbnV0ZXMgKiA2MCk7XHJcbiAgICB0aGlzLmRheXMgPSB0aGlzLmRheXMgLSAodGhpcy5tb250aHMgKiAzMSk7XHJcbiAgICB0aGlzLm1vbnRocyA9IHRoaXMubW9udGhzIC0gKHRoaXMueWVhcnMgKiAxMik7XHJcbiAgfVxyXG5cclxuICBnZXREaWZmZXJlbmNlSW5NaW51dGVzKGRhdGUxLCBkYXRlMikge1xyXG4gICAgY29uc3QgZGlmZkluTXMgPSBNYXRoLmFicyhkYXRlMiAtIGRhdGUxKTtcclxuICAgIHJldHVybiBkaWZmSW5NcyAvICgxMDAwICogNjApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vLy8gU3RhcnQgYWRkIExpY2Vuc2UgUGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzaG93VXBsb2FkTW9kYWwodXBsb2FkRmlsZU1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybS5yZXNldCgpO1xyXG5cclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5mb3JtR3JvdXAgPSB0aGlzLnVwbG9hZEZpbGVGb3JtO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuZ2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTGljZW5zZU1vZGVsO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMaWNlbnNlRnVuY3Rpb247XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5vblN1Y2Nlc3NIYW5kbGVyID0gdGhpcy5PblN1Y2Nlc3NIYW5kbGVyO1xyXG5cclxuXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5uYW1lID0gXCJMaWNlbnNlRmlsZUlucHV0XCI7XHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQubGFiZWxLZXkgPSBcIlVwbG9hZEZpbGVcIjtcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5pc011bHRpcGxlRmlsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LmZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgPSBbRmlsZVR5cGUuTGljZW5zZV07XHJcblxyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odXBsb2FkRmlsZU1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QWRkTGljZW5zZU1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLnVwbG9hZEZpbGVGb3JtLnZhbHVlO1xyXG4gICAgbGV0IE1vZGVsID0gbmV3IExpY2Vuc2VNb2RlbCgpO1xyXG5cclxuICAgIE1vZGVsLmFwcGVuZEV4aXN0aW5nID0gdGhpcy5hcHBlbmRFeGlzdGluZztcclxuICAgIE1vZGVsLkxpY2Vuc2VGaWxlID0ge1xyXG4gICAgICBmaWxlQmFzZTY0OiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlQmFzZTY0LFxyXG4gICAgICBmaWxlTmFtZTogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZU5hbWUsXHJcbiAgICAgIGZpbGVTaXplSW5NQjogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZVNpemVJbk1CLFxyXG4gICAgICBmaWxlVHlwZTogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZVR5cGUsXHJcbiAgICAgIGlzTmV3OiB0cnVlXHJcbiAgICB9O1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH07XHJcblxyXG4gIGdldEFkZExpY2Vuc2VGdW5jdGlvbiA9IChNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5saWNlbnNlU2VydmljZS51cGxvYWRMaWNlbnNlKE1vZGVsKTtcclxuICB9O1xyXG4gIC8vLy8vLy8vLy8vLyBFbmQgb2YgYWRkIExpY2Vuc2UgIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuICBpc0FwcGVuZEV4aXN0aW5nKGFwcGVuZEV4aXN0aW5nKSB7XHJcbiAgICB0aGlzLmFwcGVuZEV4aXN0aW5nID0gYXBwZW5kRXhpc3Rpbmc7XHJcbiAgfVxyXG4gIE9uU3VjY2Vzc0hhbmRsZXIgPSAocmVzKSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxDb25zdCk7XHJcbiAgICB0aGlzLnNldFBhZ2VMaWNlbnNlRGF0YShyZXMudmFsKTtcclxuICB9O1xyXG5cclxuICAvLy8vLy8vLy8vL0Rlc3Ryb3kgT2JzZXJ2YWJsZSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcblxyXG48IS0tQmVnaW46OlNlY3Rpb24tLT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgIDxoMyAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiXCI+e3tuYW1lfX08L2gzPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIW5vTGljZW5zZUZvdW5kXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIG0tMyBiYWRnZS1sZ1wiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZUFjdGl2YXRlZFN1Y2Nlc3NmdWxseVwiKX19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICA8IS0tIGJlZ2luOjpNZW51IC0tPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzaG93VXBsb2FkTW9kYWwodXBsb2FkRmlsZU1vZGFsKVwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZhdGVcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwhLS0gZW5kOjpNZW51IC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1RpbWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5fVGltZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9ja1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZSByb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJZZWFyc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieWVhcnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3t5ZWFyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1vbnRoc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9udGhzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7bW9udGhzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGF5c1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF5cyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e2RheXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZCBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb3Vyc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG91cnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3tob3Vyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1pbnV0ZXNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbiBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e21pbnV0ZXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWQgZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2Vjb25kc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VjIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7c2Vjb25kc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBsaWNlbnNlLWhlYWRcIiAqbmdJZj1cIm5vTGljZW5zZUZvdW5kXCI+XHJcbiAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMaWNlbnNlTm90Rm91bmRcIil9fVxyXG4gICAgICAgICAgPC9oMz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIhbm9MaWNlbnNlRm91bmRcIiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBmcy03IGZ3LWJvbGRlciBtZS0yIG1pbi13LTE1MHB4XCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMaWNlbnNlU3RhcnREYXRlXCIpfX06PC9wPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZm9udC13ZWlnaHQtNTAwXCI+e3tsaWNlbnNlU3RhcnREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kYW5nZXIgZnMtNyBmdy1ib2xkZXIgbWUtMiBtaW4tdy0xNTBweFwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZUV4cGlyeURhdGVcIil9fTo8L3A+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJmb250LXdlaWdodC01MDBcIj57e2xpY2Vuc2VFbmREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbjwhLS0gYWN0aXZhdGUtLT5cclxuPG5nLXRlbXBsYXRlICN1cGxvYWRGaWxlTW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCJcclxuICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuLi8uL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPiB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJVcGxvYWRMaWNlbnNlXCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cInVwbG9hZEZpbGVGb3JtT3B0aW9uc1wiPlxyXG4gICAgICA8QkJTRi1GaWxlVXBsb2FkIFtvcHRpb25zXT1cImxpY2Vuc2VGaWxlSW5wdXRcIiBbZ3JvdXBdPVwidXBsb2FkRmlsZUZvcm1cIj5cclxuICAgICAgPC9CQlNGLUZpbGVVcGxvYWQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjQ2xvc2VMaWNlbnNlRmlsZU1vZGFsIGlkPVwiQ2xvc2VMaWNlbnNlRmlsZU1vZGFsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImlzQXBwZW5kRXhpc3RpbmcoZmFsc2UpXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IG1lLTMgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVwbGFjZVwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImlzQXBwZW5kRXhpc3RpbmcodHJ1ZSlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWUtMyBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcHBlbmRcIil9fTwvYnV0dG9uPlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=