tango-app-ui-ticket-user 3.5.0 → 3.5.2

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.
Files changed (31) hide show
  1. package/README.md +28 -28
  2. package/esm2022/lib/components/audit-management/audit-management.component.mjs +1 -1
  3. package/esm2022/lib/components/contact-details/contact-details.component.mjs +3 -3
  4. package/esm2022/lib/components/dropdown/dropdown.component.mjs +3 -3
  5. package/esm2022/lib/components/edge-cameraview/edge-cameraview.component.mjs +3 -3
  6. package/esm2022/lib/components/edgeapp-log/edgeapp-log.component.mjs +3 -3
  7. package/esm2022/lib/components/edit-details/edit-details.component.mjs +3 -3
  8. package/esm2022/lib/components/infratickets/infratickets.component.mjs +8 -3
  9. package/esm2022/lib/components/installation/installation.component.mjs +30 -3
  10. package/esm2022/lib/components/preinstallation-info/preinstallation-info.component.mjs +178 -0
  11. package/esm2022/lib/components/store-activity/store-activity.component.mjs +3 -3
  12. package/esm2022/lib/components/store-info/store-info.component.mjs +3 -3
  13. package/esm2022/lib/components/takeremote/takeremote.component.mjs +3 -3
  14. package/esm2022/lib/components/tango-ticket-users/tango-ticket-users.component.mjs +3 -3
  15. package/esm2022/lib/components/tickets/tickets.component.mjs +3 -3
  16. package/esm2022/lib/components/viewhistory/viewhistory.component.mjs +3 -3
  17. package/esm2022/lib/route-wrappers/edge-wrapper.module.mjs +2 -1
  18. package/esm2022/lib/services/data.service.mjs +1 -1
  19. package/esm2022/lib/services/excel.service.mjs +1 -1
  20. package/esm2022/lib/services/ticket-infra.service.mjs +13 -1
  21. package/esm2022/lib/tango-ticket-users-routing.module.mjs +6 -1
  22. package/esm2022/lib/tango-ticket-users.module.mjs +4 -3
  23. package/esm2022/public-api.mjs +1 -1
  24. package/fesm2022/tango-app-ui-ticket-user-edge-wrapper.module-CFDk0tvS.mjs.map +1 -1
  25. package/fesm2022/tango-app-ui-ticket-user.mjs +277 -59
  26. package/fesm2022/tango-app-ui-ticket-user.mjs.map +1 -1
  27. package/lib/components/installation/installation.component.d.ts +3 -0
  28. package/lib/components/preinstallation-info/preinstallation-info.component.d.ts +56 -0
  29. package/lib/services/ticket-infra.service.d.ts +5 -0
  30. package/lib/tango-ticket-users.module.d.ts +8 -7
  31. package/package.json +1 -1
@@ -85,12 +85,12 @@ export class TakeremoteComponent {
85
85
  this.Activemodal.close();
86
86
  }
