tango-app-ui-shared 3.3.1-beta.1 → 3.3.1-beta.10

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 (21) hide show
  1. package/esm2022/lib/interceptors/http-auth-interceptor.mjs +9 -3
  2. package/esm2022/lib/modules/errors/error404/error404.component.mjs +10 -11
  3. package/esm2022/lib/modules/errors/errors-routing.module.mjs +6 -1
  4. package/esm2022/lib/modules/errors/errors.module.mjs +6 -3
  5. package/esm2022/lib/modules/errors/invalid-ip/invalid-ip.component.mjs +44 -0
  6. package/esm2022/lib/modules/layout/header/page-title/page-title.component.mjs +13 -8
  7. package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +4 -4
  8. package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +3 -3
  9. package/esm2022/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.mjs +43 -47
  10. package/esm2022/lib/routes/routing.mjs +6 -1
  11. package/fesm2022/{tango-app-ui-shared-intro.module-CAPPEqzI.mjs → tango-app-ui-shared-intro.module-CZdX0CkN.mjs} +3 -3
  12. package/fesm2022/{tango-app-ui-shared-intro.module-CAPPEqzI.mjs.map → tango-app-ui-shared-intro.module-CZdX0CkN.mjs.map} +1 -1
  13. package/fesm2022/{tango-app-ui-shared-notification.module-Bj0oBem1.mjs → tango-app-ui-shared-notification.module-CbWXIyly.mjs} +3 -3
  14. package/fesm2022/{tango-app-ui-shared-notification.module-Bj0oBem1.mjs.map → tango-app-ui-shared-notification.module-CbWXIyly.mjs.map} +1 -1
  15. package/fesm2022/tango-app-ui-shared.mjs +161 -105
  16. package/fesm2022/tango-app-ui-shared.mjs.map +1 -1
  17. package/lib/modules/errors/errors.module.d.ts +4 -3
  18. package/lib/modules/errors/invalid-ip/invalid-ip.component.d.ts +17 -0
  19. package/lib/modules/layout/header/page-title/page-title.component.d.ts +4 -1
  20. package/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.d.ts +2 -0
  21. package/package.json +1 -1
@@ -33,7 +33,7 @@ export class SidebarMenuComponent {
33
33
  }
34
34
  const headerfliters = JSON.parse(localStorage.getItem("header-filters") || "{}");
35
35
  const headerFilters = headerfliters;
36
- this.getClientData(headerFilters.client);
36
+ this.getClientData(this.usersList.clientId ? this.usersList.clientId : headerFilters.client);
37
37
  }
38
38
  oldDashborad() {
39
39
  let obj = { username: this.usersList?.email }; //this.usersList?.email}; // Assuming this is required for authentication/authorization
@@ -75,10 +75,10 @@ export class SidebarMenuComponent {
75
75
  });
76
76
  }
