tango-app-ui-shared 3.7.3-dev → 3.7.3-dev2

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.
@@ -14,6 +14,7 @@ export class SidebarFooterComponent {
14
14
  pageInfo;
15
15
  ngZone;
16
16
  ts;
17
+ gs;
17
18
  isSubMenuActive = false;
18
19
  userValue;
19
20
  hovered = false;
@@ -29,13 +30,20 @@ export class SidebarFooterComponent {
29
30
  destroy$ = new Subject();
30
31
  openshow = false;
31
32
  userProfileData;
32
- constructor(auth, router, layout, pageInfo, ngZone, ts) {
33
+ recaptchaSiteKey;
34
+ constructor(auth, router, layout, pageInfo, ngZone, ts, gs) {
33
35
  this.auth = auth;
34
36
  this.router = router;
35
37
  this.layout = layout;
36
38
  this.pageInfo = pageInfo;
37
39
  this.ngZone = ngZone;
38
40
  this.ts = ts;
41
+ this.gs = gs;
42
+ this.gs.environment.pipe(takeUntil(this.destroy$)).subscribe((env) => {
43
+ if (env) {
44
+ this.recaptchaSiteKey = env.recaptchaSiteKey;
45
+ }
46
+ });
39
47
  this.router.events.subscribe(event => {
40
48
  if (event instanceof NavigationStart) {
41
49
  // Close the submenu whenever a navigation starts
@@ -96,7 +104,21 @@ export class SidebarFooterComponent {
96
104
  });
97
105
  }
98
106
  cleanUpAndRedirect() {
99
- localStorage.clear();
107
+ // Remove captcha value so it forces re-verification
108
+ localStorage.removeItem('captchaToken'); // or whatever key you use
109
+ // Remove auth token or session data
110
+ // localStorage.removeItem('authToken');
111
+ // Optional: remove only your app's keys instead of wiping everything
112
+ localStorage.clear(); // Use this if you really want to remove everything
113
+ // If you want to also reset the captcha widget before redirect:
114
+ if (window.grecaptcha) {
115
+ try {
116
+ window.grecaptcha.reset();
117
+ }
118
+ catch (err) {
119
+ console.warn('Captcha reset error:', err);
120
+ }
121
+ }
100
122
  this.pageInfo.setTitle('login');
101
123
  this.router.navigate(["/auth/login"]);
102
124
  }
@@ -119,13 +141,13 @@ export class SidebarFooterComponent {
119
141
  },
120
142
  });
121
143
  }
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarFooterComponent, deps: [{ token: i1.AuthService }, { token: i2.Router }, { token: i3.LayoutService }, { token: i3.PageInfoService }, { token: i0.NgZone }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
144
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarFooterComponent, deps: [{ token: i1.AuthService }, { token: i2.Router }, { token: i3.LayoutService }, { token: i3.PageInfoService }, { token: i0.NgZone }, { token: i4.ToastService }, { token: i3.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
123
145
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SidebarFooterComponent, selector: "lib-sidebar-footer", inputs: { toggleButtonClass: "toggleButtonClass", toggleEnabled: "toggleEnabled", toggleType: "toggleType", toggleState: "toggleState", userValuefooter: "userValuefooter" }, ngImport: i0, template: "<div class=\"container-with-overflow\">\r\n <div id=\"kt_app_sidebar_menu_scroll\" class=\"\" data-kt-scroll=\"false\" data-kt-scroll-activate=\"false\"\r\n data-kt-scroll-height=\"auto\" data-kt-scroll-dependencies=\"#kt_app_sidebar_logo, #kt_app_sidebar_footer\"\r\n data-kt-scroll-wrappers=\"#kt_app_sidebar_menu\" data-kt-scroll-offset=\"5px\" data-kt-scroll-save-state=\"true\">\r\n <div class=\"menu menu-column menu-rounded menu-sub-indention fw-semibold fs-6\" id=\"kt_app_sidebar_menu\"\r\n data-kt-menu=\"true\" data-kt-menu-expand=\"false\">\r\n <div class=\"menu-item menu-accordion w-100 px-3\" id=\"#kt_app_sidebar_menu\" [ngClass]=\"{'active': isSubMenuActive}\"\r\n data-kt-menu-trigger=\"click\" (mouseover)=\"setArrowDirection(true)\"\r\n (mouseleave)=\"setArrowDirection(false)\" >\r\n <span class=\"menu-link without-sub\">\r\n <span class=\"menu-icon\">\r\n <img class=\"img-src\" *ngIf=\"userProfileData?.userProfile\" (error)=\"userProfileData.userProfile = null\" [src]=\"userProfileData?.userProfile ? userProfileData?.userProfile :'./assets/tango/Images/userProfile.svg'\" alt=\"Profile Image\">\r\n <img class=\"img-src\" *ngIf=\"!userProfileData?.userProfile\" src=\"assets/tango/Images/userProfile.svg\">\r\n </span>\r\n <span class=\"menu-title overflow-hidden ms-2\" data-link=\"/crafted/account\">{{ userValue.userName | titlecase}}<br>\r\n {{ userValue.email | titlecase}}</span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion w-100\" #accordion [class.show]=\"isSubMenuActive\" [ngClass]=\"{'menu-sub-top': isSubMenuActive}\"\r\n routerLinkActive=\"menu-active-bg\" >\r\n <div class=\"menu-item px-3 border-profile-first\">\r\n <a class=\"menu-link without-sub\" (click)=\"profileUrl()\" >\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M11.8574 3.83162C11.8574 5.94799 10.0668 7.66324 7.85742 7.66324C5.64805 7.66324 3.85742 5.94799 3.85742 3.83162C3.85742 1.71525 5.64805 0 7.85742 0C10.0668 0 11.8574 1.71525 11.8574 3.83162Z\"\r\n fill=\"#98A2B3\" />\r\n <path\r\n d=\"M6.36786 9.38452C2.85 9.38452 0 11.9226 0 15.0554C0 15.577 0.475 16.0001 1.06071 16.0001H14.9393C15.525 16.0001 16 15.577 16 15.0554C16 11.9226 13.15 9.38452 9.63214 9.38452H6.36786Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Profile</span>\r\n </a>\r\n </div>\r\n <!-- <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path opacity=\"0.3\"\r\n d=\"M14.2222 11.5556V8C14.2222 4.56356 11.4364 1.77778 8 1.77778C4.56356 1.77778 1.77778 4.56356 1.77778 8V11.5556H14.2222ZM16 11.5556H0V8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8V11.5556Z\"\r\n fill=\"#D0D5DD\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M1.77778 9.77759H2.66667C3.64851 9.77759 4.44444 10.5735 4.44444 11.5554V14.222C4.44444 15.2039 3.64851 15.9998 2.66667 15.9998H1.77778C0.795938 15.9998 0 15.2039 0 14.222V11.5554C0 10.5735 0.795938 9.77759 1.77778 9.77759ZM13.3333 9.77759H14.2222C15.2041 9.77759 16 10.5735 16 11.5554V14.222C16 15.2039 15.2041 15.9998 14.2222 15.9998H13.3333C12.3515 15.9998 11.5556 15.2039 11.5556 14.222V11.5554C11.5556 10.5735 12.3515 9.77759 13.3333 9.77759Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Support</span>\r\n </a>\r\n </div> -->\r\n <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" (click)=\"logout()\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path\r\n d=\"M5 13H2.33333C1.97971 13 1.64057 12.8595 1.39052 12.6095C1.14048 12.3594 1 12.0203 1 11.6667V2.33333C1 1.97971 1.14048 1.64057 1.39052 1.39052C1.64057 1.14048 1.97971 1 2.33333 1H5\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M9.66667 10.3332L13 6.99984M13 6.99984L9.66667 3.6665M13 6.99984H5\" stroke=\"#D0D5DD\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Logout</span>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".menu{background:var(--Gray-700, #344054)}.menu .menu-item{position:relative;background:var(--Gray-700, #344054)}.menu .border-profile-first{border-top-left-radius:8px;border-top-right-radius:8px}.menu .menu-sub{position:absolute;top:100;bottom:calc(100% + 5px);left:0}.menu .menu-sub-top{bottom:auto;top:calc(100% + 5px)}.menu-sub{transition:max-height .3s ease-out}.menu-sub:not(.show){max-height:0;overflow:hidden}.menu-sub-indention .menu-sub{margin-left:0rem!important}.custom-scroll{max-height:300px}.img-src{width:40px;height:40px;border-radius:30px}\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: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] });
124
146
  }
125
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarFooterComponent, decorators: [{
126
148
  type: Component,
127
149
  args: [{ selector: "lib-sidebar-footer", template: "<div class=\"container-with-overflow\">\r\n <div id=\"kt_app_sidebar_menu_scroll\" class=\"\" data-kt-scroll=\"false\" data-kt-scroll-activate=\"false\"\r\n data-kt-scroll-height=\"auto\" data-kt-scroll-dependencies=\"#kt_app_sidebar_logo, #kt_app_sidebar_footer\"\r\n data-kt-scroll-wrappers=\"#kt_app_sidebar_menu\" data-kt-scroll-offset=\"5px\" data-kt-scroll-save-state=\"true\">\r\n <div class=\"menu menu-column menu-rounded menu-sub-indention fw-semibold fs-6\" id=\"kt_app_sidebar_menu\"\r\n data-kt-menu=\"true\" data-kt-menu-expand=\"false\">\r\n <div class=\"menu-item menu-accordion w-100 px-3\" id=\"#kt_app_sidebar_menu\" [ngClass]=\"{'active': isSubMenuActive}\"\r\n data-kt-menu-trigger=\"click\" (mouseover)=\"setArrowDirection(true)\"\r\n (mouseleave)=\"setArrowDirection(false)\" >\r\n <span class=\"menu-link without-sub\">\r\n <span class=\"menu-icon\">\r\n <img class=\"img-src\" *ngIf=\"userProfileData?.userProfile\" (error)=\"userProfileData.userProfile = null\" [src]=\"userProfileData?.userProfile ? userProfileData?.userProfile :'./assets/tango/Images/userProfile.svg'\" alt=\"Profile Image\">\r\n <img class=\"img-src\" *ngIf=\"!userProfileData?.userProfile\" src=\"assets/tango/Images/userProfile.svg\">\r\n </span>\r\n <span class=\"menu-title overflow-hidden ms-2\" data-link=\"/crafted/account\">{{ userValue.userName | titlecase}}<br>\r\n {{ userValue.email | titlecase}}</span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion w-100\" #accordion [class.show]=\"isSubMenuActive\" [ngClass]=\"{'menu-sub-top': isSubMenuActive}\"\r\n routerLinkActive=\"menu-active-bg\" >\r\n <div class=\"menu-item px-3 border-profile-first\">\r\n <a class=\"menu-link without-sub\" (click)=\"profileUrl()\" >\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M11.8574 3.83162C11.8574 5.94799 10.0668 7.66324 7.85742 7.66324C5.64805 7.66324 3.85742 5.94799 3.85742 3.83162C3.85742 1.71525 5.64805 0 7.85742 0C10.0668 0 11.8574 1.71525 11.8574 3.83162Z\"\r\n fill=\"#98A2B3\" />\r\n <path\r\n d=\"M6.36786 9.38452C2.85 9.38452 0 11.9226 0 15.0554C0 15.577 0.475 16.0001 1.06071 16.0001H14.9393C15.525 16.0001 16 15.577 16 15.0554C16 11.9226 13.15 9.38452 9.63214 9.38452H6.36786Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Profile</span>\r\n </a>\r\n </div>\r\n <!-- <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path opacity=\"0.3\"\r\n d=\"M14.2222 11.5556V8C14.2222 4.56356 11.4364 1.77778 8 1.77778C4.56356 1.77778 1.77778 4.56356 1.77778 8V11.5556H14.2222ZM16 11.5556H0V8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8V11.5556Z\"\r\n fill=\"#D0D5DD\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M1.77778 9.77759H2.66667C3.64851 9.77759 4.44444 10.5735 4.44444 11.5554V14.222C4.44444 15.2039 3.64851 15.9998 2.66667 15.9998H1.77778C0.795938 15.9998 0 15.2039 0 14.222V11.5554C0 10.5735 0.795938 9.77759 1.77778 9.77759ZM13.3333 9.77759H14.2222C15.2041 9.77759 16 10.5735 16 11.5554V14.222C16 15.2039 15.2041 15.9998 14.2222 15.9998H13.3333C12.3515 15.9998 11.5556 15.2039 11.5556 14.222V11.5554C11.5556 10.5735 12.3515 9.77759 13.3333 9.77759Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Support</span>\r\n </a>\r\n </div> -->\r\n <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" (click)=\"logout()\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path\r\n d=\"M5 13H2.33333C1.97971 13 1.64057 12.8595 1.39052 12.6095C1.14048 12.3594 1 12.0203 1 11.6667V2.33333C1 1.97971 1.14048 1.64057 1.39052 1.39052C1.64057 1.14048 1.97971 1 2.33333 1H5\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M9.66667 10.3332L13 6.99984M13 6.99984L9.66667 3.6665M13 6.99984H5\" stroke=\"#D0D5DD\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Logout</span>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".menu{background:var(--Gray-700, #344054)}.menu .menu-item{position:relative;background:var(--Gray-700, #344054)}.menu .border-profile-first{border-top-left-radius:8px;border-top-right-radius:8px}.menu .menu-sub{position:absolute;top:100;bottom:calc(100% + 5px);left:0}.menu .menu-sub-top{bottom:auto;top:calc(100% + 5px)}.menu-sub{transition:max-height .3s ease-out}.menu-sub:not(.show){max-height:0;overflow:hidden}.menu-sub-indention .menu-sub{margin-left:0rem!important}.custom-scroll{max-height:300px}.img-src{width:40px;height:40px;border-radius:30px}\n"] }]
128
- }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.Router }, { type: i3.LayoutService }, { type: i3.PageInfoService }, { type: i0.NgZone }, { type: i4.ToastService }], propDecorators: { toggleButtonClass: [{
150
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.Router }, { type: i3.LayoutService }, { type: i3.PageInfoService }, { type: i0.NgZone }, { type: i4.ToastService }, { type: i3.GlobalStateService }], propDecorators: { toggleButtonClass: [{
129
151
  type: Input
130
152
  }], toggleEnabled: [{
131
153
  type: Input
@@ -136,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
136
158
  }], userValuefooter: [{
137
159
  type: Input
138
160
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFReEQsTUFBTSxPQUFPLHNCQUFzQjtJQWdCYjtJQUEyQjtJQUF1QjtJQUE4QjtJQUMxRjtJQUF1QjtJQWhCakMsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxTQUFTLENBQU07SUFDZixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ1IsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFDaEMsaUJBQWlCLEdBQVcsRUFBRSxDQUFDO0lBQy9CLGFBQWEsQ0FBVTtJQUN2QixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3hCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDbEMsaUJBQWlCLENBQW9CO0lBQzVCLGVBQWUsR0FBTSxFQUFFLENBQUM7SUFDakMsVUFBVSxDQUFTO0lBQ25CLGlCQUFpQixHQUFZLElBQUksQ0FBQztJQUNqQixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxRQUFRLEdBQVcsS0FB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QUFvQjsrTUFTckIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlLCBMYXlvdXRUeXBlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1zaWRlYmFyLWZvb3RlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgaXNTdWJNZW51QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdXNlclZhbHVlOiBhbnk7XHJcbiAgaG92ZXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgQElucHV0KCkgdG9nZ2xlQnV0dG9uQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRvZ2dsZUVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdG9nZ2xlVHlwZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdG9nZ2xlU3RhdGU6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnRMYXlvdXRUeXBlOiBMYXlvdXRUeXBlIHwgbnVsbDtcclxuICBASW5wdXQoKSB1c2VyVmFsdWVmb290ZXI6IGFueT0nJztcclxuICB0b2dnbGVBdHRyOiBzdHJpbmc7XHJcbiAgc2hvdWxkU2hvd01lbnVUb3A6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIG9wZW5zaG93OiBib29sZWFuID1mYWxzZTtcclxuICB1c2VyUHJvZmlsZURhdGE6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLHByaXZhdGUgbGF5b3V0OiBMYXlvdXRTZXJ2aWNlLHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLCBcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUscHJpdmF0ZSB0czpUb2FzdFNlcnZpY2UpIHtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgICAgLy8gQ2xvc2UgdGhlIHN1Ym1lbnUgd2hlbmV2ZXIgYSBuYXZpZ2F0aW9uIHN0YXJ0c1xyXG4gICAgICAgIHRoaXMuaXNTdWJNZW51QWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyBpc1N1Yk1lbnVBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0Fycm93UmV2ZXJzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgc2V0QXJyb3dEaXJlY3Rpb24oaXNNb3VzZU92ZXI6IGJvb2xlYW4pIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKGlzTW91c2VPdmVyKVxyXG4gICAgdGhpcy5pc0Fycm93UmV2ZXJzZWQgPSBpc01vdXNlT3ZlcjtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvZ2dsZUF0dHIgPSBgYXBwLXNpZGViYXItJHt0aGlzLnRvZ2dsZVR5cGV9YDtcclxuICAgIGNvbnN0IGxheW91dFN1YnNjciA9IHRoaXMubGF5b3V0LmN1cnJlbnRMYXlvdXRUeXBlU3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxheW91dCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VycmVudExheW91dFR5cGUgPSBsYXlvdXQ7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5wdXNoKGxheW91dFN1YnNjcik7XHJcbiAgICBpZiAoJ3VzZXItaW5mbycgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIGNvbnN0IHVzZXJEYXRhOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKSB8fCBcInt9XCJcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51c2VyVmFsdWUgPSB1c2VyRGF0YTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0UHJvZmlsZSgpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuaXNTdWJNZW51QWN0aXZlID0hdGhpcy5pc1N1Yk1lbnVBY3RpdmU7XHJcbiAgfVxyXG4gIHByb2ZpbGVVcmwoKSB7XHJcbiAgICB0aGlzLmlzU3ViTWVudUFjdGl2ZSA9IGZhbHNlO1xyXG4gIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSlcclxuICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAvLyAgIHRoaXMuY2xvc2VNZW51KCk7XHJcbiAgLy8gfSwgMTApO1xyXG59XHJcbmNsb3NlTWVudSgpe1xyXG4gIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxyXG59XHJcblxyXG5sb2dvdXQoKSB7XHJcbiAgdGhpcy5hdXRoLmxvZ291dCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICB0aGlzLmNsZWFuVXBBbmRSZWRpcmVjdCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcIkxvZ291dCBmYWlsZWQgZnJvbSBzZXJ2ZXIsIGZvcmNpbmcgY2xpZW50IGxvZ291dC5cIik7XHJcbiAgICAgICAgdGhpcy5jbGVhblVwQW5kUmVkaXJlY3QoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJMb2dvdXQgQVBJIGVycm9yOlwiLCBlcnIpO1xyXG4gICAgICAvLyBTdGlsbCBjbGVhciBsb2NhbCBkYXRhIGFuZCByZWRpcmVjdCwgYnV0IG1heWJlIGFsc28gc2hvdyBhIG1lc3NhZ2VcclxuICAgICAgdGhpcy5jbGVhblVwQW5kUmVkaXJlY3QoKTtcclxuICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KFwiU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hpbGUgbG9nZ2luZyBvdXQuIFBsZWFzZSBsb2cgaW4gYWdhaW4uXCIpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5wcml2YXRlIGNsZWFuVXBBbmRSZWRpcmVjdCgpIHtcclxuICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKCdsb2dpbicpO1xyXG4gIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9hdXRoL2xvZ2luXCJdKTtcclxufVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gdGhpcy51bnN1YnNjcmliZS5mb3JFYWNoKChzYikgPT4gc2IudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiBnZXRQcm9maWxlKCl7XHJcbiAgdGhpcy5hdXRoLmdldFBlcnNvbmFsSW5mbygpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgbmV4dDogKHJlczphbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLnVzZXJQcm9maWxlRGF0YSA9IHJlcy5kYXRhO1xyXG4gICAgICAgIC8vIHRoaXMudHdvRmFjdG9yRW5hYmxlZCA9XHJcbiAgICAgICAgLy8gICB0aGlzLnVzZXJQcm9maWxlRGF0YT8udHdvRmFjdG9yQXV0aGVudGljYXRpb24/LmlzRW5hYmxlIHx8IGZhbHNlO1xyXG4gICAgICB9IFxyXG4gICAgfSxcclxuICAgIGVycm9yOiAoZXJyOmFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgfSxcclxuICB9KTtcclxuIH0gXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci13aXRoLW92ZXJmbG93XCI+XHJcbiAgPGRpdiBpZD1cImt0X2FwcF9zaWRlYmFyX21lbnVfc2Nyb2xsXCIgY2xhc3M9XCJcIiBkYXRhLWt0LXNjcm9sbD1cImZhbHNlXCIgZGF0YS1rdC1zY3JvbGwtYWN0aXZhdGU9XCJmYWxzZVwiXHJcbiAgICBkYXRhLWt0LXNjcm9sbC1oZWlnaHQ9XCJhdXRvXCIgZGF0YS1rdC1zY3JvbGwtZGVwZW5kZW5jaWVzPVwiI2t0X2FwcF9zaWRlYmFyX2xvZ28sICNrdF9hcHBfc2lkZWJhcl9mb290ZXJcIlxyXG4gICAgZGF0YS1rdC1zY3JvbGwtd3JhcHBlcnM9XCIja3RfYXBwX3NpZGViYXJfbWVudVwiIGRhdGEta3Qtc2Nyb2xsLW9mZnNldD1cIjVweFwiIGRhdGEta3Qtc2Nyb2xsLXNhdmUtc3RhdGU9XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudSBtZW51LWNvbHVtbiBtZW51LXJvdW5kZWQgbWVudS1zdWItaW5kZW50aW9uIGZ3LXNlbWlib2xkIGZzLTZcIiBpZD1cImt0X2FwcF9zaWRlYmFyX21lbnVcIlxyXG4gICAgICBkYXRhLWt0LW1lbnU9XCJ0cnVlXCIgZGF0YS1rdC1tZW51LWV4cGFuZD1cImZhbHNlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1hY2NvcmRpb24gdy0xMDAgcHgtM1wiIGlkPVwiI2t0X2FwcF9zaWRlYmFyX21lbnVcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzU3ViTWVudUFjdGl2ZX1cIlxyXG4gICAgICAgIGRhdGEta3QtbWVudS10cmlnZ2VyPVwiY2xpY2tcIiAgKG1vdXNlb3Zlcik9XCJzZXRBcnJvd0RpcmVjdGlvbih0cnVlKVwiXHJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwic2V0QXJyb3dEaXJlY3Rpb24oZmFsc2UpXCIgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaWNvblwiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiICpuZ0lmPVwidXNlclByb2ZpbGVEYXRhPy51c2VyUHJvZmlsZVwiIChlcnJvcik9XCJ1c2VyUHJvZmlsZURhdGEudXNlclByb2ZpbGUgPSBudWxsXCIgW3NyY109XCJ1c2VyUHJvZmlsZURhdGE/LnVzZXJQcm9maWxlID8gdXNlclByb2ZpbGVEYXRhPy51c2VyUHJvZmlsZSA6Jy4vYXNzZXRzL3RhbmdvL0ltYWdlcy91c2VyUHJvZmlsZS5zdmcnXCIgYWx0PVwiUHJvZmlsZSBJbWFnZVwiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiICpuZ0lmPVwiIXVzZXJQcm9maWxlRGF0YT8udXNlclByb2ZpbGVcIiBzcmM9XCJhc3NldHMvdGFuZ28vSW1hZ2VzL3VzZXJQcm9maWxlLnN2Z1wiPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlIG92ZXJmbG93LWhpZGRlbiBtcy0yXCIgZGF0YS1saW5rPVwiL2NyYWZ0ZWQvYWNjb3VudFwiPnt7IHVzZXJWYWx1ZS51c2VyTmFtZSB8IHRpdGxlY2FzZX19PGJyPlxyXG4gICAgICAgICAge3sgdXNlclZhbHVlLmVtYWlsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYXJyb3dcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb24gdy0xMDBcIiAjYWNjb3JkaW9uIFtjbGFzcy5zaG93XT1cImlzU3ViTWVudUFjdGl2ZVwiIFtuZ0NsYXNzXT1cInsnbWVudS1zdWItdG9wJzogaXNTdWJNZW51QWN0aXZlfVwiXHJcbiAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwibWVudS1hY3RpdmUtYmdcIiA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtIHB4LTMgYm9yZGVyLXByb2ZpbGUtZmlyc3RcIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiAgKGNsaWNrKT1cInByb2ZpbGVVcmwoKVwiID5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjg1NzQgMy44MzE2MkMxMS44NTc0IDUuOTQ3OTkgMTAuMDY2OCA3LjY2MzI0IDcuODU3NDIgNy42NjMyNEM1LjY0ODA1IDcuNjYzMjQgMy44NTc0MiA1Ljk0Nzk5IDMuODU3NDIgMy44MzE2MkMzLjg1NzQyIDEuNzE1MjUgNS42NDgwNSAwIDcuODU3NDIgMEMxMC4wNjY4IDAgMTEuODU3NCAxLjcxNTI1IDExLjg1NzQgMy44MzE2MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjOThBMkIzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMzY3ODYgOS4zODQ1MkMyLjg1IDkuMzg0NTIgMCAxMS45MjI2IDAgMTUuMDU1NEMwIDE1LjU3NyAwLjQ3NSAxNi4wMDAxIDEuMDYwNzEgMTYuMDAwMUgxNC45MzkzQzE1LjUyNSAxNi4wMDAxIDE2IDE1LjU3NyAxNiAxNS4wNTU0QzE2IDExLjkyMjYgMTMuMTUgOS4zODQ1MiA5LjYzMjE0IDkuMzg0NTJINi4zNjc4NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGUgb3ZlcmZsb3ctaGlkZGVuXCI+UHJvZmlsZTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtM1wiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMHB4O1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggb3BhY2l0eT1cIjAuM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4yMjIyIDExLjU1NTZWOEMxNC4yMjIyIDQuNTYzNTYgMTEuNDM2NCAxLjc3Nzc4IDggMS43Nzc3OEM0LjU2MzU2IDEuNzc3NzggMS43Nzc3OCA0LjU2MzU2IDEuNzc3NzggOFYxMS41NTU2SDE0LjIyMjJaTTE2IDExLjU1NTZIMFY4QzAgMy41ODE3MiAzLjU4MTcyIDAgOCAwQzEyLjQxODMgMCAxNiAzLjU4MTcyIDE2IDhWMTEuNTU1NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMS43Nzc3OCA5Ljc3NzU5SDIuNjY2NjdDMy42NDg1MSA5Ljc3NzU5IDQuNDQ0NDQgMTAuNTczNSA0LjQ0NDQ0IDExLjU1NTRWMTQuMjIyQzQuNDQ0NDQgMTUuMjAzOSAzLjY0ODUxIDE1Ljk5OTggMi42NjY2NyAxNS45OTk4SDEuNzc3NzhDMC43OTU5MzggMTUuOTk5OCAwIDE1LjIwMzkgMCAxNC4yMjJWMTEuNTU1NEMwIDEwLjU3MzUgMC43OTU5MzggOS43Nzc1OSAxLjc3Nzc4IDkuNzc3NTlaTTEzLjMzMzMgOS43Nzc1OUgxNC4yMjIyQzE1LjIwNDEgOS43Nzc1OSAxNiAxMC41NzM1IDE2IDExLjU1NTRWMTQuMjIyQzE2IDE1LjIwMzkgMTUuMjA0MSAxNS45OTk4IDE0LjIyMjIgMTUuOTk5OEgxMy4zMzMzQzEyLjM1MTUgMTUuOTk5OCAxMS41NTU2IDE1LjIwMzkgMTEuNTU1NiAxNC4yMjJWMTEuNTU1NEMxMS41NTU2IDEwLjU3MzUgMTIuMzUxNSA5Ljc3NzU5IDEzLjMzMzMgOS43Nzc1OVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNjY3MDg1XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGUgb3ZlcmZsb3ctaGlkZGVuXCI+U3VwcG9ydDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBweC0zXCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiAwcHg7XCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgKGNsaWNrKT1cImxvZ291dCgpXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNSAxM0gyLjMzMzMzQzEuOTc5NzEgMTMgMS42NDA1NyAxMi44NTk1IDEuMzkwNTIgMTIuNjA5NUMxLjE0MDQ4IDEyLjM1OTQgMSAxMi4wMjAzIDEgMTEuNjY2N1YyLjMzMzMzQzEgMS45Nzk3MSAxLjE0MDQ4IDEuNjQwNTcgMS4zOTA1MiAxLjM5MDUyQzEuNjQwNTcgMS4xNDA0OCAxLjk3OTcxIDEgMi4zMzMzMyAxSDVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05LjY2NjY3IDEwLjMzMzJMMTMgNi45OTk4NE0xMyA2Ljk5OTg0TDkuNjY2NjcgMy42NjY1TTEzIDYuOTk5ODRINVwiIHN0cm9rZT1cIiNEMEQ1RERcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZSBvdmVyZmxvdy1oaWRkZW5cIj5Mb2dvdXQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1mb290ZXIvc2lkZWJhci1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFReEQsTUFBTSxPQUFPLHNCQUFzQjtJQWlCYjtJQUEyQjtJQUF1QjtJQUE4QjtJQUMxRjtJQUF1QjtJQUF1QjtJQWpCeEQsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxTQUFTLENBQU07SUFDZixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ1IsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFDaEMsaUJBQWlCLEdBQVcsRUFBRSxDQUFDO0lBQy9CLGFBQWEsQ0FBVTtJQUN2QixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3hCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDbEMsaUJBQWlCLENBQW9CO0lBQzVCLGVBQWUsR0FBTSxFQUFFLENBQUM7SUFDakMsVUFBVSxDQUFTO0lBQ25CLGlCQUFpQixHQUFZLElBQUksQ0FBQztJQUNqQixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxRQUFRLEdB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SSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUYsVUFBVTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbkUsSUFBSSxFQUFFLENBQUMsR0FBTyxFQUFFLEVBQUU7Z0JBQ2hCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO29CQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQ2hDLDBCQUEwQjtvQkFDMUIsc0VBQXNFO2lCQUN2RTtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFPLEVBQUUsRUFBRTtnQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt3R0FsSVcsc0JBQXNCOzRGQUF0QixzQkFBc0Isd09DWG5DLDJ3S0FxRU07OzRGRDFETyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CO2dQQVNyQixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgTGF5b3V0U2VydmljZSwgTGF5b3V0VHlwZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItc2lkZWJhci1mb290ZXJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NpZGViYXItZm9vdGVyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3NpZGViYXItZm9vdGVyLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZWJhckZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIGlzU3ViTWVudUFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHVzZXJWYWx1ZTogYW55O1xyXG4gIGhvdmVyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHRvZ2dsZUJ1dHRvbkNsYXNzOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSB0b2dnbGVFbmFibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHRvZ2dsZVR5cGU6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRvZ2dsZVN0YXRlOiBzdHJpbmcgPSAnJztcclxuICBjdXJyZW50TGF5b3V0VHlwZTogTGF5b3V0VHlwZSB8IG51bGw7XHJcbiAgQElucHV0KCkgdXNlclZhbHVlZm9vdGVyOiBhbnk9Jyc7XHJcbiAgdG9nZ2xlQXR0cjogc3RyaW5nO1xyXG4gIHNob3VsZFNob3dNZW51VG9wOiBib29sZWFuID0gdHJ1ZTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBvcGVuc2hvdzogYm9vbGVhbiA9ZmFsc2U7XHJcbiAgdXNlclByb2ZpbGVEYXRhOiBhbnk7XHJcbiAgcmVjYXB0Y2hhU2l0ZUtleTphbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixwcml2YXRlIGxheW91dDogTGF5b3V0U2VydmljZSxwcml2YXRlIHBhZ2VJbmZvOlBhZ2VJbmZvU2VydmljZSwgXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLHByaXZhdGUgdHM6VG9hc3RTZXJ2aWNlLHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnJlY2FwdGNoYVNpdGVLZXkgPSBlbnYucmVjYXB0Y2hhU2l0ZUtleVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcclxuICAgICAgICAvLyBDbG9zZSB0aGUgc3VibWVudSB3aGVuZXZlciBhIG5hdmlnYXRpb24gc3RhcnRzXHJcbiAgICAgICAgdGhpcy5pc1N1Yk1lbnVBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8vIGlzU3ViTWVudUFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzQXJyb3dSZXZlcnNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzZXRBcnJvd0RpcmVjdGlvbihpc01vdXNlT3ZlcjogYm9vbGVhbikge1xyXG4gICAgLy8gY29uc29sZS5sb2coaXNNb3VzZU92ZXIpXHJcbiAgICB0aGlzLmlzQXJyb3dSZXZlcnNlZCA9IGlzTW91c2VPdmVyO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudG9nZ2xlQXR0ciA9IGBhcHAtc2lkZWJhci0ke3RoaXMudG9nZ2xlVHlwZX1gO1xyXG4gICAgY29uc3QgbGF5b3V0U3Vic2NyID0gdGhpcy5sYXlvdXQuY3VycmVudExheW91dFR5cGVTdWJqZWN0XHJcbiAgICAgIC5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgobGF5b3V0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGF5b3V0VHlwZSA9IGxheW91dDtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLnB1c2gobGF5b3V0U3Vic2NyKTtcclxuICAgIGlmICgndXNlci1pbmZvJyBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpIHx8IFwie31cIlxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVzZXJWYWx1ZSA9IHVzZXJEYXRhO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRQcm9maWxlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVNZW51KCkge1xyXG4gICAgdGhpcy5pc1N1Yk1lbnVBY3RpdmUgPSF0aGlzLmlzU3ViTWVudUFjdGl2ZTtcclxuICB9XHJcbiAgcHJvZmlsZVVybCgpIHtcclxuICAgIHRoaXMuaXNTdWJNZW51QWN0aXZlID0gZmFsc2U7XHJcbiAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddKVxyXG4gIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gIC8vICAgdGhpcy5jbG9zZU1lbnUoKTtcclxuICAvLyB9LCAxMCk7XHJcbn1cclxuY2xvc2VNZW51KCl7XHJcbiAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXHJcbn1cclxuXHJcbmxvZ291dCgpIHtcclxuICB0aGlzLmF1dGgubG9nb3V0KCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgIHRoaXMuY2xlYW5VcEFuZFJlZGlyZWN0KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFwiTG9nb3V0IGZhaWxlZCBmcm9tIHNlcnZlciwgZm9yY2luZyBjbGllbnQgbG9nb3V0LlwiKTtcclxuICAgICAgICB0aGlzLmNsZWFuVXBBbmRSZWRpcmVjdCgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkxvZ291dCBBUEkgZXJyb3I6XCIsIGVycik7XHJcbiAgICAgIC8vIFN0aWxsIGNsZWFyIGxvY2FsIGRhdGEgYW5kIHJlZGlyZWN0LCBidXQgbWF5YmUgYWxzbyBzaG93IGEgbWVzc2FnZVxyXG4gICAgICB0aGlzLmNsZWFuVXBBbmRSZWRpcmVjdCgpO1xyXG4gICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJTb21ldGhpbmcgd2VudCB3cm9uZyB3aGlsZSBsb2dnaW5nIG91dC4gUGxlYXNlIGxvZyBpbiBhZ2Fpbi5cIik7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbnByaXZhdGUgY2xlYW5VcEFuZFJlZGlyZWN0KCkge1xyXG4gIC8vIFJlbW92ZSBjYXB0Y2hhIHZhbHVlIHNvIGl0IGZvcmNlcyByZS12ZXJpZmljYXRpb25cclxuICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2FwdGNoYVRva2VuJyk7IC8vIG9yIHdoYXRldmVyIGtleSB5b3UgdXNlXHJcblxyXG4gIC8vIFJlbW92ZSBhdXRoIHRva2VuIG9yIHNlc3Npb24gZGF0YVxyXG4gIC8vIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdhdXRoVG9rZW4nKTtcclxuXHJcbiAgLy8gT3B0aW9uYWw6IHJlbW92ZSBvbmx5IHlvdXIgYXBwJ3Mga2V5cyBpbnN0ZWFkIG9mIHdpcGluZyBldmVyeXRoaW5nXHJcbiAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7IC8vIFVzZSB0aGlzIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgZXZlcnl0aGluZ1xyXG5cclxuICAvLyBJZiB5b3Ugd2FudCB0byBhbHNvIHJlc2V0IHRoZSBjYXB0Y2hhIHdpZGdldCBiZWZvcmUgcmVkaXJlY3Q6XHJcbiBpZiAoKHdpbmRvdyBhcyBhbnkpLmdyZWNhcHRjaGEpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICh3aW5kb3cgYXMgYW55KS5ncmVjYXB0Y2hhLnJlc2V0KCk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdDYXB0Y2hhIHJlc2V0IGVycm9yOicsIGVycik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKCdsb2dpbicpO1xyXG4gIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9hdXRoL2xvZ2luXCJdKTtcclxufVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIC8vIHRoaXMudW5zdWJzY3JpYmUuZm9yRWFjaCgoc2IpID0+IHNiLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gZ2V0UHJvZmlsZSgpe1xyXG4gIHRoaXMuYXV0aC5nZXRQZXJzb25hbEluZm8oKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgIG5leHQ6IChyZXM6YW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy51c2VyUHJvZmlsZURhdGEgPSByZXMuZGF0YTtcclxuICAgICAgICAvLyB0aGlzLnR3b0ZhY3RvckVuYWJsZWQgPVxyXG4gICAgICAgIC8vICAgdGhpcy51c2VyUHJvZmlsZURhdGE/LnR3b0ZhY3RvckF1dGhlbnRpY2F0aW9uPy5pc0VuYWJsZSB8fCBmYWxzZTtcclxuICAgICAgfSBcclxuICAgIH0sXHJcbiAgICBlcnJvcjogKGVycjphbnkpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgIH0sXHJcbiAgfSk7XHJcbiB9IFxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItd2l0aC1vdmVyZmxvd1wiPlxyXG4gIDxkaXYgaWQ9XCJrdF9hcHBfc2lkZWJhcl9tZW51X3Njcm9sbFwiIGNsYXNzPVwiXCIgZGF0YS1rdC1zY3JvbGw9XCJmYWxzZVwiIGRhdGEta3Qtc2Nyb2xsLWFjdGl2YXRlPVwiZmFsc2VcIlxyXG4gICAgZGF0YS1rdC1zY3JvbGwtaGVpZ2h0PVwiYXV0b1wiIGRhdGEta3Qtc2Nyb2xsLWRlcGVuZGVuY2llcz1cIiNrdF9hcHBfc2lkZWJhcl9sb2dvLCAja3RfYXBwX3NpZGViYXJfZm9vdGVyXCJcclxuICAgIGRhdGEta3Qtc2Nyb2xsLXdyYXBwZXJzPVwiI2t0X2FwcF9zaWRlYmFyX21lbnVcIiBkYXRhLWt0LXNjcm9sbC1vZmZzZXQ9XCI1cHhcIiBkYXRhLWt0LXNjcm9sbC1zYXZlLXN0YXRlPVwidHJ1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUgbWVudS1jb2x1bW4gbWVudS1yb3VuZGVkIG1lbnUtc3ViLWluZGVudGlvbiBmdy1zZW1pYm9sZCBmcy02XCIgaWQ9XCJrdF9hcHBfc2lkZWJhcl9tZW51XCJcclxuICAgICAgZGF0YS1rdC1tZW51PVwidHJ1ZVwiIGRhdGEta3QtbWVudS1leHBhbmQ9XCJmYWxzZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtIG1lbnUtYWNjb3JkaW9uIHctMTAwIHB4LTNcIiBpZD1cIiNrdF9hcHBfc2lkZWJhcl9tZW51XCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpc1N1Yk1lbnVBY3RpdmV9XCJcclxuICAgICAgICBkYXRhLWt0LW1lbnUtdHJpZ2dlcj1cImNsaWNrXCIgIChtb3VzZW92ZXIpPVwic2V0QXJyb3dEaXJlY3Rpb24odHJ1ZSlcIlxyXG4gICAgICAgIChtb3VzZWxlYXZlKT1cInNldEFycm93RGlyZWN0aW9uKGZhbHNlKVwiID5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiAqbmdJZj1cInVzZXJQcm9maWxlRGF0YT8udXNlclByb2ZpbGVcIiAoZXJyb3IpPVwidXNlclByb2ZpbGVEYXRhLnVzZXJQcm9maWxlID0gbnVsbFwiIFtzcmNdPVwidXNlclByb2ZpbGVEYXRhPy51c2VyUHJvZmlsZSA/IHVzZXJQcm9maWxlRGF0YT8udXNlclByb2ZpbGUgOicuL2Fzc2V0cy90YW5nby9JbWFnZXMvdXNlclByb2ZpbGUuc3ZnJ1wiIGFsdD1cIlByb2ZpbGUgSW1hZ2VcIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiAqbmdJZj1cIiF1c2VyUHJvZmlsZURhdGE/LnVzZXJQcm9maWxlXCIgc3JjPVwiYXNzZXRzL3RhbmdvL0ltYWdlcy91c2VyUHJvZmlsZS5zdmdcIj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZSBvdmVyZmxvdy1oaWRkZW4gbXMtMlwiIGRhdGEtbGluaz1cIi9jcmFmdGVkL2FjY291bnRcIj57eyB1c2VyVmFsdWUudXNlck5hbWUgfCB0aXRsZWNhc2V9fTxicj5cclxuICAgICAgICAgIHt7IHVzZXJWYWx1ZS5lbWFpbCB8IHRpdGxlY2FzZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWFycm93XCI+PC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1zdWIgbWVudS1zdWItYWNjb3JkaW9uIHctMTAwXCIgI2FjY29yZGlvbiBbY2xhc3Muc2hvd109XCJpc1N1Yk1lbnVBY3RpdmVcIiBbbmdDbGFzc109XCJ7J21lbnUtc3ViLXRvcCc6IGlzU3ViTWVudUFjdGl2ZX1cIlxyXG4gICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cIm1lbnUtYWN0aXZlLWJnXCIgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBweC0zIGJvcmRlci1wcm9maWxlLWZpcnN0XCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgIChjbGljayk9XCJwcm9maWxlVXJsKClcIiA+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS44NTc0IDMuODMxNjJDMTEuODU3NCA1Ljk0Nzk5IDEwLjA2NjggNy42NjMyNCA3Ljg1NzQyIDcuNjYzMjRDNS42NDgwNSA3LjY2MzI0IDMuODU3NDIgNS45NDc5OSAzLjg1NzQyIDMuODMxNjJDMy44NTc0MiAxLjcxNTI1IDUuNjQ4MDUgMCA3Ljg1NzQyIDBDMTAuMDY2OCAwIDExLjg1NzQgMS43MTUyNSAxMS44NTc0IDMuODMxNjJaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzk4QTJCM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk02LjM2Nzg2IDkuMzg0NTJDMi44NSA5LjM4NDUyIDAgMTEuOTIyNiAwIDE1LjA1NTRDMCAxNS41NzcgMC40NzUgMTYuMDAwMSAxLjA2MDcxIDE2LjAwMDFIMTQuOTM5M0MxNS41MjUgMTYuMDAwMSAxNiAxNS41NzcgMTYgMTUuMDU1NEMxNiAxMS45MjI2IDEzLjE1IDkuMzg0NTIgOS42MzIxNCA5LjM4NDUySDYuMzY3ODZaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlIG92ZXJmbG93LWhpZGRlblwiPlByb2ZpbGU8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibWVudS1pdGVtIHB4LTNcIiBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDBweDtcIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIG9wYWNpdHk9XCIwLjNcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMjIyMiAxMS41NTU2VjhDMTQuMjIyMiA0LjU2MzU2IDExLjQzNjQgMS43Nzc3OCA4IDEuNzc3NzhDNC41NjM1NiAxLjc3Nzc4IDEuNzc3NzggNC41NjM1NiAxLjc3Nzc4IDhWMTEuNTU1NkgxNC4yMjIyWk0xNiAxMS41NTU2SDBWOEMwIDMuNTgxNzIgMy41ODE3MiAwIDggMEMxMi40MTgzIDAgMTYgMy41ODE3MiAxNiA4VjExLjU1NTZaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNzc3NzggOS43Nzc1OUgyLjY2NjY3QzMuNjQ4NTEgOS43Nzc1OSA0LjQ0NDQ0IDEwLjU3MzUgNC40NDQ0NCAxMS41NTU0VjE0LjIyMkM0LjQ0NDQ0IDE1LjIwMzkgMy42NDg1MSAxNS45OTk4IDIuNjY2NjcgMTUuOTk5OEgxLjc3Nzc4QzAuNzk1OTM4IDE1Ljk5OTggMCAxNS4yMDM5IDAgMTQuMjIyVjExLjU1NTRDMCAxMC41NzM1IDAuNzk1OTM4IDkuNzc3NTkgMS43Nzc3OCA5Ljc3NzU5Wk0xMy4zMzMzIDkuNzc3NTlIMTQuMjIyMkMxNS4yMDQxIDkuNzc3NTkgMTYgMTAuNTczNSAxNiAxMS41NTU0VjE0LjIyMkMxNiAxNS4yMDM5IDE1LjIwNDEgMTUuOTk5OCAxNC4yMjIyIDE1Ljk5OThIMTMuMzMzM0MxMi4zNTE1IDE1Ljk5OTggMTEuNTU1NiAxNS4yMDM5IDExLjU1NTYgMTQuMjIyVjExLjU1NTRDMTEuNTU1NiAxMC41NzM1IDEyLjM1MTUgOS43Nzc1OSAxMy4zMzMzIDkuNzc3NTlaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzY2NzA4NVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlIG92ZXJmbG93LWhpZGRlblwiPlN1cHBvcnQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gcHgtM1wiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMHB4O1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIChjbGljayk9XCJsb2dvdXQoKVwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTUgMTNIMi4zMzMzM0MxLjk3OTcxIDEzIDEuNjQwNTcgMTIuODU5NSAxLjM5MDUyIDEyLjYwOTVDMS4xNDA0OCAxMi4zNTk0IDEgMTIuMDIwMyAxIDExLjY2NjdWMi4zMzMzM0MxIDEuOTc5NzEgMS4xNDA0OCAxLjY0MDU3IDEuMzkwNTIgMS4zOTA1MkMxLjY0MDU3IDEuMTQwNDggMS45Nzk3MSAxIDIuMzMzMzMgMUg1XCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS42NjY2NyAxMC4zMzMyTDEzIDYuOTk5ODRNMTMgNi45OTk4NEw5LjY2NjY3IDMuNjY2NU0xMyA2Ljk5OTg0SDVcIiBzdHJva2U9XCIjRDBENUREXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGUgb3ZlcmZsb3ctaGlkZGVuXCI+TG9nb3V0PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -8864,6 +8864,7 @@ class SidebarFooterComponent {
8864
8864
  pageInfo;
8865
8865
  ngZone;
8866
8866
  ts;
8867
+ gs;
8867
8868
  isSubMenuActive = false;
8868
8869
  userValue;
8869
8870
  hovered = false;
@@ -8879,13 +8880,20 @@ class SidebarFooterComponent {
8879
8880
  destroy$ = new Subject();
8880
8881
  openshow = false;
8881
8882
  userProfileData;
8882
- constructor(auth, router, layout, pageInfo, ngZone, ts) {
8883
+ recaptchaSiteKey;
8884
+ constructor(auth, router, layout, pageInfo, ngZone, ts, gs) {
8883
8885
  this.auth = auth;
8884
8886
  this.router = router;
8885
8887
  this.layout = layout;
8886
8888
  this.pageInfo = pageInfo;
8887
8889
  this.ngZone = ngZone;
8888
8890
  this.ts = ts;
8891
+ this.gs = gs;
8892
+ this.gs.environment.pipe(takeUntil(this.destroy$)).subscribe((env) => {
8893
+ if (env) {
8894
+ this.recaptchaSiteKey = env.recaptchaSiteKey;
8895
+ }
8896
+ });
8889
8897
  this.router.events.subscribe(event => {
8890
8898
  if (event instanceof NavigationStart) {
8891
8899
  // Close the submenu whenever a navigation starts
@@ -8946,7 +8954,21 @@ class SidebarFooterComponent {
8946
8954
  });
8947
8955
  }
8948
8956
  cleanUpAndRedirect() {
8949
- localStorage.clear();
8957
+ // Remove captcha value so it forces re-verification
8958
+ localStorage.removeItem('captchaToken'); // or whatever key you use
8959
+ // Remove auth token or session data
8960
+ // localStorage.removeItem('authToken');
8961
+ // Optional: remove only your app's keys instead of wiping everything
8962
+ localStorage.clear(); // Use this if you really want to remove everything
8963
+ // If you want to also reset the captcha widget before redirect:
8964
+ if (window.grecaptcha) {
8965
+ try {
8966
+ window.grecaptcha.reset();
8967
+ }
8968
+ catch (err) {
8969
+ console.warn('Captcha reset error:', err);
8970
+ }
8971
+ }
8950
8972
  this.pageInfo.setTitle('login');
8951
8973
  this.router.navigate(["/auth/login"]);
8952
8974
  }
@@ -8969,13 +8991,13 @@ class SidebarFooterComponent {
8969
8991
  },
8970
8992
  });
8971
8993
  }
8972
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarFooterComponent, deps: [{ token: AuthService }, { token: i2.Router }, { token: i1.LayoutService }, { token: i1.PageInfoService }, { token: i0.NgZone }, { token: ToastService }], target: i0.ɵɵFactoryTarget.Component });
8994
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarFooterComponent, deps: [{ token: AuthService }, { token: i2.Router }, { token: i1.LayoutService }, { token: i1.PageInfoService }, { token: i0.NgZone }, { token: ToastService }, { token: i1.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
8973
8995
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SidebarFooterComponent, selector: "lib-sidebar-footer", inputs: { toggleButtonClass: "toggleButtonClass", toggleEnabled: "toggleEnabled", toggleType: "toggleType", toggleState: "toggleState", userValuefooter: "userValuefooter" }, ngImport: i0, template: "<div class=\"container-with-overflow\">\r\n <div id=\"kt_app_sidebar_menu_scroll\" class=\"\" data-kt-scroll=\"false\" data-kt-scroll-activate=\"false\"\r\n data-kt-scroll-height=\"auto\" data-kt-scroll-dependencies=\"#kt_app_sidebar_logo, #kt_app_sidebar_footer\"\r\n data-kt-scroll-wrappers=\"#kt_app_sidebar_menu\" data-kt-scroll-offset=\"5px\" data-kt-scroll-save-state=\"true\">\r\n <div class=\"menu menu-column menu-rounded menu-sub-indention fw-semibold fs-6\" id=\"kt_app_sidebar_menu\"\r\n data-kt-menu=\"true\" data-kt-menu-expand=\"false\">\r\n <div class=\"menu-item menu-accordion w-100 px-3\" id=\"#kt_app_sidebar_menu\" [ngClass]=\"{'active': isSubMenuActive}\"\r\n data-kt-menu-trigger=\"click\" (mouseover)=\"setArrowDirection(true)\"\r\n (mouseleave)=\"setArrowDirection(false)\" >\r\n <span class=\"menu-link without-sub\">\r\n <span class=\"menu-icon\">\r\n <img class=\"img-src\" *ngIf=\"userProfileData?.userProfile\" (error)=\"userProfileData.userProfile = null\" [src]=\"userProfileData?.userProfile ? userProfileData?.userProfile :'./assets/tango/Images/userProfile.svg'\" alt=\"Profile Image\">\r\n <img class=\"img-src\" *ngIf=\"!userProfileData?.userProfile\" src=\"assets/tango/Images/userProfile.svg\">\r\n </span>\r\n <span class=\"menu-title overflow-hidden ms-2\" data-link=\"/crafted/account\">{{ userValue.userName | titlecase}}<br>\r\n {{ userValue.email | titlecase}}</span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion w-100\" #accordion [class.show]=\"isSubMenuActive\" [ngClass]=\"{'menu-sub-top': isSubMenuActive}\"\r\n routerLinkActive=\"menu-active-bg\" >\r\n <div class=\"menu-item px-3 border-profile-first\">\r\n <a class=\"menu-link without-sub\" (click)=\"profileUrl()\" >\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M11.8574 3.83162C11.8574 5.94799 10.0668 7.66324 7.85742 7.66324C5.64805 7.66324 3.85742 5.94799 3.85742 3.83162C3.85742 1.71525 5.64805 0 7.85742 0C10.0668 0 11.8574 1.71525 11.8574 3.83162Z\"\r\n fill=\"#98A2B3\" />\r\n <path\r\n d=\"M6.36786 9.38452C2.85 9.38452 0 11.9226 0 15.0554C0 15.577 0.475 16.0001 1.06071 16.0001H14.9393C15.525 16.0001 16 15.577 16 15.0554C16 11.9226 13.15 9.38452 9.63214 9.38452H6.36786Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Profile</span>\r\n </a>\r\n </div>\r\n <!-- <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path opacity=\"0.3\"\r\n d=\"M14.2222 11.5556V8C14.2222 4.56356 11.4364 1.77778 8 1.77778C4.56356 1.77778 1.77778 4.56356 1.77778 8V11.5556H14.2222ZM16 11.5556H0V8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8V11.5556Z\"\r\n fill=\"#D0D5DD\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M1.77778 9.77759H2.66667C3.64851 9.77759 4.44444 10.5735 4.44444 11.5554V14.222C4.44444 15.2039 3.64851 15.9998 2.66667 15.9998H1.77778C0.795938 15.9998 0 15.2039 0 14.222V11.5554C0 10.5735 0.795938 9.77759 1.77778 9.77759ZM13.3333 9.77759H14.2222C15.2041 9.77759 16 10.5735 16 11.5554V14.222C16 15.2039 15.2041 15.9998 14.2222 15.9998H13.3333C12.3515 15.9998 11.5556 15.2039 11.5556 14.222V11.5554C11.5556 10.5735 12.3515 9.77759 13.3333 9.77759Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Support</span>\r\n </a>\r\n </div> -->\r\n <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" (click)=\"logout()\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path\r\n d=\"M5 13H2.33333C1.97971 13 1.64057 12.8595 1.39052 12.6095C1.14048 12.3594 1 12.0203 1 11.6667V2.33333C1 1.97971 1.14048 1.64057 1.39052 1.39052C1.64057 1.14048 1.97971 1 2.33333 1H5\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M9.66667 10.3332L13 6.99984M13 6.99984L9.66667 3.6665M13 6.99984H5\" stroke=\"#D0D5DD\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Logout</span>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".menu{background:var(--Gray-700, #344054)}.menu .menu-item{position:relative;background:var(--Gray-700, #344054)}.menu .border-profile-first{border-top-left-radius:8px;border-top-right-radius:8px}.menu .menu-sub{position:absolute;top:100;bottom:calc(100% + 5px);left:0}.menu .menu-sub-top{bottom:auto;top:calc(100% + 5px)}.menu-sub{transition:max-height .3s ease-out}.menu-sub:not(.show){max-height:0;overflow:hidden}.menu-sub-indention .menu-sub{margin-left:0rem!important}.custom-scroll{max-height:300px}.img-src{width:40px;height:40px;border-radius:30px}\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.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }] });
8974
8996
  }
8975
8997
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarFooterComponent, decorators: [{
8976
8998
  type: Component,
8977
8999
  args: [{ selector: "lib-sidebar-footer", template: "<div class=\"container-with-overflow\">\r\n <div id=\"kt_app_sidebar_menu_scroll\" class=\"\" data-kt-scroll=\"false\" data-kt-scroll-activate=\"false\"\r\n data-kt-scroll-height=\"auto\" data-kt-scroll-dependencies=\"#kt_app_sidebar_logo, #kt_app_sidebar_footer\"\r\n data-kt-scroll-wrappers=\"#kt_app_sidebar_menu\" data-kt-scroll-offset=\"5px\" data-kt-scroll-save-state=\"true\">\r\n <div class=\"menu menu-column menu-rounded menu-sub-indention fw-semibold fs-6\" id=\"kt_app_sidebar_menu\"\r\n data-kt-menu=\"true\" data-kt-menu-expand=\"false\">\r\n <div class=\"menu-item menu-accordion w-100 px-3\" id=\"#kt_app_sidebar_menu\" [ngClass]=\"{'active': isSubMenuActive}\"\r\n data-kt-menu-trigger=\"click\" (mouseover)=\"setArrowDirection(true)\"\r\n (mouseleave)=\"setArrowDirection(false)\" >\r\n <span class=\"menu-link without-sub\">\r\n <span class=\"menu-icon\">\r\n <img class=\"img-src\" *ngIf=\"userProfileData?.userProfile\" (error)=\"userProfileData.userProfile = null\" [src]=\"userProfileData?.userProfile ? userProfileData?.userProfile :'./assets/tango/Images/userProfile.svg'\" alt=\"Profile Image\">\r\n <img class=\"img-src\" *ngIf=\"!userProfileData?.userProfile\" src=\"assets/tango/Images/userProfile.svg\">\r\n </span>\r\n <span class=\"menu-title overflow-hidden ms-2\" data-link=\"/crafted/account\">{{ userValue.userName | titlecase}}<br>\r\n {{ userValue.email | titlecase}}</span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion w-100\" #accordion [class.show]=\"isSubMenuActive\" [ngClass]=\"{'menu-sub-top': isSubMenuActive}\"\r\n routerLinkActive=\"menu-active-bg\" >\r\n <div class=\"menu-item px-3 border-profile-first\">\r\n <a class=\"menu-link without-sub\" (click)=\"profileUrl()\" >\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M11.8574 3.83162C11.8574 5.94799 10.0668 7.66324 7.85742 7.66324C5.64805 7.66324 3.85742 5.94799 3.85742 3.83162C3.85742 1.71525 5.64805 0 7.85742 0C10.0668 0 11.8574 1.71525 11.8574 3.83162Z\"\r\n fill=\"#98A2B3\" />\r\n <path\r\n d=\"M6.36786 9.38452C2.85 9.38452 0 11.9226 0 15.0554C0 15.577 0.475 16.0001 1.06071 16.0001H14.9393C15.525 16.0001 16 15.577 16 15.0554C16 11.9226 13.15 9.38452 9.63214 9.38452H6.36786Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Profile</span>\r\n </a>\r\n </div>\r\n <!-- <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path opacity=\"0.3\"\r\n d=\"M14.2222 11.5556V8C14.2222 4.56356 11.4364 1.77778 8 1.77778C4.56356 1.77778 1.77778 4.56356 1.77778 8V11.5556H14.2222ZM16 11.5556H0V8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8V11.5556Z\"\r\n fill=\"#D0D5DD\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M1.77778 9.77759H2.66667C3.64851 9.77759 4.44444 10.5735 4.44444 11.5554V14.222C4.44444 15.2039 3.64851 15.9998 2.66667 15.9998H1.77778C0.795938 15.9998 0 15.2039 0 14.222V11.5554C0 10.5735 0.795938 9.77759 1.77778 9.77759ZM13.3333 9.77759H14.2222C15.2041 9.77759 16 10.5735 16 11.5554V14.222C16 15.2039 15.2041 15.9998 14.2222 15.9998H13.3333C12.3515 15.9998 11.5556 15.2039 11.5556 14.222V11.5554C11.5556 10.5735 12.3515 9.77759 13.3333 9.77759Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Support</span>\r\n </a>\r\n </div> -->\r\n <div class=\"menu-item px-3\" style=\"border-radius: 0px;\">\r\n <a class=\"menu-link without-sub\" (click)=\"logout()\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\r\n <path\r\n d=\"M5 13H2.33333C1.97971 13 1.64057 12.8595 1.39052 12.6095C1.14048 12.3594 1 12.0203 1 11.6667V2.33333C1 1.97971 1.14048 1.64057 1.39052 1.39052C1.64057 1.14048 1.97971 1 2.33333 1H5\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path d=\"M9.66667 10.3332L13 6.99984M13 6.99984L9.66667 3.6665M13 6.99984H5\" stroke=\"#D0D5DD\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"menu-title overflow-hidden\">Logout</span>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".menu{background:var(--Gray-700, #344054)}.menu .menu-item{position:relative;background:var(--Gray-700, #344054)}.menu .border-profile-first{border-top-left-radius:8px;border-top-right-radius:8px}.menu .menu-sub{position:absolute;top:100;bottom:calc(100% + 5px);left:0}.menu .menu-sub-top{bottom:auto;top:calc(100% + 5px)}.menu-sub{transition:max-height .3s ease-out}.menu-sub:not(.show){max-height:0;overflow:hidden}.menu-sub-indention .menu-sub{margin-left:0rem!important}.custom-scroll{max-height:300px}.img-src{width:40px;height:40px;border-radius:30px}\n"] }]
8978
- }], ctorParameters: () => [{ type: AuthService }, { type: i2.Router }, { type: i1.LayoutService }, { type: i1.PageInfoService }, { type: i0.NgZone }, { type: ToastService }], propDecorators: { toggleButtonClass: [{
9000
+ }], ctorParameters: () => [{ type: AuthService }, { type: i2.Router }, { type: i1.LayoutService }, { type: i1.PageInfoService }, { type: i0.NgZone }, { type: ToastService }, { type: i1.GlobalStateService }], propDecorators: { toggleButtonClass: [{
8979
9001
  type: Input
8980
9002
  }], toggleEnabled: [{
8981
9003
  type: Input