87
87
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TakeremoteComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.TicketsService }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
88
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TakeremoteComponent, selector: "lib-takeremote", inputs: { storeDetails: "storeDetails" }, ngImport: i0, template: "<div class=\"card p-0\">\n <div class=\"px-8 pt-5 pb-0\">\n <img class=\"mb-3\" src=\"./assets/tango/Images/RemoteIcon.png\">\n </div>\n <div class=\"card-header border-0 pt-3\">\n <div class=\"card-title align-items-start flex-column\">\n <span class=\"card-label header mb-2\">Take remote</span>\n <span class=\"sub-header mb-2\">Please enter the credentials</span>\n </div>\n <div class=\"card-toolbar\">\n <div class=\"d-flex\">\n <div class=\"d-flex align-items-center position-relative my-1\"> \n <button type=\"button\" (click)=\"viewandEdit()\" [disabled]=\"readOnly === false\"\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val p-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <g clip-path=\"url(#clip0_4117_58968)\">\n <path d=\"M9.16602 3.33344H3.33268C2.89065 3.33344 2.46673 3.50904 2.15417 3.8216C1.84161 4.13416 1.66602 4.55808 1.66602 5.00011V16.6668C1.66602 17.1088 1.84161 17.5327 2.15417 17.8453C2.46673 18.1578 2.89065 18.3334 3.33268 18.3334H14.9993C15.4414 18.3334 15.8653 18.1578 16.1779 17.8453C16.4904 17.5327 16.666 17.1088 16.666 16.6668V10.8334M15.416 2.08344C15.7475 1.75192 16.1972 1.56567 16.666 1.56567C17.1349 1.56567 17.5845 1.75192 17.916 2.08344C18.2475 2.41496 18.4338 2.8646 18.4338 3.33344C18.4338 3.80228 18.2475 4.25192 17.916 4.58344L9.99935 12.5001L6.66602 13.3334L7.49935 10.0001L15.416 2.08344Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_4117_58968\">\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg></button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card-body\">\n <form [formGroup]=\"myForm\" (ngSubmit)=\"onSubmit()\">\n <div class=\"mb-3\">\n <label for=\"Username\" class=\"form-label\">Any desk ID / Team viewer</label>\n <input [ngClass]=\"readOnly?'bg-readonly':''\" type=\"email\" class=\"form-control\" id=\"Username\" formControlName=\"deskId\" [readonly]=\"readOnly\">\n </div>\n <div *ngIf=\"!viewEdit\">\n <button type=\"reset\" class=\"btn btn-default btn-primary w-100 me-2\" (click)=\"dismissModal()\">Okay</button>\n </div>\n <div *ngIf=\"viewEdit\" class=\"d-flex justify-content-between\">\n <button type=\"reset\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"cancelRemote()\">Cancel</button>\n <button type=\"submit\" class=\"btn btn-primary w-50 ms-2\"> Submit </button>\n </div>\n </form>\n </div>\n</div>\n", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.select-wrapper{min-width:50px!important}.custom-select{width:auto!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}input::placeholder{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.bg-readonly{background:var(--Gray-50, #F9FAFB)}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
88
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TakeremoteComponent, selector: "lib-takeremote", inputs: { storeDetails: "storeDetails" }, ngImport: i0, template: "<div class=\"card p-0\">\r\n <div class=\"px-8 pt-5 pb-0\">\r\n <img class=\"mb-3\" src=\"./assets/tango/Images/RemoteIcon.png\">\r\n </div>\r\n <div class=\"card-header border-0 pt-3\">\r\n <div class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">Take remote</span>\r\n <span class=\"sub-header mb-2\">Please enter the credentials</span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button type=\"button\" (click)=\"viewandEdit()\" [disabled]=\"readOnly === false\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val p-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4117_58968)\">\r\n <path d=\"M9.16602 3.33344H3.33268C2.89065 3.33344 2.46673 3.50904 2.15417 3.8216C1.84161 4.13416 1.66602 4.55808 1.66602 5.00011V16.6668C1.66602 17.1088 1.84161 17.5327 2.15417 17.8453C2.46673 18.1578 2.89065 18.3334 3.33268 18.3334H14.9993C15.4414 18.3334 15.8653 18.1578 16.1779 17.8453C16.4904 17.5327 16.666 17.1088 16.666 16.6668V10.8334M15.416 2.08344C15.7475 1.75192 16.1972 1.56567 16.666 1.56567C17.1349 1.56567 17.5845 1.75192 17.916 2.08344C18.2475 2.41496 18.4338 2.8646 18.4338 3.33344C18.4338 3.80228 18.2475 4.25192 17.916 4.58344L9.99935 12.5001L6.66602 13.3334L7.49935 10.0001L15.416 2.08344Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4117_58968\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"myForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-3\">\r\n <label for=\"Username\" class=\"form-label\">Any desk ID / Team viewer</label>\r\n <input [ngClass]=\"readOnly?'bg-readonly':''\" type=\"email\" class=\"form-control\" id=\"Username\" formControlName=\"deskId\" [readonly]=\"readOnly\">\r\n </div>\r\n <div *ngIf=\"!viewEdit\">\r\n <button type=\"reset\" class=\"btn btn-default btn-primary w-100 me-2\" (click)=\"dismissModal()\">Okay</button>\r\n </div>\r\n <div *ngIf=\"viewEdit\" class=\"d-flex justify-content-between\">\r\n <button type=\"reset\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"cancelRemote()\">Cancel</button>\r\n <button type=\"submit\" class=\"btn btn-primary w-50 ms-2\"> Submit </button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.select-wrapper{min-width:50px!important}.custom-select{width:auto!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}input::placeholder{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.bg-readonly{background:var(--Gray-50, #F9FAFB)}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
89
89
  }
90
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TakeremoteComponent, decorators: [{
91
91
  type: Component,
92
- args: [{ selector: 'lib-takeremote', template: "<div class=\"card p-0\">\n <div class=\"px-8 pt-5 pb-0\">\n <img class=\"mb-3\" src=\"./assets/tango/Images/RemoteIcon.png\">\n </div>\n <div class=\"card-header border-0 pt-3\">\n <div class=\"card-title align-items-start flex-column\">\n <span class=\"card-label header mb-2\">Take remote</span>\n <span class=\"sub-header mb-2\">Please enter the credentials</span>\n </div>\n <div class=\"card-toolbar\">\n <div class=\"d-flex\">\n <div class=\"d-flex align-items-center position-relative my-1\"> \n <button type=\"button\" (click)=\"viewandEdit()\" [disabled]=\"readOnly === false\"\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val p-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <g clip-path=\"url(#clip0_4117_58968)\">\n <path d=\"M9.16602 3.33344H3.33268C2.89065 3.33344 2.46673 3.50904 2.15417 3.8216C1.84161 4.13416 1.66602 4.55808 1.66602 5.00011V16.6668C1.66602 17.1088 1.84161 17.5327 2.15417 17.8453C2.46673 18.1578 2.89065 18.3334 3.33268 18.3334H14.9993C15.4414 18.3334 15.8653 18.1578 16.1779 17.8453C16.4904 17.5327 16.666 17.1088 16.666 16.6668V10.8334M15.416 2.08344C15.7475 1.75192 16.1972 1.56567 16.666 1.56567C17.1349 1.56567 17.5845 1.75192 17.916 2.08344C18.2475 2.41496 18.4338 2.8646 18.4338 3.33344C18.4338 3.80228 18.2475 4.25192 17.916 4.58344L9.99935 12.5001L6.66602 13.3334L7.49935 10.0001L15.416 2.08344Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_4117_58968\">\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg></button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card-body\">\n <form [formGroup]=\"myForm\" (ngSubmit)=\"onSubmit()\">\n <div class=\"mb-3\">\n <label for=\"Username\" class=\"form-label\">Any desk ID / Team viewer</label>\n <input [ngClass]=\"readOnly?'bg-readonly':''\" type=\"email\" class=\"form-control\" id=\"Username\" formControlName=\"deskId\" [readonly]=\"readOnly\">\n </div>\n <div *ngIf=\"!viewEdit\">\n <button type=\"reset\" class=\"btn btn-default btn-primary w-100 me-2\" (click)=\"dismissModal()\">Okay</button>\n </div>\n <div *ngIf=\"viewEdit\" class=\"d-flex justify-content-between\">\n <button type=\"reset\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"cancelRemote()\">Cancel</button>\n <button type=\"submit\" class=\"btn btn-primary w-50 ms-2\"> Submit </button>\n </div>\n </form>\n </div>\n</div>\n", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.select-wrapper{min-width:50px!important}.custom-select{width:auto!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}input::placeholder{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.bg-readonly{background:var(--Gray-50, #F9FAFB)}\n"] }]
92
+ args: [{ selector: 'lib-takeremote', template: "<div class=\"card p-0\">\r\n <div class=\"px-8 pt-5 pb-0\">\r\n <img class=\"mb-3\" src=\"./assets/tango/Images/RemoteIcon.png\">\r\n </div>\r\n <div class=\"card-header border-0 pt-3\">\r\n <div class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">Take remote</span>\r\n <span class=\"sub-header mb-2\">Please enter the credentials</span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button type=\"button\" (click)=\"viewandEdit()\" [disabled]=\"readOnly === false\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val p-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4117_58968)\">\r\n <path d=\"M9.16602 3.33344H3.33268C2.89065 3.33344 2.46673 3.50904 2.15417 3.8216C1.84161 4.13416 1.66602 4.55808 1.66602 5.00011V16.6668C1.66602 17.1088 1.84161 17.5327 2.15417 17.8453C2.46673 18.1578 2.89065 18.3334 3.33268 18.3334H14.9993C15.4414 18.3334 15.8653 18.1578 16.1779 17.8453C16.4904 17.5327 16.666 17.1088 16.666 16.6668V10.8334M15.416 2.08344C15.7475 1.75192 16.1972 1.56567 16.666 1.56567C17.1349 1.56567 17.5845 1.75192 17.916 2.08344C18.2475 2.41496 18.4338 2.8646 18.4338 3.33344C18.4338 3.80228 18.2475 4.25192 17.916 4.58344L9.99935 12.5001L6.66602 13.3334L7.49935 10.0001L15.416 2.08344Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4117_58968\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"myForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-3\">\r\n <label for=\"Username\" class=\"form-label\">Any desk ID / Team viewer</label>\r\n <input [ngClass]=\"readOnly?'bg-readonly':''\" type=\"email\" class=\"form-control\" id=\"Username\" formControlName=\"deskId\" [readonly]=\"readOnly\">\r\n </div>\r\n <div *ngIf=\"!viewEdit\">\r\n <button type=\"reset\" class=\"btn btn-default btn-primary w-100 me-2\" (click)=\"dismissModal()\">Okay</button>\r\n </div>\r\n <div *ngIf=\"viewEdit\" class=\"d-flex justify-content-between\">\r\n <button type=\"reset\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"cancelRemote()\">Cancel</button>\r\n <button type=\"submit\" class=\"btn btn-primary w-50 ms-2\"> Submit </button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.select-wrapper{min-width:50px!important}.custom-select{width:auto!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}input::placeholder{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.bg-readonly{background:var(--Gray-50, #F9FAFB)}\n"] }]
93
93
  }], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.TicketsService }, { type: i3.ToastService }, { type: i4.GlobalStateService }], propDecorators: { storeDetails: [{
94
94
  type: Input
95
95
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFrZXJlbW90ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby10aWNrZXQtdXNlci9zcmMvbGliL2NvbXBvbmVudHMvdGFrZXJlbW90ZS90YWtlcmVtb3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy90YWtlcmVtb3RlL3Rha2VyZW1vdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUlwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFRMUMsTUFBTSxPQUFPLG1CQUFtQjtJQVNUO0lBQ1g7SUFDQTtJQUNEO0lBWFQsTUFBTSxDQUFZO0lBQ2xCLFFBQVEsR0FBVyxJQUFJLENBQUM7SUFDeEIsUUFBUSxHQUFXLEtBQUssQ0FBQztJQUN6QixJQUFJLEdBQVksS0FBSyxDQUFDO0lBQ3RCLE1BQU0sQ0FBTTtJQUNILFlBQVksQ0FBSztJQUNULFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTFDLFlBQXFCLFdBQTBCLEVBQ3JDLE9BQXNCLEVBQ3RCLEtBQWtCLEVBQ25CLEVBQXFCO1FBSFQsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDMUIsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLElBQUksR0FBRztZQUNULGNBQWMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1NBQ3RDLENBQUE7UUFDQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMvRixJQUFJLEVBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtnQkFDZCxJQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFHLEdBQUcsRUFBQztvQkFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDO29CQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2lCQUNqRDtZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLEdBQUc7WUFDUCxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTO1lBQ3pDLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVE7WUFDdkMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSztTQUN4RCxDQUFBO1FBQ0QsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDbEcsSUFBSSxFQUFDLENBQUMsR0FBTyxFQUFDLEVBQUU7b0JBQ2QsSUFBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUM7d0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7cUJBQy9DO3lCQUFJO3dCQUNILElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7cUJBQzdDO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFDLENBQUMsR0FBRyxFQUFDLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUNyQyxDQUFDO2FBQ0YsQ0FBQyxDQUFBO1NBQ0g7YUFBSTtTQUVKO0lBQ0gsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0MsWUFBWTtRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxXQUFXO1FBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7d0dBeEVVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLGdHQ2JoQyxzaUdBMkNBOzs0RkQ5QmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjs0S0FVakIsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCxJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBUaWNrZXRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC1pbmZyYS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRha2VyZW1vdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFrZXJlbW90ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90YWtlcmVtb3RlLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUYWtlcmVtb3RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbXlGb3JtOiBGb3JtR3JvdXA7XG4gIHJlYWRPbmx5OmJvb2xlYW4gPSB0cnVlO1xuICB2aWV3RWRpdDpib29sZWFuID0gZmFsc2U7XG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcmVtb3RlOiBhbnk7XG4gIEBJbnB1dCgpIHN0b3JlRGV0YWlsczphbnk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIEFjdGl2ZW1vZGFsOk5nYkFjdGl2ZU1vZGFsLFxuICAgIHByaXZhdGUgc2VydmljZTpUaWNrZXRzU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxcbiAgICBwdWJsaWMgZ3M6R2xvYmFsU3RhdGVTZXJ2aWNlKSB7IFxuICAgIHRoaXMubXlGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBkZXNrSWQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnJlbW90ZSksIFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKXtcbiAgICAgdGhpcy5nZXRSZW1vdGUoKTtcbiAgfVxuICBnZXRSZW1vdGUoKXtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIHNlbGVjdGVkRmllbGRzOiBbXCJzdG9yZUNvbm5lY3Rpb25JZFwiXVxuICAgIH1cbiAgICAgIHRoaXMuc2VydmljZS5nZXRSZW1vdGUodGhpcy5zdG9yZURldGFpbHM/LnN0b3JlSWQsZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6KHJlczphbnkpPT4ge1xuICAgICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PTIwMCl7XG4gICAgICAgICAgICB0aGlzLnJlbW90ZSA9IHJlcz8uZGF0YT8uc3RvcmVDb25uZWN0aW9uSWQ7XG4gICAgICAgICAgICB0aGlzLm15Rm9ybS5nZXQoJ2Rlc2tJZCcpPy5zZXRWYWx1ZSh0aGlzLnJlbW90ZSlcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KVxuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgdGhpcy5BY3RpdmVtb2RhbC5jbG9zZSgpO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgICBcInN0b3JlTmFtZVwiOiB0aGlzLnN0b3JlRGV0YWlscz8uc3RvcmVOYW1lLFxuICAgICAgICBcImNsaWVudElkXCI6IHRoaXMuc3RvcmVEZXRhaWxzPy5jbGllbnRJZCxcbiAgICAgICAgXCJzdG9yZUNvbm5lY3Rpb25JZFwiOiB0aGlzLm15Rm9ybS5nZXQoJ2Rlc2tJZCcpPy52YWx1ZVxuICAgIH1cbiAgICBpZih0aGlzLm15Rm9ybS52YWxpZCl7XG4gICAgICB0aGlzLnNlcnZpY2UudXBkYXRlUmVtb3RlKHRoaXMuc3RvcmVEZXRhaWxzPy5zdG9yZUlkLGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OihyZXM6YW55KT0+IHtcbiAgICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKXtcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcz8uZGF0YT8ubWVzc2FnZSlcbiAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChyZXM/LmRhdGE/Lm1lc3NhZ2UpXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjooZXJyKT0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9ZWxzZXtcbiAgICBcbiAgICB9XG4gIH1cbiAgc2hvd1Bhc3N3b3JkKCkge1xuICAgIHRoaXMuc2hvdyA9ICF0aGlzLnNob3c7XG59XG4gIGNhbmNlbFJlbW90ZSgpe1xuICAgIHRoaXMucmVhZE9ubHkgPSB0cnVlO1xuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTtcbiAgfVxuICB2aWV3YW5kRWRpdCgpe1xuICAgICB0aGlzLnJlYWRPbmx5ID0gZmFsc2U7XG4gICAgIHRoaXMudmlld0VkaXQgPSB0cnVlO1xuICB9XG4gIGRpc21pc3NNb2RhbCgpe1xuICAgIHRoaXMuQWN0aXZlbW9kYWwuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQgcC0wXCI+XG4gICAgPGRpdiBjbGFzcz1cInB4LTggcHQtNSBwYi0wXCI+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJtYi0zXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL1JlbW90ZUljb24ucG5nXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBoZWFkZXIgbWItMlwiPlRha2UgcmVtb3RlPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItaGVhZGVyIG1iLTJcIj5QbGVhc2UgZW50ZXIgdGhlIGNyZWRlbnRpYWxzPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj4gICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJ2aWV3YW5kRWRpdCgpXCIgW2Rpc2FibGVkXT1cInJlYWRPbmx5ID09PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgcC0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80MTE3XzU4OTY4KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS4xNjYwMiAzLjMzMzQ0SDMuMzMyNjhDMi44OTA2NSAzLjMzMzQ0IDIuNDY2NzMgMy41MDkwNCAyLjE1NDE3IDMuODIxNkMxLjg0MTYxIDQuMTM0MTYgMS42NjYwMiA0LjU1ODA4IDEuNjY2MDIgNS4wMDAxMVYxNi42NjY4QzEuNjY2MDIgMTcuMTA4OCAxLjg0MTYxIDE3LjUzMjcgMi4xNTQxNyAxNy44NDUzQzIuNDY2NzMgMTguMTU3OCAyLjg5MDY1IDE4LjMzMzQgMy4zMzI2OCAxOC4zMzM0SDE0Ljk5OTNDMTUuNDQxNCAxOC4zMzM0IDE1Ljg2NTMgMTguMTU3OCAxNi4xNzc5IDE3Ljg0NTNDMTYuNDkwNCAxNy41MzI3IDE2LjY2NiAxNy4xMDg4IDE2LjY2NiAxNi42NjY4VjEwLjgzMzRNMTUuNDE2IDIuMDgzNDRDMTUuNzQ3NSAxLjc1MTkyIDE2LjE5NzIgMS41NjU2NyAxNi42NjYgMS41NjU2N0MxNy4xMzQ5IDEuNTY1NjcgMTcuNTg0NSAxLjc1MTkyIDE3LjkxNiAyLjA4MzQ0QzE4LjI0NzUgMi40MTQ5NiAxOC40MzM4IDIuODY0NiAxOC40MzM4IDMuMzMzNDRDMTguNDMzOCAzLjgwMjI4IDE4LjI0NzUgNC4yNTE5MiAxNy45MTYgNC41ODM0NEw5Ljk5OTM1IDEyLjUwMDFMNi42NjYwMiAxMy4zMzM0TDcuNDk5MzUgMTAuMDAwMUwxNS40MTYgMi4wODM0NFpcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDExN181ODk2OFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibXlGb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJVc2VybmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkFueSBkZXNrIElEIC8gVGVhbSB2aWV3ZXI8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgW25nQ2xhc3NdPVwicmVhZE9ubHk/J2JnLXJlYWRvbmx5JzonJ1wiIHR5cGU9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJVc2VybmFtZVwiIGZvcm1Db250cm9sTmFtZT1cImRlc2tJZFwiIFtyZWFkb25seV09XCJyZWFkT25seVwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXZpZXdFZGl0XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwicmVzZXRcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tcHJpbWFyeSB3LTEwMCBtZS0yXCIgKGNsaWNrKT1cImRpc21pc3NNb2RhbCgpXCI+T2theTwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXRcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInJlc2V0XCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgdy01MCBtZS0yXCIgKGNsaWNrKT1cImNhbmNlbFJlbW90ZSgpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy01MCBtcy0yXCI+IFN1Ym1pdCA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFrZXJlbW90ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby10aWNrZXQtdXNlci9zcmMvbGliL2NvbXBvbmVudHMvdGFrZXJlbW90ZS90YWtlcmVtb3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy90YWtlcmVtb3RlL3Rha2VyZW1vdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUlwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFRMUMsTUFBTSxPQUFPLG1CQUFtQjtJQVNUO0lBQ1g7SUFDQTtJQUNEO0lBWFQsTUFBTSxDQUFZO0lBQ2xCLFFBQVEsR0FBVyxJQUFJLENBQUM7SUFDeEIsUUFBUSxHQUFXLEtBQUssQ0FBQztJQUN6QixJQUFJLEdBQVksS0FBSyxDQUFDO0lBQ3RCLE1BQU0sQ0FBTTtJQUNILFlBQVksQ0FBSztJQUNULFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTFDLFlBQXFCLFdBQTBCLEVBQ3JDLE9BQXNCLEVBQ3RCLEtBQWtCLEVBQ25CLEVBQXFCO1FBSFQsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDMUIsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUks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Qjs0S0FVakIsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCxJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUaWNrZXRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC1pbmZyYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRha2VyZW1vdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWtlcmVtb3RlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGFrZXJlbW90ZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRha2VyZW1vdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIG15Rm9ybTogRm9ybUdyb3VwO1xyXG4gIHJlYWRPbmx5OmJvb2xlYW4gPSB0cnVlO1xyXG4gIHZpZXdFZGl0OmJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVtb3RlOiBhbnk7XHJcbiAgQElucHV0KCkgc3RvcmVEZXRhaWxzOmFueTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgQWN0aXZlbW9kYWw6TmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6VGlja2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxcclxuICAgIHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2UpIHsgXHJcbiAgICB0aGlzLm15Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICBkZXNrSWQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnJlbW90ZSksIFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgIHRoaXMuZ2V0UmVtb3RlKCk7XHJcbiAgfVxyXG4gIGdldFJlbW90ZSgpe1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIHNlbGVjdGVkRmllbGRzOiBbXCJzdG9yZUNvbm5lY3Rpb25JZFwiXVxyXG4gICAgfVxyXG4gICAgICB0aGlzLnNlcnZpY2UuZ2V0UmVtb3RlKHRoaXMuc3RvcmVEZXRhaWxzPy5zdG9yZUlkLGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6KHJlczphbnkpPT4ge1xyXG4gICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09MjAwKXtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdGUgPSByZXM/LmRhdGE/LnN0b3JlQ29ubmVjdGlvbklkO1xyXG4gICAgICAgICAgICB0aGlzLm15Rm9ybS5nZXQoJ2Rlc2tJZCcpPy5zZXRWYWx1ZSh0aGlzLnJlbW90ZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLkFjdGl2ZW1vZGFsLmNsb3NlKCk7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICBcInN0b3JlTmFtZVwiOiB0aGlzLnN0b3JlRGV0YWlscz8uc3RvcmVOYW1lLFxyXG4gICAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5zdG9yZURldGFpbHM/LmNsaWVudElkLFxyXG4gICAgICAgIFwic3RvcmVDb25uZWN0aW9uSWRcIjogdGhpcy5teUZvcm0uZ2V0KCdkZXNrSWQnKT8udmFsdWVcclxuICAgIH1cclxuICAgIGlmKHRoaXMubXlGb3JtLnZhbGlkKXtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVJlbW90ZSh0aGlzLnN0b3JlRGV0YWlscz8uc3RvcmVJZCxkYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+IHtcclxuICAgICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChyZXM/LmRhdGE/Lm1lc3NhZ2UpXHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KHJlcz8uZGF0YT8ubWVzc2FnZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOihlcnIpPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVyci5FcnJvcilcclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG4gICAgfWVsc2V7XHJcbiAgICBcclxuICAgIH1cclxuICB9XHJcbiAgc2hvd1Bhc3N3b3JkKCkge1xyXG4gICAgdGhpcy5zaG93ID0gIXRoaXMuc2hvdztcclxufVxyXG4gIGNhbmNlbFJlbW90ZSgpe1xyXG4gICAgdGhpcy5yZWFkT25seSA9IHRydWU7XHJcbiAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2U7XHJcbiAgfVxyXG4gIHZpZXdhbmRFZGl0KCl7XHJcbiAgICAgdGhpcy5yZWFkT25seSA9IGZhbHNlO1xyXG4gICAgIHRoaXMudmlld0VkaXQgPSB0cnVlO1xyXG4gIH1cclxuICBkaXNtaXNzTW9kYWwoKXtcclxuICAgIHRoaXMuQWN0aXZlbW9kYWwuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgcC0wXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHgtOCBwdC01IHBiLTBcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibWItM1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9SZW1vdGVJY29uLnBuZ1wiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBoZWFkZXIgbWItMlwiPlRha2UgcmVtb3RlPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi1oZWFkZXIgbWItMlwiPlBsZWFzZSBlbnRlciB0aGUgY3JlZGVudGlhbHM8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+ICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJ2aWV3YW5kRWRpdCgpXCIgW2Rpc2FibGVkXT1cInJlYWRPbmx5ID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBwLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNDExN181ODk2OClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS4xNjYwMiAzLjMzMzQ0SDMuMzMyNjhDMi44OTA2NSAzLjMzMzQ0IDIuNDY2NzMgMy41MDkwNCAyLjE1NDE3IDMuODIxNkMxLjg0MTYxIDQuMTM0MTYgMS42NjYwMiA0LjU1ODA4IDEuNjY2MDIgNS4wMDAxMVYxNi42NjY4QzEuNjY2MDIgMTcuMTA4OCAxLjg0MTYxIDE3LjUzMjcgMi4xNTQxNyAxNy44NDUzQzIuNDY2NzMgMTguMTU3OCAyLjg5MDY1IDE4LjMzMzQgMy4zMzI2OCAxOC4zMzM0SDE0Ljk5OTNDMTUuNDQxNCAxOC4zMzM0IDE1Ljg2NTMgMTguMTU3OCAxNi4xNzc5IDE3Ljg0NTNDMTYuNDkwNCAxNy41MzI3IDE2LjY2NiAxNy4xMDg4IDE2LjY2NiAxNi42NjY4VjEwLjgzMzRNMTUuNDE2IDIuMDgzNDRDMTUuNzQ3NSAxLjc1MTkyIDE2LjE5NzIgMS41NjU2NyAxNi42NjYgMS41NjU2N0MxNy4xMzQ5IDEuNTY1NjcgMTcuNTg0NSAxLjc1MTkyIDE3LjkxNiAyLjA4MzQ0QzE4LjI0NzUgMi40MTQ5NiAxOC40MzM4IDIuODY0NiAxOC40MzM4IDMuMzMzNDRDMTguNDMzOCAzLjgwMjI4IDE4LjI0NzUgNC4yNTE5MiAxNy45MTYgNC41ODM0NEw5Ljk5OTM1IDEyLjUwMDFMNi42NjYwMiAxMy4zMzM0TDcuNDk5MzUgMTAuMDAwMUwxNS40MTYgMi4wODM0NFpcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDExN181ODk2OFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJteUZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJVc2VybmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkFueSBkZXNrIElEIC8gVGVhbSB2aWV3ZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBbbmdDbGFzc109XCJyZWFkT25seT8nYmctcmVhZG9ubHknOicnXCIgdHlwZT1cImVtYWlsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cIlVzZXJuYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVza0lkXCIgW3JlYWRvbmx5XT1cInJlYWRPbmx5XCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXZpZXdFZGl0XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJyZXNldFwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1wcmltYXJ5IHctMTAwIG1lLTJcIiAoY2xpY2spPVwiZGlzbWlzc01vZGFsKClcIj5Pa2F5PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXRcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwicmVzZXRcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tb3V0bGluZSB3LTUwIG1lLTJcIiAoY2xpY2spPVwiY2FuY2VsUmVtb3RlKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctNTAgbXMtMlwiPiBTdWJtaXQgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -87,10 +87,10 @@ export class TangoTicketUsersComponent {
87
87
  });
88
88
  }
89
89
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TangoTicketUsersComponent, deps: [{ token: i1.PageInfoService }, { token: i2.ActivatedRoute }, { token: i1.GlobalStateService }, { token: i3.TicketsService }], target: i0.ɵɵFactoryTarget.Component });
90
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TangoTicketUsersComponent, selector: "lib-tango-ticket-users", ngImport: i0, template: "<div class=\"card mb-5 py-3 px-5\">\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\n <li class=\"nav-item\" (click)=\"Selectedtabs('installation')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'installation' }\"\n [ngClass]=\"SelectedTab === 'installation' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\n Installation<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='installation' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.installationCount? ticketAllCount?.installationCount:0}}</span>\n </a>\n </li>\n <li class=\"nav-item\" (click)=\"Selectedtabs('infra')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'infra' }\"\n [ngClass]=\"SelectedTab === 'infra' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\n Infra<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='infra' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.infraCount? ticketAllCount?.infraCount:0}}</span>\n </a>\n </li> \n <li class=\"nav-item\" (click)=\"Selectedtabs('dataMismatch')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'dataMismatch'}\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Data Mismatch\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.datamismatchCount? ticketAllCount?.datamismatchCount:0}}</span>\n </a>\n </li>\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('mat')\"><a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'mat'}\" [ngClass]=\"SelectedTab ==='mat' ? 'active' :''\"\n class=\"nav-link cursor-pointer no-border me-3\">Employee Mat\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='mat' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.matCount? ticketAllCount?.matCount:0}}</span></a>\n </li>\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('audit')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'audit'}\" [ngClass]=\"SelectedTab ==='audit' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\"> Tango Audit\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='audit' ? 'badge-num-primary' :'badge-num-muted'\">{{auditTotalCount?.totalAuditCount ? auditTotalCount?.totalAuditCount : 0}}</span>\n </a>\n </li>\n <li class=\"nav-item\" (click)=\"Selectedtabs('trax')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'trax'}\" [ngClass]=\"SelectedTab ==='trax' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\"> Trax Audit\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='trax' ? 'badge-num-primary' :'badge-num-muted'\">{{auditTotalCount?.totalTraxAuditCount ? auditTotalCount?.totalTraxAuditCount : 0}}</span>\n </a>\n </li>\n </ul>\n</div>\n<router-outlet></router-outlet>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-style:normal;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
90
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TangoTicketUsersComponent, selector: "lib-tango-ticket-users", ngImport: i0, template: "<div class=\"card mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('installation')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'installation' }\"\r\n [ngClass]=\"SelectedTab === 'installation' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Installation<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='installation' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.installationCount? ticketAllCount?.installationCount:0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('infra')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'infra' }\"\r\n [ngClass]=\"SelectedTab === 'infra' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='infra' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.infraCount? ticketAllCount?.infraCount:0}}</span>\r\n </a>\r\n </li> \r\n <li class=\"nav-item\" (click)=\"Selectedtabs('dataMismatch')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'dataMismatch'}\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Data Mismatch\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.datamismatchCount? ticketAllCount?.datamismatchCount:0}}</span>\r\n </a>\r\n </li>\r\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('mat')\"><a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'mat'}\" [ngClass]=\"SelectedTab ==='mat' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Employee Mat\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='mat' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.matCount? ticketAllCount?.matCount:0}}</span></a>\r\n </li>\r\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('audit')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'audit'}\" [ngClass]=\"SelectedTab ==='audit' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\"> Tango Audit\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='audit' ? 'badge-num-primary' :'badge-num-muted'\">{{auditTotalCount?.totalAuditCount ? auditTotalCount?.totalAuditCount : 0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('trax')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'trax'}\" [ngClass]=\"SelectedTab ==='trax' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\"> Trax Audit\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='trax' ? 'badge-num-primary' :'badge-num-muted'\">{{auditTotalCount?.totalTraxAuditCount ? auditTotalCount?.totalTraxAuditCount : 0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n</div>\r\n<router-outlet></router-outlet>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-style:normal;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
91
91
  }
92
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TangoTicketUsersComponent, decorators: [{
93
93
  type: Component,
94
- args: [{ selector: 'lib-tango-ticket-users', template: "<div class=\"card mb-5 py-3 px-5\">\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\n <li class=\"nav-item\" (click)=\"Selectedtabs('installation')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'installation' }\"\n [ngClass]=\"SelectedTab === 'installation' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\n Installation<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='installation' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.installationCount? ticketAllCount?.installationCount:0}}</span>\n </a>\n </li>\n <li class=\"nav-item\" (click)=\"Selectedtabs('infra')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'infra' }\"\n [ngClass]=\"SelectedTab === 'infra' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\n Infra<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='infra' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.infraCount? ticketAllCount?.infraCount:0}}</span>\n </a>\n </li> \n <li class=\"nav-item\" (click)=\"Selectedtabs('dataMismatch')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'dataMismatch'}\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Data Mismatch\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.datamismatchCount? ticketAllCount?.datamismatchCount:0}}</span>\n </a>\n </li>\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('mat')\"><a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'mat'}\" [ngClass]=\"SelectedTab ==='mat' ? 'active' :''\"\n class=\"nav-link cursor-pointer no-border me-3\">Employee Mat\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='mat' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.matCount? ticketAllCount?.matCount:0}}</span></a>\n </li>\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('audit')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'audit'}\" [ngClass]=\"SelectedTab ==='audit' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\"> Tango Audit\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='audit' ? 'badge-num-primary' :'badge-num-muted'\">{{auditTotalCount?.totalAuditCount ? auditTotalCount?.totalAuditCount : 0}}</span>\n </a>\n </li>\n <li class=\"nav-item\" (click)=\"Selectedtabs('trax')\">\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'trax'}\" [ngClass]=\"SelectedTab ==='trax' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\"> Trax Audit\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='trax' ? 'badge-num-primary' :'badge-num-muted'\">{{auditTotalCount?.totalTraxAuditCount ? auditTotalCount?.totalTraxAuditCount : 0}}</span>\n </a>\n </li>\n </ul>\n</div>\n<router-outlet></router-outlet>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-style:normal;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}\n"] }]
94
+ args: [{ selector: 'lib-tango-ticket-users', template: "<div class=\"card mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('installation')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'installation' }\"\r\n [ngClass]=\"SelectedTab === 'installation' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Installation<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='installation' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.installationCount? ticketAllCount?.installationCount:0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('infra')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'infra' }\"\r\n [ngClass]=\"SelectedTab === 'infra' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='infra' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.infraCount? ticketAllCount?.infraCount:0}}</span>\r\n </a>\r\n </li> \r\n <li class=\"nav-item\" (click)=\"Selectedtabs('dataMismatch')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'dataMismatch'}\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Data Mismatch\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.datamismatchCount? ticketAllCount?.datamismatchCount:0}}</span>\r\n </a>\r\n </li>\r\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('mat')\"><a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'mat'}\" [ngClass]=\"SelectedTab ==='mat' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Employee Mat\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='mat' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.matCount? ticketAllCount?.matCount:0}}</span></a>\r\n </li>\r\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('audit')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'audit'}\" [ngClass]=\"SelectedTab ==='audit' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\"> Tango Audit\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='audit' ? 'badge-num-primary' :'badge-num-muted'\">{{auditTotalCount?.totalAuditCount ? auditTotalCount?.totalAuditCount : 0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('trax')\">\r\n <a [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'trax'}\" [ngClass]=\"SelectedTab ==='trax' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\"> Trax Audit\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='trax' ? 'badge-num-primary' :'badge-num-muted'\">{{auditTotalCount?.totalTraxAuditCount ? auditTotalCount?.totalTraxAuditCount : 0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n</div>\r\n<router-outlet></router-outlet>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-style:normal;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}\n"] }]
95
95
  }], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.ActivatedRoute }, { type: i1.GlobalStateService }, { type: i3.TicketsService }] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tdGlja2V0LXVzZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy90YW5nby10aWNrZXQtdXNlcnMvdGFuZ28tdGlja2V0LXVzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy90YW5nby10aWNrZXQtdXNlcnMvdGFuZ28tdGlja2V0LXVzZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU0xQyxNQUFNLE9BQU8seUJBQXlCO0lBUzFCO0lBQWtDO0lBQTZCO0lBQThCO0lBUnZHLFdBQVcsR0FBSyxPQUFPLENBQUM7SUFDUCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxhQUFhLENBQU07SUFDbkIsY0FBYyxDQUFNO0lBQ3BCLGVBQWUsQ0FBSztJQUNwQixNQUFNLENBQU07SUFDWixLQUFLLENBQUs7SUFDVixZQUNVLFFBQXlCLEVBQVMsS0FBcUIsRUFBUSxFQUFxQixFQUFTLE9BQXNCO1FBQW5ILGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBUSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFFM0gsQ0FBQztJQUNILFFBQVE7UUFFTixNQUFNLFFBQVEsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDNUUsSUFBSSxD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QU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO1lBQzFFLElBQUksRUFBQyxDQUFDLEdBQU8sRUFBRSxFQUFFO2dCQUNkLElBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUksR0FBRyxFQUFDO29CQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO2lCQUN6QztZQUNKLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO3dHQTdFVSx5QkFBeUI7NEZBQXpCLHlCQUF5Qiw4RENWdEMscXNHQW1DK0I7OzRGRHpCbEIseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhbmdvLXRpY2tldC11c2VycycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YW5nby10aWNrZXQtdXNlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFuZ28tdGlja2V0LXVzZXJzLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUYW5nb1RpY2tldFVzZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgU2VsZWN0ZWRUYWI6YW55PSdpbmZyYSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBoZWFkZXJGaWx0ZXJzOiBhbnk7XG4gIHRpY2tldEFsbENvdW50OiBhbnk7XG4gIGF1ZGl0VG90YWxDb3VudDphbnk7XG4gIHVzZXJJZDogYW55O1xuICB1c2Vyczphbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGFnZUluZm86IFBhZ2VJbmZvU2VydmljZSxwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxwdWJsaWMgZ3M6R2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgc2VydmljZTpUaWNrZXRzU2VydmljZSl7XG5cbiAgICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJ7fVwiKTtcbiAgICB0aGlzLnVzZXJzID0gdXNlckRhdGE7XG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoJ3R5cGUnKSkge1xuICAgICAgICAgIGNvbnN0IHR5cGUgPSBwYXJhbXNbJ3R5cGUnXTtcbiAgICAgICAgICB0aGlzLlNlbGVjdGVkdGFicyh0eXBlKTsgXG4gICAgICB9IFxuICB9KTtcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XG4gICAgdGhpcy5vbkxvYWQoKTtcbiAgICB0aGlzLmdzLm1hbmFnZVJlZnJlc2hUcmlnZ2VyLnN1YnNjcmliZSgoZSkgPT4geyAgICBcbiAgICAgIGlmIChlICYmIHRoaXMuaGVhZGVyRmlsdGVycykge1xuICAgICAgICB0aGlzLmdldEFsbENvdW50KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgc2V0UGFnZURhdGEoKSB7XG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIlRpY2tldHNcIik7XG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIlNlYW1sZXNzbHkgaGFuZGxlLCB0cmFjaywgYW5kIHJlc29sdmUgaXNzdWVzIHRocm91Z2ggb3VyIGludHVpdGl2ZSB0aWNrZXQsIG9wdGltaXppbmcgc3VwcG9ydCBhbmQgZW5oYW5jaW5nIG9wZXJhdGlvbmFsIGVmZmljaWVuY3kuXCIpO1xuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xuICAgICAgeyB0aXRsZTogXCJXb3Jrc3BhY2VcIiwgcGF0aDogXCIvdGlja2V0cy91c2Vyc1wiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZSB9LFxuICAgICAgeyB0aXRsZTogXCJXb3Jrc3BhY2VcIiwgcGF0aDogXCIvdGlja2V0cy91c2Vyc1wiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlIH0sXG4gICAgXSk7XG4gIH1cblxuICBTZWxlY3RlZHRhYnModmFsdWU6YW55KXtcbiAgICB0aGlzLlNlbGVjdGVkVGFiID0gdmFsdWU7XG4gICAgdGhpcy5zZXJ2aWNlLmRhdGFTdWJqZWN0Lm5leHQodGhpcy5TZWxlY3RlZFRhYik7XG4gICAgdGhpcy5ncy5tYW5hZ2VSZWZyZXNoVHJpZ2dlci5uZXh0KHRydWUpXG4gIH1cblxuICBvbkxvYWQoKXtcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdGhpcy5oZWFkZXJGaWx0ZXJzID0gZGF0YTtcbiAgICAgICAgICB0aGlzLmdldEFsbENvdW50KCk7XG4gICAgICAgICAgdGhpcy5nZXRBdWRpdENvdW50KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIGdldEFsbENvdW50KCl7XG4gICAgbGV0IG9iaiA9e1xuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRmlsdGVycz8uY2xpZW50cyxcbiAgICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckZpbHRlcnM/LmRhdGU/LmVuZERhdGVcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlLmdldEFsbENvdW50cyhvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYocmVzLmNvZGUgPT09MjAwKXtcbiAgICAgICAgICAgIHRoaXMudGlja2V0QWxsQ291bnQgPSByZXM/LmRhdGFbMF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIGdldEF1ZGl0Q291bnQoKXtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0VG90YWxBdWRpdGNvdW50KCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDoocmVzOmFueSkgPT4ge1xuICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09PTIwMCl7XG4gICAgICAgICAgdGhpcy5hdWRpdFRvdGFsQ291bnQgPSByZXM/LmRhdGE/LnJlc3VsdDtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBtYi01IHB5LTMgcHgtNVwiPlxuICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJTZWxlY3RlZHRhYnMoJ2luc3RhbGxhdGlvbicpXCI+XG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy90aWNrZXRzL3VzZXJzJ11cIiBbcXVlcnlQYXJhbXNdPVwieyB0eXBlOiAnaW5zdGFsbGF0aW9uJyB9XCJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSAnaW5zdGFsbGF0aW9uJyA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS0zXCI+XG4gICAgICAgICAgICAgICAgSW5zdGFsbGF0aW9uPHNwYW4gY2xhc3M9XCJteC0yXCIgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09J2luc3RhbGxhdGlvbicgPyAnYmFkZ2UtbnVtLXByaW1hcnknIDonYmFkZ2UtbnVtLW11dGVkJ1wiPnt7dGlja2V0QWxsQ291bnQ/Lmluc3RhbGxhdGlvbkNvdW50PyB0aWNrZXRBbGxDb3VudD8uaW5zdGFsbGF0aW9uQ291bnQ6MH19PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJTZWxlY3RlZHRhYnMoJ2luZnJhJylcIj5cbiAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3RpY2tldHMvdXNlcnMnXVwiIFtxdWVyeVBhcmFtc109XCJ7IHR5cGU6ICdpbmZyYScgfVwiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0gJ2luZnJhJyA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS0zXCI+XG4gICAgICAgICAgICAgICAgSW5mcmE8c3BhbiBjbGFzcz1cIm14LTJcIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0naW5mcmEnID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e3RpY2tldEFsbENvdW50Py5pbmZyYUNvdW50PyB0aWNrZXRBbGxDb3VudD8uaW5mcmFDb3VudDowfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+ICAgIFxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJTZWxlY3RlZHRhYnMoJ2RhdGFNaXNtYXRjaCcpXCI+XG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy90aWNrZXRzL3VzZXJzJ11cIiBbcXVlcnlQYXJhbXNdPVwieyB0eXBlOiAnZGF0YU1pc21hdGNoJ31cIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nZGF0YU1pc21hdGNoJyA/ICdhY3RpdmUnIDonJ1wiIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbWUtM1wiPkRhdGEgTWlzbWF0Y2hcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nZGF0YU1pc21hdGNoJyA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+e3t0aWNrZXRBbGxDb3VudD8uZGF0YW1pc21hdGNoQ291bnQ/IHRpY2tldEFsbENvdW50Py5kYXRhbWlzbWF0Y2hDb3VudDowfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSAqbmdJZj1cInRoaXMudXNlcnMudXNlclR5cGUgPT09J3RhbmdvJ1wiIGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdtYXQnKVwiPjxhIFtyb3V0ZXJMaW5rXT1cIlsnL3RpY2tldHMvdXNlcnMnXVwiIFtxdWVyeVBhcmFtc109XCJ7IHR5cGU6ICdtYXQnfVwiIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSdtYXQnID8gJ2FjdGl2ZScgOicnXCJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG1lLTNcIj5FbXBsb3llZSBNYXRcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMlwiIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSdtYXQnID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e3RpY2tldEFsbENvdW50Py5tYXRDb3VudD8gdGlja2V0QWxsQ291bnQ/Lm1hdENvdW50OjB9fTwvc3Bhbj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSAqbmdJZj1cInRoaXMudXNlcnMudXNlclR5cGUgPT09J3RhbmdvJ1wiIGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdhdWRpdCcpXCI+XG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy90aWNrZXRzL3VzZXJzJ11cIiBbcXVlcnlQYXJhbXNdPVwieyB0eXBlOiAnYXVkaXQnfVwiIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSdhdWRpdCcgPyAnYWN0aXZlJyA6JydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG1lLTNcIj4gVGFuZ28gQXVkaXRcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nYXVkaXQnID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e2F1ZGl0VG90YWxDb3VudD8udG90YWxBdWRpdENvdW50ID8gYXVkaXRUb3RhbENvdW50Py50b3RhbEF1ZGl0Q291bnQgOiAwfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKGNsaWNrKT1cIlNlbGVjdGVkdGFicygndHJheCcpXCI+XG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy90aWNrZXRzL3VzZXJzJ11cIiBbcXVlcnlQYXJhbXNdPVwieyB0eXBlOiAndHJheCd9XCIgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09J3RyYXgnID8gJ2FjdGl2ZScgOicnXCIgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBtZS0zXCI+IFRyYXggQXVkaXRcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0ndHJheCcgPyAnYmFkZ2UtbnVtLXByaW1hcnknIDonYmFkZ2UtbnVtLW11dGVkJ1wiPnt7YXVkaXRUb3RhbENvdW50Py50b3RhbFRyYXhBdWRpdENvdW50ID8gYXVkaXRUb3RhbENvdW50Py50b3RhbFRyYXhBdWRpdENvdW50IDogMH19PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L2Rpdj5cbjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tdGlja2V0LXVzZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy90YW5nby10aWNrZXQtdXNlcnMvdGFuZ28tdGlja2V0LXVzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy90YW5nby10aWNrZXQtdXNlcnMvdGFuZ28tdGlja2V0LXVzZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU0xQyxNQUFNLE9BQU8seUJBQXlCO0lBUzFCO0lBQWtDO0lBQTZCO0lBQThCO0lBUnZHLFdBQVcsR0FBSyxPQUFPLENBQUM7SUFDUCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxhQUFhLENBQU07SUFDbkIsY0FBYyxDQUFNO0lBQ3BCLGVBQWUsQ0FBSztJQUNwQixNQUFNLENBQU07SUFDWixLQUFLLENBQUs7SUFDVixZQUNVLFFBQXlCLEVBQVMsS0FBcUIsRUFBUSxFQUFxQixFQUFTLE9BQXNCO1FBQW5ILGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBUSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFFM0gsQ0FBQztJQUNILFFBQVE7UUFFTixNQUFNLFFBQVEsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDNUUsSUFBSSxD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QU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO1lBQzFFLElBQUksRUFBQyxDQUFDLEdBQU8sRUFBRSxFQUFFO2dCQUNkLElBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUksR0FBRyxFQUFDO29CQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO2lCQUN6QztZQUNKLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO3dHQTdFVSx5QkFBeUI7NEZBQXpCLHlCQUF5Qiw4RENWdEMsMndHQW1DK0I7OzRGRHpCbEIseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhbmdvLXRpY2tldC11c2VycycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhbmdvLXRpY2tldC11c2Vycy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RhbmdvLXRpY2tldC11c2Vycy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhbmdvVGlja2V0VXNlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIFNlbGVjdGVkVGFiOmFueT0naW5mcmEnO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGhlYWRlckZpbHRlcnM6IGFueTtcclxuICB0aWNrZXRBbGxDb3VudDogYW55O1xyXG4gIGF1ZGl0VG90YWxDb3VudDphbnk7XHJcbiAgdXNlcklkOiBhbnk7XHJcbiAgdXNlcnM6YW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSBzZXJ2aWNlOlRpY2tldHNTZXJ2aWNlKXtcclxuXHJcbiAgICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJ7fVwiKTtcclxuICAgIHRoaXMudXNlcnMgPSB1c2VyRGF0YTtcclxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoJ3R5cGUnKSkge1xyXG4gICAgICAgICAgY29uc3QgdHlwZSA9IHBhcmFtc1sndHlwZSddO1xyXG4gICAgICAgICAgdGhpcy5TZWxlY3RlZHRhYnModHlwZSk7IFxyXG4gICAgICB9IFxyXG4gIH0pO1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgdGhpcy5vbkxvYWQoKTtcclxuICAgIHRoaXMuZ3MubWFuYWdlUmVmcmVzaFRyaWdnZXIuc3Vic2NyaWJlKChlKSA9PiB7ICAgIFxyXG4gICAgICBpZiAoZSAmJiB0aGlzLmhlYWRlckZpbHRlcnMpIHtcclxuICAgICAgICB0aGlzLmdldEFsbENvdW50KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJUaWNrZXRzXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIlNlYW1sZXNzbHkgaGFuZGxlLCB0cmFjaywgYW5kIHJlc29sdmUgaXNzdWVzIHRocm91Z2ggb3VyIGludHVpdGl2ZSB0aWNrZXQsIG9wdGltaXppbmcgc3VwcG9ydCBhbmQgZW5oYW5jaW5nIG9wZXJhdGlvbmFsIGVmZmljaWVuY3kuXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiV29ya3NwYWNlXCIsIHBhdGg6IFwiL3RpY2tldHMvdXNlcnNcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogXCJXb3Jrc3BhY2VcIiwgcGF0aDogXCIvdGlja2V0cy91c2Vyc1wiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlIH0sXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIFNlbGVjdGVkdGFicyh2YWx1ZTphbnkpe1xyXG4gICAgdGhpcy5TZWxlY3RlZFRhYiA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmRhdGFTdWJqZWN0Lm5leHQodGhpcy5TZWxlY3RlZFRhYik7XHJcbiAgICB0aGlzLmdzLm1hbmFnZVJlZnJlc2hUcmlnZ2VyLm5leHQodHJ1ZSlcclxuICB9XHJcblxyXG4gIG9uTG9hZCgpe1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMuaGVhZGVyRmlsdGVycyA9IGRhdGE7XHJcbiAgICAgICAgICB0aGlzLmdldEFsbENvdW50KCk7XHJcbiAgICAgICAgICB0aGlzLmdldEF1ZGl0Q291bnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldEFsbENvdW50KCl7XHJcbiAgICBsZXQgb2JqID17XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnM/LmNsaWVudHMsXHJcbiAgICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckZpbHRlcnM/LmRhdGU/LmVuZERhdGVcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS5nZXRBbGxDb3VudHMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZihyZXMuY29kZSA9PT0yMDApe1xyXG4gICAgICAgICAgICB0aGlzLnRpY2tldEFsbENvdW50ID0gcmVzPy5kYXRhWzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0QXVkaXRDb3VudCgpe1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldFRvdGFsQXVkaXRjb3VudCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSkgPT4ge1xyXG4gICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT09MjAwKXtcclxuICAgICAgICAgIHRoaXMuYXVkaXRUb3RhbENvdW50ID0gcmVzPy5kYXRhPy5yZXN1bHQ7XHJcbiAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgbWItNSBweS0zIHB4LTVcIj5cclxuICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKGNsaWNrKT1cIlNlbGVjdGVkdGFicygnaW5zdGFsbGF0aW9uJylcIj5cclxuICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvdGlja2V0cy91c2VycyddXCIgW3F1ZXJ5UGFyYW1zXT1cInsgdHlwZTogJ2luc3RhbGxhdGlvbicgfVwiXHJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSAnaW5zdGFsbGF0aW9uJyA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICBJbnN0YWxsYXRpb248c3BhbiBjbGFzcz1cIm14LTJcIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0naW5zdGFsbGF0aW9uJyA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+e3t0aWNrZXRBbGxDb3VudD8uaW5zdGFsbGF0aW9uQ291bnQ/IHRpY2tldEFsbENvdW50Py5pbnN0YWxsYXRpb25Db3VudDowfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKGNsaWNrKT1cIlNlbGVjdGVkdGFicygnaW5mcmEnKVwiPlxyXG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy90aWNrZXRzL3VzZXJzJ11cIiBbcXVlcnlQYXJhbXNdPVwieyB0eXBlOiAnaW5mcmEnIH1cIlxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0gJ2luZnJhJyA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICBJbmZyYTxzcGFuIGNsYXNzPVwibXgtMlwiIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSdpbmZyYScgPyAnYmFkZ2UtbnVtLXByaW1hcnknIDonYmFkZ2UtbnVtLW11dGVkJ1wiPnt7dGlja2V0QWxsQ291bnQ/LmluZnJhQ291bnQ/IHRpY2tldEFsbENvdW50Py5pbmZyYUNvdW50OjB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvbGk+ICAgIFxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKGNsaWNrKT1cIlNlbGVjdGVkdGFicygnZGF0YU1pc21hdGNoJylcIj5cclxuICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvdGlja2V0cy91c2VycyddXCIgW3F1ZXJ5UGFyYW1zXT1cInsgdHlwZTogJ2RhdGFNaXNtYXRjaCd9XCIgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09J2RhdGFNaXNtYXRjaCcgPyAnYWN0aXZlJyA6JydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG1lLTNcIj5EYXRhIE1pc21hdGNoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nZGF0YU1pc21hdGNoJyA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+e3t0aWNrZXRBbGxDb3VudD8uZGF0YW1pc21hdGNoQ291bnQ/IHRpY2tldEFsbENvdW50Py5kYXRhbWlzbWF0Y2hDb3VudDowfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSAqbmdJZj1cInRoaXMudXNlcnMudXNlclR5cGUgPT09J3RhbmdvJ1wiIGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdtYXQnKVwiPjxhIFtyb3V0ZXJMaW5rXT1cIlsnL3RpY2tldHMvdXNlcnMnXVwiIFtxdWVyeVBhcmFtc109XCJ7IHR5cGU6ICdtYXQnfVwiIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSdtYXQnID8gJ2FjdGl2ZScgOicnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbWUtM1wiPkVtcGxveWVlIE1hdFxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nbWF0JyA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+e3t0aWNrZXRBbGxDb3VudD8ubWF0Q291bnQ/IHRpY2tldEFsbENvdW50Py5tYXRDb3VudDowfX08L3NwYW4+PC9hPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpICpuZ0lmPVwidGhpcy51c2Vycy51c2VyVHlwZSA9PT0ndGFuZ28nXCIgY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJTZWxlY3RlZHRhYnMoJ2F1ZGl0JylcIj5cclxuICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvdGlja2V0cy91c2VycyddXCIgW3F1ZXJ5UGFyYW1zXT1cInsgdHlwZTogJ2F1ZGl0J31cIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nYXVkaXQnID8gJ2FjdGl2ZScgOicnXCIgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBtZS0zXCI+IFRhbmdvIEF1ZGl0XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nYXVkaXQnID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e2F1ZGl0VG90YWxDb3VudD8udG90YWxBdWRpdENvdW50ID8gYXVkaXRUb3RhbENvdW50Py50b3RhbEF1ZGl0Q291bnQgOiAwfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKGNsaWNrKT1cIlNlbGVjdGVkdGFicygndHJheCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3RpY2tldHMvdXNlcnMnXVwiIFtxdWVyeVBhcmFtc109XCJ7IHR5cGU6ICd0cmF4J31cIiBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0ndHJheCcgPyAnYWN0aXZlJyA6JydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG1lLTNcIj4gVHJheCBBdWRpdFxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0yXCIgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09J3RyYXgnID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e2F1ZGl0VG90YWxDb3VudD8udG90YWxUcmF4QXVkaXRDb3VudCA/IGF1ZGl0VG90YWxDb3VudD8udG90YWxUcmF4QXVkaXRDb3VudCA6IDB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj5cclxuPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PiJdfQ==