77
77
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarMenuComponent, deps: [{ token: i1.AuthService }, { token: i2.GlobalStateService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
78
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SidebarMenuComponent, selector: "lib-sidebar-menu", ngImport: i0, template: "<!--begin::Menu wrapper-->\r\n<div id=\"kt_app_sidebar_menu_scroll\" class=\"scroll-y my-5 mx-3\" data-kt-scroll=\"true\" data-kt-scroll-activate=\"true\"\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 <!--begin::Menu-->\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 <!-- Birds Eye -->\r\n <div *ngIf=\"((gs.userAccess | async)?.analytics_birdsEye_isView || !clientData?.featureConfigs?.isNewDashboard) && (gs.userAccess | async)?.userType !== 'tango' \" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/birds_eye.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Analytics</span>\r\n </a>\r\n </div>\r\n <!-- Analyse -->\r\n <div *ngIf=\"clientData?.featureConfigs?.isNewDashboard || (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/manage/traffic\">Analytics\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoTraffic_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/traffic\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/brands.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Traffic\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/zones\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Zones\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_reports_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/analyse/reports\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/reports.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n <!-- Manage -->\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || (gs.userAccess | async)?.userType === 'client'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/manage\">Manage\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_brands_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/brands\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/brands.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Brands\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_overview_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/summary\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Summary\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_stores_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/stores\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/stores.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Stores\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/tickets\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tickets.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tickets\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_reports_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/reports\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/reports.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_users_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/users/client\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/users.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Users\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_audit_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/audit\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/audit.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Audit\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView || (gs.userAccess | async)?.settings_activityLog_isView || (gs.userAccess | async)?.settings_brandDetails_isView || (gs.userAccess | async)?.settings_configuration_isView || (gs.userAccess | async)?.settings_contactDirectory_isView || (gs.userAccess | async)?.settings_documents_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/settings\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/settings.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Settings\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_users_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/users/tango\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/users.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Users\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/billing\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/billing.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Billing\r\n </span>\r\n </a>\r\n </div> \r\n </div>\r\n </div>\r\n\r\n <!-- Manage -->\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/tickets\">My Workspace\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/tickets/stores\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/stores.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Stores\r\n </span>\r\n </a>\r\n </div> -->\r\n \r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'installation' }\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tickets.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tickets\r\n </span>\r\n </a>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Menu-->\r\n</div>\r\n<!--end::Menu wrapper-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- Tango Traffic -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoTraffic_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_traffic.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Traffic</span>\r\n </a>\r\n </div> -->\r\n\r\n <!-- Tango Zone -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_zone.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Zone</span>\r\n </a>\r\n </div> -->\r\n\r\n <!-- Tango Revop -->\r\n <!-- <div class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_revop.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Tango Revop\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Home\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Tagging\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Pending Action\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Customer Profile\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Control Center -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_controlCenter_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/control_center.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Control Center\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Live & Playback\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Screen Manager\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Store Explore\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Tango SOP -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoSop_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_sop.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Tango SOP\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Dashboard\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Create & Manage\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Flag\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Incidents\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
78
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SidebarMenuComponent, selector: "lib-sidebar-menu", ngImport: i0, template: "<!--begin::Menu wrapper-->\r\n<div id=\"kt_app_sidebar_menu_scroll\" class=\"scroll-y my-5 mx-3\" data-kt-scroll=\"true\" data-kt-scroll-activate=\"true\"\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 <!--begin::Menu-->\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 <!-- Birds Eye -->\r\n <div *ngIf=\"clientData?.featureConfigs?.isNewDashboard && (gs.userAccess | async)?.userType !== 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/birds_eye.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Analytics</span>\r\n </a>\r\n </div>\r\n <!-- Analyse -->\r\n <div *ngIf=\"!clientData?.featureConfigs?.isNewDashboard || (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/manage/traffic\">ANALYZE\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_controlCenter_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/control_center.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Control Center\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Live & Playback\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Screen Manager\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Store Explore\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoTraffic_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/traffic\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/brands.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Traffic\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView && clientData?.isNewZone && ((gs.userAccess | async)?.userType !== 'tango' || (gs.userAccess | async)?.userType === 'tango')\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/zones/v1\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Zones\r\n </span>\r\n </a>\r\n </div>\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/zones/v2\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">New Zones\r\n </span>\r\n </a>\r\n </div> -->\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_reports_isView && clientData?.isNewReports && ((gs.userAccess | async)?.userType !== 'tango' || (gs.userAccess | async)?.userType === 'tango')\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/analyse/reports\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/reports.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n <!-- Manage -->\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || (gs.userAccess | async)?.userType === 'client'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/manage\">Manage\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_brands_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/brands\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/brands.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Brands\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_overview_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/summary\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Summary\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_stores_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/stores\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/stores.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Stores\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/tickets\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tickets.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tickets\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_reports_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/reports\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/reports.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_users_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/users/client\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/users.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Users\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_audit_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/audit\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/audit.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Audit\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView || (gs.userAccess | async)?.settings_activityLog_isView || (gs.userAccess | async)?.settings_brandDetails_isView || (gs.userAccess | async)?.settings_configuration_isView || (gs.userAccess | async)?.settings_contactDirectory_isView || (gs.userAccess | async)?.settings_documents_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/settings\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/settings.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Settings\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_users_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/users/tango\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/users.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Users\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/billing\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/billing.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Billing\r\n </span>\r\n </a>\r\n </div> \r\n </div>\r\n </div>\r\n\r\n <!-- Manage -->\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/tickets\">My Workspace\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/tickets/stores\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/stores.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Stores\r\n </span>\r\n </a>\r\n </div> -->\r\n \r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'installation' }\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tickets.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tickets\r\n </span>\r\n </a>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Menu-->\r\n</div>\r\n<!--end::Menu wrapper-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- Tango Traffic -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoTraffic_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_traffic.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Traffic</span>\r\n </a>\r\n </div> -->\r\n\r\n <!-- Tango Zone -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_zone.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Zone</span>\r\n </a>\r\n </div> -->\r\n\r\n <!-- Tango Revop -->\r\n <!-- <div class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_revop.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Tango Revop\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Home\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Tagging\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Pending Action\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Customer Profile\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Control Center -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_controlCenter_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/control_center.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Control Center\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Live & Playback\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Screen Manager\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Store Explore\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Tango SOP -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoSop_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_sop.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Tango SOP\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Dashboard\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Create & Manage\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Flag\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Incidents\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
79
79
  }
80
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SidebarMenuComponent, decorators: [{
81
81
  type: Component,
82
- args: [{ selector: "lib-sidebar-menu", template: "<!--begin::Menu wrapper-->\r\n<div id=\"kt_app_sidebar_menu_scroll\" class=\"scroll-y my-5 mx-3\" data-kt-scroll=\"true\" data-kt-scroll-activate=\"true\"\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 <!--begin::Menu-->\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 <!-- Birds Eye -->\r\n <div *ngIf=\"((gs.userAccess | async)?.analytics_birdsEye_isView || !clientData?.featureConfigs?.isNewDashboard) && (gs.userAccess | async)?.userType !== 'tango' \" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/birds_eye.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Analytics</span>\r\n </a>\r\n </div>\r\n <!-- Analyse -->\r\n <div *ngIf=\"clientData?.featureConfigs?.isNewDashboard || (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/manage/traffic\">Analytics\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoTraffic_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/traffic\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/brands.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Traffic\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/zones\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Zones\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_reports_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/analyse/reports\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/reports.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n <!-- Manage -->\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || (gs.userAccess | async)?.userType === 'client'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/manage\">Manage\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_brands_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/brands\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/brands.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Brands\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_overview_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/summary\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Summary\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_stores_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/stores\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/stores.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Stores\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/tickets\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tickets.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tickets\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_reports_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/reports\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/reports.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_users_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/users/client\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/users.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Users\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_audit_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/audit\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/audit.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Audit\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView || (gs.userAccess | async)?.settings_activityLog_isView || (gs.userAccess | async)?.settings_brandDetails_isView || (gs.userAccess | async)?.settings_configuration_isView || (gs.userAccess | async)?.settings_contactDirectory_isView || (gs.userAccess | async)?.settings_documents_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/settings\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/settings.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Settings\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_users_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/users/tango\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/users.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Users\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/billing\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/billing.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Billing\r\n </span>\r\n </a>\r\n </div> \r\n </div>\r\n </div>\r\n\r\n <!-- Manage -->\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/tickets\">My Workspace\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/tickets/stores\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/stores.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Stores\r\n </span>\r\n </a>\r\n </div> -->\r\n \r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'installation' }\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tickets.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tickets\r\n </span>\r\n </a>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Menu-->\r\n</div>\r\n<!--end::Menu wrapper-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- Tango Traffic -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoTraffic_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_traffic.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Traffic</span>\r\n </a>\r\n </div> -->\r\n\r\n <!-- Tango Zone -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_zone.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Zone</span>\r\n </a>\r\n </div> -->\r\n\r\n <!-- Tango Revop -->\r\n <!-- <div class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_revop.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Tango Revop\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Home\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Tagging\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Pending Action\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Customer Profile\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Control Center -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_controlCenter_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/control_center.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Control Center\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Live & Playback\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Screen Manager\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Store Explore\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Tango SOP -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoSop_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_sop.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Tango SOP\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Dashboard\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Create & Manage\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Flag\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Incidents\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->" }]
82
+ args: [{ selector: "lib-sidebar-menu", template: "<!--begin::Menu wrapper-->\r\n<div id=\"kt_app_sidebar_menu_scroll\" class=\"scroll-y my-5 mx-3\" data-kt-scroll=\"true\" data-kt-scroll-activate=\"true\"\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 <!--begin::Menu-->\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 <!-- Birds Eye -->\r\n <div *ngIf=\"clientData?.featureConfigs?.isNewDashboard && (gs.userAccess | async)?.userType !== 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/birds_eye.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Analytics</span>\r\n </a>\r\n </div>\r\n <!-- Analyse -->\r\n <div *ngIf=\"!clientData?.featureConfigs?.isNewDashboard || (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/manage/traffic\">ANALYZE\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_controlCenter_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/control_center.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Control Center\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Live & Playback\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Screen Manager\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Store Explore\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoTraffic_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/traffic\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/brands.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Traffic\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView && clientData?.isNewZone && ((gs.userAccess | async)?.userType !== 'tango' || (gs.userAccess | async)?.userType === 'tango')\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/zones/v1\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Zones\r\n </span>\r\n </a>\r\n </div>\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/zones/v2\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">New Zones\r\n </span>\r\n </a>\r\n </div> -->\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_reports_isView && clientData?.isNewReports && ((gs.userAccess | async)?.userType !== 'tango' || (gs.userAccess | async)?.userType === 'tango')\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/analyse/reports\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/reports.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n <!-- Manage -->\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango' || (gs.userAccess | async)?.userType === 'client'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/manage\">Manage\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_brands_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/brands\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/brands.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Brands\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_overview_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/summary\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/overview.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Summary\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_stores_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/stores\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/stores.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Stores\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/tickets\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tickets.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tickets\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_reports_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/reports\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/reports.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_users_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/users/client\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/users.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Users\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_audit_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/audit\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/audit.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Audit\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.settings_paymentSubscriptions_isView || (gs.userAccess | async)?.settings_activityLog_isView || (gs.userAccess | async)?.settings_brandDetails_isView || (gs.userAccess | async)?.settings_configuration_isView || (gs.userAccess | async)?.settings_contactDirectory_isView || (gs.userAccess | async)?.settings_documents_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/settings\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/settings.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Settings\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_users_isView && (gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/users/tango\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/users.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Users\r\n </span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/manage/billing\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/billing.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Billing\r\n </span>\r\n </a>\r\n </div> \r\n </div>\r\n </div>\r\n\r\n <!-- Manage -->\r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here\">\r\n <span class=\"menu-link\">\r\n <span style=\"width: 0px;\" class=\"menu-icon\">\r\n <!-- <lib-keenicon name=\"profile-circle\" class=\"fs-2\"></lib-keenicon> -->\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/tickets\">My Workspace\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\" >\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" routerLink=\"/tickets/stores\">\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/stores.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Stores\r\n </span>\r\n </a>\r\n </div> -->\r\n \r\n <div *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" [routerLink]=\"['/tickets/users']\" [queryParams]=\"{ type: 'installation' }\" >\r\n <span class=\"menu-bullet\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tickets.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tickets\r\n </span>\r\n </a>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Menu-->\r\n</div>\r\n<!--end::Menu wrapper-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- Tango Traffic -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoTraffic_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_traffic.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Traffic</span>\r\n </a>\r\n </div> -->\r\n\r\n <!-- Tango Zone -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoZone_isView\" class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_zone.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\">Tango Zone</span>\r\n </a>\r\n </div> -->\r\n\r\n <!-- Tango Revop -->\r\n <!-- <div class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_revop.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Tango Revop\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Home\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Tagging\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Pending Action\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Customer Profile\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Control Center -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_controlCenter_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/control_center.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Control Center\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Live & Playback\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Screen Manager\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Store Explore\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Tango SOP -->\r\n <!-- <div *ngIf=\"(gs.userAccess | async)?.analytics_tangoSop_isView\" class=\"menu-item menu-accordion\" data-kt-menu-trigger=\"click\" routerLinkActive=\"here show\">\r\n <span class=\"menu-link\">\r\n <span class=\"menu-icon\">\r\n <img class=\"fs-2\" src=\"./assets/tango/sidemenu-icons/tango_sop.svg\" alt=\"\">\r\n </span>\r\n <span class=\"menu-title\" data-link=\"/crafted/account\">Tango SOP\r\n </span>\r\n <span class=\"menu-arrow\"></span>\r\n </span>\r\n <div class=\"menu-sub menu-sub-accordion\" routerLinkActive=\"menu-active-bg\">\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Dashboard\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Create & Manage\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Flag\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Reports\r\n </span>\r\n </a>\r\n </div>\r\n <div class=\"menu-item\">\r\n <a class=\"menu-link without-sub\" routerLinkActive=\"active\" (click)=\"oldDashborad()\">\r\n <span class=\"menu-bullet\">\r\n <span class=\"bullet bullet-dot\"></span>\r\n </span>\r\n <span class=\"menu-title\">Incidents\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n </div> -->" }]
83
83
  }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.GlobalStateService }, { type: i3.Router }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9zaWRlYmFyL3NpZGViYXItbWVudS9zaWRlYmFyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1tZW51L3NpZGViYXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sTUFBTSxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBTy9CLE1BQU0sT0FBTyxvQkFBb0I7SUFNckI7SUFDRDtJQUErQjtJQU54QyxTQUFTLENBQU07SUFDZixxQkFBcUIsQ0FBUztJQUM5QixzQkFBc0IsQ0FBTTtJQUM1QixVQUFVLENBQU07SUFDaEIsWUFDVSxXQUF3QixFQUN6QixFQUFzQixFQUFTLE1BQWE7UUFEM0MsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBRW5ELElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsWUFB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Q0FBQTtJQUNOLENBQUM7d0dBMUVZLG9CQUFvQjs0RkFBcEIsb0JBQW9CLHdEQ1hqQyw0K2tCQTZYYzs7NEZEbFhELG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJ1xyXG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0by1qcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1zaWRlYmFyLW1lbnVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NpZGViYXItbWVudS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9zaWRlYmFyLW1lbnUuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlYmFyTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdXNlcnNMaXN0OiBhbnk7XHJcbiAgYXV0aGxvY2FsU3RvcmFnZVRva2VuOiBzdHJpbmc7XHJcbiAgb2xkRGFzaGJvYXJkUm91dGluZ1VybDogYW55O1xyXG4gIGNsaWVudERhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSByb3V0ZXI6Um91dGVyLFxyXG4gICkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuID0gYCR7ZW52LmFwcFZlcnNpb259LSR7ZW52LlVTRVJEQVRBX0tFWX1gO1xyXG4gICAgICAgIHRoaXMub2xkRGFzaGJvYXJkUm91dGluZ1VybCA9IGVudi5vbGREYXNoYm9hcmRSb3V0aW5nVXJsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoXCJ1c2VyLWluZm9cIiBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudXNlcnNMaXN0ID0gdXNlckRhdGE7XHJcbiAgICB9XHJcbiAgICBjb25zdCBoZWFkZXJmbGl0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiKTtcclxuICAgIGNvbnN0IGhlYWRlckZpbHRlcnMgPSBoZWFkZXJmbGl0ZXJzO1xyXG4gICAgdGhpcy5nZXRDbGllbnREYXRhKGhlYWRlckZpbHRlcnMuY2xpZW50KVxyXG5cclxuICB9IFxyXG4gIG9sZERhc2hib3JhZCgpIHtcclxuICAgIGxldCBvYmogPSB7IHVzZXJuYW1lOiB0aGlzLnVzZXJzTGlzdD8uZW1haWwgfTsvL3RoaXMudXNlcnNMaXN0Py5lbWFpbH07IC8vIEFzc3VtaW5nIHRoaXMgaXMgcmVxdWlyZWQgZm9yIGF1dGhlbnRpY2F0aW9uL2F1dGhvcml6YXRpb25cclxuICAgIHRoaXMuYXV0aFNlcnZpY2VcclxuICAgICAgLmdldE9sZERhc2hib2FyZFJlZGlyZWN0KG9iailcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgLy8gQXNzdW1pbmcgcmVzLmRhdGEgY29udGFpbnMgbmVjZXNzYXJ5IGF1dGhlbnRpY2F0aW9uL2F1dGhvcml6YXRpb24gaW5mb3JtYXRpb25cclxuICAgICAgICAgIHZhciBjaXBoZXJ0ZXh0ID0gZW5jb2RlVVJJQ29tcG9uZW50KFxyXG4gICAgICAgICAgICBjcnlwdG8uQUVTLmVuY3J5cHQoXHJcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVzLmRhdGEpLFxyXG4gICAgICAgICAgICAgIFwic2VjcmV0IGtleSAxMjNcIlxyXG4gICAgICAgICAgICApLnRvU3RyaW5nKClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBgP3Rva2VuPSR7Y2lwaGVydGV4dH1gO1xyXG4gICAgICAgICAgdmFyIGJhc2VVcmwgPSBgJHt0aGlzLm9sZERhc2hib2FyZFJvdXRpbmdVcmx9L2F1dGgvbG9naW5gO1xyXG4gICAgICAgICAgdmFyIHVybCA9IGAke2Jhc2VVcmx9JHtxdWVyeVBhcmFtc31gO1xyXG4gICAgXHJcbiAgICAgICAgICAvLyAvLyBPcGVuaW5nIHRoZSBVUkwgaW4gYSBuZXcgdGFiL3dpbmRvd1xyXG4gICAgICAgICAgLy8gLy8gTm90ZTogVGhpcyBtaWdodCB0cmlnZ2VyIHBvcHVwIGJsb2NrZXJzIGlmIG5vdCBpbnZva2VkIGJ5IHVzZXIgYWN0aW9uXHJcbiAgICAgICAgICB2YXIgbmV3VGFiID0gd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiKTtcclxuICAgIFxyXG4gICAgICAgICAgLy8gLy8gSGFuZGxlIHBvcHVwIGJsb2NrZWQgc2NlbmFyaW9cclxuICAgICAgICAgIGlmICghbmV3VGFiIHx8IG5ld1RhYi5jbG9zZWQgfHwgdHlwZW9mIG5ld1RhYi5jbG9zZWQgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIC8vIFJlZGlyZWN0IHRvIHRoZSBVUkwgaW4gdGhlIGN1cnJlbnQgd2luZG93IGlmIHBvcHVwIGlzIGJsb2NrZWRcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIEhhbmRsZSBlcnJvciBjYXNlXHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IFVuYWJsZSB0byByZXRyaWV2ZSByZWRpcmVjdGlvbiBkYXRhLlwiKTtcclxuICAgICAgICAgIC8vIE9wdGlvbmFsbHksIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSB0byB0aGUgdXNlclxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICBcclxuICB9XHJcbiAgZ2V0Q2xpZW50RGF0YShjbGllbnRJRDphbnkpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QnJhbmREZXRhaWxzKGNsaWVudElEKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczphbnkpID0+IHtcclxuICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCl7XHJcbiAgICAgICAgdGhpcy5jbGllbnREYXRhID1yZXM/LmRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbn1cclxufVxyXG4iLCI8IS0tYmVnaW46Ok1lbnUgd3JhcHBlci0tPlxyXG48ZGl2IGlkPVwia3RfYXBwX3NpZGViYXJfbWVudV9zY3JvbGxcIiBjbGFzcz1cInNjcm9sbC15IG15LTUgbXgtM1wiIGRhdGEta3Qtc2Nyb2xsPVwidHJ1ZVwiIGRhdGEta3Qtc2Nyb2xsLWFjdGl2YXRlPVwidHJ1ZVwiXHJcbiAgZGF0YS1rdC1zY3JvbGwtaGVpZ2h0PVwiYXV0b1wiIGRhdGEta3Qtc2Nyb2xsLWRlcGVuZGVuY2llcz1cIiNrdF9hcHBfc2lkZWJhcl9sb2dvLCAja3RfYXBwX3NpZGViYXJfZm9vdGVyXCJcclxuICBkYXRhLWt0LXNjcm9sbC13cmFwcGVycz1cIiNrdF9hcHBfc2lkZWJhcl9tZW51XCIgZGF0YS1rdC1zY3JvbGwtb2Zmc2V0PVwiNXB4XCIgZGF0YS1rdC1zY3JvbGwtc2F2ZS1zdGF0ZT1cInRydWVcIj5cclxuICA8IS0tYmVnaW46Ok1lbnUtLT5cclxuICA8ZGl2IGNsYXNzPVwibWVudSBtZW51LWNvbHVtbiBtZW51LXJvdW5kZWQgbWVudS1zdWItaW5kZW50aW9uIGZ3LXNlbWlib2xkIGZzLTZcIiBpZD1cIiNrdF9hcHBfc2lkZWJhcl9tZW51XCJcclxuICAgIGRhdGEta3QtbWVudT1cInRydWVcIiBkYXRhLWt0LW1lbnUtZXhwYW5kPVwiZmFsc2VcIj5cclxuICAgIDwhLS0gQmlyZHMgRXllIC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cIigoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uYW5hbHl0aWNzX2JpcmRzRXllX2lzVmlldyB8fCAhY2xpZW50RGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzTmV3RGFzaGJvYXJkKSAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgIT09ICd0YW5nbycgXCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgKGNsaWNrKT1cIm9sZERhc2hib3JhZCgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvYmlyZHNfZXllLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5BbmFseXRpY3M8L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PlxyXG4gPCEtLSBBbmFseXNlIC0tPlxyXG4gPGRpdiAqbmdJZj1cImNsaWVudERhdGE/LmZlYXR1cmVDb25maWdzPy5pc05ld0Rhc2hib2FyZCB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWFjY29yZGlvblwiIGRhdGEta3QtbWVudS10cmlnZ2VyPVwiY2xpY2tcIiByb3V0ZXJMaW5rQWN0aXZlPVwiaGVyZVwiPlxyXG4gIDxzcGFuICBjbGFzcz1cIm1lbnUtbGlua1wiPlxyXG4gICAgPHNwYW4gc3R5bGU9XCJ3aWR0aDogMHB4O1wiIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgIDwhLS0gPGxpYi1rZWVuaWNvbiBuYW1lPVwicHJvZmlsZS1jaXJjbGVcIiBjbGFzcz1cImZzLTJcIj48L2xpYi1rZWVuaWNvbj4gLS0+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIiBkYXRhLWxpbms9XCIvbWFuYWdlL3RyYWZmaWNcIj5BbmFseXRpY3NcclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWVudS1hcnJvd1wiPjwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbiAgPGRpdiBjbGFzcz1cIm1lbnUtc3ViIG1lbnUtc3ViLWFjY29yZGlvblwiIHJvdXRlckxpbmtBY3RpdmU9XCJtZW51LWFjdGl2ZS1iZ1wiID5cclxuICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uYW5hbHl0aWNzX3RhbmdvVHJhZmZpY19pc1ZpZXdcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmFmZmljXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy9icmFuZHMuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlRyYWZmaWNcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5hbmFseXRpY3NfdGFuZ29ab25lX2lzVmlld1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3pvbmVzXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy9vdmVydmlldy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+Wm9uZXNcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfcmVwb3J0c19pc1ZpZXcgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvYW5hbHlzZS9yZXBvcnRzXCIgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvcmVwb3J0cy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+UmVwb3J0c1xyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4gICAgICAgIDwhLS0gTWFuYWdlIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgfHwgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAnY2xpZW50J1wiIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtYWNjb3JkaW9uXCIgZGF0YS1rdC1tZW51LXRyaWdnZXI9XCJjbGlja1wiIHJvdXRlckxpbmtBY3RpdmU9XCJoZXJlXCI+XHJcbiAgICAgICAgICA8c3BhbiAgY2xhc3M9XCJtZW51LWxpbmtcIj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJ3aWR0aDogMHB4O1wiIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgPCEtLSA8bGliLWtlZW5pY29uIG5hbWU9XCJwcm9maWxlLWNpcmNsZVwiIGNsYXNzPVwiZnMtMlwiPjwvbGliLWtlZW5pY29uPiAtLT5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIiBkYXRhLWxpbms9XCIvbWFuYWdlXCI+TWFuYWdlXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWFycm93XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtc3ViIG1lbnUtc3ViLWFjY29yZGlvblwiIHJvdXRlckxpbmtBY3RpdmU9XCJtZW51LWFjdGl2ZS1iZ1wiID5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfYnJhbmRzX2lzVmlldyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL2JyYW5kc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL2JyYW5kcy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPkJyYW5kc1xyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX292ZXJ2aWV3X2lzVmlld1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc3VtbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL292ZXJ2aWV3LnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+U3VtbWFyeVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3N0b3Jlc19pc1ZpZXdcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3N0b3Jlc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3N0b3Jlcy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlN0b3Jlc1xyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNWaWV3XCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS90aWNrZXRzXCIgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3RpY2tldHMuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5UaWNrZXRzXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfcmVwb3J0c19pc1ZpZXcgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9yZXBvcnRzXCIgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3JlcG9ydHMuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5SZXBvcnRzXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdXNlcnNfaXNWaWV3XCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS91c2Vycy9jbGllbnRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy91c2Vycy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlVzZXJzXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfYXVkaXRfaXNWaWV3ICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvYXVkaXRcIiA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvYXVkaXQuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5BdWRpdFxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfcGF5bWVudFN1YnNjcmlwdGlvbnNfaXNWaWV3IHx8IChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5zZXR0aW5nc19hY3Rpdml0eUxvZ19pc1ZpZXcgfHwgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnNldHRpbmdzX2JyYW5kRGV0YWlsc19pc1ZpZXcgfHwgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnNldHRpbmdzX2NvbmZpZ3VyYXRpb25faXNWaWV3IHx8IChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5zZXR0aW5nc19jb250YWN0RGlyZWN0b3J5X2lzVmlldyB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfZG9jdW1lbnRzX2lzVmlld1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc2V0dGluZ3NcIiAgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3NldHRpbmdzLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+U2V0dGluZ3NcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdXNlcnNfaXNWaWV3ICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvdXNlcnMvdGFuZ29cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy91c2Vycy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlRhbmdvIFVzZXJzXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvYmlsbGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL2JpbGxpbmcuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5CaWxsaW5nXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgIDwhLS0gTWFuYWdlIC0tPlxyXG4gICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1hY2NvcmRpb25cIiBkYXRhLWt0LW1lbnUtdHJpZ2dlcj1cImNsaWNrXCIgcm91dGVyTGlua0FjdGl2ZT1cImhlcmVcIj5cclxuICAgICAgICAgIDxzcGFuICBjbGFzcz1cIm1lbnUtbGlua1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBzdHlsZT1cIndpZHRoOiAwcHg7XCIgY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgICAgICAgICA8IS0tIDxsaWIta2Vlbmljb24gbmFtZT1cInByb2ZpbGUtY2lyY2xlXCIgY2xhc3M9XCJmcy0yXCI+PC9saWIta2Vlbmljb24+IC0tPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiIGRhdGEtbGluaz1cIi90aWNrZXRzXCI+TXkgV29ya3NwYWNlXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWFycm93XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiAgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb25cIiByb3V0ZXJMaW5rQWN0aXZlPVwibWVudS1hY3RpdmUtYmdcIiA+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiAgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIHJvdXRlckxpbms9XCIvdGlja2V0cy9zdG9yZXNcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy9zdG9yZXMuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5TdG9yZXNcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgW3JvdXRlckxpbmtdPVwiWycvdGlja2V0cy91c2VycyddXCIgW3F1ZXJ5UGFyYW1zXT1cInsgdHlwZTogJ2luc3RhbGxhdGlvbicgfVwiID5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy90aWNrZXRzLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+VGlja2V0c1xyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8IS0tZW5kOjpNZW51LS0+XHJcbjwvZGl2PlxyXG48IS0tZW5kOjpNZW51IHdyYXBwZXItLT5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICA8IS0tIFRhbmdvIFRyYWZmaWMgLS0+XHJcbiAgICA8IS0tIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uYW5hbHl0aWNzX3RhbmdvVHJhZmZpY19pc1ZpZXdcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaWNvblwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy90YW5nb190cmFmZmljLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5UYW5nbyBUcmFmZmljPC9zcGFuPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgPCEtLSBUYW5nbyBab25lIC0tPlxyXG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LmFuYWx5dGljc190YW5nb1pvbmVfaXNWaWV3XCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgKGNsaWNrKT1cIm9sZERhc2hib3JhZCgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvdGFuZ29fem9uZS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+VGFuZ28gWm9uZTwvc3Bhbj5cclxuICAgICAgPC9hPlxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICAgIDwhLS0gVGFuZ28gUmV2b3AgLS0+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1hY2NvcmRpb25cIiBkYXRhLWt0LW1lbnUtdHJpZ2dlcj1cImNsaWNrXCIgcm91dGVyTGlua0FjdGl2ZT1cImhlcmUgc2hvd1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGlua1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3RhbmdvX3Jldm9wLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIiBkYXRhLWxpbms9XCIvY3JhZnRlZC9hY2NvdW50XCI+VGFuZ28gUmV2b3BcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWFycm93XCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb25cIiByb3V0ZXJMaW5rQWN0aXZlPVwibWVudS1hY3RpdmUtYmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+SG9tZVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlRhZ2dpbmdcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidWxsZXQgYnVsbGV0LWRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5QZW5kaW5nIEFjdGlvblxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPkN1c3RvbWVyIFByb2ZpbGVcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICA8IS0tIENvbnRyb2wgQ2VudGVyIC0tPlxyXG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LmFuYWx5dGljc19jb250cm9sQ2VudGVyX2lzVmlld1wiIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtYWNjb3JkaW9uXCIgZGF0YS1rdC1tZW51LXRyaWdnZXI9XCJjbGlja1wiIHJvdXRlckxpbmtBY3RpdmU9XCJoZXJlIHNob3dcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxpbmtcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaWNvblwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy9jb250cm9sX2NlbnRlci5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCIgZGF0YS1saW5rPVwiL2NyYWZ0ZWQvYWNjb3VudFwiPkNvbnRyb2wgQ2VudGVyXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1hcnJvd1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWVudS1zdWIgbWVudS1zdWItYWNjb3JkaW9uXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1lbnUtYWN0aXZlLWJnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgKGNsaWNrKT1cIm9sZERhc2hib3JhZCgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPkxpdmUgJiBQbGF5YmFja1xyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgKGNsaWNrKT1cIm9sZERhc2hib3JhZCgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlNjcmVlbiBNYW5hZ2VyXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+U3RvcmUgRXhwbG9yZVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICAgIDwhLS0gVGFuZ28gU09QIC0tPlxyXG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LmFuYWx5dGljc190YW5nb1NvcF9pc1ZpZXdcIiBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWFjY29yZGlvblwiIGRhdGEta3QtbWVudS10cmlnZ2VyPVwiY2xpY2tcIiByb3V0ZXJMaW5rQWN0aXZlPVwiaGVyZSBzaG93XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1saW5rXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvdGFuZ29fc29wLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIiBkYXRhLWxpbms9XCIvY3JhZnRlZC9hY2NvdW50XCI+VGFuZ28gU09QXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1hcnJvd1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWVudS1zdWIgbWVudS1zdWItYWNjb3JkaW9uXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1lbnUtYWN0aXZlLWJnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgKGNsaWNrKT1cIm9sZERhc2hib3JhZCgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPkRhc2hib2FyZFxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgKGNsaWNrKT1cIm9sZERhc2hib3JhZCgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPkNyZWF0ZSAmIE1hbmFnZVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgKGNsaWNrKT1cIm9sZERhc2hib3JhZCgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPkZsYWdcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIChjbGljayk9XCJvbGREYXNoYm9yYWQoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidWxsZXQgYnVsbGV0LWRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5SZXBvcnRzXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+SW5jaWRlbnRzXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+Il19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC9zaWRlYmFyL3NpZGViYXItbWVudS9zaWRlYmFyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1tZW51L3NpZGViYXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sTUFBTSxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBTy9CLE1BQU0sT0FBTyxvQkFBb0I7SUFNckI7SUFDRDtJQUErQjtJQU54QyxTQUFTLENBQU07SUFDZixxQkFBcUIsQ0FBUztJQUM5QixzQkFBc0IsQ0FBTTtJQUM1QixVQUFVLENBQU07SUFDaEIsWUFDVSxXQUF3QixFQUN6QixFQUFzQixFQUFTLE1BQWE7UUFEM0MsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBRW5ELElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsWUFB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SSxDQUFDO2lCQUMxQjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ04sQ0FBQzt3R0ExRVksb0JBQW9COzRGQUFwQixvQkFBb0Isd0RDWGpDLGd4cEJBNmFjOzs0RkRsYUQsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnXHJcbmltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvLWpzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLXNpZGViYXItbWVudVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2lkZWJhci1tZW51LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3NpZGViYXItbWVudS5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGViYXJNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB1c2Vyc0xpc3Q6IGFueTtcclxuICBhdXRobG9jYWxTdG9yYWdlVG9rZW46IHN0cmluZztcclxuICBvbGREYXNoYm9hcmRSb3V0aW5nVXJsOiBhbnk7XHJcbiAgY2xpZW50RGF0YTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxwcml2YXRlIHJvdXRlcjpSb3V0ZXIsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy5hdXRobG9jYWxTdG9yYWdlVG9rZW4gPSBgJHtlbnYuYXBwVmVyc2lvbn0tJHtlbnYuVVNFUkRBVEFfS0VZfWA7XHJcbiAgICAgICAgdGhpcy5vbGREYXNoYm9hcmRSb3V0aW5nVXJsID0gZW52Lm9sZERhc2hib2FyZFJvdXRpbmdVcmw7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmIChcInVzZXItaW5mb1wiIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCB1c2VyRGF0YTogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcInt9XCJcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51c2Vyc0xpc3QgPSB1c2VyRGF0YTtcclxuICAgIH1cclxuICAgIGNvbnN0IGhlYWRlcmZsaXRlcnM6IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCIpO1xyXG4gICAgY29uc3QgaGVhZGVyRmlsdGVycyA9IGhlYWRlcmZsaXRlcnM7XHJcbiAgICB0aGlzLmdldENsaWVudERhdGEodGhpcy51c2Vyc0xpc3QuY2xpZW50SWQgPyB0aGlzLnVzZXJzTGlzdC5jbGllbnRJZDogaGVhZGVyRmlsdGVycy5jbGllbnQpXHJcblxyXG4gIH0gXHJcbiAgb2xkRGFzaGJvcmFkKCkge1xyXG4gICAgbGV0IG9iaiA9IHsgdXNlcm5hbWU6IHRoaXMudXNlcnNMaXN0Py5lbWFpbCB9Oy8vdGhpcy51c2Vyc0xpc3Q/LmVtYWlsfTsgLy8gQXNzdW1pbmcgdGhpcyBpcyByZXF1aXJlZCBmb3IgYXV0aGVudGljYXRpb24vYXV0aG9yaXphdGlvblxyXG4gICAgdGhpcy5hdXRoU2VydmljZVxyXG4gICAgICAuZ2V0T2xkRGFzaGJvYXJkUmVkaXJlY3Qob2JqKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAvLyBBc3N1bWluZyByZXMuZGF0YSBjb250YWlucyBuZWNlc3NhcnkgYXV0aGVudGljYXRpb24vYXV0aG9yaXphdGlvbiBpbmZvcm1hdGlvblxyXG4gICAgICAgICAgdmFyIGNpcGhlcnRleHQgPSBlbmNvZGVVUklDb21wb25lbnQoXHJcbiAgICAgICAgICAgIGNyeXB0by5BRVMuZW5jcnlwdChcclxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShyZXMuZGF0YSksXHJcbiAgICAgICAgICAgICAgXCJzZWNyZXQga2V5IDEyM1wiXHJcbiAgICAgICAgICAgICkudG9TdHJpbmcoKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHZhciBxdWVyeVBhcmFtcyA9IGA/dG9rZW49JHtjaXBoZXJ0ZXh0fWA7XHJcbiAgICAgICAgICB2YXIgYmFzZVVybCA9IGAke3RoaXMub2xkRGFzaGJvYXJkUm91dGluZ1VybH0vYXV0aC9sb2dpbmA7XHJcbiAgICAgICAgICB2YXIgdXJsID0gYCR7YmFzZVVybH0ke3F1ZXJ5UGFyYW1zfWA7XHJcbiAgICBcclxuICAgICAgICAgIC8vIC8vIE9wZW5pbmcgdGhlIFVSTCBpbiBhIG5ldyB0YWIvd2luZG93XHJcbiAgICAgICAgICAvLyAvLyBOb3RlOiBUaGlzIG1pZ2h0IHRyaWdnZXIgcG9wdXAgYmxvY2tlcnMgaWYgbm90IGludm9rZWQgYnkgdXNlciBhY3Rpb25cclxuICAgICAgICAgIHZhciBuZXdUYWIgPSB3aW5kb3cub3Blbih1cmwsIFwiX2JsYW5rXCIpO1xyXG4gICAgXHJcbiAgICAgICAgICAvLyAvLyBIYW5kbGUgcG9wdXAgYmxvY2tlZCBzY2VuYXJpb1xyXG4gICAgICAgICAgaWYgKCFuZXdUYWIgfHwgbmV3VGFiLmNsb3NlZCB8fCB0eXBlb2YgbmV3VGFiLmNsb3NlZCA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgLy8gUmVkaXJlY3QgdG8gdGhlIFVSTCBpbiB0aGUgY3VycmVudCB3aW5kb3cgaWYgcG9wdXAgaXMgYmxvY2tlZFxyXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gSGFuZGxlIGVycm9yIGNhc2VcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvcjogVW5hYmxlIHRvIHJldHJpZXZlIHJlZGlyZWN0aW9uIGRhdGEuXCIpO1xyXG4gICAgICAgICAgLy8gT3B0aW9uYWxseSwgZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSB1c2VyXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIFxyXG4gIH1cclxuICBnZXRDbGllbnREYXRhKGNsaWVudElEOmFueSkge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5nZXRCcmFuZERldGFpbHMoY2xpZW50SUQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOmFueSkgPT4ge1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKXtcclxuICAgICAgICB0aGlzLmNsaWVudERhdGEgPXJlcz8uZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgfVxyXG4gICAgfSlcclxufVxyXG59XHJcbiIsIjwhLS1iZWdpbjo6TWVudSB3cmFwcGVyLS0+XHJcbjxkaXYgaWQ9XCJrdF9hcHBfc2lkZWJhcl9tZW51X3Njcm9sbFwiIGNsYXNzPVwic2Nyb2xsLXkgbXktNSBteC0zXCIgZGF0YS1rdC1zY3JvbGw9XCJ0cnVlXCIgZGF0YS1rdC1zY3JvbGwtYWN0aXZhdGU9XCJ0cnVlXCJcclxuICBkYXRhLWt0LXNjcm9sbC1oZWlnaHQ9XCJhdXRvXCIgZGF0YS1rdC1zY3JvbGwtZGVwZW5kZW5jaWVzPVwiI2t0X2FwcF9zaWRlYmFyX2xvZ28sICNrdF9hcHBfc2lkZWJhcl9mb290ZXJcIlxyXG4gIGRhdGEta3Qtc2Nyb2xsLXdyYXBwZXJzPVwiI2t0X2FwcF9zaWRlYmFyX21lbnVcIiBkYXRhLWt0LXNjcm9sbC1vZmZzZXQ9XCI1cHhcIiBkYXRhLWt0LXNjcm9sbC1zYXZlLXN0YXRlPVwidHJ1ZVwiPlxyXG4gIDwhLS1iZWdpbjo6TWVudS0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtZW51IG1lbnUtY29sdW1uIG1lbnUtcm91bmRlZCBtZW51LXN1Yi1pbmRlbnRpb24gZnctc2VtaWJvbGQgZnMtNlwiIGlkPVwiI2t0X2FwcF9zaWRlYmFyX21lbnVcIlxyXG4gICAgZGF0YS1rdC1tZW51PVwidHJ1ZVwiIGRhdGEta3QtbWVudS1leHBhbmQ9XCJmYWxzZVwiPlxyXG4gICAgPCEtLSBCaXJkcyBFeWUgLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY2xpZW50RGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzTmV3RGFzaGJvYXJkICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0gJ3RhbmdvJ1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIChjbGljayk9XCJvbGREYXNoYm9yYWQoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL2JpcmRzX2V5ZS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+QW5hbHl0aWNzPC9zcGFuPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuIDwhLS0gQW5hbHlzZSAtLT5cclxuIDxkaXYgKm5nSWY9XCIhY2xpZW50RGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzTmV3RGFzaGJvYXJkIHx8IChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtYWNjb3JkaW9uXCIgZGF0YS1rdC1tZW51LXRyaWdnZXI9XCJjbGlja1wiIHJvdXRlckxpbmtBY3RpdmU9XCJoZXJlXCI+XHJcbiAgPHNwYW4gIGNsYXNzPVwibWVudS1saW5rXCI+XHJcbiAgICA8c3BhbiBzdHlsZT1cIndpZHRoOiAwcHg7XCIgY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgPCEtLSA8bGliLWtlZW5pY29uIG5hbWU9XCJwcm9maWxlLWNpcmNsZVwiIGNsYXNzPVwiZnMtMlwiPjwvbGliLWtlZW5pY29uPiAtLT5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiIGRhdGEtbGluaz1cIi9tYW5hZ2UvdHJhZmZpY1wiPkFOQUxZWkVcclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWVudS1hcnJvd1wiPjwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbiAgPCEtLSA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LmFuYWx5dGljc19jb250cm9sQ2VudGVyX2lzVmlld1wiIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtYWNjb3JkaW9uXCIgZGF0YS1rdC1tZW51LXRyaWdnZXI9XCJjbGlja1wiIHJvdXRlckxpbmtBY3RpdmU9XCJoZXJlIHNob3dcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWVudS1saW5rXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy9jb250cm9sX2NlbnRlci5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIiBkYXRhLWxpbms9XCIvY3JhZnRlZC9hY2NvdW50XCI+Q29udHJvbCBDZW50ZXJcclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYXJyb3dcIj48L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1zdWIgbWVudS1zdWItYWNjb3JkaW9uXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1lbnUtYWN0aXZlLWJnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidWxsZXQgYnVsbGV0LWRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPkxpdmUgJiBQbGF5YmFja1xyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidWxsZXQgYnVsbGV0LWRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlNjcmVlbiBNYW5hZ2VyXHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIChjbGljayk9XCJvbGREYXNoYm9yYWQoKVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+U3RvcmUgRXhwbG9yZVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj4gIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb25cIiByb3V0ZXJMaW5rQWN0aXZlPVwibWVudS1hY3RpdmUtYmdcIiA+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LmFuYWx5dGljc190YW5nb1RyYWZmaWNfaXNWaWV3XCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvdHJhZmZpY1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvYnJhbmRzLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5UcmFmZmljXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uYW5hbHl0aWNzX3RhbmdvWm9uZV9pc1ZpZXcgJiYgY2xpZW50RGF0YT8uaXNOZXdab25lICYmICgoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgIT09ICd0YW5nbycgfHwgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nKVwiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3pvbmVzL3YxXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy9vdmVydmlldy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+Wm9uZXNcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LmFuYWx5dGljc190YW5nb1pvbmVfaXNWaWV3XCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2Uvem9uZXMvdjJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL292ZXJ2aWV3LnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5OZXcgWm9uZXNcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PiAtLT5cclxuICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3JlcG9ydHNfaXNWaWV3ICYmIGNsaWVudERhdGE/LmlzTmV3UmVwb3J0cyAmJiAoKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlICE9PSAndGFuZ28nIHx8IChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJylcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9hbmFseXNlL3JlcG9ydHNcIiA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy9yZXBvcnRzLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5SZXBvcnRzXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiAgICAgICAgPCEtLSBNYW5hZ2UgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICdjbGllbnQnXCIgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1hY2NvcmRpb25cIiBkYXRhLWt0LW1lbnUtdHJpZ2dlcj1cImNsaWNrXCIgcm91dGVyTGlua0FjdGl2ZT1cImhlcmVcIj5cclxuICAgICAgICAgIDxzcGFuICBjbGFzcz1cIm1lbnUtbGlua1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBzdHlsZT1cIndpZHRoOiAwcHg7XCIgY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgICAgICAgICA8IS0tIDxsaWIta2Vlbmljb24gbmFtZT1cInByb2ZpbGUtY2lyY2xlXCIgY2xhc3M9XCJmcy0yXCI+PC9saWIta2Vlbmljb24+IC0tPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiIGRhdGEtbGluaz1cIi9tYW5hZ2VcIj5NYW5hZ2VcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYXJyb3dcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1zdWIgbWVudS1zdWItYWNjb3JkaW9uXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1lbnUtYWN0aXZlLWJnXCIgPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV9icmFuZHNfaXNWaWV3ICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvYnJhbmRzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvYnJhbmRzLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+QnJhbmRzXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2Vfb3ZlcnZpZXdfaXNWaWV3XCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9zdW1tYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvb3ZlcnZpZXcuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5TdW1tYXJ5XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2Vfc3RvcmVzX2lzVmlld1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi9tYW5hZ2Uvc3RvcmVzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvc3RvcmVzLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+U3RvcmVzXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc1ZpZXdcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3RpY2tldHNcIiA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvdGlja2V0cy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlRpY2tldHNcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV9yZXBvcnRzX2lzVmlldyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3JlcG9ydHNcIiA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvcmVwb3J0cy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlJlcG9ydHNcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV91c2Vyc19pc1ZpZXdcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3VzZXJzL2NsaWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3VzZXJzLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+VXNlcnNcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV9hdWRpdF9pc1ZpZXcgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9hdWRpdFwiID5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy9hdWRpdC5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPkF1ZGl0XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5zZXR0aW5nc19wYXltZW50U3Vic2NyaXB0aW9uc19pc1ZpZXcgfHwgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnNldHRpbmdzX2FjdGl2aXR5TG9nX2lzVmlldyB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfYnJhbmREZXRhaWxzX2lzVmlldyB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfY29uZmlndXJhdGlvbl9pc1ZpZXcgfHwgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnNldHRpbmdzX2NvbnRhY3REaXJlY3RvcnlfaXNWaWV3IHx8IChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5zZXR0aW5nc19kb2N1bWVudHNfaXNWaWV3XCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9zZXR0aW5nc1wiICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvc2V0dGluZ3Muc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5TZXR0aW5nc1xyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV91c2Vyc19pc1ZpZXcgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS91c2Vycy90YW5nb1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3VzZXJzLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+VGFuZ28gVXNlcnNcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9iaWxsaW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvYmlsbGluZy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPkJpbGxpbmdcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgPCEtLSBNYW5hZ2UgLS0+XHJcbiAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIiBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWFjY29yZGlvblwiIGRhdGEta3QtbWVudS10cmlnZ2VyPVwiY2xpY2tcIiByb3V0ZXJMaW5rQWN0aXZlPVwiaGVyZVwiPlxyXG4gICAgICAgICAgPHNwYW4gIGNsYXNzPVwibWVudS1saW5rXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwid2lkdGg6IDBweDtcIiBjbGFzcz1cIm1lbnUtaWNvblwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGxpYi1rZWVuaWNvbiBuYW1lPVwicHJvZmlsZS1jaXJjbGVcIiBjbGFzcz1cImZzLTJcIj48L2xpYi1rZWVuaWNvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCIgZGF0YS1saW5rPVwiL3RpY2tldHNcIj5NeSBXb3Jrc3BhY2VcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYXJyb3dcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8ZGl2ICBjbGFzcz1cIm1lbnUtc3ViIG1lbnUtc3ViLWFjY29yZGlvblwiIHJvdXRlckxpbmtBY3RpdmU9XCJtZW51LWFjdGl2ZS1iZ1wiID5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2ICAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgcm91dGVyTGluaz1cIi90aWNrZXRzL3N0b3Jlc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3N0b3Jlcy5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlN0b3Jlc1xyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiBbcm91dGVyTGlua109XCJbJy90aWNrZXRzL3VzZXJzJ11cIiBbcXVlcnlQYXJhbXNdPVwieyB0eXBlOiAnaW5zdGFsbGF0aW9uJyB9XCIgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3RpY2tldHMuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5UaWNrZXRzXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS1lbmQ6Ok1lbnUtLT5cclxuPC9kaXY+XHJcbjwhLS1lbmQ6Ok1lbnUgd3JhcHBlci0tPlxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIDwhLS0gVGFuZ28gVHJhZmZpYyAtLT5cclxuICAgIDwhLS0gPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5hbmFseXRpY3NfdGFuZ29UcmFmZmljX2lzVmlld1wiIGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIChjbGljayk9XCJvbGREYXNoYm9yYWQoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL3RhbmdvX3RyYWZmaWMuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlRhbmdvIFRyYWZmaWM8L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICA8IS0tIFRhbmdvIFpvbmUgLS0+XHJcbiAgICA8IS0tIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uYW5hbHl0aWNzX3RhbmdvWm9uZV9pc1ZpZXdcIiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaWNvblwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy90YW5nb196b25lLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5UYW5nbyBab25lPC9zcGFuPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgPCEtLSBUYW5nbyBSZXZvcCAtLT5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWFjY29yZGlvblwiIGRhdGEta3QtbWVudS10cmlnZ2VyPVwiY2xpY2tcIiByb3V0ZXJMaW5rQWN0aXZlPVwiaGVyZSBzaG93XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1saW5rXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJmcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vc2lkZW1lbnUtaWNvbnMvdGFuZ29fcmV2b3Auc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiIGRhdGEtbGluaz1cIi9jcmFmdGVkL2FjY291bnRcIj5UYW5nbyBSZXZvcFxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYXJyb3dcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtc3ViIG1lbnUtc3ViLWFjY29yZGlvblwiIHJvdXRlckxpbmtBY3RpdmU9XCJtZW51LWFjdGl2ZS1iZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidWxsZXQgYnVsbGV0LWRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5Ib21lXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+VGFnZ2luZ1xyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlBlbmRpbmcgQWN0aW9uXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+Q3VzdG9tZXIgUHJvZmlsZVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICAgIDwhLS0gQ29udHJvbCBDZW50ZXIgLS0+XHJcbiAgICA8IS0tIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uYW5hbHl0aWNzX2NvbnRyb2xDZW50ZXJfaXNWaWV3XCIgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1hY2NvcmRpb25cIiBkYXRhLWt0LW1lbnUtdHJpZ2dlcj1cImNsaWNrXCIgcm91dGVyTGlua0FjdGl2ZT1cImhlcmUgc2hvd1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGlua1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICA8aW1nIGNsYXNzPVwiZnMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL3NpZGVtZW51LWljb25zL2NvbnRyb2xfY2VudGVyLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIiBkYXRhLWxpbms9XCIvY3JhZnRlZC9hY2NvdW50XCI+Q29udHJvbCBDZW50ZXJcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWFycm93XCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb25cIiByb3V0ZXJMaW5rQWN0aXZlPVwibWVudS1hY3RpdmUtYmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+TGl2ZSAmIFBsYXliYWNrXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+U2NyZWVuIE1hbmFnZXJcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIChjbGljayk9XCJvbGREYXNoYm9yYWQoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidWxsZXQgYnVsbGV0LWRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5TdG9yZSBFeHBsb3JlXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgPCEtLSBUYW5nbyBTT1AgLS0+XHJcbiAgICA8IS0tIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uYW5hbHl0aWNzX3RhbmdvU29wX2lzVmlld1wiIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtYWNjb3JkaW9uXCIgZGF0YS1rdC1tZW51LXRyaWdnZXI9XCJjbGlja1wiIHJvdXRlckxpbmtBY3RpdmU9XCJoZXJlIHNob3dcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxpbmtcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaWNvblwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImZzLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9zaWRlbWVudS1pY29ucy90YW5nb19zb3Auc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiIGRhdGEtbGluaz1cIi9jcmFmdGVkL2FjY291bnRcIj5UYW5nbyBTT1BcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWFycm93XCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXN1YiBtZW51LXN1Yi1hY2NvcmRpb25cIiByb3V0ZXJMaW5rQWN0aXZlPVwibWVudS1hY3RpdmUtYmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+RGFzaGJvYXJkXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+Q3JlYXRlICYgTWFuYWdlXHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm1lbnUtbGluayB3aXRob3V0LXN1YlwiIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIiAoY2xpY2spPVwib2xkRGFzaGJvcmFkKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWJ1bGxldFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnVsbGV0IGJ1bGxldC1kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXRpdGxlXCI+RmxhZ1xyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJtZW51LWxpbmsgd2l0aG91dC1zdWJcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgKGNsaWNrKT1cIm9sZERhc2hib3JhZCgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1idWxsZXRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1bGxldCBidWxsZXQtZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS10aXRsZVwiPlJlcG9ydHNcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwibWVudS1saW5rIHdpdGhvdXQtc3ViXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiIChjbGljayk9XCJvbGREYXNoYm9yYWQoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtYnVsbGV0XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidWxsZXQgYnVsbGV0LWRvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtdGl0bGVcIj5JbmNpZGVudHNcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT4iXX0=
@@ -139,7 +139,7 @@ export class ToolbarComponent {
139
139
  || URL == "/manage/brands" || URL == "/manage/users/tango" || (url[1] === "tickets" && url[2] === "audit")) {
140
140
  this.setUIProperties(false, false, false, false, false, false);
141
141
  }
142
- else if (URL == "/manage/traffic" || url[2] === "traffic" || URL == "/manage/zones" || URL == "/manage/analyse/reports") {
142
+ else if (url[2] === "traffic" || url[2] === "zones" || URL == "/manage/analyse/reports") {
143
143
  this.setUIProperties(false, false, false, false, false, true);
144
144
  }
145
145
  else {
@@ -165,7 +165,7 @@ export class ToolbarComponent {
165
165
  || URL == "/notifications/alerts" || URL == "/manage/users/tango") {
166
166
  this.setUIProperties(false, false, false, false, false, false);
167
167
  }
168
- else if (URL == "/manage/traffic" || url[2] === "traffic") {
168
+ else if (url[2] === "traffic" || url[2] === "zones" || URL == "/manage/analyse/reports") {
169
169
  this.setUIProperties(false, false, false, false, false, true);
170
170
  }
171
171
  else {
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
195
195
  }], appToolbarLayout: [{
196
196
  type: Input
197
197
  }] } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7QUFlcEUsTUFBTSxPQUFPLGdCQUFnQjtJQTJDakI7SUFDQTtJQUNBO0lBQ0Q7SUE3Q0QsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFekMsZUFBZTtJQUNOLGlCQUFpQixDQUFvQjtJQUNyQyxnQkFBZ0IsQ0FLZDtJQUVYLFVBQVU7SUFDVixpQkFBaUIsQ0FBVTtJQUMzQixtQkFBbUIsQ0FBb0I7SUFDdkMsMkJBQTJCLEdBQVcsRUFBRSxDQUFDO0lBQ3pDLHNCQUFzQixDQUFVO0lBQ2hDLHFCQUFxQixDQUFVO0lBQy9CLG1CQUFtQixDQUFVO0lBRTdCLGFBQWE7SUFDYixxQkFBcUIsR0FBVyxFQUFFLENBQUM7SUFDbkMsb0JBQW9CLEdBQVcsRUFBRSxDQUFDO0lBQ2xDLHNCQUFzQixDQUFVO0lBQ2hDLHVCQUF1QixDQUFVO0lBQ2pDLFVBQVUsQ0FBTTtJQUNoQixZQUFZLENBQVU7SUFDdEIsV0FBVyxDQUFVO0lBQ3JCLFVBQVUsQ0FBVTtJQUNwQixzQkFBc0IsQ0FBVTtJQUNoQyxXQUFXLENBQVU7SUFDckIsV0FBVyxDQUFNO0lBQ2pCLE9BQU8sQ0FBTTtJQUNiLEtBQUssQ0FBTTtJQUNYLGVBQWUsR0FBUTtRQUNyQixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8s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aUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO3dHQXZPWSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw2SUNmN0IsbS9FQTBDQTs7NEZEM0JhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhO3FLQVFkLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgd2luZG93IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtcclxuICBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgTGF5b3V0U2VydmljZSxcclxuICBQYWdlSW5mb1NlcnZpY2UsXHJcbn0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgSUxheW91dCwgTGF5b3V0VHlwZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItdG9vbGJhclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdG9vbGJhci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi90b29sYmFyLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICAvLyBQdWJsaWMgcHJvcHNcclxuICBASW5wdXQoKSBjdXJyZW50TGF5b3V0VHlwZTogTGF5b3V0VHlwZSB8IG51bGw7XHJcbiAgQElucHV0KCkgYXBwVG9vbGJhckxheW91dDpcclxuICAgIHwgXCJjbGFzc2ljXCJcclxuICAgIHwgXCJhY2NvdW50aW5nXCJcclxuICAgIHwgXCJleHRlbmRlZFwiXHJcbiAgICB8IFwicmVwb3J0c1wiXHJcbiAgICB8IFwic2Fhc1wiO1xyXG5cclxuICAvLyB0b29sYmFyXHJcbiAgYXBwVG9vbGJhckRpc3BsYXk6IGJvb2xlYW47XHJcbiAgYXBwVG9vbGJhckNvbnRhaW5lcjogXCJmaXhlZFwiIHwgXCJmbHVpZFwiO1xyXG4gIGFwcFRvb2xiYXJDb250YWluZXJDU1NDbGFzczogc3RyaW5nID0gXCJcIjtcclxuICBhcHBUb29sYmFyRml4ZWREZXNrdG9wOiBib29sZWFuO1xyXG4gIGFwcFRvb2xiYXJGaXhlZE1vYmlsZTogYm9vbGVhbjtcclxuICBhcHBQYWdlVGl0bGVEaXNwbGF5OiBib29sZWFuO1xyXG5cclxuICAvLyBwYWdlIHRpdGxlXHJcbiAgYXBwUGFnZVRpdGxlRGlyZWN0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGFwcFBhZ2VUaXRsZUNTU0NsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGFwcFBhZ2VUaXRsZUJyZWFkY3J1bWI6IGJvb2xlYW47XHJcbiAgYXBwUGFnZVRpdGxlRGVzY3JpcHRpb246IGJvb2xlYW47XHJcbiAgcXVlclBhcmFtczogYW55O1xyXG4gIHNpbmdsZVNlbGVjdDogYm9vbGVhbjtcclxuICBtdWx0aVNlbGVjdDogYm9vbGVhbjtcclxuICBkYXRlcGlja2VyOiBib29sZWFuO1xyXG4gIHNpbmdsZVNlbGVjdGRhdGVwaWNrZXI6IGJvb2xlYW47XHJcbiAgc2luZ2xlU3RvcmU6IGJvb2xlYW47XHJcbiAgaGVhZGVydmFsdWU6IGFueTtcclxuICBzdG9yZUlkOiBhbnk7XHJcbiAgdXNlcnM6IGFueTtcclxuICBzZWxlY3RlZEZpbHRlcnM6IGFueSA9IHtcclxuICAgIGNsaWVudDogbnVsbCxcclxuICAgIGNsaWVudHM6IFtdLFxyXG4gICAgc3RvcmU6IG51bGwsXHJcbiAgICBzdG9yZXM6IFtdLFxyXG4gICAgZGF0ZTogbnVsbCxcclxuICB9O1xyXG4gIHRyYWZmaWNkYXRlcGlja2VyOiBib29sZWFuO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoXCJ1c2VyLWluZm9cIiBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudXNlcnMgPSB1c2VyRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNob3dQYWdlVGl0bGUoKTtcclxuICAgIGNvbnN0IHN1YnNjciA9IHRoaXMubGF5b3V0LmxheW91dENvbmZpZ1N1YmplY3RcclxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZzogSUxheW91dCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXBkYXRlUHJvcHMoY29uZmlnKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLnB1c2goc3Vic2NyKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVByb3BzKGNvbmZpZzogSUxheW91dCkge1xyXG4gICAgdGhpcy5hcHBUb29sYmFyRGlzcGxheSA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnRvb2xiYXIuZGlzcGxheVwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICghdGhpcy5hcHBUb29sYmFyRGlzcGxheSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBQYWdlVGl0bGVEaXNwbGF5ID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAucGFnZVRpdGxlLmRpc3BsYXlcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICB0aGlzLmFwcFRvb2xiYXJDb250YWluZXIgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmNvbnRhaW5lclwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgXCJmbHVpZFwiIHwgXCJmaXhlZFwiO1xyXG4gICAgdGhpcy5hcHBUb29sYmFyQ29udGFpbmVyQ1NTQ2xhc3MgPVxyXG4gICAgICB0aGlzLmFwcFRvb2xiYXJDb250YWluZXIgPT09IFwiZml4ZWRcIlxyXG4gICAgICAgID8gXCJjb250YWluZXIteHhsXCJcclxuICAgICAgICA6IFwiY29udGFpbmVyLWZsdWlkXCI7XHJcbiAgICBjb25zdCBjb250YWluZXJDbGFzcyA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnRvb2xiYXIuY29udGFpbmVyQ2xhc3NcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIHN0cmluZztcclxuICAgIGlmIChjb250YWluZXJDbGFzcykge1xyXG4gICAgICB0aGlzLmFwcFRvb2xiYXJDb250YWluZXJDU1NDbGFzcyArPSBgICR7Y29udGFpbmVyQ2xhc3N9YDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcFRvb2xiYXJGaXhlZERlc2t0b3AgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmZpeGVkLmRlc2t0b3BcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBUb29sYmFyRml4ZWREZXNrdG9wKSB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKFwiZGF0YS1rdC1hcHAtdG9vbGJhci1maXhlZFwiLCBcInRydWVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBUb29sYmFyRml4ZWRNb2JpbGUgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmZpeGVkLm1vYmlsZVwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFwcFRvb2xiYXJGaXhlZE1vYmlsZSkge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcImRhdGEta3QtYXBwLXRvb2xiYXItZml4ZWQtbW9iaWxlXCIsIFwidHJ1ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0b29sYmFyXHJcbiAgICB0aGlzLmFwcFBhZ2VUaXRsZURpcmVjdGlvbiA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnBhZ2VUaXRsZS5kaXJlY3Rpb25cIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIHN0cmluZztcclxuICAgIHRoaXMuYXBwUGFnZVRpdGxlQ1NTQ2xhc3MgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC5wYWdlVGl0bGUuY2xhc3NcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIHN0cmluZztcclxuICAgIHRoaXMuYXBwUGFnZVRpdGxlQnJlYWRjcnVtYiA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnBhZ2VUaXRsZS5icmVhZENydW1iXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgdGhpcy5hcHBQYWdlVGl0bGVEZXNjcmlwdGlvbiA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnBhZ2VUaXRsZS5kZXNjcmlwdGlvblwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcImRhdGEta3QtYXBwLXRvb2xiYXItZW5hYmxlZFwiLCBcInRydWVcIik7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuZm9yRWFjaCgoc2IpID0+IHNiLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1BhZ2VUaXRsZSgpIHtcclxuICAgIGxldCBVUkw6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBpZiAoXCJoZWFkZXItZmlsdGVyc1wiIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBkYXRhOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICk7XHJcblxyXG4gICAgIGNvbnN0IHN0b3JlID0gIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcCBhcyBhbnkgICAgICBcclxuICAgICAgdGhpcy5zdG9yZUlkID0gIGRhdGE/LnN0b3JlO1xyXG5cclxuICAgICAgaWYoc3RvcmU/LnBhcmFtcz8uWydzdG9yZUlkJ10pe1xyXG4gICAgICAgIHRoaXMuc3RvcmVJZCA9IHN0b3JlLnBhcmFtc1snc3RvcmVJZCddXHJcbiAgICAgICAgZGF0YS5zdG9yZSA9IHN0b3JlLnBhcmFtc1snc3RvcmVJZCddXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgY29uc3QgdXBkYXRlZFVybCA9IGN1cnJlbnRVcmwucmVwbGFjZShcclxuICAgICAgICAvXFwvbWFuYWdlXFwvc3RvcmVzXFwvXFxkKy1cXGQrXFwvLyxcclxuICAgICAgICBgL21hbmFnZS9zdG9yZXMvYFxyXG4gICAgICApO1xyXG4gICAgICBVUkwgPSB1cGRhdGVkVXJsO1xyXG4gICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbVVJMXSlcclxuICAgIH1cclxuICAgXHJcbiAgY29uc3QgdXJsID0gVVJMLnNwbGl0KFwiL1wiKTtcclxuICBpZiAodGhpcy51c2Vycz8udXNlclR5cGUgPT09IFwidGFuZ29cIikge1xyXG4gICAgaWYgKHVybFsyXSA9PSBcInNldHRpbmdzXCIgfHwgVVJMID09IFwiL21hbmFnZS91c2Vycy9jbGllbnRcIiAgfHxcclxuICAgIFVSTCA9PSBcIi9tYW5hZ2Uvc3RvcmVzXCIgfHwgIFVSTCA9PT0gXCIvbWFuYWdlL3N0b3Jlcz90eXBlPXN0b3Jlc1wiIHx8IFVSTCA9PT0gXCIvbWFuYWdlL3N0b3Jlcz90eXBlPWdyb3Vwc1wiIHx8XHJcbiAgICBVUkwgPT0gXCIvbWFuYWdlL3N0b3Jlcy9hZGRpdGlvbi1tZXRob2RcIiB8fFxyXG4gICAgVVJMID09IFwiL21hbmFnZS9zdG9yZXMvYWRkLXNpbmdsZS1zdG9yZVwiKSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlKTtcclxuICAgIH0gIGVsc2UgaWYgKHVybFszXSA9PSBcImVkZ2UtYXBwXCIpIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8ICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhLXRpY2tldD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfSZ0eXBlPWluZnJhYCB8fFxyXG4gICAgICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL3NldHRpbmdzP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fCBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhLXRpY2tldD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfSZ0eXBlPWRhdGFNaXNtYXRjaGAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy96b25lcz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9jYW1lcmFzP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fFxyXG4gICAgICAvLyBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhc3RydWN0dXJlP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fFxyXG4gICAgICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL21hdD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWBcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSxmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKFVSTCA9PSBcIi9wcm9maWxlXCIgfHwgdXJsWzJdPT09XCJkYXRhLW1pc21hdGNoXCIgfHwgdXJsWzJdPT09XCJlbXBsb3llZXRyYWluaW5nXCIgfHwgVVJMID09IFwiL25vdGlmaWNhdGlvbnMvYWxlcnRzXCIgXHJcbiAgICAgICB8fCBVUkwgPT0gXCIvbWFuYWdlL2JyYW5kc1wiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvdGFuZ29cIiB8fCAodXJsWzFdID09PVwidGlja2V0c1wiICYmIHVybFsyXSA9PT0gXCJhdWRpdFwiKSkge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmKCBVUkwgPT0gXCIvbWFuYWdlL3RyYWZmaWNcIiB8fCB1cmxbMl0gPT09IFwidHJhZmZpY1wiIHx8IFVSTCA9PSBcIi9tYW5hZ2Uvem9uZXNcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL2FuYWx5c2UvcmVwb3J0c1wiKXtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsdHJ1ZSk7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLHRydWUsZmFsc2UpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodXJsWzNdID09IFwiZWRnZS1hcHBcIikge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSxmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2luZnJhLXRpY2tldD9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHwgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvaW5mcmEtdGlja2V0P3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9JnR5cGU9aW5mcmFgIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvc2V0dGluZ3M/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8IFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvaW5mcmEtdGlja2V0P3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9JnR5cGU9ZGF0YU1pc21hdGNoYCB8fFxyXG4gICAgICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL3pvbmVzP3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fFxyXG4gICAgICBVUkwgPT0gYC9tYW5hZ2Uvc3RvcmVzL2NhbWVyYXM/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8XHJcbiAgICAgIC8vIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvaW5mcmFzdHJ1Y3R1cmU/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvbWF0P3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoVVJMID09IFwiL3Byb2ZpbGVcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL3VzZXJzL2NsaWVudFwiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvdGFuZ29cIiB8fFxyXG4gICAgVVJMID09IFwiL21hbmFnZS9zdG9yZXNcIiB8fCAgVVJMID09PSBcIi9tYW5hZ2Uvc3RvcmVzP3R5cGU9c3RvcmVzXCIgfHwgVVJMID09PSBcIi9tYW5hZ2Uvc3RvcmVzP3R5cGU9Z3JvdXBzXCIgfHwgdXJsWzJdID09IFwic2V0dGluZ3NcIiB8fCBcclxuICAgIFVSTCA9PSBcIi9tYW5hZ2Uvc3RvcmVzL2FkZGl0aW9uLW1ldGhvZFwiIHx8XHJcbiAgICBVUkwgPT0gXCIvbWFuYWdlL3N0b3Jlcy9hZGQtc2luZ2xlLXN0b3JlXCIgfHwgdXJsWzJdPT09XCJkYXRhLW1pc21hdGNoXCIgfHwgdXJsWzJdPT09XCJlbXBsb3llZXRyYWluaW5nXCIgXHJcbiAgICB8fCBVUkwgPT0gXCIvbm90aWZpY2F0aW9ucy9hbGVydHNcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL3VzZXJzL3RhbmdvXCIpIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiggVVJMID09IFwiL21hbmFnZS90cmFmZmljXCIgfHwgdXJsWzJdID09PSBcInRyYWZmaWNcIil7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb25zdCB2aWV3c1dpdGhQYWdlVGl0bGVzID0gW1wiY2xhc3NpY1wiLCBcInJlcG9ydHNcIiwgXCJzYWFzXCJdO1xyXG4gIHJldHVybiAoXHJcbiAgICB0aGlzLmFwcFBhZ2VUaXRsZURpc3BsYXkgJiZcclxuICAgIHZpZXdzV2l0aFBhZ2VUaXRsZXMuc29tZSgodCkgPT4gdCA9PT0gdGhpcy5hcHBUb29sYmFyTGF5b3V0KVxyXG4gICk7XHJcbn1cclxuXHJcbnNldFVJUHJvcGVydGllcyhcclxuICBzaW5nbGVTZWxlY3Q6IGJvb2xlYW4sXHJcbiAgbXVsdGlTZWxlY3Q6IGJvb2xlYW4sXHJcbiAgZGF0ZXBpY2tlcjogYm9vbGVhbixcclxuICBzaW5nbGVTdG9yZTogYm9vbGVhbixcclxuICBzaW5nbGVTZWxlY3RkYXRlcGlja2VyOiBib29sZWFuLFxyXG4gIHRyYWZmaWNkYXRlcGlja2VyOmJvb2xlYW5cclxuKTogdm9pZCB7XHJcbiAgdGhpcy5zaW5nbGVTZWxlY3QgPSBzaW5nbGVTZWxlY3Q7XHJcbiAgdGhpcy5tdWx0aVNlbGVjdCA9IG11bHRpU2VsZWN0O1xyXG4gIHRoaXMuZGF0ZXBpY2tlciA9IGRhdGVwaWNrZXI7XHJcbiAgdGhpcy5zaW5nbGVTdG9yZSA9IHNpbmdsZVN0b3JlO1xyXG4gIHRoaXMuc2luZ2xlU2VsZWN0ZGF0ZXBpY2tlciA9IHNpbmdsZVNlbGVjdGRhdGVwaWNrZXI7XHJcbiAgdGhpcy50cmFmZmljZGF0ZXBpY2tlciA9IHRyYWZmaWNkYXRlcGlja2VyO1xyXG59XHJcbn1cclxuIiwiPCEtLWJlZ2luOjpUb29sYmFyIGNvbnRhaW5lci0tPlxyXG48ZGl2IGlkPVwia3RfYXBwX3Rvb2xiYXJfY29udGFpbmVyXCIgY2xhc3M9XCJhcHAtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiYXBwVG9vbGJhckNvbnRhaW5lckNTU0NsYXNzXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICdjbGllbnQnIHx8IChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ2xlYWQnXCIgID5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1BhZ2VUaXRsZSgpXCI+XHJcbiAgICA8bGliLXBhZ2UtdGl0bGUgW2FwcFBhZ2VUaXRsZURpcmVjdGlvbl09XCJhcHBQYWdlVGl0bGVEaXJlY3Rpb25cIiBbYXBwUGFnZVRpdGxlQnJlYWRjcnVtYl09XCJhcHBQYWdlVGl0bGVCcmVhZGNydW1iXCJcclxuICAgICAgW2FwcFBhZ2VUaXRsZURlc2NyaXB0aW9uXT1cImFwcFBhZ2VUaXRsZURlc2NyaXB0aW9uXCIgY2xhc3M9XCJwYWdlLXRpdGxlIGQtZmxleCBmbGV4LXdyYXAgbWUtM1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsnZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlcic6IGFwcFBhZ2VUaXRsZURpcmVjdGlvbiA9PT0gJ2NvbHVtbicsICdhbGlnbi1pdGVtcy1jZW50ZXInOiBhcHBQYWdlVGl0bGVEaXJlY3Rpb24gIT09ICdjb2x1bW4nLCBhcHBQYWdlVGl0bGVDU1NDbGFzc31cIj5cclxuICAgIDwvbGliLXBhZ2UtdGl0bGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aVNlbGVjdCAmJiB1c2Vycy51c2VyVHlwZSA9PT0ndGFuZ28nXCI+XHJcbiAgICA8bGliLWNsYXNzaWMgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGdhcC1sZy0zXCI+PC9saWItY2xhc3NpYz5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2luZ2xlU2VsZWN0ICYmIHVzZXJzLnVzZXJUeXBlID09PSd0YW5nbydcIj5cclxuICAgIDxsaWItY2xpZW50LXNldHRpbmdzIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItY2xpZW50LXNldHRpbmdzPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRlcGlja2VyICYmIHVzZXJzLnVzZXJUeXBlID09PSdjbGllbnQnXCI+XHJcbiAgICA8bGliLWRhdGVwaWNrZXIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi1kYXRlcGlja2VyPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNpbmdsZVNlbGVjdGRhdGVwaWNrZXIgJiYgdXNlcnMudXNlclR5cGUgPT09J3RhbmdvJ1wiPlxyXG4gICAgPGxpYi1kYXRlLXNpbmdsZS1zZWxlY3QgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi1kYXRlLXNpbmdsZS1zZWxlY3Q+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwic2luZ2xlU3RvcmVcIj5cclxuICAgIDxsaWItc2luZ2xlLXN0b3JlIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItc2luZ2xlLXN0b3JlPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyYWZmaWNkYXRlcGlja2VyXCI+XHJcbiAgICA8bGliLXRyYWZmaWMtaGVhZGVyIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItdHJhZmZpYy1oZWFkZXI+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVG9vbGJhckxheW91dCA9PT0gJ2V4dGVuZGVkJ1wiPlxyXG4gICAgPGxpYi1leHRlbmRlZCBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1zaHJpbmstMCBtZS01XCI+PC9saWItZXh0ZW5kZWQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFRvb2xiYXJMYXlvdXQgPT09ICdyZXBvcnRzJ1wiPlxyXG4gICAgPGxpYi1yZXBvcnRzIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBvdmVyZmxvdy1hdXRvXCIgW2FwcFBhZ2VUaXRsZURpc3BsYXldPVwiYXBwUGFnZVRpdGxlRGlzcGxheVwiPlxyXG4gICAgPC9saWItcmVwb3J0cz5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVG9vbGJhckxheW91dCA9PT0gJ3NhYXMnXCI+XHJcbiAgICA8bGliLXNhYXMgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCIgW2FwcFBhZ2VUaXRsZURpc3BsYXldPVwiYXBwUGFnZVRpdGxlRGlzcGxheVwiPjwvbGliLXNhYXM+XHJcbiAgPC9uZy1jb250YWluZXI+IC0tPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbjwhLS1lbmQ6OlRvb2xiYXIgY29udGFpbmVyLS0+XHJcbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7QUFlcEUsTUFBTSxPQUFPLGdCQUFnQjtJQTJDakI7SUFDQTtJQUNBO0lBQ0Q7SUE3Q0QsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFekMsZUFBZTtJQUNOLGlCQUFpQixDQUFvQjtJQUNyQyxnQkFBZ0IsQ0FLZDtJQUVYLFVBQVU7SUFDVixpQkFBaUIsQ0FBVTtJQUMzQixtQkFBbUIsQ0FBb0I7SUFDdkMsMkJBQTJCLEdBQVcsRUFBRSxDQUFDO0lBQ3pDLHNCQUFzQixDQUFVO0lBQ2hDLHFCQUFxQixDQUFVO0lBQy9CLG1CQUFtQixDQUFVO0lBRTdCLGFBQWE7SUFDYixxQkFBcUIsR0FBVyxFQUFFLENBQUM7SUFDbkMsb0JBQW9CLEdBQVcsRUFBRSxDQUFDO0lBQ2xDLHNCQUFzQixDQUFVO0lBQ2hDLHVCQUF1QixDQUFVO0lBQ2pDLFVBQVUsQ0FBTTtJQUNoQixZQUFZLENBQVU7SUFDdEIsV0FBVyxDQUFVO0lBQ3JCLFVBQVUsQ0FBVTtJQUNwQixzQkFBc0IsQ0FBVTtJQUNoQyxXQUFXLENBQVU7SUFDckIsV0FBVyxDQUFNO0lBQ2pCLE9BQU8sQ0FBTTtJQUNiLEtBQUssQ0FBTTtJQUNYLGVBQWUsR0FBUTtRQUNyQixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8s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c0IsQ0FBQztRQUNyRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFDN0MsQ0FBQzt3R0F2T1ksZ0JBQWdCOzRGQUFoQixnQkFBZ0IsNklDZjdCLG0vRUEwQ0E7OzRGRDNCYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTtxS0FRZCxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIHdpbmRvdyB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7XHJcbiAgR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gIExheW91dFNlcnZpY2UsXHJcbiAgUGFnZUluZm9TZXJ2aWNlLFxyXG59IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7IElMYXlvdXQsIExheW91dFR5cGUgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLXRvb2xiYXJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vdG9vbGJhci5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZTogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgLy8gUHVibGljIHByb3BzXHJcbiAgQElucHV0KCkgY3VycmVudExheW91dFR5cGU6IExheW91dFR5cGUgfCBudWxsO1xyXG4gIEBJbnB1dCgpIGFwcFRvb2xiYXJMYXlvdXQ6XHJcbiAgICB8IFwiY2xhc3NpY1wiXHJcbiAgICB8IFwiYWNjb3VudGluZ1wiXHJcbiAgICB8IFwiZXh0ZW5kZWRcIlxyXG4gICAgfCBcInJlcG9ydHNcIlxyXG4gICAgfCBcInNhYXNcIjtcclxuXHJcbiAgLy8gdG9vbGJhclxyXG4gIGFwcFRvb2xiYXJEaXNwbGF5OiBib29sZWFuO1xyXG4gIGFwcFRvb2xiYXJDb250YWluZXI6IFwiZml4ZWRcIiB8IFwiZmx1aWRcIjtcclxuICBhcHBUb29sYmFyQ29udGFpbmVyQ1NTQ2xhc3M6IHN0cmluZyA9IFwiXCI7XHJcbiAgYXBwVG9vbGJhckZpeGVkRGVza3RvcDogYm9vbGVhbjtcclxuICBhcHBUb29sYmFyRml4ZWRNb2JpbGU6IGJvb2xlYW47XHJcbiAgYXBwUGFnZVRpdGxlRGlzcGxheTogYm9vbGVhbjtcclxuXHJcbiAgLy8gcGFnZSB0aXRsZVxyXG4gIGFwcFBhZ2VUaXRsZURpcmVjdGlvbjogc3RyaW5nID0gXCJcIjtcclxuICBhcHBQYWdlVGl0bGVDU1NDbGFzczogc3RyaW5nID0gXCJcIjtcclxuICBhcHBQYWdlVGl0bGVCcmVhZGNydW1iOiBib29sZWFuO1xyXG4gIGFwcFBhZ2VUaXRsZURlc2NyaXB0aW9uOiBib29sZWFuO1xyXG4gIHF1ZXJQYXJhbXM6IGFueTtcclxuICBzaW5nbGVTZWxlY3Q6IGJvb2xlYW47XHJcbiAgbXVsdGlTZWxlY3Q6IGJvb2xlYW47XHJcbiAgZGF0ZXBpY2tlcjogYm9vbGVhbjtcclxuICBzaW5nbGVTZWxlY3RkYXRlcGlja2VyOiBib29sZWFuO1xyXG4gIHNpbmdsZVN0b3JlOiBib29sZWFuO1xyXG4gIGhlYWRlcnZhbHVlOiBhbnk7XHJcbiAgc3RvcmVJZDogYW55O1xyXG4gIHVzZXJzOiBhbnk7XHJcbiAgc2VsZWN0ZWRGaWx0ZXJzOiBhbnkgPSB7XHJcbiAgICBjbGllbnQ6IG51bGwsXHJcbiAgICBjbGllbnRzOiBbXSxcclxuICAgIHN0b3JlOiBudWxsLFxyXG4gICAgc3RvcmVzOiBbXSxcclxuICAgIGRhdGU6IG51bGwsXHJcbiAgfTtcclxuICB0cmFmZmljZGF0ZXBpY2tlcjogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbGF5b3V0OiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKFwidXNlci1pbmZvXCIgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIGNvbnN0IHVzZXJEYXRhOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlci1pbmZvXCIpIHx8IFwie31cIlxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVzZXJzID0gdXNlckRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zaG93UGFnZVRpdGxlKCk7XHJcbiAgICBjb25zdCBzdWJzY3IgPSB0aGlzLmxheW91dC5sYXlvdXRDb25maWdTdWJqZWN0XHJcbiAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWc6IElMYXlvdXQpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVByb3BzKGNvbmZpZyk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5wdXNoKHN1YnNjcik7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQcm9wcyhjb25maWc6IElMYXlvdXQpIHtcclxuICAgIHRoaXMuYXBwVG9vbGJhckRpc3BsYXkgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmRpc3BsYXlcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAoIXRoaXMuYXBwVG9vbGJhckRpc3BsYXkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwUGFnZVRpdGxlRGlzcGxheSA9IHRoaXMubGF5b3V0LmdldFByb3AoXHJcbiAgICAgIFwiYXBwLnBhZ2VUaXRsZS5kaXNwbGF5XCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgdGhpcy5hcHBUb29sYmFyQ29udGFpbmVyID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAudG9vbGJhci5jb250YWluZXJcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIFwiZmx1aWRcIiB8IFwiZml4ZWRcIjtcclxuICAgIHRoaXMuYXBwVG9vbGJhckNvbnRhaW5lckNTU0NsYXNzID1cclxuICAgICAgdGhpcy5hcHBUb29sYmFyQ29udGFpbmVyID09PSBcImZpeGVkXCJcclxuICAgICAgICA/IFwiY29udGFpbmVyLXh4bFwiXHJcbiAgICAgICAgOiBcImNvbnRhaW5lci1mbHVpZFwiO1xyXG4gICAgY29uc3QgY29udGFpbmVyQ2xhc3MgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC50b29sYmFyLmNvbnRhaW5lckNsYXNzXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBzdHJpbmc7XHJcbiAgICBpZiAoY29udGFpbmVyQ2xhc3MpIHtcclxuICAgICAgdGhpcy5hcHBUb29sYmFyQ29udGFpbmVyQ1NTQ2xhc3MgKz0gYCAke2NvbnRhaW5lckNsYXNzfWA7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBUb29sYmFyRml4ZWREZXNrdG9wID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAudG9vbGJhci5maXhlZC5kZXNrdG9wXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBib29sZWFuO1xyXG4gICAgaWYgKHRoaXMuYXBwVG9vbGJhckZpeGVkRGVza3RvcCkge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShcImRhdGEta3QtYXBwLXRvb2xiYXItZml4ZWRcIiwgXCJ0cnVlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwVG9vbGJhckZpeGVkTW9iaWxlID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAudG9vbGJhci5maXhlZC5tb2JpbGVcIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5hcHBUb29sYmFyRml4ZWRNb2JpbGUpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoXCJkYXRhLWt0LWFwcC10b29sYmFyLWZpeGVkLW1vYmlsZVwiLCBcInRydWVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdG9vbGJhclxyXG4gICAgdGhpcy5hcHBQYWdlVGl0bGVEaXJlY3Rpb24gPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC5wYWdlVGl0bGUuZGlyZWN0aW9uXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmFwcFBhZ2VUaXRsZUNTU0NsYXNzID0gdGhpcy5sYXlvdXQuZ2V0UHJvcChcclxuICAgICAgXCJhcHAucGFnZVRpdGxlLmNsYXNzXCIsXHJcbiAgICAgIGNvbmZpZ1xyXG4gICAgKSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmFwcFBhZ2VUaXRsZUJyZWFkY3J1bWIgPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC5wYWdlVGl0bGUuYnJlYWRDcnVtYlwiLFxyXG4gICAgICBjb25maWdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIHRoaXMuYXBwUGFnZVRpdGxlRGVzY3JpcHRpb24gPSB0aGlzLmxheW91dC5nZXRQcm9wKFxyXG4gICAgICBcImFwcC5wYWdlVGl0bGUuZGVzY3JpcHRpb25cIixcclxuICAgICAgY29uZmlnXHJcbiAgICApIGFzIGJvb2xlYW47XHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoXCJkYXRhLWt0LWFwcC10b29sYmFyLWVuYWJsZWRcIiwgXCJ0cnVlXCIpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLmZvckVhY2goKHNiKSA9PiBzYi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHNob3dQYWdlVGl0bGUoKSB7XHJcbiAgICBsZXQgVVJMOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgaWYgKFwiaGVhZGVyLWZpbHRlcnNcIiBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3QgZGF0YTogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgICApO1xyXG5cclxuICAgICBjb25zdCBzdG9yZSA9ICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAgYXMgYW55ICAgICAgXHJcbiAgICAgIHRoaXMuc3RvcmVJZCA9ICBkYXRhPy5zdG9yZTtcclxuXHJcbiAgICAgIGlmKHN0b3JlPy5wYXJhbXM/Llsnc3RvcmVJZCddKXtcclxuICAgICAgICB0aGlzLnN0b3JlSWQgPSBzdG9yZS5wYXJhbXNbJ3N0b3JlSWQnXVxyXG4gICAgICAgIGRhdGEuc3RvcmUgPSBzdG9yZS5wYXJhbXNbJ3N0b3JlSWQnXVxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdoZWFkZXItZmlsdGVycycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgIGNvbnN0IHVwZGF0ZWRVcmwgPSBjdXJyZW50VXJsLnJlcGxhY2UoXHJcbiAgICAgICAgL1xcL21hbmFnZVxcL3N0b3Jlc1xcL1xcZCstXFxkK1xcLy8sXHJcbiAgICAgICAgYC9tYW5hZ2Uvc3RvcmVzL2BcclxuICAgICAgKTtcclxuICAgICAgVVJMID0gdXBkYXRlZFVybDtcclxuICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1VSTF0pXHJcbiAgICB9XHJcbiAgIFxyXG4gIGNvbnN0IHVybCA9IFVSTC5zcGxpdChcIi9cIik7XHJcbiAgaWYgKHRoaXMudXNlcnM/LnVzZXJUeXBlID09PSBcInRhbmdvXCIpIHtcclxuICAgIGlmICh1cmxbMl0gPT0gXCJzZXR0aW5nc1wiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvY2xpZW50XCIgIHx8XHJcbiAgICBVUkwgPT0gXCIvbWFuYWdlL3N0b3Jlc1wiIHx8ICBVUkwgPT09IFwiL21hbmFnZS9zdG9yZXM/dHlwZT1zdG9yZXNcIiB8fCBVUkwgPT09IFwiL21hbmFnZS9zdG9yZXM/dHlwZT1ncm91cHNcIiB8fFxyXG4gICAgVVJMID09IFwiL21hbmFnZS9zdG9yZXMvYWRkaXRpb24tbWV0aG9kXCIgfHxcclxuICAgIFVSTCA9PSBcIi9tYW5hZ2Uvc3RvcmVzL2FkZC1zaW5nbGUtc3RvcmVcIikge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyh0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSk7XHJcbiAgICB9ICBlbHNlIGlmICh1cmxbM10gPT0gXCJlZGdlLWFwcFwiKSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvaW5mcmEtdGlja2V0P3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fCAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH0mdHlwZT1pbmZyYWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9zZXR0aW5ncz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHwgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH0mdHlwZT1kYXRhTWlzbWF0Y2hgIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvem9uZXM/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvY2FtZXJhcz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgLy8gVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYXN0cnVjdHVyZT9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9tYXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmIChVUkwgPT0gXCIvcHJvZmlsZVwiIHx8IHVybFsyXT09PVwiZGF0YS1taXNtYXRjaFwiIHx8IHVybFsyXT09PVwiZW1wbG95ZWV0cmFpbmluZ1wiIHx8IFVSTCA9PSBcIi9ub3RpZmljYXRpb25zL2FsZXJ0c1wiIFxyXG4gICAgICAgfHwgVVJMID09IFwiL21hbmFnZS9icmFuZHNcIiB8fCBVUkwgPT0gXCIvbWFuYWdlL3VzZXJzL3RhbmdvXCIgfHwgKHVybFsxXSA9PT1cInRpY2tldHNcIiAmJiB1cmxbMl0gPT09IFwiYXVkaXRcIikpIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZih1cmxbMl0gPT09IFwidHJhZmZpY1wiIHx8IHVybFsyXSA9PT0gXCJ6b25lc1wiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvYW5hbHlzZS9yZXBvcnRzXCIpe1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSxmYWxzZSx0cnVlKTtcclxuICAgIH0gZWxzZXtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsdHJ1ZSxmYWxzZSk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGlmICh1cmxbM10gPT0gXCJlZGdlLWFwcFwiKSB7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvaW5mcmEtdGlja2V0P3N0b3JlSWQ9JHt0aGlzLnN0b3JlSWR9YCB8fCAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH0mdHlwZT1pbmZyYWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9zZXR0aW5ncz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHwgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH0mdHlwZT1kYXRhTWlzbWF0Y2hgIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvem9uZXM/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gIHx8XHJcbiAgICAgIFVSTCA9PSBgL21hbmFnZS9zdG9yZXMvY2FtZXJhcz9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgLy8gVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9pbmZyYXN0cnVjdHVyZT9zdG9yZUlkPSR7dGhpcy5zdG9yZUlkfWAgfHxcclxuICAgICAgVVJMID09IGAvbWFuYWdlL3N0b3Jlcy9tYXQ/c3RvcmVJZD0ke3RoaXMuc3RvcmVJZH1gXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmIChVUkwgPT0gXCIvcHJvZmlsZVwiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvY2xpZW50XCIgfHwgVVJMID09IFwiL21hbmFnZS91c2Vycy90YW5nb1wiIHx8XHJcbiAgICBVUkwgPT0gXCIvbWFuYWdlL3N0b3Jlc1wiIHx8ICBVUkwgPT09IFwiL21hbmFnZS9zdG9yZXM/dHlwZT1zdG9yZXNcIiB8fCBVUkwgPT09IFwiL21hbmFnZS9zdG9yZXM/dHlwZT1ncm91cHNcIiB8fCB1cmxbMl0gPT0gXCJzZXR0aW5nc1wiIHx8IFxyXG4gICAgVVJMID09IFwiL21hbmFnZS9zdG9yZXMvYWRkaXRpb24tbWV0aG9kXCIgfHxcclxuICAgIFVSTCA9PSBcIi9tYW5hZ2Uvc3RvcmVzL2FkZC1zaW5nbGUtc3RvcmVcIiB8fCB1cmxbMl09PT1cImRhdGEtbWlzbWF0Y2hcIiB8fCB1cmxbMl09PT1cImVtcGxveWVldHJhaW5pbmdcIiBcclxuICAgIHx8IFVSTCA9PSBcIi9ub3RpZmljYXRpb25zL2FsZXJ0c1wiIHx8IFVSTCA9PSBcIi9tYW5hZ2UvdXNlcnMvdGFuZ29cIikge1xyXG4gICAgICB0aGlzLnNldFVJUHJvcGVydGllcyhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmKHVybFsyXSA9PT0gXCJ0cmFmZmljXCIgfHwgdXJsWzJdID09PSBcInpvbmVzXCIgfHwgVVJMID09IFwiL21hbmFnZS9hbmFseXNlL3JlcG9ydHNcIil7XHJcbiAgICAgIHRoaXMuc2V0VUlQcm9wZXJ0aWVzKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLGZhbHNlLHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRVSVByb3BlcnRpZXMoZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb25zdCB2aWV3c1dpdGhQYWdlVGl0bGVzID0gW1wiY2xhc3NpY1wiLCBcInJlcG9ydHNcIiwgXCJzYWFzXCJdO1xyXG4gIHJldHVybiAoXHJcbiAgICB0aGlzLmFwcFBhZ2VUaXRsZURpc3BsYXkgJiZcclxuICAgIHZpZXdzV2l0aFBhZ2VUaXRsZXMuc29tZSgodCkgPT4gdCA9PT0gdGhpcy5hcHBUb29sYmFyTGF5b3V0KVxyXG4gICk7XHJcbn1cclxuXHJcbnNldFVJUHJvcGVydGllcyhcclxuICBzaW5nbGVTZWxlY3Q6IGJvb2xlYW4sXHJcbiAgbXVsdGlTZWxlY3Q6IGJvb2xlYW4sXHJcbiAgZGF0ZXBpY2tlcjogYm9vbGVhbixcclxuICBzaW5nbGVTdG9yZTogYm9vbGVhbixcclxuICBzaW5nbGVTZWxlY3RkYXRlcGlja2VyOiBib29sZWFuLFxyXG4gIHRyYWZmaWNkYXRlcGlja2VyOmJvb2xlYW5cclxuKTogdm9pZCB7XHJcbiAgdGhpcy5zaW5nbGVTZWxlY3QgPSBzaW5nbGVTZWxlY3Q7XHJcbiAgdGhpcy5tdWx0aVNlbGVjdCA9IG11bHRpU2VsZWN0O1xyXG4gIHRoaXMuZGF0ZXBpY2tlciA9IGRhdGVwaWNrZXI7XHJcbiAgdGhpcy5zaW5nbGVTdG9yZSA9IHNpbmdsZVN0b3JlO1xyXG4gIHRoaXMuc2luZ2xlU2VsZWN0ZGF0ZXBpY2tlciA9IHNpbmdsZVNlbGVjdGRhdGVwaWNrZXI7XHJcbiAgdGhpcy50cmFmZmljZGF0ZXBpY2tlciA9IHRyYWZmaWNkYXRlcGlja2VyO1xyXG59XHJcbn1cclxuIiwiPCEtLWJlZ2luOjpUb29sYmFyIGNvbnRhaW5lci0tPlxyXG48ZGl2IGlkPVwia3RfYXBwX3Rvb2xiYXJfY29udGFpbmVyXCIgY2xhc3M9XCJhcHAtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiYXBwVG9vbGJhckNvbnRhaW5lckNTU0NsYXNzXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICdjbGllbnQnIHx8IChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ2xlYWQnXCIgID5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1BhZ2VUaXRsZSgpXCI+XHJcbiAgICA8bGliLXBhZ2UtdGl0bGUgW2FwcFBhZ2VUaXRsZURpcmVjdGlvbl09XCJhcHBQYWdlVGl0bGVEaXJlY3Rpb25cIiBbYXBwUGFnZVRpdGxlQnJlYWRjcnVtYl09XCJhcHBQYWdlVGl0bGVCcmVhZGNydW1iXCJcclxuICAgICAgW2FwcFBhZ2VUaXRsZURlc2NyaXB0aW9uXT1cImFwcFBhZ2VUaXRsZURlc2NyaXB0aW9uXCIgY2xhc3M9XCJwYWdlLXRpdGxlIGQtZmxleCBmbGV4LXdyYXAgbWUtM1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsnZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlcic6IGFwcFBhZ2VUaXRsZURpcmVjdGlvbiA9PT0gJ2NvbHVtbicsICdhbGlnbi1pdGVtcy1jZW50ZXInOiBhcHBQYWdlVGl0bGVEaXJlY3Rpb24gIT09ICdjb2x1bW4nLCBhcHBQYWdlVGl0bGVDU1NDbGFzc31cIj5cclxuICAgIDwvbGliLXBhZ2UtdGl0bGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aVNlbGVjdCAmJiB1c2Vycy51c2VyVHlwZSA9PT0ndGFuZ28nXCI+XHJcbiAgICA8bGliLWNsYXNzaWMgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGdhcC1sZy0zXCI+PC9saWItY2xhc3NpYz5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2luZ2xlU2VsZWN0ICYmIHVzZXJzLnVzZXJUeXBlID09PSd0YW5nbydcIj5cclxuICAgIDxsaWItY2xpZW50LXNldHRpbmdzIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItY2xpZW50LXNldHRpbmdzPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRlcGlja2VyICYmIHVzZXJzLnVzZXJUeXBlID09PSdjbGllbnQnXCI+XHJcbiAgICA8bGliLWRhdGVwaWNrZXIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi1kYXRlcGlja2VyPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNpbmdsZVNlbGVjdGRhdGVwaWNrZXIgJiYgdXNlcnMudXNlclR5cGUgPT09J3RhbmdvJ1wiPlxyXG4gICAgPGxpYi1kYXRlLXNpbmdsZS1zZWxlY3QgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTVcIj48L2xpYi1kYXRlLXNpbmdsZS1zZWxlY3Q+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwic2luZ2xlU3RvcmVcIj5cclxuICAgIDxsaWItc2luZ2xlLXN0b3JlIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItc2luZ2xlLXN0b3JlPlxyXG4gICA8L25nLWNvbnRhaW5lcj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyYWZmaWNkYXRlcGlja2VyXCI+XHJcbiAgICA8bGliLXRyYWZmaWMtaGVhZGVyIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS01XCI+PC9saWItdHJhZmZpYy1oZWFkZXI+XHJcbiAgIDwvbmctY29udGFpbmVyPlxyXG4gPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVG9vbGJhckxheW91dCA9PT0gJ2V4dGVuZGVkJ1wiPlxyXG4gICAgPGxpYi1leHRlbmRlZCBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1zaHJpbmstMCBtZS01XCI+PC9saWItZXh0ZW5kZWQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFwcFRvb2xiYXJMYXlvdXQgPT09ICdyZXBvcnRzJ1wiPlxyXG4gICAgPGxpYi1yZXBvcnRzIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBvdmVyZmxvdy1hdXRvXCIgW2FwcFBhZ2VUaXRsZURpc3BsYXldPVwiYXBwUGFnZVRpdGxlRGlzcGxheVwiPlxyXG4gICAgPC9saWItcmVwb3J0cz5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwVG9vbGJhckxheW91dCA9PT0gJ3NhYXMnXCI+XHJcbiAgICA8bGliLXNhYXMgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCIgW2FwcFBhZ2VUaXRsZURpc3BsYXldPVwiYXBwUGFnZVRpdGxlRGlzcGxheVwiPjwvbGliLXNhYXM+XHJcbiAgPC9uZy1jb250YWluZXI+IC0tPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbjwhLS1lbmQ6OlRvb2xiYXIgY29udGFpbmVyLS0+XHJcbiJdfQ==