monkey-front-core 21.0.20 → 21.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"monkey-front-core.mjs","sources":["../../../projects/monkey-front-core/src/lib/injectors/index.ts","../../../projects/monkey-front-core/src/lib/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/store/actions/monkeyecx-storage.actions.ts","../../../projects/monkey-front-core/src/lib/store/actions/index.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-seeder.reducer.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-storage.reducer.ts","../../../projects/monkey-front-core/src/lib/store/reducers/index.ts","../../../projects/monkey-front-core/src/lib/store/selectors/monkeyecx-storage.selector.ts","../../../projects/monkey-front-core/src/lib/store/selectors/index.ts","../../../projects/monkey-front-core/src/lib/store/index.ts","../../../projects/monkey-front-core/src/lib/storage/monkeyecx-token-storage.service.ts","../../../projects/monkey-front-core/src/lib/storage/index.ts","../../../projects/monkey-front-core/src/lib/enums/cache.ts","../../../projects/monkey-front-core/src/lib/enums/country.ts","../../../projects/monkey-front-core/src/lib/enums/index.ts","../../../projects/monkey-front-core/src/lib/utils/utils.ts","../../../projects/monkey-front-core/src/lib/utils/index.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-configs.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-alerts.service.ts","../../../projects/monkey-front-core/src/lib/services/dictionary/monkey-dictionary.service.ts","../../../projects/monkey-front-core/src/lib/services/dictionary/index.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-console.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-datadog.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-error.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-feature-toggle.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-gtm.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-new-version.service.ts","../../../projects/monkey-front-core/src/lib/services/connection/connection.service.ts","../../../projects/monkey-front-core/src/lib/services/request/monkeyecx-request-error.service.ts","../../../projects/monkey-front-core/src/lib/services/request/monkeyecx-request-state.service.ts","../../../projects/monkey-front-core/src/lib/services/request/index.ts","../../../projects/monkey-front-core/src/lib/services/monkeyecx.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-locale.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-maintenance.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-style-guide.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-update.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-init.service.ts","../../../projects/monkey-front-core/src/lib/services/config/index.ts","../../../projects/monkey-front-core/src/lib/services/l/l.service.ts","../../../projects/monkey-front-core/src/lib/services/l/index.ts","../../../projects/monkey-front-core/src/lib/services/schedule/monkeyecx-schedule.service.ts","../../../projects/monkey-front-core/src/lib/services/schedule/index.ts","../../../projects/monkey-front-core/src/lib/services/logged/monkeyecx-logged-handle.service.ts","../../../projects/monkey-front-core/src/lib/services/logged/index.ts","../../../projects/monkey-front-core/src/lib/services/auth/auth.service.ts","../../../projects/monkey-front-core/src/lib/services/error/monkeyecx-global-error-handler.service.ts","../../../projects/monkey-front-core/src/lib/services/error/index.ts","../../../projects/monkey-front-core/src/lib/services/icons/monkey-icons.service.ts","../../../projects/monkey-front-core/src/lib/services/icons/index.ts","../../../projects/monkey-front-core/src/lib/services/store/monkeyecx-store.actions.ts","../../../projects/monkey-front-core/src/lib/services/store/monkeyecx-store.selector.ts","../../../projects/monkey-front-core/src/lib/model/monkeyecx-model.ts","../../../projects/monkey-front-core/src/lib/model/monkeyecx-links.model.ts","../../../projects/monkey-front-core/src/lib/model/index.ts","../../../projects/monkey-front-core/src/lib/services/store/monkeyecx-store.service.ts","../../../projects/monkey-front-core/src/lib/services/store/index.ts","../../../projects/monkey-front-core/src/lib/services/validation/monkeyecx-validation.service.ts","../../../projects/monkey-front-core/src/lib/services/index.ts","../../../projects/monkey-front-core/src/lib/decorators/monkeyecx-decorators.ts","../../../projects/monkey-front-core/src/lib/decorators/index.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-error-message.directive.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-feature-by-program-directive.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-feature-directive.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-loading.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-security-directive.ts","../../../projects/monkey-front-core/src/lib/directives/index.ts","../../../projects/monkey-front-core/src/lib/form-validators/validators.ts","../../../projects/monkey-front-core/src/lib/guards/monkeyecx-auth-guard-company.service.ts","../../../projects/monkey-front-core/src/lib/guards/monkeyecx-auth-guard-login.service.ts","../../../projects/monkey-front-core/src/lib/guards/monkeyecx-auth-guard-role.service.ts","../../../projects/monkey-front-core/src/lib/guards/monkeyecx-auth-guard.service.ts","../../../projects/monkey-front-core/src/lib/interceptors/monkeyecx-http.interceptor.ts","../../../projects/monkey-front-core/src/lib/interceptors/index.ts","../../../projects/monkey-front-core/src/lib/interfaces/index.ts","../../../projects/monkey-front-core/src/lib/monkey-front-core.module.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-blob-secure.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-currency-code.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-display-first-name.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-display-initials.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-address.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-beautify-json.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-date.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-document.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-number.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-phone.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-size.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-tax.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-type-document.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-value.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-zipcode.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-text-truncate.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-truncate-qtd.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-pipes.module.ts","../../../projects/monkey-front-core/src/lib/pipes/index.ts","../../../projects/monkey-front-core/src/lib/providers/service-worker.ts","../../../projects/monkey-front-core/src/lib/resolvers/base.resolver.ts","../../../projects/monkey-front-core/src/lib/resolvers/i18n.resolver.ts","../../../projects/monkey-front-core/src/lib/services/cache/monkeyecx-file-cache.service.ts","../../../projects/monkey-front-core/src/lib/services/routes/monkeyecx-dicovery-params.service.ts","../../../projects/monkey-front-core/src/public-api.ts","../../../projects/monkey-front-core/src/monkey-front-core.ts"],"sourcesContent":["/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpContextToken } from '@angular/common/http';\nimport { inject, InjectionToken } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n MonkeyEcxBootstrapService,\n MonkeyEcxRedirectLoginWelcomeBackStrategy,\n MonkeyEcxRefreshTokenStrategy\n} from '../interfaces';\n\nexport function injectTokenWithWarning<T>(token: InjectionToken<T>, name?: string): T | null {\n const value = inject(token, { optional: true });\n if (!value) {\n console.error(`MECXInjectors -> Token \"${name || token.toString()}\" is not provided.`);\n }\n return value;\n}\n\nexport const MECX_TIMEZONEOFFSET = new InjectionToken<string>('');\nexport const MECX_DATE_FORMAT = new InjectionToken<string>('');\nexport const MECX_COUNTRY = new InjectionToken<string>('');\nexport const MECX_ALPHA = new InjectionToken<string>('');\nexport const MECX_BETA = new InjectionToken<string>('');\n/**\n * This is a token to be used to every request context. Just for internal of core use.\n */\nexport const MECX_REQUEST_ID = new HttpContextToken<string>(() => {\n return '';\n});\n\n/**\n * This is a token to be used with a service created in the project who uses\n * this library. We always be use this service to callback the messages from intercetors or related\n *\n * ### Example\n * ```\n * {\n * provide: MECX_SERVICE_MESSAGE,\n * useClass: AppServiceErrorMessage\n * },\n * ```\n * ### Service\n * ```\n * @Injectable()\n * export class AppServiceErrorMessage implements MonkeyEcxServiceMessage {\n * handleMessage(message: string, type: string): void {\n * throw new Error('Method not implemented.');\n * }\n * }\n * ```\n */\nexport const MECX_BOOTSTRAP_SERVICE = new InjectionToken<MonkeyEcxBootstrapService>(\n 'MonkeyEcxBootstrapService'\n);\n\nexport const MECX_CORE_I18N_WRAPPER = new InjectionToken<BehaviorSubject<string>>('');\n\n/**\n * ```\n * providers: [\n * {\n * provide: MONKEY_REFRESH_TOKEN,\n * useValue: () => {\n * // Custom refresh logic here\n * return http.post('/auth/refresh');\n * }\n * }\n *]\n * ```\n */\nexport const MECX_REFRESH_TOKEN_STRATEGY = new InjectionToken<MonkeyEcxRefreshTokenStrategy>(\n 'MECX_REFRESH_TOKEN_STRATEGY'\n);\nexport const MECX_REDIRECT_LOGIN_WELCOMEBACK_STRATEGY =\n new InjectionToken<MonkeyEcxRedirectLoginWelcomeBackStrategy>(\n 'MECX_REDIRECT_LOGIN_WELCOMEBACK_STRATEGY'\n );\n\nexport const MECX_I18N_PATH = new InjectionToken<string>('MECX_I18N_PATH');\nexport const MECX_I18N_ALIAS = new InjectionToken<string>('MECX_I18N_ALIAS');\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../injectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCookieStorageService {\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n constructor(private cookieService: CookieService) {\n // not to do\n }\n\n public setCookie(name: string, value: any) {\n try {\n const env = this._bootstrapService.getEnv();\n this.removeCookie(name);\n const { urlDomain } = env;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.set(name, value, undefined, '/', handledDomain, true, 'None');\n } catch (err) {\n console.error('MonkeyEcxCookieStorageService -> setCookie', err);\n }\n }\n\n public getCookie(name: string) {\n return this.cookieService.get(name);\n }\n\n public removeCookie(name: string) {\n try {\n const env = this._bootstrapService.getEnv();\n const { urlDomain } = env;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.delete(name, '/', handledDomain, true, 'None');\n } catch (err) {\n console.error('MonkeyEcxCookieStorageService -> setCookie', err);\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createAction, props } from '@ngrx/store';\nimport { MonkeyEcxMeCredentials, MonkeyEcxStorage } from '../../interfaces';\nimport { MonkeyEcxStoreControl } from '../../interfaces/monkeyecx-store';\n\nconst clear = createAction('[MECX Core Storage] Clear All');\nconst create = createAction(\n '[MECX Core Storage] Create',\n props<{ data: Partial<MonkeyEcxStorage> }>()\n);\nconst updateControl = createAction(\n '[MECX Core Storage] Update Control',\n props<{ data: MonkeyEcxStoreControl }>()\n);\nconst updateData = createAction(\n '[MECX Core Storage] Update One',\n props<{ data: MonkeyEcxStorage }>()\n);\nconst updateMe = createAction(\n '[MECX Core Storage] Update Me',\n props<{ data: Partial<MonkeyEcxMeCredentials> }>()\n);\n\nexport { clear, create, updateControl, updateData, updateMe };\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * as monkeyecxStorage from './monkeyecx-storage.actions';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { ActionReducer, INIT } from '@ngrx/store';\n\nexport const seederReducer = (keys: string[]) => {\n return (reducer: ActionReducer<any>): ActionReducer<any> => {\n return (state, action) => {\n const handledState = reducer(state, action);\n if (action.type === INIT) {\n let data: any = null;\n try {\n const storage = localStorage.getItem('mecx-store');\n const handled = atob(storage || '');\n\n if (handled !== '{}') {\n const storageValue = JSON.parse(atob(storage || ''));\n\n keys.forEach((key: string) => {\n let value: any = null;\n if (storageValue?.[key]) {\n value = {\n [key]: storageValue?.[key]\n };\n }\n\n /*fazendo isso para a versao antiga da store*/\n if (key === 'mecx-core-storage') {\n const oldHandle = (storageValue as any)?.[key];\n if (oldHandle) {\n const id = oldHandle?.['ids']?.[0];\n if (id) {\n const entity = oldHandle?.['entities']?.[id];\n value = {\n [key]: {\n data: {\n ...entity\n }\n }\n };\n }\n }\n }\n\n data = {\n ...data,\n ...value\n };\n });\n }\n\n return data;\n } catch (e) {\n localStorage.removeItem('mecx-store');\n return handledState;\n }\n }\n\n let data: any = null;\n try {\n keys.forEach((key: string) => {\n data = {\n ...data,\n [key]: handledState[key]\n };\n });\n const handled = JSON.stringify(data);\n if (handled !== '{}') {\n localStorage.setItem('mecx-store', btoa(JSON.stringify(data)));\n }\n } catch (e) {\n localStorage.removeItem('mecx-store');\n }\n\n return handledState;\n };\n };\n};\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createReducer, on } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../interfaces';\nimport * as actions from '../actions';\n\nexport const featureKey = 'mecx-core-storage';\n\nexport interface State {\n control: {\n isLoading: boolean;\n };\n data: Partial<MonkeyEcxStorage> | null;\n}\n\nexport const initialState: State = {\n control: {\n isLoading: false\n },\n data: null\n};\n\nexport const reducer = createReducer(\n initialState,\n on(actions.monkeyecxStorage.clear, (state: any) => {\n return {\n ...state,\n data: null\n };\n }),\n on(actions.monkeyecxStorage.create, (state, action) => {\n return {\n ...state,\n data: {\n ...(state.data ? state.data : {}),\n ...action.data\n }\n };\n }),\n on(actions.monkeyecxStorage.updateData, (state, action) => {\n return {\n ...state,\n data: {\n ...(state.data ? state.data : {}),\n ...action.data\n }\n };\n }),\n on(actions.monkeyecxStorage.updateMe, (state, action) => {\n return {\n ...state,\n data: {\n ...(state.data ? state.data : {}),\n me: {\n ...(state.data?.me ? state.data.me : {}),\n ...action.data\n }\n }\n };\n }),\n on(actions.monkeyecxStorage.updateControl, (state, action) => {\n return {\n ...state,\n control: {\n ...state.control,\n ...action.data\n }\n };\n })\n);\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * as fromMonkeyecxSeeder from './monkeyecx-seeder.reducer';\nexport * as fromMonkeyecxStorage from './monkeyecx-storage.reducer';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../interfaces';\nimport * as reducers from '../reducers';\n\ndeclare type State = reducers.fromMonkeyecxStorage.State;\n\nexport const selectState = createFeatureSelector<reducers.fromMonkeyecxStorage.State>(\n reducers.fromMonkeyecxStorage.featureKey\n);\n\nexport const select = createSelector(selectState, (state: State) => {\n return state.data;\n});\n\nexport const selectUser = createSelector(\n selectState,\n (state): Partial<MonkeyEcxStorage> | null => state.data\n);\n\nexport const selectControl = createSelector(selectState, (state: State): any => {\n return state.control;\n});\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * as monkeyecxStorage from './monkeyecx-storage.selector';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * as actions from './actions';\nexport * as reducers from './reducers';\nexport * as selectors from './selectors';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, Injectable } from '@angular/core';\n\ndeclare type Token = Partial<MonkeyEcxTokenCredentials> | null;\ndeclare type Me = Partial<MonkeyEcxMeCredentials> | null;\n\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { MonkeyEcxMeCredentials, MonkeyEcxStorage, MonkeyEcxTokenCredentials } from '../interfaces';\nimport { MonkeyEcxConfigsService } from '../services';\nimport { actions, selectors } from '../store';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxTokenStorageService {\n private tokenFields: Token;\n\n private token$ = new BehaviorSubject<Token>(null);\n\n private me$ = new BehaviorSubject<Me>(null);\n\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n constructor(private store: Store) {\n this.tokenFields = {\n username: '',\n program: '',\n accessToken: '',\n refreshToken: '',\n companyId: '',\n governmentId: '',\n companyTypeUrl: '',\n companyType: '',\n programAdmin: false,\n programType: '',\n accessType: '',\n role: '',\n ownerGovernmentId: '',\n name: '',\n _clearIgnore: {\n ignore: ['username', 'program', 'accessType']\n }\n };\n }\n\n private setAllTokens(token: Token) {\n if (!token) return;\n const { token$, store } = this;\n if (token.username) {\n localStorage.setItem('username', token.username);\n }\n\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: {\n ...token\n }\n })\n );\n\n token$.next(token);\n }\n\n private getAllTokens() {\n const { store } = this;\n try {\n let data: Partial<MonkeyEcxStorage> = store.selectSignal(\n selectors.monkeyecxStorage.select\n )()!;\n if (!data?.program) {\n const program = localStorage.getItem('program')!;\n data = {\n ...data,\n program\n };\n }\n\n const accessType = localStorage.getItem('accessType');\n const companyType = localStorage.getItem('companyType');\n\n if (!data.accessToken) {\n const accessToken = localStorage.getItem('accessToken')!;\n const refreshToken = localStorage.getItem('refreshToken')!;\n data = {\n ...data,\n accessToken,\n refreshToken\n };\n }\n\n if (!data.role) {\n const role = localStorage.getItem('role')!;\n data = {\n ...data,\n role\n };\n }\n\n const handledData = {\n ...data,\n accessType,\n companyType\n };\n const config = this._configService.whiteLabel;\n if (!data?.program && config?.program) {\n handledData.program = config?.program?.token;\n }\n delete handledData?.me;\n\n return handledData as MonkeyEcxTokenCredentials;\n } catch (e) {\n // not to do\n }\n return null;\n }\n\n private setAllMe(me: Me) {\n if (!me) return;\n\n this.store.dispatch(\n actions.monkeyecxStorage.updateMe({\n data: {\n ...me\n }\n })\n );\n\n this.me$.next(me);\n }\n\n private getAllMe() {\n let data: Partial<MonkeyEcxStorage> = this.store.selectSignal(\n selectors.monkeyecxStorage.select\n )()!;\n\n let handledData: any = {\n ...data\n };\n\n return handledData?.me;\n }\n\n public tokenHasChanged(): Observable<Token> {\n return this.token$.asObservable();\n }\n\n public meHasChanged(): Observable<Me> {\n return this.me$.asObservable() || null;\n }\n\n public getToken() {\n return this.getAllTokens();\n }\n\n public getMe() {\n return this.getAllMe();\n }\n\n public setToken(token: Token) {\n this.setAllTokens(token);\n }\n\n public setMe(me: Partial<MonkeyEcxMeCredentials>) {\n this.setAllMe(me);\n }\n\n public clear(force?: boolean): Observable<boolean> {\n const { tokenFields, store } = this;\n try {\n Object.entries(tokenFields || {}).forEach(([key, value]) => {\n if (\n (tokenFields?._clearIgnore?.ignore || []).filter((val: any) => {\n return val === key;\n }).length <= 0 ||\n force === true\n ) {\n localStorage.removeItem(key);\n }\n });\n\n localStorage.removeItem('me');\n localStorage.removeItem('mecx-store');\n localStorage.removeItem('username');\n store.dispatch(actions.monkeyecxStorage.clear());\n } catch (error) {\n return of(false);\n }\n return of(true);\n }\n\n /**\n * @param fields (the name of fields you want to clear. ie: ['companyId', 'role', ...])\n */\n public clearCredentials(\n fields = ['companyId', 'governmentId', 'companyType', 'programAdmin', 'role']\n ) {\n const { store } = this;\n let obj: any = null;\n fields?.forEach((key: string) => {\n obj = {\n ...obj,\n [key]: null\n };\n localStorage.removeItem(key);\n });\n\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: {\n username,\n ...obj\n }\n })\n );\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-cookie-storage.service';\nexport * from './monkeyecx-token-storage.service';\n","export const CACHE_LOCALE_EXPIRATION_MS = 60 * 60 * 1000;\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable no-unused-vars */\n/* eslint-disable no-shadow */\nexport enum CountryMasks {\n CPF = '000.000.000-00',\n CNPJ = '00.000.000/0000-00',\n RUT1 = '0000000-A',\n RUT2 = '00000000-A',\n RFC1 = 'AAAA000000AA0',\n RFC2 = 'AAA000000AA0',\n EIN = '00-0000000',\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './cache';\nexport * from './country';\n","/* eslint-disable block-scoped-var */\n/* eslint-disable no-restricted-syntax */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\n/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-useless-escape */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-cond-assign */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-redeclare */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\nimport { HttpResponse } from '@angular/common/http';\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { isValid, parse } from 'date-fns';\nimport { CountryMasks } from '../enums';\n\ntype DocumentType = 'CPF' | 'CNPJ';\ntype CountryCode = 'BR' | 'CL' | 'MX' | 'US';\n\ntype LogParams = {\n message: string;\n context?: any;\n error?: Error;\n type?: 'ok' | 'debug' | 'info' | 'notice' | 'warn' | 'error' | 'critical' | 'alert' | 'emerg';\n};\n\nexport class MonkeyEcxUtils {\n static persistNullEmptyUndefined(tp: any): boolean {\n return tp !== null && tp !== undefined && tp !== '';\n }\n\n static getDocumentType(doc: string, country?: string) {\n if (!doc) return '';\n if (country === 'cl') return 'RUT';\n if (country === 'mx') return 'RFC';\n if (country === 'us') return 'EIN';\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\n }\n\n static getDocumentMask(type: DocumentType, country = '') {\n return {\n BR: {\n CPF: CountryMasks.CPF,\n CNPJ: CountryMasks.CNPJ,\n '': `${CountryMasks.CPF}||${CountryMasks.CNPJ}`\n },\n CL: {\n CPF: CountryMasks.RUT1,\n CNPJ: CountryMasks.RUT2,\n '': `${CountryMasks.RUT1}||${CountryMasks.RUT2}`\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2,\n '': `${CountryMasks.RFC1}||${CountryMasks.RFC2}`\n },\n US: {\n CPF: CountryMasks.EIN,\n CNPJ: CountryMasks.EIN,\n '': CountryMasks.EIN\n }\n }[country.toUpperCase() as CountryCode]?.[type];\n }\n\n static getDocumentPlaceholder(type: DocumentType, country = '') {\n return {\n BR: {\n CPF: '000.000.000-XX',\n CNPJ: '00.000.000/0000-00'\n },\n CL: {\n CPF: '0000000-A',\n CNPJ: '0000000-A'\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2\n },\n US: {\n CPF: CountryMasks.EIN,\n CNPJ: CountryMasks.EIN\n }\n }[country.toUpperCase() as CountryCode]?.[type];\n }\n\n static formatDocumentWithMask(doc: string, withType?: boolean, country?: string): string {\n if (!doc) return doc;\n let formated: string = '';\n if (country === 'CL') {\n formated = doc.replace(/^(\\d{1,2})(\\d{3})(\\d{3})(\\w{1})$/, '$1.$2.$3-$4');\n return `${formated}`;\n }\n if (country === 'US') {\n formated = doc.replace(/^(\\d{2})(\\d{7})$/, '$1-$2');\n return `${formated}`;\n }\n if (doc.length === 14) {\n formated = doc\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\n .replace(/(\\d{4})(\\d)/, '$1-$2');\n } else {\n formated = doc\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n }\n\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\n }\n\n static cutFirstLastName(value: string, tp: string = 'first') {\n const split = value?.trim()?.split(' ');\n\n if (tp === 'first') return split[0];\n return split?.splice(1, split.length)?.join(' ');\n }\n\n static isCPFCNPJValid(document: any): boolean {\n document = document.replace(/[^\\d]/g, '');\n\n const handled = document.replace(new RegExp(document.charAt(0), 'g'), '');\n if (!handled) return false;\n\n if (document.length === 11) {\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]);\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]);\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n return true;\n }\n if (document.length === 14 || /0{14}/.test(document)) {\n const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]);\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]);\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n }\n return false;\n }\n\n public static isValidRUT(document: string): boolean {\n if (!document || document.trim().length < 3) return false;\n const documentHandled = document.replace(/[^0-9kK]/g, '');\n\n if (documentHandled.length < 3) return false;\n\n const calcDv = (rut: string) => {\n const value: string = `${rut}`;\n let sum = 0;\n let mult = 2;\n\n for (let i = 1; i <= value.length; i++) {\n const index = mult * Number(value.charAt(value.length - i));\n\n sum += index;\n\n if (mult < 7) {\n mult += 1;\n } else {\n mult = 2;\n }\n }\n\n const dvEsperado = 11 - (sum % 11);\n if (dvEsperado === 10) return 'K';\n if (dvEsperado === 11) return '0';\n return `${dvEsperado}`;\n };\n\n const num = documentHandled.slice(0, -1);\n const dgv = documentHandled.slice(-1).toUpperCase();\n\n const dvCalc = calcDv(num);\n return dvCalc === dgv;\n }\n\n public static isValidEIN(ein: string): boolean {\n const cleanedEIN = ein?.replace(/\\D/g, '') || '';\n\n if (cleanedEIN.length !== 9) {\n return false;\n }\n\n const validPrefixes = [\n '10',\n '12',\n '60',\n '67',\n '50',\n '53',\n '01',\n '02',\n '03',\n '04',\n '05',\n '06',\n '11',\n '13',\n '14',\n '16',\n '21',\n '22',\n '23',\n '25',\n '34',\n '51',\n '52',\n '54',\n '55',\n '56',\n '57',\n '58',\n '59',\n '65',\n '30',\n '32',\n '35',\n '36',\n '37',\n '38',\n '61',\n '15',\n '24',\n '20',\n '26',\n '27',\n '45',\n '46',\n '47',\n '81',\n '82',\n '83',\n '84',\n '85',\n '40',\n '44',\n '94',\n '95',\n '80',\n '90',\n '33',\n '39',\n '41',\n '42',\n '43',\n '46',\n '48',\n '62',\n '63',\n '64',\n '66',\n '68',\n '71',\n '72',\n '73',\n '74',\n '75',\n '76',\n '77',\n '86',\n '87',\n '88',\n '91',\n '92',\n '93',\n '98',\n '99',\n '31'\n ];\n\n const prefix = cleanedEIN.substring(0, 2);\n\n return validPrefixes.indexOf(prefix) !== -1;\n }\n\n public static isValidRFC(document: string) {\n const RFC_REGEXP = /^([A-ZÑ\\x26]{3,4})([0-9]{6})([A-Z0-9]{3})$/;\n const SPECIAL_CASES = {\n XEXX010101000: 'foreign',\n XAXX010101000: 'generic'\n };\n const FORBIDDEN_WORDS = [\n 'BUEI',\n 'BUEY',\n 'CACA',\n 'CACO',\n 'CAGA',\n 'CAGO',\n 'CAKA',\n 'CAKO',\n 'COGE',\n 'COJA',\n 'COJE',\n 'COJI',\n 'COJO',\n 'CULO',\n 'FETO',\n 'GUEY',\n 'JOTO',\n 'KACA',\n 'KACO',\n 'KAGA',\n 'KAGO',\n 'KOGE',\n 'KOJO',\n 'KAKA',\n 'KULO',\n 'MAME',\n 'MAMO',\n 'MEAR',\n 'MEAS',\n 'MEON',\n 'MION',\n 'MOCO',\n 'MULA',\n 'PEDA',\n 'PEDO',\n 'PENE',\n 'PUTA',\n 'PUTO',\n 'QULO',\n 'RATA',\n 'RUIN'\n ];\n\n const VALUES_MAP: {\n [key: number | string]: any;\n } = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 18,\n J: 19,\n K: 20,\n L: 21,\n M: 22,\n N: 23,\n '&': 24,\n O: 25,\n P: 26,\n Q: 27,\n R: 28,\n S: 29,\n T: 30,\n U: 31,\n V: 32,\n W: 33,\n X: 34,\n Y: 35,\n Z: 36,\n ' ': 37,\n Ñ: 38\n };\n\n const getScore = (doc: string) => {\n return doc\n .split('')\n .reverse()\n .reduce((sum, char, i) => {\n const index = i + 2;\n const value = VALUES_MAP[char] || 0;\n return sum + value * index;\n }, 0);\n };\n\n const parseInput = (doc: string) => {\n return String(doc)\n .trim()\n .toUpperCase()\n .replace(/[^0-9A-ZÑ\\x26]/g, '');\n };\n\n const validateDate = (doc: string) => {\n const dateStr = doc.slice(0, -3).slice(-6);\n const year = dateStr.slice(0, 2);\n const month = dateStr.slice(2, 4);\n const day = dateStr.slice(4, 6);\n const date = new Date(`20${year}-${month}-${day}`);\n // eslint-disable-next-line no-restricted-globals\n return !isNaN(date.getTime());\n };\n\n const validateVerificationDigit = (doc: string) => {\n const digit = doc.slice(-1);\n const rfc = doc.length === 12 ? ` ${doc}` : doc;\n const base = rfc.slice(0, -1);\n const score = getScore(base);\n const mod = (11000 - score) % 11;\n if (mod === 11) return digit === '0';\n if (mod === 10) return digit === 'A';\n return String(mod) === digit;\n };\n\n const isSpecialCase = (doc: string) => {\n return doc in SPECIAL_CASES;\n };\n\n const hasForbiddenWords = (doc: string) => {\n const prefix = (doc || '').slice(0, 4);\n return FORBIDDEN_WORDS.includes(prefix);\n };\n\n try {\n const input = parseInput(document);\n\n if (isSpecialCase(input)) return false;\n const hasValidFormat = RFC_REGEXP.test(input);\n if (!hasValidFormat) return false;\n const hasValidDate = validateDate(input);\n if (!hasValidDate) return false;\n const hasValidDigit = validateVerificationDigit(input);\n if (!hasValidDigit) return false;\n if (hasForbiddenWords(input)) return false;\n\n return true;\n } catch (e) {\n // not to do\n }\n\n return false;\n }\n\n static isValidUrl(txt: string): boolean {\n const regex =\n /(https?:\\/\\/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])(:?\\d*)\\/?([a-z_\\\\/0-9\\-#.]*)\\??([a-z_\\\\/0-9\\-#=&]*)/g;\n return regex.test(txt);\n }\n\n static isValidZipCode(zipCode: string, country?: string): boolean {\n const length = {\n br: 8,\n cl: 7,\n mx: 5\n }[country || 'br'];\n\n return `${this.handleOnlyNumbers(zipCode)}`.length === length;\n }\n\n static isValidEmail(email: string) {\n return /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/.test(email || '');\n }\n\n static getRandomString(len: number, charSet?: string): string {\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const randomString: string = new Array(len)\n .fill('1')\n .map(() => {\n return charSet?.charAt(Math.floor(Math.random() * charSet.length));\n })\n .join('');\n return randomString;\n }\n\n static handleOnlyNumbers(value: any) {\n if (!value) return null;\n return value.replace(/[^0-9]/g, '');\n }\n\n static handleOnlyAlphaNumeric(value: any) {\n if (!value) return '';\n return value.replace(/[^0-9A-Za-z]/g, '');\n }\n\n static capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n }\n\n static formatZipCode(zipCode: string): string {\n if (!zipCode) return zipCode;\n const formated: string = zipCode\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n\n return `${formated}`;\n }\n\n static formatFileSize(size: number): string {\n const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let l = 0;\n while (size >= 1024 && ++l) {\n size /= 1024;\n }\n return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;\n }\n\n static sufflue(data: any[]): any[] {\n for (let i = data.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * i);\n const temp = data[i];\n data[i] = data[j];\n data[j] = temp;\n }\n return data;\n }\n\n static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\n function blobToFile(theBlob: any, fileName: string) {\n const b = theBlob;\n b.lastModifiedDate = new Date();\n b.name = fileName;\n return b;\n }\n\n let file: any;\n if (!(navigator as any).msSaveBlob) {\n file = new File([theBlob], fileName, {\n type: fileType\n });\n } else {\n file = new Blob([theBlob], {\n type: fileType\n });\n file = blobToFile(file, fileName);\n }\n return file;\n }\n\n static truncate(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n\n static isLocalhost() {\n if (!window?.location) return false;\n const { href } = window.location;\n if (!href) return false;\n return href?.search('localhost') >= 0;\n }\n\n static isSameOrigin(frontend: string): boolean {\n const initialPath: string = window.location.origin;\n return (initialPath || '') === frontend;\n }\n\n static replaceVariables(data: string, obj: any) {\n let handled = data;\n Object.entries(obj).forEach(([key, value]) => {\n handled = handled.replace(new RegExp(`{${key}}`, 'g'), `${value}`);\n });\n return handled;\n }\n\n static trimValuesToSave(obj: any, fields: string[]) {\n let ret = obj;\n const grouped = fields.join('#');\n Object.entries(obj).map(([key, value]) => {\n if (grouped.includes(key)) {\n ret = {\n ...ret,\n [key]: `${value}`.trim()\n };\n }\n return null;\n });\n\n return ret;\n }\n\n static base64ToBuffer(base64: string): ArrayBuffer {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n static isValidDate(dateString: string, formats?: string[]): boolean {\n formats = formats ?? ['dd/MM/yyyy', 'MM-dd-yyyy', 'yyyy-MM-dd'];\n\n for (const format of formats) {\n const parsedDate = parse(dateString, format, new Date());\n\n if (isValid(parsedDate)) {\n return true;\n }\n }\n\n return false;\n }\n\n static getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n static getFileToDownload(resp: HttpResponse<any>, filename?: string) {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(/\"/g, '');\n }\n\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n\n return {\n filename,\n blob,\n resp\n };\n }\n}\n\nexport class MonkeyEcxLogs {\n static log(params: LogParams) {\n try {\n const { type, message, context, error } = params;\n datadogLogs.logger[type || 'error'](message, context, error);\n } catch (e) {\n // not to do\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './utils';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxBootstrap, MonkeyEcxStyleGuide, MonkeyEcxWhiteLabel } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxConfigsService {\n private readonly _bootstrap$ = new BehaviorSubject<MonkeyEcxBootstrap | null>(null);\n\n private readonly _whiteLabel$ = new BehaviorSubject<MonkeyEcxWhiteLabel | null>(null);\n\n private readonly _styleGuide$ = new BehaviorSubject<MonkeyEcxStyleGuide | null>(null);\n\n get bootstrap$(): Observable<MonkeyEcxBootstrap | null> {\n return this._bootstrap$.asObservable();\n }\n\n get bootstrap(): MonkeyEcxBootstrap | null {\n return this._bootstrap$.value;\n }\n\n set bootstrap(data: MonkeyEcxBootstrap) {\n this._bootstrap$.next(data);\n }\n\n get whiteLabel$(): Observable<MonkeyEcxWhiteLabel | null> {\n return this._whiteLabel$.asObservable();\n }\n\n get whiteLabel(): MonkeyEcxWhiteLabel | null {\n return this._whiteLabel$.value;\n }\n\n set whiteLabel(data: MonkeyEcxWhiteLabel) {\n this._whiteLabel$.next(data);\n }\n\n get styleGuide(): Observable<MonkeyEcxStyleGuide | null> {\n return this._styleGuide$.asObservable();\n }\n\n set styleGuide(data: MonkeyEcxStyleGuide) {\n this._styleGuide$.next(data);\n }\n\n federationSettings(key: string) {\n try {\n const { value } = this._bootstrap$;\n if (value) {\n const { federationSettings } = value;\n if (key in federationSettings || {}) {\n return federationSettings[key];\n }\n }\n } catch (e) {\n // not to do\n }\n\n return null;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { MonkeyEcxAlert } from '../../interfaces';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\n\nconst isExpired = ({ endDate, noEndDate }: { endDate: string; noEndDate: boolean | undefined }) => {\n if (noEndDate) {\n return false;\n }\n\n const now = new Date();\n const end = new Date(endDate);\n\n return now > end;\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsService {\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n private createAlert(params: MonkeyEcxAlert) {\n const createElementInner = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.innerHTML = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const createElement = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.textContent = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const overlay = createElement('div', null, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgb(144 144 144 / 66%)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: '9999'\n });\n\n const modalBox = createElement('div', null, {\n position: 'relative',\n backgroundColor: '#fff',\n color: '#333',\n borderRadius: '10px',\n boxShadow: '0 4px 15px hsla(0, 0.00%, 0.00%, 0.20)',\n maxWidth: '480px',\n width: '90%',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n margin: '12px'\n });\n\n const imgContainer = createElement('div', null, {\n width: '100%',\n height: '180px',\n backgroundImage: `url(${params.img})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n borderRadius: '8px'\n });\n modalBox.appendChild(imgContainer);\n\n const title1 = createElement('span', params.title, {\n fontSize: '24px',\n fontWeight: 'bold',\n padding: '12px'\n });\n\n const title2 = createElementInner('span', params.message, {\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.4',\n padding: '0px 24px 24px',\n maxHeight: '280px',\n overflow: 'auto'\n });\n\n let actionButton: HTMLElement | null = null;\n if (params.action) {\n actionButton = createElement('button', params.action?.label, {\n marginBottom: '24px',\n padding: '12px 20px',\n fontSize: '1em',\n fontWeight: '600',\n color: '#fff',\n backgroundColor: '#007BFF',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n boxShadow: '0 2px 5px rgba(0,0,0,0.2)',\n transition: 'background-color 0.3s ease'\n });\n\n actionButton!.addEventListener('mouseover', () => {\n actionButton!.style.backgroundColor = '#0056b3';\n });\n actionButton!.addEventListener('mouseout', () => {\n actionButton!.style.backgroundColor = '#007BFF';\n });\n\n actionButton!.addEventListener('click', () => {\n window.open(params.action?.href, '_blank');\n });\n }\n\n const closeButton = createElement('button', '×', {\n position: 'absolute',\n top: '10px',\n right: '10px',\n background: 'transparent',\n border: 'none',\n fontSize: '24px',\n fontWeight: 'bold',\n color: '#999',\n cursor: 'pointer',\n transition: 'color 0.3s ease'\n });\n\n closeButton.addEventListener('mouseover', () => {\n closeButton.style.color = '#333';\n });\n\n closeButton.addEventListener('mouseout', () => {\n closeButton.style.color = '#999';\n });\n\n closeButton.addEventListener('click', () => {\n document.body.removeChild(overlay);\n });\n\n modalBox.appendChild(closeButton);\n modalBox.appendChild(title1);\n modalBox.appendChild(title2);\n if (actionButton) modalBox.appendChild(actionButton);\n overlay.appendChild(modalBox);\n document.body.appendChild(overlay);\n }\n\n private handleValidation() {\n const whiteLabel = this._configService.whiteLabel;\n if (!whiteLabel) return;\n\n const { alert } = whiteLabel;\n\n if (alert) {\n const { endDate, noEndDate } = alert;\n if (!isExpired({ endDate, noEndDate })) {\n this.createAlert(alert);\n }\n }\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\n/* eslint-disable no-console */\n/* eslint-disable max-len */\nimport { DestroyRef, inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { injectTokenWithWarning, MECX_CORE_I18N_WRAPPER } from '../../injectors';\nimport { MonkeyEcxMeCredentials } from '../../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyDictionaryService {\n private readonly _localeId = injectTokenWithWarning(LOCALE_ID, 'LOCALE_ID')!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private readonly _destroyRef = inject(DestroyRef);\n\n private readonly _data$ = new BehaviorSubject<Record<string, Record<string, string | any>>>({\n 'pt-BR': {\n 'SECURITY-CONSOLE': `🚨 Aviso de Segurança\nO uso deste console pode permitir que invasores se passem por você e roubem suas informações por meio de uma técnica conhecida como Self-XSS. Por favor, não insira nem cole código aqui se não souber exatamente o que ele faz.`,\n ERROR: {\n TITLE: 'Atualização Importante',\n 'SUB-TITLE': 'Estamos fazendo melhorias',\n EXPLAIN:\n 'Se você estiver com problemas para atualizar, tente novamente ou use o ícone de suporte abaixo',\n ACTION: 'Tentar Novamente'\n },\n MAINTENANCE: {\n TITLE: 'Manutenção em Andamento',\n 'SUB-TITLE':\n 'Estamos realizando uma manutenção para aprimorar nosso serviço. Pedimos desculpas pelo inconveniente. Tente novamente mais tarde.',\n ACTION: 'Tentar Novamente'\n },\n 'NEW-VERSION': 'Nova versão disponível. Clique aqui para atualizar.',\n 'POOR-CONNECTION': 'Conexão instável. Alguns recursos podem não funcionar corretamente.',\n 'BLOCK-CONNECTION':\n '⚠️ Alguns recursos podem não funcionar devido a um firewall ou bloqueio de rede.',\n 'REQUEST-ERROR': {\n ERROR: '⚠️ Erro inesperado',\n 'TOO-MANY-REQUEST': `🚨 Limite de tentativas excedido. Tente mais tarde`\n }\n },\n 'es-CL': {\n 'SECURITY-CONSOLE': `🚨 Advertencia de seguridad\nUsar esta consola podría permitir que atacantes se hagan pasar por usted y roben su información mediante una técnica conocida como Self-XSS. No introduzca ni pegue código aquí si no está seguro de su función.`,\n ERROR: {\n TITLE: 'Actualización importante',\n 'SUB-TITLE': 'Estamos haciendo mejoras',\n EXPLAIN:\n 'Si tiene problemas para actualizar, inténtelo nuevamente o utilice el ícono de soporte a continuación.',\n ACTION: 'Intentar otra vez'\n },\n MAINTENANCE: {\n TITLE: 'Mantenimiento en curso',\n 'SUB-TITLE':\n 'Estamos realizando tareas de mantenimiento para mejorar nuestro servicio. Disculpe las molestias. Vuelva a intentarlo más tarde.',\n ACTION: 'Intentar otra vez'\n },\n 'NEW-VERSION': 'Nueva versión disponible. Haga clic aquí para actualizar.',\n 'POOR-CONNECTION':\n 'Conexión inestable. Es posible que algunas funciones no funcionen correctamente.',\n 'BLOCK-CONNECTION':\n '⚠️ Algunas funciones podrían no funcionar debido a un firewall o un bloqueo de red.',\n 'REQUEST-ERROR': {\n ERROR: '⚠️ Error inesperado',\n 'TOO-MANY-REQUEST': '🚨 Se superó el límite de reintentos. Inténtalo de nuevo más tarde.'\n }\n },\n 'es-MX': {\n 'SECURITY-CONSOLE': `🚨 Advertencia de seguridad\nUsar esta consola podría permitir que atacantes se hagan pasar por usted y roben su información mediante una técnica conocida como Self-XSS. No introduzca ni pegue código aquí si no está seguro de su función.`,\n ERROR: {\n TITLE: 'Actualización importante',\n 'SUB-TITLE': 'Estamos haciendo mejoras',\n EXPLAIN:\n 'Si tiene problemas para actualizar, inténtelo nuevamente o utilice el ícono de soporte a continuación.',\n ACTION: 'Intentar otra vez'\n },\n MAINTENANCE: {\n TITLE: 'Mantenimiento en curso',\n 'SUB-TITLE':\n 'Estamos realizando tareas de mantenimiento para mejorar nuestro servicio. Disculpe las molestias. Vuelva a intentarlo más tarde.',\n ACTION: 'Intentar otra vez'\n },\n 'NEW-VERSION': 'Nueva versión disponible. Haga clic aquí para actualizar.',\n 'POOR-CONNECTION':\n 'Conexión inestable. Es posible que algunas funciones no funcionen correctamente.',\n 'BLOCK-CONNECTION':\n '⚠️ Algunas funciones podrían no funcionar debido a un firewall o un bloqueo de red.',\n 'REQUEST-ERROR': {\n ERROR: '⚠️ Error inesperado',\n 'TOO-MANY-REQUEST': '🚨 Se superó el límite de reintentos. Inténtalo de nuevo más tarde.'\n }\n },\n 'en-US': {\n 'SECURITY-CONSOLE': `🚨 Warning\nUsing this console can allow attackers to pass through you and retrieve your information using a known technique such as Self-XSS. Please do not enter any code here if you do not know exactly what it looks like.`,\n ERROR: {\n TITLE: 'Important Update',\n 'SUB-TITLE': 'We are making improvements',\n EXPLAIN:\n 'If you are having trouble updating, please try again or use the support icon below.',\n ACTION: 'Try Again'\n },\n MAINTENANCE: {\n TITLE: 'Scheduled Maintenance',\n 'SUB-TITLE':\n 'We are currently performing scheduled maintenance to improve our service. We apologize for the inconvenience. Please try again later.',\n ACTION: 'Try Again'\n },\n 'NEW-VERSION': 'New version available. Click here to update.',\n 'POOR-CONNECTION': 'Connection is unstable. Some resources might not work properly.',\n 'BLOCK-CONNECTION': '⚠️ Some features may not work due to a firewall or network block.',\n 'REQUEST-ERROR': {\n ERROR: '⚠️ Unexpected error',\n 'TOO-MANY-REQUEST': '🚨 Retry limit exceeded. Try again later.'\n }\n }\n });\n\n constructor() {\n const tokenSubject = inject(MECX_CORE_I18N_WRAPPER, { optional: true });\n tokenSubject?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {\n this.handleWrapperValues(value);\n });\n }\n\n private getLocale() {\n const me: MonkeyEcxMeCredentials = this._tokenStorageService.getMe()!;\n return me?.locale || this._localeId || 'pt-BR';\n }\n\n private handleWrapperValues(value: string) {\n try {\n const locale = this.getLocale();\n const wrappedData = JSON.parse(value);\n const currentData = this._data$.value;\n\n const updated = {\n ...currentData,\n [locale]: {\n ...currentData[locale],\n ...wrappedData\n }\n };\n\n this._data$.next(updated);\n } catch (e) {\n console.error(`MonkeyDictionaryService - handleWrapperValues -> ${e}`);\n }\n }\n\n get(key: string) {\n const locale = this.getLocale();\n return this._data$.pipe(\n map((data) => {\n return data[locale]?.[key] ?? null;\n })\n );\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkey-dictionary.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxSecurityConsoleService {\n readonly dictionary = inject(MonkeyDictionaryService).get('SECURITY-CONSOLE');\n\n private async handleValidation() {\n const i18n = await firstValueFrom(this.dictionary);\n console.log(\n `%c${i18n}`,\n `\n color: #d93025;\n font-weight: 400;\n font-size: 14px;\n background:#fff7f6;\n padding: 4px 8px;\n`\n );\n\n console.log(\n '%c' +\n '███╗ ███╗ ██████╗ ███╗ ██╗██╗ ██╗███████╗██╗ ██╗\\n' +\n '████╗ ████║██╔═══██╗████╗ ██║██║ ██╔╝██╔════╝╚██╗ ██╔╝\\n' +\n '██╔████╔██║██║ ██║██╔██╗ ██║█████╔╝ █████╗ ╚████╔╝ \\n' +\n '██║╚██╔╝██║██║ ██║██║╚██╗██║██╔═██╗ ██╔══╝ ╚██╔╝ \\n' +\n '██║ ╚═╝ ██║╚██████╔╝██║ ╚████║██║ ██╗███████╗ ██║ \\n' +\n '╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚═╝ \\n',\n\n 'background: transparent; color: #1976d2; font-size: 8px'\n );\n }\n\n public apply() {\n setTimeout(() => {\n this.handleValidation();\n }, 300);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { datadogRum } from '@datadog/browser-rum';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxMeCredentials } from '../../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxDatadogService {\n private _allSet = false;\n\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private handleValidation() {\n const environment = this._bootstrapService.getEnv();\n const { bootstrap } = this._configService;\n const { whiteLabel } = this._configService;\n if (!whiteLabel) return;\n const { program, logs } = whiteLabel;\n const token = program?.token;\n const env = `monkey-front-${token}-${environment.environment}`.toLowerCase();\n\n if (\n logs?.enabled &&\n environment?.dataDogApplicationId &&\n environment.environment !== 'hmg' &&\n !this._allSet\n ) {\n datadogRum.init({\n applicationId: environment?.dataDogApplicationId,\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n sessionSampleRate: 100,\n sessionReplaySampleRate: 100,\n env,\n version: bootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n trackResources: true,\n trackLongTasks: true,\n trackUserInteractions: true,\n defaultPrivacyLevel: 'mask-user-input'\n });\n datadogRum.startSessionReplayRecording();\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.init({\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n env,\n version: bootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n forwardErrorsToLogs: true,\n sessionSampleRate: 100,\n forwardConsoleLogs: 'all'\n });\n }\n\n this._allSet = true;\n\n this.applyInfoToDataDog();\n }\n }\n\n private async applyInfoToDataDog() {\n try {\n const environment = this._bootstrapService.getEnv();\n const token = this._tokenStorageService.getToken();\n if (!token) return;\n\n if (token.accessToken && environment.dataDogApplicationId) {\n const me: MonkeyEcxMeCredentials = this._tokenStorageService.getMe()!;\n\n const user = {\n id: token.username,\n email: token.username,\n name: me.name,\n locale: me.locale\n };\n\n datadogRum.setUser(user);\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.setUser(user);\n }\n }\n } catch (e) {\n // not to do\n }\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxErrorService {\n private readonly _dictionary = inject(MonkeyDictionaryService).get('ERROR');\n\n private async handleValidation(e: any) {\n const i18n = await firstValueFrom(this._dictionary);\n\n let errorMessage = '';\n if (e instanceof HttpErrorResponse) {\n errorMessage = `${e.url} | ${e.error?.error || e.error}`;\n } else if (typeof e === 'string') {\n errorMessage = e as string;\n }\n\n const createElementInner = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.innerHTML = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const createElement = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.textContent = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const overlay = createElement('div', null, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgb(144 144 144 / 66%)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: '9999'\n });\n\n const modalBox = createElement('div', null, {\n backgroundColor: '#fff',\n color: '#333',\n padding: '24px',\n borderRadius: '10px',\n boxShadow: '0 4px 15px rgba(0,0,0,0.2)',\n maxWidth: '400px',\n width: '90%',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n alignItems: 'center',\n margin: '12px'\n });\n\n const svgLogo = `\n<svg width=\"132\" height=\"32\" viewBox=\"0 0 132 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.97434 25.1563V15.1112C3.97434 14.0262 4.28303 13.1298 4.91047 12.4238C5.5312 11.7177 6.38511 11.3605 7.4672 11.3605C8.61638 11.3605 9.44849 11.6977 9.95514 12.3704C10.4635 13.043 10.7185 13.8643 10.7185 14.8341V25.1547H14.6609V15.1112C14.6609 14.0679 14.9763 13.1832 15.6138 12.4571C16.2446 11.7311 17.0935 11.3605 18.1504 11.3605C19.2795 11.3605 20.1066 11.6927 20.625 12.3537C21.145 13.0163 21.4051 13.8392 21.4051 14.8341V25.1547H25.272V14.1781C25.272 13.0664 25.1043 12.105 24.7671 11.2921C24.4332 10.4808 23.9903 9.81483 23.4384 9.29237C22.8881 8.77158 22.2506 8.386 21.5359 8.13061C20.8246 7.88191 20.0848 7.75171 19.3281 7.75171C18.2142 7.75171 17.1942 7.97204 16.2664 8.41438C15.3303 8.85337 14.5318 9.62955 13.8624 10.7362C13.3977 9.74305 12.7165 8.99859 11.8207 8.49951C10.9248 8.00042 9.91823 7.75171 8.81602 7.75171C7.87151 7.75171 6.92532 7.97872 5.9808 8.4294C5.03629 8.88008 4.32329 9.52939 3.8351 10.389V8.23577H0V25.1563H3.97434Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M35.7296 8.39107C34.661 8.84843 33.7366 9.4727 32.9632 10.2706C32.1898 11.0701 31.5858 12.0149 31.1496 13.0998C30.7101 14.1915 30.4954 15.385 30.4954 16.6769C30.4954 17.9805 30.7101 19.1807 31.1496 20.2773C31.5858 21.3807 32.1915 22.3305 32.9632 23.1267C33.7366 23.9262 34.6593 24.5505 35.7296 25.0011C36.8016 25.4518 37.9609 25.6788 39.209 25.6788C40.4723 25.6788 41.6383 25.4518 42.6985 25.0011C43.7588 24.5505 44.6748 23.9262 45.465 23.1267C46.2468 22.3305 46.8591 21.3807 47.2953 20.2773C47.7348 19.1807 47.9563 17.9805 47.9563 16.6769C47.9563 15.385 47.7348 14.1915 47.2953 13.0998C46.8591 12.0149 46.2468 11.0701 45.465 10.2706C44.6765 9.47437 43.7588 8.8501 42.6985 8.39107C41.6383 7.94039 40.4723 7.71338 39.209 7.71338C37.9609 7.71338 36.8 7.94039 35.7296 8.39107ZM37.4257 21.7145C36.8587 21.4875 36.3621 21.1437 35.9343 20.693C35.5065 20.2423 35.1609 19.6831 34.8975 19.0121C34.6341 18.3394 34.5033 17.5599 34.5033 16.6752C34.5033 15.7973 34.6341 15.0311 34.8975 14.3684C35.1609 13.7058 35.5065 13.1516 35.9343 12.7009C36.3621 12.2502 36.8587 11.9131 37.4257 11.6927C37.9877 11.4741 38.5816 11.3606 39.209 11.3606C39.8247 11.3606 40.4186 11.4741 40.9857 11.6927C41.5477 11.9131 42.0493 12.2502 42.4888 12.7009C42.925 13.1516 43.2706 13.7058 43.5256 14.3684C43.7806 15.0311 43.9081 15.7973 43.9081 16.6752C43.9081 17.5599 43.7789 18.3378 43.5256 19.0121C43.2706 19.6831 42.925 20.2423 42.4888 20.693C42.0493 21.1437 41.5477 21.4875 40.9857 21.7145C40.4186 21.9465 39.8264 22.06 39.209 22.06C38.5816 22.06 37.9894 21.9465 37.4257 21.7145Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M57.596 15.395C57.596 14.2833 57.8879 13.3369 58.4768 12.5623C59.0673 11.7912 59.9363 11.3989 61.0906 11.3989C62.3555 11.3989 63.2514 11.7678 63.7697 12.4972C64.2898 13.2233 64.5499 14.1097 64.5499 15.1513V25.1564H68.5577V14.4552C68.5577 13.5338 68.4269 12.6642 68.1752 11.8496C67.9202 11.0417 67.5478 10.3306 67.0495 9.71805C66.553 9.10546 65.9272 8.6214 65.1706 8.2742C64.4073 7.92534 63.5114 7.75342 62.4746 7.75342C61.5251 7.75342 60.594 7.96874 59.688 8.39272C58.7804 8.8217 58.0456 9.52443 57.4937 10.4942V8.23581H53.5881V25.1564H57.596V15.395Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M90.7895 8.23577H85.468L79.0024 15.0794V0H75.0247V25.1563H79.0024V20.4325L81.0742 18.2409L86.0183 25.1563H90.9304L83.8742 15.3949L90.7895 8.23577Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M106.935 19.2474C106.655 20.0837 106.19 20.7847 105.538 21.3489C104.877 21.9198 103.939 22.2019 102.717 22.2019C102.097 22.2019 101.513 22.0934 100.971 21.8697C100.432 21.6544 99.951 21.3456 99.5349 20.9517C99.1172 20.5611 98.7833 20.0954 98.5334 19.5629C98.2817 19.0304 98.1391 18.4395 98.1173 17.7886H110.43C110.451 17.7452 110.471 17.5983 110.493 17.3546C110.517 17.1159 110.534 16.8271 110.534 16.5016C110.534 15.1596 110.344 13.9494 109.975 12.8745C109.609 11.7995 109.074 10.8764 108.371 10.1103C107.668 9.35081 106.804 8.75825 105.777 8.34095C104.751 7.92366 103.59 7.71167 102.305 7.71167C101.241 7.71167 100.213 7.93033 99.2262 8.35765C98.2314 8.78663 97.3573 9.39087 96.5957 10.167C95.8323 10.9432 95.2284 11.8763 94.7805 12.9629C94.3325 14.0479 94.1111 15.2647 94.1111 16.6084C94.1111 18.0439 94.3426 19.3225 94.819 20.4476C95.2888 21.5709 95.9162 22.5207 96.6997 23.2969C97.4815 24.073 98.3941 24.6656 99.4326 25.0662C100.469 25.4685 101.56 25.6755 102.717 25.6755C103.732 25.6755 104.65 25.5336 105.484 25.2582C106.314 24.9811 107.051 24.6005 107.698 24.1131C108.341 23.6307 108.879 23.0665 109.319 22.4139C109.755 21.7629 110.092 21.0668 110.322 20.3241L106.935 19.2474ZM98.2213 14.8358C98.2431 14.4018 98.3606 13.9561 98.5669 13.5004C98.7716 13.0497 99.0551 12.6441 99.4007 12.2836C99.7463 11.9264 100.162 11.6376 100.659 11.4156C101.156 11.2003 101.711 11.0851 102.34 11.0851C103.031 11.0851 103.63 11.1936 104.137 11.3989C104.645 11.6059 105.073 11.8813 105.418 12.2302C105.764 12.579 106.022 12.9796 106.195 13.4303C106.368 13.886 106.465 14.3517 106.487 14.8358H98.2213Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M121.282 32.0001L132 8.23584H127.751L123.223 18.9353L118.381 8.23584H113.85L121.04 23.14L116.999 32.0001H121.282Z\" fill=\"#0273E8\"/>\n</svg>\n`;\n\n const logoContainer = document.createElement('div');\n logoContainer.innerHTML = svgLogo;\n Object.assign(logoContainer.style);\n modalBox.appendChild(logoContainer);\n\n const title1 = createElement('span', i18n.TITLE, {\n fontSize: '1.8em',\n fontWeight: 'bold'\n });\n\n const title2 = createElement('span', i18n?.['SUB-TITLE'], {\n fontSize: '1.2em',\n fontWeight: '600'\n });\n\n const message = createElement('p', i18n.EXPLAIN, {\n fontSize: '1em',\n margin: '0',\n lineHeight: '1.5'\n });\n\n let errorBox = null;\n if (errorMessage) {\n errorBox = createElementInner('div', errorMessage, {\n backgroundColor: '#f8d7da',\n color: '#721c24',\n border: '1px solid #f5c6cb',\n borderRadius: '6px',\n padding: '8px',\n fontSize: '10px',\n width: '100%',\n maxHeight: '142px',\n boxSizing: 'border-box',\n textAlign: 'left',\n overflowY: 'auto',\n overflowX: 'hidden'\n });\n }\n\n const tryAgainButton = createElement('button', i18n.ACTION, {\n marginTop: '10px',\n padding: '12px 20px',\n fontSize: '1em',\n fontWeight: '600',\n color: '#fff',\n backgroundColor: '#007BFF',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n boxShadow: '0 2px 5px rgba(0,0,0,0.2)',\n transition: 'background-color 0.3s ease',\n letterSpacing: '0.48px'\n });\n\n tryAgainButton.addEventListener('mouseover', () => {\n tryAgainButton.style.backgroundColor = '#0056b3';\n });\n tryAgainButton.addEventListener('mouseout', () => {\n tryAgainButton.style.backgroundColor = '#007BFF';\n });\n\n tryAgainButton.addEventListener('click', () => {\n document.location.reload();\n });\n\n modalBox.appendChild(title1);\n modalBox.appendChild(title2);\n if (errorBox) modalBox.appendChild(errorBox);\n modalBox.appendChild(message);\n modalBox.appendChild(tryAgainButton);\n overlay.appendChild(modalBox);\n document.body.appendChild(overlay);\n }\n\n public apply(e?: any) {\n this.handleValidation(e);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport * as LDClient from 'launchdarkly-js-client-sdk';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxWhiteLabel } from '../../interfaces';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxFeatureToggleService {\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n private readonly _flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n private _ldClient: LDClient.LDClient | null = null;\n\n private async handleValidation(\n clientSideId: string,\n whiteLabel: MonkeyEcxWhiteLabel\n ): Promise<void> {\n const email = 'monkey@monkey.exchange';\n const user = {\n email,\n kind: 'user',\n key: `${whiteLabel.program?.token}#${email}`.toLowerCase()\n };\n\n return new Promise((resolve, reject) => {\n try {\n this._ldClient = LDClient.initialize(clientSideId, user, {\n streaming: true,\n sendEvents: true\n });\n\n this._ldClient.on('ready', () => {\n resolve();\n });\n\n this._ldClient.on('failed', (err) => {\n console.error('MECXFeatureToggleService -> SDK failed', err);\n resolve();\n });\n\n this._ldClient.on('error', (err) => {\n console.error('MECXFeatureToggleService -> SDK error', err);\n });\n\n this._ldClient.on('change', () => {\n this._flagSubject$.next(true);\n });\n } catch (e) {\n resolve();\n }\n });\n }\n\n public getFlag<T = boolean>(flagName: string, defaultValue: T): T {\n if (!this._ldClient) {\n console.warn('MECXFeatureToggleService -> client not initialized. Returning default value.');\n return defaultValue;\n }\n\n return this._ldClient.variation(flagName, defaultValue);\n }\n\n public get onFlags(): Observable<any> {\n return this._flagSubject$.asObservable();\n }\n\n public async apply() {\n const environment = this._bootstrapService.getEnv();\n const { whiteLabel } = this._configService;\n if (!whiteLabel) return;\n await this.handleValidation(environment.launchDarklyClientSideID, whiteLabel);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\n/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\n\ndeclare const window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxGTMService {\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private async handleValidation() {\n try {\n const env = this._bootstrapService.getEnv();\n const { gtm } = env;\n const { enabled, key } = gtm || { enabled: false, key: '' };\n\n if (!enabled || !key || env.environment === 'dev') return;\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js'\n });\n const head = document.querySelector('head');\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=GTM-${key}`;\n head?.appendChild(script);\n\n const body = document.querySelector('body');\n const noscript = document.createElement('noscript');\n const iframe = document.createElement('iframe');\n iframe.src = `https://www.googletagmanager.com/ns.html?id=GTM-${key}`;\n iframe.height = '0';\n iframe.width = '0';\n iframe.style.display = 'none';\n iframe.style.visibility = 'hidden';\n noscript.appendChild(iframe);\n body?.appendChild(noscript);\n } catch (e) {\n console.error('MECXFeatureGTMService -> Configuration Error!');\n }\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyDictionaryService } from '../dictionary';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxNewVersionService {\n private readonly _dictionary = inject(MonkeyDictionaryService).get('NEW-VERSION');\n\n private readonly _configsService = inject(MonkeyEcxConfigsService);\n\n private _showed = false;\n\n private async handleValidation() {\n if (this._showed) return;\n\n const id = 'mecx-new-version-banner';\n const { bootstrap } = this._configsService;\n if (!bootstrap || !bootstrap.showNewVersion) return;\n const i18n = await firstValueFrom(this._dictionary);\n if (document.getElementById(id)) return;\n\n const banner = document.createElement('div');\n banner.id = id;\n\n Object.assign(banner.style, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n backgroundColor: 'rgb(30 115 73)',\n color: '#fff',\n textAlign: 'center',\n padding: '6px 0px',\n fontSize: '13px',\n boxShadow: 'rgba(0, 0, 0, 0.2) 0px 2px 5px',\n zIndex: '10000',\n cursor: 'pointer',\n userSelect: 'none',\n letterSpacing: '0.48px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderBottomRightRadius: '16px',\n borderBottomLeftRadius: '16px',\n fontWeight: '500'\n });\n\n banner.textContent = i18n;\n\n banner.addEventListener('click', () => {\n banner.remove();\n window.location.reload();\n });\n\n document.body.insertBefore(banner, document.body.firstChild);\n\n this._showed = true;\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { inject, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, firstValueFrom, fromEvent, interval, merge, Subscription } from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrap } from '../../interfaces';\nimport { MonkeyEcxNewVersionService } from '../config/monkeyecx-new-version.service';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxConnectionService implements OnDestroy {\n private readonly _dictionaryPoorConnection =\n inject(MonkeyDictionaryService).get('POOR-CONNECTION');\n\n private readonly _dictionaryBlockConnection =\n inject(MonkeyDictionaryService).get('BLOCK-CONNECTION');\n\n private readonly _service = inject(HttpClient);\n\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _newVersionService = inject(MonkeyEcxNewVersionService);\n\n private readonly checkIntervalMs = 30000;\n\n private readonly defaultThresholdMs = 2000;\n\n private readonly idleTimeoutMs = 2 * 60 * 1000;\n\n private _isPoor = new BehaviorSubject(false);\n\n private _isPoor$ = this._isPoor.asObservable();\n\n private _intervalSub: Subscription | null = null;\n\n private _idleTimeoutHandle: any = null;\n\n private _lastVersion: string | null = null;\n\n constructor(private zone: NgZone) {\n //not to do\n }\n\n private handleVersionChange({ version }: MonkeyEcxBootstrap) {\n if (this._lastVersion) {\n if (this._lastVersion !== version) {\n this._newVersionService.apply();\n }\n }\n this._lastVersion = version;\n }\n\n private setupUserActivityTracking() {\n const activityEvents$ = merge(\n fromEvent(window, 'mousemove'),\n fromEvent(window, 'mousedown'),\n fromEvent(window, 'keydown'),\n fromEvent(window, 'scroll'),\n fromEvent(window, 'touchstart')\n );\n\n activityEvents$.subscribe(() => this.resetIdleTimer());\n\n this.resetIdleTimer();\n }\n\n private resetIdleTimer() {\n if (this._idleTimeoutHandle) {\n clearTimeout(this._idleTimeoutHandle);\n }\n\n if (!this._intervalSub) {\n this.startMonitoring();\n }\n\n this._idleTimeoutHandle = setTimeout(() => {\n this.stopMonitoring();\n }, this.idleTimeoutMs);\n }\n\n private async handleWarning(show = true, type: 'poor' | 'block') {\n const id = 'mecx-poor-connection-banner';\n const el = document.getElementById(id);\n el?.remove();\n\n if (!show) {\n return;\n }\n\n let i18n = '';\n if (type === 'poor') {\n i18n = await firstValueFrom(this._dictionaryPoorConnection);\n } else {\n i18n = await firstValueFrom(this._dictionaryBlockConnection);\n }\n const banner = document.createElement('div');\n banner.id = id;\n\n Object.assign(banner.style, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n backgroundColor: 'rgb(215 112 29)',\n color: '#fff',\n textAlign: 'center',\n padding: '2px 0px',\n fontSize: '13px',\n boxShadow: '0 2px 5px rgba(0,0,0,0.2)',\n zIndex: '10001',\n userSelect: 'none',\n letterSpacing: '0.48px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderBottomRightRadius: '16px',\n borderBottomLeftRadius: '16px',\n fontWeight: '500'\n });\n\n banner.textContent = i18n;\n\n banner.addEventListener('click', () => {\n document.body.style.marginTop = '0px';\n banner.remove();\n window.location.reload();\n });\n\n document.body.insertBefore(banner, document.body.firstChild);\n }\n\n private startMonitoring() {\n this.zone.runOutsideAngular(() => {\n this._intervalSub = interval(this.checkIntervalMs).subscribe(() => this.checkConnection());\n });\n }\n\n private stopMonitoring() {\n if (this._intervalSub) {\n this._intervalSub.unsubscribe();\n this._intervalSub = null;\n }\n }\n\n private async checkConnection() {\n try {\n const start = performance.now();\n const params = new HttpParams().set('t', new Date().getTime().toString());\n const env = this._bootstrapService.getEnv();\n const response: MonkeyEcxBootstrap = await firstValueFrom<any>(\n this._service.get(env.bootstrapAssets, { params, headers: { 'Cache-Control': 'no-cache' } })\n );\n\n let threshold = this.defaultThresholdMs;\n try {\n threshold =\n typeof response.pingThresholdMs === 'number' ? response.pingThresholdMs : threshold;\n } catch (_) {\n //not to do\n }\n\n const duration = performance.now() - start;\n const isPoor = duration > threshold;\n this.zone.run(() => this._isPoor.next(isPoor));\n this.handleVersionChange(response);\n } catch (e) {\n this.zone.run(() => this._isPoor.next(true));\n }\n }\n\n private handleValidation() {\n this.setupUserActivityTracking();\n this._isPoor$.subscribe((v) => {\n this.handleWarning(v, 'poor');\n });\n }\n\n public apply() {\n this.handleValidation();\n }\n\n public applyBlockConnection() {\n this.handleWarning(true, 'block');\n }\n\n ngOnDestroy() {\n this.stopMonitoring();\n if (this._idleTimeoutHandle) clearTimeout(this._idleTimeoutHandle);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { firstValueFrom } from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrapService, MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxConnectionService } from '../connection';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxRequestErrorService {\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _router = inject(Router);\n\n private readonly _connectionService = inject(MonkeyEcxConnectionService);\n\n private readonly _dictionary = inject(MonkeyDictionaryService).get('REQUEST-ERROR');\n\n private isHttpCodeIgnoreRedirect(\n tp: MonkeyEcxServiceCredentials | undefined | null,\n httpCode: number\n ): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private isHttpCodeIgnoreMessage(\n tp: MonkeyEcxServiceCredentials | undefined | null,\n httpCode: number\n ): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const discardStatusCodes = [0, 502, 503, 401];\n\n let found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\n if (discardStatusCodes.includes(httpCode)) {\n found = true;\n }\n\n return found;\n }\n\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\n if (status === 409 || status === 400 || status === 401) {\n return 'warning';\n }\n\n return 'error';\n }\n\n private handleNetworkBlock(error: HttpErrorResponse) {\n if (error instanceof HttpErrorResponse) {\n const isPossibleBlock =\n error.status === 0 ||\n (error.name === 'HttpErrorResponse' && error.message.includes('Unknown'));\n\n if (isPossibleBlock) {\n this._connectionService.applyBlockConnection();\n }\n }\n }\n\n private showMessage(\n message: string,\n error: HttpErrorResponse,\n mkc: MonkeyEcxServiceCredentials | undefined | null\n ) {\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status) || error.status === 401) {\n const type = this.getMessageType(error.status);\n this._bootstrapService.handleMessage(message, type);\n }\n }\n\n private async handleMessage(\n error: HttpErrorResponse,\n mkc: MonkeyEcxServiceCredentials | undefined | null\n ) {\n // eslint-disable-next-line camelcase\n const { notifications, error_description, message } = error?.error || {};\n const customMessage = this.extractMessage(message, error_description, notifications);\n\n if (customMessage) {\n this.showMessage(customMessage, error, mkc);\n return;\n }\n\n if (error.error instanceof Blob) {\n this.handleBlobError(error, mkc);\n return;\n }\n\n if (!error?.url?.includes('assets.monkey') && error.status !== 401) {\n const msgKey = error.status === 429 ? 'TOO-MANY-REQUEST' : 'ERROR';\n const i18n = await firstValueFrom(this._dictionary);\n this.showMessage(i18n?.[msgKey], error, mkc);\n }\n }\n\n private extractMessage(\n message?: string,\n errorDescription?: string,\n notifications?: string\n ): string {\n return notifications || errorDescription || message || '';\n }\n\n private handleBlobError(\n error: HttpErrorResponse,\n mkc: MonkeyEcxServiceCredentials | undefined | null\n ) {\n const blob = new Blob([error.error], { type: 'application/json' });\n const reader = new FileReader();\n reader.addEventListener('loadend', (e) => {\n const text = e?.target?.result as string;\n try {\n const jsonResp = JSON.parse(text);\n const customMessage = jsonResp.notifications;\n this.showMessage(customMessage, error, mkc);\n } catch {\n this.showMessage('', error, mkc);\n }\n });\n reader.readAsText(blob);\n }\n\n public async handleError(\n error: HttpErrorResponse,\n mkc?: MonkeyEcxServiceCredentials | undefined | null\n ) {\n const { status } = error;\n\n const routes: any = {\n 403: 'forbidden',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n let route = '/app/pages/';\n\n const found = routes[status];\n let timeout = 0;\n\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\n route = `${route}${found}`.toLowerCase();\n timeout = 800;\n this._router.navigate([route]);\n }\n\n setTimeout(() => {\n this.handleMessage(error, mkc);\n }, timeout);\n\n this.handleNetworkBlock(error);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpEvent, HttpHandler, HttpHandlerFn, HttpRequest } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport {\n catchError,\n finalize,\n Observable,\n ReplaySubject,\n Subject,\n switchMap,\n take,\n tap,\n throwError\n} from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrapService, MonkeyEcxPendingRequest } from '../../interfaces';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces/monkeyecx-service-credentials';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxAuthService } from '../auth';\n\nconst counters: Record<string, number> = {};\nconst requestsMap: Map<string, MonkeyEcxServiceCredentials> = new Map();\nlet pendingRequests: MonkeyEcxPendingRequest[] = [];\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxRequestStateService {\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private readonly _authService = inject(MonkeyEcxAuthService);\n\n private _isTokenRefreshing = false;\n\n getId(prefix: string): string {\n if (!Object.prototype.hasOwnProperty.call(counters, prefix)) {\n counters[prefix] = 1;\n }\n\n let currentCount = counters[prefix];\n if (currentCount > 10000) {\n currentCount = 0;\n }\n counters[prefix] = currentCount + 1;\n\n return `${prefix}${currentCount}`;\n }\n\n set tokenRefreshing(value: boolean) {\n this._isTokenRefreshing = value;\n }\n\n get tokenRefreshing() {\n return this._isTokenRefreshing;\n }\n\n setData(id: string, data: MonkeyEcxServiceCredentials): void {\n requestsMap.set(id, data);\n }\n\n getData(id: string): MonkeyEcxServiceCredentials | undefined {\n return requestsMap?.get(id);\n }\n\n clearData(id: string): void {\n requestsMap.delete(id);\n }\n\n getHeaders(url: string): { [name: string]: string | string[] } {\n const isTokenMandatory = () => {\n return !(\n this._bootstrapService\n .getNotMandatoryUrls()\n .split('#')\n .filter((val: any) => {\n return url.indexOf(val) > -1;\n }).length > 0\n );\n };\n\n if (!isTokenMandatory()) return {};\n\n const token = this._tokenStorageService.getToken();\n let program = token!.program!;\n try {\n program = this._bootstrapService.handleProgram?.(program!) || program;\n } catch (e) {\n //not to do\n }\n\n const headers = {\n Authorization: '',\n Program: ''\n };\n\n if (MonkeyEcxUtils.persistNullEmptyUndefined(token?.accessToken)) {\n headers.Authorization = `Bearer ${token?.accessToken}`;\n }\n\n if (MonkeyEcxUtils.persistNullEmptyUndefined(program)) {\n headers.Program = program;\n }\n\n return headers;\n }\n\n addToPending(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const subject = new Subject<HttpEvent<any>>();\n\n pendingRequests.push({\n request,\n next,\n observer: subject\n });\n\n return subject.asObservable();\n }\n\n private refreshSubject = new ReplaySubject<void>(1);\n\n private retryRequest(req: HttpRequest<any>, next: HttpHandlerFn): Observable<HttpEvent<any>> {\n const headers = this.getHeaders(req.url);\n const cloned = req.clone({ setHeaders: headers });\n return next(cloned);\n }\n\n handleRefreshTokenError(req: HttpRequest<any>, next: HttpHandlerFn): Observable<HttpEvent<any>> {\n if (!this._isTokenRefreshing) {\n this._isTokenRefreshing = true;\n\n return this._authService.refreshToken().pipe(\n tap(() => {\n this.refreshSubject.next();\n }),\n catchError((err) => {\n this._isTokenRefreshing = false;\n this.refreshSubject.error(err);\n this._authService.logOut(true, false, () => {\n this._authService.redirectLoginWelcomeBack();\n });\n return throwError(() => err);\n }),\n finalize(() => {\n this._isTokenRefreshing = false;\n this.refreshSubject = new ReplaySubject<void>(1);\n }),\n switchMap(() => this.retryRequest(req, next))\n );\n }\n\n return this.refreshSubject.pipe(\n take(1),\n switchMap(() => this.retryRequest(req, next))\n );\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-request-error.service';\nexport * from './monkeyecx-request-state.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpClient, HttpContext, HttpEvent, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { MECX_REQUEST_ID } from '../injectors';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { MonkeyEcxLogs } from '../utils';\nimport { MonkeyEcxRequestStateService } from './request';\n\ninterface HttpOptions {\n headers: HttpHeaders | Record<string, string | string[]>;\n observe: 'events';\n context: HttpContext;\n params:\n | HttpParams\n | Record<string, string | number | boolean | ReadonlyArray<string | number | boolean>>;\n reportProgress: boolean;\n responseType: 'json';\n withCredentials: boolean;\n transferCache:\n | {\n includeHeaders?: string[];\n }\n | boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxService {\n private _http = inject(HttpClient);\n\n private _stateService = inject(MonkeyEcxRequestStateService);\n\n private handlelize(params: any): any {\n if (!params) {\n return params;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const field of [\n 'createdAt',\n 'createUserId',\n 'updatedAt',\n 'lastUserId',\n '_links',\n 'governmentIdType',\n 'governmentIdMask',\n 'screenType',\n 'screenTab',\n 'context'\n ]) {\n delete params[field];\n }\n return params;\n }\n\n public internalRequestData: MonkeyEcxServiceCredentials | null = null;\n\n private getOptions(options?: any) {\n if (this.internalRequestData) {\n const requestId = this._stateService.getId(this.internalRequestData.id);\n this._stateService.setData(requestId, this.internalRequestData);\n const context = new HttpContext().set(MECX_REQUEST_ID, requestId);\n\n options = {\n ...options,\n context\n };\n }\n\n return options;\n }\n\n public get<T>(url: string, options?: any): Observable<T> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.get url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n\n return this._http.get<T>(url, options) as Observable<T>;\n }\n\n public getWithProgress<T>(\n url: string,\n options?: Partial<HttpOptions> | {}\n ): Observable<HttpEvent<T>> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.getWithProgress url is missing =='\n });\n\n return of(null as T) as Observable<HttpEvent<T>>;\n }\n\n options = this.getOptions(options);\n\n options = {\n ...options,\n reportProgress: true\n };\n\n return this.get<T>(url, options) as Observable<HttpEvent<T>>;\n }\n\n public post<T>(url: string, params: T, options?: Partial<HttpOptions> | {}): Observable<any> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.post url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n\n return this._http.post<T>(url, this.handlelize(params), options || {});\n }\n\n public put<T>(url: string, params: T, options?: Partial<HttpOptions> | {}): Observable<any> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.put url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n\n return this._http.put<T>(url, this.handlelize(params), options || {});\n }\n\n public patch<T>(url: string, params: T, options?: Partial<HttpOptions> | {}): Observable<any> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.patch url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n\n return this._http.patch<T>(url, this.handlelize(params), options || {});\n }\n\n public delete<T>(url: string, options?: Partial<HttpOptions> | {}): Observable<T> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.delete url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n return this._http.delete<T>(url, options || {});\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { registerLocaleData } from '@angular/common';\nimport esCL from '@angular/common/locales/es-CL';\nimport esMX from '@angular/common/locales/es-MX';\nimport ptBr from '@angular/common/locales/pt';\nimport { inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { CACHE_LOCALE_EXPIRATION_MS } from '../../enums';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrapService } from '../../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx.service';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\nimport { MonkeyEcxErrorService } from './monkeyecx-error.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLocaleService {\n private readonly _localeId = injectTokenWithWarning(LOCALE_ID, 'LOCALE_ID')!;\n\n private readonly _service = inject(MonkeyEcxService);\n\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _errorService = inject(MonkeyEcxErrorService);\n\n private readonly _configsService = inject(MonkeyEcxConfigsService);\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private static _loadedBundles = new Map<string, number>();\n\n private static _loadedFromWhiteLabel = false;\n\n constructor() {\n // not to do\n }\n\n private isExpired(lang: string, name: string) {\n const cacheKey = `${name}/${lang}`;\n const now = Date.now();\n\n const lastLoaded = MonkeyEcxLocaleService._loadedBundles.get(cacheKey);\n if (lastLoaded && now - lastLoaded < CACHE_LOCALE_EXPIRATION_MS) {\n return false;\n }\n\n return true;\n }\n\n private loadFromWhitelabel(lang: string) {\n try {\n const whiteLabel = this._configsService.whiteLabel;\n const currentExternali18n = whiteLabel?.externali18n?.[`${lang}`];\n\n let data = {};\n if (currentExternali18n) {\n data = {\n EXTERNAL: currentExternali18n\n };\n }\n\n this._bootstrapService.handleI18N(lang, data);\n } catch (e) {\n this._errorService.apply(e);\n console.error(`MonkeyEcxLocaleService -> loadFromWhitelabel i18n ${lang} not found!`);\n }\n }\n\n private async loadExternal(lang: string, name: string) {\n try {\n if (!this.isExpired(lang, name)) return;\n const env = this._bootstrapService.getEnv();\n const url = MonkeyEcxUtils.replaceVariables(env.urli18nAssets, {\n name,\n lang\n });\n\n const resp = await firstValueFrom<any>(this._service?.get(url));\n this._bootstrapService.handleI18N(lang, resp.data);\n\n MonkeyEcxLocaleService._loadedBundles.set(`${name}/${lang}`, Date.now());\n } catch (e) {\n this._errorService.apply(e);\n console.error(`MonkeyEcxLocaleService -> loadExternal i18n ${name} - ${lang} not found!`);\n }\n }\n\n private async loadInternal(lang: string) {\n try {\n if (!this.isExpired(lang, 'internal')) return;\n const env = this._bootstrapService.getEnv();\n const url = `${env.localAssets}/i18n/${lang}.json`;\n\n const resp = await firstValueFrom<any>(this._service?.get(url));\n this._bootstrapService.handleI18N(lang, resp.data);\n\n MonkeyEcxLocaleService._loadedBundles.set(`internal/${lang}`, Date.now());\n } catch (e) {\n this._errorService.apply(e);\n console.error(`MonkeyEcxLocaleService -> loadInternal i18n ${lang} not found!`);\n }\n }\n\n private async handleValidation() {\n const lang = this._tokenStorageService.getMe()?.locale || this._localeId;\n\n if (this._localeId === 'es-CL') {\n registerLocaleData(esCL);\n } else if (this._localeId === 'es-MX') {\n registerLocaleData(esMX);\n } else {\n registerLocaleData(ptBr);\n }\n\n await this.loadExternal(lang, 'auth');\n await this.loadInternal(lang);\n await this.loadExternal(lang, 'shared');\n this.loadExternal(lang, 'alerts');\n this.loadExternal(lang, 'register');\n this.loadFromWhitelabel(lang);\n }\n\n public async apply() {\n await this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxMaintenanceService {\n private readonly _dictionary = inject(MonkeyDictionaryService).get('MAINTENANCE');\n\n private async handleValidation() {\n const i18n = await firstValueFrom(this._dictionary);\n\n const createElementInner = (tag: any, html: any, styles = {}) => {\n const el = document.createElement(tag);\n if (html) el.innerHTML = html;\n Object.assign(el.style, styles);\n return el;\n };\n\n const createElement = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.textContent = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const overlay = createElement('div', null, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgba(0, 0, 0, 0.6)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: '9999'\n });\n\n const modalBox = createElement('div', null, {\n backgroundColor: '#fff',\n color: '#333',\n borderRadius: '12px',\n boxShadow: '0 4px 20px rgba(0,0,0,0.3)',\n maxWidth: '480px',\n width: '90%',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n margin: '12px',\n overflow: 'hidden',\n paddingBottom: '24px'\n });\n\n const svg = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"116\" height=\"112\" viewBox=\"0 0 116 112\" fill=\"none\">\n <path d=\"M107.23 85.0007L112.434 85.8139C114.196 83.6812 115.41 81.1507 115.972 78.4421C112.166 81.5569 106.38 79.9017 101.766 81.6022C100.331 82.1436 99.0361 83.001 97.9775 84.1108C96.9189 85.2206 96.1236 86.5544 95.6506 88.0134L93.1074 90.7495C95.4095 91.6609 97.8818 92.0624 100.354 91.9263C102.826 91.7902 105.239 91.1197 107.428 89.9612C108.649 89.299 109.782 88.4858 110.799 87.5406C108.979 86.394 107.23 85.0007 107.23 85.0007Z\" fill=\"#F2F2F2\"/>\n <path d=\"M105.383 76.678L110.404 75.0851C111.029 72.3906 110.988 69.5841 110.282 66.9094C108.266 71.3943 102.348 72.4935 98.9768 76.0733C97.9339 77.1978 97.1574 78.5427 96.7048 80.0081C96.2523 81.4736 96.1353 83.0221 96.3626 84.5389L95.3066 88.1221C97.7736 87.9111 100.165 87.1678 102.317 85.9435C104.469 84.7191 106.33 83.0428 107.772 81.0299C108.57 79.8927 109.221 78.6596 109.711 77.3596C107.57 77.1455 105.383 76.678 105.383 76.678Z\" fill=\"#F2F2F2\"/>\n <path d=\"M116 92.4072C116 92.434 115.995 92.4606 115.985 92.4855C115.974 92.5103 115.959 92.5328 115.94 92.5518C115.921 92.5708 115.899 92.5859 115.874 92.5961C115.849 92.6063 115.823 92.6116 115.796 92.6115H0.204301C0.150117 92.6115 0.0981519 92.59 0.0598381 92.5516C0.0215242 92.5133 0 92.4614 0 92.4072C0 92.353 0.0215242 92.301 0.0598381 92.2627C0.0981519 92.2244 0.150117 92.2029 0.204301 92.2029H115.796C115.823 92.2028 115.849 92.208 115.874 92.2183C115.899 92.2285 115.921 92.2435 115.94 92.2625C115.959 92.2815 115.974 92.3041 115.985 92.3289C115.995 92.3537 116 92.3803 116 92.4072Z\" fill=\"#CCCCCC\"/>\n <path d=\"M47.8988 83.6973C68.2845 83.6973 84.8103 67.1714 84.8103 46.7858C84.8103 26.4001 68.2845 9.87427 47.8988 9.87427C27.5132 9.87427 10.9873 26.4001 10.9873 46.7858C10.9873 67.1714 27.5132 83.6973 47.8988 83.6973Z\" fill=\"#E6E6E6\"/>\n <path d=\"M79.6598 46.786C79.6635 51.7419 78.5059 56.6297 76.2796 61.0574C74.0534 65.4851 70.8205 69.3296 66.8404 72.2824C66.5743 72.4815 66.303 72.6755 66.03 72.8644C60.7076 76.5641 54.3807 78.547 47.8988 78.547C41.4168 78.547 35.0899 76.5641 29.7675 72.8644C29.4945 72.6755 29.2232 72.4815 28.9571 72.2824C24.9797 69.327 21.7489 65.482 19.5229 61.0549C17.297 56.6277 16.1377 51.7412 16.1377 46.786C16.1377 41.8307 17.297 36.9442 19.5229 32.5171C21.7489 28.0899 24.9797 24.245 28.9571 21.2896C29.2232 21.0904 29.4945 20.8964 29.7675 20.7076C35.0899 17.0078 41.4168 15.0249 47.8988 15.0249C54.3807 15.0249 60.7076 17.0078 66.03 20.7076C66.303 20.8964 66.5743 21.0904 66.8404 21.2896C70.8205 24.2424 74.0534 28.0868 76.2796 32.5145C78.5059 36.9423 79.6635 41.8301 79.6598 46.786Z\" fill=\"white\"/>\n <path d=\"M47.8989 75.8001C63.923 75.8001 76.9131 62.81 76.9131 46.7859C76.9131 30.7618 63.923 17.7717 47.8989 17.7717C31.8749 17.7717 18.8848 30.7618 18.8848 46.7859C18.8848 62.81 31.8749 75.8001 47.8989 75.8001Z\" fill=\"#0273E8\"/>\n <path opacity=\"0.2\" d=\"M47.9743 17.8528C47.5344 17.8528 47.0973 17.8643 46.6622 17.8837C53.9954 18.528 60.8094 21.9359 65.7238 27.4167C70.6382 32.8975 73.2855 40.0414 73.1292 47.4012C72.973 54.761 70.025 61.7862 64.8825 67.0535C59.74 72.3209 52.7875 75.4365 45.4336 75.7691C46.271 75.8418 47.118 75.8811 47.9743 75.8811C55.6693 75.8811 63.0492 72.8243 68.4904 67.3831C73.9316 61.9418 76.9884 54.562 76.9884 46.867C76.9884 39.1719 73.9316 31.792 68.4904 26.3508C63.0492 20.9096 55.6693 17.8528 47.9743 17.8528Z\" fill=\"black\"/>\n <path d=\"M47.9843 15.7114C47.734 15.7119 47.4941 15.8115 47.3171 15.9885C47.1401 16.1655 47.0405 16.4054 47.04 16.6557V20.776C47.04 21.0265 47.1395 21.2666 47.3166 21.4437C47.4937 21.6208 47.7339 21.7203 47.9843 21.7203C48.2347 21.7203 48.4749 21.6208 48.652 21.4437C48.8291 21.2666 48.9285 21.0265 48.9285 20.776V16.6557C48.9281 16.4054 48.8285 16.1655 48.6515 15.9885C48.4745 15.8115 48.2346 15.7119 47.9843 15.7114Z\" fill=\"white\"/>\n <path d=\"M66.8398 21.2893C66.5737 21.0902 66.3024 20.8962 66.0295 20.7073C65.8657 20.6966 65.7019 20.7289 65.5544 20.8008C65.4069 20.8728 65.2807 20.982 65.1882 21.1176L62.8688 24.5221C62.7279 24.729 62.675 24.9835 62.7216 25.2295C62.7683 25.4754 62.9108 25.6928 63.1178 25.8337C63.3247 25.9746 63.5792 26.0276 63.8251 25.9809C64.0711 25.9342 64.2885 25.7917 64.4294 25.5848L66.7488 22.1803C66.8371 22.0512 66.8916 21.902 66.9075 21.7464C66.9234 21.5908 66.9001 21.4337 66.8398 21.2893Z\" fill=\"white\"/>\n <path d=\"M77.3786 36.8129C77.3319 36.6981 77.2631 36.5937 77.1761 36.5055C77.0891 36.4173 76.9855 36.3471 76.8714 36.299C76.7572 36.2508 76.6347 36.2256 76.5108 36.2249C76.3869 36.2241 76.2641 36.2477 76.1493 36.2944L72.3311 37.8447C72.0994 37.9391 71.9146 38.1217 71.8173 38.3523C71.7201 38.5829 71.7184 38.8427 71.8126 39.0745C71.9068 39.3064 72.0892 39.4913 72.3197 39.5888C72.5502 39.6862 72.81 39.6882 73.0419 39.5942L76.8601 38.0439C77.0917 37.949 77.2764 37.7662 77.3735 37.5355C77.4707 37.3048 77.4725 37.045 77.3786 36.8129Z\" fill=\"white\"/>\n <path d=\"M32.9283 24.5221L30.6089 21.1176C30.5165 20.982 30.3903 20.8728 30.2427 20.8008C30.0952 20.7289 29.9315 20.6966 29.7677 20.7073C29.4947 20.8962 29.2234 21.0902 28.9573 21.2893C28.897 21.4337 28.8737 21.5908 28.8896 21.7464C28.9055 21.902 28.9601 22.0512 29.0483 22.1803L31.3677 25.5848C31.5087 25.7917 31.726 25.9342 31.972 25.9809C32.218 26.0276 32.4724 25.9747 32.6794 25.8337C32.8863 25.6928 33.0288 25.4754 33.0755 25.2295C33.1222 24.9835 33.0692 24.729 32.9283 24.5221Z\" fill=\"white\"/>\n <path d=\"M23.4672 37.8448L19.649 36.2945C19.417 36.2003 19.1571 36.2021 18.9265 36.2995C18.6958 36.3969 18.5133 36.5819 18.419 36.8139C18.3248 37.0458 18.3266 37.3057 18.4239 37.5364C18.5213 37.7671 18.7063 37.9496 18.9382 38.0439L22.7564 39.5942C22.9883 39.6882 23.2481 39.6862 23.4786 39.5888C23.7091 39.4913 23.8915 39.3064 23.9857 39.0745C24.0799 38.8427 24.0782 38.5829 23.981 38.3523C23.8837 38.1217 23.6989 37.9392 23.4672 37.8448Z\" fill=\"white\"/>\n <path d=\"M47.9843 71.8513C47.734 71.8518 47.4941 71.9514 47.3171 72.1284C47.1401 72.3053 47.0405 72.5453 47.04 72.7956V76.9159C47.04 77.1664 47.1395 77.4065 47.3166 77.5836C47.4937 77.7607 47.7339 77.8602 47.9843 77.8602C48.2347 77.8602 48.4749 77.7607 48.652 77.5836C48.8291 77.4065 48.9285 77.1664 48.9285 76.9159V72.7956C48.9281 72.5453 48.8285 72.3053 48.6515 72.1284C48.4745 71.9514 48.2346 71.8518 47.9843 71.8513Z\" fill=\"white\"/>\n <path d=\"M66.7488 71.3913L64.4294 67.9869C64.3596 67.8844 64.2703 67.7967 64.1667 67.7287C64.063 67.6608 63.9469 67.6139 63.8251 67.5908C63.7033 67.5677 63.5782 67.5688 63.4568 67.594C63.3354 67.6193 63.2202 67.6682 63.1178 67.738C63.0153 67.8077 62.9276 67.897 62.8596 68.0007C62.7916 68.1044 62.7448 68.2204 62.7216 68.3422C62.6985 68.464 62.6996 68.5892 62.7249 68.7105C62.7501 68.8319 62.799 68.9471 62.8688 69.0496L65.1882 72.4541C65.2807 72.5897 65.4069 72.6989 65.5544 72.7709C65.7019 72.8428 65.8657 72.8751 66.0295 72.8644C66.3025 72.6755 66.5737 72.4815 66.8398 72.2824C66.9001 72.138 66.9234 71.9809 66.9075 71.8253C66.8916 71.6697 66.8371 71.5205 66.7488 71.3913Z\" fill=\"white\"/>\n <path d=\"M76.8598 55.5279L73.0416 53.9776C72.8096 53.8834 72.5497 53.8852 72.319 53.9826C72.0884 54.08 71.9059 54.265 71.8116 54.497C71.7174 54.7289 71.7191 54.9888 71.8165 55.2195C71.9139 55.4502 72.0989 55.6327 72.3308 55.727L76.149 57.2773C76.3809 57.3713 76.6407 57.3693 76.8712 57.2719C77.1017 57.1744 77.2841 56.9895 77.3783 56.7576C77.4725 56.5258 77.4708 56.266 77.3736 56.0354C77.2763 55.8048 77.0915 55.6223 76.8598 55.5279Z\" fill=\"white\"/>\n <path d=\"M32.6794 67.7379C32.4724 67.597 32.218 67.5441 31.972 67.5908C31.726 67.6375 31.5087 67.7799 31.3677 67.9868L29.0483 71.3912C28.9601 71.5204 28.9055 71.6696 28.8896 71.8252C28.8737 71.9808 28.897 72.1379 28.9573 72.2823C29.2234 72.4814 29.4947 72.6754 29.7677 72.8643C29.9315 72.875 30.0952 72.8427 30.2427 72.7708C30.3903 72.6988 30.5165 72.5896 30.6089 72.454L32.9283 69.0495C32.9981 68.9471 33.047 68.8318 33.0723 68.7105C33.0975 68.5891 33.0986 68.4639 33.0755 68.3421C33.0524 68.2203 33.0055 68.1043 32.9376 68.0006C32.8696 67.8969 32.7818 67.8076 32.6794 67.7379Z\" fill=\"white\"/>\n <path d=\"M23.985 54.496C23.9384 54.3813 23.8696 54.2768 23.7826 54.1886C23.6955 54.1004 23.592 54.0302 23.4778 53.9821C23.3637 53.9339 23.2411 53.9088 23.1173 53.908C22.9934 53.9072 22.8705 53.9308 22.7558 53.9776L18.9376 55.5278C18.7058 55.6222 18.521 55.8048 18.4238 56.0354C18.3266 56.266 18.3249 56.5258 18.419 56.7576C18.5132 56.9895 18.6956 57.1744 18.9261 57.2719C19.1566 57.3693 19.4164 57.3713 19.6483 57.2773L23.4665 55.727C23.6982 55.6321 23.8828 55.4493 23.98 55.2186C24.0772 54.9879 24.079 54.7281 23.985 54.496Z\" fill=\"white\"/>\n <path d=\"M49.2097 46.3172C49.2969 46.8334 49.1758 47.363 48.873 47.79C48.5701 48.2169 48.1103 48.5063 47.5944 48.5947L30.8386 51.4448C30.583 51.4883 30.3214 51.481 30.0686 51.4234C29.8158 51.3657 29.5768 51.2588 29.3653 51.1089C29.1539 50.9589 28.974 50.7687 28.836 50.5492C28.698 50.3297 28.6046 50.0851 28.5612 49.8295C28.5177 49.5739 28.525 49.3123 28.5826 49.0595C28.6403 48.8067 28.7471 48.5677 28.8971 48.3563C29.0471 48.1448 29.2373 47.9649 29.4568 47.8269C29.6763 47.6889 29.9209 47.5955 30.1765 47.5521L46.9322 44.7019C47.4484 44.6147 47.978 44.7359 48.405 45.0387C48.8319 45.3415 49.1213 45.8013 49.2097 46.3172Z\" fill=\"#3F3D56\"/>\n <path d=\"M66.8446 64.8813C66.6039 65.1234 66.277 65.2601 65.9357 65.2614C65.5943 65.2628 65.2663 65.1286 65.0237 64.8885L46.9863 46.9926C46.7443 46.752 46.6076 46.4251 46.6065 46.0838C46.6053 45.7426 46.7396 45.4148 46.98 45.1725C47.2204 44.9302 47.5471 44.7933 47.8884 44.7918C48.2297 44.7903 48.5576 44.9243 48.8001 45.1645L66.8375 63.0604C67.0795 63.3011 67.2163 63.628 67.2176 63.9693C67.2189 64.3107 67.0848 64.6387 66.8446 64.8813Z\" fill=\"#3F3D56\"/>\n <path d=\"M47.8989 49.0177C49.1315 49.0177 50.1307 48.0184 50.1307 46.7858C50.1307 45.5532 49.1315 44.554 47.8989 44.554C46.6662 44.554 45.667 45.5532 45.667 46.7858C45.667 48.0184 46.6662 49.0177 47.8989 49.0177Z\" fill=\"#CCCCCC\"/>\n <path d=\"M32.5253 8.0851C29.0995 13.4712 23.8724 17.0456 17.426 19.3938C17.2986 19.4892 17.1537 19.5586 16.9995 19.598C16.8453 19.6374 16.6849 19.646 16.5273 19.6234C16.3698 19.6008 16.2183 19.5474 16.0814 19.4662C15.9445 19.385 15.8249 19.2777 15.7295 19.1503C12.2279 14.475 13.0186 7.79306 17.64 4.22058C18.7572 3.35838 20.0347 2.7267 21.3981 2.36223C22.7615 1.99775 24.1837 1.90774 25.5822 2.09741C26.9807 2.28708 28.3276 2.75265 29.5446 3.46711C30.7617 4.18156 31.8247 5.13067 32.672 6.25932L32.7689 6.38863C32.8643 6.51601 32.9337 6.66093 32.973 6.81513C33.0124 6.96932 33.0211 7.12977 32.9985 7.2873C32.9758 7.44483 32.9224 7.59637 32.8413 7.73326C32.7601 7.87014 32.6527 7.9897 32.5253 8.0851Z\" fill=\"#E6E6E6\"/>\n <path d=\"M63.1249 6.25931C63.9721 5.13067 65.0352 4.18156 66.2523 3.46711C67.4693 2.75265 68.8162 2.28708 70.2147 2.09741C71.6132 1.90774 73.0354 1.99775 74.3988 2.36223C75.7622 2.7267 77.0396 3.35838 78.1569 4.22058C82.7783 7.79306 83.569 14.475 80.0674 19.1503C79.972 19.2777 79.8524 19.385 79.7155 19.4662C79.5786 19.5474 79.4271 19.6008 79.2696 19.6234C79.112 19.646 78.9516 19.6374 78.7974 19.598C78.6432 19.5586 78.4983 19.4892 78.3709 19.3938C72.3865 17.1027 67.479 13.1379 63.2715 8.0851C63.0143 7.89243 62.8441 7.60544 62.7984 7.28729C62.7528 6.96914 62.8353 6.64588 63.028 6.38862L63.1249 6.25931Z\" fill=\"#E6E6E6\"/>\n <path d=\"M61.6232 78.7647C61.405 78.8873 61.2442 79.0914 61.1762 79.3323C61.1082 79.5731 61.1384 79.8311 61.2603 80.0498L66.7098 89.788C66.8321 90.0065 67.0362 90.1674 67.2772 90.2354C67.5181 90.3035 67.7763 90.273 67.9948 90.1507C68.2133 90.0284 68.3743 89.8244 68.4423 89.5834C68.5104 89.3424 68.48 89.0843 68.3578 88.8658L62.9083 79.1276C62.7857 78.9094 62.5816 78.7486 62.3407 78.6806C62.0998 78.6126 61.8418 78.6428 61.6232 78.7647Z\" fill=\"#E6E6E6\"/>\n <path d=\"M32.889 79.1274L27.4395 88.8656C27.3173 89.0841 27.2868 89.3423 27.3549 89.5832C27.423 89.8242 27.584 90.0282 27.8025 90.1505C28.021 90.2728 28.2791 90.3033 28.5201 90.2352C28.7611 90.1672 28.9652 90.0063 29.0875 89.7878L34.537 80.0496C34.5976 79.9414 34.6362 79.8223 34.6508 79.6991C34.6654 79.576 34.6555 79.4511 34.6218 79.3318C34.5881 79.2124 34.5313 79.1009 34.4545 79.0035C34.3776 78.9061 34.2824 78.8249 34.1742 78.7643C34.066 78.7037 33.9469 78.6651 33.8237 78.6505C33.7005 78.636 33.5757 78.6459 33.4564 78.6796C33.337 78.7133 33.2255 78.7702 33.1281 78.847C33.0308 78.9239 32.9495 79.0191 32.889 79.1274Z\" fill=\"#E6E6E6\"/>\n <path d=\"M67.8141 92.2815C69.426 92.2815 70.7327 90.9748 70.7327 89.3629C70.7327 87.751 69.426 86.4443 67.8141 86.4443C66.2022 86.4443 64.8955 87.751 64.8955 89.3629C64.8955 90.9748 66.2022 92.2815 67.8141 92.2815Z\" fill=\"#E6E6E6\"/>\n <path d=\"M69.8737 17.5999C71.4856 17.5999 72.7922 16.2932 72.7922 14.6813C72.7922 13.0694 71.4856 11.7627 69.8737 11.7627C68.2618 11.7627 66.9551 13.0694 66.9551 14.6813C66.9551 16.2932 68.2618 17.5999 69.8737 17.5999Z\" fill=\"#E6E6E6\"/>\n <path d=\"M47.7272 10.7327C49.3391 10.7327 50.6458 9.42598 50.6458 7.81409C50.6458 6.2022 49.3391 4.89551 47.7272 4.89551C46.1153 4.89551 44.8086 6.2022 44.8086 7.81409C44.8086 9.42598 46.1153 10.7327 47.7272 10.7327Z\" fill=\"#E6E6E6\"/>\n <path d=\"M26.61 17.2566C28.2219 17.2566 29.5286 15.9499 29.5286 14.338C29.5286 12.7261 28.2219 11.4194 26.61 11.4194C24.9981 11.4194 23.6914 12.7261 23.6914 14.338C23.6914 15.9499 24.9981 17.2566 26.61 17.2566Z\" fill=\"#E6E6E6\"/>\n <path d=\"M28.4987 92.2815C30.1106 92.2815 31.4172 90.9748 31.4172 89.3629C31.4172 87.751 30.1106 86.4443 28.4987 86.4443C26.8868 86.4443 25.5801 87.751 25.5801 89.3629C25.5801 90.9748 26.8868 92.2815 28.4987 92.2815Z\" fill=\"#E6E6E6\"/>\n <path d=\"M65.5243 63.2399C65.6394 63.4201 65.7925 63.5728 65.973 63.6873C66.1534 63.8019 66.3568 63.8755 66.5688 63.9029C66.7808 63.9304 66.9962 63.911 67.1999 63.8462C67.4035 63.7814 67.5905 63.6727 67.7477 63.5278L72.3274 65.9817L72.0818 63.293L67.7705 61.3749C67.5096 61.1271 67.1668 60.9835 66.8071 60.9715C66.4475 60.9595 66.0959 61.0799 65.819 61.3098C65.5422 61.5396 65.3592 61.8631 65.3049 62.2188C65.2506 62.5746 65.3287 62.9379 65.5243 63.2399Z\" fill=\"#FFB7B7\"/>\n <path d=\"M68.8613 64.1782L70.656 61.7009L79.3019 65.7881L90.0606 63.7694C90.5924 63.6696 91.1397 63.6881 91.6635 63.8237C92.1873 63.9592 92.6749 64.2083 93.0916 64.5535C93.5083 64.8986 93.844 65.3313 94.0747 65.8207C94.3054 66.3101 94.4255 66.8444 94.4265 67.3854C94.4273 68.3627 94.0403 69.3004 93.3505 69.9928C92.6607 70.6851 91.7245 71.0755 90.7472 71.0784L78.4177 71.1013L68.8613 64.1782Z\" fill=\"#3F3D56\"/>\n <path d=\"M66.0971 106.966L64.2812 106.098L66.7756 98.5078L69.4554 99.7896L66.0971 106.966Z\" fill=\"#FFB7B7\"/>\n <path d=\"M78.2705 105.742C78.1385 105.825 78.0065 105.906 77.8731 105.988C77.6077 106.151 77.3396 106.311 77.0715 106.468C76.9368 106.547 76.8007 106.625 76.666 106.703V106.707L76.658 106.708L76.6554 106.709L76.45 106.76L76.1552 105.981L76.0192 105.622L75.8271 105.114L75.475 104.185L73.6211 99.2898L76.5033 98.5789L76.6114 99.0203H76.6127L76.666 99.2391L77.673 103.323L77.8784 104.158L77.8851 104.183L78.0091 104.682L78.1158 105.114L78.2345 105.597L78.2705 105.742Z\" fill=\"#FFB7B7\"/>\n <path d=\"M95.464 88.5528C95.2813 88.8462 95.0946 89.1383 94.9065 89.4277C94.5571 89.9666 94.1983 90.4974 93.8302 91.0202C93.8302 91.0216 93.8288 91.0216 93.8275 91.0229C93.6127 91.2218 93.3755 91.3951 93.1206 91.5391C93.1099 91.5471 93.0979 91.5524 93.0873 91.5591C92.8996 91.6628 92.6998 91.743 92.4924 91.7978C92.4177 91.8165 92.3417 91.8352 92.267 91.8538C91.9976 91.9178 91.7309 91.9725 91.4654 92.0205C90.9933 92.1046 90.5265 92.1646 90.0623 92.2019C90.025 92.2059 89.9877 92.2086 89.9503 92.2113C88.0417 92.3513 86.1838 92.1259 84.2445 91.7565C83.2869 91.5751 82.3093 91.3577 81.2969 91.1323C80.9662 91.0576 80.6341 90.9842 80.298 90.9109C80.2726 90.9055 80.246 90.8989 80.2193 90.8935C79.7391 90.7882 79.251 90.6841 78.7508 90.5814C78.1213 90.4521 77.4718 90.3267 76.7969 90.208L76.8449 91.1589C76.8849 91.8905 77.0369 92.6116 77.2957 93.2969C77.5838 94.1399 77.8119 94.8067 77.3304 96.1952L77.0983 96.8674C77.2186 97.2012 77.2599 97.5583 77.2189 97.9108C77.178 98.2632 77.0559 98.6014 76.8622 98.8987L76.8156 98.9694L78.7508 103.866L78.8762 104.183H77.8852L76.6662 104.184H74.6002L71.6193 98.2038L71.4766 97.9184V97.9037L71.7847 86.4108C71.7887 86.3094 71.7967 86.2067 71.81 86.1054C71.8643 85.6446 72.0099 85.1992 72.2382 84.7953C72.4665 84.3913 72.773 84.0369 73.1397 83.7527C73.4912 83.478 73.8937 83.2759 74.324 83.1582C74.7542 83.0406 75.2035 83.0096 75.6459 83.0671L76.6662 83.1991L78.7508 83.4686L80.2193 83.6593L80.2486 83.6633L84.5793 84.2235L84.8901 82.9564L84.9474 82.9351L86.7706 82.2669L93.0766 79.9555L93.0926 79.9501L93.5074 79.7981L93.5567 79.8781C93.5714 79.9021 93.5861 79.9261 93.5994 79.9501C94.0094 80.6851 94.3432 81.46 94.5957 82.2629C95.0203 83.5743 95.3699 84.9089 95.6427 86.2601C95.6547 86.3188 95.6654 86.3721 95.6747 86.4202L95.6787 86.4348C95.6827 86.4575 95.6854 86.4722 95.6867 86.4762C95.8321 87.0817 95.7308 87.8206 95.464 88.5528Z\" fill=\"#2F2E41\"/>\n <path d=\"M95.7305 84.3173C95.7105 84.232 95.6852 84.1453 95.6585 84.0612C95.4467 83.4248 95.2001 82.8006 94.9196 82.1913C94.6048 81.4978 94.2274 80.7549 93.7779 79.9506C93.5605 79.5612 93.3267 79.1562 93.0764 78.7356C92.951 78.5249 92.8207 78.3101 92.6856 78.0914C92.6803 78.0813 92.6745 78.0715 92.6682 78.0621L92.6296 77.998L86.3903 78.833L84.0669 79.1437L83.9282 80.3014L83.8948 80.5882C83.8935 80.5882 83.8935 80.5882 83.8948 80.5895L83.8015 81.3711V81.3724L83.6774 82.4047L83.6668 82.4034L80.219 81.9566L76.6659 81.4965L74.7573 81.2497C74.315 81.1921 73.8657 81.223 73.4354 81.3407C73.0052 81.4584 72.6026 81.6605 72.2512 81.9353C71.8846 82.2196 71.5781 82.574 71.3498 82.978C71.1215 83.3819 70.9759 83.8272 70.9215 84.288C70.9095 84.3814 70.9015 84.4774 70.8975 84.5721L69.0969 88.8387C68.0195 91.3904 67.3333 94.0901 67.0616 96.8466L65.7412 101.068L65.9293 101.085L68.7275 101.345L69.4664 101.415L71.0935 99.0393C71.2789 98.7685 71.455 98.4897 71.619 98.2043C71.8891 97.7382 72.1292 97.2553 72.3379 96.7585L75.8577 88.3826C76.1298 88.4293 76.3992 88.4738 76.6659 88.516C77.8997 88.7161 79.084 88.8792 80.219 89.0055C83.9095 89.4176 87.1052 89.4496 89.9501 89.1002C90.749 89.0028 91.5212 88.8748 92.2668 88.716C92.5402 88.6587 92.8101 88.5969 93.0764 88.5307C93.139 88.516 93.2004 88.5013 93.2618 88.4853C93.813 88.3432 94.3197 88.065 94.7356 87.6764C95.1515 87.2877 95.4634 86.8009 95.6425 86.2606C95.8564 85.6345 95.8869 84.9603 95.7305 84.3173Z\" fill=\"#2F2E41\"/>\n <path d=\"M66.6772 105.727L64.7126 104.785L64.4045 104.637L63.9123 105.845L60.4766 106.602C60.3067 106.639 60.1532 106.729 60.0385 106.86C59.9238 106.991 59.8538 107.155 59.8389 107.328C59.824 107.501 59.8649 107.675 59.9557 107.823C60.0464 107.972 60.1822 108.087 60.3432 108.153L63.7003 109.522L64.7659 108.564L64.5045 109.851L65.7689 110.367L67.1547 105.956L66.6772 105.727Z\" fill=\"#2F2E41\"/>\n <path d=\"M78.751 103.865L78.8765 104.183H78.751V103.865Z\" fill=\"#2F2E41\"/>\n <path d=\"M78.0668 104.251L76.0082 104.964L75.6851 105.075L76.1856 106.28L74.2764 109.235C74.1819 109.381 74.1365 109.554 74.147 109.727C74.1574 109.901 74.2231 110.066 74.3344 110.2C74.4458 110.334 74.5969 110.428 74.7658 110.47C74.9347 110.511 75.1124 110.498 75.273 110.431L78.6223 109.042L78.7048 107.611L79.4246 108.71L80.6862 108.187L78.5675 104.078L78.0668 104.251Z\" fill=\"#2F2E41\"/>\n <path d=\"M95.2165 86.2495C95.0942 86.2493 94.9739 86.2194 94.8657 86.1625L84.0027 80.4863L83.8772 79.9724L83.6406 78.3463L83.6439 78.331L84.677 73.568C84.658 73.5271 84.6185 73.4601 84.5738 73.3843C84.1126 72.6028 82.7089 70.2244 85.3878 66.9496L90.0911 61.4662L94.1278 61.2925L94.1737 61.3505C95.2531 62.7053 95.981 64.3057 96.2928 66.0096C96.6046 67.7135 96.4906 69.468 95.961 71.1172L95.5406 78.7084L95.9915 80.2415C96.255 81.1424 96.2114 82.1054 95.8676 82.9788L95.9709 85.4612C95.9749 85.5629 95.9584 85.6644 95.9224 85.7597C95.8863 85.8549 95.8314 85.9419 95.761 86.0155C95.6906 86.089 95.6061 86.1477 95.5126 86.1879C95.419 86.2281 95.3183 86.249 95.2165 86.2495Z\" fill=\"#3F3D56\"/>\n <path d=\"M85.7942 92.5099C85.9782 92.4012 86.1362 92.2535 86.2569 92.0771C86.3777 91.9008 86.4583 91.7001 86.4931 91.4892C86.5279 91.2783 86.5161 91.0623 86.4584 90.8565C86.4007 90.6507 86.2986 90.46 86.1592 90.298L88.771 85.8064L86.0753 85.9583L84.0084 90.2003C83.7516 90.4524 83.5963 90.79 83.5718 91.149C83.5473 91.5081 83.6553 91.8636 83.8754 92.1483C84.0955 92.433 84.4125 92.6271 84.7661 92.6937C85.1197 92.7604 85.4855 92.695 85.7942 92.5099Z\" fill=\"#FFB7B7\"/>\n <path d=\"M86.8479 89.2077L84.4346 87.328L88.82 78.8295L87.1767 68.007C87.0955 67.4721 87.1331 66.9258 87.2867 66.407C87.4404 65.8882 87.7064 65.4096 88.0658 65.0051C88.4252 64.6007 88.8693 64.2803 89.3664 64.0668C89.8636 63.8532 90.4017 63.7518 90.9425 63.7696C91.9192 63.8028 92.8429 64.2222 93.5108 64.9356C94.1787 65.6491 94.5363 66.5983 94.5052 67.5751L94.0992 79.898L86.8479 89.2077Z\" fill=\"#3F3D56\"/>\n <path d=\"M87.502 59.1878V55.1934C87.501 53.7738 88.0641 52.412 89.0672 51.4076C90.0704 50.4031 91.4315 49.8383 92.851 49.8374C94.2706 49.8365 95.6324 50.3995 96.6368 51.4027C97.6413 52.4058 98.2061 53.7669 98.207 55.1865V55.1934C99.1504 57.1592 98.5602 58.0938 98.207 59.1878C98.2067 59.3783 98.1308 59.561 97.9961 59.6957C97.8614 59.8304 97.6788 59.9062 97.4883 59.9065H88.221C88.0304 59.9063 87.8477 59.8305 87.7129 59.6958C87.5781 59.5611 87.5023 59.3784 87.502 59.1878Z\" fill=\"#2F2E41\"/>\n <path d=\"M91.0993 59.6469C93.3121 59.6469 95.1059 57.8531 95.1059 55.6403C95.1059 53.4276 93.3121 51.6338 91.0993 51.6338C88.8866 51.6338 87.0928 53.4276 87.0928 55.6403C87.0928 57.8531 88.8866 59.6469 91.0993 59.6469Z\" fill=\"#FFB7B7\"/>\n <path d=\"M95.2927 56.6907C95.2563 56.6849 95.22 56.6773 95.1837 56.6716C94.5588 56.5607 93.9338 56.4518 93.3108 56.339L93.2534 54.9267L92.4985 56.1918C90.7765 56.7633 89.1654 56.4403 87.6498 55.7274C87.1499 55.4901 86.6648 55.2227 86.1973 54.9267C86.3246 54.1455 86.6249 53.4027 87.0763 52.7526C87.5277 52.1025 88.1187 51.5615 88.8061 51.1692C88.8634 51.1367 88.9188 51.1081 88.9762 51.0794L88.9769 51.0793L88.9775 51.0788L88.9779 51.0782L88.9781 51.0775C89.0755 51.0316 89.1749 50.9877 89.2743 50.9475C90.0524 50.6435 90.9007 50.5665 91.7208 50.7255C92.5409 50.8845 93.299 51.273 93.907 51.8458C95.1302 53.0135 95.6806 54.9419 95.2927 56.6907Z\" fill=\"#2F2E41\"/>\n</svg>\n\n `;\n\n const svgContainer = createElementInner('div', svg, {\n width: '100%',\n padding: '24px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n });\n\n const title = createElement('span', i18n.TITLE, {\n fontSize: '24px',\n fontWeight: 'bold'\n });\n\n const message = createElement('p', i18n?.['SUB-TITLE'], {\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.5',\n padding: '0 24px',\n marginBottom: '12px'\n });\n\n const tryAgainButton = createElement('button', i18n.ACTION, {\n marginTop: '16px',\n padding: '12px 20px',\n fontSize: '1em',\n fontWeight: '600',\n color: '#fff',\n backgroundColor: '#007BFF',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n boxShadow: '0 2px 5px rgba(0,0,0,0.2)',\n transition: 'background-color 0.3s ease',\n letterSpacing: '0.48px'\n });\n\n tryAgainButton.addEventListener('mouseover', () => {\n tryAgainButton.style.backgroundColor = '#0056b3';\n });\n\n tryAgainButton.addEventListener('mouseout', () => {\n tryAgainButton.style.backgroundColor = '#007BFF';\n });\n\n tryAgainButton.addEventListener('click', () => {\n window.location.reload();\n });\n\n modalBox.appendChild(svgContainer);\n modalBox.appendChild(title);\n modalBox.appendChild(message);\n modalBox.appendChild(tryAgainButton);\n overlay.appendChild(modalBox);\n document.body.appendChild(overlay);\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { DOCUMENT, Inject, Injectable } from '@angular/core';\nimport { MonkeyEcxStyleGuide, MonkeyEcxStyleGuideFont } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxStyleGuideService {\n constructor(@Inject(DOCUMENT) private doc: any) {\n // not to do\n }\n\n private applyColors(settings: MonkeyEcxStyleGuide): any {\n const { colors } = settings;\n\n const colorKeys = ['theme'] as const;\n\n colorKeys.forEach((color) => {\n Object.entries(colors?.[color] as any).forEach(([paletteKey, paletteValue]) => {\n if (paletteKey === 'contrast') {\n Object.entries(paletteValue as Record<string, string | number>).forEach(\n ([paletteContrastKey, paletteContrastValue]) => {\n const variableName = `--mecx-color-${color}-contrast-${paletteContrastKey}`;\n const existing = document.documentElement.style.getPropertyValue(variableName);\n\n if (!existing) {\n document.documentElement.style.setProperty(variableName, `${paletteContrastValue}`);\n }\n }\n );\n } else {\n const variableName = `--mecx-color-${color}-${paletteKey}`;\n const existing = document.documentElement.style.getPropertyValue(variableName);\n\n if (!existing) {\n document.documentElement.style.setProperty(variableName, `${paletteValue}`);\n }\n }\n });\n });\n }\n\n private applyFonts(settings: MonkeyEcxStyleGuide) {\n const font: MonkeyEcxStyleGuideFont = {\n url: 'https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap',\n name: 'Work Sans',\n ...settings.font\n };\n\n document.documentElement.style.setProperty(`--mecx-font-name`, `${font.name}`);\n\n const link: HTMLLinkElement = this.doc.createElement('link');\n link.setAttribute('rel', 'stylesheet');\n link.setAttribute('type', 'text/css');\n link.setAttribute('href', `${font.url}`);\n this.doc.head.appendChild(link);\n }\n\n private applyTheme(settings: MonkeyEcxStyleGuide) {\n const { theme } = settings;\n if (!theme) return;\n document.title = `${theme.title}`;\n\n const link: HTMLLinkElement = this.doc.createElement('link');\n link.setAttribute('rel', 'icon');\n link.setAttribute('type', 'image/x-icon');\n link.setAttribute('href', `${theme.favicon}`);\n this.doc.head.appendChild(link);\n }\n\n public apply(config: MonkeyEcxStyleGuide) {\n this.applyColors(config);\n this.applyFonts(config);\n this.applyTheme(config);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { filter } from 'rxjs';\nimport { MonkeyEcxNewVersionService } from './monkeyecx-new-version.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxUpdateService {\n private readonly _service = inject(MonkeyEcxNewVersionService);\n\n constructor(private _swUpdate: SwUpdate) {\n // not to do\n }\n\n private handleValidation() {\n if (this._swUpdate.isEnabled) {\n this._swUpdate.versionUpdates\n .pipe(\n filter((evt) => {\n return evt.type === 'VERSION_READY';\n })\n )\n .subscribe(() => {\n this._swUpdate.activateUpdate().then(() => {\n this._service.apply();\n });\n });\n }\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpHeaders, HttpParams } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrap } from '../../interfaces';\nimport { MonkeyEcxConnectionService } from '../connection';\nimport { MonkeyEcxService } from '../monkeyecx.service';\nimport { MonkeyEcxAlertsService } from './monkeyecx-alerts.service';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\nimport { MonkeyEcxSecurityConsoleService } from './monkeyecx-console.service';\nimport { MonkeyEcxDatadogService } from './monkeyecx-datadog.service';\nimport { MonkeyEcxErrorService } from './monkeyecx-error.service';\nimport { MonkeyEcxFeatureToggleService } from './monkeyecx-feature-toggle.service';\nimport { MonkeyEcxGTMService } from './monkeyecx-gtm.service';\nimport { MonkeyEcxLocaleService } from './monkeyecx-locale.service';\nimport { MonkeyEcxMaintenanceService } from './monkeyecx-maintenance.service';\nimport { MonkeyEcxStyleGuideService } from './monkeyecx-style-guide.service';\nimport { MonkeyEcxUpdateService } from './monkeyecx-update.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxInitService {\n private readonly _service = inject(MonkeyEcxService);\n\n private readonly _configsService = inject(MonkeyEcxConfigsService);\n\n private readonly _styleService = inject(MonkeyEcxStyleGuideService);\n\n private readonly _consoleService = inject(MonkeyEcxSecurityConsoleService);\n\n private readonly _datadogService = inject(MonkeyEcxDatadogService);\n\n private readonly _featureToggleService = inject(MonkeyEcxFeatureToggleService);\n\n private readonly _gtmService = inject(MonkeyEcxGTMService);\n\n private readonly _alertsService = inject(MonkeyEcxAlertsService);\n\n private readonly _updateService = inject(MonkeyEcxUpdateService);\n\n private readonly _errorService = inject(MonkeyEcxErrorService);\n\n private readonly _maintenanceService = inject(MonkeyEcxMaintenanceService);\n\n private readonly _localeService = inject(MonkeyEcxLocaleService);\n\n private readonly _connectionService = inject(MonkeyEcxConnectionService);\n\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n constructor() {\n // not to do\n }\n\n private async handleWhiteLabel(code: string | null) {\n try {\n const params = new HttpParams().set('t', new Date().getTime().toString());\n const env = this._bootstrapService.getEnv();\n const url = `${env.urlAssets}/${code?.toLowerCase()}/white-label.json`;\n const response = await firstValueFrom<any>(this._service.get(url, { params }));\n this._configsService.whiteLabel = response;\n this._datadogService.apply();\n } catch (e) {\n this._errorService.apply(e);\n }\n }\n\n private async handleStyleGuide(code: string | null) {\n try {\n const params = new HttpParams().set('t', new Date().getTime().toString());\n const env = this._bootstrapService.getEnv();\n const url = `${env.urlAssets}/${code?.toLowerCase()}/monkey-style-guide-settings.json`;\n const response = await firstValueFrom<any>(this._service.get(url, { params }));\n this._configsService.styleGuide = response;\n this._styleService.apply(response);\n } catch (e) {\n this._errorService.apply(e);\n }\n }\n\n private async handleSettings(response: MonkeyEcxBootstrap, code: string | null) {\n this._updateService.apply();\n if (response.maintenance.closed) {\n this._maintenanceService.apply();\n } else {\n await this.handleWhiteLabel(code);\n await this._featureToggleService.apply();\n await this.handleStyleGuide(code);\n await this._localeService.apply();\n this._gtmService.apply();\n this._alertsService.apply();\n }\n }\n\n private async performValidation(response: MonkeyEcxBootstrap, code: string | null) {\n this._configsService.bootstrap = response;\n if (!code) {\n this._errorService.apply();\n return;\n }\n await this.handleSettings(response, code);\n this._bootstrapService.finishLoading();\n }\n\n async initializeApp(): Promise<void> {\n this._connectionService.apply();\n this._consoleService.apply();\n try {\n const params = new HttpParams().set('t', new Date().getTime().toString());\n const env = this._bootstrapService.getEnv();\n const response = await firstValueFrom<any>(\n this._service.get(env.bootstrapAssets, { params, observe: 'response' })\n );\n\n const body = response.body as MonkeyEcxBootstrap;\n const headers = response.headers as HttpHeaders;\n\n const monkeyCode = headers.get('monkey-code');\n const defaultCode = this._bootstrapService.getDefaultProgram();\n await this.performValidation(body, monkeyCode || defaultCode);\n } catch (e) {\n console.error('🤯 MECXInit -> Monkey app initialization failed: ', e);\n this._errorService.apply(e);\n }\n }\n}\n\nexport function monkeyEcxInitializerFactory(service: MonkeyEcxInitService) {\n return () => {\n return service.initializeApp();\n };\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-alerts.service';\nexport * from './monkeyecx-configs.service';\nexport * from './monkeyecx-console.service';\nexport * from './monkeyecx-datadog.service';\nexport * from './monkeyecx-error.service';\nexport * from './monkeyecx-feature-toggle.service';\nexport * from './monkeyecx-gtm.service';\nexport * from './monkeyecx-init.service';\nexport * from './monkeyecx-locale.service';\nexport * from './monkeyecx-maintenance.service';\nexport * from './monkeyecx-style-guide.service';\nexport * from './monkeyecx-update.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { injectTokenWithWarning, MECX_ALPHA, MECX_BETA } from '../../injectors';\nimport { MonkeyEcxUtils } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LService {\n private readonly _alpha = injectTokenWithWarning(MECX_ALPHA, 'MECX_ALPHA')!;\n\n private readonly _beta = injectTokenWithWarning(MECX_BETA, 'MECX_BETA')!;\n\n async y(data: string): Promise<string> {\n if (!window.crypto || !window.crypto.subtle) {\n throw new Error('unsupported function');\n }\n\n const key = await this.w();\n const decrypted = await window.crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: MonkeyEcxUtils.base64ToBuffer(this._alpha.toString())\n },\n key,\n MonkeyEcxUtils.base64ToBuffer(data)\n );\n const decoder = new TextDecoder();\n return decoder.decode(decrypted);\n }\n\n private async w() {\n const parsedKey = JSON.parse(atob(this._beta.toString()));\n return window.crypto.subtle.importKey('jwk', parsedKey, { name: 'AES-GCM' }, true, [\n 'encrypt',\n 'decrypt'\n ]);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './l.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter, interval, Subscription } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx.service';\n\ninterface MonkeyEcxStartWithRequestInterface {\n data?: any;\n url: string;\n id?: string;\n params?: any;\n period?: number;\n preserveOnNavigation?: boolean;\n callback(data: any, subscriptionId: string): void;\n onError?(err: HttpErrorResponse, data?: any): void;\n}\n\ninterface MonkeyEcxStartInterface {\n id?: string;\n period?: number;\n callback: Function;\n onError?: Function;\n preserveOnNavigation?: boolean;\n}\n\ninterface MonkeyEcxSubscriptionInterface {\n subscription: Subscription;\n preserveOnNavigation: boolean;\n}\n\nconst PERIOD = 2000;\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxScheduleService {\n private readonly _router = inject(Router);\n\n private readonly _service = inject(MonkeyEcxService);\n\n private _routerSubscription: Subscription = new Subscription();\n\n private _schedules = new Map<string, MonkeyEcxSubscriptionInterface>();\n\n private handleRoute() {\n this._routerSubscription = this._router.events\n .pipe(filter((event) => event instanceof NavigationStart))\n .subscribe(() => {\n this.stopAll();\n });\n }\n\n start({ callback, period, preserveOnNavigation, id }: MonkeyEcxStartInterface): void {\n const subscriptionId = id || MonkeyEcxUtils.getRandomString(30);\n\n this.handleRoute();\n\n const subscription = interval(period || PERIOD).subscribe(() => {\n try {\n callback(subscriptionId);\n } catch (e) {\n this.stop(subscriptionId);\n }\n });\n\n this._schedules.set(subscriptionId, {\n subscription,\n preserveOnNavigation: preserveOnNavigation || false\n });\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-schedule-service',\n httpResponse: {\n httpCodeIgnore: [400, 403, 404, 500, 503]\n }\n })\n startWithRequest({\n id,\n url,\n data,\n params,\n period,\n onError,\n callback,\n preserveOnNavigation\n }: MonkeyEcxStartWithRequestInterface) {\n const subscriptionId = id || MonkeyEcxUtils.getRandomString(30);\n\n let isRunning = false;\n\n this.handleRoute();\n\n const subscription = interval(period || PERIOD).subscribe(() => {\n if (isRunning) return;\n\n isRunning = true;\n\n this._service.get(url, params).subscribe({\n next: (resp: any) => {\n isRunning = false;\n callback({ ...data, ...resp }, subscriptionId);\n },\n error: (e: any) => {\n this.stop(subscriptionId);\n if (onError) onError(e, data);\n }\n });\n });\n\n this._schedules.set(subscriptionId, {\n subscription,\n preserveOnNavigation: preserveOnNavigation || false\n });\n }\n\n stop(id: string): void {\n const schedules = this._schedules.get(id);\n\n if (schedules) {\n schedules.subscription.unsubscribe();\n this._schedules.delete(id);\n }\n }\n\n stopAll(): void {\n this._schedules.forEach((schedule) => {\n if (!schedule.preserveOnNavigation) {\n schedule.subscription.unsubscribe();\n }\n });\n\n this._routerSubscription.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-schedule.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxScheduleService } from '../schedule';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLoggedHandleService {\n private readonly _injector = inject(Injector);\n\n constructor() {\n // not to do\n }\n\n private destroyToken() {\n const storageService = this._injector.get(MonkeyEcxTokenStorageService);\n storageService.clear(true);\n }\n\n private destroySchedule() {\n const scheduleService = this._injector.get(MonkeyEcxScheduleService);\n scheduleService.stopAll();\n }\n\n public destroy() {\n this.destroyToken();\n this.destroySchedule();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-logged-handle.service';\n","import { HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport queryString from 'query-string';\nimport { catchError, firstValueFrom, from, map, Observable, switchMap, throwError } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n injectTokenWithWarning,\n MECX_BOOTSTRAP_SERVICE,\n MECX_REDIRECT_LOGIN_WELCOMEBACK_STRATEGY,\n MECX_REFRESH_TOKEN_STRATEGY\n} from '../../injectors';\nimport {\n MonkeyEcxAuthCredentials,\n MonkeyEcxAuthenticationService,\n MonkeyEcxAuthReAuthenticateData,\n MonkeyEcxBootstrapService,\n MonkeyEcxEnv,\n MonkeyEcxMeCredentials,\n MonkeyEcxRedirectLoginWelcomeBackStrategy,\n MonkeyEcxRefreshTokenStrategy,\n MonkeyEcxTokenCredentials\n} from '../../interfaces';\nimport { MonkeyEcxCookieStorageService, MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxUtils } from '../../utils';\nimport {\n MonkeyEcxConfigsService,\n MonkeyEcxDatadogService,\n MonkeyEcxLocaleService\n} from '../config';\nimport { LService } from '../l';\nimport { MonkeyEcxLoggedHandleService } from '../logged';\nimport { MonkeyEcxService } from '../monkeyecx.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthService implements MonkeyEcxAuthenticationService {\n private readonly _injector = inject(Injector);\n\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private readonly _cookieService = inject(MonkeyEcxCookieStorageService);\n\n private readonly _loggedService = inject(MonkeyEcxLoggedHandleService);\n\n private readonly _lService = inject(LService);\n\n private readonly _router = inject(Router);\n\n private readonly _refreshTokenStrategy = inject<MonkeyEcxRefreshTokenStrategy>(\n MECX_REFRESH_TOKEN_STRATEGY,\n {\n optional: true\n }\n );\n\n private readonly _redirectLoginWelcomeBackStrategy =\n inject<MonkeyEcxRedirectLoginWelcomeBackStrategy>(MECX_REDIRECT_LOGIN_WELCOMEBACK_STRATEGY, {\n optional: true\n });\n\n handleErrorFromLogin(err: HttpErrorResponse, param: MonkeyEcxAuthCredentials) {\n const { status, error } = err;\n const { notifications = [], type } = error || {};\n const { username } = param;\n\n if (status === 403 && notifications.length) {\n if (type === 'change_password_required') {\n this.navigateToLegalRegister(username!, notifications[0]);\n return;\n }\n\n if (type === 'mfa_required') {\n this.navigateToMfa(username!, notifications[0]);\n return;\n }\n }\n\n this._bootstrapService.handleMessage(notifications[0], 'warning');\n }\n\n private navigateToLegalRegister(username: string, token: string) {\n this._router.navigate(['/authentication/user-legal-register'], {\n state: {\n userLegalRegisterData: { username, token }\n }\n });\n }\n\n private navigateToMfa(username: string, token: string) {\n this._router.navigate([`/authentication/login-mfa/${username}`], {\n state: {\n mfaData: { username, token }\n }\n });\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-auth-service-delete-token',\n httpResponse: {\n httpCodeIgnore: [400, 401, 404],\n httpCodeIgnoreRedirect: [500, 503, 404, 403, 401]\n }\n })\n async deleteToken() {\n const service = this._injector.get(MonkeyEcxService);\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n const url = `${env.baseUrl}/uaa/oauth/token`;\n const token = this._tokenStorageService.getToken();\n if (token?.accessToken) {\n return service.delete(url);\n }\n\n return null;\n }\n\n saveTokenCredentials(authCredentials: MonkeyEcxAuthCredentials) {\n this.setToken({\n username: authCredentials.username,\n program: authCredentials.program,\n accessToken: authCredentials.access_token,\n refreshToken: authCredentials.refresh_token\n });\n }\n\n async getClientIdSecretByAccess() {\n const { accessType } = this._tokenStorageService.getToken() || {\n accessType: ''\n };\n\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n\n let a = env.snENDUPLuHlBxIJD7h;\n let b = env.zi7TpJCi6JD1Kqzb4S;\n if (accessType === 'provider') {\n a = env.DBMpPL0iJZSWKZIzky;\n b = env.GCJfuDpr4j1xVMQtt4;\n }\n\n const ax = await this._lService.y(a);\n const bx = await this._lService.y(b);\n\n return {\n client_id: ax,\n client_secret: bx\n };\n }\n\n setToken(token: Partial<MonkeyEcxTokenCredentials>) {\n this._tokenStorageService.setToken(token);\n }\n\n setMe(me: Partial<MonkeyEcxMeCredentials>) {\n this._tokenStorageService.setMe(me);\n }\n\n isAuthorized() {\n const data = this._tokenStorageService.getToken();\n return !!data?.accessToken;\n }\n\n isCompanyAuthorized() {\n const data = this._tokenStorageService.getToken();\n return !!data?.companyId;\n }\n\n hadAtLeastOneLogin() {\n const data = this._tokenStorageService.getToken();\n return !data?.accessToken && !!data?.program && !!data?.username;\n }\n\n async logOut(force?: boolean, redirect?: boolean, callback?: Function, doDelete = true) {\n const { _tokenStorageService, _cookieService, _loggedService } = this;\n\n try {\n if (doDelete) {\n await this.deleteToken();\n }\n } catch (e) {\n // not to do\n }\n\n _tokenStorageService.clear(force);\n _cookieService.removeCookie('monkey-app');\n _loggedService.destroy();\n\n if (redirect) {\n window.location.reload();\n }\n\n if (callback) {\n callback();\n }\n }\n\n refreshToken(): Observable<any> {\n const { _tokenStorageService, _refreshTokenStrategy } = this;\n const service = this._injector.get(MonkeyEcxService);\n\n if (_refreshTokenStrategy) {\n return _refreshTokenStrategy();\n }\n\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n const url = `${env.baseUrl}/uaa/oauth/token`;\n\n const tokenCredentials = _tokenStorageService.getToken()!;\n\n return from(this.getClientIdSecretByAccess()).pipe(\n switchMap((clientIdSecret) => {\n const query = queryString.stringify({\n ...clientIdSecret,\n scope: 'ui',\n grant_type: 'refresh_token',\n //access_token: tokenCredentials.accessToken,\n access_token: 'G30lKdpcEXp24wSlfasb2xZLKK99hNDLZSP3',\n refresh_token: tokenCredentials.refreshToken,\n username: tokenCredentials.username\n });\n\n const headers = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\n\n return service\n .post<any>(url, query, {\n headers\n })\n .pipe(\n switchMap((resp) => {\n return from(this.me(resp)).pipe(map(() => null));\n }),\n catchError((err) => {\n return throwError(() => err);\n })\n );\n })\n );\n }\n\n async redirectLoginWelcomeBack() {\n const { _redirectLoginWelcomeBackStrategy } = this;\n if (_redirectLoginWelcomeBackStrategy) {\n return _redirectLoginWelcomeBackStrategy();\n }\n\n const data = this._tokenStorageService.getToken();\n if (data?.accessToken) {\n await this.logOut(false);\n }\n\n let route = 'email/login';\n if (\n MonkeyEcxUtils.persistNullEmptyUndefined(data?.username) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(data?.program)\n ) {\n route = 'welcome-back';\n }\n\n this._router.navigate([`/authentication/${route}`]);\n }\n\n redirectApp() {\n const data = this._tokenStorageService.getToken();\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n if (\n MonkeyEcxUtils.persistNullEmptyUndefined(data!.username) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(data!.accessToken)\n ) {\n this._router.navigate([env.paths.redirectApp]);\n }\n }\n\n handleFlowAfterLogin() {\n const datadogService = this._injector.get(MonkeyEcxDatadogService);\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n const path = env?.paths?.redirectAfterLoginProduct || '/authentication/login-products';\n\n try {\n const authData = localStorage.getItem('auth-data');\n if (authData) {\n const obj: MonkeyEcxAuthReAuthenticateData = JSON.parse(authData);\n const accessHandle = obj?.accessHandle;\n if (accessHandle) {\n this._tokenStorageService.setToken({\n accessHandle\n } as any);\n }\n\n if (accessHandle.access === 'REFRESH_TOKEN') {\n localStorage.removeItem('auth-data');\n localStorage.removeItem('accessHandle');\n this._tokenStorageService.setToken({\n accessHandle: null\n } as any);\n }\n }\n } catch (e) {\n // not to do\n }\n\n try {\n datadogService.apply();\n } catch (e) {\n // not to do\n }\n\n this._router.navigate([path]);\n }\n\n reAuthenticate(authData: MonkeyEcxAuthReAuthenticateData) {\n this.logOut(true, false, () => {\n this._router.navigate(['/authentication/re-authenticate'], {\n state: {\n authData\n }\n });\n });\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-auth-service-login',\n httpResponse: {\n httpCodeIgnore: [400, 404, 403],\n httpCodeIgnoreRedirect: [500, 503, 404, 403]\n }\n })\n async login(param: MonkeyEcxAuthCredentials) {\n // to do\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-auth-service-me',\n httpResponse: {\n httpCodeIgnore: [400, 404, 403],\n httpCodeIgnoreRedirect: [500, 503, 404, 403]\n }\n })\n async me(authCredentials: MonkeyEcxAuthCredentials) {\n const service = this._injector.get(MonkeyEcxService);\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n const url = `${env.baseUrl}/uaa/me`;\n\n this.saveTokenCredentials(authCredentials);\n\n const resp = (await firstValueFrom(service?.get(url))) as any;\n\n this.saveMeCredentials({\n ...resp.principal,\n selectedLanguage: 'pt-BR'\n });\n }\n\n saveMeCredentials(meCredentials: MonkeyEcxMeCredentials) {\n const localeService = this._injector.get(MonkeyEcxLocaleService);\n const { programs } = meCredentials;\n const config = this._configService.whiteLabel!;\n\n if (config) {\n const programType = config.program!.type;\n if (programType) {\n this.setToken({\n programType\n });\n }\n }\n\n this.setMe({\n name: meCredentials?.name,\n email: meCredentials?.email,\n username: meCredentials?.username,\n status: meCredentials?.status,\n pictureURL: meCredentials?.pictureURL,\n selectedLanguage: meCredentials?.selectedLanguage,\n companies: meCredentials?.companies,\n programs,\n nickname: meCredentials?.nickname,\n cellPhone: meCredentials?.cellPhone,\n smsNotification: meCredentials?.smsNotification,\n privacyPolicy: meCredentials?.privacyPolicy,\n useTerms: meCredentials?.useTerms,\n newsletter: meCredentials?.newsletter,\n locale: meCredentials?.locale,\n others: meCredentials?.others,\n groups: meCredentials?.groups\n });\n\n localeService.apply();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxLogs } from '../../utils';\nimport { MonkeyEcxErrorService } from '../config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxGlobalErrorHandler implements ErrorHandler {\n constructor(private injector: Injector) {\n //not to do\n }\n\n public handleError(error: any) {\n const bootstrapService = this.injector.get(MECX_BOOTSTRAP_SERVICE);\n const errorService = this.injector.get(MonkeyEcxErrorService);\n\n const env = bootstrapService.getEnv();\n if (error instanceof HttpErrorResponse) {\n return;\n }\n\n try {\n if (!env.production) {\n console.log('==> error <==');\n console.log(error);\n }\n\n let cmp = error?.message || error;\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(cmp)) {\n errorService.apply(cmp);\n }\n\n MonkeyEcxLogs.log({\n message: '==> error <==',\n error\n });\n } catch (e) {\n // not to\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-global-error-handler.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\nimport { inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxIconsService {\n private readonly _sanitizer = inject(DomSanitizer);\n\n private handleTrust(icon: string) {\n return this._sanitizer.bypassSecurityTrustHtml(icon);\n }\n\n get monkey(): SafeHtml | null {\n return this.handleTrust(`\n <?xml version=\"1.0\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 20010904//EN\"\n \"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd\">\n<svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\"\n width=\"200.000000pt\" height=\"200.000000pt\" viewBox=\"0 0 200.000000 200.000000\"\n preserveAspectRatio=\"xMidYMid meet\">\n\n<g transform=\"translate(0.000000,200.000000) scale(0.100000,-0.100000)\"\nfill=\"#000000\" stroke=\"none\">\n<path d=\"M145 1631 c-52 -24 -99 -74 -124 -134 -29 -67 -27 -113 10 -185 30\n-61 53 -83 116 -115 l31 -17 17 78 c23 105 66 206 124 290 l49 71 -39 15 c-53\n21 -135 20 -184 -3z\"/>\n<path d=\"M1662 1630 l-42 -19 35 -46 c65 -85 145 -286 145 -363 0 -19 4 -22\n23 -17 62 18 112 61 144 124 40 76 42 121 9 193 -57 128 -193 183 -314 128z\"/>\n<path d=\"M593 1586 c-92 -30 -166 -98 -212 -195 -22 -48 -26 -69 -26 -146 1\n-79 4 -97 30 -148 33 -66 117 -149 170 -168 40 -15 41 -15 18 -71 -12 -29 -18\n-70 -18 -123 1 -99 30 -170 104 -248 208 -220 606 -167 737 98 26 54 29 70 29\n155 -1 70 -5 103 -18 127 -9 18 -17 34 -17 36 0 3 24 17 54 31 115 56 196 186\n196 315 0 129 -82 261 -198 318 -50 25 -68 28 -152 28 -84 0 -102 -3 -151 -28\n-31 -15 -76 -48 -99 -73 l-42 -45 -54 51 c-30 28 -75 61 -101 72 -60 27 -189\n34 -250 14z m153 -152 c39 -19 40 -21 17 -46 -22 -25 -21 -77 2 -94 10 -8 34\n-14 52 -14 31 0 33 -2 27 -27 -21 -89 -86 -143 -170 -143 -107 0 -192 108\n-164 210 28 105 140 159 236 114z m659 -8 c26 -17 26 -17 6 -34 -49 -42 -21\n-112 45 -112 39 0 41 -8 15 -65 -43 -93 -139 -130 -227 -89 -130 62 -131 242\n-2 308 41 21 125 17 163 -8z m-492 -406 c35 -28 64 -104 47 -125 -19 -23 -40\n-18 -75 19 -35 38 -49 81 -34 108 13 23 30 23 62 -2z m226 1 c15 -28 -5 -86\n-40 -115 -37 -31 -55 -33 -69 -6 -20 38 42 140 86 140 7 0 18 -8 23 -19z\"/>\n</g>\n</svg>\n `);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkey-icons.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createAction, props } from '@ngrx/store';\nimport {\n MonkeyEcxPage,\n MonkeyEcxPaginationData,\n MonkeyEcxStoreControl,\n MonkeyEcxStoreLoadPageParams,\n MonkeyEcxStoreLoadParams,\n MonkeyEcxStoreStartParams\n} from '../../interfaces';\n\nexport abstract class MonkeyEcxCommonsActions {\n static getActions<T>(actionName: string) {\n const clear = createAction(`[${actionName}] Clear All`);\n const load = createAction(`[${actionName}] Load`, props<MonkeyEcxStoreLoadParams>());\n const start = createAction(`[${actionName}] Start`, props<MonkeyEcxStoreStartParams>());\n const loadPagination = createAction(\n `[${actionName} Pagination] Load`,\n props<MonkeyEcxStoreLoadPageParams>()\n );\n const updateAll = createAction(`[${actionName}] Update All`, props<{ data: T[] }>());\n const updateOne = createAction(`[${actionName}] Update One`, props<{ data: T }>());\n const removeOne = createAction(`[${actionName}] Remove One`, props<{ data: T }>());\n const updateControl = createAction(\n `[${actionName}] Update Control`,\n props<{ data: MonkeyEcxStoreControl }>()\n );\n const updatePage = createAction(\n `[${actionName}] Update Page`,\n props<{ data: MonkeyEcxPage }>()\n );\n const updateLinks = createAction(\n `[${actionName}] Update Links`,\n props<{ data: MonkeyEcxPaginationData }>()\n );\n\n return {\n clear,\n load,\n start,\n loadPagination,\n removeOne,\n updateAll,\n updateOne,\n updateControl,\n updateLinks,\n updatePage\n };\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\n\ninterface IReducer {\n featureKey: string;\n selectAll: any;\n}\n\nexport abstract class MonkeyEcxCommonsSelectors {\n static getSelectors<T>(reducer: IReducer) {\n const selectState = createFeatureSelector<T>(reducer.featureKey);\n\n const selectAll: any = createSelector(selectState, reducer.selectAll);\n\n const selectControl = () => {\n return createSelector(selectState, (state: any): any => {\n return state.control;\n });\n };\n\n const selectLinks = () => {\n return createSelector(selectState, (state: any): any => {\n return state.links;\n });\n };\n\n const selectPage = () => {\n return createSelector(selectState, (state: any): any => {\n return state.page;\n });\n };\n\n const selectData = () => {\n return createSelector(selectState, (state: any): any => {\n return state.data;\n });\n };\n\n return {\n selectState,\n selectAll,\n selectData,\n selectControl,\n selectLinks,\n selectPage\n };\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport class Link {\n href: string;\n\n type: string;\n\n profile: string;\n\n templated: boolean;\n\n constructor(data?: any) {\n this.href = data?.href;\n this.type = data?.type;\n this.profile = data?.profile;\n this.templated = data?.templated;\n }\n}\n\nexport class MonkeyEcxModel {\n _links: any;\n\n public getAction(\n type: string,\n replaceOptions?: {\n from: string;\n to: string;\n }\n ): Link | null {\n const { _links } = this;\n if (!_links) return null;\n let link: Link = _links[type?.toLowerCase()];\n link = new Link(link);\n if (link && replaceOptions && link?.templated) {\n const { from, to } = replaceOptions;\n link = new Link({\n ...link,\n href: `${link.href}`.replace(from, to)\n });\n }\n return link;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { MonkeyEcxModel } from './monkeyecx-model';\n\nexport class MonkeyEcxLinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n\n this._links = data?._links;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nexport * from './monkeyecx-links.model';\nexport * from './monkeyecx-model';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxService } from '../monkeyecx.service';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreService<T, K extends MonkeyEcxConfigStore> {\n private action: any;\n\n private selector: any;\n\n readonly service = inject(MonkeyEcxService);\n\n constructor(\n protected store: Store,\n config: K\n ) {\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links);\n }\n\n this.updatePage?.(page);\n } else data = resp;\n\n this.update?.(data);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[]): T | T[] {\n try {\n const handle = (item: T) => {\n delete (item as any).context;\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[]) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(data: MonkeyEcxPage) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(data: MonkeyEcxLinks) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-store-base-service',\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n }\n })\n protected async loadData(url: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await firstValueFrom(this.service?.get(url));\n this.handleResponseData(data, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw e;\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination) {\n const { store, selector } = this;\n const data = await firstValueFrom(store.select(selector.selectLinks()));\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-store.actions';\nexport * from './monkeyecx-store.selector';\nexport * from './monkeyecx-store.service';\n","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxFormValidationService {\n validateForm(form: FormGroup): boolean {\n if (form.invalid) {\n this.markAllTouched(form);\n this.scrollToError();\n return false;\n }\n return true;\n }\n\n scrollToError() {\n setTimeout(() => {\n const invalidField = document.querySelector('.mecx-form-field-invalid') as HTMLElement | null;\n\n if (!invalidField) return;\n\n invalidField.scrollIntoView({ behavior: 'smooth', block: 'start' });\n invalidField.focus?.();\n });\n }\n\n private markAllTouched(formGroup: FormGroup) {\n Object.values(formGroup.controls).forEach((control) => {\n control.markAsTouched();\n control.markAsDirty();\n\n const anyControl = control as any;\n if (anyControl.controls) {\n this.markAllTouched(anyControl);\n }\n });\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './auth';\nexport * from './config';\nexport * from './error';\nexport * from './icons';\nexport * from './monkeyecx.service';\nexport * from './request';\nexport * from './store';\nexport * from './validation';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\nimport { MonkeyEcxService } from '../services';\n\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n\n Object.entries(context).forEach(([key, value]) => {\n if ((value as any) instanceof MonkeyEcxService) {\n context[key].internalRequestData = params;\n }\n });\n\n const requestArgs = args.map((arg) => {\n if (\n typeof arg === 'object' &&\n arg !== null &&\n !Array.isArray(arg) &&\n arg.context === undefined\n ) {\n return { ...arg };\n }\n return arg;\n });\n\n const result = method.apply(context, requestArgs);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-decorators';\n","import {\n DestroyRef,\n Directive,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n NgModel,\n StatusChangeEvent,\n TouchedChangeEvent,\n ValueChangeEvent\n} from '@angular/forms';\nimport { debounceTime, filter, Subscription } from 'rxjs';\n\ninterface ErrorMessageContext {\n $implicit: string | null;\n errorMessage: string | null;\n errorParams: { [key: string]: string | number } | null;\n}\n\nfunction mapErrorKey(key: string): string {\n const map: Record<string, string> = {\n required: 'mandatory',\n invalidGovernmentId: 'invalid-governmentid',\n invalidDate: 'invalid-date',\n invalidValueGreaterThanZero: 'invalid-greater-than-zero',\n phone: 'invalid-phone',\n maxFileSize: 'max-file-size'\n };\n\n return (map[key] ?? key).toUpperCase();\n}\n\nfunction mapErrorParams(key: string, control: AbstractControl) {\n const map: Record<string, string> = {\n 'invalid-phone': 'phoneAllowed',\n 'max-file-size': 'sizeAllowed'\n };\n\n const field = map[key?.toLowerCase()];\n if (field) {\n return { [field]: control.errors?.[field] };\n }\n\n return null;\n}\n\n@Directive({\n selector: '[monkeyecxErrorMessage]',\n standalone: true\n})\nexport class MonkeyEcxErrorMessageDirective implements OnInit, OnDestroy {\n private _destroyRef = inject(DestroyRef);\n\n private control: AbstractControl | null = null;\n\n private sub?: Subscription;\n\n private context: ErrorMessageContext = {\n $implicit: null,\n errorMessage: null,\n errorParams: null\n };\n\n private updateViewEvent = new EventEmitter();\n\n @Input('monkeyecxErrorMessage') set errorMessage(control: NgModel | AbstractControl | null) {\n if (control instanceof NgModel) {\n this.control = control.control;\n } else {\n this.control = control;\n }\n this.subscribe();\n this.updateViewEvent.emit();\n }\n\n constructor(\n private tpl: TemplateRef<ErrorMessageContext>,\n private vcr: ViewContainerRef\n ) {\n // not to do\n }\n\n ngOnInit(): void {\n this.updateViewEvent\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.updateView();\n });\n\n this.updateView();\n }\n\n private subscribe() {\n this.sub?.unsubscribe();\n if (this.control) {\n this.sub = this.control.events\n ?.pipe(\n filter((e): e is TouchedChangeEvent | ValueChangeEvent<any> | StatusChangeEvent => {\n return (\n e instanceof TouchedChangeEvent ||\n e instanceof ValueChangeEvent ||\n e instanceof StatusChangeEvent\n );\n })\n )\n .subscribe((x) => {\n this.updateViewEvent.emit();\n });\n }\n }\n\n private updateView() {\n this.vcr.clear();\n\n if (!this.control || !this.control.errors || !this.control.touched) {\n return;\n }\n\n let firstErrorKey = Object.keys(this.control.errors)[0];\n if (!firstErrorKey) return;\n\n firstErrorKey = mapErrorKey(firstErrorKey);\n\n const firstErrorParams = mapErrorParams(firstErrorKey, this.control);\n\n this.context.$implicit = firstErrorKey;\n this.context.errorMessage = firstErrorKey;\n this.context.errorParams = firstErrorParams;\n\n this.vcr.createEmbeddedView(this.tpl, this.context);\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { ChangeDetectorRef, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxConfigsService } from '../services';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFeatureByProgram]'\n})\nexport class MonkeyEcxFeatureByProgramDirective implements OnInit {\n @Input('feature') feature: string = '';\n\n private readonly _configsService = inject(MonkeyEcxConfigsService);\n\n private readonly _elementRef = inject(ElementRef);\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n private init() {\n if (!this.feature) return;\n this._changeDetectorRef.detectChanges();\n this.handleDisplay();\n }\n\n private handleDisplay() {\n const whiteLabel = this._configsService.whiteLabel;\n const { feature } = this;\n let display = 'none';\n\n if (\n !MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(whiteLabel?.program?.settings)\n ) {\n return;\n }\n\n const disabled = whiteLabel?.program?.settings?.[feature];\n\n if (!disabled) {\n display = 'block';\n }\n\n this._elementRef.nativeElement.style.display = display;\n\n if (display === 'none') {\n this._elementRef.nativeElement.remove();\n }\n\n this._changeDetectorRef.detectChanges();\n }\n\n ngOnInit() {\n this.init();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFeature]'\n})\nexport class MonkeyEcxFeatureDirective implements OnInit {\n @Input('featureName') feature?: string;\n\n private readonly _service = inject(MonkeyEcxFeatureToggleService);\n\n private readonly _elementRef = inject(ElementRef);\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly _destroyRef = inject(DestroyRef);\n\n private getFeature(feature: string): boolean {\n const { _service } = this;\n\n if (!_service) {\n return false;\n }\n\n return _service?.getFlag(feature, false);\n }\n\n private handleDisplay(): void {\n if (!this.feature) return;\n const flag = this.getFeature(this.feature);\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\n return;\n }\n\n if (flag) {\n display = 'block';\n }\n\n if (display === 'none') {\n this._elementRef.nativeElement.remove();\n }\n\n this._elementRef.nativeElement.style.display = display;\n this._changeDetectorRef.detectChanges();\n }\n\n ngOnInit() {\n if (!this.feature) return;\n this._elementRef.nativeElement.style.display = 'none';\n this._changeDetectorRef.detectChanges();\n this.handleDisplay();\n\n this._service.onFlags.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((val: boolean) => {\n if (val) {\n this.handleDisplay();\n }\n });\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n inject,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxLoading]'\n})\nexport class MonkeyEcxLoadingDirective implements OnChanges {\n private _view: EmbeddedViewRef<any> | null = null;\n\n private _loadingElement: HTMLElement | null = null;\n\n private readonly elementRef = inject(ElementRef);\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef\n ) {\n // not to do\n }\n\n @Input() monkeyecxLoading: boolean = false;\n\n @Input() monkeyecxLoadingSize: 'lg' | 'md' | 'sm' = 'sm';\n\n ngOnChanges(changes: SimpleChanges) {\n // eslint-disable-next-line dot-notation\n if (changes['monkeyecxLoading'] || changes['monkeyecxLoadingSize']) {\n this.updateView();\n }\n }\n\n updateView() {\n if (this.monkeyecxLoading) {\n if (this._view) this.viewContainer.clear();\n\n this._loadingElement = document.createElement('div');\n\n this._loadingElement.className = `mecx-loading ${this.monkeyecxLoadingSize}`;\n\n this.elementRef.nativeElement.parentNode.insertBefore(\n this._loadingElement,\n this.elementRef.nativeElement.nextSibling\n );\n } else {\n if (this._loadingElement && this._loadingElement.parentNode) {\n this._loadingElement.parentNode.removeChild(this._loadingElement);\n this._loadingElement = null;\n }\n\n this.viewContainer.clear();\n this._view = this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { ChangeDetectorRef, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxTokenCredentials } from '../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Directive({\n selector: '[monkeyecxSecurity]'\n})\nexport class MonkeyEcxSecurityDirective implements OnInit {\n @Input('securityRoles') roles: string[] = [];\n\n @Input('securityByExclusion') byExclusion: boolean = false;\n\n private _tokenCredentials: MonkeyEcxTokenCredentials | null = null;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private readonly elementRef = inject(ElementRef);\n\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n constructor() {\n // not to do\n }\n\n private getRole(): string {\n const { _tokenCredentials } = this;\n\n if (!_tokenCredentials) return '';\n\n if (_tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n\n if (_tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n const handledRole = localStorage.getItem('role');\n\n return _tokenCredentials?.role || handledRole || '';\n }\n\n private handleAccess() {\n const { roles, byExclusion } = this;\n let display = 'none';\n const found = roles?.indexOf(this.getRole());\n if (byExclusion) {\n display = 'block';\n if (found > -1) {\n display = 'none';\n }\n } else {\n display = 'none';\n if (found > -1) {\n display = 'block';\n }\n }\n\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\n this.elementRef.nativeElement.style.display = display;\n this.changeDetectorRef.detectChanges();\n }\n\n private handleData() {\n this._tokenCredentials = this._tokenStorageService.getToken();\n this.handleAccess();\n }\n\n ngOnInit() {\n this.elementRef.nativeElement.style.display = 'none';\n this.changeDetectorRef.detectChanges();\n this.handleData();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-error-message.directive';\nexport * from './monkeyecx-feature-by-program-directive';\nexport * from './monkeyecx-feature-directive';\nexport * from './monkeyecx-loading';\nexport * from './monkeyecx-security-directive';\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { differenceInYears, parse } from 'date-fns';\nimport { MonkeyEcxUtils } from '../utils';\n\nconst EMAIL_REGEXP = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/;\n\nfunction isEmptyInputValue(value: any): boolean {\n return value == null || value.length === 0;\n}\n\nexport function emailValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n const test = EMAIL_REGEXP.test(control.value);\n if (test) return null;\n return {\n email: true\n };\n}\n\nexport function dateRangeValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates?.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates?.endDate))\n ) {\n return {\n dateRange: true\n };\n }\n\n return null;\n}\n\nexport function registerValidator(control: AbstractControl, type: string): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n if (control && control.value !== `#MONKEY${type}`.toUpperCase()) {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n}\n\nexport function dateStartEndValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) {\n return null;\n }\n\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n\n return null;\n}\n\nexport function urlValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n url: true\n };\n }\n\n return null;\n}\n\nexport function passwordConfirmValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n\n return {\n passwordsNotMatching: true\n };\n}\n\nexport function trueValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n\n return {\n invalidTrue: true\n };\n}\n\nexport function comboValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n\n return {\n invalidCombo: true\n };\n}\n\nexport function zipCodeValidator(\n control: AbstractControl,\n country?: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value, country)) {\n return {\n invalidZipCode: true\n };\n }\n }\n\n return null;\n}\n\nexport function documentValidator(\n control: AbstractControl,\n country: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n country = `${country}`.toUpperCase();\n if (country === 'BR') {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidGovernmentId: true\n };\n }\n } else if (country === 'CL') {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidGovernmentId: true\n };\n }\n } else if (country === 'MX') {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidGovernmentId: true\n };\n }\n } else if (country === 'US') {\n if (!MonkeyEcxUtils.isValidEIN(control.value)) {\n return {\n invalidGovernmentId: true\n };\n }\n }\n\n return null;\n}\n\nexport function minYearsValidator(\n param: number,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const date = parse(control.value, 'yyyy-MM-dd', new Date());\n const dif = differenceInYears(new Date(), date);\n\n if (dif < param) {\n return {\n invalidMinYears: {\n year: param\n }\n };\n }\n return null;\n}\n\nexport function dateValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (!MonkeyEcxUtils.isValidDate(control.value)) {\n return {\n invalidDate: true\n };\n }\n return null;\n}\n\nexport function valueGreaterThanZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (control && `${control?.value}` === '0') {\n return {\n invalidValueGreaterThanZero: true\n };\n }\n return null;\n}\n\nexport function requiredWithTrimValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n if (control && !`${control?.value}`.trim()) {\n return {\n required: true\n };\n }\n return null;\n}\n\nexport function differentFromZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n const handled = `${control?.value}`.trim().replace(/0/g, '');\n if (control && !handled) {\n return {\n differentFromZero: true\n };\n }\n\n return null;\n}\n\nexport function documentValidatorByType(\n type: string,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const handle = MonkeyEcxUtils.handleOnlyNumbers(control.value);\n let valid = false;\n if (type === 'CPF' || type === 'CNPJ') {\n if (\n (type === 'CNPJ' && `${handle}`.length !== 14) ||\n (type === 'CPF' && `${handle}`.length !== 11)\n ) {\n valid = false;\n } else {\n valid = MonkeyEcxUtils.isCPFCNPJValid(control.value);\n }\n } else if (type === 'RUT') {\n valid = MonkeyEcxUtils.isValidRUT(control.value);\n } else if (type === 'RFC') {\n valid = MonkeyEcxUtils.isValidRFC(control.value);\n } else if (type === 'EIN') {\n valid = MonkeyEcxUtils.isValidEIN(control.value);\n }\n\n if (!valid) {\n return {\n [`invalid${MonkeyEcxUtils.capitalize(type?.toLowerCase())}`]: true\n };\n }\n\n return null;\n}\n\nexport function validateFullName(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n const fullName = value.split(/\\s+/);\n const hasShortPart = fullName.some((part: any) => {\n return part.length < 2;\n });\n\n if (fullName.length < 2 || hasShortPart) {\n return { fullName: true };\n }\n\n return null;\n}\n\nexport function containsNumber(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n return /\\d/.test(value) ? { containsNumber: true } : null;\n}\n\nexport class MonkeyValidators {\n static email(control: AbstractControl): ValidationErrors | null {\n return emailValidator(control);\n }\n\n static dateRange(control: AbstractControl): ValidationErrors | null {\n return dateRangeValidator(control);\n }\n\n static unlockSponsorRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'sponsor');\n }\n\n static unlockBuyerRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'buyer');\n }\n\n static dateStartEnd(control: AbstractControl): ValidationErrors | null {\n return dateStartEndValidator(control);\n }\n\n static url(control: AbstractControl): ValidationErrors | null {\n return urlValidator(control);\n }\n\n static passwordConfirm(control: AbstractControl): ValidationErrors | null {\n return passwordConfirmValidator(control);\n }\n\n static true(control: AbstractControl): ValidationErrors | null {\n return trueValidator(control);\n }\n\n static combo(control: AbstractControl): ValidationErrors | null {\n return comboValidator(control);\n }\n\n static zipCode(control: AbstractControl): ValidationErrors | null {\n return zipCodeValidator(control);\n }\n\n static zipCodeByCountry(country: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return zipCodeValidator(control, country);\n };\n }\n\n static documentBR(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'BR');\n }\n\n static documentCL(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'CL');\n }\n\n static documentMX(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'MX');\n }\n\n static documentUS(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'US');\n }\n\n static date(control: AbstractControl): ValidationErrors | null {\n return dateValidator(control);\n }\n\n static minYears(param: number): ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null => {\n return minYearsValidator(param, control);\n };\n }\n\n static greaterThanZero(control: AbstractControl): ValidationErrors | null {\n return valueGreaterThanZero(control);\n }\n\n static required(control: AbstractControl): ValidationErrors | null {\n return requiredWithTrimValidator(control);\n }\n\n static differentFromZero(control: AbstractControl): ValidationErrors | null {\n return differentFromZero(control);\n }\n\n static documentValidatorByType(type: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return documentValidatorByType(type, control);\n };\n }\n\n static validateFullName(control: AbstractControl): ValidationErrors | null {\n return validateFullName(control);\n }\n\n static containsNumber(control: AbstractControl): ValidationErrors | null {\n return containsNumber(control);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthService } from '../services';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardCompany implements CanActivate {\n private readonly _authService = inject(MonkeyEcxAuthService);\n\n canActivate(): boolean {\n if (this._authService.isAuthorized()) {\n if (this._authService.isCompanyAuthorized()) {\n return true;\n }\n this._authService.redirectApp();\n return false;\n }\n\n this._authService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthService } from '../services';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\n private readonly _authService = inject(MonkeyEcxAuthService);\n\n canActivate(): boolean {\n if (this._authService.isAuthorized()) {\n this._authService.redirectApp();\n return false;\n }\n\n if (this._authService.hadAtLeastOneLogin()) {\n this._authService.redirectLoginWelcomeBack();\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuardByRole implements CanActivate {\n private securityCredentials: {\n roles: string[];\n byExclusion: boolean;\n } | null = null;\n\n private tokenCredentials: any = null;\n\n constructor(\n private tokenStorage: MonkeyEcxTokenStorageService,\n private router: Router\n ) {\n // not to do\n }\n\n private navigateToErrorPage() {\n const { tokenCredentials } = this;\n const companyType = tokenCredentials?.companyType;\n let path = '/app/pages/forbidden';\n if (companyType) {\n path = `/app/${companyType}/pages/forbidden`;\n }\n this.router?.navigate([path?.toLowerCase()]);\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n return tokenCredentials?.role || '';\n }\n\n private allowedSecurityAccess(roles: string[], byExclusion: boolean): boolean {\n if (!roles?.length) return true;\n\n const found = roles?.indexOf(this.getRole());\n let ret = false;\n if (byExclusion) {\n ret = true;\n if (found > -1) {\n ret = false;\n }\n } else {\n ret = false;\n if (found > -1) {\n ret = true;\n }\n }\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\n ret = true;\n }\n return ret;\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\n this.securityCredentials = (route.data as any)?.securityCredentials;\n if (this.securityCredentials) {\n const { roles, byExclusion } = this.securityCredentials;\n\n this.tokenCredentials = await this.tokenStorage.getToken();\n\n if (!this.allowedSecurityAccess(roles, byExclusion)) {\n this.navigateToErrorPage();\n return false;\n }\n }\n\n return true;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthService } from '../services';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuard implements CanActivate {\n private readonly _authService = inject(MonkeyEcxAuthService);\n\n canActivate(): boolean {\n if (this._authService.isAuthorized()) {\n return true;\n }\n\n this._authService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n HttpErrorResponse,\n HttpEvent,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, finalize, map } from 'rxjs/operators';\nimport { MECX_REQUEST_ID } from '../injectors';\nimport { MonkeyEcxRequestErrorService } from '../services/request/monkeyecx-request-error.service';\nimport { MonkeyEcxRequestStateService } from '../services/request/monkeyecx-request-state.service';\n\nconst isRefreshTokenRequest = (request: HttpRequest<any>): boolean => {\n const body = `${request.body}`.includes('grant_type=refresh_token');\n return request.url.includes('/uaa/oauth/token') && body;\n};\n\nconst refreshShouldHappen = (response: HttpErrorResponse): boolean => {\n const { status, url, error } = response;\n const { type } = error || {\n type: ''\n };\n\n const typed = 'ACCESS_DENIED#INVALID_TOKEN#INVALID_CLIENT';\n\n let handledType = type;\n if (!handledType && typeof error === 'object') {\n handledType = error?.error;\n }\n\n if (type === 'ERROR') return false;\n if (url?.includes('uaa/oauth/token') && typed.includes(`${handledType}`?.toUpperCase())) {\n return false;\n }\n if (url?.includes('/notifications')) {\n return false;\n }\n\n return status === 401;\n};\n\nexport const monkeyEcxHttpConfigInterceptor: HttpInterceptorFn = (\n req: HttpRequest<any>,\n next: HttpHandlerFn\n): Observable<HttpEvent<any>> => {\n const requestStateService = inject(MonkeyEcxRequestStateService);\n const requestErrorService = inject(MonkeyEcxRequestErrorService);\n const requestId = req.context.get(MECX_REQUEST_ID);\n\n if (isRefreshTokenRequest(req)) {\n return next(req);\n }\n\n const state = requestId ? requestStateService.getData(requestId) : null;\n const headers = requestStateService.getHeaders(req.url);\n const updatedReq = req.clone({ setHeaders: headers });\n\n return next(updatedReq).pipe(\n map((event: HttpEvent<any>) => {\n return event;\n }),\n catchError((error: HttpErrorResponse) => {\n if (refreshShouldHappen(error)) {\n requestErrorService.handleError(error, state);\n return requestStateService.handleRefreshTokenError(req, next);\n }\n\n requestErrorService.handleError(error, state);\n return throwError(() => {\n return error;\n });\n }),\n finalize(() => {\n requestStateService.clearData(requestId);\n })\n );\n};\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-http.interceptor';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-auth';\nexport * from './monkeyecx-company';\nexport * from './monkeyecx-env';\nexport * from './monkeyecx-file-cache';\nexport * from './monkeyecx-header-credentials';\nexport * from './monkeyecx-init';\nexport * from './monkeyecx-interface';\nexport * from './monkeyecx-me-credentials';\nexport * from './monkeyecx-pagination';\nexport * from './monkeyecx-program';\nexport * from './monkeyecx-request-state';\nexport * from './monkeyecx-resolver';\nexport * from './monkeyecx-service-control';\nexport * from './monkeyecx-service-credentials';\nexport * from './monkeyecx-storage';\nexport * from './monkeyecx-store';\nexport * from './monkeyecx-token-credentials';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { provideHttpClient, withInterceptors } from '@angular/common/http';\nimport {\n ErrorHandler,\n inject,\n ModuleWithProviders,\n NgModule,\n provideAppInitializer\n} from '@angular/core';\nimport { provideState, provideStore } from '@ngrx/store';\nimport { monkeyEcxHttpConfigInterceptor } from './interceptors';\nimport {\n MonkeyEcxGlobalErrorHandler,\n monkeyEcxInitializerFactory,\n MonkeyEcxInitService\n} from './services';\nimport { reducers } from './store';\n\n@NgModule({\n imports: [CommonModule]\n})\nexport class MonkeyEcxCoreModule {\n static forRoot(): ModuleWithProviders<MonkeyEcxCoreModule> {\n return {\n ngModule: MonkeyEcxCoreModule,\n providers: [\n {\n provide: ErrorHandler,\n useClass: MonkeyEcxGlobalErrorHandler\n },\n provideHttpClient(withInterceptors([monkeyEcxHttpConfigInterceptor])),\n provideAppInitializer(() => {\n const initializerFn = monkeyEcxInitializerFactory(inject(MonkeyEcxInitService));\n return initializerFn();\n }),\n provideStore(),\n provideState({\n name: reducers.fromMonkeyecxStorage.featureKey,\n reducer: reducers.fromMonkeyecxStorage.reducer\n })\n ]\n };\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxService } from '../services';\n\n@Pipe({\n name: 'monkeyecxBlobSecure',\n standalone: false\n})\nexport class MonkeyEcxBlobSecurePipe implements PipeTransform {\n private readonly _service = inject(MonkeyEcxService);\n\n private readonly _sanitizer = inject(DomSanitizer);\n\n constructor() {\n // not to do\n }\n\n transform(url: string): Observable<SafeUrl> {\n return this._service.get(url, { responseType: 'blob' }).pipe(\n map((val: any) => {\n return this._sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val));\n })\n );\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { DEFAULT_CURRENCY_CODE, Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxCurrencyCode',\n standalone: false\n})\nexport class MonkeyEcxCurrencyCodePipe implements PipeTransform {\n private readonly _defaultCurencyCode = injectTokenWithWarning(\n DEFAULT_CURRENCY_CODE,\n 'DEFAULT_CURRENCY_CODE'\n )!;\n\n transform(value: any, type: 'symbol' | 'code' = 'symbol') {\n const currency = this._defaultCurencyCode?.toString() || 'BRL';\n\n const symbol = {\n BRL: 'R$',\n CLP: '$',\n MXN: '$',\n USD: '$'\n }[currency];\n\n return `${value} (${type === 'symbol' ? symbol : currency})`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayFirstName',\n standalone: false\n})\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n return MonkeyEcxUtils.cutFirstLastName(name);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayInitials',\n standalone: false\n})\nexport class MonkeyEcxDisplayInitialsPipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n const first = MonkeyEcxUtils.cutFirstLastName(name, 'first');\n const second = MonkeyEcxUtils.cutFirstLastName(name, 'last');\n return `${first?.charAt(0)} ${second?.charAt(0)}`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatAddress',\n standalone: false\n})\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\n transform({\n zipCode,\n address,\n neighborhood,\n city,\n state\n }: {\n zipCode: string;\n address: string;\n neighborhood: string;\n city: string;\n state: string;\n country: string;\n }): string {\n return [address, neighborhood, zipCode, city, state]\n .filter((_: string) => {\n return _;\n })\n .join(', ');\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatBeautifyJSON',\n standalone: false\n})\nexport class MonkeyEcxFormatBeaufityJSONPipe implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(value: any) {\n const jsonLine = /^( *)(\"[\\w]+\": )?(\"[^\"]*\"|[\\w.+-]*)?([,[{])?$/gm;\n\n const replacer = (\n match: any,\n pIndent: string,\n pKey: string,\n pVal: string | string[],\n pEnd: any\n ) => {\n const key = '<span class=\"json-key\" style=\"color: brown\">';\n const val = '<span class=\"json-value\" style=\"color: navy\">';\n const str = '<span class=\"json-string\" style=\"color: olive\">';\n let r = pIndent || '';\n if (pKey) {\n r = `${r + key + pKey.replace(/[\": ]/g, '')}</span>: `;\n }\n if (pVal) {\n r = `${r + (pVal[0] === '\"' ? str : val) + pVal}</span>`;\n }\n return r + (pEnd || '');\n };\n\n return JSON.stringify(value, null, 3)\n .replace(/&/g, '&amp;')\n .replace(/\\\\\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(jsonLine, replacer);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CurrencyPipe } from '@angular/common';\nimport { DEFAULT_CURRENCY_CODE, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatCurrency',\n standalone: false\n})\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\n private readonly _defaultCurencyCode = injectTokenWithWarning(\n DEFAULT_CURRENCY_CODE,\n 'DEFAULT_CURRENCY_CODE'\n )!;\n\n private readonly _localeId = injectTokenWithWarning(LOCALE_ID, 'LOCALE_ID')!;\n\n constructor(private currencyPipe: CurrencyPipe) {\n // not to do\n }\n\n transform(value: any, symbol = 'symbol') {\n const currency = this._defaultCurencyCode.toString();\n const locale = this._localeId.toString();\n\n try {\n if (currency === 'CLP') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '1.0-0', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n if (currency === 'MXN') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n return this.currencyPipe.transform(value, currency, symbol, '', locale);\n } catch (e) {\n // not to do\n }\n return value;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning, MECX_DATE_FORMAT, MECX_TIMEZONEOFFSET } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatDate',\n standalone: false\n})\nexport class MonkeyEcxFormatDatePipe implements PipeTransform {\n private readonly _dateFormat = injectTokenWithWarning(MECX_DATE_FORMAT, 'MECX_DATE_FORMAT')!;\n\n private readonly _timezone = injectTokenWithWarning(MECX_TIMEZONEOFFSET, 'MECX_TIMEZONEOFFSET')!;\n\n constructor(private dt: DatePipe) {\n // not to do\n }\n\n transform(date: any | Date, format = this._dateFormat.toString()) {\n const hasTime =\n date instanceof Date\n ? date.getHours() + date.getMinutes() + date.getSeconds() > 0\n : date.includes(':');\n\n if (!hasTime) {\n return this.dt.transform(date, format);\n }\n\n return this.dt.transform(date, format, this._timezone.toString());\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning, MECX_COUNTRY } from '../injectors';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocument',\n standalone: false\n})\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\n private readonly _country = injectTokenWithWarning(MECX_COUNTRY, 'MECX_COUNTRY')!;\n\n transform(document: string, withType = false): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) {\n return '';\n }\n\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType, this._country);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { formatNumber } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatNumber',\n standalone: false\n})\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n\n return formatNumber(Number(number), 'ptbr');\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatPhone',\n standalone: false\n})\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\n transform(phone: string): string {\n if (phone) {\n const value = `${phone || ''}`.replace(/\\D/g, '');\n\n let formated = '';\n\n if (value.length > 12) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 11) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 10) {\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 9) {\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 5) {\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\n } else if (value.length > 1) {\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\n } else if (phone !== '') {\n formated = value.replace(/^(\\d*)/, '($1');\n }\n return formated;\n }\n return '';\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatSize',\n standalone: false\n})\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\n transform(size: string): string {\n if (!size) return '0 B';\n const sizeNum = Number(size);\n return MonkeyEcxUtils.formatFileSize(sizeNum);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils';\n\n@Pipe({\n name: 'monkeyecxFormatTax',\n standalone: false\n})\nexport class MonkeyEcxFormatTaxPipe implements PipeTransform {\n transform(tax: number, decimalDigits: number = 7) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tax)) return '0 %';\n const stringTax = tax.toString();\n const stringTaxLimited = stringTax.slice(0, stringTax.indexOf('.') + decimalDigits + 1);\n return `${Number(stringTaxLimited).toLocaleString('pt-br', {\n maximumFractionDigits: decimalDigits\n })} %`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning, MECX_COUNTRY } from '../injectors';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocumentType',\n standalone: false\n})\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\n private readonly _country = injectTokenWithWarning(MECX_COUNTRY, 'MECX_COUNTRY')!;\n\n transform(document: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\n return MonkeyEcxUtils.getDocumentType(document, this._country);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatValue',\n standalone: false\n})\nexport class MonkeyEcxFormatValue implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n return number;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatZipCode',\n standalone: false\n})\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\n transform(zipCode: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\n return MonkeyEcxUtils.formatZipCode(zipCode);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTextTruncate',\n standalone: false\n})\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\n transform(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTruncateQtd',\n standalone: false\n})\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\n transform(number: number, threshold: number): string {\n return `${number > threshold ? `${threshold}+` : number}`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CurrencyPipe, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxBlobSecurePipe } from './monkeyecx-blob-secure';\nimport { MonkeyEcxCurrencyCodePipe } from './monkeyecx-currency-code';\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\nimport { MonkeyEcxDisplayInitialsPipe } from './monkeyecx-display-initials';\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\nimport { MonkeyEcxFormatBeaufityJSONPipe } from './monkeyecx-format-beautify-json';\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatDatePipe } from './monkeyecx-format-date';\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\nimport { MonkeyEcxFormatTaxPipe } from './monkeyecx-format-tax';\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\n\n@NgModule({\n declarations: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n exports: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n providers: [CurrencyPipe, DatePipe]\n})\nexport class MonkeyEcxPipesModule {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-blob-secure';\nexport * from './monkeyecx-currency-code';\nexport * from './monkeyecx-display-first-name';\nexport * from './monkeyecx-display-initials';\nexport * from './monkeyecx-format-address';\nexport * from './monkeyecx-format-beautify-json';\nexport * from './monkeyecx-format-currency';\nexport * from './monkeyecx-format-date';\nexport * from './monkeyecx-format-document';\nexport * from './monkeyecx-format-number';\nexport * from './monkeyecx-format-phone';\nexport * from './monkeyecx-format-size';\nexport * from './monkeyecx-format-tax';\nexport * from './monkeyecx-format-type-document';\nexport * from './monkeyecx-format-value';\nexport * from './monkeyecx-format-zipcode';\nexport * from './monkeyecx-pipes.module';\nexport * from './monkeyecx-text-truncate';\nexport * from './monkeyecx-truncate-qtd';\n","import { provideServiceWorker } from '@angular/service-worker';\n\nexport function provideDomainServiceWorker(workerUrl: string) {\n return provideServiceWorker(workerUrl, {\n enabled: true,\n registrationStrategy: 'registerWhenStable:3000'\n });\n}\n","import { inject, signal } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { MonkeyEcxBaseResolverParams, MonkeyEcxServiceControl } from '../interfaces';\nimport { MonkeyEcxLogs } from '../utils';\n\nconst initialControl: MonkeyEcxServiceControl = {\n isLoading: true,\n isExporting: false,\n isDeleting: false,\n isDownloading: false,\n isSubmitting: false\n};\n\nexport abstract class MonkeyEcxBaseResolver implements Resolve<any> {\n public readonly router = inject(Router);\n\n public readonly paramsSubject = new BehaviorSubject<Partial<MonkeyEcxBaseResolverParams>>({});\n\n public readonly params$ = this.paramsSubject.asObservable();\n\n public control = signal<Partial<MonkeyEcxServiceControl>>(initialControl);\n\n get pathParams() {\n return this.paramsSubject.value.pathParams;\n }\n\n get queryParams() {\n return this.paramsSubject.value.queryParams;\n }\n\n get stateData() {\n return this.paramsSubject.value.stateData;\n }\n\n resolve(route: ActivatedRouteSnapshot): Observable<any> | Promise<any> {\n try {\n const pathParams = route.params;\n const { queryParams } = route;\n const currentNavigation = this.router.currentNavigation();\n let stateData = {};\n\n if (currentNavigation && currentNavigation.id > 1) {\n // TODO -> para conferir se vamos manter o state apos o f5 ou não\n stateData = currentNavigation.extras?.state || {};\n }\n\n const obj = {\n pathParams,\n queryParams,\n stateData\n };\n\n this.paramsSubject.next(obj);\n\n this.resolveData(route);\n } catch (error) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxBaseResolver ==',\n error: { error } as any\n });\n }\n\n return of(null);\n }\n\n protected abstract resolveData(route: ActivatedRouteSnapshot): void;\n}\n","import { inject, Injectable, Injector, LOCALE_ID } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { catchError, map, Observable, of } from 'rxjs';\nimport { CACHE_LOCALE_EXPIRATION_MS } from '../enums';\nimport {\n injectTokenWithWarning,\n MECX_BOOTSTRAP_SERVICE,\n MECX_I18N_ALIAS,\n MECX_I18N_PATH\n} from '../injectors';\nimport { MonkeyEcxBootstrapService } from '../interfaces';\nimport { MonkeyEcxService } from '../services';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable()\nexport abstract class MonkeyEcxI18nResolver implements Resolve<boolean> {\n private readonly _injector = inject(Injector);\n\n private readonly _localeId = injectTokenWithWarning(LOCALE_ID, 'LOCALE_ID');\n\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _i18nPath = injectTokenWithWarning<string>(MECX_I18N_PATH, 'MECX_I18N_PATH')!;\n\n private readonly _i18nAlias = injectTokenWithWarning<string>(MECX_I18N_ALIAS, 'MECX_I18N_ALIAS')!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private static _loadedPaths = new Map<string, number>();\n\n constructor() {\n // not to do\n }\n\n resolve(): Observable<boolean> {\n const service = this._injector.get(MonkeyEcxService);\n const locale = this._tokenStorageService.getMe()?.locale || this._localeId;\n const path = this._i18nPath;\n const host = this.getHost();\n\n console.log(this._i18nAlias);\n console.log(this._i18nPath);\n\n const url = [host || '', `assets/${path}/i18n/${locale}.json`].join(host ? '/' : '');\n const cacheKey = `${path}/${locale}`;\n const now = Date.now();\n\n const lastLoaded = MonkeyEcxI18nResolver._loadedPaths.get(cacheKey);\n if (lastLoaded && now - lastLoaded < CACHE_LOCALE_EXPIRATION_MS) {\n return of(true);\n }\n\n return service.get(url).pipe(\n map((translations: any) => {\n this._bootstrapService.handleI18N(locale!, {\n [this._i18nAlias]: translations.data\n });\n MonkeyEcxI18nResolver._loadedPaths.set(cacheKey, now);\n return true;\n }),\n catchError(() => {\n return of(true);\n })\n );\n }\n\n getHost(): string {\n return '';\n }\n}\n","/* eslint-disable no-console */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { MonkeyEcxCachedFile } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxFileCacheService {\n private cache = new Map<string, MonkeyEcxCachedFile>();\n\n private readonly EXPIRATION_MS = 15 * 60 * 1000;\n\n private isExpired(timestamp: number): boolean {\n return Date.now() - timestamp > this.EXPIRATION_MS;\n }\n\n saveFile(filename: string, blob: Blob): void {\n this.cache.set(filename, { filename, blob, timestamp: Date.now() });\n }\n\n hasFile(filename: string): boolean {\n const file = this.cache.get(filename);\n if (!file) return false;\n\n if (this.isExpired(file.timestamp)) {\n this.cache.delete(filename);\n return false;\n }\n\n return true;\n }\n\n getFile(filename: string): MonkeyEcxCachedFile | null {\n const file = this.cache.get(filename);\n if (!file) return null;\n\n if (this.isExpired(file.timestamp)) {\n this.cache.delete(filename);\n return null;\n }\n\n return file;\n }\n\n download(filename: string): void {\n const file = this.getFile(filename);\n if (!file) return;\n\n const url = URL.createObjectURL(file.blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = file.filename;\n a.click();\n URL.revokeObjectURL(url);\n }\n\n deleteFile(filename: string): void {\n this.cache.delete(filename);\n }\n\n clear(): void {\n this.cache.clear();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { MonkeyEcxUtils } from '../../utils/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxDiscoveryParamsService {\n constructor(private router: Router) {\n // not to do\n }\n\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (route.firstChild) {\n return this.getLastChild(route.firstChild);\n }\n\n return route;\n }\n\n public setData(field: string, value: any): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n route.data[field] = value;\n }\n\n public getData(field: string): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\n return found;\n }\n\n public getDataFromCurrentNavigation(field: string, router?: Router): any {\n const navigation = this.router.currentNavigation() || router?.getCurrentNavigation();\n let state: any = null;\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\n state = navigation?.extras.state;\n }\n\n return state ? state[field] : null;\n }\n\n public getParam(param: string): string | null {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\n ? route?.paramMap?.get(param) || ''\n : '';\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\n return found;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './lib/decorators';\nexport * from './lib/directives';\nexport * from './lib/enums';\nexport * from './lib/form-validators';\nexport * from './lib/guards';\nexport * from './lib/injectors';\nexport * from './lib/interceptors';\nexport * from './lib/interfaces';\nexport * from './lib/model';\nexport * from './lib/monkey-front-core.module';\nexport * from './lib/pipes';\nexport * from './lib/providers/service-worker';\nexport * from './lib/resolvers/base.resolver';\nexport * from './lib/resolvers/i18n.resolver';\nexport * from './lib/services/cache/monkeyecx-file-cache.service';\nexport * from './lib/services/config/monkeyecx-configs.service';\nexport * from './lib/services/config/monkeyecx-datadog.service';\nexport * from './lib/services/config/monkeyecx-feature-toggle.service';\nexport * from './lib/services/config/monkeyecx-locale.service';\nexport * from './lib/services/l';\nexport * from './lib/services/logged/monkeyecx-logged-handle.service';\nexport * from './lib/services/monkeyecx.service';\nexport * from './lib/services/routes/monkeyecx-dicovery-params.service';\nexport * from './lib/services/schedule/monkeyecx-schedule.service';\nexport * from './lib/services/store/monkeyecx-store.actions';\nexport * from './lib/services/store/monkeyecx-store.selector';\nexport * from './lib/services/store/monkeyecx-store.service';\nexport * from './lib/services/validation/monkeyecx-validation.service';\nexport * as storage from './lib/storage';\nexport * from './lib/storage/monkeyecx-cookie-storage.service';\nexport * from './lib/storage/monkeyecx-token-storage.service';\nexport * as store from './lib/store';\nexport * from './lib/utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["actions.monkeyecxStorage.clear","actions.monkeyecxStorage.create","actions.monkeyecxStorage.updateData","actions.monkeyecxStorage.updateMe","actions.monkeyecxStorage.updateControl","reducers.fromMonkeyecxStorage.featureKey","selectors.monkeyecxStorage.select","i1","i1.MonkeyEcxTokenStorageService","map","catchError","finalize","reducers.fromMonkeyecxStorage.reducer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AAI6B;AAUvB,SAAU,sBAAsB,CAAI,KAAwB,EAAE,IAAa,EAAA;AAC/E,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,CAAA,wBAAA,EAA2B,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA,kBAAA,CAAoB,CAAC;IACxF;AACA,IAAA,OAAO,KAAK;AACd;MAEa,mBAAmB,GAAG,IAAI,cAAc,CAAS,EAAE;MACnD,gBAAgB,GAAG,IAAI,cAAc,CAAS,EAAE;MAChD,YAAY,GAAG,IAAI,cAAc,CAAS,EAAE;MAC5C,UAAU,GAAG,IAAI,cAAc,CAAS,EAAE;MAC1C,SAAS,GAAG,IAAI,cAAc,CAAS,EAAE;AACtD;;AAEG;MACU,eAAe,GAAG,IAAI,gBAAgB,CAAS,MAAK;AAC/D,IAAA,OAAO,EAAE;AACX,CAAC;AAED;;;;;;;;;;;;;;;;;;;;AAoBG;MACU,sBAAsB,GAAG,IAAI,cAAc,CACtD,2BAA2B;MAGhB,sBAAsB,GAAG,IAAI,cAAc,CAA0B,EAAE;AAEpF;;;;;;;;;;;;AAYG;MACU,2BAA2B,GAAG,IAAI,cAAc,CAC3D,6BAA6B;MAElB,wCAAwC,GACnD,IAAI,cAAc,CAChB,0CAA0C;MAGjC,cAAc,GAAG,IAAI,cAAc,CAAS,gBAAgB;MAC5D,eAAe,GAAG,IAAI,cAAc,CAAS,iBAAiB;;ACnF3E;;;;AAI6B;MAQhB,6BAA6B,CAAA;AAMxC,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAA,CAAA,aAAa,GAAb,aAAa;AALhB,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;;IAIF;IAEO,SAAS,CAAC,IAAY,EAAE,KAAU,EAAA;AACvC,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACvB,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG;AACzB,YAAA,MAAM,aAAa,GAAG,SAAS,GAAG,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,GAAG,EAAE;AACtD,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC;QAClF;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC;QAClE;IACF;AAEO,IAAA,SAAS,CAAC,IAAY,EAAA;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;IACrC;AAEO,IAAA,YAAY,CAAC,IAAY,EAAA;AAC9B,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC3C,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG;AACzB,YAAA,MAAM,aAAa,GAAG,SAAS,GAAG,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,GAAG,EAAE;AACtD,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC;QACnE;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC;QAClE;IACF;8GAnCW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA;;2FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACXD;;;;AAI6B;AAK7B,MAAM,KAAK,GAAG,YAAY,CAAC,+BAA+B,CAAC;AAC3D,MAAM,MAAM,GAAG,YAAY,CACzB,4BAA4B,EAC5B,KAAK,EAAuC,CAC7C;AACD,MAAM,aAAa,GAAG,YAAY,CAChC,oCAAoC,EACpC,KAAK,EAAmC,CACzC;AACD,MAAM,UAAU,GAAG,YAAY,CAC7B,gCAAgC,EAChC,KAAK,EAA8B,CACpC;AACD,MAAM,QAAQ,GAAG,YAAY,CAC3B,+BAA+B,EAC/B,KAAK,EAA6C,CACnD;;;;;;;;;;;ACzBD;;;;AAI6B;;;;;;;ACJ7B;;;;AAI6B;AAGtB,MAAM,aAAa,GAAG,CAAC,IAAc,KAAI;IAC9C,OAAO,CAAC,OAA2B,KAAwB;AACzD,QAAA,OAAO,CAAC,KAAK,EAAE,MAAM,KAAI;YACvB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;AAC3C,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,IAAI,IAAI,GAAQ,IAAI;AACpB,gBAAA,IAAI;oBACF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;oBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;AAEnC,oBAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,wBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAEpD,wBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;4BAC3B,IAAI,KAAK,GAAQ,IAAI;AACrB,4BAAA,IAAI,YAAY,GAAG,GAAG,CAAC,EAAE;AACvB,gCAAA,KAAK,GAAG;AACN,oCAAA,CAAC,GAAG,GAAG,YAAY,GAAG,GAAG;iCAC1B;4BACH;;AAGA,4BAAA,IAAI,GAAG,KAAK,mBAAmB,EAAE;AAC/B,gCAAA,MAAM,SAAS,GAAI,YAAoB,GAAG,GAAG,CAAC;gCAC9C,IAAI,SAAS,EAAE;oCACb,MAAM,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oCAClC,IAAI,EAAE,EAAE;wCACN,MAAM,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC5C,wCAAA,KAAK,GAAG;4CACN,CAAC,GAAG,GAAG;AACL,gDAAA,IAAI,EAAE;AACJ,oDAAA,GAAG;AACJ;AACF;yCACF;oCACH;gCACF;4BACF;AAEA,4BAAA,IAAI,GAAG;AACL,gCAAA,GAAG,IAAI;AACP,gCAAA,GAAG;6BACJ;AACH,wBAAA,CAAC,CAAC;oBACJ;AAEA,oBAAA,OAAO,IAAI;gBACb;gBAAE,OAAO,CAAC,EAAE;AACV,oBAAA,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC;AACrC,oBAAA,OAAO,YAAY;gBACrB;YACF;YAEA,IAAI,IAAI,GAAQ,IAAI;AACpB,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AAC3B,oBAAA,IAAI,GAAG;AACL,wBAAA,GAAG,IAAI;AACP,wBAAA,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG;qBACxB;AACH,gBAAA,CAAC,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACpC,gBAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,oBAAA,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE;YACF;YAAE,OAAO,CAAC,EAAE;AACV,gBAAA,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC;YACvC;AAEA,YAAA,OAAO,YAAY;AACrB,QAAA,CAAC;AACH,IAAA,CAAC;AACH,CAAC;;;;;;;AC/ED;;;;AAI6B;AAKtB,MAAM,UAAU,GAAG,mBAAmB;AAStC,MAAM,YAAY,GAAU;AACjC,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE;AACZ,KAAA;AACD,IAAA,IAAI,EAAE;CACP;AAEM,MAAM,OAAO,GAAG,aAAa,CAClC,YAAY,EACZ,EAAE,CAACA,KAA8B,EAAE,CAAC,KAAU,KAAI;IAChD,OAAO;AACL,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,EAAE;KACP;AACH,CAAC,CAAC,EACF,EAAE,CAACC,MAA+B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAI;IACpD,OAAO;AACL,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;YACjC,GAAG,MAAM,CAAC;AACX;KACF;AACH,CAAC,CAAC,EACF,EAAE,CAACC,UAAmC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAI;IACxD,OAAO;AACL,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;YACjC,GAAG,MAAM,CAAC;AACX;KACF;AACH,CAAC,CAAC,EACF,EAAE,CAACC,QAAiC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAI;IACtD,OAAO;AACL,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;AACjC,YAAA,EAAE,EAAE;AACF,gBAAA,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACxC,GAAG,MAAM,CAAC;AACX;AACF;KACF;AACH,CAAC,CAAC,EACF,EAAE,CAACC,aAAsC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAI;IAC3D,OAAO;AACL,QAAA,GAAG,KAAK;AACR,QAAA,OAAO,EAAE;YACP,GAAG,KAAK,CAAC,OAAO;YAChB,GAAG,MAAM,CAAC;AACX;KACF;AACH,CAAC,CAAC,CACH;;;;;;;;;ACxED;;;;AAI6B;;;;;;;;ACJ7B;;;;AAI6B;AAOtB,MAAM,WAAW,GAAG,qBAAqB,CAC9CC,UAAwC,CACzC;AAEM,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,KAAY,KAAI;IACjE,OAAO,KAAK,CAAC,IAAI;AACnB,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,cAAc,CACtC,WAAW,EACX,CAAC,KAAK,KAAuC,KAAK,CAAC,IAAI,CACxD;AAEM,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,KAAY,KAAS;IAC7E,OAAO,KAAK,CAAC,OAAO;AACtB,CAAC,CAAC;;;;;;;;;;AC1BF;;;;AAI6B;;;;;;;ACJ7B;;;;AAI6B;;;;;;;;;ACJ7B;;;;AAI6B;MAehB,4BAA4B,CAAA;AASvC,IAAA,WAAA,CAAoB,KAAY,EAAA;QAAZ,IAAA,CAAA,KAAK,GAAL,KAAK;AANjB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAQ,IAAI,CAAC;AAEzC,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,eAAe,CAAK,IAAI,CAAC;AAE1B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC;QAG/D,IAAI,CAAC,WAAW,GAAG;AACjB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,YAAY,EAAE;AACZ,gBAAA,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY;AAC7C;SACF;IACH;AAEQ,IAAA,YAAY,CAAC,KAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK;YAAE;AACZ,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;AAC9B,QAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;QAClD;QAEA,KAAK,CAAC,QAAQ,CACZJ,MAA+B,CAAC;AAC9B,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG;AACJ;AACF,SAAA,CAAC,CACH;AAED,QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACpB;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;AACtB,QAAA,IAAI;AACF,YAAA,IAAI,IAAI,GAA8B,KAAK,CAAC,YAAY,CACtDK,MAAiC,CAClC,EAAG;AACJ,YAAA,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;gBAClB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAE;AAChD,gBAAA,IAAI,GAAG;AACL,oBAAA,GAAG,IAAI;oBACP;iBACD;YACH;YAEA,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;YACrD,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC;AAEvD,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAE;gBACxD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAE;AAC1D,gBAAA,IAAI,GAAG;AACL,oBAAA,GAAG,IAAI;oBACP,WAAW;oBACX;iBACD;YACH;AAEA,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAE;AAC1C,gBAAA,IAAI,GAAG;AACL,oBAAA,GAAG,IAAI;oBACP;iBACD;YACH;AAEA,YAAA,MAAM,WAAW,GAAG;AAClB,gBAAA,GAAG,IAAI;gBACP,UAAU;gBACV;aACD;AACD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU;YAC7C,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO,EAAE;gBACrC,WAAW,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK;YAC9C;YACA,OAAO,WAAW,EAAE,EAAE;AAEtB,YAAA,OAAO,WAAwC;QACjD;QAAE,OAAO,CAAC,EAAE;;QAEZ;AACA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,QAAQ,CAAC,EAAM,EAAA;AACrB,QAAA,IAAI,CAAC,EAAE;YAAE;QAET,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBH,QAAiC,CAAC;AAChC,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG;AACJ;AACF,SAAA,CAAC,CACH;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACnB;IAEQ,QAAQ,GAAA;AACd,QAAA,IAAI,IAAI,GAA8B,IAAI,CAAC,KAAK,CAAC,YAAY,CAC3DG,MAAiC,CAClC,EAAG;AAEJ,QAAA,IAAI,WAAW,GAAQ;AACrB,YAAA,GAAG;SACJ;QAED,OAAO,WAAW,EAAE,EAAE;IACxB;IAEO,eAAe,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;IACnC;IAEO,YAAY,GAAA;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,IAAI;IACxC;IAEO,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE;IAC5B;IAEO,KAAK,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;AAEO,IAAA,QAAQ,CAAC,KAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IAC1B;AAEO,IAAA,KAAK,CAAC,EAAmC,EAAA;AAC9C,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnB;AAEO,IAAA,KAAK,CAAC,KAAe,EAAA;AAC1B,QAAA,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI;AACnC,QAAA,IAAI;AACF,YAAA,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACzD,gBAAA,IACE,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,GAAQ,KAAI;oBAC5D,OAAO,GAAG,KAAK,GAAG;AACpB,gBAAA,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC;oBACd,KAAK,KAAK,IAAI,EACd;AACA,oBAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC9B;AACF,YAAA,CAAC,CAAC;AAEF,YAAA,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,YAAA,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC;AACrC,YAAA,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC;YACnC,KAAK,CAAC,QAAQ,CAACN,KAA8B,EAAE,CAAC;QAClD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC;QAClB;AACA,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;AAEA;;AAEG;AACI,IAAA,gBAAgB,CACrB,MAAM,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC,EAAA;AAE7E,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;QACtB,IAAI,GAAG,GAAQ,IAAI;AACnB,QAAA,MAAM,EAAE,OAAO,CAAC,CAAC,GAAW,KAAI;AAC9B,YAAA,GAAG,GAAG;AACJ,gBAAA,GAAG,GAAG;gBACN,CAAC,GAAG,GAAG;aACR;AACD,YAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;AAC9B,QAAA,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC;QACjD,IAAI,QAAQ,EAAE;YACZ,KAAK,CAAC,QAAQ,CACZC,MAA+B,CAAC;AAC9B,gBAAA,IAAI,EAAE;oBACJ,QAAQ;AACR,oBAAA,GAAG;AACJ;AACF,aAAA,CAAC,CACH;QACH;IACF;8GA3MW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAM,IAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA;;2FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;AClBD;;;;AAI6B;;;;;;;;MCJhB,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG;;ACApD;;;;AAI6B;AAC7B;AACA;IACY;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,gBAAsB;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,oBAA2B;AAC3B,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,WAAkB;AAClB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,YAAmB;AACnB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,eAAsB;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,cAAqB;AACrB,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,YAAkB;AACpB,CAAC,EARW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;;ACPxB;;;;AAI6B;;ACJ7B;AACA;AACA;;;;AAI6B;MA0BhB,cAAc,CAAA;IACzB,OAAO,yBAAyB,CAAC,EAAO,EAAA;QACtC,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE;IACrD;AAEA,IAAA,OAAO,eAAe,CAAC,GAAW,EAAE,OAAgB,EAAA;AAClD,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,EAAE;QACnB,IAAI,OAAO,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK;QAClC,IAAI,OAAO,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK;QAClC,IAAI,OAAO,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK;AAClC,QAAA,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,GAAG,KAAK,GAAG,MAAM;IAC1C;AAEA,IAAA,OAAO,eAAe,CAAC,IAAkB,EAAE,OAAO,GAAG,EAAE,EAAA;QACrD,OAAO;AACL,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,GAAG;gBACrB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,EAAE,EAAE,GAAG,YAAY,CAAC,GAAG,CAAA,EAAA,EAAK,YAAY,CAAC,IAAI,CAAA;AAC9C,aAAA;AACD,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,IAAI;gBACtB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,CAAA,EAAA,EAAK,YAAY,CAAC,IAAI,CAAA;AAC/C,aAAA;AACD,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,IAAI;gBACtB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,CAAA,EAAA,EAAK,YAAY,CAAC,IAAI,CAAA;AAC/C,aAAA;AACD,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,GAAG;gBACrB,IAAI,EAAE,YAAY,CAAC,GAAG;gBACtB,EAAE,EAAE,YAAY,CAAC;AAClB;SACF,CAAC,OAAO,CAAC,WAAW,EAAiB,CAAC,GAAG,IAAI,CAAC;IACjD;AAEA,IAAA,OAAO,sBAAsB,CAAC,IAAkB,EAAE,OAAO,GAAG,EAAE,EAAA;QAC5D,OAAO;AACL,YAAA,EAAE,EAAE;AACF,gBAAA,GAAG,EAAE,gBAAgB;AACrB,gBAAA,IAAI,EAAE;AACP,aAAA;AACD,YAAA,EAAE,EAAE;AACF,gBAAA,GAAG,EAAE,WAAW;AAChB,gBAAA,IAAI,EAAE;AACP,aAAA;AACD,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,IAAI;gBACtB,IAAI,EAAE,YAAY,CAAC;AACpB,aAAA;AACD,YAAA,EAAE,EAAE;gBACF,GAAG,EAAE,YAAY,CAAC,GAAG;gBACrB,IAAI,EAAE,YAAY,CAAC;AACpB;SACF,CAAC,OAAO,CAAC,WAAW,EAAiB,CAAC,GAAG,IAAI,CAAC;IACjD;AAEA,IAAA,OAAO,sBAAsB,CAAC,GAAW,EAAE,QAAkB,EAAE,OAAgB,EAAA;AAC7E,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,GAAG;QACpB,IAAI,QAAQ,GAAW,EAAE;AACzB,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,kCAAkC,EAAE,aAAa,CAAC;YACzE,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE;QACtB;AACA,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC;YACnD,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE;QACtB;AACA,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;AACrB,YAAA,QAAQ,GAAG;AACR,iBAAA,OAAO,CAAC,cAAc,EAAE,OAAO;AAC/B,iBAAA,OAAO,CAAC,uBAAuB,EAAE,UAAU;AAC3C,iBAAA,OAAO,CAAC,eAAe,EAAE,QAAQ;AACjC,iBAAA,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC;QACpC;aAAO;AACL,YAAA,QAAQ,GAAG;AACR,iBAAA,OAAO,CAAC,cAAc,EAAE,OAAO;AAC/B,iBAAA,OAAO,CAAC,uBAAuB,EAAE,UAAU;AAC3C,iBAAA,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC;QACvC;QAEA,OAAO,CAAA,EAAG,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,GAAG,EAAE,CAAA,CAAA,EAAI,QAAQ,EAAE;IACzE;AAEA,IAAA,OAAO,gBAAgB,CAAC,KAAa,EAAE,KAAa,OAAO,EAAA;QACzD,MAAM,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC;QAEvC,IAAI,EAAE,KAAK,OAAO;AAAE,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC;AACnC,QAAA,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;IAClD;IAEA,OAAO,cAAc,CAAC,QAAa,EAAA;QACjC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAEzC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACzE,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,KAAK;AAE1B,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE;YAC1B,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAC;YAC3D,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;AAChD,gBAAA,OAAO,KAAK;YACd;YACA,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAC;YAC5D,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;AACjD,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,OAAO,IAAI;QACb;AACA,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACpD,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAC;YAC5D,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;AAChD,gBAAA,OAAO,KAAK;YACd;YAEA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAC;YAC7D,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;AAChD,gBAAA,OAAO,KAAK;YACd;AAEA,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,KAAK;IACd;IAEO,OAAO,UAAU,CAAC,QAAgB,EAAA;QACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK;QACzD,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AAEzD,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK;AAE5C,QAAA,MAAM,MAAM,GAAG,CAAC,GAAW,KAAI;AAC7B,YAAA,MAAM,KAAK,GAAW,CAAA,EAAG,GAAG,EAAE;YAC9B,IAAI,GAAG,GAAG,CAAC;YACX,IAAI,IAAI,GAAG,CAAC;AAEZ,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,gBAAA,MAAM,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE3D,GAAG,IAAI,KAAK;AAEZ,gBAAA,IAAI,IAAI,GAAG,CAAC,EAAE;oBACZ,IAAI,IAAI,CAAC;gBACX;qBAAO;oBACL,IAAI,GAAG,CAAC;gBACV;YACF;YAEA,MAAM,UAAU,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;YAClC,IAAI,UAAU,KAAK,EAAE;AAAE,gBAAA,OAAO,GAAG;YACjC,IAAI,UAAU,KAAK,EAAE;AAAE,gBAAA,OAAO,GAAG;YACjC,OAAO,CAAA,EAAG,UAAU,CAAA,CAAE;AACxB,QAAA,CAAC;QAED,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,QAAA,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAEnD,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;QAC1B,OAAO,MAAM,KAAK,GAAG;IACvB;IAEO,OAAO,UAAU,CAAC,GAAW,EAAA;AAClC,QAAA,MAAM,UAAU,GAAG,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE;AAEhD,QAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,aAAa,GAAG;YACpB,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ;SACD;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzC,OAAO,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7C;IAEO,OAAO,UAAU,CAAC,QAAgB,EAAA;QACvC,MAAM,UAAU,GAAG,4CAA4C;AAC/D,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,aAAa,EAAE,SAAS;AACxB,YAAA,aAAa,EAAE;SAChB;AACD,QAAA,MAAM,eAAe,GAAG;YACtB,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN;SACD;AAED,QAAA,MAAM,UAAU,GAEZ;AACF,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,CAAC,EAAE,EAAE;AACL,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,CAAC,EAAE;SACJ;AAED,QAAA,MAAM,QAAQ,GAAG,CAAC,GAAW,KAAI;AAC/B,YAAA,OAAO;iBACJ,KAAK,CAAC,EAAE;AACR,iBAAA,OAAO;iBACP,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,KAAI;AACvB,gBAAA,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC;gBACnB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,gBAAA,OAAO,GAAG,GAAG,KAAK,GAAG,KAAK;YAC5B,CAAC,EAAE,CAAC,CAAC;AACT,QAAA,CAAC;AAED,QAAA,MAAM,UAAU,GAAG,CAAC,GAAW,KAAI;YACjC,OAAO,MAAM,CAAC,GAAG;AACd,iBAAA,IAAI;AACJ,iBAAA,WAAW;AACX,iBAAA,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;AACnC,QAAA,CAAC;AAED,QAAA,MAAM,YAAY,GAAG,CAAC,GAAW,KAAI;AACnC,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/B,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;;YAElD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/B,QAAA,CAAC;AAED,QAAA,MAAM,yBAAyB,GAAG,CAAC,GAAW,KAAI;YAChD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3B,YAAA,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,EAAE,GAAG,IAAI,GAAG,CAAA,CAAE,GAAG,GAAG;YAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC5B,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;YAChC,IAAI,GAAG,KAAK,EAAE;gBAAE,OAAO,KAAK,KAAK,GAAG;YACpC,IAAI,GAAG,KAAK,EAAE;gBAAE,OAAO,KAAK,KAAK,GAAG;AACpC,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK;AAC9B,QAAA,CAAC;AAED,QAAA,MAAM,aAAa,GAAG,CAAC,GAAW,KAAI;YACpC,OAAO,GAAG,IAAI,aAAa;AAC7B,QAAA,CAAC;AAED,QAAA,MAAM,iBAAiB,GAAG,CAAC,GAAW,KAAI;AACxC,YAAA,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACtC,YAAA,OAAO,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC;AACzC,QAAA,CAAC;AAED,QAAA,IAAI;AACF,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC;YAElC,IAAI,aAAa,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK;YACtC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7C,YAAA,IAAI,CAAC,cAAc;AAAE,gBAAA,OAAO,KAAK;AACjC,YAAA,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;AACxC,YAAA,IAAI,CAAC,YAAY;AAAE,gBAAA,OAAO,KAAK;AAC/B,YAAA,MAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC;AACtD,YAAA,IAAI,CAAC,aAAa;AAAE,gBAAA,OAAO,KAAK;YAChC,IAAI,iBAAiB,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK;AAE1C,YAAA,OAAO,IAAI;QACb;QAAE,OAAO,CAAC,EAAE;;QAEZ;AAEA,QAAA,OAAO,KAAK;IACd;IAEA,OAAO,UAAU,CAAC,GAAW,EAAA;QAC3B,MAAM,KAAK,GACT,8IAA8I;AAChJ,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACxB;AAEA,IAAA,OAAO,cAAc,CAAC,OAAe,EAAE,OAAgB,EAAA;AACrD,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE;AACL,SAAA,CAAC,OAAO,IAAI,IAAI,CAAC;AAElB,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA,CAAE,CAAC,MAAM,KAAK,MAAM;IAC/D;IAEA,OAAO,YAAY,CAAC,KAAa,EAAA;QAC/B,OAAO,kCAAkC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC7D;AAEA,IAAA,OAAO,eAAe,CAAC,GAAW,EAAE,OAAgB,EAAA;AAClD,QAAA,OAAO,GAAG,OAAO,IAAI,gEAAgE;AAErF,QAAA,MAAM,YAAY,GAAW,IAAI,KAAK,CAAC,GAAG;aACvC,IAAI,CAAC,GAAG;aACR,GAAG,CAAC,MAAK;AACR,YAAA,OAAO,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACpE,QAAA,CAAC;aACA,IAAI,CAAC,EAAE,CAAC;AACX,QAAA,OAAO,YAAY;IACrB;IAEA,OAAO,iBAAiB,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;QACvB,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IACrC;IAEA,OAAO,sBAAsB,CAAC,KAAU,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;IAC3C;IAEA,OAAO,UAAU,CAAC,KAAa,EAAA;AAC7B,QAAA,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IAC5D;IAEA,OAAO,aAAa,CAAC,OAAe,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,OAAO;QAC5B,MAAM,QAAQ,GAAW;AACtB,aAAA,OAAO,CAAC,cAAc,EAAE,OAAO;AAC/B,aAAA,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC;QAErC,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE;IACtB;IAEA,OAAO,cAAc,CAAC,IAAY,EAAA;QAChC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC;AACT,QAAA,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE;YAC1B,IAAI,IAAI,IAAI;QACd;QACA,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA,CAAA,EAAI,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE;IAClE;IAEA,OAAO,OAAO,CAAC,IAAW,EAAA;AACxB,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACvC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACjB,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;QAChB;AACA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,cAAc,CAAC,OAAY,EAAE,QAAgB,EAAE,QAAgB,EAAA;AACpE,QAAA,SAAS,UAAU,CAAC,OAAY,EAAE,QAAgB,EAAA;YAChD,MAAM,CAAC,GAAG,OAAO;AACjB,YAAA,CAAC,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE;AAC/B,YAAA,CAAC,CAAC,IAAI,GAAG,QAAQ;AACjB,YAAA,OAAO,CAAC;QACV;AAEA,QAAA,IAAI,IAAS;AACb,QAAA,IAAI,CAAE,SAAiB,CAAC,UAAU,EAAE;YAClC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE;AACnC,gBAAA,IAAI,EAAE;AACP,aAAA,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AACzB,gBAAA,IAAI,EAAE;AACP,aAAA,CAAC;AACF,YAAA,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC;QACnC;AACA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,QAAQ,CAAC,IAAY,EAAE,YAAoB,EAAE,EAAA;QAClD,MAAM,OAAO,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,OAAO;AACzB,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;AAAE,YAAA,OAAO,IAAI;QAEjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC;AAEpC,QAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;IACtE;AAEA,IAAA,OAAO,WAAW,GAAA;QAChB,IAAI,CAAC,MAAM,EAAE,QAAQ;AAAE,YAAA,OAAO,KAAK;AACnC,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ;AAChC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;QACvB,OAAO,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IACvC;IAEA,OAAO,YAAY,CAAC,QAAgB,EAAA;AAClC,QAAA,MAAM,WAAW,GAAW,MAAM,CAAC,QAAQ,CAAC,MAAM;AAClD,QAAA,OAAO,CAAC,WAAW,IAAI,EAAE,MAAM,QAAQ;IACzC;AAEA,IAAA,OAAO,gBAAgB,CAAC,IAAY,EAAE,GAAQ,EAAA;QAC5C,IAAI,OAAO,GAAG,IAAI;AAClB,QAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC3C,YAAA,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAA,CAAE,CAAC;AACpE,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,OAAO,gBAAgB,CAAC,GAAQ,EAAE,MAAgB,EAAA;QAChD,IAAI,GAAG,GAAG,GAAG;QACb,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC,QAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACvC,YAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACzB,gBAAA,GAAG,GAAG;AACJ,oBAAA,GAAG,GAAG;oBACN,CAAC,GAAG,GAAG,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC,IAAI;iBACvB;YACH;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,GAAG;IACZ;IAEA,OAAO,cAAc,CAAC,MAAc,EAAA;QAClC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACxC,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;AACjC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACvC;QACA,OAAO,KAAK,CAAC,MAAM;IACrB;AAEA,IAAA,OAAO,WAAW,CAAC,UAAkB,EAAE,OAAkB,EAAA;QACvD,OAAO,GAAG,OAAO,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AAE/D,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;AAExD,YAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACvB,gBAAA,OAAO,IAAI;YACb;QACF;AAEA,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,OAAO,eAAe,CAAC,IAAS,EAAE,KAAa,EAAA;AAC7C,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI;AAC1B,QAAA,OAAO,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI;IAC5C;AAEA,IAAA,OAAO,iBAAiB,CAAC,IAAuB,EAAE,QAAiB,EAAA;AACjE,QAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI;QAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC/C,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAC7D,IAAI,kBAAkB,EAAE;AACtB,YAAA,QAAQ,GAAG;AACR,iBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACZ,iBAAA,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AACnB,iBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACZ,iBAAA,IAAI;AACJ,iBAAA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACtB;QAEA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;YAC5B,IAAI,EAAE,CAAA,EAAG,WAAW,CAAA;AACrB,SAAA,CAAC;QAEF,OAAO;YACL,QAAQ;YACR,IAAI;YACJ;SACD;IACH;AACD;MAEY,aAAa,CAAA;IACxB,OAAO,GAAG,CAAC,MAAiB,EAAA;AAC1B,QAAA,IAAI;YACF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM;AAChD,YAAA,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QAC9D;QAAE,OAAO,CAAC,EAAE;;QAEZ;IACF;AACD;;ACxpBD;;;;AAI6B;;ACJ7B;;;;AAI6B;MAQhB,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAA4B,IAAI,CAAC;AAElE,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAA6B,IAAI,CAAC;AAEpE,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAA6B,IAAI,CAAC;AAiDtF,IAAA;AA/CC,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;IACxC;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK;IAC/B;IAEA,IAAI,SAAS,CAAC,IAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;IACzC;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK;IAChC;IAEA,IAAI,UAAU,CAAC,IAAyB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;IACzC;IAEA,IAAI,UAAU,CAAC,IAAyB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B;AAEA,IAAA,kBAAkB,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI;AACF,YAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW;YAClC,IAAI,KAAK,EAAE;AACT,gBAAA,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK;AACpC,gBAAA,IAAI,GAAG,IAAI,kBAAkB,IAAI,EAAE,EAAE;AACnC,oBAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC;gBAChC;YACF;QACF;QAAE,OAAO,CAAC,EAAE;;QAEZ;AAEA,QAAA,OAAO,IAAI;IACb;8GArDW,uBAAuB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACXD;;;;AAI6B;AAC7B;AACA;AAKA,MAAM,SAAS,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAuD,KAAI;IAChG,IAAI,SAAS,EAAE;AACb,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;IAE7B,OAAO,GAAG,GAAG,GAAG;AAClB,CAAC;MAKY,sBAAsB,CAAA;AAHnC,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAoJlE,IAAA;AAlJS,IAAA,WAAW,CAAC,MAAsB,EAAA;QACxC,MAAM,kBAAkB,GAAG,CAAC,GAAQ,EAAE,IAAS,EAAE,MAAM,GAAG,EAAE,KAAI;YAC9D,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACtC,YAAA,IAAI,IAAI;AAAE,gBAAA,EAAE,CAAC,SAAS,GAAG,IAAI;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/B,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAE,IAAS,EAAE,MAAM,GAAG,EAAE,KAAI;YACzD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACtC,YAAA,IAAI,IAAI;AAAE,gBAAA,EAAE,CAAC,WAAW,GAAG,IAAI;YAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/B,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;AAED,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AACzC,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,eAAe,EAAE,wBAAwB;AACzC,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,MAAM,EAAE;AACT,SAAA,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AAC1C,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,eAAe,EAAE,MAAM;AACvB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,SAAS,EAAE,wCAAwC;AACnD,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,MAAM,EAAE;AACT,SAAA,CAAC;AAEF,QAAA,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AAC9C,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,eAAe,EAAE,CAAA,IAAA,EAAO,MAAM,CAAC,GAAG,CAAA,CAAA,CAAG;AACrC,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,kBAAkB,EAAE,QAAQ;AAC5B,YAAA,YAAY,EAAE;AACf,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;QAElC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE;AACjD,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,OAAO,EAAE;AACV,SAAA,CAAC;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;AACxD,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;QAEF,IAAI,YAAY,GAAuB,IAAI;AAC3C,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,YAAY,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE;AAC3D,gBAAA,YAAY,EAAE,MAAM;AACpB,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,eAAe,EAAE,SAAS;AAC1B,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,SAAS,EAAE,2BAA2B;AACtC,gBAAA,UAAU,EAAE;AACb,aAAA,CAAC;AAEF,YAAA,YAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAK;AAC/C,gBAAA,YAAa,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS;AACjD,YAAA,CAAC,CAAC;AACF,YAAA,YAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAK;AAC9C,gBAAA,YAAa,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS;AACjD,YAAA,CAAC,CAAC;AAEF,YAAA,YAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;gBAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;AAC5C,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE;AAC/C,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;AAEF,QAAA,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAK;AAC7C,YAAA,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AAClC,QAAA,CAAC,CAAC;AAEF,QAAA,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAK;AAC5C,YAAA,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AAClC,QAAA,CAAC,CAAC;AAEF,QAAA,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;AACzC,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACpC,QAAA,CAAC,CAAC;AAEF,QAAA,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC;AACjC,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AAC5B,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,YAAY;AAAE,YAAA,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;AACpD,QAAA,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC7B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IACpC;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU;AACjD,QAAA,IAAI,CAAC,UAAU;YAAE;AAEjB,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU;QAE5B,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK;YACpC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE;AACtC,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzB;QACF;IACF;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;IACzB;8GApJW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACxBD;;;;AAI6B;AAE7B;AACA;MAWa,uBAAuB,CAAA;AA+GlC,IAAA,WAAA,GAAA;AA9GiB,QAAA,IAAA,CAAA,SAAS,GAAG,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAE;AAE3D,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAE3D,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAEhC,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAA+C;AAC1F,YAAA,OAAO,EAAE;AACP,gBAAA,kBAAkB,EAAE,CAAA;AACuM,gOAAA,CAAA;AAC3N,gBAAA,KAAK,EAAE;AACL,oBAAA,KAAK,EAAE,wBAAwB;AAC/B,oBAAA,WAAW,EAAE,2BAA2B;AACxC,oBAAA,OAAO,EACL,gGAAgG;AAClG,oBAAA,MAAM,EAAE;AACT,iBAAA;AACD,gBAAA,WAAW,EAAE;AACX,oBAAA,KAAK,EAAE,yBAAyB;AAChC,oBAAA,WAAW,EACT,mIAAmI;AACrI,oBAAA,MAAM,EAAE;AACT,iBAAA;AACD,gBAAA,aAAa,EAAE,qDAAqD;AACpE,gBAAA,iBAAiB,EAAE,qEAAqE;AACxF,gBAAA,kBAAkB,EAChB,kFAAkF;AACpF,gBAAA,eAAe,EAAE;AACf,oBAAA,KAAK,EAAE,oBAAoB;AAC3B,oBAAA,kBAAkB,EAAE,CAAA,kDAAA;AACrB;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,kBAAkB,EAAE,CAAA;AACuL,gNAAA,CAAA;AAC3M,gBAAA,KAAK,EAAE;AACL,oBAAA,KAAK,EAAE,0BAA0B;AACjC,oBAAA,WAAW,EAAE,0BAA0B;AACvC,oBAAA,OAAO,EACL,wGAAwG;AAC1G,oBAAA,MAAM,EAAE;AACT,iBAAA;AACD,gBAAA,WAAW,EAAE;AACX,oBAAA,KAAK,EAAE,wBAAwB;AAC/B,oBAAA,WAAW,EACT,kIAAkI;AACpI,oBAAA,MAAM,EAAE;AACT,iBAAA;AACD,gBAAA,aAAa,EAAE,2DAA2D;AAC1E,gBAAA,iBAAiB,EACf,kFAAkF;AACpF,gBAAA,kBAAkB,EAChB,qFAAqF;AACvF,gBAAA,eAAe,EAAE;AACf,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,kBAAkB,EAAE;AACrB;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,kBAAkB,EAAE,CAAA;AACuL,gNAAA,CAAA;AAC3M,gBAAA,KAAK,EAAE;AACL,oBAAA,KAAK,EAAE,0BAA0B;AACjC,oBAAA,WAAW,EAAE,0BAA0B;AACvC,oBAAA,OAAO,EACL,wGAAwG;AAC1G,oBAAA,MAAM,EAAE;AACT,iBAAA;AACD,gBAAA,WAAW,EAAE;AACX,oBAAA,KAAK,EAAE,wBAAwB;AAC/B,oBAAA,WAAW,EACT,kIAAkI;AACpI,oBAAA,MAAM,EAAE;AACT,iBAAA;AACD,gBAAA,aAAa,EAAE,2DAA2D;AAC1E,gBAAA,iBAAiB,EACf,kFAAkF;AACpF,gBAAA,kBAAkB,EAChB,qFAAqF;AACvF,gBAAA,eAAe,EAAE;AACf,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,kBAAkB,EAAE;AACrB;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,kBAAkB,EAAE,CAAA;AAC0L,mNAAA,CAAA;AAC9M,gBAAA,KAAK,EAAE;AACL,oBAAA,KAAK,EAAE,kBAAkB;AACzB,oBAAA,WAAW,EAAE,4BAA4B;AACzC,oBAAA,OAAO,EACL,qFAAqF;AACvF,oBAAA,MAAM,EAAE;AACT,iBAAA;AACD,gBAAA,WAAW,EAAE;AACX,oBAAA,KAAK,EAAE,uBAAuB;AAC9B,oBAAA,WAAW,EACT,uIAAuI;AACzI,oBAAA,MAAM,EAAE;AACT,iBAAA;AACD,gBAAA,aAAa,EAAE,8CAA8C;AAC7D,gBAAA,iBAAiB,EAAE,iEAAiE;AACpF,gBAAA,kBAAkB,EAAE,mEAAmE;AACvF,gBAAA,eAAe,EAAE;AACf,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,kBAAkB,EAAE;AACrB;AACF;AACF,SAAA,CAAC;AAGA,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACvE,QAAA,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC3E,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACjC,QAAA,CAAC,CAAC;IACJ;IAEQ,SAAS,GAAA;QACf,MAAM,EAAE,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAG;QACrE,OAAO,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO;IAChD;AAEQ,IAAA,mBAAmB,CAAC,KAAa,EAAA;AACvC,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACrC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;AAErC,YAAA,MAAM,OAAO,GAAG;AACd,gBAAA,GAAG,WAAW;gBACd,CAAC,MAAM,GAAG;oBACR,GAAG,WAAW,CAAC,MAAM,CAAC;AACtB,oBAAA,GAAG;AACJ;aACF;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3B;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA,CAAE,CAAC;QACxE;IACF;AAEA,IAAA,GAAG,CAAC,GAAW,EAAA;AACb,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,GAAG,CAAC,CAAC,IAAI,KAAI;YACX,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI;QACpC,CAAC,CAAC,CACH;IACH;8GAtJW,uBAAuB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACjBD;;;;AAI6B;;ACJ7B;;;;AAI6B;AAC7B;MAQa,+BAA+B,CAAA;AAH5C,IAAA,WAAA,GAAA;QAIW,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAiC9E,IAAA;AA/BS,IAAA,MAAM,gBAAgB,GAAA;QAC5B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD,QAAA,OAAO,CAAC,GAAG,CACT,CAAA,EAAA,EAAK,IAAI,EAAE,EACX;;;;;;AAML,CAAA,CACI;QAED,OAAO,CAAC,GAAG,CACT,IAAI;YACF,2DAA2D;YAC3D,2DAA2D;YAC3D,2DAA2D;YAC3D,2DAA2D;YAC3D,2DAA2D;YAC3D,2DAA2D,EAE7D,yDAAyD,CAC1D;IACH;IAEO,KAAK,GAAA;QACV,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,gBAAgB,EAAE;QACzB,CAAC,EAAE,GAAG,CAAC;IACT;8GAjCW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF9B,MAAM,EAAA,CAAA,CAAA;;2FAEP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACZD;;;;AAI6B;AAC7B;MAYa,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;QAIU,IAAA,CAAA,OAAO,GAAG,KAAK;AAEN,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAEhD,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;AAEe,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAsF7E,IAAA;IApFS,gBAAgB,GAAA;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACnD,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,cAAc;AACzC,QAAA,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,UAAU;YAAE;AACjB,QAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU;AACpC,QAAA,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK;AAC5B,QAAA,MAAM,GAAG,GAAG,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAA,EAAI,WAAW,CAAC,WAAW,CAAA,CAAE,CAAC,WAAW,EAAE;QAE5E,IACE,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,oBAAoB;YACjC,WAAW,CAAC,WAAW,KAAK,KAAK;AACjC,YAAA,CAAC,IAAI,CAAC,OAAO,EACb;YACA,UAAU,CAAC,IAAI,CAAC;gBACd,aAAa,EAAE,WAAW,EAAE,oBAAoB;gBAChD,WAAW,EAAE,WAAW,EAAE,kBAAkB;gBAC5C,OAAO,EAAE,OAAO,EAAE,KAAK;AACvB,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,iBAAiB,EAAE,GAAG;AACtB,gBAAA,uBAAuB,EAAE,GAAG;gBAC5B,GAAG;gBACH,OAAO,EAAE,SAAS,EAAE,OAAO;AAC3B,gBAAA,4BAA4B,EAAE,IAAI;AAClC,gBAAA,sBAAsB,EAAE,IAAI;AAC5B,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,qBAAqB,EAAE,IAAI;AAC3B,gBAAA,mBAAmB,EAAE;AACtB,aAAA,CAAC;YACF,UAAU,CAAC,2BAA2B,EAAE;AAExC,YAAA,IAAI,WAAW,CAAC,wBAAwB,EAAE;gBACxC,WAAW,CAAC,IAAI,CAAC;oBACf,WAAW,EAAE,WAAW,EAAE,kBAAkB;oBAC5C,OAAO,EAAE,OAAO,EAAE,KAAK;AACvB,oBAAA,IAAI,EAAE,eAAe;oBACrB,GAAG;oBACH,OAAO,EAAE,SAAS,EAAE,OAAO;AAC3B,oBAAA,4BAA4B,EAAE,IAAI;AAClC,oBAAA,sBAAsB,EAAE,IAAI;AAC5B,oBAAA,mBAAmB,EAAE,IAAI;AACzB,oBAAA,iBAAiB,EAAE,GAAG;AACtB,oBAAA,kBAAkB,EAAE;AACrB,iBAAA,CAAC;YACJ;AAEA,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YAEnB,IAAI,CAAC,kBAAkB,EAAE;QAC3B;IACF;AAEQ,IAAA,MAAM,kBAAkB,GAAA;AAC9B,QAAA,IAAI;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;AAClD,YAAA,IAAI,CAAC,KAAK;gBAAE;YAEZ,IAAI,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,oBAAoB,EAAE;gBACzD,MAAM,EAAE,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAG;AAErE,gBAAA,MAAM,IAAI,GAAG;oBACX,EAAE,EAAE,KAAK,CAAC,QAAQ;oBAClB,KAAK,EAAE,KAAK,CAAC,QAAQ;oBACrB,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,MAAM,EAAE,EAAE,CAAC;iBACZ;AAED,gBAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;AAExB,gBAAA,IAAI,WAAW,CAAC,wBAAwB,EAAE;AACxC,oBAAA,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC3B;YACF;QACF;QAAE,OAAO,CAAC,EAAE;;QAEZ;IACF;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;IACzB;8GA/FW,uBAAuB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;AChBD;;;;AAI6B;AAC7B;MASa,qBAAqB,CAAA;AAHlC,IAAA,WAAA,GAAA;QAImB,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AA+I5E,IAAA;IA7IS,MAAM,gBAAgB,CAAC,CAAM,EAAA;QACnC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;QAEnD,IAAI,YAAY,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,YAAY,iBAAiB,EAAE;AAClC,YAAA,YAAY,GAAG,CAAA,EAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE;QAC1D;AAAO,aAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YAChC,YAAY,GAAG,CAAW;QAC5B;QAEA,MAAM,kBAAkB,GAAG,CAAC,GAAQ,EAAE,IAAS,EAAE,MAAM,GAAG,EAAE,KAAI;YAC9D,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACtC,YAAA,IAAI,IAAI;AAAE,gBAAA,EAAE,CAAC,SAAS,GAAG,IAAI;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/B,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAE,IAAS,EAAE,MAAM,GAAG,EAAE,KAAI;YACzD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACtC,YAAA,IAAI,IAAI;AAAE,gBAAA,EAAE,CAAC,WAAW,GAAG,IAAI;YAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/B,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;AAED,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AACzC,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,eAAe,EAAE,wBAAwB;AACzC,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,MAAM,EAAE;AACT,SAAA,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AAC1C,YAAA,eAAe,EAAE,MAAM;AACvB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,SAAS,EAAE,4BAA4B;AACvC,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,MAAM,EAAE;AACT,SAAA,CAAC;AAEF,QAAA,MAAM,OAAO,GAAG;;;;;;;;;CASnB;QAEG,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACnD,QAAA,aAAa,CAAC,SAAS,GAAG,OAAO;AACjC,QAAA,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;AAClC,QAAA,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC;QAEnC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;AAC/C,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;QAEF,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,WAAW,CAAC,EAAE;AACxD,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;QAEF,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE;AAC/C,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;QAEF,IAAI,QAAQ,GAAG,IAAI;QACnB,IAAI,YAAY,EAAE;AAChB,YAAA,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE;AACjD,gBAAA,eAAe,EAAE,SAAS;AAC1B,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,MAAM,EAAE,mBAAmB;AAC3B,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,MAAM;AAChB,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,SAAS,EAAE,OAAO;AAClB,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,SAAS,EAAE;AACZ,aAAA,CAAC;QACJ;QAEA,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;AAC1D,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,OAAO,EAAE,WAAW;AACpB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,eAAe,EAAE,SAAS;AAC1B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,SAAS,EAAE,2BAA2B;AACtC,YAAA,UAAU,EAAE,4BAA4B;AACxC,YAAA,aAAa,EAAE;AAChB,SAAA,CAAC;AAEF,QAAA,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAK;AAChD,YAAA,cAAc,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS;AAClD,QAAA,CAAC,CAAC;AACF,QAAA,cAAc,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAK;AAC/C,YAAA,cAAc,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS;AAClD,QAAA,CAAC,CAAC;AAEF,QAAA,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;AAC5C,YAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC5B,QAAA,CAAC,CAAC;AAEF,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AAC5B,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,QAAQ;AAAE,YAAA,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC5C,QAAA,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;AAC7B,QAAA,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC;AACpC,QAAA,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC7B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IACpC;AAEO,IAAA,KAAK,CAAC,CAAO,EAAA;AAClB,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1B;8GA/IW,qBAAqB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACbD;;;;AAI6B;AAC7B;MAWa,6BAA6B,CAAA;AAH1C,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;AAEe,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAEhD,QAAA,IAAA,CAAA,aAAa,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC;QAExE,IAAA,CAAA,SAAS,GAA6B,IAAI;AA6DnD,IAAA;AA3DS,IAAA,MAAM,gBAAgB,CAC5B,YAAoB,EACpB,UAA+B,EAAA;QAE/B,MAAM,KAAK,GAAG,wBAAwB;AACtC,QAAA,MAAM,IAAI,GAAG;YACX,KAAK;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,GAAG,EAAE,CAAA,EAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC,WAAW;SACzD;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,IAAI;gBACF,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE;AACvD,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,UAAU,EAAE;AACb,iBAAA,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC9B,oBAAA,OAAO,EAAE;AACX,gBAAA,CAAC,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAI;AAClC,oBAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC;AAC5D,oBAAA,OAAO,EAAE;AACX,gBAAA,CAAC,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAI;AACjC,oBAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC;AAC7D,gBAAA,CAAC,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAK;AAC/B,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,gBAAA,CAAC,CAAC;YACJ;YAAE,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,EAAE;YACX;AACF,QAAA,CAAC,CAAC;IACJ;IAEO,OAAO,CAAc,QAAgB,EAAE,YAAe,EAAA;AAC3D,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC;AAC5F,YAAA,OAAO,YAAY;QACrB;QAEA,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC;IACzD;AAEA,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;IAC1C;AAEO,IAAA,MAAM,KAAK,GAAA;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACnD,QAAA,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,UAAU;YAAE;QACjB,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,wBAAwB,EAAE,UAAU,CAAC;IAC/E;8GAtEW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA;;2FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACfD;;;;AAI6B;AAC7B;AACA;MASa,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;AAuCH,IAAA;AArCS,IAAA,MAAM,gBAAgB,GAAA;AAC5B,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC3C,YAAA,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG;AACnB,YAAA,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;YAE3D,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,KAAK,KAAK;gBAAE;YAEnD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE;AACzC,YAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACpB,gBAAA,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AACjC,gBAAA,KAAK,EAAE;AACR,aAAA,CAAC;YACF,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;YAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,YAAA,MAAM,CAAC,KAAK,GAAG,IAAI;AACnB,YAAA,MAAM,CAAC,GAAG,GAAG,CAAA,+CAAA,EAAkD,GAAG,EAAE;AACpE,YAAA,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC;YAEzB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;YAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;YACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,YAAA,MAAM,CAAC,GAAG,GAAG,CAAA,gDAAA,EAAmD,GAAG,EAAE;AACrE,YAAA,MAAM,CAAC,MAAM,GAAG,GAAG;AACnB,YAAA,MAAM,CAAC,KAAK,GAAG,GAAG;AAClB,YAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC7B,YAAA,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AAClC,YAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AAC5B,YAAA,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;QAC7B;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC;QAChE;IACF;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;IACzB;8GA1CW,mBAAmB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;2FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACdD;;;;AAI6B;AAC7B;AACA;MASa,0BAA0B,CAAA;AAHvC,IAAA,WAAA,GAAA;QAImB,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;AAEhE,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;QAE1D,IAAA,CAAA,OAAO,GAAG,KAAK;AAoDxB,IAAA;AAlDS,IAAA,MAAM,gBAAgB,GAAA;QAC5B,IAAI,IAAI,CAAC,OAAO;YAAE;QAElB,MAAM,EAAE,GAAG,yBAAyB;AACpC,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,eAAe;AAC1C,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,cAAc;YAAE;QAC7C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AACnD,QAAA,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAAE;QAEjC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5C,QAAA,MAAM,CAAC,EAAE,GAAG,EAAE;AAEd,QAAA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1B,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,eAAe,EAAE,gBAAgB;AACjC,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,SAAS,EAAE,gCAAgC;AAC3C,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,uBAAuB,EAAE,MAAM;AAC/B,YAAA,sBAAsB,EAAE,MAAM;AAC9B,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;AAEF,QAAA,MAAM,CAAC,WAAW,GAAG,IAAI;AAEzB,QAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;YACpC,MAAM,CAAC,MAAM,EAAE;AACf,YAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1B,QAAA,CAAC,CAAC;AAEF,QAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AAE5D,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;IACrB;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;IACzB;8GAxDW,0BAA0B,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;;2FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCLY,0BAA0B,CAAA;AAgCrC,IAAA,WAAA,CAAoB,IAAY,EAAA;QAAZ,IAAA,CAAA,IAAI,GAAJ,IAAI;QA/BP,IAAA,CAAA,yBAAyB,GACxC,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAEvC,IAAA,CAAA,0BAA0B,GACzC,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAExC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAE7B,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;AAEe,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,0BAA0B,CAAC;QAEvD,IAAA,CAAA,eAAe,GAAG,KAAK;QAEvB,IAAA,CAAA,kBAAkB,GAAG,IAAI;AAEzB,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;AAEtC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;AAEpC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;QAEtC,IAAA,CAAA,YAAY,GAAwB,IAAI;QAExC,IAAA,CAAA,kBAAkB,GAAQ,IAAI;QAE9B,IAAA,CAAA,YAAY,GAAkB,IAAI;;IAI1C;IAEQ,mBAAmB,CAAC,EAAE,OAAO,EAAsB,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;AACjC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;YACjC;QACF;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO;IAC7B;IAEQ,yBAAyB,GAAA;AAC/B,QAAA,MAAM,eAAe,GAAG,KAAK,CAC3B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC3B,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAChC;QAED,eAAe,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtD,IAAI,CAAC,cAAc,EAAE;IACvB;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACvC;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,eAAe,EAAE;QACxB;AAEA,QAAA,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,MAAK;YACxC,IAAI,CAAC,cAAc,EAAE;AACvB,QAAA,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC;IACxB;AAEQ,IAAA,MAAM,aAAa,CAAC,IAAI,GAAG,IAAI,EAAE,IAAsB,EAAA;QAC7D,MAAM,EAAE,GAAG,6BAA6B;QACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACtC,EAAE,EAAE,MAAM,EAAE;QAEZ,IAAI,CAAC,IAAI,EAAE;YACT;QACF;QAEA,IAAI,IAAI,GAAG,EAAE;AACb,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAC7D;aAAO;YACL,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,0BAA0B,CAAC;QAC9D;QACA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5C,QAAA,MAAM,CAAC,EAAE,GAAG,EAAE;AAEd,QAAA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1B,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,eAAe,EAAE,iBAAiB;AAClC,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,SAAS,EAAE,2BAA2B;AACtC,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,uBAAuB,EAAE,MAAM;AAC/B,YAAA,sBAAsB,EAAE,MAAM;AAC9B,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;AAEF,QAAA,MAAM,CAAC,WAAW,GAAG,IAAI;AAEzB,QAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;YACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK;YACrC,MAAM,CAAC,MAAM,EAAE;AACf,YAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1B,QAAA,CAAC,CAAC;AAEF,QAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9D;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;YAC/B,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC5F,QAAA,CAAC,CAAC;IACJ;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QAC1B;IACF;AAEQ,IAAA,MAAM,eAAe,GAAA;AAC3B,QAAA,IAAI;AACF,YAAA,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC3C,YAAA,MAAM,QAAQ,GAAuB,MAAM,cAAc,CACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,CAAC,CAC7F;AAED,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,kBAAkB;AACvC,YAAA,IAAI;gBACF,SAAS;AACP,oBAAA,OAAO,QAAQ,CAAC,eAAe,KAAK,QAAQ,GAAG,QAAQ,CAAC,eAAe,GAAG,SAAS;YACvF;YAAE,OAAO,CAAC,EAAE;;YAEZ;YAEA,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK;AAC1C,YAAA,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QACpC;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C;IACF;IAEQ,gBAAgB,GAAA;QACtB,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC5B,YAAA,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;AAC/B,QAAA,CAAC,CAAC;IACJ;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEO,oBAAoB,GAAA;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;IACnC;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,IAAI,CAAC,kBAAkB;AAAE,YAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACpE;8GArLW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACRlC;;;;AAI6B;MAYhB,4BAA4B,CAAA;AADzC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;AAEe,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAExB,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,0BAA0B,CAAC;QAEvD,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;AAiJpF,IAAA;IA/IS,wBAAwB,CAC9B,EAAkD,EAClD,QAAgB,EAAA;AAEhB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE;AACtE,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,sBAAsB,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEtF,QAAA,OAAO,KAAK;IACd;IAEQ,uBAAuB,CAC7B,EAAkD,EAClD,QAAgB,EAAA;AAEhB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE;AACtE,YAAA,OAAO,KAAK;QACd;QAEA,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAE7C,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,cAAc,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5E,QAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACzC,KAAK,GAAG,IAAI;QACd;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,cAAc,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE;AACtD,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,OAAO,OAAO;IAChB;AAEQ,IAAA,kBAAkB,CAAC,KAAwB,EAAA;AACjD,QAAA,IAAI,KAAK,YAAY,iBAAiB,EAAE;AACtC,YAAA,MAAM,eAAe,GACnB,KAAK,CAAC,MAAM,KAAK,CAAC;AAClB,iBAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAE3E,IAAI,eAAe,EAAE;AACnB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE;YAChD;QACF;IACF;AAEQ,IAAA,WAAW,CACjB,OAAe,EACf,KAAwB,EACxB,GAAmD,EAAA;AAEnD,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;YAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;QACrD;IACF;AAEQ,IAAA,MAAM,aAAa,CACzB,KAAwB,EACxB,GAAmD,EAAA;;AAGnD,QAAA,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE;AACxE,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,CAAC;QAEpF,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC;YAC3C;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,KAAK,YAAY,IAAI,EAAE;AAC/B,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;YAChC;QACF;AAEA,QAAA,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;AAClE,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,GAAG,GAAG,kBAAkB,GAAG,OAAO;YAClE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AACnD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;QAC9C;IACF;AAEQ,IAAA,cAAc,CACpB,OAAgB,EAChB,gBAAyB,EACzB,aAAsB,EAAA;AAEtB,QAAA,OAAO,aAAa,IAAI,gBAAgB,IAAI,OAAO,IAAI,EAAE;IAC3D;IAEQ,eAAe,CACrB,KAAwB,EACxB,GAAmD,EAAA;AAEnD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;AAClE,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;QAC/B,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,KAAI;AACvC,YAAA,MAAM,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,MAAgB;AACxC,YAAA,IAAI;gBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,gBAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa;gBAC5C,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC;YAC7C;AAAE,YAAA,MAAM;gBACN,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC;YAClC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;IACzB;AAEO,IAAA,MAAM,WAAW,CACtB,KAAwB,EACxB,GAAoD,EAAA;AAEpD,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK;AAExB,QAAA,MAAM,MAAM,GAAQ;AAClB,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,GAAG,EAAE,kBAAkB;AACvB,YAAA,GAAG,EAAE;SACN;QAED,IAAI,KAAK,GAAG,aAAa;AAEzB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,OAAO,GAAG,CAAC;AAEf,QAAA,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;YAC/D,KAAK,GAAG,GAAG,KAAK,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC,WAAW,EAAE;YACxC,OAAO,GAAG,GAAG;YACb,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;QAChC;QAEA,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC;QAChC,CAAC,EAAE,OAAO,CAAC;AAEX,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAChC;8GA1JW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACUlC,MAAM,QAAQ,GAA2B,EAAE;AAC3C,MAAM,WAAW,GAA6C,IAAI,GAAG,EAAE;AACvE,IAAI,eAAe,GAA8B,EAAE;MAGtC,4BAA4B,CAAA;AADzC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;AAEe,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAE3D,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAEpD,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAsF1B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC;AAqCpD,IAAA;AAzHC,IAAA,KAAK,CAAC,MAAc,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;AAC3D,YAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QACtB;AAEA,QAAA,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;AACnC,QAAA,IAAI,YAAY,GAAG,KAAK,EAAE;YACxB,YAAY,GAAG,CAAC;QAClB;AACA,QAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY,GAAG,CAAC;AAEnC,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,EAAG,YAAY,EAAE;IACnC;IAEA,IAAI,eAAe,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACjC;AAEA,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,kBAAkB;IAChC;IAEA,OAAO,CAAC,EAAU,EAAE,IAAiC,EAAA;AACnD,QAAA,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC;IAC3B;AAEA,IAAA,OAAO,CAAC,EAAU,EAAA;AAChB,QAAA,OAAO,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC;IAC7B;AAEA,IAAA,SAAS,CAAC,EAAU,EAAA;AAClB,QAAA,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB;AAEA,IAAA,UAAU,CAAC,GAAW,EAAA;QACpB,MAAM,gBAAgB,GAAG,MAAK;AAC5B,YAAA,OAAO,EACL,IAAI,CAAC;AACF,iBAAA,mBAAmB;iBACnB,KAAK,CAAC,GAAG;AACT,iBAAA,MAAM,CAAC,CAAC,GAAQ,KAAI;gBACnB,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,YAAA,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAChB;AACH,QAAA,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE;AAAE,YAAA,OAAO,EAAE;QAElC,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;AAClD,QAAA,IAAI,OAAO,GAAG,KAAM,CAAC,OAAQ;AAC7B,QAAA,IAAI;AACF,YAAA,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,OAAQ,CAAC,IAAI,OAAO;QACvE;QAAE,OAAO,CAAC,EAAE;;QAEZ;AAEA,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,OAAO,EAAE;SACV;QAED,IAAI,cAAc,CAAC,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;YAChE,OAAO,CAAC,aAAa,GAAG,CAAA,OAAA,EAAU,KAAK,EAAE,WAAW,EAAE;QACxD;AAEA,QAAA,IAAI,cAAc,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE;AACrD,YAAA,OAAO,CAAC,OAAO,GAAG,OAAO;QAC3B;AAEA,QAAA,OAAO,OAAO;IAChB;IAEA,YAAY,CAAC,OAAyB,EAAE,IAAiB,EAAA;AACvD,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAkB;QAE7C,eAAe,CAAC,IAAI,CAAC;YACnB,OAAO;YACP,IAAI;AACJ,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;AAEF,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE;IAC/B;IAIQ,YAAY,CAAC,GAAqB,EAAE,IAAmB,EAAA;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACxC,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB;IAEA,uBAAuB,CAAC,GAAqB,EAAE,IAAmB,EAAA;AAChE,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAE9B,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,IAAI,CAC1C,GAAG,CAAC,MAAK;AACP,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC5B,YAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAG,KAAI;AACjB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAK;AACzC,oBAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE;AAC9C,gBAAA,CAAC,CAAC;AACF,gBAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;AAC9B,YAAA,CAAC,CAAC,EACF,QAAQ,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;gBAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC;AAClD,YAAA,CAAC,CAAC,EACF,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAC9C;QACH;QAEA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAC9C;IACH;8GApIW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;AC7BlC;;;;AAI6B;;ACJ7B;;;;AAI6B;MA6BhB,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAE1B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,4BAA4B,CAAC;QAyBrD,IAAA,CAAA,mBAAmB,GAAuC,IAAI;AA2GtE,IAAA;AAlIS,IAAA,UAAU,CAAC,MAAW,EAAA;QAC5B,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,MAAM;QACf;;QAGA,KAAK,MAAM,KAAK,IAAI;YAClB,WAAW;YACX,cAAc;YACd,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,kBAAkB;YAClB,kBAAkB;YAClB,YAAY;YACZ,WAAW;YACX;AACD,SAAA,EAAE;AACD,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB;AACA,QAAA,OAAO,MAAM;IACf;AAIQ,IAAA,UAAU,CAAC,OAAa,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC/D,YAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC;AAEjE,YAAA,OAAO,GAAG;AACR,gBAAA,GAAG,OAAO;gBACV;aACD;QACH;AAEA,QAAA,OAAO,OAAO;IAChB;IAEO,GAAG,CAAI,GAAW,EAAE,OAAa,EAAA;QACtC,IAAI,CAAC,GAAG,EAAE;YACR,aAAa,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,CAAC,IAAS,CAAC;QACtB;AAEA,QAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAElC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,EAAE,OAAO,CAAkB;IACzD;IAEO,eAAe,CACpB,GAAW,EACX,OAAmC,EAAA;QAEnC,IAAI,CAAC,GAAG,EAAE;YACR,aAAa,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,CAAC,IAAS,CAA6B;QAClD;AAEA,QAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AAElC,QAAA,OAAO,GAAG;AACR,YAAA,GAAG,OAAO;AACV,YAAA,cAAc,EAAE;SACjB;QAED,OAAO,IAAI,CAAC,GAAG,CAAI,GAAG,EAAE,OAAO,CAA6B;IAC9D;AAEO,IAAA,IAAI,CAAI,GAAW,EAAE,MAAS,EAAE,OAAmC,EAAA;QACxE,IAAI,CAAC,GAAG,EAAE;YACR,aAAa,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,CAAC,IAAS,CAAC;QACtB;AAEA,QAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AAElC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAI,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;IACxE;AAEO,IAAA,GAAG,CAAI,GAAW,EAAE,MAAS,EAAE,OAAmC,EAAA;QACvE,IAAI,CAAC,GAAG,EAAE;YACR,aAAa,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,CAAC,IAAS,CAAC;QACtB;AAEA,QAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AAElC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;IACvE;AAEO,IAAA,KAAK,CAAI,GAAW,EAAE,MAAS,EAAE,OAAmC,EAAA;QACzE,IAAI,CAAC,GAAG,EAAE;YACR,aAAa,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,CAAC,IAAS,CAAC;QACtB;AAEA,QAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AAElC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAI,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;IACzE;IAEO,MAAM,CAAI,GAAW,EAAE,OAAmC,EAAA;QAC/D,IAAI,CAAC,GAAG,EAAE;YACR,aAAa,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,CAAC,IAAS,CAAC;QACtB;AAEA,QAAA,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAI,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC;IACjD;8GAtIW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;AChCD;;;;AAI6B;MAmBhB,sBAAsB,CAAA;AAgBlB,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;aAE3C,IAAA,CAAA,qBAAqB,GAAG,KAAH,CAAS;AAE7C,IAAA,WAAA,GAAA;AAnBiB,QAAA,IAAA,CAAA,SAAS,GAAG,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAE;AAE3D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;AAEe,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAE7C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAEjD,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;;IAQ5E;IAEQ,SAAS,CAAC,IAAY,EAAE,IAAY,EAAA;AAC1C,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAI,EAAE;AAClC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QAEtB,MAAM,UAAU,GAAG,sBAAsB,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtE,IAAI,UAAU,IAAI,GAAG,GAAG,UAAU,GAAG,0BAA0B,EAAE;AAC/D,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,kBAAkB,CAAC,IAAY,EAAA;AACrC,QAAA,IAAI;AACF,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU;YAClD,MAAM,mBAAmB,GAAG,UAAU,EAAE,YAAY,GAAG,CAAA,EAAG,IAAI,CAAA,CAAE,CAAC;YAEjE,IAAI,IAAI,GAAG,EAAE;YACb,IAAI,mBAAmB,EAAE;AACvB,gBAAA,IAAI,GAAG;AACL,oBAAA,QAAQ,EAAE;iBACX;YACH;YAEA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;QAC/C;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,YAAA,OAAO,CAAC,KAAK,CAAC,qDAAqD,IAAI,CAAA,WAAA,CAAa,CAAC;QACvF;IACF;AAEQ,IAAA,MAAM,YAAY,CAAC,IAAY,EAAE,IAAY,EAAA;AACnD,QAAA,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC3C,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE;gBAC7D,IAAI;gBACJ;AACD,aAAA,CAAC;AAEF,YAAA,MAAM,IAAI,GAAG,MAAM,cAAc,CAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AAElD,YAAA,sBAAsB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1E;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,CAAA,4CAAA,EAA+C,IAAI,CAAA,GAAA,EAAM,IAAI,CAAA,WAAA,CAAa,CAAC;QAC3F;IACF;IAEQ,MAAM,YAAY,CAAC,IAAY,EAAA;AACrC,QAAA,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;gBAAE;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC3C,MAAM,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,WAAW,CAAA,MAAA,EAAS,IAAI,CAAA,KAAA,CAAO;AAElD,YAAA,MAAM,IAAI,GAAG,MAAM,cAAc,CAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AAElD,YAAA,sBAAsB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA,SAAA,EAAY,IAAI,CAAA,CAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3E;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,YAAA,OAAO,CAAC,KAAK,CAAC,+CAA+C,IAAI,CAAA,WAAA,CAAa,CAAC;QACjF;IACF;AAEQ,IAAA,MAAM,gBAAgB,GAAA;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS;AAExE,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;YAC9B,kBAAkB,CAAC,IAAI,CAAC;QAC1B;AAAO,aAAA,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;YACrC,kBAAkB,CAAC,IAAI,CAAC;QAC1B;aAAO;YACL,kBAAkB,CAAC,IAAI,CAAC;QAC1B;QAEA,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;AACrC,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;AACvC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC;AACnC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;IAC/B;AAEO,IAAA,MAAM,KAAK,GAAA;AAChB,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE;IAC/B;8GA/GW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACtBD;;;;AAI6B;AAC7B;AACA;MAQa,2BAA2B,CAAA;AAHxC,IAAA,WAAA,GAAA;QAImB,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;AA6JlF,IAAA;AA3JS,IAAA,MAAM,gBAAgB,GAAA;QAC5B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;QAEnD,MAAM,kBAAkB,GAAG,CAAC,GAAQ,EAAE,IAAS,EAAE,MAAM,GAAG,EAAE,KAAI;YAC9D,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACtC,YAAA,IAAI,IAAI;AAAE,gBAAA,EAAE,CAAC,SAAS,GAAG,IAAI;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/B,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAE,IAAS,EAAE,MAAM,GAAG,EAAE,KAAI;YACzD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACtC,YAAA,IAAI,IAAI;AAAE,gBAAA,EAAE,CAAC,WAAW,GAAG,IAAI;YAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/B,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;AAED,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AACzC,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,eAAe,EAAE,oBAAoB;AACrC,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,MAAM,EAAE;AACT,SAAA,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AAC1C,YAAA,eAAe,EAAE,MAAM;AACvB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,SAAS,EAAE,4BAA4B;AACvC,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,aAAa,EAAE;AAChB,SAAA,CAAC;AAEF,QAAA,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgDX;AAED,QAAA,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE;AAClD,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;AAC9C,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;QAEF,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,GAAG,WAAW,CAAC,EAAE;AACtD,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,YAAY,EAAE;AACf,SAAA,CAAC;QAEF,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;AAC1D,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,OAAO,EAAE,WAAW;AACpB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,eAAe,EAAE,SAAS;AAC1B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,SAAS,EAAE,2BAA2B;AACtC,YAAA,UAAU,EAAE,4BAA4B;AACxC,YAAA,aAAa,EAAE;AAChB,SAAA,CAAC;AAEF,QAAA,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAK;AAChD,YAAA,cAAc,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS;AAClD,QAAA,CAAC,CAAC;AAEF,QAAA,cAAc,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAK;AAC/C,YAAA,cAAc,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS;AAClD,QAAA,CAAC,CAAC;AAEF,QAAA,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;AAC5C,YAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1B,QAAA,CAAC,CAAC;AAEF,QAAA,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;AAClC,QAAA,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,QAAA,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;AAC7B,QAAA,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC;AACpC,QAAA,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC7B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IACpC;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;IACzB;8GA7JW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,MAAM,EAAA,CAAA,CAAA;;2FAEP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACbD;;;;AAI6B;MAQhB,0BAA0B,CAAA;AACrC,IAAA,WAAA,CAAsC,GAAQ,EAAA;QAAR,IAAA,CAAA,GAAG,GAAH,GAAG;;IAEzC;AAEQ,IAAA,WAAW,CAAC,QAA6B,EAAA;AAC/C,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ;AAE3B,QAAA,MAAM,SAAS,GAAG,CAAC,OAAO,CAAU;AAEpC,QAAA,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC1B,YAAA,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,KAAI;AAC5E,gBAAA,IAAI,UAAU,KAAK,UAAU,EAAE;AAC7B,oBAAA,MAAM,CAAC,OAAO,CAAC,YAA+C,CAAC,CAAC,OAAO,CACrE,CAAC,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,KAAI;AAC7C,wBAAA,MAAM,YAAY,GAAG,CAAA,aAAA,EAAgB,KAAK,CAAA,UAAA,EAAa,kBAAkB,EAAE;AAC3E,wBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC;wBAE9E,IAAI,CAAC,QAAQ,EAAE;AACb,4BAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA,EAAG,oBAAoB,CAAA,CAAE,CAAC;wBACrF;AACF,oBAAA,CAAC,CACF;gBACH;qBAAO;AACL,oBAAA,MAAM,YAAY,GAAG,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAA,EAAI,UAAU,EAAE;AAC1D,oBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC;oBAE9E,IAAI,CAAC,QAAQ,EAAE;AACb,wBAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA,EAAG,YAAY,CAAA,CAAE,CAAC;oBAC7E;gBACF;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,UAAU,CAAC,QAA6B,EAAA;AAC9C,QAAA,MAAM,IAAI,GAA4B;AACpC,YAAA,GAAG,EAAE,+JAA+J;AACpK,YAAA,IAAI,EAAE,WAAW;YACjB,GAAG,QAAQ,CAAC;SACb;AAED,QAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,gBAAA,CAAkB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;QAE9E,MAAM,IAAI,GAAoB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5D,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,CAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACjC;AAEQ,IAAA,UAAU,CAAC,QAA6B,EAAA;AAC9C,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ;AAC1B,QAAA,IAAI,CAAC,KAAK;YAAE;QACZ,QAAQ,CAAC,KAAK,GAAG,CAAA,EAAG,KAAK,CAAC,KAAK,EAAE;QAEjC,MAAM,IAAI,GAAoB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5D,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACjC;AAEO,IAAA,KAAK,CAAC,MAA2B,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IACzB;AAnEW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,kBACjB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AADjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;;2FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAEc,MAAM;2BAAC,QAAQ;;;ACb9B;;;;AAI6B;MAShB,sBAAsB,CAAA;AAGjC,IAAA,WAAA,CAAoB,SAAmB,EAAA;QAAnB,IAAA,CAAA,SAAS,GAAT,SAAS;AAFZ,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,0BAA0B,CAAC;;IAI9D;IAEQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC;AACZ,iBAAA,IAAI,CACH,MAAM,CAAC,CAAC,GAAG,KAAI;AACb,gBAAA,OAAO,GAAG,CAAC,IAAI,KAAK,eAAe;AACrC,YAAA,CAAC,CAAC;iBAEH,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,MAAK;AACxC,oBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACvB,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;QACN;IACF;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;IACzB;8GAzBW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACZD;;;;AAI6B;MAqBhB,oBAAoB,CAAA;AAgC/B,IAAA,WAAA,GAAA;AA/BiB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEnC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAEjD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAElD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,+BAA+B,CAAC;AAEzD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAEjD,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAE7D,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAEzC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAE/C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAE/C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAE7C,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,2BAA2B,CAAC;AAEzD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAE/C,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAEvD,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;;IAIF;IAEQ,MAAM,gBAAgB,CAAC,IAAmB,EAAA;AAChD,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC3C,YAAA,MAAM,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,SAAS,CAAA,CAAA,EAAI,IAAI,EAAE,WAAW,EAAE,CAAA,iBAAA,CAAmB;AACtE,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,QAAQ;AAC1C,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;QAC9B;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B;IACF;IAEQ,MAAM,gBAAgB,CAAC,IAAmB,EAAA;AAChD,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC3C,YAAA,MAAM,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,SAAS,CAAA,CAAA,EAAI,IAAI,EAAE,WAAW,EAAE,CAAA,iCAAA,CAAmC;AACtF,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,QAAQ;AAC1C,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpC;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B;IACF;AAEQ,IAAA,MAAM,cAAc,CAAC,QAA4B,EAAE,IAAmB,EAAA;AAC5E,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,QAAA,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE;AAC/B,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;QAClC;aAAO;AACL,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACjC,YAAA,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;AACxC,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACjC,YAAA,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;QAC7B;IACF;AAEQ,IAAA,MAAM,iBAAiB,CAAC,QAA4B,EAAE,IAAmB,EAAA;AAC/E,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,QAAQ;QACzC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAC1B;QACF;QACA,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC;AACzC,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;IACxC;AAEA,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;AAC/B,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC5B,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC3C,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CACxE;AAED,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA0B;AAChD,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAsB;YAE/C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YAC9D,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,IAAI,WAAW,CAAC;QAC/D;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B;IACF;8GA1GW,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA,CAAA;;2FACnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;AA8G5B,SAAU,2BAA2B,CAAC,OAA6B,EAAA;AACvE,IAAA,OAAO,MAAK;AACV,QAAA,OAAO,OAAO,CAAC,aAAa,EAAE;AAChC,IAAA,CAAC;AACH;;AC1IA;;;;AAI6B;;ACJ7B;;;;AAI6B;MAQhB,QAAQ,CAAA;AAHrB,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,MAAM,GAAG,sBAAsB,CAAC,UAAU,EAAE,YAAY,CAAE;AAE1D,QAAA,IAAA,CAAA,KAAK,GAAG,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAE;AA2BzE,IAAA;IAzBC,MAAM,CAAC,CAAC,IAAY,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;QACzC;AAEA,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,EAAE;QAC1B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAClD;AACE,YAAA,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;SACzD,EACD,GAAG,EACH,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CACpC;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AACjC,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAClC;AAEQ,IAAA,MAAM,CAAC,GAAA;AACb,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzD,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE;YACjF,SAAS;YACT;AACD,SAAA,CAAC;IACJ;8GA7BW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAR,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAQ,cAFP,MAAM,EAAA,CAAA,CAAA;;2FAEP,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACXD;;;;AAI6B;;ACiC7B,MAAM,MAAM,GAAG,IAAI;MAGN,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAExB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE5C,QAAA,IAAA,CAAA,mBAAmB,GAAiB,IAAI,YAAY,EAAE;AAEtD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,GAAG,EAA0C;AA4FvE,IAAA;IA1FS,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC;AACrC,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,eAAe,CAAC;aACxD,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,OAAO,EAAE;AAChB,QAAA,CAAC,CAAC;IACN;IAEA,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,EAA2B,EAAA;QAC3E,MAAM,cAAc,GAAG,EAAE,IAAI,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;QAE/D,IAAI,CAAC,WAAW,EAAE;AAElB,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,MAAK;AAC7D,YAAA,IAAI;gBACF,QAAQ,CAAC,cAAc,CAAC;YAC1B;YAAE,OAAO,CAAC,EAAE;AACV,gBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YAC3B;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,EAAE;YAClC,YAAY;YACZ,oBAAoB,EAAE,oBAAoB,IAAI;AAC/C,SAAA,CAAC;IACJ;AAQA,IAAA,gBAAgB,CAAC,EACf,EAAE,EACF,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,oBAAoB,EACe,EAAA;QACnC,MAAM,cAAc,GAAG,EAAE,IAAI,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;QAE/D,IAAI,SAAS,GAAG,KAAK;QAErB,IAAI,CAAC,WAAW,EAAE;AAElB,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,MAAK;AAC7D,YAAA,IAAI,SAAS;gBAAE;YAEf,SAAS,GAAG,IAAI;YAEhB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC;AACvC,gBAAA,IAAI,EAAE,CAAC,IAAS,KAAI;oBAClB,SAAS,GAAG,KAAK;oBACjB,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC;gBAChD,CAAC;AACD,gBAAA,KAAK,EAAE,CAAC,CAAM,KAAI;AAChB,oBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AACzB,oBAAA,IAAI,OAAO;AAAE,wBAAA,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC/B;AACD,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,EAAE;YAClC,YAAY;YACZ,oBAAoB,EAAE,oBAAoB,IAAI;AAC/C,SAAA,CAAC;IACJ;AAEA,IAAA,IAAI,CAAC,EAAU,EAAA;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAEzC,IAAI,SAAS,EAAE;AACb,YAAA,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B;IACF;IAEA,OAAO,GAAA;QACL,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;AAClC,gBAAA,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE;YACrC;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;IACxC;8GAlGW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cADX,MAAM,EAAA,CAAA,CAAA;;AA2C9B,UAAA,CAAA;AANC,IAAA,oBAAoB,CAAC;AACpB,QAAA,EAAE,EAAE,uBAAuB;AAC3B,QAAA,YAAY,EAAE;YACZ,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACzC;KACF;AAsCA,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;2FA/EU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACvClC;;;;AAI6B;;ACJ7B;;;;AAI6B;MAQhB,4BAA4B,CAAA;AAGvC,IAAA,WAAA,GAAA;AAFiB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;;IAI7C;IAEQ,YAAY,GAAA;QAClB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC;AACvE,QAAA,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;IAC5B;IAEQ,eAAe,GAAA;QACrB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC;QACpE,eAAe,CAAC,OAAO,EAAE;IAC3B;IAEO,OAAO,GAAA;QACZ,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,eAAe,EAAE;IACxB;8GApBW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA;;2FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACXD;;;;AAI6B;;MC+BhB,oBAAoB,CAAA;AADjC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAEhD,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;AAEe,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAE3D,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAEtD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAErD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAExB,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAC7C,2BAA2B,EAC3B;AACE,YAAA,QAAQ,EAAE;AACX,SAAA,CACF;AAEgB,QAAA,IAAA,CAAA,iCAAiC,GAChD,MAAM,CAA4C,wCAAwC,EAAE;AAC1F,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;AAwUL,IAAA;IAtUC,oBAAoB,CAAC,GAAsB,EAAE,KAA+B,EAAA;AAC1E,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG;QAC7B,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE;AAChD,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK;QAE1B,IAAI,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE;AAC1C,YAAA,IAAI,IAAI,KAAK,0BAA0B,EAAE;gBACvC,IAAI,CAAC,uBAAuB,CAAC,QAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;gBACzD;YACF;AAEA,YAAA,IAAI,IAAI,KAAK,cAAc,EAAE;gBAC3B,IAAI,CAAC,aAAa,CAAC,QAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC/C;YACF;QACF;AAEA,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;IACnE;IAEQ,uBAAuB,CAAC,QAAgB,EAAE,KAAa,EAAA;QAC7D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,qCAAqC,CAAC,EAAE;AAC7D,YAAA,KAAK,EAAE;AACL,gBAAA,qBAAqB,EAAE,EAAE,QAAQ,EAAE,KAAK;AACzC;AACF,SAAA,CAAC;IACJ;IAEQ,aAAa,CAAC,QAAgB,EAAE,KAAa,EAAA;QACnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA,0BAAA,EAA6B,QAAQ,CAAA,CAAE,CAAC,EAAE;AAC/D,YAAA,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK;AAC3B;AACF,SAAA,CAAC;IACJ;IASM,MAAA,WAAW,GAAA;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACpD,MAAM,GAAG,GAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACzD,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,OAAO,kBAAkB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;AAClD,QAAA,IAAI,KAAK,EAAE,WAAW,EAAE;AACtB,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;QAC5B;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,oBAAoB,CAAC,eAAyC,EAAA;QAC5D,IAAI,CAAC,QAAQ,CAAC;YACZ,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,OAAO,EAAE,eAAe,CAAC,OAAO;YAChC,WAAW,EAAE,eAAe,CAAC,YAAY;YACzC,YAAY,EAAE,eAAe,CAAC;AAC/B,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,yBAAyB,GAAA;QAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI;AAC7D,YAAA,UAAU,EAAE;SACb;QAED,MAAM,GAAG,GAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAEzD,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC,kBAAkB;AAC9B,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC,kBAAkB;AAC9B,QAAA,IAAI,UAAU,KAAK,UAAU,EAAE;AAC7B,YAAA,CAAC,GAAG,GAAG,CAAC,kBAAkB;AAC1B,YAAA,CAAC,GAAG,GAAG,CAAC,kBAAkB;QAC5B;QAEA,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpC,OAAO;AACL,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,aAAa,EAAE;SAChB;IACH;AAEA,IAAA,QAAQ,CAAC,KAAyC,EAAA;AAChD,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,KAAK,CAAC,EAAmC,EAAA;AACvC,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;IACrC;IAEA,YAAY,GAAA;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;AACjD,QAAA,OAAO,CAAC,CAAC,IAAI,EAAE,WAAW;IAC5B;IAEA,mBAAmB,GAAA;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;AACjD,QAAA,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS;IAC1B;IAEA,kBAAkB,GAAA;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;AACjD,QAAA,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ;IAClE;IAEA,MAAM,MAAM,CAAC,KAAe,EAAE,QAAkB,EAAE,QAAmB,EAAE,QAAQ,GAAG,IAAI,EAAA;QACpF,MAAM,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,IAAI;AAErE,QAAA,IAAI;YACF,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,IAAI,CAAC,WAAW,EAAE;YAC1B;QACF;QAAE,OAAO,CAAC,EAAE;;QAEZ;AAEA,QAAA,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;AACjC,QAAA,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC;QACzC,cAAc,CAAC,OAAO,EAAE;QAExB,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC1B;QAEA,IAAI,QAAQ,EAAE;AACZ,YAAA,QAAQ,EAAE;QACZ;IACF;IAEA,YAAY,GAAA;AACV,QAAA,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,IAAI;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAEpD,IAAI,qBAAqB,EAAE;YACzB,OAAO,qBAAqB,EAAE;QAChC;QAEA,MAAM,GAAG,GAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACzD,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,OAAO,kBAAkB;AAE5C,QAAA,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,QAAQ,EAAG;AAEzD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,IAAI,CAChD,SAAS,CAAC,CAAC,cAAc,KAAI;AAC3B,YAAA,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;AAClC,gBAAA,GAAG,cAAc;AACjB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,eAAe;;AAE3B,gBAAA,YAAY,EAAE,sCAAsC;gBACpD,aAAa,EAAE,gBAAgB,CAAC,YAAY;gBAC5C,QAAQ,EAAE,gBAAgB,CAAC;AAC5B,aAAA,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,cAAc,EAAE,mCAAmC,EAAE,CAAC;AAExF,YAAA,OAAO;AACJ,iBAAA,IAAI,CAAM,GAAG,EAAE,KAAK,EAAE;gBACrB;aACD;AACA,iBAAA,IAAI,CACH,SAAS,CAAC,CAAC,IAAI,KAAI;gBACjB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AAClD,YAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAG,KAAI;AACjB,gBAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,CACH;QACL,CAAC,CAAC,CACH;IACH;AAEA,IAAA,MAAM,wBAAwB,GAAA;AAC5B,QAAA,MAAM,EAAE,iCAAiC,EAAE,GAAG,IAAI;QAClD,IAAI,iCAAiC,EAAE;YACrC,OAAO,iCAAiC,EAAE;QAC5C;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;AACjD,QAAA,IAAI,IAAI,EAAE,WAAW,EAAE;AACrB,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1B;QAEA,IAAI,KAAK,GAAG,aAAa;AACzB,QAAA,IACE,cAAc,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC;YACxD,cAAc,CAAC,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,EACvD;YACA,KAAK,GAAG,cAAc;QACxB;QAEA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE,CAAC,CAAC;IACrD;IAEA,WAAW,GAAA;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;QACjD,MAAM,GAAG,GAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACzD,QAAA,IACE,cAAc,CAAC,yBAAyB,CAAC,IAAK,CAAC,QAAQ,CAAC;YACxD,cAAc,CAAC,yBAAyB,CAAC,IAAK,CAAC,WAAW,CAAC,EAC3D;AACA,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD;IACF;IAEA,oBAAoB,GAAA;QAClB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC;QAClE,MAAM,GAAG,GAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;QACzD,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,yBAAyB,IAAI,gCAAgC;AAEtF,QAAA,IAAI;YACF,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;YAClD,IAAI,QAAQ,EAAE;gBACZ,MAAM,GAAG,GAAoC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACjE,gBAAA,MAAM,YAAY,GAAG,GAAG,EAAE,YAAY;gBACtC,IAAI,YAAY,EAAE;AAChB,oBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;wBACjC;AACM,qBAAA,CAAC;gBACX;AAEA,gBAAA,IAAI,YAAY,CAAC,MAAM,KAAK,eAAe,EAAE;AAC3C,oBAAA,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC;AACpC,oBAAA,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC;AACvC,oBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AACjC,wBAAA,YAAY,EAAE;AACR,qBAAA,CAAC;gBACX;YACF;QACF;QAAE,OAAO,CAAC,EAAE;;QAEZ;AAEA,QAAA,IAAI;YACF,cAAc,CAAC,KAAK,EAAE;QACxB;QAAE,OAAO,CAAC,EAAE;;QAEZ;QAEA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/B;AAEA,IAAA,cAAc,CAAC,QAAyC,EAAA;QACtD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAK;YAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,EAAE;AACzD,gBAAA,KAAK,EAAE;oBACL;AACD;AACF,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AASM,IAAN,MAAM,KAAK,CAAC,KAA+B,EAAA;;IAE3C;AASM,IAAN,MAAM,EAAE,CAAC,eAAyC,EAAA;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACpD,MAAM,GAAG,GAAiB,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AACzD,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,OAAO,SAAS;AAEnC,QAAA,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;AAE1C,QAAA,MAAM,IAAI,IAAI,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAQ;QAE7D,IAAI,CAAC,iBAAiB,CAAC;YACrB,GAAG,IAAI,CAAC,SAAS;AACjB,YAAA,gBAAgB,EAAE;AACnB,SAAA,CAAC;IACJ;AAEA,IAAA,iBAAiB,CAAC,aAAqC,EAAA;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAChE,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa;AAClC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,UAAW;QAE9C,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,OAAQ,CAAC,IAAI;YACxC,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC;oBACZ;AACD,iBAAA,CAAC;YACJ;QACF;QAEA,IAAI,CAAC,KAAK,CAAC;YACT,IAAI,EAAE,aAAa,EAAE,IAAI;YACzB,KAAK,EAAE,aAAa,EAAE,KAAK;YAC3B,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,MAAM,EAAE,aAAa,EAAE,MAAM;YAC7B,UAAU,EAAE,aAAa,EAAE,UAAU;YACrC,gBAAgB,EAAE,aAAa,EAAE,gBAAgB;YACjD,SAAS,EAAE,aAAa,EAAE,SAAS;YACnC,QAAQ;YACR,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,SAAS,EAAE,aAAa,EAAE,SAAS;YACnC,eAAe,EAAE,aAAa,EAAE,eAAe;YAC/C,aAAa,EAAE,aAAa,EAAE,aAAa;YAC3C,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,UAAU,EAAE,aAAa,EAAE,UAAU;YACrC,MAAM,EAAE,aAAa,EAAE,MAAM;YAC7B,MAAM,EAAE,aAAa,EAAE,MAAM;YAC7B,MAAM,EAAE,aAAa,EAAE;AACxB,SAAA,CAAC;QAEF,aAAa,CAAC,KAAK,EAAE;IACvB;8GArWW,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA,CAAA;;AA4ExB,UAAA,CAAA;AAPL,IAAA,oBAAoB,CAAC;AACpB,QAAA,EAAE,EAAE,gCAAgC;AACpC,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAC/B,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACjD;KACF;AAWA,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA;AAmNK,UAAA,CAAA;AAPL,IAAA,oBAAoB,CAAC;AACpB,QAAA,EAAE,EAAE,yBAAyB;AAC7B,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAC/B,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC5C;KACF;AAGA,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,IAAA,CAAA;AASK,UAAA,CAAA;AAPL,IAAA,oBAAoB,CAAC;AACpB,QAAA,EAAE,EAAE,sBAAsB;AAC1B,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAC/B,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC5C;KACF;AAcA,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,IAAA,EAAA,IAAA,CAAA;2FAhUU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;AClClC;;;;AAI6B;MAUhB,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAA,CAAA,QAAQ,GAAR,QAAQ;;IAE5B;AAEO,IAAA,WAAW,CAAC,KAAU,EAAA;QAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;AAE7D,QAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE;AACrC,QAAA,IAAI,KAAK,YAAY,iBAAiB,EAAE;YACtC;QACF;AAEA,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;AACnB,gBAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAC5B,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YACpB;AAEA,YAAA,IAAI,GAAG,GAAG,KAAK,EAAE,OAAO,IAAI,KAAK;YACjC,IAAI,IAAI,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACtD,gBAAA,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;YACzB;YAEA,aAAa,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE,eAAe;gBACxB;AACD,aAAA,CAAC;QACJ;QAAE,OAAO,CAAC,EAAE;;QAEZ;IACF;8GAhCW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,MAAM,EAAA,CAAA,CAAA;;2FAEP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACbD;;;;AAI6B;;ACJ7B;;;;AAI6B;AAC7B;MAOa,qBAAqB,CAAA;AAHlC,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;AAuCnD,IAAA;AArCS,IAAA,WAAW,CAAC,IAAY,EAAA;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC;IACtD;AAEA,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BvB,IAAA,CAAA,CAAC;IACJ;8GAvCW,qBAAqB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACXD;;;;AAI6B;;ACJ7B;;;;AAI6B;MAWP,uBAAuB,CAAA;IAC3C,OAAO,UAAU,CAAI,UAAkB,EAAA;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,UAAU,CAAA,WAAA,CAAa,CAAC;QACvD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,MAAA,CAAQ,EAAE,KAAK,EAA4B,CAAC;QACpF,MAAM,KAAK,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,OAAA,CAAS,EAAE,KAAK,EAA6B,CAAC;QACvF,MAAM,cAAc,GAAG,YAAY,CACjC,CAAA,CAAA,EAAI,UAAU,CAAA,iBAAA,CAAmB,EACjC,KAAK,EAAgC,CACtC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,YAAA,CAAc,EAAE,KAAK,EAAiB,CAAC;QACpF,MAAM,SAAS,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,YAAA,CAAc,EAAE,KAAK,EAAe,CAAC;QAClF,MAAM,SAAS,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,YAAA,CAAc,EAAE,KAAK,EAAe,CAAC;QAClF,MAAM,aAAa,GAAG,YAAY,CAChC,CAAA,CAAA,EAAI,UAAU,CAAA,gBAAA,CAAkB,EAChC,KAAK,EAAmC,CACzC;QACD,MAAM,UAAU,GAAG,YAAY,CAC7B,CAAA,CAAA,EAAI,UAAU,CAAA,aAAA,CAAe,EAC7B,KAAK,EAA2B,CACjC;QACD,MAAM,WAAW,GAAG,YAAY,CAC9B,CAAA,CAAA,EAAI,UAAU,CAAA,cAAA,CAAgB,EAC9B,KAAK,EAAqC,CAC3C;QAED,OAAO;YACL,KAAK;YACL,IAAI;YACJ,KAAK;YACL,cAAc;YACd,SAAS;YACT,SAAS;YACT,SAAS;YACT,aAAa;YACb,WAAW;YACX;SACD;IACH;AACD;;ACrDD;;;;AAI6B;MAQP,yBAAyB,CAAA;IAC7C,OAAO,YAAY,CAAI,OAAiB,EAAA;QACtC,MAAM,WAAW,GAAG,qBAAqB,CAAI,OAAO,CAAC,UAAU,CAAC;QAEhE,MAAM,SAAS,GAAQ,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC;QAErE,MAAM,aAAa,GAAG,MAAK;AACzB,YAAA,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC,KAAU,KAAS;gBACrD,OAAO,KAAK,CAAC,OAAO;AACtB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC;QAED,MAAM,WAAW,GAAG,MAAK;AACvB,YAAA,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC,KAAU,KAAS;gBACrD,OAAO,KAAK,CAAC,KAAK;AACpB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC;QAED,MAAM,UAAU,GAAG,MAAK;AACtB,YAAA,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC,KAAU,KAAS;gBACrD,OAAO,KAAK,CAAC,IAAI;AACnB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC;QAED,MAAM,UAAU,GAAG,MAAK;AACtB,YAAA,OAAO,cAAc,CAAC,WAAW,EAAE,CAAC,KAAU,KAAS;gBACrD,OAAO,KAAK,CAAC,IAAI;AACnB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC;QAED,OAAO;YACL,WAAW;YACX,SAAS;YACT,UAAU;YACV,aAAa;YACb,WAAW;YACX;SACD;IACH;AACD;;ACnDD;;;;AAI6B;MAChB,IAAI,CAAA;AASf,IAAA,WAAA,CAAY,IAAU,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS;IAClC;AACD;MAEY,cAAc,CAAA;IAGlB,SAAS,CACd,IAAY,EACZ,cAGC,EAAA;AAED,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;QACxB,IAAI,IAAI,GAAS,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;AAC5C,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,EAAE,SAAS,EAAE;AAC7C,YAAA,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,cAAc;YACnC,IAAI,GAAG,IAAI,IAAI,CAAC;AACd,gBAAA,GAAG,IAAI;AACP,gBAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;AACtC,aAAA,CAAC;QACJ;AACA,QAAA,OAAO,IAAI;IACb;AACD;;AC7CD;;;;AAI6B;AAIvB,MAAO,mBAAoB,SAAQ,cAAc,CAAA;AACrD,IAAA,WAAA,CAAY,IAAU,EAAA;AACpB,QAAA,KAAK,EAAE;AAEP,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM;IAC5B;AACD;;ACdD;;;;AAI6B;;ACe7B;;;;;;;;;;AAUG;MACmB,4BAA4B,CAAA;IAOhD,WAAA,CACY,KAAY,EACtB,MAAS,EAAA;QADC,IAAA,CAAA,KAAK,GAAL,KAAK;AAHR,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAMzC,QAAA,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM;AAErC,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO;AACrB,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;IAC3B;AAEQ,IAAA,kBAAkB,CAAC,IAAS,EAAE,WAAW,GAAG,IAAI,EAAA;AACtD,QAAA,IAAI;AACF,YAAA,IAAI,IAAO;AAEX,YAAA,IAAI,IAAI,EAAE,SAAS,EAAE;gBACnB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI;gBACxC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAErC,gBAAA,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC;gBAErB,IAAI,WAAW,EAAE;AACf,oBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;gBAC5B;AAEA,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB;;gBAAO,IAAI,GAAG,IAAI;AAElB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA,CAAE,CAAC;QAClE;IACF;AAEU,IAAA,aAAa,CAAC,IAA2B,EAAA;AACjD,QAAA,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACxB;AACD,aAAA,CAAC,CACH;QACH;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA,CAAE,CAAC;QAC7D;IACF;AAEU,IAAA,WAAW,CAAC,IAAa,EAAA;AACjC,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,CAAC,IAAO,KAAI;gBACzB,OAAQ,IAAY,CAAC,OAAO;gBAC5B,IAAI,EAAE,GAAG,EAAE;AACX,gBAAA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI;AACnE,oBAAA,IAAI,EAAE;iBACP;gBAED,IAAI,IAAI,EAAE;AACR,oBAAA,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;gBAClC;gBAEA,OAAO;AACL,oBAAA,GAAG,IAAI;oBACP;iBACD;AACH,YAAA,CAAC;AAED,YAAA,IAAI,IAAI,YAAY,KAAK,EAAE;AACzB,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAO,KAAI;AAC1B,oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,gBAAA,CAAC,CAAC;YACJ;AAEA,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA,CAAE,CAAC;QAC3D;IACF;AAEU,IAAA,MAAM,CAAE,IAAa,EAAA;AAC7B,QAAA,IAAI;YACF,IAAI,UAAU,GAAG,WAAW;AAE5B,YAAA,IAAI,IAAI,YAAY,KAAK,EAAE;gBACzB,UAAU,GAAG,WAAW;YAC1B;YAEA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACtB,gBAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;AAC5B,aAAA,CAAC,CACH;QACH;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA,CAAE,CAAC;QACtD;IACF;AAEU,IAAA,UAAU,CAAE,IAAmB,EAAA;AACvC,QAAA,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACrB;AACD,aAAA,CAAC,CACH;QACH;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA,CAAE,CAAC;QAC1D;IACF;AAEU,IAAA,WAAW,CAAE,IAAoB,EAAA;AACzC,QAAA,IAAI;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBACtB;AACD,aAAA,CAAC,CACH;QACH;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA,CAAE,CAAC;QAC3D;IACF;IASgB,MAAA,QAAQ,CAAC,GAAW,EAAE,WAAW,GAAG,IAAI,EAAA;QACtD,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEvC,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC1C;QAAE,OAAO,CAAM,EAAE;YACf,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACxC,YAAA,MAAM,CAAC;QACT;IACF;IAEU,MAAM,YAAY,CAAC,UAA+B,EAAA;AAC1D,QAAA,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;AAChC,QAAA,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AAEvE,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU;AAC7B,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI;AAC9E,YAAA,IAAI,EAAE;SACP;QAED,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrB;IACF;AAEA;;;;;;;;;;;;;;AAcG;AACI,IAAA,IAAI,CAAE,IAAS,EAAA;AACpB,QAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;IAC7D;AAEO,IAAA,QAAQ,CAAE,IAAS,EAAA;AACxB,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;IACjE;AACD;AAjDiB,UAAA,CAAA;AAPf,IAAA,oBAAoB,CAAC;AACpB,QAAA,EAAE,EAAE,yBAAyB;AAC7B,QAAA,YAAY,EAAE;YACZ,cAAc,EAAE,CAAC,GAAG,CAAC;YACrB,sBAAsB,EAAE,CAAC,GAAG;AAC7B;KACF;AAYA,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA;;AC7KH;;;;AAI6B;;MCAhB,8BAA8B,CAAA;AACzC,IAAA,YAAY,CAAC,IAAe,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,IAAI;IACb;IAEA,aAAa,GAAA;QACX,UAAU,CAAC,MAAK;YACd,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAuB;AAE7F,YAAA,IAAI,CAAC,YAAY;gBAAE;AAEnB,YAAA,YAAY,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACnE,YAAA,YAAY,CAAC,KAAK,IAAI;AACxB,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,cAAc,CAAC,SAAoB,EAAA;AACzC,QAAA,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;YACpD,OAAO,CAAC,aAAa,EAAE;YACvB,OAAO,CAAC,WAAW,EAAE;YAErB,MAAM,UAAU,GAAG,OAAc;AACjC,YAAA,IAAI,UAAU,CAAC,QAAQ,EAAE;AACvB,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;YACjC;AACF,QAAA,CAAC,CAAC;IACJ;8GA/BW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA,CAAA;;2FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACHlC;;;;AAI6B;;ACIvB,SAAU,oBAAoB,CAAC,MAAmC,EAAA;AACtE,IAAA,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC,EAAA;AAEtC,QAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK;AAEvC,QAAA,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;YACjD,MAAM,OAAO,GAAQ,IAAI;AAEzB,YAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC/C,gBAAA,IAAK,KAAa,YAAY,gBAAgB,EAAE;AAC9C,oBAAA,OAAO,CAAC,GAAG,CAAC,CAAC,mBAAmB,GAAG,MAAM;gBAC3C;AACF,YAAA,CAAC,CAAC;YAEF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;gBACnC,IACE,OAAO,GAAG,KAAK,QAAQ;AACvB,oBAAA,GAAG,KAAK,IAAI;AACZ,oBAAA,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACnB,oBAAA,GAAG,CAAC,OAAO,KAAK,SAAS,EACzB;AACA,oBAAA,OAAO,EAAE,GAAG,GAAG,EAAE;gBACnB;AACA,gBAAA,OAAO,GAAG;AACZ,YAAA,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC;AACjD,YAAA,OAAO,MAAM;AACf,QAAA,CAAC;AAED,QAAA,OAAO,kBAAkB;AAC3B,IAAA,CAAC;AACH;;AC3CA;;;;AAI6B;;ACuB7B,SAAS,WAAW,CAAC,GAAW,EAAA;AAC9B,IAAA,MAAM,GAAG,GAA2B;AAClC,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,mBAAmB,EAAE,sBAAsB;AAC3C,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,2BAA2B,EAAE,2BAA2B;AACxD,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,WAAW,EAAE;KACd;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,WAAW,EAAE;AACxC;AAEA,SAAS,cAAc,CAAC,GAAW,EAAE,OAAwB,EAAA;AAC3D,IAAA,MAAM,GAAG,GAA2B;AAClC,QAAA,eAAe,EAAE,cAAc;AAC/B,QAAA,eAAe,EAAE;KAClB;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;IACrC,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;IAC7C;AAEA,IAAA,OAAO,IAAI;AACb;MAMa,8BAA8B,CAAA;IAezC,IAAoC,YAAY,CAAC,OAAyC,EAAA;AACxF,QAAA,IAAI,OAAO,YAAY,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;QAChC;aAAO;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACxB;QACA,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;IAC7B;IAEA,WAAA,CACU,GAAqC,EACrC,GAAqB,EAAA;QADrB,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,GAAG,GAAH,GAAG;AA1BL,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAEhC,IAAA,CAAA,OAAO,GAA2B,IAAI;AAItC,QAAA,IAAA,CAAA,OAAO,GAAwB;AACrC,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,WAAW,EAAE;SACd;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE;;IAiB5C;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;AACF,aAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aAC3D,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;QAEJ,IAAI,CAAC,UAAU,EAAE;IACnB;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AACtB,kBAAE,IAAI,CACJ,MAAM,CAAC,CAAC,CAAC,KAAyE;gBAChF,QACE,CAAC,YAAY,kBAAkB;AAC/B,oBAAA,CAAC,YAAY,gBAAgB;oBAC7B,CAAC,YAAY,iBAAiB;AAElC,YAAA,CAAC,CAAC;AAEH,iBAAA,SAAS,CAAC,CAAC,CAAC,KAAI;AACf,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC7B,YAAA,CAAC,CAAC;QACN;IACF;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAClE;QACF;AAEA,QAAA,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,aAAa;YAAE;AAEpB,QAAA,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;QAE1C,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;AAEpE,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,aAAa;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,aAAa;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,gBAAgB;AAE3C,QAAA,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;IACrD;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;IACzB;8GApFW,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,CAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE;AACb,iBAAA;;sBAgBE,KAAK;uBAAC,uBAAuB;;;ACzEhC;;;;AAI6B;MAQhB,kCAAkC,CAAA;AAH/C,IAAA,WAAA,GAAA;QAIoB,IAAA,CAAA,OAAO,GAAW,EAAE;AAErB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAEjD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAEhC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAsChE,IAAA;IApCS,IAAI,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;AACnB,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;QACvC,IAAI,CAAC,aAAa,EAAE;IACtB;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU;AAClD,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;QACxB,IAAI,OAAO,GAAG,MAAM;AAEpB,QAAA,IACE,CAAC,cAAc,CAAC,yBAAyB,CAAC,OAAO,CAAC;YAClD,CAAC,cAAc,CAAC,yBAAyB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EACxE;YACA;QACF;QAEA,MAAM,QAAQ,GAAG,UAAU,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;QAEzD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,GAAG,OAAO;QACnB;QAEA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AAEtD,QAAA,IAAI,OAAO,KAAK,MAAM,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE;QACzC;AAEA,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;IACzC;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,EAAE;IACb;8GA5CW,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAH9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;sBAEE,KAAK;uBAAC,SAAS;;;ACblB;;;;AAI6B;MAiBhB,yBAAyB,CAAA;AAHtC,IAAA,WAAA,GAAA;AAMmB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAEhD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAEhC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE9C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AA6ClD,IAAA;AA3CS,IAAA,UAAU,CAAC,OAAe,EAAA;AAChC,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;QAEzB,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,KAAK;QACd;QAEA,OAAO,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;IAC1C;IAEQ,aAAa,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1C,IAAI,OAAO,GAAG,MAAM;QAEpB,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE;YACnD;QACF;QAEA,IAAI,IAAI,EAAE;YACR,OAAO,GAAG,OAAO;QACnB;AAEA,QAAA,IAAI,OAAO,KAAK,MAAM,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE;QACzC;QAEA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AACtD,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;IACzC;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;QACnB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AACrD,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;QACvC,IAAI,CAAC,aAAa,EAAE;QAEpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAY,KAAI;YAC1F,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,aAAa,EAAE;YACtB;AACF,QAAA,CAAC,CAAC;IACJ;8GArDW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;sBAEE,KAAK;uBAAC,aAAa;;;ACtBtB;;;;AAI6B;MAgBhB,yBAAyB,CAAA;IAOpC,WAAA,CACU,WAA6B,EAC7B,aAA+B,EAAA;QAD/B,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,aAAa,GAAb,aAAa;QARf,IAAA,CAAA,KAAK,GAAgC,IAAI;QAEzC,IAAA,CAAA,eAAe,GAAuB,IAAI;AAEjC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QASvC,IAAA,CAAA,gBAAgB,GAAY,KAAK;QAEjC,IAAA,CAAA,oBAAoB,GAAuB,IAAI;;IAJxD;AAMA,IAAA,WAAW,CAAC,OAAsB,EAAA;;QAEhC,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,sBAAsB,CAAC,EAAE;YAClE,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,IAAI,CAAC,KAAK;AAAE,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAE1C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;YAEpD,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,gBAAgB,IAAI,CAAC,oBAAoB,CAAA,CAAE;YAE5E,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CACnD,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAC1C;QACH;aAAO;YACL,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;gBAC3D,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;AACjE,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;YAC7B;AAEA,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACtE;IACF;8GA9CW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;sBAeE;;sBAEA;;;ACpCH;;;;AAI6B;MAQhB,0BAA0B,CAAA;AAarC,IAAA,WAAA,GAAA;QAZwB,IAAA,CAAA,KAAK,GAAa,EAAE;QAEd,IAAA,CAAA,WAAW,GAAY,KAAK;QAElD,IAAA,CAAA,iBAAiB,GAAqC,IAAI;AAEjD,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAE3D,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAE/B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;;IAI9D;IAEQ,OAAO,GAAA;AACb,QAAA,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI;AAElC,QAAA,IAAI,CAAC,iBAAiB;AAAE,YAAA,OAAO,EAAE;AAEjC,QAAA,IAAI,iBAAiB,EAAE,YAAY,KAAK,MAAM,EAAE;AAC9C,YAAA,OAAO,eAAe;QACxB;AAEA,QAAA,IAAI,iBAAiB,EAAE,YAAY,KAAK,IAAI,EAAE;AAC5C,YAAA,OAAO,eAAe;QACxB;QAEA,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;AAEhD,QAAA,OAAO,iBAAiB,EAAE,IAAI,IAAI,WAAW,IAAI,EAAE;IACrD;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;QACnC,IAAI,OAAO,GAAG,MAAM;QACpB,MAAM,KAAK,GAAG,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,WAAW,EAAE;YACf,OAAO,GAAG,OAAO;AACjB,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,OAAO,GAAG,MAAM;YAClB;QACF;aAAO;YACL,OAAO,GAAG,MAAM;AAChB,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,OAAO,GAAG,OAAO;YACnB;QACF;AAEA,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,eAAe;YAAE,OAAO,GAAG,OAAO;QACzF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AACrD,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;IACxC;IAEQ,UAAU,GAAA;QAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;QAC7D,IAAI,CAAC,YAAY,EAAE;IACrB;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AACpD,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;QACtC,IAAI,CAAC,UAAU,EAAE;IACnB;8GAjEW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,eAAA,EAAA,OAAA,CAAA,EAAA,WAAA,EAAA,CAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;sBAEE,KAAK;uBAAC,eAAe;;sBAErB,KAAK;uBAAC,qBAAqB;;;ACf9B;;;;AAI6B;;ACA7B,MAAM,YAAY,GAAG,kCAAkC;AAEvD,SAAS,iBAAiB,CAAC,KAAU,EAAA;IACnC,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAC5C;AAEM,SAAU,cAAc,CAAC,OAAwB,EAAA;AACrD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnE,QAAA,OAAO,IAAI;IACb;IACA,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7C,IAAA,IAAI,IAAI;AAAE,QAAA,OAAO,IAAI;IACrB,OAAO;AACL,QAAA,KAAK,EAAE;KACR;AACH;AAEM,SAAU,kBAAkB,CAAC,OAAwB,EAAA;AACzD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnE,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK;AAClD,IAAA,IACE,KAAK;SACJ,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC;YAC1D,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAC5D;QACA,OAAO;AACL,YAAA,SAAS,EAAE;SACZ;IACH;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,iBAAiB,CAAC,OAAwB,EAAE,IAAY,EAAA;AACtE,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnE,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,CAAA,OAAA,EAAU,IAAI,CAAA,CAAE,CAAC,WAAW,EAAE,EAAE;QAC/D,OAAO;AACL,YAAA,qBAAqB,EAAE;SACxB;IACH;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,qBAAqB,CAAC,OAAwB,EAAA;IAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;AAC/B,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;IAE1B,MAAM,UAAU,GAAG,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK;IAClD,MAAM,QAAQ,GAAG,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK;IAC9C,IAAI,SAAS,GAAgB,IAAI;IACjC,IAAI,OAAO,GAAgB,IAAI;IAC/B,IAAI,UAAU,EAAE;AACd,QAAA,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;IAClC;IACA,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;IAC9B;AAEA,IAAA,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AACvC,IAAA,IAAI,SAAS,GAAG,OAAO,EAAE;QACvB,OAAO;AACL,YAAA,0BAA0B,EAAE;SAC7B;IACH;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,YAAY,CAAC,OAAwB,EAAA;AACnD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;IAEhF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC7C,OAAO;AACL,YAAA,GAAG,EAAE;SACN;IACH;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,wBAAwB,CAAC,OAAwB,EAAA;AAC/D,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;AAEhF,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;IAC1B,MAAM,QAAQ,GAAG,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK;IAC/C,MAAM,eAAe,GAAG,MAAM,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,KAAK;AAC7D,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe;AAAE,QAAA,OAAO,IAAI;IAC9C,IAAI,QAAQ,KAAK,eAAe;AAAE,QAAA,OAAO,IAAI;IAE7C,OAAO;AACL,QAAA,oBAAoB,EAAE;KACvB;AACH;AAEM,SAAU,aAAa,CAAC,OAAwB,EAAA;AACpD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AAC5C,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;AAAE,QAAA,OAAO,IAAI;IAEnD,OAAO;AACL,QAAA,WAAW,EAAE;KACd;AACH;AAEM,SAAU,cAAc,CAAC,OAAwB,EAAA;AACrD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AAC5C,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG;AAAE,QAAA,OAAO,IAAI;IAEjD,OAAO;AACL,QAAA,YAAY,EAAE;KACf;AACH;AAEM,SAAU,gBAAgB,CAC9B,OAAwB,EACxB,OAAgB,EAAA;AAEhB,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;AAChF,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;AAC5B,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAC1D,OAAO;AACL,gBAAA,cAAc,EAAE;aACjB;QACH;IACF;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,iBAAiB,CAC/B,OAAwB,EACxB,OAAe,EAAA;AAEf,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;AAChF,IAAA,OAAO,GAAG,CAAA,EAAG,OAAO,EAAE,CAAC,WAAW,EAAE;AACpC,IAAA,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjD,OAAO;AACL,gBAAA,mBAAmB,EAAE;aACtB;QACH;IACF;AAAO,SAAA,IAAI,OAAO,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO;AACL,gBAAA,mBAAmB,EAAE;aACtB;QACH;IACF;AAAO,SAAA,IAAI,OAAO,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO;AACL,gBAAA,mBAAmB,EAAE;aACtB;QACH;IACF;AAAO,SAAA,IAAI,OAAO,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO;AACL,gBAAA,mBAAmB,EAAE;aACtB;QACH;IACF;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,iBAAiB,CAC/B,KAAa,EACb,OAAwB,EAAA;AAExB,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;AAEhF,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;AAE/C,IAAA,IAAI,GAAG,GAAG,KAAK,EAAE;QACf,OAAO;AACL,YAAA,eAAe,EAAE;AACf,gBAAA,IAAI,EAAE;AACP;SACF;IACH;AACA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,aAAa,CAAC,OAAwB,EAAA;AACpD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;IAEhF,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC9C,OAAO;AACL,YAAA,WAAW,EAAE;SACd;IACH;AACA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,oBAAoB,CAAC,OAAwB,EAAA;AAC3D,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;IAEhF,IAAI,OAAO,IAAI,CAAA,EAAG,OAAO,EAAE,KAAK,CAAA,CAAE,KAAK,GAAG,EAAE;QAC1C,OAAO;AACL,YAAA,2BAA2B,EAAE;SAC9B;IACH;AACA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,yBAAyB,CAAC,OAAwB,EAAA;AAChE,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AAE5C,IAAA,IAAI,OAAO,IAAI,CAAC,CAAA,EAAG,OAAO,EAAE,KAAK,CAAA,CAAE,CAAC,IAAI,EAAE,EAAE;QAC1C,OAAO;AACL,YAAA,QAAQ,EAAE;SACX;IACH;AACA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,iBAAiB,CAAC,OAAwB,EAAA;AACxD,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AAE5C,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,OAAO,EAAE,KAAK,CAAA,CAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC5D,IAAA,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO;AACL,YAAA,iBAAiB,EAAE;SACpB;IACH;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,uBAAuB,CACrC,IAAY,EACZ,OAAwB,EAAA;AAExB,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;IAEhF,MAAM,MAAM,GAAG,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9D,IAAI,KAAK,GAAG,KAAK;IACjB,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,EAAE;AACrC,QAAA,IACE,CAAC,IAAI,KAAK,MAAM,IAAI,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC,MAAM,KAAK,EAAE;AAC7C,aAAC,IAAI,KAAK,KAAK,IAAI,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC,MAAM,KAAK,EAAE,CAAC,EAC7C;YACA,KAAK,GAAG,KAAK;QACf;aAAO;YACL,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC;QACtD;IACF;AAAO,SAAA,IAAI,IAAI,KAAK,KAAK,EAAE;QACzB,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD;AAAO,SAAA,IAAI,IAAI,KAAK,KAAK,EAAE;QACzB,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD;AAAO,SAAA,IAAI,IAAI,KAAK,KAAK,EAAE;QACzB,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD;IAEA,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;AACL,YAAA,CAAC,CAAA,OAAA,EAAU,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA,CAAE,GAAG;SAC/D;IACH;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,gBAAgB,CAAC,OAAwB,EAAA;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;AACnC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI;IAEvB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;IACnC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAS,KAAI;AAC/C,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC;AACxB,IAAA,CAAC,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,EAAE;AACvC,QAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3B;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,cAAc,CAAC,OAAwB,EAAA;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;AACnC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI;AAEvB,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI;AAC3D;MAEa,gBAAgB,CAAA;IAC3B,OAAO,KAAK,CAAC,OAAwB,EAAA;AACnC,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC;IAChC;IAEA,OAAO,SAAS,CAAC,OAAwB,EAAA;AACvC,QAAA,OAAO,kBAAkB,CAAC,OAAO,CAAC;IACpC;IAEA,OAAO,qBAAqB,CAAC,OAAwB,EAAA;AACnD,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC;IAC9C;IAEA,OAAO,mBAAmB,CAAC,OAAwB,EAAA;AACjD,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5C;IAEA,OAAO,YAAY,CAAC,OAAwB,EAAA;AAC1C,QAAA,OAAO,qBAAqB,CAAC,OAAO,CAAC;IACvC;IAEA,OAAO,GAAG,CAAC,OAAwB,EAAA;AACjC,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC;IAC9B;IAEA,OAAO,eAAe,CAAC,OAAwB,EAAA;AAC7C,QAAA,OAAO,wBAAwB,CAAC,OAAO,CAAC;IAC1C;IAEA,OAAO,IAAI,CAAC,OAAwB,EAAA;AAClC,QAAA,OAAO,aAAa,CAAC,OAAO,CAAC;IAC/B;IAEA,OAAO,KAAK,CAAC,OAAwB,EAAA;AACnC,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC;IAChC;IAEA,OAAO,OAAO,CAAC,OAAwB,EAAA;AACrC,QAAA,OAAO,gBAAgB,CAAC,OAAO,CAAC;IAClC;IAEA,OAAO,gBAAgB,CAAC,OAAe,EAAA;QACrC,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,OAAO,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3C,QAAA,CAAC;IACH;IAEA,OAAO,UAAU,CAAC,OAAwB,EAAA;AACxC,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;IACzC;IAEA,OAAO,UAAU,CAAC,OAAwB,EAAA;AACxC,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;IACzC;IAEA,OAAO,UAAU,CAAC,OAAwB,EAAA;AACxC,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;IACzC;IAEA,OAAO,UAAU,CAAC,OAAwB,EAAA;AACxC,QAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;IACzC;IAEA,OAAO,IAAI,CAAC,OAAwB,EAAA;AAClC,QAAA,OAAO,aAAa,CAAC,OAAO,CAAC;IAC/B;IAEA,OAAO,QAAQ,CAAC,KAAa,EAAA;QAC3B,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,OAAO,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,QAAA,CAAC;IACH;IAEA,OAAO,eAAe,CAAC,OAAwB,EAAA;AAC7C,QAAA,OAAO,oBAAoB,CAAC,OAAO,CAAC;IACtC;IAEA,OAAO,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,OAAO,yBAAyB,CAAC,OAAO,CAAC;IAC3C;IAEA,OAAO,iBAAiB,CAAC,OAAwB,EAAA;AAC/C,QAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC;IACnC;IAEA,OAAO,uBAAuB,CAAC,IAAY,EAAA;QACzC,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC;AAC/C,QAAA,CAAC;IACH;IAEA,OAAO,gBAAgB,CAAC,OAAwB,EAAA;AAC9C,QAAA,OAAO,gBAAgB,CAAC,OAAO,CAAC;IAClC;IAEA,OAAO,cAAc,CAAC,OAAwB,EAAA;AAC5C,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC;IAChC;AACD;;MCxYY,yBAAyB,CAAA;AADtC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAe7D,IAAA;IAbC,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE;AACpC,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE;AAC3C,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE;AAE5C,QAAA,OAAO,KAAK;IACd;8GAfW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cADZ,MAAM,EAAA,CAAA,CAAA;;2FACnB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCCrB,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAe7D,IAAA;IAbC,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE;AAC5C,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI;IACb;8GAfW,uBAAuB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA,CAAA;;2FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCGrB,wBAAwB,CAAA;IAQnC,WAAA,CACU,YAA0C,EAC1C,MAAc,EAAA;QADd,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,MAAM,GAAN,MAAM;QATR,IAAA,CAAA,mBAAmB,GAGhB,IAAI;QAEP,IAAA,CAAA,gBAAgB,GAAQ,IAAI;;IAOpC;IAEQ,mBAAmB,GAAA;AACzB,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;AACjC,QAAA,MAAM,WAAW,GAAG,gBAAgB,EAAE,WAAW;QACjD,IAAI,IAAI,GAAG,sBAAsB;QACjC,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,GAAG,CAAA,KAAA,EAAQ,WAAW,CAAA,gBAAA,CAAkB;QAC9C;AACA,QAAA,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC9C;IAEQ,OAAO,GAAA;AACb,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;AAEjC,QAAA,IAAI,CAAC,gBAAgB;AAAE,YAAA,OAAO,EAAE;AAChC,QAAA,IAAI,gBAAgB,EAAE,YAAY,KAAK,MAAM,EAAE;AAC7C,YAAA,OAAO,eAAe;QACxB;AACA,QAAA,IAAI,gBAAgB,EAAE,YAAY,KAAK,IAAI,EAAE;AAC3C,YAAA,OAAO,eAAe;QACxB;AAEA,QAAA,OAAO,gBAAgB,EAAE,IAAI,IAAI,EAAE;IACrC;IAEQ,qBAAqB,CAAC,KAAe,EAAE,WAAoB,EAAA;QACjE,IAAI,CAAC,KAAK,EAAE,MAAM;AAAE,YAAA,OAAO,IAAI;QAE/B,MAAM,KAAK,GAAG,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,GAAG,GAAG,KAAK;QACf,IAAI,WAAW,EAAE;YACf,GAAG,GAAG,IAAI;AACV,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,GAAG,GAAG,KAAK;YACb;QACF;aAAO;YACL,GAAG,GAAG,KAAK;AACX,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,GAAG,GAAG,IAAI;YACZ;QACF;AACA,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,eAAe,EAAE;YACtE,GAAG,GAAG,IAAI;QACZ;AACA,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,MAAM,WAAW,CAAC,KAA6B,EAAE,KAA0B,EAAA;QACzE,IAAI,CAAC,mBAAmB,GAAI,KAAK,CAAC,IAAY,EAAE,mBAAmB;AACnE,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,mBAAmB;YAEvD,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YAE1D,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;gBACnD,IAAI,CAAC,mBAAmB,EAAE;AAC1B,gBAAA,OAAO,KAAK;YACd;QACF;AAEA,QAAA,OAAO,IAAI;IACb;8GA3EW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;;2FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAW7D,IAAA;IATC,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE;AACpC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE;AAE5C,QAAA,OAAO,KAAK;IACd;8GAXW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACaD,MAAM,qBAAqB,GAAG,CAAC,OAAyB,KAAa;AACnE,IAAA,MAAM,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,IAAI,CAAA,CAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACnE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,IAAI;AACzD,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,QAA2B,KAAa;IACnE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ;AACvC,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI;AACxB,QAAA,IAAI,EAAE;KACP;IAED,MAAM,KAAK,GAAG,4CAA4C;IAE1D,IAAI,WAAW,GAAG,IAAI;IACtB,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7C,QAAA,WAAW,GAAG,KAAK,EAAE,KAAK;IAC5B;IAEA,IAAI,IAAI,KAAK,OAAO;AAAE,QAAA,OAAO,KAAK;AAClC,IAAA,IAAI,GAAG,EAAE,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA,EAAG,WAAW,CAAA,CAAE,EAAE,WAAW,EAAE,CAAC,EAAE;AACvF,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AACnC,QAAA,OAAO,KAAK;IACd;IAEA,OAAO,MAAM,KAAK,GAAG;AACvB,CAAC;MAEY,8BAA8B,GAAsB,CAC/D,GAAqB,EACrB,IAAmB,KACW;AAC9B,IAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAChE,IAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,4BAA4B,CAAC;IAChE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAElD,IAAA,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE;AAC9B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB;AAEA,IAAA,MAAM,KAAK,GAAG,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IACvE,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACvD,IAAA,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAErD,IAAA,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAC1BC,KAAG,CAAC,CAAC,KAAqB,KAAI;AAC5B,QAAA,OAAO,KAAK;AACd,IAAA,CAAC,CAAC,EACFC,YAAU,CAAC,CAAC,KAAwB,KAAI;AACtC,QAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;AAC9B,YAAA,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;YAC7C,OAAO,mBAAmB,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC;QAC/D;AAEA,QAAA,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;QAC7C,OAAO,UAAU,CAAC,MAAK;AACrB,YAAA,OAAO,KAAK;AACd,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC,EACFC,UAAQ,CAAC,MAAK;AACZ,QAAA,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC;IAC1C,CAAC,CAAC,CACH;AACH;;ACnFA;;;;AAI6B;;ACJ7B;;;;AAI6B;;ACJ7B;;;;AAI6B;MAsBhB,mBAAmB,CAAA;AAC9B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE;AACX,iBAAA;AACD,gBAAA,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACrE,qBAAqB,CAAC,MAAK;oBACzB,MAAM,aAAa,GAAG,2BAA2B,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;oBAC/E,OAAO,aAAa,EAAE;AACxB,gBAAA,CAAC,CAAC;AACF,gBAAA,YAAY,EAAE;AACd,gBAAA,YAAY,CAAC;AACX,oBAAA,IAAI,EAAEN,UAAwC;AAC9C,oBAAA,OAAO,EAAEO;iBACV;AACF;SACF;IACH;8GArBW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAFpB,YAAY,CAAA,EAAA,CAAA,CAAA;AAEX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAFpB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAEX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY;AACvB,iBAAA;;;ACzBD;;;;AAI6B;MAWhB,uBAAuB,CAAA;AAKlC,IAAA,WAAA,GAAA;AAJiB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEnC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;;IAIlD;AAEA,IAAA,SAAS,CAAC,GAAW,EAAA;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAC1DH,KAAG,CAAC,CAAC,GAAQ,KAAI;AACf,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACzE,CAAC,CAAC,CACH;IACH;8GAfW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAvB,uBAAuB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACdD;;;;AAI6B;MAQhB,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;AAKmB,QAAA,IAAA,CAAA,mBAAmB,GAAG,sBAAsB,CAC3D,qBAAqB,EACrB,uBAAuB,CACvB;AAcH,IAAA;AAZC,IAAA,SAAS,CAAC,KAAU,EAAE,IAAA,GAA0B,QAAQ,EAAA;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,IAAI,KAAK;AAE9D,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE;SACN,CAAC,QAAQ,CAAC;AAEX,QAAA,OAAO,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,IAAI,KAAK,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG;IAC9D;8GAjBW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAzB,yBAAyB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACXD;;;;AAI6B;MAQhB,6BAA6B,CAAA;AACxC,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,EAAE;AAC9D,QAAA,OAAO,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC;IAC9C;8GAJW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA7B,6BAA6B,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,2BAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,2BAA2B;AACjC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACXD;;;;AAI6B;MAQhB,4BAA4B,CAAA;AACvC,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,EAAE;QAC9D,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;QAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC;AAC5D,QAAA,OAAO,CAAA,EAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;IACnD;8GANW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA5B,4BAA4B,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,0BAAA,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,0BAA0B;AAChC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACXD;;;;AAI6B;MAOhB,0BAA0B,CAAA;IACrC,SAAS,CAAC,EACR,OAAO,EACP,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,KAAK,EAQN,EAAA;QACC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK;AAChD,aAAA,MAAM,CAAC,CAAC,CAAS,KAAI;AACpB,YAAA,OAAO,CAAC;AACV,QAAA,CAAC;aACA,IAAI,CAAC,IAAI,CAAC;IACf;8GApBW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA1B,0BAA0B,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,wBAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,wBAAwB;AAC9B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACVD;;;;AAI6B;MAOhB,+BAA+B,CAAA;AAC1C,IAAA,WAAA,GAAA;;IAEA;AAEA,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,MAAM,QAAQ,GAAG,iDAAiD;AAElE,QAAA,MAAM,QAAQ,GAAG,CACf,KAAU,EACV,OAAe,EACf,IAAY,EACZ,IAAuB,EACvB,IAAS,KACP;YACF,MAAM,GAAG,GAAG,8CAA8C;YAC1D,MAAM,GAAG,GAAG,+CAA+C;YAC3D,MAAM,GAAG,GAAG,iDAAiD;AAC7D,YAAA,IAAI,CAAC,GAAG,OAAO,IAAI,EAAE;YACrB,IAAI,IAAI,EAAE;AACR,gBAAA,CAAC,GAAG,CAAA,EAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW;YACxD;YACA,IAAI,IAAI,EAAE;gBACR,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAA,OAAA,CAAS;YAC1D;AACA,YAAA,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;AACzB,QAAA,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;AACjC,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO;AACrB,aAAA,OAAO,CAAC,MAAM,EAAE,QAAQ;AACxB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM;AACpB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM;AACpB,aAAA,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAChC;8GAlCW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA/B,+BAA+B,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,6BAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,6BAA6B;AACnC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCGY,2BAA2B,CAAA;AAQtC,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAA,CAAA,YAAY,GAAZ,YAAY;AAPf,QAAA,IAAA,CAAA,mBAAmB,GAAG,sBAAsB,CAC3D,qBAAqB,EACrB,uBAAuB,CACvB;AAEe,QAAA,IAAA,CAAA,SAAS,GAAG,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAE;;IAI5E;AAEA,IAAA,SAAS,CAAC,KAAU,EAAE,MAAM,GAAG,QAAQ,EAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AAExC,QAAA,IAAI;AACF,YAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;AACtB,gBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;gBAC1E,GAAG,GAAG,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AACvC,gBAAA,OAAO,GAAG,GAAG,CAAA,EAAG,MAAM,KAAK,EAAE,GAAG,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,GAAG,EAAE,EAAE;YACvD;AAEA,YAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;AACtB,gBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC;gBACrE,GAAG,GAAG,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AACvC,gBAAA,OAAO,GAAG,GAAG,CAAA,EAAG,MAAM,KAAK,EAAE,GAAG,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,GAAG,EAAE,EAAE;YACvD;AAEA,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC;QACzE;QAAE,OAAO,CAAC,EAAE;;QAEZ;AACA,QAAA,OAAO,KAAK;IACd;8GAlCW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA3B,2BAA2B,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,yBAAyB;AAC/B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCCY,uBAAuB,CAAA;AAKlC,IAAA,WAAA,CAAoB,EAAY,EAAA;QAAZ,IAAA,CAAA,EAAE,GAAF,EAAE;AAJL,QAAA,IAAA,CAAA,WAAW,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,kBAAkB,CAAE;AAE3E,QAAA,IAAA,CAAA,SAAS,GAAG,sBAAsB,CAAC,mBAAmB,EAAE,qBAAqB,CAAE;;IAIhG;IAEA,SAAS,CAAC,IAAgB,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAA;AAC9D,QAAA,MAAM,OAAO,GACX,IAAI,YAAY;AACd,cAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG;AAC5D,cAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAExB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;QACxC;AAEA,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnE;8GApBW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAvB,uBAAuB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACZD;;;;AAI6B;MAShB,2BAA2B,CAAA;AAJxC,IAAA,WAAA,GAAA;AAKmB,QAAA,IAAA,CAAA,QAAQ,GAAG,sBAAsB,CAAC,YAAY,EAAE,cAAc,CAAE;AASlF,IAAA;AAPC,IAAA,SAAS,CAAC,QAAgB,EAAE,QAAQ,GAAG,KAAK,EAAA;QAC1C,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE;AACvD,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,OAAO,cAAc,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IACjF;8GATW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA3B,2BAA2B,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,yBAAyB;AAC/B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACZD;;;;AAI6B;MAShB,yBAAyB,CAAA;AACpC,IAAA,SAAS,CAAC,MAAc,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,EAAE;QAEhE,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC7C;8GALW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAzB,yBAAyB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACZD;;;;AAI6B;MAOhB,wBAAwB,CAAA;AACnC,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,KAAK,GAAG,CAAA,EAAG,KAAK,IAAI,EAAE,CAAA,CAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAEjD,IAAI,QAAQ,GAAG,EAAE;AAEjB,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBACrB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE,gBAAgB,CAAC;YAC/E;AAAO,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBAC5B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE,gBAAgB,CAAC;YAC/E;AAAO,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBAC5B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC;YACnE;AAAO,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC;YACnE;AAAO,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,4BAA4B,EAAE,YAAY,CAAC;YACtE;AAAO,iBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC;YAC3D;AAAO,iBAAA,IAAI,KAAK,KAAK,EAAE,EAAE;gBACvB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;YAC3C;AACA,YAAA,OAAO,QAAQ;QACjB;AACA,QAAA,OAAO,EAAE;IACX;8GAzBW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAxB,wBAAwB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,sBAAsB;AAC5B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACVD;;;;AAI6B;MAQhB,uBAAuB,CAAA;AAClC,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;AACvB,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;AAC5B,QAAA,OAAO,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC;IAC/C;8GALW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAvB,uBAAuB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACXD;;;;AAI6B;MAQhB,sBAAsB,CAAA;AACjC,IAAA,SAAS,CAAC,GAAW,EAAE,aAAA,GAAwB,CAAC,EAAA;AAC9C,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK;AAChE,QAAA,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE;AAChC,QAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC;QACvF,OAAO,CAAA,EAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE;AACzD,YAAA,qBAAqB,EAAE;AACxB,SAAA,CAAC,IAAI;IACR;8GARW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAtB,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,oBAAoB;AAC1B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACXD;;;;AAI6B;MAShB,+BAA+B,CAAA;AAJ5C,IAAA,WAAA,GAAA;AAKmB,QAAA,IAAA,CAAA,QAAQ,GAAG,sBAAsB,CAAC,YAAY,EAAE,cAAc,CAAE;AAMlF,IAAA;AAJC,IAAA,SAAS,CAAC,QAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,EAAE;QAClE,OAAO,cAAc,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;IAChE;8GANW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA/B,+BAA+B,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,6BAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,6BAA6B;AACnC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACZD;;;;AAI6B;MAQhB,oBAAoB,CAAA;AAC/B,IAAA,SAAS,CAAC,MAAc,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,EAAE;AAChE,QAAA,OAAO,MAAM;IACf;8GAJW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAApB,oBAAoB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,sBAAsB;AAC5B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACXD;;;;AAI6B;MAQhB,0BAA0B,CAAA;AACrC,IAAA,SAAS,CAAC,OAAe,EAAA;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,OAAO,CAAC;AAAE,YAAA,OAAO,EAAE;AACjE,QAAA,OAAO,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC;IAC9C;8GAJW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA1B,0BAA0B,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,wBAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,wBAAwB;AAC9B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACXD;;;;AAI6B;MAOhB,yBAAyB,CAAA;AACpC,IAAA,SAAS,CAAC,IAAY,EAAE,SAAA,GAAoB,EAAE,EAAA;QAC5C,MAAM,OAAO,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,OAAO;AACzB,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;AAAE,YAAA,OAAO,IAAI;QAEjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC;AAEpC,QAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;IACtE;8GAVW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAzB,yBAAyB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACVD;;;;AAI6B;MAOhB,wBAAwB,CAAA;IACnC,SAAS,CAAC,MAAc,EAAE,SAAiB,EAAA;AACzC,QAAA,OAAO,CAAA,EAAG,MAAM,GAAG,SAAS,GAAG,CAAA,EAAG,SAAS,GAAG,GAAG,MAAM,EAAE;IAC3D;8GAHW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAxB,wBAAwB,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,sBAAsB;AAC5B,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACVD;;;;AAI6B;MAiEhB,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAzC7B,uBAAuB;YACvB,6BAA6B;YAC7B,4BAA4B;YAC5B,0BAA0B;YAC1B,+BAA+B;YAC/B,2BAA2B;YAC3B,yBAAyB;YACzB,2BAA2B;YAC3B,+BAA+B;YAC/B,yBAAyB;YACzB,wBAAwB;YACxB,uBAAuB;YACvB,sBAAsB;YACtB,oBAAoB;YACpB,0BAA0B;YAC1B,yBAAyB;YACzB,wBAAwB;AACxB,YAAA,uBAAuB,aAGvB,uBAAuB;YACvB,6BAA6B;YAC7B,4BAA4B;YAC5B,0BAA0B;YAC1B,+BAA+B;YAC/B,2BAA2B;YAC3B,yBAAyB;YACzB,2BAA2B;YAC3B,+BAA+B;YAC/B,yBAAyB;YACzB,wBAAwB;YACxB,uBAAuB;YACvB,sBAAsB;YACtB,oBAAoB;YACpB,0BAA0B;YAC1B,yBAAyB;YACzB,wBAAwB;YACxB,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAId,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,SAAA,EAFpB,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAA,CAAA,CAAA;;2FAExB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA3ChC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,uBAAuB;wBACvB,6BAA6B;wBAC7B,4BAA4B;wBAC5B,0BAA0B;wBAC1B,+BAA+B;wBAC/B,2BAA2B;wBAC3B,yBAAyB;wBACzB,2BAA2B;wBAC3B,+BAA+B;wBAC/B,yBAAyB;wBACzB,wBAAwB;wBACxB,uBAAuB;wBACvB,sBAAsB;wBACtB,oBAAoB;wBACpB,0BAA0B;wBAC1B,yBAAyB;wBACzB,wBAAwB;wBACxB;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,uBAAuB;wBACvB,6BAA6B;wBAC7B,4BAA4B;wBAC5B,0BAA0B;wBAC1B,+BAA+B;wBAC/B,2BAA2B;wBAC3B,yBAAyB;wBACzB,2BAA2B;wBAC3B,+BAA+B;wBAC/B,yBAAyB;wBACzB,wBAAwB;wBACxB,uBAAuB;wBACvB,sBAAsB;wBACtB,oBAAoB;wBACpB,0BAA0B;wBAC1B,yBAAyB;wBACzB,wBAAwB;wBACxB;AACD,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,YAAY,EAAE,QAAQ;AACnC,iBAAA;;;ACpED;;;;AAI6B;;ACFvB,SAAU,0BAA0B,CAAC,SAAiB,EAAA;IAC1D,OAAO,oBAAoB,CAAC,SAAS,EAAE;AACrC,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,oBAAoB,EAAE;AACvB,KAAA,CAAC;AACJ;;ACDA,MAAM,cAAc,GAA4B;AAC9C,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,YAAY,EAAE;CACf;MAEqB,qBAAqB,CAAA;AAA3C,IAAA,WAAA,GAAA;AACkB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAEvB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAuC,EAAE,CAAC;AAE7E,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAEpD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAmC,cAAc,mDAAC;IA8C3E;AA5CE,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;IAC5C;AAEA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW;IAC7C;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS;IAC3C;AAEA,IAAA,OAAO,CAAC,KAA6B,EAAA;AACnC,QAAA,IAAI;AACF,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM;AAC/B,YAAA,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK;YAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YACzD,IAAI,SAAS,GAAG,EAAE;YAElB,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,EAAE,GAAG,CAAC,EAAE;;gBAEjD,SAAS,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YACnD;AAEA,YAAA,MAAM,GAAG,GAAG;gBACV,UAAU;gBACV,WAAW;gBACX;aACD;AAED,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AAE5B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACzB;QAAE,OAAO,KAAK,EAAE;YACd,aAAa,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE,6BAA6B;gBACtC,KAAK,EAAE,EAAE,KAAK;AACf,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;AAGD;;MCpDqB,qBAAqB,CAAA;AAgB1B,IAAA,SAAA,IAAA,CAAA,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExD,IAAA,WAAA,GAAA;AAjBiB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5B,QAAA,IAAA,CAAA,SAAS,GAAG,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAC;AAE1D,QAAA,IAAA,CAAA,iBAAiB,GAAG,sBAAsB,CACzD,sBAAsB,EACtB,wBAAwB,CACxB;AAEe,QAAA,IAAA,CAAA,SAAS,GAAG,sBAAsB,CAAS,cAAc,EAAE,gBAAgB,CAAE;AAE7E,QAAA,IAAA,CAAA,UAAU,GAAG,sBAAsB,CAAS,eAAe,EAAE,iBAAiB,CAAE;AAEhF,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;;IAM5E;IAEA,OAAO,GAAA;QACL,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACpD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS;AAC1E,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAE3B,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5B,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QAE3B,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAA,OAAA,EAAU,IAAI,CAAA,MAAA,EAAS,MAAM,CAAA,KAAA,CAAO,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;AACpF,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,MAAM,EAAE;AACpC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QAEtB,MAAM,UAAU,GAAG,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnE,IAAI,UAAU,IAAI,GAAG,GAAG,UAAU,GAAG,0BAA0B,EAAE;AAC/D,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;QACjB;AAEA,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1B,GAAG,CAAC,CAAC,YAAiB,KAAI;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAO,EAAE;AACzC,gBAAA,CAAC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;AACjC,aAAA,CAAC;YACF,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;AACrD,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC,EACF,UAAU,CAAC,MAAK;AACd,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC,CAAC,CACH;IACH;IAEA,OAAO,GAAA;AACL,QAAA,OAAO,EAAE;IACX;8GAxDoB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAD1C;;;ACdD;AACA;;;;AAI6B;MAOhB,yBAAyB,CAAA;AAHtC,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,EAA+B;AAErC,QAAA,IAAA,CAAA,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAqDhD,IAAA;AAnDS,IAAA,SAAS,CAAC,SAAiB,EAAA;QACjC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,aAAa;IACpD;IAEA,QAAQ,CAAC,QAAgB,EAAE,IAAU,EAAA;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACrE;AAEA,IAAA,OAAO,CAAC,QAAgB,EAAA;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;QAEvB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC3B,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,CAAC,QAAgB,EAAA;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;QAEtB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC3B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,QAAQ,CAAC,QAAgB,EAAA;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnC,QAAA,IAAI,CAAC,IAAI;YAAE;QAEX,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACrC,QAAA,CAAC,CAAC,IAAI,GAAG,GAAG;AACZ,QAAA,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC1B,CAAC,CAAC,KAAK,EAAE;AACT,QAAA,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;IAC1B;AAEA,IAAA,UAAU,CAAC,QAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC7B;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;IACpB;8GAvDW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA;;2FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACXD;;;;AAI6B;MAQhB,+BAA+B,CAAA;AAC1C,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAA,CAAA,MAAM,GAAN,MAAM;;IAE1B;AAEQ,IAAA,YAAY,CAAC,KAA6B,EAAA;AAChD,QAAA,IAAI,KAAK,CAAC,UAAU,EAAE;YACpB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5C;AAEA,QAAA,OAAO,KAAK;IACd;IAEO,OAAO,CAAC,KAAa,EAAE,KAAU,EAAA;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ;QACjD,MAAM,KAAK,GAA2B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC7D,QAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK;IAC3B;AAEO,IAAA,OAAO,CAAC,KAAa,EAAA;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ;QACjD,MAAM,KAAK,GAA2B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAE7D,MAAM,KAAK,GAAQ,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;AAC7F,QAAA,OAAO,KAAK;IACd;IAEO,4BAA4B,CAAC,KAAa,EAAE,MAAe,EAAA;AAChE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,MAAM,EAAE,oBAAoB,EAAE;QACpF,IAAI,KAAK,GAAQ,IAAI;AACrB,QAAA,IAAI,cAAc,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE;AACxD,YAAA,KAAK,GAAG,UAAU,EAAE,MAAM,CAAC,KAAK;QAClC;AAEA,QAAA,OAAO,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI;IACpC;AAEO,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ;QACjD,MAAM,KAAK,GAA2B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC7D,QAAA,IAAI,KAAK,GAAW,cAAc,CAAC,yBAAyB,CAAC,KAAK;cAC9D,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;cAC/B,EAAE;AACN,QAAA,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAAE,YAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACjF,QAAA,OAAO,KAAK;IACd;8GA7CW,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF9B,MAAM,EAAA,CAAA,CAAA;;2FAEP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACXD;;;;AAI6B;;ACJ7B;;AAEG;;;;"}
1
+ {"version":3,"file":"monkey-front-core.mjs","sources":["../../../projects/monkey-front-core/src/lib/injectors/index.ts","../../../projects/monkey-front-core/src/lib/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/store/actions/monkeyecx-storage.actions.ts","../../../projects/monkey-front-core/src/lib/store/actions/index.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-seeder.reducer.ts","../../../projects/monkey-front-core/src/lib/store/reducers/monkeyecx-storage.reducer.ts","../../../projects/monkey-front-core/src/lib/store/reducers/index.ts","../../../projects/monkey-front-core/src/lib/store/selectors/monkeyecx-storage.selector.ts","../../../projects/monkey-front-core/src/lib/store/selectors/index.ts","../../../projects/monkey-front-core/src/lib/store/index.ts","../../../projects/monkey-front-core/src/lib/storage/monkeyecx-token-storage.service.ts","../../../projects/monkey-front-core/src/lib/storage/index.ts","../../../projects/monkey-front-core/src/lib/enums/cache.ts","../../../projects/monkey-front-core/src/lib/enums/country.ts","../../../projects/monkey-front-core/src/lib/enums/index.ts","../../../projects/monkey-front-core/src/lib/utils/utils.ts","../../../projects/monkey-front-core/src/lib/utils/index.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-configs.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-alerts.service.ts","../../../projects/monkey-front-core/src/lib/services/dictionary/monkey-dictionary.service.ts","../../../projects/monkey-front-core/src/lib/services/dictionary/index.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-console.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-datadog.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-error.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-feature-toggle.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-gtm.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-new-version.service.ts","../../../projects/monkey-front-core/src/lib/services/connection/connection.service.ts","../../../projects/monkey-front-core/src/lib/services/request/monkeyecx-request-error.service.ts","../../../projects/monkey-front-core/src/lib/services/request/monkeyecx-request-state.service.ts","../../../projects/monkey-front-core/src/lib/services/request/index.ts","../../../projects/monkey-front-core/src/lib/services/monkeyecx.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-locale.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-maintenance.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-style-guide.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-update.service.ts","../../../projects/monkey-front-core/src/lib/services/config/monkeyecx-init.service.ts","../../../projects/monkey-front-core/src/lib/services/config/index.ts","../../../projects/monkey-front-core/src/lib/services/l/l.service.ts","../../../projects/monkey-front-core/src/lib/services/l/index.ts","../../../projects/monkey-front-core/src/lib/services/schedule/monkeyecx-schedule.service.ts","../../../projects/monkey-front-core/src/lib/services/schedule/index.ts","../../../projects/monkey-front-core/src/lib/services/logged/monkeyecx-logged-handle.service.ts","../../../projects/monkey-front-core/src/lib/services/logged/index.ts","../../../projects/monkey-front-core/src/lib/services/auth/auth.service.ts","../../../projects/monkey-front-core/src/lib/services/error/monkeyecx-global-error-handler.service.ts","../../../projects/monkey-front-core/src/lib/services/error/index.ts","../../../projects/monkey-front-core/src/lib/services/icons/monkey-icons.service.ts","../../../projects/monkey-front-core/src/lib/services/icons/index.ts","../../../projects/monkey-front-core/src/lib/services/store/monkeyecx-store.actions.ts","../../../projects/monkey-front-core/src/lib/services/store/monkeyecx-store.selector.ts","../../../projects/monkey-front-core/src/lib/model/monkeyecx-model.ts","../../../projects/monkey-front-core/src/lib/model/monkeyecx-links.model.ts","../../../projects/monkey-front-core/src/lib/model/index.ts","../../../projects/monkey-front-core/src/lib/services/store/monkeyecx-store.service.ts","../../../projects/monkey-front-core/src/lib/services/store/index.ts","../../../projects/monkey-front-core/src/lib/services/validation/monkeyecx-validation.service.ts","../../../projects/monkey-front-core/src/lib/services/index.ts","../../../projects/monkey-front-core/src/lib/decorators/monkeyecx-decorators.ts","../../../projects/monkey-front-core/src/lib/decorators/index.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-error-message.directive.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-feature-by-program-directive.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-feature-directive.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-loading.ts","../../../projects/monkey-front-core/src/lib/directives/monkeyecx-security-directive.ts","../../../projects/monkey-front-core/src/lib/directives/index.ts","../../../projects/monkey-front-core/src/lib/form-validators/validators.ts","../../../projects/monkey-front-core/src/lib/guards/monkeyecx-auth-guard-company.service.ts","../../../projects/monkey-front-core/src/lib/guards/monkeyecx-auth-guard-login.service.ts","../../../projects/monkey-front-core/src/lib/guards/monkeyecx-auth-guard-role.service.ts","../../../projects/monkey-front-core/src/lib/guards/monkeyecx-auth-guard.service.ts","../../../projects/monkey-front-core/src/lib/interceptors/monkeyecx-http.interceptor.ts","../../../projects/monkey-front-core/src/lib/interceptors/index.ts","../../../projects/monkey-front-core/src/lib/interfaces/index.ts","../../../projects/monkey-front-core/src/lib/monkey-front-core.module.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-blob-secure.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-currency-code.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-display-first-name.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-display-initials.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-address.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-beautify-json.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-date.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-document.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-number.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-phone.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-size.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-tax.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-type-document.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-value.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-format-zipcode.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-text-truncate.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-truncate-qtd.ts","../../../projects/monkey-front-core/src/lib/pipes/monkeyecx-pipes.module.ts","../../../projects/monkey-front-core/src/lib/pipes/index.ts","../../../projects/monkey-front-core/src/lib/providers/service-worker.ts","../../../projects/monkey-front-core/src/lib/resolvers/base.resolver.ts","../../../projects/monkey-front-core/src/lib/resolvers/i18n.resolver.ts","../../../projects/monkey-front-core/src/lib/services/cache/monkeyecx-file-cache.service.ts","../../../projects/monkey-front-core/src/lib/services/routes/monkeyecx-dicovery-params.service.ts","../../../projects/monkey-front-core/src/public-api.ts","../../../projects/monkey-front-core/src/monkey-front-core.ts"],"sourcesContent":["/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpContextToken } from '@angular/common/http';\nimport { inject, InjectionToken } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n MonkeyEcxBootstrapService,\n MonkeyEcxRedirectLoginWelcomeBackStrategy,\n MonkeyEcxRefreshTokenStrategy\n} from '../interfaces';\n\nexport function injectTokenWithWarning<T>(token: InjectionToken<T>, name?: string): T | null {\n const value = inject(token, { optional: true });\n if (!value) {\n console.error(`MECXInjectors -> Token \"${name || token.toString()}\" is not provided.`);\n }\n return value;\n}\n\nexport const MECX_TIMEZONEOFFSET = new InjectionToken<string>('');\nexport const MECX_DATE_FORMAT = new InjectionToken<string>('');\nexport const MECX_COUNTRY = new InjectionToken<string>('');\nexport const MECX_ALPHA = new InjectionToken<string>('');\nexport const MECX_BETA = new InjectionToken<string>('');\n/**\n * This is a token to be used to every request context. Just for internal of core use.\n */\nexport const MECX_REQUEST_ID = new HttpContextToken<string>(() => {\n return '';\n});\n\n/**\n * This is a token to be used with a service created in the project who uses\n * this library. We always be use this service to callback the messages from intercetors or related\n *\n * ### Example\n * ```\n * {\n * provide: MECX_SERVICE_MESSAGE,\n * useClass: AppServiceErrorMessage\n * },\n * ```\n * ### Service\n * ```\n * @Injectable()\n * export class AppServiceErrorMessage implements MonkeyEcxServiceMessage {\n * handleMessage(message: string, type: string): void {\n * throw new Error('Method not implemented.');\n * }\n * }\n * ```\n */\nexport const MECX_BOOTSTRAP_SERVICE = new InjectionToken<MonkeyEcxBootstrapService>(\n 'MonkeyEcxBootstrapService'\n);\n\nexport const MECX_CORE_I18N_WRAPPER = new InjectionToken<BehaviorSubject<string>>('');\n\n/**\n * ```\n * providers: [\n * {\n * provide: MONKEY_REFRESH_TOKEN,\n * useValue: () => {\n * // Custom refresh logic here\n * return http.post('/auth/refresh');\n * }\n * }\n *]\n * ```\n */\nexport const MECX_REFRESH_TOKEN_STRATEGY = new InjectionToken<MonkeyEcxRefreshTokenStrategy>(\n 'MECX_REFRESH_TOKEN_STRATEGY'\n);\nexport const MECX_REDIRECT_LOGIN_WELCOMEBACK_STRATEGY =\n new InjectionToken<MonkeyEcxRedirectLoginWelcomeBackStrategy>(\n 'MECX_REDIRECT_LOGIN_WELCOMEBACK_STRATEGY'\n );\n\nexport const MECX_I18N_PATH = new InjectionToken<string>('MECX_I18N_PATH');\nexport const MECX_I18N_ALIAS = new InjectionToken<string>('MECX_I18N_ALIAS');\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../injectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxCookieStorageService {\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n constructor(private cookieService: CookieService) {\n // not to do\n }\n\n public setCookie(name: string, value: any) {\n try {\n const env = this._bootstrapService.getEnv();\n this.removeCookie(name);\n const { urlDomain } = env;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.set(name, value, undefined, '/', handledDomain, true, 'None');\n } catch (err) {\n console.error('MonkeyEcxCookieStorageService -> setCookie', err);\n }\n }\n\n public getCookie(name: string) {\n return this.cookieService.get(name);\n }\n\n public removeCookie(name: string) {\n try {\n const env = this._bootstrapService.getEnv();\n const { urlDomain } = env;\n const handledDomain = urlDomain ? `.${urlDomain}` : '';\n this.cookieService.delete(name, '/', handledDomain, true, 'None');\n } catch (err) {\n console.error('MonkeyEcxCookieStorageService -> setCookie', err);\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createAction, props } from '@ngrx/store';\nimport { MonkeyEcxMeCredentials, MonkeyEcxStorage } from '../../interfaces';\nimport { MonkeyEcxStoreControl } from '../../interfaces/monkeyecx-store';\n\nconst clear = createAction('[MECX Core Storage] Clear All');\nconst create = createAction(\n '[MECX Core Storage] Create',\n props<{ data: Partial<MonkeyEcxStorage> }>()\n);\nconst updateControl = createAction(\n '[MECX Core Storage] Update Control',\n props<{ data: MonkeyEcxStoreControl }>()\n);\nconst updateData = createAction(\n '[MECX Core Storage] Update One',\n props<{ data: MonkeyEcxStorage }>()\n);\nconst updateMe = createAction(\n '[MECX Core Storage] Update Me',\n props<{ data: Partial<MonkeyEcxMeCredentials> }>()\n);\n\nexport { clear, create, updateControl, updateData, updateMe };\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * as monkeyecxStorage from './monkeyecx-storage.actions';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { ActionReducer, INIT } from '@ngrx/store';\n\nexport const seederReducer = (keys: string[]) => {\n return (reducer: ActionReducer<any>): ActionReducer<any> => {\n return (state, action) => {\n const handledState = reducer(state, action);\n if (action.type === INIT) {\n let data: any = null;\n try {\n const storage = localStorage.getItem('mecx-store');\n const handled = atob(storage || '');\n\n if (handled !== '{}') {\n const storageValue = JSON.parse(atob(storage || ''));\n\n keys.forEach((key: string) => {\n let value: any = null;\n if (storageValue?.[key]) {\n value = {\n [key]: storageValue?.[key]\n };\n }\n\n /*fazendo isso para a versao antiga da store*/\n if (key === 'mecx-core-storage') {\n const oldHandle = (storageValue as any)?.[key];\n if (oldHandle) {\n const id = oldHandle?.['ids']?.[0];\n if (id) {\n const entity = oldHandle?.['entities']?.[id];\n value = {\n [key]: {\n data: {\n ...entity\n }\n }\n };\n }\n }\n }\n\n data = {\n ...data,\n ...value\n };\n });\n }\n\n return data;\n } catch (e) {\n localStorage.removeItem('mecx-store');\n return handledState;\n }\n }\n\n let data: any = null;\n try {\n keys.forEach((key: string) => {\n data = {\n ...data,\n [key]: handledState[key]\n };\n });\n const handled = JSON.stringify(data);\n if (handled !== '{}') {\n localStorage.setItem('mecx-store', btoa(JSON.stringify(data)));\n }\n } catch (e) {\n localStorage.removeItem('mecx-store');\n }\n\n return handledState;\n };\n };\n};\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createReducer, on } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../interfaces';\nimport * as actions from '../actions';\n\nexport const featureKey = 'mecx-core-storage';\n\nexport interface State {\n control: {\n isLoading: boolean;\n };\n data: Partial<MonkeyEcxStorage> | null;\n}\n\nexport const initialState: State = {\n control: {\n isLoading: false\n },\n data: null\n};\n\nexport const reducer = createReducer(\n initialState,\n on(actions.monkeyecxStorage.clear, (state: any) => {\n return {\n ...state,\n data: null\n };\n }),\n on(actions.monkeyecxStorage.create, (state, action) => {\n return {\n ...state,\n data: {\n ...(state.data ? state.data : {}),\n ...action.data\n }\n };\n }),\n on(actions.monkeyecxStorage.updateData, (state, action) => {\n return {\n ...state,\n data: {\n ...(state.data ? state.data : {}),\n ...action.data\n }\n };\n }),\n on(actions.monkeyecxStorage.updateMe, (state, action) => {\n return {\n ...state,\n data: {\n ...(state.data ? state.data : {}),\n me: {\n ...(state.data?.me ? state.data.me : {}),\n ...action.data\n }\n }\n };\n }),\n on(actions.monkeyecxStorage.updateControl, (state, action) => {\n return {\n ...state,\n control: {\n ...state.control,\n ...action.data\n }\n };\n })\n);\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * as fromMonkeyecxSeeder from './monkeyecx-seeder.reducer';\nexport * as fromMonkeyecxStorage from './monkeyecx-storage.reducer';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { MonkeyEcxStorage } from '../../interfaces';\nimport * as reducers from '../reducers';\n\ndeclare type State = reducers.fromMonkeyecxStorage.State;\n\nexport const selectState = createFeatureSelector<reducers.fromMonkeyecxStorage.State>(\n reducers.fromMonkeyecxStorage.featureKey\n);\n\nexport const select = createSelector(selectState, (state: State) => {\n return state.data;\n});\n\nexport const selectUser = createSelector(\n selectState,\n (state): Partial<MonkeyEcxStorage> | null => state.data\n);\n\nexport const selectControl = createSelector(selectState, (state: State): any => {\n return state.control;\n});\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * as monkeyecxStorage from './monkeyecx-storage.selector';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * as actions from './actions';\nexport * as reducers from './reducers';\nexport * as selectors from './selectors';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, Injectable } from '@angular/core';\n\ndeclare type Token = Partial<MonkeyEcxTokenCredentials> | null;\ndeclare type Me = Partial<MonkeyEcxMeCredentials> | null;\n\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { MonkeyEcxMeCredentials, MonkeyEcxStorage, MonkeyEcxTokenCredentials } from '../interfaces';\nimport { MonkeyEcxConfigsService } from '../services';\nimport { actions, selectors } from '../store';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxTokenStorageService {\n private tokenFields: Token;\n\n private token$ = new BehaviorSubject<Token>(null);\n\n private me$ = new BehaviorSubject<Me>(null);\n\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n constructor(private store: Store) {\n this.tokenFields = {\n username: '',\n program: '',\n accessToken: '',\n refreshToken: '',\n companyId: '',\n governmentId: '',\n companyTypeUrl: '',\n companyType: '',\n programAdmin: false,\n programType: '',\n accessType: '',\n role: '',\n ownerGovernmentId: '',\n name: '',\n _clearIgnore: {\n ignore: ['username', 'program', 'accessType']\n }\n };\n }\n\n private setAllTokens(token: Token) {\n if (!token) return;\n const { token$, store } = this;\n if (token.username) {\n localStorage.setItem('username', token.username);\n }\n\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: {\n ...token\n }\n })\n );\n\n token$.next(token);\n }\n\n private getAllTokens() {\n const { store } = this;\n try {\n let data: Partial<MonkeyEcxStorage> = store.selectSignal(\n selectors.monkeyecxStorage.select\n )()!;\n if (!data?.program) {\n const program = localStorage.getItem('program')!;\n data = {\n ...data,\n program\n };\n }\n\n const accessType = localStorage.getItem('accessType');\n const companyType = localStorage.getItem('companyType');\n\n if (!data.accessToken) {\n const accessToken = localStorage.getItem('accessToken')!;\n const refreshToken = localStorage.getItem('refreshToken')!;\n data = {\n ...data,\n accessToken,\n refreshToken\n };\n }\n\n if (!data.role) {\n const role = localStorage.getItem('role')!;\n data = {\n ...data,\n role\n };\n }\n\n const handledData = {\n ...data,\n accessType,\n companyType\n };\n const config = this._configService.whiteLabel;\n if (!data?.program && config?.program) {\n handledData.program = config?.program?.token;\n }\n delete handledData?.me;\n\n return handledData as MonkeyEcxTokenCredentials;\n } catch (e) {\n // not to do\n }\n return null;\n }\n\n private setAllMe(me: Me) {\n if (!me) return;\n\n this.store.dispatch(\n actions.monkeyecxStorage.updateMe({\n data: {\n ...me\n }\n })\n );\n\n this.me$.next(me);\n }\n\n private getAllMe() {\n let data: Partial<MonkeyEcxStorage> = this.store.selectSignal(\n selectors.monkeyecxStorage.select\n )()!;\n\n let handledData: any = {\n ...data\n };\n\n return handledData?.me;\n }\n\n public tokenHasChanged(): Observable<Token> {\n return this.token$.asObservable();\n }\n\n public meHasChanged(): Observable<Me> {\n return this.me$.asObservable() || null;\n }\n\n public getToken() {\n return this.getAllTokens();\n }\n\n public getMe() {\n return this.getAllMe();\n }\n\n public setToken(token: Token) {\n this.setAllTokens(token);\n }\n\n public setMe(me: Partial<MonkeyEcxMeCredentials>) {\n this.setAllMe(me);\n }\n\n public clear(force?: boolean): Observable<boolean> {\n const { tokenFields, store } = this;\n try {\n Object.entries(tokenFields || {}).forEach(([key, value]) => {\n if (\n (tokenFields?._clearIgnore?.ignore || []).filter((val: any) => {\n return val === key;\n }).length <= 0 ||\n force === true\n ) {\n localStorage.removeItem(key);\n }\n });\n\n localStorage.removeItem('me');\n localStorage.removeItem('mecx-store');\n localStorage.removeItem('username');\n store.dispatch(actions.monkeyecxStorage.clear());\n } catch (error) {\n return of(false);\n }\n return of(true);\n }\n\n /**\n * @param fields (the name of fields you want to clear. ie: ['companyId', 'role', ...])\n */\n public clearCredentials(\n fields = ['companyId', 'governmentId', 'companyType', 'programAdmin', 'role']\n ) {\n const { store } = this;\n let obj: any = null;\n fields?.forEach((key: string) => {\n obj = {\n ...obj,\n [key]: null\n };\n localStorage.removeItem(key);\n });\n\n const username = localStorage.getItem('username');\n if (username) {\n store.dispatch(\n actions.monkeyecxStorage.create({\n data: {\n username,\n ...obj\n }\n })\n );\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-cookie-storage.service';\nexport * from './monkeyecx-token-storage.service';\n","export const CACHE_LOCALE_EXPIRATION_MS = 60 * 60 * 1000;\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable no-unused-vars */\n/* eslint-disable no-shadow */\nexport enum CountryMasks {\n CPF = '000.000.000-00',\n CNPJ = '00.000.000/0000-00',\n RUT1 = '0000000-A',\n RUT2 = '00000000-A',\n RFC1 = 'AAAA000000AA0',\n RFC2 = 'AAA000000AA0',\n EIN = '00-0000000',\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './cache';\nexport * from './country';\n","/* eslint-disable block-scoped-var */\n/* eslint-disable no-restricted-syntax */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\n/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-useless-escape */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-cond-assign */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-redeclare */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\nimport { HttpResponse } from '@angular/common/http';\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { isValid, parse } from 'date-fns';\nimport { CountryMasks } from '../enums';\n\ntype DocumentType = 'CPF' | 'CNPJ';\ntype CountryCode = 'BR' | 'CL' | 'MX' | 'US';\n\ntype LogParams = {\n message: string;\n context?: any;\n error?: Error;\n type?: 'ok' | 'debug' | 'info' | 'notice' | 'warn' | 'error' | 'critical' | 'alert' | 'emerg';\n};\n\nexport class MonkeyEcxUtils {\n static persistNullEmptyUndefined(tp: any): boolean {\n return tp !== null && tp !== undefined && tp !== '';\n }\n\n static getDocumentType(doc: string, country?: string) {\n if (!doc) return '';\n if (country === 'cl') return 'RUT';\n if (country === 'mx') return 'RFC';\n if (country === 'us') return 'EIN';\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\n }\n\n static getDocumentMask(type: DocumentType, country = '') {\n return {\n BR: {\n CPF: CountryMasks.CPF,\n CNPJ: CountryMasks.CNPJ,\n '': `${CountryMasks.CPF}||${CountryMasks.CNPJ}`\n },\n CL: {\n CPF: CountryMasks.RUT1,\n CNPJ: CountryMasks.RUT2,\n '': `${CountryMasks.RUT1}||${CountryMasks.RUT2}`\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2,\n '': `${CountryMasks.RFC1}||${CountryMasks.RFC2}`\n },\n US: {\n CPF: CountryMasks.EIN,\n CNPJ: CountryMasks.EIN,\n '': CountryMasks.EIN\n }\n }[country.toUpperCase() as CountryCode]?.[type];\n }\n\n static getDocumentPlaceholder(type: DocumentType, country = '') {\n return {\n BR: {\n CPF: '000.000.000-XX',\n CNPJ: '00.000.000/0000-00'\n },\n CL: {\n CPF: '0000000-A',\n CNPJ: '0000000-A'\n },\n MX: {\n CPF: CountryMasks.RFC1,\n CNPJ: CountryMasks.RFC2\n },\n US: {\n CPF: CountryMasks.EIN,\n CNPJ: CountryMasks.EIN\n }\n }[country.toUpperCase() as CountryCode]?.[type];\n }\n\n static formatDocumentWithMask(doc: string, withType?: boolean, country?: string): string {\n if (!doc) return doc;\n let formated: string = '';\n if (country === 'CL') {\n formated = doc.replace(/^(\\d{1,2})(\\d{3})(\\d{3})(\\w{1})$/, '$1.$2.$3-$4');\n return `${formated}`;\n }\n if (country === 'US') {\n formated = doc.replace(/^(\\d{2})(\\d{7})$/, '$1-$2');\n return `${formated}`;\n }\n if (doc.length === 14) {\n formated = doc\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\n .replace(/(\\d{4})(\\d)/, '$1-$2');\n } else {\n formated = doc\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n }\n\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\n }\n\n static cutFirstLastName(value: string, tp: string = 'first') {\n const split = value?.trim()?.split(' ');\n\n if (tp === 'first') return split[0];\n return split?.splice(1, split.length)?.join(' ');\n }\n\n static isCPFCNPJValid(document: any): boolean {\n document = document.replace(/[^\\d]/g, '');\n\n const handled = document.replace(new RegExp(document.charAt(0), 'g'), '');\n if (!handled) return false;\n\n if (document.length === 11) {\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]);\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]);\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n return true;\n }\n if (document.length === 14 || /0{14}/.test(document)) {\n const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]);\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]);\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n }\n return false;\n }\n\n public static isValidRUT(document: string): boolean {\n if (!document || document.trim().length < 3) return false;\n const documentHandled = document.replace(/[^0-9kK]/g, '');\n\n if (documentHandled.length < 3) return false;\n\n const calcDv = (rut: string) => {\n const value: string = `${rut}`;\n let sum = 0;\n let mult = 2;\n\n for (let i = 1; i <= value.length; i++) {\n const index = mult * Number(value.charAt(value.length - i));\n\n sum += index;\n\n if (mult < 7) {\n mult += 1;\n } else {\n mult = 2;\n }\n }\n\n const dvEsperado = 11 - (sum % 11);\n if (dvEsperado === 10) return 'K';\n if (dvEsperado === 11) return '0';\n return `${dvEsperado}`;\n };\n\n const num = documentHandled.slice(0, -1);\n const dgv = documentHandled.slice(-1).toUpperCase();\n\n const dvCalc = calcDv(num);\n return dvCalc === dgv;\n }\n\n public static isValidEIN(ein: string): boolean {\n const cleanedEIN = ein?.replace(/\\D/g, '') || '';\n\n if (cleanedEIN.length !== 9) {\n return false;\n }\n\n const validPrefixes = [\n '10',\n '12',\n '60',\n '67',\n '50',\n '53',\n '01',\n '02',\n '03',\n '04',\n '05',\n '06',\n '11',\n '13',\n '14',\n '16',\n '21',\n '22',\n '23',\n '25',\n '34',\n '51',\n '52',\n '54',\n '55',\n '56',\n '57',\n '58',\n '59',\n '65',\n '30',\n '32',\n '35',\n '36',\n '37',\n '38',\n '61',\n '15',\n '24',\n '20',\n '26',\n '27',\n '45',\n '46',\n '47',\n '81',\n '82',\n '83',\n '84',\n '85',\n '40',\n '44',\n '94',\n '95',\n '80',\n '90',\n '33',\n '39',\n '41',\n '42',\n '43',\n '46',\n '48',\n '62',\n '63',\n '64',\n '66',\n '68',\n '71',\n '72',\n '73',\n '74',\n '75',\n '76',\n '77',\n '86',\n '87',\n '88',\n '91',\n '92',\n '93',\n '98',\n '99',\n '31'\n ];\n\n const prefix = cleanedEIN.substring(0, 2);\n\n return validPrefixes.indexOf(prefix) !== -1;\n }\n\n public static isValidRFC(document: string) {\n const RFC_REGEXP = /^([A-ZÑ\\x26]{3,4})([0-9]{6})([A-Z0-9]{3})$/;\n const SPECIAL_CASES = {\n XEXX010101000: 'foreign',\n XAXX010101000: 'generic'\n };\n const FORBIDDEN_WORDS = [\n 'BUEI',\n 'BUEY',\n 'CACA',\n 'CACO',\n 'CAGA',\n 'CAGO',\n 'CAKA',\n 'CAKO',\n 'COGE',\n 'COJA',\n 'COJE',\n 'COJI',\n 'COJO',\n 'CULO',\n 'FETO',\n 'GUEY',\n 'JOTO',\n 'KACA',\n 'KACO',\n 'KAGA',\n 'KAGO',\n 'KOGE',\n 'KOJO',\n 'KAKA',\n 'KULO',\n 'MAME',\n 'MAMO',\n 'MEAR',\n 'MEAS',\n 'MEON',\n 'MION',\n 'MOCO',\n 'MULA',\n 'PEDA',\n 'PEDO',\n 'PENE',\n 'PUTA',\n 'PUTO',\n 'QULO',\n 'RATA',\n 'RUIN'\n ];\n\n const VALUES_MAP: {\n [key: number | string]: any;\n } = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 18,\n J: 19,\n K: 20,\n L: 21,\n M: 22,\n N: 23,\n '&': 24,\n O: 25,\n P: 26,\n Q: 27,\n R: 28,\n S: 29,\n T: 30,\n U: 31,\n V: 32,\n W: 33,\n X: 34,\n Y: 35,\n Z: 36,\n ' ': 37,\n Ñ: 38\n };\n\n const getScore = (doc: string) => {\n return doc\n .split('')\n .reverse()\n .reduce((sum, char, i) => {\n const index = i + 2;\n const value = VALUES_MAP[char] || 0;\n return sum + value * index;\n }, 0);\n };\n\n const parseInput = (doc: string) => {\n return String(doc)\n .trim()\n .toUpperCase()\n .replace(/[^0-9A-ZÑ\\x26]/g, '');\n };\n\n const validateDate = (doc: string) => {\n const dateStr = doc.slice(0, -3).slice(-6);\n const year = dateStr.slice(0, 2);\n const month = dateStr.slice(2, 4);\n const day = dateStr.slice(4, 6);\n const date = new Date(`20${year}-${month}-${day}`);\n // eslint-disable-next-line no-restricted-globals\n return !isNaN(date.getTime());\n };\n\n const validateVerificationDigit = (doc: string) => {\n const digit = doc.slice(-1);\n const rfc = doc.length === 12 ? ` ${doc}` : doc;\n const base = rfc.slice(0, -1);\n const score = getScore(base);\n const mod = (11000 - score) % 11;\n if (mod === 11) return digit === '0';\n if (mod === 10) return digit === 'A';\n return String(mod) === digit;\n };\n\n const isSpecialCase = (doc: string) => {\n return doc in SPECIAL_CASES;\n };\n\n const hasForbiddenWords = (doc: string) => {\n const prefix = (doc || '').slice(0, 4);\n return FORBIDDEN_WORDS.includes(prefix);\n };\n\n try {\n const input = parseInput(document);\n\n if (isSpecialCase(input)) return false;\n const hasValidFormat = RFC_REGEXP.test(input);\n if (!hasValidFormat) return false;\n const hasValidDate = validateDate(input);\n if (!hasValidDate) return false;\n const hasValidDigit = validateVerificationDigit(input);\n if (!hasValidDigit) return false;\n if (hasForbiddenWords(input)) return false;\n\n return true;\n } catch (e) {\n // not to do\n }\n\n return false;\n }\n\n static isValidUrl(txt: string): boolean {\n const regex =\n /(https?:\\/\\/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])(:?\\d*)\\/?([a-z_\\\\/0-9\\-#.]*)\\??([a-z_\\\\/0-9\\-#=&]*)/g;\n return regex.test(txt);\n }\n\n static isValidZipCode(zipCode: string, country?: string): boolean {\n const length = {\n br: 8,\n cl: 7,\n mx: 5\n }[country || 'br'];\n\n return `${this.handleOnlyNumbers(zipCode)}`.length === length;\n }\n\n static isValidEmail(email: string) {\n return /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/.test(email || '');\n }\n\n static getRandomString(len: number, charSet?: string): string {\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const randomString: string = new Array(len)\n .fill('1')\n .map(() => {\n return charSet?.charAt(Math.floor(Math.random() * charSet.length));\n })\n .join('');\n return randomString;\n }\n\n static handleOnlyNumbers(value: any) {\n if (!value) return null;\n return value.replace(/[^0-9]/g, '');\n }\n\n static handleOnlyAlphaNumeric(value: any) {\n if (!value) return '';\n return value.replace(/[^0-9A-Za-z]/g, '');\n }\n\n static capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n }\n\n static formatZipCode(zipCode: string): string {\n if (!zipCode) return zipCode;\n const formated: string = zipCode\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n\n return `${formated}`;\n }\n\n static formatFileSize(size: number): string {\n const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let l = 0;\n while (size >= 1024 && ++l) {\n size /= 1024;\n }\n return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;\n }\n\n static sufflue(data: any[]): any[] {\n for (let i = data.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * i);\n const temp = data[i];\n data[i] = data[j];\n data[j] = temp;\n }\n return data;\n }\n\n static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\n function blobToFile(theBlob: any, fileName: string) {\n const b = theBlob;\n b.lastModifiedDate = new Date();\n b.name = fileName;\n return b;\n }\n\n let file: any;\n if (!(navigator as any).msSaveBlob) {\n file = new File([theBlob], fileName, {\n type: fileType\n });\n } else {\n file = new Blob([theBlob], {\n type: fileType\n });\n file = blobToFile(file, fileName);\n }\n return file;\n }\n\n static truncate(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n\n static isLocalhost() {\n if (!window?.location) return false;\n const { href } = window.location;\n if (!href) return false;\n return href?.search('localhost') >= 0;\n }\n\n static isSameOrigin(frontend: string): boolean {\n const initialPath: string = window.location.origin;\n return (initialPath || '') === frontend;\n }\n\n static replaceVariables(data: string, obj: any) {\n let handled = data;\n Object.entries(obj).forEach(([key, value]) => {\n handled = handled.replace(new RegExp(`{${key}}`, 'g'), `${value}`);\n });\n return handled;\n }\n\n static trimValuesToSave(obj: any, fields: string[]) {\n let ret = obj;\n const grouped = fields.join('#');\n Object.entries(obj).map(([key, value]) => {\n if (grouped.includes(key)) {\n ret = {\n ...ret,\n [key]: `${value}`.trim()\n };\n }\n return null;\n });\n\n return ret;\n }\n\n static base64ToBuffer(base64: string): ArrayBuffer {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n static isValidDate(dateString: string, formats?: string[]): boolean {\n formats = formats ?? ['dd/MM/yyyy', 'MM-dd-yyyy', 'yyyy-MM-dd'];\n\n for (const format of formats) {\n const parsedDate = parse(dateString, format, new Date());\n\n if (isValid(parsedDate)) {\n return true;\n }\n }\n\n return false;\n }\n\n static getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n static getFileToDownload(resp: HttpResponse<any>, filename?: string) {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(/\"/g, '');\n }\n\n const blob = new Blob([body], {\n type: `${contentType}`\n });\n\n return {\n filename,\n blob,\n resp\n };\n }\n}\n\nexport class MonkeyEcxLogs {\n static log(params: LogParams) {\n try {\n const { type, message, context, error } = params;\n datadogLogs.logger[type || 'error'](message, context, error);\n } catch (e) {\n // not to do\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './utils';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxBootstrap, MonkeyEcxStyleGuide, MonkeyEcxWhiteLabel } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxConfigsService {\n private readonly _bootstrap$ = new BehaviorSubject<MonkeyEcxBootstrap | null>(null);\n\n private readonly _whiteLabel$ = new BehaviorSubject<MonkeyEcxWhiteLabel | null>(null);\n\n private readonly _styleGuide$ = new BehaviorSubject<MonkeyEcxStyleGuide | null>(null);\n\n get bootstrap$(): Observable<MonkeyEcxBootstrap | null> {\n return this._bootstrap$.asObservable();\n }\n\n get bootstrap(): MonkeyEcxBootstrap | null {\n return this._bootstrap$.value;\n }\n\n set bootstrap(data: MonkeyEcxBootstrap) {\n this._bootstrap$.next(data);\n }\n\n get whiteLabel$(): Observable<MonkeyEcxWhiteLabel | null> {\n return this._whiteLabel$.asObservable();\n }\n\n get whiteLabel(): MonkeyEcxWhiteLabel | null {\n return this._whiteLabel$.value;\n }\n\n set whiteLabel(data: MonkeyEcxWhiteLabel) {\n this._whiteLabel$.next(data);\n }\n\n get styleGuide(): Observable<MonkeyEcxStyleGuide | null> {\n return this._styleGuide$.asObservable();\n }\n\n set styleGuide(data: MonkeyEcxStyleGuide) {\n this._styleGuide$.next(data);\n }\n\n federationSettings(key: string) {\n try {\n const { value } = this._bootstrap$;\n if (value) {\n const { federationSettings } = value;\n if (key in federationSettings || {}) {\n return federationSettings[key];\n }\n }\n } catch (e) {\n // not to do\n }\n\n return null;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { MonkeyEcxAlert } from '../../interfaces';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\n\nconst isExpired = ({ endDate, noEndDate }: { endDate: string; noEndDate: boolean | undefined }) => {\n if (noEndDate) {\n return false;\n }\n\n const now = new Date();\n const end = new Date(endDate);\n\n return now > end;\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAlertsService {\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n private createAlert(params: MonkeyEcxAlert) {\n const createElementInner = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.innerHTML = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const createElement = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.textContent = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const overlay = createElement('div', null, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgb(144 144 144 / 66%)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: '9999'\n });\n\n const modalBox = createElement('div', null, {\n position: 'relative',\n backgroundColor: '#fff',\n color: '#333',\n borderRadius: '10px',\n boxShadow: '0 4px 15px hsla(0, 0.00%, 0.00%, 0.20)',\n maxWidth: '480px',\n width: '90%',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n margin: '12px'\n });\n\n const imgContainer = createElement('div', null, {\n width: '100%',\n height: '180px',\n backgroundImage: `url(${params.img})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n borderRadius: '8px'\n });\n modalBox.appendChild(imgContainer);\n\n const title1 = createElement('span', params.title, {\n fontSize: '24px',\n fontWeight: 'bold',\n padding: '12px'\n });\n\n const title2 = createElementInner('span', params.message, {\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.4',\n padding: '0px 24px 24px',\n maxHeight: '280px',\n overflow: 'auto'\n });\n\n let actionButton: HTMLElement | null = null;\n if (params.action) {\n actionButton = createElement('button', params.action?.label, {\n marginBottom: '24px',\n padding: '12px 20px',\n fontSize: '1em',\n fontWeight: '600',\n color: '#fff',\n backgroundColor: '#007BFF',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n boxShadow: '0 2px 5px rgba(0,0,0,0.2)',\n transition: 'background-color 0.3s ease'\n });\n\n actionButton!.addEventListener('mouseover', () => {\n actionButton!.style.backgroundColor = '#0056b3';\n });\n actionButton!.addEventListener('mouseout', () => {\n actionButton!.style.backgroundColor = '#007BFF';\n });\n\n actionButton!.addEventListener('click', () => {\n window.open(params.action?.href, '_blank');\n });\n }\n\n const closeButton = createElement('button', '×', {\n position: 'absolute',\n top: '10px',\n right: '10px',\n background: 'transparent',\n border: 'none',\n fontSize: '24px',\n fontWeight: 'bold',\n color: '#999',\n cursor: 'pointer',\n transition: 'color 0.3s ease'\n });\n\n closeButton.addEventListener('mouseover', () => {\n closeButton.style.color = '#333';\n });\n\n closeButton.addEventListener('mouseout', () => {\n closeButton.style.color = '#999';\n });\n\n closeButton.addEventListener('click', () => {\n document.body.removeChild(overlay);\n });\n\n modalBox.appendChild(closeButton);\n modalBox.appendChild(title1);\n modalBox.appendChild(title2);\n if (actionButton) modalBox.appendChild(actionButton);\n overlay.appendChild(modalBox);\n document.body.appendChild(overlay);\n }\n\n private handleValidation() {\n const whiteLabel = this._configService.whiteLabel;\n if (!whiteLabel) return;\n\n const { alert } = whiteLabel;\n\n if (alert) {\n const { endDate, noEndDate } = alert;\n if (!isExpired({ endDate, noEndDate })) {\n this.createAlert(alert);\n }\n }\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\n/* eslint-disable no-console */\n/* eslint-disable max-len */\nimport { DestroyRef, inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { injectTokenWithWarning, MECX_CORE_I18N_WRAPPER } from '../../injectors';\nimport { MonkeyEcxMeCredentials } from '../../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyDictionaryService {\n private readonly _localeId = injectTokenWithWarning(LOCALE_ID, 'LOCALE_ID')!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private readonly _destroyRef = inject(DestroyRef);\n\n private readonly _data$ = new BehaviorSubject<Record<string, Record<string, string | any>>>({\n 'pt-BR': {\n 'SECURITY-CONSOLE': `🚨 Aviso de Segurança\nO uso deste console pode permitir que invasores se passem por você e roubem suas informações por meio de uma técnica conhecida como Self-XSS. Por favor, não insira nem cole código aqui se não souber exatamente o que ele faz.`,\n ERROR: {\n TITLE: 'Atualização Importante',\n 'SUB-TITLE': 'Estamos fazendo melhorias',\n EXPLAIN:\n 'Se você estiver com problemas para atualizar, tente novamente ou use o ícone de suporte abaixo',\n ACTION: 'Tentar Novamente'\n },\n MAINTENANCE: {\n TITLE: 'Manutenção em Andamento',\n 'SUB-TITLE':\n 'Estamos realizando uma manutenção para aprimorar nosso serviço. Pedimos desculpas pelo inconveniente. Tente novamente mais tarde.',\n ACTION: 'Tentar Novamente'\n },\n 'NEW-VERSION': 'Nova versão disponível. Clique aqui para atualizar.',\n 'POOR-CONNECTION': 'Conexão instável. Alguns recursos podem não funcionar corretamente.',\n 'BLOCK-CONNECTION':\n '⚠️ Alguns recursos podem não funcionar devido a um firewall ou bloqueio de rede.',\n 'REQUEST-ERROR': {\n ERROR: '⚠️ Erro inesperado',\n 'TOO-MANY-REQUEST': `🚨 Limite de tentativas excedido. Tente mais tarde`\n }\n },\n 'es-CL': {\n 'SECURITY-CONSOLE': `🚨 Advertencia de seguridad\nUsar esta consola podría permitir que atacantes se hagan pasar por usted y roben su información mediante una técnica conocida como Self-XSS. No introduzca ni pegue código aquí si no está seguro de su función.`,\n ERROR: {\n TITLE: 'Actualización importante',\n 'SUB-TITLE': 'Estamos haciendo mejoras',\n EXPLAIN:\n 'Si tiene problemas para actualizar, inténtelo nuevamente o utilice el ícono de soporte a continuación.',\n ACTION: 'Intentar otra vez'\n },\n MAINTENANCE: {\n TITLE: 'Mantenimiento en curso',\n 'SUB-TITLE':\n 'Estamos realizando tareas de mantenimiento para mejorar nuestro servicio. Disculpe las molestias. Vuelva a intentarlo más tarde.',\n ACTION: 'Intentar otra vez'\n },\n 'NEW-VERSION': 'Nueva versión disponible. Haga clic aquí para actualizar.',\n 'POOR-CONNECTION':\n 'Conexión inestable. Es posible que algunas funciones no funcionen correctamente.',\n 'BLOCK-CONNECTION':\n '⚠️ Algunas funciones podrían no funcionar debido a un firewall o un bloqueo de red.',\n 'REQUEST-ERROR': {\n ERROR: '⚠️ Error inesperado',\n 'TOO-MANY-REQUEST': '🚨 Se superó el límite de reintentos. Inténtalo de nuevo más tarde.'\n }\n },\n 'es-MX': {\n 'SECURITY-CONSOLE': `🚨 Advertencia de seguridad\nUsar esta consola podría permitir que atacantes se hagan pasar por usted y roben su información mediante una técnica conocida como Self-XSS. No introduzca ni pegue código aquí si no está seguro de su función.`,\n ERROR: {\n TITLE: 'Actualización importante',\n 'SUB-TITLE': 'Estamos haciendo mejoras',\n EXPLAIN:\n 'Si tiene problemas para actualizar, inténtelo nuevamente o utilice el ícono de soporte a continuación.',\n ACTION: 'Intentar otra vez'\n },\n MAINTENANCE: {\n TITLE: 'Mantenimiento en curso',\n 'SUB-TITLE':\n 'Estamos realizando tareas de mantenimiento para mejorar nuestro servicio. Disculpe las molestias. Vuelva a intentarlo más tarde.',\n ACTION: 'Intentar otra vez'\n },\n 'NEW-VERSION': 'Nueva versión disponible. Haga clic aquí para actualizar.',\n 'POOR-CONNECTION':\n 'Conexión inestable. Es posible que algunas funciones no funcionen correctamente.',\n 'BLOCK-CONNECTION':\n '⚠️ Algunas funciones podrían no funcionar debido a un firewall o un bloqueo de red.',\n 'REQUEST-ERROR': {\n ERROR: '⚠️ Error inesperado',\n 'TOO-MANY-REQUEST': '🚨 Se superó el límite de reintentos. Inténtalo de nuevo más tarde.'\n }\n },\n 'en-US': {\n 'SECURITY-CONSOLE': `🚨 Warning\nUsing this console can allow attackers to pass through you and retrieve your information using a known technique such as Self-XSS. Please do not enter any code here if you do not know exactly what it looks like.`,\n ERROR: {\n TITLE: 'Important Update',\n 'SUB-TITLE': 'We are making improvements',\n EXPLAIN:\n 'If you are having trouble updating, please try again or use the support icon below.',\n ACTION: 'Try Again'\n },\n MAINTENANCE: {\n TITLE: 'Scheduled Maintenance',\n 'SUB-TITLE':\n 'We are currently performing scheduled maintenance to improve our service. We apologize for the inconvenience. Please try again later.',\n ACTION: 'Try Again'\n },\n 'NEW-VERSION': 'New version available. Click here to update.',\n 'POOR-CONNECTION': 'Connection is unstable. Some resources might not work properly.',\n 'BLOCK-CONNECTION': '⚠️ Some features may not work due to a firewall or network block.',\n 'REQUEST-ERROR': {\n ERROR: '⚠️ Unexpected error',\n 'TOO-MANY-REQUEST': '🚨 Retry limit exceeded. Try again later.'\n }\n }\n });\n\n constructor() {\n const tokenSubject = inject(MECX_CORE_I18N_WRAPPER, { optional: true });\n tokenSubject?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {\n this.handleWrapperValues(value);\n });\n }\n\n private getLocale() {\n const me: MonkeyEcxMeCredentials = this._tokenStorageService.getMe()!;\n return me?.locale || this._localeId || 'pt-BR';\n }\n\n private handleWrapperValues(value: string) {\n try {\n const locale = this.getLocale();\n const wrappedData = JSON.parse(value);\n const currentData = this._data$.value;\n\n const updated = {\n ...currentData,\n [locale]: {\n ...currentData[locale],\n ...wrappedData\n }\n };\n\n this._data$.next(updated);\n } catch (e) {\n console.error(`MonkeyDictionaryService - handleWrapperValues -> ${e}`);\n }\n }\n\n get(key: string) {\n const locale = this.getLocale();\n return this._data$.pipe(\n map((data) => {\n return data[locale]?.[key] ?? null;\n })\n );\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkey-dictionary.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxSecurityConsoleService {\n readonly dictionary = inject(MonkeyDictionaryService).get('SECURITY-CONSOLE');\n\n private async handleValidation() {\n const i18n = await firstValueFrom(this.dictionary);\n console.log(\n `%c${i18n}`,\n `\n color: #d93025;\n font-weight: 400;\n font-size: 14px;\n background:#fff7f6;\n padding: 4px 8px;\n`\n );\n\n console.log(\n '%c' +\n '███╗ ███╗ ██████╗ ███╗ ██╗██╗ ██╗███████╗██╗ ██╗\\n' +\n '████╗ ████║██╔═══██╗████╗ ██║██║ ██╔╝██╔════╝╚██╗ ██╔╝\\n' +\n '██╔████╔██║██║ ██║██╔██╗ ██║█████╔╝ █████╗ ╚████╔╝ \\n' +\n '██║╚██╔╝██║██║ ██║██║╚██╗██║██╔═██╗ ██╔══╝ ╚██╔╝ \\n' +\n '██║ ╚═╝ ██║╚██████╔╝██║ ╚████║██║ ██╗███████╗ ██║ \\n' +\n '╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚═╝ \\n',\n\n 'background: transparent; color: #1976d2; font-size: 8px'\n );\n }\n\n public apply() {\n setTimeout(() => {\n this.handleValidation();\n }, 300);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { datadogLogs } from '@datadog/browser-logs';\nimport { datadogRum } from '@datadog/browser-rum';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxMeCredentials } from '../../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxDatadogService {\n private _allSet = false;\n\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private handleValidation() {\n const environment = this._bootstrapService.getEnv();\n const { bootstrap } = this._configService;\n const { whiteLabel } = this._configService;\n if (!whiteLabel) return;\n const { program, logs } = whiteLabel;\n const token = program?.token;\n const env = `monkey-front-${token}-${environment.environment}`.toLowerCase();\n\n if (\n logs?.enabled &&\n environment?.dataDogApplicationId &&\n environment.environment !== 'hmg' &&\n !this._allSet\n ) {\n datadogRum.init({\n applicationId: environment?.dataDogApplicationId,\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n sessionSampleRate: 100,\n sessionReplaySampleRate: 100,\n env,\n version: bootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n trackResources: true,\n trackLongTasks: true,\n trackUserInteractions: true,\n defaultPrivacyLevel: 'mask-user-input'\n });\n datadogRum.startSessionReplayRecording();\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.init({\n clientToken: environment?.dataDogClientToken,\n service: program?.token,\n site: 'datadoghq.com',\n env,\n version: bootstrap?.version,\n trackSessionAcrossSubdomains: true,\n useSecureSessionCookie: true,\n forwardErrorsToLogs: true,\n sessionSampleRate: 100,\n forwardConsoleLogs: 'all'\n });\n }\n\n this._allSet = true;\n\n this.applyInfoToDataDog();\n }\n\n if (environment.environment === 'hmg') {\n const originalLoggerError = datadogLogs.logger.error;\n\n datadogLogs.logger.error = (message: string, messageContext?: object, error?: Error) => {\n console.log('=== MonkeyEcxLogs ===');\n console.log(message);\n console.log(messageContext);\n console.log(error);\n console.log('=========');\n originalLoggerError(message, messageContext, error);\n };\n }\n }\n\n private async applyInfoToDataDog() {\n try {\n const environment = this._bootstrapService.getEnv();\n const token = this._tokenStorageService.getToken();\n if (!token) return;\n\n if (token.accessToken && environment.dataDogApplicationId) {\n const me: MonkeyEcxMeCredentials = this._tokenStorageService.getMe()!;\n\n const user = {\n id: token.username,\n email: token.username,\n name: me.name,\n locale: me.locale\n };\n\n datadogRum.setUser(user);\n\n if (environment.dataDogBrowserLogsEnable) {\n datadogLogs.setUser(user);\n }\n }\n } catch (e) {\n // not to do\n }\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxErrorService {\n private readonly _dictionary = inject(MonkeyDictionaryService).get('ERROR');\n\n private async handleValidation(e: any) {\n const i18n = await firstValueFrom(this._dictionary);\n\n let errorMessage = '';\n if (e instanceof HttpErrorResponse) {\n errorMessage = `${e.url} | ${e.error?.error || e.error}`;\n } else if (typeof e === 'string') {\n errorMessage = e as string;\n }\n\n const createElementInner = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.innerHTML = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const createElement = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.textContent = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const overlay = createElement('div', null, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgb(144 144 144 / 66%)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: '9999'\n });\n\n const modalBox = createElement('div', null, {\n backgroundColor: '#fff',\n color: '#333',\n padding: '24px',\n borderRadius: '10px',\n boxShadow: '0 4px 15px rgba(0,0,0,0.2)',\n maxWidth: '400px',\n width: '90%',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n alignItems: 'center',\n margin: '12px'\n });\n\n const svgLogo = `\n<svg width=\"132\" height=\"32\" viewBox=\"0 0 132 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.97434 25.1563V15.1112C3.97434 14.0262 4.28303 13.1298 4.91047 12.4238C5.5312 11.7177 6.38511 11.3605 7.4672 11.3605C8.61638 11.3605 9.44849 11.6977 9.95514 12.3704C10.4635 13.043 10.7185 13.8643 10.7185 14.8341V25.1547H14.6609V15.1112C14.6609 14.0679 14.9763 13.1832 15.6138 12.4571C16.2446 11.7311 17.0935 11.3605 18.1504 11.3605C19.2795 11.3605 20.1066 11.6927 20.625 12.3537C21.145 13.0163 21.4051 13.8392 21.4051 14.8341V25.1547H25.272V14.1781C25.272 13.0664 25.1043 12.105 24.7671 11.2921C24.4332 10.4808 23.9903 9.81483 23.4384 9.29237C22.8881 8.77158 22.2506 8.386 21.5359 8.13061C20.8246 7.88191 20.0848 7.75171 19.3281 7.75171C18.2142 7.75171 17.1942 7.97204 16.2664 8.41438C15.3303 8.85337 14.5318 9.62955 13.8624 10.7362C13.3977 9.74305 12.7165 8.99859 11.8207 8.49951C10.9248 8.00042 9.91823 7.75171 8.81602 7.75171C7.87151 7.75171 6.92532 7.97872 5.9808 8.4294C5.03629 8.88008 4.32329 9.52939 3.8351 10.389V8.23577H0V25.1563H3.97434Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M35.7296 8.39107C34.661 8.84843 33.7366 9.4727 32.9632 10.2706C32.1898 11.0701 31.5858 12.0149 31.1496 13.0998C30.7101 14.1915 30.4954 15.385 30.4954 16.6769C30.4954 17.9805 30.7101 19.1807 31.1496 20.2773C31.5858 21.3807 32.1915 22.3305 32.9632 23.1267C33.7366 23.9262 34.6593 24.5505 35.7296 25.0011C36.8016 25.4518 37.9609 25.6788 39.209 25.6788C40.4723 25.6788 41.6383 25.4518 42.6985 25.0011C43.7588 24.5505 44.6748 23.9262 45.465 23.1267C46.2468 22.3305 46.8591 21.3807 47.2953 20.2773C47.7348 19.1807 47.9563 17.9805 47.9563 16.6769C47.9563 15.385 47.7348 14.1915 47.2953 13.0998C46.8591 12.0149 46.2468 11.0701 45.465 10.2706C44.6765 9.47437 43.7588 8.8501 42.6985 8.39107C41.6383 7.94039 40.4723 7.71338 39.209 7.71338C37.9609 7.71338 36.8 7.94039 35.7296 8.39107ZM37.4257 21.7145C36.8587 21.4875 36.3621 21.1437 35.9343 20.693C35.5065 20.2423 35.1609 19.6831 34.8975 19.0121C34.6341 18.3394 34.5033 17.5599 34.5033 16.6752C34.5033 15.7973 34.6341 15.0311 34.8975 14.3684C35.1609 13.7058 35.5065 13.1516 35.9343 12.7009C36.3621 12.2502 36.8587 11.9131 37.4257 11.6927C37.9877 11.4741 38.5816 11.3606 39.209 11.3606C39.8247 11.3606 40.4186 11.4741 40.9857 11.6927C41.5477 11.9131 42.0493 12.2502 42.4888 12.7009C42.925 13.1516 43.2706 13.7058 43.5256 14.3684C43.7806 15.0311 43.9081 15.7973 43.9081 16.6752C43.9081 17.5599 43.7789 18.3378 43.5256 19.0121C43.2706 19.6831 42.925 20.2423 42.4888 20.693C42.0493 21.1437 41.5477 21.4875 40.9857 21.7145C40.4186 21.9465 39.8264 22.06 39.209 22.06C38.5816 22.06 37.9894 21.9465 37.4257 21.7145Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M57.596 15.395C57.596 14.2833 57.8879 13.3369 58.4768 12.5623C59.0673 11.7912 59.9363 11.3989 61.0906 11.3989C62.3555 11.3989 63.2514 11.7678 63.7697 12.4972C64.2898 13.2233 64.5499 14.1097 64.5499 15.1513V25.1564H68.5577V14.4552C68.5577 13.5338 68.4269 12.6642 68.1752 11.8496C67.9202 11.0417 67.5478 10.3306 67.0495 9.71805C66.553 9.10546 65.9272 8.6214 65.1706 8.2742C64.4073 7.92534 63.5114 7.75342 62.4746 7.75342C61.5251 7.75342 60.594 7.96874 59.688 8.39272C58.7804 8.8217 58.0456 9.52443 57.4937 10.4942V8.23581H53.5881V25.1564H57.596V15.395Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M90.7895 8.23577H85.468L79.0024 15.0794V0H75.0247V25.1563H79.0024V20.4325L81.0742 18.2409L86.0183 25.1563H90.9304L83.8742 15.3949L90.7895 8.23577Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M106.935 19.2474C106.655 20.0837 106.19 20.7847 105.538 21.3489C104.877 21.9198 103.939 22.2019 102.717 22.2019C102.097 22.2019 101.513 22.0934 100.971 21.8697C100.432 21.6544 99.951 21.3456 99.5349 20.9517C99.1172 20.5611 98.7833 20.0954 98.5334 19.5629C98.2817 19.0304 98.1391 18.4395 98.1173 17.7886H110.43C110.451 17.7452 110.471 17.5983 110.493 17.3546C110.517 17.1159 110.534 16.8271 110.534 16.5016C110.534 15.1596 110.344 13.9494 109.975 12.8745C109.609 11.7995 109.074 10.8764 108.371 10.1103C107.668 9.35081 106.804 8.75825 105.777 8.34095C104.751 7.92366 103.59 7.71167 102.305 7.71167C101.241 7.71167 100.213 7.93033 99.2262 8.35765C98.2314 8.78663 97.3573 9.39087 96.5957 10.167C95.8323 10.9432 95.2284 11.8763 94.7805 12.9629C94.3325 14.0479 94.1111 15.2647 94.1111 16.6084C94.1111 18.0439 94.3426 19.3225 94.819 20.4476C95.2888 21.5709 95.9162 22.5207 96.6997 23.2969C97.4815 24.073 98.3941 24.6656 99.4326 25.0662C100.469 25.4685 101.56 25.6755 102.717 25.6755C103.732 25.6755 104.65 25.5336 105.484 25.2582C106.314 24.9811 107.051 24.6005 107.698 24.1131C108.341 23.6307 108.879 23.0665 109.319 22.4139C109.755 21.7629 110.092 21.0668 110.322 20.3241L106.935 19.2474ZM98.2213 14.8358C98.2431 14.4018 98.3606 13.9561 98.5669 13.5004C98.7716 13.0497 99.0551 12.6441 99.4007 12.2836C99.7463 11.9264 100.162 11.6376 100.659 11.4156C101.156 11.2003 101.711 11.0851 102.34 11.0851C103.031 11.0851 103.63 11.1936 104.137 11.3989C104.645 11.6059 105.073 11.8813 105.418 12.2302C105.764 12.579 106.022 12.9796 106.195 13.4303C106.368 13.886 106.465 14.3517 106.487 14.8358H98.2213Z\" fill=\"#0273E8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M121.282 32.0001L132 8.23584H127.751L123.223 18.9353L118.381 8.23584H113.85L121.04 23.14L116.999 32.0001H121.282Z\" fill=\"#0273E8\"/>\n</svg>\n`;\n\n const logoContainer = document.createElement('div');\n logoContainer.innerHTML = svgLogo;\n Object.assign(logoContainer.style);\n modalBox.appendChild(logoContainer);\n\n const title1 = createElement('span', i18n.TITLE, {\n fontSize: '1.8em',\n fontWeight: 'bold'\n });\n\n const title2 = createElement('span', i18n?.['SUB-TITLE'], {\n fontSize: '1.2em',\n fontWeight: '600'\n });\n\n const message = createElement('p', i18n.EXPLAIN, {\n fontSize: '1em',\n margin: '0',\n lineHeight: '1.5'\n });\n\n let errorBox = null;\n if (errorMessage) {\n errorBox = createElementInner('div', errorMessage, {\n backgroundColor: '#f8d7da',\n color: '#721c24',\n border: '1px solid #f5c6cb',\n borderRadius: '6px',\n padding: '8px',\n fontSize: '10px',\n width: '100%',\n maxHeight: '142px',\n boxSizing: 'border-box',\n textAlign: 'left',\n overflowY: 'auto',\n overflowX: 'hidden'\n });\n }\n\n const tryAgainButton = createElement('button', i18n.ACTION, {\n marginTop: '10px',\n padding: '12px 20px',\n fontSize: '1em',\n fontWeight: '600',\n color: '#fff',\n backgroundColor: '#007BFF',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n boxShadow: '0 2px 5px rgba(0,0,0,0.2)',\n transition: 'background-color 0.3s ease',\n letterSpacing: '0.48px'\n });\n\n tryAgainButton.addEventListener('mouseover', () => {\n tryAgainButton.style.backgroundColor = '#0056b3';\n });\n tryAgainButton.addEventListener('mouseout', () => {\n tryAgainButton.style.backgroundColor = '#007BFF';\n });\n\n tryAgainButton.addEventListener('click', () => {\n document.location.reload();\n });\n\n modalBox.appendChild(title1);\n modalBox.appendChild(title2);\n if (errorBox) modalBox.appendChild(errorBox);\n modalBox.appendChild(message);\n modalBox.appendChild(tryAgainButton);\n overlay.appendChild(modalBox);\n document.body.appendChild(overlay);\n }\n\n public apply(e?: any) {\n this.handleValidation(e);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport * as LDClient from 'launchdarkly-js-client-sdk';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxWhiteLabel } from '../../interfaces';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxFeatureToggleService {\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n private readonly _flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n private _ldClient: LDClient.LDClient | null = null;\n\n private async handleValidation(\n clientSideId: string,\n whiteLabel: MonkeyEcxWhiteLabel\n ): Promise<void> {\n const email = 'monkey@monkey.exchange';\n const user = {\n email,\n kind: 'user',\n key: `${whiteLabel.program?.token}#${email}`.toLowerCase()\n };\n\n return new Promise((resolve, reject) => {\n try {\n this._ldClient = LDClient.initialize(clientSideId, user, {\n streaming: true,\n sendEvents: true\n });\n\n this._ldClient.on('ready', () => {\n resolve();\n });\n\n this._ldClient.on('failed', (err) => {\n console.error('MECXFeatureToggleService -> SDK failed', err);\n resolve();\n });\n\n this._ldClient.on('error', (err) => {\n console.error('MECXFeatureToggleService -> SDK error', err);\n });\n\n this._ldClient.on('change', () => {\n this._flagSubject$.next(true);\n });\n } catch (e) {\n resolve();\n }\n });\n }\n\n public getFlag<T = boolean>(flagName: string, defaultValue: T): T {\n if (!this._ldClient) {\n console.warn('MECXFeatureToggleService -> client not initialized. Returning default value.');\n return defaultValue;\n }\n\n return this._ldClient.variation(flagName, defaultValue);\n }\n\n public get onFlags(): Observable<any> {\n return this._flagSubject$.asObservable();\n }\n\n public async apply() {\n const environment = this._bootstrapService.getEnv();\n const { whiteLabel } = this._configService;\n if (!whiteLabel) return;\n await this.handleValidation(environment.launchDarklyClientSideID, whiteLabel);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\n/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\n\ndeclare const window: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxGTMService {\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private async handleValidation() {\n try {\n const env = this._bootstrapService.getEnv();\n const { gtm } = env;\n const { enabled, key } = gtm || { enabled: false, key: '' };\n\n if (!enabled || !key || env.environment === 'dev') return;\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js'\n });\n const head = document.querySelector('head');\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=GTM-${key}`;\n head?.appendChild(script);\n\n const body = document.querySelector('body');\n const noscript = document.createElement('noscript');\n const iframe = document.createElement('iframe');\n iframe.src = `https://www.googletagmanager.com/ns.html?id=GTM-${key}`;\n iframe.height = '0';\n iframe.width = '0';\n iframe.style.display = 'none';\n iframe.style.visibility = 'hidden';\n noscript.appendChild(iframe);\n body?.appendChild(noscript);\n } catch (e) {\n console.error('MECXFeatureGTMService -> Configuration Error!');\n }\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyDictionaryService } from '../dictionary';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxNewVersionService {\n private readonly _dictionary = inject(MonkeyDictionaryService).get('NEW-VERSION');\n\n private readonly _configsService = inject(MonkeyEcxConfigsService);\n\n private _showed = false;\n\n private async handleValidation() {\n if (this._showed) return;\n\n const id = 'mecx-new-version-banner';\n const { bootstrap } = this._configsService;\n if (!bootstrap || !bootstrap.showNewVersion) return;\n const i18n = await firstValueFrom(this._dictionary);\n if (document.getElementById(id)) return;\n\n const banner = document.createElement('div');\n banner.id = id;\n\n Object.assign(banner.style, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n backgroundColor: 'rgb(30 115 73)',\n color: '#fff',\n textAlign: 'center',\n padding: '6px 0px',\n fontSize: '13px',\n boxShadow: 'rgba(0, 0, 0, 0.2) 0px 2px 5px',\n zIndex: '10000',\n cursor: 'pointer',\n userSelect: 'none',\n letterSpacing: '0.48px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderBottomRightRadius: '16px',\n borderBottomLeftRadius: '16px',\n fontWeight: '500'\n });\n\n banner.textContent = i18n;\n\n banner.addEventListener('click', () => {\n banner.remove();\n window.location.reload();\n });\n\n document.body.insertBefore(banner, document.body.firstChild);\n\n this._showed = true;\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { inject, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, firstValueFrom, fromEvent, interval, merge, Subscription } from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrap } from '../../interfaces';\nimport { MonkeyEcxNewVersionService } from '../config/monkeyecx-new-version.service';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxConnectionService implements OnDestroy {\n private readonly _dictionaryPoorConnection =\n inject(MonkeyDictionaryService).get('POOR-CONNECTION');\n\n private readonly _dictionaryBlockConnection =\n inject(MonkeyDictionaryService).get('BLOCK-CONNECTION');\n\n private readonly _service = inject(HttpClient);\n\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _newVersionService = inject(MonkeyEcxNewVersionService);\n\n private readonly checkIntervalMs = 30000;\n\n private readonly defaultThresholdMs = 2000;\n\n private readonly idleTimeoutMs = 2 * 60 * 1000;\n\n private _isPoor = new BehaviorSubject(false);\n\n private _isPoor$ = this._isPoor.asObservable();\n\n private _intervalSub: Subscription | null = null;\n\n private _idleTimeoutHandle: any = null;\n\n private _lastVersion: string | null = null;\n\n constructor(private zone: NgZone) {\n //not to do\n }\n\n private handleVersionChange({ version }: MonkeyEcxBootstrap) {\n if (this._lastVersion) {\n if (this._lastVersion !== version) {\n this._newVersionService.apply();\n }\n }\n this._lastVersion = version;\n }\n\n private setupUserActivityTracking() {\n const activityEvents$ = merge(\n fromEvent(window, 'mousemove'),\n fromEvent(window, 'mousedown'),\n fromEvent(window, 'keydown'),\n fromEvent(window, 'scroll'),\n fromEvent(window, 'touchstart')\n );\n\n activityEvents$.subscribe(() => this.resetIdleTimer());\n\n this.resetIdleTimer();\n }\n\n private resetIdleTimer() {\n if (this._idleTimeoutHandle) {\n clearTimeout(this._idleTimeoutHandle);\n }\n\n if (!this._intervalSub) {\n this.startMonitoring();\n }\n\n this._idleTimeoutHandle = setTimeout(() => {\n this.stopMonitoring();\n }, this.idleTimeoutMs);\n }\n\n private async handleWarning(show = true, type: 'poor' | 'block') {\n const id = 'mecx-poor-connection-banner';\n const el = document.getElementById(id);\n el?.remove();\n\n if (!show) {\n return;\n }\n\n let i18n = '';\n if (type === 'poor') {\n i18n = await firstValueFrom(this._dictionaryPoorConnection);\n } else {\n i18n = await firstValueFrom(this._dictionaryBlockConnection);\n }\n const banner = document.createElement('div');\n banner.id = id;\n\n Object.assign(banner.style, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n backgroundColor: 'rgb(215 112 29)',\n color: '#fff',\n textAlign: 'center',\n padding: '2px 0px',\n fontSize: '13px',\n boxShadow: '0 2px 5px rgba(0,0,0,0.2)',\n zIndex: '10001',\n userSelect: 'none',\n letterSpacing: '0.48px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderBottomRightRadius: '16px',\n borderBottomLeftRadius: '16px',\n fontWeight: '500'\n });\n\n banner.textContent = i18n;\n\n banner.addEventListener('click', () => {\n document.body.style.marginTop = '0px';\n banner.remove();\n window.location.reload();\n });\n\n document.body.insertBefore(banner, document.body.firstChild);\n }\n\n private startMonitoring() {\n this.zone.runOutsideAngular(() => {\n this._intervalSub = interval(this.checkIntervalMs).subscribe(() => this.checkConnection());\n });\n }\n\n private stopMonitoring() {\n if (this._intervalSub) {\n this._intervalSub.unsubscribe();\n this._intervalSub = null;\n }\n }\n\n private async checkConnection() {\n try {\n const start = performance.now();\n const params = new HttpParams().set('t', new Date().getTime().toString());\n const env = this._bootstrapService.getEnv();\n const response: MonkeyEcxBootstrap = await firstValueFrom<any>(\n this._service.get(env.bootstrapAssets, { params, headers: { 'Cache-Control': 'no-cache' } })\n );\n\n let threshold = this.defaultThresholdMs;\n try {\n threshold =\n typeof response.pingThresholdMs === 'number' ? response.pingThresholdMs : threshold;\n } catch (_) {\n //not to do\n }\n\n const duration = performance.now() - start;\n const isPoor = duration > threshold;\n this.zone.run(() => this._isPoor.next(isPoor));\n this.handleVersionChange(response);\n } catch (e) {\n this.zone.run(() => this._isPoor.next(true));\n }\n }\n\n private handleValidation() {\n this.setupUserActivityTracking();\n this._isPoor$.subscribe((v) => {\n this.handleWarning(v, 'poor');\n });\n }\n\n public apply() {\n this.handleValidation();\n }\n\n public applyBlockConnection() {\n this.handleWarning(true, 'block');\n }\n\n ngOnDestroy() {\n this.stopMonitoring();\n if (this._idleTimeoutHandle) clearTimeout(this._idleTimeoutHandle);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { firstValueFrom } from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrapService, MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxConnectionService } from '../connection';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxRequestErrorService {\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _router = inject(Router);\n\n private readonly _connectionService = inject(MonkeyEcxConnectionService);\n\n private readonly _dictionary = inject(MonkeyDictionaryService).get('REQUEST-ERROR');\n\n private isHttpCodeIgnoreRedirect(\n tp: MonkeyEcxServiceCredentials | undefined | null,\n httpCode: number\n ): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private isHttpCodeIgnoreMessage(\n tp: MonkeyEcxServiceCredentials | undefined | null,\n httpCode: number\n ): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const discardStatusCodes = [0, 502, 503, 401];\n\n let found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\n if (discardStatusCodes.includes(httpCode)) {\n found = true;\n }\n\n return found;\n }\n\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\n if (status === 409 || status === 400 || status === 401) {\n return 'warning';\n }\n\n return 'error';\n }\n\n private handleNetworkBlock(error: HttpErrorResponse) {\n if (error instanceof HttpErrorResponse) {\n const isPossibleBlock =\n error.status === 0 ||\n (error.name === 'HttpErrorResponse' && error.message.includes('Unknown'));\n\n if (isPossibleBlock) {\n this._connectionService.applyBlockConnection();\n }\n }\n }\n\n private showMessage(\n message: string,\n error: HttpErrorResponse,\n mkc: MonkeyEcxServiceCredentials | undefined | null\n ) {\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status) || error.status === 401) {\n const type = this.getMessageType(error.status);\n this._bootstrapService.handleMessage(message, type);\n }\n }\n\n private async handleMessage(\n error: HttpErrorResponse,\n mkc: MonkeyEcxServiceCredentials | undefined | null\n ) {\n // eslint-disable-next-line camelcase\n const { notifications, error_description, message } = error?.error || {};\n const customMessage = this.extractMessage(message, error_description, notifications);\n\n if (customMessage) {\n this.showMessage(customMessage, error, mkc);\n return;\n }\n\n if (error.error instanceof Blob) {\n this.handleBlobError(error, mkc);\n return;\n }\n\n if (!error?.url?.includes('assets.monkey') && error.status !== 401) {\n const msgKey = error.status === 429 ? 'TOO-MANY-REQUEST' : 'ERROR';\n const i18n = await firstValueFrom(this._dictionary);\n this.showMessage(i18n?.[msgKey], error, mkc);\n }\n }\n\n private extractMessage(\n message?: string,\n errorDescription?: string,\n notifications?: string\n ): string {\n return notifications || errorDescription || message || '';\n }\n\n private handleBlobError(\n error: HttpErrorResponse,\n mkc: MonkeyEcxServiceCredentials | undefined | null\n ) {\n const blob = new Blob([error.error], { type: 'application/json' });\n const reader = new FileReader();\n reader.addEventListener('loadend', (e) => {\n const text = e?.target?.result as string;\n try {\n const jsonResp = JSON.parse(text);\n const customMessage = jsonResp.notifications;\n this.showMessage(customMessage, error, mkc);\n } catch {\n this.showMessage('', error, mkc);\n }\n });\n reader.readAsText(blob);\n }\n\n public async handleError(\n error: HttpErrorResponse,\n mkc?: MonkeyEcxServiceCredentials | undefined | null\n ) {\n const { status } = error;\n\n const routes: any = {\n 403: 'forbidden',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n let route = '/app/pages/';\n\n const found = routes[status];\n let timeout = 0;\n\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\n route = `${route}${found}`.toLowerCase();\n timeout = 800;\n this._router.navigate([route]);\n }\n\n setTimeout(() => {\n this.handleMessage(error, mkc);\n }, timeout);\n\n this.handleNetworkBlock(error);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpEvent, HttpHandler, HttpHandlerFn, HttpRequest } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport {\n catchError,\n finalize,\n Observable,\n ReplaySubject,\n Subject,\n switchMap,\n take,\n tap,\n throwError\n} from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrapService, MonkeyEcxPendingRequest } from '../../interfaces';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces/monkeyecx-service-credentials';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxAuthService } from '../auth';\n\nconst counters: Record<string, number> = {};\nconst requestsMap: Map<string, MonkeyEcxServiceCredentials> = new Map();\nlet pendingRequests: MonkeyEcxPendingRequest[] = [];\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxRequestStateService {\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private readonly _authService = inject(MonkeyEcxAuthService);\n\n private _isTokenRefreshing = false;\n\n getId(prefix: string): string {\n if (!Object.prototype.hasOwnProperty.call(counters, prefix)) {\n counters[prefix] = 1;\n }\n\n let currentCount = counters[prefix];\n if (currentCount > 10000) {\n currentCount = 0;\n }\n counters[prefix] = currentCount + 1;\n\n return `${prefix}${currentCount}`;\n }\n\n set tokenRefreshing(value: boolean) {\n this._isTokenRefreshing = value;\n }\n\n get tokenRefreshing() {\n return this._isTokenRefreshing;\n }\n\n setData(id: string, data: MonkeyEcxServiceCredentials): void {\n requestsMap.set(id, data);\n }\n\n getData(id: string): MonkeyEcxServiceCredentials | undefined {\n return requestsMap?.get(id);\n }\n\n clearData(id: string): void {\n requestsMap.delete(id);\n }\n\n getHeaders(url: string): { [name: string]: string | string[] } {\n const isTokenMandatory = () => {\n return !(\n this._bootstrapService\n .getNotMandatoryUrls()\n .split('#')\n .filter((val: any) => {\n return url.indexOf(val) > -1;\n }).length > 0\n );\n };\n\n if (!isTokenMandatory()) return {};\n\n const token = this._tokenStorageService.getToken();\n let program = token!.program!;\n try {\n program = this._bootstrapService.handleProgram?.(program!) || program;\n } catch (e) {\n //not to do\n }\n\n const headers = {\n Authorization: '',\n Program: ''\n };\n\n if (MonkeyEcxUtils.persistNullEmptyUndefined(token?.accessToken)) {\n headers.Authorization = `Bearer ${token?.accessToken}`;\n }\n\n if (MonkeyEcxUtils.persistNullEmptyUndefined(program)) {\n headers.Program = program;\n }\n\n return headers;\n }\n\n addToPending(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const subject = new Subject<HttpEvent<any>>();\n\n pendingRequests.push({\n request,\n next,\n observer: subject\n });\n\n return subject.asObservable();\n }\n\n private refreshSubject = new ReplaySubject<void>(1);\n\n private retryRequest(req: HttpRequest<any>, next: HttpHandlerFn): Observable<HttpEvent<any>> {\n const headers = this.getHeaders(req.url);\n const cloned = req.clone({ setHeaders: headers });\n return next(cloned);\n }\n\n handleRefreshTokenError(req: HttpRequest<any>, next: HttpHandlerFn): Observable<HttpEvent<any>> {\n if (!this._isTokenRefreshing) {\n this._isTokenRefreshing = true;\n\n return this._authService.refreshToken().pipe(\n tap(() => {\n this.refreshSubject.next();\n }),\n catchError((err) => {\n this._isTokenRefreshing = false;\n this.refreshSubject.error(err);\n this._authService.logOut(true, false, () => {\n this._authService.redirectLoginWelcomeBack();\n });\n return throwError(() => err);\n }),\n finalize(() => {\n this._isTokenRefreshing = false;\n this.refreshSubject = new ReplaySubject<void>(1);\n }),\n switchMap(() => this.retryRequest(req, next))\n );\n }\n\n return this.refreshSubject.pipe(\n take(1),\n switchMap(() => this.retryRequest(req, next))\n );\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-request-error.service';\nexport * from './monkeyecx-request-state.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpClient, HttpContext, HttpEvent, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { MECX_REQUEST_ID } from '../injectors';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { MonkeyEcxLogs } from '../utils';\nimport { MonkeyEcxRequestStateService } from './request';\n\ninterface HttpOptions {\n headers: HttpHeaders | Record<string, string | string[]>;\n observe: 'events';\n context: HttpContext;\n params:\n | HttpParams\n | Record<string, string | number | boolean | ReadonlyArray<string | number | boolean>>;\n reportProgress: boolean;\n responseType: 'json';\n withCredentials: boolean;\n transferCache:\n | {\n includeHeaders?: string[];\n }\n | boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxService {\n private _http = inject(HttpClient);\n\n private _stateService = inject(MonkeyEcxRequestStateService);\n\n private handlelize(params: any): any {\n if (!params) {\n return params;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const field of [\n 'createdAt',\n 'createUserId',\n 'updatedAt',\n 'lastUserId',\n '_links',\n 'governmentIdType',\n 'governmentIdMask',\n 'screenType',\n 'screenTab',\n 'context'\n ]) {\n delete params[field];\n }\n return params;\n }\n\n public internalRequestData: MonkeyEcxServiceCredentials | null = null;\n\n private getOptions(options?: any) {\n if (this.internalRequestData) {\n const requestId = this._stateService.getId(this.internalRequestData.id);\n this._stateService.setData(requestId, this.internalRequestData);\n const context = new HttpContext().set(MECX_REQUEST_ID, requestId);\n\n options = {\n ...options,\n context\n };\n }\n\n return options;\n }\n\n public get<T>(url: string, options?: any): Observable<T> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.get url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n\n return this._http.get<T>(url, options) as Observable<T>;\n }\n\n public getWithProgress<T>(\n url: string,\n options?: Partial<HttpOptions> | {}\n ): Observable<HttpEvent<T>> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.getWithProgress url is missing =='\n });\n\n return of(null as T) as Observable<HttpEvent<T>>;\n }\n\n options = this.getOptions(options);\n\n options = {\n ...options,\n reportProgress: true\n };\n\n return this.get<T>(url, options) as Observable<HttpEvent<T>>;\n }\n\n public post<T>(url: string, params: T, options?: Partial<HttpOptions> | {}): Observable<any> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.post url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n\n return this._http.post<T>(url, this.handlelize(params), options || {});\n }\n\n public put<T>(url: string, params: T, options?: Partial<HttpOptions> | {}): Observable<any> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.put url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n\n return this._http.put<T>(url, this.handlelize(params), options || {});\n }\n\n public patch<T>(url: string, params: T, options?: Partial<HttpOptions> | {}): Observable<any> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.patch url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n\n return this._http.patch<T>(url, this.handlelize(params), options || {});\n }\n\n public delete<T>(url: string, options?: Partial<HttpOptions> | {}): Observable<T> {\n if (!url) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxService.delete url is missing =='\n });\n\n return of(null as T);\n }\n\n options = this.getOptions(options);\n return this._http.delete<T>(url, options || {});\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { registerLocaleData } from '@angular/common';\nimport esCL from '@angular/common/locales/es-CL';\nimport esMX from '@angular/common/locales/es-MX';\nimport ptBr from '@angular/common/locales/pt';\nimport { inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { CACHE_LOCALE_EXPIRATION_MS } from '../../enums';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrapService } from '../../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx.service';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\nimport { MonkeyEcxErrorService } from './monkeyecx-error.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLocaleService {\n private readonly _localeId = injectTokenWithWarning(LOCALE_ID, 'LOCALE_ID')!;\n\n private readonly _service = inject(MonkeyEcxService);\n\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _errorService = inject(MonkeyEcxErrorService);\n\n private readonly _configsService = inject(MonkeyEcxConfigsService);\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private static _loadedBundles = new Map<string, number>();\n\n private static _loadedFromWhiteLabel = false;\n\n constructor() {\n // not to do\n }\n\n private isExpired(lang: string, name: string) {\n const cacheKey = `${name}/${lang}`;\n const now = Date.now();\n\n const lastLoaded = MonkeyEcxLocaleService._loadedBundles.get(cacheKey);\n if (lastLoaded && now - lastLoaded < CACHE_LOCALE_EXPIRATION_MS) {\n return false;\n }\n\n return true;\n }\n\n private loadFromWhitelabel(lang: string) {\n try {\n const whiteLabel = this._configsService.whiteLabel;\n const currentExternali18n = whiteLabel?.externali18n?.[`${lang}`];\n\n let data = {};\n if (currentExternali18n) {\n data = {\n EXTERNAL: currentExternali18n\n };\n }\n\n this._bootstrapService.handleI18N(lang, data);\n } catch (e) {\n this._errorService.apply(e);\n console.error(`MonkeyEcxLocaleService -> loadFromWhitelabel i18n ${lang} not found!`);\n }\n }\n\n private async loadExternal(lang: string, name: string) {\n try {\n if (!this.isExpired(lang, name)) return;\n const env = this._bootstrapService.getEnv();\n const url = MonkeyEcxUtils.replaceVariables(env.urli18nAssets, {\n name,\n lang\n });\n\n const resp = await firstValueFrom<any>(this._service?.get(url));\n this._bootstrapService.handleI18N(lang, resp.data);\n\n MonkeyEcxLocaleService._loadedBundles.set(`${name}/${lang}`, Date.now());\n } catch (e) {\n this._errorService.apply(e);\n console.error(`MonkeyEcxLocaleService -> loadExternal i18n ${name} - ${lang} not found!`);\n }\n }\n\n private async loadInternal(lang: string) {\n try {\n if (!this.isExpired(lang, 'internal')) return;\n const env = this._bootstrapService.getEnv();\n const url = `${env.localAssets}/i18n/${lang}.json`;\n\n const resp = await firstValueFrom<any>(this._service?.get(url));\n this._bootstrapService.handleI18N(lang, resp.data);\n\n MonkeyEcxLocaleService._loadedBundles.set(`internal/${lang}`, Date.now());\n } catch (e) {\n this._errorService.apply(e);\n console.error(`MonkeyEcxLocaleService -> loadInternal i18n ${lang} not found!`);\n }\n }\n\n private async handleValidation() {\n const lang = this._tokenStorageService.getMe()?.locale || this._localeId;\n\n if (this._localeId === 'es-CL') {\n registerLocaleData(esCL);\n } else if (this._localeId === 'es-MX') {\n registerLocaleData(esMX);\n } else {\n registerLocaleData(ptBr);\n }\n\n await this.loadExternal(lang, 'auth');\n await this.loadInternal(lang);\n await this.loadExternal(lang, 'shared');\n this.loadExternal(lang, 'alerts');\n this.loadExternal(lang, 'register');\n this.loadFromWhitelabel(lang);\n }\n\n public async apply() {\n await this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\n/* eslint-disable no-console */\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyDictionaryService } from '../dictionary';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxMaintenanceService {\n private readonly _dictionary = inject(MonkeyDictionaryService).get('MAINTENANCE');\n\n private async handleValidation() {\n const i18n = await firstValueFrom(this._dictionary);\n\n const createElementInner = (tag: any, html: any, styles = {}) => {\n const el = document.createElement(tag);\n if (html) el.innerHTML = html;\n Object.assign(el.style, styles);\n return el;\n };\n\n const createElement = (tag: any, text: any, styles = {}) => {\n const el = document.createElement(tag);\n if (text) el.textContent = text;\n Object.assign(el.style, styles);\n return el;\n };\n\n const overlay = createElement('div', null, {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgba(0, 0, 0, 0.6)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: '9999'\n });\n\n const modalBox = createElement('div', null, {\n backgroundColor: '#fff',\n color: '#333',\n borderRadius: '12px',\n boxShadow: '0 4px 20px rgba(0,0,0,0.3)',\n maxWidth: '480px',\n width: '90%',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n margin: '12px',\n overflow: 'hidden',\n paddingBottom: '24px'\n });\n\n const svg = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"116\" height=\"112\" viewBox=\"0 0 116 112\" fill=\"none\">\n <path d=\"M107.23 85.0007L112.434 85.8139C114.196 83.6812 115.41 81.1507 115.972 78.4421C112.166 81.5569 106.38 79.9017 101.766 81.6022C100.331 82.1436 99.0361 83.001 97.9775 84.1108C96.9189 85.2206 96.1236 86.5544 95.6506 88.0134L93.1074 90.7495C95.4095 91.6609 97.8818 92.0624 100.354 91.9263C102.826 91.7902 105.239 91.1197 107.428 89.9612C108.649 89.299 109.782 88.4858 110.799 87.5406C108.979 86.394 107.23 85.0007 107.23 85.0007Z\" fill=\"#F2F2F2\"/>\n <path d=\"M105.383 76.678L110.404 75.0851C111.029 72.3906 110.988 69.5841 110.282 66.9094C108.266 71.3943 102.348 72.4935 98.9768 76.0733C97.9339 77.1978 97.1574 78.5427 96.7048 80.0081C96.2523 81.4736 96.1353 83.0221 96.3626 84.5389L95.3066 88.1221C97.7736 87.9111 100.165 87.1678 102.317 85.9435C104.469 84.7191 106.33 83.0428 107.772 81.0299C108.57 79.8927 109.221 78.6596 109.711 77.3596C107.57 77.1455 105.383 76.678 105.383 76.678Z\" fill=\"#F2F2F2\"/>\n <path d=\"M116 92.4072C116 92.434 115.995 92.4606 115.985 92.4855C115.974 92.5103 115.959 92.5328 115.94 92.5518C115.921 92.5708 115.899 92.5859 115.874 92.5961C115.849 92.6063 115.823 92.6116 115.796 92.6115H0.204301C0.150117 92.6115 0.0981519 92.59 0.0598381 92.5516C0.0215242 92.5133 0 92.4614 0 92.4072C0 92.353 0.0215242 92.301 0.0598381 92.2627C0.0981519 92.2244 0.150117 92.2029 0.204301 92.2029H115.796C115.823 92.2028 115.849 92.208 115.874 92.2183C115.899 92.2285 115.921 92.2435 115.94 92.2625C115.959 92.2815 115.974 92.3041 115.985 92.3289C115.995 92.3537 116 92.3803 116 92.4072Z\" fill=\"#CCCCCC\"/>\n <path d=\"M47.8988 83.6973C68.2845 83.6973 84.8103 67.1714 84.8103 46.7858C84.8103 26.4001 68.2845 9.87427 47.8988 9.87427C27.5132 9.87427 10.9873 26.4001 10.9873 46.7858C10.9873 67.1714 27.5132 83.6973 47.8988 83.6973Z\" fill=\"#E6E6E6\"/>\n <path d=\"M79.6598 46.786C79.6635 51.7419 78.5059 56.6297 76.2796 61.0574C74.0534 65.4851 70.8205 69.3296 66.8404 72.2824C66.5743 72.4815 66.303 72.6755 66.03 72.8644C60.7076 76.5641 54.3807 78.547 47.8988 78.547C41.4168 78.547 35.0899 76.5641 29.7675 72.8644C29.4945 72.6755 29.2232 72.4815 28.9571 72.2824C24.9797 69.327 21.7489 65.482 19.5229 61.0549C17.297 56.6277 16.1377 51.7412 16.1377 46.786C16.1377 41.8307 17.297 36.9442 19.5229 32.5171C21.7489 28.0899 24.9797 24.245 28.9571 21.2896C29.2232 21.0904 29.4945 20.8964 29.7675 20.7076C35.0899 17.0078 41.4168 15.0249 47.8988 15.0249C54.3807 15.0249 60.7076 17.0078 66.03 20.7076C66.303 20.8964 66.5743 21.0904 66.8404 21.2896C70.8205 24.2424 74.0534 28.0868 76.2796 32.5145C78.5059 36.9423 79.6635 41.8301 79.6598 46.786Z\" fill=\"white\"/>\n <path d=\"M47.8989 75.8001C63.923 75.8001 76.9131 62.81 76.9131 46.7859C76.9131 30.7618 63.923 17.7717 47.8989 17.7717C31.8749 17.7717 18.8848 30.7618 18.8848 46.7859C18.8848 62.81 31.8749 75.8001 47.8989 75.8001Z\" fill=\"#0273E8\"/>\n <path opacity=\"0.2\" d=\"M47.9743 17.8528C47.5344 17.8528 47.0973 17.8643 46.6622 17.8837C53.9954 18.528 60.8094 21.9359 65.7238 27.4167C70.6382 32.8975 73.2855 40.0414 73.1292 47.4012C72.973 54.761 70.025 61.7862 64.8825 67.0535C59.74 72.3209 52.7875 75.4365 45.4336 75.7691C46.271 75.8418 47.118 75.8811 47.9743 75.8811C55.6693 75.8811 63.0492 72.8243 68.4904 67.3831C73.9316 61.9418 76.9884 54.562 76.9884 46.867C76.9884 39.1719 73.9316 31.792 68.4904 26.3508C63.0492 20.9096 55.6693 17.8528 47.9743 17.8528Z\" fill=\"black\"/>\n <path d=\"M47.9843 15.7114C47.734 15.7119 47.4941 15.8115 47.3171 15.9885C47.1401 16.1655 47.0405 16.4054 47.04 16.6557V20.776C47.04 21.0265 47.1395 21.2666 47.3166 21.4437C47.4937 21.6208 47.7339 21.7203 47.9843 21.7203C48.2347 21.7203 48.4749 21.6208 48.652 21.4437C48.8291 21.2666 48.9285 21.0265 48.9285 20.776V16.6557C48.9281 16.4054 48.8285 16.1655 48.6515 15.9885C48.4745 15.8115 48.2346 15.7119 47.9843 15.7114Z\" fill=\"white\"/>\n <path d=\"M66.8398 21.2893C66.5737 21.0902 66.3024 20.8962 66.0295 20.7073C65.8657 20.6966 65.7019 20.7289 65.5544 20.8008C65.4069 20.8728 65.2807 20.982 65.1882 21.1176L62.8688 24.5221C62.7279 24.729 62.675 24.9835 62.7216 25.2295C62.7683 25.4754 62.9108 25.6928 63.1178 25.8337C63.3247 25.9746 63.5792 26.0276 63.8251 25.9809C64.0711 25.9342 64.2885 25.7917 64.4294 25.5848L66.7488 22.1803C66.8371 22.0512 66.8916 21.902 66.9075 21.7464C66.9234 21.5908 66.9001 21.4337 66.8398 21.2893Z\" fill=\"white\"/>\n <path d=\"M77.3786 36.8129C77.3319 36.6981 77.2631 36.5937 77.1761 36.5055C77.0891 36.4173 76.9855 36.3471 76.8714 36.299C76.7572 36.2508 76.6347 36.2256 76.5108 36.2249C76.3869 36.2241 76.2641 36.2477 76.1493 36.2944L72.3311 37.8447C72.0994 37.9391 71.9146 38.1217 71.8173 38.3523C71.7201 38.5829 71.7184 38.8427 71.8126 39.0745C71.9068 39.3064 72.0892 39.4913 72.3197 39.5888C72.5502 39.6862 72.81 39.6882 73.0419 39.5942L76.8601 38.0439C77.0917 37.949 77.2764 37.7662 77.3735 37.5355C77.4707 37.3048 77.4725 37.045 77.3786 36.8129Z\" fill=\"white\"/>\n <path d=\"M32.9283 24.5221L30.6089 21.1176C30.5165 20.982 30.3903 20.8728 30.2427 20.8008C30.0952 20.7289 29.9315 20.6966 29.7677 20.7073C29.4947 20.8962 29.2234 21.0902 28.9573 21.2893C28.897 21.4337 28.8737 21.5908 28.8896 21.7464C28.9055 21.902 28.9601 22.0512 29.0483 22.1803L31.3677 25.5848C31.5087 25.7917 31.726 25.9342 31.972 25.9809C32.218 26.0276 32.4724 25.9747 32.6794 25.8337C32.8863 25.6928 33.0288 25.4754 33.0755 25.2295C33.1222 24.9835 33.0692 24.729 32.9283 24.5221Z\" fill=\"white\"/>\n <path d=\"M23.4672 37.8448L19.649 36.2945C19.417 36.2003 19.1571 36.2021 18.9265 36.2995C18.6958 36.3969 18.5133 36.5819 18.419 36.8139C18.3248 37.0458 18.3266 37.3057 18.4239 37.5364C18.5213 37.7671 18.7063 37.9496 18.9382 38.0439L22.7564 39.5942C22.9883 39.6882 23.2481 39.6862 23.4786 39.5888C23.7091 39.4913 23.8915 39.3064 23.9857 39.0745C24.0799 38.8427 24.0782 38.5829 23.981 38.3523C23.8837 38.1217 23.6989 37.9392 23.4672 37.8448Z\" fill=\"white\"/>\n <path d=\"M47.9843 71.8513C47.734 71.8518 47.4941 71.9514 47.3171 72.1284C47.1401 72.3053 47.0405 72.5453 47.04 72.7956V76.9159C47.04 77.1664 47.1395 77.4065 47.3166 77.5836C47.4937 77.7607 47.7339 77.8602 47.9843 77.8602C48.2347 77.8602 48.4749 77.7607 48.652 77.5836C48.8291 77.4065 48.9285 77.1664 48.9285 76.9159V72.7956C48.9281 72.5453 48.8285 72.3053 48.6515 72.1284C48.4745 71.9514 48.2346 71.8518 47.9843 71.8513Z\" fill=\"white\"/>\n <path d=\"M66.7488 71.3913L64.4294 67.9869C64.3596 67.8844 64.2703 67.7967 64.1667 67.7287C64.063 67.6608 63.9469 67.6139 63.8251 67.5908C63.7033 67.5677 63.5782 67.5688 63.4568 67.594C63.3354 67.6193 63.2202 67.6682 63.1178 67.738C63.0153 67.8077 62.9276 67.897 62.8596 68.0007C62.7916 68.1044 62.7448 68.2204 62.7216 68.3422C62.6985 68.464 62.6996 68.5892 62.7249 68.7105C62.7501 68.8319 62.799 68.9471 62.8688 69.0496L65.1882 72.4541C65.2807 72.5897 65.4069 72.6989 65.5544 72.7709C65.7019 72.8428 65.8657 72.8751 66.0295 72.8644C66.3025 72.6755 66.5737 72.4815 66.8398 72.2824C66.9001 72.138 66.9234 71.9809 66.9075 71.8253C66.8916 71.6697 66.8371 71.5205 66.7488 71.3913Z\" fill=\"white\"/>\n <path d=\"M76.8598 55.5279L73.0416 53.9776C72.8096 53.8834 72.5497 53.8852 72.319 53.9826C72.0884 54.08 71.9059 54.265 71.8116 54.497C71.7174 54.7289 71.7191 54.9888 71.8165 55.2195C71.9139 55.4502 72.0989 55.6327 72.3308 55.727L76.149 57.2773C76.3809 57.3713 76.6407 57.3693 76.8712 57.2719C77.1017 57.1744 77.2841 56.9895 77.3783 56.7576C77.4725 56.5258 77.4708 56.266 77.3736 56.0354C77.2763 55.8048 77.0915 55.6223 76.8598 55.5279Z\" fill=\"white\"/>\n <path d=\"M32.6794 67.7379C32.4724 67.597 32.218 67.5441 31.972 67.5908C31.726 67.6375 31.5087 67.7799 31.3677 67.9868L29.0483 71.3912C28.9601 71.5204 28.9055 71.6696 28.8896 71.8252C28.8737 71.9808 28.897 72.1379 28.9573 72.2823C29.2234 72.4814 29.4947 72.6754 29.7677 72.8643C29.9315 72.875 30.0952 72.8427 30.2427 72.7708C30.3903 72.6988 30.5165 72.5896 30.6089 72.454L32.9283 69.0495C32.9981 68.9471 33.047 68.8318 33.0723 68.7105C33.0975 68.5891 33.0986 68.4639 33.0755 68.3421C33.0524 68.2203 33.0055 68.1043 32.9376 68.0006C32.8696 67.8969 32.7818 67.8076 32.6794 67.7379Z\" fill=\"white\"/>\n <path d=\"M23.985 54.496C23.9384 54.3813 23.8696 54.2768 23.7826 54.1886C23.6955 54.1004 23.592 54.0302 23.4778 53.9821C23.3637 53.9339 23.2411 53.9088 23.1173 53.908C22.9934 53.9072 22.8705 53.9308 22.7558 53.9776L18.9376 55.5278C18.7058 55.6222 18.521 55.8048 18.4238 56.0354C18.3266 56.266 18.3249 56.5258 18.419 56.7576C18.5132 56.9895 18.6956 57.1744 18.9261 57.2719C19.1566 57.3693 19.4164 57.3713 19.6483 57.2773L23.4665 55.727C23.6982 55.6321 23.8828 55.4493 23.98 55.2186C24.0772 54.9879 24.079 54.7281 23.985 54.496Z\" fill=\"white\"/>\n <path d=\"M49.2097 46.3172C49.2969 46.8334 49.1758 47.363 48.873 47.79C48.5701 48.2169 48.1103 48.5063 47.5944 48.5947L30.8386 51.4448C30.583 51.4883 30.3214 51.481 30.0686 51.4234C29.8158 51.3657 29.5768 51.2588 29.3653 51.1089C29.1539 50.9589 28.974 50.7687 28.836 50.5492C28.698 50.3297 28.6046 50.0851 28.5612 49.8295C28.5177 49.5739 28.525 49.3123 28.5826 49.0595C28.6403 48.8067 28.7471 48.5677 28.8971 48.3563C29.0471 48.1448 29.2373 47.9649 29.4568 47.8269C29.6763 47.6889 29.9209 47.5955 30.1765 47.5521L46.9322 44.7019C47.4484 44.6147 47.978 44.7359 48.405 45.0387C48.8319 45.3415 49.1213 45.8013 49.2097 46.3172Z\" fill=\"#3F3D56\"/>\n <path d=\"M66.8446 64.8813C66.6039 65.1234 66.277 65.2601 65.9357 65.2614C65.5943 65.2628 65.2663 65.1286 65.0237 64.8885L46.9863 46.9926C46.7443 46.752 46.6076 46.4251 46.6065 46.0838C46.6053 45.7426 46.7396 45.4148 46.98 45.1725C47.2204 44.9302 47.5471 44.7933 47.8884 44.7918C48.2297 44.7903 48.5576 44.9243 48.8001 45.1645L66.8375 63.0604C67.0795 63.3011 67.2163 63.628 67.2176 63.9693C67.2189 64.3107 67.0848 64.6387 66.8446 64.8813Z\" fill=\"#3F3D56\"/>\n <path d=\"M47.8989 49.0177C49.1315 49.0177 50.1307 48.0184 50.1307 46.7858C50.1307 45.5532 49.1315 44.554 47.8989 44.554C46.6662 44.554 45.667 45.5532 45.667 46.7858C45.667 48.0184 46.6662 49.0177 47.8989 49.0177Z\" fill=\"#CCCCCC\"/>\n <path d=\"M32.5253 8.0851C29.0995 13.4712 23.8724 17.0456 17.426 19.3938C17.2986 19.4892 17.1537 19.5586 16.9995 19.598C16.8453 19.6374 16.6849 19.646 16.5273 19.6234C16.3698 19.6008 16.2183 19.5474 16.0814 19.4662C15.9445 19.385 15.8249 19.2777 15.7295 19.1503C12.2279 14.475 13.0186 7.79306 17.64 4.22058C18.7572 3.35838 20.0347 2.7267 21.3981 2.36223C22.7615 1.99775 24.1837 1.90774 25.5822 2.09741C26.9807 2.28708 28.3276 2.75265 29.5446 3.46711C30.7617 4.18156 31.8247 5.13067 32.672 6.25932L32.7689 6.38863C32.8643 6.51601 32.9337 6.66093 32.973 6.81513C33.0124 6.96932 33.0211 7.12977 32.9985 7.2873C32.9758 7.44483 32.9224 7.59637 32.8413 7.73326C32.7601 7.87014 32.6527 7.9897 32.5253 8.0851Z\" fill=\"#E6E6E6\"/>\n <path d=\"M63.1249 6.25931C63.9721 5.13067 65.0352 4.18156 66.2523 3.46711C67.4693 2.75265 68.8162 2.28708 70.2147 2.09741C71.6132 1.90774 73.0354 1.99775 74.3988 2.36223C75.7622 2.7267 77.0396 3.35838 78.1569 4.22058C82.7783 7.79306 83.569 14.475 80.0674 19.1503C79.972 19.2777 79.8524 19.385 79.7155 19.4662C79.5786 19.5474 79.4271 19.6008 79.2696 19.6234C79.112 19.646 78.9516 19.6374 78.7974 19.598C78.6432 19.5586 78.4983 19.4892 78.3709 19.3938C72.3865 17.1027 67.479 13.1379 63.2715 8.0851C63.0143 7.89243 62.8441 7.60544 62.7984 7.28729C62.7528 6.96914 62.8353 6.64588 63.028 6.38862L63.1249 6.25931Z\" fill=\"#E6E6E6\"/>\n <path d=\"M61.6232 78.7647C61.405 78.8873 61.2442 79.0914 61.1762 79.3323C61.1082 79.5731 61.1384 79.8311 61.2603 80.0498L66.7098 89.788C66.8321 90.0065 67.0362 90.1674 67.2772 90.2354C67.5181 90.3035 67.7763 90.273 67.9948 90.1507C68.2133 90.0284 68.3743 89.8244 68.4423 89.5834C68.5104 89.3424 68.48 89.0843 68.3578 88.8658L62.9083 79.1276C62.7857 78.9094 62.5816 78.7486 62.3407 78.6806C62.0998 78.6126 61.8418 78.6428 61.6232 78.7647Z\" fill=\"#E6E6E6\"/>\n <path d=\"M32.889 79.1274L27.4395 88.8656C27.3173 89.0841 27.2868 89.3423 27.3549 89.5832C27.423 89.8242 27.584 90.0282 27.8025 90.1505C28.021 90.2728 28.2791 90.3033 28.5201 90.2352C28.7611 90.1672 28.9652 90.0063 29.0875 89.7878L34.537 80.0496C34.5976 79.9414 34.6362 79.8223 34.6508 79.6991C34.6654 79.576 34.6555 79.4511 34.6218 79.3318C34.5881 79.2124 34.5313 79.1009 34.4545 79.0035C34.3776 78.9061 34.2824 78.8249 34.1742 78.7643C34.066 78.7037 33.9469 78.6651 33.8237 78.6505C33.7005 78.636 33.5757 78.6459 33.4564 78.6796C33.337 78.7133 33.2255 78.7702 33.1281 78.847C33.0308 78.9239 32.9495 79.0191 32.889 79.1274Z\" fill=\"#E6E6E6\"/>\n <path d=\"M67.8141 92.2815C69.426 92.2815 70.7327 90.9748 70.7327 89.3629C70.7327 87.751 69.426 86.4443 67.8141 86.4443C66.2022 86.4443 64.8955 87.751 64.8955 89.3629C64.8955 90.9748 66.2022 92.2815 67.8141 92.2815Z\" fill=\"#E6E6E6\"/>\n <path d=\"M69.8737 17.5999C71.4856 17.5999 72.7922 16.2932 72.7922 14.6813C72.7922 13.0694 71.4856 11.7627 69.8737 11.7627C68.2618 11.7627 66.9551 13.0694 66.9551 14.6813C66.9551 16.2932 68.2618 17.5999 69.8737 17.5999Z\" fill=\"#E6E6E6\"/>\n <path d=\"M47.7272 10.7327C49.3391 10.7327 50.6458 9.42598 50.6458 7.81409C50.6458 6.2022 49.3391 4.89551 47.7272 4.89551C46.1153 4.89551 44.8086 6.2022 44.8086 7.81409C44.8086 9.42598 46.1153 10.7327 47.7272 10.7327Z\" fill=\"#E6E6E6\"/>\n <path d=\"M26.61 17.2566C28.2219 17.2566 29.5286 15.9499 29.5286 14.338C29.5286 12.7261 28.2219 11.4194 26.61 11.4194C24.9981 11.4194 23.6914 12.7261 23.6914 14.338C23.6914 15.9499 24.9981 17.2566 26.61 17.2566Z\" fill=\"#E6E6E6\"/>\n <path d=\"M28.4987 92.2815C30.1106 92.2815 31.4172 90.9748 31.4172 89.3629C31.4172 87.751 30.1106 86.4443 28.4987 86.4443C26.8868 86.4443 25.5801 87.751 25.5801 89.3629C25.5801 90.9748 26.8868 92.2815 28.4987 92.2815Z\" fill=\"#E6E6E6\"/>\n <path d=\"M65.5243 63.2399C65.6394 63.4201 65.7925 63.5728 65.973 63.6873C66.1534 63.8019 66.3568 63.8755 66.5688 63.9029C66.7808 63.9304 66.9962 63.911 67.1999 63.8462C67.4035 63.7814 67.5905 63.6727 67.7477 63.5278L72.3274 65.9817L72.0818 63.293L67.7705 61.3749C67.5096 61.1271 67.1668 60.9835 66.8071 60.9715C66.4475 60.9595 66.0959 61.0799 65.819 61.3098C65.5422 61.5396 65.3592 61.8631 65.3049 62.2188C65.2506 62.5746 65.3287 62.9379 65.5243 63.2399Z\" fill=\"#FFB7B7\"/>\n <path d=\"M68.8613 64.1782L70.656 61.7009L79.3019 65.7881L90.0606 63.7694C90.5924 63.6696 91.1397 63.6881 91.6635 63.8237C92.1873 63.9592 92.6749 64.2083 93.0916 64.5535C93.5083 64.8986 93.844 65.3313 94.0747 65.8207C94.3054 66.3101 94.4255 66.8444 94.4265 67.3854C94.4273 68.3627 94.0403 69.3004 93.3505 69.9928C92.6607 70.6851 91.7245 71.0755 90.7472 71.0784L78.4177 71.1013L68.8613 64.1782Z\" fill=\"#3F3D56\"/>\n <path d=\"M66.0971 106.966L64.2812 106.098L66.7756 98.5078L69.4554 99.7896L66.0971 106.966Z\" fill=\"#FFB7B7\"/>\n <path d=\"M78.2705 105.742C78.1385 105.825 78.0065 105.906 77.8731 105.988C77.6077 106.151 77.3396 106.311 77.0715 106.468C76.9368 106.547 76.8007 106.625 76.666 106.703V106.707L76.658 106.708L76.6554 106.709L76.45 106.76L76.1552 105.981L76.0192 105.622L75.8271 105.114L75.475 104.185L73.6211 99.2898L76.5033 98.5789L76.6114 99.0203H76.6127L76.666 99.2391L77.673 103.323L77.8784 104.158L77.8851 104.183L78.0091 104.682L78.1158 105.114L78.2345 105.597L78.2705 105.742Z\" fill=\"#FFB7B7\"/>\n <path d=\"M95.464 88.5528C95.2813 88.8462 95.0946 89.1383 94.9065 89.4277C94.5571 89.9666 94.1983 90.4974 93.8302 91.0202C93.8302 91.0216 93.8288 91.0216 93.8275 91.0229C93.6127 91.2218 93.3755 91.3951 93.1206 91.5391C93.1099 91.5471 93.0979 91.5524 93.0873 91.5591C92.8996 91.6628 92.6998 91.743 92.4924 91.7978C92.4177 91.8165 92.3417 91.8352 92.267 91.8538C91.9976 91.9178 91.7309 91.9725 91.4654 92.0205C90.9933 92.1046 90.5265 92.1646 90.0623 92.2019C90.025 92.2059 89.9877 92.2086 89.9503 92.2113C88.0417 92.3513 86.1838 92.1259 84.2445 91.7565C83.2869 91.5751 82.3093 91.3577 81.2969 91.1323C80.9662 91.0576 80.6341 90.9842 80.298 90.9109C80.2726 90.9055 80.246 90.8989 80.2193 90.8935C79.7391 90.7882 79.251 90.6841 78.7508 90.5814C78.1213 90.4521 77.4718 90.3267 76.7969 90.208L76.8449 91.1589C76.8849 91.8905 77.0369 92.6116 77.2957 93.2969C77.5838 94.1399 77.8119 94.8067 77.3304 96.1952L77.0983 96.8674C77.2186 97.2012 77.2599 97.5583 77.2189 97.9108C77.178 98.2632 77.0559 98.6014 76.8622 98.8987L76.8156 98.9694L78.7508 103.866L78.8762 104.183H77.8852L76.6662 104.184H74.6002L71.6193 98.2038L71.4766 97.9184V97.9037L71.7847 86.4108C71.7887 86.3094 71.7967 86.2067 71.81 86.1054C71.8643 85.6446 72.0099 85.1992 72.2382 84.7953C72.4665 84.3913 72.773 84.0369 73.1397 83.7527C73.4912 83.478 73.8937 83.2759 74.324 83.1582C74.7542 83.0406 75.2035 83.0096 75.6459 83.0671L76.6662 83.1991L78.7508 83.4686L80.2193 83.6593L80.2486 83.6633L84.5793 84.2235L84.8901 82.9564L84.9474 82.9351L86.7706 82.2669L93.0766 79.9555L93.0926 79.9501L93.5074 79.7981L93.5567 79.8781C93.5714 79.9021 93.5861 79.9261 93.5994 79.9501C94.0094 80.6851 94.3432 81.46 94.5957 82.2629C95.0203 83.5743 95.3699 84.9089 95.6427 86.2601C95.6547 86.3188 95.6654 86.3721 95.6747 86.4202L95.6787 86.4348C95.6827 86.4575 95.6854 86.4722 95.6867 86.4762C95.8321 87.0817 95.7308 87.8206 95.464 88.5528Z\" fill=\"#2F2E41\"/>\n <path d=\"M95.7305 84.3173C95.7105 84.232 95.6852 84.1453 95.6585 84.0612C95.4467 83.4248 95.2001 82.8006 94.9196 82.1913C94.6048 81.4978 94.2274 80.7549 93.7779 79.9506C93.5605 79.5612 93.3267 79.1562 93.0764 78.7356C92.951 78.5249 92.8207 78.3101 92.6856 78.0914C92.6803 78.0813 92.6745 78.0715 92.6682 78.0621L92.6296 77.998L86.3903 78.833L84.0669 79.1437L83.9282 80.3014L83.8948 80.5882C83.8935 80.5882 83.8935 80.5882 83.8948 80.5895L83.8015 81.3711V81.3724L83.6774 82.4047L83.6668 82.4034L80.219 81.9566L76.6659 81.4965L74.7573 81.2497C74.315 81.1921 73.8657 81.223 73.4354 81.3407C73.0052 81.4584 72.6026 81.6605 72.2512 81.9353C71.8846 82.2196 71.5781 82.574 71.3498 82.978C71.1215 83.3819 70.9759 83.8272 70.9215 84.288C70.9095 84.3814 70.9015 84.4774 70.8975 84.5721L69.0969 88.8387C68.0195 91.3904 67.3333 94.0901 67.0616 96.8466L65.7412 101.068L65.9293 101.085L68.7275 101.345L69.4664 101.415L71.0935 99.0393C71.2789 98.7685 71.455 98.4897 71.619 98.2043C71.8891 97.7382 72.1292 97.2553 72.3379 96.7585L75.8577 88.3826C76.1298 88.4293 76.3992 88.4738 76.6659 88.516C77.8997 88.7161 79.084 88.8792 80.219 89.0055C83.9095 89.4176 87.1052 89.4496 89.9501 89.1002C90.749 89.0028 91.5212 88.8748 92.2668 88.716C92.5402 88.6587 92.8101 88.5969 93.0764 88.5307C93.139 88.516 93.2004 88.5013 93.2618 88.4853C93.813 88.3432 94.3197 88.065 94.7356 87.6764C95.1515 87.2877 95.4634 86.8009 95.6425 86.2606C95.8564 85.6345 95.8869 84.9603 95.7305 84.3173Z\" fill=\"#2F2E41\"/>\n <path d=\"M66.6772 105.727L64.7126 104.785L64.4045 104.637L63.9123 105.845L60.4766 106.602C60.3067 106.639 60.1532 106.729 60.0385 106.86C59.9238 106.991 59.8538 107.155 59.8389 107.328C59.824 107.501 59.8649 107.675 59.9557 107.823C60.0464 107.972 60.1822 108.087 60.3432 108.153L63.7003 109.522L64.7659 108.564L64.5045 109.851L65.7689 110.367L67.1547 105.956L66.6772 105.727Z\" fill=\"#2F2E41\"/>\n <path d=\"M78.751 103.865L78.8765 104.183H78.751V103.865Z\" fill=\"#2F2E41\"/>\n <path d=\"M78.0668 104.251L76.0082 104.964L75.6851 105.075L76.1856 106.28L74.2764 109.235C74.1819 109.381 74.1365 109.554 74.147 109.727C74.1574 109.901 74.2231 110.066 74.3344 110.2C74.4458 110.334 74.5969 110.428 74.7658 110.47C74.9347 110.511 75.1124 110.498 75.273 110.431L78.6223 109.042L78.7048 107.611L79.4246 108.71L80.6862 108.187L78.5675 104.078L78.0668 104.251Z\" fill=\"#2F2E41\"/>\n <path d=\"M95.2165 86.2495C95.0942 86.2493 94.9739 86.2194 94.8657 86.1625L84.0027 80.4863L83.8772 79.9724L83.6406 78.3463L83.6439 78.331L84.677 73.568C84.658 73.5271 84.6185 73.4601 84.5738 73.3843C84.1126 72.6028 82.7089 70.2244 85.3878 66.9496L90.0911 61.4662L94.1278 61.2925L94.1737 61.3505C95.2531 62.7053 95.981 64.3057 96.2928 66.0096C96.6046 67.7135 96.4906 69.468 95.961 71.1172L95.5406 78.7084L95.9915 80.2415C96.255 81.1424 96.2114 82.1054 95.8676 82.9788L95.9709 85.4612C95.9749 85.5629 95.9584 85.6644 95.9224 85.7597C95.8863 85.8549 95.8314 85.9419 95.761 86.0155C95.6906 86.089 95.6061 86.1477 95.5126 86.1879C95.419 86.2281 95.3183 86.249 95.2165 86.2495Z\" fill=\"#3F3D56\"/>\n <path d=\"M85.7942 92.5099C85.9782 92.4012 86.1362 92.2535 86.2569 92.0771C86.3777 91.9008 86.4583 91.7001 86.4931 91.4892C86.5279 91.2783 86.5161 91.0623 86.4584 90.8565C86.4007 90.6507 86.2986 90.46 86.1592 90.298L88.771 85.8064L86.0753 85.9583L84.0084 90.2003C83.7516 90.4524 83.5963 90.79 83.5718 91.149C83.5473 91.5081 83.6553 91.8636 83.8754 92.1483C84.0955 92.433 84.4125 92.6271 84.7661 92.6937C85.1197 92.7604 85.4855 92.695 85.7942 92.5099Z\" fill=\"#FFB7B7\"/>\n <path d=\"M86.8479 89.2077L84.4346 87.328L88.82 78.8295L87.1767 68.007C87.0955 67.4721 87.1331 66.9258 87.2867 66.407C87.4404 65.8882 87.7064 65.4096 88.0658 65.0051C88.4252 64.6007 88.8693 64.2803 89.3664 64.0668C89.8636 63.8532 90.4017 63.7518 90.9425 63.7696C91.9192 63.8028 92.8429 64.2222 93.5108 64.9356C94.1787 65.6491 94.5363 66.5983 94.5052 67.5751L94.0992 79.898L86.8479 89.2077Z\" fill=\"#3F3D56\"/>\n <path d=\"M87.502 59.1878V55.1934C87.501 53.7738 88.0641 52.412 89.0672 51.4076C90.0704 50.4031 91.4315 49.8383 92.851 49.8374C94.2706 49.8365 95.6324 50.3995 96.6368 51.4027C97.6413 52.4058 98.2061 53.7669 98.207 55.1865V55.1934C99.1504 57.1592 98.5602 58.0938 98.207 59.1878C98.2067 59.3783 98.1308 59.561 97.9961 59.6957C97.8614 59.8304 97.6788 59.9062 97.4883 59.9065H88.221C88.0304 59.9063 87.8477 59.8305 87.7129 59.6958C87.5781 59.5611 87.5023 59.3784 87.502 59.1878Z\" fill=\"#2F2E41\"/>\n <path d=\"M91.0993 59.6469C93.3121 59.6469 95.1059 57.8531 95.1059 55.6403C95.1059 53.4276 93.3121 51.6338 91.0993 51.6338C88.8866 51.6338 87.0928 53.4276 87.0928 55.6403C87.0928 57.8531 88.8866 59.6469 91.0993 59.6469Z\" fill=\"#FFB7B7\"/>\n <path d=\"M95.2927 56.6907C95.2563 56.6849 95.22 56.6773 95.1837 56.6716C94.5588 56.5607 93.9338 56.4518 93.3108 56.339L93.2534 54.9267L92.4985 56.1918C90.7765 56.7633 89.1654 56.4403 87.6498 55.7274C87.1499 55.4901 86.6648 55.2227 86.1973 54.9267C86.3246 54.1455 86.6249 53.4027 87.0763 52.7526C87.5277 52.1025 88.1187 51.5615 88.8061 51.1692C88.8634 51.1367 88.9188 51.1081 88.9762 51.0794L88.9769 51.0793L88.9775 51.0788L88.9779 51.0782L88.9781 51.0775C89.0755 51.0316 89.1749 50.9877 89.2743 50.9475C90.0524 50.6435 90.9007 50.5665 91.7208 50.7255C92.5409 50.8845 93.299 51.273 93.907 51.8458C95.1302 53.0135 95.6806 54.9419 95.2927 56.6907Z\" fill=\"#2F2E41\"/>\n</svg>\n\n `;\n\n const svgContainer = createElementInner('div', svg, {\n width: '100%',\n padding: '24px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n });\n\n const title = createElement('span', i18n.TITLE, {\n fontSize: '24px',\n fontWeight: 'bold'\n });\n\n const message = createElement('p', i18n?.['SUB-TITLE'], {\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '1.5',\n padding: '0 24px',\n marginBottom: '12px'\n });\n\n const tryAgainButton = createElement('button', i18n.ACTION, {\n marginTop: '16px',\n padding: '12px 20px',\n fontSize: '1em',\n fontWeight: '600',\n color: '#fff',\n backgroundColor: '#007BFF',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n boxShadow: '0 2px 5px rgba(0,0,0,0.2)',\n transition: 'background-color 0.3s ease',\n letterSpacing: '0.48px'\n });\n\n tryAgainButton.addEventListener('mouseover', () => {\n tryAgainButton.style.backgroundColor = '#0056b3';\n });\n\n tryAgainButton.addEventListener('mouseout', () => {\n tryAgainButton.style.backgroundColor = '#007BFF';\n });\n\n tryAgainButton.addEventListener('click', () => {\n window.location.reload();\n });\n\n modalBox.appendChild(svgContainer);\n modalBox.appendChild(title);\n modalBox.appendChild(message);\n modalBox.appendChild(tryAgainButton);\n overlay.appendChild(modalBox);\n document.body.appendChild(overlay);\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { DOCUMENT, Inject, Injectable } from '@angular/core';\nimport { MonkeyEcxStyleGuide, MonkeyEcxStyleGuideFont } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxStyleGuideService {\n constructor(@Inject(DOCUMENT) private doc: any) {\n // not to do\n }\n\n private applyColors(settings: MonkeyEcxStyleGuide): any {\n const { colors } = settings;\n\n const colorKeys = ['theme'] as const;\n\n colorKeys.forEach((color) => {\n Object.entries(colors?.[color] as any).forEach(([paletteKey, paletteValue]) => {\n if (paletteKey === 'contrast') {\n Object.entries(paletteValue as Record<string, string | number>).forEach(\n ([paletteContrastKey, paletteContrastValue]) => {\n const variableName = `--mecx-color-${color}-contrast-${paletteContrastKey}`;\n const existing = document.documentElement.style.getPropertyValue(variableName);\n\n if (!existing) {\n document.documentElement.style.setProperty(variableName, `${paletteContrastValue}`);\n }\n }\n );\n } else {\n const variableName = `--mecx-color-${color}-${paletteKey}`;\n const existing = document.documentElement.style.getPropertyValue(variableName);\n\n if (!existing) {\n document.documentElement.style.setProperty(variableName, `${paletteValue}`);\n }\n }\n });\n });\n }\n\n private applyFonts(settings: MonkeyEcxStyleGuide) {\n const font: MonkeyEcxStyleGuideFont = {\n url: 'https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap',\n name: 'Work Sans',\n ...settings.font\n };\n\n document.documentElement.style.setProperty(`--mecx-font-name`, `${font.name}`);\n\n const link: HTMLLinkElement = this.doc.createElement('link');\n link.setAttribute('rel', 'stylesheet');\n link.setAttribute('type', 'text/css');\n link.setAttribute('href', `${font.url}`);\n this.doc.head.appendChild(link);\n }\n\n private applyTheme(settings: MonkeyEcxStyleGuide) {\n const { theme } = settings;\n if (!theme) return;\n document.title = `${theme.title}`;\n\n const link: HTMLLinkElement = this.doc.createElement('link');\n link.setAttribute('rel', 'icon');\n link.setAttribute('type', 'image/x-icon');\n link.setAttribute('href', `${theme.favicon}`);\n this.doc.head.appendChild(link);\n }\n\n public apply(config: MonkeyEcxStyleGuide) {\n this.applyColors(config);\n this.applyFonts(config);\n this.applyTheme(config);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { filter } from 'rxjs';\nimport { MonkeyEcxNewVersionService } from './monkeyecx-new-version.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxUpdateService {\n private readonly _service = inject(MonkeyEcxNewVersionService);\n\n constructor(private _swUpdate: SwUpdate) {\n // not to do\n }\n\n private handleValidation() {\n if (this._swUpdate.isEnabled) {\n this._swUpdate.versionUpdates\n .pipe(\n filter((evt) => {\n return evt.type === 'VERSION_READY';\n })\n )\n .subscribe(() => {\n this._swUpdate.activateUpdate().then(() => {\n this._service.apply();\n });\n });\n }\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpHeaders, HttpParams } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { injectTokenWithWarning, MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxBootstrap } from '../../interfaces';\nimport { MonkeyEcxConnectionService } from '../connection';\nimport { MonkeyEcxService } from '../monkeyecx.service';\nimport { MonkeyEcxAlertsService } from './monkeyecx-alerts.service';\nimport { MonkeyEcxConfigsService } from './monkeyecx-configs.service';\nimport { MonkeyEcxSecurityConsoleService } from './monkeyecx-console.service';\nimport { MonkeyEcxDatadogService } from './monkeyecx-datadog.service';\nimport { MonkeyEcxErrorService } from './monkeyecx-error.service';\nimport { MonkeyEcxFeatureToggleService } from './monkeyecx-feature-toggle.service';\nimport { MonkeyEcxGTMService } from './monkeyecx-gtm.service';\nimport { MonkeyEcxLocaleService } from './monkeyecx-locale.service';\nimport { MonkeyEcxMaintenanceService } from './monkeyecx-maintenance.service';\nimport { MonkeyEcxStyleGuideService } from './monkeyecx-style-guide.service';\nimport { MonkeyEcxUpdateService } from './monkeyecx-update.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxInitService {\n private readonly _service = inject(MonkeyEcxService);\n\n private readonly _configsService = inject(MonkeyEcxConfigsService);\n\n private readonly _styleService = inject(MonkeyEcxStyleGuideService);\n\n private readonly _consoleService = inject(MonkeyEcxSecurityConsoleService);\n\n private readonly _datadogService = inject(MonkeyEcxDatadogService);\n\n private readonly _featureToggleService = inject(MonkeyEcxFeatureToggleService);\n\n private readonly _gtmService = inject(MonkeyEcxGTMService);\n\n private readonly _alertsService = inject(MonkeyEcxAlertsService);\n\n private readonly _updateService = inject(MonkeyEcxUpdateService);\n\n private readonly _errorService = inject(MonkeyEcxErrorService);\n\n private readonly _maintenanceService = inject(MonkeyEcxMaintenanceService);\n\n private readonly _localeService = inject(MonkeyEcxLocaleService);\n\n private readonly _connectionService = inject(MonkeyEcxConnectionService);\n\n private readonly _bootstrapService = injectTokenWithWarning(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n constructor() {\n // not to do\n }\n\n private async handleWhiteLabel(code: string | null) {\n try {\n const params = new HttpParams().set('t', new Date().getTime().toString());\n const env = this._bootstrapService.getEnv();\n const url = `${env.urlAssets}/${code?.toLowerCase()}/white-label.json`;\n const response = await firstValueFrom<any>(this._service.get(url, { params }));\n this._configsService.whiteLabel = response;\n this._datadogService.apply();\n } catch (e) {\n this._errorService.apply(e);\n }\n }\n\n private async handleStyleGuide(code: string | null) {\n try {\n const params = new HttpParams().set('t', new Date().getTime().toString());\n const env = this._bootstrapService.getEnv();\n const url = `${env.urlAssets}/${code?.toLowerCase()}/monkey-style-guide-settings.json`;\n const response = await firstValueFrom<any>(this._service.get(url, { params }));\n this._configsService.styleGuide = response;\n this._styleService.apply(response);\n } catch (e) {\n this._errorService.apply(e);\n }\n }\n\n private async handleSettings(response: MonkeyEcxBootstrap, code: string | null) {\n this._updateService.apply();\n if (response.maintenance.closed) {\n this._maintenanceService.apply();\n } else {\n await this.handleWhiteLabel(code);\n await this._featureToggleService.apply();\n await this.handleStyleGuide(code);\n await this._localeService.apply();\n this._gtmService.apply();\n this._alertsService.apply();\n }\n }\n\n private async performValidation(response: MonkeyEcxBootstrap, code: string | null) {\n this._configsService.bootstrap = response;\n if (!code) {\n this._errorService.apply();\n return;\n }\n await this.handleSettings(response, code);\n this._bootstrapService.finishLoading();\n }\n\n async initializeApp(): Promise<void> {\n this._connectionService.apply();\n this._consoleService.apply();\n try {\n const params = new HttpParams().set('t', new Date().getTime().toString());\n const env = this._bootstrapService.getEnv();\n const response = await firstValueFrom<any>(\n this._service.get(env.bootstrapAssets, { params, observe: 'response' })\n );\n\n const body = response.body as MonkeyEcxBootstrap;\n const headers = response.headers as HttpHeaders;\n\n const monkeyCode = headers.get('monkey-code');\n const defaultCode = this._bootstrapService.getDefaultProgram();\n await this.performValidation(body, monkeyCode || defaultCode);\n } catch (e) {\n console.error('🤯 MECXInit -> Monkey app initialization failed: ', e);\n this._errorService.apply(e);\n }\n }\n}\n\nexport function monkeyEcxInitializerFactory(service: MonkeyEcxInitService) {\n return () => {\n return service.initializeApp();\n };\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-alerts.service';\nexport * from './monkeyecx-configs.service';\nexport * from './monkeyecx-console.service';\nexport * from './monkeyecx-datadog.service';\nexport * from './monkeyecx-error.service';\nexport * from './monkeyecx-feature-toggle.service';\nexport * from './monkeyecx-gtm.service';\nexport * from './monkeyecx-init.service';\nexport * from './monkeyecx-locale.service';\nexport * from './monkeyecx-maintenance.service';\nexport * from './monkeyecx-style-guide.service';\nexport * from './monkeyecx-update.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { injectTokenWithWarning, MECX_ALPHA, MECX_BETA } from '../../injectors';\nimport { MonkeyEcxUtils } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LService {\n private readonly _alpha = injectTokenWithWarning(MECX_ALPHA, 'MECX_ALPHA')!;\n\n private readonly _beta = injectTokenWithWarning(MECX_BETA, 'MECX_BETA')!;\n\n async y(data: string): Promise<string> {\n if (!window.crypto || !window.crypto.subtle) {\n throw new Error('unsupported function');\n }\n\n const key = await this.w();\n const decrypted = await window.crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: MonkeyEcxUtils.base64ToBuffer(this._alpha.toString())\n },\n key,\n MonkeyEcxUtils.base64ToBuffer(data)\n );\n const decoder = new TextDecoder();\n return decoder.decode(decrypted);\n }\n\n private async w() {\n const parsedKey = JSON.parse(atob(this._beta.toString()));\n return window.crypto.subtle.importKey('jwk', parsedKey, { name: 'AES-GCM' }, true, [\n 'encrypt',\n 'decrypt'\n ]);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './l.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter, interval, Subscription } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport { MonkeyEcxUtils } from '../../utils';\nimport { MonkeyEcxService } from '../monkeyecx.service';\n\ninterface MonkeyEcxStartWithRequestInterface {\n data?: any;\n url: string;\n id?: string;\n params?: any;\n period?: number;\n preserveOnNavigation?: boolean;\n callback(data: any, subscriptionId: string): void;\n onError?(err: HttpErrorResponse, data?: any): void;\n}\n\ninterface MonkeyEcxStartInterface {\n id?: string;\n period?: number;\n callback: Function;\n onError?: Function;\n preserveOnNavigation?: boolean;\n}\n\ninterface MonkeyEcxSubscriptionInterface {\n subscription: Subscription;\n preserveOnNavigation: boolean;\n}\n\nconst PERIOD = 2000;\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxScheduleService {\n private readonly _router = inject(Router);\n\n private readonly _service = inject(MonkeyEcxService);\n\n private _routerSubscription: Subscription = new Subscription();\n\n private _schedules = new Map<string, MonkeyEcxSubscriptionInterface>();\n\n private handleRoute() {\n this._routerSubscription = this._router.events\n .pipe(filter((event) => event instanceof NavigationStart))\n .subscribe(() => {\n this.stopAll();\n });\n }\n\n start({ callback, period, preserveOnNavigation, id }: MonkeyEcxStartInterface): void {\n const subscriptionId = id || MonkeyEcxUtils.getRandomString(30);\n\n this.handleRoute();\n\n const subscription = interval(period || PERIOD).subscribe(() => {\n try {\n callback(subscriptionId);\n } catch (e) {\n this.stop(subscriptionId);\n }\n });\n\n this._schedules.set(subscriptionId, {\n subscription,\n preserveOnNavigation: preserveOnNavigation || false\n });\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-schedule-service',\n httpResponse: {\n httpCodeIgnore: [400, 403, 404, 500, 503]\n }\n })\n startWithRequest({\n id,\n url,\n data,\n params,\n period,\n onError,\n callback,\n preserveOnNavigation\n }: MonkeyEcxStartWithRequestInterface) {\n const subscriptionId = id || MonkeyEcxUtils.getRandomString(30);\n\n let isRunning = false;\n\n this.handleRoute();\n\n const subscription = interval(period || PERIOD).subscribe(() => {\n if (isRunning) return;\n\n isRunning = true;\n\n this._service.get(url, params).subscribe({\n next: (resp: any) => {\n isRunning = false;\n callback({ ...data, ...resp }, subscriptionId);\n },\n error: (e: any) => {\n this.stop(subscriptionId);\n if (onError) onError(e, data);\n }\n });\n });\n\n this._schedules.set(subscriptionId, {\n subscription,\n preserveOnNavigation: preserveOnNavigation || false\n });\n }\n\n stop(id: string): void {\n const schedules = this._schedules.get(id);\n\n if (schedules) {\n schedules.subscription.unsubscribe();\n this._schedules.delete(id);\n }\n }\n\n stopAll(): void {\n this._schedules.forEach((schedule) => {\n if (!schedule.preserveOnNavigation) {\n schedule.subscription.unsubscribe();\n }\n });\n\n this._routerSubscription.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-schedule.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxScheduleService } from '../schedule';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLoggedHandleService {\n private readonly _injector = inject(Injector);\n\n constructor() {\n // not to do\n }\n\n private destroyToken() {\n const storageService = this._injector.get(MonkeyEcxTokenStorageService);\n storageService.clear(true);\n }\n\n private destroySchedule() {\n const scheduleService = this._injector.get(MonkeyEcxScheduleService);\n scheduleService.stopAll();\n }\n\n public destroy() {\n this.destroyToken();\n this.destroySchedule();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-logged-handle.service';\n","import { HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport queryString from 'query-string';\nimport { catchError, firstValueFrom, from, map, Observable, switchMap, throwError } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n injectTokenWithWarning,\n MECX_BOOTSTRAP_SERVICE,\n MECX_REDIRECT_LOGIN_WELCOMEBACK_STRATEGY,\n MECX_REFRESH_TOKEN_STRATEGY\n} from '../../injectors';\nimport {\n MonkeyEcxAuthCredentials,\n MonkeyEcxAuthenticationService,\n MonkeyEcxAuthReAuthenticateData,\n MonkeyEcxBootstrapService,\n MonkeyEcxEnv,\n MonkeyEcxMeCredentials,\n MonkeyEcxRedirectLoginWelcomeBackStrategy,\n MonkeyEcxRefreshTokenStrategy,\n MonkeyEcxTokenCredentials\n} from '../../interfaces';\nimport { MonkeyEcxCookieStorageService, MonkeyEcxTokenStorageService } from '../../storage';\nimport { MonkeyEcxUtils } from '../../utils';\nimport {\n MonkeyEcxConfigsService,\n MonkeyEcxDatadogService,\n MonkeyEcxLocaleService\n} from '../config';\nimport { LService } from '../l';\nimport { MonkeyEcxLoggedHandleService } from '../logged';\nimport { MonkeyEcxService } from '../monkeyecx.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthService implements MonkeyEcxAuthenticationService {\n private readonly _injector = inject(Injector);\n\n private readonly _configService = inject(MonkeyEcxConfigsService);\n\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private readonly _cookieService = inject(MonkeyEcxCookieStorageService);\n\n private readonly _loggedService = inject(MonkeyEcxLoggedHandleService);\n\n private readonly _lService = inject(LService);\n\n private readonly _router = inject(Router);\n\n private readonly _refreshTokenStrategy = inject<MonkeyEcxRefreshTokenStrategy>(\n MECX_REFRESH_TOKEN_STRATEGY,\n {\n optional: true\n }\n );\n\n private readonly _redirectLoginWelcomeBackStrategy =\n inject<MonkeyEcxRedirectLoginWelcomeBackStrategy>(MECX_REDIRECT_LOGIN_WELCOMEBACK_STRATEGY, {\n optional: true\n });\n\n handleErrorFromLogin(err: HttpErrorResponse, param: MonkeyEcxAuthCredentials) {\n const { status, error } = err;\n const { notifications = [], type } = error || {};\n const { username } = param;\n\n if (status === 403 && notifications.length) {\n if (type === 'change_password_required') {\n this.navigateToLegalRegister(username!, notifications[0]);\n return;\n }\n\n if (type === 'mfa_required') {\n this.navigateToMfa(username!, notifications[0]);\n return;\n }\n }\n\n this._bootstrapService.handleMessage(notifications[0], 'warning');\n }\n\n private navigateToLegalRegister(username: string, token: string) {\n this._router.navigate(['/authentication/user-legal-register'], {\n state: {\n userLegalRegisterData: { username, token }\n }\n });\n }\n\n private navigateToMfa(username: string, token: string) {\n this._router.navigate([`/authentication/login-mfa/${username}`], {\n state: {\n mfaData: { username, token }\n }\n });\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-auth-service-delete-token',\n httpResponse: {\n httpCodeIgnore: [400, 401, 404],\n httpCodeIgnoreRedirect: [500, 503, 404, 403, 401]\n }\n })\n async deleteToken() {\n const service = this._injector.get(MonkeyEcxService);\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n const url = `${env.baseUrl}/uaa/oauth/token`;\n const token = this._tokenStorageService.getToken();\n if (token?.accessToken) {\n return service.delete(url);\n }\n\n return null;\n }\n\n saveTokenCredentials(authCredentials: MonkeyEcxAuthCredentials) {\n this.setToken({\n username: authCredentials.username,\n program: authCredentials.program,\n accessToken: authCredentials.access_token,\n refreshToken: authCredentials.refresh_token\n });\n }\n\n async getClientIdSecretByAccess() {\n const { accessType } = this._tokenStorageService.getToken() || {\n accessType: ''\n };\n\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n\n let a = env.snENDUPLuHlBxIJD7h;\n let b = env.zi7TpJCi6JD1Kqzb4S;\n if (accessType === 'provider') {\n a = env.DBMpPL0iJZSWKZIzky;\n b = env.GCJfuDpr4j1xVMQtt4;\n }\n\n const ax = await this._lService.y(a);\n const bx = await this._lService.y(b);\n\n return {\n client_id: ax,\n client_secret: bx\n };\n }\n\n setToken(token: Partial<MonkeyEcxTokenCredentials>) {\n this._tokenStorageService.setToken(token);\n }\n\n setMe(me: Partial<MonkeyEcxMeCredentials>) {\n this._tokenStorageService.setMe(me);\n }\n\n isAuthorized() {\n const data = this._tokenStorageService.getToken();\n return !!data?.accessToken;\n }\n\n isCompanyAuthorized() {\n const data = this._tokenStorageService.getToken();\n return !!data?.companyId;\n }\n\n hadAtLeastOneLogin() {\n const data = this._tokenStorageService.getToken();\n return !data?.accessToken && !!data?.program && !!data?.username;\n }\n\n async logOut(force?: boolean, redirect?: boolean, callback?: Function, doDelete = true) {\n const { _tokenStorageService, _cookieService, _loggedService } = this;\n\n try {\n if (doDelete) {\n await this.deleteToken();\n }\n } catch (e) {\n // not to do\n }\n\n _tokenStorageService.clear(force);\n _cookieService.removeCookie('monkey-app');\n _loggedService.destroy();\n\n if (redirect) {\n window.location.reload();\n }\n\n if (callback) {\n callback();\n }\n }\n\n refreshToken(): Observable<any> {\n const { _tokenStorageService, _refreshTokenStrategy } = this;\n const service = this._injector.get(MonkeyEcxService);\n\n if (_refreshTokenStrategy) {\n return _refreshTokenStrategy();\n }\n\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n const url = `${env.baseUrl}/uaa/oauth/token`;\n\n const tokenCredentials = _tokenStorageService.getToken()!;\n\n return from(this.getClientIdSecretByAccess()).pipe(\n switchMap((clientIdSecret) => {\n const query = queryString.stringify({\n ...clientIdSecret,\n scope: 'ui',\n grant_type: 'refresh_token',\n //access_token: tokenCredentials.accessToken,\n access_token: 'G30lKdpcEXp24wSlfasb2xZLKK99hNDLZSP3',\n refresh_token: tokenCredentials.refreshToken,\n username: tokenCredentials.username\n });\n\n const headers = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\n\n return service\n .post<any>(url, query, {\n headers\n })\n .pipe(\n switchMap((resp) => {\n return from(this.me(resp)).pipe(map(() => null));\n }),\n catchError((err) => {\n return throwError(() => err);\n })\n );\n })\n );\n }\n\n async redirectLoginWelcomeBack() {\n const { _redirectLoginWelcomeBackStrategy } = this;\n if (_redirectLoginWelcomeBackStrategy) {\n return _redirectLoginWelcomeBackStrategy();\n }\n\n const data = this._tokenStorageService.getToken();\n if (data?.accessToken) {\n await this.logOut(false);\n }\n\n let route = 'email/login';\n if (\n MonkeyEcxUtils.persistNullEmptyUndefined(data?.username) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(data?.program)\n ) {\n route = 'welcome-back';\n }\n\n this._router.navigate([`/authentication/${route}`]);\n }\n\n redirectApp() {\n const data = this._tokenStorageService.getToken();\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n if (\n MonkeyEcxUtils.persistNullEmptyUndefined(data!.username) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(data!.accessToken)\n ) {\n this._router.navigate([env.paths.redirectApp]);\n }\n }\n\n handleFlowAfterLogin() {\n const datadogService = this._injector.get(MonkeyEcxDatadogService);\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n const path = env?.paths?.redirectAfterLoginProduct || '/authentication/login-products';\n\n try {\n const authData = localStorage.getItem('auth-data');\n if (authData) {\n const obj: MonkeyEcxAuthReAuthenticateData = JSON.parse(authData);\n const accessHandle = obj?.accessHandle;\n if (accessHandle) {\n this._tokenStorageService.setToken({\n accessHandle\n } as any);\n }\n\n if (accessHandle.access === 'REFRESH_TOKEN') {\n localStorage.removeItem('auth-data');\n localStorage.removeItem('accessHandle');\n this._tokenStorageService.setToken({\n accessHandle: null\n } as any);\n }\n }\n } catch (e) {\n // not to do\n }\n\n try {\n datadogService.apply();\n } catch (e) {\n // not to do\n }\n\n this._router.navigate([path]);\n }\n\n reAuthenticate(authData: MonkeyEcxAuthReAuthenticateData) {\n this.logOut(true, false, () => {\n this._router.navigate(['/authentication/re-authenticate'], {\n state: {\n authData\n }\n });\n });\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-auth-service-login',\n httpResponse: {\n httpCodeIgnore: [400, 404, 403],\n httpCodeIgnoreRedirect: [500, 503, 404, 403]\n }\n })\n async login(param: MonkeyEcxAuthCredentials) {\n // to do\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-auth-service-me',\n httpResponse: {\n httpCodeIgnore: [400, 404, 403],\n httpCodeIgnoreRedirect: [500, 503, 404, 403]\n }\n })\n async me(authCredentials: MonkeyEcxAuthCredentials) {\n const service = this._injector.get(MonkeyEcxService);\n const env: MonkeyEcxEnv = this._bootstrapService.getEnv();\n const url = `${env.baseUrl}/uaa/me`;\n\n this.saveTokenCredentials(authCredentials);\n\n const resp = (await firstValueFrom(service?.get(url))) as any;\n\n this.saveMeCredentials({\n ...resp.principal,\n selectedLanguage: 'pt-BR'\n });\n }\n\n saveMeCredentials(meCredentials: MonkeyEcxMeCredentials) {\n const localeService = this._injector.get(MonkeyEcxLocaleService);\n const { programs } = meCredentials;\n const config = this._configService.whiteLabel!;\n\n if (config) {\n const programType = config.program!.type;\n if (programType) {\n this.setToken({\n programType\n });\n }\n }\n\n this.setMe({\n name: meCredentials?.name,\n email: meCredentials?.email,\n username: meCredentials?.username,\n status: meCredentials?.status,\n pictureURL: meCredentials?.pictureURL,\n selectedLanguage: meCredentials?.selectedLanguage,\n companies: meCredentials?.companies,\n programs,\n nickname: meCredentials?.nickname,\n cellPhone: meCredentials?.cellPhone,\n smsNotification: meCredentials?.smsNotification,\n privacyPolicy: meCredentials?.privacyPolicy,\n useTerms: meCredentials?.useTerms,\n newsletter: meCredentials?.newsletter,\n locale: meCredentials?.locale,\n others: meCredentials?.others,\n groups: meCredentials?.groups\n });\n\n localeService.apply();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { MECX_BOOTSTRAP_SERVICE } from '../../injectors';\nimport { MonkeyEcxLogs } from '../../utils';\nimport { MonkeyEcxErrorService } from '../config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxGlobalErrorHandler implements ErrorHandler {\n constructor(private injector: Injector) {\n //not to do\n }\n\n public handleError(error: any) {\n const bootstrapService = this.injector.get(MECX_BOOTSTRAP_SERVICE);\n const errorService = this.injector.get(MonkeyEcxErrorService);\n\n const env = bootstrapService.getEnv();\n if (error instanceof HttpErrorResponse) {\n return;\n }\n\n try {\n if (!env.production) {\n console.log('==> error <==');\n console.log(error);\n }\n\n let cmp = error?.message || error;\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(cmp)) {\n errorService.apply(cmp);\n }\n\n MonkeyEcxLogs.log({\n message: '==> error <==',\n error\n });\n } catch (e) {\n // not to\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-global-error-handler.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n/* eslint-disable max-len */\nimport { inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxIconsService {\n private readonly _sanitizer = inject(DomSanitizer);\n\n private handleTrust(icon: string) {\n return this._sanitizer.bypassSecurityTrustHtml(icon);\n }\n\n get monkey(): SafeHtml | null {\n return this.handleTrust(`\n <?xml version=\"1.0\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 20010904//EN\"\n \"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd\">\n<svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\"\n width=\"200.000000pt\" height=\"200.000000pt\" viewBox=\"0 0 200.000000 200.000000\"\n preserveAspectRatio=\"xMidYMid meet\">\n\n<g transform=\"translate(0.000000,200.000000) scale(0.100000,-0.100000)\"\nfill=\"#000000\" stroke=\"none\">\n<path d=\"M145 1631 c-52 -24 -99 -74 -124 -134 -29 -67 -27 -113 10 -185 30\n-61 53 -83 116 -115 l31 -17 17 78 c23 105 66 206 124 290 l49 71 -39 15 c-53\n21 -135 20 -184 -3z\"/>\n<path d=\"M1662 1630 l-42 -19 35 -46 c65 -85 145 -286 145 -363 0 -19 4 -22\n23 -17 62 18 112 61 144 124 40 76 42 121 9 193 -57 128 -193 183 -314 128z\"/>\n<path d=\"M593 1586 c-92 -30 -166 -98 -212 -195 -22 -48 -26 -69 -26 -146 1\n-79 4 -97 30 -148 33 -66 117 -149 170 -168 40 -15 41 -15 18 -71 -12 -29 -18\n-70 -18 -123 1 -99 30 -170 104 -248 208 -220 606 -167 737 98 26 54 29 70 29\n155 -1 70 -5 103 -18 127 -9 18 -17 34 -17 36 0 3 24 17 54 31 115 56 196 186\n196 315 0 129 -82 261 -198 318 -50 25 -68 28 -152 28 -84 0 -102 -3 -151 -28\n-31 -15 -76 -48 -99 -73 l-42 -45 -54 51 c-30 28 -75 61 -101 72 -60 27 -189\n34 -250 14z m153 -152 c39 -19 40 -21 17 -46 -22 -25 -21 -77 2 -94 10 -8 34\n-14 52 -14 31 0 33 -2 27 -27 -21 -89 -86 -143 -170 -143 -107 0 -192 108\n-164 210 28 105 140 159 236 114z m659 -8 c26 -17 26 -17 6 -34 -49 -42 -21\n-112 45 -112 39 0 41 -8 15 -65 -43 -93 -139 -130 -227 -89 -130 62 -131 242\n-2 308 41 21 125 17 163 -8z m-492 -406 c35 -28 64 -104 47 -125 -19 -23 -40\n-18 -75 19 -35 38 -49 81 -34 108 13 23 30 23 62 -2z m226 1 c15 -28 -5 -86\n-40 -115 -37 -31 -55 -33 -69 -6 -20 38 42 140 86 140 7 0 18 -8 23 -19z\"/>\n</g>\n</svg>\n `);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkey-icons.service';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createAction, props } from '@ngrx/store';\nimport {\n MonkeyEcxPage,\n MonkeyEcxPaginationData,\n MonkeyEcxStoreControl,\n MonkeyEcxStoreLoadPageParams,\n MonkeyEcxStoreLoadParams,\n MonkeyEcxStoreStartParams\n} from '../../interfaces';\n\nexport abstract class MonkeyEcxCommonsActions {\n static getActions<T>(actionName: string) {\n const clear = createAction(`[${actionName}] Clear All`);\n const load = createAction(`[${actionName}] Load`, props<MonkeyEcxStoreLoadParams>());\n const start = createAction(`[${actionName}] Start`, props<MonkeyEcxStoreStartParams>());\n const loadPagination = createAction(\n `[${actionName} Pagination] Load`,\n props<MonkeyEcxStoreLoadPageParams>()\n );\n const updateAll = createAction(`[${actionName}] Update All`, props<{ data: T[] }>());\n const updateOne = createAction(`[${actionName}] Update One`, props<{ data: T }>());\n const removeOne = createAction(`[${actionName}] Remove One`, props<{ data: T }>());\n const updateControl = createAction(\n `[${actionName}] Update Control`,\n props<{ data: MonkeyEcxStoreControl }>()\n );\n const updatePage = createAction(\n `[${actionName}] Update Page`,\n props<{ data: MonkeyEcxPage }>()\n );\n const updateLinks = createAction(\n `[${actionName}] Update Links`,\n props<{ data: MonkeyEcxPaginationData }>()\n );\n\n return {\n clear,\n load,\n start,\n loadPagination,\n removeOne,\n updateAll,\n updateOne,\n updateControl,\n updateLinks,\n updatePage\n };\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\n\ninterface IReducer {\n featureKey: string;\n selectAll: any;\n}\n\nexport abstract class MonkeyEcxCommonsSelectors {\n static getSelectors<T>(reducer: IReducer) {\n const selectState = createFeatureSelector<T>(reducer.featureKey);\n\n const selectAll: any = createSelector(selectState, reducer.selectAll);\n\n const selectControl = () => {\n return createSelector(selectState, (state: any): any => {\n return state.control;\n });\n };\n\n const selectLinks = () => {\n return createSelector(selectState, (state: any): any => {\n return state.links;\n });\n };\n\n const selectPage = () => {\n return createSelector(selectState, (state: any): any => {\n return state.page;\n });\n };\n\n const selectData = () => {\n return createSelector(selectState, (state: any): any => {\n return state.data;\n });\n };\n\n return {\n selectState,\n selectAll,\n selectData,\n selectControl,\n selectLinks,\n selectPage\n };\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport class Link {\n href: string;\n\n type: string;\n\n profile: string;\n\n templated: boolean;\n\n constructor(data?: any) {\n this.href = data?.href;\n this.type = data?.type;\n this.profile = data?.profile;\n this.templated = data?.templated;\n }\n}\n\nexport class MonkeyEcxModel {\n _links: any;\n\n public getAction(\n type: string,\n replaceOptions?: {\n from: string;\n to: string;\n }\n ): Link | null {\n const { _links } = this;\n if (!_links) return null;\n let link: Link = _links[type?.toLowerCase()];\n link = new Link(link);\n if (link && replaceOptions && link?.templated) {\n const { from, to } = replaceOptions;\n link = new Link({\n ...link,\n href: `${link.href}`.replace(from, to)\n });\n }\n return link;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { MonkeyEcxModel } from './monkeyecx-model';\n\nexport class MonkeyEcxLinksModel extends MonkeyEcxModel {\n constructor(data?: any) {\n super();\n\n this._links = data?._links;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nexport * from './monkeyecx-links.model';\nexport * from './monkeyecx-model';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { firstValueFrom } from 'rxjs';\nimport { MonkeyEcxCoreService } from '../../decorators';\nimport {\n MonkeyEcxConfigStore,\n MonkeyEcxControlStore,\n MonkeyEcxLinks,\n MonkeyEcxPage,\n MonkeyEcxPagination\n} from '../../interfaces';\nimport { MonkeyEcxLinksModel } from '../../model';\nimport { MonkeyEcxService } from '../monkeyecx.service';\n\n/**\n * Classe genérica que recebe duas interfaces como tipos genéricos.\n *\n * @typeparam T deve ser a mesma interface utilizada na Entity da Store\n * @typeparam K faz referência ao tipo de configuração.\n *\n * @description interfaces de configuração:\n * ```\n * MonkeyEcxCollectionStore e MonkeyEcxEntityStore\n * ```\n */\nexport abstract class MonkeyEcxCommonsStoreService<T, K extends MonkeyEcxConfigStore> {\n private action: any;\n\n private selector: any;\n\n readonly service = inject(MonkeyEcxService);\n\n constructor(\n protected store: Store,\n config: K\n ) {\n const { actions, selectors } = config;\n\n this.action = actions;\n this.selector = selectors;\n }\n\n private handleResponseData(resp: any, updateLinks = true) {\n try {\n let data: T;\n\n if (resp?._embedded) {\n const { _embedded, _links, page } = resp;\n const key = Object.keys(_embedded)[0];\n\n data = _embedded[key];\n\n if (updateLinks) {\n this.updateLinks?.(_links);\n }\n\n this.updatePage?.(page);\n } else data = resp;\n\n this.update?.(data);\n } catch (e) {\n throw new Error(`MECX Core - Method handleResponseData -> ${e}`);\n }\n }\n\n protected updateControl(data: MonkeyEcxControlStore) {\n try {\n this.store.dispatch(\n this.action.updateControl({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateControl -> ${e}`);\n }\n }\n\n protected mappingData(args: T | T[]): T | T[] {\n try {\n const handle = (item: T) => {\n delete (item as any).context;\n let id = '';\n const { href } = new MonkeyEcxLinksModel(item)?.getAction('self') || {\n href: ''\n };\n\n if (href) {\n id = href.split('/').pop() || '';\n }\n\n return {\n ...item,\n id\n };\n };\n\n if (args instanceof Array) {\n return args.map((item: T) => {\n return handle(item);\n });\n }\n\n return handle(args);\n } catch (e) {\n throw new Error(`MECX Core - Method mappingData -> ${e}`);\n }\n }\n\n protected update?(args: T | T[]) {\n try {\n let typeAction = 'updateOne';\n\n if (args instanceof Array) {\n typeAction = 'updateAll';\n }\n\n this.store.dispatch(\n this.action[typeAction]({\n data: this.mappingData(args)\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method update -> ${e}`);\n }\n }\n\n protected updatePage?(data: MonkeyEcxPage) {\n try {\n this.store.dispatch(\n this.action.updatePage({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updatePage -> ${e}`);\n }\n }\n\n protected updateLinks?(data: MonkeyEcxLinks) {\n try {\n this.store.dispatch(\n this.action.updateLinks({\n data\n })\n );\n } catch (e) {\n throw new Error(`MECX Core - Method updateLinks -> ${e}`);\n }\n }\n\n @MonkeyEcxCoreService({\n id: 'mecx-store-base-service',\n httpResponse: {\n httpCodeIgnore: [412],\n httpCodeIgnoreRedirect: [412]\n }\n })\n protected async loadData(url: string, updateLinks = true) {\n this.updateControl({ isLoading: true });\n\n try {\n const data = await firstValueFrom(this.service?.get(url));\n this.handleResponseData(data, updateLinks);\n this.updateControl({ isLoading: false });\n } catch (e: any) {\n this.updateControl({ isLoading: false });\n throw e;\n }\n }\n\n protected async loadPageData(pagination: MonkeyEcxPagination) {\n const { store, selector } = this;\n const data = await firstValueFrom(store.select(selector.selectLinks()));\n\n const { action } = pagination;\n const { href } = new MonkeyEcxLinksModel({ _links: data }).getAction(action) || {\n href: ''\n };\n\n if (href) {\n this.loadData(href);\n }\n }\n\n /**\n * @description Neste método precisamos incluir a lógica para conferir se precisa limpar a\n * entidade ou não\n * E depois precisa invocar o método loadData\n * @param (url) ou de acordo com a action criada\n * @example\n * ```\n * const hasDifference = .....\n * if(hasDifference) {\n * store.dispatch(clear)\n * }\n *\n * this.loadData(...)\n * ```\n */\n public load?(args: any) {\n throw new Error('MECX Core - Method load not implemented.');\n }\n\n public loadPage?(args: any) {\n throw new Error('MECX Core - Method loadPage not implemented.');\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-store.actions';\nexport * from './monkeyecx-store.selector';\nexport * from './monkeyecx-store.service';\n","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxFormValidationService {\n validateForm(form: FormGroup): boolean {\n if (form.invalid) {\n this.markAllTouched(form);\n this.scrollToError();\n return false;\n }\n return true;\n }\n\n scrollToError() {\n setTimeout(() => {\n const invalidField = document.querySelector('.mecx-form-field-invalid') as HTMLElement | null;\n\n if (!invalidField) return;\n\n invalidField.scrollIntoView({ behavior: 'smooth', block: 'start' });\n invalidField.focus?.();\n });\n }\n\n private markAllTouched(formGroup: FormGroup) {\n Object.values(formGroup.controls).forEach((control) => {\n control.markAsTouched();\n control.markAsDirty();\n\n const anyControl = control as any;\n if (anyControl.controls) {\n this.markAllTouched(anyControl);\n }\n });\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './auth';\nexport * from './config';\nexport * from './error';\nexport * from './icons';\nexport * from './monkeyecx.service';\nexport * from './request';\nexport * from './store';\nexport * from './validation';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\nimport { MonkeyEcxService } from '../services';\n\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n\n Object.entries(context).forEach(([key, value]) => {\n if ((value as any) instanceof MonkeyEcxService) {\n context[key].internalRequestData = params;\n }\n });\n\n const requestArgs = args.map((arg) => {\n if (\n typeof arg === 'object' &&\n arg !== null &&\n !Array.isArray(arg) &&\n arg.context === undefined\n ) {\n return { ...arg };\n }\n return arg;\n });\n\n const result = method.apply(context, requestArgs);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-decorators';\n","import {\n DestroyRef,\n Directive,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n NgModel,\n StatusChangeEvent,\n TouchedChangeEvent,\n ValueChangeEvent\n} from '@angular/forms';\nimport { debounceTime, filter, Subscription } from 'rxjs';\n\ninterface ErrorMessageContext {\n $implicit: string | null;\n errorMessage: string | null;\n errorParams: { [key: string]: string | number } | null;\n}\n\nfunction mapErrorKey(key: string): string {\n const map: Record<string, string> = {\n required: 'mandatory',\n invalidGovernmentId: 'invalid-governmentid',\n invalidDate: 'invalid-date',\n invalidValueGreaterThanZero: 'invalid-greater-than-zero',\n phone: 'invalid-phone',\n maxFileSize: 'max-file-size'\n };\n\n return (map[key] ?? key).toUpperCase();\n}\n\nfunction mapErrorParams(key: string, control: AbstractControl) {\n const map: Record<string, string> = {\n 'invalid-phone': 'phoneAllowed',\n 'max-file-size': 'sizeAllowed'\n };\n\n const field = map[key?.toLowerCase()];\n if (field) {\n return { [field]: control.errors?.[field] };\n }\n\n return null;\n}\n\n@Directive({\n selector: '[monkeyecxErrorMessage]',\n standalone: true\n})\nexport class MonkeyEcxErrorMessageDirective implements OnInit, OnDestroy {\n private _destroyRef = inject(DestroyRef);\n\n private control: AbstractControl | null = null;\n\n private sub?: Subscription;\n\n private context: ErrorMessageContext = {\n $implicit: null,\n errorMessage: null,\n errorParams: null\n };\n\n private updateViewEvent = new EventEmitter();\n\n @Input('monkeyecxErrorMessage') set errorMessage(control: NgModel | AbstractControl | null) {\n if (control instanceof NgModel) {\n this.control = control.control;\n } else {\n this.control = control;\n }\n this.subscribe();\n this.updateViewEvent.emit();\n }\n\n constructor(\n private tpl: TemplateRef<ErrorMessageContext>,\n private vcr: ViewContainerRef\n ) {\n // not to do\n }\n\n ngOnInit(): void {\n this.updateViewEvent\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.updateView();\n });\n\n this.updateView();\n }\n\n private subscribe() {\n this.sub?.unsubscribe();\n if (this.control) {\n this.sub = this.control.events\n ?.pipe(\n filter((e): e is TouchedChangeEvent | ValueChangeEvent<any> | StatusChangeEvent => {\n return (\n e instanceof TouchedChangeEvent ||\n e instanceof ValueChangeEvent ||\n e instanceof StatusChangeEvent\n );\n })\n )\n .subscribe((x) => {\n this.updateViewEvent.emit();\n });\n }\n }\n\n private updateView() {\n this.vcr.clear();\n\n if (!this.control || !this.control.errors || !this.control.touched) {\n return;\n }\n\n let firstErrorKey = Object.keys(this.control.errors)[0];\n if (!firstErrorKey) return;\n\n firstErrorKey = mapErrorKey(firstErrorKey);\n\n const firstErrorParams = mapErrorParams(firstErrorKey, this.control);\n\n this.context.$implicit = firstErrorKey;\n this.context.errorMessage = firstErrorKey;\n this.context.errorParams = firstErrorParams;\n\n this.vcr.createEmbeddedView(this.tpl, this.context);\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { ChangeDetectorRef, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxConfigsService } from '../services';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFeatureByProgram]'\n})\nexport class MonkeyEcxFeatureByProgramDirective implements OnInit {\n @Input('feature') feature: string = '';\n\n private readonly _configsService = inject(MonkeyEcxConfigsService);\n\n private readonly _elementRef = inject(ElementRef);\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n private init() {\n if (!this.feature) return;\n this._changeDetectorRef.detectChanges();\n this.handleDisplay();\n }\n\n private handleDisplay() {\n const whiteLabel = this._configsService.whiteLabel;\n const { feature } = this;\n let display = 'none';\n\n if (\n !MonkeyEcxUtils.persistNullEmptyUndefined(feature) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(whiteLabel?.program?.settings)\n ) {\n return;\n }\n\n const disabled = whiteLabel?.program?.settings?.[feature];\n\n if (!disabled) {\n display = 'block';\n }\n\n this._elementRef.nativeElement.style.display = display;\n\n if (display === 'none') {\n this._elementRef.nativeElement.remove();\n }\n\n this._changeDetectorRef.detectChanges();\n }\n\n ngOnInit() {\n this.init();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFeature]'\n})\nexport class MonkeyEcxFeatureDirective implements OnInit {\n @Input('featureName') feature?: string;\n\n private readonly _service = inject(MonkeyEcxFeatureToggleService);\n\n private readonly _elementRef = inject(ElementRef);\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly _destroyRef = inject(DestroyRef);\n\n private getFeature(feature: string): boolean {\n const { _service } = this;\n\n if (!_service) {\n return false;\n }\n\n return _service?.getFlag(feature, false);\n }\n\n private handleDisplay(): void {\n if (!this.feature) return;\n const flag = this.getFeature(this.feature);\n let display = 'none';\n\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\n return;\n }\n\n if (flag) {\n display = 'block';\n }\n\n if (display === 'none') {\n this._elementRef.nativeElement.remove();\n }\n\n this._elementRef.nativeElement.style.display = display;\n this._changeDetectorRef.detectChanges();\n }\n\n ngOnInit() {\n if (!this.feature) return;\n this._elementRef.nativeElement.style.display = 'none';\n this._changeDetectorRef.detectChanges();\n this.handleDisplay();\n\n this._service.onFlags.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((val: boolean) => {\n if (val) {\n this.handleDisplay();\n }\n });\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n inject,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxLoading]'\n})\nexport class MonkeyEcxLoadingDirective implements OnChanges {\n private _view: EmbeddedViewRef<any> | null = null;\n\n private _loadingElement: HTMLElement | null = null;\n\n private readonly elementRef = inject(ElementRef);\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef\n ) {\n // not to do\n }\n\n @Input() monkeyecxLoading: boolean = false;\n\n @Input() monkeyecxLoadingSize: 'lg' | 'md' | 'sm' = 'sm';\n\n ngOnChanges(changes: SimpleChanges) {\n // eslint-disable-next-line dot-notation\n if (changes['monkeyecxLoading'] || changes['monkeyecxLoadingSize']) {\n this.updateView();\n }\n }\n\n updateView() {\n if (this.monkeyecxLoading) {\n if (this._view) this.viewContainer.clear();\n\n this._loadingElement = document.createElement('div');\n\n this._loadingElement.className = `mecx-loading ${this.monkeyecxLoadingSize}`;\n\n this.elementRef.nativeElement.parentNode.insertBefore(\n this._loadingElement,\n this.elementRef.nativeElement.nextSibling\n );\n } else {\n if (this._loadingElement && this._loadingElement.parentNode) {\n this._loadingElement.parentNode.removeChild(this._loadingElement);\n this._loadingElement = null;\n }\n\n this.viewContainer.clear();\n this._view = this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { ChangeDetectorRef, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxTokenCredentials } from '../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Directive({\n selector: '[monkeyecxSecurity]'\n})\nexport class MonkeyEcxSecurityDirective implements OnInit {\n @Input('securityRoles') roles: string[] = [];\n\n @Input('securityByExclusion') byExclusion: boolean = false;\n\n private _tokenCredentials: MonkeyEcxTokenCredentials | null = null;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private readonly elementRef = inject(ElementRef);\n\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n constructor() {\n // not to do\n }\n\n private getRole(): string {\n const { _tokenCredentials } = this;\n\n if (!_tokenCredentials) return '';\n\n if (_tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n\n if (_tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n const handledRole = localStorage.getItem('role');\n\n return _tokenCredentials?.role || handledRole || '';\n }\n\n private handleAccess() {\n const { roles, byExclusion } = this;\n let display = 'none';\n const found = roles?.indexOf(this.getRole());\n if (byExclusion) {\n display = 'block';\n if (found > -1) {\n display = 'none';\n }\n } else {\n display = 'none';\n if (found > -1) {\n display = 'block';\n }\n }\n\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\n this.elementRef.nativeElement.style.display = display;\n this.changeDetectorRef.detectChanges();\n }\n\n private handleData() {\n this._tokenCredentials = this._tokenStorageService.getToken();\n this.handleAccess();\n }\n\n ngOnInit() {\n this.elementRef.nativeElement.style.display = 'none';\n this.changeDetectorRef.detectChanges();\n this.handleData();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-error-message.directive';\nexport * from './monkeyecx-feature-by-program-directive';\nexport * from './monkeyecx-feature-directive';\nexport * from './monkeyecx-loading';\nexport * from './monkeyecx-security-directive';\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { differenceInYears, parse } from 'date-fns';\nimport { MonkeyEcxUtils } from '../utils';\n\nconst EMAIL_REGEXP = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/;\n\nfunction isEmptyInputValue(value: any): boolean {\n return value == null || value.length === 0;\n}\n\nexport function emailValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n const test = EMAIL_REGEXP.test(control.value);\n if (test) return null;\n return {\n email: true\n };\n}\n\nexport function dateRangeValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates?.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates?.endDate))\n ) {\n return {\n dateRange: true\n };\n }\n\n return null;\n}\n\nexport function registerValidator(control: AbstractControl, type: string): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n if (control && control.value !== `#MONKEY${type}`.toUpperCase()) {\n return {\n invalidUnlockRegister: true\n };\n }\n\n return null;\n}\n\nexport function dateStartEndValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) {\n return null;\n }\n\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true\n };\n }\n\n return null;\n}\n\nexport function urlValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n url: true\n };\n }\n\n return null;\n}\n\nexport function passwordConfirmValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n\n return {\n passwordsNotMatching: true\n };\n}\n\nexport function trueValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n\n return {\n invalidTrue: true\n };\n}\n\nexport function comboValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n\n return {\n invalidCombo: true\n };\n}\n\nexport function zipCodeValidator(\n control: AbstractControl,\n country?: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value, country)) {\n return {\n invalidZipCode: true\n };\n }\n }\n\n return null;\n}\n\nexport function documentValidator(\n control: AbstractControl,\n country: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n country = `${country}`.toUpperCase();\n if (country === 'BR') {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidGovernmentId: true\n };\n }\n } else if (country === 'CL') {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidGovernmentId: true\n };\n }\n } else if (country === 'MX') {\n if (!MonkeyEcxUtils.isValidRFC(control.value)) {\n return {\n invalidGovernmentId: true\n };\n }\n } else if (country === 'US') {\n if (!MonkeyEcxUtils.isValidEIN(control.value)) {\n return {\n invalidGovernmentId: true\n };\n }\n }\n\n return null;\n}\n\nexport function minYearsValidator(\n param: number,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const date = parse(control.value, 'yyyy-MM-dd', new Date());\n const dif = differenceInYears(new Date(), date);\n\n if (dif < param) {\n return {\n invalidMinYears: {\n year: param\n }\n };\n }\n return null;\n}\n\nexport function dateValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (!MonkeyEcxUtils.isValidDate(control.value)) {\n return {\n invalidDate: true\n };\n }\n return null;\n}\n\nexport function valueGreaterThanZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (control && `${control?.value}` === '0') {\n return {\n invalidValueGreaterThanZero: true\n };\n }\n return null;\n}\n\nexport function requiredWithTrimValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n if (control && !`${control?.value}`.trim()) {\n return {\n required: true\n };\n }\n return null;\n}\n\nexport function differentFromZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n\n const handled = `${control?.value}`.trim().replace(/0/g, '');\n if (control && !handled) {\n return {\n differentFromZero: true\n };\n }\n\n return null;\n}\n\nexport function documentValidatorByType(\n type: string,\n control: AbstractControl\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const handle = MonkeyEcxUtils.handleOnlyNumbers(control.value);\n let valid = false;\n if (type === 'CPF' || type === 'CNPJ') {\n if (\n (type === 'CNPJ' && `${handle}`.length !== 14) ||\n (type === 'CPF' && `${handle}`.length !== 11)\n ) {\n valid = false;\n } else {\n valid = MonkeyEcxUtils.isCPFCNPJValid(control.value);\n }\n } else if (type === 'RUT') {\n valid = MonkeyEcxUtils.isValidRUT(control.value);\n } else if (type === 'RFC') {\n valid = MonkeyEcxUtils.isValidRFC(control.value);\n } else if (type === 'EIN') {\n valid = MonkeyEcxUtils.isValidEIN(control.value);\n }\n\n if (!valid) {\n return {\n [`invalid${MonkeyEcxUtils.capitalize(type?.toLowerCase())}`]: true\n };\n }\n\n return null;\n}\n\nexport function validateFullName(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n const fullName = value.split(/\\s+/);\n const hasShortPart = fullName.some((part: any) => {\n return part.length < 2;\n });\n\n if (fullName.length < 2 || hasShortPart) {\n return { fullName: true };\n }\n\n return null;\n}\n\nexport function containsNumber(control: AbstractControl): ValidationErrors | null {\n const value = control.value?.trim();\n if (!value) return null;\n\n return /\\d/.test(value) ? { containsNumber: true } : null;\n}\n\nexport class MonkeyValidators {\n static email(control: AbstractControl): ValidationErrors | null {\n return emailValidator(control);\n }\n\n static dateRange(control: AbstractControl): ValidationErrors | null {\n return dateRangeValidator(control);\n }\n\n static unlockSponsorRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'sponsor');\n }\n\n static unlockBuyerRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'buyer');\n }\n\n static dateStartEnd(control: AbstractControl): ValidationErrors | null {\n return dateStartEndValidator(control);\n }\n\n static url(control: AbstractControl): ValidationErrors | null {\n return urlValidator(control);\n }\n\n static passwordConfirm(control: AbstractControl): ValidationErrors | null {\n return passwordConfirmValidator(control);\n }\n\n static true(control: AbstractControl): ValidationErrors | null {\n return trueValidator(control);\n }\n\n static combo(control: AbstractControl): ValidationErrors | null {\n return comboValidator(control);\n }\n\n static zipCode(control: AbstractControl): ValidationErrors | null {\n return zipCodeValidator(control);\n }\n\n static zipCodeByCountry(country: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return zipCodeValidator(control, country);\n };\n }\n\n static documentBR(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'BR');\n }\n\n static documentCL(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'CL');\n }\n\n static documentMX(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'MX');\n }\n\n static documentUS(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'US');\n }\n\n static date(control: AbstractControl): ValidationErrors | null {\n return dateValidator(control);\n }\n\n static minYears(param: number): ValidationErrors | null {\n return (control: AbstractControl): ValidationErrors | null => {\n return minYearsValidator(param, control);\n };\n }\n\n static greaterThanZero(control: AbstractControl): ValidationErrors | null {\n return valueGreaterThanZero(control);\n }\n\n static required(control: AbstractControl): ValidationErrors | null {\n return requiredWithTrimValidator(control);\n }\n\n static differentFromZero(control: AbstractControl): ValidationErrors | null {\n return differentFromZero(control);\n }\n\n static documentValidatorByType(type: string) {\n return (control: AbstractControl): ValidationErrors | null => {\n return documentValidatorByType(type, control);\n };\n }\n\n static validateFullName(control: AbstractControl): ValidationErrors | null {\n return validateFullName(control);\n }\n\n static containsNumber(control: AbstractControl): ValidationErrors | null {\n return containsNumber(control);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthService } from '../services';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardCompany implements CanActivate {\n private readonly _authService = inject(MonkeyEcxAuthService);\n\n canActivate(): boolean {\n if (this._authService.isAuthorized()) {\n if (this._authService.isCompanyAuthorized()) {\n return true;\n }\n this._authService.redirectApp();\n return false;\n }\n\n this._authService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthService } from '../services';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\n private readonly _authService = inject(MonkeyEcxAuthService);\n\n canActivate(): boolean {\n if (this._authService.isAuthorized()) {\n this._authService.redirectApp();\n return false;\n }\n\n if (this._authService.hadAtLeastOneLogin()) {\n this._authService.redirectLoginWelcomeBack();\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuardByRole implements CanActivate {\n private securityCredentials: {\n roles: string[];\n byExclusion: boolean;\n } | null = null;\n\n private tokenCredentials: any = null;\n\n constructor(\n private tokenStorage: MonkeyEcxTokenStorageService,\n private router: Router\n ) {\n // not to do\n }\n\n private navigateToErrorPage() {\n const { tokenCredentials } = this;\n const companyType = tokenCredentials?.companyType;\n let path = '/app/pages/forbidden';\n if (companyType) {\n path = `/app/${companyType}/pages/forbidden`;\n }\n this.router?.navigate([path?.toLowerCase()]);\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n if (tokenCredentials?.programAdmin === true) {\n return 'PROGRAM_ADMIN';\n }\n\n return tokenCredentials?.role || '';\n }\n\n private allowedSecurityAccess(roles: string[], byExclusion: boolean): boolean {\n if (!roles?.length) return true;\n\n const found = roles?.indexOf(this.getRole());\n let ret = false;\n if (byExclusion) {\n ret = true;\n if (found > -1) {\n ret = false;\n }\n } else {\n ret = false;\n if (found > -1) {\n ret = true;\n }\n }\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\n ret = true;\n }\n return ret;\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\n this.securityCredentials = (route.data as any)?.securityCredentials;\n if (this.securityCredentials) {\n const { roles, byExclusion } = this.securityCredentials;\n\n this.tokenCredentials = await this.tokenStorage.getToken();\n\n if (!this.allowedSecurityAccess(roles, byExclusion)) {\n this.navigateToErrorPage();\n return false;\n }\n }\n\n return true;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { MonkeyEcxAuthService } from '../services';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuard implements CanActivate {\n private readonly _authService = inject(MonkeyEcxAuthService);\n\n canActivate(): boolean {\n if (this._authService.isAuthorized()) {\n return true;\n }\n\n this._authService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n HttpErrorResponse,\n HttpEvent,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, finalize, map } from 'rxjs/operators';\nimport { MECX_REQUEST_ID } from '../injectors';\nimport { MonkeyEcxRequestErrorService } from '../services/request/monkeyecx-request-error.service';\nimport { MonkeyEcxRequestStateService } from '../services/request/monkeyecx-request-state.service';\n\nconst isRefreshTokenRequest = (request: HttpRequest<any>): boolean => {\n const body = `${request.body}`.includes('grant_type=refresh_token');\n return request.url.includes('/uaa/oauth/token') && body;\n};\n\nconst refreshShouldHappen = (response: HttpErrorResponse): boolean => {\n const { status, url, error } = response;\n const { type } = error || {\n type: ''\n };\n\n const typed = 'ACCESS_DENIED#INVALID_TOKEN#INVALID_CLIENT';\n\n let handledType = type;\n if (!handledType && typeof error === 'object') {\n handledType = error?.error;\n }\n\n if (type === 'ERROR') return false;\n if (url?.includes('uaa/oauth/token') && typed.includes(`${handledType}`?.toUpperCase())) {\n return false;\n }\n if (url?.includes('/notifications')) {\n return false;\n }\n\n return status === 401;\n};\n\nexport const monkeyEcxHttpConfigInterceptor: HttpInterceptorFn = (\n req: HttpRequest<any>,\n next: HttpHandlerFn\n): Observable<HttpEvent<any>> => {\n const requestStateService = inject(MonkeyEcxRequestStateService);\n const requestErrorService = inject(MonkeyEcxRequestErrorService);\n const requestId = req.context.get(MECX_REQUEST_ID);\n\n if (isRefreshTokenRequest(req)) {\n return next(req);\n }\n\n const state = requestId ? requestStateService.getData(requestId) : null;\n const headers = requestStateService.getHeaders(req.url);\n const updatedReq = req.clone({ setHeaders: headers });\n\n return next(updatedReq).pipe(\n map((event: HttpEvent<any>) => {\n return event;\n }),\n catchError((error: HttpErrorResponse) => {\n if (refreshShouldHappen(error)) {\n requestErrorService.handleError(error, state);\n return requestStateService.handleRefreshTokenError(req, next);\n }\n\n requestErrorService.handleError(error, state);\n return throwError(() => {\n return error;\n });\n }),\n finalize(() => {\n requestStateService.clearData(requestId);\n })\n );\n};\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-http.interceptor';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-auth';\nexport * from './monkeyecx-company';\nexport * from './monkeyecx-env';\nexport * from './monkeyecx-file-cache';\nexport * from './monkeyecx-header-credentials';\nexport * from './monkeyecx-init';\nexport * from './monkeyecx-interface';\nexport * from './monkeyecx-me-credentials';\nexport * from './monkeyecx-pagination';\nexport * from './monkeyecx-program';\nexport * from './monkeyecx-request-state';\nexport * from './monkeyecx-resolver';\nexport * from './monkeyecx-service-control';\nexport * from './monkeyecx-service-credentials';\nexport * from './monkeyecx-storage';\nexport * from './monkeyecx-store';\nexport * from './monkeyecx-token-credentials';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { provideHttpClient, withInterceptors } from '@angular/common/http';\nimport {\n ErrorHandler,\n inject,\n ModuleWithProviders,\n NgModule,\n provideAppInitializer\n} from '@angular/core';\nimport { provideState, provideStore } from '@ngrx/store';\nimport { monkeyEcxHttpConfigInterceptor } from './interceptors';\nimport {\n MonkeyEcxGlobalErrorHandler,\n monkeyEcxInitializerFactory,\n MonkeyEcxInitService\n} from './services';\nimport { reducers } from './store';\n\n@NgModule({\n imports: [CommonModule]\n})\nexport class MonkeyEcxCoreModule {\n static forRoot(): ModuleWithProviders<MonkeyEcxCoreModule> {\n return {\n ngModule: MonkeyEcxCoreModule,\n providers: [\n {\n provide: ErrorHandler,\n useClass: MonkeyEcxGlobalErrorHandler\n },\n provideHttpClient(withInterceptors([monkeyEcxHttpConfigInterceptor])),\n provideAppInitializer(() => {\n const initializerFn = monkeyEcxInitializerFactory(inject(MonkeyEcxInitService));\n return initializerFn();\n }),\n provideStore(),\n provideState({\n name: reducers.fromMonkeyecxStorage.featureKey,\n reducer: reducers.fromMonkeyecxStorage.reducer\n })\n ]\n };\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxService } from '../services';\n\n@Pipe({\n name: 'monkeyecxBlobSecure',\n standalone: false\n})\nexport class MonkeyEcxBlobSecurePipe implements PipeTransform {\n private readonly _service = inject(MonkeyEcxService);\n\n private readonly _sanitizer = inject(DomSanitizer);\n\n constructor() {\n // not to do\n }\n\n transform(url: string): Observable<SafeUrl> {\n return this._service.get(url, { responseType: 'blob' }).pipe(\n map((val: any) => {\n return this._sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val));\n })\n );\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { DEFAULT_CURRENCY_CODE, Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxCurrencyCode',\n standalone: false\n})\nexport class MonkeyEcxCurrencyCodePipe implements PipeTransform {\n private readonly _defaultCurencyCode = injectTokenWithWarning(\n DEFAULT_CURRENCY_CODE,\n 'DEFAULT_CURRENCY_CODE'\n )!;\n\n transform(value: any, type: 'symbol' | 'code' = 'symbol') {\n const currency = this._defaultCurencyCode?.toString() || 'BRL';\n\n const symbol = {\n BRL: 'R$',\n CLP: '$',\n MXN: '$',\n USD: '$'\n }[currency];\n\n return `${value} (${type === 'symbol' ? symbol : currency})`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayFirstName',\n standalone: false\n})\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n return MonkeyEcxUtils.cutFirstLastName(name);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayInitials',\n standalone: false\n})\nexport class MonkeyEcxDisplayInitialsPipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n const first = MonkeyEcxUtils.cutFirstLastName(name, 'first');\n const second = MonkeyEcxUtils.cutFirstLastName(name, 'last');\n return `${first?.charAt(0)} ${second?.charAt(0)}`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatAddress',\n standalone: false\n})\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\n transform({\n zipCode,\n address,\n neighborhood,\n city,\n state\n }: {\n zipCode: string;\n address: string;\n neighborhood: string;\n city: string;\n state: string;\n country: string;\n }): string {\n return [address, neighborhood, zipCode, city, state]\n .filter((_: string) => {\n return _;\n })\n .join(', ');\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatBeautifyJSON',\n standalone: false\n})\nexport class MonkeyEcxFormatBeaufityJSONPipe implements PipeTransform {\n constructor() {\n // not to do\n }\n\n transform(value: any) {\n const jsonLine = /^( *)(\"[\\w]+\": )?(\"[^\"]*\"|[\\w.+-]*)?([,[{])?$/gm;\n\n const replacer = (\n match: any,\n pIndent: string,\n pKey: string,\n pVal: string | string[],\n pEnd: any\n ) => {\n const key = '<span class=\"json-key\" style=\"color: brown\">';\n const val = '<span class=\"json-value\" style=\"color: navy\">';\n const str = '<span class=\"json-string\" style=\"color: olive\">';\n let r = pIndent || '';\n if (pKey) {\n r = `${r + key + pKey.replace(/[\": ]/g, '')}</span>: `;\n }\n if (pVal) {\n r = `${r + (pVal[0] === '\"' ? str : val) + pVal}</span>`;\n }\n return r + (pEnd || '');\n };\n\n return JSON.stringify(value, null, 3)\n .replace(/&/g, '&amp;')\n .replace(/\\\\\"/g, '&quot;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(jsonLine, replacer);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CurrencyPipe } from '@angular/common';\nimport { DEFAULT_CURRENCY_CODE, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatCurrency',\n standalone: false\n})\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\n private readonly _defaultCurencyCode = injectTokenWithWarning(\n DEFAULT_CURRENCY_CODE,\n 'DEFAULT_CURRENCY_CODE'\n )!;\n\n private readonly _localeId = injectTokenWithWarning(LOCALE_ID, 'LOCALE_ID')!;\n\n constructor(private currencyPipe: CurrencyPipe) {\n // not to do\n }\n\n transform(value: any, symbol = 'symbol') {\n const currency = this._defaultCurencyCode.toString();\n const locale = this._localeId.toString();\n\n try {\n if (currency === 'CLP') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '1.0-0', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n if (currency === 'MXN') {\n let fmt = this.currencyPipe.transform(value, '$', symbol, '', locale);\n fmt = `${fmt}`.replace(/[^0-9,.]/g, '');\n return `${fmt}${symbol !== '' ? ` ${currency}` : ''}`;\n }\n\n return this.currencyPipe.transform(value, currency, symbol, '', locale);\n } catch (e) {\n // not to do\n }\n return value;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning, MECX_DATE_FORMAT, MECX_TIMEZONEOFFSET } from '../injectors';\n\n@Pipe({\n name: 'monkeyecxFormatDate',\n standalone: false\n})\nexport class MonkeyEcxFormatDatePipe implements PipeTransform {\n private readonly _dateFormat = injectTokenWithWarning(MECX_DATE_FORMAT, 'MECX_DATE_FORMAT')!;\n\n private readonly _timezone = injectTokenWithWarning(MECX_TIMEZONEOFFSET, 'MECX_TIMEZONEOFFSET')!;\n\n constructor(private dt: DatePipe) {\n // not to do\n }\n\n transform(date: any | Date, format = this._dateFormat.toString()) {\n const hasTime =\n date instanceof Date\n ? date.getHours() + date.getMinutes() + date.getSeconds() > 0\n : date.includes(':');\n\n if (!hasTime) {\n return this.dt.transform(date, format);\n }\n\n return this.dt.transform(date, format, this._timezone.toString());\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning, MECX_COUNTRY } from '../injectors';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocument',\n standalone: false\n})\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\n private readonly _country = injectTokenWithWarning(MECX_COUNTRY, 'MECX_COUNTRY')!;\n\n transform(document: string, withType = false): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) {\n return '';\n }\n\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType, this._country);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { formatNumber } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatNumber',\n standalone: false\n})\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n\n return formatNumber(Number(number), 'ptbr');\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatPhone',\n standalone: false\n})\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\n transform(phone: string): string {\n if (phone) {\n const value = `${phone || ''}`.replace(/\\D/g, '');\n\n let formated = '';\n\n if (value.length > 12) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 11) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 10) {\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 9) {\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 5) {\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\n } else if (value.length > 1) {\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\n } else if (phone !== '') {\n formated = value.replace(/^(\\d*)/, '($1');\n }\n return formated;\n }\n return '';\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatSize',\n standalone: false\n})\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\n transform(size: string): string {\n if (!size) return '0 B';\n const sizeNum = Number(size);\n return MonkeyEcxUtils.formatFileSize(sizeNum);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils';\n\n@Pipe({\n name: 'monkeyecxFormatTax',\n standalone: false\n})\nexport class MonkeyEcxFormatTaxPipe implements PipeTransform {\n transform(tax: number, decimalDigits: number = 7) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tax)) return '0 %';\n const stringTax = tax.toString();\n const stringTaxLimited = stringTax.slice(0, stringTax.indexOf('.') + decimalDigits + 1);\n return `${Number(stringTaxLimited).toLocaleString('pt-br', {\n maximumFractionDigits: decimalDigits\n })} %`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { injectTokenWithWarning, MECX_COUNTRY } from '../injectors';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocumentType',\n standalone: false\n})\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\n private readonly _country = injectTokenWithWarning(MECX_COUNTRY, 'MECX_COUNTRY')!;\n\n transform(document: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\n return MonkeyEcxUtils.getDocumentType(document, this._country);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatValue',\n standalone: false\n})\nexport class MonkeyEcxFormatValue implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n return number;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatZipCode',\n standalone: false\n})\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\n transform(zipCode: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\n return MonkeyEcxUtils.formatZipCode(zipCode);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTextTruncate',\n standalone: false\n})\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\n transform(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTruncateQtd',\n standalone: false\n})\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\n transform(number: number, threshold: number): string {\n return `${number > threshold ? `${threshold}+` : number}`;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CurrencyPipe, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxBlobSecurePipe } from './monkeyecx-blob-secure';\nimport { MonkeyEcxCurrencyCodePipe } from './monkeyecx-currency-code';\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\nimport { MonkeyEcxDisplayInitialsPipe } from './monkeyecx-display-initials';\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\nimport { MonkeyEcxFormatBeaufityJSONPipe } from './monkeyecx-format-beautify-json';\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatDatePipe } from './monkeyecx-format-date';\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\nimport { MonkeyEcxFormatTaxPipe } from './monkeyecx-format-tax';\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\n\n@NgModule({\n declarations: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n exports: [\n MonkeyEcxBlobSecurePipe,\n MonkeyEcxDisplayFirstNamePipe,\n MonkeyEcxDisplayInitialsPipe,\n MonkeyEcxFormatAddressPipe,\n MonkeyEcxFormatBeaufityJSONPipe,\n MonkeyEcxFormatCurrencyPipe,\n MonkeyEcxCurrencyCodePipe,\n MonkeyEcxFormatDocumentPipe,\n MonkeyEcxFormatDocumentTypePipe,\n MonkeyEcxFormatNumberPipe,\n MonkeyEcxFormatPhonePipe,\n MonkeyEcxFormatSizePipe,\n MonkeyEcxFormatTaxPipe,\n MonkeyEcxFormatValue,\n MonkeyEcxFormatZipCodePipe,\n MonkeyEcxTextTruncatePipe,\n MonkeyEcxTruncateQtdPipe,\n MonkeyEcxFormatDatePipe\n ],\n providers: [CurrencyPipe, DatePipe]\n})\nexport class MonkeyEcxPipesModule {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './monkeyecx-blob-secure';\nexport * from './monkeyecx-currency-code';\nexport * from './monkeyecx-display-first-name';\nexport * from './monkeyecx-display-initials';\nexport * from './monkeyecx-format-address';\nexport * from './monkeyecx-format-beautify-json';\nexport * from './monkeyecx-format-currency';\nexport * from './monkeyecx-format-date';\nexport * from './monkeyecx-format-document';\nexport * from './monkeyecx-format-number';\nexport * from './monkeyecx-format-phone';\nexport * from './monkeyecx-format-size';\nexport * from './monkeyecx-format-tax';\nexport * from './monkeyecx-format-type-document';\nexport * from './monkeyecx-format-value';\nexport * from './monkeyecx-format-zipcode';\nexport * from './monkeyecx-pipes.module';\nexport * from './monkeyecx-text-truncate';\nexport * from './monkeyecx-truncate-qtd';\n","import { provideServiceWorker } from '@angular/service-worker';\n\nexport function provideDomainServiceWorker(workerUrl: string) {\n return provideServiceWorker(workerUrl, {\n enabled: true,\n registrationStrategy: 'registerWhenStable:3000'\n });\n}\n","import { inject, signal } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { MonkeyEcxBaseResolverParams, MonkeyEcxServiceControl } from '../interfaces';\nimport { MonkeyEcxLogs } from '../utils';\n\nconst initialControl: MonkeyEcxServiceControl = {\n isLoading: true,\n isExporting: false,\n isDeleting: false,\n isDownloading: false,\n isSubmitting: false\n};\n\nexport abstract class MonkeyEcxBaseResolver implements Resolve<any> {\n public readonly router = inject(Router);\n\n public readonly paramsSubject = new BehaviorSubject<Partial<MonkeyEcxBaseResolverParams>>({});\n\n public readonly params$ = this.paramsSubject.asObservable();\n\n public control = signal<Partial<MonkeyEcxServiceControl>>(initialControl);\n\n get pathParams() {\n return this.paramsSubject.value.pathParams;\n }\n\n get queryParams() {\n return this.paramsSubject.value.queryParams;\n }\n\n get stateData() {\n return this.paramsSubject.value.stateData;\n }\n\n resolve(route: ActivatedRouteSnapshot): Observable<any> | Promise<any> {\n try {\n const pathParams = route.params;\n const { queryParams } = route;\n const currentNavigation = this.router.currentNavigation();\n let stateData = {};\n\n if (currentNavigation && currentNavigation.id > 1) {\n // TODO -> para conferir se vamos manter o state apos o f5 ou não\n stateData = currentNavigation.extras?.state || {};\n }\n\n const obj = {\n pathParams,\n queryParams,\n stateData\n };\n\n this.paramsSubject.next(obj);\n\n this.resolveData(route);\n } catch (error) {\n MonkeyEcxLogs.log({\n message: '== MonkeyEcxBaseResolver ==',\n error: { error } as any\n });\n }\n\n return of(null);\n }\n\n protected abstract resolveData(route: ActivatedRouteSnapshot): void;\n}\n","import { inject, Injectable, Injector, LOCALE_ID } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { catchError, map, Observable, of } from 'rxjs';\nimport { CACHE_LOCALE_EXPIRATION_MS } from '../enums';\nimport {\n injectTokenWithWarning,\n MECX_BOOTSTRAP_SERVICE,\n MECX_I18N_ALIAS,\n MECX_I18N_PATH\n} from '../injectors';\nimport { MonkeyEcxBootstrapService } from '../interfaces';\nimport { MonkeyEcxService } from '../services';\nimport { MonkeyEcxTokenStorageService } from '../storage';\n\n@Injectable()\nexport abstract class MonkeyEcxI18nResolver implements Resolve<boolean> {\n private readonly _injector = inject(Injector);\n\n private readonly _localeId = injectTokenWithWarning(LOCALE_ID, 'LOCALE_ID');\n\n private readonly _bootstrapService = injectTokenWithWarning<MonkeyEcxBootstrapService>(\n MECX_BOOTSTRAP_SERVICE,\n 'MECX_BOOTSTRAP_SERVICE'\n )!;\n\n private readonly _i18nPath = injectTokenWithWarning<string>(MECX_I18N_PATH, 'MECX_I18N_PATH')!;\n\n private readonly _i18nAlias = injectTokenWithWarning<string>(MECX_I18N_ALIAS, 'MECX_I18N_ALIAS')!;\n\n private readonly _tokenStorageService = inject(MonkeyEcxTokenStorageService);\n\n private static _loadedPaths = new Map<string, number>();\n\n constructor() {\n // not to do\n }\n\n resolve(): Observable<boolean> {\n const service = this._injector.get(MonkeyEcxService);\n const locale = this._tokenStorageService.getMe()?.locale || this._localeId;\n const path = this._i18nPath;\n const host = this.getHost();\n\n const url = [host || '', `assets/${path}/i18n/${locale}.json`].join(host ? '/' : '');\n const cacheKey = `${path}/${locale}`;\n const now = Date.now();\n\n const lastLoaded = MonkeyEcxI18nResolver._loadedPaths.get(cacheKey);\n if (lastLoaded && now - lastLoaded < CACHE_LOCALE_EXPIRATION_MS) {\n return of(true);\n }\n\n return service.get(url).pipe(\n map((translations: any) => {\n this._bootstrapService.handleI18N(locale!, {\n [this._i18nAlias]: translations.data\n });\n MonkeyEcxI18nResolver._loadedPaths.set(cacheKey, now);\n return true;\n }),\n catchError(() => {\n return of(true);\n })\n );\n }\n\n getHost(): string {\n return '';\n }\n}\n","/* eslint-disable no-console */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { MonkeyEcxCachedFile } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxFileCacheService {\n private cache = new Map<string, MonkeyEcxCachedFile>();\n\n private readonly EXPIRATION_MS = 15 * 60 * 1000;\n\n private isExpired(timestamp: number): boolean {\n return Date.now() - timestamp > this.EXPIRATION_MS;\n }\n\n saveFile(filename: string, blob: Blob): void {\n this.cache.set(filename, { filename, blob, timestamp: Date.now() });\n }\n\n hasFile(filename: string): boolean {\n const file = this.cache.get(filename);\n if (!file) return false;\n\n if (this.isExpired(file.timestamp)) {\n this.cache.delete(filename);\n return false;\n }\n\n return true;\n }\n\n getFile(filename: string): MonkeyEcxCachedFile | null {\n const file = this.cache.get(filename);\n if (!file) return null;\n\n if (this.isExpired(file.timestamp)) {\n this.cache.delete(filename);\n return null;\n }\n\n return file;\n }\n\n download(filename: string): void {\n const file = this.getFile(filename);\n if (!file) return;\n\n const url = URL.createObjectURL(file.blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = file.filename;\n a.click();\n URL.revokeObjectURL(url);\n }\n\n deleteFile(filename: string): void {\n this.cache.delete(filename);\n }\n\n clear(): void {\n this.cache.clear();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { MonkeyEcxUtils } from '../../utils/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxDiscoveryParamsService {\n constructor(private router: Router) {\n // not to do\n }\n\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (route.firstChild) {\n return this.getLastChild(route.firstChild);\n }\n\n return route;\n }\n\n public setData(field: string, value: any): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n route.data[field] = value;\n }\n\n public getData(field: string): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\n return found;\n }\n\n public getDataFromCurrentNavigation(field: string, router?: Router): any {\n const navigation = this.router.currentNavigation() || router?.getCurrentNavigation();\n let state: any = null;\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\n state = navigation?.extras.state;\n }\n\n return state ? state[field] : null;\n }\n\n public getParam(param: string): string | null {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\n ? route?.paramMap?.get(param) || ''\n : '';\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\n return found;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './lib/decorators';\nexport * from './lib/directives';\nexport * from './lib/enums';\nexport * from './lib/form-validators';\nexport * from './lib/guards';\nexport * from './lib/injectors';\nexport * from './lib/interceptors';\nexport * from './lib/interfaces';\nexport * from './lib/model';\nexport * from './lib/monkey-front-core.module';\nexport * from './lib/pipes';\nexport * from './lib/providers/service-worker';\nexport * from './lib/resolvers/base.resolver';\nexport * from './lib/resolvers/i18n.resolver';\nexport * from './lib/services/cache/monkeyecx-file-cache.service';\nexport * from './lib/services/config/monkeyecx-configs.service';\nexport * from './lib/services/config/monkeyecx-datadog.service';\nexport * from './lib/services/config/monkeyecx-feature-toggle.service';\nexport * from './lib/services/config/monkeyecx-locale.service';\nexport * from './lib/services/l';\nexport * from './lib/services/logged/monkeyecx-logged-handle.service';\nexport * from './lib/services/monkeyecx.service';\nexport * from './lib/services/routes/monkeyecx-dicovery-params.service';\nexport * from './lib/services/schedule/monkeyecx-schedule.service';\nexport * from './lib/services/store/monkeyecx-store.actions';\nexport * from './lib/services/store/monkeyecx-store.selector';\nexport * from './lib/services/store/monkeyecx-store.service';\nexport * from './lib/services/validation/monkeyecx-validation.service';\nexport * as storage from './lib/storage';\nexport * from './lib/storage/monkeyecx-cookie-storage.service';\nexport * from './lib/storage/monkeyecx-token-storage.service';\nexport * as store from './lib/store';\nexport * from './lib/utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["actions.monkeyecxStorage.clear","actions.monkeyecxStorage.create","actions.monkeyecxStorage.updateData","actions.monkeyecxStorage.updateMe","actions.monkeyecxStorage.updateControl","reducers.fromMonkeyecxStorage.featureKey","selectors.monkeyecxStorage.select","i1","i1.MonkeyEcxTokenStorageService","map","catchError","finalize","reducers.fromMonkeyecxStorage.reducer"],"mappings":"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"}