{"version":3,"file":"mobicloud-core.mjs","sources":["../../src/lib/mobicloud-core.component.ts","../../src/lib/types/mobi-user-profile.ts","../../src/lib/types/application-details.ts","../../src/lib/services/mobicloud-config.service.ts","../../src/lib/services/mobicloud-core.service.ts","../../src/lib/token-http-interceptor.ts","../../src/lib/validators/username-validator.ts","../../src/lib/mobicloud-core.module.ts","../../src/lib/guards/mobi-authentication.guard.ts","../../src/lib/guards/mobi-organization.guard.ts","../../src/lib/guards/mobi-b2b.guard.ts","../../src/lib/utils.ts","../../src/lib/types/language-info.ts","../../src/lib/types/theme-info.ts","../../src/lib/types/country.ts","../../src/lib/types/organization-info.ts","../../src/lib/types/ui-types.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-mobicloud-core',\n  template: `\n    <p>\n      mobicloud-core works!\n    </p>\n  `,\n  styles: [\n  ]\n})\nexport class MobicloudCoreComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","import { WritableSignal, effect } from '@angular/core';\nimport { User } from 'oidc-client';\nimport { Observable } from 'rxjs';\n\nexport class MobiUserProfile {\n    user: User|null = null;\n  \n    // constructor(oidc_User: Observable<User | undefined>) {\n    //   oidc_User.subscribe(u => this.user = u);    \n    // }\n\n    constructor(user: User|null) {\n      this.user = user;\n    }\n\n    // constructor(user: WritableSignal<User|null>) {\n    //   effect(() => {\n    //     this.user = user();\n    //   });\n    // }\n  \n    get idToken() : string | undefined{\n      return this.user?.id_token;\n    }\n  \n    get refreshToken() : string | undefined{\n      return this.user?.refresh_token;\n    }\n  \n    get accessToken() : string | undefined{\n      return this.user?.access_token;\n    }\n  \n    get tokenType() : string | undefined{\n      return this.user?.token_type;\n    }\n  \n    get tokenScope() : string | undefined{\n      return this.user?.scope;\n    }\n    \n    get tokenExpiresAt() : number | undefined{\n      return this.user?.expires_at;\n    }\n  \n    get tokenExpiresAt_Date(): Date | undefined {\n      if(this.user)\n        return new Date(this.user.expires_at * 1000);\n      return undefined;\n    }\n    \n    get tokenExpiresIn() : number | undefined{\n      return this.user?.expires_in;\n    }\n    \n    get tokenIsExpired() : boolean | undefined{\n      return this.user?.expired;\n    }\n    \n    get shouldRenewToken() : boolean{\n      if(this.user)\n        return this.user.expires_in <= 120;\n      return false;\n    }\n    \n    // --- Profile\n    get user_id() : string | undefined{\n      return this.user?.profile?.sub;\n    }\n  \n    get user_name() : string | undefined{\n      return this.user?.profile?.name;\n    }\n  \n    get user_username() : string | undefined{\n      return this.user?.profile?.username;\n    }\n  \n    get user_email() : string | undefined{\n      return this.user?.profile?.email;\n    }\n    \n    get user_partytype() : string | undefined{\n      return this.user?.profile?.partytype;\n    }\n    \n    get user_partyid() : string | undefined{\n      return this.user?.profile?.partyid;\n    }\n    \n    get user_partyname() : string | undefined{\n      return this.user?.profile?.partyname;\n    }\n    \n    get user_accountnumber() : string | undefined{\n      return this.user?.profile?.account_number;\n    }\n    \n    get user_authtype() : string | undefined{\n      return this.user?.profile?.auth_type;\n    }\n    \n    get user_roles() : string[] | undefined {\n      return this.user?.profile?.role;\n    }\n    \n    get isOrganizationAdmin() : boolean | undefined{\n      if(this.user_roles)\n        return this.user_roles?.includes('ORGADMIN');\n      return false;\n    }\n  \n    get isOrganizationUser() : boolean | undefined{\n      if(this.user_roles)\n        return this.user_roles?.includes('ORGUSER');\n      return false;\n    }\n    \n    get isEmployeeUser() : boolean | undefined{\n      if(this.user_roles)\n        return this.user_roles?.includes('EMPUSER');\n      return false;\n    }\n\n    get isEmployeeMasterUser() : boolean | undefined{\n      if(this.user_roles)\n        return this.user_roles?.includes('EMPUSER') && this.user_roles?.includes('MASTER');\n      return false;\n    }\n    \n    get employeeNumber() : string | undefined{\n      return this.user?.profile?.empl_number;\n    } \n\n    get securityRole() : string | undefined{\n      return this.user?.profile?.security_role;\n    } \n    \n    //-- B2B -----\n\n    get isCustomerUser() : boolean | undefined{\n      if(this.user_roles)\n        return this.user_roles.includes('CUSTUSER');\n      return false;\n    }\n    \n    get user_customer_id() : string | undefined{\n      return this.user?.profile?.cust_id;\n    }\n\n    get user_customer_accountnumber() : string | undefined{\n      return this.user?.profile?.cust_account;\n    }\n\n    get user_customer_name() : string | undefined{\n      return this.user?.profile?.cust_name;\n    }\n\n    get isVendorUser() : boolean{\n      if(this.user_roles)\n        return this.user_roles.includes('VENDUSER');\n      return false;\n    }\n\n    get isMasterUser() : boolean{\n      if(this.user_roles)\n        return this.user_roles.includes('MASTER');\n      return false;\n    }\n\n    get isMasterAdmin() : boolean{\n      if(this.user_roles)\n        return this.user_roles.includes('MASTERADMIN');\n      return false;\n    }\n\n    get user_vendor_id() : string | undefined{\n      return this.user?.profile?.vend_id;\n    }\n\n    get user_vendor_accountnumber() : string | undefined{\n      return this.user?.profile?.vend_account;\n    }\n\n    get user_vendor_name() : string | undefined{\n      return this.user?.profile?.vend_name;\n    }    \n\n    get isB2BUser() : boolean{\n      return this.isCustomerUser || this.isVendorUser;\n    }\n  }","export class ApplicationDetails {\n\tName!:               \t\tstring;\n    OrganizationId!:     \t\tstring;\n\tOrganizationName!:\t\t\tstring;    \n    OrganizationEmail!:  \t\tstring;    \n    OrganizationAccountNumber!: string;\n    StorageAccountName!:        string;\n    ServicebusName!:            string;\n\n    HashedPasswords!:    \t\tboolean | undefined;\n    CertificateLogin!:   \t\tboolean | undefined;\n    AllowSubOrganizations!:   \tboolean | undefined;\n    OwnerOrganizationId:     \t\tstring | undefined;\n\tOwnerOrganizationName:\t\t\tstring | undefined; \n    OwnerOrganizationAccountNumber:\t\t\tstring | undefined; \n\n    IsMasterOrganization!:   \t\tboolean | undefined;\n\n    MapProvider?:               MapProvider | undefined;\n    MapProviderKey?:            string | undefined;\n\n    Currency?:            CompanyCurrency | undefined;\n    WmsLocationSetting?:            WmsLocationSetting | undefined;\n    ServicePlanningSetting?:            ServicePlanningSetting | undefined;\n    WebshipperSetting?:            WebshipperSetting | undefined;\n    ShipmentSettings?:            any | undefined;\n    ModuleSetting?:            ModuleSetting | undefined;\n\n    ProductionSetting?:            ProductionSetting | undefined;\n\n    DefaultDashboardSlideShowSetting?:            DefaultDashboardSlideShowSetting | undefined;\n\n    CloudApplications?:            CloudApplicationInfo[] | undefined;\n    DataApplications?:            DataApplicationInfo[] | undefined;\n    // MobisolutionsCloudApplication?:            CloudApplicationInfo | undefined;\n}\n\nexport class CompanyCurrency {\n    Id?:                        string | undefined;\n    Name?:                      string | undefined;\n    Description?:               string | undefined;\n    CurrencyId?:            string | undefined;\n    Code?:                  string | undefined;      \n}\n\nexport enum EmployeeSecurityRoleType\n{\n    None = \"None\",\n    SuperUser = \"SuperUser\",\n    Accountant = \"Accountant\",\n    Admin = \"Admin\",\n}\n\nexport class ServicePlanningSetting {\n    TaskPart_ServiceReportId?:               \t    string|undefined;\n    TaskPart_ApproveMode?:                  TaskPartApproveMode|undefined;\n \n}\n\nexport class DefaultDashboardSlideShowSetting {\n    StartupId?:               \t    string|undefined;\n    StartupName?:                  string|undefined;\n \n}\n\nexport enum TaskPartApproveMode\n{\n    None = \"None\",\n    Posted = \"Posted\",\n    CreateReport = \"CreateReport\",\n    SendEmail = \"SendEmail\",\n    CreateReportSendEmail = \"CreateReportSendEmail\",\n}\n\nexport class WmsLocationSetting {\n    Pattern?:               \t    string|undefined;\n    UpdateOnChange?:                  boolean|undefined;\n \n}\n\nexport class ProductionSetting {\n    DefaultMrpLevel?:     ProductionSettingMrpLevel|undefined;\n}\n\nexport enum ProductionSettingMrpLevel\n{\n    MRP_I = \"MRP_I\",\n    MRP_II = \"MRP_II\",\n    MRP_III = \"MRP_III\"\n}\n\nexport class WebshipperSetting {\n    PackageWeightMode?:     WebshipperPackageWeightMode|undefined;\n}\n\nexport enum WebshipperPackageWeightMode\n{\n    PackageFixed = \"PackageFixed\",\n    ItemsWeight = \"ItemsWeight\"\n}\n\nexport class ModuleSetting {\n    Solutions?: string[] | undefined;\n    AddOns?: string[] | undefined;\n}\n\nexport class ProfileDetails {\n    Id?:               \t    string|undefined;\n    Name?:                  string|undefined;\n\tImage?:                 ProfileImage|undefined;    \n    User?:                  any|undefined;  \n}\n\nexport class ProfileImage {\n\tStorageAccountName?:    string|undefined;\n    BlobContainerName:     \tstring|undefined;\n\tBlobName?:              string|undefined;    \n}\n\nexport enum MapProvider\n{\n    None = \"None\",\n    Bing = \"Bing\",\n    Google = \"Google\"\n}\n\nexport class CloudApplicationInfo {\n    Id?:               \t    string|undefined;\n    Name?:               \t    string|undefined;\n    ApplicationName?:           string|undefined;\n    PublicUrl?:         string|undefined;\n    DataConnectorName?:         string|undefined;\n    DataConnectorTypeName?:     string|undefined;\n\n    DataConnector_ConnectorType?:     string|undefined;\n    DataConnector_Category?:     string|undefined;\n    DataConnector_Default?:     boolean|undefined;\n}\n\nexport class DataApplicationInfo {\n    Id?:               \t    string|undefined;\n    Name?:               \t    string|undefined;\n    Default?:           boolean|undefined;\n    TypeName?:         string|undefined;\n    ConnectorType?:     string|undefined;\n    Category?:     string|undefined;\n}","import '@angular/localize/init';\nimport { Injectable, Injector, LOCALE_ID, Inject, signal } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, map } from 'rxjs/operators';\nimport { firstValueFrom, of } from 'rxjs';\nimport { registerLocaleData  } from '@angular/common';\nimport localeDA from '@angular/common/locales/da';\nimport { LanguageInfo } from \"../types/language-info\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobicloudConfigService {\n\n  AppInjector: Injector;\n\n  public _config_name: string = '';\n  public _app_name: string = '';\n  public _app_title: string = '';\n  public _environment: string = '';\n  public _default_api_baseurl: string = '';  \n  public _default_taskscheduler_baseurl: string = '';  \n  public _host_url: string = '';\n  public _host_url_en: string = '';\n  public _oidc_authority: string = '';\n  public _oidc_client_id: string = '';\n  public _oidc_client_secret: string = '';  \n  public _oidc_response_type: string = '';\n  public _oidc_scopes: string = '';\n  public _oidc_log: boolean = false;\n  public _log_httptrafic: number = 0;\n  public _themes_enabled: boolean|undefined = false;\n\n  currentLocaleId = signal<string>('');\n\n  languageName = signal<string>('');\n\n  constructor(private http: HttpClient, private injector: Injector, @Inject(LOCALE_ID) public localeId: string) {\n    this.AppInjector = injector;\n    console.log(\"Application Language:\", this.CurrentLanguage);\n    // console.log(\"Application baseHref:\", this.baseHref);\n    if(this.localeId == \"da\")   {\n      registerLocaleData(localeDA, 'da');      \n    }\n    this.currentLocaleId.set(this.localeId);\n    this.languageName.set(this.getLanguageName(this.localeId));\n  }\n\n  checkIfConfigFileExists(config_file: string): Promise<boolean> {\n    const timestamp = Date.now();\n    return firstValueFrom(\n      this.http.head(`./assets/${config_file}?t=${timestamp}`).pipe(\n        map(() => true), // File exists\n        catchError(() => of(false)) // File doesn't exist\n      )\n    );\n  }\n\n  async getConfigData(config_file: string): Promise<any> {\n    const config_file_url = await this.checkIfConfigFileExists('app.config.runtime.json')\n      ? './assets/app.config.runtime.json'\n      : `./assets/${config_file}`;\n  \n    const configdata = await firstValueFrom(\n      this.http.get(`${config_file_url}?t=${Date.now()}`)\n    );\n    \n    Object.assign(this, configdata);\n    return configdata;\n  }\n\n\n  getLanguageName(locale: string) : string {\n    if(locale == \"da\"){\n      return $localize`:@@LanguageName-da:Danish`;\n    }\n    else{\n      return $localize`:@@LanguageName-en-US:English`;\n    }    \n  }\n\n  get CurrentLanguage() : string {\n    if(this.localeId == \"da\"){\n        return \"DK\";\n    }\n    else if(this.localeId == \"en-US\"){\n      return \"US\";\n    }    \n    else {\n      return this.localeId;\n    }\n  }\n  \n  getSupportedLanguages() : LanguageInfo[]\n  {\n    const languages: LanguageInfo[] = [{LocaleId: 'da', LanguageName: this.getLanguageName('da'), FlagCode: 'DK'}, {LocaleId: 'en-US', LanguageName: this.getLanguageName('en-US'), FlagCode: 'GB'}];\n    return languages;\n  }\n\n  getApiSiteUrl() : string{\n    return `${this._default_api_baseurl}`;\n  }\n\n  getTaskschedulerUrl() : string{\n    return `${this._default_taskscheduler_baseurl}`;\n  }\n\n  getApiBaseUrl() : string{\n    return `${this.getApiSiteUrl()}api/`;\n  }\n\n  getMobiManagementDataUrl() : string{\n    return `${this.getApiBaseUrl()}mobimanagement/`;\n  } \n\n  getRepositoryUrl() : string{\n    return `${this.getApiBaseUrl()}repository/`;\n  } \n\n  get config_name(): string {\n    return this._config_name;\n  }\n  \n  get app_name(): string {\n    return this._app_name;\n  }\n\n  get app_title(): string {\n    return this._app_title;\n  }\n\n  get environment(): string {\n    return this._environment;\n  }\n\n  get oidc_authority(): string {\n    return this._oidc_authority;\n  }\n\n  get oidc_client_id(): string {\n    return this._oidc_client_id;\n  }\n\n  get oidc_client_secret(): string {\n    return this._oidc_client_secret;\n  }\n\n  get host_url(): string {\n    return this._host_url;\n  }\n\n  get host_url_en(): string {\n    return this._host_url_en;\n  }\n\n  get oidc_base_url(): string {\n    if(this.localeId == \"da\")   {\n      return this.host_url;\n    }\n    else{\n      return this.host_url_en;\n    }    \n  }\n\n  get oidc_redirect_uri(): string {\n    return `${this.oidc_base_url}signin-callback`;\n  }\n\n  get oidc_redirect_silent_uri(): string {\n    return `${this.oidc_base_url}signin-silent-callback`;\n  }\n\n  get oidc_post_logout_redirect_uri(): string {\n    return `${this.oidc_base_url}signout-callback`;\n  }\n\n  get oidc_response_type(): string {\n    return this._oidc_response_type;\n  }\n\n  get oidc_scopes(): string {\n    return this._oidc_scopes;\n  }\n\n  get oidc_log(): boolean {\n    return this._oidc_log;\n  }\n\n  get log_httptrafic(): number {\n    return this._log_httptrafic;\n  }\n\n  get themes_enabled(): boolean|undefined {\n    return this._themes_enabled;\n  }\n   \n}\n","import { Injectable, EventEmitter, signal } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { UserManager, User, Log } from 'oidc-client';\nimport { firstValueFrom, retry } from 'rxjs';\nimport { timeout } from 'rxjs/operators';\nimport { MobicloudConfigService } from \"./mobicloud-config.service\";\nimport { MobiUserProfile } from \"../types/mobi-user-profile\";\nimport { ApplicationDetails, ProfileDetails, EmployeeSecurityRoleType } from \"../types/application-details\";\nimport { Country } from \"../types/country\";\nimport { IODataResult } from \"../types/odata-result\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobicloudCoreService {\n\n  public _appVersion: string = '';\n  public _appName: string = '';\n  public _appTitle: string = '';\n\n  public require_Organization:boolean = true;\n  public require_Customer:boolean = false;\n  public require_Vendor:boolean = false;\n\n  private manager: UserManager | undefined;\n\n  user = signal<User | null>(null);\n  mobiUserProfile= signal<MobiUserProfile | undefined>(undefined);\n  applicationDetails = signal<ApplicationDetails | undefined>(undefined);\n  profileDetails = signal<ProfileDetails | undefined>(undefined);\n  countries = signal<Map<string, Country> | undefined>(undefined); \n\n  public UserChanged: EventEmitter<{user: User|undefined|null, profile: MobiUserProfile|undefined, profileDetails:ProfileDetails|undefined}> = new EventEmitter<{user: User|undefined|null, profile: MobiUserProfile|undefined, profileDetails:ProfileDetails|undefined}>(); \n\n  constructor(protected httpClient: HttpClient, public configService: MobicloudConfigService) { \n    this.usermanager_UserLoaded = this.usermanager_UserLoaded.bind(this); \n    this.usermanager_UserUnloaded = this.usermanager_UserUnloaded.bind(this); \n\n    if(this.configService.oidc_log){\n      Log.logger = console;\n      Log.level = Log.DEBUG;  \n    }\n    this.manager = new UserManager(\n      {\n        authority: configService.oidc_authority,\n        client_id: configService.oidc_client_id,\n        client_secret: configService.oidc_client_secret,\n        redirect_uri: configService.oidc_redirect_uri,\n        post_logout_redirect_uri: configService.oidc_post_logout_redirect_uri,\n        response_type: configService.oidc_response_type,\n        scope: configService.oidc_scopes,\n        filterProtocolClaims: true,\n        loadUserInfo: true,\n        silent_redirect_uri: configService.oidc_redirect_silent_uri\n      }\n    );\n\n    this.manager.events.addUserLoaded(this.usermanager_UserLoaded);    \n    this.manager.events.addUserUnloaded(this.usermanager_UserUnloaded);\n\n    if(this.configService.oidc_log){\n      this.enableOidcLogEvents();  \n    }\n\n    this.manager.clearStaleState();\n\n    this.manager.getUser().then((_user:User|null) => {\n      this.user.set(_user);\n      if(_user)\n        this.mobiUserProfile.set(new MobiUserProfile(_user));\n      else\n        this.mobiUserProfile.set(undefined);\n\n      if(this.configService.oidc_log)\n        console.log(\"constructor::manager.getUser()\", \"getUser complete\", _user, this.user(), this.mobiUserProfile());\n\n      this.onUserChanged().then(() => \n      {\n        if(this.configService.oidc_log)\n          console.log(\"constructor::manager.getUser()\", \"onUserChanged complete\", this.user(), this.mobiUserProfile()); \n      });\n    });\n  }\n\n  usermanager_UserLoaded(_user:User){\n    this.user.set(_user);\n    if(_user)\n      this.mobiUserProfile.set(new MobiUserProfile(_user));\n    else\n      this.mobiUserProfile.set(undefined);\n\n    if(this.configService.oidc_log){\n      console.log('User loaded', _user, this.user(), this.mobiUserProfile(), this.profileDetails());\n    }\n    this.onUserChanged();    \n  }\n\n  usermanager_UserUnloaded(){\n    this.user.set(null);\n    this.mobiUserProfile.set(undefined);\n    this.onUserChanged(); \n\n    if(this.configService.oidc_log){\n      console.log('User unloaded', this.user(), this.mobiUserProfile(), this.profileDetails());\n    } \n  }\n\n  protected async onUserChanged() : Promise<void>\n  {\n    if(this.configService.oidc_log){\n      console.log(\"onUserChanged\", \"user\", this.user(), this.mobiUserProfile(), this.profileDetails()); \n    }\n    \n    if (this.user()) {\n      //Load application details (related to logged in organization user)\n      let appResult = await this.getApplicationDetails();\n      if(this.configService.oidc_log)\n        console.log(\"onUserChanged\", \"appResult\",appResult);\n\n      //Load Profile Details (The actual employee)\n      let profileDetailsResult = await this.getProfileDetails();\n      if(this.configService.oidc_log){\n        console.log(\"onUserChanged\", \"getProfileDetails result\",profileDetailsResult); \n        console.log(\"onUserChanged\", \"getProfileDetails\", this.profileDetails());\n      } \n      \n      //Load countries (if not loaded)\n      if(!this.countries()){\n        let countriesResult = await this.getCountries();\n        if(this.configService.oidc_log){\n          console.log(\"onUserChanged\", \"getCountries result\",countriesResult); \n          console.log(\"onUserChanged\", \"getCountries\", this.countries());\n        }\n      }\n    }\n    else {\n      this.mobiUserProfile.set(undefined);\n      this.profileDetails.set(undefined);\n      this.applicationDetails.set(undefined);\n    }\n\n    this.UserChanged.emit({user: this.user(), profile: this.mobiUserProfile(), profileDetails: this.profileDetails()});\n  }\n\n\n  async getApplicationDetails(requestTimeout:number=30000): Promise<ApplicationDetails | undefined> {\n    if (!this.isAuthenticated()) {\n      console.warn(\"ApplicationDetails is null, user not authenticated\");\n      this.applicationDetails.set(undefined);\n      return undefined;\n    }\n    \n    if (this.isMasterUserAuthenticated() && !this.hasMasterOrganization()) {\n      console.warn(\"ApplicationDetails is null, MasterOrganization is not selected\");\n      this.applicationDetails.set(undefined);\n      return undefined;\n    }\n    \n    try {\n      const url = `${this.configService.getApiBaseUrl()}ApplicationDetails`;\n      const params = new HttpParams()\n        .set('key', this.configService.app_name)\n        .set('env', this.configService.environment);\n      \n      const appDetails = await firstValueFrom(\n        this.httpClient.get<ApplicationDetails>(url, { params }).pipe(\n          timeout(requestTimeout),retry({\n            count: 2,\n            delay: 1000,\n            resetOnSuccess: true\n          })\n        )\n      );\n\n      this.applicationDetails.set(appDetails);\n      return appDetails;\n      \n    } \n    catch (error: any) {\n      console.error(\"getApplicationDetails error:\", error);\n      this.applicationDetails.set(undefined);\n      throw error;\n    }\n  }\n\n  async getCountries(): Promise<Map<string, Country>> {\n    const url = `${this.configService.getMobiManagementDataUrl()}Country`;\n    \n    try {\n      const result:IODataResult<Country> = await firstValueFrom(\n        this.httpClient.get<IODataResult<Country>>(url, {\n          params: {\n            '$filter': 'enabled eq true',\n            '$orderby': 'Name',\n            '$select': 'code2,Name,LocalName,TradeArea,Shipping_Require_State'\n          }\n        }).pipe(timeout(15000),retry({\n          count: 2,\n          delay: 1000,\n          resetOnSuccess: true\n        }))\n      );\n      \n      const countries_map = new Map(result.value.map((country:Country) => [country.Code2 ?? '', country]));\n      \n      this.countries.set(countries_map);\n      \n      return countries_map;\n      \n    } \n    catch (error:any) {\n      console.error(error);\n      // return new Map<string, Country>();\n      throw error;\n    }\n  }\n \n  async getProfileDetails(requestTimeout:number=30000): Promise<ProfileDetails | undefined> {\n    if (!this.isAuthenticated() || !this.mobiUserProfile()?.user_id) {\n      if(this.configService.oidc_log){\n        let profile = this.mobiUserProfile();\n        console.log(\"getProfileDetails\", \"no user\",profile); \n      }      \n      this.profileDetails.set(undefined);\n      return undefined;\n    }\n    \n    let url:string|undefined;\n    let orgid_override:string|undefined;\n    if(this.mobiUserProfile()?.isEmployeeUser){        \n      if(this.mobiUserProfile()?.isEmployeeMasterUser){\n        let user_org_id = this.mobiUserProfile()?.user_partyid?.toLowerCase();\n        if(user_org_id != undefined){\n          orgid_override = user_org_id;\n        }\n        if(this.configService.oidc_log){\n          console.log(\"getProfileDetails\", \"isEmployeeMasterUser\", user_org_id, orgid_override); \n        }  \n        // console.log(\"isEmployeeMasterUser\", app_orgId, user_org_id, orgid_override);\n      }\n      url = `${this.configService.getMobiManagementDataUrl()}employee(${this.mobiUserProfile()?.user_id})?$expand=Image($select=StorageAccountName,BlobContainerName,BlobName)`;\n    }\n    else if(this.mobiUserProfile()?.isCustomerUser){\n      url = `${this.configService.getMobiManagementDataUrl()}customeruser(${this.mobiUserProfile()?.user_id})?$expand=Image($select=StorageAccountName,BlobContainerName,BlobName)`;\n    }\n    else if(this.mobiUserProfile()?.isVendorUser){\n      url = `${this.configService.getMobiManagementDataUrl()}vendoruser(${this.mobiUserProfile()?.user_id})?$expand=Image($select=StorageAccountName,BlobContainerName,BlobName)`;\n    }\n    if (!url) {\n      if(this.configService.oidc_log){\n        let profile = this.mobiUserProfile();\n        console.log(\"getProfileDetails\", \"no url\", profile); \n      } \n      this.profileDetails.set(undefined);\n      return undefined;\n    }\n    \n    try {\n      // console.log(url);\n      let headers = new HttpHeaders();\n      if(orgid_override){\n        headers = headers.set(\"OrganizationId\", orgid_override);\n      }\n      \n      if(this.configService.oidc_log){\n        console.log(\"getProfileDetails\", \"url\", url); \n        console.log(\"getProfileDetails\", \"headers\", headers); \n      } \n\n      const result = await firstValueFrom(\n        this.httpClient.get<IODataResult<any>>(url, { headers: headers }).pipe(\n          timeout(requestTimeout)\n        )\n      );\n\n      if(this.configService.oidc_log){\n        console.log(\"getProfileDetails\", \"result\", result); \n      } \n      \n      if (!result.value || !result.value[0]) {\n        return undefined;\n      }\n      const _user = result.value[0];\n      const _profileDetails =  Object.assign(new ProfileDetails(), {\n        Id: _user.Id?.toString(),\n        Name: _user.Name,\n        Image: _user.Image,\n        User: _user\n      });\n\n      this.profileDetails.set(_profileDetails);\n\n      if(this.configService.oidc_log){\n        console.log(\"getProfileDetails\", \"profileDetails\", _profileDetails); \n      } \n\n      return _profileDetails;\n      \n    } catch (error: any) {\n      console.error(\"getProfileDetails error:\", error);\n      this.profileDetails.set(undefined);\n      return undefined;\n    }\n  }  \n\n\n  // --- SignIn ------------------------------------------------------\n\n  public async signIn(redirectUrl: string): Promise<any> {\n    if(this.configService.oidc_log){\n      console.log(\"signIn\", redirectUrl);  \n    }\n    let result = await this.manager?.signinRedirect({ data: { redirectUrl: redirectUrl } }).catch( (reason: any) =>\n    {\n      console.error(\"signIn failed:\", reason, this.user(), this.mobiUserProfile());\n      return new Error(reason);\n    });\n    if(this.configService.oidc_log){\n      console.log(\"signIn\", \"result\", result, this.user(), this.mobiUserProfile());  \n    }\n    return result;\n  }\n\n  public async completeSignIn(): Promise<User|null> {    \n    let _user = await this.manager?.signinRedirectCallback() ?? null;\n    if(this.configService.oidc_log){\n      console.log(\"completeSignIn\", _user, this.user(), this.mobiUserProfile());  \n    }\n    return _user;\n  }\n\n  // --- Silent SignIn -----------------------------------------------\n\n  public async signInSilent(): Promise<any> {  \n    if(this.configService.oidc_log){\n      console.log(\"signInSilent\");  \n    }  \n    let result = await this.manager?.signinSilent().then((_user:User) =>\n      {\n        if(this.configService.oidc_log){\n          console.log(\"signInSilent\", \"result\", _user, this.user(), this.mobiUserProfile());  \n        }  \n        this.onSignedInSilent(_user);\n      }).catch( (reason: any) =>\n      {\n        console.error(\"signInSilent failed:\", reason, this.user(), this.mobiUserProfile());\n        return new Error(reason);\n      });\n\n    if(this.configService.oidc_log){\n      console.log(\"signInSilent\", \"result\", result, this.user(), this.mobiUserProfile());  \n    }\n    return result;\n  }\n\n  public onSignedInSilent(_user: User){\n    if(this.configService.oidc_log){\n      console.log(\"onSignedInSilent\", _user, this.user(), this.mobiUserProfile());  \n    }  \n  }\n\n  public async completeSilentSignIn()  : Promise<any>{  \n    if(this.configService.oidc_log){\n      console.log(\"completeSilentSignIn\", this.user(), this.mobiUserProfile());  \n    }       \n    let result =  await this.manager?.signinSilentCallback();\n\n    if(this.configService.oidc_log){\n      console.log(\"signInSilent\", \"result\", result, this.user(), this.mobiUserProfile());  \n    }\n    return result;\n  }\n\n  // --- SignOut -----------------------------------------------------\n\n  public async signout(): Promise<any> {\n    if(this.configService.oidc_log){\n      console.log(\"signout\", this.user(), this.mobiUserProfile());  \n    }   \n    return await this.manager?.signoutRedirect();\n  }\n\n  public async completeSignout() {\n    if(this.configService.oidc_log){\n      console.log(\"completeSignout\", this.user(), this.mobiUserProfile());  \n    }\n  }\n\n  enableOidcLogEvents(){\n    if(this.manager){\n      // this.manager.events.addUserLoaded((_user:User) => {\n      //   console.log('User loaded:', _user);\n      // });\n\n      // this.manager.events.addUserUnloaded(() => {\n      //   console.log('User unloaded');\n      // });\n\n      this.manager.events.addUserSignedIn(() => {\n        console.log('User signed in...');\n      });\n\n      this.manager.events.addAccessTokenExpiring(() => {\n        console.log('Access token expiring...');\n      });\n\n      this.manager.events.addAccessTokenExpired(() => {\n        console.log('Access token expired');\n      });\n\n      this.manager.events.addSilentRenewError((error: Error) => {\n        console.error('Silent renew error:', error);\n      });\n\n      this.manager.events.addUserSignedOut(() => {\n        console.log('User signed out from identity server');\n        console.trace('User signed out stack trace');\n        // This is particularly important to check - if this is firing,\n        // it could trigger app reloads\n      });\n\n      this.manager.events.removeUserSignedOut(() => {\n        console.log('removeUserSignedOut called');\n      });\n\n      this.manager.events.addUserSessionChanged(() => {\n        console.log('addUserSessionChanged called');\n      });\n\n      this.manager.events.removeUserSessionChanged(() => {\n        console.log('removeUserSessionChanged called');\n      });\n    }\n  }\n\n  // --- Helper methods -----------------------------------------------------\n\n  public isAuthenticated(): boolean {\n    return this.user() != null && !this.user()?.expired;\n  }\n\n  public isOrganizationAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && this.mobiUserProfile() != null && (this.mobiUserProfile()?.isOrganizationUser || this.mobiUserProfile()?.isOrganizationAdmin || this.mobiUserProfile()?.isEmployeeUser);\n  }\n\n  public isMasterOrganizationAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && (this.mobiUserProfile() != null && (this.mobiUserProfile()?.isOrganizationUser || this.mobiUserProfile()?.isOrganizationAdmin || this.mobiUserProfile()?.isEmployeeUser)) || this.isMasterUserAuthenticated();\n  }\n\n  public isOrganizationUserAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && this.mobiUserProfile() != null && (this.mobiUserProfile()?.isOrganizationUser || this.mobiUserProfile()?.isOrganizationAdmin);\n  }\n\n  public isMasterOrganizationUserAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && (this.mobiUserProfile() != null && (this.mobiUserProfile()?.isOrganizationUser || this.mobiUserProfile()?.isOrganizationAdmin)) || this.isMasterUserAuthenticated();\n  }\n\n  public isMasterOrganizationAdminAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && (this.mobiUserProfile() != null && (this.mobiUserProfile()?.isOrganizationAdmin)) || this.isMasterUserAuthenticated();\n  }\n\n  public isEmployeeAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && this.mobiUserProfile() != null && (this.mobiUserProfile()?.isOrganizationUser || this.mobiUserProfile()?.isOrganizationAdmin || this.mobiUserProfile()?.isEmployeeUser);\n  }\n\n  public isEmployeeMasterUserAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && this.mobiUserProfile() != null && (this.mobiUserProfile()?.isEmployeeMasterUser);\n  }\n\n  public isMasterEmployeeAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && (this.mobiUserProfile() != null && (this.mobiUserProfile()?.isOrganizationUser || this.mobiUserProfile()?.isOrganizationAdmin || this.mobiUserProfile()?.isEmployeeUser)) || this.isMasterUserAuthenticated();\n  }  \n\n  public isCustomerUserAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && this.mobiUserProfile() != null && (this.mobiUserProfile()?.isCustomerUser);\n  }\n\n  public isMasterCustomerUserAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && (this.mobiUserProfile() != null && (this.mobiUserProfile()?.isCustomerUser)) || this.isMasterUserAuthenticated();\n  }\n\n  public isVendorUserAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && this.mobiUserProfile() != null && (this.mobiUserProfile()?.isVendorUser);\n  }\n\n  public isMasterVendorUserAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && (this.mobiUserProfile() != null && (this.mobiUserProfile()?.isVendorUser)) || this.isMasterUserAuthenticated();\n  }  \n\n  public isB2BAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && (this.isOrganizationAuthenticated() || this.isCustomerUserAuthenticated()|| this.isVendorUserAuthenticated());\n  }\n\n  public isMasterB2BAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && (this.isOrganizationAuthenticated() || this.isCustomerUserAuthenticated()|| this.isVendorUserAuthenticated()) || this.isMasterUserAuthenticated();\n  }\n\n  public isMasterUserAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && this.mobiUserProfile() != null && (this.mobiUserProfile()?.isMasterUser || this.mobiUserProfile()?.isMasterAdmin);\n  }\n\n  public isMasterAdminAuthenticated(): boolean|undefined {\n    return this.isAuthenticated() && this.mobiUserProfile() != null && (this.mobiUserProfile()?.isMasterAdmin);\n  }\n\n  public securityRole(): EmployeeSecurityRoleType|undefined {\n    if(this.isAuthenticated() && this.mobiUserProfile() != null && this.mobiUserProfile()?.securityRole){\n      return EmployeeSecurityRoleType[this.mobiUserProfile()?.securityRole as keyof typeof EmployeeSecurityRoleType];\n    }\n    return undefined;\n  }\n\n  public hasMasterOrganization(): boolean {\n    var strMasterOrganizationId = localStorage.getItem(\"MasterOrganizationId\");\n    if(strMasterOrganizationId && strMasterOrganizationId.length > 0){\n      return true;\n    }\n    else{\n      return false;\n    }\n  }\n\n  public getMasterOrganization(): string|null {\n    var strMasterOrganizationId = localStorage.getItem(\"MasterOrganizationId\");\n    return strMasterOrganizationId;\n  }\n\n  public async setMasterOrganization(strMasterOrganizationId: string|null): Promise<void> {\n    if(strMasterOrganizationId){\n      localStorage.setItem(\"MasterOrganizationId\", strMasterOrganizationId);\n      let appdetails = await this.getApplicationDetails();\n      if(this.configService.oidc_log)\n        console.log(\"setMasterOrganization\", \"appResult\", appdetails);    \n    }\n    else{\n      this.removeMasterOrganization();\n      // return new Promise(resolve => {  resolve(undefined); });\n    }\n  }\n\n  public removeMasterOrganization(): void {\n    localStorage.removeItem(\"MasterOrganizationId\");\n  }\n\n  public hasMasterCustomer(): boolean {\n    var strMasterCustomerId = localStorage.getItem(\"MasterCustomerId\");\n    if(strMasterCustomerId && strMasterCustomerId.length > 0){\n      return true;\n    }\n    else{\n      return false;\n    }\n  }\n\n  public getMasterCustomer(): string|null {\n    var strMasterCustomerId = localStorage.getItem(\"MasterCustomerId\");\n    return strMasterCustomerId;\n  }\n\n  public setMasterCustomer(strMasterCustomerId: string|null): void {\n    if(strMasterCustomerId){\n      localStorage.setItem(\"MasterCustomerId\", strMasterCustomerId); \n    }\n    else{\n      this.removeMasterCustomer();\n    }\n  }\n\n  public removeMasterCustomer(): void {\n    localStorage.removeItem(\"MasterCustomerId\");\n  }  \n\n  public hasMasterVendor(): boolean {\n    var strMasterVendorId = localStorage.getItem(\"MasterVendorId\");\n    if(strMasterVendorId && strMasterVendorId.length > 0){\n      return true;\n    }\n    else{\n      return false;\n    }\n  }\n\n  public getMasterVendor(): string|null {\n    var strMasterVendorId = localStorage.getItem(\"MasterVendorId\");\n    return strMasterVendorId;\n  }\n\n  public setMasterVendor(strMasterVendorId: string|null): void {\n    if(strMasterVendorId){\n      localStorage.setItem(\"MasterVendorId\", strMasterVendorId);   \n    }\n    else{\n      this.removeMasterVendor();\n    }\n  }\n\n  public removeMasterVendor(): void {\n    localStorage.removeItem(\"MasterVendorId\");\n  }  \n\n  public redirectUrl(): string {\n    return this.user()?.state?.redirectUrl;\n  }\n\n  public get accessToken(): string {\n    return this.user()?.access_token ?? '';\n  }\n\n  public get authorizationHeader(): string|undefined {\n    return this.user()?.token_type?.concat(\" \", (this.user()?.access_token ?? ''));\n  }\n\n  public get tokenExpiresAt(): Date|undefined {\n    if(this.user()){\n      let expires_at = this.user()?.expires_at;\n      if(expires_at)\n        return new Date(expires_at * 1000);\n    }\n    return undefined;\n  }\n\n  public get tokenValidUntil(): Date|undefined {\n    if(this.user()){\n      let expires_at = this.user()?.expires_at;\n      if(expires_at)\n        return new Date((expires_at -120) * 1000);\n    }\n    return undefined;\n  }\n\n  public get isTokenExpired(): boolean {\n    if(this.user()){\n      let expires_in = this.user()?.expires_in;\n      if(expires_in)\n        return expires_in <= 120;\n    }\n    return false;\n  }\n\n  handleError(error:any) {\n    let errorMessage = '';\n    if (error && error.error && error.error.error){\n      //Get Json error\n      errorMessage = error.error.error;\n    }\n    else if(error && error.error instanceof ErrorEvent) {\n      // Get client-side error\n        errorMessage = error.error.message;\n    } \n    else {\n      // Get server-side error\n      errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\n    }\n    // window.alert(errorMessage);\n    let anyRemoved:boolean = evaluateForMasterOrganizationClearance(errorMessage);\n    if(anyRemoved){\n      location.reload();\n    }\n    return new Error(errorMessage);\n  }\n\n  //-- Permissions\n  SecurityRolePriorityMap: Record<EmployeeSecurityRoleType, number> = {\n    [EmployeeSecurityRoleType.None]: 0,\n    [EmployeeSecurityRoleType.SuperUser]: 1,\n    [EmployeeSecurityRoleType.Accountant]: 2,\n    [EmployeeSecurityRoleType.Admin]: 3\n  };\n\n  requireEmployeePermission(mobiUserProfile:MobiUserProfile, callback: ((valid:boolean) => void)|undefined = undefined, securityRole:EmployeeSecurityRoleType = EmployeeSecurityRoleType.None) : boolean{\n    let valid = (mobiUserProfile.isOrganizationUser || \n                  mobiUserProfile.isOrganizationAdmin ||\n                  (mobiUserProfile.isMasterUser || mobiUserProfile.isMasterAdmin));\n    if(!valid){\n      valid = mobiUserProfile.isEmployeeUser ?? false;\n      if(valid){\n        let emplSecurityRole = EmployeeSecurityRoleType.None;\n        if(mobiUserProfile.securityRole){\n          emplSecurityRole = EmployeeSecurityRoleType[mobiUserProfile.securityRole as keyof typeof EmployeeSecurityRoleType];\n        }\n        valid = this.SecurityRolePriorityMap[emplSecurityRole] >= this.SecurityRolePriorityMap[securityRole];\n      }\n    }\n    if(callback){\n      callback(valid ?? false);\n    }\n    return valid ?? false;\n  }\n\n  requireOrganizationUser(mobiUserProfile:MobiUserProfile, callback: ((valid:boolean) => void)|undefined = undefined) : boolean{\n    let valid = (mobiUserProfile.isOrganizationUser || \n                  mobiUserProfile.isOrganizationAdmin ||\n                  (mobiUserProfile.isMasterUser || mobiUserProfile.isMasterAdmin));\n    if(callback){\n      callback(valid ?? false);\n    }\n    return valid ?? false;\n  }\n\n  requireOrganizationAdmin(mobiUserProfile:MobiUserProfile, callback: ((valid:boolean) => void)|undefined = undefined) : boolean{\n    let valid = (mobiUserProfile.isOrganizationAdmin ||\n                  (mobiUserProfile.isMasterUser || mobiUserProfile.isMasterAdmin));\n    if(callback){\n      callback(valid ?? false);\n    }\n    return valid ?? false;\n  }\n\n  requireMasterPermission(mobiUserProfile:MobiUserProfile, callback: ((valid:boolean) => void)|undefined = undefined) : boolean{\n    let valid = (mobiUserProfile.isMasterUser || mobiUserProfile.isMasterAdmin);\n    if(callback){\n      callback(valid ?? false);\n    }\n    return valid ?? false;\n  }\n\n  requireMasterAdminPermission(mobiUserProfile:MobiUserProfile, callback: ((valid:boolean) => void)|undefined = undefined) : boolean{\n    let valid = mobiUserProfile.isMasterAdmin;\n    if(!valid){\n      let isEmployeeMaster = (mobiUserProfile.isMasterUser ?? false) && (mobiUserProfile.isEmployeeUser ?? false);\n      if(isEmployeeMaster){\n        let emplSecurityRole = EmployeeSecurityRoleType.None;\n        if(mobiUserProfile.securityRole){\n          emplSecurityRole = EmployeeSecurityRoleType[mobiUserProfile.securityRole as keyof typeof EmployeeSecurityRoleType];\n        }\n        valid = (this.SecurityRolePriorityMap[emplSecurityRole] == this.SecurityRolePriorityMap[EmployeeSecurityRoleType.Admin]);\n      }\n    }\n    if(callback){\n      callback(valid ?? false);\n    }\n    return valid ?? false;\n  }   \n\n\n}\n\nexport function evaluateForMasterOrganizationClearance(errorMessage:string) : boolean{\n  let anyRemoved:boolean = false;\n\n  if(errorMessage && (\n    errorMessage.toString().indexOf('No Test database has been setup') >= 0 || \n    errorMessage.toString().indexOf('Organization does not exist') >= 0\n  )){\n    // console.log(\"Check for clearance of MasterOrganizationId\");\n    \n    let masterOrgId = localStorage.getItem(\"MasterOrganizationId\");\n    if(masterOrgId){\n      console.log(\"Clearing MasterOrganizationId:\", masterOrgId);\n      localStorage.removeItem(\"MasterOrganizationId\");\n      anyRemoved = true;\n    }\n\n    let customerId = localStorage.getItem(\"MasterCustomerId\");\n    if(customerId){\n      console.log(\"Clearing MasterCustomerId:\", customerId);\n      localStorage.removeItem(\"MasterCustomerId\");\n      anyRemoved = true;\n    }\n\n    let vendorId = localStorage.getItem(\"MasterVendorId\");\n    if(vendorId){\n      console.log(\"Clearing MasterVendorId:\", vendorId);\n      localStorage.removeItem(\"MasterVendorId\");\n      anyRemoved = true;\n    }\n  }\n\n  return anyRemoved;\n}\n","import { Injectable  } from '@angular/core';\nimport {HttpEvent,HttpInterceptor,HttpHandler,HttpRequest,HttpErrorResponse} from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\n\n// import { ConfigService } from \"../../services/config.service\";\n// import { UserService } from \"../../services/user.service\";\nimport { MobicloudConfigService } from \"./services/mobicloud-config.service\";\nimport { MobicloudCoreService } from \"./services/mobicloud-core.service\";\n\nimport { from } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\n\n@Injectable()\nexport class TokenHttpInterceptor implements HttpInterceptor {\n    \n    private coreService: MobicloudCoreService | undefined;\n\n    constructor(protected configService: MobicloudConfigService)     \n    {                  \n    }\n\n    intercept(req: HttpRequest<any>, next: HttpHandler):   Observable<HttpEvent<any>> {\n        // All HTTP requests are going to go through this method\n\n        if((this.configService?._default_api_baseurl && req.url.includes(this.configService._default_api_baseurl)) || (this.configService?._default_taskscheduler_baseurl && req.url.includes(this.configService._default_taskscheduler_baseurl))){\n            if(this.coreService === undefined){                \n                this.coreService = this.configService.AppInjector.get(MobicloudCoreService);\n            }\n            // console.log(\"userservice: \" + this.userService);\n            if(this.configService.log_httptrafic > 1){\n                console.log({log: \"token-http-interceptor request\", request: req});\n            }\n            // if (!req.headers.has(\"Access-Control-Allow-Origin\")) {\n            //     req = req.clone({\n            //       headers: req.headers.set(\"Access-Control-Allow-Origin\", \"*\")\n            //     });\n            // }\n\n            const language: string = this.configService.CurrentLanguage;\n            \n            if (language && !req.headers.has(\"Language\")) {\n                req = req.clone({\n                  headers: req.headers.set(\"Language\", language)\n                });\n            }\n            if (language && !req.headers.has(\"Application\")) {\n                req = req.clone({\n                  headers: req.headers.set(\"Application\", this.configService._app_name)\n                });\n            }            \n            if(this.configService.log_httptrafic > 1){\n                console.log(req);            \n            }\n            if(this.coreService && this.coreService.isAuthenticated()){\n                if(this.coreService.isTokenExpired) {\n                    if(this.configService.log_httptrafic > 0)\n                        console.warn({log: \"token is expired (silent signin)\", tokenValidUntil: this.coreService.tokenValidUntil, tokenExpiresAt: this.coreService.tokenExpiresAt, is: this.coreService.isTokenExpired, auth_header: this.coreService.authorizationHeader, user: this.coreService.user} );\n                    return from(this.coreService.signInSilent()).pipe(\n                        switchMap((user) => {\n                            if(this.configService.log_httptrafic > 0)\n                                console.log({log: \"token renewed (adding new token)\", tokenValidUntil: this.coreService?.tokenValidUntil, tokenExpiresAt: this.coreService?.tokenExpiresAt, is: this.coreService?.isTokenExpired, auth_header: this.coreService?.authorizationHeader, user: this.coreService?.user} );\n                            req = req.clone({headers: req.headers.set(\"Authorization\", this.coreService?.authorizationHeader ?? '')}); \n\n                            // if(this.coreService && this.coreService.isMasterUserAuthenticated() && this.coreService.require_Organization && !req.headers.has(\"OrganizationId\")){\n                            if(this.coreService && this.coreService.require_Organization && !req.headers.has(\"OrganizationId\")){                                \n                                var strMasterOrganizationId = this.coreService.getMasterOrganization();\n                                if(strMasterOrganizationId && strMasterOrganizationId.length > 0){\n                                    req = req.clone({headers: req.headers.set(\"OrganizationId\", strMasterOrganizationId)});\n                                }\n                            } \n\n                            // if(this.coreService && this.coreService.isMasterEmployeeAuthenticated() && this.coreService.require_Customer && !req.headers.has(\"CustomerId\")){\n                            if(this.coreService && this.coreService.require_Customer && !req.headers.has(\"CustomerId\")){                                \n                                var strMasterCustomerId = this.coreService.getMasterCustomer();\n                                if(strMasterCustomerId && strMasterCustomerId.length > 0){\n                                    req = req.clone({headers: req.headers.set(\"CustomerId\", strMasterCustomerId)});\n                                }\n                            }\n\n                            // if(this.coreService && this.coreService.isMasterEmployeeAuthenticated() && this.coreService.require_Vendor && !req.headers.has(\"VendorId\")){\n                            if(this.coreService && this.coreService.require_Vendor && !req.headers.has(\"VendorId\")){                                \n                                var strMasterVendorId = this.coreService.getMasterVendor();\n                                if(strMasterVendorId && strMasterVendorId.length > 0){\n                                    req = req.clone({headers: req.headers.set(\"VendorId\", strMasterVendorId)});\n                                }\n                            }                            \n\n                            return next.handle(req);\n                            })\n                    );\n                } \n                else{\n                    if(this.configService.log_httptrafic > 0)\n                        console.log({log: \"token not expired\", tokenValidUntil: this.coreService.tokenValidUntil, tokenExpiresAt: this.coreService.tokenExpiresAt, is: this.coreService.isTokenExpired, auth_header: this.coreService.authorizationHeader, user: this.coreService.user} );\n                    if (!req.headers.has(\"Authorization\")) {\n                        req = req.clone({headers: req.headers.set(\"Authorization\", this.coreService.authorizationHeader ?? '')});                    \n                    }\n                    // if(this.coreService.isMasterUserAuthenticated() && !req.headers.has(\"OrganizationId\")){\n                    if(this.coreService && this.coreService.require_Organization && !req.headers.has(\"OrganizationId\")){\n                        var strMasterOrganizationId = this.coreService.getMasterOrganization();\n                        if(strMasterOrganizationId && strMasterOrganizationId.length > 0){\n                            req = req.clone({headers: req.headers.set(\"OrganizationId\", strMasterOrganizationId)});\n                        }\n                    }\n                    // if(this.coreService && this.coreService.isMasterEmployeeAuthenticated() && this.coreService.require_Customer && !req.headers.has(\"CustomerId\")){\n                    if(this.coreService && this.coreService.require_Customer && !req.headers.has(\"CustomerId\")){                        \n                        var strMasterCustomerId = this.coreService.getMasterCustomer();\n                        if(strMasterCustomerId && strMasterCustomerId.length > 0){\n                            req = req.clone({headers: req.headers.set(\"CustomerId\", strMasterCustomerId)});\n                        }\n                    }\n\n                    // if(this.coreService && this.coreService.isMasterEmployeeAuthenticated() && this.coreService.require_Vendor && !req.headers.has(\"VendorId\")){\n                    if(this.coreService && this.coreService.require_Vendor && !req.headers.has(\"VendorId\")){                        \n                        var strMasterVendorId = this.coreService.getMasterVendor();\n                        if(strMasterVendorId && strMasterVendorId.length > 0){\n                            req = req.clone({headers: req.headers.set(\"VendorId\", strMasterVendorId)});\n                        }\n                    }                      \n                    return next.handle(req);\n                }\n            }\n            else{\n                if(this.configService.log_httptrafic > 0)\n                    console.log({log: \"user not athenticated\", tokenValidUntil: this.coreService.tokenValidUntil, tokenExpiresAt: this.coreService.tokenExpiresAt, is: this.coreService.isTokenExpired, auth_header: this.coreService.authorizationHeader, user: this.coreService.user} );\n                return next.handle(req);                \n            }                       \n        } \n        else{\n            if(this.configService.log_httptrafic > 1)\n                console.log(\"not app request: \",  req);\n            return next.handle(req);\n        }       \n    }    \n}\n","import '@angular/localize/init';\nimport { Injectable } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { Observable, throwError, firstValueFrom  } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, map, timeout } from 'rxjs/operators';\n\nimport { MobicloudCoreService } from \"../services/mobicloud-core.service\";\n\n@Injectable()\nexport class UsernameValidator {\n\n    currentUserId: string |undefined;\n    debouncer: any |undefined;\n\n    constructor(protected httpClient: HttpClient, public coreService: MobicloudCoreService){  \n    }  \n    \n    checkUsername(control: UntypedFormControl): any {\n\n        clearTimeout(this.debouncer);\n    \n        return new Promise(resolve => {\n    \n          this.debouncer = setTimeout(() => {\n              let parameterString = `?username=${control.value}`;\n              if(this.currentUserId){\n                parameterString += `&currentUserId=${this.currentUserId}`;\n              }\n            this.executeFunction<boolean>(parameterString).then(response => {\n                response.subscribe((result) => {\n                    if(result){\n                      // console.log(\"user taken\");\n                        resolve({                          \n                            \"usernametaken\": true\n                          });\n                    } else{\n                      // console.log(\"user not taken\");\n                        resolve(null);\n                    }                    \n                });\n              }),\n              (err:any) => {                \n                  resolve({'usernametaken': true});\n                }\n        }, 1000);      \n    \n        });\n    }\n\n    async executeFunction<T>(parameterString: string = '', requestTimeout: number = 30000) : Promise<Observable<T>>{\n      console.log(`${this.coreService.configService.getMobiManagementDataUrl()}Employee/UsernameTaken()${parameterString}`);\n      return this.httpClient.get<any>(`${this.coreService.configService.getMobiManagementDataUrl()}Employee/UsernameTaken()${parameterString}`)\n        .pipe(timeout(requestTimeout), catchError(this.handleError))\n        .pipe(map(result => result['value']));     \n    }\n    \n    handleError(error:any) {\n      let errorMessage = '';\n      if (error && error.error && error.error.error){\n        //Get Json error\n        errorMessage = error.error.error;\n      }\n      else if(error && error.error instanceof ErrorEvent) {\n        // Get client-side error\n          errorMessage = error.error.message;\n      } \n      else {\n        // Get server-side error\n        errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\n      }\n\n      return throwError(() => errorMessage);\n    }   \n\n    async usernameValidation_devextreme(username: string, currentUserId?: string): Promise<void> {\n      const params = new URLSearchParams();\n      params.set('username', username);\n      if (currentUserId) {\n        params.set('currentUserId', currentUserId);\n      }\n    \n      const url = `${this.coreService.configService.getMobiManagementDataUrl()}Employee/UsernameTaken()?${params}`;\n      \n      try {\n        const res: any = await firstValueFrom(this.httpClient.get(url));\n        \n        res.isValid = !res.value;\n        if (res.isValid) {\n          res.message = $localize`:@@ValidationText-UsernameAvailable:Username is available`;\n          return res;\n        } else {\n          throw $localize`:@@ErrorText-UsernameTaken:Username is not available`;\n        }\n      } catch (error) {\n        console.error(error);\n        throw \"Error: Unable to validate username\";\n      }\n    }\n    \n    async usernameValidation_customer_devextreme(customerId: string, username: string, currentUserId?: string): Promise<void> {\n      const params = new URLSearchParams();\n      params.set('username', username);\n      if (currentUserId) {\n        params.set('currentUserId', currentUserId);\n      }\n    \n      const url = `${this.coreService.configService.getMobiManagementDataUrl()}Customer(${customerId})/UsernameTaken()?${params}`;\n      \n      try {\n        const res: any = await firstValueFrom(this.httpClient.get(url));\n        \n        res.isValid = !res.value;\n        if (res.isValid) {\n          res.message = $localize`:@@ValidationText-UsernameAvailable:Username is available`;\n          return res;\n        } else {\n          throw $localize`:@@ErrorText-UsernameTaken:Username is not available`;\n        }\n      } catch (error) {\n        console.error(error);\n        throw \"Error: Unable to validate username\";\n      }\n    }  \n    \n    async usernameValidation_vendor_devextreme(vendorId: string, username: string, currentUserId?: string): Promise<void> {\n      const params = new URLSearchParams();\n      params.set('username', username);\n      if (currentUserId) {\n        params.set('currentUserId', currentUserId);\n      }\n    \n      const url = `${this.coreService.configService.getMobiManagementDataUrl()}Vendor(${vendorId})/UsernameTaken()?${params}`;\n      \n      try {\n        const res: any = await firstValueFrom(this.httpClient.get(url));\n        \n        res.isValid = !res.value;\n        if (res.isValid) {\n          res.message = $localize`:@@ValidationText-UsernameAvailable:Username is available`;\n          return res;\n        } else {\n          throw $localize`:@@ErrorText-UsernameTaken:Username is not available`;\n        }\n      } catch (error) {\n        console.error(error);\n        throw \"Error: Unable to validate username\";\n      }\n    }\n\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MobicloudCoreComponent } from './mobicloud-core.component';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { TokenHttpInterceptor } from \"./token-http-interceptor\";\nimport { MobicloudConfigService } from \"./services/mobicloud-config.service\";\nimport { UsernameValidator } from \"./validators/username-validator\";\n\n@NgModule({\n  declarations: [MobicloudCoreComponent],\n  imports: [\n  ],\n  exports: [MobicloudCoreComponent]\n})\nexport class MobicloudCoreModule {\n\n  static forRoot(): ModuleWithProviders<MobicloudCoreModule> {\n    return {\n      ngModule: MobicloudCoreModule,\n      providers: [\n        {provide: HTTP_INTERCEPTORS, useClass: TokenHttpInterceptor, deps: [MobicloudConfigService], multi: true},\n        UsernameValidator\n      ]\n    };\n  }  \n }\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { MobicloudCoreService } from \"../services/mobicloud-core.service\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobiAuthenticationGuard implements CanActivate {\n\n  constructor(private router: Router, private coreService: MobicloudCoreService) { }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n\n    if (this.coreService.isAuthenticated()) {\n      return true;\n    }\n\n    this.coreService.signIn(state.url);\n    return false;\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { MobicloudCoreService } from \"../services/mobicloud-core.service\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobiOrganizationGuard implements CanActivate {\n\n  constructor(private router: Router, private coreService: MobicloudCoreService) { }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n    \n    const userProfile = this.coreService.mobiUserProfile();\n    \n    if (!userProfile) {\n      if (!this.coreService.isAuthenticated()) {\n        this.coreService.signIn(state.url);\n      }\n      return false;\n    }\n\n    return new Observable<boolean>((observer) => {\n      this.coreService.requireEmployeePermission(userProfile, (valid: boolean) => {\n        if (valid && this.coreService.isAuthenticated()) {\n          observer.next(true);\n          observer.complete();\n        } else {\n          if (!this.coreService.isAuthenticated()) {\n            this.coreService.signIn(state.url);\n          }\n          observer.next(false);\n          observer.complete();\n        }\n      });\n    });\n  }\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobiMasterUserGuard implements CanActivate {\n\n  constructor(private router: Router, private coreService: MobicloudCoreService) { }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n\n    const userProfile = this.coreService.mobiUserProfile();\n    \n    if (!userProfile) {\n      if (!this.coreService.isAuthenticated()) {\n        this.coreService.signIn(state.url);\n      }\n      return false;\n    }\n\n    return new Observable<boolean>((observer) => {\n      this.coreService.requireMasterPermission(userProfile, (valid: boolean) => {\n        if (valid && this.coreService.isAuthenticated()) {\n          observer.next(true);\n          observer.complete();\n        } else {\n          if (!this.coreService.isAuthenticated()) {\n            this.coreService.signIn(state.url);\n          }\n          observer.next(false);\n          observer.complete();\n        }\n      });\n    });\n  }\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobiMasterAdminGuard implements CanActivate {\n\n  constructor(private router: Router, private coreService: MobicloudCoreService) { }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n\n    const userProfile = this.coreService.mobiUserProfile();\n    \n    if (!userProfile) {\n      if (!this.coreService.isAuthenticated()) {\n        this.coreService.signIn(state.url);\n      }\n      return false;\n    }\n\n    return new Observable<boolean>((observer) => {\n      this.coreService.requireMasterAdminPermission(userProfile, (valid: boolean) => {\n        if (valid && this.coreService.isAuthenticated()) {\n          observer.next(true);\n          observer.complete();\n        } else {\n          if (!this.coreService.isAuthenticated()) {\n            this.coreService.signIn(state.url);\n          }\n          observer.next(false);\n          observer.complete();\n        }\n      });\n    });\n  }\n}\n\n//-------\n@Injectable({\n  providedIn: 'root'\n})\nexport class MasterOrganizationGuard implements CanActivate {\n  constructor(\n    private router: Router, \n    private coreService: MobicloudCoreService\n  ) {}\n\n  canActivate(\n    route: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot\n  ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n\n    const userProfile = this.coreService.mobiUserProfile();\n    \n    if (!userProfile) {\n      if (!this.coreService.isAuthenticated()) {\n        this.coreService.signIn(state.url);\n      }\n      return false;\n    }\n\n    // Convert the callback-based method to an Observable\n    return new Observable<boolean>((observer) => {\n      this.coreService.requireEmployeePermission(userProfile, (valid: boolean) => {\n        \n        if (valid && this.coreService.isAuthenticated()) {\n          if (this.coreService.isMasterUserAuthenticated()) {\n            const strMasterOrganizationId = localStorage.getItem(\"MasterOrganizationId\");\n            \n            if (strMasterOrganizationId && strMasterOrganizationId.length > 0) {\n              observer.next(true);\n              observer.complete();\n            } else {\n              this.router.navigateByUrl('/selectorganization');\n              observer.next(false);\n              observer.complete();\n            }\n          } else {\n            observer.next(true);\n            observer.complete();\n          }\n        } else {\n          if (!this.coreService.isAuthenticated()) {\n            this.coreService.signIn(state.url);\n          }\n          observer.next(false);\n          observer.complete();\n        }\n      });\n    });\n  }\n}","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { MobicloudCoreService } from \"../services/mobicloud-core.service\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobiB2BAuthenticationGuard implements CanActivate {\n\n  constructor(private router: Router, private coreService: MobicloudCoreService) { }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n\n    if (this.coreService.isB2BAuthenticated()) {\n      return true;\n    }\n\n    if (!this.coreService.isAuthenticated()) {\n      this.coreService.signIn(state.url);\n    }\n    \n    return false;\n  }\n\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobiCustomerUserAuthenticationGuard implements CanActivate {\n\n  constructor(private router: Router, private coreService: MobicloudCoreService) { }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n\n    if (this.coreService.isCustomerUserAuthenticated()) {\n      return true;\n    }\n\n    if (!this.coreService.isAuthenticated()) {\n      this.coreService.signIn(state.url);\n    }\n    \n    return false;\n  }\n\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobiVendorUserAuthenticationGuard implements CanActivate {\n\n  constructor(private router: Router, private coreService: MobicloudCoreService) { }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n\n    if (this.coreService.isVendorUserAuthenticated()) {\n      return true;\n    }\n\n    if (!this.coreService.isAuthenticated()) {\n      this.coreService.signIn(state.url);\n    }\n    \n    return false;\n  }\n\n}","export function convertToISODates_ODataValues (values: any, value_names: string[]){\n    for (const key in value_names) {\n      if(values[value_names[key]]){\n        if(!(values[value_names[key]] instanceof Date)){\n          values[value_names[key]] = new Date(values[value_names[key]]);\n        }\n        values[value_names[key]] = new Date(values[value_names[key]]).toISOString();\n      }\n    }    \n}\n\nexport function setZeroTime_ODataValues (values: any, value_names: string[]){\n  for (const key in value_names) {\n    if(values[value_names[key]]){\n      if(!(values[value_names[key]] instanceof Date)){\n        values[value_names[key]] = new Date(values[value_names[key]]);\n      }\n      // console.log(values[value_names[key]]);\n      values[value_names[key]].setUTCFullYear(values[value_names[key]].getFullYear());\n      values[value_names[key]].setUTCMonth(values[value_names[key]].getMonth());\n      values[value_names[key]].setUTCDate(values[value_names[key]].getDate());\n      values[value_names[key]].setUTCHours(0); \n      values[value_names[key]].setUTCMinutes(0);          \n      values[value_names[key]].setUTCSeconds(0);      \n      values[value_names[key]].setUTCMilliseconds(0);      \n      \n      // console.log(values[value_names[key]]);    \n      values[value_names[key]] = new Date(values[value_names[key]]).toISOString();\n    }\n  }    \n}\n\nexport function setZeroTime_ODataValues_original (values: any, value_names: string[]){\n  for (const key in value_names) {\n    if(values[value_names[key]]){\n      if(!(values[value_names[key]] instanceof Date)){\n        values[value_names[key]] = new Date(values[value_names[key]]);\n      }\n      // console.log(values[value_names[key]]);\n      values[value_names[key]].setFullYear(values[value_names[key]].getFullYear());\n      values[value_names[key]].setMonth(values[value_names[key]].getMonth());\n      values[value_names[key]].setDate(values[value_names[key]].getDate());\n      values[value_names[key]].setHours(0); \n      values[value_names[key]].setMinutes(0);          \n      values[value_names[key]].setSeconds(0);      \n      values[value_names[key]].setMilliseconds(0);      \n      \n      // console.log(values[value_names[key]].toISOString());\n    }\n  }    \n}\n\nexport function ensureDateEqual(date1: Date, date2: any) : Date|undefined{\n  if(date1){\n    if(!(date1 instanceof Date)){\n      date1 = new Date(date1);\n    }\n\n    if(date2){\n      if(!(date2 instanceof Date)){\n        date2 = new Date(date2);\n      }\n      var start = new Date(date2);        \n      start.setFullYear(date1.getFullYear());\n      start.setMonth(date1.getMonth());\n      start.setDate(date1.getDate());\n      return start;\n    }\n  }\n  return undefined;\n}\n\n//--- Grouping, Sorting and Filtering helper function\nexport function fullNameFilterExpression_Employee(this:any, filterValue: any, selectedFilterOperation: any, field: string | undefined) {\n  let column:any = this as any;\n  let filterExpression : any[]|undefined;\n\n  if(filterValue){\n    switch(selectedFilterOperation) { \n      case 'contains': {\n        if(field)\n          filterExpression = [[`${field}/FirstName`, selectedFilterOperation, filterValue], \"or\", [`${field}/LastName`, selectedFilterOperation, filterValue]]; \n        else\n          filterExpression = [[`FirstName`, selectedFilterOperation, filterValue], \"or\", [`LastName`, selectedFilterOperation, filterValue]]; \n        break; \n      } \n      case 'notcontains': {\n        if(field)\n          filterExpression = [[`${field}/FirstName`, selectedFilterOperation, filterValue], \"and\", [`${field}/LastName`, selectedFilterOperation, filterValue]]; \n        else\n          filterExpression = [[`FirstName`, selectedFilterOperation, filterValue], \"and\", [`LastName`, selectedFilterOperation, filterValue]]; \n        break; \n      }\n      case 'startswith': {\n        if(field)\n          filterExpression = [`${field}/FirstName`, selectedFilterOperation, filterValue];\n        else\n          filterExpression = [`FirstName`, selectedFilterOperation, filterValue];\n        break; \n      }          \n      case 'endswith': {\n        if(field)\n          filterExpression = [`${field}/LastName`, selectedFilterOperation, filterValue]; \n        else\n          filterExpression = [`LastName`, selectedFilterOperation, filterValue]; \n        break; \n      }               \n      default: { \n        break; \n      } \n  }       \n}\n\n  if(!filterExpression){\n    filterExpression = column.defaultCalculateFilterExpression.apply(column, arguments);\n  }\n\n  return filterExpression;\n}\n\n\nexport function dateFunctionFilterExpression(this:any, filterValue: any, selectedFilterOperation: any, field: string|undefined, odata_Function: string|undefined) {\n  let column:any = this as any;\n  let filterExpression : any[]|undefined;\n\n  if(filterValue){\n    switch(selectedFilterOperation) { \n      case '=': {\n        filterExpression = [[`${odata_Function}(${field})`, selectedFilterOperation, filterValue]]; \n        break; \n      } \n      case '<>': {\n        filterExpression = [[`${odata_Function}(${field})`, selectedFilterOperation, filterValue]]; \n        break; \n      }\n      case '<': {\n        //Less than\n        filterExpression = [`${odata_Function}(${field})`, selectedFilterOperation, filterValue];\n        break; \n      }          \n      case '>': {\n        //Greater than\n        filterExpression = [`${odata_Function}(${field})`, selectedFilterOperation, filterValue]; \n        break; \n      }               \n      default: { \n        break; \n      } \n  }       \n}\n\n  if(!filterExpression){\n    filterExpression = column.defaultCalculateFilterExpression.apply(column, arguments);\n  }\n\n  // console.log(\"date filter: \", filterExpression);\n  return filterExpression;\n}\n\nexport function getBlobUrl(storageAccountName: string, blobPath: string) : string{\n  const delim = blobPath.startsWith('/') ? '' : '/';\n  return `https://${storageAccountName}.blob.core.windows.net${delim}${blobPath}`;\n}\n\nexport function getProfileImageUrl(storageAccountName: string|undefined, blobContainerName: string|undefined, blobName: string|undefined) : string{\n  if(storageAccountName && blobContainerName && blobName){\n    return getBlobUrl(storageAccountName, blobContainerName + blobName);\n  }\n  return './assets/png/no-profile-img-32.png';\n}\n","export class LanguageInfo {\n    LocaleId?:          string;    \n    LanguageName?:      string;\n    FlagCode?:          string;\n}","export class ThemeInfo {\n    ThemeName?:          string;    \n    ThemeCaption?:      string;\n    Svg?:          string;\n}","export class Country {\n    Id?:                number;    \n    Enabled?:           boolean;\n    Code3?:             string;\n    Code2?:             string;\n    Name?:              string;\n    NameOfficial?:      string;\n    LocalName?:         string;\n    LocalNameOfficial?: string;    \n    Flag_32?:           string;\n    Flag_128?:          string;\n    Latitude?:          number;\n    Longitude?:         number;\n    zoom?:              number;\n    TradeArea?:         string;\n    Language?:          string;\n    Shipping_Require_State?:           boolean;    \n}\n\nexport class CountryState {\n    Id?:                number; \n    Name?:              string;\n    Name_Native?:              string;\n\n    CountryId?:                number; \n    CountryCode?:              string;\n    CountryName?:              string;\n    CountryLocalName?:              string;\n\n    StateCode?:              string;\n    Type?:              string;\n\n    Latitude?:          number;\n    Longitude?:         number;\n}\n\nexport class CountryCity {\n    Id?:                number; \n    Name?:              string;\n\n    StateId?:                number; \n    StateCode?:              string;\n    StateName?:              string;\n    StateName_Native?:              string;\n    \n    CountryId?:                number; \n    CountryCode?:              string;\n    CountryName?:              string;\n    CountryLocalName?:              string;\n\n    Latitude?:          number;\n    Longitude?:         number;\n}\n\nexport class CountryPostalCode {\n    Id?:                number; \n    Name?:              string;\n    PostalCode?:              string;\n\n    CountryId?:                number; \n    CountryCode?:              string;\n    CountryName?:              string;\n    CountryLocalName?:              string;\n\n    AdminName1?:              string;\n    AdminName1_Native?:       string;    \n    AdminCode1?:              string;\n    AdminName2?:              string;\n    AdminCode2?:              string;\n    AdminName3?:              string;\n    AdminCode3?:              string;\n\n    Latitude?:          number;\n    Longitude?:         number;\n}","export class OrganizationInfo {\n    OrganizationId:     string | undefined;\n    Name:               string | undefined;\n    Email:              string | undefined;    \n    AccountNumber:      string | undefined;\n\n    HashedPasswords:    boolean | undefined;\n    CertificateLogin:   boolean | undefined;\n    Demo:               boolean | undefined;\n    Active:             boolean | undefined;\n\n    PartnerId:          string | undefined;\n    PartnerName:        string | undefined;\n\n    StorageAccount:     StorageAccountInfo | undefined;\n}\n\nexport class StorageAccountInfo {\n    Key:                string | undefined;\n    Name:               string | undefined;\n}","export interface IToolbarItem {\n    name?: string;\n    caption: string;\n    svg: string;\n    link?: string|undefined;\n    linkstate?: any|undefined;\n    click?: string|undefined;\n    click_paramters?: any[]|undefined;\n    children?: IToolbarItem[]|undefined;\n    cssClass?: string | undefined;\n    cssClass_Icon?: string | undefined;\n    itemtype?: string | undefined;\n  }\n  \n  export interface IMenuNode {\n    name?: string;\n    caption: string;\n    svg: string;\n    svg_active: string;\n    link?: string|undefined;\n    linkstate?: any|undefined;\n    click?: string|undefined;\n    click_paramters?: any[]|undefined;    \n    children?: IMenuNode[]|undefined;\n  }\n\n  export enum MenuState {\n    OpenedNormal = \"OpenNormal\",\n    OpenCollapsed = \"OpenCollapsed\",\n    Closed = \"Closed\"\n  }"],"names":["i2.MobicloudConfigService","i1.MobicloudConfigService","i2.MobicloudCoreService","i1"],"mappings":";;;;;;;;;;;;MAYa,sBAAsB,CAAA;AAEjC,IAAA,WAAA,GAAA,EAAgB;IAEhB,QAAQ,GAAA;IACR;+GALW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARvB;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAIU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,QAAA,EACpB;;;;AAIT,EAAA,CAAA,EAAA;;;MCJU,eAAe,CAAA;AAOxB,IAAA,WAAA,CAAY,IAAe,EAAA;QAN3B,IAAA,CAAA,IAAI,GAAc,IAAI;AAOpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAQA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ;IAC5B;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,aAAa;IACjC;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,YAAY;IAChC;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU;IAC9B;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK;IACzB;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU;IAC9B;AAEA,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAG,IAAI,CAAC,IAAI;YACV,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC9C,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU;IAC9B;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO;IAC3B;AAEA,IAAA,IAAI,gBAAgB,GAAA;QAClB,IAAG,IAAI,CAAC,IAAI;AACV,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG;AACpC,QAAA,OAAO,KAAK;IACd;AAGA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG;IAChC;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI;IACjC;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ;IACrC;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK;IAClC;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS;IACtC;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO;IACpC;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS;IACtC;AAEA,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc;IAC3C;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS;IACtC;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI;IACjC;AAEA,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAG,IAAI,CAAC,UAAU;YAChB,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;AAC9C,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAG,IAAI,CAAC,UAAU;YAChB,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC;AAC7C,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,cAAc,GAAA;QAChB,IAAG,IAAI,CAAC,UAAU;YAChB,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC;AAC7C,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,oBAAoB,GAAA;QACtB,IAAG,IAAI,CAAC,UAAU;AAChB,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;AACpF,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW;IACxC;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa;IAC1C;AAIA,IAAA,IAAI,cAAc,GAAA;QAChB,IAAG,IAAI,CAAC,UAAU;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC7C,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO;IACpC;AAEA,IAAA,IAAI,2BAA2B,GAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY;IACzC;AAEA,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS;IACtC;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,IAAG,IAAI,CAAC,UAAU;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC7C,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,IAAG,IAAI,CAAC,UAAU;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC3C,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,aAAa,GAAA;QACf,IAAG,IAAI,CAAC,UAAU;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;AAChD,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO;IACpC;AAEA,IAAA,IAAI,yBAAyB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY;IACzC;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS;IACtC;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY;IACjD;AACD;;MC/LU,kBAAkB,CAAA;AAmC9B;MAEY,eAAe,CAAA;AAM3B;IAEW;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAEhC,IAAA,wBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,wBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,wBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACnB,CAAC,EANW,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;MAQvB,sBAAsB,CAAA;AAIlC;MAEY,gCAAgC,CAAA;AAI5C;IAEW;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAE3B,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,mBAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C;AACnD,CAAC,EAPW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;MASlB,kBAAkB,CAAA;AAI9B;MAEY,iBAAiB,CAAA;AAE7B;IAEW;AAAZ,CAAA,UAAY,yBAAyB,EAAA;AAEjC,IAAA,yBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,yBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,yBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACvB,CAAC,EALW,yBAAyB,KAAzB,yBAAyB,GAAA,EAAA,CAAA,CAAA;MAOxB,iBAAiB,CAAA;AAE7B;IAEW;AAAZ,CAAA,UAAY,2BAA2B,EAAA;AAEnC,IAAA,2BAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,2BAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC/B,CAAC,EAJW,2BAA2B,KAA3B,2BAA2B,GAAA,EAAA,CAAA,CAAA;MAM1B,aAAa,CAAA;AAGzB;MAEY,cAAc,CAAA;AAK1B;MAEY,YAAY,CAAA;AAIxB;IAEW;AAAZ,CAAA,UAAY,WAAW,EAAA;AAEnB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACrB,CAAC,EALW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;MAOV,oBAAoB,CAAA;AAWhC;MAEY,mBAAmB,CAAA;AAO/B;;MCtIY,sBAAsB,CAAA;AAyBjC,IAAA,WAAA,CAAoB,IAAgB,EAAU,QAAkB,EAA4B,QAAgB,EAAA;QAAxF,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAsB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAsC,IAAA,CAAA,QAAQ,GAAR,QAAQ;QArB7F,IAAA,CAAA,YAAY,GAAW,EAAE;QACzB,IAAA,CAAA,SAAS,GAAW,EAAE;QACtB,IAAA,CAAA,UAAU,GAAW,EAAE;QACvB,IAAA,CAAA,YAAY,GAAW,EAAE;QACzB,IAAA,CAAA,oBAAoB,GAAW,EAAE;QACjC,IAAA,CAAA,8BAA8B,GAAW,EAAE;QAC3C,IAAA,CAAA,SAAS,GAAW,EAAE;QACtB,IAAA,CAAA,YAAY,GAAW,EAAE;QACzB,IAAA,CAAA,eAAe,GAAW,EAAE;QAC5B,IAAA,CAAA,eAAe,GAAW,EAAE;QAC5B,IAAA,CAAA,mBAAmB,GAAW,EAAE;QAChC,IAAA,CAAA,mBAAmB,GAAW,EAAE;QAChC,IAAA,CAAA,YAAY,GAAW,EAAE;QACzB,IAAA,CAAA,SAAS,GAAY,KAAK;QAC1B,IAAA,CAAA,eAAe,GAAW,CAAC;QAC3B,IAAA,CAAA,eAAe,GAAsB,KAAK;AAEjD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAS,EAAE,CAAC;AAEpC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAS,EAAE,CAAC;AAG/B,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ;QAC3B,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,eAAe,CAAC;AAE1D,QAAA,IAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAI;AAC1B,YAAA,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC;QACpC;QACA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D;AAEA,IAAA,uBAAuB,CAAC,WAAmB,EAAA;AACzC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AAC5B,QAAA,OAAO,cAAc,CACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,WAAW,MAAM,SAAS,CAAA,CAAE,CAAC,CAAC,IAAI,CAC3D,GAAG,CAAC,MAAM,IAAI,CAAC,EACf,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAC5B,CACF;IACH;IAEA,MAAM,aAAa,CAAC,WAAmB,EAAA;QACrC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,yBAAyB;AAClF,cAAE;AACF,cAAE,CAAA,SAAA,EAAY,WAAW,CAAA,CAAE;QAE7B,MAAM,UAAU,GAAG,MAAM,cAAc,CACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,eAAe,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA,CAAE,CAAC,CACpD;AAED,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC;AAC/B,QAAA,OAAO,UAAU;IACnB;AAGA,IAAA,eAAe,CAAC,MAAc,EAAA;AAC5B,QAAA,IAAG,MAAM,IAAI,IAAI,EAAC;YAChB,OAAO,SAAS,CAAA,CAAA,yBAAA,CAA2B;QAC7C;aACI;YACF,OAAO,SAAS,CAAA,CAAA,6BAAA,CAA+B;QACjD;IACF;AAEA,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,IAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAC;AACrB,YAAA,OAAO,IAAI;QACf;AACK,aAAA,IAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAC;AAC/B,YAAA,OAAO,IAAI;QACb;aACK;YACH,OAAO,IAAI,CAAC,QAAQ;QACtB;IACF;IAEA,qBAAqB,GAAA;AAEnB,QAAA,MAAM,SAAS,GAAmB,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AAChM,QAAA,OAAO,SAAS;IAClB;IAEA,aAAa,GAAA;AACX,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,oBAAoB,EAAE;IACvC;IAEA,mBAAmB,GAAA;AACjB,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,8BAA8B,EAAE;IACjD;IAEA,aAAa,GAAA;AACX,QAAA,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM;IACtC;IAEA,wBAAwB,GAAA;AACtB,QAAA,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,iBAAiB;IACjD;IAEA,gBAAgB,GAAA;AACd,QAAA,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa;IAC7C;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;IAC7B;AAEA,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;IAC7B;AAEA,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB;IACjC;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,IAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAI;YAC1B,OAAO,IAAI,CAAC,QAAQ;QACtB;aACI;YACF,OAAO,IAAI,CAAC,WAAW;QACzB;IACF;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,iBAAiB;IAC/C;AAEA,IAAA,IAAI,wBAAwB,GAAA;AAC1B,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,wBAAwB;IACtD;AAEA,IAAA,IAAI,6BAA6B,GAAA;AAC/B,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,kBAAkB;IAChD;AAEA,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB;IACjC;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;IAC7B;AAEA,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;IAC7B;AAtLW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,oEAyByC,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAzBxE,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BA0BoE,MAAM;2BAAC,SAAS;;;MCvBxE,oBAAoB,CAAA;IAoB/B,WAAA,CAAsB,UAAsB,EAAS,aAAqC,EAAA;QAApE,IAAA,CAAA,UAAU,GAAV,UAAU;QAAqB,IAAA,CAAA,aAAa,GAAb,aAAa;QAlB3D,IAAA,CAAA,WAAW,GAAW,EAAE;QACxB,IAAA,CAAA,QAAQ,GAAW,EAAE;QACrB,IAAA,CAAA,SAAS,GAAW,EAAE;QAEtB,IAAA,CAAA,oBAAoB,GAAW,IAAI;QACnC,IAAA,CAAA,gBAAgB,GAAW,KAAK;QAChC,IAAA,CAAA,cAAc,GAAW,KAAK;AAIrC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAc,IAAI,CAAC;AAChC,QAAA,IAAA,CAAA,eAAe,GAAE,MAAM,CAA8B,SAAS,CAAC;AAC/D,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAiC,SAAS,CAAC;AACtE,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAA6B,SAAS,CAAC;AAC9D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAmC,SAAS,CAAC;AAExD,QAAA,IAAA,CAAA,WAAW,GAA2H,IAAI,YAAY,EAA4G;AAsnBzQ,QAAA,IAAA,CAAA,uBAAuB,GAA6C;AAClE,YAAA,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC;AAClC,YAAA,CAAC,wBAAwB,CAAC,SAAS,GAAG,CAAC;AACvC,YAAA,CAAC,wBAAwB,CAAC,UAAU,GAAG,CAAC;AACxC,YAAA,CAAC,wBAAwB,CAAC,KAAK,GAAG;SACnC;QAxnBC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QACpE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;AAExE,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,GAAG,CAAC,MAAM,GAAG,OAAO;AACpB,YAAA,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;QACvB;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAC5B;YACE,SAAS,EAAE,aAAa,CAAC,cAAc;YACvC,SAAS,EAAE,aAAa,CAAC,cAAc;YACvC,aAAa,EAAE,aAAa,CAAC,kBAAkB;YAC/C,YAAY,EAAE,aAAa,CAAC,iBAAiB;YAC7C,wBAAwB,EAAE,aAAa,CAAC,6BAA6B;YACrE,aAAa,EAAE,aAAa,CAAC,kBAAkB;YAC/C,KAAK,EAAE,aAAa,CAAC,WAAW;AAChC,YAAA,oBAAoB,EAAE,IAAI;AAC1B,YAAA,YAAY,EAAE,IAAI;YAClB,mBAAmB,EAAE,aAAa,CAAC;AACpC,SAAA,CACF;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC;AAElE,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE;QAC5B;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;QAE9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAe,KAAI;AAC9C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,YAAA,IAAG,KAAK;gBACN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;;AAEpD,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;AAErC,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ;AAC5B,gBAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAE/G,YAAA,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,MAAK;AAE7B,gBAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ;AAC5B,oBAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,wBAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAChH,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,sBAAsB,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,QAAA,IAAG,KAAK;YACN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;;AAEpD,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;AAErC,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/F;QACA,IAAI,CAAC,aAAa,EAAE;IACtB;IAEA,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE;AAEpB,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1F;IACF;AAEU,IAAA,MAAM,aAAa,GAAA;AAE3B,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAClG;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AAEf,YAAA,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE;AAClD,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ;gBAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,EAAC,SAAS,CAAC;AAGrD,YAAA,IAAI,oBAAoB,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE;AACzD,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,0BAA0B,EAAC,oBAAoB,CAAC;AAC7E,gBAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,mBAAmB,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1E;AAGA,YAAA,IAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAC;AACnB,gBAAA,IAAI,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE;AAC/C,gBAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,qBAAqB,EAAC,eAAe,CAAC;AACnE,oBAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChE;YACF;QACF;aACK;AACH,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;AAClC,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;QACxC;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,EAAC,CAAC;IACpH;AAGA,IAAA,MAAM,qBAAqB,CAAC,cAAA,GAAsB,KAAK,EAAA;AACrD,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;AAC3B,YAAA,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC;AAClE,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;AACtC,YAAA,OAAO,SAAS;QAClB;QAEA,IAAI,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;AACrE,YAAA,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC;AAC9E,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;AACtC,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAA,kBAAA,CAAoB;AACrE,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU;iBAC1B,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;iBACtC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;YAE7C,MAAM,UAAU,GAAG,MAAM,cAAc,CACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAqB,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAC3D,OAAO,CAAC,cAAc,CAAC,EAAC,KAAK,CAAC;AAC5B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,cAAc,EAAE;aACjB,CAAC,CACH,CACF;AAED,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AACvC,YAAA,OAAO,UAAU;QAEnB;QACA,OAAO,KAAU,EAAE;AACjB,YAAA,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC;AACpD,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;AACtC,YAAA,MAAM,KAAK;QACb;IACF;AAEA,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAA,OAAA,CAAS;AAErE,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAyB,MAAM,cAAc,CACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAwB,GAAG,EAAE;AAC9C,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,iBAAiB;AAC5B,oBAAA,UAAU,EAAE,MAAM;AAClB,oBAAA,SAAS,EAAE;AACZ;aACF,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,KAAK,CAAC;AAC3B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,cAAc,EAAE;aACjB,CAAC,CAAC,CACJ;YAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAe,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpG,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;AAEjC,YAAA,OAAO,aAAa;QAEtB;QACA,OAAO,KAAS,EAAE;AAChB,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAEpB,YAAA,MAAM,KAAK;QACb;IACF;AAEA,IAAA,MAAM,iBAAiB,CAAC,cAAA,GAAsB,KAAK,EAAA;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE;AAC/D,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,gBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE;gBACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,EAAC,OAAO,CAAC;YACrD;AACA,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;AAClC,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,IAAI,GAAoB;AACxB,QAAA,IAAI,cAA+B;AACnC,QAAA,IAAG,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,EAAC;AACxC,YAAA,IAAG,IAAI,CAAC,eAAe,EAAE,EAAE,oBAAoB,EAAC;gBAC9C,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE;AACrE,gBAAA,IAAG,WAAW,IAAI,SAAS,EAAC;oBAC1B,cAAc,GAAG,WAAW;gBAC9B;AACA,gBAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,cAAc,CAAC;gBACvF;YAEF;AACA,YAAA,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAA,SAAA,EAAY,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,wEAAwE;QAC3K;AACK,aAAA,IAAG,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,EAAC;AAC7C,YAAA,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAA,aAAA,EAAgB,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,wEAAwE;QAC/K;AACK,aAAA,IAAG,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,EAAC;AAC3C,YAAA,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAA,WAAA,EAAc,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,wEAAwE;QAC7K;QACA,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,gBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE;gBACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,CAAC;YACrD;AACA,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;AAClC,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,IAAI;AAEF,YAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE;YAC/B,IAAG,cAAc,EAAC;gBAChB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC;YACzD;AAEA,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAG,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,EAAE,OAAO,CAAC;YACtD;AAEA,YAAA,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CACpE,OAAO,CAAC,cAAc,CAAC,CACxB,CACF;AAED,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,EAAE,MAAM,CAAC;YACpD;AAEA,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACrC,gBAAA,OAAO,SAAS;YAClB;YACA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7B,MAAM,eAAe,GAAI,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,EAAE,EAAE;AAC3D,gBAAA,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;AAClB,gBAAA,IAAI,EAAE;AACP,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC;AAExC,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,CAAC;YACrE;AAEA,YAAA,OAAO,eAAe;QAExB;QAAE,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC;AAChD,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;AAClC,YAAA,OAAO,SAAS;QAClB;IACF;IAKO,MAAM,MAAM,CAAC,WAAmB,EAAA;AACrC,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC;QACpC;QACA,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAE,CAAC,MAAW,KAAI;AAE7G,YAAA,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAC5E,YAAA,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;AAC1B,QAAA,CAAC,CAAC;AACF,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9E;AACA,QAAA,OAAO,MAAM;IACf;AAEO,IAAA,MAAM,cAAc,GAAA;QACzB,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,IAAI,IAAI;AAChE,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3E;AACA,QAAA,OAAO,KAAK;IACd;AAIO,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC7B;AACA,QAAA,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,KAAU,KAAI;AAEhE,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,gBAAA,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YACnF;AACA,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC9B,QAAA,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC,MAAW,KAAI;AAExB,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAClF,YAAA,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;AAC1B,QAAA,CAAC,CAAC;AAEJ,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QACpF;AACA,QAAA,OAAO,MAAM;IACf;AAEO,IAAA,gBAAgB,CAAC,KAAW,EAAA;AACjC,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7E;IACF;AAEO,IAAA,MAAM,oBAAoB,GAAA;AAC/B,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1E;QACA,IAAI,MAAM,GAAI,MAAM,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE;AAExD,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QACpF;AACA,QAAA,OAAO,MAAM;IACf;AAIO,IAAA,MAAM,OAAO,GAAA;AAClB,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7D;AACA,QAAA,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE;IAC9C;AAEO,IAAA,MAAM,eAAe,GAAA;AAC1B,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrE;IACF;IAEA,mBAAmB,GAAA;AACjB,QAAA,IAAG,IAAI,CAAC,OAAO,EAAC;YASd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,MAAK;AACvC,gBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAClC,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAK;AAC9C,gBAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;AACzC,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAK;AAC7C,gBAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AACrC,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,KAAY,KAAI;AACvD,gBAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC;AAC7C,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAK;AACxC,gBAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC;AACnD,gBAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC;AAG9C,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAK;AAC3C,gBAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;AAC3C,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAK;AAC7C,gBAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;AAC7C,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAK;AAChD,gBAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC;AAChD,YAAA,CAAC,CAAC;QACJ;IACF;IAIO,eAAe,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO;IACrD;IAEO,2BAA2B,GAAA;AAChC,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,mBAAmB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC;IAC1M;IAEO,iCAAiC,GAAA;AACtC,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,mBAAmB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE;IAChP;IAEO,+BAA+B,GAAA;QACpC,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,mBAAmB,CAAC;IAChK;IAEO,qCAAqC,GAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,mBAAmB,CAAC,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE;IACtM;IAEO,sCAAsC,GAAA;QAC3C,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,mBAAmB,CAAC,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE;IACxJ;IAEO,uBAAuB,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,mBAAmB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC;IAC1M;IAEO,iCAAiC,GAAA;QACtC,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,oBAAoB,CAAC;IACnH;IAEO,6BAA6B,GAAA;AAClC,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,mBAAmB,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE;IAChP;IAEO,2BAA2B,GAAA;QAChC,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC;IAC7G;IAEO,iCAAiC,GAAA;QACtC,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE;IACnJ;IAEO,yBAAyB,GAAA;QAC9B,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC;IAC3G;IAEO,+BAA+B,GAAA;QACpC,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE;IACjJ;IAEO,kBAAkB,GAAA;QACvB,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,2BAA2B,EAAE,IAAI,IAAI,CAAC,2BAA2B,EAAE,IAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;IAChJ;IAEO,wBAAwB,GAAA;QAC7B,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,2BAA2B,EAAE,IAAI,IAAI,CAAC,2BAA2B,EAAE,IAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE;IACpL;IAEO,yBAAyB,GAAA;QAC9B,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC;IACpJ;IAEO,0BAA0B,GAAA;QAC/B,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC;IAC5G;IAEO,YAAY,GAAA;AACjB,QAAA,IAAG,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,EAAC;YAClG,OAAO,wBAAwB,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,YAAqD,CAAC;QAChH;AACA,QAAA,OAAO,SAAS;IAClB;IAEO,qBAAqB,GAAA;QAC1B,IAAI,uBAAuB,GAAG,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC;QAC1E,IAAG,uBAAuB,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAC;AAC/D,YAAA,OAAO,IAAI;QACb;aACI;AACF,YAAA,OAAO,KAAK;QACd;IACF;IAEO,qBAAqB,GAAA;QAC1B,IAAI,uBAAuB,GAAG,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC;AAC1E,QAAA,OAAO,uBAAuB;IAChC;IAEO,MAAM,qBAAqB,CAAC,uBAAoC,EAAA;QACrE,IAAG,uBAAuB,EAAC;AACzB,YAAA,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;AACrE,YAAA,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE;AACnD,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ;gBAC5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,WAAW,EAAE,UAAU,CAAC;QACjE;aACI;YACF,IAAI,CAAC,wBAAwB,EAAE;QAEjC;IACF;IAEO,wBAAwB,GAAA;AAC7B,QAAA,YAAY,CAAC,UAAU,CAAC,sBAAsB,CAAC;IACjD;IAEO,iBAAiB,GAAA;QACtB,IAAI,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAClE,IAAG,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAC;AACvD,YAAA,OAAO,IAAI;QACb;aACI;AACF,YAAA,OAAO,KAAK;QACd;IACF;IAEO,iBAAiB,GAAA;QACtB,IAAI,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAClE,QAAA,OAAO,mBAAmB;IAC5B;AAEO,IAAA,iBAAiB,CAAC,mBAAgC,EAAA;QACvD,IAAG,mBAAmB,EAAC;AACrB,YAAA,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;QAC/D;aACI;YACF,IAAI,CAAC,oBAAoB,EAAE;QAC7B;IACF;IAEO,oBAAoB,GAAA;AACzB,QAAA,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC;IAC7C;IAEO,eAAe,GAAA;QACpB,IAAI,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC9D,IAAG,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAC;AACnD,YAAA,OAAO,IAAI;QACb;aACI;AACF,YAAA,OAAO,KAAK;QACd;IACF;IAEO,eAAe,GAAA;QACpB,IAAI,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;AAC9D,QAAA,OAAO,iBAAiB;IAC1B;AAEO,IAAA,eAAe,CAAC,iBAA8B,EAAA;QACnD,IAAG,iBAAiB,EAAC;AACnB,YAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;QAC3D;aACI;YACF,IAAI,CAAC,kBAAkB,EAAE;QAC3B;IACF;IAEO,kBAAkB,GAAA;AACvB,QAAA,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAC3C;IAEO,WAAW,GAAA;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW;IACxC;AAEA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,IAAI,EAAE;IACxC;AAEA,IAAA,IAAW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,IAAI,EAAE,EAAE;IAChF;AAEA,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,IAAG,IAAI,CAAC,IAAI,EAAE,EAAC;YACb,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU;AACxC,YAAA,IAAG,UAAU;AACX,gBAAA,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACtC;AACA,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,IAAW,eAAe,GAAA;AACxB,QAAA,IAAG,IAAI,CAAC,IAAI,EAAE,EAAC;YACb,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU;AACxC,YAAA,IAAG,UAAU;gBACX,OAAO,IAAI,IAAI,CAAC,CAAC,UAAU,GAAE,GAAG,IAAI,IAAI,CAAC;QAC7C;AACA,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,IAAG,IAAI,CAAC,IAAI,EAAE,EAAC;YACb,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU;AACxC,YAAA,IAAG,UAAU;gBACX,OAAO,UAAU,IAAI,GAAG;QAC5B;AACA,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,WAAW,CAAC,KAAS,EAAA;QACnB,IAAI,YAAY,GAAG,EAAE;AACrB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAC;AAE5C,YAAA,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK;QAClC;aACK,IAAG,KAAK,IAAI,KAAK,CAAC,KAAK,YAAY,UAAU,EAAE;AAEhD,YAAA,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO;QACtC;aACK;YAEH,YAAY,GAAG,CAAA,YAAA,EAAe,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,OAAO,CAAA,CAAE;QACzE;AAEA,QAAA,IAAI,UAAU,GAAW,sCAAsC,CAAC,YAAY,CAAC;QAC7E,IAAG,UAAU,EAAC;YACZ,QAAQ,CAAC,MAAM,EAAE;QACnB;AACA,QAAA,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC;IAChC;IAUA,yBAAyB,CAAC,eAA+B,EAAE,QAAA,GAAgD,SAAS,EAAE,YAAA,GAAwC,wBAAwB,CAAC,IAAI,EAAA;AACzL,QAAA,IAAI,KAAK,IAAI,eAAe,CAAC,kBAAkB;AACjC,YAAA,eAAe,CAAC,mBAAmB;aAClC,eAAe,CAAC,YAAY,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAG,CAAC,KAAK,EAAC;AACR,YAAA,KAAK,GAAG,eAAe,CAAC,cAAc,IAAI,KAAK;YAC/C,IAAG,KAAK,EAAC;AACP,gBAAA,IAAI,gBAAgB,GAAG,wBAAwB,CAAC,IAAI;AACpD,gBAAA,IAAG,eAAe,CAAC,YAAY,EAAC;AAC9B,oBAAA,gBAAgB,GAAG,wBAAwB,CAAC,eAAe,CAAC,YAAqD,CAAC;gBACpH;AACA,gBAAA,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC;YACtG;QACF;QACA,IAAG,QAAQ,EAAC;AACV,YAAA,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;QAC1B;QACA,OAAO,KAAK,IAAI,KAAK;IACvB;AAEA,IAAA,uBAAuB,CAAC,eAA+B,EAAE,QAAA,GAAgD,SAAS,EAAA;AAChH,QAAA,IAAI,KAAK,IAAI,eAAe,CAAC,kBAAkB;AACjC,YAAA,eAAe,CAAC,mBAAmB;aAClC,eAAe,CAAC,YAAY,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAG,QAAQ,EAAC;AACV,YAAA,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;QAC1B;QACA,OAAO,KAAK,IAAI,KAAK;IACvB;AAEA,IAAA,wBAAwB,CAAC,eAA+B,EAAE,QAAA,GAAgD,SAAS,EAAA;AACjH,QAAA,IAAI,KAAK,IAAI,eAAe,CAAC,mBAAmB;aACjC,eAAe,CAAC,YAAY,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAG,QAAQ,EAAC;AACV,YAAA,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;QAC1B;QACA,OAAO,KAAK,IAAI,KAAK;IACvB;AAEA,IAAA,uBAAuB,CAAC,eAA+B,EAAE,QAAA,GAAgD,SAAS,EAAA;QAChH,IAAI,KAAK,IAAI,eAAe,CAAC,YAAY,IAAI,eAAe,CAAC,aAAa,CAAC;QAC3E,IAAG,QAAQ,EAAC;AACV,YAAA,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;QAC1B;QACA,OAAO,KAAK,IAAI,KAAK;IACvB;AAEA,IAAA,4BAA4B,CAAC,eAA+B,EAAE,QAAA,GAAgD,SAAS,EAAA;AACrH,QAAA,IAAI,KAAK,GAAG,eAAe,CAAC,aAAa;QACzC,IAAG,CAAC,KAAK,EAAC;AACR,YAAA,IAAI,gBAAgB,GAAG,CAAC,eAAe,CAAC,YAAY,IAAI,KAAK,MAAM,eAAe,CAAC,cAAc,IAAI,KAAK,CAAC;YAC3G,IAAG,gBAAgB,EAAC;AAClB,gBAAA,IAAI,gBAAgB,GAAG,wBAAwB,CAAC,IAAI;AACpD,gBAAA,IAAG,eAAe,CAAC,YAAY,EAAC;AAC9B,oBAAA,gBAAgB,GAAG,wBAAwB,CAAC,eAAe,CAAC,YAAqD,CAAC;gBACpH;AACA,gBAAA,KAAK,IAAI,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAC1H;QACF;QACA,IAAG,QAAQ,EAAC;AACV,YAAA,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;QAC1B;QACA,OAAO,KAAK,IAAI,KAAK;IACvB;+GA9sBW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;AAotBK,SAAU,sCAAsC,CAAC,YAAmB,EAAA;IACxE,IAAI,UAAU,GAAW,KAAK;AAE9B,IAAA,IAAG,YAAY,KACb,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,IAAI,CAAC;AACvE,QAAA,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC,CACpE,EAAC;QAGA,IAAI,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC;QAC9D,IAAG,WAAW,EAAC;AACb,YAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,WAAW,CAAC;AAC1D,YAAA,YAAY,CAAC,UAAU,CAAC,sBAAsB,CAAC;YAC/C,UAAU,GAAG,IAAI;QACnB;QAEA,IAAI,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACzD,IAAG,UAAU,EAAC;AACZ,YAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,UAAU,CAAC;AACrD,YAAA,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAC3C,UAAU,GAAG,IAAI;QACnB;QAEA,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACrD,IAAG,QAAQ,EAAC;AACV,YAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,CAAC;AACjD,YAAA,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC;YACzC,UAAU,GAAG,IAAI;QACnB;IACF;AAEA,IAAA,OAAO,UAAU;AACnB;;MCpvBa,oBAAoB,CAAA;AAI7B,IAAA,WAAA,CAAsB,aAAqC,EAAA;QAArC,IAAA,CAAA,aAAa,GAAb,aAAa;IAEnC;IAEA,SAAS,CAAC,GAAqB,EAAE,IAAiB,EAAA;AAG9C,QAAA,IAAG,CAAC,IAAI,CAAC,aAAa,EAAE,oBAAoB,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,8BAA8B,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,EAAC;AACtO,YAAA,IAAG,IAAI,CAAC,WAAW,KAAK,SAAS,EAAC;AAC9B,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAC/E;YAEA,IAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,EAAC;AACrC,gBAAA,OAAO,CAAC,GAAG,CAAC,EAAC,GAAG,EAAE,gCAAgC,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC;YACtE;AAOA,YAAA,MAAM,QAAQ,GAAW,IAAI,CAAC,aAAa,CAAC,eAAe;AAE3D,YAAA,IAAI,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC1C,gBAAA,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ;AAC9C,iBAAA,CAAC;YACN;AACA,YAAA,IAAI,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;AAC7C,gBAAA,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;AACd,oBAAA,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;AACrE,iBAAA,CAAC;YACN;YACA,IAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,EAAC;AACrC,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YACpB;YACA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAC;AACtD,gBAAA,IAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;AAChC,oBAAA,IAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC;wBACpC,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,kCAAkC,EAAE,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAC,CAAE;AACrR,oBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAC7C,SAAS,CAAC,CAAC,IAAI,KAAI;AACf,wBAAA,IAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC;4BACpC,OAAO,CAAC,GAAG,CAAC,EAAC,GAAG,EAAE,kCAAkC,EAAE,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAC,CAAE;wBACzR,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,mBAAmB,IAAI,EAAE,CAAC,EAAC,CAAC;wBAGzG,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAC;4BAC/F,IAAI,uBAAuB,GAAG,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;4BACtE,IAAG,uBAAuB,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAC;gCAC7D,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,EAAC,CAAC;4BAC1F;wBACJ;wBAGA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;4BACvF,IAAI,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE;4BAC9D,IAAG,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAC;gCACrD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAC,CAAC;4BAClF;wBACJ;wBAGA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAC;4BACnF,IAAI,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;4BAC1D,IAAG,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAC;gCACjD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAC,CAAC;4BAC9E;wBACJ;AAEA,wBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBACvB,CAAC,CAAC,CACT;gBACL;qBACI;AACA,oBAAA,IAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC;wBACpC,OAAO,CAAC,GAAG,CAAC,EAAC,GAAG,EAAE,mBAAmB,EAAE,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAC,CAAE;oBACrQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;wBACnC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,IAAI,EAAE,CAAC,EAAC,CAAC;oBAC5G;oBAEA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAC;wBAC/F,IAAI,uBAAuB,GAAG,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;wBACtE,IAAG,uBAAuB,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAC;4BAC7D,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,EAAC,CAAC;wBAC1F;oBACJ;oBAEA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;wBACvF,IAAI,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE;wBAC9D,IAAG,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAC;4BACrD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAC,CAAC;wBAClF;oBACJ;oBAGA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAC;wBACnF,IAAI,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;wBAC1D,IAAG,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAC;4BACjD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAC,CAAC;wBAC9E;oBACJ;AACA,oBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC3B;YACJ;iBACI;AACA,gBAAA,IAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,EAAC,GAAG,EAAE,uBAAuB,EAAE,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAC,CAAE;AACzQ,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAC3B;QACJ;aACI;AACA,YAAA,IAAG,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC;AACpC,gBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAG,GAAG,CAAC;AAC1C,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B;IACJ;+GAxHS,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAApB,oBAAoB,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;;MCFY,iBAAiB,CAAA;IAK1B,WAAA,CAAsB,UAAsB,EAAS,WAAiC,EAAA;QAAhE,IAAA,CAAA,UAAU,GAAV,UAAU;QAAqB,IAAA,CAAA,WAAW,GAAX,WAAW;IAChE;AAEA,IAAA,aAAa,CAAC,OAA2B,EAAA;AAErC,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAE5B,QAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAE3B,YAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAK;AAC7B,gBAAA,IAAI,eAAe,GAAG,CAAA,UAAA,EAAa,OAAO,CAAC,KAAK,EAAE;AAClD,gBAAA,IAAG,IAAI,CAAC,aAAa,EAAC;AACpB,oBAAA,eAAe,IAAI,CAAA,eAAA,EAAkB,IAAI,CAAC,aAAa,EAAE;gBAC3D;gBACF,IAAI,CAAC,eAAe,CAAU,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAG;AAC3D,oBAAA,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;wBAC1B,IAAG,MAAM,EAAC;AAEN,4BAAA,OAAO,CAAC;AACJ,gCAAA,eAAe,EAAE;AAClB,6BAAA,CAAC;wBACR;6BAAM;4BAEF,OAAO,CAAC,IAAI,CAAC;wBACjB;AACJ,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;oBACF,CAAC,GAAO,KAAI;AACR,wBAAA,OAAO,CAAC,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC;AAClC,oBAAA,CAAC;YACT,CAAC,EAAE,IAAI,CAAC;AAER,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,MAAM,eAAe,CAAI,kBAA0B,EAAE,EAAE,iBAAyB,KAAK,EAAA;AACnF,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAA,wBAAA,EAA2B,eAAe,CAAA,CAAE,CAAC;AACrH,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAA,wBAAA,EAA2B,eAAe,EAAE;AACrI,aAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAC1D,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC;AAEA,IAAA,WAAW,CAAC,KAAS,EAAA;QACnB,IAAI,YAAY,GAAG,EAAE;AACrB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAC;AAE5C,YAAA,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK;QAClC;aACK,IAAG,KAAK,IAAI,KAAK,CAAC,KAAK,YAAY,UAAU,EAAE;AAEhD,YAAA,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO;QACtC;aACK;YAEH,YAAY,GAAG,CAAA,YAAA,EAAe,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,OAAO,CAAA,CAAE;QACzE;AAEA,QAAA,OAAO,UAAU,CAAC,MAAM,YAAY,CAAC;IACvC;AAEA,IAAA,MAAM,6BAA6B,CAAC,QAAgB,EAAE,aAAsB,EAAA;AAC1E,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;AACpC,QAAA,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;QAChC,IAAI,aAAa,EAAE;AACjB,YAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC;QAC5C;AAEA,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAA,yBAAA,EAA4B,MAAM,EAAE;AAE5G,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAQ,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/D,YAAA,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK;AACxB,YAAA,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,gBAAA,GAAG,CAAC,OAAO,GAAG,SAAS,CAAA,2DAA2D;AAClF,gBAAA,OAAO,GAAG;YACZ;iBAAO;gBACL,MAAM,SAAS,CAAA,CAAA,oDAAA,CAAsD;YACvE;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,YAAA,MAAM,oCAAoC;QAC5C;IACF;AAEA,IAAA,MAAM,sCAAsC,CAAC,UAAkB,EAAE,QAAgB,EAAE,aAAsB,EAAA;AACvG,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;AACpC,QAAA,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;QAChC,IAAI,aAAa,EAAE;AACjB,YAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC;QAC5C;AAEA,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAA,SAAA,EAAY,UAAU,CAAA,kBAAA,EAAqB,MAAM,EAAE;AAE3H,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAQ,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/D,YAAA,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK;AACxB,YAAA,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,gBAAA,GAAG,CAAC,OAAO,GAAG,SAAS,CAAA,2DAA2D;AAClF,gBAAA,OAAO,GAAG;YACZ;iBAAO;gBACL,MAAM,SAAS,CAAA,CAAA,oDAAA,CAAsD;YACvE;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,YAAA,MAAM,oCAAoC;QAC5C;IACF;AAEA,IAAA,MAAM,oCAAoC,CAAC,QAAgB,EAAE,QAAgB,EAAE,aAAsB,EAAA;AACnG,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;AACpC,QAAA,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;QAChC,IAAI,aAAa,EAAE;AACjB,YAAA,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC;QAC5C;AAEA,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAA,OAAA,EAAU,QAAQ,CAAA,kBAAA,EAAqB,MAAM,EAAE;AAEvH,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAQ,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/D,YAAA,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK;AACxB,YAAA,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,gBAAA,GAAG,CAAC,OAAO,GAAG,SAAS,CAAA,2DAA2D;AAClF,gBAAA,OAAO,GAAG;YACZ;iBAAO;gBACL,MAAM,SAAS,CAAA,CAAA,oDAAA,CAAsD;YACvE;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,YAAA,MAAM,oCAAoC;QAC5C;IACF;+GA1IS,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;MCIY,mBAAmB,CAAA;AAE9B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,SAAS,EAAE;AACT,gBAAA,EAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAC;gBACzG;AACD;SACF;IACH;+GAVW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAnB,mBAAmB,EAAA,YAAA,EAAA,CALf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAG3B,sBAAsB,CAAA,EAAA,CAAA,CAAA;gHAErB,mBAAmB,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACtC,oBAAA,OAAO,EAAE,EACR;oBACD,OAAO,EAAE,CAAC,sBAAsB;AACjC,iBAAA;;;MCHY,uBAAuB,CAAA;IAElC,WAAA,CAAoB,MAAc,EAAU,WAAiC,EAAA;QAAzD,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,WAAW,GAAX,WAAW;IAA0B;IAEjF,WAAW,CACT,IAA4B,EAC5B,KAA0B,EAAA;AAE1B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;AACtC,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAClC,QAAA,OAAO,KAAK;IACd;+GAdW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;4FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,qBAAqB,CAAA;IAEhC,WAAA,CAAoB,MAAc,EAAU,WAAiC,EAAA;QAAzD,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,WAAW,GAAX,WAAW;IAA0B;IAEjF,WAAW,CACT,IAA4B,EAC5B,KAA0B,EAAA;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;QAEtD,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;gBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YACpC;AACA,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI,UAAU,CAAU,CAAC,QAAQ,KAAI;YAC1C,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC,KAAc,KAAI;gBACzE,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;AAC/C,oBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBACnB,QAAQ,CAAC,QAAQ,EAAE;gBACrB;qBAAO;oBACL,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;wBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;oBACpC;AACA,oBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;oBACpB,QAAQ,CAAC,QAAQ,EAAE;gBACrB;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;+GA/BW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;MAsCY,mBAAmB,CAAA;IAE9B,WAAA,CAAoB,MAAc,EAAU,WAAiC,EAAA;QAAzD,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,WAAW,GAAX,WAAW;IAA0B;IAEjF,WAAW,CACT,IAA4B,EAC5B,KAA0B,EAAA;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;QAEtD,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;gBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YACpC;AACA,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI,UAAU,CAAU,CAAC,QAAQ,KAAI;YAC1C,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC,KAAc,KAAI;gBACvE,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;AAC/C,oBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBACnB,QAAQ,CAAC,QAAQ,EAAE;gBACrB;qBAAO;oBACL,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;wBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;oBACpC;AACA,oBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;oBACpB,QAAQ,CAAC,QAAQ,EAAE;gBACrB;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;+GA/BW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;MAsCY,oBAAoB,CAAA;IAE/B,WAAA,CAAoB,MAAc,EAAU,WAAiC,EAAA;QAAzD,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,WAAW,GAAX,WAAW;IAA0B;IAEjF,WAAW,CACT,IAA4B,EAC5B,KAA0B,EAAA;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;QAEtD,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;gBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YACpC;AACA,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI,UAAU,CAAU,CAAC,QAAQ,KAAI;YAC1C,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,WAAW,EAAE,CAAC,KAAc,KAAI;gBAC5E,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;AAC/C,oBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBACnB,QAAQ,CAAC,QAAQ,EAAE;gBACrB;qBAAO;oBACL,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;wBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;oBACpC;AACA,oBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;oBACpB,QAAQ,CAAC,QAAQ,EAAE;gBACrB;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;+GA/BW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;MAuCY,uBAAuB,CAAA;IAClC,WAAA,CACU,MAAc,EACd,WAAiC,EAAA;QADjC,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,WAAW,GAAX,WAAW;IAClB;IAEH,WAAW,CACT,KAA6B,EAC7B,KAA0B,EAAA;QAG1B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;QAEtD,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;gBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YACpC;AACA,YAAA,OAAO,KAAK;QACd;AAGA,QAAA,OAAO,IAAI,UAAU,CAAU,CAAC,QAAQ,KAAI;YAC1C,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC,KAAc,KAAI;gBAEzE,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;AAC/C,oBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE,EAAE;wBAChD,MAAM,uBAAuB,GAAG,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC;wBAE5E,IAAI,uBAAuB,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,4BAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;4BACnB,QAAQ,CAAC,QAAQ,EAAE;wBACrB;6BAAO;AACL,4BAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC;AAChD,4BAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;4BACpB,QAAQ,CAAC,QAAQ,EAAE;wBACrB;oBACF;yBAAO;AACL,wBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;wBACnB,QAAQ,CAAC,QAAQ,EAAE;oBACrB;gBACF;qBAAO;oBACL,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;wBACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;oBACpC;AACA,oBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;oBACpB,QAAQ,CAAC,QAAQ,EAAE;gBACrB;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;+GAjDW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;4FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MC/GY,0BAA0B,CAAA;IAErC,WAAA,CAAoB,MAAc,EAAU,WAAiC,EAAA;QAAzD,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,WAAW,GAAX,WAAW;IAA0B;IAEjF,WAAW,CACT,IAA4B,EAC5B,KAA0B,EAAA;AAE1B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE;AACzC,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACpC;AAEA,QAAA,OAAO,KAAK;IACd;+GAjBW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;;4FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;MAyBY,mCAAmC,CAAA;IAE9C,WAAA,CAAoB,MAAc,EAAU,WAAiC,EAAA;QAAzD,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,WAAW,GAAX,WAAW;IAA0B;IAEjF,WAAW,CACT,IAA4B,EAC5B,KAA0B,EAAA;AAE1B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE,EAAE;AAClD,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACpC;AAEA,QAAA,OAAO,KAAK;IACd;+GAjBW,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,cAFlC,MAAM,EAAA,CAAA,CAAA;;4FAEP,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAH/C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;MAyBY,iCAAiC,CAAA;IAE5C,WAAA,CAAoB,MAAc,EAAU,WAAiC,EAAA;QAAzD,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,WAAW,GAAX,WAAW;IAA0B;IAEjF,WAAW,CACT,IAA4B,EAC5B,KAA0B,EAAA;AAE1B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE,EAAE;AAChD,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACpC;AAEA,QAAA,OAAO,KAAK;IACd;+GAjBW,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,cAFhC,MAAM,EAAA,CAAA,CAAA;;4FAEP,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAH7C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACxDK,SAAU,6BAA6B,CAAE,MAAW,EAAE,WAAqB,EAAA;AAC7E,IAAA,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;QAC7B,IAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC;AAC1B,YAAA,IAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,EAAC;AAC7C,gBAAA,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D;YACA,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QAC7E;IACF;AACJ;AAEM,SAAU,uBAAuB,CAAE,MAAW,EAAE,WAAqB,EAAA;AACzE,IAAA,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;QAC7B,IAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC;AAC1B,YAAA,IAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,EAAC;AAC7C,gBAAA,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D;YAEA,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACvE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAG9C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QAC7E;IACF;AACF;AAEM,SAAU,gCAAgC,CAAE,MAAW,EAAE,WAAqB,EAAA;AAClF,IAAA,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;QAC7B,IAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC;AAC1B,YAAA,IAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,EAAC;AAC7C,gBAAA,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D;YAEA,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACtE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACpE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QAG7C;IACF;AACF;AAEM,SAAU,eAAe,CAAC,KAAW,EAAE,KAAU,EAAA;IACrD,IAAG,KAAK,EAAC;AACP,QAAA,IAAG,EAAE,KAAK,YAAY,IAAI,CAAC,EAAC;AAC1B,YAAA,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;QACzB;QAEA,IAAG,KAAK,EAAC;AACP,YAAA,IAAG,EAAE,KAAK,YAAY,IAAI,CAAC,EAAC;AAC1B,gBAAA,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;YACzB;AACA,YAAA,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;YAC3B,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAC9B,YAAA,OAAO,KAAK;QACd;IACF;AACA,IAAA,OAAO,SAAS;AAClB;SAGgB,iCAAiC,CAAW,WAAgB,EAAE,uBAA4B,EAAE,KAAyB,EAAA;IACnI,IAAI,MAAM,GAAO,IAAW;AAC5B,IAAA,IAAI,gBAAkC;IAEtC,IAAG,WAAW,EAAC;QACb,QAAO,uBAAuB;YAC5B,KAAK,UAAU,EAAE;AACf,gBAAA,IAAG,KAAK;oBACN,gBAAgB,GAAG,CAAC,CAAC,CAAA,EAAG,KAAK,YAAY,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA,EAAG,KAAK,CAAA,SAAA,CAAW,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;;oBAEpJ,gBAAgB,GAAG,CAAC,CAAC,CAAA,SAAA,CAAW,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;gBACpI;YACF;YACA,KAAK,aAAa,EAAE;AAClB,gBAAA,IAAG,KAAK;oBACN,gBAAgB,GAAG,CAAC,CAAC,CAAA,EAAG,KAAK,YAAY,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA,EAAG,KAAK,CAAA,SAAA,CAAW,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;;oBAErJ,gBAAgB,GAAG,CAAC,CAAC,CAAA,SAAA,CAAW,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;gBACrI;YACF;YACA,KAAK,YAAY,EAAE;AACjB,gBAAA,IAAG,KAAK;oBACN,gBAAgB,GAAG,CAAC,CAAA,EAAG,KAAK,CAAA,UAAA,CAAY,EAAE,uBAAuB,EAAE,WAAW,CAAC;;oBAE/E,gBAAgB,GAAG,CAAC,CAAA,SAAA,CAAW,EAAE,uBAAuB,EAAE,WAAW,CAAC;gBACxE;YACF;YACA,KAAK,UAAU,EAAE;AACf,gBAAA,IAAG,KAAK;oBACN,gBAAgB,GAAG,CAAC,CAAA,EAAG,KAAK,CAAA,SAAA,CAAW,EAAE,uBAAuB,EAAE,WAAW,CAAC;;oBAE9E,gBAAgB,GAAG,CAAC,CAAA,QAAA,CAAU,EAAE,uBAAuB,EAAE,WAAW,CAAC;gBACvE;YACF;YACA,SAAS;gBACP;YACF;;IAEN;IAEE,IAAG,CAAC,gBAAgB,EAAC;QACnB,gBAAgB,GAAG,MAAM,CAAC,gCAAgC,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;IACrF;AAEA,IAAA,OAAO,gBAAgB;AACzB;AAGM,SAAU,4BAA4B,CAAW,WAAgB,EAAE,uBAA4B,EAAE,KAAuB,EAAE,cAAgC,EAAA;IAC9J,IAAI,MAAM,GAAO,IAAW;AAC5B,IAAA,IAAI,gBAAkC;IAEtC,IAAG,WAAW,EAAC;QACb,QAAO,uBAAuB;YAC5B,KAAK,GAAG,EAAE;AACR,gBAAA,gBAAgB,GAAG,CAAC,CAAC,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;gBAC1F;YACF;YACA,KAAK,IAAI,EAAE;AACT,gBAAA,gBAAgB,GAAG,CAAC,CAAC,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,EAAE,uBAAuB,EAAE,WAAW,CAAC,CAAC;gBAC1F;YACF;YACA,KAAK,GAAG,EAAE;AAER,gBAAA,gBAAgB,GAAG,CAAC,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,EAAE,uBAAuB,EAAE,WAAW,CAAC;gBACxF;YACF;YACA,KAAK,GAAG,EAAE;AAER,gBAAA,gBAAgB,GAAG,CAAC,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,EAAE,uBAAuB,EAAE,WAAW,CAAC;gBACxF;YACF;YACA,SAAS;gBACP;YACF;;IAEN;IAEE,IAAG,CAAC,gBAAgB,EAAC;QACnB,gBAAgB,GAAG,MAAM,CAAC,gCAAgC,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;IACrF;AAGA,IAAA,OAAO,gBAAgB;AACzB;AAEM,SAAU,UAAU,CAAC,kBAA0B,EAAE,QAAgB,EAAA;AACrE,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG;AACjD,IAAA,OAAO,WAAW,kBAAkB,CAAA,sBAAA,EAAyB,KAAK,CAAA,EAAG,QAAQ,EAAE;AACjF;SAEgB,kBAAkB,CAAC,kBAAoC,EAAE,iBAAmC,EAAE,QAA0B,EAAA;AACtI,IAAA,IAAG,kBAAkB,IAAI,iBAAiB,IAAI,QAAQ,EAAC;QACrD,OAAO,UAAU,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,QAAQ,CAAC;IACrE;AACA,IAAA,OAAO,oCAAoC;AAC7C;;MCzKa,YAAY,CAAA;AAIxB;;MCJY,SAAS,CAAA;AAIrB;;MCJY,OAAO,CAAA;AAiBnB;MAEY,YAAY,CAAA;AAexB;MAEY,WAAW,CAAA;AAgBvB;MAEY,iBAAiB,CAAA;AAoB7B;;MC1EY,gBAAgB,CAAA;AAe5B;MAEY,kBAAkB,CAAA;AAG9B;;ICMa;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,YAA2B;AAC3B,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EAJW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;;;;"}