@stemy/ngx-utils 17.5.3 → 17.5.4
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":"stemy-ngx-utils.mjs","sources":["../../src/ngx-utils/utils/object.utils.ts","../../src/ngx-utils/utils/reflect.utils.ts","../../src/ngx-utils/common-types.ts","../../src/ngx-utils/utils/ajax-request-handler.ts","../../src/ngx-utils/utils/array.utils.ts","../../src/ngx-utils/services/universal.service.ts","../../src/ngx-utils/services/state.service.ts","../../src/ngx-utils/utils/auth.guard.ts","../../src/ngx-utils/utils/cached-factory.ts","../../src/ngx-utils/utils/json.utils.ts","../../src/ngx-utils/utils/crypto.utils.ts","../../src/ngx-utils/utils/canvas.utils.ts","../../src/ngx-utils/utils/date.utils.ts","../../src/ngx-utils/utils/file.utils.ts","../../src/ngx-utils/utils/generic-value.ts","../../src/ngx-utils/utils/file-system.ts","../../src/ngx-utils/utils/geometry.ts","../../src/ngx-utils/utils/initializer.ts","../../src/ngx-utils/utils/loader.utils.ts","../../src/ngx-utils/utils/math.utils.ts","../../src/ngx-utils/utils/misc.ts","../../src/ngx-utils/utils/timer.utils.ts","../../src/ngx-utils/utils/observable.utils.ts","../../src/ngx-utils/utils/promise.utils.ts","../../src/ngx-utils/utils/string.utils.ts","../../src/ngx-utils/utils/set.utils.ts","../../src/ngx-utils/utils/unique.utils.ts","../../src/ngx-utils/utils/vector.ts","../../src/ngx-utils/utils/with-options-provider.ts","../../src/ngx-utils/utils/jsonfn.ts","../../src/ngx-utils/utils/wasm-worker-proxy.ts","../../src/ngx-utils/services/base-http.client.ts","../../src/ngx-utils/services/storage.service.ts","../../src/ngx-utils/services/base-http.service.ts","../../src/ngx-utils/services/local-http.service.ts","../../src/ngx-utils/services/wasm.service.ts","../../src/ngx-utils/services/acl.service.ts","../../src/ngx-utils/services/api.service.ts","../../src/ngx-utils/services/auth.service.ts","../../src/ngx-utils/services/config.service.ts","../../src/ngx-utils/services/error-handler.service.ts","../../src/ngx-utils/services/events.service.ts","../../src/ngx-utils/services/formatter.service.ts","../../src/ngx-utils/services/global-template.service.ts","../../src/ngx-utils/services/icon.service.ts","../../src/ngx-utils/services/static-language.service.ts","../../src/ngx-utils/services/language.service.ts","../../src/ngx-utils/services/open-api.service.ts","../../src/ngx-utils/services/toaster.service.ts","../../src/ngx-utils/services/translated-url.serializer.ts","../../src/ngx-utils/services/promise.service.ts","../../src/ngx-utils/plugins/resize-detector.ts","../../src/ngx-utils/plugins/resize-event.plugin.ts","../../src/ngx-utils/plugins/scroll-event.plugin.ts","../../src/ngx-utils/pipes/chunk.pipe.ts","../../src/ngx-utils/pipes/entries.pipe.ts","../../src/ngx-utils/pipes/extra-item-properties.pipe.ts","../../src/ngx-utils/pipes/filter.pipe.ts","../../src/ngx-utils/pipes/find.pipe.ts","../../src/ngx-utils/pipes/format-number.pipe.ts","../../src/ngx-utils/pipes/get-offset.pipe.ts","../../src/ngx-utils/pipes/get-type.pipe.ts","../../src/ngx-utils/pipes/get-value.pipe.ts","../../src/ngx-utils/pipes/global-template.pipe.ts","../../src/ngx-utils/pipes/group-by.pipe.ts","../../src/ngx-utils/pipes/includes.pipe.ts","../../src/ngx-utils/pipes/is-type.pipe.ts","../../src/ngx-utils/pipes/join.pipe.ts","../../src/ngx-utils/pipes/keys.pipe.ts","../../src/ngx-utils/pipes/map.pipe.ts","../../src/ngx-utils/pipes/max.pipe.ts","../../src/ngx-utils/pipes/min.pipe.ts","../../src/ngx-utils/pipes/pop.pipe.ts","../../src/ngx-utils/pipes/reduce.pipe.ts","../../src/ngx-utils/pipes/remap.pipe.ts","../../src/ngx-utils/pipes/replace.pipe.ts","../../src/ngx-utils/pipes/reverse.pipe.ts","../../src/ngx-utils/pipes/round.pipe.ts","../../src/ngx-utils/pipes/safe-html.pipe.ts","../../src/ngx-utils/pipes/shift.pipe.ts","../../src/ngx-utils/pipes/split.pipe.ts","../../src/ngx-utils/pipes/translate.pipe.ts","../../src/ngx-utils/pipes/values.pipe.ts","../../src/ngx-utils/directives/async-method.base.ts","../../src/ngx-utils/directives/async-method.directive.ts","../../src/ngx-utils/directives/background.directive.ts","../../src/ngx-utils/directives/dropdown.directive.ts","../../src/ngx-utils/directives/dropdown-content.directive.ts","../../src/ngx-utils/directives/dropdown-toggle.directive.ts","../../src/ngx-utils/directives/dynamic-table-template.directive.ts","../../src/ngx-utils/directives/global-template.directive.ts","../../src/ngx-utils/directives/icon.directive.ts","../../src/ngx-utils/directives/ngx-template-outlet.directive.ts","../../src/ngx-utils/directives/pagination.directive.ts","../../src/ngx-utils/directives/pagination-item.directive.ts","../../src/ngx-utils/directives/resource-if.directive.ts","../../src/ngx-utils/directives/sticky.directive.ts","../../src/ngx-utils/directives/sticky-class.directive.ts","../../src/ngx-utils/directives/unordered-list-item.directive.ts","../../src/ngx-utils/directives/unordered-list-template.directive.ts","../../src/ngx-utils/components/unordered-list/unordered-list.component.ts","../../src/ngx-utils/components/unordered-list/unordered-list.component.html","../../src/ngx-utils/components/dropdown-box/dropdown-box.component.ts","../../src/ngx-utils/components/dropdown-box/dropdown-box.component.html","../../src/ngx-utils/components/pagination-menu/pagination-menu.component.ts","../../src/ngx-utils/components/pagination-menu/pagination-menu.component.html","../../src/ngx-utils/components/dynamic-table/dynamic-table.component.ts","../../src/ngx-utils/components/dynamic-table/dynamic-table.component.html","../../src/ngx-utils/ngx-utils.imports.ts","../../src/ngx-utils/utils/wasi.ts","../../src/ngx-utils/ngx-utils.module.ts","../../src/stemy-ngx-utils.ts"],"sourcesContent":["import {ReflectUtils} from \"./reflect.utils\";\n\nexport type FilterPredicate = (value: any, key?: any, target?: any, source?: any) => boolean;\nexport type IterateCallback = (value: any, key?: any) => void;\n\nexport function defaultPredicate(value: any, key?: any, target?: any, source?: any): boolean {\n return true;\n}\n\nexport function shouldCopyDefault(key: any, value: any): boolean {\n return true;\n}\n\nconst hasBlob = typeof Blob !== \"undefined\" && !!Blob;\nconst hasFile = typeof File !== \"undefined\" && !!File;\n\nexport class ObjectUtils {\n\n static compare(a: any, b: any): number {\n if ((a === null || b === null) || (typeof a != typeof b)) {\n return null;\n }\n if (typeof a === \"string\") {\n return (a).localeCompare(b);\n } else {\n if (a instanceof Date) {\n a = a.getTime();\n b = b.getTime();\n }\n if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n }\n return 0;\n }\n }\n\n static getProperties(obj: any): string[] {\n if (!ObjectUtils.isObject(obj) && !ObjectUtils.isFunction(obj)) return [];\n const props = new Set<string>();\n Object.keys(obj).forEach(p => props.add(p));\n Object.getOwnPropertyNames(obj).forEach(p => props.add(p));\n return Array.from(props);\n }\n\n static equals(a: any, b: any, visited: Set<any> = null): boolean {\n visited = visited || new Set();\n if (visited.has(a) && visited.has(b)) return true;\n if (a === b) return true;\n if (a === null || b === null) return false;\n if (a !== a && b !== b) return true; // NaN === NaN\n const at = typeof a, bt = typeof b;\n let length: number, key: any, keySet: any;\n if (at == bt && at == \"object\") {\n visited.add(a);\n visited.add(b);\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) return false;\n if ((length = a.length) == b.length) {\n for (key = 0; key < length; key++) {\n if (!ObjectUtils.equals(a[key], b[key], visited)) return false;\n }\n return true;\n }\n } else {\n if (Array.isArray(b)) {\n return false;\n }\n keySet = Object.create(null);\n for (key in a) {\n if (a.hasOwnProperty(key)) {\n if (!ObjectUtils.equals(a[key], b[key], visited)) {\n return false;\n }\n keySet[key] = true;\n }\n }\n for (key in b) {\n if (b.hasOwnProperty(key) && !(key in keySet) && typeof b[key] !== \"undefined\") {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n }\n\n static evaluate(expr: string, context: any = {}, res: any = {}): any {\n expr = Object.keys(context).reduce((res, key) => `var ${key} = this['${key}'];\\n${res}`, expr);\n const lines = expr.split(\"\\n\");\n const lastLine = \"return \" + lines.pop().replace(\"return \", \"\");\n lines.push(lastLine);\n expr = lines.join(\"\\n\");\n let result = null;\n try {\n result = new Function(expr).call(context);\n } catch (e) {\n res.exception = e;\n console.log(`Failed to parse expression: ${e.message}`, expr, context);\n }\n res.result = result;\n return result;\n }\n\n static empty(obj: any): boolean {\n return !obj || Object.keys(obj).length == 0;\n }\n\n static iterate(obj: any, cb: IterateCallback): void {\n if (!obj) return;\n const keys: any[] = Array.isArray(obj) ? Array.from(obj.keys()) : Object.keys(obj);\n keys.forEach(\n // @dynamic\n key => {\n cb(obj[key], key);\n }\n );\n }\n\n static getValue(obj: any, key: string, defaultValue?: any, treeFallback: boolean = false): any {\n key = key || \"\";\n const keys = key.split(\".\");\n let curKey = \"\";\n do {\n curKey += keys.shift();\n if (ObjectUtils.isDefined(obj) && ObjectUtils.isDefined(obj[curKey]) && (typeof obj[curKey] === \"object\" || !keys.length)) {\n obj = obj[curKey];\n curKey = \"\";\n } else if (!keys.length) {\n defaultValue = typeof defaultValue == \"undefined\" ? key.replace(new RegExp(`${curKey}$`), `{${curKey}}`) : defaultValue;\n obj = treeFallback ? obj || defaultValue : defaultValue;\n } else {\n curKey += \".\";\n }\n } while (keys.length);\n return obj;\n }\n\n static mapToPath(target: any, source: any, path: string[]): any {\n if (typeof source === \"undefined\") return target;\n if (path.length == 0) return source;\n const key: any = path.shift();\n if (key == \"*\") {\n if (ObjectUtils.isArray(source)) {\n target = ObjectUtils.isArray(target) ? target : [];\n return source.map((item, index) => {\n return ObjectUtils.mapToPath(target[index], item, Array.from(path));\n });\n }\n if (ObjectUtils.isObject(source)) {\n target = ObjectUtils.isObject(target) ? target : {};\n return Object.keys(source).reduce((result, key) => {\n result[key] = ObjectUtils.mapToPath(target[key], source[key], Array.from(path));\n return result;\n }, {});\n }\n return ObjectUtils.isNullOrUndefined(target) ? null : target;\n }\n const isArray = ObjectUtils.isArray(target);\n target = ObjectUtils.isObject(target) || isArray ? target : {};\n target[key] = ObjectUtils.mapToPath(target[key], source, Array.from(path));\n return isNaN(key) || isArray ? target : Object.values(target);\n }\n\n static filter(obj: any, predicate: FilterPredicate): any {\n return ObjectUtils.copyRecursive(null, obj, predicate || defaultPredicate, new Map());\n }\n\n static copy<T>(obj: T): T {\n return ObjectUtils.copyRecursive(null, obj, defaultPredicate, new Map());\n }\n\n static assign<T>(target: T, source: any, predicate?: FilterPredicate): T {\n return ObjectUtils.copyRecursive(target, source, predicate || defaultPredicate, new Map());\n }\n\n static getType(obj: any): string {\n const regex = new RegExp(\"\\\\s([a-zA-Z]+)\");\n const target = !obj ? null : obj.constructor;\n const type = !target ? null : Reflect.getMetadata(\"objectType\", target);\n return (type || Object.prototype.toString.call(obj).match(regex)[1]).toLowerCase();\n }\n\n static isPrimitive(value: any): boolean {\n const type = typeof value;\n return value == null || (type !== \"object\" && type !== \"function\");\n }\n\n static isObject(value: any): boolean {\n return ObjectUtils.getType(value) === \"object\";\n }\n\n static isDefined(value: any): boolean {\n return typeof value !== \"undefined\" && value !== null;\n }\n\n static isNullOrUndefined(value: any): boolean {\n return typeof value == \"undefined\" || value == null;\n }\n\n static isString(value: any): value is string {\n return typeof value === \"string\";\n }\n\n static isFunction(value: any): value is Function {\n return typeof value === \"function\";\n }\n\n static isDate(value: any): value is Date {\n return null !== value && !isNaN(value) && \"undefined\" !== typeof value.getDate;\n }\n\n static isBlob(value: any): value is Blob {\n return (hasBlob && value instanceof Blob) || (hasFile && value instanceof File);\n }\n\n static isBoolean(value: any): value is boolean {\n return typeof(value) == typeof(true);\n }\n\n static isNumber(value: any): value is number {\n if (typeof value !== \"number\") return false;\n const num = +value;\n if ((num - num) !== 0) {\n return false;\n }\n if (num === value) {\n return true;\n }\n }\n\n static isArray(value: any): value is Array<any> {\n return Array.isArray(value);\n }\n\n static isSet(value: any): value is Set<any> {\n return value instanceof Set;\n }\n\n static isConstructor(value: any): boolean {\n return (value && typeof value === \"function\" && value.prototype && value.prototype.constructor) === value && value.name !== \"Object\";\n }\n\n static checkInterface(obj: any, interFaceObject: any): boolean {\n return ObjectUtils.isInterface(obj, interFaceObject);\n }\n\n static isInterface(obj: any, interFaceObject: any): boolean {\n if (!obj || typeof obj !== \"object\" || ObjectUtils.isArray(obj) || !ObjectUtils.isObject(interFaceObject)) return false;\n const keys = Object.keys(interFaceObject);\n for (const key of keys) {\n let type = interFaceObject[key] || \"\";\n if (type.startsWith(\"*\")) {\n type = type.substr(1);\n if (obj.hasOwnProperty(key) && ObjectUtils.getType(obj[key]) !== type) return false;\n } else if (!obj.hasOwnProperty(key) || ObjectUtils.getType(obj[key]) !== type) {\n return false;\n }\n }\n return true;\n }\n\n static pad(obj: any, width: number, chr: string = \"0\"): string {\n const str = ObjectUtils.isDefined(obj) ? obj.toString() : \"\";\n return str.length >= width ? str : new Array(width - str.length + 1).join(chr) + str;\n }\n\n private static copyRecursive(target: any, source: any, predicate: FilterPredicate, copies: Map<any, any>): any {\n if (ObjectUtils.isPrimitive(source) || ObjectUtils.isDate(source) || ObjectUtils.isBlob(source) || ObjectUtils.isFunction(source)) return source;\n if (copies.has(source)) return copies.get(source);\n if (ObjectUtils.isArray(source)) {\n target = ObjectUtils.isArray(target) ? Array.from(target) : [];\n copies.set(source, target);\n for (let index = 0; index < source.length; index++) {\n const item = source[index];\n if (!predicate(item, index, target, source)) continue;\n if (target.length > index)\n target[index] = ObjectUtils.copyRecursive(target[index], item, predicate, copies);\n else\n target.push(ObjectUtils.copyRecursive(null, item, predicate, copies));\n }\n return target;\n }\n\n // If object defines __shouldCopy as false, then don't copy it\n if (source.__shouldCopy === false) return source;\n // Copy object\n const shouldCopy = ObjectUtils.isFunction(source.__shouldCopy) ? source.__shouldCopy : shouldCopyDefault;\n if (ObjectUtils.isConstructor(source.constructor)) {\n if (!target) {\n try {\n target = new source.constructor();\n } catch (e) {\n const proto = source.constructor.prototype || source.prototype;\n target = Object.create(proto);\n }\n }\n } else {\n target = Object.assign({}, target || {});\n }\n // Set to copies to prevent circular references\n copies.set(source, target);\n\n // Copy map entries\n if (target instanceof Map) {\n if (source instanceof Map) {\n for (const [key, value] of source.entries()) {\n if (!predicate(value, key, target, source)) continue;\n target.set(key, !shouldCopy(key, value) ? value : ObjectUtils.copyRecursive(target.get(key), value, predicate, copies));\n }\n }\n return target;\n }\n\n // Copy object members\n const keys = Object.keys(source);\n for (const key of keys) {\n if (!predicate(source[key], key, target, source)) continue;\n target[key] = !shouldCopy(key, source[key]) ? source[key] : ObjectUtils.copyRecursive(target[key], source[key], predicate, copies);\n }\n\n // Copy object properties\n const descriptors = Object.getOwnPropertyDescriptors(source);\n for (const key of Object.keys(descriptors)) {\n if (keys.indexOf(key) >= 0) continue;\n Object.defineProperty(target, key, descriptors[key]);\n }\n return target;\n }\n}\n","import \"reflect-metadata\";\nimport {Injector, TypeProvider} from \"@angular/core\";\nimport {IResolveFactory} from \"../common-types\";\nimport {ObjectUtils} from \"./object.utils\";\n\nexport class ReflectUtils {\n\n static defineMetadata(key: string, data: any, target: any, name?: string): void {\n Reflect.defineMetadata(key, data, target, name);\n }\n\n static getMetadata(key: string, target: any, name?: string): any {\n return Reflect.getMetadata(key, target, name);\n }\n\n static getOwnMetadata(key: string, target: any, name?: string): any {\n return Reflect.getOwnMetadata(key, target, name);\n }\n\n static resolve<T>(obj: IResolveFactory | T, injector: Injector): T {\n if (!ObjectUtils.checkInterface(obj, {func: \"function\"})) return <T>obj;\n const factory = <IResolveFactory>obj;\n let depends: TypeProvider[] = [];\n if (factory.type) {\n const method = ObjectUtils.getProperties(factory.type).find(function (key) {\n return factory.type[key] === factory.func;\n });\n depends = ReflectUtils.getMetadata(\"factoryDependencies\", factory.type, method) || [];\n } else {\n depends = ReflectUtils.getMetadata(\"factoryDependencies\", factory.func) || [];\n }\n const parameters = depends.map(function (dep) {\n return injector.get(dep);\n }).concat(factory.params);\n return factory.func.apply(null, parameters);\n }\n}\n","import {ElementRef, EventEmitter, InjectionToken, Injector, NgZone, Provider, TemplateRef, Type} from \"@angular/core\";\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from \"@angular/common/http\";\nimport {ActivatedRouteSnapshot, Data, Route, UrlTree} from \"@angular/router\";\nimport {Request} from \"express\";\nimport {ReflectUtils} from \"./utils/reflect.utils\";\nimport {ObjectUtils} from \"./utils/object.utils\";\n\n// --- Util\nexport interface TypedFactoryProvider<T> {\n useFactory: (...args: any[]) => T;\n deps: any[];\n}\n\nexport interface TypedValueProvider<T> {\n useValue: T;\n}\n\nexport type CachedProvider<T> = Type<T> | TypedFactoryProvider<T> | TypedValueProvider<T>;\n\nexport type CachedFactory<T> = (injector: Injector) => ReadonlyArray<T>;\n\nexport const OPTIONS_TOKEN = new InjectionToken(\"custom-options-token\");\n\nexport interface IResolveFactory {\n func: Function;\n type?: any;\n params?: any[];\n}\n\nexport class CanvasColor {\n constructor(public r: number, public g: number, public b: number, public a: number = 255) {\n\n }\n}\n\n// --- Icon service ---\nexport interface IIconService {\n isDisabled: boolean;\n iconsLoaded: EventEmitter<any>;\n getIcon(icon: string, activeIcon: string, active: boolean): Promise<string>;\n}\n\nexport const ICON_SERVICE: InjectionToken<IIconService> = new InjectionToken<IIconService>(\"icon-service\");\n\n// --- Language service ---\nexport interface ITranslation {\n lang: string;\n translation: string;\n}\n\nexport interface ITranslations {\n [key: string]: string;\n}\n\nexport type GlobalTranslations = Record<string, ITranslations>;\n\nexport interface ILanguageSetting {\n unavailable?: string;\n [key: string]: string | boolean | number;\n}\n\nexport interface ILanguageSettings {\n languages: string[];\n devLanguages: string[];\n defaultLanguage: string;\n settings?: {[lang: string]: ILanguageSetting};\n}\n\nexport interface ILanguageService {\n currentLanguage: string;\n editLanguage: string;\n disableTranslations: boolean;\n defaultLanguage: string;\n dictionary: ITranslations;\n readonly languages: ReadonlyArray<string>;\n readonly httpClient: HttpClient;\n replaceLanguages(languages: string[]): void;\n addLanguages(languages: string[]): void;\n getTranslationSync(key: string, params?: any): string;\n getTranslation(key: string, params?: any): Promise<string>;\n getTranslations(...keys: string[]): Promise<ITranslations>;\n getTranslationFromObject(translations: ITranslations, params?: any, lang?: string): string;\n getTranslationFromArray(translations: ITranslation[], params?: any, lang?: string): string;\n}\n\nexport const LANGUAGE_SERVICE: InjectionToken<ILanguageService> = new InjectionToken<ILanguageService>(\"language-service\");\n\n// --- Auth Service ---\nexport interface IUserData {\n _id?: string;\n id?: string;\n email?: string;\n [key: string]: any;\n}\n\nexport interface IAuthService {\n isAuthenticated: boolean;\n userChanged: EventEmitter<any>;\n checkAuthenticated(): Promise<boolean>;\n}\n\nexport type RouteValidator = (auth: IAuthService, route?: IRoute, next?: ActivatedRouteSnapshot) => Promise<boolean>;\n\nexport interface IRouteData extends Data {\n returnState?: string[];\n guards?: Array<IResolveFactory | RouteValidator>;\n}\n\nexport interface IRoute extends Route {\n data?: IRouteData;\n}\n\nexport const AUTH_SERVICE: InjectionToken<IAuthService> = new InjectionToken<IAuthService>(\"auth-service\");\n\n// --- Acl Service ---\nexport interface IAclComponent {\n onUserInitialized(): void;\n onUserChanged(): void;\n}\n\nexport interface IRouteStateInfo {\n route: IRoute;\n guard: any;\n dirty: boolean;\n first: boolean;\n component?: any;\n}\n\n// --- State Service ---\nexport type NavigationUrlParam = any[] | string | UrlTree;\n\n// --- Storage Service ---\nexport enum StorageMode {\n Local,\n Session\n}\n\n// --- Toaster Service ---\nexport interface IToasterService {\n error(message: string, params?: any, title?: string): void;\n info(message: string, params?: any, title?: string): void;\n success(message: string, params?: any, title?: string): void;\n warning(message: string, params?: any, title?: string): void;\n}\n\nexport const TOASTER_SERVICE: InjectionToken<IToasterService> = new InjectionToken<IToasterService>(\"toaster-service\");\n\n// --- Promise Service ---\n\nexport interface IPromiseService {\n zone: NgZone;\n count: number;\n onChanged: EventEmitter<number>;\n create<T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;\n all(promises: Promise<any>[]): Promise<any>;\n resolve<T>(value: T | PromiseLike<T>): Promise<T>;\n reject<T>(value: T | PromiseLike<T>): Promise<T>;\n}\n\nexport const PROMISE_SERVICE = new InjectionToken<IPromiseService>(\"promise-service\");\n\n// --- Wasm service ---\nexport type TypedArray =\n | Int8Array\n | Int16Array\n | Int32Array\n | Uint8Array\n | Uint8ClampedArray\n | Uint16Array\n | Uint32Array\n | Float32Array\n | Float64Array;\n\nexport interface IWasmExports {\n HEAP8: Int8Array;\n HEAP16: Int16Array,\n HEAP32: Int32Array,\n HEAPU8: Uint8Array;\n HEAPU16: Uint16Array,\n HEAPU32: Uint32Array,\n HEAPF32: Float32Array,\n HEAPF64: Float64Array,\n memory: WebAssembly.Memory;\n [key: string]: any;\n}\n\nexport interface IWasi {\n instantiate(bytes: ArrayBuffer): Promise<IWasmExports>;\n}\n\nexport interface IWasm {\n writeArrayToMemory(array: TypedArray): Promise<number> | number;\n readArrayFromMemory<T = TypedArray>(pointer: number, array: T): Promise<T> | T;\n [key: string]: (...args: any[]) => any;\n}\n\nexport interface IWasmAsync {\n writeArrayToMemory(array: TypedArray): Promise<number>;\n readArrayFromMemory<T = TypedArray>(pointer: number, array: T): T;\n [key: string]: (...args: any[]) => Promise<any>;\n}\n\nexport const WASI_IMPLEMENTATION = new InjectionToken<Type<IWasi>>(\"wasi-implementation\");\n\n// --- Async method ---\nexport interface IAsyncMessage {\n message: string;\n context?: any;\n}\n\nexport type AsyncMethod = (context?: any) => Promise<IAsyncMessage>;\n\n// --- Dropdown ---\nexport type DropdownAttachTo = \"root\" | HTMLElement | ElementRef<HTMLElement> | null;\n\n// --- Unordered list ---\nexport interface UnorderedListTemplate {\n readonly type: string;\n readonly selector: string;\n readonly templateRef: TemplateRef<any>\n}\n\nexport interface UnorderedListTemplates {\n [type: string]: TemplateRef<any>;\n}\n\nexport type UnorderedListStyle = \"table\" | \"list\";\n\n// --- Ajax request ---\nexport interface IAjaxRequestDetails {\n request: XMLHttpRequest,\n method: string;\n url: string;\n}\n\nexport type AjaxRequestCallback = (details: IAjaxRequestDetails, params: any) => void;\n\n// --- Loader utils ---\nexport type ScriptType = \"text/javascript\" | \"module\";\n\nexport interface LoadableElement extends HTMLElement {\n readyState?: string;\n onreadystatechange?: Function;\n}\n\nexport type LoaderPromises<T extends LoadableElement> = Record<string, {\n elem: T;\n promise: Promise<T>;\n}>;\n\n// --- Observable utils ---\nexport interface ISearchObservable {\n search: string;\n getSearchResults(token: string): Promise<any[]>;\n}\n\n// --- Reflect utils ---\nexport function FactoryDependencies(...dependencies: Array<InjectionToken<any> | Provider>): MethodDecorator {\n return function (target: any, method: string): void {\n ReflectUtils.defineMetadata(\"factoryDependencies\", dependencies, target, method);\n };\n}\n\nexport function ObjectType(type: string): ClassDecorator {\n return function (target: any): void {\n ReflectUtils.defineMetadata(\"objectType\", type, target);\n };\n}\n\n// --- Timer utils ---\nexport interface ITimer {\n id?: any;\n func?: Function;\n time?: number;\n run?: () => void;\n set?: (func: Function, time: number) => void;\n clear?: () => void;\n}\n\n// --- ExtraItemProperties ---\nexport interface IExtraProperties {\n [prop: string]: any;\n}\n\n// --- Group by ---\nexport interface IGroupMap {\n [column: string]: any;\n}\n\n// --- Translate ---\nexport type TranslationQuery = string | ITranslations | ITranslation[];\n\n// --- Pagination ---\nexport interface IPageInfo {\n text: string;\n number: number;\n active: boolean;\n}\n\nexport interface IPaginationData {\n total: number;\n items: any[];\n meta?: any;\n}\n\nexport type PaginationDataLoader = (page: number, itemsPerPage: number) => Promise<IPaginationData>;\n\nexport class PaginationItemContext {\n\n constructor(public item: any, public parallelItem: any, public count: number, public index: number, public dataIndex: number) {\n }\n\n get first(): boolean {\n return this.index === 0;\n }\n\n get last(): boolean {\n return this.index === this.count - 1;\n }\n\n get even(): boolean {\n return this.index % 2 === 0;\n }\n\n get odd(): boolean {\n return !this.even;\n }\n\n // Support for old dynamic table implementation\n get row(): any {\n console.log(\"DynamicTable row is deprecated use item instead\");\n return this.item;\n }\n\n // Support for old dynamic table implementation\n get parallelRow(): any {\n console.log(\"DynamicTable parallelRow is deprecated use parallelItem instead\");\n return this.parallelItem;\n }\n\n filter(filterRx: RegExp): boolean {\n const keys = Object.keys(this.item);\n for (const key of keys) {\n const value = this.item[key];\n if (ObjectUtils.isNullOrUndefined(value) || ObjectUtils.isObject(value)) continue;\n const testValue = ObjectUtils.isString(value) ? value : value.toString();\n if (testValue.match(filterRx)) return true;\n }\n return false;\n }\n}\n\n// --- Http service ---\nexport interface IHttpHeaders {\n [header: string]: string | string[];\n}\n\nexport interface IHttpParams {\n [key: string]: any;\n}\n\nexport interface IRequestOptions {\n method?: string;\n body?: any;\n headers?: IHttpHeaders | HttpHeaders;\n originalHeaders?: IHttpHeaders;\n params?: IHttpParams;\n observe?: \"body\" | \"response\";\n reportProgress?: boolean;\n responseType?: \"arraybuffer\" | \"blob\" | \"json\" | \"text\";\n withCredentials?: boolean;\n timeout?: number;\n}\n\nexport interface IIssueContext {\n url: string;\n}\n\nexport interface IProgress {\n percentage?: number;\n loaded?: number;\n total?: number;\n}\n\nexport type ProgressListener = (progress: IProgress) => void;\n\nexport type PromiseExecutor = (resolve: (value?: any | PromiseLike<any>) => void, reject: (reason?: any) => void) => void;\n\nexport class HttpPromise extends Promise<any> {\n\n protected rejectHandler: (reason?: HttpErrorResponse) => void;\n protected hasRejectHandler: boolean;\n protected attachCount: number;\n protected runCount: number;\n\n constructor(rejectHandler: (reason?: HttpErrorResponse) => void, executor: PromiseExecutor) {\n super(executor);\n this.rejectHandler = rejectHandler;\n this.attachCount = 0;\n this.runCount = 0;\n }\n\n then<TResult1, TResult2>(onFulfilled?: ((value: any) => (PromiseLike<TResult1> | TResult1)) | null | undefined,\n onRejected?: ((reason: HttpErrorResponse) => (PromiseLike<TResult2> | TResult2)) | null | undefined): Promise<TResult1 | TResult2> {\n this.attachCount++;\n return super.then(value => {\n this.runCount++;\n return onFulfilled ? onFulfilled(value) : null;\n }, (reason: HttpErrorResponse) => {\n const result: any = onRejected ? onRejected(reason) : null;\n this.hasRejectHandler = this.hasRejectHandler || (onRejected && result !== false);\n this.runCount++;\n this.rejectHandler(this.runCount == this.attachCount && !this.hasRejectHandler ? reason : null);\n return result;\n });\n }\n\n catch<TResult = never>(onRejected?: ((reason: HttpErrorResponse) => (PromiseLike<TResult> | TResult)) | null | undefined): Promise<any | TResult> {\n return this.then(null, onRejected);\n }\n}\n\nexport interface IHttpService {\n language: ILanguageService;\n url(url: string): string;\n makeListParams(page: number, itemsPerPage: number, orderBy?: string, orderDescending?: boolean, filter?: string): IHttpParams;\n}\n\nexport const EXPRESS_REQUEST = new InjectionToken<Request>(\"express-request\");\n\n// --- Api service ---\n\nexport interface IBaseHttpClient extends HttpClient {\n requestHeaders: IHttpHeaders;\n requestParams: IHttpParams;\n}\n\nexport interface IApiService extends IHttpService {\n cache: any;\n client: HttpClient;\n get(url: string, options?: IRequestOptions): Promise<any>;\n delete(url: string, options?: IRequestOptions): Promise<any>;\n post(url: string, body?: any, options?: IRequestOptions): Promise<any>;\n put(url: string, body?: any, options?: IRequestOptions): Promise<any>;\n patch(url: string, body?: any, options?: IRequestOptions): Promise<any>;\n upload(url: string, body: any, listener?: ProgressListener, options?: IRequestOptions): Promise<any>;\n list(url: string, params: IHttpParams): Promise<IPaginationData>;\n}\n\nexport const API_SERVICE: InjectionToken<IApiService> = new InjectionToken<IApiService>(\"api-service\");\n\n// --- OpenApi service ---\nexport interface IOpenApiSchemaProperty {\n id: string;\n type?: string;\n format?: string;\n column?: boolean;\n additionalProperties?: any;\n $ref?: string;\n allOf?: ReadonlyArray<{$ref?: string}>\n items?: IOpenApiSchemaProperty;\n enum?: string[];\n [key: string]: any;\n}\n\nexport interface IOpenApiSchema {\n properties: {\n [name: string]: IOpenApiSchemaProperty;\n };\n required: string[];\n}\n\nexport interface IOpenApiSchemas {\n [name: string]: IOpenApiSchema;\n}\n\n// --- Dynamic table ---\nexport interface ITableOrders {\n [column: string]: string;\n}\n\nexport interface ITableColumn {\n title?: string;\n sort?: string;\n filter?: boolean;\n [key: string]: any;\n}\n\nexport interface ITableColumns {\n [column: string]: ITableColumn;\n}\n\nexport type TableColumns = ITableOrders | ITableColumns | string[];\n\nexport interface ITableTemplate {\n column: string | string[];\n pure: boolean;\n ref: TemplateRef<any>;\n}\n\nexport interface ITableTemplates {\n [column: string]: ITableTemplate;\n}\n\nexport interface ITableDataQuery {\n [column: string]: string | string[] | boolean;\n}\n\nexport type TableDataLoader = (\n page: number, rowsPerPage: number, orderBy: string, orderDescending: boolean,\n filter: string, query: ITableDataQuery\n) => Promise<IPaginationData>;\n\n// --- Resource if ---\nexport class ResourceIfContext {\n resource: string;\n url: string;\n}\n\n// --- ConfigService ---\nexport const APP_BASE_URL = new InjectionToken<string>(\"app-base-url\");\n\nexport class IConfiguration {\n cdnUrl?: string;\n baseUrl?: string;\n baseDomain?: string;\n translationUrl?: string;\n [key: string]: any;\n}\n\nexport interface IConfigService {\n readonly http: IBaseHttpClient;\n readonly config: IConfiguration;\n readonly injector: Injector;\n readonly load: () => Promise<IConfiguration>;\n readonly rootElement: any;\n cloneRootElem(): any;\n prepareUrl(url: string, ending: string): string;\n getConfigValue(key: string): any;\n getQueryParameter(name: string, url?: string): string;\n}\n\nexport const CONFIG_SERVICE = new InjectionToken<IConfigService>(\"config-service\");\n\nexport const BASE_CONFIG = new InjectionToken<IConfiguration>(\"base-config\");\n\nexport const SCRIPT_PARAMS = new InjectionToken<any>(\"script-params\");\n\nexport const ROOT_ELEMENT = new InjectionToken<HTMLElement>(\"app-root-element\");\n\nexport const RESIZE_DELAY = new InjectionToken<number>(\"resize-event-delay\");\n\nexport type ResizeEventStrategy = \"scroll\" | \"object\" | \"observer\";\n\nexport const RESIZE_STRATEGY = new InjectionToken<ResizeEventStrategy>(\"resize-event-strategy\");\n\n// --- Error handler service ---\nexport type ErrorHandlerCallback = (error: string) => any;\n\nexport const ERROR_HANDLER = new InjectionToken<ErrorHandlerCallback>(\"error-handler-callback\");\n\n// --- Global templates service\n\nexport type GlobalComponentModifier = (component: any) => any;\n\n// --- Module ---\nexport type AppInitializerFunc = () => Promise<void> | void;\n\nexport interface IModuleConfig {\n apiService?: Type<IApiService>\n authService?: Type<IAuthService>;\n iconService?: Type<IIconService>;\n languageService?: Type<ILanguageService>;\n toasterService?: Type<IToasterService>;\n promiseService?: Type<IPromiseService>;\n configService?: Type<IConfigService>;\n wasiImplementation?: Type<IWasi>;\n initializeApp?: (injector: Injector) => AppInitializerFunc;\n baseUrl?: (injector: Injector) => string;\n resizeDelay?: number;\n resizeStrategy?: ResizeEventStrategy;\n}\n\n// --- Valued promise ---\nexport class ValuedPromise<T> extends Promise<T> {\n value: T;\n}\n","import {AjaxRequestCallback, IAjaxRequestDetails} from \"../common-types\";\n\nexport class AjaxRequestHandler {\n\n private static isOverridden: boolean = false;\n\n public params: any;\n\n constructor(private pattern: RegExp, private callback: AjaxRequestCallback) {\n this.params = {};\n if (typeof XMLHttpRequest !== \"undefined\" && !AjaxRequestHandler.isOverridden) {\n AjaxRequestHandler.isOverridden = true;\n const originalOpen = XMLHttpRequest.prototype.open;\n XMLHttpRequest.prototype.open = function (method: string, url?: string, async?: boolean, user?: string, password?: string): void {\n originalOpen.apply(this, arguments);\n window.dispatchEvent(new CustomEvent(\"ajaxRequest\", {\n detail: {\n request: this,\n method: method,\n url: url\n }\n }))\n };\n }\n }\n\n listen(): AjaxRequestHandler {\n if (typeof window === \"undefined\") return this;\n window.addEventListener(\"ajaxRequest\", this.listener);\n return this;\n }\n\n forget(): AjaxRequestHandler {\n if (typeof window === \"undefined\") return;\n window.removeEventListener(\"ajaxRequest\", this.listener);\n return this;\n }\n\n private listener = (event: CustomEvent): void => {\n const details: IAjaxRequestDetails = event.detail;\n if (this.pattern.test(details.url)) this.callback(details, this.params);\n };\n}\n","import {ObjectUtils} from \"./object.utils\";\n\nexport class ArrayUtils {\n\n static has(arr: any[], ...items: any[]): boolean {\n if (!ObjectUtils.isArray(arr) || !ObjectUtils.isArray(items)) return false;\n for (let i = 0; i < items.length; i++) {\n if (arr.indexOf(items[i]) >= 0) return true;\n }\n return false;\n }\n\n static match(arr: any[], str: string): boolean {\n if (!ObjectUtils.isArray(arr) || !ObjectUtils.isString(str)) return false;\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] instanceof RegExp) {\n const regex = <RegExp>arr[i];\n if (regex.test(str)) return true;\n }\n }\n return false;\n }\n\n static any<T>(arr: T[], cb: (item: T) => boolean): boolean {\n if (!ObjectUtils.isArray(arr) || !ObjectUtils.isFunction(cb)) return false;\n for (let i = 0; i < arr.length; i++) {\n if (cb(arr[i])) return true;\n }\n return false;\n }\n\n static move<T>(arr: T[], oldIndex: number, newIndex: number): T[] {\n if (!ObjectUtils.isArray(arr)) return [];\n const length = arr.length;\n while (oldIndex < 0) {\n oldIndex += length;\n }\n while (newIndex < 0) {\n newIndex += length;\n }\n if (newIndex >= length) {\n let k = newIndex - length + 1;\n while (k--) {\n arr.push(undefined);\n }\n }\n arr.splice(newIndex, 0, arr.splice(oldIndex, 1)[0]);\n return arr;\n }\n\n static reversed(arr: any[]): any[] {\n const result = [];\n if (!ObjectUtils.isArray(arr)) return result;\n for (let i = arr.length - 1; i >= 0; i--) {\n result.push(arr[i]);\n }\n return result;\n }\n\n static min<T>(arr: T[], cb: (item: T, index?: number) => number): T {\n if (!ObjectUtils.isArray(arr)) return null;\n let min = Number.MAX_SAFE_INTEGER;\n let result = null;\n for (let i = 0; i < arr.length; i++) {\n const current = cb(arr[i], i);\n if (current < min || result === null) {\n min = current;\n result = arr[i];\n }\n }\n return result;\n }\n\n static max<T>(arr: T[], cb: (item: T, index?: number) => number): T {\n if (!ObjectUtils.isArray(arr)) return null;\n let max = Number.MIN_SAFE_INTEGER;\n let result = null;\n for (let i = 0; i < arr.length; i++) {\n const current = cb(arr[i], i);\n if (current > max || result === null) {\n max = current;\n result = arr[i];\n }\n }\n return result;\n }\n\n static chunk<T>(arr: T[], size: number): Array<T[]> {\n if (!ObjectUtils.isArray(arr)) return [];\n size = Math.max(1, size);\n const result = []\n for (let i = 0; i < arr.length; i += size) {\n result.push(arr.slice(i, i + size))\n }\n return result\n }\n\n static unique<T>(arr: T[]): T[] {\n if (!ObjectUtils.isArray(arr)) return [];\n return arr.filter((value, index, self) => {\n return self.indexOf(value) === index;\n });\n }\n}\n","import {Inject, Injectable, PLATFORM_ID} from \"@angular/core\";\nimport {isPlatformBrowser, isPlatformServer} from \"@angular/common\";\nimport {DeviceDetectorService, DeviceInfo} from \"ngx-device-detector\";\n\n/**\n * Use this service to determine which is the current environment\n */\n@Injectable()\nexport class UniversalService {\n\n get isBrowser(): boolean {\n return isPlatformBrowser(this.platformId);\n }\n\n get isServer(): boolean {\n return isPlatformServer(this.platformId);\n }\n\n get deviceInfo(): DeviceInfo {\n return this.isServer\n ? {\n userAgent: \"angular-universal\",\n os: \"unknown\",\n browser: \"node\",\n device: \"node\",\n os_version: \"unknown\",\n browser_version: \"unknown\",\n deviceType: \"unknown\",\n orientation: \"landscape\"\n } as any\n : this.dds.getDeviceInfo();\n }\n\n get browserName(): string {\n return (this.dds.browser || \"\").toLowerCase();\n }\n\n get browserVersion(): string {\n return this.dds.browser_version;\n }\n\n get isExplorer(): boolean {\n return this.checkBrowser(\"ie\");\n }\n\n get isEdge(): boolean {\n return this.checkBrowser(\"edge\");\n }\n\n get isChrome(): boolean {\n return this.checkBrowser(\"chrome\");\n }\n\n get isFirefox(): boolean {\n return this.checkBrowser(\"firefox\");\n }\n\n get isSafari(): boolean {\n return this.checkBrowser(\"safari\");\n }\n\n get isTablet(): boolean {\n return this.dds.isTablet();\n }\n\n get isMobile(): boolean {\n return this.dds.isMobile();\n }\n\n get isDesktop(): boolean {\n return this.dds.isDesktop();\n }\n\n get isCrawler(): boolean {\n return this.crawler;\n }\n\n private readonly crawler: boolean;\n\n constructor(@Inject(PLATFORM_ID) readonly platformId: string, readonly dds: DeviceDetectorService) {\n const info = this.dds.getDeviceInfo();\n this.crawler = /(bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|lighthouse|angular-universal|PTST|PostmanRuntime)/gi.test(info.userAgent);\n }\n\n protected checkBrowser(name: string): boolean {\n return this.browserName.includes(name) || false;\n }\n}\n","import {Injectable, Injector, NgZone, Optional} from \"@angular/core\";\r\nimport {\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n Data,\r\n NavigationEnd,\r\n NavigationExtras,\r\n OutletContext,\r\n Params,\r\n Resolve,\r\n Route,\r\n Router,\r\n Scroll,\r\n UrlSegment,\r\n UrlTree\r\n} from \"@angular/router\";\r\nimport {BehaviorSubject, firstValueFrom, Observable, Observer, Subscription} from \"rxjs\";\r\nimport {debounceTime, distinctUntilChanged, filter, map, skipWhile,} from \"rxjs/operators\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {IRoute, NavigationUrlParam} from \"../common-types\";\r\nimport {UniversalService} from \"./universal.service\";\r\n\r\nexport const emptySnapshot = new ActivatedRouteSnapshot();\r\nexport const emptyData: Data = {id: \"\"};\r\nexport const emptyParams: Params = {};\r\nexport const emptySegments: UrlSegment[] = [];\r\nexport const emptyComponents: any[] = [];\r\n\r\nexport interface IStateInfo {\r\n url: string;\r\n segments: UrlSegment[];\r\n components: any[];\r\n}\r\n\r\n@Injectable()\r\nexport class StateService {\r\n\r\n readonly globalExtras: NavigationExtras;\r\n\r\n protected $snapshot: BehaviorSubject<ActivatedRouteSnapshot>;\r\n protected $component: BehaviorSubject<any>;\r\n protected stateInfo: IStateInfo;\r\n\r\n static toPath(route: Route, params: any): string {\r\n let path = route.path || \"\";\r\n ObjectUtils.iterate(params, (value: any, key: string) => {\r\n path = path.replace(`:${key}`, `${value}`);\r\n });\r\n return path;\r\n }\r\n\r\n get snapshot(): ActivatedRouteSnapshot {\r\n return this.$snapshot.value;\r\n }\r\n\r\n get component(): any {\r\n return this.$component.value;\r\n }\r\n\r\n get route(): IRoute {\r\n return this.snapshot.routeConfig;\r\n }\r\n\r\n get data(): Data {\r\n return this.snapshot.data || emptyData;\r\n }\r\n\r\n get params(): Params {\r\n return this.snapshot.params || emptyParams;\r\n }\r\n\r\n get queryParams(): Params {\r\n return this.snapshot.queryParams || emptyParams;\r\n }\r\n\r\n get url(): string {\r\n return this.stateInfo.url || \"\";\r\n }\r\n\r\n get urlSegments(): UrlSegment[] {\r\n return this.stateInfo.segments || emptySegments;\r\n }\r\n\r\n get components(): any[] {\r\n return this.stateInfo.components || emptyComponents;\r\n }\r\n\r\n get routerConfig(): IRoute[] {\r\n return this.router.config;\r\n }\r\n\r\n get $observable(): Observable<ActivatedRouteSnapshot> {\r\n return this.$snapshot.pipe(\r\n skipWhile(snapshot => snapshot === emptySnapshot),\r\n debounceTime(25)\r\n )\r\n }\r\n\r\n constructor(readonly injector: Injector,\r\n readonly zone: NgZone,\r\n readonly universal: UniversalService,\r\n @Optional() readonly router: Router = null,\r\n @Optional() readonly contexts: ChildrenOutletContexts = null) {\r\n this.globalExtras = {\r\n queryParamsHandling: \"merge\"\r\n };\r\n this.$snapshot = new BehaviorSubject(emptySnapshot);\r\n this.$component = new BehaviorSubject(null);\r\n this.stateInfo = {\r\n url: \"\",\r\n segments: [],\r\n components: []\r\n };\r\n this.router?.events\r\n .pipe(\r\n distinctUntilChanged(),\r\n map(event => {\r\n if (event instanceof Scroll) {\r\n return event.routerEvent;\r\n }\r\n return event;\r\n }),\r\n filter(e => e instanceof NavigationEnd),\r\n )\r\n .subscribe(() => {\r\n const routerStateSnapshot = this.router.routerState.snapshot;\r\n let snapshot = routerStateSnapshot.root;\r\n let context: OutletContext = this.contexts?.getContext(\"primary\");\r\n let segments = snapshot.url;\r\n const components: any[] = [];\r\n const snapshots: ActivatedRouteSnapshot[] = [];\r\n while (snapshot) {\r\n snapshots.push(snapshot);\r\n segments = segments.concat(snapshot.url);\r\n if (context) {\r\n if (context.outlet && context.outlet.component)\r\n components.push(context.outlet.component);\r\n context = context.children.getContext(\"primary\");\r\n }\r\n snapshot = snapshot.firstChild;\r\n }\r\n this.stateInfo = {\r\n url: routerStateSnapshot.url,\r\n segments: segments,\r\n components: components\r\n };\r\n this.$snapshot.next(snapshots[snapshots.length - 1]);\r\n this.$component.next(components[components.length - 1]);\r\n });\r\n }\r\n\r\n async reload(): Promise<any> {\r\n const routerStateSnapshot = this.router.routerState.snapshot;\r\n const resolvers = this.route.resolve || {};\r\n const keys = Object.keys(resolvers);\r\n for (const key of keys) {\r\n const resolver = this.injector.get(resolvers[key]) as Resolve<any>;\r\n let resolved = resolver.resolve(this.snapshot, routerStateSnapshot);\r\n if (resolved instanceof Observable) {\r\n resolved = firstValueFrom(resolved);\r\n }\r\n if (resolved instanceof Promise) {\r\n resolved = await resolved;\r\n }\r\n this.data[key] = resolved;\r\n }\r\n }\r\n\r\n async navigateByUrl(url: string | UrlTree, navigationExtras: NavigationExtras = {}): Promise<boolean> {\r\n return this.navigate(url, navigationExtras);\r\n }\r\n\r\n async navigate(url: NavigationUrlParam, navigationExtras: NavigationExtras = {}): Promise<boolean> {\r\n if (!this.router) return false;\r\n const [tree, extras] = this.createUrlTree(url, navigationExtras);\r\n return this.zone.run(() => {\r\n return this.router.navigateByUrl(tree, extras);\r\n });\r\n }\r\n\r\n async open(url: NavigationUrlParam, target = \"_blank\", navigationExtras: NavigationExtras = {}): Promise<boolean> {\r\n if (!this.router) return false;\r\n const [tree, extras] = this.createUrlTree(url, navigationExtras);\r\n return this.zone.run(() => {\r\n return this.openInNewWindow(tree, target) || this.router.navigateByUrl(tree, extras);\r\n });\r\n }\r\n\r\n subscribeImmediately(\r\n next?: (value: ActivatedRouteSnapshot) => void,\r\n error?: (error: any) => void\r\n ): Subscription {\r\n return this.subscribe({\r\n next, error\r\n });\r\n }\r\n\r\n subscribe(osOrNext?: Partial<Observer<ActivatedRouteSnapshot>> | ((value: ActivatedRouteSnapshot) => void)): Subscription {\r\n return this.$observable.subscribe(osOrNext);\r\n }\r\n\r\n protected openInNewWindow(tree: UrlTree, target: string): boolean {\r\n if (!this.universal.isBrowser) return false;\r\n const baseUrl = window.location.href.replace(this.router.url, \"\");\r\n try {\r\n const serialized = this.router.serializeUrl(tree);\r\n const separator = serialized.startsWith(\"/\") ? \"\" : \"/\";\r\n window.open(baseUrl + separator + serialized, target);\r\n return true;\r\n } catch (e) {\r\n console.log(`Can't open new window: ${e}`);\r\n return false;\r\n }\r\n }\r\n\r\n protected createUrlTree(url: NavigationUrlParam, extras?: NavigationExtras): [UrlTree, NavigationExtras] {\r\n if (!this.router) return null;\r\n extras = Object.assign(extras, this.globalExtras, extras || {});\r\n if (ObjectUtils.isArray(url)) {\r\n return [this.router.createUrlTree(url, extras), extras]\r\n }\r\n if (ObjectUtils.isString(url)) {\r\n return [this.router.parseUrl(url), extras];\r\n }\r\n return [url, extras];\r\n }\r\n}\r\n","import {Inject, Injectable, Injector} from \"@angular/core\";\nimport {ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlSegment} from \"@angular/router\";\nimport {AUTH_SERVICE, FactoryDependencies, IAuthService, IRoute, RouteValidator} from \"../common-types\";\nimport {ReflectUtils} from \"./reflect.utils\";\nimport {ObjectUtils} from \"./object.utils\";\nimport {StateService} from \"../services/state.service\";\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\n static guardAuthenticated(auth: IAuthService): Promise<boolean> {\n return Promise.resolve(auth.isAuthenticated);\n }\n\n static guardNotAuthenticated(auth: IAuthService): Promise<boolean> {\n return Promise.resolve(!auth.isAuthenticated);\n }\n\n static guardNothing(): Promise<boolean> {\n return Promise.resolve(true);\n }\n\n @FactoryDependencies(AUTH_SERVICE)\n static guardAuthField(auth: IAuthService, expression: string = `auth.isAuthenticated`): RouteValidator {\n // @dynamic\n const lambda = (): Promise<boolean> => {\n return Promise.resolve(ObjectUtils.evaluate(expression, {auth}));\n };\n return lambda;\n }\n\n @FactoryDependencies(StateService)\n static guardStateField(state: StateService, expression: string = `state.data`): RouteValidator {\n // @dynamic\n const lambda = (): Promise<boolean> => {\n return Promise.resolve(ObjectUtils.evaluate(expression, {state}));\n };\n return lambda;\n }\n\n @FactoryDependencies(AUTH_SERVICE, StateService)\n static guardAuthStateField(auth: IAuthService, state: StateService, expression: string = `auth.isAuthenticated`): RouteValidator {\n // @dynamic\n const lambda = (): Promise<boolean> => {\n return Promise.resolve(ObjectUtils.evaluate(expression, {auth, state}));\n };\n return lambda;\n }\n\n static wildRouteMatch(segments: UrlSegment[]) {\n return {consumed: segments};\n }\n\n static noRouteMatch() {\n return null;\n }\n\n constructor(@Inject(Injector) readonly injector: Injector,\n @Inject(StateService) readonly state: StateService,\n @Inject(AUTH_SERVICE) readonly auth: IAuthService) {\n }\n\n checkRouteMenu(route: IRoute): Promise<boolean> {\n if (!route.data || !route.data.name) return Promise.resolve(false);\n return this.checkRoute(route);\n }\n\n checkRoute(route: IRoute, next?: ActivatedRouteSnapshot): Promise<boolean> {\n const routeData = route.data || {};\n if (!routeData.guards)\n return Promise.resolve(!route.canActivate || this.auth.isAuthenticated);\n return new Promise<boolean>(resolve => {\n const guards = routeData.guards.map(g => {\n const guard = ReflectUtils.resolve<RouteValidator>(g, this.injector);\n return guard(this.auth, route, next);\n });\n Promise.all(guards).then(results => {\n resolve(results.indexOf(false) < 0);\n });\n });\n }\n\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\n const route = <IRoute>next.routeConfig;\n return new Promise<boolean>(resolve => {\n this.auth.checkAuthenticated().then(() => {\n this.checkRoute(route, next).then(hasRights => {\n resolve(hasRights);\n if (!hasRights) {\n this.getReturnState(route).then(returnState => {\n if (!returnState) return;\n this.state.navigate(returnState, {queryParams: next.queryParams});\n });\n }\n });\n });\n });\n }\n\n getConfig(route: IRoute, config: IRoute[], path: string[]): IRoute[] {\n if (!config) return null;\n const match = config.findIndex(t => t == route);\n if (match >= 0) return config;\n for (const subConfig of config) {\n if (subConfig.path)\n path.push(subConfig.path);\n const loadedChildren = (subConfig[\"_loadedConfig\"] || {routes: null}).routes || subConfig[\"_loadedRoutes\"];\n const match = this.getConfig(route, subConfig.children || loadedChildren, path);\n if (!match) {\n if (subConfig.path)\n path.length -= 1;\n continue;\n }\n return match;\n }\n return null;\n }\n\n getReturnState(route: IRoute): Promise<string[]> {\n if (!route) return Promise.resolve(null);\n if (ObjectUtils.isObject(route.data) && ObjectUtils.isArray(route.data.returnState)) {\n return Promise.resolve(route.data.returnState);\n }\n const path = [];\n const config = this.getConfig(route, this.state.routerConfig, path);\n return new Promise<string[]>(resolve => {\n this.getReturnStateRecursive(config).then(rs => {\n if (!ObjectUtils.isArray(rs)) {\n resolve(rs);\n return;\n }\n resolve(path.concat(rs));\n });\n });\n }\n\n private getReturnStateRecursive(config: IRoute[], c: number = 0): Promise<string[]> {\n if (!config || c >= config.length) return Promise.resolve(null);\n return new Promise<string[]>(resolve => {\n const route = config[c];\n const check = !route.component ? Promise.resolve(false) : this.checkRoute(route);\n check.then(res => {\n if (res) {\n resolve([route.path]);\n return;\n }\n this.getReturnStateRecursive(config, c + 1).then(resolve);\n });\n });\n }\n}\n","import {InjectionToken, Injector, Type} from \"@angular/core\";\nimport {CachedFactory, CachedProvider} from \"../common-types\";\n\nconst CACHED_TOKEN = new InjectionToken(\"cached-factory-token\");\n\nexport function cachedFactory<T>(providers: CachedProvider<T>[]): CachedFactory<T> {\n let cached: ReadonlyArray<T> = null;\n return (injector: Injector) => {\n if (cached !== null) {\n return cached;\n }\n const subInjector = Injector.create({\n providers: providers.map(p => {\n if ((\"useFactory\" in p && \"deps\" in p) || \"useValue\" in p) {\n return {\n provide: CACHED_TOKEN,\n multi: true,\n ...p\n } as any;\n }\n return {\n provide: CACHED_TOKEN,\n multi: true,\n useClass: p as Type<T>\n };\n }),\n parent: injector\n });\n cached = subInjector.get(CACHED_TOKEN) as ReadonlyArray<T>;\n return cached;\n };\n}\n","import {isObservable} from \"rxjs\";\n\nexport type JsonReplacer = (key: string, value: any) => any;\n\nconst iso8061 = /^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(?:.\\d+)?(?:Z|[+-]\\d\\d:\\d\\d)$/;\n\nfunction serializer(replacer: JsonReplacer, cycleReplacer: JsonReplacer): JsonReplacer {\n const stack: any[] = [], keys = []\n\n if (cycleReplacer == null) cycleReplacer = function(key, value) {\n if (stack[0] === value) return \"[Circular ~]\"\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\"\n }\n\n return (key, value) => {\n if (isObservable(value)) return \"[Observable ~]\";\n if (stack.length > 0) {\n const thisPos = stack.indexOf(this)\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)\n if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)\n }\n else stack.push(value)\n\n if (typeof value === \"string\" && value.match(iso8061)) {\n value = new Date(value);\n }\n\n return replacer == null ? value : replacer.call(this, key, value)\n }\n}\n\nexport function stringify(value: any, replacer: JsonReplacer = null, spaces: number = 2, cycleReplacer: JsonReplacer = null) {\n return JSON.stringify(value, serializer(replacer, cycleReplacer), spaces)\n}\n","import {stringify} from \"./json.utils\";\n\nconst S = [\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14,\n 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21,\n 6, 10, 15, 21,\n];\n\nconst K = [\n 3614090360, 3905402710, 606105819, 3250441966, 4118548399, 1200080426, 2821735955,\n 4249261313, 1770035416, 2336552879, 4294925233, 2304563134, 1804603682, 4254626195,\n 2792965006, 1236535329, 4129170786, 3225465664, 643717713, 3921069994, 3593408605,\n 38016083, 3634488961, 3889429448, 568446438, 3275163606, 4107603335, 1163531501,\n 2850285829, 4243563512, 1735328473, 2368359562, 4294588738, 2272392833, 1839030562,\n 4259657740, 2763975236, 1272893353, 4139469664, 3200236656, 681279174, 3936430074,\n 3572445317, 76029189, 3654602809, 3873151461, 530742520, 3299628645, 4096336452,\n 1126891415, 2878612391, 4237533241, 1700485571, 2399980690, 4293915773, 2240044497,\n 1873313359, 4264355552, 2734768916, 1309151649, 4149444226, 3174756917, 718787259,\n 3951481745,\n];\n\nfunction leftRotate(x, c) {\n return (x << c) | (x >>> (32 - c));\n}\n\nexport function md5(input: string | Record<string, any>): string {\n // UTF-8 encode the string\n const encoder = new TextEncoder();\n const data = encoder.encode(stringify(input ?? \"\") || \"\");\n\n const originalBitLength = data.length * 8;\n\n // --- Padding: append 0x80 then 0x00 until len ≡ 56 (mod 64)\n let msgLen = data.length + 1;\n while (msgLen % 64 !== 56) msgLen++;\n\n const buffer = new Uint8Array(msgLen + 8); // +8 bytes for length\n buffer.set(data);\n buffer[data.length] = 0x80;\n\n // Append original length in bits, little-endian 64-bit\n let bitLen = originalBitLength;\n for (let i = 0; i < 8; i++) {\n buffer[msgLen + i] = bitLen & 0xff;\n bitLen = Math.floor(bitLen / 256);\n }\n\n // Initial state\n let a0 = 0x67452301;\n let b0 = 0xefcdab89;\n let c0 = 0x98badcfe;\n let d0 = 0x10325476;\n\n const view = new DataView(buffer.buffer);\n\n // Process 512-bit chunks\n for (let offset = 0; offset < buffer.length; offset += 64) {\n const M = new Uint32Array(16);\n for (let i = 0; i < 16; i++) {\n M[i] = view.getUint32(offset + i * 4, true); // little-endian\n }\n\n let A = a0;\n let B = b0;\n let C = c0;\n let D = d0;\n\n for (let i = 0; i < 64; i++) {\n let F, g;\n\n if (i < 16) {\n F = (B & C) | (~B & D);\n g = i;\n } else if (i < 32) {\n F = (D & B) | (~D & C);\n g = (5 * i + 1) % 16;\n } else if (i < 48) {\n F = B ^ C ^ D;\n g = (3 * i + 5) % 16;\n } else {\n F = C ^ (B | ~D);\n g = (7 * i) % 16;\n }\n\n F = (F + A + K[i] + M[g]) >>> 0;\n A = D;\n D = C;\n C = B;\n B = (B + leftRotate(F, S[i])) >>> 0;\n }\n\n a0 = (a0 + A) >>> 0;\n b0 = (b0 + B) >>> 0;\n c0 = (c0 + C) >>> 0;\n d0 = (d0 + D) >>> 0;\n }\n\n // Output as hex (little-endian)\n const words = [a0, b0, c0, d0];\n let out = \"\";\n for (const w of words) {\n for (let i = 0; i < 4; i++) {\n const byte = (w >>> (8 * i)) & 0xff;\n out += byte.toString(16).padStart(2, \"0\");\n }\n }\n return out;\n}\n","import {CanvasColor} from \"../common-types\";\nimport {ObjectUtils} from \"./object.utils\";\n\ndeclare const netscape: any;\n\nclass BlurStack {\n r: number = 0;\n g: number = 0;\n b: number = 0;\n a: number = 0;\n next: BlurStack = null;\n}\n\nconst mul_table = [\n 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512,\n 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512,\n 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456,\n 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512,\n 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328,\n 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456,\n 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335,\n 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512,\n 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405,\n 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328,\n 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271,\n 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456,\n 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388,\n 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335,\n 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292,\n 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\n\nconst shg_table = [\n 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17,\n 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19,\n 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n\nexport class CanvasUtils {\n\n static manipulatePixels(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, colorTransformer: (color: CanvasColor, greyscale?: number) => CanvasColor): void {\n const imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const pixels = imgData.data;\n for (let i = 0, n = pixels.length; i < n; i += 4) {\n const clr = new CanvasColor(pixels[i], pixels[i + 1], pixels[i + 2], pixels[i + 3]);\n const greyscale = clr.r * .3 + clr.g * .59 + clr.b * .11;\n const color = colorTransformer(clr, greyscale);\n pixels[i] = color.r;\n pixels[i + 1] = color.g;\n pixels[i + 2] = color.b;\n pixels[i + 3] = color.a;\n }\n ctx.putImageData(imgData, 0, 0);\n }\n\n static thresholding(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, threshold: number = 50, colorTransformer: (color: CanvasColor, limit: boolean, greyscale?: number) => CanvasColor): void {\n const min = new CanvasColor(0, 0, 0, 255);\n const max = new CanvasColor(0, 0, 0, 0);\n colorTransformer = ObjectUtils.isFunction(colorTransformer) ? colorTransformer : ((color: CanvasColor, limit: boolean): CanvasColor => {\n return limit ? max : min;\n });\n CanvasUtils.manipulatePixels(canvas, ctx, (color, greyscale) => {\n return colorTransformer(color, greyscale > threshold, greyscale);\n });\n }\n\n static stackBlur(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, radius: number = 10): void {\n if (isNaN(radius) || radius < 1) return;\n radius |= 0;\n\n const top_x = 0;\n const top_y = 0;\n const width = canvas.width;\n const height = canvas.height;\n\n let imageData = null;\n\n try {\n try {\n imageData = ctx.getImageData(top_x, top_y, width, height);\n } catch (e) {\n\n // NOTE: this part is supposedly only needed if you want to work with local files\n // so it might be okay to remove the whole try/catch block and just use\n // imageData = ctx.getImageData( top_x, top_y, width, height );\n try {\n netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\");\n imageData = ctx.getImageData(top_x, top_y, width, height);\n } catch (e) {\n alert(\"Cannot access local image\");\n throw new Error(\"unable to access local image data: \" + e);\n }\n }\n } catch (e) {\n alert(\"Cannot access image\");\n throw new Error(\"unable to access image data: \" + e);\n }\n\n const pixels = imageData.data;\n\n let x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum,\n r_out_sum, g_out_sum, b_out_sum, a_out_sum,\n r_in_sum, g_in_sum, b_in_sum, a_in_sum,\n pr, pg, pb, pa, rbs;\n\n const div = radius + radius + 1;\n const widthMinus1 = width - 1;\n const heightMinus1 = height - 1;\n const radiusPlus1 = radius + 1;\n const sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n const stackStart = new BlurStack();\n let stackEnd = null;\n let stack = stackStart;\n\n for (i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n if (i == radiusPlus1) {\n stackEnd = stack;\n }\n }\n stack.next = stackStart;\n let stackIn = null;\n let stackOut = null;\n\n yw = yi = 0;\n\n const mul_sum = mul_table[radius];\n const shg_sum = shg_table[radius];\n\n for (y = 0; y < height; y++) {\n r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n for (i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[p + 1])) * rbs;\n b_sum += (stack.b = (pb = pixels[p + 2])) * rbs;\n a_sum += (stack.a = (pa = pixels[p + 3])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n\n stack = stack.next;\n }\n\n\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++) {\n pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa != 0) {\n pa = 255 / pa;\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n\n r_in_sum += (stackIn.r = pixels[p]);\n g_in_sum += (stackIn.g = pixels[p + 1]);\n b_in_sum += (stackIn.b = pixels[p + 2]);\n a_in_sum += (stackIn.a = pixels[p + 3]);\n\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n a_out_sum += (pa = stackOut.a);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n\n stackOut = stackOut.next;\n\n yi += 4;\n }\n yw += width;\n }\n\n\n for (x = 0; x < width; x++) {\n g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n yp = width;\n\n for (i = 1; i <= radius; i++) {\n yi = (yp + x) << 2;\n\n r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs;\n b_sum += (stack.b = (pb = pixels[yi + 2])) * rbs;\n a_sum += (stack.a = (pa = pixels[yi + 3])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n\n stack = stack.next;\n\n if (i < heightMinus1) {\n yp += width;\n }\n }\n\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa > 0) {\n pa = 255 / pa;\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n } else {\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n }\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n\n p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2;\n\n r_sum += (r_in_sum += (stackIn.r = pixels[p]));\n g_sum += (g_in_sum += (stackIn.g = pixels[p + 1]));\n b_sum += (b_in_sum += (stackIn.b = pixels[p + 2]));\n a_sum += (a_in_sum += (stackIn.a = pixels[p + 3]));\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n a_out_sum += (pa = stackOut.a);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n\n stackOut = stackOut.next;\n\n yi += width;\n }\n }\n\n ctx.putImageData(imageData, top_x, top_y);\n }\n\n static measureTextFontSize(maxWidth: number, maxHeight: number, lines: string[], font: string, lineHeightPercent: number = 1.1, canvas?: HTMLCanvasElement): number {\n\n const startSize: number = maxHeight;\n const context: CanvasRenderingContext2D = canvas.getContext(\"2d\");\n\n if (!canvas) {\n canvas = <HTMLCanvasElement>document.createElement(\"canvas\");\n document.body.appendChild(canvas);\n }\n\n canvas.width = maxWidth + maxHeight;\n canvas.height = maxHeight * 2;\n\n let fontSize: number = CanvasUtils.halveValidateFontSize(startSize, (size: number) => {\n CanvasUtils.setFontProps(context, font, size);\n const maxTextLinesWidth = CanvasUtils.getTextWidth(context, lines);\n return maxWidth - maxTextLinesWidth;\n });\n\n const bitmapHeight: number = CanvasUtils.getTextBitmapHeight(canvas, context, lines, font, fontSize, lineHeightPercent);\n if (bitmapHeight > maxHeight) {\n fontSize = CanvasUtils.halveValidateFontSize(fontSize, (size: number) => {\n return maxHeight - CanvasUtils.getTextBitmapHeight(canvas, context, lines, font, size, lineHeightPercent);\n });\n }\n\n return fontSize;\n }\n\n static drawLines(context: CanvasRenderingContext2D, lines: string[], font: string, size: number, lineHeightPercent: number = 1.1, align: string = \"left\", baseLine: string = \"top\", x: number = 0, y: number = 0): number {\n CanvasUtils.setFontProps(context, font, size, align, baseLine);\n for (let i: number = 0; i < lines.length; i++) {\n const line: string = lines[i];\n context.fillText(line, x, y);\n if (i < lines.length - 1) {\n y += size * lineHeightPercent;\n }\n }\n return y;\n }\n\n static wrapText(context: CanvasRenderingContext2D, text: string, x: number, y: number, maxWidth: number): void {\n const words = text.split(\" \");\n const lineHeight = context.measureText(\"M\").width * 1.3;\n const lines: string[] = [];\n let line = \"\";\n for (let n = 0; n < words.length; n++) {\n const testLine = line + words[n] + \" \";\n const metrics = context.measureText(testLine);\n const testWidth = metrics.width;\n if (testWidth > maxWidth && n > 0) {\n lines.push(line);\n line = words[n] + \" \";\n }\n else {\n line = testLine;\n }\n }\n lines.push(line);\n y -= lineHeight * .5 * lines.length;\n lines.forEach(l => {\n context.fillText(l, x, y);\n y += lineHeight;\n });\n }\n\n static setFontProps(context: CanvasRenderingContext2D, font: string, fontSize: number, align: string = \"left\", baseLine: string = \"top\"): void {\n context.font = `${fontSize}px ${font}`;\n context.textAlign = <any>align;\n context.textBaseline = <any>baseLine;\n }\n\n private static getTextWidth(context: CanvasRenderingContext2D, lines: string[]): number {\n let maxWidth: number = 0;\n for (let i: number = 0; i < lines.length; i++) {\n const line: string = lines[i];\n maxWidth = Math.max(maxWidth, context.measureText(line).width);\n }\n return maxWidth;\n }\n\n private static getTextBitmapHeight(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D, lines: string[], font: string, fontSize: number, lineHeightPercent: number): number {\n const width: number = canvas.width;\n const height: number = canvas.height;\n context.clearRect(0, 0, width, height);\n\n const textY = CanvasUtils.drawLines(context, lines, font, fontSize, lineHeightPercent, \"left\", \"top\", fontSize * .5, fontSize * .5);\n const imageData: ImageData = context.getImageData(0, 0, width, height);\n\n let textHeight: number = 0;\n\n yLoop:for (let y: number = 0; y < height; y++) {\n for (let x: number = 0; x < width; x++) {\n const index: number = (x + y * width) * 4;\n if (imageData.data[index + 3] > 0) {\n textHeight = y + 1;\n continue yLoop;\n }\n }\n }\n\n return Math.max(textHeight, textY + fontSize);\n }\n\n private static halveValidateFontSize(startSize: number, callback: (size: number) => number): number {\n let fontSize: number = startSize;\n let lastFontSize: number = 0;\n let direction: number;\n\n for (let i: number = 0; i < 20; i++) {\n direction = callback(fontSize);\n const tempSize: number = fontSize;\n if (direction < 0) {\n fontSize = fontSize - (Math.abs(fontSize - lastFontSize) / 2);\n } else {\n fontSize = fontSize + (Math.abs(fontSize - lastFontSize) / 2);\n }\n lastFontSize = tempSize;\n if (Math.abs(fontSize - lastFontSize) < 0.1) {\n break;\n }\n }\n fontSize = Math.floor(fontSize);\n return fontSize;\n }\n}\n","import {DurationInputArg1, DurationInputArg2} from \"moment\";\nimport moment from \"moment\";\n\nexport class DateUtils {\n\n static isHoliday(date: Date): boolean {\n return moment(date).isoWeekday() > 5;\n }\n\n static isBusinessDay(date: Date): boolean {\n return moment(date).isoWeekday() < 6;\n }\n\n static add(date: Date, amount?: DurationInputArg1, unit?: DurationInputArg2): Date {\n return moment(date).add(amount, unit).toDate();\n }\n\n static businessAdd(date: Date, amount: number, unit?: DurationInputArg2, freeDays: Date[] = []): Date {\n const signal = amount < 0 ? -1 : 1;\n const freeMoments = freeDays.map(d => moment(d));\n let remaining = Math.abs(amount);\n let day = date;\n while (remaining) {\n day = DateUtils.add(day, signal, unit);\n if (DateUtils.isBusinessDay(day) && !freeMoments.some(m => m.isSame(day, \"day\"))) {\n remaining--;\n }\n }\n return day;\n }\n\n static businessSubtract(date: Date, amount: number, unit?: DurationInputArg2): Date {\n return DateUtils.businessAdd(date, -amount, unit);\n }\n}\n","import {HttpClient} from \"@angular/common/http\";\nimport {first} from \"rxjs/operators\";\nimport {ObjectUtils} from \"./object.utils\";\n\ndeclare const saveAs: any;\n\nexport class FileUtils {\n\n static getExtension(file: File): string {\n return file ? file.name.substr(file.name.lastIndexOf(\".\")).toLowerCase() : null;\n }\n\n static getName(file: File): string {\n return file ? file.name.substr(0, file.name.lastIndexOf(\".\")) : null;\n }\n\n static toFile(blob: Blob, fileName: string): File {\n const data: any = blob;\n data.lastModifiedDate = new Date();\n data.name = fileName.split(/\\\\|\\//g).pop();\n return <File>data;\n }\n\n static dataToBlob(data: string): Blob {\n const parts = data.split(\",\");\n const byteString = atob(parts[1]);\n const mimeString = parts[0].split(\":\")[1].split(\";\")[0];\n\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n return new Blob([ab], {type: mimeString});\n }\n\n static saveBlob(blob: Blob, fileName: string): void {\n if (typeof saveAs == \"undefined\") {\n throw Error(\"FileSaver library is not loaded. Please load it: https://www.npmjs.com/package/file-saver\");\n }\n saveAs(blob, fileName);\n }\n\n static saveJson(json: any, fileName: string): void {\n if (!ObjectUtils.isObject(json)) return;\n FileUtils.saveBlob(new Blob([JSON.stringify(json, null, 4)]), fileName);\n }\n\n static readFileAsText(file: Blob): Promise<string> {\n return FileUtils.readFile(\n // @dynamic\n reader => reader.readAsText(file)\n );\n }\n\n static readFileAsBinaryString(file: Blob): Promise<string> {\n return FileUtils.readFile(\n // @dynamic\n reader => reader.readAsBinaryString(file)\n );\n }\n\n static readFileAsDataURL(file: Blob): Promise<string> {\n return FileUtils.readFile(\n // @dynamic\n reader => reader.readAsDataURL(file)\n );\n }\n\n static readDataFromUrl(http: HttpClient, url: string): Promise<string> {\n return new Promise<string>(\n // @dynamic\n (resolve, reject) => {\n if (!url) {\n reject({\n message: \"The url is not specified\"\n });\n return;\n }\n if ((/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/g).test(url)) {\n resolve(url);\n return;\n }\n first()(http.get(url, {\n responseType: \"blob\"\n })).subscribe((blob: Blob) => {\n FileUtils.readFileAsDataURL(blob).then(resolve, reject);\n }, reason => {\n if (reason.status > 0)\n reject(reason);\n else\n resolve(url);\n });\n }\n );\n }\n\n private static readFile(callback: (reader: FileReader) => void): Promise<string> {\n return new Promise<string>(\n // @dynamic\n (resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event: any) => resolve(event.target.result);\n reader.onerror = reject;\n callback(reader);\n }\n );\n }\n}\n","import {Subject} from \"rxjs\";\n\nexport class GenericValue<T> extends Subject<T> {\n\n get value(): T {\n return this._value;\n }\n\n set value(value: T) {\n if (value == this._value) return;\n this._value = value;\n this.next(value);\n }\n\n private _value: T;\n\n constructor(value: T = null) {\n super();\n this._value = value;\n }\n\n setJustValue(value: T): void {\n this._value = value;\n }\n}\n","import {ObjectUtils} from \"./object.utils\";\n\nexport type FileSystemEntryOpenResult<D = any, R = any> = Promise<readonly FileSystemEntry<D, R>[]>;\n\nexport type FileSystemEntryOpenCb<PD, D = any, R = any> = (parent: FileSystemEntry<PD>) => FileSystemEntryOpenResult<D, R>;\n\nexport class FileSystemEntry<D = any, R = any> {\n\n protected result: FileSystemEntryOpenResult;\n\n readonly path: ReadonlyArray<FileSystemEntry>;\n readonly level: number;\n readonly classes: ReadonlyArray<string>;\n\n get parent(): FileSystemEntry {\n return this.level === 0 ? null : this.path[this.level - 1] || null;\n }\n\n constructor(readonly label: string,\n readonly meta: string,\n readonly image: string,\n readonly data: D,\n protected openCb: FileSystemEntryOpenCb<D, R>,\n parent: FileSystemEntry = null,\n classes?: string[]) {\n this.path = !parent ? [this] : parent.path.concat([this]);\n this.level = this.path.length - 1;\n this.classes = [`level-${this.level}`].concat(classes ?? this.path\n .map(t => {\n if (ObjectUtils.isString(t.data)) {\n return t.data;\n }\n if (ObjectUtils.isObject(t.data)) {\n const list = Object.keys(t.data).map(k => {\n const value = t.data[k];\n return ObjectUtils.isString(value) && value.length > 0 && value.length < 50\n ? `${k}-${value}`\n : null;\n });\n return list.filter(i => !!i).join(\" \");\n }\n return null;\n }).filter(t => !!t));\n }\n\n open<O = any>(): FileSystemEntryOpenResult<R, O> {\n this.result = this.result || this.openCb(this);\n this.result.then(res => {\n if (Array.isArray(res)) return;\n this.result = null;\n });\n return this.result;\n }\n}\n","export interface IShape {\n x: number;\n y: number;\n\n distance(shape: IShape): number;\n}\n\nexport class Rect implements IShape {\n\n get center(): Point {\n return new Point(this.x, this.y);\n }\n\n get left(): number {\n return this.x - this.width * .5;\n }\n\n get right(): number {\n return this.x + this.width * .5;\n }\n\n get bottom(): number {\n return this.y - this.height * .5;\n }\n\n get top(): number {\n return this.y + this.height * .5;\n }\n\n constructor(readonly x: number, readonly y: number, readonly width: number, readonly height: number, readonly rotation: number = 0) {\n\n }\n\n distance(p: Point): number {\n p = p.rotateAround(this.center, -this.rotation);\n const x = Math.max(this.left - p.x, 0, p.x - this.right);\n const y = Math.max(this.bottom - p.y, 0, p.y - this.top);\n return Math.sqrt(x*x + y*y);\n }\n}\n\nexport class Circle implements IShape {\n\n get center(): Point {\n return new Point(this.x, this.y);\n }\n\n get left(): Point {\n return new Point(this.x - this.radius, this.y);\n }\n\n get right(): Point {\n return new Point(this.x + this.radius, this.y);\n }\n\n get top(): Point {\n return new Point(this.x, this.y + this.radius);\n }\n\n get bottom(): Point {\n return new Point(this.x, this.y - this.radius);\n }\n\n get rect(): Rect {\n return new Rect(this.x, this.y, this.radius * 2, this.radius * 2);\n }\n\n constructor(readonly x: number, readonly y: number, readonly radius: number) {\n\n }\n\n distance(p: Point): number {\n return this.center.distance(p) - this.radius;\n }\n}\n\nexport class Point implements IShape {\n\n static Zero: Point = new Point(0, 0);\n\n get length(): number {\n return this.distance(Point.Zero);\n }\n\n get perpendicular(): Point {\n return new Point(this.y, -this.x);\n }\n\n constructor(readonly x: number, readonly y: number) {\n }\n\n add(p: Point): Point {\n return new Point(this.x + p.x, this.y + p.y);\n }\n\n subtract(p: Point): Point {\n return new Point(this.x - p.x, this.y - p.y);\n }\n\n multiply(p: Point | number): Point {\n if (p instanceof Point) {\n return new Point(this.x * p.x, this.y * p.y);\n }\n return new Point(this.x * p, this.y * p);\n }\n\n distance(b: Point): number {\n const x = b.x - this.x;\n const y = b.y - this.y;\n return Math.sqrt(x * x + y * y);\n }\n\n lerp(p: Point, ratio: number): Point {\n const diff = p.subtract(this);\n return this.add(diff.multiply(ratio));\n }\n\n perpendicularTo(p: Point, length: number): Point {\n const diff = p.perpendicular.subtract(this.perpendicular);\n const ratio = length / diff.length;\n const center = this.lerp(p, .5);\n return center.add(diff.multiply(ratio));\n }\n\n circleWith(a: Point, b: Point): Circle {\n const yDelta_a = b.y - a.y;\n const xDelta_a = b.x - a.x;\n const yDelta_b = this.y - b.y;\n const xDelta_b = this.x - b.x;\n\n const aSlope = yDelta_a / xDelta_a;\n const bSlope = yDelta_b / xDelta_b;\n\n const x = (aSlope * bSlope * (a.y - this.y) + bSlope * (a.x + b.x) - aSlope * (b.x + this.x)) / (2 * (bSlope - aSlope));\n const y = -1 * (x - (a.x + b.x) / 2) / aSlope + (a.y + b.y) / 2;\n const center = new Point(x, y);\n return new Circle(center.x, center.y, center.distance(this));\n }\n\n tangents(c: Circle): Point[] {\n const pd = c.center.subtract(this);\n const a = Math.asin(c.radius / pd.length);\n const b = Math.atan2(pd.y, pd.x);\n // Tangent points\n let t = b - a;\n const t1 = new Point(c.x + c.radius * Math.sin(t), c.y + c.radius * -Math.cos(t));\n t = b + a;\n const t2 = new Point(c.x + c.radius * -Math.sin(t), c.y + c.radius * Math.cos(t));\n return [t1, t2];\n }\n\n angle(p: Point): number {\n const diff = p.subtract(this);\n return Math.atan2(diff.y, diff.x) * 180 / Math.PI;\n }\n\n rotateAround(p: Point, angle: number): Point {\n const rotation = (p.angle(this) + angle) * Math.PI / 180;\n const distance = p.distance(this);\n const rotated = new Point(Math.cos(rotation) * distance, Math.sin(rotation) * distance);\n return p.add(rotated);\n }\n}\n","import {Invokable} from \"invokable\";\n\nexport class Initializer<T> {\n\n private initialized: boolean;\n\n get isInitialized(): boolean {\n return this.initialized;\n }\n\n constructor(private callback: () => T, private shouldInit: boolean = true) {\n this.initialized = !this.shouldInit;\n // @ts-ignore\n return Invokable.create(this);\n }\n\n [Invokable.call](): T {\n if (this.initialized) return null;\n this.initialized = true;\n return this.callback();\n }\n}\n\nexport interface Initializer<T> {\n (): T;\n}\n","import {LoadableElement, LoaderPromises, ScriptType} from \"../common-types\";\n\nexport class LoaderUtils {\n\n private static promises: LoaderPromises<LoadableElement> = {};\n\n static loadScript(src: string | URL, async: boolean = false, type: ScriptType = \"text/javascript\", parent?: Node, time: boolean | string = false) {\n return LoaderUtils.loadElement(src, parent, time, url => {\n const script = document.createElement(\"script\");\n script.type = type;\n script.src = url;\n script.async = async;\n return script;\n });\n }\n\n static loadStyle(src: string | URL, parent?: Node, time: boolean | string = false) {\n return LoaderUtils.loadElement(src, parent, time, url => {\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.type = \"text/css\";\n link.href = url;\n return link;\n });\n }\n\n private static updateSrc(src: string | URL, time: boolean | string): string {\n const srcStr = String(src || \"\");\n if (srcStr.startsWith(\"data:\") || !time) {\n return srcStr;\n }\n const url = new URL(src);\n url.searchParams.set(\"time\", typeof time === \"string\" ? time : String(Date.now()));\n return url.toString();\n }\n\n private static loadElement<T extends LoadableElement>(url: string | URL, parent: Node, time: boolean | string, setup: (url: string) => T): Promise<T> {\n const promises = LoaderUtils.promises as LoaderPromises<T>;\n const src = LoaderUtils.updateSrc(url, time);\n parent = parent || document;\n if (parent == document) {\n parent = document.body;\n }\n let {elem, promise} = promises[src] || {};\n if (elem) {\n if (parent === elem.parentElement) return promise;\n if (elem.parentElement) {\n elem.remove();\n }\n }\n elem = setup(src);\n promise = new Promise<T>((resolve, reject) => {\n if (elem.readyState) {\n // Internet explorer\n elem.onreadystatechange = () => {\n if (elem.readyState === \"loaded\" || elem.readyState === \"complete\") {\n elem.onreadystatechange = null;\n resolve(elem);\n }\n };\n } else {\n // Other browsers\n elem.onload = () => resolve(elem);\n }\n elem.onerror = (error: any) => reject(error);\n });\n parent.appendChild(elem);\n promises[src] = {elem, promise};\n return promise;\n }\n}\n","import {ObjectUtils} from \"./object.utils\";\n\nexport class MathUtils {\n\n static readonly EPSILON: number = 1e-9;\n\n static equal(a: number, b: number, epsilon: number = null): boolean {\n epsilon = ObjectUtils.isNumber(epsilon) ? epsilon : MathUtils.EPSILON;\n return Math.abs(a - b) < epsilon;\n }\n\n static clamp(value: number, min: number, max: number): number {\n return Math.max(Math.min(value, max), min)\n }\n\n static round(value: number, precision: number = 2, divider: number = 1): number {\n precision = Math.pow(10, precision);\n return Math.round(value * precision / divider) / precision;\n }\n\n static approxIndex(x: number, values: number[], epsilon: number = null): number {\n if (!Array.isArray(values) || values.length == 0) {\n return -1;\n }\n let s = 0;\n let e = values.length - 1;\n while (s <= e) {\n const i = Math.floor((s + e) / 2);\n const v = values[i];\n if (MathUtils.equal(v, x, epsilon)) {\n return i;\n }\n if (v < x) {\n s = i + 1;\n } else {\n e = i - 1;\n }\n }\n const m = Math.max(e, 0);\n const a = values[s];\n const b = values[m];\n return Math.abs(a - x) < Math.abs(b - x) ? s : m;\n }\n\n static approximate(x: number, values: number[], epsilon: number = null): number {\n const index = MathUtils.approxIndex(x, values, epsilon);\n return values[index] ?? null;\n }\n}\n","export function getCssVariables(elem: HTMLElement): Record<string, string> {\r\n if (\"computedStyleMap\" in elem) {\r\n const styles = Array.from(elem.computedStyleMap() as any) as [string, string][];\r\n return styles.reduce((res, [prop, val]) => {\r\n if (prop.startsWith(\"--\")) {\r\n res[prop] = val.toString();\r\n }\r\n return res;\r\n }, {} as Record<string, string>);\r\n }\r\n const res = {} as Record<string, string>;\r\n const styles = getComputedStyle(elem);\r\n for (let i = 0; i < styles.length; i++) {\r\n const propertyName = styles[i];\r\n if (propertyName.startsWith(\"--\")) {\r\n res[propertyName] = styles.getPropertyValue(propertyName);\r\n }\r\n }\r\n return res;\r\n}\r\n","import {ITimer} from \"../common-types\";\nimport {ObjectUtils} from \"./object.utils\";\n\ntype TimerFunc = (timer: ITimer) => void;\n\nexport class TimerUtils {\n\n static createTimeout(func?: Function, time?: number): ITimer {\n // @dynamic\n const run = (timer: ITimer) => {\n timer.clear();\n timer.id = setTimeout(() => {\n timer.id = null;\n timer.func();\n }, timer.time);\n };\n // @dynamic\n const clear = (timer: ITimer) => {\n if (!timer.id) return;\n clearTimeout(timer.id);\n timer.id = null;\n };\n return TimerUtils.createTimer(run, clear, func, time);\n }\n\n static createInterval(func?: Function, time?: number): ITimer {\n // @dynamic\n const run = (timer: ITimer) => {\n timer.clear();\n timer.id = setInterval(timer.func, timer.time);\n };\n // @dynamic\n const clear = (timer: ITimer) => {\n if (!timer.id) return;\n clearInterval(timer.id);\n timer.id = null;\n };\n return TimerUtils.createTimer(run, clear, func, time);\n }\n\n private static createTimer(run: TimerFunc, clear: TimerFunc, func: Function, time: number): ITimer {\n const timer: ITimer = {};\n const setParams = (func: Function, time: number) => {\n timer.func = !ObjectUtils.isFunction(func) ? (() => {}) : func;\n timer.time = !ObjectUtils.isNumber(time) ? 100 : time;\n };\n timer.run = () => run(timer);\n timer.clear = () => clear(timer);\n timer.set = (func: Function, time: number) => {\n setParams(func, time);\n timer.run();\n };\n setParams(func, time);\n return timer;\n }\n}\n","import {from, Observable, Subject, Subscription} from \"rxjs\";\nimport {mergeMap} from \"rxjs/operators\";\n\nimport {ISearchObservable} from \"../common-types\";\nimport {TimerUtils} from \"./timer.utils\";\n\nexport interface ISubscriberInfo {\n subjects: Observable<any>[];\n cb: (ev?: Observable<any>, ...args: any[]) => any;\n timeout?: number;\n}\n\nexport class ObservableUtils {\n\n static toSearch(search: ISearchObservable): Observable<any> {\n return mergeMap(\n // @dynamic\n (token: string) => search.getSearchResults(token)\n )(\n Observable.create(\n // @dynamic\n (observer: any) => {\n observer.next(search.search);\n }\n )\n );\n }\n\n static multiSubscription(...subscriptions: Subscription[]): Subscription {\n // @dynamic\n const lambda = () => {\n subscriptions.forEach(s => {\n s.unsubscribe();\n });\n };\n return new Subscription(lambda);\n }\n\n static subscribe(...subscribers: ISubscriberInfo[]): Subscription {\n const subscriptions: Subscription[] = [];\n subscribers.forEach(info => {\n let alreadyCalled = false;\n const timer = TimerUtils.createTimeout();\n info.subjects.forEach(subject => {\n const ss = subject.subscribe((value) => {\n alreadyCalled = true;\n timer.set(() => {\n info.cb(subject, value);\n }, info.timeout ?? 0);\n });\n subscriptions.push(ss);\n });\n if (alreadyCalled) return;\n info.cb();\n });\n return ObservableUtils.multiSubscription(...subscriptions);\n }\n\n static fromFunction(callbackFunc: () => any): Observable<any> {\n let subject: any;\n return new Observable<any>((subscriber) => {\n if (!subject) {\n subject = new Subject();\n try {\n subject = from(callbackFunc());\n } catch (err) {\n subject.error(err);\n }\n }\n return subject.subscribe(subscriber);\n });\n }\n}\n","export interface CancelablePromise<T> extends Promise<T> {\n cancel: () => void;\n}\n\nexport function cancelablePromise<T>(source: Promise<T>): CancelablePromise<T> {\n let isCanceled = false;\n const cancelable = new Promise<T>((resolve, reject) => {\n source.then(res => {\n if (isCanceled) return;\n resolve(res);\n }).catch(reject);\n }) as CancelablePromise<T>;\n cancelable.cancel = () => {\n isCanceled = true;\n };\n return cancelable;\n}\n\nexport function impatientPromise<T>(factory: () => Promise<T>): () => Promise<T> {\n let lastPromise: CancelablePromise<T> = null;\n return () => {\n lastPromise?.cancel();\n lastPromise = cancelablePromise(factory());\n return lastPromise\n };\n}\n","export class StringUtils {\n\n static concat(separator: string, ...strings: string[]): string {\n return strings.filter(\n // @dynamic\n str => !!str\n ).join(separator);\n }\n\n static startsWith(str: string, ...starts: string[]): boolean {\n for (let i = 0; i < starts.length; i++) {\n if (str.startsWith(starts[i])) return true;\n }\n return false;\n }\n\n static has(str: string, ...parts: string[]): boolean {\n for (let i = 0; i < parts.length; i++) {\n if (str.indexOf(parts[i]) >= 0) return true;\n }\n return false;\n }\n\n static lcFirst(str: string): string {\n return str ? str.charAt(0).toLowerCase() + str.substring(1) : \"\";\n }\n\n static ucFirst(str: string): string {\n return str ? str.charAt(0).toUpperCase() + str.substring(1) : \"\";\n }\n\n static isObjectId(id: string): boolean {\n return typeof id === \"string\" && id.length == 24 && !isNaN(Number(\"0x\" + id));\n }\n\n static parseDomain(baseUrl: string): string {\n try {\n const url = new URL(baseUrl);\n const port = url.port && url.port !== \"443\" && url.port !== \"80\" ? `:${url.port}` : ``;\n return `${url.protocol}//${url.hostname}${port}/`;\n } catch {\n return \"/\";\n }\n }\n}\n","import {ObjectUtils} from \"./object.utils\";\n\nexport class SetUtils {\n\n static equals(set: Set<any>, obj: any): boolean {\n if (!ObjectUtils.isSet(set) || !ObjectUtils.isSet(obj))\n return false;\n if (set.size != obj.size)\n return false;\n for (const item in set) {\n if (!obj.has(item)) return false;\n }\n return true;\n }\n\n static addArray(set: Set<any>, items: any[]): void {\n if (!ObjectUtils.isSet(set) || !ObjectUtils.isArray(items)) return;\n items.forEach(i => set.add(i));\n }\n\n static merge(set: Set<any>, other: Set<any>): void {\n if (!ObjectUtils.isSet(set) || !ObjectUtils.isSet(other)) return;\n other.forEach(i => set.add(i));\n }\n}\n","export class UniqueUtils {\n\n static uuid(): string {\n if (typeof window !== \"undefined\" && typeof window.crypto !== \"undefined\" && typeof window.crypto.getRandomValues !== \"undefined\") {\n const buf = new Uint16Array(8);\n window.crypto.getRandomValues(buf);\n return (this.pad4(buf[0]) + this.pad4(buf[1]) + \"-\" + this.pad4(buf[2]) + \"-\" + this.pad4(buf[3]) + \"-\" + this.pad4(buf[4]) + \"-\" + this.pad4(buf[5]) + this.pad4(buf[6]) + this.pad4(buf[7]));\n }\n return this.random4() + this.random4() + \"-\" + this.random4() + \"-\" + this.random4() + \"-\" +\n this.random4() + \"-\" + this.random4() + this.random4() + this.random4();\n }\n\n private static pad4(num: number): string {\n let ret = num.toString(16);\n while (ret.length < 4) {\n ret = \"0\" + ret;\n }\n return ret;\n }\n\n private static random4(): string {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n}\n","export class Vector {\n\n get negative(): Vector {\n return new Vector(-this.x, -this.y, -this.z);\n }\n\n get length(): number {\n return Math.sqrt(this.dot(this));\n }\n\n get unit(): Vector {\n return this.divide(this.length);\n }\n\n get min(): number {\n return Math.min(Math.min(this.x, this.y), this.z);\n }\n\n get max(): number {\n return Math.max(Math.max(this.x, this.y), this.z);\n }\n\n get angles(): any {\n return {\n theta: Math.atan2(this.z, this.x),\n phi: Math.asin(this.y / this.length)\n };\n }\n\n constructor(public x: number, public y: number, public z: number) {\n }\n\n add(v: Vector | number): Vector {\n if (v instanceof Vector) return new Vector(this.x + v.x, this.y + v.y, this.z + v.z);\n else return new Vector(this.x + v, this.y + v, this.z + v);\n }\n\n subtract(v: Vector | number): Vector {\n if (v instanceof Vector) return new Vector(this.x - v.x, this.y - v.y, this.z - v.z);\n else return new Vector(this.x - v, this.y - v, this.z - v);\n }\n\n multiply(v: Vector | number): Vector {\n if (v instanceof Vector) return new Vector(this.x * v.x, this.y * v.y, this.z * v.z);\n else return new Vector(this.x * v, this.y * v, this.z * v);\n }\n\n divide(v: Vector | number): Vector {\n if (v instanceof Vector) return new Vector(this.x / v.x, this.y / v.y, this.z / v.z);\n else return new Vector(this.x / v, this.y / v, this.z / v);\n }\n\n equals(v: Vector): boolean {\n return this.x == v.x && this.y == v.y && this.z == v.z;\n }\n\n dot(v: Vector): number {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n }\n\n cross(v: Vector): Vector {\n return new Vector(\n this.y * v.z - this.z * v.y,\n this.z * v.x - this.x * v.z,\n this.x * v.y - this.y * v.x\n );\n }\n\n angleTo(v: Vector): number {\n return Math.acos(this.dot(v) / (this.length * v.length));\n }\n\n toArray(n?: number): number[] {\n return [this.x, this.y, this.z].slice(0, n || 3);\n }\n\n clone(): Vector {\n return new Vector(this.x, this.y, this.z);\n }\n\n init(x: number, y: number, z: number): Vector {\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n }\n}\n","import {Injector, Type} from \"@angular/core\";\nimport {OPTIONS_TOKEN, TypedFactoryProvider} from \"../common-types\";\n\nexport function provideWithOptions<O extends Object, T = any>(type: Type<T>, options: O): TypedFactoryProvider<T> {\n return {\n useFactory: function (injector: Injector) {\n const subInjector = Injector.create({\n providers: [\n {\n provide: OPTIONS_TOKEN,\n useValue: options\n },\n {\n provide: type,\n useClass: type\n }\n ],\n parent: injector\n });\n return subInjector.get(type);\n },\n deps: [Injector]\n }\n}\n","export class JSONfn {\n\n static parse(text: string): any {\n return JSON.parse(text, JSONfn.reviver);\n }\n\n static stringify(obj: any): string {\n return JSON.stringify(obj, JSONfn.replacer);\n }\n\n static reviver(key: string, value: any): any {\n const iso8061 = /^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(?:.\\d+)?(?:Z|[+-]\\d\\d:\\d\\d)$/;\n if (typeof value !== \"string\") return value;\n if (value.length < 8) {\n return value;\n }\n if (value.match(iso8061)) {\n return new Date(value);\n }\n const prefix = value.substring(0, 8);\n if (prefix === \"function\") {\n return new Function(`return ${value}`)();\n }\n if (prefix === \"_NuFrRa_\") {\n return new Function(`return ${value.slice(8)}`)();\n }\n if (prefix === \"_PxEgEr_\") {\n return new Function(`return ${value.slice(8)}`)();\n }\n return value;\n }\n\n static replacer(key: string, value: any): any {\n if (value instanceof Function || typeof value === \"function\") {\n const fnBody = value.toString();\n if (fnBody.length < 8 || fnBody.substring(0, 8) !== \"function\") {\n // this is ES6 Arrow Function\n return \"_NuFrRa_\" + fnBody;\n }\n return fnBody;\n }\n if (value instanceof RegExp) {\n return \"_PxEgEr_\" + value;\n }\n return value;\n }\n}\n","import {IWasi, IWasmExports} from \"../common-types\";\nimport {Type} from \"@angular/core\";\nimport {JSONfn} from \"./jsonfn\";\n\ninterface IPromiseExecutor {\n resolve: (value?: any) => void;\n reject: (reason?: any) => void;\n}\n\nexport function workerFunction(JSONfn: any, logTimes: boolean): void {\n\n let wasmResolve: (instance: IWasmExports) => void = null;\n const wasmInstance: Promise<IWasmExports> = new Promise<IWasmExports>(resolve => {\n wasmResolve = resolve;\n });\n\n self.onmessage = function (e) {\n const data = e.data;\n const {type, payload} = data;\n switch (type) {\n case \"wasm\":\n const {url, wasi} = payload;\n fetch(url).then(response => response.arrayBuffer()).then(bytes => {\n const wasiImpl = JSONfn.parse(wasi);\n return new wasiImpl().instantiate(bytes);\n }).then(instance => {\n wasmResolve(instance);\n const methods = Object.getOwnPropertyNames(instance).filter(key => typeof instance[key] === \"function\");\n self.postMessage({type: \"methods\", payload: methods});\n });\n break;\n case \"call\":\n wasmInstance.then(instance => {\n const {name, id, args} = payload;\n if (logTimes) {\n console.time(id);\n console.timeLog(id, `Calling ${name} ...`);\n }\n const func = (instance[name] as Function);\n const result = func(...args);\n if (logTimes) {\n console.timeLog(id, `Called ${name}`);\n console.timeEnd(id);\n }\n self.postMessage({type: \"result\", payload: {id, result}});\n });\n break;\n }\n };\n}\n\nexport class WasmWorkerProxy {\n\n protected methods: Promise<string[]>;\n protected onMethods: (methods: string[]) => void;\n protected worker: Worker;\n protected promises: Map<string, IPromiseExecutor>;\n\n constructor(wasmPath: string, wasi: Type<IWasi>, logTimes: boolean = false) {\n this.methods = new Promise<string[]>(resolve => {\n this.onMethods = resolve;\n });\n const lt = logTimes ? \"true\" : \"false\";\n const blob = new Blob(\n [`${JSONfn.toString()} (${workerFunction.toString()})(JSONfn, ${lt})`],\n {type: 'application/javascript'}\n );\n this.worker = new Worker(URL.createObjectURL(blob));\n this.worker.postMessage({\n type: \"wasm\",\n payload: {url: wasmPath, wasi: JSONfn.stringify(wasi), logTimes}\n });\n this.worker.onmessage = this.onMessage.bind(this);\n this.promises = new Map<string, IPromiseExecutor>();\n return new Proxy(this, {\n get: (target, prop, receiver) => {\n const res = Reflect.get(target, prop, receiver);\n if (res) {\n return res;\n }\n return (...args: any[]) => {\n return this.call(prop.toString(), args);\n };\n }\n });\n }\n\n onMessage(e: MessageEvent): void {\n const data = e.data;\n const {type, payload} = data;\n switch (type) {\n case \"methods\":\n this.onMethods(payload);\n break;\n case \"result\":\n const {id, result} = payload;\n const promise = this.promises.get(id);\n if (promise) {\n promise.resolve(result);\n this.promises.delete(id);\n }\n break;\n }\n }\n\n async call(method: string, args: any[]): Promise<any> {\n const methods = await this.methods;\n if (!methods.includes(method)) {\n throw new Error(`Method ${method} not found`);\n }\n return new Promise<any>((resolve, reject) => {\n const id = Math.random().toString(36).substring(2, 9);\n this.worker.postMessage({\n type: \"call\",\n payload: {name: method, id, args}\n });\n this.promises.set(id, {resolve, reject});\n });\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {HttpClient, HttpHandler, HttpHeaders, HttpParams, HttpUrlEncodingCodec} from \"@angular/common/http\";\nimport {IBaseHttpClient, IHttpHeaders, IHttpParams} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Injectable()\nexport class BaseHttpClient extends HttpClient implements IBaseHttpClient {\n\n requestHeaders: IHttpHeaders;\n requestParams: IHttpParams;\n renewTokenFunc: () => void;\n\n protected extraRequestParams: IHttpParams;\n\n constructor(handler: HttpHandler) {\n super(handler);\n this.requestHeaders = {};\n this.requestParams = {};\n this.extraRequestParams = {\n language: \"en\"\n };\n }\n\n makeHeaders(headers?: IHttpHeaders, withCredentials: boolean = true): HttpHeaders {\n headers = Object.assign({}, this.requestHeaders, headers);\n const authHeader = headers[\"Authorization\"] as string || \"\";\n if (!withCredentials && !authHeader.startsWith(\"Bearer\")) {\n delete headers[\"Authorization\"];\n }\n return new HttpHeaders(headers);\n }\n\n makeParams(params?: IHttpParams): HttpParams {\n params = Object.assign({}, this.extraRequestParams, this.requestParams, params);\n return new HttpParams({\n encoder: new HttpUrlEncodingCodec(),\n fromObject: Object.keys(params || {}).reduce((result, key) => {\n const value = params[key];\n result[key] = ObjectUtils.isObject(value) ? JSON.stringify(value) : (ObjectUtils.isNullOrUndefined(value) ? \"\" : value.toString());\n return result;\n }, {})\n });\n }\n\n setExtraRequestParam(name: string, value?: any): void {\n if (typeof value == \"undefined\") {\n delete this.extraRequestParams[name];\n return;\n }\n this.extraRequestParams[name] = value;\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {StorageMode} from \"../common-types\";\nimport {UniversalService} from \"./universal.service\";\n\n/**\n * Use this service instead of Storage to avoid Angular Universal breaks on server environment\n */\n@Injectable()\nexport class StorageService {\n\n constructor(readonly universal: UniversalService) {\n }\n\n get(key: string, defaultValue?: any, mode: StorageMode = StorageMode.Local): any {\n if (!this.universal.isBrowser) return defaultValue;\n const storage = mode == StorageMode.Local ? localStorage : sessionStorage;\n const item = storage.getItem(key);\n if (!item) return defaultValue;\n try {\n return JSON.parse(item);\n } catch (e) {\n return item;\n }\n }\n\n set(key: string, value: any, mode: StorageMode = StorageMode.Local): void {\n if (!this.universal.isBrowser) return;\n const storage = mode == StorageMode.Local ? localStorage : sessionStorage;\n if (typeof value == \"string\") {\n storage.setItem(key, value);\n return;\n }\n storage.setItem(key, JSON.stringify(value));\n }\n\n remove(key: string, mode: StorageMode = StorageMode.Local): void {\n if (!this.universal.isBrowser) return;\n const storage = mode == StorageMode.Local ? localStorage : sessionStorage;\n storage.removeItem(key);\n }\n}\n","import {Inject, Injectable, Injector, Optional} from \"@angular/core\";\nimport {HttpErrorResponse, HttpEventType, HttpHeaders, HttpParams, HttpResponse} from \"@angular/common/http\";\nimport {Request} from \"express\";\n\nimport {\n CONFIG_SERVICE,\n EXPRESS_REQUEST,\n HttpPromise,\n IConfigService,\n IHttpHeaders,\n IHttpParams,\n IHttpService,\n IIssueContext,\n ILanguageService,\n IPaginationData,\n IRequestOptions,\n IToasterService,\n LANGUAGE_SERVICE,\n ProgressListener,\n TOASTER_SERVICE\n} from \"../common-types\";\n\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {MathUtils} from \"../utils/math.utils\";\n\nimport {BaseHttpClient} from \"./base-http.client\";\nimport {UniversalService} from \"./universal.service\";\nimport {StorageService} from \"./storage.service\";\nimport {timeout} from \"rxjs/operators\";\nimport {TimeoutError} from \"rxjs\";\n\n@Injectable()\nexport class BaseHttpService implements IHttpService {\n\n protected static failedRequests: Array<() => void> = [];\n\n get name(): string {\n return \"base\";\n }\n\n protected get withCredentials(): boolean {\n return true;\n }\n\n requestHeaders: IHttpHeaders;\n requestParams: IHttpParams;\n cache: any;\n\n protected static retryFailedRequests(): void {\n BaseHttpService.failedRequests.forEach(r => r());\n BaseHttpService.failedRequests = [];\n }\n\n get universal(): UniversalService {\n return this.storage.universal;\n }\n\n constructor(@Inject(Injector) readonly injector: Injector,\n @Inject(BaseHttpClient) readonly client: BaseHttpClient,\n @Inject(StorageService) readonly storage: StorageService,\n @Inject(LANGUAGE_SERVICE) readonly language: ILanguageService,\n @Inject(TOASTER_SERVICE) readonly toaster: IToasterService,\n @Inject(CONFIG_SERVICE) readonly configs: IConfigService,\n @Optional() @Inject(EXPRESS_REQUEST) readonly request: Request = null\n ) {\n this.requestHeaders = {};\n this.requestParams = {};\n this.cache = {};\n this.initService();\n }\n\n protected initService(): void {\n\n }\n\n url(url: string): string {\n return url;\n }\n\n createUrl(url: string, params: IHttpParams): string {\n const httpParams = this.client.makeParams(params);\n const query = httpParams.keys().map(key => {\n return `${key}=${httpParams.get(key)}`;\n }).join(\"&\");\n return `${this.url(url)}?${query}`;\n }\n\n makeListParams(page: number, itemsPerPage: number, orderBy: string = null, orderDescending: boolean = null, filter: string = null): IHttpParams {\n const params: IHttpParams = {\n page: (page - 1),\n limit: itemsPerPage\n };\n if (!ObjectUtils.isNullOrUndefined(orderBy) && !ObjectUtils.isNullOrUndefined(orderDescending)) {\n params.sort = `${orderDescending ? \"-\" : \"\"}${orderBy}`;\n }\n if (!ObjectUtils.isNullOrUndefined(filter)) {\n params.filter = filter;\n }\n return params;\n }\n\n protected getPromise(url: string, options?: IRequestOptions, body?: any): HttpPromise {\n options = this.makeOptions(options, \"GET\", body);\n return this.toPromise(url, options);\n }\n\n protected deletePromise(url: string, options?: IRequestOptions, body?: any): HttpPromise {\n options = this.makeOptions(options, \"DELETE\", body);\n return this.toPromise(url, options);\n }\n\n protected postPromise(url: string, body?: any, options?: IRequestOptions): HttpPromise {\n options = this.makeOptions(options, \"POST\", body);\n return this.toPromise(url, options);\n }\n\n protected putPromise(url: string, body?: any, options?: IRequestOptions): HttpPromise {\n options = this.makeOptions(options, \"PUT\", body);\n return this.toPromise(url, options);\n }\n\n protected patchPromise(url: string, body?: any, options?: IRequestOptions): HttpPromise {\n options = this.makeOptions(options, \"PATCH\", body);\n return this.toPromise(url, options);\n }\n\n protected uploadPromise(url: string, body: any, listener?: ProgressListener, options?: IRequestOptions): HttpPromise {\n const headers: any = {};\n if (body instanceof Blob) {\n headers[\"Content-Type\"] = \"application/octet-stream\";\n }\n options = this.makeOptions(Object.assign({\n headers: headers,\n reportProgress: true\n }, options), \"POST\", body);\n return this.toPromise(url, options, listener);\n }\n\n protected listPromise(url: string, params: IHttpParams): Promise<IPaginationData> {\n return new Promise<IPaginationData>(resolve => {\n this.getPromise(url, {params: params}).then(data => {\n if (ObjectUtils.isArray(data)) {\n const limit = isNaN(params.limit) || Number(params.limit) <= 0\n ? Number.MAX_SAFE_INTEGER\n : Number(params.limit);\n const page = Math.max(Number(params.page), 0);\n const start = Math.max(page * limit, 0);\n const end = Math.min(start + limit, data.length - 1);\n resolve({\n total: data.length,\n items: data.slice(start, end),\n meta: {}\n });\n return;\n }\n resolve({\n total: data.meta?.total || data?.total || data.items?.length || 0,\n items: data.items || [],\n meta: data.meta || {}\n });\n }, response => {\n if (response.status == 0 || response.status == 301) {\n resolve({\n total: 1,\n items: [{\n id: null,\n label: \"Not implemented.\"\n }],\n meta: {}\n });\n return true;\n }\n resolve({\n total: 0,\n items: [],\n meta: {}\n });\n return false;\n });\n });\n }\n\n protected handleUnauthorizedError(absoluteUrl: string, options: IRequestOptions, reject: () => void): void {\n reject();\n if (BaseHttpService.failedRequests.length > 1) {\n return;\n }\n if (this.universal.isServer) return;\n console.log(\"User auth error\", absoluteUrl, options);\n }\n\n protected toastWarning(message: string, issueContext: IIssueContext, reason: any, options: IRequestOptions): void {\n this.toaster.warning(message, {issueContext, reason, options});\n }\n\n protected toastError(message: string, issueContext: IIssueContext, reason: any, options: IRequestOptions): void {\n this.toaster.warning(message, {issueContext, reason, options});\n }\n\n protected toPromise(url: string, options: IRequestOptions, listener?: ProgressListener): HttpPromise {\n const issueContext: IIssueContext = {url: \"\"};\n\n return new HttpPromise(response => {\n if (!response) {\n if (this.universal.isServer) return;\n console.log(\"You may not need a reject Handler for this request!\", this.name, url, options);\n return;\n }\n const reason = response.error || {};\n if (response.status == 0 || response.status == 301) {\n this.toastWarning(`${url} endpoint is not implemented! Click here, to quickly create an issue.`, issueContext, reason, options);\n return;\n }\n const regex = /((E11000 duplicate key error collection: (.)+\\.)|(_1 dup key:(.)+))/g;\n if (reason.message && regex.test(reason.message)) {\n this.toastError(\"message.duplicate-key.error.\" + reason.message.replace(regex, \"\").replace(\" index: \", \"-\"), issueContext, reason, options);\n return;\n }\n this.toastWarning(`${url} endpoint error is not handled properly! Click here, to quickly create an issue.`, issueContext, reason, options);\n }, (resolve, reject) => {\n this.absoluteUrl(url, options).then(absoluteUrl => {\n issueContext.url = absoluteUrl;\n const request = this.client.request(options.method, absoluteUrl, options);\n const finalRequest = ObjectUtils.isNumber(options.timeout) && options.timeout > 0\n ? request.pipe(timeout(options.timeout)) : request;\n finalRequest.subscribe((event: any) => {\n if (options.reportProgress && event?.type === HttpEventType.UploadProgress) {\n const progress = {\n percentage: MathUtils.round(event.loaded / event.total, 2, 0.01),\n loaded: event.loaded,\n total: event.total\n };\n if (listener) {\n listener(progress);\n }\n return;\n }\n resolve(this.parseResponse(event, url, options));\n const headers = options.headers as HttpHeaders;\n const authKey = \"Authorization\";\n // If we use token auth\n if (this.client.renewTokenFunc && headers.has(authKey)) {\n const currentTime = new Date().getTime();\n const userTokenTime = this.getUserTokenTime() || currentTime;\n // And the last request was a long-long time ago\n if (currentTime - 600000 > userTokenTime) {\n this.client.renewTokenFunc();\n }\n }\n }, (response: HttpErrorResponse | TimeoutError) => {\n if (response instanceof TimeoutError || response.status == 0 || response.status == 301) {\n reject(response);\n return;\n }\n const headers = options.headers as HttpHeaders;\n const authKey = \"Authorization\";\n // If an authorization header exists, and we still have an Unauthorized response prompt the user to log in again\n if (headers.has(authKey) && response.status == 401) {\n const pushed = this.pushFailedRequest(url, options, () => {\n options.headers = this.makeHeaders(options.originalHeaders);\n this.toPromise(url, options, listener).then(resolve, reject);\n });\n if (pushed) {\n this.handleUnauthorizedError(absoluteUrl, options, () => reject(response));\n return;\n }\n }\n reject(response);\n });\n });\n });\n }\n\n protected getUserTokenTime(): number {\n return this.storage.get(\"userTokenTime\");\n }\n\n protected pushFailedRequest(url: string, options: IRequestOptions, req: () => void): boolean {\n if (url.indexOf(\"token\") >= 0 || url === \"user\") return false;\n BaseHttpService.failedRequests.push(req);\n return true;\n }\n\n protected checkHeaders(headers: any): boolean {\n if (!headers || !headers.cookie || !headers.referer || !headers.host) {\n return false;\n }\n return headers.referer.indexOf(headers.host) >= 0;\n }\n\n protected makeOptions(options?: IRequestOptions, method: string = \"GET\", body?: any): IRequestOptions {\n // Set base options\n options = options ? {...options} : {};\n options.method = method;\n options.observe = options.observe || \"body\";\n options.originalHeaders = options.originalHeaders || (options.headers as IHttpHeaders) || {};\n options.withCredentials = ObjectUtils.isBoolean(options.withCredentials) ? options.withCredentials : this.withCredentials;\n options.body = body || {};\n // Set cookies from server side request\n const headers = !this.request ? null : this.request.headers;\n if (this.checkHeaders(headers)) {\n options.headers[\"Cookie\"] = headers.cookie;\n }\n options.headers = this.makeHeaders(options);\n options.params = this.makeParams(options);\n return options;\n }\n\n protected makeHeaders(options: IRequestOptions): HttpHeaders {\n return this.client.makeHeaders(Object.assign({}, this.requestHeaders, options?.headers || {}));\n }\n\n protected makeParams(options: IRequestOptions): HttpParams {\n return this.client.makeParams(Object.assign({}, this.requestParams, options?.params || {}));\n }\n\n protected parseResponse(response: any, url: string, options: IRequestOptions): any {\n return response;\n }\n\n protected parseUrl(url: string): string {\n return this.url(url).replace(/(?:((?!:).\\/)\\/)/g, \"$1\");\n }\n\n protected async absoluteUrl(url: string, options: IRequestOptions): Promise<string> {\n return this.parseUrl(url);\n }\n\n protected expressRequestUrl(url: string): string {\n const req = this.request;\n if (!req || !url || url.startsWith(\"http\") || url.startsWith(\"//\")) return url;\n const separator = url.startsWith(\"/\") ? \"\" : \"/\";\n return `${req.protocol}://${req.get(\"host\")}${separator}${url}`;\n }\n}\n","import {Injectable} from \"@angular/core\";\n\nimport {IRequestOptions} from \"../common-types\";\nimport {BaseHttpService} from \"./base-http.service\";\n\n@Injectable()\nexport class LocalHttpService extends BaseHttpService {\n\n private images: { [url: string]: Promise<HTMLImageElement> };\n\n get name(): string {\n return \"local-http\";\n }\n\n protected get withCredentials(): boolean {\n return false;\n }\n\n protected initService(): void {\n this.images = {};\n }\n\n url(url: string): string {\n if (!url) return url;\n const config = this.configs.config;\n const baseUrl = config.cdnUrl || config.baseUrl || \"\";\n return url.startsWith(\"data:\") || url.startsWith(\"http\") || url.startsWith(\"//\")\n ? url\n : `${baseUrl}${url}`;\n }\n\n get(url: string, options?: IRequestOptions): Promise<any> {\n this.cache[url] = this.cache[url] || this.getPromise(url, options);\n return this.cache[url];\n }\n\n getImage(url: string): Promise<HTMLImageElement> {\n if (this.universal.isServer)\n return Promise.resolve(null);\n if (!url)\n return Promise.resolve(new Image());\n\n this.images[url] = this.images[url] || new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image();\n image.crossOrigin = \"Anonymous\";\n image.src = this.url(url);\n image.onload = () => resolve(image);\n image.onerror = reject;\n });\n\n return this.images[url];\n }\n}\n","import {Inject, Injectable, Type} from \"@angular/core\";\nimport {IWasi, IWasm, IWasmAsync, WASI_IMPLEMENTATION} from \"../common-types\";\nimport {WasmWorkerProxy} from \"../utils/wasm-worker-proxy\";\nimport {UniversalService} from \"./universal.service\";\nimport {LocalHttpService} from \"./local-http.service\";\nimport {Wasi} from \"../utils/wasi\";\n\n/**\n * Use this service to load WebAssembly modules\n */\n@Injectable()\nexport class WasmService {\n\n protected wasi: Type<Wasi>\n protected modules: { [url: string]: Promise<any> };\n protected workerModules: { [url: string]: any };\n\n constructor(protected universal: UniversalService,\n protected http: LocalHttpService,\n @Inject(WASI_IMPLEMENTATION) wasi: IWasi) {\n this.wasi = wasi.constructor as any;\n }\n\n async getModule<T = IWasm>(name: string): Promise<T> {\n if (!this.universal.isBrowser || !name)\n return null;\n this.modules = this.modules || {};\n this.modules[name] = this.modules[name] || this.http.get(`wasm/${name}.wasm`, {\n responseType: \"arraybuffer\"\n }).then(async (bytes) => {\n const wasi = new this.wasi();\n return await wasi.instantiate(bytes);\n });\n return this.modules[name] as Promise<any>;\n }\n\n getWorkerModule<T = IWasmAsync>(name: string): T {\n if (!this.universal.isBrowser || !name)\n return null;\n this.workerModules = this.workerModules || {};\n this.workerModules[name] = new WasmWorkerProxy(\n this.http.url(`wasm/${name}.wasm`),\n this.wasi\n );\n return this.workerModules[name] ;\n }\n}\n","import {Inject, Injectable, Injector, Type} from \"@angular/core\";\nimport {StateService} from \"./state.service\";\nimport {AUTH_SERVICE, IAclComponent, IAuthService, IRouteStateInfo} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {AuthGuard} from \"../utils/auth.guard\";\n\nconst emptyGuards: any[] = [];\n\n@Injectable()\nexport class AclService {\n\n protected components: IRouteStateInfo[];\n\n constructor(readonly injector: Injector, readonly state: StateService, @Inject(AUTH_SERVICE) readonly auth: IAuthService) {\n this.components = [];\n this.auth.userChanged.subscribe(() => {\n this.components.forEach(t => t.dirty = true);\n const info = this.getStateInfo();\n const check: Promise<boolean> = info && info.guard instanceof AuthGuard ? info.guard.checkRoute(info.route) : Promise.resolve(true);\n check.then(result => {\n if (result) {\n if (!info || !info.dirty) return;\n info.dirty = false;\n const component: IAclComponent = info.component;\n if (!info.component) return;\n if (info.first) {\n if (ObjectUtils.isFunction(component.onUserInitialized)) {\n component.onUserInitialized();\n }\n info.first = false;\n return;\n }\n if (ObjectUtils.isFunction(component.onUserChanged)) {\n component.onUserChanged();\n }\n return;\n }\n (info.guard as AuthGuard).getReturnState(info.route).then(returnState => {\n if (!returnState) return;\n this.state.navigate(returnState);\n });\n });\n });\n this.state.subscribe(() => {\n const info = this.getStateInfo();\n if (!info?.component) return;\n const component: IAclComponent = info.component;\n if (ObjectUtils.isFunction(component.onUserInitialized)) {\n component.onUserInitialized();\n }\n info.first = false;\n });\n }\n\n protected getStateInfo(): IRouteStateInfo {\n const route = this.state.route;\n if (!route) return null;\n let info = this.components.find(t => t.route == this.state.route);\n if (!info) {\n const guardType: Type<AuthGuard> = (route.canActivate || emptyGuards)[0];\n info = {\n route: this.state.route,\n guard: guardType ? this.injector.get(guardType) : null,\n dirty: true,\n first: true\n };\n this.components.push(info);\n }\n info.component = this.state.component;\n return info;\n }\n}\n","import {Injectable} from \"@angular/core\";\n\nimport {IApiService, IHttpParams, IRequestOptions, ProgressListener} from \"../common-types\";\nimport {BaseHttpService} from \"./base-http.service\";\nimport {IPaginationData} from \"../common-types\";\n\n@Injectable()\nexport class ApiService extends BaseHttpService implements IApiService {\n\n get name(): string {\n return \"api\";\n }\n\n url(url: string): string {\n const baseUrl = this.expressRequestUrl(`/api/${url}`);\n if (url == \"api-docs\" || url == \"socket\") {\n return baseUrl.replace(\"/api/\", \"/\");\n }\n return baseUrl;\n }\n\n get(url: string, options?: IRequestOptions, body?: any): Promise<any> {\n return this.getPromise(url, options, body);\n }\n\n delete(url: string, options?: IRequestOptions, body?: any): Promise<any> {\n return this.deletePromise(url, options, body);\n }\n\n post(url: string, body?: any, options?: IRequestOptions): Promise<any> {\n return this.postPromise(url, body, options);\n }\n\n put(url: string, body?: any, options?: IRequestOptions): Promise<any> {\n return this.putPromise(url, body, options);\n }\n\n patch(url: string, body?: any, options?: IRequestOptions): Promise<any> {\n return this.patchPromise(url, body, options);\n }\n\n upload(url: string, body: any, listener?: ProgressListener, options?: IRequestOptions): Promise<any> {\n return this.uploadPromise(url, body, listener, options);\n }\n\n list(url: string, params: IHttpParams): Promise<IPaginationData> {\n return this.listPromise(url, params);\n }\n}\n","import {EventEmitter} from \"@angular/core\";\nimport {IRoute, IAuthService} from \"../common-types\";\n\nexport class StaticAuthService implements IAuthService {\n\n isAuthenticated: boolean = true;\n userChanged: EventEmitter<any> = new EventEmitter<any>();\n\n checkAuthenticated(): Promise<boolean> {\n return Promise.resolve(this.isAuthenticated);\n }\n\n getReturnState(route: IRoute): string[] {\n return null;\n }\n}\n","import {Inject, Injectable, Injector, isDevMode, Optional} from \"@angular/core\";\nimport JSON5 from \"json5\";\nimport {UniversalService} from \"./universal.service\";\nimport {APP_BASE_URL, BASE_CONFIG, IConfigService, IConfiguration, ROOT_ELEMENT, SCRIPT_PARAMS} from \"../common-types\";\nimport {StringUtils} from \"../utils/string.utils\";\nimport {BaseHttpClient} from \"./base-http.client\";\n\n@Injectable()\nexport class ConfigService implements IConfigService {\n\n protected baseConfig: IConfiguration;\n protected loadedConfig: IConfiguration;\n protected scriptParameters: any;\n protected loader: Promise<IConfiguration>;\n protected readonly loaderFunc: () => Promise<IConfiguration>;\n\n get load(): () => Promise<IConfiguration> {\n return this.loaderFunc;\n }\n\n get config(): IConfiguration {\n return this.loadedConfig;\n }\n\n get configUrl(): string {\n return `${this.loadedConfig.baseUrl}config/config.json`;\n }\n\n constructor(readonly http: BaseHttpClient,\n readonly universal: UniversalService,\n readonly injector: Injector,\n @Inject(ROOT_ELEMENT) readonly rootElement: any,\n @Inject(APP_BASE_URL) readonly baseUrl: string,\n @Optional() @Inject(BASE_CONFIG) baseConfig: IConfiguration = null,\n @Optional() @Inject(SCRIPT_PARAMS) scriptParams: any = null) {\n for (const key in []) {\n Object.defineProperty(Array.prototype, key, {\n enumerable: false\n });\n }\n this.baseConfig = baseConfig || {};\n this.loadedConfig = Object.assign(\n !this.baseUrl ? {} : {baseUrl: this.baseUrl, baseDomain: StringUtils.parseDomain(this.baseUrl)},\n this.baseConfig\n );\n this.scriptParameters = scriptParams || {};\n this.loaderFunc = () => {\n this.loader = this.loader || new Promise<any>((resolve, reject) => {\n this.loadJson().then(config => {\n this.loadedConfig = config = Object.assign(this.loadedConfig, config);\n this.prepareConfig(config).then(c => {\n this.loadedConfig = c;\n c.baseUrl = c.baseUrl || \"/\";\n resolve(c);\n });\n }, reject);\n });\n return this.loader;\n };\n this.initService();\n }\n\n protected initService(): void {\n\n }\n\n protected async loadJson(): Promise<IConfiguration> {\n if (this.universal.isServer) {\n return Promise.resolve(this.loadedConfig);\n }\n const configUrl = this.configUrl;\n try {\n const config5 = await this.http.get(isDevMode() ? `${configUrl}5` : configUrl, {responseType: \"text\"}).toPromise();\n return JSON5.parse(config5);\n } catch (e) {\n try {\n const config = await this.http.get(configUrl).toPromise();\n console.log(`Can't parse json5 config: ${e}`);\n return config;\n } catch (e) {\n throw new Error(`Config file not found at: ${configUrl}`);\n }\n }\n }\n\n protected prepareConfig(config: IConfiguration): Promise<IConfiguration> {\n return Promise.resolve(config);\n }\n\n cloneRootElem(): any {\n if (this.rootElement instanceof HTMLElement) {\n const clone = this.rootElement.cloneNode(true) as HTMLElement\n const children = Array.from(clone.childNodes);\n children.forEach(child => {\n if (child instanceof HTMLElement) {\n child.remove();\n }\n });\n return clone;\n }\n return this.rootElement.cloneNode(true);\n }\n\n prepareUrl(url: string, ending: string): string {\n const project = !this.loadedConfig ? \"\" : this.loadedConfig.project;\n const needsProtocol = url?.startsWith(\"//\") ?? false;\n url = !needsProtocol && url?.startsWith(\"/\") ? this.loadedConfig.baseDomain + url.substr(1) : url || \"\";\n url = `${url.replace(/\\/+$/, \"\")}${ending}`.replace(\"[project]\", project);\n return this.universal.isServer && needsProtocol ? `http:${url}` : url;\n }\n\n getConfigValue(key: string): any {\n return this.loadedConfig[key];\n }\n\n getQueryParameter(name: string, url?: string): string {\n url = url || (this.universal.isBrowser ? window.location.href : \"\");\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n const regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return \"\";\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n }\n}\n","import {ErrorHandler, Injectable, Injector} from \"@angular/core\";\nimport {UniversalService} from \"./universal.service\";\nimport {ERROR_HANDLER, ErrorHandlerCallback, IToasterService, TOASTER_SERVICE} from \"../common-types\";\n\n@Injectable()\nexport class ErrorHandlerService extends ErrorHandler {\n\n private toaster: IToasterService;\n private universal: UniversalService;\n private errorCb: ErrorHandlerCallback;\n private readonly errorMap: any;\n\n constructor(readonly injector: Injector) {\n super();\n this.errorMap = {};\n }\n\n handleError(error: Error): void {\n try {\n this.universal = this.universal || this.injector.get(UniversalService);\n } catch (e) {\n return;\n }\n const date = new Date();\n try {\n this.errorCb = this.errorCb || this.injector.get(ERROR_HANDLER);\n this.errorCb(`[${date}]: ${error.message}\\n${error.stack}`);\n } catch (e) {\n if (this.universal.isServer) {\n console.error(`[${date}]: ${error.message}\\n${error.stack}`);\n return;\n }\n }\n if (this.universal.isServer) return;\n const key = typeof btoa !== \"undefined\" ? btoa(unescape(encodeURIComponent(`${error.message} ${error.stack}`))) : error.message;\n if (this.errorMap[key] && this.errorMap[key].getTime() > date.getTime() - 5000) return;\n this.errorMap[key] = date;\n try {\n this.toaster = this.toaster || this.injector.get(TOASTER_SERVICE);\n this.toaster.error(`[${date}]: ${error.message}\\n${error.stack}`);\n } catch (e) {\n }\n console.error(`[${date}]: ${error.message}\\n${error.stack}`);\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {Subject} from \"rxjs\";\nimport {IUserData} from \"../common-types\";\n\n@Injectable()\nexport class EventsService {\n\n readonly eventForwarded: Subject<Event>;\n readonly stickyUpdated: Subject<boolean>;\n readonly languageChanged: Subject<string>;\n readonly editLanguageChanged: Subject<string>;\n readonly translationsEnabled: Subject<boolean>;\n readonly userChanged: Subject<any>;\n\n private sticky: boolean;\n private user: IUserData;\n\n get isSticky(): boolean {\n return this.sticky;\n }\n\n get isAuthenticated(): boolean {\n return !!this.user;\n }\n\n constructor() {\n this.eventForwarded = new Subject();\n this.stickyUpdated = new Subject();\n this.languageChanged = new Subject();\n this.editLanguageChanged = new Subject<string>();\n this.translationsEnabled = new Subject();\n this.userChanged = new Subject();\n this.sticky = false;\n this.user = null;\n this.userChanged.subscribe(user => {\n this.user = user;\n });\n }\n\n event(e: Event): void {\n this.eventForwarded.next(e);\n }\n\n updateSticky(sticky: boolean): void {\n this.sticky = sticky;\n this.stickyUpdated.next(sticky);\n }\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {ILanguageService, LANGUAGE_SERVICE} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {MathUtils} from \"../utils/math.utils\";\n\n@Injectable()\nexport class FormatterService {\n\n get defaultPrecision(): number {\n return 2;\n }\n\n get defaultNumberFormat(): string {\n return `num + ' mm'`;\n }\n\n get defaultDivider(): number {\n return 1;\n }\n\n constructor(@Inject(LANGUAGE_SERVICE) public language: ILanguageService) {\n\n }\n\n roundNumber(value: number, precision?: number, divider?: number): number {\n return MathUtils.round(value, this.getPrecision(precision), divider || this.defaultDivider);\n }\n\n formatNumber(value: number | string, format?: string, precision?: number, divider?: number, minDigits?: number): string {\n precision = this.getPrecision(precision);\n minDigits = minDigits ?? precision;\n divider = divider || this.defaultDivider;\n const num = ObjectUtils.isNumber(value) ? <number>value : parseFloat(<string>value) || 0;\n const str = (num / divider).toLocaleString(this.language.currentLanguage, {\n minimumFractionDigits: minDigits,\n maximumFractionDigits: precision,\n useGrouping: false\n });\n return ObjectUtils.evaluate(format || this.defaultNumberFormat, {num: str});\n }\n\n formatMillimeter(value: number, precision?: number, divider?: number): string {\n return this.formatNumber(value, `num + ' mm'`, precision, divider);\n }\n\n protected getPrecision(precision: number): number {\n return ObjectUtils.isNumber(precision) ? precision : this.defaultPrecision;\n }\n}\n","import {EventEmitter, Injectable, TemplateRef} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {GlobalComponentModifier} from \"../common-types\";\n\n@Injectable()\nexport class GlobalTemplateService {\n\n readonly templatesUpdated: EventEmitter<void>;\n\n protected globalTemplates: { [id: string]: TemplateRef<any> };\n protected componentModifiers: { [id: string]: GlobalComponentModifier };\n\n constructor() {\n this.templatesUpdated = new EventEmitter<any>();\n this.globalTemplates = {};\n this.componentModifiers = {};\n }\n\n get(id: string, component?: any): TemplateRef<any> {\n const template = this.globalTemplates[id];\n if (!template) return undefined;\n const modifier = this.componentModifiers[id];\n if (ObjectUtils.isFunction(modifier) && component) {\n modifier(component);\n }\n return template;\n }\n\n add(id: string, template: TemplateRef<any>): void {\n this.globalTemplates[id] = template;\n this.templatesUpdated.emit();\n }\n\n remove(id: string): void {\n delete this.globalTemplates[id];\n this.templatesUpdated.emit();\n }\n\n addComponentModifier(id: string, modifier: GlobalComponentModifier): void {\n this.componentModifiers[id] = modifier;\n }\n}\n","import {EventEmitter, Injectable} from \"@angular/core\";\nimport {IIconService} from \"../common-types\";\n\ndeclare const icons: {\n [icon: string]: string;\n};\n\n@Injectable()\nexport class IconService implements IIconService {\n\n get isDisabled(): boolean {\n return this.disabled;\n }\n\n set isDisabled(value: boolean) {\n this.disabled = value;\n this.iconsLoaded.emit();\n }\n\n public readonly iconsLoaded: EventEmitter<any>;\n\n protected disabled: boolean;\n\n constructor() {\n this.iconsLoaded = new EventEmitter<any>();\n this.disabled = false;\n }\n\n getIcon(icon: string, activeIcon: string, active: boolean): Promise<string> {\n icon = typeof icons == \"undefined\" ? icon : (icons[icon] || icon);\n activeIcon = typeof icons == \"undefined\" ? activeIcon : (icons[activeIcon] || icon);\n return Promise.resolve(active ? activeIcon : icon);\n }\n}\n","import {Inject, Injectable} from \"@angular/core\";\r\nimport {\r\n CONFIG_SERVICE,\r\n GlobalTranslations,\r\n IConfigService,\r\n IConfiguration,\r\n ILanguageService,\r\n IPromiseService,\r\n ITranslation,\r\n ITranslations, PROMISE_SERVICE\r\n} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {EventsService} from \"./events.service\";\r\nimport {StorageService} from \"./storage.service\";\r\nimport {UniversalService} from \"./universal.service\";\r\nimport {BaseHttpClient} from \"./base-http.client\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\n\r\nexport const EMPTY_DICT: ITranslations = {};\r\n\r\n@Injectable()\r\nexport class StaticLanguageService implements ILanguageService {\r\n\r\n get defaultLanguage(): string {\r\n return this.configs.getQueryParameter(\"lang\") || this.storage.get(\"language\", this.getDefaultLanguage());\r\n }\r\n\r\n get dictionary(): ITranslations {\r\n return this.mergedTranslations[this.currentLanguage] || EMPTY_DICT;\r\n }\r\n\r\n set dictionary(value: ITranslations) {\r\n this.setDictionary(this.currentLang, value);\r\n this.mergeTranslations();\r\n }\r\n\r\n get languages(): ReadonlyArray<string> {\r\n return this.languageList;\r\n }\r\n\r\n get currentLanguage(): string {\r\n return this.currentLang || this.defaultLanguage;\r\n }\r\n\r\n set currentLanguage(lang: string) {\r\n this.currentLang = lang;\r\n this.events.languageChanged.next(lang);\r\n }\r\n\r\n get editLanguage(): string {\r\n return this.editLang || this.currentLanguage;\r\n }\r\n\r\n set editLanguage(lang: string) {\r\n this.editLang = lang || this.currentLanguage;\r\n this.events.editLanguageChanged.next(this.editLang);\r\n }\r\n\r\n get enableTranslations(): boolean {\r\n return this.enableTrans;\r\n }\r\n\r\n set enableTranslations(value: boolean) {\r\n this.enableTrans = value;\r\n this.events.translationsEnabled.next(value);\r\n }\r\n\r\n get disableTranslations(): boolean {\r\n return !this.enableTranslations;\r\n }\r\n\r\n set disableTranslations(value: boolean) {\r\n this.enableTranslations = !value;\r\n }\r\n\r\n get httpClient(): HttpClient {\r\n return this.client;\r\n }\r\n\r\n get config(): IConfiguration {\r\n return this.configs.config;\r\n }\r\n\r\n get universal(): UniversalService {\r\n return this.storage.universal;\r\n }\r\n\r\n protected editLang: string;\r\n protected currentLang: string;\r\n protected enableTrans: boolean;\r\n protected languageList: string[];\r\n protected readonly translations: GlobalTranslations;\r\n protected overrideTranslations: GlobalTranslations;\r\n protected mergedTranslations: GlobalTranslations;\r\n\r\n constructor(@Inject(EventsService) readonly events: EventsService,\r\n @Inject(StorageService) readonly storage: StorageService,\r\n @Inject(CONFIG_SERVICE) readonly configs: IConfigService,\r\n @Inject(PROMISE_SERVICE) protected promises: IPromiseService,\r\n @Inject(BaseHttpClient) protected client: BaseHttpClient) {\r\n this.editLang = null;\r\n this.currentLang = null;\r\n this.enableTrans = true;\r\n this.languageList = [];\r\n this.translations = {\r\n none: {}\r\n };\r\n this.overrideTranslations = {\r\n none: {}\r\n };\r\n this.mergedTranslations = this.translations;\r\n this.initService();\r\n }\r\n\r\n protected initService(): void {\r\n\r\n }\r\n\r\n replaceLanguages(languages: string[]): void {\r\n languages = Array.isArray(languages) && languages.length > 0 ? languages : this.languageList;\r\n this.languageList = Array.from(new Set<string>(languages));\r\n this.languageList.forEach(lang => {\r\n this.translations[lang] = this.translations[lang] || EMPTY_DICT;\r\n });\r\n }\r\n\r\n addLanguages(languages: string[]): void {\r\n if (!Array.isArray(languages) || languages.length == 0) return;\r\n this.replaceLanguages(this.languageList.concat(languages));\r\n }\r\n\r\n setOverrideTranslations(translations: GlobalTranslations): void {\r\n if (ObjectUtils.isObject(translations)) {\r\n this.overrideTranslations = translations;\r\n this.mergeTranslations();\r\n return;\r\n }\r\n this.overrideTranslations = {};\r\n this.mergedTranslations = this.translations;\r\n }\r\n\r\n getTranslationSync(key: string, params: Object = null): string {\r\n key = String(key ?? \"\");\r\n if (!key) return \"\";\r\n try {\r\n const lowerKey = key.toLocaleLowerCase();\r\n const dict = this.dictionary;\r\n if (lowerKey in dict && this.enableTranslations) {\r\n return this.interpolate(dict[lowerKey], params);\r\n }\r\n return this.interpolate(key, params);\r\n } catch (reason) {\r\n console.warn(\"ERROR IN TRANSLATIONS\", reason);\r\n return key;\r\n }\r\n }\r\n\r\n async getTranslation(key: string, params: any = null): Promise<string> {\r\n await this.loadDictionary();\r\n return this.getTranslationSync(key, params);\r\n }\r\n\r\n getTranslations(...keys: string[]): Promise<ITranslations> {\r\n return this.promises.create<ITranslations>(resolve => {\r\n this.promises.all(keys.map(key => this.getTranslation(key))).then(translations => {\r\n resolve(keys.reduce((result, key, i) => {\r\n result[key] = translations[i];\r\n return result;\r\n }, {}));\r\n });\r\n });\r\n }\r\n\r\n getTranslationFromObject(translations: ITranslations, params?: any, lang?: string): string {\r\n lang = lang || this.currentLanguage;\r\n return this.interpolate(translations ? (translations[lang] || \"\") : \"\")\r\n }\r\n\r\n getTranslationFromArray(translations: ITranslation[], params?: any, lang?: string): string {\r\n lang = lang || this.currentLanguage;\r\n const translation = translations ? translations.find(t => t.lang == lang) : null;\r\n return this.interpolate(translation ? translation.translation : \"\", params);\r\n }\r\n\r\n protected async loadDictionary(): Promise<ITranslations> {\r\n return this.dictionary;\r\n }\r\n\r\n protected setDictionary(lang: string, dictionary: ITranslations): ITranslations {\r\n this.translations[lang] = Object.keys(dictionary || {}).reduce((res, key) => {\r\n res[key.toLocaleLowerCase()] = dictionary[key];\r\n return res;\r\n }, {} as ITranslations);\r\n return this.translations[lang];\r\n }\r\n\r\n protected interpolate(expr: string | Function, params?: Object): string {\r\n if (typeof expr === \"string\") {\r\n // Force single spaces to be empty strings, for labeling in forms.\r\n return expr === \" \" ? \"\" : this.interpolateString(expr, params);\r\n }\r\n if (typeof expr === \"function\") {\r\n return expr(params);\r\n }\r\n return expr as string;\r\n }\r\n\r\n protected interpolateString(expr: string, params?: Object) {\r\n if (!expr || !params) return expr;\r\n return expr.replace(/{{\\s?([^{}\\s]*)\\s?}}/g, (substring: string, b: string) => {\r\n const r = ObjectUtils.getValue(params, b, \"\");\r\n return ObjectUtils.isDefined(r) ? r : substring;\r\n });\r\n }\r\n\r\n protected getDefaultLanguage(): string {\r\n if (!this.universal.isBrowser || typeof window.navigator === \"undefined\") {\r\n return \"de\";\r\n }\r\n let browserLang: string = (window.navigator.languages ? window.navigator.languages[0] : null)\r\n || window.navigator.language || window.navigator[\"browserLanguage\"] || window.navigator[\"userLanguage\"] || null;\r\n if (!browserLang) return browserLang;\r\n\r\n [\"-\", \"_\"].forEach(splitter => {\r\n if (browserLang.indexOf(splitter) >= 0) {\r\n browserLang = browserLang.split(splitter)[0];\r\n }\r\n })\r\n return browserLang;\r\n }\r\n\r\n protected mergeTranslations(): void {\r\n const languages = new Set([\r\n ...Object.keys(this.translations),\r\n ...Object.keys(this.overrideTranslations)\r\n ]);\r\n this.mergedTranslations = Array.from(languages).reduce((merged, language) => {\r\n merged[language] = {\r\n ...(this.translations[language] || EMPTY_DICT),\r\n ...(this.overrideTranslations[language] || EMPTY_DICT),\r\n };\r\n return merged;\r\n }, {} as GlobalTranslations);\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {BehaviorSubject, combineLatest, firstValueFrom, Observable} from \"rxjs\";\r\nimport {map} from \"rxjs/operators\";\r\nimport {ILanguageSetting, ILanguageSettings, ITranslations} from \"../common-types\";\r\nimport {StaticLanguageService, EMPTY_DICT} from \"./static-language.service\";\r\n\r\n@Injectable()\r\nexport class LanguageService extends StaticLanguageService {\r\n\r\n protected translationRequests: Record<string, Promise<ITranslations>>;\r\n protected settingsPromise: Promise<ILanguageSettings>;\r\n protected languageSettings: BehaviorSubject<ILanguageSettings>;\r\n\r\n get currentLanguage(): string {\r\n return this.currentLang || this.defaultLanguage;\r\n }\r\n\r\n set currentLanguage(lang: string) {\r\n this.useLanguage(lang).then(() => {\r\n this.events.languageChanged.next(lang);\r\n });\r\n }\r\n\r\n get settings(): ILanguageSetting {\r\n const settings = this.languageSettings.value;\r\n return !settings ? {} : settings.settings[this.currentLanguage] || {};\r\n }\r\n\r\n get $settings(): Observable<ILanguageSetting> {\r\n this.loadSettings().then(s => this.languageSettings.next(s));\r\n return combineLatest([this.languageSettings, this.events.languageChanged]).pipe(map(([settings, lang]) => {\r\n return !settings ? {} : settings.settings[lang as string] || {};\r\n }));\r\n }\r\n\r\n protected initService(): void {\r\n super.initService();\r\n this.client.setExtraRequestParam(\"language\", \"en\");\r\n this.translationRequests = {};\r\n this.languageSettings = new BehaviorSubject<ILanguageSettings>(null);\r\n if (this.universal.isServer) return;\r\n window[\"setLanguage\"] = (lang: string) => {\r\n this.currentLanguage = lang;\r\n };\r\n }\r\n\r\n async initFromSettings(): Promise<any> {\r\n const defaultLanguage = this.defaultLanguage;\r\n const settings = await this.loadSettings();\r\n this.languageSettings.next(settings);\r\n const devLanguages = settings.devLanguages || [];\r\n this.languageList = (settings.languages || []).filter(lang => {\r\n const unavailable = settings.settings[lang]?.unavailable;\r\n if (unavailable) {\r\n const parts = unavailable.split(\"/\");\r\n const value = parts[0] || parts[1];\r\n const flags = parts.length > 1 ? parts[parts.length - 1] : \"g\";\r\n if (new RegExp(value, flags).test(this.config.baseDomain)) return false;\r\n }\r\n return devLanguages.indexOf(lang) < 0;\r\n });\r\n if (this.languageList.length === 0) {\r\n this.languageList = [defaultLanguage];\r\n }\r\n const lang = this.selectLanguage(this.currentLang)\r\n ?? this.selectLanguage(defaultLanguage)\r\n ?? this.selectLanguage(settings.defaultLanguage || this.languageList[0]);\r\n await this.useLanguage(lang);\r\n this.events.languageChanged.next(lang);\r\n }\r\n\r\n protected selectLanguage(lang: string): string {\r\n if (!lang) return null;\r\n return this.languageList.length === 0 || this.languageList.includes(lang)\r\n ? lang : null;\r\n }\r\n\r\n protected async useLanguage(lang: string): Promise<ITranslations> {\r\n lang = this.selectLanguage(lang);\r\n this.client.setExtraRequestParam(\"language\", lang);\r\n if (lang === this.currentLang) return this.dictionary;\r\n this.storage.set(\"language\", lang);\r\n this.currentLang = lang;\r\n return this.loadDictionary();\r\n }\r\n\r\n async getDictionary(lang: string): Promise<ITranslations> {\r\n if (!lang) return EMPTY_DICT;\r\n const ext = this.config.translationExt || ``;\r\n this.translationRequests[lang] = this.translationRequests[lang] || firstValueFrom(this.client.get<ITranslations>(`${this.config.translationUrl}${lang}${ext}`))\r\n .then(response => {\r\n response = response || {};\r\n const dictionary = Object.keys(response).reduce((result, key) => {\r\n result[key.toLocaleLowerCase()] = response[key];\r\n return result;\r\n }, {} as ITranslations);\r\n this.translations[lang] = dictionary;\r\n this.mergeTranslations();\r\n return dictionary;\r\n }).catch(error => {\r\n console.warn(\"Translation dictionary problem:\", error);\r\n return EMPTY_DICT;\r\n })\r\n return this.translationRequests[lang];\r\n }\r\n\r\n protected async loadDictionary(): Promise<ITranslations> {\r\n return this.getDictionary(this.currentLang);\r\n }\r\n\r\n protected loadSettings(): Promise<ILanguageSettings> {\r\n const ext = this.config.translationExt || ``;\r\n this.settingsPromise = this.settingsPromise || firstValueFrom(this.client.get<ILanguageSettings>(`${this.config.translationUrl}languageSettings${ext}`))\r\n .catch(error => {\r\n console.warn(\"Translation settings problem:\", error);\r\n return {\r\n languages: [\"de\", \"en\", \"hu\"],\r\n devLanguages: [],\r\n defaultLanguage: \"de\",\r\n settings: {\r\n de: {},\r\n hu: {},\r\n en: {}\r\n }\r\n };\r\n });\r\n return this.settingsPromise;\r\n }\r\n}\r\n","import {Inject, Injectable} from \"@angular/core\";\nimport {API_SERVICE, IApiService, IOpenApiSchema, IOpenApiSchemas} from \"../common-types\";\n\n@Injectable()\nexport class OpenApiService {\n\n private schemasPromise: Promise<IOpenApiSchemas>;\n\n constructor(@Inject(API_SERVICE) readonly api: IApiService) {\n\n }\n\n getSchemas(): Promise<IOpenApiSchemas> {\n this.schemasPromise = this.schemasPromise || new Promise((resolve => {\n this.api.get(\"api-docs\").then(res => {\n const schemas: IOpenApiSchemas = res.components?.schemas || res.definitions || {};\n Object.values(schemas).forEach(schema => {\n Object.keys(schema.properties || {}).forEach(p => {\n schema.properties[p].id = p;\n });\n });\n resolve(schemas);\n }, () => {\n resolve({});\n });\n }));\n return this.schemasPromise;\n }\n\n async getSchema(name: string): Promise<IOpenApiSchema> {\n const schemas = await this.getSchemas();\n const schema = schemas[name];\n if (!schema) return null;\n return schemas[name];\n }\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {ILanguageService, IToasterService, LANGUAGE_SERVICE} from \"../common-types\";\n\n@Injectable()\nexport class ConsoleToasterService implements IToasterService {\n\n constructor(@Inject(LANGUAGE_SERVICE) private language: ILanguageService) {\n\n }\n\n error(message: string, params?: any, title?: string): void {\n this.translateMessage(message, params, str => console.log(str, title, \"background: #BD362F; color: #ffffff\"));\n }\n\n info(message: string, params?: any, title?: string): void {\n this.translateMessage(message, params, str => console.log(str, title, \"background: #2F96B4; color: #ffffff\"));\n }\n\n success(message: string, params?: any, title?: string): void {\n this.translateMessage(message, params, str => console.log(str, title, \"background: #51A351; color: #ffffff\"));\n }\n\n warning(message: string, params?: any, title?: string): void {\n this.translateMessage(message, params, str => console.log(str, title, \"background: #F89406; color: #ffffff\"));\n }\n\n private translateMessage(message: string, params: any, callback: (message: string) => void): void {\n this.language.getTranslation(message, params).then(callback);\n }\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {DefaultUrlSerializer, UrlSegment, UrlSegmentGroup, UrlTree} from \"@angular/router\";\nimport {ILanguageService, LANGUAGE_SERVICE} from \"../common-types\";\n\nexport interface IUrlDictionary {\n [key: string]: string\n}\n\n@Injectable()\nexport class TranslatedUrlSerializer extends DefaultUrlSerializer {\n\n protected cache: {[lang: string]: IUrlDictionary};\n\n constructor(@Inject(LANGUAGE_SERVICE) readonly language: ILanguageService) {\n super();\n this.cache = {};\n }\n\n serialize(tree: UrlTree): string {\n const copy = new UrlTree();\n const dictionary = this.getDictionary(true);\n copy.root = this.modifyTreeRecursive(tree.root, segment => {\n segment.path = dictionary[segment.path] || segment.path;\n });\n copy.queryParams = tree.queryParams;\n return super.serialize(copy);\n }\n\n parse(url: string): UrlTree {\n const tree = super.parse(url);\n const dictionary = this.getDictionary(false);\n tree.root = this.modifyTreeRecursive(tree.root, segment => {\n segment.path = dictionary[segment.path] || segment.path;\n });\n return tree;\n }\n\n getDictionary(serialize: boolean): IUrlDictionary {\n const method = serialize ? `serialize` : `parse`;\n const key = `${this.language.currentLanguage}-${method}`;\n if (!this.cache[key]) {\n const dict = this.language.dictionary;\n this.cache[key] = Object.keys(dict).reduce((res, key) => {\n if (!key.startsWith(\"route.\")) return res;\n const value = dict[key];\n key = key.replace(\"route.\", \"\");\n res[serialize ? key : value] = serialize ? value : key;\n return res;\n }, {});\n }\n return this.cache[key];\n }\n\n modifyTreeRecursive(segmentGroup: UrlSegmentGroup, cb: (segment: UrlSegment) => void): UrlSegmentGroup {\n if (!segmentGroup) return null;\n const childrenArr = [];\n const children = Object.keys(segmentGroup.children || {}).reduce((res, key) => {\n const child = this.modifyTreeRecursive(segmentGroup.children[key], cb);\n childrenArr.push(child);\n res[key] = child;\n return res;\n }, {});\n const newGroup = new UrlSegmentGroup(segmentGroup.segments.map(s => {\n s = new UrlSegment(s.path, Object.assign({}, s.parameters));\n cb(s);\n return s;\n }), children);\n childrenArr.forEach(c => {\n c.parent = newGroup;\n });\n return newGroup;\n }\n}\n","import {EventEmitter, Inject, Injectable, NgZone} from \"@angular/core\";\nimport {IPromiseService} from \"../common-types\";\n\n@Injectable()\nexport class PromiseService implements IPromiseService {\n\n get count(): number {\n return this.promiseCount;\n }\n\n get onChanged(): EventEmitter<number> {\n return this.promiseChanged;\n }\n\n protected promiseCount: number;\n protected readonly promiseChanged: EventEmitter<number>;\n\n constructor(@Inject(NgZone) readonly zone: NgZone) {\n this.promiseCount = 0;\n this.promiseChanged = new EventEmitter<number>();\n }\n\n create<T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T> {\n return this.add(this.zone.runOutsideAngular(() => new Promise<T>(executor)));\n }\n\n all(promises: Promise<any>[]): Promise<any> {\n return this.add(this.zone.runOutsideAngular(() => Promise.all(promises)));\n }\n\n resolve<T>(value: T | PromiseLike<T>): Promise<T> {\n return this.add(this.zone.runOutsideAngular(() => Promise.resolve(value)));\n }\n\n reject<T>(value: T | PromiseLike<T>): Promise<T> {\n return this.add(this.zone.runOutsideAngular(() => Promise.reject(value)));\n }\n\n protected promiseFinished(): void {\n if (this.promiseCount == 0) return;\n this.promiseCount--;\n this.promiseChanged.emit(this.promiseCount);\n }\n\n protected add<T>(promise: Promise<T>): Promise<T> {\n this.promiseCount++;\n this.promiseChanged.emit(this.promiseCount);\n return new Promise<any>((resolve, reject) => {\n promise.then(v => {\n resolve(v);\n this.promiseFinished();\n }, r => {\n reject(r);\n this.promiseFinished();\n });\n });\n }\n}\n","import elementResizeDetectorMaker from \"element-resize-detector\";\r\nimport type {Erd} from \"element-resize-detector\";\r\nimport {ResizeEventStrategy} from \"../common-types\";\r\n\r\nexport class ResizeDetector {\r\n\r\n protected readonly detector: Erd;\r\n protected isObservable: boolean;\r\n protected observers: Map<HTMLElement, ResizeObserver>;\r\n\r\n constructor(protected resizeStrategy: ResizeEventStrategy) {\r\n this.detector = elementResizeDetectorMaker({\r\n strategy: resizeStrategy === \"observer\" ? \"object\" : resizeStrategy\r\n });\r\n this.isObservable = resizeStrategy === \"observer\" && typeof ResizeObserver === \"function\";\r\n this.observers = new Map();\r\n }\r\n\r\n listenTo(elem: HTMLElement, cb: (el: HTMLElement) => void): void {\r\n if (!this.isObservable) {\r\n this.detector.listenTo(elem, cb);\r\n return;\r\n }\r\n if (this.observers.has(elem)) return;\r\n const observer = new ResizeObserver(() => {\r\n requestAnimationFrame(() => {\r\n cb(elem);\r\n });\r\n });\r\n observer.observe(elem);\r\n this.observers.set(elem, observer);\r\n }\r\n\r\n uninstall(elem: HTMLElement): void {\r\n if (!this.isObservable) {\r\n this.detector.uninstall(elem);\r\n return;\r\n }\r\n if (!this.observers.has(elem)) return;\r\n const observer = this.observers.get(elem);\r\n observer.unobserve(elem);\r\n this.observers.delete(elem);\r\n }\r\n}\r\n","import {ɵDomEventsPlugin as EventManagerPlugin} from \"@angular/platform-browser\";\nimport {Inject, Injectable} from \"@angular/core\";\nimport {DOCUMENT} from \"@angular/common\";\n\nimport {RESIZE_DELAY, RESIZE_STRATEGY, ResizeEventStrategy} from \"../common-types\";\nimport {TimerUtils} from \"../utils/timer.utils\";\nimport {UniversalService} from \"../services/universal.service\";\nimport {ResizeDetector} from \"./resize-detector\";\n\nfunction emptyRemove(): void {\n\n}\n\nfunction isWindow(el: any): boolean {\n return typeof window !== \"undefined\" && el === window;\n}\n\n@Injectable()\nexport class ResizeEventPlugin extends EventManagerPlugin {\n\n static readonly EVENT_NAME: string = \"resize\";\n\n readonly detector: ResizeDetector;\n\n constructor(@Inject(DOCUMENT) doc: any,\n @Inject(RESIZE_DELAY) protected resizeDelay: number,\n @Inject(RESIZE_STRATEGY) protected resizeStrategy: ResizeEventStrategy,\n readonly universal: UniversalService) {\n super(doc);\n this.detector = new ResizeDetector(resizeStrategy);\n }\n\n supports(eventName: string) {\n return eventName === ResizeEventPlugin.EVENT_NAME;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n return zone.runOutsideAngular(() => {\n if (this.universal.isServer)\n return emptyRemove;\n const timer = TimerUtils.createTimeout();\n const cb = (el: any) => {\n timer.set(() => {\n zone.run(() => handler(el));\n }, this.resizeDelay);\n };\n if (isWindow(element)) {\n element.addEventListener(eventName, cb);\n }\n else {\n this.detector.listenTo(element, cb);\n }\n return () => {\n try {\n if (isWindow(element)) {\n element.removeEventListener(eventName, cb);\n }\n else {\n this.detector.uninstall(element);\n }\n }\n catch (e) {\n } finally {\n timer.clear();\n }\n };\n });\n }\n}\n","import {ɵDomEventsPlugin as EventManagerPlugin} from \"@angular/platform-browser\";\nimport {Inject, Injectable} from \"@angular/core\";\nimport {DOCUMENT} from \"@angular/common\";\nimport {UniversalService} from \"../services/universal.service\";\n\nexport function emptyRemove(): void {\n\n}\n\n@Injectable()\nexport class ScrollEventPlugin extends EventManagerPlugin {\n\n private static EVENT_NAME: string = \"scroll\";\n\n constructor(@Inject(DOCUMENT) doc: any, private universal: UniversalService) {\n super(doc);\n }\n\n supports(eventName) {\n return eventName === ScrollEventPlugin.EVENT_NAME;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n return zone.runOutsideAngular(() => {\n if (this.universal.isServer) return emptyRemove;\n const callback = (e: Event) => {\n zone.run(() => handler(e));\n };\n element.addEventListener(eventName, callback);\n return () => element.removeEventListener(eventName, callback);\n });\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"chunk\"\n})\nexport class ChunkPipe implements PipeTransform {\n transform(items: any[], count: number): any[] {\n const result: any[] = [];\n let subResult: any[] = null;\n items.forEach((item, index) => {\n if (index % count == 0) {\n subResult = [];\n result.push(subResult);\n }\n subResult.push(item);\n });\n return result;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport interface IEntry {\n key: string;\n value: any;\n index: number;\n}\n\nconst emptyEntries: IEntry[] = [];\n\n@Pipe({\n name: \"entries\"\n})\nexport class EntriesPipe implements PipeTransform {\n\n transform(value: any): IEntry[] {\n if (!value) return emptyEntries;\n const entries: IEntry[] = [];\n ObjectUtils.iterate(value, (val, key) => {\n entries.push({\n key: key,\n value: val,\n index: entries.length\n });\n });\n return entries;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {IExtraProperties} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"extraItemProperties\"\n})\nexport class ExtraItemPropertiesPipe implements PipeTransform {\n transform(items: any[], properties: IExtraProperties, params: any = {}): any[] {\n const keys = Object.keys(properties);\n keys.forEach(key => {\n const value = properties[key];\n properties[key] = ObjectUtils.isFunction(value) ? value : (item, index, params) => {\n return ObjectUtils.evaluate(value, {\n item: item,\n index: index,\n params: params\n });\n };\n });\n return (items || []).map((item, index) => keys.reduce((result, key) => {\n result[key] = properties[key](item, index, params);\n return result;\n }, {...item}));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultFilter() {\n return true;\n}\n\n@Pipe({\n name: \"filter\"\n})\nexport class FilterPipe implements PipeTransform {\n transform(values: any, filter: any = defaultFilter, params: any = {}): any {\n const isObject = ObjectUtils.isObject(values);\n if (!isObject && !ObjectUtils.isArray(values)) return [];\n const filterFunc = ObjectUtils.isFunction(filter) ? filter : (value, key, params, values) => {\n const index = key;\n return ObjectUtils.evaluate(filter, {value, key, params, values, index});\n };\n if (isObject) {\n return Object.keys(values).filter(key => {\n return filterFunc(values[key], key, params, values);\n }).reduce((result, key) => {\n result[key] = values[key];\n return result;\n }, {})\n }\n return values.filter((value, key) => {\n return filterFunc(value, key, params, values);\n });\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultFilter() {\n return true;\n}\n\n@Pipe({\n name: \"find\"\n})\nexport class FindPipe implements PipeTransform {\n transform(values: any[], filter: any = defaultFilter, params?: any): any {\n if (!ObjectUtils.isArray(values)) return [];\n params = params || {};\n if (ObjectUtils.isObject(params)) {\n params.values = values;\n }\n const filterFunc = ObjectUtils.isFunction(filter) ? filter : (value, index, params, values) => {\n return ObjectUtils.evaluate(filter, {value, index, params, values});\n };\n return values.find((value, index) => filterFunc(value, index, params, values));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {FormatterService} from \"../services/formatter.service\";\n\n@Pipe({\n name: \"formatNumber\"\n})\nexport class FormatNumberPipe implements PipeTransform {\n\n constructor(private formatter: FormatterService) {\n }\n\n transform(value: number, format?: string, precision?: number, divider?: number): string {\n return this.formatter.formatNumber(value, format, precision, divider);\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"getOffset\"\n})\nexport class GetOffsetPipe implements PipeTransform {\n transform(value: any, offset: any): any {\n return value ? (ObjectUtils.isNullOrUndefined(offset) ? value : value[offset]) : null;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"getType\"\n})\nexport class GetTypePipe implements PipeTransform {\n transform(value: any): any {\n return typeof value;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"getValue\"\n})\nexport class GetValuePipe implements PipeTransform {\n\n transform(value: any, path: string, defaultVal: any = \"\"): any {\n return !value ? value : ObjectUtils.getValue(value, path, defaultVal);\n }\n}\n","import {OnDestroy, OnInit, Pipe, PipeTransform, TemplateRef} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {GlobalTemplateService} from \"../services/global-template.service\";\n\n@Pipe({\n pure: false,\n name: \"globalTemplate\"\n})\nexport class GlobalTemplatePipe implements PipeTransform, OnInit, OnDestroy {\n\n protected templatesUpdated: Subscription;\n\n protected cachedTemplateId: string;\n protected cachedTemplate: TemplateRef<any>;\n\n constructor(protected globalTemplates: GlobalTemplateService) {\n this.cachedTemplateId = null;\n this.cachedTemplate = null;\n }\n\n ngOnInit(): void {\n this.templatesUpdated = this.globalTemplates.templatesUpdated.subscribe(() => {\n this.cachedTemplate = null;\n });\n }\n\n ngOnDestroy(): void {\n if (this.templatesUpdated)\n this.templatesUpdated.unsubscribe();\n }\n\n transform(templateId: string, component?: any): TemplateRef<string> {\n if (!templateId) return null;\n if (this.cachedTemplate === null || this.cachedTemplateId !== templateId) {\n this.cachedTemplateId = templateId;\n this.cachedTemplate = this.globalTemplates.get(templateId, component);\n }\n return this.cachedTemplate;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {IGroupMap} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"groupBy\"\n})\nexport class GroupByPipe implements PipeTransform {\n\n transform(records: any[], column: string, map: IGroupMap = null): any {\n const groups = (records || []).reduce((result: any, item: any) => {\n const key = ObjectUtils.getValue(item, column) || \"\";\n const col = map ? (map[key] || \"\") : key;\n const group: any[] = result[col] || [];\n group.push(item);\n result[col] = group;\n return result;\n }, {});\n return Object.keys(groups).map(key => {\n return {group: key, items: groups[key]};\n });\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultFilter() {\n return true;\n}\n\n@Pipe({\n standalone: false,\n name: \"includes\"\n})\nexport class IncludesPipe implements PipeTransform {\n transform(array: any, ...values: any[]): boolean {\n return ObjectUtils.isArray(array) && values.some(v => array.includes(v));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"isType\"\n})\nexport class IsTypePipe implements PipeTransform {\n transform(value: any, type: string): any {\n return (typeof value) === type;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"join\"\n})\nexport class JoinPipe implements PipeTransform {\n\n transform(value: any, separator: string = \", \"): string {\n return (ObjectUtils.isArray(value))\n ? value.join(separator)\n : \"\";\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nconst emptyKeys: any[] = [];\n\n@Pipe({\n name: \"keys\"\n})\nexport class KeysPipe implements PipeTransform {\n\n transform(value: any): any[] {\n if (!value) return emptyKeys;\n return ObjectUtils.isArray(value)\n ? Array.from(value.keys())\n : Object.keys(value);\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultMapper(item) {\n return item;\n}\n\n@Pipe({\n name: \"map\"\n})\nexport class MapPipe implements PipeTransform {\n transform(values: any[], mapper: any = defaultMapper, params: any = {}): any[] {\n if (!ObjectUtils.isArray(values)) return [];\n const mapperFunc = ObjectUtils.isFunction(mapper) ? mapper : (value, index, params) => {\n return ObjectUtils.evaluate(mapper, {\n value: value,\n index: index,\n params: params\n });\n };\n return values.map((value, index) => mapperFunc(value, index, params));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {ArrayUtils} from \"../utils/array.utils\";\n\n@Pipe({\n name: \"max\"\n})\nexport class MaxPipe implements PipeTransform {\n transform(value: any[], selector: any = null, params: any = {}): number {\n selector = selector || (item => <number>item);\n const maxSelector: Function = ObjectUtils.isFunction(value) ? value : (item, index, params) => {\n return ObjectUtils.evaluate(selector, {\n item: item,\n index: index,\n params: params\n });\n };\n return ArrayUtils.max(value, (item, index) => maxSelector(item, index, params));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {ArrayUtils} from \"../utils/array.utils\";\n\n@Pipe({\n name: \"min\"\n})\nexport class MinPipe implements PipeTransform {\n transform(value: any, selector: any = null, params: any = {}): number {\n selector = selector || (item => <number>item);\n const minSelector: Function = ObjectUtils.isFunction(value) ? value : (item, index, params) => {\n return ObjectUtils.evaluate(selector, {\n item: item,\n index: index,\n params: params\n });\n };\n return ArrayUtils.min(value, (item, index) => minSelector(item, index, params));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"pop\"\n})\nexport class PopPipe implements PipeTransform {\n\n transform(value: any[]): any {\n return !Array.isArray(value) ? null : Array.from(value).pop();\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultReducer(result) {\n return result;\n}\n\n@Pipe({\n name: \"reduce\"\n})\nexport class ReducePipe implements PipeTransform {\n transform(values: any[], source: any, reducer: any = defaultReducer, params: any = {}): any {\n if (!ObjectUtils.isArray(values)) return [];\n const mapperFunc = ObjectUtils.isFunction(reducer) ? reducer : (result, value, index, params) => {\n return ObjectUtils.evaluate(reducer, {\n result: result,\n value: value,\n index: index,\n params: params\n });\n };\n return values.reduce((result, value, index) => mapperFunc(result, value, index, params), source);\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nconst empty: any = {};\n\n@Pipe({\n name: \"remap\"\n})\nexport class RemapPipe implements PipeTransform {\n\n transform(map: any, source: any, defaultValue: string = \"key\"): any {\n if (!map) return empty;\n if (!source) return map;\n const remapped = ObjectUtils.filter({map: ObjectUtils.copy(map)}, (value, key, target) => {\n if (ObjectUtils.isArray(value) && value.every(ObjectUtils.isString)) {\n target[key] = value.reduce((result, k) => {\n result[k] = ObjectUtils.getValue(source, k, ObjectUtils.evaluate(defaultValue, {key: k, map: map, source: source}));\n return result;\n }, {});\n return false;\n }\n return true;\n });\n return remapped.map;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"replace\"\n})\nexport class ReplacePipe implements PipeTransform {\n transform(value: string, from: string | RegExp, to: string): string {\n return ObjectUtils.isDefined(value) ? `${value}`.replace(from, to) : ``;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nconst emptyArray: any[] = [];\n\n@Pipe({\n name: \"reverse\"\n})\nexport class ReversePipe implements PipeTransform {\n\n transform(value: any[]): any[] {\n if (!ObjectUtils.isArray(value)) return emptyArray;\n const result = [];\n for (let i = value.length - 1; i >= 0; i--) {\n result.push(value[i]);\n }\n return result;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {FormatterService} from \"../services/formatter.service\";\n\n@Pipe({\n name: \"round\"\n})\nexport class RoundPipe implements PipeTransform {\n\n constructor(private formatter: FormatterService) {\n }\n\n transform(value: number, precision: number = 2, divider: number = 1): number {\n return this.formatter.roundNumber(value, precision, divider);\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {DomSanitizer, SafeHtml} from \"@angular/platform-browser\";\n\n@Pipe({\n name: \"safe\"\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) {\n\n }\n\n transform(value: string, type: string = \"html\"): SafeHtml {\n switch (type) {\n case \"html\":\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case \"style\":\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case \"script\":\n return this.sanitizer.bypassSecurityTrustScript(value);\n case \"url\":\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case \"resourceUrl\":\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error(`SafePipe unable to bypass security for invalid type: ${type}`);\n }\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"shift\"\n})\nexport class ShiftPipe implements PipeTransform {\n\n transform(value: any[]): any {\n return !Array.isArray(value) ? null : Array.from(value).shift();\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"split\"\n})\nexport class SplitPipe implements PipeTransform {\n\n transform(value: any, separator: string = \".\"): any[] {\n return `${value}`.split(separator);\n }\n}\n","import {ChangeDetectorRef, Inject, Injectable, Pipe, PipeTransform} from \"@angular/core\";\nimport {ILanguageService, ITranslations, LANGUAGE_SERVICE, TranslationQuery} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Injectable()\n@Pipe({\n name: \"translate\",\n pure: false\n})\nexport class TranslatePipe implements PipeTransform {\n\n private dictionary: ITranslations;\n private disabled: boolean;\n private query: TranslationQuery;\n private args: any[];\n private params: any;\n private lastValue: string;\n\n get currentLang(): string {\n return this.language.currentLanguage\n }\n\n constructor(readonly cdr: ChangeDetectorRef, @Inject(LANGUAGE_SERVICE) readonly language: ILanguageService) {\n\n }\n\n transform(query: TranslationQuery, ...args: any[]): string {\n if (!query) return \"\";\n let dirty = false;\n const dictionary = this.language.dictionary;\n if (this.dictionary !== dictionary) {\n this.dictionary = dictionary;\n dirty = true;\n }\n const disabled = this.language.disableTranslations;\n if (this.disabled !== disabled) {\n this.disabled = disabled;\n dirty = true;\n }\n if (!ObjectUtils.equals(this.query, query)) {\n this.query = query;\n dirty = true;\n }\n if (!ObjectUtils.equals(this.args, args)) {\n this.args = args;\n this.params = null;\n if (ObjectUtils.isDefined(args[0]) && args.length) {\n if (typeof args[0] === \"string\" && args[0].length) {\n const validArgs: string = args[0]\n .replace(/(\\')?([a-zA-Z0-9_]+)(\\')?(\\s)?:/g, `\"$2\":`)\n .replace(/:(\\s)?(\\')(.*?)(\\')/g, `:\"$3\"`);\n try {\n this.params = JSON.parse(validArgs);\n } catch (e) {\n throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${args[0]}`);\n }\n } else if (typeof args[0] === \"object\" && !Array.isArray(args[0])) {\n this.params = args[0];\n }\n }\n dirty = true;\n }\n if (dirty) {\n if (typeof query === \"object\") {\n this.lastValue = Array.isArray(query)\n ? this.language.getTranslationFromArray(query, this.params)\n : this.language.getTranslationFromObject(query, this.params);\n return this.lastValue;\n }\n if (this.disabled) {\n this.lastValue = query;\n return this.lastValue;\n }\n this.lastValue = this.language.getTranslationSync(query, this.params);\n this.language.getTranslation(query, this.params).then(value => {\n this.lastValue = value;\n if (!this.cdr[\"destroyed\"]) {\n this.cdr.detectChanges();\n }\n });\n }\n return this.lastValue;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nconst emptyValues: any[] = [];\n\n@Pipe({\n name: \"values\"\n})\nexport class ValuesPipe implements PipeTransform {\n\n transform(value: any): any[] {\n if (!value) return emptyValues;\n return ObjectUtils.isArray(value)\n ? value\n : Object.keys(value).map(key => value[key]);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input, OnChanges,\n Output\n} from \"@angular/core\";\nimport {AsyncMethod, IAsyncMessage, IToasterService, TOASTER_SERVICE} from \"../common-types\";\n\n@Directive({\n standalone: false,\n selector: \"[__asmb__]\"\n})\nexport class AsyncMethodBase implements OnChanges {\n\n @Input() disabled: boolean;\n @Input() context: any;\n\n @Output() onSuccess: EventEmitter<IAsyncMessage>;\n @Output() onError: EventEmitter<IAsyncMessage>;\n\n protected loading: boolean;\n\n @HostBinding(\"class.disabled\")\n get isDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding(\"class.loading\")\n get isLoading(): boolean {\n return this.loading;\n }\n\n constructor(@Inject(TOASTER_SERVICE) protected toaster: IToasterService, protected cdr: ChangeDetectorRef) {\n this.onSuccess = new EventEmitter<IAsyncMessage>();\n this.onError = new EventEmitter<IAsyncMessage>();\n }\n\n protected getMethod(): AsyncMethod {\n return async () => null;\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges();\n }\n\n @HostListener(\"click\", [\"$event\"])\n click(ev: Event) {\n ev?.preventDefault();\n if (this.disabled) return true;\n this.callMethod();\n return true;\n }\n\n callMethod(): boolean {\n if (this.loading) return true;\n this.loading = true;\n const method = this.getMethod();\n const result = !method ? null : method(this.context);\n if (!(result instanceof Promise)) {\n this.loading = false;\n return false;\n }\n result.then(result => {\n this.loading = false;\n if (result) {\n this.onSuccess.emit(result);\n this.toaster.success(result.message, result.context);\n }\n }, reason => {\n if (!reason || !reason.message)\n throw new Error(\"Reason must implement IAsyncMessage interface\");\n this.loading = false;\n this.onError.emit(reason);\n this.toaster.error(reason.message, reason.context);\n }).finally(() => {\n if (!this.cdr[\"destroyed\"]) {\n this.cdr.detectChanges();\n }\n });\n return true;\n }\n}\n","import {Directive, Input} from \"@angular/core\";\nimport {AsyncMethod} from \"../common-types\";\nimport {AsyncMethodBase} from \"./async-method.base\";\n\n@Directive({\n selector: \"[async-method]\",\n exportAs: \"async-method\"\n})\nexport class AsyncMethodDirective extends AsyncMethodBase {\n\n @Input(\"async-method\") method: AsyncMethod;\n\n protected getMethod(): AsyncMethod {\n return this.method;\n }\n}\n","import {Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges} from \"@angular/core\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {FileUtils} from \"../utils/file.utils\";\nimport {UniversalService} from \"../services/universal.service\";\n\nconst defaultClass = \"default-image\";\nconst loadingClass = \"loading-image\";\n\n@Directive({\n selector: \"[background]\"\n})\nexport class BackgroundDirective implements OnChanges {\n\n @Input() background: string;\n @Input() backgroundSize: string;\n\n constructor(private http: HttpClient, private element: ElementRef, private renderer: Renderer2, private universal: UniversalService) {\n\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.universal.isServer) {\n this.setBackground(this.background);\n return;\n }\n this.renderer.removeClass(this.element.nativeElement, defaultClass);\n this.renderer.addClass(this.element.nativeElement, loadingClass);\n FileUtils.readDataFromUrl(this.http, this.background).then(url => {\n this.setBackground(url);\n }, () => {\n this.renderer.removeClass(this.element.nativeElement, loadingClass);\n this.renderer.addClass(this.element.nativeElement, defaultClass);\n });\n }\n\n private setBackground(url: string): void {\n this.renderer.removeClass(this.element.nativeElement, loadingClass);\n this.renderer.setStyle(this.element.nativeElement, \"background-image\", `url('${url}')`);\n if (!this.backgroundSize) return;\n this.renderer.setStyle(this.element.nativeElement, \"background-size\", this.backgroundSize);\n }\n}\n","import {Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, Output} from \"@angular/core\";\nimport {AutoPlacementOptions, Boundary, Placement} from \"@floating-ui/dom\";\nimport {DropdownAttachTo} from \"../common-types\";\n\n@Directive({\n standalone: false,\n selector: \"[dd],[drop-down]\",\n exportAs: \"dropdown\"\n})\nexport class DropdownDirective implements OnDestroy {\n\n protected static active: DropdownDirective = null;\n\n protected opened: boolean;\n protected disabled: boolean;\n\n /**\n * Determines if the dropdown should be closed even if we click inside it\n */\n @Input() closeInside: boolean;\n\n /**\n * Determines where the floating element needs to be placed\n */\n @Input() attachTo: DropdownAttachTo;\n\n /**\n * Determines the boundary element of the floating element when shifting\n */\n @Input() boundary: Boundary;\n\n /**\n * Where to place the floating element relative to the reference element.\n */\n @Input() placement: Placement;\n\n /**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\n @Input() autoPlacement: AutoPlacementOptions;\n\n /**\n * Determines if the dropdown content should be displayed in a fixed full screen view under this window width\n * @default 0\n */\n @Input() mobileViewUnder: number;\n\n /**\n * Determines if the dropdown content should always be displayed in a fixed full screen view\n * @default false\n */\n @Input() fixed: boolean;\n\n /**\n * Determines if the dropdown should react to keys to close like 'Esc'\n * @default true\n */\n @Input() keyboardHandler: boolean;\n\n @Output() onShown: EventEmitter<DropdownDirective>;\n @Output() onHidden: EventEmitter<DropdownDirective>;\n @Output() onKeyboard: EventEmitter<KeyboardEvent>;\n\n contentElement: HTMLElement;\n\n private readonly onClick: (event: Event) => void;\n private readonly onKeyDown: (event: KeyboardEvent) => boolean;\n\n get nativeElement(): HTMLElement {\n return this.element.nativeElement;\n }\n\n @HostBinding(\"class.open\")\n get isOpened(): boolean {\n return this.opened;\n }\n\n @HostBinding(\"class.disabled\")\n get getDisabled(): boolean {\n return this.disabled;\n }\n\n @Input()\n set isDisabled(value: boolean) {\n this.disabled = value;\n if (!value) return;\n this.hide();\n }\n\n constructor(protected element: ElementRef<HTMLElement>) {\n this.opened = false;\n this.disabled = false;\n this.closeInside = true;\n this.attachTo = null;\n this.boundary = \"clippingAncestors\";\n this.mobileViewUnder = 0;\n this.fixed = false;\n this.keyboardHandler = true;\n this.onShown = new EventEmitter<any>();\n this.onHidden = new EventEmitter<any>();\n this.onKeyboard = new EventEmitter<KeyboardEvent>();\n this.onClick = (event: MouseEvent): void => {\n // We don't care about clicks with right/center mouse buttons\n if (event.button) return;\n const target = (event.composedPath()?.shift() || event.target) as Node;\n // If blocked closing inside we only consider inside if the target is not directly the contentElement\n // We only have a contentElement in case when we are using *dropdownContent directive\n if (!this.closeInside && (!this.contentElement || target !== this.contentElement)) {\n // Try to determine if we are inside by collecting the possible parent elements to check\n const parents = !this.contentElement ? [] : Array.from(this.contentElement.childNodes);\n if (this.nativeElement) {\n parents.push(this.nativeElement);\n }\n // If one of the parents contains the target then we clicked inside\n if (parents.some(child => child.contains(target))) return;\n }\n setTimeout(() => this.hide(), event.type == \"touchend\" ? 250 : 100);\n };\n this.onKeyDown = (event: KeyboardEvent): boolean => {\n const input = (event.composedPath()?.shift() || event.target) as HTMLInputElement;\n const notInput = !input || (input.tagName !== \"INPUT\" && input.tagName !== \"TEXTAREA\");\n if (\"Tab\" === event.key || notInput) {\n event.stopPropagation();\n event.preventDefault();\n }\n if (\"Esc\" === event.key || \"Escape\" === event.key) {\n this.hide();\n return false;\n }\n this.onKeyboard.emit(event);\n return true;\n };\n }\n\n ngOnDestroy(): void {\n if (DropdownDirective.active === this) {\n DropdownDirective.active = null;\n this.onHidden.emit(this);\n }\n }\n\n showEvent(): void {\n this.onShown.emit(this);\n }\n\n hideEvent(): void {\n this.onHidden.emit(this);\n }\n\n @HostListener(\"keydown.enter\", [\"$event\"])\n @HostListener(\"keydown.space\", [\"$event\"])\n show($event?: Event) {\n if (this.opened) return;\n if ($event) {\n if (!this.keyboardHandler) return true;\n $event.preventDefault();\n }\n if (this.disabled) return true;\n this.opened = true;\n this.showEvent();\n DropdownDirective.active = this;\n // Prevent toggle from selecting an item right after it is shown\n setTimeout(() => {\n if (!this.opened) return;\n document.addEventListener(\"click\", this.onClick);\n document.addEventListener(\"keydown\", this.onKeyDown);\n }, 10);\n return true;\n }\n\n hide() {\n if (!this.opened) return true;\n this.opened = false;\n this.hideEvent();\n document.removeEventListener(\"click\", this.onClick);\n document.removeEventListener(\"keydown\", this.onKeyDown);\n // Prevent toggle from refocus itself after it is hidden because of another toggle\n setTimeout(() => {\n if (DropdownDirective.active === this) {\n DropdownDirective.active = null;\n this.nativeElement?.focus();\n }\n }, 10);\n return true;\n }\n}\n","import {Directive, ElementRef, Inject, OnDestroy, OnInit, Optional, TemplateRef, ViewContainerRef} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {\n arrow,\n autoPlacement,\n autoUpdate,\n computePosition,\n shift,\n MiddlewareData,\n Placement,\n Middleware, limitShift\n} from \"@floating-ui/dom\";\n\nimport {ROOT_ELEMENT} from \"../common-types\";\nimport {DropdownDirective} from \"./dropdown.directive\";\nimport {ObservableUtils} from \"../utils/observable.utils\";\nimport {getCssVariables} from \"../utils/misc\";\n\nconst rectProps = [\"x\", \"y\", \"width\", \"height\"];\n\ninterface ComputeResult {\n styles: {\n position: \"fixed\" | \"absolute\";\n left: string;\n top: string;\n right: string;\n bottom: string;\n },\n placement: Placement;\n isMobileView: boolean;\n middlewareData?: MiddlewareData;\n}\n\n@Directive({\n standalone: false,\n selector: \"[dropdownContent]\",\n exportAs: \"dropdown-content\",\n})\nexport class DropdownContentDirective implements OnInit, OnDestroy {\n\n protected subscription: Subscription;\n protected attachTo: HTMLElement;\n protected attachOutside: boolean;\n protected lastPlacement: string;\n protected cleanUp: () => void;\n\n constructor(protected vcr: ViewContainerRef,\n @Optional() @Inject(ROOT_ELEMENT) protected rootElem: HTMLElement,\n @Optional() protected dropdown: DropdownDirective,\n @Optional() readonly templateRef: TemplateRef<any>) {\n if (!this.dropdown) {\n throw new Error(\"DropdownDirective is required! Please use it inside a dd, drop-down directive attribute\");\n }\n if (!this.templateRef) {\n throw new Error(\"TemplateRef is required! Please use with *dropdownContent\");\n }\n this.lastPlacement = null;\n }\n\n ngOnInit() {\n this.subscription = ObservableUtils.multiSubscription(\n this.dropdown.onShown.subscribe(() => this.createView()),\n this.dropdown.onHidden.subscribe(() => this.destroyView())\n );\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n this.destroyView();\n }\n\n protected createView(init: boolean = false) {\n if (this.dropdown.contentElement) return;\n const mobileWidth = this.dropdown.mobileViewUnder || 0;\n const fixed = this.dropdown.fixed || false;\n const ref = this.dropdown.nativeElement;\n const [content, arrowEl] = this.createWrapper();\n this.dropdown.contentElement = content;\n // Set up floating UI positioning settings\n const middleware: Middleware[] = [];\n if (this.dropdown.autoPlacement) {\n middleware.push(\n shift({\n boundary: this.dropdown.boundary,\n limiter: limitShift()\n }),\n autoPlacement(this.dropdown.autoPlacement),\n );\n }\n middleware.push(\n arrow({element: arrowEl})\n );\n const compute = async (): Promise<ComputeResult> => {\n const isMobileView = window.innerWidth <= mobileWidth;\n if (isMobileView || fixed) {\n return {\n styles: {\n left: \"0px\", top: \"0px\", right: \"0px\", bottom: \"0px\",\n position: \"fixed\",\n },\n placement: \"top\",\n isMobileView\n };\n }\n const {x, y, placement, middlewareData} = await computePosition(\n ref,\n content,\n {\n strategy: \"absolute\",\n placement: this.dropdown.placement || \"bottom\",\n middleware\n }\n );\n\n return {\n styles: {\n left: `${x}px`, top: `${y}px`, right: null, bottom: null,\n position: \"absolute\",\n },\n placement,\n isMobileView,\n middlewareData\n };\n }\n // Set up floating UI auto update\n this.cleanUp = autoUpdate(\n ref,\n content,\n () => {\n compute().then(({styles, placement, isMobileView, middlewareData}) => {\n\n if (middlewareData?.arrow) {\n const {x, y} = middlewareData.arrow;\n Object.assign(arrowEl.style, {\n left: x != null ? `${x}px` : ``,\n top: y != null ? `${y}px` : ``,\n });\n }\n\n Object.assign(content.style, styles, {\n opacity: init ? \"0\" : \"1\",\n zIndex: `var(--dd-z-index, 100)`\n });\n\n const refRect = ref.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const lastPlacement = this.lastPlacement;\n const newPlacement = `dropdown-placement-${placement}`;\n if (lastPlacement) {\n ref.classList.replace(lastPlacement, newPlacement);\n content.classList.replace(lastPlacement, newPlacement);\n } else {\n ref.classList.add(newPlacement);\n content.classList.add(newPlacement);\n }\n if (isMobileView || fixed) {\n if (!isMobileView) {\n content.classList.add(`dropdown-content-fixed`);\n content.classList.remove(`dropdown-content-mobile`);\n } else {\n content.classList.add(`dropdown-content-mobile`);\n content.classList.remove(`dropdown-content-fixed`);\n }\n content.classList.remove(`dropdown-content-desktop`);\n } else {\n content.classList.add(`dropdown-content-desktop`);\n content.classList.remove(`dropdown-content-mobile`);\n content.classList.remove(`dropdown-content-fixed`);\n }\n rectProps.forEach(prop => {\n content.style.setProperty(`--toggle-${prop}`, `${refRect[prop]}px`);\n ref.style.setProperty(`--content-${prop}`, `${contentRect[prop]}px`);\n });\n this.lastPlacement = newPlacement;\n });\n },\n );\n }\n\n protected destroyView() {\n if (!this.dropdown.contentElement) return;\n this.dropdown.contentElement.remove();\n this.dropdown.contentElement = null;\n this.vcr.clear();\n this.cleanUp?.();\n }\n\n protected whereToAttach(): HTMLElement {\n const target = this.dropdown.attachTo;\n if (target === \"root\" && this.rootElem) {\n return this.rootElem;\n }\n if (target instanceof ElementRef) {\n return target.nativeElement;\n }\n if (target instanceof HTMLElement) {\n return target;\n }\n const anchor = this.vcr.element.nativeElement as HTMLElement;\n return anchor?.parentElement || this.rootElem;\n }\n\n protected createWrapper() {\n const wrapper = document.createElement(\"div\");\n const arrow = document.createElement(\"div\");\n arrow.classList.add(`dropdown-content-arrow`);\n arrow.style.position = `absolute`;\n wrapper.appendChild(arrow);\n const ref = this.vcr.createEmbeddedView(this.templateRef);\n ref.rootNodes.forEach(node => wrapper.appendChild(node));\n ref.detectChanges();\n this.attachTo = this.whereToAttach();\n this.attachTo.appendChild(wrapper);\n this.attachOutside = !this.dropdown.nativeElement?.contains(this.attachTo);\n\n if (this.attachOutside) {\n const referenceStyles = getCssVariables(this.dropdown.nativeElement);\n const wrapperStyles = getCssVariables(wrapper);\n Object.keys(referenceStyles).forEach(key => {\n if (!wrapperStyles[key]) {\n wrapper.style.setProperty(key, referenceStyles[key]);\n }\n });\n }\n\n const autoPlacement = this.dropdown.autoPlacement;\n if (this.lastPlacement) {\n wrapper.classList.add(this.lastPlacement);\n }\n if (autoPlacement) {\n const vertical = autoPlacement.allowedPlacements.some(p => p.includes(\"top\") || p.includes(\"bottom\"));\n const horizontal = autoPlacement.allowedPlacements.some(p => p.includes(\"left\") || p.includes(\"right\"));\n if (vertical && horizontal) {\n wrapper.classList.add(`dropdown-content-axis-both`);\n } else {\n const axis = vertical ? \"vertical\" : \"horizontal\";\n wrapper.classList.add(`dropdown-content-axis-${axis}`);\n }\n }\n wrapper.classList.add(\"dropdown-content-wrap\");\n return [wrapper, arrow];\n }\n\n initialize(): void {\n this.createView(true);\n setTimeout(() => this.destroyView());\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, Inject, Input} from \"@angular/core\";\nimport {DropdownDirective} from \"./dropdown.directive\";\nimport {AsyncMethodBase} from \"./async-method.base\";\nimport {AsyncMethod, IToasterService, TOASTER_SERVICE} from \"../common-types\";\n\n@Directive({\n standalone: false,\n selector: \"[dropdownToggle]\",\n exportAs: \"dropdown-toggle\",\n})\nexport class DropdownToggleDirective extends AsyncMethodBase {\n\n @Input() beforeOpen: AsyncMethod;\n @Input() switch: boolean;\n\n constructor(readonly element: ElementRef,\n readonly dropdown: DropdownDirective,\n @Inject(TOASTER_SERVICE) toaster: IToasterService,\n cdr: ChangeDetectorRef) {\n super(toaster, cdr);\n this.switch = true;\n }\n\n protected getMethod(): AsyncMethod {\n return this.beforeOpen;\n }\n\n callMethod(): boolean {\n if (this.dropdown.isOpened) {\n if (!this.switch) return true;\n this.dropdown.hide();\n } else if (!super.callMethod()) {\n this.dropdown.show();\n }\n return true;\n }\n}\n","import {Directive, Input, TemplateRef} from \"@angular/core\";\nimport {ITableTemplate} from \"../common-types\";\n\n@Directive({\n selector: \"ng-template[column]\"\n})\n\nexport class DynamicTableTemplateDirective implements ITableTemplate {\n\n @Input() column: string | string[];\n @Input() pure: boolean;\n\n constructor(public ref: TemplateRef<any>) {\n }\n}\n","import {Directive, Input, OnDestroy, OnInit, TemplateRef} from \"@angular/core\";\nimport {GlobalTemplateService} from \"../services/global-template.service\";\n\n@Directive({\n selector: \"[globalTemplate]\"\n})\nexport class GlobalTemplateDirective implements OnInit, OnDestroy {\n\n @Input(\"globalTemplate\") id: string;\n\n constructor(readonly globalTemplates: GlobalTemplateService,\n readonly template: TemplateRef<any>) {\n\n }\n\n ngOnInit(): void {\n this.globalTemplates.add(this.id, this.template);\n }\n\n ngOnDestroy(): void {\n this.globalTemplates.remove(this.id);\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges\n} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {ICON_SERVICE, IIconService} from \"../common-types\";\n\n@Directive({\n selector: \"[icon]\"\n})\nexport class IconDirective implements OnChanges, OnInit, OnDestroy {\n\n @Input() icon: string;\n @Input() activeIcon: string;\n @Input() active: boolean;\n @Output() activeChange: EventEmitter<boolean>;\n\n @HostBinding(\"class.active\")\n get isActive() {\n return this.active;\n }\n\n protected iconsLoaded: Subscription;\n\n constructor(private element: ElementRef, private renderer: Renderer2, @Inject(ICON_SERVICE) private icons: IIconService) {\n this.renderer.addClass(this.element.nativeElement, \"svg-icon\");\n this.activeChange = new EventEmitter<boolean>();\n }\n\n ngOnInit(): void {\n this.iconsLoaded = this.icons.iconsLoaded.subscribe(() => this.changeIcon());\n }\n\n ngOnDestroy(): void {\n if (this.iconsLoaded)\n this.iconsLoaded.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.icon) {\n this.renderer.removeClass(this.element.nativeElement, `svg-icon-${changes.icon.previousValue}`);\n this.renderer.addClass(this.element.nativeElement, `svg-icon-${changes.icon.currentValue}`);\n }\n this.changeIcon();\n }\n\n @HostListener(\"click\")\n click(): void {\n this.active = !this.active;\n this.activeChange.emit(this.active);\n this.changeIcon();\n }\n\n private changeIcon(): void {\n this.icons.getIcon(this.icon, this.activeIcon || `${this.icon}-active`, this.active).then(icon => {\n if (this.icons.isDisabled) return;\n this.element.nativeElement.innerHTML = icon;\n });\n }\n}\n","import {\n Directive, DoCheck,\n EmbeddedViewRef,\n Input,\n OnChanges,\n SimpleChange,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef\n} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Directive({\n selector: \"[ngxTemplateOutlet]\"\n})\nexport class NgxTemplateOutletDirective implements OnChanges, DoCheck {\n\n private viewRef: EmbeddedViewRef<any>;\n\n @Input() public context: Object;\n @Input() public additionalContext: Object;\n @Input() public ngxTemplateOutlet: TemplateRef<any>;\n\n private static hasContextShapeChanged(ctxChange: SimpleChange): boolean {\n const prevCtxKeys = Object.keys(ctxChange.previousValue || {});\n const currCtxKeys = Object.keys(ctxChange.currentValue || {});\n\n if (prevCtxKeys.length === currCtxKeys.length) {\n for (const propName of currCtxKeys) {\n if (prevCtxKeys.indexOf(propName) === -1) {\n return true;\n }\n }\n return false;\n } else {\n return true;\n }\n }\n\n constructor(private _viewContainerRef: ViewContainerRef) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const recreateView = this.shouldRecreateView(changes);\n if (recreateView) {\n if (this.viewRef)\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this.viewRef));\n if (this.ngxTemplateOutlet)\n this.viewRef = this._viewContainerRef.createEmbeddedView(this.ngxTemplateOutlet, {});\n }\n this.ngDoCheck();\n }\n\n ngDoCheck(): void {\n if (!this.viewRef) return;\n const context = this.viewRef.context;\n this.updateExistingContext(this.context, context);\n this.updateExistingContext(this.additionalContext, context);\n context.$implicit = context;\n }\n\n private shouldRecreateView(changes: SimpleChanges): boolean {\n const ctxChange = changes[\"context\"];\n const aCtxChange = changes[\"additionalContext\"];\n return !!changes[\"ngxTemplateOutlet\"]\n || (ctxChange && NgxTemplateOutletDirective.hasContextShapeChanged(ctxChange))\n || (aCtxChange && NgxTemplateOutletDirective.hasContextShapeChanged(aCtxChange));\n }\n\n private updateExistingContext(ctx: any, context: any): void {\n if (!ctx) return;\n let ctxProto = Object.getPrototypeOf(ctx);\n if (ctxProto == Object.prototype) {\n ctxProto = ctx;\n }\n const props = Object.getOwnPropertyNames(ctxProto);\n for (const propName of props) {\n const desc = Object.getOwnPropertyDescriptor(ctxProto, propName);\n // Copy if its a getter and it is not $implicit\n if (desc.get && propName !== \"$implicit\") {\n Object.defineProperty(context, propName, desc);\n continue;\n }\n const func: Function = ObjectUtils.isFunction(desc.value) ? desc.value.bind(ctx) : null;\n if (func && func !== ctxProto.constructor) {\n context[propName] = func;\n }\n }\n for (const propName of Object.keys(ctx)) {\n\n const desc = Object.getOwnPropertyDescriptor(ctxProto, propName);\n if (desc && desc.get && !desc.set) continue;\n context[propName] = ctx[propName];\n }\n }\n}\n","import {Directive, EventEmitter, Input, NgZone, OnChanges, Output, SimpleChanges} from \"@angular/core\";\nimport {IPaginationData, ITimer, PaginationDataLoader, PaginationItemContext} from \"../common-types\";\nimport {TimerUtils} from \"../utils/timer.utils\";\n\n@Directive({\n selector: \"[pagination]\",\n exportAs: \"pagination\"\n})\nexport class PaginationDirective implements OnChanges {\n\n get total(): number {\n return this.data ? this.data.total : 0;\n }\n\n get items(): any[] {\n return this.data ? this.data.items : [];\n }\n\n @Input(\"pagination\") loader: PaginationDataLoader;\n @Input() page: number;\n @Input() itemsPerPage: number;\n @Input() updateTime: number;\n @Input() waitFor: Promise<any>;\n\n @Output() pageChange: EventEmitter<number>;\n @Output() onRefresh: EventEmitter<PaginationDirective>;\n\n maxPage: number;\n\n private data: IPaginationData;\n private updateTimer: ITimer;\n\n constructor(private zone: NgZone) {\n this.pageChange = new EventEmitter<number>();\n this.onRefresh = new EventEmitter<PaginationDirective>();\n this.updateTimer = TimerUtils.createTimeout(() => this.loadData(), this.updateTime);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.loader && !changes.itemsPerPage && !changes.page) return;\n this.page = isNaN(this.page) || this.page < 1 ? 1 : this.page;\n this.itemsPerPage = isNaN(this.itemsPerPage) || this.itemsPerPage < 1 ? 20 : this.itemsPerPage;\n this.waitFor = this.waitFor || Promise.resolve(true);\n this.refresh();\n }\n\n refresh(time?: number): void {\n time = isNaN(time) || time <= 0 ? this.updateTime : time;\n this.updateTimer.time = isNaN(time) || time <= 0 ? 100 : time;\n this.waitFor.then(() => {\n this.updateTimer.run();\n });\n }\n\n paginate(page: number): void {\n this.page = page;\n this.pageChange.emit(page);\n this.refresh();\n }\n\n private loadData(): void {\n if (!this.loader) return;\n this.loader(this.page, this.itemsPerPage).then(data => {\n this.maxPage = !data || data.total <= 0 ? 1 : Math.floor((data.total - 1) / this.itemsPerPage) + 1;\n this.data = data;\n const baseIndex = (this.page - 1) * this.itemsPerPage;\n const items = (data.items || []);\n data.items = items.map((item, index) => {\n const ix = baseIndex + index;\n return item instanceof PaginationItemContext\n ? item\n : new PaginationItemContext(item, items, items.length, index, ix);\n });\n if (this.page > this.maxPage) {\n this.paginate(this.maxPage);\n return;\n }\n this.zone.run(() => this.onRefresh.emit(this));\n });\n }\n}\n","import {Directive, OnDestroy, OnInit, TemplateRef, ViewContainerRef} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {PaginationDirective} from \"./pagination.directive\";\n\n@Directive({\n selector: \"[paginationItem]\"\n})\nexport class PaginationItemDirective implements OnInit, OnDestroy {\n\n private onRefresh: Subscription;\n\n constructor(private pagination: PaginationDirective, private viewContainer: ViewContainerRef, private templateRef: TemplateRef<any>) {\n\n }\n\n ngOnInit(): void {\n this.onRefresh = this.pagination.onRefresh.subscribe(() => this.renderView());\n }\n\n ngOnDestroy(): void {\n this.onRefresh.unsubscribe();\n }\n\n private renderView(): void {\n this.viewContainer.clear();\n this.pagination.items.forEach((item: any, ix: number) => {\n item.$implicit = item;\n item.rowIndex = ix;\n this.viewContainer.createEmbeddedView(this.templateRef, item);\n });\n }\n}\n","import {Directive, ViewContainerRef, TemplateRef, Input} from \"@angular/core\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {ResourceIfContext} from \"../common-types\";\nimport {FileUtils} from \"../utils/file.utils\";\nimport {UniversalService} from \"../services/universal.service\";\n\n@Directive({\n selector: \"[resourceIf]\",\n exportAs: \"resourceIf\"\n})\nexport class ResourceIfDirective {\n\n private context: ResourceIfContext;\n private resource: string;\n\n @Input()\n set resourceIf(resource: string) {\n this.resource = resource;\n this.renderView();\n }\n\n get resourceIf(): string {\n return this.resource;\n }\n\n get url(): string {\n return this.context.url;\n }\n\n constructor(private http: HttpClient, private viewContainer: ViewContainerRef, private templateRef: TemplateRef<any>, private universal: UniversalService) {\n this.context = new ResourceIfContext();\n }\n\n private renderView(): void {\n this.context = new ResourceIfContext();\n this.context.resource = this.resource;\n this.viewContainer.clear();\n if (this.universal.isBrowser && this.resource) {\n FileUtils.readDataFromUrl(this.http, this.resource).then(url => {\n this.context.url = url;\n this.viewContainer.createEmbeddedView(this.templateRef, this.context);\n }, console.log);\n }\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, OnDestroy, OnInit} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {ITimer} from \"../common-types\";\nimport {TimerUtils} from \"../utils/timer.utils\";\nimport {EventsService} from \"../services/events.service\";\n\n@Directive({\n selector: \"[sticky]\"\n})\nexport class StickyDirective implements OnInit, OnDestroy {\n\n @HostBinding(\"class.sticky\") isSticky: boolean;\n @HostBinding(\"class.sticky-update\") isUpdating: boolean;\n parentElement: HTMLElement;\n\n private updateTimer: ITimer;\n private eventForwarded: Subscription;\n\n constructor(private cdr: ChangeDetectorRef, private events: EventsService, private element: ElementRef) {\n this.parentElement = this.element.nativeElement.parentElement;\n this.updateTimer = TimerUtils.createTimeout(() => {\n this.isUpdating = false;\n this.cdr.detectChanges();\n this.events.updateSticky(this.isSticky);\n }, 10);\n }\n\n ngOnInit(): void {\n this.eventForwarded = this.events.eventForwarded.subscribe((e: Event) => {\n if (e && e.type === \"scroll\") this.updateSticky();\n });\n }\n\n ngOnDestroy(): void {\n this.eventForwarded.unsubscribe();\n }\n\n @HostListener(\"window:resize\")\n @HostListener(\"window:scroll\")\n updateSticky(): void {\n const distanceToTop = this.parentElement.getBoundingClientRect().top;\n this.isSticky = distanceToTop < 1;\n this.isUpdating = true;\n this.cdr.detectChanges();\n this.updateTimer.run();\n }\n}\n","import {Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {EventsService} from \"../services/events.service\";\n\n@Directive({\n selector: \"[stickyClass]\"\n})\nexport class StickyClassDirective implements OnInit, OnDestroy {\n\n @Input() stickyClass: string;\n\n private stickyUpdated: Subscription;\n\n constructor(private events: EventsService, private element: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n this.stickyUpdated = this.events.stickyUpdated.subscribe(() => {\n if (this.events.isSticky) {\n this.renderer.addClass(this.element.nativeElement, this.stickyClass || \"sticky-sibling\");\n return;\n }\n this.renderer.removeClass(this.element.nativeElement, this.stickyClass || \"sticky-sibling\");\n });\n }\n\n ngOnDestroy(): void {\n this.stickyUpdated.unsubscribe();\n }\n}\n","import {Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges, ViewContainerRef} from \"@angular/core\";\nimport {UnorderedListStyle, UnorderedListTemplates, UnorderedListTemplate} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {StringUtils} from \"../utils/string.utils\";\n\n@Directive({\n selector: \"[unorderedListItem]\"\n})\nexport class UnorderedListItemDirective implements OnChanges {\n\n @Input(\"unorderedListItem\") item: any;\n @Input() type: string;\n @Input() data: any;\n @Input() keyPrefix: string;\n @Input() listStyle: UnorderedListStyle;\n @Input() path: string;\n @Input() level: number;\n @Input() templates: UnorderedListTemplate[];\n @Input() defaultTemplates: UnorderedListTemplates;\n\n isArray: boolean;\n isObject: boolean;\n valueIsArray: boolean;\n valueIsObject: boolean;\n valueType: string;\n\n get elem(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private viewContainer: ViewContainerRef) {\n\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.templates || !this.defaultTemplates || !this.item) return;\n const promise = this.item.value instanceof Promise ? this.item.value : Promise.resolve(this.item.value);\n promise.then(value => {\n this.item.value = value;\n this.path = ObjectUtils.isNullOrUndefined(this.path) ? \"\" : this.path.toString();\n this.isArray = ObjectUtils.isArray(this.data);\n this.isObject = ObjectUtils.isObject(this.data);\n this.valueIsArray = ObjectUtils.isArray(this.item.value);\n this.valueIsObject = ObjectUtils.isObject(this.item.value);\n this.valueType = ObjectUtils.getType(this.item.value);\n const context: any = this;\n const template = this\n .templates\n .find(t => t.type == this.type && ObjectUtils.evaluate(t.selector, context))?.templateRef || this.defaultTemplates[this.type];\n // Set view\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView(template, context);\n // Set classes\n if (this.type !== \"item\") return;\n this.item.classList = [];\n this.isClass(\"is-array\", this.valueIsArray);\n this.isClass(\"is-object\", this.valueIsObject);\n this.isClass(\"is-value\", !this.valueIsObject && !this.valueIsArray);\n this.isClass(`type-${this.valueType}`);\n this.isClass(`path-${this.path.replace(/\\./g, \"-\")}`);\n this.isClass(`key-${this.item.key}`);\n }, reason => {\n console.log(\"Can't handle promise rejection\", reason);\n });\n }\n\n private isClass(className: string, value: boolean = true): void {\n if (!value) return;\n this.item.classList.push(className);\n }\n}\n","import {Directive, Input, TemplateRef} from \"@angular/core\";\nimport {UnorderedListTemplate} from \"../common-types\";\n\n@Directive({\n selector: \"ng-template[type][selector]\"\n})\n\nexport class UnorderedListTemplateDirective implements UnorderedListTemplate {\n\n @Input() type: string;\n @Input() selector: string;\n\n constructor(readonly templateRef: TemplateRef<any>) {\n\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges, TemplateRef, ViewChild\n} from \"@angular/core\";\nimport {UnorderedListStyle, UnorderedListTemplates, UnorderedListTemplate} from \"../../common-types\";\nimport {ObjectUtils} from \"../../utils/object.utils\";\nimport {UnorderedListTemplateDirective} from \"../../directives/unordered-list-template.directive\";\n\n@Component({\n selector: \"unordered-list\",\n templateUrl: \"./unordered-list.component.html\"\n})\nexport class UnorderedListComponent implements OnChanges, AfterContentInit, AfterViewInit {\n\n @Input() data: any;\n @Input() keyPrefix: string;\n @Input() listStyle: UnorderedListStyle;\n @Input() path: string;\n @Input() level: number;\n @Input() templates: UnorderedListTemplate[];\n\n isArray: boolean;\n isObject: boolean;\n defaultTemplates: UnorderedListTemplates;\n\n @ContentChildren(UnorderedListTemplateDirective)\n private templateDirectives: QueryList<UnorderedListTemplateDirective>;\n\n @ViewChild(\"defaultKeyTemplate\")\n private defaultKeyTemplate: TemplateRef<any>;\n @ViewChild(\"defaultValueTemplate\")\n private defaultValueTemplate: TemplateRef<any>;\n @ViewChild(\"defaultItemTemplate\")\n private defaultItemTemplate: TemplateRef<any>;\n\n constructor(private cdr: ChangeDetectorRef) {\n this.keyPrefix = \"\";\n this.listStyle = \"table\";\n this.path = \"\";\n this.level = 0;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.isArray = ObjectUtils.isArray(this.data);\n this.isObject = ObjectUtils.isObject(this.data);\n }\n\n ngAfterContentInit(): void {\n const templates = this.templateDirectives.toArray();\n this.templates = this.templates ? this.templates.concat(templates) : templates;\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this.defaultTemplates = {\n key: this.defaultKeyTemplate,\n value: this.defaultValueTemplate,\n item: this.defaultItemTemplate\n };\n this.cdr.detectChanges();\n }\n}\n","<ng-template let-keyPrefix=\"keyPrefix\" let-key=\"item.key\" let-isArray=\"isArray\" #defaultKeyTemplate>\n {{ (keyPrefix ? keyPrefix + key : key) | translate }}:\n</ng-template>\n<ng-template let-keyPrefix=\"keyPrefix\" let-listStyle=\"listStyle\" let-val=\"item.value\" let-path=\"path\"\n let-templates=\"templates\" let-isObject=\"valueIsObject\" let-isArray=\"valueIsArray\" #defaultValueTemplate>\n <ng-template #value>\n <span [innerHTML]=\"val\"></span>\n </ng-template>\n <unordered-list [data]=\"val\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path\"\n [level]=\"level + 1\"\n [templates]=\"templates\"\n *ngIf=\"(isObject || isArray); else value\"></unordered-list>\n</ng-template>\n<ng-template let-item=\"item\" let-data=\"data\" let-keyPrefix=\"keyPrefix\" let-listStyle=\"listStyle\" let-path=\"path\" let-level=\"level\" let-templates=\"templates\" #defaultItemTemplate>\n <ng-template #itemKey>\n <ng-container [unorderedListItem]=\"item\"\n type=\"key\"\n [data]=\"data\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path\"\n [level]=\"level\"\n [templates]=\"templates\"\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\n </ng-template>\n <ng-template #itemValue>\n <ng-container [unorderedListItem]=\"item\"\n type=\"value\"\n [data]=\"data\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path\"\n [level]=\"level\"\n [templates]=\"templates\"\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\n </ng-template>\n <ng-container *ngIf=\"!isArray\">\n <th *ngIf=\"listStyle == 'table'; else itemKey\">\n <ng-container [ngTemplateOutlet]=\"itemKey\"></ng-container>\n </th>\n </ng-container>\n <td *ngIf=\"listStyle == 'table'; else itemValue\">\n <ng-container [ngTemplateOutlet]=\"itemValue\"></ng-container>\n </td>\n</ng-template>\n<ng-template #value>\n <span [innerHTML]=\"data\"></span>\n</ng-template>\n<ng-container *ngIf=\"(isObject || isArray); else value\" [ngSwitch]=\"listStyle\">\n <ul [ngClass]=\"'level-' + level\" *ngSwitchCase=\"'list'\">\n <li *ngFor=\"let item of data | entries\" [ngClass]=\"item.classList\">\n <ng-container [unorderedListItem]=\"item\"\n type=\"item\"\n [data]=\"data\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path ? path + '.' + item.key : item.key\"\n [level]=\"level\"\n [templates]=\"templates\"\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\n </li>\n </ul>\n <table [ngClass]=\"'level-' + level\" *ngSwitchDefault>\n <tr *ngFor=\"let item of data | entries\" [ngClass]=\"item.classList\">\n <ng-container [unorderedListItem]=\"item\"\n type=\"item\"\n [data]=\"data\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path ? path + '.' + item.key : item.key\"\n [level]=\"level\"\n [templates]=\"templates\"\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\n </tr>\n </table>\n</ng-container>\n","import {AfterViewInit, Component, Input, OnChanges, ViewChild, ViewEncapsulation} from \"@angular/core\";\nimport {Placement} from \"@floating-ui/utils\";\nimport {Alignment, AutoPlacementOptions} from \"@floating-ui/dom\";\nimport {DropdownContentDirective} from \"../../directives/dropdown-content.directive\";\nimport {DropdownAttachTo} from \"../../common-types\";\n\n@Component({\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n selector: \"dropdown-box\",\n styleUrls: [\"./dropdown-box.component.scss\"],\n templateUrl: \"./dropdown-box.component.html\",\n})\nexport class DropdownBoxComponent implements AfterViewInit, OnChanges {\n\n /**\n * Determines if the dropdown should be closed even if we click inside it\n */\n @Input() closeInside: boolean;\n\n /**\n * Determines where the floating element needs to be placed\n */\n @Input() attachTo: DropdownAttachTo;\n\n /**\n * Where to place the floating element relative to the reference element.\n */\n @Input() placement: Placement;\n\n /**\n * The axis that runs along the alignment of the floating element. Determines\n * whether to check for most space along this axis.\n * @default false\n */\n @Input() crossAxis?: boolean;\n\n /**\n * Choose placements with a particular alignment.\n * @default undefined\n */\n @Input() alignment?: Alignment | null;\n\n /**\n * Whether to choose placements with the opposite alignment if the preferred\n * alignment does not fit.\n * @default true\n */\n @Input() autoAlignment?: boolean;\n\n /**\n * Which placements are allowed to be chosen. Placements must be within the\n * `alignment` option if explicitly set.\n * @default allPlacements (variable)\n */\n @Input() allowedPlacements?: Array<Placement>;\n\n /**\n * Adds a class to the main div element and also to the content\n * ('drop' by default which translates to 'drop-content-wrapper' in case of content)\n */\n @Input() componentClass: string;\n\n autoPlacement: AutoPlacementOptions;\n\n @ViewChild(DropdownContentDirective)\n content: DropdownContentDirective;\n\n constructor() {\n this.closeInside = true;\n this.attachTo = \"root\";\n this.placement = \"bottom\";\n this.crossAxis = false;\n this.autoAlignment = true;\n this.allowedPlacements = [\"top\", \"bottom\"];\n this.componentClass = \"drop\";\n this.makeAutoPlacementOpts();\n }\n\n protected makeAutoPlacementOpts() {\n this.autoPlacement = {\n crossAxis: this.crossAxis,\n alignment: this.alignment,\n autoAlignment: this.autoAlignment,\n allowedPlacements: this.allowedPlacements,\n };\n }\n\n ngAfterViewInit() {\n this.content.initialize();\n }\n\n ngOnChanges() {\n this.makeAutoPlacementOpts();\n }\n}\n","<div dd class=\"dropdown-box\"\n [ngClass]=\"componentClass\"\n [closeInside]=\"closeInside\"\n [attachTo]=\"attachTo\"\n [placement]=\"placement\"\n [autoPlacement]=\"autoPlacement\">\n <div class=\"dropdown-box-toggle\" dropdownToggle>\n <a class=\"dropdown-box-toggle-link\">\n <ng-content select=\"[toggle-content]\"></ng-content>\n </a>\n </div>\n <div class=\"dropdown-box-content\" [ngClass]=\"componentClass + '-content-wrapper'\" *dropdownContent>\n <ng-content></ng-content>\n </div>\n</div>\n","import {Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {ObjectUtils} from \"../../utils/object.utils\";\nimport {StateService} from \"../../services/state.service\";\nimport {PaginationDirective} from \"../../directives/pagination.directive\";\n\n@Component({\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n selector: \"pagination-menu\",\n templateUrl: \"./pagination-menu.component.html\",\n styleUrls: [\"./pagination-menu.component.scss\"],\n})\nexport class PaginationMenuComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() maxSize: number;\n @Input() urlParam: string;\n @Input() directionLinks: boolean;\n @Input() boundaryLinks: boolean;\n\n pages: number[];\n\n get hasPrev(): boolean {\n return this.pagination.page > 1;\n }\n\n get hasNext(): boolean {\n return this.pagination.page < this.pagination.maxPage\n }\n\n private onRefresh: Subscription;\n\n constructor(public state: StateService, public pagination: PaginationDirective) {\n this.maxSize = 5;\n this.directionLinks = true;\n this.boundaryLinks = true;\n }\n\n ngOnInit(): void {\n this.onRefresh = this.pagination.onRefresh.subscribe(() => this.setPages());\n }\n\n ngOnDestroy(): void {\n if (!this.onRefresh) return;\n this.onRefresh.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.maxSize = isNaN(this.maxSize) || this.maxSize <= 0 ? 5 : this.maxSize;\n this.directionLinks = ObjectUtils.isBoolean(this.directionLinks) ? this.directionLinks : true;\n this.boundaryLinks = ObjectUtils.isBoolean(this.boundaryLinks) ? this.boundaryLinks : true;\n this.setPages();\n }\n\n paginate(page: number): void {\n if (this.pagination.page == page || this.pagination.maxPage < page || page < 1) return;\n if (!this.urlParam) {\n this.pagination.paginate(page);\n return;\n }\n const params = Object.assign({}, this.state.params);\n params[this.urlParam] = page.toString();\n const path = StateService.toPath(this.state.route, params);\n this.state.navigateByUrl(path);\n }\n\n protected setPages(): number {\n if (!this.pagination) return;\n const totalPages = this.pagination.maxPage;\n let startPage = Math.max(this.pagination.page - Math.floor(this.maxSize / 2), 1);\n let endPage = startPage + this.maxSize - 1;\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = Math.max(endPage - this.maxSize + 1, 1);\n }\n const pages: number[] = [];\n for (let num = startPage; num <= endPage; num++) {\n pages.push(num);\n }\n this.pages = pages;\n }\n}\n","<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link boundary-link previous\" (click)=\"paginate(1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"directionLinks\">\n <a class=\"page-link direction-link previous\" (click)=\"paginate(pagination.page - 1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{active: pagination.page == page}\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" [ngClass]=\"{active: pagination.page == page}\" (click)=\"paginate(page)\">{{ page }}</a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"directionLinks\">\n <a class=\"page-link direction-link\" (click)=\"paginate(pagination.page + 1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link boundary-link\" (click)=\"paginate(pagination.maxPage)\"></a>\n </li>\n </ul>\n</div>\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from \"@angular/core\";\n\nimport {\n IPaginationData,\n ITableColumns,\n ITableDataQuery,\n ITableTemplates,\n PaginationItemContext,\n TableColumns,\n TableDataLoader\n} from \"../../common-types\";\nimport {ObjectUtils} from \"../../utils/object.utils\";\nimport {UniqueUtils} from \"../../utils/unique.utils\";\n\nimport {DynamicTableTemplateDirective} from \"../../directives/dynamic-table-template.directive\";\nimport {PaginationDirective} from \"../../directives/pagination.directive\";\nimport {DropdownDirective} from \"../../directives/dropdown.directive\";\nimport {MathUtils} from \"../../utils/math.utils\";\n\n@Component({\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n selector: \"dynamic-table\",\n styleUrls: [\"./dynamic-table.component.scss\"],\n templateUrl: \"./dynamic-table.component.html\",\n})\nexport class DynamicTableComponent implements AfterContentInit, AfterViewInit, OnChanges {\n\n @Input() dataLoader: TableDataLoader;\n @Input() data: any[];\n @Input() selected: any;\n @Input() page: number;\n @Input() urlParam: string;\n @Input() parallelData: any[];\n @Input() columns: TableColumns;\n\n /**\n * Parameter for displaying a simple filter search box\n */\n @Input() showFilter: boolean;\n\n /**\n * Parameter for specifying a label for filter\n */\n @Input() filterLabel: string;\n\n /**\n * Parameter for specifying a placeholder for filter\n */\n @Input() placeholder: string;\n\n /**\n * Parameter for displaying an item per page selector dropdown with the specified numbers\n */\n @Input() showItems: number[];\n\n /**\n * Parameter for setting how many items should be displayed by default\n */\n @Input() itemsPerPage: number;\n @Input() updateTime: number;\n @Input() filterTime: number;\n @Input() maxPages: number;\n @Input() directionLinks: boolean;\n @Input() boundaryLinks: boolean;\n @Input() orderBy: string;\n @Input() orderDescending: boolean;\n @Input() testId: string;\n @Input() titlePrefix: string;\n\n tableId: string;\n templates: ITableTemplates;\n filter: string;\n query: ITableDataQuery;\n hasQuery: boolean;\n realColumns: ITableColumns;\n cols: string[];\n\n get items(): any[] {\n return !this.pagination ? [] : this.pagination.items;\n }\n\n @ContentChild(\"rowTemplate\", {static: true})\n rowTemplate: TemplateRef<any>;\n\n @ContentChild(\"wrapperTemplate\", {static: true})\n wrapperTemplate: TemplateRef<any>;\n\n @ViewChild(\"columnsTemplate\", {static: true})\n columnsTemplate: TemplateRef<any>;\n\n @ViewChild(\"defaultRowTemplate\", {static: true})\n defaultRowTemplate: TemplateRef<any>;\n\n @ViewChild(\"defaultWrapperTemplate\", {static: true})\n defaultWrapperTemplate: TemplateRef<any>;\n\n @ViewChild(\"pagination\")\n protected pagination: PaginationDirective;\n\n @ContentChildren(DynamicTableTemplateDirective)\n protected templateDirectives: QueryList<DynamicTableTemplateDirective>;\n\n protected static compare(orderBy: string, a: PaginationItemContext, b: PaginationItemContext): number {\n a = a.item ? a.item[orderBy] : null;\n b = b.item ? b.item[orderBy] : null;\n return ObjectUtils.compare(a, b);\n }\n\n constructor(protected element: ElementRef<HTMLElement>) {\n this.dataLoader = this.loadLocalData;\n this.placeholder = \"\";\n this.tableId = UniqueUtils.uuid();\n this.templates = {};\n this.filter = \"\";\n this.query = {};\n this.hasQuery = false;\n this.testId = \"table\";\n this.titlePrefix = \"label\";\n this.realColumns = {};\n }\n\n setProperty(name: string, value: any): void {\n const elem = this.element.nativeElement;\n if (!elem) return;\n elem.style.setProperty(`--${name}`, value);\n }\n\n ngAfterContentInit(): void {\n this.templates = this.templateDirectives.reduce((result, directive) => {\n if (ObjectUtils.isArray(directive.column)) {\n directive.column.forEach(column => {\n result[column] = directive;\n });\n return result;\n }\n if (!ObjectUtils.isString(directive.column) || directive.column.length == 0) return result;\n result[directive.column] = directive;\n return result;\n }, {});\n }\n\n ngAfterViewInit(): void {\n this.rowTemplate = this.rowTemplate || this.defaultRowTemplate;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const orderBy = this.orderBy;\n if (changes.columns) {\n const columns = changes.columns.currentValue || [];\n this.realColumns = ObjectUtils.isArray(columns) ? columns.reduce((result, column) => {\n if (!ObjectUtils.isString(column) || column.length == 0)\n return result;\n result[column] = {title: `${this.titlePrefix}.${column}`, sort: column};\n return result;\n }, {}) : Object.keys(columns).reduce((result, key) => {\n const value = columns[key];\n result[key] = !value || ObjectUtils.isString(value)\n ? {title: `${this.titlePrefix}.${key}`, sort: value}\n : value;\n return result;\n }, {} as ITableColumns);\n this.cols = Object.keys(this.realColumns);\n this.cols.forEach(col => {\n const column = this.realColumns[col];\n column.filterType = column.filterType || \"text\";\n });\n const sortable = this.cols.filter(c => this.realColumns[c].sort);\n const query = this.query || {};\n this.orderBy = sortable.includes(this.orderBy) ? this.orderBy : sortable[0] || null;\n this.query = this.cols.reduce((res, col) => {\n const value = query[col];\n if (ObjectUtils.isNullOrUndefined(value)) return res;\n res[col] = value;\n return res;\n }, {});\n this.setProperty(\"cell-width\", MathUtils.round(100 / this.cols.length, 4) + \"%\");\n }\n this.hasQuery = this.cols.some(col => this.realColumns[col].filter);\n if (changes.orderBy && this.realColumns && this.cols) {\n const sortable = this.cols.filter(c => this.realColumns[c].sort);\n this.orderBy = sortable.includes(this.orderBy) ? this.orderBy : sortable[0] || null;\n }\n if (!changes.data && !changes.parallelData && !changes.dataLoader && !changes.itemsPerPage && !changes.orderDescending && orderBy === this.orderBy) return;\n this.refresh();\n }\n\n refresh(time?: number): void {\n if (!this.pagination) return;\n this.pagination.refresh(time);\n }\n\n setFilter(filter: string) {\n this.filter = filter;\n this.refresh(this.filterTime ?? 300);\n }\n\n setSorting(column: string, toggle?: DropdownDirective) {\n if (toggle) {\n return;\n }\n this.orderDescending = column == this.orderBy && !this.orderDescending;\n this.orderBy = column;\n this.refresh();\n }\n\n setQueryValue(c: string, value: string | boolean) {\n const col = this.realColumns[c];\n if (!col?.filter) return;\n switch (col.filterType) {\n case \"enum\":\n const set = new Set((this.query[c] || []) as string[]);\n const val = `${value}`;\n if (set.has(val)) {\n set.delete(val);\n if (set.size === 0) {\n delete this.query[c];\n break;\n }\n } else {\n set.add(val);\n }\n this.query[c] = Array.from(set);\n break;\n case \"checkbox\":\n if (this.query[c]) {\n delete this.query[c];\n break;\n }\n this.query[c] = true;\n break;\n default:\n if (!value) {\n delete this.query[c];\n break;\n }\n this.query[c] = value;\n break;\n }\n this.refresh(this.filterTime ?? 300);\n }\n\n setItemsPerPage(count: number) {\n this.itemsPerPage = count;\n this.refresh();\n }\n\n loadData = (page: number, itemsPerPage: number): Promise<IPaginationData> => {\n const orderBy = this.realColumns[this.orderBy]?.sort;\n return this.dataLoader(page, itemsPerPage, orderBy, this.orderDescending, this.filter, this.query);\n };\n\n protected loadLocalData(page: number, rowsPerPage: number, orderBy: string, orderDescending: boolean, filter: string): Promise<IPaginationData> {\n if (!this.data) {\n return Promise.resolve({\n total: 0,\n items: []\n });\n }\n const compare: (a: any, b: any) => number = orderDescending\n ? (a, b) => DynamicTableComponent.compare(orderBy, b, a)\n : (a, b) => DynamicTableComponent.compare(orderBy, a, b);\n const from = (page - 1) * rowsPerPage;\n const dataLength = this.data.length;\n const length = Math.min(rowsPerPage, dataLength - from);\n const parallelData = this.parallelData || [];\n let data = this.data.map((item, ix) => {\n return new PaginationItemContext(item, parallelData[ix] || {}, dataLength, ix, ix);\n });\n if (ObjectUtils.isString(filter) && filter.length > 0) {\n const filterRx = new RegExp(filter, \"gi\");\n data = data.filter(c => c.filter(filterRx));\n }\n const items = orderBy ? data.sort(compare).splice(from, length) : data.splice(from, length);\n items.forEach((context, ix) => {\n context.index = from + ix;\n });\n return Promise.resolve({\n total: dataLength,\n items: items\n });\n }\n}\n","<ng-template #columnTemplate let-context let-column=\"column\" let-template=\"template\">\n <ng-template #defaultTemplate let-column=\"column\" let-item=\"item\">\n <span>{{ item[column] == undefined || item[column] == null ? '-' : item[column] }}</span>\n </ng-template>\n <ng-template #pureTemplate>\n <ng-container [ngxTemplateOutlet]=\"template.ref\" [context]=\"context\"></ng-container>\n </ng-template>\n <td [ngClass]=\"'column-' + column\"\n [attr.data-testid]=\"testId + '-' + column + '-' + context.rowIndex\"\n *ngIf=\"!template || !template.pure; else pureTemplate\">\n <ng-container [ngxTemplateOutlet]=\"!template ? defaultTemplate : template.ref\"\n [context]=\"context\"></ng-container>\n </td>\n</ng-template>\n\n<ng-template #columnsTemplate let-context>\n <ng-container *ngFor=\"let column of cols\"\n [ngxTemplateOutlet]=\"columnTemplate\"\n [context]=\"context\"\n [additionalContext]=\"{\n template: templates[column],\n column: column\n }\"></ng-container>\n</ng-template>\n\n<ng-template #defaultRowTemplate let-context>\n <tr draggable=\"true\"\n #elem\n [ngClass]=\"{active: selected === context.item}\">\n <ng-container [ngxTemplateOutlet]=\"columnsTemplate\" [context]=\"context\"></ng-container>\n </tr>\n</ng-template>\n\n<ng-template #headerTemplate let-column=\"column\" let-toggle=\"toggle\">\n <ng-template #defaultCol>\n <span>{{ realColumns[column].title | translate }}</span>\n </ng-template>\n <ng-template #emptyCol>\n <span>-</span>\n </ng-template>\n <ng-container *ngIf=\"realColumns[column]; else emptyCol\">\n <a *ngIf=\"realColumns[column].sort; else defaultCol\"\n [ngClass]=\"['sort', orderBy !== column ? '' : (orderDescending ? 'sort-desc' : 'sort-asc')]\"\n (click)=\"setSorting(column, toggle)\">\n <span>{{ realColumns[column].title | translate }}</span>\n </a>\n </ng-container>\n</ng-template>\n\n<div class=\"dynamic-table\" #pagination=\"pagination\" [pagination]=\"loadData\" [page]=\"page\" [itemsPerPage]=\"itemsPerPage\"\n [updateTime]=\"updateTime\">\n <div class=\"table-features-row\">\n <ng-content select=\"[table-features-before]\"></ng-content>\n <div class=\"table-input-wrap table-search-filter\" *ngIf=\"showFilter\">\n <label *ngIf=\"filterLabel\" [attr.for]=\"tableId\">\n {{ filterLabel | translate }}\n </label>\n <input type=\"text\"\n class=\"search-input\"\n [attr.id]=\"tableId\"\n [attr.data-testid]=\"testId + '-filter-input'\"\n [placeholder]=\"placeholder | translate\"\n [ngModel]=\"filter\"\n (ngModelChange)=\"setFilter($event)\"/>\n </div>\n <dropdown-box componentClass=\"sort-dropdown\" #sortDd>\n <ng-container toggle-content\n [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{column: orderBy, toggle: sortDd}\"></ng-container>\n <ul>\n <ng-container *ngFor=\"let column of cols\">\n <li [ngClass]=\"'sort-column sort-' + column\" *ngIf=\"realColumns[column].sort\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{column: column}\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </dropdown-box>\n <div class=\"table-input-wrap table-items-count\" *ngIf=\"showItems\">\n <label>\n {{ 'label.items.before' | translate }}\n </label>\n <dropdown-box>\n <ng-container toggle-content>\n {{ itemsPerPage }}\n </ng-container>\n <ul>\n <ng-container *ngFor=\"let count of showItems\">\n <li [ngClass]=\"'item-count count-' + count\" (click)=\"setItemsPerPage(count)\">\n {{ count }}\n </li>\n </ng-container>\n </ul>\n </dropdown-box>\n <label>\n {{ 'label.items.after' | translate }}\n </label>\n </div>\n <ng-content select=\"[table-features-after]\"></ng-content>\n </div>\n <pagination-menu [urlParam]=\"urlParam\" [maxSize]=\"maxPages\" [directionLinks]=\"directionLinks\"\n [boundaryLinks]=\"boundaryLinks\"></pagination-menu>\n <div class=\"table-responsive\">\n <ng-template #defaultWrapperTemplate>\n <table class=\"table table-striped\">\n <thead>\n <tr>\n <th *ngFor=\"let column of cols\" [ngClass]=\"'header-column column-' + column\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{column: column}\"></ng-container>\n </th>\n </tr>\n <tr *ngIf=\"hasQuery\">\n <th *ngFor=\"let column of cols\" [ngClass]=\"['column-' + column, 'filter-column']\">\n <ng-container *ngIf=\"realColumns[column].filter\" [ngSwitch]=\"realColumns[column].filterType\">\n <ng-container *ngSwitchCase=\"'enum'\">\n <ng-template #optionItem let-option=\"option\">\n {{ (realColumns[column].enumPrefix ? realColumns[column].enumPrefix + '.' + option : option) | translate }}\n </ng-template>\n <dropdown-box componentClass=\"filter-box\"\n [ngClass]=\"'filter-box-' + column\" [closeInside]=\"false\">\n <ng-container toggle-content>\n <span class=\"toggle-placeholder\" *ngIf=\"!query[column]\">\n {{ realColumns[column].title | translate }}\n </span>\n <span [ngClass]=\"['option-' + option, column + '-option-' + option, option]\"\n *ngFor=\"let option of query[column] | values; let ix = index\">\n <ng-container *ngIf=\"ix > 0\">, </ng-container>\n <ng-container [ngTemplateOutlet]=\"optionItem\"\n [ngTemplateOutletContext]=\"{option: option}\"></ng-container>\n </span>\n </ng-container>\n <ul>\n <li [ngClass]=\"[column + '-option', 'option-' + option, option]\"\n (click)=\"setQueryValue(column, option)\"\n *ngFor=\"let option of realColumns[column].enum\">\n <a [ngClass]=\"'toggle-link-' + column\">\n <input type=\"checkbox\" [checked]=\"query[column] | includes: option\">\n <ng-container [ngTemplateOutlet]=\"optionItem\"\n [ngTemplateOutletContext]=\"{option: option}\"></ng-container>\n </a>\n </li>\n </ul>\n </dropdown-box>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <input type=\"checkbox\"\n [attr.data-testid]=\"testId + '-filter-' + column\"\n [placeholder]=\"realColumns[column].title | translate\"\n [ngModel]=\"query[column]\"\n (ngModelChange)=\"setQueryValue(column, $event)\"/>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input class=\"search-input\"\n type=\"text\"\n [attr.data-testid]=\"testId + '-filter-' + column\"\n [placeholder]=\"realColumns[column].title | translate\"\n [ngModel]=\"query[column]\"\n (ngModelChange)=\"setQueryValue(column, $event)\"/>\n </ng-container>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *paginationItem=\"let context\"\n [ngxTemplateOutlet]=\"rowTemplate\"\n [context]=\"context\"\n [additionalContext]=\"this\"></ng-container>\n </tbody>\n </table>\n </ng-template>\n\n <div class=\"table-wrapper\">\n <ng-content select=\"[table-top]\"></ng-content>\n <ng-container [ngxTemplateOutlet]=\"wrapperTemplate || defaultWrapperTemplate\"\n [context]=\"this\"></ng-container>\n <ng-content select=\"[table-bottom]\"></ng-content>\n </div>\n </div>\n <pagination-menu [urlParam]=\"urlParam\" [maxSize]=\"maxPages\" [directionLinks]=\"directionLinks\"\n [boundaryLinks]=\"boundaryLinks\"></pagination-menu>\n</div>\n","import {ErrorHandler} from \"@angular/core\";\nimport {EVENT_MANAGER_PLUGINS} from \"@angular/platform-browser\";\nimport {UrlSerializer} from \"@angular/router\";\nimport {DeviceDetectorService} from \"ngx-device-detector\";\n\nimport {IConfigService} from \"./common-types\";\n\nimport {AuthGuard} from \"./utils/auth.guard\";\nimport {AclService} from \"./services/acl.service\";\nimport {ApiService} from \"./services/api.service\";\nimport {StaticAuthService} from \"./services/auth.service\";\nimport {BaseHttpClient} from \"./services/base-http.client\";\nimport {BaseHttpService} from \"./services/base-http.service\";\nimport {ConfigService} from \"./services/config.service\";\nimport {ErrorHandlerService} from \"./services/error-handler.service\";\nimport {EventsService} from \"./services/events.service\";\nimport {FormatterService} from \"./services/formatter.service\";\nimport {GlobalTemplateService} from \"./services/global-template.service\";\nimport {IconService} from \"./services/icon.service\";\nimport {LanguageService} from \"./services/language.service\";\nimport {LocalHttpService} from \"./services/local-http.service\";\nimport {PromiseService} from \"./services/promise.service\";\nimport {OpenApiService} from \"./services/open-api.service\";\nimport {StateService} from \"./services/state.service\";\nimport {StaticLanguageService} from \"./services/static-language.service\";\nimport {StorageService} from \"./services/storage.service\";\nimport {ConsoleToasterService} from \"./services/toaster.service\";\nimport {TranslatedUrlSerializer} from \"./services/translated-url.serializer\";\nimport {UniversalService} from \"./services/universal.service\";\nimport {WasmService} from \"./services/wasm.service\";\nimport {ResizeEventPlugin} from \"./plugins/resize-event.plugin\";\nimport {ScrollEventPlugin} from \"./plugins/scroll-event.plugin\";\nimport {AsyncMethodBase} from \"./directives/async-method.base\";\nimport {AsyncMethodDirective} from \"./directives/async-method.directive\";\nimport {BackgroundDirective} from \"./directives/background.directive\";\nimport {DropdownDirective} from \"./directives/dropdown.directive\";\nimport {DropdownContentDirective} from \"./directives/dropdown-content.directive\";\nimport {DropdownToggleDirective} from \"./directives/dropdown-toggle.directive\";\nimport {DynamicTableTemplateDirective} from \"./directives/dynamic-table-template.directive\";\nimport {GlobalTemplateDirective} from \"./directives/global-template.directive\";\nimport {IconDirective} from \"./directives/icon.directive\";\nimport {NgxTemplateOutletDirective} from \"./directives/ngx-template-outlet.directive\";\nimport {PaginationDirective} from \"./directives/pagination.directive\";\nimport {PaginationItemDirective} from \"./directives/pagination-item.directive\";\nimport {ResourceIfDirective} from \"./directives/resource-if.directive\";\nimport {StickyDirective} from \"./directives/sticky.directive\";\nimport {StickyClassDirective} from \"./directives/sticky-class.directive\";\nimport {UnorderedListItemDirective} from \"./directives/unordered-list-item.directive\";\nimport {UnorderedListTemplateDirective} from \"./directives/unordered-list-template.directive\";\n\nimport {ChunkPipe} from \"./pipes/chunk.pipe\";\nimport {EntriesPipe} from \"./pipes/entries.pipe\";\nimport {ExtraItemPropertiesPipe} from \"./pipes/extra-item-properties.pipe\";\nimport {FilterPipe} from \"./pipes/filter.pipe\";\nimport {FindPipe} from \"./pipes/find.pipe\";\nimport {FormatNumberPipe} from \"./pipes/format-number.pipe\";\nimport {GetOffsetPipe} from \"./pipes/get-offset.pipe\";\nimport {GetTypePipe} from \"./pipes/get-type.pipe\";\nimport {GetValuePipe} from \"./pipes/get-value.pipe\";\nimport {GlobalTemplatePipe} from \"./pipes/global-template.pipe\";\nimport {GroupByPipe} from \"./pipes/group-by.pipe\";\nimport {IncludesPipe} from \"./pipes/includes.pipe\";\nimport {IsTypePipe} from \"./pipes/is-type.pipe\";\nimport {JoinPipe} from \"./pipes/join.pipe\";\nimport {KeysPipe} from \"./pipes/keys.pipe\";\nimport {MapPipe} from \"./pipes/map.pipe\";\nimport {MaxPipe} from \"./pipes/max.pipe\";\nimport {MinPipe} from \"./pipes/min.pipe\";\nimport {PopPipe} from \"./pipes/pop.pipe\";\nimport {ReducePipe} from \"./pipes/reduce.pipe\";\nimport {RemapPipe} from \"./pipes/remap.pipe\";\nimport {ReplacePipe} from \"./pipes/replace.pipe\";\nimport {ReversePipe} from \"./pipes/reverse.pipe\";\nimport {RoundPipe} from \"./pipes/round.pipe\";\nimport {SafeHtmlPipe} from \"./pipes/safe-html.pipe\";\nimport {ShiftPipe} from \"./pipes/shift.pipe\";\nimport {SplitPipe} from \"./pipes/split.pipe\";\nimport {TranslatePipe} from \"./pipes/translate.pipe\";\nimport {ValuesPipe} from \"./pipes/values.pipe\";\n\nimport {DropdownBoxComponent} from \"./components/dropdown-box/dropdown-box.component\";\nimport {DynamicTableComponent} from \"./components/dynamic-table/dynamic-table.component\";\nimport {PaginationMenuComponent} from \"./components/pagination-menu/pagination-menu.component\";\nimport {UnorderedListComponent} from \"./components/unordered-list/unordered-list.component\";\n\n// --- Pipes ---\nexport const pipes = [\n ChunkPipe,\n EntriesPipe,\n ExtraItemPropertiesPipe,\n FilterPipe,\n FindPipe,\n FormatNumberPipe,\n GetOffsetPipe,\n GetTypePipe,\n GetValuePipe,\n GlobalTemplatePipe,\n GroupByPipe,\n IncludesPipe,\n IsTypePipe,\n JoinPipe,\n KeysPipe,\n MapPipe,\n MaxPipe,\n MinPipe,\n PopPipe,\n ReducePipe,\n RemapPipe,\n ReplacePipe,\n ReversePipe,\n RoundPipe,\n SafeHtmlPipe,\n ShiftPipe,\n SplitPipe,\n TranslatePipe,\n ValuesPipe\n];\n\n// --- Directives ---\nexport const directives = [\n AsyncMethodBase,\n AsyncMethodDirective,\n BackgroundDirective,\n DropdownDirective,\n DropdownContentDirective,\n DropdownToggleDirective,\n DynamicTableTemplateDirective,\n GlobalTemplateDirective,\n IconDirective,\n NgxTemplateOutletDirective,\n PaginationDirective,\n PaginationItemDirective,\n ResourceIfDirective,\n StickyDirective,\n StickyClassDirective,\n UnorderedListItemDirective,\n UnorderedListTemplateDirective\n];\n\n// --- Components ---\nexport const components = [\n DropdownBoxComponent,\n DynamicTableComponent,\n PaginationMenuComponent,\n UnorderedListComponent\n];\n\nexport const providers = [\n ...pipes,\n BaseHttpClient,\n BaseHttpService,\n AuthGuard,\n AclService,\n ApiService,\n StaticAuthService,\n ConfigService,\n ErrorHandlerService,\n EventsService,\n FormatterService,\n GlobalTemplateService,\n IconService,\n LanguageService,\n LocalHttpService,\n OpenApiService,\n PromiseService,\n StateService,\n StaticLanguageService,\n StorageService,\n ConsoleToasterService,\n TranslatedUrlSerializer,\n UniversalService,\n WasmService,\n DeviceDetectorService,\n GlobalTemplateService,\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: ResizeEventPlugin,\n multi: true\n },\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: ScrollEventPlugin,\n multi: true\n },\n {\n provide: UrlSerializer,\n useExisting: TranslatedUrlSerializer\n },\n {\n provide: ErrorHandler,\n useExisting: ErrorHandlerService\n }\n\n];\n\nexport function loadConfig(config: IConfigService): any {\n return config.load;\n}\n","import {Injectable} from \"@angular/core\";\nimport {IWasi, IWasmExports, TypedArray} from \"../common-types\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class Wasi implements IWasi {\n\n protected env: {[key: string]: string};\n protected instantiated: boolean;\n protected wasi: any;\n protected wasm: IWasmExports;\n protected envStrings: string[];\n\n constructor() {\n this.env = {};\n this.instantiated = false;\n this.wasi = [\n \"emscripten_notify_memory_growth\",\n \"proc_exit\",\n \"environ_get\",\n \"environ_sizes_get\",\n \"fd_close\",\n \"fd_write\",\n \"fd_read\",\n \"fd_seek\",\n ].reduce((res, key) => {\n if (typeof this[key] === \"function\") {\n res[key] = this[key].bind(this);\n }\n return res;\n }, {});\n }\n\n instantiate(bytes: ArrayBuffer): Promise<IWasmExports> {\n if (this.instantiated) {\n throw new Error(\"WASI already instantiated\");\n }\n this.instantiated = true;\n return WebAssembly.instantiate(bytes, {\n wasi_snapshot_preview1: this.wasi,\n env: this.wasi\n }).then(module => {\n const exports = module.instance.exports as any;\n this.wasm = {\n ...exports,\n writeArrayToMemory: (array: TypedArray) => {\n const bytes = array.length * array.BYTES_PER_ELEMENT;\n const pointer = exports.malloc(bytes);\n const ctr = array.constructor as any;\n const heapArray = new ctr(this.wasm.memory.buffer, pointer, array.length);\n heapArray.set(array);\n return pointer;\n },\n readArrayFromMemory: (pointer: number, array: TypedArray) => {\n const ctr = array.constructor as any;\n const heapArray = new ctr(this.wasm.memory.buffer, pointer, array.length);\n array.set(heapArray);\n return array;\n }\n } as IWasmExports;\n this.updateMemoryViews();\n return this.wasm;\n });\n }\n\n protected updateMemoryViews(): void {\n const buffer = this.wasm.memory.buffer;\n this.wasm.HEAP8 = new Int8Array(buffer);\n this.wasm.HEAP16 = new Int16Array(buffer);\n this.wasm.HEAP32 = new Int32Array(buffer);\n this.wasm.HEAPU8 = new Uint8Array(buffer);\n this.wasm.HEAPU16 = new Uint16Array(buffer);\n this.wasm.HEAPU32 = new Uint32Array(buffer);\n this.wasm.HEAPF32 = new Float32Array(buffer);\n this.wasm.HEAPF64 = new Float64Array(buffer);\n }\n\n protected getEnvStrings(): string[] {\n if (!this.envStrings) {\n let x;\n const env = {};\n for (x in this.env) {\n if (this.env[x] === undefined) delete env[x]; else env[x] = this.env[x]\n }\n const strings = [];\n for (x in env) {\n strings.push(x + \"=\" + env[x])\n }\n this.envStrings = strings\n }\n return this.envStrings;\n }\n\n protected stringToAscii(str, buffer) {\n const HEAP8 = this.wasm.HEAP8;\n for (let i = 0; i < str.length; ++i) {\n HEAP8[buffer++ >> 0] = str.charCodeAt(i)\n }\n HEAP8[buffer >> 0] = 0\n }\n\n emscripten_notify_memory_growth(memoryIndex: number): void {\n this.updateMemoryViews();\n }\n\n proc_exit(rval: number): void {\n console.log(\"proc_exit\", rval);\n }\n\n environ_get(environ: number, environ_buf: number): number {\n if (!this.wasm.HEAP8.byteLength) {\n this.emscripten_notify_memory_growth(0);\n }\n const HEAPU32 = this.wasm.HEAPU32;\n let bufSize = 0;\n this.getEnvStrings().forEach((str: string, i: number) => {\n const ptr = environ_buf + bufSize;\n HEAPU32[environ + i * 4 >> 2] = ptr;\n this.stringToAscii(str, ptr);\n bufSize += str.length + 1\n });\n return 0\n }\n\n environ_sizes_get(penviron_count: number, penviron_buf_size: number): number {\n if (!this.wasm.HEAP8.byteLength) {\n this.emscripten_notify_memory_growth(0);\n }\n const HEAPU32 = this.wasm.HEAPU32;\n const strings = this.getEnvStrings();\n HEAPU32[penviron_count >> 2] = strings.length;\n let bufSize = 0;\n strings.forEach(function (string) {\n bufSize += string.length + 1\n });\n HEAPU32[penviron_buf_size >> 2] = bufSize;\n // WASI_ESUCCESS\n return 0\n }\n\n fd_close(fd: number): number {\n // WASI_ESUCCESS\n return 0;\n }\n\n fd_write(fd: number, iovs: number, iovs_len: number, nwritten: number): number {\n if (fd !== 1) {\n // WASI_EBADF\n return 8;\n }\n if (iovs_len !== 1) {\n // WASI_ENOSYS\n return 52;\n }\n this.wasm.HEAPU32[nwritten >> 2] = this.wasm.HEAPU32[iovs + 4 >> 2];\n // WASI_ESUCCESS\n return 0;\n }\n\n fd_read(fd: number, iovs: number, iovs_len: number, nread: number): number {\n // WASI_EINVAL\n return 28;\n }\n\n fd_seek(fd: number, offset: number, whence: number, newOffset: number): number {\n // WASI_EINVAL\n return 28;\n }\n}\n","import {\n APP_INITIALIZER, EnvironmentProviders,\n Injector,\n makeEnvironmentProviders,\n ModuleWithProviders,\n NgModule,\n Provider\n} from \"@angular/core\";\nimport {APP_BASE_HREF, CommonModule} from \"@angular/common\";\nimport {FormsModule} from \"@angular/forms\";\nimport {\n API_SERVICE,\n APP_BASE_URL,\n AUTH_SERVICE,\n CONFIG_SERVICE,\n ICON_SERVICE,\n IModuleConfig,\n LANGUAGE_SERVICE,\n PROMISE_SERVICE,\n RESIZE_DELAY,\n RESIZE_STRATEGY,\n ROOT_ELEMENT,\n TOASTER_SERVICE,\n WASI_IMPLEMENTATION\n} from \"./common-types\";\nimport {components, directives, loadConfig, pipes, providers} from \"./ngx-utils.imports\";\nimport {ApiService} from \"./services/api.service\";\nimport {StaticAuthService} from \"./services/auth.service\";\nimport {IconService} from \"./services/icon.service\";\nimport {StaticLanguageService} from \"./services/static-language.service\";\nimport {ConsoleToasterService} from \"./services/toaster.service\";\nimport {PromiseService} from \"./services/promise.service\";\nimport {ConfigService} from \"./services/config.service\";\nimport {GlobalTemplateService} from \"./services/global-template.service\";\nimport {Wasi} from \"./utils/wasi\";\n\nexport function loadBaseUrl(): string {\n if (typeof (document) === \"undefined\" || typeof (location) === \"undefined\") return \"/\";\n const scripts = Array.from(document.scripts);\n const currentScript = (document.currentScript as HTMLScriptElement);\n let currentUrl = new URL(currentScript?.src ?? \"http://localhost:4200/\");\n if (!currentScript) {\n try {\n // noinspection ExceptionCaughtLocallyJS\n throw new Error();\n } catch (e) {\n const qualifiedUrl = location.protocol + \"//\" + location.host;\n const stack = (e.stack || \"\") as string;\n const srcUrl = (\n stack.match(new RegExp(qualifiedUrl + \".*?\\\\.js\", \"g\")) ||\n stack.match(/http([A-Z0-9:\\/\\-.]+)\\.js/gi) ||\n [`${qualifiedUrl}/main.js`]\n ).shift();\n currentUrl = new URL(srcUrl ?? \"\");\n }\n }\n const mainScript = scripts.find(s => {\n if (!s.src) return false;\n const sUrl = new URL(s.src);\n return currentUrl.host === sUrl.host && sUrl.pathname.includes(\"main\");\n });\n const scriptUrl = !mainScript ? currentUrl : new URL(mainScript.src);\n const path = scriptUrl.pathname?.split(\"/\") ?? [];\n path.pop();\n return `${scriptUrl.protocol}//${scriptUrl.host}${path.join(\"/\")}/`;\n}\n\nexport function loadBaseHref(baseUrl: string): string {\n try {\n return new URL(baseUrl).pathname;\n } catch (e) {\n console.log(e);\n return \"/\";\n }\n}\n\nexport function getRootElement(): HTMLElement {\n return typeof document !== \"undefined\" ? document.body : null;\n}\n\n@NgModule({\n declarations: [\n ...pipes,\n ...directives,\n ...components\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n ...pipes,\n ...directives,\n ...components,\n FormsModule\n ],\n providers: pipes\n})\nexport class NgxUtilsModule {\n\n private static getProviders(config?: IModuleConfig): Provider[] {\n return [\n ...providers,\n {\n provide: API_SERVICE,\n useExisting: (!config ? null : config.apiService) || ApiService\n },\n {\n provide: AUTH_SERVICE,\n useExisting: (!config ? null : config.authService) || StaticAuthService\n },\n {\n provide: ICON_SERVICE,\n useExisting: (!config ? null : config.iconService) || IconService\n },\n {\n provide: LANGUAGE_SERVICE,\n useExisting: (!config ? null : config.languageService) || StaticLanguageService\n },\n {\n provide: TOASTER_SERVICE,\n useExisting: (!config ? null : config.toasterService) || ConsoleToasterService\n },\n {\n provide: PROMISE_SERVICE,\n useExisting: (!config ? null : config.promiseService) || PromiseService\n },\n {\n provide: CONFIG_SERVICE,\n useExisting: (!config ? null : config.configService) || ConfigService\n },\n {\n provide: WASI_IMPLEMENTATION,\n useExisting: (!config ? null : config.wasiImplementation) || Wasi\n },\n {\n provide: APP_BASE_URL,\n useFactory: (!config ? null : config.baseUrl) || loadBaseUrl,\n deps: [Injector]\n },\n {\n provide: ROOT_ELEMENT,\n useFactory: getRootElement\n },\n {\n provide: RESIZE_DELAY,\n useValue: (!config ? null : config.resizeDelay) ?? 50,\n },\n {\n provide: RESIZE_STRATEGY,\n useValue: (!config ? null : config.resizeStrategy) ?? \"observer\",\n },\n {\n provide: APP_INITIALIZER,\n useFactory: (!config ? null : config.initializeApp) || loadConfig,\n multi: true,\n deps: [(!config ? null : config.initializeApp) ? Injector : CONFIG_SERVICE]\n },\n {\n provide: APP_BASE_HREF,\n useFactory: loadBaseHref,\n deps: [APP_BASE_URL]\n }\n ];\n }\n\n static forRoot(config?: IModuleConfig): ModuleWithProviders<NgxUtilsModule> {\n return {\n ngModule: NgxUtilsModule,\n providers: NgxUtilsModule.getProviders(config)\n };\n }\n\n static provideUtils(config?: IModuleConfig): EnvironmentProviders {\n return makeEnvironmentProviders(NgxUtilsModule.getProviders(config));\n }\n\n constructor() {\n\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.UniversalService","i1","emptyRemove","EventManagerPlugin","defaultFilter","i1.FormatterService","i1.GlobalTemplateService","i2.UniversalService","i1.DropdownDirective","i1.PaginationDirective","i1.EventsService","i3.EntriesPipe","i4.TranslatePipe","i2.DropdownDirective","i3.DropdownContentDirective","i4.DropdownToggleDirective","i1.StateService","i2.PaginationDirective","i3","i2","i3.NgxTemplateOutletDirective","i4.PaginationDirective","i5.PaginationItemDirective","i6.DropdownBoxComponent","i7.PaginationMenuComponent","i8.IncludesPipe","i9.TranslatePipe","i10.ValuesPipe","exports"],"mappings":"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AG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;CAAI;AAE9E,MAAM,SAAS,GAAG;AACd,IAAA,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,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"}
|
|
1
|
+
{"version":3,"file":"stemy-ngx-utils.mjs","sources":["../../src/ngx-utils/utils/object.utils.ts","../../src/ngx-utils/utils/reflect.utils.ts","../../src/ngx-utils/common-types.ts","../../src/ngx-utils/utils/ajax-request-handler.ts","../../src/ngx-utils/utils/array.utils.ts","../../src/ngx-utils/services/universal.service.ts","../../src/ngx-utils/services/state.service.ts","../../src/ngx-utils/utils/auth.guard.ts","../../src/ngx-utils/utils/cached-factory.ts","../../src/ngx-utils/utils/json.utils.ts","../../src/ngx-utils/utils/crypto.utils.ts","../../src/ngx-utils/utils/canvas.utils.ts","../../src/ngx-utils/utils/date.utils.ts","../../src/ngx-utils/utils/file.utils.ts","../../src/ngx-utils/utils/generic-value.ts","../../src/ngx-utils/utils/file-system.ts","../../src/ngx-utils/utils/geometry.ts","../../src/ngx-utils/utils/initializer.ts","../../src/ngx-utils/utils/loader.utils.ts","../../src/ngx-utils/utils/math.utils.ts","../../src/ngx-utils/utils/misc.ts","../../src/ngx-utils/utils/timer.utils.ts","../../src/ngx-utils/utils/observable.utils.ts","../../src/ngx-utils/utils/promise.utils.ts","../../src/ngx-utils/utils/string.utils.ts","../../src/ngx-utils/utils/set.utils.ts","../../src/ngx-utils/utils/unique.utils.ts","../../src/ngx-utils/utils/vector.ts","../../src/ngx-utils/utils/with-options-provider.ts","../../src/ngx-utils/utils/jsonfn.ts","../../src/ngx-utils/utils/wasm-worker-proxy.ts","../../src/ngx-utils/services/base-http.client.ts","../../src/ngx-utils/services/storage.service.ts","../../src/ngx-utils/services/base-http.service.ts","../../src/ngx-utils/services/local-http.service.ts","../../src/ngx-utils/services/wasm.service.ts","../../src/ngx-utils/services/acl.service.ts","../../src/ngx-utils/services/api.service.ts","../../src/ngx-utils/services/auth.service.ts","../../src/ngx-utils/services/config.service.ts","../../src/ngx-utils/services/error-handler.service.ts","../../src/ngx-utils/services/events.service.ts","../../src/ngx-utils/services/formatter.service.ts","../../src/ngx-utils/services/global-template.service.ts","../../src/ngx-utils/services/icon.service.ts","../../src/ngx-utils/services/static-language.service.ts","../../src/ngx-utils/services/language.service.ts","../../src/ngx-utils/services/open-api.service.ts","../../src/ngx-utils/services/toaster.service.ts","../../src/ngx-utils/services/translated-url.serializer.ts","../../src/ngx-utils/services/promise.service.ts","../../src/ngx-utils/plugins/resize-detector.ts","../../src/ngx-utils/plugins/resize-event.plugin.ts","../../src/ngx-utils/plugins/scroll-event.plugin.ts","../../src/ngx-utils/pipes/chunk.pipe.ts","../../src/ngx-utils/pipes/entries.pipe.ts","../../src/ngx-utils/pipes/extra-item-properties.pipe.ts","../../src/ngx-utils/pipes/filter.pipe.ts","../../src/ngx-utils/pipes/find.pipe.ts","../../src/ngx-utils/pipes/format-number.pipe.ts","../../src/ngx-utils/pipes/get-offset.pipe.ts","../../src/ngx-utils/pipes/get-type.pipe.ts","../../src/ngx-utils/pipes/get-value.pipe.ts","../../src/ngx-utils/pipes/global-template.pipe.ts","../../src/ngx-utils/pipes/group-by.pipe.ts","../../src/ngx-utils/pipes/includes.pipe.ts","../../src/ngx-utils/pipes/is-type.pipe.ts","../../src/ngx-utils/pipes/join.pipe.ts","../../src/ngx-utils/pipes/keys.pipe.ts","../../src/ngx-utils/pipes/map.pipe.ts","../../src/ngx-utils/pipes/max.pipe.ts","../../src/ngx-utils/pipes/min.pipe.ts","../../src/ngx-utils/pipes/pop.pipe.ts","../../src/ngx-utils/pipes/reduce.pipe.ts","../../src/ngx-utils/pipes/remap.pipe.ts","../../src/ngx-utils/pipes/replace.pipe.ts","../../src/ngx-utils/pipes/reverse.pipe.ts","../../src/ngx-utils/pipes/round.pipe.ts","../../src/ngx-utils/pipes/safe-html.pipe.ts","../../src/ngx-utils/pipes/shift.pipe.ts","../../src/ngx-utils/pipes/split.pipe.ts","../../src/ngx-utils/pipes/translate.pipe.ts","../../src/ngx-utils/pipes/values.pipe.ts","../../src/ngx-utils/directives/async-method.base.ts","../../src/ngx-utils/directives/async-method.directive.ts","../../src/ngx-utils/directives/background.directive.ts","../../src/ngx-utils/directives/dropdown.directive.ts","../../src/ngx-utils/directives/dropdown-content.directive.ts","../../src/ngx-utils/directives/dropdown-toggle.directive.ts","../../src/ngx-utils/directives/dynamic-table-template.directive.ts","../../src/ngx-utils/directives/global-template.directive.ts","../../src/ngx-utils/directives/icon.directive.ts","../../src/ngx-utils/directives/ngx-template-outlet.directive.ts","../../src/ngx-utils/directives/pagination.directive.ts","../../src/ngx-utils/directives/pagination-item.directive.ts","../../src/ngx-utils/directives/resource-if.directive.ts","../../src/ngx-utils/directives/sticky.directive.ts","../../src/ngx-utils/directives/sticky-class.directive.ts","../../src/ngx-utils/directives/unordered-list-item.directive.ts","../../src/ngx-utils/directives/unordered-list-template.directive.ts","../../src/ngx-utils/components/unordered-list/unordered-list.component.ts","../../src/ngx-utils/components/unordered-list/unordered-list.component.html","../../src/ngx-utils/components/dropdown-box/dropdown-box.component.ts","../../src/ngx-utils/components/dropdown-box/dropdown-box.component.html","../../src/ngx-utils/components/pagination-menu/pagination-menu.component.ts","../../src/ngx-utils/components/pagination-menu/pagination-menu.component.html","../../src/ngx-utils/components/dynamic-table/dynamic-table.component.ts","../../src/ngx-utils/components/dynamic-table/dynamic-table.component.html","../../src/ngx-utils/ngx-utils.imports.ts","../../src/ngx-utils/utils/wasi.ts","../../src/ngx-utils/ngx-utils.module.ts","../../src/stemy-ngx-utils.ts"],"sourcesContent":["import {ReflectUtils} from \"./reflect.utils\";\n\nexport type FilterPredicate = (value: any, key?: any, target?: any, source?: any) => boolean;\nexport type IterateCallback = (value: any, key?: any) => void;\n\nexport function defaultPredicate(value: any, key?: any, target?: any, source?: any): boolean {\n return true;\n}\n\nexport function shouldCopyDefault(key: any, value: any): boolean {\n return true;\n}\n\nconst hasBlob = typeof Blob !== \"undefined\" && !!Blob;\nconst hasFile = typeof File !== \"undefined\" && !!File;\n\nexport class ObjectUtils {\n\n static compare(a: any, b: any): number {\n if ((a === null || b === null) || (typeof a != typeof b)) {\n return null;\n }\n if (typeof a === \"string\") {\n return (a).localeCompare(b);\n } else {\n if (a instanceof Date) {\n a = a.getTime();\n b = b.getTime();\n }\n if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n }\n return 0;\n }\n }\n\n static getProperties(obj: any): string[] {\n if (!ObjectUtils.isObject(obj) && !ObjectUtils.isFunction(obj)) return [];\n const props = new Set<string>();\n Object.keys(obj).forEach(p => props.add(p));\n Object.getOwnPropertyNames(obj).forEach(p => props.add(p));\n return Array.from(props);\n }\n\n static equals(a: any, b: any, visited: Set<any> = null): boolean {\n visited = visited || new Set();\n if (visited.has(a) && visited.has(b)) return true;\n if (a === b) return true;\n if (a === null || b === null) return false;\n if (a !== a && b !== b) return true; // NaN === NaN\n const at = typeof a, bt = typeof b;\n let length: number, key: any, keySet: any;\n if (at == bt && at == \"object\") {\n visited.add(a);\n visited.add(b);\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) return false;\n if ((length = a.length) == b.length) {\n for (key = 0; key < length; key++) {\n if (!ObjectUtils.equals(a[key], b[key], visited)) return false;\n }\n return true;\n }\n } else {\n if (Array.isArray(b)) {\n return false;\n }\n keySet = Object.create(null);\n for (key in a) {\n if (a.hasOwnProperty(key)) {\n if (!ObjectUtils.equals(a[key], b[key], visited)) {\n return false;\n }\n keySet[key] = true;\n }\n }\n for (key in b) {\n if (b.hasOwnProperty(key) && !(key in keySet) && typeof b[key] !== \"undefined\") {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n }\n\n static evaluate(expr: string, context: any = {}, res: any = {}): any {\n expr = Object.keys(context).reduce((res, key) => `var ${key} = this['${key}'];\\n${res}`, expr);\n const lines = expr.split(\"\\n\");\n const lastLine = \"return \" + lines.pop().replace(\"return \", \"\");\n lines.push(lastLine);\n expr = lines.join(\"\\n\");\n let result = null;\n try {\n result = new Function(expr).call(context);\n } catch (e) {\n res.exception = e;\n console.log(`Failed to parse expression: ${e.message}`, expr, context);\n }\n res.result = result;\n return result;\n }\n\n static empty(obj: any): boolean {\n return !obj || Object.keys(obj).length == 0;\n }\n\n static iterate(obj: any, cb: IterateCallback): void {\n if (!obj) return;\n const keys: any[] = Array.isArray(obj) ? Array.from(obj.keys()) : Object.keys(obj);\n keys.forEach(\n // @dynamic\n key => {\n cb(obj[key], key);\n }\n );\n }\n\n static getValue(obj: any, key: string, defaultValue?: any, treeFallback: boolean = false): any {\n key = key || \"\";\n const keys = key.split(\".\");\n let curKey = \"\";\n do {\n curKey += keys.shift();\n if (ObjectUtils.isDefined(obj) && ObjectUtils.isDefined(obj[curKey]) && (typeof obj[curKey] === \"object\" || !keys.length)) {\n obj = obj[curKey];\n curKey = \"\";\n } else if (!keys.length) {\n defaultValue = typeof defaultValue == \"undefined\" ? key.replace(new RegExp(`${curKey}$`), `{${curKey}}`) : defaultValue;\n obj = treeFallback ? obj || defaultValue : defaultValue;\n } else {\n curKey += \".\";\n }\n } while (keys.length);\n return obj;\n }\n\n static mapToPath(target: any, source: any, path: string[]): any {\n if (typeof source === \"undefined\") return target;\n if (path.length == 0) return source;\n const key: any = path.shift();\n if (key == \"*\") {\n if (ObjectUtils.isArray(source)) {\n target = ObjectUtils.isArray(target) ? target : [];\n return source.map((item, index) => {\n return ObjectUtils.mapToPath(target[index], item, Array.from(path));\n });\n }\n if (ObjectUtils.isObject(source)) {\n target = ObjectUtils.isObject(target) ? target : {};\n return Object.keys(source).reduce((result, key) => {\n result[key] = ObjectUtils.mapToPath(target[key], source[key], Array.from(path));\n return result;\n }, {});\n }\n return ObjectUtils.isNullOrUndefined(target) ? null : target;\n }\n const isArray = ObjectUtils.isArray(target);\n target = ObjectUtils.isObject(target) || isArray ? target : {};\n target[key] = ObjectUtils.mapToPath(target[key], source, Array.from(path));\n return isNaN(key) || isArray ? target : Object.values(target);\n }\n\n static filter(obj: any, predicate: FilterPredicate): any {\n return ObjectUtils.copyRecursive(null, obj, predicate || defaultPredicate, new Map());\n }\n\n static copy<T>(obj: T): T {\n return ObjectUtils.copyRecursive(null, obj, defaultPredicate, new Map());\n }\n\n static assign<T>(target: T, source: any, predicate?: FilterPredicate): T {\n return ObjectUtils.copyRecursive(target, source, predicate || defaultPredicate, new Map());\n }\n\n static getType(obj: any): string {\n const regex = new RegExp(\"\\\\s([a-zA-Z]+)\");\n const target = !obj ? null : obj.constructor;\n const type = !target ? null : Reflect.getMetadata(\"objectType\", target);\n return (type || Object.prototype.toString.call(obj).match(regex)[1]).toLowerCase();\n }\n\n static isPrimitive(value: any): boolean {\n const type = typeof value;\n return value == null || (type !== \"object\" && type !== \"function\");\n }\n\n static isObject(value: any): boolean {\n return ObjectUtils.getType(value) === \"object\";\n }\n\n static isDefined(value: any): boolean {\n return typeof value !== \"undefined\" && value !== null;\n }\n\n static isNullOrUndefined(value: any): boolean {\n return typeof value == \"undefined\" || value == null;\n }\n\n static isString(value: any): value is string {\n return typeof value === \"string\";\n }\n\n static isFunction(value: any): value is Function {\n return typeof value === \"function\";\n }\n\n static isDate(value: any): value is Date {\n return null !== value && !isNaN(value) && \"undefined\" !== typeof value.getDate;\n }\n\n static isBlob(value: any): value is Blob {\n return (hasBlob && value instanceof Blob) || (hasFile && value instanceof File);\n }\n\n static isBoolean(value: any): value is boolean {\n return typeof(value) == typeof(true);\n }\n\n static isNumber(value: any): value is number {\n if (typeof value !== \"number\") return false;\n const num = +value;\n if ((num - num) !== 0) {\n return false;\n }\n if (num === value) {\n return true;\n }\n }\n\n static isArray(value: any): value is Array<any> {\n return Array.isArray(value);\n }\n\n static isSet(value: any): value is Set<any> {\n return value instanceof Set;\n }\n\n static isConstructor(value: any): boolean {\n return (value && typeof value === \"function\" && value.prototype && value.prototype.constructor) === value && value.name !== \"Object\";\n }\n\n static checkInterface(obj: any, interFaceObject: any): boolean {\n return ObjectUtils.isInterface(obj, interFaceObject);\n }\n\n static isInterface(obj: any, interFaceObject: any): boolean {\n if (!obj || typeof obj !== \"object\" || ObjectUtils.isArray(obj) || !ObjectUtils.isObject(interFaceObject)) return false;\n const keys = Object.keys(interFaceObject);\n for (const key of keys) {\n let type = interFaceObject[key] || \"\";\n if (type.startsWith(\"*\")) {\n type = type.substr(1);\n if (obj.hasOwnProperty(key) && ObjectUtils.getType(obj[key]) !== type) return false;\n } else if (!obj.hasOwnProperty(key) || ObjectUtils.getType(obj[key]) !== type) {\n return false;\n }\n }\n return true;\n }\n\n static pad(obj: any, width: number, chr: string = \"0\"): string {\n const str = ObjectUtils.isDefined(obj) ? obj.toString() : \"\";\n return str.length >= width ? str : new Array(width - str.length + 1).join(chr) + str;\n }\n\n private static copyRecursive(target: any, source: any, predicate: FilterPredicate, copies: Map<any, any>): any {\n if (ObjectUtils.isPrimitive(source) || ObjectUtils.isDate(source) || ObjectUtils.isBlob(source) || ObjectUtils.isFunction(source)) return source;\n if (copies.has(source)) return copies.get(source);\n if (ObjectUtils.isArray(source)) {\n target = ObjectUtils.isArray(target) ? Array.from(target) : [];\n copies.set(source, target);\n for (let index = 0; index < source.length; index++) {\n const item = source[index];\n if (!predicate(item, index, target, source)) continue;\n if (target.length > index)\n target[index] = ObjectUtils.copyRecursive(target[index], item, predicate, copies);\n else\n target.push(ObjectUtils.copyRecursive(null, item, predicate, copies));\n }\n return target;\n }\n\n // If object defines __shouldCopy as false, then don't copy it\n if (source.__shouldCopy === false) return source;\n // Copy object\n const shouldCopy = ObjectUtils.isFunction(source.__shouldCopy) ? source.__shouldCopy : shouldCopyDefault;\n if (ObjectUtils.isConstructor(source.constructor)) {\n if (!target) {\n try {\n target = new source.constructor();\n } catch (e) {\n const proto = source.constructor.prototype || source.prototype;\n target = Object.create(proto);\n }\n }\n } else {\n target = Object.assign({}, target || {});\n }\n // Set to copies to prevent circular references\n copies.set(source, target);\n\n // Copy map entries\n if (target instanceof Map) {\n if (source instanceof Map) {\n for (const [key, value] of source.entries()) {\n if (!predicate(value, key, target, source)) continue;\n target.set(key, !shouldCopy(key, value) ? value : ObjectUtils.copyRecursive(target.get(key), value, predicate, copies));\n }\n }\n return target;\n }\n\n // Copy object members\n const keys = Object.keys(source);\n for (const key of keys) {\n if (!predicate(source[key], key, target, source)) continue;\n target[key] = !shouldCopy(key, source[key]) ? source[key] : ObjectUtils.copyRecursive(target[key], source[key], predicate, copies);\n }\n\n // Copy object properties\n const descriptors = Object.getOwnPropertyDescriptors(source);\n for (const key of Object.keys(descriptors)) {\n if (keys.indexOf(key) >= 0) continue;\n Object.defineProperty(target, key, descriptors[key]);\n }\n return target;\n }\n}\n","import \"reflect-metadata\";\nimport {Injector, TypeProvider} from \"@angular/core\";\nimport {IResolveFactory} from \"../common-types\";\nimport {ObjectUtils} from \"./object.utils\";\n\nexport class ReflectUtils {\n\n static defineMetadata(key: string, data: any, target: any, name?: string): void {\n Reflect.defineMetadata(key, data, target, name);\n }\n\n static getMetadata(key: string, target: any, name?: string): any {\n return Reflect.getMetadata(key, target, name);\n }\n\n static getOwnMetadata(key: string, target: any, name?: string): any {\n return Reflect.getOwnMetadata(key, target, name);\n }\n\n static resolve<T>(obj: IResolveFactory | T, injector: Injector): T {\n if (!ObjectUtils.checkInterface(obj, {func: \"function\"})) return <T>obj;\n const factory = <IResolveFactory>obj;\n let depends: TypeProvider[] = [];\n if (factory.type) {\n const method = ObjectUtils.getProperties(factory.type).find(function (key) {\n return factory.type[key] === factory.func;\n });\n depends = ReflectUtils.getMetadata(\"factoryDependencies\", factory.type, method) || [];\n } else {\n depends = ReflectUtils.getMetadata(\"factoryDependencies\", factory.func) || [];\n }\n const parameters = depends.map(function (dep) {\n return injector.get(dep);\n }).concat(factory.params);\n return factory.func.apply(null, parameters);\n }\n}\n","import {ElementRef, EventEmitter, InjectionToken, Injector, NgZone, Provider, TemplateRef, Type} from \"@angular/core\";\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from \"@angular/common/http\";\nimport {ActivatedRouteSnapshot, Data, Route, UrlTree} from \"@angular/router\";\nimport {Request} from \"express\";\nimport {ReflectUtils} from \"./utils/reflect.utils\";\nimport {ObjectUtils} from \"./utils/object.utils\";\n\n// --- Util\nexport interface TypedFactoryProvider<T> {\n useFactory: (...args: any[]) => T;\n deps: any[];\n}\n\nexport interface TypedValueProvider<T> {\n useValue: T;\n}\n\nexport type CachedProvider<T> = Type<T> | TypedFactoryProvider<T> | TypedValueProvider<T>;\n\nexport type CachedFactory<T> = (injector: Injector) => ReadonlyArray<T>;\n\nexport const OPTIONS_TOKEN = new InjectionToken(\"custom-options-token\");\n\nexport interface IResolveFactory {\n func: Function;\n type?: any;\n params?: any[];\n}\n\nexport class CanvasColor {\n constructor(public r: number, public g: number, public b: number, public a: number = 255) {\n\n }\n}\n\n// --- Icon service ---\nexport interface IIconService {\n isDisabled: boolean;\n iconsLoaded: EventEmitter<any>;\n getIcon(icon: string, activeIcon: string, active: boolean): Promise<string>;\n}\n\nexport const ICON_SERVICE: InjectionToken<IIconService> = new InjectionToken<IIconService>(\"icon-service\");\n\n// --- Language service ---\nexport interface ITranslation {\n lang: string;\n translation: string;\n}\n\nexport interface ITranslations {\n [key: string]: string;\n}\n\nexport type GlobalTranslations = Record<string, ITranslations>;\n\nexport interface ILanguageSetting {\n unavailable?: string;\n [key: string]: string | boolean | number;\n}\n\nexport interface ILanguageSettings {\n languages: string[];\n devLanguages: string[];\n defaultLanguage: string;\n settings?: {[lang: string]: ILanguageSetting};\n}\n\nexport interface ILanguageService {\n currentLanguage: string;\n editLanguage: string;\n disableTranslations: boolean;\n defaultLanguage: string;\n dictionary: ITranslations;\n readonly languages: ReadonlyArray<string>;\n readonly httpClient: HttpClient;\n replaceLanguages(languages: string[]): void;\n addLanguages(languages: string[]): void;\n getTranslationSync(key: string, params?: any): string;\n getTranslation(key: string, params?: any): Promise<string>;\n getTranslations(...keys: string[]): Promise<ITranslations>;\n getTranslationFromObject(translations: ITranslations, params?: any, lang?: string): string;\n getTranslationFromArray(translations: ITranslation[], params?: any, lang?: string): string;\n}\n\nexport const LANGUAGE_SERVICE: InjectionToken<ILanguageService> = new InjectionToken<ILanguageService>(\"language-service\");\n\n// --- Auth Service ---\nexport interface IUserData {\n _id?: string;\n id?: string;\n email?: string;\n [key: string]: any;\n}\n\nexport interface IAuthService {\n isAuthenticated: boolean;\n userChanged: EventEmitter<any>;\n checkAuthenticated(): Promise<boolean>;\n}\n\nexport type RouteValidator = (auth: IAuthService, route?: IRoute, next?: ActivatedRouteSnapshot) => Promise<boolean>;\n\nexport interface IRouteData extends Data {\n returnState?: string[];\n guards?: Array<IResolveFactory | RouteValidator>;\n}\n\nexport interface IRoute extends Route {\n data?: IRouteData;\n}\n\nexport const AUTH_SERVICE: InjectionToken<IAuthService> = new InjectionToken<IAuthService>(\"auth-service\");\n\n// --- Acl Service ---\nexport interface IAclComponent {\n onUserInitialized(): void;\n onUserChanged(): void;\n}\n\nexport interface IRouteStateInfo {\n route: IRoute;\n guard: any;\n dirty: boolean;\n first: boolean;\n component?: any;\n}\n\n// --- State Service ---\nexport type NavigationUrlParam = any[] | string | UrlTree;\n\n// --- Storage Service ---\nexport enum StorageMode {\n Local,\n Session\n}\n\n// --- Toaster Service ---\nexport interface IToasterService {\n error(message: string, params?: any, title?: string): void;\n info(message: string, params?: any, title?: string): void;\n success(message: string, params?: any, title?: string): void;\n warning(message: string, params?: any, title?: string): void;\n}\n\nexport const TOASTER_SERVICE: InjectionToken<IToasterService> = new InjectionToken<IToasterService>(\"toaster-service\");\n\n// --- Promise Service ---\n\nexport interface IPromiseService {\n zone: NgZone;\n count: number;\n onChanged: EventEmitter<number>;\n create<T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;\n all(promises: Promise<any>[]): Promise<any>;\n resolve<T>(value: T | PromiseLike<T>): Promise<T>;\n reject<T>(value: T | PromiseLike<T>): Promise<T>;\n}\n\nexport const PROMISE_SERVICE = new InjectionToken<IPromiseService>(\"promise-service\");\n\n// --- Wasm service ---\nexport type TypedArray =\n | Int8Array\n | Int16Array\n | Int32Array\n | Uint8Array\n | Uint8ClampedArray\n | Uint16Array\n | Uint32Array\n | Float32Array\n | Float64Array;\n\nexport interface IWasmExports {\n HEAP8: Int8Array;\n HEAP16: Int16Array,\n HEAP32: Int32Array,\n HEAPU8: Uint8Array;\n HEAPU16: Uint16Array,\n HEAPU32: Uint32Array,\n HEAPF32: Float32Array,\n HEAPF64: Float64Array,\n memory: WebAssembly.Memory;\n [key: string]: any;\n}\n\nexport interface IWasi {\n instantiate(bytes: ArrayBuffer): Promise<IWasmExports>;\n}\n\nexport interface IWasm {\n writeArrayToMemory(array: TypedArray): Promise<number> | number;\n readArrayFromMemory<T = TypedArray>(pointer: number, array: T): Promise<T> | T;\n [key: string]: (...args: any[]) => any;\n}\n\nexport interface IWasmAsync {\n writeArrayToMemory(array: TypedArray): Promise<number>;\n readArrayFromMemory<T = TypedArray>(pointer: number, array: T): T;\n [key: string]: (...args: any[]) => Promise<any>;\n}\n\nexport const WASI_IMPLEMENTATION = new InjectionToken<Type<IWasi>>(\"wasi-implementation\");\n\n// --- Async method ---\nexport interface IAsyncMessage {\n message: string;\n context?: any;\n}\n\nexport type AsyncMethod = (context?: any) => Promise<IAsyncMessage>;\n\n// --- Dropdown ---\nexport type DropdownAttachTo = \"root\" | HTMLElement | ElementRef<HTMLElement> | null;\n\n// --- Unordered list ---\nexport interface UnorderedListTemplate {\n readonly type: string;\n readonly selector: string;\n readonly templateRef: TemplateRef<any>\n}\n\nexport interface UnorderedListTemplates {\n [type: string]: TemplateRef<any>;\n}\n\nexport type UnorderedListStyle = \"table\" | \"list\";\n\n// --- Ajax request ---\nexport interface IAjaxRequestDetails {\n request: XMLHttpRequest,\n method: string;\n url: string;\n}\n\nexport type AjaxRequestCallback = (details: IAjaxRequestDetails, params: any) => void;\n\n// --- Loader utils ---\nexport type ScriptType = \"text/javascript\" | \"module\";\n\nexport interface LoadableElement extends HTMLElement {\n readyState?: string;\n onreadystatechange?: Function;\n}\n\nexport type LoaderPromises<T extends LoadableElement> = Record<string, {\n elem: T;\n promise: Promise<T>;\n}>;\n\n// --- Observable utils ---\nexport interface ISearchObservable {\n search: string;\n getSearchResults(token: string): Promise<any[]>;\n}\n\n// --- Reflect utils ---\nexport function FactoryDependencies(...dependencies: Array<InjectionToken<any> | Provider>): MethodDecorator {\n return function (target: any, method: string): void {\n ReflectUtils.defineMetadata(\"factoryDependencies\", dependencies, target, method);\n };\n}\n\nexport function ObjectType(type: string): ClassDecorator {\n return function (target: any): void {\n ReflectUtils.defineMetadata(\"objectType\", type, target);\n };\n}\n\n// --- Timer utils ---\nexport interface ITimer {\n id?: any;\n func?: Function;\n time?: number;\n run?: () => void;\n set?: (func: Function, time: number) => void;\n clear?: () => void;\n}\n\n// --- ExtraItemProperties ---\nexport interface IExtraProperties {\n [prop: string]: any;\n}\n\n// --- Group by ---\nexport interface IGroupMap {\n [column: string]: any;\n}\n\n// --- Translate ---\nexport type TranslationQuery = string | ITranslations | ITranslation[];\n\n// --- Pagination ---\nexport interface IPageInfo {\n text: string;\n number: number;\n active: boolean;\n}\n\nexport interface IPaginationData {\n total: number;\n items: any[];\n meta?: any;\n}\n\nexport type PaginationDataLoader = (page: number, itemsPerPage: number) => Promise<IPaginationData>;\n\nexport class PaginationItemContext {\n\n constructor(public item: any, public parallelItem: any, public count: number, public index: number, public dataIndex: number) {\n }\n\n get first(): boolean {\n return this.index === 0;\n }\n\n get last(): boolean {\n return this.index === this.count - 1;\n }\n\n get even(): boolean {\n return this.index % 2 === 0;\n }\n\n get odd(): boolean {\n return !this.even;\n }\n\n // Support for old dynamic table implementation\n get row(): any {\n console.log(\"DynamicTable row is deprecated use item instead\");\n return this.item;\n }\n\n // Support for old dynamic table implementation\n get parallelRow(): any {\n console.log(\"DynamicTable parallelRow is deprecated use parallelItem instead\");\n return this.parallelItem;\n }\n\n filter(filterRx: RegExp): boolean {\n const keys = Object.keys(this.item);\n for (const key of keys) {\n const value = this.item[key];\n if (ObjectUtils.isNullOrUndefined(value) || ObjectUtils.isObject(value)) continue;\n const testValue = ObjectUtils.isString(value) ? value : value.toString();\n if (testValue.match(filterRx)) return true;\n }\n return false;\n }\n}\n\n// --- Http service ---\nexport interface IHttpHeaders {\n [header: string]: string | string[];\n}\n\nexport interface IHttpParams {\n [key: string]: any;\n}\n\nexport interface IRequestOptions {\n method?: string;\n body?: any;\n headers?: IHttpHeaders | HttpHeaders;\n originalHeaders?: IHttpHeaders;\n params?: IHttpParams;\n observe?: \"body\" | \"response\";\n reportProgress?: boolean;\n responseType?: \"arraybuffer\" | \"blob\" | \"json\" | \"text\";\n withCredentials?: boolean;\n timeout?: number;\n}\n\nexport interface IIssueContext {\n url: string;\n}\n\nexport interface IProgress {\n percentage?: number;\n loaded?: number;\n total?: number;\n}\n\nexport type ProgressListener = (progress: IProgress) => void;\n\nexport type PromiseExecutor = (resolve: (value?: any | PromiseLike<any>) => void, reject: (reason?: any) => void) => void;\n\nexport class HttpPromise extends Promise<any> {\n\n protected rejectHandler: (reason?: HttpErrorResponse) => void;\n protected hasRejectHandler: boolean;\n protected attachCount: number;\n protected runCount: number;\n\n constructor(rejectHandler: (reason?: HttpErrorResponse) => void, executor: PromiseExecutor) {\n super(executor);\n this.rejectHandler = rejectHandler;\n this.attachCount = 0;\n this.runCount = 0;\n }\n\n then<TResult1, TResult2>(onFulfilled?: ((value: any) => (PromiseLike<TResult1> | TResult1)) | null | undefined,\n onRejected?: ((reason: HttpErrorResponse) => (PromiseLike<TResult2> | TResult2)) | null | undefined): Promise<TResult1 | TResult2> {\n this.attachCount++;\n return super.then(value => {\n this.runCount++;\n return onFulfilled ? onFulfilled(value) : null;\n }, (reason: HttpErrorResponse) => {\n const result: any = onRejected ? onRejected(reason) : null;\n this.hasRejectHandler = this.hasRejectHandler || (onRejected && result !== false);\n this.runCount++;\n this.rejectHandler(this.runCount == this.attachCount && !this.hasRejectHandler ? reason : null);\n return result;\n });\n }\n\n catch<TResult = never>(onRejected?: ((reason: HttpErrorResponse) => (PromiseLike<TResult> | TResult)) | null | undefined): Promise<any | TResult> {\n return this.then(null, onRejected);\n }\n}\n\nexport interface IHttpService {\n language: ILanguageService;\n url(url: string): string;\n makeListParams(page: number, itemsPerPage: number, orderBy?: string, orderDescending?: boolean, filter?: string): IHttpParams;\n}\n\nexport const EXPRESS_REQUEST = new InjectionToken<Request>(\"express-request\");\n\n// --- Api service ---\n\nexport interface IBaseHttpClient extends HttpClient {\n requestHeaders: IHttpHeaders;\n requestParams: IHttpParams;\n}\n\nexport interface IApiService extends IHttpService {\n cache: any;\n client: HttpClient;\n get(url: string, options?: IRequestOptions): Promise<any>;\n delete(url: string, options?: IRequestOptions): Promise<any>;\n post(url: string, body?: any, options?: IRequestOptions): Promise<any>;\n put(url: string, body?: any, options?: IRequestOptions): Promise<any>;\n patch(url: string, body?: any, options?: IRequestOptions): Promise<any>;\n upload(url: string, body: any, listener?: ProgressListener, options?: IRequestOptions): Promise<any>;\n list(url: string, params: IHttpParams): Promise<IPaginationData>;\n}\n\nexport const API_SERVICE: InjectionToken<IApiService> = new InjectionToken<IApiService>(\"api-service\");\n\n// --- OpenApi service ---\nexport interface IOpenApiSchemaProperty {\n id: string;\n type?: string;\n format?: string;\n column?: boolean;\n additionalProperties?: any;\n $ref?: string;\n allOf?: ReadonlyArray<{$ref?: string}>\n items?: IOpenApiSchemaProperty;\n enum?: string[];\n [key: string]: any;\n}\n\nexport interface IOpenApiSchema {\n properties: {\n [name: string]: IOpenApiSchemaProperty;\n };\n required: string[];\n}\n\nexport interface IOpenApiSchemas {\n [name: string]: IOpenApiSchema;\n}\n\n// --- Dynamic table ---\nexport interface ITableOrders {\n [column: string]: string;\n}\n\nexport interface ITableColumn {\n title?: string;\n sort?: string;\n filter?: boolean;\n [key: string]: any;\n}\n\nexport interface ITableColumns {\n [column: string]: ITableColumn;\n}\n\nexport type TableColumns = ITableOrders | ITableColumns | string[];\n\nexport interface ITableTemplate {\n column: string | string[];\n pure: boolean;\n ref: TemplateRef<any>;\n}\n\nexport interface ITableTemplates {\n [column: string]: ITableTemplate;\n}\n\nexport interface ITableDataQuery {\n [column: string]: string | string[] | boolean;\n}\n\nexport type TableDataLoader = (\n page: number, rowsPerPage: number, orderBy: string, orderDescending: boolean,\n filter: string, query: ITableDataQuery\n) => Promise<IPaginationData>;\n\n// --- Resource if ---\nexport class ResourceIfContext {\n resource: string;\n url: string;\n}\n\n// --- ConfigService ---\nexport const APP_BASE_URL = new InjectionToken<string>(\"app-base-url\");\n\nexport class IConfiguration {\n cdnUrl?: string;\n baseUrl?: string;\n baseDomain?: string;\n translationUrl?: string;\n [key: string]: any;\n}\n\nexport interface IConfigService {\n readonly http: IBaseHttpClient;\n readonly config: IConfiguration;\n readonly injector: Injector;\n readonly load: () => Promise<IConfiguration>;\n readonly rootElement: any;\n cloneRootElem(): any;\n prepareUrl(url: string, ending: string): string;\n getConfigValue(key: string): any;\n getQueryParameter(name: string, url?: string): string;\n}\n\nexport const CONFIG_SERVICE = new InjectionToken<IConfigService>(\"config-service\");\n\nexport const BASE_CONFIG = new InjectionToken<IConfiguration>(\"base-config\");\n\nexport const SCRIPT_PARAMS = new InjectionToken<any>(\"script-params\");\n\nexport const ROOT_ELEMENT = new InjectionToken<HTMLElement>(\"app-root-element\");\n\nexport const RESIZE_DELAY = new InjectionToken<number>(\"resize-event-delay\");\n\nexport type ResizeEventStrategy = \"scroll\" | \"object\" | \"observer\";\n\nexport const RESIZE_STRATEGY = new InjectionToken<ResizeEventStrategy>(\"resize-event-strategy\");\n\n// --- Error handler service ---\nexport type ErrorHandlerCallback = (error: string) => any;\n\nexport const ERROR_HANDLER = new InjectionToken<ErrorHandlerCallback>(\"error-handler-callback\");\n\n// --- Global templates service\n\nexport type GlobalComponentModifier = (component: any) => any;\n\n// --- Module ---\nexport type AppInitializerFunc = () => Promise<void> | void;\n\nexport interface IModuleConfig {\n apiService?: Type<IApiService>\n authService?: Type<IAuthService>;\n iconService?: Type<IIconService>;\n languageService?: Type<ILanguageService>;\n toasterService?: Type<IToasterService>;\n promiseService?: Type<IPromiseService>;\n configService?: Type<IConfigService>;\n wasiImplementation?: Type<IWasi>;\n initializeApp?: (injector: Injector) => AppInitializerFunc;\n baseUrl?: (injector: Injector) => string;\n resizeDelay?: number;\n resizeStrategy?: ResizeEventStrategy;\n}\n\n// --- Valued promise ---\nexport class ValuedPromise<T> extends Promise<T> {\n value: T;\n}\n","import {AjaxRequestCallback, IAjaxRequestDetails} from \"../common-types\";\n\nexport class AjaxRequestHandler {\n\n private static isOverridden: boolean = false;\n\n public params: any;\n\n constructor(private pattern: RegExp, private callback: AjaxRequestCallback) {\n this.params = {};\n if (typeof XMLHttpRequest !== \"undefined\" && !AjaxRequestHandler.isOverridden) {\n AjaxRequestHandler.isOverridden = true;\n const originalOpen = XMLHttpRequest.prototype.open;\n XMLHttpRequest.prototype.open = function (method: string, url?: string, async?: boolean, user?: string, password?: string): void {\n originalOpen.apply(this, arguments);\n window.dispatchEvent(new CustomEvent(\"ajaxRequest\", {\n detail: {\n request: this,\n method: method,\n url: url\n }\n }))\n };\n }\n }\n\n listen(): AjaxRequestHandler {\n if (typeof window === \"undefined\") return this;\n window.addEventListener(\"ajaxRequest\", this.listener);\n return this;\n }\n\n forget(): AjaxRequestHandler {\n if (typeof window === \"undefined\") return;\n window.removeEventListener(\"ajaxRequest\", this.listener);\n return this;\n }\n\n private listener = (event: CustomEvent): void => {\n const details: IAjaxRequestDetails = event.detail;\n if (this.pattern.test(details.url)) this.callback(details, this.params);\n };\n}\n","import {ObjectUtils} from \"./object.utils\";\n\nexport class ArrayUtils {\n\n static has(arr: any[], ...items: any[]): boolean {\n if (!ObjectUtils.isArray(arr) || !ObjectUtils.isArray(items)) return false;\n for (let i = 0; i < items.length; i++) {\n if (arr.indexOf(items[i]) >= 0) return true;\n }\n return false;\n }\n\n static match(arr: any[], str: string): boolean {\n if (!ObjectUtils.isArray(arr) || !ObjectUtils.isString(str)) return false;\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] instanceof RegExp) {\n const regex = <RegExp>arr[i];\n if (regex.test(str)) return true;\n }\n }\n return false;\n }\n\n static any<T>(arr: T[], cb: (item: T) => boolean): boolean {\n if (!ObjectUtils.isArray(arr) || !ObjectUtils.isFunction(cb)) return false;\n for (let i = 0; i < arr.length; i++) {\n if (cb(arr[i])) return true;\n }\n return false;\n }\n\n static move<T>(arr: T[], oldIndex: number, newIndex: number): T[] {\n if (!ObjectUtils.isArray(arr)) return [];\n const length = arr.length;\n while (oldIndex < 0) {\n oldIndex += length;\n }\n while (newIndex < 0) {\n newIndex += length;\n }\n if (newIndex >= length) {\n let k = newIndex - length + 1;\n while (k--) {\n arr.push(undefined);\n }\n }\n arr.splice(newIndex, 0, arr.splice(oldIndex, 1)[0]);\n return arr;\n }\n\n static reversed(arr: any[]): any[] {\n const result = [];\n if (!ObjectUtils.isArray(arr)) return result;\n for (let i = arr.length - 1; i >= 0; i--) {\n result.push(arr[i]);\n }\n return result;\n }\n\n static min<T>(arr: T[], cb: (item: T, index?: number) => number): T {\n if (!ObjectUtils.isArray(arr)) return null;\n let min = Number.MAX_SAFE_INTEGER;\n let result = null;\n for (let i = 0; i < arr.length; i++) {\n const current = cb(arr[i], i);\n if (current < min || result === null) {\n min = current;\n result = arr[i];\n }\n }\n return result;\n }\n\n static max<T>(arr: T[], cb: (item: T, index?: number) => number): T {\n if (!ObjectUtils.isArray(arr)) return null;\n let max = Number.MIN_SAFE_INTEGER;\n let result = null;\n for (let i = 0; i < arr.length; i++) {\n const current = cb(arr[i], i);\n if (current > max || result === null) {\n max = current;\n result = arr[i];\n }\n }\n return result;\n }\n\n static chunk<T>(arr: T[], size: number): Array<T[]> {\n if (!ObjectUtils.isArray(arr)) return [];\n size = Math.max(1, size);\n const result = []\n for (let i = 0; i < arr.length; i += size) {\n result.push(arr.slice(i, i + size))\n }\n return result\n }\n\n static unique<T>(arr: T[]): T[] {\n if (!ObjectUtils.isArray(arr)) return [];\n return arr.filter((value, index, self) => {\n return self.indexOf(value) === index;\n });\n }\n}\n","import {Inject, Injectable, PLATFORM_ID} from \"@angular/core\";\nimport {isPlatformBrowser, isPlatformServer} from \"@angular/common\";\nimport {DeviceDetectorService, DeviceInfo} from \"ngx-device-detector\";\n\n/**\n * Use this service to determine which is the current environment\n */\n@Injectable()\nexport class UniversalService {\n\n get isBrowser(): boolean {\n return isPlatformBrowser(this.platformId);\n }\n\n get isServer(): boolean {\n return isPlatformServer(this.platformId);\n }\n\n get deviceInfo(): DeviceInfo {\n return this.isServer\n ? {\n userAgent: \"angular-universal\",\n os: \"unknown\",\n browser: \"node\",\n device: \"node\",\n os_version: \"unknown\",\n browser_version: \"unknown\",\n deviceType: \"unknown\",\n orientation: \"landscape\"\n } as any\n : this.dds.getDeviceInfo();\n }\n\n get browserName(): string {\n return (this.dds.browser || \"\").toLowerCase();\n }\n\n get browserVersion(): string {\n return this.dds.browser_version;\n }\n\n get isExplorer(): boolean {\n return this.checkBrowser(\"ie\");\n }\n\n get isEdge(): boolean {\n return this.checkBrowser(\"edge\");\n }\n\n get isChrome(): boolean {\n return this.checkBrowser(\"chrome\");\n }\n\n get isFirefox(): boolean {\n return this.checkBrowser(\"firefox\");\n }\n\n get isSafari(): boolean {\n return this.checkBrowser(\"safari\");\n }\n\n get isTablet(): boolean {\n return this.dds.isTablet();\n }\n\n get isMobile(): boolean {\n return this.dds.isMobile();\n }\n\n get isDesktop(): boolean {\n return this.dds.isDesktop();\n }\n\n get isCrawler(): boolean {\n return this.crawler;\n }\n\n private readonly crawler: boolean;\n\n constructor(@Inject(PLATFORM_ID) readonly platformId: string, readonly dds: DeviceDetectorService) {\n const info = this.dds.getDeviceInfo();\n this.crawler = /(bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|lighthouse|angular-universal|PTST|PostmanRuntime)/gi.test(info.userAgent);\n }\n\n protected checkBrowser(name: string): boolean {\n return this.browserName.includes(name) || false;\n }\n}\n","import {Injectable, Injector, NgZone, Optional} from \"@angular/core\";\r\nimport {\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n Data,\r\n NavigationEnd,\r\n NavigationExtras,\r\n OutletContext,\r\n Params,\r\n Resolve,\r\n Route,\r\n Router,\r\n Scroll,\r\n UrlSegment,\r\n UrlTree\r\n} from \"@angular/router\";\r\nimport {BehaviorSubject, firstValueFrom, Observable, Observer, Subscription} from \"rxjs\";\r\nimport {debounceTime, distinctUntilChanged, filter, map, skipWhile,} from \"rxjs/operators\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {IRoute, NavigationUrlParam} from \"../common-types\";\r\nimport {UniversalService} from \"./universal.service\";\r\n\r\nexport const emptySnapshot = new ActivatedRouteSnapshot();\r\nexport const emptyData: Data = {id: \"\"};\r\nexport const emptyParams: Params = {};\r\nexport const emptySegments: UrlSegment[] = [];\r\nexport const emptyComponents: any[] = [];\r\n\r\nexport interface IStateInfo {\r\n url: string;\r\n segments: UrlSegment[];\r\n components: any[];\r\n}\r\n\r\n@Injectable()\r\nexport class StateService {\r\n\r\n readonly globalExtras: NavigationExtras;\r\n\r\n protected $snapshot: BehaviorSubject<ActivatedRouteSnapshot>;\r\n protected $component: BehaviorSubject<any>;\r\n protected stateInfo: IStateInfo;\r\n\r\n static toPath(route: Route, params: any): string {\r\n let path = route.path || \"\";\r\n ObjectUtils.iterate(params, (value: any, key: string) => {\r\n path = path.replace(`:${key}`, `${value}`);\r\n });\r\n return path;\r\n }\r\n\r\n get snapshot(): ActivatedRouteSnapshot {\r\n return this.$snapshot.value;\r\n }\r\n\r\n get component(): any {\r\n return this.$component.value;\r\n }\r\n\r\n get route(): IRoute {\r\n return this.snapshot.routeConfig;\r\n }\r\n\r\n get data(): Data {\r\n return this.snapshot.data || emptyData;\r\n }\r\n\r\n get params(): Params {\r\n return this.snapshot.params || emptyParams;\r\n }\r\n\r\n get queryParams(): Params {\r\n return this.snapshot.queryParams || emptyParams;\r\n }\r\n\r\n get url(): string {\r\n return this.stateInfo.url || \"\";\r\n }\r\n\r\n get urlSegments(): UrlSegment[] {\r\n return this.stateInfo.segments || emptySegments;\r\n }\r\n\r\n get components(): any[] {\r\n return this.stateInfo.components || emptyComponents;\r\n }\r\n\r\n get routerConfig(): IRoute[] {\r\n return this.router.config;\r\n }\r\n\r\n get $observable(): Observable<ActivatedRouteSnapshot> {\r\n return this.$snapshot.pipe(\r\n skipWhile(snapshot => snapshot === emptySnapshot),\r\n debounceTime(25)\r\n )\r\n }\r\n\r\n constructor(readonly injector: Injector,\r\n readonly zone: NgZone,\r\n readonly universal: UniversalService,\r\n @Optional() readonly router: Router = null,\r\n @Optional() readonly contexts: ChildrenOutletContexts = null) {\r\n this.globalExtras = {\r\n queryParamsHandling: \"merge\"\r\n };\r\n this.$snapshot = new BehaviorSubject(emptySnapshot);\r\n this.$component = new BehaviorSubject(null);\r\n this.stateInfo = {\r\n url: \"\",\r\n segments: [],\r\n components: []\r\n };\r\n this.router?.events\r\n .pipe(\r\n distinctUntilChanged(),\r\n map(event => {\r\n if (event instanceof Scroll) {\r\n return event.routerEvent;\r\n }\r\n return event;\r\n }),\r\n filter(e => e instanceof NavigationEnd),\r\n )\r\n .subscribe(() => {\r\n const routerStateSnapshot = this.router.routerState.snapshot;\r\n let snapshot = routerStateSnapshot.root;\r\n let context: OutletContext = this.contexts?.getContext(\"primary\");\r\n let segments = snapshot.url;\r\n const components: any[] = [];\r\n const snapshots: ActivatedRouteSnapshot[] = [];\r\n while (snapshot) {\r\n snapshots.push(snapshot);\r\n segments = segments.concat(snapshot.url);\r\n if (context) {\r\n if (context.outlet && context.outlet.component)\r\n components.push(context.outlet.component);\r\n context = context.children.getContext(\"primary\");\r\n }\r\n snapshot = snapshot.firstChild;\r\n }\r\n this.stateInfo = {\r\n url: routerStateSnapshot.url,\r\n segments: segments,\r\n components: components\r\n };\r\n this.$snapshot.next(snapshots[snapshots.length - 1]);\r\n this.$component.next(components[components.length - 1]);\r\n });\r\n }\r\n\r\n async reload(): Promise<any> {\r\n const routerStateSnapshot = this.router.routerState.snapshot;\r\n const resolvers = this.route.resolve || {};\r\n const keys = Object.keys(resolvers);\r\n for (const key of keys) {\r\n const resolver = this.injector.get(resolvers[key]) as Resolve<any>;\r\n let resolved = resolver.resolve(this.snapshot, routerStateSnapshot);\r\n if (resolved instanceof Observable) {\r\n resolved = firstValueFrom(resolved);\r\n }\r\n if (resolved instanceof Promise) {\r\n resolved = await resolved;\r\n }\r\n this.data[key] = resolved;\r\n }\r\n }\r\n\r\n async navigateByUrl(url: string | UrlTree, navigationExtras: NavigationExtras = {}): Promise<boolean> {\r\n return this.navigate(url, navigationExtras);\r\n }\r\n\r\n async navigate(url: NavigationUrlParam, navigationExtras: NavigationExtras = {}): Promise<boolean> {\r\n if (!this.router) return false;\r\n const [tree, extras] = this.createUrlTree(url, navigationExtras);\r\n return this.zone.run(() => {\r\n return this.router.navigateByUrl(tree, extras);\r\n });\r\n }\r\n\r\n async open(url: NavigationUrlParam, target = \"_blank\", navigationExtras: NavigationExtras = {}): Promise<boolean> {\r\n if (!this.router) return false;\r\n const [tree, extras] = this.createUrlTree(url, navigationExtras);\r\n return this.zone.run(() => {\r\n return this.openInNewWindow(tree, target) || this.router.navigateByUrl(tree, extras);\r\n });\r\n }\r\n\r\n subscribeImmediately(\r\n next?: (value: ActivatedRouteSnapshot) => void,\r\n error?: (error: any) => void\r\n ): Subscription {\r\n return this.subscribe({\r\n next, error\r\n });\r\n }\r\n\r\n subscribe(osOrNext?: Partial<Observer<ActivatedRouteSnapshot>> | ((value: ActivatedRouteSnapshot) => void)): Subscription {\r\n return this.$observable.subscribe(osOrNext);\r\n }\r\n\r\n protected openInNewWindow(tree: UrlTree, target: string): boolean {\r\n if (!this.universal.isBrowser) return false;\r\n const baseUrl = window.location.href.replace(this.router.url, \"\");\r\n try {\r\n const serialized = this.router.serializeUrl(tree);\r\n const separator = serialized.startsWith(\"/\") ? \"\" : \"/\";\r\n window.open(baseUrl + separator + serialized, target);\r\n return true;\r\n } catch (e) {\r\n console.log(`Can't open new window: ${e}`);\r\n return false;\r\n }\r\n }\r\n\r\n protected createUrlTree(url: NavigationUrlParam, extras?: NavigationExtras): [UrlTree, NavigationExtras] {\r\n if (!this.router) return null;\r\n extras = Object.assign(extras, this.globalExtras, extras || {});\r\n if (ObjectUtils.isArray(url)) {\r\n return [this.router.createUrlTree(url, extras), extras]\r\n }\r\n if (ObjectUtils.isString(url)) {\r\n return [this.router.parseUrl(url), extras];\r\n }\r\n return [url, extras];\r\n }\r\n}\r\n","import {Inject, Injectable, Injector} from \"@angular/core\";\nimport {ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlSegment} from \"@angular/router\";\nimport {AUTH_SERVICE, FactoryDependencies, IAuthService, IRoute, RouteValidator} from \"../common-types\";\nimport {ReflectUtils} from \"./reflect.utils\";\nimport {ObjectUtils} from \"./object.utils\";\nimport {StateService} from \"../services/state.service\";\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\n static guardAuthenticated(auth: IAuthService): Promise<boolean> {\n return Promise.resolve(auth.isAuthenticated);\n }\n\n static guardNotAuthenticated(auth: IAuthService): Promise<boolean> {\n return Promise.resolve(!auth.isAuthenticated);\n }\n\n static guardNothing(): Promise<boolean> {\n return Promise.resolve(true);\n }\n\n @FactoryDependencies(AUTH_SERVICE)\n static guardAuthField(auth: IAuthService, expression: string = `auth.isAuthenticated`): RouteValidator {\n // @dynamic\n const lambda = (): Promise<boolean> => {\n return Promise.resolve(ObjectUtils.evaluate(expression, {auth}));\n };\n return lambda;\n }\n\n @FactoryDependencies(StateService)\n static guardStateField(state: StateService, expression: string = `state.data`): RouteValidator {\n // @dynamic\n const lambda = (): Promise<boolean> => {\n return Promise.resolve(ObjectUtils.evaluate(expression, {state}));\n };\n return lambda;\n }\n\n @FactoryDependencies(AUTH_SERVICE, StateService)\n static guardAuthStateField(auth: IAuthService, state: StateService, expression: string = `auth.isAuthenticated`): RouteValidator {\n // @dynamic\n const lambda = (): Promise<boolean> => {\n return Promise.resolve(ObjectUtils.evaluate(expression, {auth, state}));\n };\n return lambda;\n }\n\n static wildRouteMatch(segments: UrlSegment[]) {\n return {consumed: segments};\n }\n\n static noRouteMatch() {\n return null;\n }\n\n constructor(@Inject(Injector) readonly injector: Injector,\n @Inject(StateService) readonly state: StateService,\n @Inject(AUTH_SERVICE) readonly auth: IAuthService) {\n }\n\n checkRouteMenu(route: IRoute): Promise<boolean> {\n if (!route.data || !route.data.name) return Promise.resolve(false);\n return this.checkRoute(route);\n }\n\n checkRoute(route: IRoute, next?: ActivatedRouteSnapshot): Promise<boolean> {\n const routeData = route.data || {};\n if (!routeData.guards)\n return Promise.resolve(!route.canActivate || this.auth.isAuthenticated);\n return new Promise<boolean>(resolve => {\n const guards = routeData.guards.map(g => {\n const guard = ReflectUtils.resolve<RouteValidator>(g, this.injector);\n return guard(this.auth, route, next);\n });\n Promise.all(guards).then(results => {\n resolve(results.indexOf(false) < 0);\n });\n });\n }\n\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\n const route = <IRoute>next.routeConfig;\n return new Promise<boolean>(resolve => {\n this.auth.checkAuthenticated().then(() => {\n this.checkRoute(route, next).then(hasRights => {\n resolve(hasRights);\n if (!hasRights) {\n this.getReturnState(route).then(returnState => {\n if (!returnState) return;\n this.state.navigate(returnState, {queryParams: next.queryParams});\n });\n }\n });\n });\n });\n }\n\n getConfig(route: IRoute, config: IRoute[], path: string[]): IRoute[] {\n if (!config) return null;\n const match = config.findIndex(t => t == route);\n if (match >= 0) return config;\n for (const subConfig of config) {\n if (subConfig.path)\n path.push(subConfig.path);\n const loadedChildren = (subConfig[\"_loadedConfig\"] || {routes: null}).routes || subConfig[\"_loadedRoutes\"];\n const match = this.getConfig(route, subConfig.children || loadedChildren, path);\n if (!match) {\n if (subConfig.path)\n path.length -= 1;\n continue;\n }\n return match;\n }\n return null;\n }\n\n getReturnState(route: IRoute): Promise<string[]> {\n if (!route) return Promise.resolve(null);\n if (ObjectUtils.isObject(route.data) && ObjectUtils.isArray(route.data.returnState)) {\n return Promise.resolve(route.data.returnState);\n }\n const path = [];\n const config = this.getConfig(route, this.state.routerConfig, path);\n return new Promise<string[]>(resolve => {\n this.getReturnStateRecursive(config).then(rs => {\n if (!ObjectUtils.isArray(rs)) {\n resolve(rs);\n return;\n }\n resolve(path.concat(rs));\n });\n });\n }\n\n private getReturnStateRecursive(config: IRoute[], c: number = 0): Promise<string[]> {\n if (!config || c >= config.length) return Promise.resolve(null);\n return new Promise<string[]>(resolve => {\n const route = config[c];\n const check = !route.component ? Promise.resolve(false) : this.checkRoute(route);\n check.then(res => {\n if (res) {\n resolve([route.path]);\n return;\n }\n this.getReturnStateRecursive(config, c + 1).then(resolve);\n });\n });\n }\n}\n","import {InjectionToken, Injector, Type} from \"@angular/core\";\nimport {CachedFactory, CachedProvider} from \"../common-types\";\n\nconst CACHED_TOKEN = new InjectionToken(\"cached-factory-token\");\n\nexport function cachedFactory<T>(providers: CachedProvider<T>[]): CachedFactory<T> {\n let cached: ReadonlyArray<T> = null;\n return (injector: Injector) => {\n if (cached !== null) {\n return cached;\n }\n const subInjector = Injector.create({\n providers: providers.map(p => {\n if ((\"useFactory\" in p && \"deps\" in p) || \"useValue\" in p) {\n return {\n provide: CACHED_TOKEN,\n multi: true,\n ...p\n } as any;\n }\n return {\n provide: CACHED_TOKEN,\n multi: true,\n useClass: p as Type<T>\n };\n }),\n parent: injector\n });\n cached = subInjector.get(CACHED_TOKEN) as ReadonlyArray<T>;\n return cached;\n };\n}\n","import {isObservable} from \"rxjs\";\n\nexport type JsonReplacer = (key: string, value: any) => any;\n\nconst iso8061 = /^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(?:.\\d+)?(?:Z|[+-]\\d\\d:\\d\\d)$/;\n\nfunction serializer(replacer: JsonReplacer, cycleReplacer: JsonReplacer): JsonReplacer {\n const stack: any[] = [], keys = []\n\n if (cycleReplacer == null) cycleReplacer = function(key, value) {\n if (stack[0] === value) return \"[Circular ~]\"\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\"\n }\n\n return (key, value) => {\n if (isObservable(value)) return \"[Observable ~]\";\n if (stack.length > 0) {\n const thisPos = stack.indexOf(this)\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)\n if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)\n }\n else stack.push(value)\n\n if (typeof value === \"string\" && value.match(iso8061)) {\n value = new Date(value);\n }\n\n return replacer == null ? value : replacer.call(this, key, value)\n }\n}\n\nexport function stringify(value: any, replacer: JsonReplacer = null, spaces: number = 2, cycleReplacer: JsonReplacer = null) {\n return JSON.stringify(value, serializer(replacer, cycleReplacer), spaces)\n}\n","import {stringify} from \"./json.utils\";\n\nconst S = [\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14,\n 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21,\n 6, 10, 15, 21,\n];\n\nconst K = [\n 3614090360, 3905402710, 606105819, 3250441966, 4118548399, 1200080426, 2821735955,\n 4249261313, 1770035416, 2336552879, 4294925233, 2304563134, 1804603682, 4254626195,\n 2792965006, 1236535329, 4129170786, 3225465664, 643717713, 3921069994, 3593408605,\n 38016083, 3634488961, 3889429448, 568446438, 3275163606, 4107603335, 1163531501,\n 2850285829, 4243563512, 1735328473, 2368359562, 4294588738, 2272392833, 1839030562,\n 4259657740, 2763975236, 1272893353, 4139469664, 3200236656, 681279174, 3936430074,\n 3572445317, 76029189, 3654602809, 3873151461, 530742520, 3299628645, 4096336452,\n 1126891415, 2878612391, 4237533241, 1700485571, 2399980690, 4293915773, 2240044497,\n 1873313359, 4264355552, 2734768916, 1309151649, 4149444226, 3174756917, 718787259,\n 3951481745,\n];\n\nfunction leftRotate(x, c) {\n return (x << c) | (x >>> (32 - c));\n}\n\nexport function md5(input: string | Record<string, any>): string {\n // UTF-8 encode the string\n const encoder = new TextEncoder();\n const data = encoder.encode(stringify(input ?? \"\") || \"\");\n\n const originalBitLength = data.length * 8;\n\n // --- Padding: append 0x80 then 0x00 until len ≡ 56 (mod 64)\n let msgLen = data.length + 1;\n while (msgLen % 64 !== 56) msgLen++;\n\n const buffer = new Uint8Array(msgLen + 8); // +8 bytes for length\n buffer.set(data);\n buffer[data.length] = 0x80;\n\n // Append original length in bits, little-endian 64-bit\n let bitLen = originalBitLength;\n for (let i = 0; i < 8; i++) {\n buffer[msgLen + i] = bitLen & 0xff;\n bitLen = Math.floor(bitLen / 256);\n }\n\n // Initial state\n let a0 = 0x67452301;\n let b0 = 0xefcdab89;\n let c0 = 0x98badcfe;\n let d0 = 0x10325476;\n\n const view = new DataView(buffer.buffer);\n\n // Process 512-bit chunks\n for (let offset = 0; offset < buffer.length; offset += 64) {\n const M = new Uint32Array(16);\n for (let i = 0; i < 16; i++) {\n M[i] = view.getUint32(offset + i * 4, true); // little-endian\n }\n\n let A = a0;\n let B = b0;\n let C = c0;\n let D = d0;\n\n for (let i = 0; i < 64; i++) {\n let F, g;\n\n if (i < 16) {\n F = (B & C) | (~B & D);\n g = i;\n } else if (i < 32) {\n F = (D & B) | (~D & C);\n g = (5 * i + 1) % 16;\n } else if (i < 48) {\n F = B ^ C ^ D;\n g = (3 * i + 5) % 16;\n } else {\n F = C ^ (B | ~D);\n g = (7 * i) % 16;\n }\n\n F = (F + A + K[i] + M[g]) >>> 0;\n A = D;\n D = C;\n C = B;\n B = (B + leftRotate(F, S[i])) >>> 0;\n }\n\n a0 = (a0 + A) >>> 0;\n b0 = (b0 + B) >>> 0;\n c0 = (c0 + C) >>> 0;\n d0 = (d0 + D) >>> 0;\n }\n\n // Output as hex (little-endian)\n const words = [a0, b0, c0, d0];\n let out = \"\";\n for (const w of words) {\n for (let i = 0; i < 4; i++) {\n const byte = (w >>> (8 * i)) & 0xff;\n out += byte.toString(16).padStart(2, \"0\");\n }\n }\n return out;\n}\n","import {CanvasColor} from \"../common-types\";\nimport {ObjectUtils} from \"./object.utils\";\n\ndeclare const netscape: any;\n\nclass BlurStack {\n r: number = 0;\n g: number = 0;\n b: number = 0;\n a: number = 0;\n next: BlurStack = null;\n}\n\nconst mul_table = [\n 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512,\n 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512,\n 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456,\n 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512,\n 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328,\n 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456,\n 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335,\n 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512,\n 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405,\n 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328,\n 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271,\n 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456,\n 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388,\n 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335,\n 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292,\n 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\n\nconst shg_table = [\n 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17,\n 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19,\n 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n\nexport class CanvasUtils {\n\n static manipulatePixels(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, colorTransformer: (color: CanvasColor, greyscale?: number) => CanvasColor): void {\n const imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const pixels = imgData.data;\n for (let i = 0, n = pixels.length; i < n; i += 4) {\n const clr = new CanvasColor(pixels[i], pixels[i + 1], pixels[i + 2], pixels[i + 3]);\n const greyscale = clr.r * .3 + clr.g * .59 + clr.b * .11;\n const color = colorTransformer(clr, greyscale);\n pixels[i] = color.r;\n pixels[i + 1] = color.g;\n pixels[i + 2] = color.b;\n pixels[i + 3] = color.a;\n }\n ctx.putImageData(imgData, 0, 0);\n }\n\n static thresholding(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, threshold: number = 50, colorTransformer: (color: CanvasColor, limit: boolean, greyscale?: number) => CanvasColor): void {\n const min = new CanvasColor(0, 0, 0, 255);\n const max = new CanvasColor(0, 0, 0, 0);\n colorTransformer = ObjectUtils.isFunction(colorTransformer) ? colorTransformer : ((color: CanvasColor, limit: boolean): CanvasColor => {\n return limit ? max : min;\n });\n CanvasUtils.manipulatePixels(canvas, ctx, (color, greyscale) => {\n return colorTransformer(color, greyscale > threshold, greyscale);\n });\n }\n\n static stackBlur(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, radius: number = 10): void {\n if (isNaN(radius) || radius < 1) return;\n radius |= 0;\n\n const top_x = 0;\n const top_y = 0;\n const width = canvas.width;\n const height = canvas.height;\n\n let imageData = null;\n\n try {\n try {\n imageData = ctx.getImageData(top_x, top_y, width, height);\n } catch (e) {\n\n // NOTE: this part is supposedly only needed if you want to work with local files\n // so it might be okay to remove the whole try/catch block and just use\n // imageData = ctx.getImageData( top_x, top_y, width, height );\n try {\n netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\");\n imageData = ctx.getImageData(top_x, top_y, width, height);\n } catch (e) {\n alert(\"Cannot access local image\");\n throw new Error(\"unable to access local image data: \" + e);\n }\n }\n } catch (e) {\n alert(\"Cannot access image\");\n throw new Error(\"unable to access image data: \" + e);\n }\n\n const pixels = imageData.data;\n\n let x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum,\n r_out_sum, g_out_sum, b_out_sum, a_out_sum,\n r_in_sum, g_in_sum, b_in_sum, a_in_sum,\n pr, pg, pb, pa, rbs;\n\n const div = radius + radius + 1;\n const widthMinus1 = width - 1;\n const heightMinus1 = height - 1;\n const radiusPlus1 = radius + 1;\n const sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n\n const stackStart = new BlurStack();\n let stackEnd = null;\n let stack = stackStart;\n\n for (i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n if (i == radiusPlus1) {\n stackEnd = stack;\n }\n }\n stack.next = stackStart;\n let stackIn = null;\n let stackOut = null;\n\n yw = yi = 0;\n\n const mul_sum = mul_table[radius];\n const shg_sum = shg_table[radius];\n\n for (y = 0; y < height; y++) {\n r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n for (i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[p + 1])) * rbs;\n b_sum += (stack.b = (pb = pixels[p + 2])) * rbs;\n a_sum += (stack.a = (pa = pixels[p + 3])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n\n stack = stack.next;\n }\n\n\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++) {\n pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa != 0) {\n pa = 255 / pa;\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n\n r_in_sum += (stackIn.r = pixels[p]);\n g_in_sum += (stackIn.g = pixels[p + 1]);\n b_in_sum += (stackIn.b = pixels[p + 2]);\n a_in_sum += (stackIn.a = pixels[p + 3]);\n\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n a_out_sum += (pa = stackOut.a);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n\n stackOut = stackOut.next;\n\n yi += 4;\n }\n yw += width;\n }\n\n\n for (x = 0; x < width; x++) {\n g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n yp = width;\n\n for (i = 1; i <= radius; i++) {\n yi = (yp + x) << 2;\n\n r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs;\n b_sum += (stack.b = (pb = pixels[yi + 2])) * rbs;\n a_sum += (stack.a = (pa = pixels[yi + 3])) * rbs;\n\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n\n stack = stack.next;\n\n if (i < heightMinus1) {\n yp += width;\n }\n }\n\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa > 0) {\n pa = 255 / pa;\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n } else {\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n }\n\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n\n p = (x + (((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width)) << 2;\n\n r_sum += (r_in_sum += (stackIn.r = pixels[p]));\n g_sum += (g_in_sum += (stackIn.g = pixels[p + 1]));\n b_sum += (b_in_sum += (stackIn.b = pixels[p + 2]));\n a_sum += (a_in_sum += (stackIn.a = pixels[p + 3]));\n\n stackIn = stackIn.next;\n\n r_out_sum += (pr = stackOut.r);\n g_out_sum += (pg = stackOut.g);\n b_out_sum += (pb = stackOut.b);\n a_out_sum += (pa = stackOut.a);\n\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n\n stackOut = stackOut.next;\n\n yi += width;\n }\n }\n\n ctx.putImageData(imageData, top_x, top_y);\n }\n\n static measureTextFontSize(maxWidth: number, maxHeight: number, lines: string[], font: string, lineHeightPercent: number = 1.1, canvas?: HTMLCanvasElement): number {\n\n const startSize: number = maxHeight;\n const context: CanvasRenderingContext2D = canvas.getContext(\"2d\");\n\n if (!canvas) {\n canvas = <HTMLCanvasElement>document.createElement(\"canvas\");\n document.body.appendChild(canvas);\n }\n\n canvas.width = maxWidth + maxHeight;\n canvas.height = maxHeight * 2;\n\n let fontSize: number = CanvasUtils.halveValidateFontSize(startSize, (size: number) => {\n CanvasUtils.setFontProps(context, font, size);\n const maxTextLinesWidth = CanvasUtils.getTextWidth(context, lines);\n return maxWidth - maxTextLinesWidth;\n });\n\n const bitmapHeight: number = CanvasUtils.getTextBitmapHeight(canvas, context, lines, font, fontSize, lineHeightPercent);\n if (bitmapHeight > maxHeight) {\n fontSize = CanvasUtils.halveValidateFontSize(fontSize, (size: number) => {\n return maxHeight - CanvasUtils.getTextBitmapHeight(canvas, context, lines, font, size, lineHeightPercent);\n });\n }\n\n return fontSize;\n }\n\n static drawLines(context: CanvasRenderingContext2D, lines: string[], font: string, size: number, lineHeightPercent: number = 1.1, align: string = \"left\", baseLine: string = \"top\", x: number = 0, y: number = 0): number {\n CanvasUtils.setFontProps(context, font, size, align, baseLine);\n for (let i: number = 0; i < lines.length; i++) {\n const line: string = lines[i];\n context.fillText(line, x, y);\n if (i < lines.length - 1) {\n y += size * lineHeightPercent;\n }\n }\n return y;\n }\n\n static wrapText(context: CanvasRenderingContext2D, text: string, x: number, y: number, maxWidth: number): void {\n const words = text.split(\" \");\n const lineHeight = context.measureText(\"M\").width * 1.3;\n const lines: string[] = [];\n let line = \"\";\n for (let n = 0; n < words.length; n++) {\n const testLine = line + words[n] + \" \";\n const metrics = context.measureText(testLine);\n const testWidth = metrics.width;\n if (testWidth > maxWidth && n > 0) {\n lines.push(line);\n line = words[n] + \" \";\n }\n else {\n line = testLine;\n }\n }\n lines.push(line);\n y -= lineHeight * .5 * lines.length;\n lines.forEach(l => {\n context.fillText(l, x, y);\n y += lineHeight;\n });\n }\n\n static setFontProps(context: CanvasRenderingContext2D, font: string, fontSize: number, align: string = \"left\", baseLine: string = \"top\"): void {\n context.font = `${fontSize}px ${font}`;\n context.textAlign = <any>align;\n context.textBaseline = <any>baseLine;\n }\n\n private static getTextWidth(context: CanvasRenderingContext2D, lines: string[]): number {\n let maxWidth: number = 0;\n for (let i: number = 0; i < lines.length; i++) {\n const line: string = lines[i];\n maxWidth = Math.max(maxWidth, context.measureText(line).width);\n }\n return maxWidth;\n }\n\n private static getTextBitmapHeight(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D, lines: string[], font: string, fontSize: number, lineHeightPercent: number): number {\n const width: number = canvas.width;\n const height: number = canvas.height;\n context.clearRect(0, 0, width, height);\n\n const textY = CanvasUtils.drawLines(context, lines, font, fontSize, lineHeightPercent, \"left\", \"top\", fontSize * .5, fontSize * .5);\n const imageData: ImageData = context.getImageData(0, 0, width, height);\n\n let textHeight: number = 0;\n\n yLoop:for (let y: number = 0; y < height; y++) {\n for (let x: number = 0; x < width; x++) {\n const index: number = (x + y * width) * 4;\n if (imageData.data[index + 3] > 0) {\n textHeight = y + 1;\n continue yLoop;\n }\n }\n }\n\n return Math.max(textHeight, textY + fontSize);\n }\n\n private static halveValidateFontSize(startSize: number, callback: (size: number) => number): number {\n let fontSize: number = startSize;\n let lastFontSize: number = 0;\n let direction: number;\n\n for (let i: number = 0; i < 20; i++) {\n direction = callback(fontSize);\n const tempSize: number = fontSize;\n if (direction < 0) {\n fontSize = fontSize - (Math.abs(fontSize - lastFontSize) / 2);\n } else {\n fontSize = fontSize + (Math.abs(fontSize - lastFontSize) / 2);\n }\n lastFontSize = tempSize;\n if (Math.abs(fontSize - lastFontSize) < 0.1) {\n break;\n }\n }\n fontSize = Math.floor(fontSize);\n return fontSize;\n }\n}\n","import {DurationInputArg1, DurationInputArg2} from \"moment\";\nimport moment from \"moment\";\n\nexport class DateUtils {\n\n static isHoliday(date: Date): boolean {\n return moment(date).isoWeekday() > 5;\n }\n\n static isBusinessDay(date: Date): boolean {\n return moment(date).isoWeekday() < 6;\n }\n\n static add(date: Date, amount?: DurationInputArg1, unit?: DurationInputArg2): Date {\n return moment(date).add(amount, unit).toDate();\n }\n\n static businessAdd(date: Date, amount: number, unit?: DurationInputArg2, freeDays: Date[] = []): Date {\n const signal = amount < 0 ? -1 : 1;\n const freeMoments = freeDays.map(d => moment(d));\n let remaining = Math.abs(amount);\n let day = date;\n while (remaining) {\n day = DateUtils.add(day, signal, unit);\n if (DateUtils.isBusinessDay(day) && !freeMoments.some(m => m.isSame(day, \"day\"))) {\n remaining--;\n }\n }\n return day;\n }\n\n static businessSubtract(date: Date, amount: number, unit?: DurationInputArg2): Date {\n return DateUtils.businessAdd(date, -amount, unit);\n }\n}\n","import {HttpClient} from \"@angular/common/http\";\nimport {first} from \"rxjs/operators\";\nimport {ObjectUtils} from \"./object.utils\";\n\ndeclare const saveAs: any;\n\nexport class FileUtils {\n\n static getExtension(file: File): string {\n return file ? file.name.substr(file.name.lastIndexOf(\".\")).toLowerCase() : null;\n }\n\n static getName(file: File): string {\n return file ? file.name.substr(0, file.name.lastIndexOf(\".\")) : null;\n }\n\n static toFile(blob: Blob, fileName: string): File {\n const data: any = blob;\n data.lastModifiedDate = new Date();\n data.name = fileName.split(/\\\\|\\//g).pop();\n return <File>data;\n }\n\n static dataToBlob(data: string): Blob {\n const parts = data.split(\",\");\n const byteString = atob(parts[1]);\n const mimeString = parts[0].split(\":\")[1].split(\";\")[0];\n\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n return new Blob([ab], {type: mimeString});\n }\n\n static saveBlob(blob: Blob, fileName: string): void {\n if (typeof saveAs == \"undefined\") {\n throw Error(\"FileSaver library is not loaded. Please load it: https://www.npmjs.com/package/file-saver\");\n }\n saveAs(blob, fileName);\n }\n\n static saveJson(json: any, fileName: string): void {\n if (!ObjectUtils.isObject(json)) return;\n FileUtils.saveBlob(new Blob([JSON.stringify(json, null, 4)]), fileName);\n }\n\n static readFileAsText(file: Blob): Promise<string> {\n return FileUtils.readFile(\n // @dynamic\n reader => reader.readAsText(file)\n );\n }\n\n static readFileAsBinaryString(file: Blob): Promise<string> {\n return FileUtils.readFile(\n // @dynamic\n reader => reader.readAsBinaryString(file)\n );\n }\n\n static readFileAsDataURL(file: Blob): Promise<string> {\n return FileUtils.readFile(\n // @dynamic\n reader => reader.readAsDataURL(file)\n );\n }\n\n static readDataFromUrl(http: HttpClient, url: string): Promise<string> {\n return new Promise<string>(\n // @dynamic\n (resolve, reject) => {\n if (!url) {\n reject({\n message: \"The url is not specified\"\n });\n return;\n }\n if ((/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/g).test(url)) {\n resolve(url);\n return;\n }\n first()(http.get(url, {\n responseType: \"blob\"\n })).subscribe((blob: Blob) => {\n FileUtils.readFileAsDataURL(blob).then(resolve, reject);\n }, reason => {\n if (reason.status > 0)\n reject(reason);\n else\n resolve(url);\n });\n }\n );\n }\n\n private static readFile(callback: (reader: FileReader) => void): Promise<string> {\n return new Promise<string>(\n // @dynamic\n (resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event: any) => resolve(event.target.result);\n reader.onerror = reject;\n callback(reader);\n }\n );\n }\n}\n","import {Subject} from \"rxjs\";\n\nexport class GenericValue<T> extends Subject<T> {\n\n get value(): T {\n return this._value;\n }\n\n set value(value: T) {\n if (value == this._value) return;\n this._value = value;\n this.next(value);\n }\n\n private _value: T;\n\n constructor(value: T = null) {\n super();\n this._value = value;\n }\n\n setJustValue(value: T): void {\n this._value = value;\n }\n}\n","import {ObjectUtils} from \"./object.utils\";\n\nexport type FileSystemEntryOpenResult<D = any, R = any> = Promise<readonly FileSystemEntry<D, R>[]>;\n\nexport type FileSystemEntryOpenCb<PD, D = any, R = any> = (parent: FileSystemEntry<PD>) => FileSystemEntryOpenResult<D, R>;\n\nexport class FileSystemEntry<D = any, R = any> {\n\n protected result: FileSystemEntryOpenResult;\n\n readonly path: ReadonlyArray<FileSystemEntry>;\n readonly level: number;\n readonly classes: ReadonlyArray<string>;\n\n get parent(): FileSystemEntry {\n return this.level === 0 ? null : this.path[this.level - 1] || null;\n }\n\n constructor(readonly label: string,\n readonly meta: string,\n readonly image: string,\n readonly data: D,\n protected openCb: FileSystemEntryOpenCb<D, R>,\n parent: FileSystemEntry = null,\n classes?: string[]) {\n this.path = !parent ? [this] : parent.path.concat([this]);\n this.level = this.path.length - 1;\n this.classes = [`level-${this.level}`].concat(classes ?? this.path\n .map(t => {\n if (ObjectUtils.isString(t.data)) {\n return t.data;\n }\n if (ObjectUtils.isObject(t.data)) {\n const list = Object.keys(t.data).map(k => {\n const value = t.data[k];\n return ObjectUtils.isString(value) && value.length > 0 && value.length < 50\n ? `${k}-${value}`\n : null;\n });\n return list.filter(i => !!i).join(\" \");\n }\n return null;\n }).filter(t => !!t));\n }\n\n open<O = any>(): FileSystemEntryOpenResult<R, O> {\n this.result = this.result || this.openCb(this);\n this.result.then(res => {\n if (Array.isArray(res)) return;\n this.result = null;\n });\n return this.result;\n }\n}\n","export interface IShape {\n x: number;\n y: number;\n\n distance(shape: IShape): number;\n}\n\nexport class Rect implements IShape {\n\n get center(): Point {\n return new Point(this.x, this.y);\n }\n\n get left(): number {\n return this.x - this.width * .5;\n }\n\n get right(): number {\n return this.x + this.width * .5;\n }\n\n get bottom(): number {\n return this.y - this.height * .5;\n }\n\n get top(): number {\n return this.y + this.height * .5;\n }\n\n constructor(readonly x: number, readonly y: number, readonly width: number, readonly height: number, readonly rotation: number = 0) {\n\n }\n\n distance(p: Point): number {\n p = p.rotateAround(this.center, -this.rotation);\n const x = Math.max(this.left - p.x, 0, p.x - this.right);\n const y = Math.max(this.bottom - p.y, 0, p.y - this.top);\n return Math.sqrt(x*x + y*y);\n }\n}\n\nexport class Circle implements IShape {\n\n get center(): Point {\n return new Point(this.x, this.y);\n }\n\n get left(): Point {\n return new Point(this.x - this.radius, this.y);\n }\n\n get right(): Point {\n return new Point(this.x + this.radius, this.y);\n }\n\n get top(): Point {\n return new Point(this.x, this.y + this.radius);\n }\n\n get bottom(): Point {\n return new Point(this.x, this.y - this.radius);\n }\n\n get rect(): Rect {\n return new Rect(this.x, this.y, this.radius * 2, this.radius * 2);\n }\n\n constructor(readonly x: number, readonly y: number, readonly radius: number) {\n\n }\n\n distance(p: Point): number {\n return this.center.distance(p) - this.radius;\n }\n}\n\nexport class Point implements IShape {\n\n static Zero: Point = new Point(0, 0);\n\n get length(): number {\n return this.distance(Point.Zero);\n }\n\n get perpendicular(): Point {\n return new Point(this.y, -this.x);\n }\n\n constructor(readonly x: number, readonly y: number) {\n }\n\n add(p: Point): Point {\n return new Point(this.x + p.x, this.y + p.y);\n }\n\n subtract(p: Point): Point {\n return new Point(this.x - p.x, this.y - p.y);\n }\n\n multiply(p: Point | number): Point {\n if (p instanceof Point) {\n return new Point(this.x * p.x, this.y * p.y);\n }\n return new Point(this.x * p, this.y * p);\n }\n\n distance(b: Point): number {\n const x = b.x - this.x;\n const y = b.y - this.y;\n return Math.sqrt(x * x + y * y);\n }\n\n lerp(p: Point, ratio: number): Point {\n const diff = p.subtract(this);\n return this.add(diff.multiply(ratio));\n }\n\n perpendicularTo(p: Point, length: number): Point {\n const diff = p.perpendicular.subtract(this.perpendicular);\n const ratio = length / diff.length;\n const center = this.lerp(p, .5);\n return center.add(diff.multiply(ratio));\n }\n\n circleWith(a: Point, b: Point): Circle {\n const yDelta_a = b.y - a.y;\n const xDelta_a = b.x - a.x;\n const yDelta_b = this.y - b.y;\n const xDelta_b = this.x - b.x;\n\n const aSlope = yDelta_a / xDelta_a;\n const bSlope = yDelta_b / xDelta_b;\n\n const x = (aSlope * bSlope * (a.y - this.y) + bSlope * (a.x + b.x) - aSlope * (b.x + this.x)) / (2 * (bSlope - aSlope));\n const y = -1 * (x - (a.x + b.x) / 2) / aSlope + (a.y + b.y) / 2;\n const center = new Point(x, y);\n return new Circle(center.x, center.y, center.distance(this));\n }\n\n tangents(c: Circle): Point[] {\n const pd = c.center.subtract(this);\n const a = Math.asin(c.radius / pd.length);\n const b = Math.atan2(pd.y, pd.x);\n // Tangent points\n let t = b - a;\n const t1 = new Point(c.x + c.radius * Math.sin(t), c.y + c.radius * -Math.cos(t));\n t = b + a;\n const t2 = new Point(c.x + c.radius * -Math.sin(t), c.y + c.radius * Math.cos(t));\n return [t1, t2];\n }\n\n angle(p: Point): number {\n const diff = p.subtract(this);\n return Math.atan2(diff.y, diff.x) * 180 / Math.PI;\n }\n\n rotateAround(p: Point, angle: number): Point {\n const rotation = (p.angle(this) + angle) * Math.PI / 180;\n const distance = p.distance(this);\n const rotated = new Point(Math.cos(rotation) * distance, Math.sin(rotation) * distance);\n return p.add(rotated);\n }\n}\n","import {Invokable} from \"invokable\";\n\nexport class Initializer<T> {\n\n private initialized: boolean;\n\n get isInitialized(): boolean {\n return this.initialized;\n }\n\n constructor(private callback: () => T, private shouldInit: boolean = true) {\n this.initialized = !this.shouldInit;\n // @ts-ignore\n return Invokable.create(this);\n }\n\n [Invokable.call](): T {\n if (this.initialized) return null;\n this.initialized = true;\n return this.callback();\n }\n}\n\nexport interface Initializer<T> {\n (): T;\n}\n","import {LoadableElement, LoaderPromises, ScriptType} from \"../common-types\";\n\nexport class LoaderUtils {\n\n private static promises: LoaderPromises<LoadableElement> = {};\n\n static loadScript(src: string | URL, async: boolean = false, type: ScriptType = \"text/javascript\", parent?: Node, time: boolean | string = false) {\n return LoaderUtils.loadElement(src, parent, time, url => {\n const script = document.createElement(\"script\");\n script.type = type;\n script.src = url;\n script.async = async;\n return script;\n });\n }\n\n static loadStyle(src: string | URL, parent?: Node, time: boolean | string = false) {\n return LoaderUtils.loadElement(src, parent, time, url => {\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.type = \"text/css\";\n link.href = url;\n return link;\n });\n }\n\n private static updateSrc(src: string | URL, time: boolean | string): string {\n const srcStr = String(src || \"\");\n if (srcStr.startsWith(\"data:\") || !time) {\n return srcStr;\n }\n const url = new URL(src);\n url.searchParams.set(\"time\", typeof time === \"string\" ? time : String(Date.now()));\n return url.toString();\n }\n\n private static loadElement<T extends LoadableElement>(url: string | URL, parent: Node, time: boolean | string, setup: (url: string) => T): Promise<T> {\n const promises = LoaderUtils.promises as LoaderPromises<T>;\n const src = LoaderUtils.updateSrc(url, time);\n parent = parent || document;\n if (parent == document) {\n parent = document.body;\n }\n let {elem, promise} = promises[src] || {};\n if (elem) {\n if (parent === elem.parentElement) return promise;\n if (elem.parentElement) {\n elem.remove();\n }\n }\n elem = setup(src);\n promise = new Promise<T>((resolve, reject) => {\n if (elem.readyState) {\n // Internet explorer\n elem.onreadystatechange = () => {\n if (elem.readyState === \"loaded\" || elem.readyState === \"complete\") {\n elem.onreadystatechange = null;\n resolve(elem);\n }\n };\n } else {\n // Other browsers\n elem.onload = () => resolve(elem);\n }\n elem.onerror = (error: any) => reject(error);\n });\n parent.appendChild(elem);\n promises[src] = {elem, promise};\n return promise;\n }\n}\n","import {ObjectUtils} from \"./object.utils\";\n\nexport class MathUtils {\n\n static readonly EPSILON: number = 1e-9;\n\n static equal(a: number, b: number, epsilon: number = null): boolean {\n epsilon = ObjectUtils.isNumber(epsilon) ? epsilon : MathUtils.EPSILON;\n return Math.abs(a - b) < epsilon;\n }\n\n static clamp(value: number, min: number, max: number): number {\n return Math.max(Math.min(value, max), min)\n }\n\n static round(value: number, precision: number = 2, divider: number = 1): number {\n precision = Math.pow(10, precision);\n return Math.round(value * precision / divider) / precision;\n }\n\n static approxIndex(x: number, values: number[], epsilon: number = null): number {\n if (!Array.isArray(values) || values.length == 0) {\n return -1;\n }\n let s = 0;\n let e = values.length - 1;\n while (s <= e) {\n const i = Math.floor((s + e) / 2);\n const v = values[i];\n if (MathUtils.equal(v, x, epsilon)) {\n return i;\n }\n if (v < x) {\n s = i + 1;\n } else {\n e = i - 1;\n }\n }\n const m = Math.max(e, 0);\n const a = values[s];\n const b = values[m];\n return Math.abs(a - x) < Math.abs(b - x) ? s : m;\n }\n\n static approximate(x: number, values: number[], epsilon: number = null): number {\n const index = MathUtils.approxIndex(x, values, epsilon);\n return values[index] ?? null;\n }\n}\n","export function getCssVariables(elem: HTMLElement): Record<string, string> {\r\n if (\"computedStyleMap\" in elem) {\r\n const styles = Array.from(elem.computedStyleMap() as any) as [string, string][];\r\n return styles.reduce((res, [prop, val]) => {\r\n if (prop.startsWith(\"--\")) {\r\n res[prop] = val.toString();\r\n }\r\n return res;\r\n }, {} as Record<string, string>);\r\n }\r\n const res = {} as Record<string, string>;\r\n const styles = getComputedStyle(elem);\r\n for (let i = 0; i < styles.length; i++) {\r\n const propertyName = styles[i];\r\n if (propertyName.startsWith(\"--\")) {\r\n res[propertyName] = styles.getPropertyValue(propertyName);\r\n }\r\n }\r\n return res;\r\n}\r\n","import {ITimer} from \"../common-types\";\nimport {ObjectUtils} from \"./object.utils\";\n\ntype TimerFunc = (timer: ITimer) => void;\n\nexport class TimerUtils {\n\n static createTimeout(func?: Function, time?: number): ITimer {\n // @dynamic\n const run = (timer: ITimer) => {\n timer.clear();\n timer.id = setTimeout(() => {\n timer.id = null;\n timer.func();\n }, timer.time);\n };\n // @dynamic\n const clear = (timer: ITimer) => {\n if (!timer.id) return;\n clearTimeout(timer.id);\n timer.id = null;\n };\n return TimerUtils.createTimer(run, clear, func, time);\n }\n\n static createInterval(func?: Function, time?: number): ITimer {\n // @dynamic\n const run = (timer: ITimer) => {\n timer.clear();\n timer.id = setInterval(timer.func, timer.time);\n };\n // @dynamic\n const clear = (timer: ITimer) => {\n if (!timer.id) return;\n clearInterval(timer.id);\n timer.id = null;\n };\n return TimerUtils.createTimer(run, clear, func, time);\n }\n\n private static createTimer(run: TimerFunc, clear: TimerFunc, func: Function, time: number): ITimer {\n const timer: ITimer = {};\n const setParams = (func: Function, time: number) => {\n timer.func = !ObjectUtils.isFunction(func) ? (() => {}) : func;\n timer.time = !ObjectUtils.isNumber(time) ? 100 : time;\n };\n timer.run = () => run(timer);\n timer.clear = () => clear(timer);\n timer.set = (func: Function, time: number) => {\n setParams(func, time);\n timer.run();\n };\n setParams(func, time);\n return timer;\n }\n}\n","import {from, Observable, Subject, Subscription} from \"rxjs\";\nimport {mergeMap} from \"rxjs/operators\";\n\nimport {ISearchObservable} from \"../common-types\";\nimport {TimerUtils} from \"./timer.utils\";\n\nexport interface ISubscriberInfo {\n subjects: Observable<any>[];\n cb: (ev?: Observable<any>, ...args: any[]) => any;\n timeout?: number;\n}\n\nexport class ObservableUtils {\n\n static toSearch(search: ISearchObservable): Observable<any> {\n return mergeMap(\n // @dynamic\n (token: string) => search.getSearchResults(token)\n )(\n Observable.create(\n // @dynamic\n (observer: any) => {\n observer.next(search.search);\n }\n )\n );\n }\n\n static multiSubscription(...subscriptions: Subscription[]): Subscription {\n // @dynamic\n const lambda = () => {\n subscriptions.forEach(s => {\n s.unsubscribe();\n });\n };\n return new Subscription(lambda);\n }\n\n static subscribe(...subscribers: ISubscriberInfo[]): Subscription {\n const subscriptions: Subscription[] = [];\n subscribers.forEach(info => {\n let alreadyCalled = false;\n const timer = TimerUtils.createTimeout();\n info.subjects.forEach(subject => {\n const ss = subject.subscribe((value) => {\n alreadyCalled = true;\n timer.set(() => {\n info.cb(subject, value);\n }, info.timeout ?? 0);\n });\n subscriptions.push(ss);\n });\n if (alreadyCalled) return;\n info.cb();\n });\n return ObservableUtils.multiSubscription(...subscriptions);\n }\n\n static fromFunction(callbackFunc: () => any): Observable<any> {\n let subject: any;\n return new Observable<any>((subscriber) => {\n if (!subject) {\n subject = new Subject();\n try {\n subject = from(callbackFunc());\n } catch (err) {\n subject.error(err);\n }\n }\n return subject.subscribe(subscriber);\n });\n }\n}\n","export interface CancelablePromise<T> extends Promise<T> {\n cancel: () => void;\n}\n\nexport function cancelablePromise<T>(source: Promise<T>): CancelablePromise<T> {\n let isCanceled = false;\n const cancelable = new Promise<T>((resolve, reject) => {\n source.then(res => {\n if (isCanceled) return;\n resolve(res);\n }).catch(reject);\n }) as CancelablePromise<T>;\n cancelable.cancel = () => {\n isCanceled = true;\n };\n return cancelable;\n}\n\nexport function impatientPromise<T>(factory: () => Promise<T>): () => Promise<T> {\n let lastPromise: CancelablePromise<T> = null;\n return () => {\n lastPromise?.cancel();\n lastPromise = cancelablePromise(factory());\n return lastPromise\n };\n}\n","export class StringUtils {\n\n static concat(separator: string, ...strings: string[]): string {\n return strings.filter(\n // @dynamic\n str => !!str\n ).join(separator);\n }\n\n static startsWith(str: string, ...starts: string[]): boolean {\n for (let i = 0; i < starts.length; i++) {\n if (str.startsWith(starts[i])) return true;\n }\n return false;\n }\n\n static has(str: string, ...parts: string[]): boolean {\n for (let i = 0; i < parts.length; i++) {\n if (str.indexOf(parts[i]) >= 0) return true;\n }\n return false;\n }\n\n static lcFirst(str: string): string {\n return str ? str.charAt(0).toLowerCase() + str.substring(1) : \"\";\n }\n\n static ucFirst(str: string): string {\n return str ? str.charAt(0).toUpperCase() + str.substring(1) : \"\";\n }\n\n static isObjectId(id: string): boolean {\n return typeof id === \"string\" && id.length == 24 && !isNaN(Number(\"0x\" + id));\n }\n\n static parseDomain(baseUrl: string): string {\n try {\n const url = new URL(baseUrl);\n const port = url.port && url.port !== \"443\" && url.port !== \"80\" ? `:${url.port}` : ``;\n return `${url.protocol}//${url.hostname}${port}/`;\n } catch {\n return \"/\";\n }\n }\n}\n","import {ObjectUtils} from \"./object.utils\";\n\nexport class SetUtils {\n\n static equals(set: Set<any>, obj: any): boolean {\n if (!ObjectUtils.isSet(set) || !ObjectUtils.isSet(obj))\n return false;\n if (set.size != obj.size)\n return false;\n for (const item in set) {\n if (!obj.has(item)) return false;\n }\n return true;\n }\n\n static addArray(set: Set<any>, items: any[]): void {\n if (!ObjectUtils.isSet(set) || !ObjectUtils.isArray(items)) return;\n items.forEach(i => set.add(i));\n }\n\n static merge(set: Set<any>, other: Set<any>): void {\n if (!ObjectUtils.isSet(set) || !ObjectUtils.isSet(other)) return;\n other.forEach(i => set.add(i));\n }\n}\n","export class UniqueUtils {\n\n static uuid(): string {\n if (typeof window !== \"undefined\" && typeof window.crypto !== \"undefined\" && typeof window.crypto.getRandomValues !== \"undefined\") {\n const buf = new Uint16Array(8);\n window.crypto.getRandomValues(buf);\n return (this.pad4(buf[0]) + this.pad4(buf[1]) + \"-\" + this.pad4(buf[2]) + \"-\" + this.pad4(buf[3]) + \"-\" + this.pad4(buf[4]) + \"-\" + this.pad4(buf[5]) + this.pad4(buf[6]) + this.pad4(buf[7]));\n }\n return this.random4() + this.random4() + \"-\" + this.random4() + \"-\" + this.random4() + \"-\" +\n this.random4() + \"-\" + this.random4() + this.random4() + this.random4();\n }\n\n private static pad4(num: number): string {\n let ret = num.toString(16);\n while (ret.length < 4) {\n ret = \"0\" + ret;\n }\n return ret;\n }\n\n private static random4(): string {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n}\n","export class Vector {\n\n get negative(): Vector {\n return new Vector(-this.x, -this.y, -this.z);\n }\n\n get length(): number {\n return Math.sqrt(this.dot(this));\n }\n\n get unit(): Vector {\n return this.divide(this.length);\n }\n\n get min(): number {\n return Math.min(Math.min(this.x, this.y), this.z);\n }\n\n get max(): number {\n return Math.max(Math.max(this.x, this.y), this.z);\n }\n\n get angles(): any {\n return {\n theta: Math.atan2(this.z, this.x),\n phi: Math.asin(this.y / this.length)\n };\n }\n\n constructor(public x: number, public y: number, public z: number) {\n }\n\n add(v: Vector | number): Vector {\n if (v instanceof Vector) return new Vector(this.x + v.x, this.y + v.y, this.z + v.z);\n else return new Vector(this.x + v, this.y + v, this.z + v);\n }\n\n subtract(v: Vector | number): Vector {\n if (v instanceof Vector) return new Vector(this.x - v.x, this.y - v.y, this.z - v.z);\n else return new Vector(this.x - v, this.y - v, this.z - v);\n }\n\n multiply(v: Vector | number): Vector {\n if (v instanceof Vector) return new Vector(this.x * v.x, this.y * v.y, this.z * v.z);\n else return new Vector(this.x * v, this.y * v, this.z * v);\n }\n\n divide(v: Vector | number): Vector {\n if (v instanceof Vector) return new Vector(this.x / v.x, this.y / v.y, this.z / v.z);\n else return new Vector(this.x / v, this.y / v, this.z / v);\n }\n\n equals(v: Vector): boolean {\n return this.x == v.x && this.y == v.y && this.z == v.z;\n }\n\n dot(v: Vector): number {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n }\n\n cross(v: Vector): Vector {\n return new Vector(\n this.y * v.z - this.z * v.y,\n this.z * v.x - this.x * v.z,\n this.x * v.y - this.y * v.x\n );\n }\n\n angleTo(v: Vector): number {\n return Math.acos(this.dot(v) / (this.length * v.length));\n }\n\n toArray(n?: number): number[] {\n return [this.x, this.y, this.z].slice(0, n || 3);\n }\n\n clone(): Vector {\n return new Vector(this.x, this.y, this.z);\n }\n\n init(x: number, y: number, z: number): Vector {\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n }\n}\n","import {Injector, Type} from \"@angular/core\";\nimport {OPTIONS_TOKEN, TypedFactoryProvider} from \"../common-types\";\n\nexport function provideWithOptions<O extends Object, T = any>(type: Type<T>, options: O): TypedFactoryProvider<T> {\n return {\n useFactory: function (injector: Injector) {\n const subInjector = Injector.create({\n providers: [\n {\n provide: OPTIONS_TOKEN,\n useValue: options\n },\n {\n provide: type,\n useClass: type\n }\n ],\n parent: injector\n });\n return subInjector.get(type);\n },\n deps: [Injector]\n }\n}\n","export class JSONfn {\n\n static parse(text: string): any {\n return JSON.parse(text, JSONfn.reviver);\n }\n\n static stringify(obj: any): string {\n return JSON.stringify(obj, JSONfn.replacer);\n }\n\n static reviver(key: string, value: any): any {\n const iso8061 = /^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(?:.\\d+)?(?:Z|[+-]\\d\\d:\\d\\d)$/;\n if (typeof value !== \"string\") return value;\n if (value.length < 8) {\n return value;\n }\n if (value.match(iso8061)) {\n return new Date(value);\n }\n const prefix = value.substring(0, 8);\n if (prefix === \"function\") {\n return new Function(`return ${value}`)();\n }\n if (prefix === \"_NuFrRa_\") {\n return new Function(`return ${value.slice(8)}`)();\n }\n if (prefix === \"_PxEgEr_\") {\n return new Function(`return ${value.slice(8)}`)();\n }\n return value;\n }\n\n static replacer(key: string, value: any): any {\n if (value instanceof Function || typeof value === \"function\") {\n const fnBody = value.toString();\n if (fnBody.length < 8 || fnBody.substring(0, 8) !== \"function\") {\n // this is ES6 Arrow Function\n return \"_NuFrRa_\" + fnBody;\n }\n return fnBody;\n }\n if (value instanceof RegExp) {\n return \"_PxEgEr_\" + value;\n }\n return value;\n }\n}\n","import {IWasi, IWasmExports} from \"../common-types\";\nimport {Type} from \"@angular/core\";\nimport {JSONfn} from \"./jsonfn\";\n\ninterface IPromiseExecutor {\n resolve: (value?: any) => void;\n reject: (reason?: any) => void;\n}\n\nexport function workerFunction(JSONfn: any, logTimes: boolean): void {\n\n let wasmResolve: (instance: IWasmExports) => void = null;\n const wasmInstance: Promise<IWasmExports> = new Promise<IWasmExports>(resolve => {\n wasmResolve = resolve;\n });\n\n self.onmessage = function (e) {\n const data = e.data;\n const {type, payload} = data;\n switch (type) {\n case \"wasm\":\n const {url, wasi} = payload;\n fetch(url).then(response => response.arrayBuffer()).then(bytes => {\n const wasiImpl = JSONfn.parse(wasi);\n return new wasiImpl().instantiate(bytes);\n }).then(instance => {\n wasmResolve(instance);\n const methods = Object.getOwnPropertyNames(instance).filter(key => typeof instance[key] === \"function\");\n self.postMessage({type: \"methods\", payload: methods});\n });\n break;\n case \"call\":\n wasmInstance.then(instance => {\n const {name, id, args} = payload;\n if (logTimes) {\n console.time(id);\n console.timeLog(id, `Calling ${name} ...`);\n }\n const func = (instance[name] as Function);\n const result = func(...args);\n if (logTimes) {\n console.timeLog(id, `Called ${name}`);\n console.timeEnd(id);\n }\n self.postMessage({type: \"result\", payload: {id, result}});\n });\n break;\n }\n };\n}\n\nexport class WasmWorkerProxy {\n\n protected methods: Promise<string[]>;\n protected onMethods: (methods: string[]) => void;\n protected worker: Worker;\n protected promises: Map<string, IPromiseExecutor>;\n\n constructor(wasmPath: string, wasi: Type<IWasi>, logTimes: boolean = false) {\n this.methods = new Promise<string[]>(resolve => {\n this.onMethods = resolve;\n });\n const lt = logTimes ? \"true\" : \"false\";\n const blob = new Blob(\n [`${JSONfn.toString()} (${workerFunction.toString()})(JSONfn, ${lt})`],\n {type: 'application/javascript'}\n );\n this.worker = new Worker(URL.createObjectURL(blob));\n this.worker.postMessage({\n type: \"wasm\",\n payload: {url: wasmPath, wasi: JSONfn.stringify(wasi), logTimes}\n });\n this.worker.onmessage = this.onMessage.bind(this);\n this.promises = new Map<string, IPromiseExecutor>();\n return new Proxy(this, {\n get: (target, prop, receiver) => {\n const res = Reflect.get(target, prop, receiver);\n if (res) {\n return res;\n }\n return (...args: any[]) => {\n return this.call(prop.toString(), args);\n };\n }\n });\n }\n\n onMessage(e: MessageEvent): void {\n const data = e.data;\n const {type, payload} = data;\n switch (type) {\n case \"methods\":\n this.onMethods(payload);\n break;\n case \"result\":\n const {id, result} = payload;\n const promise = this.promises.get(id);\n if (promise) {\n promise.resolve(result);\n this.promises.delete(id);\n }\n break;\n }\n }\n\n async call(method: string, args: any[]): Promise<any> {\n const methods = await this.methods;\n if (!methods.includes(method)) {\n throw new Error(`Method ${method} not found`);\n }\n return new Promise<any>((resolve, reject) => {\n const id = Math.random().toString(36).substring(2, 9);\n this.worker.postMessage({\n type: \"call\",\n payload: {name: method, id, args}\n });\n this.promises.set(id, {resolve, reject});\n });\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {HttpClient, HttpHandler, HttpHeaders, HttpParams, HttpUrlEncodingCodec} from \"@angular/common/http\";\nimport {IBaseHttpClient, IHttpHeaders, IHttpParams} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Injectable()\nexport class BaseHttpClient extends HttpClient implements IBaseHttpClient {\n\n requestHeaders: IHttpHeaders;\n requestParams: IHttpParams;\n renewTokenFunc: () => void;\n\n protected extraRequestParams: IHttpParams;\n\n constructor(handler: HttpHandler) {\n super(handler);\n this.requestHeaders = {};\n this.requestParams = {};\n this.extraRequestParams = {\n language: \"en\"\n };\n }\n\n makeHeaders(headers?: IHttpHeaders, withCredentials: boolean = true): HttpHeaders {\n headers = Object.assign({}, this.requestHeaders, headers);\n const authHeader = headers[\"Authorization\"] as string || \"\";\n if (!withCredentials && !authHeader.startsWith(\"Bearer\")) {\n delete headers[\"Authorization\"];\n }\n return new HttpHeaders(headers);\n }\n\n makeParams(params?: IHttpParams): HttpParams {\n params = Object.assign({}, this.extraRequestParams, this.requestParams, params);\n return new HttpParams({\n encoder: new HttpUrlEncodingCodec(),\n fromObject: Object.keys(params || {}).reduce((result, key) => {\n const value = params[key];\n result[key] = ObjectUtils.isObject(value) ? JSON.stringify(value) : (ObjectUtils.isNullOrUndefined(value) ? \"\" : value.toString());\n return result;\n }, {})\n });\n }\n\n setExtraRequestParam(name: string, value?: any): void {\n if (typeof value == \"undefined\") {\n delete this.extraRequestParams[name];\n return;\n }\n this.extraRequestParams[name] = value;\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {StorageMode} from \"../common-types\";\nimport {UniversalService} from \"./universal.service\";\n\n/**\n * Use this service instead of Storage to avoid Angular Universal breaks on server environment\n */\n@Injectable()\nexport class StorageService {\n\n constructor(readonly universal: UniversalService) {\n }\n\n get(key: string, defaultValue?: any, mode: StorageMode = StorageMode.Local): any {\n if (!this.universal.isBrowser) return defaultValue;\n const storage = mode == StorageMode.Local ? localStorage : sessionStorage;\n const item = storage.getItem(key);\n if (!item) return defaultValue;\n try {\n return JSON.parse(item);\n } catch (e) {\n return item;\n }\n }\n\n set(key: string, value: any, mode: StorageMode = StorageMode.Local): void {\n if (!this.universal.isBrowser) return;\n const storage = mode == StorageMode.Local ? localStorage : sessionStorage;\n if (typeof value == \"string\") {\n storage.setItem(key, value);\n return;\n }\n storage.setItem(key, JSON.stringify(value));\n }\n\n remove(key: string, mode: StorageMode = StorageMode.Local): void {\n if (!this.universal.isBrowser) return;\n const storage = mode == StorageMode.Local ? localStorage : sessionStorage;\n storage.removeItem(key);\n }\n}\n","import {Inject, Injectable, Injector, Optional} from \"@angular/core\";\nimport {HttpErrorResponse, HttpEventType, HttpHeaders, HttpParams, HttpResponse} from \"@angular/common/http\";\nimport {Request} from \"express\";\n\nimport {\n CONFIG_SERVICE,\n EXPRESS_REQUEST,\n HttpPromise,\n IConfigService,\n IHttpHeaders,\n IHttpParams,\n IHttpService,\n IIssueContext,\n ILanguageService,\n IPaginationData,\n IRequestOptions,\n IToasterService,\n LANGUAGE_SERVICE,\n ProgressListener,\n TOASTER_SERVICE\n} from \"../common-types\";\n\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {MathUtils} from \"../utils/math.utils\";\n\nimport {BaseHttpClient} from \"./base-http.client\";\nimport {UniversalService} from \"./universal.service\";\nimport {StorageService} from \"./storage.service\";\nimport {timeout} from \"rxjs/operators\";\nimport {TimeoutError} from \"rxjs\";\n\n@Injectable()\nexport class BaseHttpService implements IHttpService {\n\n protected static failedRequests: Array<() => void> = [];\n\n get name(): string {\n return \"base\";\n }\n\n protected get withCredentials(): boolean {\n return true;\n }\n\n requestHeaders: IHttpHeaders;\n requestParams: IHttpParams;\n cache: any;\n\n protected static retryFailedRequests(): void {\n BaseHttpService.failedRequests.forEach(r => r());\n BaseHttpService.failedRequests = [];\n }\n\n get universal(): UniversalService {\n return this.storage.universal;\n }\n\n constructor(@Inject(Injector) readonly injector: Injector,\n @Inject(BaseHttpClient) readonly client: BaseHttpClient,\n @Inject(StorageService) readonly storage: StorageService,\n @Inject(LANGUAGE_SERVICE) readonly language: ILanguageService,\n @Inject(TOASTER_SERVICE) readonly toaster: IToasterService,\n @Inject(CONFIG_SERVICE) readonly configs: IConfigService,\n @Optional() @Inject(EXPRESS_REQUEST) readonly request: Request = null\n ) {\n this.requestHeaders = {};\n this.requestParams = {};\n this.cache = {};\n this.initService();\n }\n\n protected initService(): void {\n\n }\n\n url(url: string): string {\n return url;\n }\n\n createUrl(url: string, params: IHttpParams): string {\n const httpParams = this.client.makeParams(params);\n const query = httpParams.keys().map(key => {\n return `${key}=${httpParams.get(key)}`;\n }).join(\"&\");\n return `${this.url(url)}?${query}`;\n }\n\n makeListParams(page: number, itemsPerPage: number, orderBy: string = null, orderDescending: boolean = null, filter: string = null): IHttpParams {\n const params: IHttpParams = {\n page: (page - 1),\n limit: itemsPerPage\n };\n if (!ObjectUtils.isNullOrUndefined(orderBy) && !ObjectUtils.isNullOrUndefined(orderDescending)) {\n params.sort = `${orderDescending ? \"-\" : \"\"}${orderBy}`;\n }\n if (!ObjectUtils.isNullOrUndefined(filter)) {\n params.filter = filter;\n }\n return params;\n }\n\n protected getPromise(url: string, options?: IRequestOptions, body?: any): HttpPromise {\n options = this.makeOptions(options, \"GET\", body);\n return this.toPromise(url, options);\n }\n\n protected deletePromise(url: string, options?: IRequestOptions, body?: any): HttpPromise {\n options = this.makeOptions(options, \"DELETE\", body);\n return this.toPromise(url, options);\n }\n\n protected postPromise(url: string, body?: any, options?: IRequestOptions): HttpPromise {\n options = this.makeOptions(options, \"POST\", body);\n return this.toPromise(url, options);\n }\n\n protected putPromise(url: string, body?: any, options?: IRequestOptions): HttpPromise {\n options = this.makeOptions(options, \"PUT\", body);\n return this.toPromise(url, options);\n }\n\n protected patchPromise(url: string, body?: any, options?: IRequestOptions): HttpPromise {\n options = this.makeOptions(options, \"PATCH\", body);\n return this.toPromise(url, options);\n }\n\n protected uploadPromise(url: string, body: any, listener?: ProgressListener, options?: IRequestOptions): HttpPromise {\n const headers: any = {};\n if (body instanceof Blob) {\n headers[\"Content-Type\"] = \"application/octet-stream\";\n }\n options = this.makeOptions(Object.assign({\n headers: headers,\n reportProgress: true\n }, options), \"POST\", body);\n return this.toPromise(url, options, listener);\n }\n\n protected listPromise(url: string, params: IHttpParams): Promise<IPaginationData> {\n return new Promise<IPaginationData>(resolve => {\n this.getPromise(url, {params: params}).then(data => {\n if (ObjectUtils.isArray(data)) {\n const limit = isNaN(params.limit) || Number(params.limit) <= 0\n ? Number.MAX_SAFE_INTEGER\n : Number(params.limit);\n const page = Math.max(Number(params.page), 0);\n const start = Math.max(page * limit, 0);\n const end = Math.min(start + limit, data.length);\n resolve({\n total: data.length,\n items: data.slice(start, end),\n meta: {}\n });\n return;\n }\n resolve({\n total: data.meta?.total || data?.total || data.items?.length || 0,\n items: data.items || [],\n meta: data.meta || {}\n });\n }, response => {\n if (response.status == 0 || response.status == 301) {\n resolve({\n total: 1,\n items: [{\n id: null,\n label: \"Not implemented.\"\n }],\n meta: {}\n });\n return true;\n }\n resolve({\n total: 0,\n items: [],\n meta: {}\n });\n return false;\n });\n });\n }\n\n protected handleUnauthorizedError(absoluteUrl: string, options: IRequestOptions, reject: () => void): void {\n reject();\n if (BaseHttpService.failedRequests.length > 1) {\n return;\n }\n if (this.universal.isServer) return;\n console.log(\"User auth error\", absoluteUrl, options);\n }\n\n protected toastWarning(message: string, issueContext: IIssueContext, reason: any, options: IRequestOptions): void {\n this.toaster.warning(message, {issueContext, reason, options});\n }\n\n protected toastError(message: string, issueContext: IIssueContext, reason: any, options: IRequestOptions): void {\n this.toaster.warning(message, {issueContext, reason, options});\n }\n\n protected toPromise(url: string, options: IRequestOptions, listener?: ProgressListener): HttpPromise {\n const issueContext: IIssueContext = {url: \"\"};\n\n return new HttpPromise(response => {\n if (!response) {\n if (this.universal.isServer) return;\n console.log(\"You may not need a reject Handler for this request!\", this.name, url, options);\n return;\n }\n const reason = response.error || {};\n if (response.status == 0 || response.status == 301) {\n this.toastWarning(`${url} endpoint is not implemented! Click here, to quickly create an issue.`, issueContext, reason, options);\n return;\n }\n const regex = /((E11000 duplicate key error collection: (.)+\\.)|(_1 dup key:(.)+))/g;\n if (reason.message && regex.test(reason.message)) {\n this.toastError(\"message.duplicate-key.error.\" + reason.message.replace(regex, \"\").replace(\" index: \", \"-\"), issueContext, reason, options);\n return;\n }\n this.toastWarning(`${url} endpoint error is not handled properly! Click here, to quickly create an issue.`, issueContext, reason, options);\n }, (resolve, reject) => {\n this.absoluteUrl(url, options).then(absoluteUrl => {\n issueContext.url = absoluteUrl;\n const request = this.client.request(options.method, absoluteUrl, options);\n const finalRequest = ObjectUtils.isNumber(options.timeout) && options.timeout > 0\n ? request.pipe(timeout(options.timeout)) : request;\n finalRequest.subscribe((event: any) => {\n if (options.reportProgress && event?.type === HttpEventType.UploadProgress) {\n const progress = {\n percentage: MathUtils.round(event.loaded / event.total, 2, 0.01),\n loaded: event.loaded,\n total: event.total\n };\n if (listener) {\n listener(progress);\n }\n return;\n }\n resolve(this.parseResponse(event, url, options));\n const headers = options.headers as HttpHeaders;\n const authKey = \"Authorization\";\n // If we use token auth\n if (this.client.renewTokenFunc && headers.has(authKey)) {\n const currentTime = new Date().getTime();\n const userTokenTime = this.getUserTokenTime() || currentTime;\n // And the last request was a long-long time ago\n if (currentTime - 600000 > userTokenTime) {\n this.client.renewTokenFunc();\n }\n }\n }, (response: HttpErrorResponse | TimeoutError) => {\n if (response instanceof TimeoutError || response.status == 0 || response.status == 301) {\n reject(response);\n return;\n }\n const headers = options.headers as HttpHeaders;\n const authKey = \"Authorization\";\n // If an authorization header exists, and we still have an Unauthorized response prompt the user to log in again\n if (headers.has(authKey) && response.status == 401) {\n const pushed = this.pushFailedRequest(url, options, () => {\n options.headers = this.makeHeaders(options.originalHeaders);\n this.toPromise(url, options, listener).then(resolve, reject);\n });\n if (pushed) {\n this.handleUnauthorizedError(absoluteUrl, options, () => reject(response));\n return;\n }\n }\n reject(response);\n });\n });\n });\n }\n\n protected getUserTokenTime(): number {\n return this.storage.get(\"userTokenTime\");\n }\n\n protected pushFailedRequest(url: string, options: IRequestOptions, req: () => void): boolean {\n if (url.indexOf(\"token\") >= 0 || url === \"user\") return false;\n BaseHttpService.failedRequests.push(req);\n return true;\n }\n\n protected checkHeaders(headers: any): boolean {\n if (!headers || !headers.cookie || !headers.referer || !headers.host) {\n return false;\n }\n return headers.referer.indexOf(headers.host) >= 0;\n }\n\n protected makeOptions(options?: IRequestOptions, method: string = \"GET\", body?: any): IRequestOptions {\n // Set base options\n options = options ? {...options} : {};\n options.method = method;\n options.observe = options.observe || \"body\";\n options.originalHeaders = options.originalHeaders || (options.headers as IHttpHeaders) || {};\n options.withCredentials = ObjectUtils.isBoolean(options.withCredentials) ? options.withCredentials : this.withCredentials;\n options.body = body || {};\n // Set cookies from server side request\n const headers = !this.request ? null : this.request.headers;\n if (this.checkHeaders(headers)) {\n options.headers[\"Cookie\"] = headers.cookie;\n }\n options.headers = this.makeHeaders(options);\n options.params = this.makeParams(options);\n return options;\n }\n\n protected makeHeaders(options: IRequestOptions): HttpHeaders {\n return this.client.makeHeaders(Object.assign({}, this.requestHeaders, options?.headers || {}));\n }\n\n protected makeParams(options: IRequestOptions): HttpParams {\n return this.client.makeParams(Object.assign({}, this.requestParams, options?.params || {}));\n }\n\n protected parseResponse(response: any, url: string, options: IRequestOptions): any {\n return response;\n }\n\n protected parseUrl(url: string): string {\n return this.url(url).replace(/(?:((?!:).\\/)\\/)/g, \"$1\");\n }\n\n protected async absoluteUrl(url: string, options: IRequestOptions): Promise<string> {\n return this.parseUrl(url);\n }\n\n protected expressRequestUrl(url: string): string {\n const req = this.request;\n if (!req || !url || url.startsWith(\"http\") || url.startsWith(\"//\")) return url;\n const separator = url.startsWith(\"/\") ? \"\" : \"/\";\n return `${req.protocol}://${req.get(\"host\")}${separator}${url}`;\n }\n}\n","import {Injectable} from \"@angular/core\";\n\nimport {IRequestOptions} from \"../common-types\";\nimport {BaseHttpService} from \"./base-http.service\";\n\n@Injectable()\nexport class LocalHttpService extends BaseHttpService {\n\n private images: { [url: string]: Promise<HTMLImageElement> };\n\n get name(): string {\n return \"local-http\";\n }\n\n protected get withCredentials(): boolean {\n return false;\n }\n\n protected initService(): void {\n this.images = {};\n }\n\n url(url: string): string {\n if (!url) return url;\n const config = this.configs.config;\n const baseUrl = config.cdnUrl || config.baseUrl || \"\";\n return url.startsWith(\"data:\") || url.startsWith(\"http\") || url.startsWith(\"//\")\n ? url\n : `${baseUrl}${url}`;\n }\n\n get(url: string, options?: IRequestOptions): Promise<any> {\n this.cache[url] = this.cache[url] || this.getPromise(url, options);\n return this.cache[url];\n }\n\n getImage(url: string): Promise<HTMLImageElement> {\n if (this.universal.isServer)\n return Promise.resolve(null);\n if (!url)\n return Promise.resolve(new Image());\n\n this.images[url] = this.images[url] || new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image();\n image.crossOrigin = \"Anonymous\";\n image.src = this.url(url);\n image.onload = () => resolve(image);\n image.onerror = reject;\n });\n\n return this.images[url];\n }\n}\n","import {Inject, Injectable, Type} from \"@angular/core\";\nimport {IWasi, IWasm, IWasmAsync, WASI_IMPLEMENTATION} from \"../common-types\";\nimport {WasmWorkerProxy} from \"../utils/wasm-worker-proxy\";\nimport {UniversalService} from \"./universal.service\";\nimport {LocalHttpService} from \"./local-http.service\";\nimport {Wasi} from \"../utils/wasi\";\n\n/**\n * Use this service to load WebAssembly modules\n */\n@Injectable()\nexport class WasmService {\n\n protected wasi: Type<Wasi>\n protected modules: { [url: string]: Promise<any> };\n protected workerModules: { [url: string]: any };\n\n constructor(protected universal: UniversalService,\n protected http: LocalHttpService,\n @Inject(WASI_IMPLEMENTATION) wasi: IWasi) {\n this.wasi = wasi.constructor as any;\n }\n\n async getModule<T = IWasm>(name: string): Promise<T> {\n if (!this.universal.isBrowser || !name)\n return null;\n this.modules = this.modules || {};\n this.modules[name] = this.modules[name] || this.http.get(`wasm/${name}.wasm`, {\n responseType: \"arraybuffer\"\n }).then(async (bytes) => {\n const wasi = new this.wasi();\n return await wasi.instantiate(bytes);\n });\n return this.modules[name] as Promise<any>;\n }\n\n getWorkerModule<T = IWasmAsync>(name: string): T {\n if (!this.universal.isBrowser || !name)\n return null;\n this.workerModules = this.workerModules || {};\n this.workerModules[name] = new WasmWorkerProxy(\n this.http.url(`wasm/${name}.wasm`),\n this.wasi\n );\n return this.workerModules[name] ;\n }\n}\n","import {Inject, Injectable, Injector, Type} from \"@angular/core\";\nimport {StateService} from \"./state.service\";\nimport {AUTH_SERVICE, IAclComponent, IAuthService, IRouteStateInfo} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {AuthGuard} from \"../utils/auth.guard\";\n\nconst emptyGuards: any[] = [];\n\n@Injectable()\nexport class AclService {\n\n protected components: IRouteStateInfo[];\n\n constructor(readonly injector: Injector, readonly state: StateService, @Inject(AUTH_SERVICE) readonly auth: IAuthService) {\n this.components = [];\n this.auth.userChanged.subscribe(() => {\n this.components.forEach(t => t.dirty = true);\n const info = this.getStateInfo();\n const check: Promise<boolean> = info && info.guard instanceof AuthGuard ? info.guard.checkRoute(info.route) : Promise.resolve(true);\n check.then(result => {\n if (result) {\n if (!info || !info.dirty) return;\n info.dirty = false;\n const component: IAclComponent = info.component;\n if (!info.component) return;\n if (info.first) {\n if (ObjectUtils.isFunction(component.onUserInitialized)) {\n component.onUserInitialized();\n }\n info.first = false;\n return;\n }\n if (ObjectUtils.isFunction(component.onUserChanged)) {\n component.onUserChanged();\n }\n return;\n }\n (info.guard as AuthGuard).getReturnState(info.route).then(returnState => {\n if (!returnState) return;\n this.state.navigate(returnState);\n });\n });\n });\n this.state.subscribe(() => {\n const info = this.getStateInfo();\n if (!info?.component) return;\n const component: IAclComponent = info.component;\n if (ObjectUtils.isFunction(component.onUserInitialized)) {\n component.onUserInitialized();\n }\n info.first = false;\n });\n }\n\n protected getStateInfo(): IRouteStateInfo {\n const route = this.state.route;\n if (!route) return null;\n let info = this.components.find(t => t.route == this.state.route);\n if (!info) {\n const guardType: Type<AuthGuard> = (route.canActivate || emptyGuards)[0];\n info = {\n route: this.state.route,\n guard: guardType ? this.injector.get(guardType) : null,\n dirty: true,\n first: true\n };\n this.components.push(info);\n }\n info.component = this.state.component;\n return info;\n }\n}\n","import {Injectable} from \"@angular/core\";\n\nimport {IApiService, IHttpParams, IRequestOptions, ProgressListener} from \"../common-types\";\nimport {BaseHttpService} from \"./base-http.service\";\nimport {IPaginationData} from \"../common-types\";\n\n@Injectable()\nexport class ApiService extends BaseHttpService implements IApiService {\n\n get name(): string {\n return \"api\";\n }\n\n url(url: string): string {\n const baseUrl = this.expressRequestUrl(`/api/${url}`);\n if (url == \"api-docs\" || url == \"socket\") {\n return baseUrl.replace(\"/api/\", \"/\");\n }\n return baseUrl;\n }\n\n get(url: string, options?: IRequestOptions, body?: any): Promise<any> {\n return this.getPromise(url, options, body);\n }\n\n delete(url: string, options?: IRequestOptions, body?: any): Promise<any> {\n return this.deletePromise(url, options, body);\n }\n\n post(url: string, body?: any, options?: IRequestOptions): Promise<any> {\n return this.postPromise(url, body, options);\n }\n\n put(url: string, body?: any, options?: IRequestOptions): Promise<any> {\n return this.putPromise(url, body, options);\n }\n\n patch(url: string, body?: any, options?: IRequestOptions): Promise<any> {\n return this.patchPromise(url, body, options);\n }\n\n upload(url: string, body: any, listener?: ProgressListener, options?: IRequestOptions): Promise<any> {\n return this.uploadPromise(url, body, listener, options);\n }\n\n list(url: string, params: IHttpParams): Promise<IPaginationData> {\n return this.listPromise(url, params);\n }\n}\n","import {EventEmitter} from \"@angular/core\";\nimport {IRoute, IAuthService} from \"../common-types\";\n\nexport class StaticAuthService implements IAuthService {\n\n isAuthenticated: boolean = true;\n userChanged: EventEmitter<any> = new EventEmitter<any>();\n\n checkAuthenticated(): Promise<boolean> {\n return Promise.resolve(this.isAuthenticated);\n }\n\n getReturnState(route: IRoute): string[] {\n return null;\n }\n}\n","import {Inject, Injectable, Injector, isDevMode, Optional} from \"@angular/core\";\nimport JSON5 from \"json5\";\nimport {UniversalService} from \"./universal.service\";\nimport {APP_BASE_URL, BASE_CONFIG, IConfigService, IConfiguration, ROOT_ELEMENT, SCRIPT_PARAMS} from \"../common-types\";\nimport {StringUtils} from \"../utils/string.utils\";\nimport {BaseHttpClient} from \"./base-http.client\";\n\n@Injectable()\nexport class ConfigService implements IConfigService {\n\n protected baseConfig: IConfiguration;\n protected loadedConfig: IConfiguration;\n protected scriptParameters: any;\n protected loader: Promise<IConfiguration>;\n protected readonly loaderFunc: () => Promise<IConfiguration>;\n\n get load(): () => Promise<IConfiguration> {\n return this.loaderFunc;\n }\n\n get config(): IConfiguration {\n return this.loadedConfig;\n }\n\n get configUrl(): string {\n return `${this.loadedConfig.baseUrl}config/config.json`;\n }\n\n constructor(readonly http: BaseHttpClient,\n readonly universal: UniversalService,\n readonly injector: Injector,\n @Inject(ROOT_ELEMENT) readonly rootElement: any,\n @Inject(APP_BASE_URL) readonly baseUrl: string,\n @Optional() @Inject(BASE_CONFIG) baseConfig: IConfiguration = null,\n @Optional() @Inject(SCRIPT_PARAMS) scriptParams: any = null) {\n for (const key in []) {\n Object.defineProperty(Array.prototype, key, {\n enumerable: false\n });\n }\n this.baseConfig = baseConfig || {};\n this.loadedConfig = Object.assign(\n !this.baseUrl ? {} : {baseUrl: this.baseUrl, baseDomain: StringUtils.parseDomain(this.baseUrl)},\n this.baseConfig\n );\n this.scriptParameters = scriptParams || {};\n this.loaderFunc = () => {\n this.loader = this.loader || new Promise<any>((resolve, reject) => {\n this.loadJson().then(config => {\n this.loadedConfig = config = Object.assign(this.loadedConfig, config);\n this.prepareConfig(config).then(c => {\n this.loadedConfig = c;\n c.baseUrl = c.baseUrl || \"/\";\n resolve(c);\n });\n }, reject);\n });\n return this.loader;\n };\n this.initService();\n }\n\n protected initService(): void {\n\n }\n\n protected async loadJson(): Promise<IConfiguration> {\n if (this.universal.isServer) {\n return Promise.resolve(this.loadedConfig);\n }\n const configUrl = this.configUrl;\n try {\n const config5 = await this.http.get(isDevMode() ? `${configUrl}5` : configUrl, {responseType: \"text\"}).toPromise();\n return JSON5.parse(config5);\n } catch (e) {\n try {\n const config = await this.http.get(configUrl).toPromise();\n console.log(`Can't parse json5 config: ${e}`);\n return config;\n } catch (e) {\n throw new Error(`Config file not found at: ${configUrl}`);\n }\n }\n }\n\n protected prepareConfig(config: IConfiguration): Promise<IConfiguration> {\n return Promise.resolve(config);\n }\n\n cloneRootElem(): any {\n if (this.rootElement instanceof HTMLElement) {\n const clone = this.rootElement.cloneNode(true) as HTMLElement\n const children = Array.from(clone.childNodes);\n children.forEach(child => {\n if (child instanceof HTMLElement) {\n child.remove();\n }\n });\n return clone;\n }\n return this.rootElement.cloneNode(true);\n }\n\n prepareUrl(url: string, ending: string): string {\n const project = !this.loadedConfig ? \"\" : this.loadedConfig.project;\n const needsProtocol = url?.startsWith(\"//\") ?? false;\n url = !needsProtocol && url?.startsWith(\"/\") ? this.loadedConfig.baseDomain + url.substr(1) : url || \"\";\n url = `${url.replace(/\\/+$/, \"\")}${ending}`.replace(\"[project]\", project);\n return this.universal.isServer && needsProtocol ? `http:${url}` : url;\n }\n\n getConfigValue(key: string): any {\n return this.loadedConfig[key];\n }\n\n getQueryParameter(name: string, url?: string): string {\n url = url || (this.universal.isBrowser ? window.location.href : \"\");\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n const regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return \"\";\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n }\n}\n","import {ErrorHandler, Injectable, Injector} from \"@angular/core\";\nimport {UniversalService} from \"./universal.service\";\nimport {ERROR_HANDLER, ErrorHandlerCallback, IToasterService, TOASTER_SERVICE} from \"../common-types\";\n\n@Injectable()\nexport class ErrorHandlerService extends ErrorHandler {\n\n private toaster: IToasterService;\n private universal: UniversalService;\n private errorCb: ErrorHandlerCallback;\n private readonly errorMap: any;\n\n constructor(readonly injector: Injector) {\n super();\n this.errorMap = {};\n }\n\n handleError(error: Error): void {\n try {\n this.universal = this.universal || this.injector.get(UniversalService);\n } catch (e) {\n return;\n }\n const date = new Date();\n try {\n this.errorCb = this.errorCb || this.injector.get(ERROR_HANDLER);\n this.errorCb(`[${date}]: ${error.message}\\n${error.stack}`);\n } catch (e) {\n if (this.universal.isServer) {\n console.error(`[${date}]: ${error.message}\\n${error.stack}`);\n return;\n }\n }\n if (this.universal.isServer) return;\n const key = typeof btoa !== \"undefined\" ? btoa(unescape(encodeURIComponent(`${error.message} ${error.stack}`))) : error.message;\n if (this.errorMap[key] && this.errorMap[key].getTime() > date.getTime() - 5000) return;\n this.errorMap[key] = date;\n try {\n this.toaster = this.toaster || this.injector.get(TOASTER_SERVICE);\n this.toaster.error(`[${date}]: ${error.message}\\n${error.stack}`);\n } catch (e) {\n }\n console.error(`[${date}]: ${error.message}\\n${error.stack}`);\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {Subject} from \"rxjs\";\nimport {IUserData} from \"../common-types\";\n\n@Injectable()\nexport class EventsService {\n\n readonly eventForwarded: Subject<Event>;\n readonly stickyUpdated: Subject<boolean>;\n readonly languageChanged: Subject<string>;\n readonly editLanguageChanged: Subject<string>;\n readonly translationsEnabled: Subject<boolean>;\n readonly userChanged: Subject<any>;\n\n private sticky: boolean;\n private user: IUserData;\n\n get isSticky(): boolean {\n return this.sticky;\n }\n\n get isAuthenticated(): boolean {\n return !!this.user;\n }\n\n constructor() {\n this.eventForwarded = new Subject();\n this.stickyUpdated = new Subject();\n this.languageChanged = new Subject();\n this.editLanguageChanged = new Subject<string>();\n this.translationsEnabled = new Subject();\n this.userChanged = new Subject();\n this.sticky = false;\n this.user = null;\n this.userChanged.subscribe(user => {\n this.user = user;\n });\n }\n\n event(e: Event): void {\n this.eventForwarded.next(e);\n }\n\n updateSticky(sticky: boolean): void {\n this.sticky = sticky;\n this.stickyUpdated.next(sticky);\n }\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {ILanguageService, LANGUAGE_SERVICE} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {MathUtils} from \"../utils/math.utils\";\n\n@Injectable()\nexport class FormatterService {\n\n get defaultPrecision(): number {\n return 2;\n }\n\n get defaultNumberFormat(): string {\n return `num + ' mm'`;\n }\n\n get defaultDivider(): number {\n return 1;\n }\n\n constructor(@Inject(LANGUAGE_SERVICE) public language: ILanguageService) {\n\n }\n\n roundNumber(value: number, precision?: number, divider?: number): number {\n return MathUtils.round(value, this.getPrecision(precision), divider || this.defaultDivider);\n }\n\n formatNumber(value: number | string, format?: string, precision?: number, divider?: number, minDigits?: number): string {\n precision = this.getPrecision(precision);\n minDigits = minDigits ?? precision;\n divider = divider || this.defaultDivider;\n const num = ObjectUtils.isNumber(value) ? <number>value : parseFloat(<string>value) || 0;\n const str = (num / divider).toLocaleString(this.language.currentLanguage, {\n minimumFractionDigits: minDigits,\n maximumFractionDigits: precision,\n useGrouping: false\n });\n return ObjectUtils.evaluate(format || this.defaultNumberFormat, {num: str});\n }\n\n formatMillimeter(value: number, precision?: number, divider?: number): string {\n return this.formatNumber(value, `num + ' mm'`, precision, divider);\n }\n\n protected getPrecision(precision: number): number {\n return ObjectUtils.isNumber(precision) ? precision : this.defaultPrecision;\n }\n}\n","import {EventEmitter, Injectable, TemplateRef} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {GlobalComponentModifier} from \"../common-types\";\n\n@Injectable()\nexport class GlobalTemplateService {\n\n readonly templatesUpdated: EventEmitter<void>;\n\n protected globalTemplates: { [id: string]: TemplateRef<any> };\n protected componentModifiers: { [id: string]: GlobalComponentModifier };\n\n constructor() {\n this.templatesUpdated = new EventEmitter<any>();\n this.globalTemplates = {};\n this.componentModifiers = {};\n }\n\n get(id: string, component?: any): TemplateRef<any> {\n const template = this.globalTemplates[id];\n if (!template) return undefined;\n const modifier = this.componentModifiers[id];\n if (ObjectUtils.isFunction(modifier) && component) {\n modifier(component);\n }\n return template;\n }\n\n add(id: string, template: TemplateRef<any>): void {\n this.globalTemplates[id] = template;\n this.templatesUpdated.emit();\n }\n\n remove(id: string): void {\n delete this.globalTemplates[id];\n this.templatesUpdated.emit();\n }\n\n addComponentModifier(id: string, modifier: GlobalComponentModifier): void {\n this.componentModifiers[id] = modifier;\n }\n}\n","import {EventEmitter, Injectable} from \"@angular/core\";\nimport {IIconService} from \"../common-types\";\n\ndeclare const icons: {\n [icon: string]: string;\n};\n\n@Injectable()\nexport class IconService implements IIconService {\n\n get isDisabled(): boolean {\n return this.disabled;\n }\n\n set isDisabled(value: boolean) {\n this.disabled = value;\n this.iconsLoaded.emit();\n }\n\n public readonly iconsLoaded: EventEmitter<any>;\n\n protected disabled: boolean;\n\n constructor() {\n this.iconsLoaded = new EventEmitter<any>();\n this.disabled = false;\n }\n\n getIcon(icon: string, activeIcon: string, active: boolean): Promise<string> {\n icon = typeof icons == \"undefined\" ? icon : (icons[icon] || icon);\n activeIcon = typeof icons == \"undefined\" ? activeIcon : (icons[activeIcon] || icon);\n return Promise.resolve(active ? activeIcon : icon);\n }\n}\n","import {Inject, Injectable} from \"@angular/core\";\r\nimport {\r\n CONFIG_SERVICE,\r\n GlobalTranslations,\r\n IConfigService,\r\n IConfiguration,\r\n ILanguageService,\r\n IPromiseService,\r\n ITranslation,\r\n ITranslations, PROMISE_SERVICE\r\n} from \"../common-types\";\r\nimport {ObjectUtils} from \"../utils/object.utils\";\r\nimport {EventsService} from \"./events.service\";\r\nimport {StorageService} from \"./storage.service\";\r\nimport {UniversalService} from \"./universal.service\";\r\nimport {BaseHttpClient} from \"./base-http.client\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\n\r\nexport const EMPTY_DICT: ITranslations = {};\r\n\r\n@Injectable()\r\nexport class StaticLanguageService implements ILanguageService {\r\n\r\n get defaultLanguage(): string {\r\n return this.configs.getQueryParameter(\"lang\") || this.storage.get(\"language\", this.getDefaultLanguage());\r\n }\r\n\r\n get dictionary(): ITranslations {\r\n return this.mergedTranslations[this.currentLanguage] || EMPTY_DICT;\r\n }\r\n\r\n set dictionary(value: ITranslations) {\r\n this.setDictionary(this.currentLang, value);\r\n this.mergeTranslations();\r\n }\r\n\r\n get languages(): ReadonlyArray<string> {\r\n return this.languageList;\r\n }\r\n\r\n get currentLanguage(): string {\r\n return this.currentLang || this.defaultLanguage;\r\n }\r\n\r\n set currentLanguage(lang: string) {\r\n this.currentLang = lang;\r\n this.events.languageChanged.next(lang);\r\n }\r\n\r\n get editLanguage(): string {\r\n return this.editLang || this.currentLanguage;\r\n }\r\n\r\n set editLanguage(lang: string) {\r\n this.editLang = lang || this.currentLanguage;\r\n this.events.editLanguageChanged.next(this.editLang);\r\n }\r\n\r\n get enableTranslations(): boolean {\r\n return this.enableTrans;\r\n }\r\n\r\n set enableTranslations(value: boolean) {\r\n this.enableTrans = value;\r\n this.events.translationsEnabled.next(value);\r\n }\r\n\r\n get disableTranslations(): boolean {\r\n return !this.enableTranslations;\r\n }\r\n\r\n set disableTranslations(value: boolean) {\r\n this.enableTranslations = !value;\r\n }\r\n\r\n get httpClient(): HttpClient {\r\n return this.client;\r\n }\r\n\r\n get config(): IConfiguration {\r\n return this.configs.config;\r\n }\r\n\r\n get universal(): UniversalService {\r\n return this.storage.universal;\r\n }\r\n\r\n protected editLang: string;\r\n protected currentLang: string;\r\n protected enableTrans: boolean;\r\n protected languageList: string[];\r\n protected readonly translations: GlobalTranslations;\r\n protected overrideTranslations: GlobalTranslations;\r\n protected mergedTranslations: GlobalTranslations;\r\n\r\n constructor(@Inject(EventsService) readonly events: EventsService,\r\n @Inject(StorageService) readonly storage: StorageService,\r\n @Inject(CONFIG_SERVICE) readonly configs: IConfigService,\r\n @Inject(PROMISE_SERVICE) protected promises: IPromiseService,\r\n @Inject(BaseHttpClient) protected client: BaseHttpClient) {\r\n this.editLang = null;\r\n this.currentLang = null;\r\n this.enableTrans = true;\r\n this.languageList = [];\r\n this.translations = {\r\n none: {}\r\n };\r\n this.overrideTranslations = {\r\n none: {}\r\n };\r\n this.mergedTranslations = this.translations;\r\n this.initService();\r\n }\r\n\r\n protected initService(): void {\r\n\r\n }\r\n\r\n replaceLanguages(languages: string[]): void {\r\n languages = Array.isArray(languages) && languages.length > 0 ? languages : this.languageList;\r\n this.languageList = Array.from(new Set<string>(languages));\r\n this.languageList.forEach(lang => {\r\n this.translations[lang] = this.translations[lang] || EMPTY_DICT;\r\n });\r\n }\r\n\r\n addLanguages(languages: string[]): void {\r\n if (!Array.isArray(languages) || languages.length == 0) return;\r\n this.replaceLanguages(this.languageList.concat(languages));\r\n }\r\n\r\n setOverrideTranslations(translations: GlobalTranslations): void {\r\n if (ObjectUtils.isObject(translations)) {\r\n this.overrideTranslations = translations;\r\n this.mergeTranslations();\r\n return;\r\n }\r\n this.overrideTranslations = {};\r\n this.mergedTranslations = this.translations;\r\n }\r\n\r\n getTranslationSync(key: string, params: Object = null): string {\r\n key = String(key ?? \"\");\r\n if (!key) return \"\";\r\n try {\r\n const lowerKey = key.toLocaleLowerCase();\r\n const dict = this.dictionary;\r\n if (lowerKey in dict && this.enableTranslations) {\r\n return this.interpolate(dict[lowerKey], params);\r\n }\r\n return this.interpolate(key, params);\r\n } catch (reason) {\r\n console.warn(\"ERROR IN TRANSLATIONS\", reason);\r\n return key;\r\n }\r\n }\r\n\r\n async getTranslation(key: string, params: any = null): Promise<string> {\r\n await this.loadDictionary();\r\n return this.getTranslationSync(key, params);\r\n }\r\n\r\n getTranslations(...keys: string[]): Promise<ITranslations> {\r\n return this.promises.create<ITranslations>(resolve => {\r\n this.promises.all(keys.map(key => this.getTranslation(key))).then(translations => {\r\n resolve(keys.reduce((result, key, i) => {\r\n result[key] = translations[i];\r\n return result;\r\n }, {}));\r\n });\r\n });\r\n }\r\n\r\n getTranslationFromObject(translations: ITranslations, params?: any, lang?: string): string {\r\n lang = lang || this.currentLanguage;\r\n return this.interpolate(translations ? (translations[lang] || \"\") : \"\")\r\n }\r\n\r\n getTranslationFromArray(translations: ITranslation[], params?: any, lang?: string): string {\r\n lang = lang || this.currentLanguage;\r\n const translation = translations ? translations.find(t => t.lang == lang) : null;\r\n return this.interpolate(translation ? translation.translation : \"\", params);\r\n }\r\n\r\n protected async loadDictionary(): Promise<ITranslations> {\r\n return this.dictionary;\r\n }\r\n\r\n protected setDictionary(lang: string, dictionary: ITranslations): ITranslations {\r\n this.translations[lang] = Object.keys(dictionary || {}).reduce((res, key) => {\r\n res[key.toLocaleLowerCase()] = dictionary[key];\r\n return res;\r\n }, {} as ITranslations);\r\n return this.translations[lang];\r\n }\r\n\r\n protected interpolate(expr: string | Function, params?: Object): string {\r\n if (typeof expr === \"string\") {\r\n // Force single spaces to be empty strings, for labeling in forms.\r\n return expr === \" \" ? \"\" : this.interpolateString(expr, params);\r\n }\r\n if (typeof expr === \"function\") {\r\n return expr(params);\r\n }\r\n return expr as string;\r\n }\r\n\r\n protected interpolateString(expr: string, params?: Object) {\r\n if (!expr || !params) return expr;\r\n return expr.replace(/{{\\s?([^{}\\s]*)\\s?}}/g, (substring: string, b: string) => {\r\n const r = ObjectUtils.getValue(params, b, \"\");\r\n return ObjectUtils.isDefined(r) ? r : substring;\r\n });\r\n }\r\n\r\n protected getDefaultLanguage(): string {\r\n if (!this.universal.isBrowser || typeof window.navigator === \"undefined\") {\r\n return \"de\";\r\n }\r\n let browserLang: string = (window.navigator.languages ? window.navigator.languages[0] : null)\r\n || window.navigator.language || window.navigator[\"browserLanguage\"] || window.navigator[\"userLanguage\"] || null;\r\n if (!browserLang) return browserLang;\r\n\r\n [\"-\", \"_\"].forEach(splitter => {\r\n if (browserLang.indexOf(splitter) >= 0) {\r\n browserLang = browserLang.split(splitter)[0];\r\n }\r\n })\r\n return browserLang;\r\n }\r\n\r\n protected mergeTranslations(): void {\r\n const languages = new Set([\r\n ...Object.keys(this.translations),\r\n ...Object.keys(this.overrideTranslations)\r\n ]);\r\n this.mergedTranslations = Array.from(languages).reduce((merged, language) => {\r\n merged[language] = {\r\n ...(this.translations[language] || EMPTY_DICT),\r\n ...(this.overrideTranslations[language] || EMPTY_DICT),\r\n };\r\n return merged;\r\n }, {} as GlobalTranslations);\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {BehaviorSubject, combineLatest, firstValueFrom, Observable} from \"rxjs\";\r\nimport {map} from \"rxjs/operators\";\r\nimport {ILanguageSetting, ILanguageSettings, ITranslations} from \"../common-types\";\r\nimport {StaticLanguageService, EMPTY_DICT} from \"./static-language.service\";\r\n\r\n@Injectable()\r\nexport class LanguageService extends StaticLanguageService {\r\n\r\n protected translationRequests: Record<string, Promise<ITranslations>>;\r\n protected settingsPromise: Promise<ILanguageSettings>;\r\n protected languageSettings: BehaviorSubject<ILanguageSettings>;\r\n\r\n get currentLanguage(): string {\r\n return this.currentLang || this.defaultLanguage;\r\n }\r\n\r\n set currentLanguage(lang: string) {\r\n this.useLanguage(lang).then(() => {\r\n this.events.languageChanged.next(lang);\r\n });\r\n }\r\n\r\n get settings(): ILanguageSetting {\r\n const settings = this.languageSettings.value;\r\n return !settings ? {} : settings.settings[this.currentLanguage] || {};\r\n }\r\n\r\n get $settings(): Observable<ILanguageSetting> {\r\n this.loadSettings().then(s => this.languageSettings.next(s));\r\n return combineLatest([this.languageSettings, this.events.languageChanged]).pipe(map(([settings, lang]) => {\r\n return !settings ? {} : settings.settings[lang as string] || {};\r\n }));\r\n }\r\n\r\n protected initService(): void {\r\n super.initService();\r\n this.client.setExtraRequestParam(\"language\", \"en\");\r\n this.translationRequests = {};\r\n this.languageSettings = new BehaviorSubject<ILanguageSettings>(null);\r\n if (this.universal.isServer) return;\r\n window[\"setLanguage\"] = (lang: string) => {\r\n this.currentLanguage = lang;\r\n };\r\n }\r\n\r\n async initFromSettings(): Promise<any> {\r\n const defaultLanguage = this.defaultLanguage;\r\n const settings = await this.loadSettings();\r\n this.languageSettings.next(settings);\r\n const devLanguages = settings.devLanguages || [];\r\n this.languageList = (settings.languages || []).filter(lang => {\r\n const unavailable = settings.settings[lang]?.unavailable;\r\n if (unavailable) {\r\n const parts = unavailable.split(\"/\");\r\n const value = parts[0] || parts[1];\r\n const flags = parts.length > 1 ? parts[parts.length - 1] : \"g\";\r\n if (new RegExp(value, flags).test(this.config.baseDomain)) return false;\r\n }\r\n return devLanguages.indexOf(lang) < 0;\r\n });\r\n if (this.languageList.length === 0) {\r\n this.languageList = [defaultLanguage];\r\n }\r\n const lang = this.selectLanguage(this.currentLang)\r\n ?? this.selectLanguage(defaultLanguage)\r\n ?? this.selectLanguage(settings.defaultLanguage || this.languageList[0]);\r\n await this.useLanguage(lang);\r\n this.events.languageChanged.next(lang);\r\n }\r\n\r\n protected selectLanguage(lang: string): string {\r\n if (!lang) return null;\r\n return this.languageList.length === 0 || this.languageList.includes(lang)\r\n ? lang : null;\r\n }\r\n\r\n protected async useLanguage(lang: string): Promise<ITranslations> {\r\n lang = this.selectLanguage(lang);\r\n this.client.setExtraRequestParam(\"language\", lang);\r\n if (lang === this.currentLang) return this.dictionary;\r\n this.storage.set(\"language\", lang);\r\n this.currentLang = lang;\r\n return this.loadDictionary();\r\n }\r\n\r\n async getDictionary(lang: string): Promise<ITranslations> {\r\n if (!lang) return EMPTY_DICT;\r\n const ext = this.config.translationExt || ``;\r\n this.translationRequests[lang] = this.translationRequests[lang] || firstValueFrom(this.client.get<ITranslations>(`${this.config.translationUrl}${lang}${ext}`))\r\n .then(response => {\r\n response = response || {};\r\n const dictionary = Object.keys(response).reduce((result, key) => {\r\n result[key.toLocaleLowerCase()] = response[key];\r\n return result;\r\n }, {} as ITranslations);\r\n this.translations[lang] = dictionary;\r\n this.mergeTranslations();\r\n return dictionary;\r\n }).catch(error => {\r\n console.warn(\"Translation dictionary problem:\", error);\r\n return EMPTY_DICT;\r\n })\r\n return this.translationRequests[lang];\r\n }\r\n\r\n protected async loadDictionary(): Promise<ITranslations> {\r\n return this.getDictionary(this.currentLang);\r\n }\r\n\r\n protected loadSettings(): Promise<ILanguageSettings> {\r\n const ext = this.config.translationExt || ``;\r\n this.settingsPromise = this.settingsPromise || firstValueFrom(this.client.get<ILanguageSettings>(`${this.config.translationUrl}languageSettings${ext}`))\r\n .catch(error => {\r\n console.warn(\"Translation settings problem:\", error);\r\n return {\r\n languages: [\"de\", \"en\", \"hu\"],\r\n devLanguages: [],\r\n defaultLanguage: \"de\",\r\n settings: {\r\n de: {},\r\n hu: {},\r\n en: {}\r\n }\r\n };\r\n });\r\n return this.settingsPromise;\r\n }\r\n}\r\n","import {Inject, Injectable} from \"@angular/core\";\nimport {API_SERVICE, IApiService, IOpenApiSchema, IOpenApiSchemas} from \"../common-types\";\n\n@Injectable()\nexport class OpenApiService {\n\n private schemasPromise: Promise<IOpenApiSchemas>;\n\n constructor(@Inject(API_SERVICE) readonly api: IApiService) {\n\n }\n\n getSchemas(): Promise<IOpenApiSchemas> {\n this.schemasPromise = this.schemasPromise || new Promise((resolve => {\n this.api.get(\"api-docs\").then(res => {\n const schemas: IOpenApiSchemas = res.components?.schemas || res.definitions || {};\n Object.values(schemas).forEach(schema => {\n Object.keys(schema.properties || {}).forEach(p => {\n schema.properties[p].id = p;\n });\n });\n resolve(schemas);\n }, () => {\n resolve({});\n });\n }));\n return this.schemasPromise;\n }\n\n async getSchema(name: string): Promise<IOpenApiSchema> {\n const schemas = await this.getSchemas();\n const schema = schemas[name];\n if (!schema) return null;\n return schemas[name];\n }\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {ILanguageService, IToasterService, LANGUAGE_SERVICE} from \"../common-types\";\n\n@Injectable()\nexport class ConsoleToasterService implements IToasterService {\n\n constructor(@Inject(LANGUAGE_SERVICE) private language: ILanguageService) {\n\n }\n\n error(message: string, params?: any, title?: string): void {\n this.translateMessage(message, params, str => console.log(str, title, \"background: #BD362F; color: #ffffff\"));\n }\n\n info(message: string, params?: any, title?: string): void {\n this.translateMessage(message, params, str => console.log(str, title, \"background: #2F96B4; color: #ffffff\"));\n }\n\n success(message: string, params?: any, title?: string): void {\n this.translateMessage(message, params, str => console.log(str, title, \"background: #51A351; color: #ffffff\"));\n }\n\n warning(message: string, params?: any, title?: string): void {\n this.translateMessage(message, params, str => console.log(str, title, \"background: #F89406; color: #ffffff\"));\n }\n\n private translateMessage(message: string, params: any, callback: (message: string) => void): void {\n this.language.getTranslation(message, params).then(callback);\n }\n}\n","import {Inject, Injectable} from \"@angular/core\";\nimport {DefaultUrlSerializer, UrlSegment, UrlSegmentGroup, UrlTree} from \"@angular/router\";\nimport {ILanguageService, LANGUAGE_SERVICE} from \"../common-types\";\n\nexport interface IUrlDictionary {\n [key: string]: string\n}\n\n@Injectable()\nexport class TranslatedUrlSerializer extends DefaultUrlSerializer {\n\n protected cache: {[lang: string]: IUrlDictionary};\n\n constructor(@Inject(LANGUAGE_SERVICE) readonly language: ILanguageService) {\n super();\n this.cache = {};\n }\n\n serialize(tree: UrlTree): string {\n const copy = new UrlTree();\n const dictionary = this.getDictionary(true);\n copy.root = this.modifyTreeRecursive(tree.root, segment => {\n segment.path = dictionary[segment.path] || segment.path;\n });\n copy.queryParams = tree.queryParams;\n return super.serialize(copy);\n }\n\n parse(url: string): UrlTree {\n const tree = super.parse(url);\n const dictionary = this.getDictionary(false);\n tree.root = this.modifyTreeRecursive(tree.root, segment => {\n segment.path = dictionary[segment.path] || segment.path;\n });\n return tree;\n }\n\n getDictionary(serialize: boolean): IUrlDictionary {\n const method = serialize ? `serialize` : `parse`;\n const key = `${this.language.currentLanguage}-${method}`;\n if (!this.cache[key]) {\n const dict = this.language.dictionary;\n this.cache[key] = Object.keys(dict).reduce((res, key) => {\n if (!key.startsWith(\"route.\")) return res;\n const value = dict[key];\n key = key.replace(\"route.\", \"\");\n res[serialize ? key : value] = serialize ? value : key;\n return res;\n }, {});\n }\n return this.cache[key];\n }\n\n modifyTreeRecursive(segmentGroup: UrlSegmentGroup, cb: (segment: UrlSegment) => void): UrlSegmentGroup {\n if (!segmentGroup) return null;\n const childrenArr = [];\n const children = Object.keys(segmentGroup.children || {}).reduce((res, key) => {\n const child = this.modifyTreeRecursive(segmentGroup.children[key], cb);\n childrenArr.push(child);\n res[key] = child;\n return res;\n }, {});\n const newGroup = new UrlSegmentGroup(segmentGroup.segments.map(s => {\n s = new UrlSegment(s.path, Object.assign({}, s.parameters));\n cb(s);\n return s;\n }), children);\n childrenArr.forEach(c => {\n c.parent = newGroup;\n });\n return newGroup;\n }\n}\n","import {EventEmitter, Inject, Injectable, NgZone} from \"@angular/core\";\nimport {IPromiseService} from \"../common-types\";\n\n@Injectable()\nexport class PromiseService implements IPromiseService {\n\n get count(): number {\n return this.promiseCount;\n }\n\n get onChanged(): EventEmitter<number> {\n return this.promiseChanged;\n }\n\n protected promiseCount: number;\n protected readonly promiseChanged: EventEmitter<number>;\n\n constructor(@Inject(NgZone) readonly zone: NgZone) {\n this.promiseCount = 0;\n this.promiseChanged = new EventEmitter<number>();\n }\n\n create<T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T> {\n return this.add(this.zone.runOutsideAngular(() => new Promise<T>(executor)));\n }\n\n all(promises: Promise<any>[]): Promise<any> {\n return this.add(this.zone.runOutsideAngular(() => Promise.all(promises)));\n }\n\n resolve<T>(value: T | PromiseLike<T>): Promise<T> {\n return this.add(this.zone.runOutsideAngular(() => Promise.resolve(value)));\n }\n\n reject<T>(value: T | PromiseLike<T>): Promise<T> {\n return this.add(this.zone.runOutsideAngular(() => Promise.reject(value)));\n }\n\n protected promiseFinished(): void {\n if (this.promiseCount == 0) return;\n this.promiseCount--;\n this.promiseChanged.emit(this.promiseCount);\n }\n\n protected add<T>(promise: Promise<T>): Promise<T> {\n this.promiseCount++;\n this.promiseChanged.emit(this.promiseCount);\n return new Promise<any>((resolve, reject) => {\n promise.then(v => {\n resolve(v);\n this.promiseFinished();\n }, r => {\n reject(r);\n this.promiseFinished();\n });\n });\n }\n}\n","import elementResizeDetectorMaker from \"element-resize-detector\";\r\nimport type {Erd} from \"element-resize-detector\";\r\nimport {ResizeEventStrategy} from \"../common-types\";\r\n\r\nexport class ResizeDetector {\r\n\r\n protected readonly detector: Erd;\r\n protected isObservable: boolean;\r\n protected observers: Map<HTMLElement, ResizeObserver>;\r\n\r\n constructor(protected resizeStrategy: ResizeEventStrategy) {\r\n this.detector = elementResizeDetectorMaker({\r\n strategy: resizeStrategy === \"observer\" ? \"object\" : resizeStrategy\r\n });\r\n this.isObservable = resizeStrategy === \"observer\" && typeof ResizeObserver === \"function\";\r\n this.observers = new Map();\r\n }\r\n\r\n listenTo(elem: HTMLElement, cb: (el: HTMLElement) => void): void {\r\n if (!this.isObservable) {\r\n this.detector.listenTo(elem, cb);\r\n return;\r\n }\r\n if (this.observers.has(elem)) return;\r\n const observer = new ResizeObserver(() => {\r\n requestAnimationFrame(() => {\r\n cb(elem);\r\n });\r\n });\r\n observer.observe(elem);\r\n this.observers.set(elem, observer);\r\n }\r\n\r\n uninstall(elem: HTMLElement): void {\r\n if (!this.isObservable) {\r\n this.detector.uninstall(elem);\r\n return;\r\n }\r\n if (!this.observers.has(elem)) return;\r\n const observer = this.observers.get(elem);\r\n observer.unobserve(elem);\r\n this.observers.delete(elem);\r\n }\r\n}\r\n","import {ɵDomEventsPlugin as EventManagerPlugin} from \"@angular/platform-browser\";\nimport {Inject, Injectable} from \"@angular/core\";\nimport {DOCUMENT} from \"@angular/common\";\n\nimport {RESIZE_DELAY, RESIZE_STRATEGY, ResizeEventStrategy} from \"../common-types\";\nimport {TimerUtils} from \"../utils/timer.utils\";\nimport {UniversalService} from \"../services/universal.service\";\nimport {ResizeDetector} from \"./resize-detector\";\n\nfunction emptyRemove(): void {\n\n}\n\nfunction isWindow(el: any): boolean {\n return typeof window !== \"undefined\" && el === window;\n}\n\n@Injectable()\nexport class ResizeEventPlugin extends EventManagerPlugin {\n\n static readonly EVENT_NAME: string = \"resize\";\n\n readonly detector: ResizeDetector;\n\n constructor(@Inject(DOCUMENT) doc: any,\n @Inject(RESIZE_DELAY) protected resizeDelay: number,\n @Inject(RESIZE_STRATEGY) protected resizeStrategy: ResizeEventStrategy,\n readonly universal: UniversalService) {\n super(doc);\n this.detector = new ResizeDetector(resizeStrategy);\n }\n\n supports(eventName: string) {\n return eventName === ResizeEventPlugin.EVENT_NAME;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n return zone.runOutsideAngular(() => {\n if (this.universal.isServer)\n return emptyRemove;\n const timer = TimerUtils.createTimeout();\n const cb = (el: any) => {\n timer.set(() => {\n zone.run(() => handler(el));\n }, this.resizeDelay);\n };\n if (isWindow(element)) {\n element.addEventListener(eventName, cb);\n }\n else {\n this.detector.listenTo(element, cb);\n }\n return () => {\n try {\n if (isWindow(element)) {\n element.removeEventListener(eventName, cb);\n }\n else {\n this.detector.uninstall(element);\n }\n }\n catch (e) {\n } finally {\n timer.clear();\n }\n };\n });\n }\n}\n","import {ɵDomEventsPlugin as EventManagerPlugin} from \"@angular/platform-browser\";\nimport {Inject, Injectable} from \"@angular/core\";\nimport {DOCUMENT} from \"@angular/common\";\nimport {UniversalService} from \"../services/universal.service\";\n\nexport function emptyRemove(): void {\n\n}\n\n@Injectable()\nexport class ScrollEventPlugin extends EventManagerPlugin {\n\n private static EVENT_NAME: string = \"scroll\";\n\n constructor(@Inject(DOCUMENT) doc: any, private universal: UniversalService) {\n super(doc);\n }\n\n supports(eventName) {\n return eventName === ScrollEventPlugin.EVENT_NAME;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n return zone.runOutsideAngular(() => {\n if (this.universal.isServer) return emptyRemove;\n const callback = (e: Event) => {\n zone.run(() => handler(e));\n };\n element.addEventListener(eventName, callback);\n return () => element.removeEventListener(eventName, callback);\n });\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"chunk\"\n})\nexport class ChunkPipe implements PipeTransform {\n transform(items: any[], count: number): any[] {\n const result: any[] = [];\n let subResult: any[] = null;\n items.forEach((item, index) => {\n if (index % count == 0) {\n subResult = [];\n result.push(subResult);\n }\n subResult.push(item);\n });\n return result;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport interface IEntry {\n key: string;\n value: any;\n index: number;\n}\n\nconst emptyEntries: IEntry[] = [];\n\n@Pipe({\n name: \"entries\"\n})\nexport class EntriesPipe implements PipeTransform {\n\n transform(value: any): IEntry[] {\n if (!value) return emptyEntries;\n const entries: IEntry[] = [];\n ObjectUtils.iterate(value, (val, key) => {\n entries.push({\n key: key,\n value: val,\n index: entries.length\n });\n });\n return entries;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {IExtraProperties} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"extraItemProperties\"\n})\nexport class ExtraItemPropertiesPipe implements PipeTransform {\n transform(items: any[], properties: IExtraProperties, params: any = {}): any[] {\n const keys = Object.keys(properties);\n keys.forEach(key => {\n const value = properties[key];\n properties[key] = ObjectUtils.isFunction(value) ? value : (item, index, params) => {\n return ObjectUtils.evaluate(value, {\n item: item,\n index: index,\n params: params\n });\n };\n });\n return (items || []).map((item, index) => keys.reduce((result, key) => {\n result[key] = properties[key](item, index, params);\n return result;\n }, {...item}));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultFilter() {\n return true;\n}\n\n@Pipe({\n name: \"filter\"\n})\nexport class FilterPipe implements PipeTransform {\n transform(values: any, filter: any = defaultFilter, params: any = {}): any {\n const isObject = ObjectUtils.isObject(values);\n if (!isObject && !ObjectUtils.isArray(values)) return [];\n const filterFunc = ObjectUtils.isFunction(filter) ? filter : (value, key, params, values) => {\n const index = key;\n return ObjectUtils.evaluate(filter, {value, key, params, values, index});\n };\n if (isObject) {\n return Object.keys(values).filter(key => {\n return filterFunc(values[key], key, params, values);\n }).reduce((result, key) => {\n result[key] = values[key];\n return result;\n }, {})\n }\n return values.filter((value, key) => {\n return filterFunc(value, key, params, values);\n });\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultFilter() {\n return true;\n}\n\n@Pipe({\n name: \"find\"\n})\nexport class FindPipe implements PipeTransform {\n transform(values: any[], filter: any = defaultFilter, params?: any): any {\n if (!ObjectUtils.isArray(values)) return [];\n params = params || {};\n if (ObjectUtils.isObject(params)) {\n params.values = values;\n }\n const filterFunc = ObjectUtils.isFunction(filter) ? filter : (value, index, params, values) => {\n return ObjectUtils.evaluate(filter, {value, index, params, values});\n };\n return values.find((value, index) => filterFunc(value, index, params, values));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {FormatterService} from \"../services/formatter.service\";\n\n@Pipe({\n name: \"formatNumber\"\n})\nexport class FormatNumberPipe implements PipeTransform {\n\n constructor(private formatter: FormatterService) {\n }\n\n transform(value: number, format?: string, precision?: number, divider?: number): string {\n return this.formatter.formatNumber(value, format, precision, divider);\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"getOffset\"\n})\nexport class GetOffsetPipe implements PipeTransform {\n transform(value: any, offset: any): any {\n return value ? (ObjectUtils.isNullOrUndefined(offset) ? value : value[offset]) : null;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"getType\"\n})\nexport class GetTypePipe implements PipeTransform {\n transform(value: any): any {\n return typeof value;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"getValue\"\n})\nexport class GetValuePipe implements PipeTransform {\n\n transform(value: any, path: string, defaultVal: any = \"\"): any {\n return !value ? value : ObjectUtils.getValue(value, path, defaultVal);\n }\n}\n","import {OnDestroy, OnInit, Pipe, PipeTransform, TemplateRef} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {GlobalTemplateService} from \"../services/global-template.service\";\n\n@Pipe({\n pure: false,\n name: \"globalTemplate\"\n})\nexport class GlobalTemplatePipe implements PipeTransform, OnInit, OnDestroy {\n\n protected templatesUpdated: Subscription;\n\n protected cachedTemplateId: string;\n protected cachedTemplate: TemplateRef<any>;\n\n constructor(protected globalTemplates: GlobalTemplateService) {\n this.cachedTemplateId = null;\n this.cachedTemplate = null;\n }\n\n ngOnInit(): void {\n this.templatesUpdated = this.globalTemplates.templatesUpdated.subscribe(() => {\n this.cachedTemplate = null;\n });\n }\n\n ngOnDestroy(): void {\n if (this.templatesUpdated)\n this.templatesUpdated.unsubscribe();\n }\n\n transform(templateId: string, component?: any): TemplateRef<string> {\n if (!templateId) return null;\n if (this.cachedTemplate === null || this.cachedTemplateId !== templateId) {\n this.cachedTemplateId = templateId;\n this.cachedTemplate = this.globalTemplates.get(templateId, component);\n }\n return this.cachedTemplate;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {IGroupMap} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"groupBy\"\n})\nexport class GroupByPipe implements PipeTransform {\n\n transform(records: any[], column: string, map: IGroupMap = null): any {\n const groups = (records || []).reduce((result: any, item: any) => {\n const key = ObjectUtils.getValue(item, column) || \"\";\n const col = map ? (map[key] || \"\") : key;\n const group: any[] = result[col] || [];\n group.push(item);\n result[col] = group;\n return result;\n }, {});\n return Object.keys(groups).map(key => {\n return {group: key, items: groups[key]};\n });\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultFilter() {\n return true;\n}\n\n@Pipe({\n standalone: false,\n name: \"includes\"\n})\nexport class IncludesPipe implements PipeTransform {\n transform(array: any, ...values: any[]): boolean {\n return ObjectUtils.isArray(array) && values.some(v => array.includes(v));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"isType\"\n})\nexport class IsTypePipe implements PipeTransform {\n transform(value: any, type: string): any {\n return (typeof value) === type;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"join\"\n})\nexport class JoinPipe implements PipeTransform {\n\n transform(value: any, separator: string = \", \"): string {\n return (ObjectUtils.isArray(value))\n ? value.join(separator)\n : \"\";\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nconst emptyKeys: any[] = [];\n\n@Pipe({\n name: \"keys\"\n})\nexport class KeysPipe implements PipeTransform {\n\n transform(value: any): any[] {\n if (!value) return emptyKeys;\n return ObjectUtils.isArray(value)\n ? Array.from(value.keys())\n : Object.keys(value);\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultMapper(item) {\n return item;\n}\n\n@Pipe({\n name: \"map\"\n})\nexport class MapPipe implements PipeTransform {\n transform(values: any[], mapper: any = defaultMapper, params: any = {}): any[] {\n if (!ObjectUtils.isArray(values)) return [];\n const mapperFunc = ObjectUtils.isFunction(mapper) ? mapper : (value, index, params) => {\n return ObjectUtils.evaluate(mapper, {\n value: value,\n index: index,\n params: params\n });\n };\n return values.map((value, index) => mapperFunc(value, index, params));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {ArrayUtils} from \"../utils/array.utils\";\n\n@Pipe({\n name: \"max\"\n})\nexport class MaxPipe implements PipeTransform {\n transform(value: any[], selector: any = null, params: any = {}): number {\n selector = selector || (item => <number>item);\n const maxSelector: Function = ObjectUtils.isFunction(value) ? value : (item, index, params) => {\n return ObjectUtils.evaluate(selector, {\n item: item,\n index: index,\n params: params\n });\n };\n return ArrayUtils.max(value, (item, index) => maxSelector(item, index, params));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {ArrayUtils} from \"../utils/array.utils\";\n\n@Pipe({\n name: \"min\"\n})\nexport class MinPipe implements PipeTransform {\n transform(value: any, selector: any = null, params: any = {}): number {\n selector = selector || (item => <number>item);\n const minSelector: Function = ObjectUtils.isFunction(value) ? value : (item, index, params) => {\n return ObjectUtils.evaluate(selector, {\n item: item,\n index: index,\n params: params\n });\n };\n return ArrayUtils.min(value, (item, index) => minSelector(item, index, params));\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"pop\"\n})\nexport class PopPipe implements PipeTransform {\n\n transform(value: any[]): any {\n return !Array.isArray(value) ? null : Array.from(value).pop();\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nexport function defaultReducer(result) {\n return result;\n}\n\n@Pipe({\n name: \"reduce\"\n})\nexport class ReducePipe implements PipeTransform {\n transform(values: any[], source: any, reducer: any = defaultReducer, params: any = {}): any {\n if (!ObjectUtils.isArray(values)) return [];\n const mapperFunc = ObjectUtils.isFunction(reducer) ? reducer : (result, value, index, params) => {\n return ObjectUtils.evaluate(reducer, {\n result: result,\n value: value,\n index: index,\n params: params\n });\n };\n return values.reduce((result, value, index) => mapperFunc(result, value, index, params), source);\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nconst empty: any = {};\n\n@Pipe({\n name: \"remap\"\n})\nexport class RemapPipe implements PipeTransform {\n\n transform(map: any, source: any, defaultValue: string = \"key\"): any {\n if (!map) return empty;\n if (!source) return map;\n const remapped = ObjectUtils.filter({map: ObjectUtils.copy(map)}, (value, key, target) => {\n if (ObjectUtils.isArray(value) && value.every(ObjectUtils.isString)) {\n target[key] = value.reduce((result, k) => {\n result[k] = ObjectUtils.getValue(source, k, ObjectUtils.evaluate(defaultValue, {key: k, map: map, source: source}));\n return result;\n }, {});\n return false;\n }\n return true;\n });\n return remapped.map;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Pipe({\n name: \"replace\"\n})\nexport class ReplacePipe implements PipeTransform {\n transform(value: string, from: string | RegExp, to: string): string {\n return ObjectUtils.isDefined(value) ? `${value}`.replace(from, to) : ``;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nconst emptyArray: any[] = [];\n\n@Pipe({\n name: \"reverse\"\n})\nexport class ReversePipe implements PipeTransform {\n\n transform(value: any[]): any[] {\n if (!ObjectUtils.isArray(value)) return emptyArray;\n const result = [];\n for (let i = value.length - 1; i >= 0; i--) {\n result.push(value[i]);\n }\n return result;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {FormatterService} from \"../services/formatter.service\";\n\n@Pipe({\n name: \"round\"\n})\nexport class RoundPipe implements PipeTransform {\n\n constructor(private formatter: FormatterService) {\n }\n\n transform(value: number, precision: number = 2, divider: number = 1): number {\n return this.formatter.roundNumber(value, precision, divider);\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {DomSanitizer, SafeHtml} from \"@angular/platform-browser\";\n\n@Pipe({\n name: \"safe\"\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) {\n\n }\n\n transform(value: string, type: string = \"html\"): SafeHtml {\n switch (type) {\n case \"html\":\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case \"style\":\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case \"script\":\n return this.sanitizer.bypassSecurityTrustScript(value);\n case \"url\":\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case \"resourceUrl\":\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error(`SafePipe unable to bypass security for invalid type: ${type}`);\n }\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"shift\"\n})\nexport class ShiftPipe implements PipeTransform {\n\n transform(value: any[]): any {\n return !Array.isArray(value) ? null : Array.from(value).shift();\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"split\"\n})\nexport class SplitPipe implements PipeTransform {\n\n transform(value: any, separator: string = \".\"): any[] {\n return `${value}`.split(separator);\n }\n}\n","import {ChangeDetectorRef, Inject, Injectable, Pipe, PipeTransform} from \"@angular/core\";\nimport {ILanguageService, ITranslations, LANGUAGE_SERVICE, TranslationQuery} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Injectable()\n@Pipe({\n name: \"translate\",\n pure: false\n})\nexport class TranslatePipe implements PipeTransform {\n\n private dictionary: ITranslations;\n private disabled: boolean;\n private query: TranslationQuery;\n private args: any[];\n private params: any;\n private lastValue: string;\n\n get currentLang(): string {\n return this.language.currentLanguage\n }\n\n constructor(readonly cdr: ChangeDetectorRef, @Inject(LANGUAGE_SERVICE) readonly language: ILanguageService) {\n\n }\n\n transform(query: TranslationQuery, ...args: any[]): string {\n if (!query) return \"\";\n let dirty = false;\n const dictionary = this.language.dictionary;\n if (this.dictionary !== dictionary) {\n this.dictionary = dictionary;\n dirty = true;\n }\n const disabled = this.language.disableTranslations;\n if (this.disabled !== disabled) {\n this.disabled = disabled;\n dirty = true;\n }\n if (!ObjectUtils.equals(this.query, query)) {\n this.query = query;\n dirty = true;\n }\n if (!ObjectUtils.equals(this.args, args)) {\n this.args = args;\n this.params = null;\n if (ObjectUtils.isDefined(args[0]) && args.length) {\n if (typeof args[0] === \"string\" && args[0].length) {\n const validArgs: string = args[0]\n .replace(/(\\')?([a-zA-Z0-9_]+)(\\')?(\\s)?:/g, `\"$2\":`)\n .replace(/:(\\s)?(\\')(.*?)(\\')/g, `:\"$3\"`);\n try {\n this.params = JSON.parse(validArgs);\n } catch (e) {\n throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${args[0]}`);\n }\n } else if (typeof args[0] === \"object\" && !Array.isArray(args[0])) {\n this.params = args[0];\n }\n }\n dirty = true;\n }\n if (dirty) {\n if (typeof query === \"object\") {\n this.lastValue = Array.isArray(query)\n ? this.language.getTranslationFromArray(query, this.params)\n : this.language.getTranslationFromObject(query, this.params);\n return this.lastValue;\n }\n if (this.disabled) {\n this.lastValue = query;\n return this.lastValue;\n }\n this.lastValue = this.language.getTranslationSync(query, this.params);\n this.language.getTranslation(query, this.params).then(value => {\n this.lastValue = value;\n if (!this.cdr[\"destroyed\"]) {\n this.cdr.detectChanges();\n }\n });\n }\n return this.lastValue;\n }\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\nconst emptyValues: any[] = [];\n\n@Pipe({\n name: \"values\"\n})\nexport class ValuesPipe implements PipeTransform {\n\n transform(value: any): any[] {\n if (!value) return emptyValues;\n return ObjectUtils.isArray(value)\n ? value\n : Object.keys(value).map(key => value[key]);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input, OnChanges,\n Output\n} from \"@angular/core\";\nimport {AsyncMethod, IAsyncMessage, IToasterService, TOASTER_SERVICE} from \"../common-types\";\n\n@Directive({\n standalone: false,\n selector: \"[__asmb__]\"\n})\nexport class AsyncMethodBase implements OnChanges {\n\n @Input() disabled: boolean;\n @Input() context: any;\n\n @Output() onSuccess: EventEmitter<IAsyncMessage>;\n @Output() onError: EventEmitter<IAsyncMessage>;\n\n protected loading: boolean;\n\n @HostBinding(\"class.disabled\")\n get isDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding(\"class.loading\")\n get isLoading(): boolean {\n return this.loading;\n }\n\n constructor(@Inject(TOASTER_SERVICE) protected toaster: IToasterService, protected cdr: ChangeDetectorRef) {\n this.onSuccess = new EventEmitter<IAsyncMessage>();\n this.onError = new EventEmitter<IAsyncMessage>();\n }\n\n protected getMethod(): AsyncMethod {\n return async () => null;\n }\n\n ngOnChanges(): void {\n this.cdr.detectChanges();\n }\n\n @HostListener(\"click\", [\"$event\"])\n click(ev: Event) {\n ev?.preventDefault();\n if (this.disabled) return true;\n this.callMethod();\n return true;\n }\n\n callMethod(): boolean {\n if (this.loading) return true;\n this.loading = true;\n const method = this.getMethod();\n const result = !method ? null : method(this.context);\n if (!(result instanceof Promise)) {\n this.loading = false;\n return false;\n }\n result.then(result => {\n this.loading = false;\n if (result) {\n this.onSuccess.emit(result);\n this.toaster.success(result.message, result.context);\n }\n }, reason => {\n if (!reason || !reason.message)\n throw new Error(\"Reason must implement IAsyncMessage interface\");\n this.loading = false;\n this.onError.emit(reason);\n this.toaster.error(reason.message, reason.context);\n }).finally(() => {\n if (!this.cdr[\"destroyed\"]) {\n this.cdr.detectChanges();\n }\n });\n return true;\n }\n}\n","import {Directive, Input} from \"@angular/core\";\nimport {AsyncMethod} from \"../common-types\";\nimport {AsyncMethodBase} from \"./async-method.base\";\n\n@Directive({\n selector: \"[async-method]\",\n exportAs: \"async-method\"\n})\nexport class AsyncMethodDirective extends AsyncMethodBase {\n\n @Input(\"async-method\") method: AsyncMethod;\n\n protected getMethod(): AsyncMethod {\n return this.method;\n }\n}\n","import {Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges} from \"@angular/core\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {FileUtils} from \"../utils/file.utils\";\nimport {UniversalService} from \"../services/universal.service\";\n\nconst defaultClass = \"default-image\";\nconst loadingClass = \"loading-image\";\n\n@Directive({\n selector: \"[background]\"\n})\nexport class BackgroundDirective implements OnChanges {\n\n @Input() background: string;\n @Input() backgroundSize: string;\n\n constructor(private http: HttpClient, private element: ElementRef, private renderer: Renderer2, private universal: UniversalService) {\n\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.universal.isServer) {\n this.setBackground(this.background);\n return;\n }\n this.renderer.removeClass(this.element.nativeElement, defaultClass);\n this.renderer.addClass(this.element.nativeElement, loadingClass);\n FileUtils.readDataFromUrl(this.http, this.background).then(url => {\n this.setBackground(url);\n }, () => {\n this.renderer.removeClass(this.element.nativeElement, loadingClass);\n this.renderer.addClass(this.element.nativeElement, defaultClass);\n });\n }\n\n private setBackground(url: string): void {\n this.renderer.removeClass(this.element.nativeElement, loadingClass);\n this.renderer.setStyle(this.element.nativeElement, \"background-image\", `url('${url}')`);\n if (!this.backgroundSize) return;\n this.renderer.setStyle(this.element.nativeElement, \"background-size\", this.backgroundSize);\n }\n}\n","import {Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, Output} from \"@angular/core\";\nimport {AutoPlacementOptions, Boundary, Placement} from \"@floating-ui/dom\";\nimport {DropdownAttachTo} from \"../common-types\";\n\n@Directive({\n standalone: false,\n selector: \"[dd],[drop-down]\",\n exportAs: \"dropdown\"\n})\nexport class DropdownDirective implements OnDestroy {\n\n protected static active: DropdownDirective = null;\n\n protected opened: boolean;\n protected disabled: boolean;\n\n /**\n * Determines if the dropdown should be closed even if we click inside it\n */\n @Input() closeInside: boolean;\n\n /**\n * Determines where the floating element needs to be placed\n */\n @Input() attachTo: DropdownAttachTo;\n\n /**\n * Determines the boundary element of the floating element when shifting\n */\n @Input() boundary: Boundary;\n\n /**\n * Where to place the floating element relative to the reference element.\n */\n @Input() placement: Placement;\n\n /**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\n @Input() autoPlacement: AutoPlacementOptions;\n\n /**\n * Determines if the dropdown content should be displayed in a fixed full screen view under this window width\n * @default 0\n */\n @Input() mobileViewUnder: number;\n\n /**\n * Determines if the dropdown content should always be displayed in a fixed full screen view\n * @default false\n */\n @Input() fixed: boolean;\n\n /**\n * Determines if the dropdown should react to keys to close like 'Esc'\n * @default true\n */\n @Input() keyboardHandler: boolean;\n\n @Output() onShown: EventEmitter<DropdownDirective>;\n @Output() onHidden: EventEmitter<DropdownDirective>;\n @Output() onKeyboard: EventEmitter<KeyboardEvent>;\n\n contentElement: HTMLElement;\n\n private readonly onClick: (event: Event) => void;\n private readonly onKeyDown: (event: KeyboardEvent) => boolean;\n\n get nativeElement(): HTMLElement {\n return this.element.nativeElement;\n }\n\n @HostBinding(\"class.open\")\n get isOpened(): boolean {\n return this.opened;\n }\n\n @HostBinding(\"class.disabled\")\n get getDisabled(): boolean {\n return this.disabled;\n }\n\n @Input()\n set isDisabled(value: boolean) {\n this.disabled = value;\n if (!value) return;\n this.hide();\n }\n\n constructor(protected element: ElementRef<HTMLElement>) {\n this.opened = false;\n this.disabled = false;\n this.closeInside = true;\n this.attachTo = null;\n this.boundary = \"clippingAncestors\";\n this.mobileViewUnder = 0;\n this.fixed = false;\n this.keyboardHandler = true;\n this.onShown = new EventEmitter<any>();\n this.onHidden = new EventEmitter<any>();\n this.onKeyboard = new EventEmitter<KeyboardEvent>();\n this.onClick = (event: MouseEvent): void => {\n // We don't care about clicks with right/center mouse buttons\n if (event.button) return;\n const target = (event.composedPath()?.shift() || event.target) as Node;\n // If blocked closing inside we only consider inside if the target is not directly the contentElement\n // We only have a contentElement in case when we are using *dropdownContent directive\n if (!this.closeInside && (!this.contentElement || target !== this.contentElement)) {\n // Try to determine if we are inside by collecting the possible parent elements to check\n const parents = !this.contentElement ? [] : Array.from(this.contentElement.childNodes);\n if (this.nativeElement) {\n parents.push(this.nativeElement);\n }\n // If one of the parents contains the target then we clicked inside\n if (parents.some(child => child.contains(target))) return;\n }\n setTimeout(() => this.hide(), event.type == \"touchend\" ? 250 : 100);\n };\n this.onKeyDown = (event: KeyboardEvent): boolean => {\n const input = (event.composedPath()?.shift() || event.target) as HTMLInputElement;\n const notInput = !input || (input.tagName !== \"INPUT\" && input.tagName !== \"TEXTAREA\");\n if (\"Tab\" === event.key || notInput) {\n event.stopPropagation();\n event.preventDefault();\n }\n if (\"Esc\" === event.key || \"Escape\" === event.key) {\n this.hide();\n return false;\n }\n this.onKeyboard.emit(event);\n return true;\n };\n }\n\n ngOnDestroy(): void {\n if (DropdownDirective.active === this) {\n DropdownDirective.active = null;\n this.onHidden.emit(this);\n }\n }\n\n showEvent(): void {\n this.onShown.emit(this);\n }\n\n hideEvent(): void {\n this.onHidden.emit(this);\n }\n\n @HostListener(\"keydown.enter\", [\"$event\"])\n @HostListener(\"keydown.space\", [\"$event\"])\n show($event?: Event) {\n if (this.opened) return;\n if ($event) {\n if (!this.keyboardHandler) return true;\n $event.preventDefault();\n }\n if (this.disabled) return true;\n this.opened = true;\n this.showEvent();\n DropdownDirective.active = this;\n // Prevent toggle from selecting an item right after it is shown\n setTimeout(() => {\n if (!this.opened) return;\n document.addEventListener(\"click\", this.onClick);\n document.addEventListener(\"keydown\", this.onKeyDown);\n }, 10);\n return true;\n }\n\n hide() {\n if (!this.opened) return true;\n this.opened = false;\n this.hideEvent();\n document.removeEventListener(\"click\", this.onClick);\n document.removeEventListener(\"keydown\", this.onKeyDown);\n // Prevent toggle from refocus itself after it is hidden because of another toggle\n setTimeout(() => {\n if (DropdownDirective.active === this) {\n DropdownDirective.active = null;\n this.nativeElement?.focus();\n }\n }, 10);\n return true;\n }\n}\n","import {Directive, ElementRef, Inject, OnDestroy, OnInit, Optional, TemplateRef, ViewContainerRef} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {\n arrow,\n autoPlacement,\n autoUpdate,\n computePosition,\n shift,\n MiddlewareData,\n Placement,\n Middleware, limitShift\n} from \"@floating-ui/dom\";\n\nimport {ROOT_ELEMENT} from \"../common-types\";\nimport {DropdownDirective} from \"./dropdown.directive\";\nimport {ObservableUtils} from \"../utils/observable.utils\";\nimport {getCssVariables} from \"../utils/misc\";\n\nconst rectProps = [\"x\", \"y\", \"width\", \"height\"];\n\ninterface ComputeResult {\n styles: {\n position: \"fixed\" | \"absolute\";\n left: string;\n top: string;\n right: string;\n bottom: string;\n },\n placement: Placement;\n isMobileView: boolean;\n middlewareData?: MiddlewareData;\n}\n\n@Directive({\n standalone: false,\n selector: \"[dropdownContent]\",\n exportAs: \"dropdown-content\",\n})\nexport class DropdownContentDirective implements OnInit, OnDestroy {\n\n protected subscription: Subscription;\n protected attachTo: HTMLElement;\n protected attachOutside: boolean;\n protected lastPlacement: string;\n protected cleanUp: () => void;\n\n constructor(protected vcr: ViewContainerRef,\n @Optional() @Inject(ROOT_ELEMENT) protected rootElem: HTMLElement,\n @Optional() protected dropdown: DropdownDirective,\n @Optional() readonly templateRef: TemplateRef<any>) {\n if (!this.dropdown) {\n throw new Error(\"DropdownDirective is required! Please use it inside a dd, drop-down directive attribute\");\n }\n if (!this.templateRef) {\n throw new Error(\"TemplateRef is required! Please use with *dropdownContent\");\n }\n this.lastPlacement = null;\n }\n\n ngOnInit() {\n this.subscription = ObservableUtils.multiSubscription(\n this.dropdown.onShown.subscribe(() => this.createView()),\n this.dropdown.onHidden.subscribe(() => this.destroyView())\n );\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n this.destroyView();\n }\n\n protected createView(init: boolean = false) {\n if (this.dropdown.contentElement) return;\n const mobileWidth = this.dropdown.mobileViewUnder || 0;\n const fixed = this.dropdown.fixed || false;\n const ref = this.dropdown.nativeElement;\n const [content, arrowEl] = this.createWrapper();\n this.dropdown.contentElement = content;\n // Set up floating UI positioning settings\n const middleware: Middleware[] = [];\n if (this.dropdown.autoPlacement) {\n middleware.push(\n shift({\n boundary: this.dropdown.boundary,\n limiter: limitShift()\n }),\n autoPlacement(this.dropdown.autoPlacement),\n );\n }\n middleware.push(\n arrow({element: arrowEl})\n );\n const compute = async (): Promise<ComputeResult> => {\n const isMobileView = window.innerWidth <= mobileWidth;\n if (isMobileView || fixed) {\n return {\n styles: {\n left: \"0px\", top: \"0px\", right: \"0px\", bottom: \"0px\",\n position: \"fixed\",\n },\n placement: \"top\",\n isMobileView\n };\n }\n const {x, y, placement, middlewareData} = await computePosition(\n ref,\n content,\n {\n strategy: \"absolute\",\n placement: this.dropdown.placement || \"bottom\",\n middleware\n }\n );\n\n return {\n styles: {\n left: `${x}px`, top: `${y}px`, right: null, bottom: null,\n position: \"absolute\",\n },\n placement,\n isMobileView,\n middlewareData\n };\n }\n // Set up floating UI auto update\n this.cleanUp = autoUpdate(\n ref,\n content,\n () => {\n compute().then(({styles, placement, isMobileView, middlewareData}) => {\n\n if (middlewareData?.arrow) {\n const {x, y} = middlewareData.arrow;\n Object.assign(arrowEl.style, {\n left: x != null ? `${x}px` : ``,\n top: y != null ? `${y}px` : ``,\n });\n }\n\n Object.assign(content.style, styles, {\n opacity: init ? \"0\" : \"1\",\n zIndex: `var(--dd-z-index, 100)`\n });\n\n const refRect = ref.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const lastPlacement = this.lastPlacement;\n const newPlacement = `dropdown-placement-${placement}`;\n if (lastPlacement) {\n ref.classList.replace(lastPlacement, newPlacement);\n content.classList.replace(lastPlacement, newPlacement);\n } else {\n ref.classList.add(newPlacement);\n content.classList.add(newPlacement);\n }\n if (isMobileView || fixed) {\n if (!isMobileView) {\n content.classList.add(`dropdown-content-fixed`);\n content.classList.remove(`dropdown-content-mobile`);\n } else {\n content.classList.add(`dropdown-content-mobile`);\n content.classList.remove(`dropdown-content-fixed`);\n }\n content.classList.remove(`dropdown-content-desktop`);\n } else {\n content.classList.add(`dropdown-content-desktop`);\n content.classList.remove(`dropdown-content-mobile`);\n content.classList.remove(`dropdown-content-fixed`);\n }\n rectProps.forEach(prop => {\n content.style.setProperty(`--toggle-${prop}`, `${refRect[prop]}px`);\n ref.style.setProperty(`--content-${prop}`, `${contentRect[prop]}px`);\n });\n this.lastPlacement = newPlacement;\n });\n },\n );\n }\n\n protected destroyView() {\n if (!this.dropdown.contentElement) return;\n this.dropdown.contentElement.remove();\n this.dropdown.contentElement = null;\n this.vcr.clear();\n this.cleanUp?.();\n }\n\n protected whereToAttach(): HTMLElement {\n const target = this.dropdown.attachTo;\n if (target === \"root\" && this.rootElem) {\n return this.rootElem;\n }\n if (target instanceof ElementRef) {\n return target.nativeElement;\n }\n if (target instanceof HTMLElement) {\n return target;\n }\n const anchor = this.vcr.element.nativeElement as HTMLElement;\n return anchor?.parentElement || this.rootElem;\n }\n\n protected createWrapper() {\n const wrapper = document.createElement(\"div\");\n const arrow = document.createElement(\"div\");\n arrow.classList.add(`dropdown-content-arrow`);\n arrow.style.position = `absolute`;\n wrapper.appendChild(arrow);\n const ref = this.vcr.createEmbeddedView(this.templateRef);\n ref.rootNodes.forEach(node => wrapper.appendChild(node));\n ref.detectChanges();\n this.attachTo = this.whereToAttach();\n this.attachTo.appendChild(wrapper);\n this.attachOutside = !this.dropdown.nativeElement?.contains(this.attachTo);\n\n if (this.attachOutside) {\n const referenceStyles = getCssVariables(this.dropdown.nativeElement);\n const wrapperStyles = getCssVariables(wrapper);\n Object.keys(referenceStyles).forEach(key => {\n if (!wrapperStyles[key]) {\n wrapper.style.setProperty(key, referenceStyles[key]);\n }\n });\n }\n\n const autoPlacement = this.dropdown.autoPlacement;\n if (this.lastPlacement) {\n wrapper.classList.add(this.lastPlacement);\n }\n if (autoPlacement) {\n const vertical = autoPlacement.allowedPlacements.some(p => p.includes(\"top\") || p.includes(\"bottom\"));\n const horizontal = autoPlacement.allowedPlacements.some(p => p.includes(\"left\") || p.includes(\"right\"));\n if (vertical && horizontal) {\n wrapper.classList.add(`dropdown-content-axis-both`);\n } else {\n const axis = vertical ? \"vertical\" : \"horizontal\";\n wrapper.classList.add(`dropdown-content-axis-${axis}`);\n }\n }\n wrapper.classList.add(\"dropdown-content-wrap\");\n return [wrapper, arrow];\n }\n\n initialize(): void {\n this.createView(true);\n setTimeout(() => this.destroyView());\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, Inject, Input} from \"@angular/core\";\nimport {DropdownDirective} from \"./dropdown.directive\";\nimport {AsyncMethodBase} from \"./async-method.base\";\nimport {AsyncMethod, IToasterService, TOASTER_SERVICE} from \"../common-types\";\n\n@Directive({\n standalone: false,\n selector: \"[dropdownToggle]\",\n exportAs: \"dropdown-toggle\",\n})\nexport class DropdownToggleDirective extends AsyncMethodBase {\n\n @Input() beforeOpen: AsyncMethod;\n @Input() switch: boolean;\n\n constructor(readonly element: ElementRef,\n readonly dropdown: DropdownDirective,\n @Inject(TOASTER_SERVICE) toaster: IToasterService,\n cdr: ChangeDetectorRef) {\n super(toaster, cdr);\n this.switch = true;\n }\n\n protected getMethod(): AsyncMethod {\n return this.beforeOpen;\n }\n\n callMethod(): boolean {\n if (this.dropdown.isOpened) {\n if (!this.switch) return true;\n this.dropdown.hide();\n } else if (!super.callMethod()) {\n this.dropdown.show();\n }\n return true;\n }\n}\n","import {Directive, Input, TemplateRef} from \"@angular/core\";\nimport {ITableTemplate} from \"../common-types\";\n\n@Directive({\n selector: \"ng-template[column]\"\n})\n\nexport class DynamicTableTemplateDirective implements ITableTemplate {\n\n @Input() column: string | string[];\n @Input() pure: boolean;\n\n constructor(public ref: TemplateRef<any>) {\n }\n}\n","import {Directive, Input, OnDestroy, OnInit, TemplateRef} from \"@angular/core\";\nimport {GlobalTemplateService} from \"../services/global-template.service\";\n\n@Directive({\n selector: \"[globalTemplate]\"\n})\nexport class GlobalTemplateDirective implements OnInit, OnDestroy {\n\n @Input(\"globalTemplate\") id: string;\n\n constructor(readonly globalTemplates: GlobalTemplateService,\n readonly template: TemplateRef<any>) {\n\n }\n\n ngOnInit(): void {\n this.globalTemplates.add(this.id, this.template);\n }\n\n ngOnDestroy(): void {\n this.globalTemplates.remove(this.id);\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges\n} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {ICON_SERVICE, IIconService} from \"../common-types\";\n\n@Directive({\n selector: \"[icon]\"\n})\nexport class IconDirective implements OnChanges, OnInit, OnDestroy {\n\n @Input() icon: string;\n @Input() activeIcon: string;\n @Input() active: boolean;\n @Output() activeChange: EventEmitter<boolean>;\n\n @HostBinding(\"class.active\")\n get isActive() {\n return this.active;\n }\n\n protected iconsLoaded: Subscription;\n\n constructor(private element: ElementRef, private renderer: Renderer2, @Inject(ICON_SERVICE) private icons: IIconService) {\n this.renderer.addClass(this.element.nativeElement, \"svg-icon\");\n this.activeChange = new EventEmitter<boolean>();\n }\n\n ngOnInit(): void {\n this.iconsLoaded = this.icons.iconsLoaded.subscribe(() => this.changeIcon());\n }\n\n ngOnDestroy(): void {\n if (this.iconsLoaded)\n this.iconsLoaded.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.icon) {\n this.renderer.removeClass(this.element.nativeElement, `svg-icon-${changes.icon.previousValue}`);\n this.renderer.addClass(this.element.nativeElement, `svg-icon-${changes.icon.currentValue}`);\n }\n this.changeIcon();\n }\n\n @HostListener(\"click\")\n click(): void {\n this.active = !this.active;\n this.activeChange.emit(this.active);\n this.changeIcon();\n }\n\n private changeIcon(): void {\n this.icons.getIcon(this.icon, this.activeIcon || `${this.icon}-active`, this.active).then(icon => {\n if (this.icons.isDisabled) return;\n this.element.nativeElement.innerHTML = icon;\n });\n }\n}\n","import {\n Directive, DoCheck,\n EmbeddedViewRef,\n Input,\n OnChanges,\n SimpleChange,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef\n} from \"@angular/core\";\nimport {ObjectUtils} from \"../utils/object.utils\";\n\n@Directive({\n selector: \"[ngxTemplateOutlet]\"\n})\nexport class NgxTemplateOutletDirective implements OnChanges, DoCheck {\n\n private viewRef: EmbeddedViewRef<any>;\n\n @Input() public context: Object;\n @Input() public additionalContext: Object;\n @Input() public ngxTemplateOutlet: TemplateRef<any>;\n\n private static hasContextShapeChanged(ctxChange: SimpleChange): boolean {\n const prevCtxKeys = Object.keys(ctxChange.previousValue || {});\n const currCtxKeys = Object.keys(ctxChange.currentValue || {});\n\n if (prevCtxKeys.length === currCtxKeys.length) {\n for (const propName of currCtxKeys) {\n if (prevCtxKeys.indexOf(propName) === -1) {\n return true;\n }\n }\n return false;\n } else {\n return true;\n }\n }\n\n constructor(private _viewContainerRef: ViewContainerRef) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const recreateView = this.shouldRecreateView(changes);\n if (recreateView) {\n if (this.viewRef)\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this.viewRef));\n if (this.ngxTemplateOutlet)\n this.viewRef = this._viewContainerRef.createEmbeddedView(this.ngxTemplateOutlet, {});\n }\n this.ngDoCheck();\n }\n\n ngDoCheck(): void {\n if (!this.viewRef) return;\n const context = this.viewRef.context;\n this.updateExistingContext(this.context, context);\n this.updateExistingContext(this.additionalContext, context);\n context.$implicit = context;\n }\n\n private shouldRecreateView(changes: SimpleChanges): boolean {\n const ctxChange = changes[\"context\"];\n const aCtxChange = changes[\"additionalContext\"];\n return !!changes[\"ngxTemplateOutlet\"]\n || (ctxChange && NgxTemplateOutletDirective.hasContextShapeChanged(ctxChange))\n || (aCtxChange && NgxTemplateOutletDirective.hasContextShapeChanged(aCtxChange));\n }\n\n private updateExistingContext(ctx: any, context: any): void {\n if (!ctx) return;\n let ctxProto = Object.getPrototypeOf(ctx);\n if (ctxProto == Object.prototype) {\n ctxProto = ctx;\n }\n const props = Object.getOwnPropertyNames(ctxProto);\n for (const propName of props) {\n const desc = Object.getOwnPropertyDescriptor(ctxProto, propName);\n // Copy if its a getter and it is not $implicit\n if (desc.get && propName !== \"$implicit\") {\n Object.defineProperty(context, propName, desc);\n continue;\n }\n const func: Function = ObjectUtils.isFunction(desc.value) ? desc.value.bind(ctx) : null;\n if (func && func !== ctxProto.constructor) {\n context[propName] = func;\n }\n }\n for (const propName of Object.keys(ctx)) {\n\n const desc = Object.getOwnPropertyDescriptor(ctxProto, propName);\n if (desc && desc.get && !desc.set) continue;\n context[propName] = ctx[propName];\n }\n }\n}\n","import {Directive, EventEmitter, Input, NgZone, OnChanges, Output, SimpleChanges} from \"@angular/core\";\nimport {IPaginationData, ITimer, PaginationDataLoader, PaginationItemContext} from \"../common-types\";\nimport {TimerUtils} from \"../utils/timer.utils\";\n\n@Directive({\n selector: \"[pagination]\",\n exportAs: \"pagination\"\n})\nexport class PaginationDirective implements OnChanges {\n\n get total(): number {\n return this.data ? this.data.total : 0;\n }\n\n get items(): any[] {\n return this.data ? this.data.items : [];\n }\n\n @Input(\"pagination\") loader: PaginationDataLoader;\n @Input() page: number;\n @Input() itemsPerPage: number;\n @Input() updateTime: number;\n @Input() waitFor: Promise<any>;\n\n @Output() pageChange: EventEmitter<number>;\n @Output() onRefresh: EventEmitter<PaginationDirective>;\n\n maxPage: number;\n\n private data: IPaginationData;\n private updateTimer: ITimer;\n\n constructor(private zone: NgZone) {\n this.pageChange = new EventEmitter<number>();\n this.onRefresh = new EventEmitter<PaginationDirective>();\n this.updateTimer = TimerUtils.createTimeout(() => this.loadData(), this.updateTime);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.loader && !changes.itemsPerPage && !changes.page) return;\n this.page = isNaN(this.page) || this.page < 1 ? 1 : this.page;\n this.itemsPerPage = isNaN(this.itemsPerPage) || this.itemsPerPage < 1 ? 20 : this.itemsPerPage;\n this.waitFor = this.waitFor || Promise.resolve(true);\n this.refresh();\n }\n\n refresh(time?: number): void {\n time = isNaN(time) || time <= 0 ? this.updateTime : time;\n this.updateTimer.time = isNaN(time) || time <= 0 ? 100 : time;\n this.waitFor.then(() => {\n this.updateTimer.run();\n });\n }\n\n paginate(page: number): void {\n this.page = page;\n this.pageChange.emit(page);\n this.refresh();\n }\n\n private loadData(): void {\n if (!this.loader) return;\n this.loader(this.page, this.itemsPerPage).then(data => {\n this.maxPage = !data || data.total <= 0 ? 1 : Math.floor((data.total - 1) / this.itemsPerPage) + 1;\n this.data = data;\n const baseIndex = (this.page - 1) * this.itemsPerPage;\n const items = (data.items || []);\n data.items = items.map((item, index) => {\n const ix = baseIndex + index;\n return item instanceof PaginationItemContext\n ? item\n : new PaginationItemContext(item, items, items.length, index, ix);\n });\n if (this.page > this.maxPage) {\n this.paginate(this.maxPage);\n return;\n }\n this.zone.run(() => this.onRefresh.emit(this));\n });\n }\n}\n","import {Directive, OnDestroy, OnInit, TemplateRef, ViewContainerRef} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {PaginationDirective} from \"./pagination.directive\";\n\n@Directive({\n selector: \"[paginationItem]\"\n})\nexport class PaginationItemDirective implements OnInit, OnDestroy {\n\n private onRefresh: Subscription;\n\n constructor(private pagination: PaginationDirective, private viewContainer: ViewContainerRef, private templateRef: TemplateRef<any>) {\n\n }\n\n ngOnInit(): void {\n this.onRefresh = this.pagination.onRefresh.subscribe(() => this.renderView());\n }\n\n ngOnDestroy(): void {\n this.onRefresh.unsubscribe();\n }\n\n private renderView(): void {\n this.viewContainer.clear();\n this.pagination.items.forEach((item: any, ix: number) => {\n item.$implicit = item;\n item.rowIndex = ix;\n this.viewContainer.createEmbeddedView(this.templateRef, item);\n });\n }\n}\n","import {Directive, ViewContainerRef, TemplateRef, Input} from \"@angular/core\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {ResourceIfContext} from \"../common-types\";\nimport {FileUtils} from \"../utils/file.utils\";\nimport {UniversalService} from \"../services/universal.service\";\n\n@Directive({\n selector: \"[resourceIf]\",\n exportAs: \"resourceIf\"\n})\nexport class ResourceIfDirective {\n\n private context: ResourceIfContext;\n private resource: string;\n\n @Input()\n set resourceIf(resource: string) {\n this.resource = resource;\n this.renderView();\n }\n\n get resourceIf(): string {\n return this.resource;\n }\n\n get url(): string {\n return this.context.url;\n }\n\n constructor(private http: HttpClient, private viewContainer: ViewContainerRef, private templateRef: TemplateRef<any>, private universal: UniversalService) {\n this.context = new ResourceIfContext();\n }\n\n private renderView(): void {\n this.context = new ResourceIfContext();\n this.context.resource = this.resource;\n this.viewContainer.clear();\n if (this.universal.isBrowser && this.resource) {\n FileUtils.readDataFromUrl(this.http, this.resource).then(url => {\n this.context.url = url;\n this.viewContainer.createEmbeddedView(this.templateRef, this.context);\n }, console.log);\n }\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, OnDestroy, OnInit} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {ITimer} from \"../common-types\";\nimport {TimerUtils} from \"../utils/timer.utils\";\nimport {EventsService} from \"../services/events.service\";\n\n@Directive({\n selector: \"[sticky]\"\n})\nexport class StickyDirective implements OnInit, OnDestroy {\n\n @HostBinding(\"class.sticky\") isSticky: boolean;\n @HostBinding(\"class.sticky-update\") isUpdating: boolean;\n parentElement: HTMLElement;\n\n private updateTimer: ITimer;\n private eventForwarded: Subscription;\n\n constructor(private cdr: ChangeDetectorRef, private events: EventsService, private element: ElementRef) {\n this.parentElement = this.element.nativeElement.parentElement;\n this.updateTimer = TimerUtils.createTimeout(() => {\n this.isUpdating = false;\n this.cdr.detectChanges();\n this.events.updateSticky(this.isSticky);\n }, 10);\n }\n\n ngOnInit(): void {\n this.eventForwarded = this.events.eventForwarded.subscribe((e: Event) => {\n if (e && e.type === \"scroll\") this.updateSticky();\n });\n }\n\n ngOnDestroy(): void {\n this.eventForwarded.unsubscribe();\n }\n\n @HostListener(\"window:resize\")\n @HostListener(\"window:scroll\")\n updateSticky(): void {\n const distanceToTop = this.parentElement.getBoundingClientRect().top;\n this.isSticky = distanceToTop < 1;\n this.isUpdating = true;\n this.cdr.detectChanges();\n this.updateTimer.run();\n }\n}\n","import {Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {EventsService} from \"../services/events.service\";\n\n@Directive({\n selector: \"[stickyClass]\"\n})\nexport class StickyClassDirective implements OnInit, OnDestroy {\n\n @Input() stickyClass: string;\n\n private stickyUpdated: Subscription;\n\n constructor(private events: EventsService, private element: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n this.stickyUpdated = this.events.stickyUpdated.subscribe(() => {\n if (this.events.isSticky) {\n this.renderer.addClass(this.element.nativeElement, this.stickyClass || \"sticky-sibling\");\n return;\n }\n this.renderer.removeClass(this.element.nativeElement, this.stickyClass || \"sticky-sibling\");\n });\n }\n\n ngOnDestroy(): void {\n this.stickyUpdated.unsubscribe();\n }\n}\n","import {Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges, ViewContainerRef} from \"@angular/core\";\nimport {UnorderedListStyle, UnorderedListTemplates, UnorderedListTemplate} from \"../common-types\";\nimport {ObjectUtils} from \"../utils/object.utils\";\nimport {StringUtils} from \"../utils/string.utils\";\n\n@Directive({\n selector: \"[unorderedListItem]\"\n})\nexport class UnorderedListItemDirective implements OnChanges {\n\n @Input(\"unorderedListItem\") item: any;\n @Input() type: string;\n @Input() data: any;\n @Input() keyPrefix: string;\n @Input() listStyle: UnorderedListStyle;\n @Input() path: string;\n @Input() level: number;\n @Input() templates: UnorderedListTemplate[];\n @Input() defaultTemplates: UnorderedListTemplates;\n\n isArray: boolean;\n isObject: boolean;\n valueIsArray: boolean;\n valueIsObject: boolean;\n valueType: string;\n\n get elem(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private viewContainer: ViewContainerRef) {\n\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.templates || !this.defaultTemplates || !this.item) return;\n const promise = this.item.value instanceof Promise ? this.item.value : Promise.resolve(this.item.value);\n promise.then(value => {\n this.item.value = value;\n this.path = ObjectUtils.isNullOrUndefined(this.path) ? \"\" : this.path.toString();\n this.isArray = ObjectUtils.isArray(this.data);\n this.isObject = ObjectUtils.isObject(this.data);\n this.valueIsArray = ObjectUtils.isArray(this.item.value);\n this.valueIsObject = ObjectUtils.isObject(this.item.value);\n this.valueType = ObjectUtils.getType(this.item.value);\n const context: any = this;\n const template = this\n .templates\n .find(t => t.type == this.type && ObjectUtils.evaluate(t.selector, context))?.templateRef || this.defaultTemplates[this.type];\n // Set view\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView(template, context);\n // Set classes\n if (this.type !== \"item\") return;\n this.item.classList = [];\n this.isClass(\"is-array\", this.valueIsArray);\n this.isClass(\"is-object\", this.valueIsObject);\n this.isClass(\"is-value\", !this.valueIsObject && !this.valueIsArray);\n this.isClass(`type-${this.valueType}`);\n this.isClass(`path-${this.path.replace(/\\./g, \"-\")}`);\n this.isClass(`key-${this.item.key}`);\n }, reason => {\n console.log(\"Can't handle promise rejection\", reason);\n });\n }\n\n private isClass(className: string, value: boolean = true): void {\n if (!value) return;\n this.item.classList.push(className);\n }\n}\n","import {Directive, Input, TemplateRef} from \"@angular/core\";\nimport {UnorderedListTemplate} from \"../common-types\";\n\n@Directive({\n selector: \"ng-template[type][selector]\"\n})\n\nexport class UnorderedListTemplateDirective implements UnorderedListTemplate {\n\n @Input() type: string;\n @Input() selector: string;\n\n constructor(readonly templateRef: TemplateRef<any>) {\n\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges, TemplateRef, ViewChild\n} from \"@angular/core\";\nimport {UnorderedListStyle, UnorderedListTemplates, UnorderedListTemplate} from \"../../common-types\";\nimport {ObjectUtils} from \"../../utils/object.utils\";\nimport {UnorderedListTemplateDirective} from \"../../directives/unordered-list-template.directive\";\n\n@Component({\n selector: \"unordered-list\",\n templateUrl: \"./unordered-list.component.html\"\n})\nexport class UnorderedListComponent implements OnChanges, AfterContentInit, AfterViewInit {\n\n @Input() data: any;\n @Input() keyPrefix: string;\n @Input() listStyle: UnorderedListStyle;\n @Input() path: string;\n @Input() level: number;\n @Input() templates: UnorderedListTemplate[];\n\n isArray: boolean;\n isObject: boolean;\n defaultTemplates: UnorderedListTemplates;\n\n @ContentChildren(UnorderedListTemplateDirective)\n private templateDirectives: QueryList<UnorderedListTemplateDirective>;\n\n @ViewChild(\"defaultKeyTemplate\")\n private defaultKeyTemplate: TemplateRef<any>;\n @ViewChild(\"defaultValueTemplate\")\n private defaultValueTemplate: TemplateRef<any>;\n @ViewChild(\"defaultItemTemplate\")\n private defaultItemTemplate: TemplateRef<any>;\n\n constructor(private cdr: ChangeDetectorRef) {\n this.keyPrefix = \"\";\n this.listStyle = \"table\";\n this.path = \"\";\n this.level = 0;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.isArray = ObjectUtils.isArray(this.data);\n this.isObject = ObjectUtils.isObject(this.data);\n }\n\n ngAfterContentInit(): void {\n const templates = this.templateDirectives.toArray();\n this.templates = this.templates ? this.templates.concat(templates) : templates;\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this.defaultTemplates = {\n key: this.defaultKeyTemplate,\n value: this.defaultValueTemplate,\n item: this.defaultItemTemplate\n };\n this.cdr.detectChanges();\n }\n}\n","<ng-template let-keyPrefix=\"keyPrefix\" let-key=\"item.key\" let-isArray=\"isArray\" #defaultKeyTemplate>\n {{ (keyPrefix ? keyPrefix + key : key) | translate }}:\n</ng-template>\n<ng-template let-keyPrefix=\"keyPrefix\" let-listStyle=\"listStyle\" let-val=\"item.value\" let-path=\"path\"\n let-templates=\"templates\" let-isObject=\"valueIsObject\" let-isArray=\"valueIsArray\" #defaultValueTemplate>\n <ng-template #value>\n <span [innerHTML]=\"val\"></span>\n </ng-template>\n <unordered-list [data]=\"val\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path\"\n [level]=\"level + 1\"\n [templates]=\"templates\"\n *ngIf=\"(isObject || isArray); else value\"></unordered-list>\n</ng-template>\n<ng-template let-item=\"item\" let-data=\"data\" let-keyPrefix=\"keyPrefix\" let-listStyle=\"listStyle\" let-path=\"path\" let-level=\"level\" let-templates=\"templates\" #defaultItemTemplate>\n <ng-template #itemKey>\n <ng-container [unorderedListItem]=\"item\"\n type=\"key\"\n [data]=\"data\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path\"\n [level]=\"level\"\n [templates]=\"templates\"\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\n </ng-template>\n <ng-template #itemValue>\n <ng-container [unorderedListItem]=\"item\"\n type=\"value\"\n [data]=\"data\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path\"\n [level]=\"level\"\n [templates]=\"templates\"\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\n </ng-template>\n <ng-container *ngIf=\"!isArray\">\n <th *ngIf=\"listStyle == 'table'; else itemKey\">\n <ng-container [ngTemplateOutlet]=\"itemKey\"></ng-container>\n </th>\n </ng-container>\n <td *ngIf=\"listStyle == 'table'; else itemValue\">\n <ng-container [ngTemplateOutlet]=\"itemValue\"></ng-container>\n </td>\n</ng-template>\n<ng-template #value>\n <span [innerHTML]=\"data\"></span>\n</ng-template>\n<ng-container *ngIf=\"(isObject || isArray); else value\" [ngSwitch]=\"listStyle\">\n <ul [ngClass]=\"'level-' + level\" *ngSwitchCase=\"'list'\">\n <li *ngFor=\"let item of data | entries\" [ngClass]=\"item.classList\">\n <ng-container [unorderedListItem]=\"item\"\n type=\"item\"\n [data]=\"data\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path ? path + '.' + item.key : item.key\"\n [level]=\"level\"\n [templates]=\"templates\"\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\n </li>\n </ul>\n <table [ngClass]=\"'level-' + level\" *ngSwitchDefault>\n <tr *ngFor=\"let item of data | entries\" [ngClass]=\"item.classList\">\n <ng-container [unorderedListItem]=\"item\"\n type=\"item\"\n [data]=\"data\"\n [keyPrefix]=\"keyPrefix\"\n [listStyle]=\"listStyle\"\n [path]=\"path ? path + '.' + item.key : item.key\"\n [level]=\"level\"\n [templates]=\"templates\"\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\n </tr>\n </table>\n</ng-container>\n","import {AfterViewInit, Component, Input, OnChanges, ViewChild, ViewEncapsulation} from \"@angular/core\";\nimport {Placement} from \"@floating-ui/utils\";\nimport {Alignment, AutoPlacementOptions} from \"@floating-ui/dom\";\nimport {DropdownContentDirective} from \"../../directives/dropdown-content.directive\";\nimport {DropdownAttachTo} from \"../../common-types\";\n\n@Component({\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n selector: \"dropdown-box\",\n styleUrls: [\"./dropdown-box.component.scss\"],\n templateUrl: \"./dropdown-box.component.html\",\n})\nexport class DropdownBoxComponent implements AfterViewInit, OnChanges {\n\n /**\n * Determines if the dropdown should be closed even if we click inside it\n */\n @Input() closeInside: boolean;\n\n /**\n * Determines where the floating element needs to be placed\n */\n @Input() attachTo: DropdownAttachTo;\n\n /**\n * Where to place the floating element relative to the reference element.\n */\n @Input() placement: Placement;\n\n /**\n * The axis that runs along the alignment of the floating element. Determines\n * whether to check for most space along this axis.\n * @default false\n */\n @Input() crossAxis?: boolean;\n\n /**\n * Choose placements with a particular alignment.\n * @default undefined\n */\n @Input() alignment?: Alignment | null;\n\n /**\n * Whether to choose placements with the opposite alignment if the preferred\n * alignment does not fit.\n * @default true\n */\n @Input() autoAlignment?: boolean;\n\n /**\n * Which placements are allowed to be chosen. Placements must be within the\n * `alignment` option if explicitly set.\n * @default allPlacements (variable)\n */\n @Input() allowedPlacements?: Array<Placement>;\n\n /**\n * Adds a class to the main div element and also to the content\n * ('drop' by default which translates to 'drop-content-wrapper' in case of content)\n */\n @Input() componentClass: string;\n\n autoPlacement: AutoPlacementOptions;\n\n @ViewChild(DropdownContentDirective)\n content: DropdownContentDirective;\n\n constructor() {\n this.closeInside = true;\n this.attachTo = \"root\";\n this.placement = \"bottom\";\n this.crossAxis = false;\n this.autoAlignment = true;\n this.allowedPlacements = [\"top\", \"bottom\"];\n this.componentClass = \"drop\";\n this.makeAutoPlacementOpts();\n }\n\n protected makeAutoPlacementOpts() {\n this.autoPlacement = {\n crossAxis: this.crossAxis,\n alignment: this.alignment,\n autoAlignment: this.autoAlignment,\n allowedPlacements: this.allowedPlacements,\n };\n }\n\n ngAfterViewInit() {\n this.content.initialize();\n }\n\n ngOnChanges() {\n this.makeAutoPlacementOpts();\n }\n}\n","<div dd class=\"dropdown-box\"\n [ngClass]=\"componentClass\"\n [closeInside]=\"closeInside\"\n [attachTo]=\"attachTo\"\n [placement]=\"placement\"\n [autoPlacement]=\"autoPlacement\">\n <div class=\"dropdown-box-toggle\" dropdownToggle>\n <a class=\"dropdown-box-toggle-link\">\n <ng-content select=\"[toggle-content]\"></ng-content>\n </a>\n </div>\n <div class=\"dropdown-box-content\" [ngClass]=\"componentClass + '-content-wrapper'\" *dropdownContent>\n <ng-content></ng-content>\n </div>\n</div>\n","import {Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation} from \"@angular/core\";\nimport {Subscription} from \"rxjs\";\nimport {ObjectUtils} from \"../../utils/object.utils\";\nimport {StateService} from \"../../services/state.service\";\nimport {PaginationDirective} from \"../../directives/pagination.directive\";\n\n@Component({\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n selector: \"pagination-menu\",\n templateUrl: \"./pagination-menu.component.html\",\n styleUrls: [\"./pagination-menu.component.scss\"],\n})\nexport class PaginationMenuComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() maxSize: number;\n @Input() urlParam: string;\n @Input() directionLinks: boolean;\n @Input() boundaryLinks: boolean;\n\n pages: number[];\n\n get hasPrev(): boolean {\n return this.pagination.page > 1;\n }\n\n get hasNext(): boolean {\n return this.pagination.page < this.pagination.maxPage\n }\n\n private onRefresh: Subscription;\n\n constructor(public state: StateService, public pagination: PaginationDirective) {\n this.maxSize = 5;\n this.directionLinks = true;\n this.boundaryLinks = true;\n }\n\n ngOnInit(): void {\n this.onRefresh = this.pagination.onRefresh.subscribe(() => this.setPages());\n }\n\n ngOnDestroy(): void {\n if (!this.onRefresh) return;\n this.onRefresh.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.maxSize = isNaN(this.maxSize) || this.maxSize <= 0 ? 5 : this.maxSize;\n this.directionLinks = ObjectUtils.isBoolean(this.directionLinks) ? this.directionLinks : true;\n this.boundaryLinks = ObjectUtils.isBoolean(this.boundaryLinks) ? this.boundaryLinks : true;\n this.setPages();\n }\n\n paginate(page: number): void {\n if (this.pagination.page == page || this.pagination.maxPage < page || page < 1) return;\n if (!this.urlParam) {\n this.pagination.paginate(page);\n return;\n }\n const params = Object.assign({}, this.state.params);\n params[this.urlParam] = page.toString();\n const path = StateService.toPath(this.state.route, params);\n this.state.navigateByUrl(path);\n }\n\n protected setPages(): number {\n if (!this.pagination) return;\n const totalPages = this.pagination.maxPage;\n let startPage = Math.max(this.pagination.page - Math.floor(this.maxSize / 2), 1);\n let endPage = startPage + this.maxSize - 1;\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = Math.max(endPage - this.maxSize + 1, 1);\n }\n const pages: number[] = [];\n for (let num = startPage; num <= endPage; num++) {\n pages.push(num);\n }\n this.pages = pages;\n }\n}\n","<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link boundary-link previous\" (click)=\"paginate(1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"directionLinks\">\n <a class=\"page-link direction-link previous\" (click)=\"paginate(pagination.page - 1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{active: pagination.page == page}\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" [ngClass]=\"{active: pagination.page == page}\" (click)=\"paginate(page)\">{{ page }}</a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"directionLinks\">\n <a class=\"page-link direction-link\" (click)=\"paginate(pagination.page + 1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link boundary-link\" (click)=\"paginate(pagination.maxPage)\"></a>\n </li>\n </ul>\n</div>\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from \"@angular/core\";\n\nimport {\n IPaginationData,\n ITableColumns,\n ITableDataQuery,\n ITableTemplates,\n PaginationItemContext,\n TableColumns,\n TableDataLoader\n} from \"../../common-types\";\nimport {ObjectUtils} from \"../../utils/object.utils\";\nimport {UniqueUtils} from \"../../utils/unique.utils\";\n\nimport {DynamicTableTemplateDirective} from \"../../directives/dynamic-table-template.directive\";\nimport {PaginationDirective} from \"../../directives/pagination.directive\";\nimport {DropdownDirective} from \"../../directives/dropdown.directive\";\nimport {MathUtils} from \"../../utils/math.utils\";\n\n@Component({\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n selector: \"dynamic-table\",\n styleUrls: [\"./dynamic-table.component.scss\"],\n templateUrl: \"./dynamic-table.component.html\",\n})\nexport class DynamicTableComponent implements AfterContentInit, AfterViewInit, OnChanges {\n\n @Input() dataLoader: TableDataLoader;\n @Input() data: any[];\n @Input() selected: any;\n @Input() page: number;\n @Input() urlParam: string;\n @Input() parallelData: any[];\n @Input() columns: TableColumns;\n\n /**\n * Parameter for displaying a simple filter search box\n */\n @Input() showFilter: boolean;\n\n /**\n * Parameter for specifying a label for filter\n */\n @Input() filterLabel: string;\n\n /**\n * Parameter for specifying a placeholder for filter\n */\n @Input() placeholder: string;\n\n /**\n * Parameter for displaying an item per page selector dropdown with the specified numbers\n */\n @Input() showItems: number[];\n\n /**\n * Parameter for setting how many items should be displayed by default\n */\n @Input() itemsPerPage: number;\n @Input() updateTime: number;\n @Input() filterTime: number;\n @Input() maxPages: number;\n @Input() directionLinks: boolean;\n @Input() boundaryLinks: boolean;\n @Input() orderBy: string;\n @Input() orderDescending: boolean;\n @Input() testId: string;\n @Input() titlePrefix: string;\n\n tableId: string;\n templates: ITableTemplates;\n filter: string;\n query: ITableDataQuery;\n hasQuery: boolean;\n realColumns: ITableColumns;\n cols: string[];\n\n get items(): any[] {\n return !this.pagination ? [] : this.pagination.items;\n }\n\n @ContentChild(\"rowTemplate\", {static: true})\n rowTemplate: TemplateRef<any>;\n\n @ContentChild(\"wrapperTemplate\", {static: true})\n wrapperTemplate: TemplateRef<any>;\n\n @ViewChild(\"columnsTemplate\", {static: true})\n columnsTemplate: TemplateRef<any>;\n\n @ViewChild(\"defaultRowTemplate\", {static: true})\n defaultRowTemplate: TemplateRef<any>;\n\n @ViewChild(\"defaultWrapperTemplate\", {static: true})\n defaultWrapperTemplate: TemplateRef<any>;\n\n @ViewChild(\"pagination\")\n protected pagination: PaginationDirective;\n\n @ContentChildren(DynamicTableTemplateDirective)\n protected templateDirectives: QueryList<DynamicTableTemplateDirective>;\n\n protected static compare(orderBy: string, a: PaginationItemContext, b: PaginationItemContext): number {\n a = a.item ? a.item[orderBy] : null;\n b = b.item ? b.item[orderBy] : null;\n return ObjectUtils.compare(a, b);\n }\n\n constructor(protected element: ElementRef<HTMLElement>) {\n this.dataLoader = this.loadLocalData;\n this.placeholder = \"\";\n this.tableId = UniqueUtils.uuid();\n this.templates = {};\n this.filter = \"\";\n this.query = {};\n this.hasQuery = false;\n this.testId = \"table\";\n this.titlePrefix = \"label\";\n this.realColumns = {};\n }\n\n setProperty(name: string, value: any): void {\n const elem = this.element.nativeElement;\n if (!elem) return;\n elem.style.setProperty(`--${name}`, value);\n }\n\n ngAfterContentInit(): void {\n this.templates = this.templateDirectives.reduce((result, directive) => {\n if (ObjectUtils.isArray(directive.column)) {\n directive.column.forEach(column => {\n result[column] = directive;\n });\n return result;\n }\n if (!ObjectUtils.isString(directive.column) || directive.column.length == 0) return result;\n result[directive.column] = directive;\n return result;\n }, {});\n }\n\n ngAfterViewInit(): void {\n this.rowTemplate = this.rowTemplate || this.defaultRowTemplate;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const orderBy = this.orderBy;\n if (changes.columns) {\n const columns = changes.columns.currentValue || [];\n this.realColumns = ObjectUtils.isArray(columns) ? columns.reduce((result, column) => {\n if (!ObjectUtils.isString(column) || column.length == 0)\n return result;\n result[column] = {title: `${this.titlePrefix}.${column}`, sort: column};\n return result;\n }, {}) : Object.keys(columns).reduce((result, key) => {\n const value = columns[key];\n result[key] = !value || ObjectUtils.isString(value)\n ? {title: `${this.titlePrefix}.${key}`, sort: value}\n : value;\n return result;\n }, {} as ITableColumns);\n this.cols = Object.keys(this.realColumns);\n this.cols.forEach(col => {\n const column = this.realColumns[col];\n column.filterType = column.filterType || \"text\";\n });\n const sortable = this.cols.filter(c => this.realColumns[c].sort);\n const query = this.query || {};\n this.orderBy = sortable.includes(this.orderBy) ? this.orderBy : sortable[0] || null;\n this.query = this.cols.reduce((res, col) => {\n const value = query[col];\n if (ObjectUtils.isNullOrUndefined(value)) return res;\n res[col] = value;\n return res;\n }, {});\n this.setProperty(\"cell-width\", MathUtils.round(100 / this.cols.length, 4) + \"%\");\n }\n this.hasQuery = this.cols.some(col => this.realColumns[col].filter);\n if (changes.orderBy && this.realColumns && this.cols) {\n const sortable = this.cols.filter(c => this.realColumns[c].sort);\n this.orderBy = sortable.includes(this.orderBy) ? this.orderBy : sortable[0] || null;\n }\n if (!changes.data && !changes.parallelData && !changes.dataLoader && !changes.itemsPerPage && !changes.orderDescending && orderBy === this.orderBy) return;\n this.refresh();\n }\n\n refresh(time?: number): void {\n if (!this.pagination) return;\n this.pagination.refresh(time);\n }\n\n setFilter(filter: string) {\n this.filter = filter;\n this.refresh(this.filterTime ?? 300);\n }\n\n setSorting(column: string, toggle?: DropdownDirective) {\n if (toggle) {\n return;\n }\n this.orderDescending = column == this.orderBy && !this.orderDescending;\n this.orderBy = column;\n this.refresh();\n }\n\n setQueryValue(c: string, value: string | boolean) {\n const col = this.realColumns[c];\n if (!col?.filter) return;\n switch (col.filterType) {\n case \"enum\":\n const set = new Set((this.query[c] || []) as string[]);\n const val = `${value}`;\n if (set.has(val)) {\n set.delete(val);\n if (set.size === 0) {\n delete this.query[c];\n break;\n }\n } else {\n set.add(val);\n }\n this.query[c] = Array.from(set);\n break;\n case \"checkbox\":\n if (this.query[c]) {\n delete this.query[c];\n break;\n }\n this.query[c] = true;\n break;\n default:\n if (!value) {\n delete this.query[c];\n break;\n }\n this.query[c] = value;\n break;\n }\n this.refresh(this.filterTime ?? 300);\n }\n\n setItemsPerPage(count: number) {\n this.itemsPerPage = count;\n this.refresh();\n }\n\n loadData = (page: number, itemsPerPage: number): Promise<IPaginationData> => {\n const orderBy = this.realColumns[this.orderBy]?.sort;\n return this.dataLoader(page, itemsPerPage, orderBy, this.orderDescending, this.filter, this.query);\n };\n\n protected loadLocalData(page: number, rowsPerPage: number, orderBy: string, orderDescending: boolean, filter: string): Promise<IPaginationData> {\n if (!this.data) {\n return Promise.resolve({\n total: 0,\n items: []\n });\n }\n const compare: (a: any, b: any) => number = orderDescending\n ? (a, b) => DynamicTableComponent.compare(orderBy, b, a)\n : (a, b) => DynamicTableComponent.compare(orderBy, a, b);\n const from = (page - 1) * rowsPerPage;\n const dataLength = this.data.length;\n const length = Math.min(rowsPerPage, dataLength - from);\n const parallelData = this.parallelData || [];\n let data = this.data.map((item, ix) => {\n return new PaginationItemContext(item, parallelData[ix] || {}, dataLength, ix, ix);\n });\n if (ObjectUtils.isString(filter) && filter.length > 0) {\n const filterRx = new RegExp(filter, \"gi\");\n data = data.filter(c => c.filter(filterRx));\n }\n const items = orderBy ? data.sort(compare).splice(from, length) : data.splice(from, length);\n items.forEach((context, ix) => {\n context.index = from + ix;\n });\n return Promise.resolve({\n total: dataLength,\n items: items\n });\n }\n}\n","<ng-template #columnTemplate let-context let-column=\"column\" let-template=\"template\">\n <ng-template #defaultTemplate let-column=\"column\" let-item=\"item\">\n <span>{{ item[column] == undefined || item[column] == null ? '-' : item[column] }}</span>\n </ng-template>\n <ng-template #pureTemplate>\n <ng-container [ngxTemplateOutlet]=\"template.ref\" [context]=\"context\"></ng-container>\n </ng-template>\n <td [ngClass]=\"'column-' + column\"\n [attr.data-testid]=\"testId + '-' + column + '-' + context.rowIndex\"\n *ngIf=\"!template || !template.pure; else pureTemplate\">\n <ng-container [ngxTemplateOutlet]=\"!template ? defaultTemplate : template.ref\"\n [context]=\"context\"></ng-container>\n </td>\n</ng-template>\n\n<ng-template #columnsTemplate let-context>\n <ng-container *ngFor=\"let column of cols\"\n [ngxTemplateOutlet]=\"columnTemplate\"\n [context]=\"context\"\n [additionalContext]=\"{\n template: templates[column],\n column: column\n }\"></ng-container>\n</ng-template>\n\n<ng-template #defaultRowTemplate let-context>\n <tr draggable=\"true\"\n #elem\n [ngClass]=\"{active: selected === context.item}\">\n <ng-container [ngxTemplateOutlet]=\"columnsTemplate\" [context]=\"context\"></ng-container>\n </tr>\n</ng-template>\n\n<ng-template #headerTemplate let-column=\"column\" let-toggle=\"toggle\">\n <ng-template #defaultCol>\n <span>{{ realColumns[column].title | translate }}</span>\n </ng-template>\n <ng-template #emptyCol>\n <span>-</span>\n </ng-template>\n <ng-container *ngIf=\"realColumns[column]; else emptyCol\">\n <a *ngIf=\"realColumns[column].sort; else defaultCol\"\n [ngClass]=\"['sort', orderBy !== column ? '' : (orderDescending ? 'sort-desc' : 'sort-asc')]\"\n (click)=\"setSorting(column, toggle)\">\n <span>{{ realColumns[column].title | translate }}</span>\n </a>\n </ng-container>\n</ng-template>\n\n<div class=\"dynamic-table\" #pagination=\"pagination\" [pagination]=\"loadData\" [page]=\"page\" [itemsPerPage]=\"itemsPerPage\"\n [updateTime]=\"updateTime\">\n <div class=\"table-features-row\">\n <ng-content select=\"[table-features-before]\"></ng-content>\n <div class=\"table-input-wrap table-search-filter\" *ngIf=\"showFilter\">\n <label *ngIf=\"filterLabel\" [attr.for]=\"tableId\">\n {{ filterLabel | translate }}\n </label>\n <input type=\"text\"\n class=\"search-input\"\n [attr.id]=\"tableId\"\n [attr.data-testid]=\"testId + '-filter-input'\"\n [placeholder]=\"placeholder | translate\"\n [ngModel]=\"filter\"\n (ngModelChange)=\"setFilter($event)\"/>\n </div>\n <dropdown-box componentClass=\"sort-dropdown\" #sortDd>\n <ng-container toggle-content\n [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{column: orderBy, toggle: sortDd}\"></ng-container>\n <ul>\n <ng-container *ngFor=\"let column of cols\">\n <li [ngClass]=\"'sort-column sort-' + column\" *ngIf=\"realColumns[column].sort\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{column: column}\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </dropdown-box>\n <div class=\"table-input-wrap table-items-count\" *ngIf=\"showItems\">\n <label>\n {{ 'label.items.before' | translate }}\n </label>\n <dropdown-box>\n <ng-container toggle-content>\n {{ itemsPerPage }}\n </ng-container>\n <ul>\n <ng-container *ngFor=\"let count of showItems\">\n <li [ngClass]=\"'item-count count-' + count\" (click)=\"setItemsPerPage(count)\">\n {{ count }}\n </li>\n </ng-container>\n </ul>\n </dropdown-box>\n <label>\n {{ 'label.items.after' | translate }}\n </label>\n </div>\n <ng-content select=\"[table-features-after]\"></ng-content>\n </div>\n <pagination-menu [urlParam]=\"urlParam\" [maxSize]=\"maxPages\" [directionLinks]=\"directionLinks\"\n [boundaryLinks]=\"boundaryLinks\"></pagination-menu>\n <div class=\"table-responsive\">\n <ng-template #defaultWrapperTemplate>\n <table class=\"table table-striped\">\n <thead>\n <tr>\n <th *ngFor=\"let column of cols\" [ngClass]=\"'header-column column-' + column\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{column: column}\"></ng-container>\n </th>\n </tr>\n <tr *ngIf=\"hasQuery\">\n <th *ngFor=\"let column of cols\" [ngClass]=\"['column-' + column, 'filter-column']\">\n <ng-container *ngIf=\"realColumns[column].filter\" [ngSwitch]=\"realColumns[column].filterType\">\n <ng-container *ngSwitchCase=\"'enum'\">\n <ng-template #optionItem let-option=\"option\">\n {{ (realColumns[column].enumPrefix ? realColumns[column].enumPrefix + '.' + option : option) | translate }}\n </ng-template>\n <dropdown-box componentClass=\"filter-box\"\n [ngClass]=\"'filter-box-' + column\" [closeInside]=\"false\">\n <ng-container toggle-content>\n <span class=\"toggle-placeholder\" *ngIf=\"!query[column]\">\n {{ realColumns[column].title | translate }}\n </span>\n <span [ngClass]=\"['option-' + option, column + '-option-' + option, option]\"\n *ngFor=\"let option of query[column] | values; let ix = index\">\n <ng-container *ngIf=\"ix > 0\">, </ng-container>\n <ng-container [ngTemplateOutlet]=\"optionItem\"\n [ngTemplateOutletContext]=\"{option: option}\"></ng-container>\n </span>\n </ng-container>\n <ul>\n <li [ngClass]=\"[column + '-option', 'option-' + option, option]\"\n (click)=\"setQueryValue(column, option)\"\n *ngFor=\"let option of realColumns[column].enum\">\n <a [ngClass]=\"'toggle-link-' + column\">\n <input type=\"checkbox\" [checked]=\"query[column] | includes: option\">\n <ng-container [ngTemplateOutlet]=\"optionItem\"\n [ngTemplateOutletContext]=\"{option: option}\"></ng-container>\n </a>\n </li>\n </ul>\n </dropdown-box>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <input type=\"checkbox\"\n [attr.data-testid]=\"testId + '-filter-' + column\"\n [placeholder]=\"realColumns[column].title | translate\"\n [ngModel]=\"query[column]\"\n (ngModelChange)=\"setQueryValue(column, $event)\"/>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input class=\"search-input\"\n type=\"text\"\n [attr.data-testid]=\"testId + '-filter-' + column\"\n [placeholder]=\"realColumns[column].title | translate\"\n [ngModel]=\"query[column]\"\n (ngModelChange)=\"setQueryValue(column, $event)\"/>\n </ng-container>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *paginationItem=\"let context\"\n [ngxTemplateOutlet]=\"rowTemplate\"\n [context]=\"context\"\n [additionalContext]=\"this\"></ng-container>\n </tbody>\n </table>\n </ng-template>\n\n <div class=\"table-wrapper\">\n <ng-content select=\"[table-top]\"></ng-content>\n <ng-container [ngxTemplateOutlet]=\"wrapperTemplate || defaultWrapperTemplate\"\n [context]=\"this\"></ng-container>\n <ng-content select=\"[table-bottom]\"></ng-content>\n </div>\n </div>\n <pagination-menu [urlParam]=\"urlParam\" [maxSize]=\"maxPages\" [directionLinks]=\"directionLinks\"\n [boundaryLinks]=\"boundaryLinks\"></pagination-menu>\n</div>\n","import {ErrorHandler} from \"@angular/core\";\nimport {EVENT_MANAGER_PLUGINS} from \"@angular/platform-browser\";\nimport {UrlSerializer} from \"@angular/router\";\nimport {DeviceDetectorService} from \"ngx-device-detector\";\n\nimport {IConfigService} from \"./common-types\";\n\nimport {AuthGuard} from \"./utils/auth.guard\";\nimport {AclService} from \"./services/acl.service\";\nimport {ApiService} from \"./services/api.service\";\nimport {StaticAuthService} from \"./services/auth.service\";\nimport {BaseHttpClient} from \"./services/base-http.client\";\nimport {BaseHttpService} from \"./services/base-http.service\";\nimport {ConfigService} from \"./services/config.service\";\nimport {ErrorHandlerService} from \"./services/error-handler.service\";\nimport {EventsService} from \"./services/events.service\";\nimport {FormatterService} from \"./services/formatter.service\";\nimport {GlobalTemplateService} from \"./services/global-template.service\";\nimport {IconService} from \"./services/icon.service\";\nimport {LanguageService} from \"./services/language.service\";\nimport {LocalHttpService} from \"./services/local-http.service\";\nimport {PromiseService} from \"./services/promise.service\";\nimport {OpenApiService} from \"./services/open-api.service\";\nimport {StateService} from \"./services/state.service\";\nimport {StaticLanguageService} from \"./services/static-language.service\";\nimport {StorageService} from \"./services/storage.service\";\nimport {ConsoleToasterService} from \"./services/toaster.service\";\nimport {TranslatedUrlSerializer} from \"./services/translated-url.serializer\";\nimport {UniversalService} from \"./services/universal.service\";\nimport {WasmService} from \"./services/wasm.service\";\nimport {ResizeEventPlugin} from \"./plugins/resize-event.plugin\";\nimport {ScrollEventPlugin} from \"./plugins/scroll-event.plugin\";\nimport {AsyncMethodBase} from \"./directives/async-method.base\";\nimport {AsyncMethodDirective} from \"./directives/async-method.directive\";\nimport {BackgroundDirective} from \"./directives/background.directive\";\nimport {DropdownDirective} from \"./directives/dropdown.directive\";\nimport {DropdownContentDirective} from \"./directives/dropdown-content.directive\";\nimport {DropdownToggleDirective} from \"./directives/dropdown-toggle.directive\";\nimport {DynamicTableTemplateDirective} from \"./directives/dynamic-table-template.directive\";\nimport {GlobalTemplateDirective} from \"./directives/global-template.directive\";\nimport {IconDirective} from \"./directives/icon.directive\";\nimport {NgxTemplateOutletDirective} from \"./directives/ngx-template-outlet.directive\";\nimport {PaginationDirective} from \"./directives/pagination.directive\";\nimport {PaginationItemDirective} from \"./directives/pagination-item.directive\";\nimport {ResourceIfDirective} from \"./directives/resource-if.directive\";\nimport {StickyDirective} from \"./directives/sticky.directive\";\nimport {StickyClassDirective} from \"./directives/sticky-class.directive\";\nimport {UnorderedListItemDirective} from \"./directives/unordered-list-item.directive\";\nimport {UnorderedListTemplateDirective} from \"./directives/unordered-list-template.directive\";\n\nimport {ChunkPipe} from \"./pipes/chunk.pipe\";\nimport {EntriesPipe} from \"./pipes/entries.pipe\";\nimport {ExtraItemPropertiesPipe} from \"./pipes/extra-item-properties.pipe\";\nimport {FilterPipe} from \"./pipes/filter.pipe\";\nimport {FindPipe} from \"./pipes/find.pipe\";\nimport {FormatNumberPipe} from \"./pipes/format-number.pipe\";\nimport {GetOffsetPipe} from \"./pipes/get-offset.pipe\";\nimport {GetTypePipe} from \"./pipes/get-type.pipe\";\nimport {GetValuePipe} from \"./pipes/get-value.pipe\";\nimport {GlobalTemplatePipe} from \"./pipes/global-template.pipe\";\nimport {GroupByPipe} from \"./pipes/group-by.pipe\";\nimport {IncludesPipe} from \"./pipes/includes.pipe\";\nimport {IsTypePipe} from \"./pipes/is-type.pipe\";\nimport {JoinPipe} from \"./pipes/join.pipe\";\nimport {KeysPipe} from \"./pipes/keys.pipe\";\nimport {MapPipe} from \"./pipes/map.pipe\";\nimport {MaxPipe} from \"./pipes/max.pipe\";\nimport {MinPipe} from \"./pipes/min.pipe\";\nimport {PopPipe} from \"./pipes/pop.pipe\";\nimport {ReducePipe} from \"./pipes/reduce.pipe\";\nimport {RemapPipe} from \"./pipes/remap.pipe\";\nimport {ReplacePipe} from \"./pipes/replace.pipe\";\nimport {ReversePipe} from \"./pipes/reverse.pipe\";\nimport {RoundPipe} from \"./pipes/round.pipe\";\nimport {SafeHtmlPipe} from \"./pipes/safe-html.pipe\";\nimport {ShiftPipe} from \"./pipes/shift.pipe\";\nimport {SplitPipe} from \"./pipes/split.pipe\";\nimport {TranslatePipe} from \"./pipes/translate.pipe\";\nimport {ValuesPipe} from \"./pipes/values.pipe\";\n\nimport {DropdownBoxComponent} from \"./components/dropdown-box/dropdown-box.component\";\nimport {DynamicTableComponent} from \"./components/dynamic-table/dynamic-table.component\";\nimport {PaginationMenuComponent} from \"./components/pagination-menu/pagination-menu.component\";\nimport {UnorderedListComponent} from \"./components/unordered-list/unordered-list.component\";\n\n// --- Pipes ---\nexport const pipes = [\n ChunkPipe,\n EntriesPipe,\n ExtraItemPropertiesPipe,\n FilterPipe,\n FindPipe,\n FormatNumberPipe,\n GetOffsetPipe,\n GetTypePipe,\n GetValuePipe,\n GlobalTemplatePipe,\n GroupByPipe,\n IncludesPipe,\n IsTypePipe,\n JoinPipe,\n KeysPipe,\n MapPipe,\n MaxPipe,\n MinPipe,\n PopPipe,\n ReducePipe,\n RemapPipe,\n ReplacePipe,\n ReversePipe,\n RoundPipe,\n SafeHtmlPipe,\n ShiftPipe,\n SplitPipe,\n TranslatePipe,\n ValuesPipe\n];\n\n// --- Directives ---\nexport const directives = [\n AsyncMethodBase,\n AsyncMethodDirective,\n BackgroundDirective,\n DropdownDirective,\n DropdownContentDirective,\n DropdownToggleDirective,\n DynamicTableTemplateDirective,\n GlobalTemplateDirective,\n IconDirective,\n NgxTemplateOutletDirective,\n PaginationDirective,\n PaginationItemDirective,\n ResourceIfDirective,\n StickyDirective,\n StickyClassDirective,\n UnorderedListItemDirective,\n UnorderedListTemplateDirective\n];\n\n// --- Components ---\nexport const components = [\n DropdownBoxComponent,\n DynamicTableComponent,\n PaginationMenuComponent,\n UnorderedListComponent\n];\n\nexport const providers = [\n ...pipes,\n BaseHttpClient,\n BaseHttpService,\n AuthGuard,\n AclService,\n ApiService,\n StaticAuthService,\n ConfigService,\n ErrorHandlerService,\n EventsService,\n FormatterService,\n GlobalTemplateService,\n IconService,\n LanguageService,\n LocalHttpService,\n OpenApiService,\n PromiseService,\n StateService,\n StaticLanguageService,\n StorageService,\n ConsoleToasterService,\n TranslatedUrlSerializer,\n UniversalService,\n WasmService,\n DeviceDetectorService,\n GlobalTemplateService,\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: ResizeEventPlugin,\n multi: true\n },\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: ScrollEventPlugin,\n multi: true\n },\n {\n provide: UrlSerializer,\n useExisting: TranslatedUrlSerializer\n },\n {\n provide: ErrorHandler,\n useExisting: ErrorHandlerService\n }\n\n];\n\nexport function loadConfig(config: IConfigService): any {\n return config.load;\n}\n","import {Injectable} from \"@angular/core\";\nimport {IWasi, IWasmExports, TypedArray} from \"../common-types\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class Wasi implements IWasi {\n\n protected env: {[key: string]: string};\n protected instantiated: boolean;\n protected wasi: any;\n protected wasm: IWasmExports;\n protected envStrings: string[];\n\n constructor() {\n this.env = {};\n this.instantiated = false;\n this.wasi = [\n \"emscripten_notify_memory_growth\",\n \"proc_exit\",\n \"environ_get\",\n \"environ_sizes_get\",\n \"fd_close\",\n \"fd_write\",\n \"fd_read\",\n \"fd_seek\",\n ].reduce((res, key) => {\n if (typeof this[key] === \"function\") {\n res[key] = this[key].bind(this);\n }\n return res;\n }, {});\n }\n\n instantiate(bytes: ArrayBuffer): Promise<IWasmExports> {\n if (this.instantiated) {\n throw new Error(\"WASI already instantiated\");\n }\n this.instantiated = true;\n return WebAssembly.instantiate(bytes, {\n wasi_snapshot_preview1: this.wasi,\n env: this.wasi\n }).then(module => {\n const exports = module.instance.exports as any;\n this.wasm = {\n ...exports,\n writeArrayToMemory: (array: TypedArray) => {\n const bytes = array.length * array.BYTES_PER_ELEMENT;\n const pointer = exports.malloc(bytes);\n const ctr = array.constructor as any;\n const heapArray = new ctr(this.wasm.memory.buffer, pointer, array.length);\n heapArray.set(array);\n return pointer;\n },\n readArrayFromMemory: (pointer: number, array: TypedArray) => {\n const ctr = array.constructor as any;\n const heapArray = new ctr(this.wasm.memory.buffer, pointer, array.length);\n array.set(heapArray);\n return array;\n }\n } as IWasmExports;\n this.updateMemoryViews();\n return this.wasm;\n });\n }\n\n protected updateMemoryViews(): void {\n const buffer = this.wasm.memory.buffer;\n this.wasm.HEAP8 = new Int8Array(buffer);\n this.wasm.HEAP16 = new Int16Array(buffer);\n this.wasm.HEAP32 = new Int32Array(buffer);\n this.wasm.HEAPU8 = new Uint8Array(buffer);\n this.wasm.HEAPU16 = new Uint16Array(buffer);\n this.wasm.HEAPU32 = new Uint32Array(buffer);\n this.wasm.HEAPF32 = new Float32Array(buffer);\n this.wasm.HEAPF64 = new Float64Array(buffer);\n }\n\n protected getEnvStrings(): string[] {\n if (!this.envStrings) {\n let x;\n const env = {};\n for (x in this.env) {\n if (this.env[x] === undefined) delete env[x]; else env[x] = this.env[x]\n }\n const strings = [];\n for (x in env) {\n strings.push(x + \"=\" + env[x])\n }\n this.envStrings = strings\n }\n return this.envStrings;\n }\n\n protected stringToAscii(str, buffer) {\n const HEAP8 = this.wasm.HEAP8;\n for (let i = 0; i < str.length; ++i) {\n HEAP8[buffer++ >> 0] = str.charCodeAt(i)\n }\n HEAP8[buffer >> 0] = 0\n }\n\n emscripten_notify_memory_growth(memoryIndex: number): void {\n this.updateMemoryViews();\n }\n\n proc_exit(rval: number): void {\n console.log(\"proc_exit\", rval);\n }\n\n environ_get(environ: number, environ_buf: number): number {\n if (!this.wasm.HEAP8.byteLength) {\n this.emscripten_notify_memory_growth(0);\n }\n const HEAPU32 = this.wasm.HEAPU32;\n let bufSize = 0;\n this.getEnvStrings().forEach((str: string, i: number) => {\n const ptr = environ_buf + bufSize;\n HEAPU32[environ + i * 4 >> 2] = ptr;\n this.stringToAscii(str, ptr);\n bufSize += str.length + 1\n });\n return 0\n }\n\n environ_sizes_get(penviron_count: number, penviron_buf_size: number): number {\n if (!this.wasm.HEAP8.byteLength) {\n this.emscripten_notify_memory_growth(0);\n }\n const HEAPU32 = this.wasm.HEAPU32;\n const strings = this.getEnvStrings();\n HEAPU32[penviron_count >> 2] = strings.length;\n let bufSize = 0;\n strings.forEach(function (string) {\n bufSize += string.length + 1\n });\n HEAPU32[penviron_buf_size >> 2] = bufSize;\n // WASI_ESUCCESS\n return 0\n }\n\n fd_close(fd: number): number {\n // WASI_ESUCCESS\n return 0;\n }\n\n fd_write(fd: number, iovs: number, iovs_len: number, nwritten: number): number {\n if (fd !== 1) {\n // WASI_EBADF\n return 8;\n }\n if (iovs_len !== 1) {\n // WASI_ENOSYS\n return 52;\n }\n this.wasm.HEAPU32[nwritten >> 2] = this.wasm.HEAPU32[iovs + 4 >> 2];\n // WASI_ESUCCESS\n return 0;\n }\n\n fd_read(fd: number, iovs: number, iovs_len: number, nread: number): number {\n // WASI_EINVAL\n return 28;\n }\n\n fd_seek(fd: number, offset: number, whence: number, newOffset: number): number {\n // WASI_EINVAL\n return 28;\n }\n}\n","import {\n APP_INITIALIZER, EnvironmentProviders,\n Injector,\n makeEnvironmentProviders,\n ModuleWithProviders,\n NgModule,\n Provider\n} from \"@angular/core\";\nimport {APP_BASE_HREF, CommonModule} from \"@angular/common\";\nimport {FormsModule} from \"@angular/forms\";\nimport {\n API_SERVICE,\n APP_BASE_URL,\n AUTH_SERVICE,\n CONFIG_SERVICE,\n ICON_SERVICE,\n IModuleConfig,\n LANGUAGE_SERVICE,\n PROMISE_SERVICE,\n RESIZE_DELAY,\n RESIZE_STRATEGY,\n ROOT_ELEMENT,\n TOASTER_SERVICE,\n WASI_IMPLEMENTATION\n} from \"./common-types\";\nimport {components, directives, loadConfig, pipes, providers} from \"./ngx-utils.imports\";\nimport {ApiService} from \"./services/api.service\";\nimport {StaticAuthService} from \"./services/auth.service\";\nimport {IconService} from \"./services/icon.service\";\nimport {StaticLanguageService} from \"./services/static-language.service\";\nimport {ConsoleToasterService} from \"./services/toaster.service\";\nimport {PromiseService} from \"./services/promise.service\";\nimport {ConfigService} from \"./services/config.service\";\nimport {GlobalTemplateService} from \"./services/global-template.service\";\nimport {Wasi} from \"./utils/wasi\";\n\nexport function loadBaseUrl(): string {\n if (typeof (document) === \"undefined\" || typeof (location) === \"undefined\") return \"/\";\n const scripts = Array.from(document.scripts);\n const currentScript = (document.currentScript as HTMLScriptElement);\n let currentUrl = new URL(currentScript?.src ?? \"http://localhost:4200/\");\n if (!currentScript) {\n try {\n // noinspection ExceptionCaughtLocallyJS\n throw new Error();\n } catch (e) {\n const qualifiedUrl = location.protocol + \"//\" + location.host;\n const stack = (e.stack || \"\") as string;\n const srcUrl = (\n stack.match(new RegExp(qualifiedUrl + \".*?\\\\.js\", \"g\")) ||\n stack.match(/http([A-Z0-9:\\/\\-.]+)\\.js/gi) ||\n [`${qualifiedUrl}/main.js`]\n ).shift();\n currentUrl = new URL(srcUrl ?? \"\");\n }\n }\n const mainScript = scripts.find(s => {\n if (!s.src) return false;\n const sUrl = new URL(s.src);\n return currentUrl.host === sUrl.host && sUrl.pathname.includes(\"main\");\n });\n const scriptUrl = !mainScript ? currentUrl : new URL(mainScript.src);\n const path = scriptUrl.pathname?.split(\"/\") ?? [];\n path.pop();\n return `${scriptUrl.protocol}//${scriptUrl.host}${path.join(\"/\")}/`;\n}\n\nexport function loadBaseHref(baseUrl: string): string {\n try {\n return new URL(baseUrl).pathname;\n } catch (e) {\n console.log(e);\n return \"/\";\n }\n}\n\nexport function getRootElement(): HTMLElement {\n return typeof document !== \"undefined\" ? document.body : null;\n}\n\n@NgModule({\n declarations: [\n ...pipes,\n ...directives,\n ...components\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n ...pipes,\n ...directives,\n ...components,\n FormsModule\n ],\n providers: pipes\n})\nexport class NgxUtilsModule {\n\n private static getProviders(config?: IModuleConfig): Provider[] {\n return [\n ...providers,\n {\n provide: API_SERVICE,\n useExisting: (!config ? null : config.apiService) || ApiService\n },\n {\n provide: AUTH_SERVICE,\n useExisting: (!config ? null : config.authService) || StaticAuthService\n },\n {\n provide: ICON_SERVICE,\n useExisting: (!config ? null : config.iconService) || IconService\n },\n {\n provide: LANGUAGE_SERVICE,\n useExisting: (!config ? null : config.languageService) || StaticLanguageService\n },\n {\n provide: TOASTER_SERVICE,\n useExisting: (!config ? null : config.toasterService) || ConsoleToasterService\n },\n {\n provide: PROMISE_SERVICE,\n useExisting: (!config ? null : config.promiseService) || PromiseService\n },\n {\n provide: CONFIG_SERVICE,\n useExisting: (!config ? null : config.configService) || ConfigService\n },\n {\n provide: WASI_IMPLEMENTATION,\n useExisting: (!config ? null : config.wasiImplementation) || Wasi\n },\n {\n provide: APP_BASE_URL,\n useFactory: (!config ? null : config.baseUrl) || loadBaseUrl,\n deps: [Injector]\n },\n {\n provide: ROOT_ELEMENT,\n useFactory: getRootElement\n },\n {\n provide: RESIZE_DELAY,\n useValue: (!config ? null : config.resizeDelay) ?? 50,\n },\n {\n provide: RESIZE_STRATEGY,\n useValue: (!config ? null : config.resizeStrategy) ?? \"observer\",\n },\n {\n provide: APP_INITIALIZER,\n useFactory: (!config ? null : config.initializeApp) || loadConfig,\n multi: true,\n deps: [(!config ? null : config.initializeApp) ? Injector : CONFIG_SERVICE]\n },\n {\n provide: APP_BASE_HREF,\n useFactory: loadBaseHref,\n deps: [APP_BASE_URL]\n }\n ];\n }\n\n static forRoot(config?: IModuleConfig): ModuleWithProviders<NgxUtilsModule> {\n return {\n ngModule: NgxUtilsModule,\n providers: NgxUtilsModule.getProviders(config)\n };\n }\n\n static provideUtils(config?: IModuleConfig): EnvironmentProviders {\n return makeEnvironmentProviders(NgxUtilsModule.getProviders(config));\n }\n\n constructor() {\n\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.UniversalService","i1","emptyRemove","EventManagerPlugin","defaultFilter","i1.FormatterService","i1.GlobalTemplateService","i2.UniversalService","i1.DropdownDirective","i1.PaginationDirective","i1.EventsService","i3.EntriesPipe","i4.TranslatePipe","i2.DropdownDirective","i3.DropdownContentDirective","i4.DropdownToggleDirective","i1.StateService","i2.PaginationDirective","i3","i2","i3.NgxTemplateOutletDirective","i4.PaginationDirective","i5.PaginationItemDirective","i6.DropdownBoxComponent","i7.PaginationMenuComponent","i8.IncludesPipe","i9.TranslatePipe","i10.ValuesPipe","exports"],"mappings":"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AG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9E,IAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;CAAI;AAE9E,MAAM,SAAS,GAAG;AACd,IAAA,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,IAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC9D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CAAG;MAElD,WAAW,CAAA;AAEpB,IAAA,OAAO,gBAAgB,CAAC,MAAyB,EAAE,GAA6B,EAAE,gBAAyE,EAAA;AACvJ,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACnE,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9C,YAAA,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnF,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG;YACxD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AAC9C,YAAA,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACnB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACvB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACvB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B;QACA,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC;IAEA,OAAO,YAAY,CAAC,MAAyB,EAAE,GAA6B,EAAE,SAAA,GAAoB,EAAE,EAAE,gBAAyF,EAAA;AAC3L,QAAA,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AACzC,QAAA,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,IAAI,CAAC,KAAkB,EAAE,KAAc,KAAiB;YAClI,OAAO,KAAK,GAAG,GAAG,GAAG,GAAG;AAC5B,QAAA,CAAC,CAAC;AACF,QAAA,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,KAAI;YAC3D,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,CAAC;AACpE,QAAA,CAAC,CAAC;IACN;IAEA,OAAO,SAAS,CAAC,MAAyB,EAAE,GAA6B,EAAE,SAAiB,EAAE,EAAA;AAC1F,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE;QACjC,MAAM,IAAI,CAAC;QAEX,MAAM,KAAK,GAAG,CAAC;QACf,MAAM,KAAK,GAAG,CAAC;AACf,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC1B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;QAE5B,IAAI,SAAS,GAAG,IAAI;AAEpB,QAAA,IAAI;AACA,YAAA,IAAI;AACA,gBAAA,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;YAC7D;YAAE,OAAO,CAAC,EAAE;;;;AAKR,gBAAA,IAAI;oBACA,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,sBAAsB,CAAC;AAC1E,oBAAA,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;gBAC7D;gBAAE,OAAO,CAAC,EAAE;oBACR,KAAK,CAAC,2BAA2B,CAAC;AAClC,oBAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,CAAC;gBAC9D;YACJ;QACJ;QAAE,OAAO,CAAC,EAAE;YACR,KAAK,CAAC,qBAAqB,CAAC;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,CAAC;QACxD;AAEA,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI;QAE7B,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAClD,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAC1C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EACtC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG;AAEvB,QAAA,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC;AAC7B,QAAA,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC;QAC9B,MAAM,SAAS,GAAG,WAAW,IAAI,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC;AAErD,QAAA,MAAM,UAAU,GAAG,IAAI,SAAS,EAAE;QAClC,IAAI,QAAQ,GAAG,IAAI;QACnB,IAAI,KAAK,GAAG,UAAU;QAEtB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YACtB,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,WAAW,EAAE;gBAClB,QAAQ,GAAG,KAAK;YACpB;QACJ;AACA,QAAA,KAAK,CAAC,IAAI,GAAG,UAAU;QACvB,IAAI,OAAO,GAAG,IAAI;QAClB,IAAI,QAAQ,GAAG,IAAI;AAEnB,QAAA,EAAE,GAAG,EAAE,GAAG,CAAC;AAEX,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;AACjC,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;QAEjC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzB,YAAA,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC;YAE7E,SAAS,GAAG,WAAW,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3C,YAAA,SAAS,GAAG,WAAW,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/C,YAAA,SAAS,GAAG,WAAW,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/C,YAAA,SAAS,GAAG,WAAW,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAE/C,YAAA,KAAK,IAAI,SAAS,GAAG,EAAE;AACvB,YAAA,KAAK,IAAI,SAAS,GAAG,EAAE;AACvB,YAAA,KAAK,IAAI,SAAS,GAAG,EAAE;AACvB,YAAA,KAAK,IAAI,SAAS,GAAG,EAAE;YAEvB,KAAK,GAAG,UAAU;YAElB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC9B,gBAAA,KAAK,CAAC,CAAC,GAAG,EAAE;AACZ,gBAAA,KAAK,CAAC,CAAC,GAAG,EAAE;AACZ,gBAAA,KAAK,CAAC,CAAC,GAAG,EAAE;AACZ,gBAAA,KAAK,CAAC,CAAC,GAAG,EAAE;AACZ,gBAAA,KAAK,GAAG,KAAK,CAAC,IAAI;YACtB;YAEA,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;gBAC9B,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnD,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC;AAC/D,gBAAA,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;AAC/C,gBAAA,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;AAC/C,gBAAA,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;gBAE/C,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;AAEd,gBAAA,KAAK,GAAG,KAAK,CAAC,IAAI;YACtB;YAGA,OAAO,GAAG,UAAU;YACpB,QAAQ,GAAG,QAAQ;YACnB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACxB,gBAAA,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,KAAK,OAAO;AAClD,gBAAA,IAAI,EAAE,IAAI,CAAC,EAAE;AACT,oBAAA,EAAE,GAAG,GAAG,GAAG,EAAE;AACb,oBAAA,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO,KAAK,OAAO,IAAI,EAAE;AAChD,oBAAA,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO,KAAK,OAAO,IAAI,EAAE;AACpD,oBAAA,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO,KAAK,OAAO,IAAI,EAAE;gBACxD;qBAAO;AACH,oBAAA,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;gBACpD;gBAEA,KAAK,IAAI,SAAS;gBAClB,KAAK,IAAI,SAAS;gBAClB,KAAK,IAAI,SAAS;gBAClB,KAAK,IAAI,SAAS;AAElB,gBAAA,SAAS,IAAI,OAAO,CAAC,CAAC;AACtB,gBAAA,SAAS,IAAI,OAAO,CAAC,CAAC;AACtB,gBAAA,SAAS,IAAI,OAAO,CAAC,CAAC;AACtB,gBAAA,SAAS,IAAI,OAAO,CAAC,CAAC;AAEtB,gBAAA,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;gBAEtE,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACnC,gBAAA,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,gBAAA,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,gBAAA,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEvC,KAAK,IAAI,QAAQ;gBACjB,KAAK,IAAI,QAAQ;gBACjB,KAAK,IAAI,QAAQ;gBACjB,KAAK,IAAI,QAAQ;AAEjB,gBAAA,OAAO,GAAG,OAAO,CAAC,IAAI;gBAEtB,SAAS,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC9B,SAAS,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC9B,SAAS,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC9B,SAAS,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAE9B,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;AAEd,gBAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI;gBAExB,EAAE,IAAI,CAAC;YACX;YACA,EAAE,IAAI,KAAK;QACf;QAGA,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACxB,YAAA,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC;AAE7E,YAAA,EAAE,GAAG,CAAC,IAAI,CAAC;YACX,SAAS,GAAG,WAAW,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3C,YAAA,SAAS,GAAG,WAAW,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/C,YAAA,SAAS,GAAG,WAAW,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/C,YAAA,SAAS,GAAG,WAAW,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAE/C,YAAA,KAAK,IAAI,SAAS,GAAG,EAAE;AACvB,YAAA,KAAK,IAAI,SAAS,GAAG,EAAE;AACvB,YAAA,KAAK,IAAI,SAAS,GAAG,EAAE;AACvB,YAAA,KAAK,IAAI,SAAS,GAAG,EAAE;YAEvB,KAAK,GAAG,UAAU;YAElB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC9B,gBAAA,KAAK,CAAC,CAAC,GAAG,EAAE;AACZ,gBAAA,KAAK,CAAC,CAAC,GAAG,EAAE;AACZ,gBAAA,KAAK,CAAC,CAAC,GAAG,EAAE;AACZ,gBAAA,KAAK,CAAC,CAAC,GAAG,EAAE;AACZ,gBAAA,KAAK,GAAG,KAAK,CAAC,IAAI;YACtB;YAEA,EAAE,GAAG,KAAK;YAEV,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1B,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;gBAElB,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC;AAChE,gBAAA,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;AAChD,gBAAA,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;AAChD,gBAAA,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;gBAEhD,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;AAEd,gBAAA,KAAK,GAAG,KAAK,CAAC,IAAI;AAElB,gBAAA,IAAI,CAAC,GAAG,YAAY,EAAE;oBAClB,EAAE,IAAI,KAAK;gBACf;YACJ;YAEA,EAAE,GAAG,CAAC;YACN,OAAO,GAAG,UAAU;YACpB,QAAQ,GAAG,QAAQ;YACnB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzB,gBAAA,CAAC,GAAG,EAAE,IAAI,CAAC;AACX,gBAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,KAAK,OAAO;AACjD,gBAAA,IAAI,EAAE,GAAG,CAAC,EAAE;AACR,oBAAA,EAAE,GAAG,GAAG,GAAG,EAAE;AACb,oBAAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO,KAAK,OAAO,IAAI,EAAE;AAC/C,oBAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO,KAAK,OAAO,IAAI,EAAE;AACnD,oBAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,OAAO,KAAK,OAAO,IAAI,EAAE;gBACvD;qBAAO;AACH,oBAAA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBACjD;gBAEA,KAAK,IAAI,SAAS;gBAClB,KAAK,IAAI,SAAS;gBAClB,KAAK,IAAI,SAAS;gBAClB,KAAK,IAAI,SAAS;AAElB,gBAAA,SAAS,IAAI,OAAO,CAAC,CAAC;AACtB,gBAAA,SAAS,IAAI,OAAO,CAAC,CAAC;AACtB,gBAAA,SAAS,IAAI,OAAO,CAAC,CAAC;AACtB,gBAAA,SAAS,IAAI,OAAO,CAAC,CAAC;AAEtB,gBAAA,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,YAAY,GAAG,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC;AAElF,gBAAA,KAAK,KAAK,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,gBAAA,KAAK,KAAK,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,gBAAA,KAAK,KAAK,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,gBAAA,KAAK,KAAK,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAElD,gBAAA,OAAO,GAAG,OAAO,CAAC,IAAI;gBAEtB,SAAS,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC9B,SAAS,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC9B,SAAS,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC9B,SAAS,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAE9B,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;gBACd,QAAQ,IAAI,EAAE;AAEd,gBAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI;gBAExB,EAAE,IAAI,KAAK;YACf;QACJ;QAEA,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAC7C;AAEA,IAAA,OAAO,mBAAmB,CAAC,QAAgB,EAAE,SAAiB,EAAE,KAAe,EAAE,IAAY,EAAE,iBAAA,GAA4B,GAAG,EAAE,MAA0B,EAAA;QAEtJ,MAAM,SAAS,GAAW,SAAS;QACnC,MAAM,OAAO,GAA6B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAEjE,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,MAAM,GAAsB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC5D,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACrC;AAEA,QAAA,MAAM,CAAC,KAAK,GAAG,QAAQ,GAAG,SAAS;AACnC,QAAA,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC;QAE7B,IAAI,QAAQ,GAAW,WAAW,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAC,IAAY,KAAI;YACjF,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;YAC7C,MAAM,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;YAClE,OAAO,QAAQ,GAAG,iBAAiB;AACvC,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,YAAY,GAAW,WAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,CAAC;AACvH,QAAA,IAAI,YAAY,GAAG,SAAS,EAAE;YAC1B,QAAQ,GAAG,WAAW,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,IAAY,KAAI;AACpE,gBAAA,OAAO,SAAS,GAAG,WAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC;AAC7G,YAAA,CAAC,CAAC;QACN;AAEA,QAAA,OAAO,QAAQ;IACnB;IAEA,OAAO,SAAS,CAAC,OAAiC,EAAE,KAAe,EAAE,IAAY,EAAE,IAAY,EAAE,iBAAA,GAA4B,GAAG,EAAE,KAAA,GAAgB,MAAM,EAAE,QAAA,GAAmB,KAAK,EAAE,CAAA,GAAY,CAAC,EAAE,CAAA,GAAY,CAAC,EAAA;AAC5M,QAAA,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC;AAC9D,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,MAAM,IAAI,GAAW,KAAK,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,CAAC,IAAI,IAAI,GAAG,iBAAiB;YACjC;QACJ;AACA,QAAA,OAAO,CAAC;IACZ;IAEA,OAAO,QAAQ,CAAC,OAAiC,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,QAAgB,EAAA;QACnG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG;QACvD,MAAM,KAAK,GAAa,EAAE;QAC1B,IAAI,IAAI,GAAG,EAAE;AACb,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;YACtC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC7C,YAAA,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK;YAC/B,IAAI,SAAS,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AAC/B,gBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAChB,gBAAA,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;YACzB;iBACK;gBACD,IAAI,GAAG,QAAQ;YACnB;QACJ;AACA,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAChB,CAAC,IAAI,UAAU,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM;AACnC,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG;YACd,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,IAAI,UAAU;AACnB,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,OAAO,YAAY,CAAC,OAAiC,EAAE,IAAY,EAAE,QAAgB,EAAE,KAAA,GAAgB,MAAM,EAAE,WAAmB,KAAK,EAAA;QACnI,OAAO,CAAC,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,IAAI,EAAE;AACtC,QAAA,OAAO,CAAC,SAAS,GAAQ,KAAK;AAC9B,QAAA,OAAO,CAAC,YAAY,GAAQ,QAAQ;IACxC;AAEQ,IAAA,OAAO,YAAY,CAAC,OAAiC,EAAE,KAAe,EAAA;QAC1E,IAAI,QAAQ,GAAW,CAAC;AACxB,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,MAAM,IAAI,GAAW,KAAK,CAAC,CAAC,CAAC;AAC7B,YAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QAClE;AACA,QAAA,OAAO,QAAQ;IACnB;AAEQ,IAAA,OAAO,mBAAmB,CAAC,MAAyB,EAAE,OAAiC,EAAE,KAAe,EAAE,IAAY,EAAE,QAAgB,EAAE,iBAAyB,EAAA;AACvK,QAAA,MAAM,KAAK,GAAW,MAAM,CAAC,KAAK;AAClC,QAAA,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM;QACpC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;AAEtC,QAAA,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC;AACnI,QAAA,MAAM,SAAS,GAAc,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;QAEtE,IAAI,UAAU,GAAW,CAAC;AAE1B,QAAA,KAAK,EAAC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,KAAK,GAAW,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;gBACzC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;AAC/B,oBAAA,UAAU,GAAG,CAAC,GAAG,CAAC;AAClB,oBAAA,SAAS,KAAK;gBAClB;YACJ;QACJ;QAEA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjD;AAEQ,IAAA,OAAO,qBAAqB,CAAC,SAAiB,EAAE,QAAkC,EAAA;QACtF,IAAI,QAAQ,GAAW,SAAS;QAChC,IAAI,YAAY,GAAW,CAAC;AAC5B,QAAA,IAAI,SAAiB;AAErB,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,YAAA,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,MAAM,QAAQ,GAAW,QAAQ;AACjC,YAAA,IAAI,SAAS,GAAG,CAAC,EAAE;AACf,gBAAA,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACjE;iBAAO;AACH,gBAAA,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACjE;YACA,YAAY,GAAG,QAAQ;YACvB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,GAAG,EAAE;gBACzC;YACJ;QACJ;AACA,QAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/B,QAAA,OAAO,QAAQ;IACnB;AACH;;MCxcY,SAAS,CAAA;IAElB,OAAO,SAAS,CAAC,IAAU,EAAA;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC;IACxC;IAEA,OAAO,aAAa,CAAC,IAAU,EAAA;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC;IACxC;AAEA,IAAA,OAAO,GAAG,CAAC,IAAU,EAAE,MAA0B,EAAE,IAAwB,EAAA;AACvE,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE;IAClD;IAEA,OAAO,WAAW,CAAC,IAAU,EAAE,MAAc,EAAE,IAAwB,EAAE,QAAA,GAAmB,EAAE,EAAA;AAC1F,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AAClC,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAChC,IAAI,GAAG,GAAG,IAAI;QACd,OAAO,SAAS,EAAE;YACd,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;YACtC,IAAI,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE;AAC9E,gBAAA,SAAS,EAAE;YACf;QACJ;AACA,QAAA,OAAO,GAAG;IACd;AAEA,IAAA,OAAO,gBAAgB,CAAC,IAAU,EAAE,MAAc,EAAE,IAAwB,EAAA;QACxE,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;IACrD;AACH;;MC5BY,SAAS,CAAA;IAElB,OAAO,YAAY,CAAC,IAAU,EAAA;QAC1B,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI;IACnF;IAEA,OAAO,OAAO,CAAC,IAAU,EAAA;QACrB,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;IACxE;AAEA,IAAA,OAAO,MAAM,CAAC,IAAU,EAAE,QAAgB,EAAA;QACtC,MAAM,IAAI,GAAQ,IAAI;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE;AAC1C,QAAA,OAAa,IAAI;IACrB;IAEA,OAAO,UAAU,CAAC,IAAY,EAAA;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEvD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;AAC7C,QAAA,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;AAC7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;QACpC;AAEA,QAAA,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;IAC7C;AAEA,IAAA,OAAO,QAAQ,CAAC,IAAU,EAAE,QAAgB,EAAA;AACxC,QAAA,IAAI,OAAO,MAAM,IAAI,WAAW,EAAE;AAC9B,YAAA,MAAM,KAAK,CAAC,2FAA2F,CAAC;QAC5G;AACA,QAAA,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC1B;AAEA,IAAA,OAAO,QAAQ,CAAC,IAAS,EAAE,QAAgB,EAAA;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE;QACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IAC3E;IAEA,OAAO,cAAc,CAAC,IAAU,EAAA;QAC5B,OAAO,SAAS,CAAC,QAAQ;;QAErB,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CACpC;IACL;IAEA,OAAO,sBAAsB,CAAC,IAAU,EAAA;QACpC,OAAO,SAAS,CAAC,QAAQ;;QAErB,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAC5C;IACL;IAEA,OAAO,iBAAiB,CAAC,IAAU,EAAA;QAC/B,OAAO,SAAS,CAAC,QAAQ;;QAErB,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CACvC;IACL;AAEA,IAAA,OAAO,eAAe,CAAC,IAAgB,EAAE,GAAW,EAAA;AAChD,QAAA,OAAO,IAAI,OAAO;;AAEd,QAAA,CAAC,OAAO,EAAE,MAAM,KAAI;YAChB,IAAI,CAAC,GAAG,EAAE;AACN,gBAAA,MAAM,CAAC;AACH,oBAAA,OAAO,EAAE;AACZ,iBAAA,CAAC;gBACF;YACJ;YACA,IAAI,CAAC,+EAA+E,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC7F,OAAO,CAAC,GAAG,CAAC;gBACZ;YACJ;AACA,YAAA,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AAClB,gBAAA,YAAY,EAAE;AACjB,aAAA,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAU,KAAI;AACzB,gBAAA,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;YAC3D,CAAC,EAAE,MAAM,IAAG;AACR,gBAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBACjB,MAAM,CAAC,MAAM,CAAC;;oBAEd,OAAO,CAAC,GAAG,CAAC;AACpB,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CACJ;IACL;IAEQ,OAAO,QAAQ,CAAC,QAAsC,EAAA;AAC1D,QAAA,OAAO,IAAI,OAAO;;AAEd,QAAA,CAAC,OAAO,EAAE,MAAM,KAAI;AAChB,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,KAAU,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5D,YAAA,MAAM,CAAC,OAAO,GAAG,MAAM;YACvB,QAAQ,CAAC,MAAM,CAAC;AACpB,QAAA,CAAC,CACJ;IACL;AACH;;AC3GK,MAAO,YAAgB,SAAQ,OAAU,CAAA;AAE3C,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAI,KAAK,CAAC,KAAQ,EAAA;AACd,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACpB;AAIA,IAAA,WAAA,CAAY,QAAW,IAAI,EAAA;AACvB,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACvB;AAEA,IAAA,YAAY,CAAC,KAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACvB;AACH;;MClBY,eAAe,CAAA;AAQxB,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI;IACtE;AAEA,IAAA,WAAA,CAAqB,KAAa,EACb,IAAY,EACZ,KAAa,EACb,IAAO,EACN,MAAmC,EAC7C,MAAA,GAA0B,IAAI,EAC9B,OAAkB,EAAA;QANT,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,IAAI,GAAJ,IAAI;QACH,IAAA,CAAA,MAAM,GAAN,MAAM;QAGxB,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA,MAAA,EAAS,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;aACzD,GAAG,CAAC,CAAC,IAAG;YACL,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC9B,OAAO,CAAC,CAAC,IAAI;YACjB;YACA,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,gBAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG;oBACrC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvB,oBAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG;AACrE,0BAAE,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,KAAK,CAAA;0BACb,IAAI;AACd,gBAAA,CAAC,CAAC;AACF,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC1C;AACA,YAAA,OAAO,IAAI;AACf,QAAA,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B;IAEA,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAG;AACnB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AACtB,QAAA,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,MAAM;IACtB;AACH;;MC9CY,IAAI,CAAA;AAEb,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACpC;AAEA,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;IACnC;AAEA,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;IACnC;AAEA,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE;IACpC;AAEA,IAAA,IAAI,GAAG,GAAA;QACH,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE;IACpC;IAEA,WAAA,CAAqB,CAAS,EAAW,CAAS,EAAW,KAAa,EAAW,MAAc,EAAW,QAAA,GAAmB,CAAC,EAAA;QAA7G,IAAA,CAAA,CAAC,GAAD,CAAC;QAAmB,IAAA,CAAA,CAAC,GAAD,CAAC;QAAmB,IAAA,CAAA,KAAK,GAAL,KAAK;QAAmB,IAAA,CAAA,MAAM,GAAN,MAAM;QAAmB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAEtH;AAEA,IAAA,QAAQ,CAAC,CAAQ,EAAA;AACb,QAAA,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AACxD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC;IAC/B;AACH;MAEY,MAAM,CAAA;AAEf,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACpC;AAEA,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAClD;AAEA,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAClD;AAEA,IAAA,IAAI,GAAG,GAAA;AACH,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAClD;AAEA,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAClD;AAEA,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE;AAEA,IAAA,WAAA,CAAqB,CAAS,EAAW,CAAS,EAAW,MAAc,EAAA;QAAtD,IAAA,CAAA,CAAC,GAAD,CAAC;QAAmB,IAAA,CAAA,CAAC,GAAD,CAAC;QAAmB,IAAA,CAAA,MAAM,GAAN,MAAM;IAEnE;AAEA,IAAA,QAAQ,CAAC,CAAQ,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM;IAChD;AACH;MAEY,KAAK,CAAA;aAEP,IAAA,CAAA,IAAI,GAAU,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAErC,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IACpC;AAEA,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC;IAEA,WAAA,CAAqB,CAAS,EAAW,CAAS,EAAA;QAA7B,IAAA,CAAA,CAAC,GAAD,CAAC;QAAmB,IAAA,CAAA,CAAC,GAAD,CAAC;IAC1C;AAEA,IAAA,GAAG,CAAC,CAAQ,EAAA;AACR,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChD;AAEA,IAAA,QAAQ,CAAC,CAAQ,EAAA;AACb,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChD;AAEA,IAAA,QAAQ,CAAC,CAAiB,EAAA;AACtB,QAAA,IAAI,CAAC,YAAY,KAAK,EAAE;AACpB,YAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChD;AACA,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C;AAEA,IAAA,QAAQ,CAAC,CAAQ,EAAA;QACb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC;IAEA,IAAI,CAAC,CAAQ,EAAE,KAAa,EAAA;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC;IAEA,eAAe,CAAC,CAAQ,EAAE,MAAc,EAAA;AACpC,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;AACzD,QAAA,MAAM,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C;IAEA,UAAU,CAAC,CAAQ,EAAE,CAAQ,EAAA;QACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAE7B,QAAA,MAAM,MAAM,GAAG,QAAQ,GAAG,QAAQ;AAClC,QAAA,MAAM,MAAM,GAAG,QAAQ,GAAG,QAAQ;QAElC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC;AACvH,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9B,QAAA,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChE;AAEA,IAAA,QAAQ,CAAC,CAAS,EAAA;QACd,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AAClC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AACzC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;;AAEhC,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACb,QAAA,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjF,QAAA,CAAC,GAAG,CAAC,GAAG,CAAC;AACT,QAAA,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjF,QAAA,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;IACnB;AAEA,IAAA,KAAK,CAAC,CAAQ,EAAA;QACV,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE;IACrD;IAEA,YAAY,CAAC,CAAQ,EAAE,KAAa,EAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG;QACxD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACvF,QAAA,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IACzB;;;MC/JS,WAAW,CAAA;AAIpB,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,WAAA,CAAoB,QAAiB,EAAU,UAAA,GAAsB,IAAI,EAAA;QAArD,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAmB,IAAA,CAAA,UAAU,GAAV,UAAU;AACrD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,UAAU;;AAEnC,QAAA,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;IACjC;IAEA,CAAC,SAAS,CAAC,IAAI,CAAC,GAAA;QACZ,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,IAAI;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IAC1B;AACH;;MCnBY,WAAW,CAAA;aAEL,IAAA,CAAA,QAAQ,GAAoC,EAAE,CAAC;AAE9D,IAAA,OAAO,UAAU,CAAC,GAAiB,EAAE,KAAA,GAAiB,KAAK,EAAE,IAAA,GAAmB,iBAAiB,EAAE,MAAa,EAAE,OAAyB,KAAK,EAAA;AAC5I,QAAA,OAAO,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAG;YACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,YAAA,MAAM,CAAC,IAAI,GAAG,IAAI;AAClB,YAAA,MAAM,CAAC,GAAG,GAAG,GAAG;AAChB,YAAA,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,YAAA,OAAO,MAAM;AACjB,QAAA,CAAC,CAAC;IACN;IAEA,OAAO,SAAS,CAAC,GAAiB,EAAE,MAAa,EAAE,OAAyB,KAAK,EAAA;AAC7E,QAAA,OAAO,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAG;YACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC3C,YAAA,IAAI,CAAC,GAAG,GAAG,YAAY;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,UAAU;AACtB,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG;AACf,YAAA,OAAO,IAAI;AACf,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,OAAO,SAAS,CAAC,GAAiB,EAAE,IAAsB,EAAA;QAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;QAChC,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;AACrC,YAAA,OAAO,MAAM;QACjB;AACA,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;QACxB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAA,OAAO,GAAG,CAAC,QAAQ,EAAE;IACzB;IAEQ,OAAO,WAAW,CAA4B,GAAiB,EAAE,MAAY,EAAE,IAAsB,EAAE,KAAyB,EAAA;AACpI,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,QAA6B;QAC1D,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;AAC5C,QAAA,MAAM,GAAG,MAAM,IAAI,QAAQ;AAC3B,QAAA,IAAI,MAAM,IAAI,QAAQ,EAAE;AACpB,YAAA,MAAM,GAAG,QAAQ,CAAC,IAAI;QAC1B;AACA,QAAA,IAAI,EAAC,IAAI,EAAE,OAAO,EAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;QACzC,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa;AAAE,gBAAA,OAAO,OAAO;AACjD,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,MAAM,EAAE;YACjB;QACJ;AACA,QAAA,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QACjB,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,KAAI;AACzC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;;AAEjB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,MAAK;AAC3B,oBAAA,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;AAChE,wBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;wBAC9B,OAAO,CAAC,IAAI,CAAC;oBACjB;AACJ,gBAAA,CAAC;YACL;iBAAO;;gBAEH,IAAI,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACrC;AACA,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,KAAU,KAAK,MAAM,CAAC,KAAK,CAAC;AAChD,QAAA,CAAC,CAAC;AACF,QAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAC,IAAI,EAAE,OAAO,EAAC;AAC/B,QAAA,OAAO,OAAO;IAClB;;;MCnES,SAAS,CAAA;aAEF,IAAA,CAAA,OAAO,GAAW,IAAI,CAAC;IAEvC,OAAO,KAAK,CAAC,CAAS,EAAE,CAAS,EAAE,UAAkB,IAAI,EAAA;AACrD,QAAA,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,OAAO;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;IACpC;AAEA,IAAA,OAAO,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAC9C;IAEA,OAAO,KAAK,CAAC,KAAa,EAAE,SAAA,GAAoB,CAAC,EAAE,OAAA,GAAkB,CAAC,EAAA;QAClE,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,SAAS;IAC9D;IAEA,OAAO,WAAW,CAAC,CAAS,EAAE,MAAgB,EAAE,UAAkB,IAAI,EAAA;AAClE,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9C,OAAO,CAAC,CAAC;QACb;QACA,IAAI,CAAC,GAAG,CAAC;AACT,QAAA,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACzB,QAAA,OAAO,CAAC,IAAI,CAAC,EAAE;AACX,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YACnB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE;AAChC,gBAAA,OAAO,CAAC;YACZ;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE;AACP,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC;YACb;iBAAO;AACH,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC;YACb;QACJ;QACA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpD;IAEA,OAAO,WAAW,CAAC,CAAS,EAAE,MAAgB,EAAE,UAAkB,IAAI,EAAA;AAClE,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC;AACvD,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI;IAChC;;;AC/CE,SAAU,eAAe,CAAC,IAAiB,EAAA;AAC7C,IAAA,IAAI,kBAAkB,IAAI,IAAI,EAAE;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAS,CAAuB;AAC/E,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,KAAI;AACtC,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACvB,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE;YAC9B;AACA,YAAA,OAAO,GAAG;QACd,CAAC,EAAE,EAA4B,CAAC;IACpC;IACA,MAAM,GAAG,GAAG,EAA4B;AACxC,IAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC;AACrC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC/B,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC;QAC7D;IACJ;AACA,IAAA,OAAO,GAAG;AACd;;MCda,UAAU,CAAA;AAEnB,IAAA,OAAO,aAAa,CAAC,IAAe,EAAE,IAAa,EAAA;;AAE/C,QAAA,MAAM,GAAG,GAAG,CAAC,KAAa,KAAI;YAC1B,KAAK,CAAC,KAAK,EAAE;AACb,YAAA,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,MAAK;AACvB,gBAAA,KAAK,CAAC,EAAE,GAAG,IAAI;gBACf,KAAK,CAAC,IAAI,EAAE;AAChB,YAAA,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;AAClB,QAAA,CAAC;;AAED,QAAA,MAAM,KAAK,GAAG,CAAC,KAAa,KAAI;YAC5B,IAAI,CAAC,KAAK,CAAC,EAAE;gBAAE;AACf,YAAA,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;AACtB,YAAA,KAAK,CAAC,EAAE,GAAG,IAAI;AACnB,QAAA,CAAC;AACD,QAAA,OAAO,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IACzD;AAEA,IAAA,OAAO,cAAc,CAAC,IAAe,EAAE,IAAa,EAAA;;AAEhD,QAAA,MAAM,GAAG,GAAG,CAAC,KAAa,KAAI;YAC1B,KAAK,CAAC,KAAK,EAAE;AACb,YAAA,KAAK,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;AAClD,QAAA,CAAC;;AAED,QAAA,MAAM,KAAK,GAAG,CAAC,KAAa,KAAI;YAC5B,IAAI,CAAC,KAAK,CAAC,EAAE;gBAAE;AACf,YAAA,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;AACvB,YAAA,KAAK,CAAC,EAAE,GAAG,IAAI;AACnB,QAAA,CAAC;AACD,QAAA,OAAO,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IACzD;IAEQ,OAAO,WAAW,CAAC,GAAc,EAAE,KAAgB,EAAE,IAAc,EAAE,IAAY,EAAA;QACrF,MAAM,KAAK,GAAW,EAAE;AACxB,QAAA,MAAM,SAAS,GAAG,CAAC,IAAc,EAAE,IAAY,KAAI;YAC/C,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAK,EAAE,CAAC,IAAI,IAAI;AAC9D,YAAA,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI;AACzD,QAAA,CAAC;QACD,KAAK,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC;QAC5B,KAAK,CAAC,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC;QAChC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAc,EAAE,IAAY,KAAI;AACzC,YAAA,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;YACrB,KAAK,CAAC,GAAG,EAAE;AACf,QAAA,CAAC;AACD,QAAA,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;AACrB,QAAA,OAAO,KAAK;IAChB;AACH;;MC3CY,eAAe,CAAA;IAExB,OAAO,QAAQ,CAAC,MAAyB,EAAA;AACrC,QAAA,OAAO,QAAQ;;AAEX,QAAA,CAAC,KAAa,KAAK,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CACpD,CACG,UAAU,CAAC,MAAM;;QAEb,CAAC,QAAa,KAAI;AACd,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,CAAC,CACJ,CACJ;IACL;AAEA,IAAA,OAAO,iBAAiB,CAAC,GAAG,aAA6B,EAAA;;QAErD,MAAM,MAAM,GAAG,MAAK;AAChB,YAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAG;gBACtB,CAAC,CAAC,WAAW,EAAE;AACnB,YAAA,CAAC,CAAC;AACN,QAAA,CAAC;AACD,QAAA,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC;IACnC;AAEA,IAAA,OAAO,SAAS,CAAC,GAAG,WAA8B,EAAA;QAC9C,MAAM,aAAa,GAAmB,EAAE;AACxC,QAAA,WAAW,CAAC,OAAO,CAAC,IAAI,IAAG;YACvB,IAAI,aAAa,GAAG,KAAK;AACzB,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,EAAE;AACxC,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;gBAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;oBACnC,aAAa,GAAG,IAAI;AACpB,oBAAA,KAAK,CAAC,GAAG,CAAC,MAAK;AACX,wBAAA,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;AAC3B,oBAAA,CAAC,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;AACzB,gBAAA,CAAC,CAAC;AACF,gBAAA,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,aAAa;gBAAE;YACnB,IAAI,CAAC,EAAE,EAAE;AACb,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,eAAe,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC;IAC9D;IAEA,OAAO,YAAY,CAAC,YAAuB,EAAA;AACvC,QAAA,IAAI,OAAY;AAChB,QAAA,OAAO,IAAI,UAAU,CAAM,CAAC,UAAU,KAAI;YACtC,IAAI,CAAC,OAAO,EAAE;AACV,gBAAA,OAAO,GAAG,IAAI,OAAO,EAAE;AACvB,gBAAA,IAAI;AACA,oBAAA,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClC;gBAAE,OAAO,GAAG,EAAE;AACV,oBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;gBACtB;YACJ;AACA,YAAA,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC;AACxC,QAAA,CAAC,CAAC;IACN;AACH;;ACpEK,SAAU,iBAAiB,CAAI,MAAkB,EAAA;IACnD,IAAI,UAAU,GAAG,KAAK;IACtB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,KAAI;AAClD,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAG;AACd,YAAA,IAAI,UAAU;gBAAE;YAChB,OAAO,CAAC,GAAG,CAAC;AAChB,QAAA,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACpB,IAAA,CAAC,CAAyB;AAC1B,IAAA,UAAU,CAAC,MAAM,GAAG,MAAK;QACrB,UAAU,GAAG,IAAI;AACrB,IAAA,CAAC;AACD,IAAA,OAAO,UAAU;AACrB;AAEM,SAAU,gBAAgB,CAAI,OAAyB,EAAA;IACzD,IAAI,WAAW,GAAyB,IAAI;AAC5C,IAAA,OAAO,MAAK;QACR,WAAW,EAAE,MAAM,EAAE;AACrB,QAAA,WAAW,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC;AAC1C,QAAA,OAAO,WAAW;AACtB,IAAA,CAAC;AACL;;MCzBa,WAAW,CAAA;AAEpB,IAAA,OAAO,MAAM,CAAC,SAAiB,EAAE,GAAG,OAAiB,EAAA;QACjD,OAAO,OAAO,CAAC,MAAM;;AAEjB,QAAA,GAAG,IAAI,CAAC,CAAC,GAAG,CACf,CAAC,IAAI,CAAC,SAAS,CAAC;IACrB;AAEA,IAAA,OAAO,UAAU,CAAC,GAAW,EAAE,GAAG,MAAgB,EAAA;AAC9C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,gBAAA,OAAO,IAAI;QAC9C;AACA,QAAA,OAAO,KAAK;IAChB;AAEA,IAAA,OAAO,GAAG,CAAC,GAAW,EAAE,GAAG,KAAe,EAAA;AACtC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAAE,gBAAA,OAAO,IAAI;QAC/C;AACA,QAAA,OAAO,KAAK;IAChB;IAEA,OAAO,OAAO,CAAC,GAAW,EAAA;QACtB,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;IACpE;IAEA,OAAO,OAAO,CAAC,GAAW,EAAA;QACtB,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;IACpE;IAEA,OAAO,UAAU,CAAC,EAAU,EAAA;QACxB,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACjF;IAEA,OAAO,WAAW,CAAC,OAAe,EAAA;AAC9B,QAAA,IAAI;AACA,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;AAC5B,YAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,GAAG,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAA,CAAE,GAAG,EAAE;YACtF,OAAO,CAAA,EAAG,GAAG,CAAC,QAAQ,CAAA,EAAA,EAAK,GAAG,CAAC,QAAQ,CAAA,EAAG,IAAI,CAAA,CAAA,CAAG;QACrD;AAAE,QAAA,MAAM;AACJ,YAAA,OAAO,GAAG;QACd;IACJ;AACH;;MC1CY,QAAQ,CAAA;AAEjB,IAAA,OAAO,MAAM,CAAC,GAAa,EAAE,GAAQ,EAAA;AACjC,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;AAClD,YAAA,OAAO,KAAK;AAChB,QAAA,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI;AACpB,YAAA,OAAO,KAAK;AAChB,QAAA,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAAE,gBAAA,OAAO,KAAK;QACpC;AACA,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,OAAO,QAAQ,CAAC,GAAa,EAAE,KAAY,EAAA;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE;AAC5D,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC;AAEA,IAAA,OAAO,KAAK,CAAC,GAAa,EAAE,KAAe,EAAA;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE;AAC1D,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC;AACH;;MCxBY,WAAW,CAAA;AAEpB,IAAA,OAAO,IAAI,GAAA;QACP,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,WAAW,EAAE;AAC/H,YAAA,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AAC9B,YAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC;AAClC,YAAA,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjM;QACA,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG;YACtF,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;IAC/E;IAEQ,OAAO,IAAI,CAAC,GAAW,EAAA;QAC3B,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1B,QAAA,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,YAAA,GAAG,GAAG,GAAG,GAAG,GAAG;QACnB;AACA,QAAA,OAAO,GAAG;IACd;AAEQ,IAAA,OAAO,OAAO,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO;aAC1C,QAAQ,CAAC,EAAE;aACX,SAAS,CAAC,CAAC,CAAC;IACrB;AACH;;MCzBY,MAAM,CAAA;AAEf,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD;AAEA,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC;AAEA,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACnC;AAEA,IAAA,IAAI,GAAG,GAAA;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD;AAEA,IAAA,IAAI,GAAG,GAAA;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD;AAEA,IAAA,IAAI,MAAM,GAAA;QACN,OAAO;AACH,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACjC,YAAA,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM;SACtC;IACL;AAEA,IAAA,WAAA,CAAmB,CAAS,EAAS,CAAS,EAAS,CAAS,EAAA;QAA7C,IAAA,CAAA,CAAC,GAAD,CAAC;QAAiB,IAAA,CAAA,CAAC,GAAD,CAAC;QAAiB,IAAA,CAAA,CAAC,GAAD,CAAC;IACxD;AAEA,IAAA,GAAG,CAAC,CAAkB,EAAA;QAClB,IAAI,CAAC,YAAY,MAAM;YAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;YAC/E,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D;AAEA,IAAA,QAAQ,CAAC,CAAkB,EAAA;QACvB,IAAI,CAAC,YAAY,MAAM;YAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;YAC/E,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D;AAEA,IAAA,QAAQ,CAAC,CAAkB,EAAA;QACvB,IAAI,CAAC,YAAY,MAAM;YAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;YAC/E,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D;AAEA,IAAA,MAAM,CAAC,CAAkB,EAAA;QACrB,IAAI,CAAC,YAAY,MAAM;YAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;YAC/E,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D;AAEA,IAAA,MAAM,CAAC,CAAS,EAAA;QACZ,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D;AAEA,IAAA,GAAG,CAAC,CAAS,EAAA;QACT,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD;AAEA,IAAA,KAAK,CAAC,CAAS,EAAA;QACX,OAAO,IAAI,MAAM,CACb,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9B;IACL;AAEA,IAAA,OAAO,CAAC,CAAS,EAAA;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5D;AAEA,IAAA,OAAO,CAAC,CAAU,EAAA;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACpD;IAEA,KAAK,GAAA;AACD,QAAA,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7C;AAEA,IAAA,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AAChC,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,QAAA,OAAO,IAAI;IACf;AACH;;ACnFK,SAAU,kBAAkB,CAA4B,IAAa,EAAE,OAAU,EAAA;IACnF,OAAO;QACH,UAAU,EAAE,UAAU,QAAkB,EAAA;AACpC,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;AAChC,gBAAA,SAAS,EAAE;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,aAAa;AACtB,wBAAA,QAAQ,EAAE;AACb,qBAAA;AACD,oBAAA;AACI,wBAAA,OAAO,EAAE,IAAI;AACb,wBAAA,QAAQ,EAAE;AACb;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACX,aAAA,CAAC;AACF,YAAA,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,EAAE,CAAC,QAAQ;KAClB;AACL;;MCvBa,MAAM,CAAA;IAEf,OAAO,KAAK,CAAC,IAAY,EAAA;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;IAC3C;IAEA,OAAO,SAAS,CAAC,GAAQ,EAAA;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC/C;AAEA,IAAA,OAAO,OAAO,CAAC,GAAW,EAAE,KAAU,EAAA;QAClC,MAAM,OAAO,GAAG,8DAA8D;QAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,KAAK;AAC3C,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,YAAA,OAAO,KAAK;QAChB;AACA,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACtB,YAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;QAC1B;QACA,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AACpC,QAAA,IAAI,MAAM,KAAK,UAAU,EAAE;YACvB,OAAO,IAAI,QAAQ,CAAC,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE,CAAC,EAAE;QAC5C;AACA,QAAA,IAAI,MAAM,KAAK,UAAU,EAAE;AACvB,YAAA,OAAO,IAAI,QAAQ,CAAC,CAAA,OAAA,EAAU,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,EAAE;QACrD;AACA,QAAA,IAAI,MAAM,KAAK,UAAU,EAAE;AACvB,YAAA,OAAO,IAAI,QAAQ,CAAC,CAAA,OAAA,EAAU,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,EAAE;QACrD;AACA,QAAA,OAAO,KAAK;IAChB;AAEA,IAAA,OAAO,QAAQ,CAAC,GAAW,EAAE,KAAU,EAAA;QACnC,IAAI,KAAK,YAAY,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AAC1D,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE;AAC/B,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,EAAE;;gBAE5D,OAAO,UAAU,GAAG,MAAM;YAC9B;AACA,YAAA,OAAO,MAAM;QACjB;AACA,QAAA,IAAI,KAAK,YAAY,MAAM,EAAE;YACzB,OAAO,UAAU,GAAG,KAAK;QAC7B;AACA,QAAA,OAAO,KAAK;IAChB;AACH;;ACrCK,SAAU,cAAc,CAAC,MAAW,EAAE,QAAiB,EAAA;IAEzD,IAAI,WAAW,GAAqC,IAAI;AACxD,IAAA,MAAM,YAAY,GAA0B,IAAI,OAAO,CAAe,OAAO,IAAG;QAC5E,WAAW,GAAG,OAAO;AACzB,IAAA,CAAC,CAAC;AAEF,IAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,EAAA;AACxB,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI;AACnB,QAAA,MAAM,EAAC,IAAI,EAAE,OAAO,EAAC,GAAG,IAAI;QAC5B,QAAQ,IAAI;AACR,YAAA,KAAK,MAAM;AACP,gBAAA,MAAM,EAAC,GAAG,EAAE,IAAI,EAAC,GAAG,OAAO;gBAC3B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAG;oBAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnC,OAAO,IAAI,QAAQ,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;AAC5C,gBAAA,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAG;oBACf,WAAW,CAAC,QAAQ,CAAC;oBACrB,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC;AACvG,oBAAA,IAAI,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC;AACzD,gBAAA,CAAC,CAAC;gBACF;AACJ,YAAA,KAAK,MAAM;AACP,gBAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,IAAG;oBACzB,MAAM,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,GAAG,OAAO;oBAChC,IAAI,QAAQ,EAAE;AACV,wBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChB,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA,QAAA,EAAW,IAAI,CAAA,IAAA,CAAM,CAAC;oBAC9C;AACA,oBAAA,MAAM,IAAI,GAAI,QAAQ,CAAC,IAAI,CAAc;AACzC,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBAC5B,IAAI,QAAQ,EAAE;wBACV,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA,OAAA,EAAU,IAAI,CAAA,CAAE,CAAC;AACrC,wBAAA,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvB;AACA,oBAAA,IAAI,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAC,EAAE,EAAE,MAAM,EAAC,EAAC,CAAC;AAC7D,gBAAA,CAAC,CAAC;gBACF;;AAEZ,IAAA,CAAC;AACL;MAEa,eAAe,CAAA;AAOxB,IAAA,WAAA,CAAY,QAAgB,EAAE,IAAiB,EAAE,WAAoB,KAAK,EAAA;QACtE,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAW,OAAO,IAAG;AAC3C,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO;AAC5B,QAAA,CAAC,CAAC;QACF,MAAM,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO;QACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CACjB,CAAC,CAAA,EAAG,MAAM,CAAC,QAAQ,EAAE,CAAA,EAAA,EAAK,cAAc,CAAC,QAAQ,EAAE,CAAA,UAAA,EAAa,EAAE,CAAA,CAAA,CAAG,CAAC,EACtE,EAAC,IAAI,EAAE,wBAAwB,EAAC,CACnC;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACpB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ;AAClE,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACjD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAA4B;AACnD,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACnB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAI;AAC5B,gBAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;gBAC/C,IAAI,GAAG,EAAE;AACL,oBAAA,OAAO,GAAG;gBACd;AACA,gBAAA,OAAO,CAAC,GAAG,IAAW,KAAI;oBACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC;AAC3C,gBAAA,CAAC;YACL;AACH,SAAA,CAAC;IACN;AAEA,IAAA,SAAS,CAAC,CAAe,EAAA;AACrB,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI;AACnB,QAAA,MAAM,EAAC,IAAI,EAAE,OAAO,EAAC,GAAG,IAAI;QAC5B,QAAQ,IAAI;AACR,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACvB;AACJ,YAAA,KAAK,QAAQ;AACT,gBAAA,MAAM,EAAC,EAAE,EAAE,MAAM,EAAC,GAAG,OAAO;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,OAAO,EAAE;AACT,oBAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACvB,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B;gBACA;;IAEZ;AAEA,IAAA,MAAM,IAAI,CAAC,MAAc,EAAE,IAAW,EAAA;AAClC,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,CAAA,UAAA,CAAY,CAAC;QACjD;QACA,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,KAAI;AACxC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACpB,gBAAA,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI;AACnC,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC;AAC5C,QAAA,CAAC,CAAC;IACN;AACH;;ACjHK,MAAO,cAAe,SAAQ,UAAU,CAAA;AAQ1C,IAAA,WAAA,CAAY,OAAoB,EAAA;QAC5B,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;QACvB,IAAI,CAAC,kBAAkB,GAAG;AACtB,YAAA,QAAQ,EAAE;SACb;IACL;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAE,eAAA,GAA2B,IAAI,EAAA;AAC/D,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAW,IAAI,EAAE;QAC3D,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACtD,YAAA,OAAO,OAAO,CAAC,eAAe,CAAC;QACnC;AACA,QAAA,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC;IACnC;AAEA,IAAA,UAAU,CAAC,MAAoB,EAAA;AAC3B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/E,OAAO,IAAI,UAAU,CAAC;YAClB,OAAO,EAAE,IAAI,oBAAoB,EAAE;AACnC,YAAA,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAI;AACzD,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACzB,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAClI,gBAAA,OAAO,MAAM;YACjB,CAAC,EAAE,EAAE;AACR,SAAA,CAAC;IACN;IAEA,oBAAoB,CAAC,IAAY,EAAE,KAAW,EAAA;AAC1C,QAAA,IAAI,OAAO,KAAK,IAAI,WAAW,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YACpC;QACJ;AACA,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,KAAK;IACzC;+GA5CS,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAd,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;ACDD;;AAEG;MAEU,cAAc,CAAA;AAEvB,IAAA,WAAA,CAAqB,SAA2B,EAAA;QAA3B,IAAA,CAAA,SAAS,GAAT,SAAS;IAC9B;IAEA,GAAG,CAAC,GAAW,EAAE,YAAkB,EAAE,IAAA,GAAoB,WAAW,CAAC,KAAK,EAAA;AACtE,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS;AAAE,YAAA,OAAO,YAAY;AAClD,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,WAAW,CAAC,KAAK,GAAG,YAAY,GAAG,cAAc;QACzE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;AACjC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,YAAY;AAC9B,QAAA,IAAI;AACA,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B;QAAE,OAAO,CAAC,EAAE;AACR,YAAA,OAAO,IAAI;QACf;IACJ;IAEA,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,IAAA,GAAoB,WAAW,CAAC,KAAK,EAAA;AAC9D,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS;YAAE;AAC/B,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,WAAW,CAAC,KAAK,GAAG,YAAY,GAAG,cAAc;AACzE,QAAA,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;AAC1B,YAAA,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;YAC3B;QACJ;AACA,QAAA,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/C;AAEA,IAAA,MAAM,CAAC,GAAW,EAAE,IAAA,GAAoB,WAAW,CAAC,KAAK,EAAA;AACrD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS;YAAE;AAC/B,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,WAAW,CAAC,KAAK,GAAG,YAAY,GAAG,cAAc;AACzE,QAAA,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;IAC3B;+GA/BS,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAd,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;MCyBY,eAAe,CAAA;aAEP,IAAA,CAAA,cAAc,GAAsB,EAAtB,CAAyB;AAExD,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,MAAM;IACjB;AAEA,IAAA,IAAc,eAAe,GAAA;AACzB,QAAA,OAAO,IAAI;IACf;AAMU,IAAA,OAAO,mBAAmB,GAAA;AAChC,QAAA,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAChD,QAAA,eAAe,CAAC,cAAc,GAAG,EAAE;IACvC;AAEA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;IACjC;AAEA,IAAA,WAAA,CAAuC,QAAkB,EACZ,MAAsB,EACtB,OAAuB,EACrB,QAA0B,EAC3B,OAAwB,EACzB,OAAuB,EACV,UAAmB,IAAI,EAAA;QAN1C,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACF,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,OAAO,GAAP,OAAO;QACL,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACT,IAAA,CAAA,OAAO,GAAP,OAAO;QACR,IAAA,CAAA,OAAO,GAAP,OAAO;QACM,IAAA,CAAA,OAAO,GAAP,OAAO;AAE7D,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,WAAW,EAAE;IACtB;IAEU,WAAW,GAAA;IAErB;AAEA,IAAA,GAAG,CAAC,GAAW,EAAA;AACX,QAAA,OAAO,GAAG;IACd;IAEA,SAAS,CAAC,GAAW,EAAE,MAAmB,EAAA;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QACjD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAG;YACtC,OAAO,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,CAAE;AAC1C,QAAA,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACZ,OAAO,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE;IACtC;AAEA,IAAA,cAAc,CAAC,IAAY,EAAE,YAAoB,EAAE,OAAA,GAAkB,IAAI,EAAE,eAAA,GAA2B,IAAI,EAAE,MAAA,GAAiB,IAAI,EAAA;AAC7H,QAAA,MAAM,MAAM,GAAgB;AACxB,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAChB,YAAA,KAAK,EAAE;SACV;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE;AAC5F,YAAA,MAAM,CAAC,IAAI,GAAG,CAAA,EAAG,eAAe,GAAG,GAAG,GAAG,EAAE,CAAA,EAAG,OAAO,EAAE;QAC3D;QACA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;AACxC,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM;QAC1B;AACA,QAAA,OAAO,MAAM;IACjB;AAEU,IAAA,UAAU,CAAC,GAAW,EAAE,OAAyB,EAAE,IAAU,EAAA;QACnE,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;IACvC;AAEU,IAAA,aAAa,CAAC,GAAW,EAAE,OAAyB,EAAE,IAAU,EAAA;QACtE,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;IACvC;AAEU,IAAA,WAAW,CAAC,GAAW,EAAE,IAAU,EAAE,OAAyB,EAAA;QACpE,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;IACvC;AAEU,IAAA,UAAU,CAAC,GAAW,EAAE,IAAU,EAAE,OAAyB,EAAA;QACnE,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;IACvC;AAEU,IAAA,YAAY,CAAC,GAAW,EAAE,IAAU,EAAE,OAAyB,EAAA;QACrE,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;IACvC;AAEU,IAAA,aAAa,CAAC,GAAW,EAAE,IAAS,EAAE,QAA2B,EAAE,OAAyB,EAAA;QAClG,MAAM,OAAO,GAAQ,EAAE;AACvB,QAAA,IAAI,IAAI,YAAY,IAAI,EAAE;AACtB,YAAA,OAAO,CAAC,cAAc,CAAC,GAAG,0BAA0B;QACxD;QACA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,cAAc,EAAE;AACnB,SAAA,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;IACjD;IAEU,WAAW,CAAC,GAAW,EAAE,MAAmB,EAAA;AAClD,QAAA,OAAO,IAAI,OAAO,CAAkB,OAAO,IAAG;AAC1C,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAG;AAC/C,gBAAA,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC3B,oBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;0BACvD,MAAM,CAAC;AACT,0BAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;AAC1B,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7C,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;AACvC,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;AAChD,oBAAA,OAAO,CAAC;wBACJ,KAAK,EAAE,IAAI,CAAC,MAAM;wBAClB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AAC7B,wBAAA,IAAI,EAAE;AACT,qBAAA,CAAC;oBACF;gBACJ;AACA,gBAAA,OAAO,CAAC;AACJ,oBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;AACjE,oBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;AACvB,oBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI;AACtB,iBAAA,CAAC;YACN,CAAC,EAAE,QAAQ,IAAG;AACV,gBAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;AAChD,oBAAA,OAAO,CAAC;AACJ,wBAAA,KAAK,EAAE,CAAC;AACR,wBAAA,KAAK,EAAE,CAAC;AACJ,gCAAA,EAAE,EAAE,IAAI;AACR,gCAAA,KAAK,EAAE;6BACV,CAAC;AACF,wBAAA,IAAI,EAAE;AACT,qBAAA,CAAC;AACF,oBAAA,OAAO,IAAI;gBACf;AACA,gBAAA,OAAO,CAAC;AACJ,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,KAAK,EAAE,EAAE;AACT,oBAAA,IAAI,EAAE;AACT,iBAAA,CAAC;AACF,gBAAA,OAAO,KAAK;AAChB,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;AAEU,IAAA,uBAAuB,CAAC,WAAmB,EAAE,OAAwB,EAAE,MAAkB,EAAA;AAC/F,QAAA,MAAM,EAAE;QACR,IAAI,eAAe,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ;YAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,CAAC;IACxD;AAEU,IAAA,YAAY,CAAC,OAAe,EAAE,YAA2B,EAAE,MAAW,EAAE,OAAwB,EAAA;AACtG,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC;IAClE;AAEU,IAAA,UAAU,CAAC,OAAe,EAAE,YAA2B,EAAE,MAAW,EAAE,OAAwB,EAAA;AACpG,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC;IAClE;AAEU,IAAA,SAAS,CAAC,GAAW,EAAE,OAAwB,EAAE,QAA2B,EAAA;AAClF,QAAA,MAAM,YAAY,GAAkB,EAAC,GAAG,EAAE,EAAE,EAAC;AAE7C,QAAA,OAAO,IAAI,WAAW,CAAC,QAAQ,IAAG;YAC9B,IAAI,CAAC,QAAQ,EAAE;AACX,gBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ;oBAAE;AAC7B,gBAAA,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC;gBAC3F;YACJ;AACA,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE;AACnC,YAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;AAChD,gBAAA,IAAI,CAAC,YAAY,CAAC,CAAA,EAAG,GAAG,CAAA,qEAAA,CAAuE,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;gBAC/H;YACJ;YACA,MAAM,KAAK,GAAG,sEAAsE;AACpF,YAAA,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AAC9C,gBAAA,IAAI,CAAC,UAAU,CAAC,8BAA8B,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;gBAC3I;YACJ;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,CAAA,EAAG,GAAG,CAAA,gFAAA,CAAkF,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;AAC9I,QAAA,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAI;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,IAAG;AAC9C,gBAAA,YAAY,CAAC,GAAG,GAAG,WAAW;AAC9B,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC;AACzE,gBAAA,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,GAAG;AAC5E,sBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO;AACtD,gBAAA,YAAY,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AAClC,oBAAA,IAAI,OAAO,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,KAAK,aAAa,CAAC,cAAc,EAAE;AACxE,wBAAA,MAAM,QAAQ,GAAG;AACb,4BAAA,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;4BAChE,MAAM,EAAE,KAAK,CAAC,MAAM;4BACpB,KAAK,EAAE,KAAK,CAAC;yBAChB;wBACD,IAAI,QAAQ,EAAE;4BACV,QAAQ,CAAC,QAAQ,CAAC;wBACtB;wBACA;oBACJ;AACA,oBAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAChD,oBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAsB;oBAC9C,MAAM,OAAO,GAAG,eAAe;;AAE/B,oBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBACpD,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;wBACxC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,WAAW;;AAE5D,wBAAA,IAAI,WAAW,GAAG,MAAM,GAAG,aAAa,EAAE;AACtC,4BAAA,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;wBAChC;oBACJ;AACJ,gBAAA,CAAC,EAAE,CAAC,QAA0C,KAAI;AAC9C,oBAAA,IAAI,QAAQ,YAAY,YAAY,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;wBACpF,MAAM,CAAC,QAAQ,CAAC;wBAChB;oBACJ;AACA,oBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAsB;oBAC9C,MAAM,OAAO,GAAG,eAAe;;AAE/B,oBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;wBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAK;4BACrD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC;AAC3D,4BAAA,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AAChE,wBAAA,CAAC,CAAC;wBACF,IAAI,MAAM,EAAE;AACR,4BAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;4BAC1E;wBACJ;oBACJ;oBACA,MAAM,CAAC,QAAQ,CAAC;AACpB,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEU,gBAAgB,GAAA;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC5C;AAEU,IAAA,iBAAiB,CAAC,GAAW,EAAE,OAAwB,EAAE,GAAe,EAAA;QAC9E,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,MAAM;AAAE,YAAA,OAAO,KAAK;AAC7D,QAAA,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,QAAA,OAAO,IAAI;IACf;AAEU,IAAA,YAAY,CAAC,OAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAClE,YAAA,OAAO,KAAK;QAChB;AACA,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACrD;AAEU,IAAA,WAAW,CAAC,OAAyB,EAAE,MAAA,GAAiB,KAAK,EAAE,IAAU,EAAA;;AAE/E,QAAA,OAAO,GAAG,OAAO,GAAG,EAAC,GAAG,OAAO,EAAC,GAAG,EAAE;AACrC,QAAA,OAAO,CAAC,MAAM,GAAG,MAAM;QACvB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM;AAC3C,QAAA,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAK,OAAO,CAAC,OAAwB,IAAI,EAAE;QAC5F,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe;AACzH,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;;AAEzB,QAAA,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;AAC3D,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM;QAC9C;QACA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QAC3C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AACzC,QAAA,OAAO,OAAO;IAClB;AAEU,IAAA,WAAW,CAAC,OAAwB,EAAA;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAClG;AAEU,IAAA,UAAU,CAAC,OAAwB,EAAA;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IAC/F;AAEU,IAAA,aAAa,CAAC,QAAa,EAAE,GAAW,EAAE,OAAwB,EAAA;AACxE,QAAA,OAAO,QAAQ;IACnB;AAEU,IAAA,QAAQ,CAAC,GAAW,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC;IAC3D;AAEU,IAAA,MAAM,WAAW,CAAC,GAAW,EAAE,OAAwB,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC7B;AAEU,IAAA,iBAAiB,CAAC,GAAW,EAAA;AACnC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO;AACxB,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,GAAG;AAC9E,QAAA,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG;AAChD,QAAA,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAA,GAAA,EAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,EAAG,SAAS,CAAA,EAAG,GAAG,EAAE;IACnE;AA7SS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAyBJ,QAAQ,EAAA,EAAA,EAAA,KAAA,EACR,cAAc,EAAA,EAAA,EAAA,KAAA,EACd,cAAc,EAAA,EAAA,EAAA,KAAA,EACd,gBAAgB,EAAA,EAAA,EAAA,KAAA,EAChB,eAAe,EAAA,EAAA,EAAA,KAAA,EACf,cAAc,aACF,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHA/BtC,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;0BA0BgB,MAAM;2BAAC,QAAQ;;0BACf,MAAM;2BAAC,cAAc;;0BACrB,MAAM;2BAAC,cAAc;;0BACrB,MAAM;2BAAC,gBAAgB;;0BACvB,MAAM;2BAAC,eAAe;;0BACtB,MAAM;2BAAC,cAAc;;0BACrB;;0BAAY,MAAM;2BAAC,eAAe;;;ACzD7C,MAAO,gBAAiB,SAAQ,eAAe,CAAA;AAIjD,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,YAAY;IACvB;AAEA,IAAA,IAAc,eAAe,GAAA;AACzB,QAAA,OAAO,KAAK;IAChB;IAEU,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;IACpB;AAEA,IAAA,GAAG,CAAC,GAAW,EAAA;AACX,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,GAAG;AACpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE;AACrD,QAAA,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI;AAC3E,cAAE;AACF,cAAE,CAAA,EAAG,OAAO,CAAA,EAAG,GAAG,EAAE;IAC5B;IAEA,GAAG,CAAC,GAAW,EAAE,OAAyB,EAAA;QACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;AAClE,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1B;AAEA,IAAA,QAAQ,CAAC,GAAW,EAAA;AAChB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ;AACvB,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,GAAG;YACJ,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,KAAI;AACrF,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;AACzB,YAAA,KAAK,CAAC,WAAW,GAAG,WAAW;YAC/B,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB,KAAK,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;AACnC,YAAA,KAAK,CAAC,OAAO,GAAG,MAAM;AAC1B,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAC3B;+GA7CS,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAhB,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;ACED;;AAEG;MAEU,WAAW,CAAA;AAMpB,IAAA,WAAA,CAAsB,SAA2B,EAC3B,IAAsB,EACH,IAAW,EAAA;QAF9B,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,IAAI,GAAJ,IAAI;AAEtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAkB;IACvC;IAEA,MAAM,SAAS,CAAY,IAAY,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,IAAI;AAClC,YAAA,OAAO,IAAI;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,IAAI,CAAA,KAAA,CAAO,EAAE;AAC1E,YAAA,YAAY,EAAE;AACjB,SAAA,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,KAAI;AACpB,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AAC5B,YAAA,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACxC,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAiB;IAC7C;AAEA,IAAA,eAAe,CAAiB,IAAY,EAAA;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,IAAI;AAClC,YAAA,OAAO,IAAI;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE;QAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,eAAe,CAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,IAAI,CAAA,KAAA,CAAO,CAAC,EAClC,IAAI,CAAC,IAAI,CACZ;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACnC;AAlCS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,4EAQA,mBAAmB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAR9B,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;0BASgB,MAAM;2BAAC,mBAAmB;;;ACb3C,MAAM,WAAW,GAAU,EAAE;MAGhB,UAAU,CAAA;AAInB,IAAA,WAAA,CAAqB,QAAkB,EAAW,KAAmB,EAAiC,IAAkB,EAAA;QAAnG,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAqB,IAAA,CAAA,KAAK,GAAL,KAAK;QAA+C,IAAA,CAAA,IAAI,GAAJ,IAAI;AACtG,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AAC5C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;AAChC,YAAA,MAAM,KAAK,GAAqB,IAAI,IAAI,IAAI,CAAC,KAAK,YAAY,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACnI,YAAA,KAAK,CAAC,IAAI,CAAC,MAAM,IAAG;gBAChB,IAAI,MAAM,EAAE;AACR,oBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;wBAAE;AAC1B,oBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,oBAAA,MAAM,SAAS,GAAkB,IAAI,CAAC,SAAS;oBAC/C,IAAI,CAAC,IAAI,CAAC,SAAS;wBAAE;AACrB,oBAAA,IAAI,IAAI,CAAC,KAAK,EAAE;wBACZ,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;4BACrD,SAAS,CAAC,iBAAiB,EAAE;wBACjC;AACA,wBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;wBAClB;oBACJ;oBACA,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;wBACjD,SAAS,CAAC,aAAa,EAAE;oBAC7B;oBACA;gBACJ;AACC,gBAAA,IAAI,CAAC,KAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,IAAG;AACpE,oBAAA,IAAI,CAAC,WAAW;wBAAE;AAClB,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;AACpC,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAK;AACtB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;YAChC,IAAI,CAAC,IAAI,EAAE,SAAS;gBAAE;AACtB,YAAA,MAAM,SAAS,GAAkB,IAAI,CAAC,SAAS;YAC/C,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;gBACrD,SAAS,CAAC,iBAAiB,EAAE;YACjC;AACA,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AACtB,QAAA,CAAC,CAAC;IACN;IAEU,YAAY,GAAA;AAClB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;AAC9B,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACjE,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,MAAM,SAAS,GAAoB,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,EAAE,CAAC,CAAC;AACxE,YAAA,IAAI,GAAG;AACH,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;AACvB,gBAAA,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI;AACtD,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,KAAK,EAAE;aACV;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B;QACA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;AACrC,QAAA,OAAO,IAAI;IACf;AA7DS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,mEAI4D,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAJlF,UAAU,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB;;0BAK2E,MAAM;2BAAC,YAAY;;;ACNzF,MAAO,UAAW,SAAQ,eAAe,CAAA;AAE3C,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,KAAK;IAChB;AAEA,IAAA,GAAG,CAAC,GAAW,EAAA;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAA,CAAE,CAAC;QACrD,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,IAAI,QAAQ,EAAE;YACtC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;QACxC;AACA,QAAA,OAAO,OAAO;IAClB;AAEA,IAAA,GAAG,CAAC,GAAW,EAAE,OAAyB,EAAE,IAAU,EAAA;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;IAC9C;AAEA,IAAA,MAAM,CAAC,GAAW,EAAE,OAAyB,EAAE,IAAU,EAAA;QACrD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;IACjD;AAEA,IAAA,IAAI,CAAC,GAAW,EAAE,IAAU,EAAE,OAAyB,EAAA;QACnD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;IAC/C;AAEA,IAAA,GAAG,CAAC,GAAW,EAAE,IAAU,EAAE,OAAyB,EAAA;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;IAC9C;AAEA,IAAA,KAAK,CAAC,GAAW,EAAE,IAAU,EAAE,OAAyB,EAAA;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;IAChD;AAEA,IAAA,MAAM,CAAC,GAAW,EAAE,IAAS,EAAE,QAA2B,EAAE,OAAyB,EAAA;AACjF,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC3D;IAEA,IAAI,CAAC,GAAW,EAAE,MAAmB,EAAA;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC;IACxC;+GAxCS,UAAU,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAV,UAAU,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB;;;MCHY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QAEI,IAAA,CAAA,eAAe,GAAY,IAAI;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;IAS5D;IAPI,kBAAkB,GAAA;QACd,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;IAChD;AAEA,IAAA,cAAc,CAAC,KAAa,EAAA;AACxB,QAAA,OAAO,IAAI;IACf;AACH;;MCPY,aAAa,CAAA;AAQtB,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU;IAC1B;AAEA,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,YAAY;IAC5B;AAEA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,oBAAoB;IAC3D;AAEA,IAAA,WAAA,CAAqB,IAAoB,EACpB,SAA2B,EAC3B,QAAkB,EACI,WAAgB,EAChB,OAAe,EACb,UAAA,GAA6B,IAAI,EAC/B,eAAoB,IAAI,EAAA;QANlD,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACc,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,OAAO,GAAP,OAAO;AAG9C,QAAA,KAAK,MAAM,GAAG,IAAI,EAAE,EAAE;YAClB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE;AACxC,gBAAA,UAAU,EAAE;AACf,aAAA,CAAC;QACN;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAC7B,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,EAC/F,IAAI,CAAC,UAAU,CAClB;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY,IAAI,EAAE;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,MAAK;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,KAAI;gBAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAG;AAC1B,oBAAA,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;oBACrE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAG;AAChC,wBAAA,IAAI,CAAC,YAAY,GAAG,CAAC;wBACrB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,GAAG;wBAC5B,OAAO,CAAC,CAAC,CAAC;AACd,oBAAA,CAAC,CAAC;gBACN,CAAC,EAAE,MAAM,CAAC;AACd,YAAA,CAAC,CAAC;YACF,OAAO,IAAI,CAAC,MAAM;AACtB,QAAA,CAAC;QACD,IAAI,CAAC,WAAW,EAAE;IACtB;IAEU,WAAW,GAAA;IAErB;AAEU,IAAA,MAAM,QAAQ,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YACzB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC7C;AACA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,QAAA,IAAI;AACA,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAA,EAAG,SAAS,CAAA,CAAA,CAAG,GAAG,SAAS,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC,SAAS,EAAE;AAClH,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/B;QAAE,OAAO,CAAC,EAAE;AACR,YAAA,IAAI;AACA,gBAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE;AACzD,gBAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA,CAAE,CAAC;AAC7C,gBAAA,OAAO,MAAM;YACjB;YAAE,OAAO,CAAC,EAAE;AACR,gBAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,CAAA,CAAE,CAAC;YAC7D;QACJ;IACJ;AAEU,IAAA,aAAa,CAAC,MAAsB,EAAA;AAC1C,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;IAClC;IAEA,aAAa,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,WAAW,YAAY,WAAW,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAgB;YAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC7C,YAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAG;AACrB,gBAAA,IAAI,KAAK,YAAY,WAAW,EAAE;oBAC9B,KAAK,CAAC,MAAM,EAAE;gBAClB;AACJ,YAAA,CAAC,CAAC;AACF,YAAA,OAAO,KAAK;QAChB;QACA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3C;IAEA,UAAU,CAAC,GAAW,EAAE,MAAc,EAAA;AAClC,QAAA,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO;QACnE,MAAM,aAAa,GAAG,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK;AACpD,QAAA,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE;QACvG,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAA,CAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,aAAa,GAAG,QAAQ,GAAG,CAAA,CAAE,GAAG,GAAG;IACzE;AAEA,IAAA,cAAc,CAAC,GAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;IACjC;IAEA,iBAAiB,CAAC,IAAY,EAAE,GAAY,EAAA;QACxC,GAAG,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;QACnE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,mBAAmB,CAAC,EACzD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,EAAE;AAC1B,QAAA,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7D;AAnHS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kGAuBF,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,YAAY,EAAA,EAAA,EAAA,KAAA,EACA,WAAW,6BACX,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHA1BpC,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;0BAwBgB,MAAM;2BAAC,YAAY;;0BACnB,MAAM;2BAAC,YAAY;;0BACnB;;0BAAY,MAAM;2BAAC,WAAW;;0BAC9B;;0BAAY,MAAM;2BAAC,aAAa;;;AC7B3C,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AAOjD,IAAA,WAAA,CAAqB,QAAkB,EAAA;AACnC,QAAA,KAAK,EAAE;QADU,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAEzB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACtB;AAEA,IAAA,WAAW,CAAC,KAAY,EAAA;AACpB,QAAA,IAAI;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC1E;QAAE,OAAO,CAAC,EAAE;YACR;QACJ;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;AACvB,QAAA,IAAI;AACA,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;AAC/D,YAAA,IAAI,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,GAAA,EAAM,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC;QAC/D;QAAE,OAAO,CAAC,EAAE;AACR,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACzB,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,GAAA,EAAM,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC;gBAC5D;YACJ;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ;YAAE;AAC7B,QAAA,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA,EAAG,KAAK,CAAC,OAAO,CAAA,CAAA,EAAI,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO;QAC/H,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI;YAAE;AAChF,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI;AACzB,QAAA,IAAI;AACA,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC;AACjE,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA,GAAA,EAAM,KAAK,CAAC,OAAO,CAAA,EAAA,EAAK,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC;QACrE;QAAE,OAAO,CAAC,EAAE;QACZ;AACA,QAAA,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,GAAA,EAAM,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC;IAChE;+GAtCS,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAnB,mBAAmB,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;MCCY,aAAa,CAAA;AAYtB,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,MAAM;IACtB;AAEA,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI;IACtB;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAAE;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,EAAE;AACpC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,OAAO,EAAU;AAChD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,OAAO,EAAE;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,EAAE;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,IAAG;AAC9B,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,KAAK,CAAC,CAAQ,EAAA;AACV,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/B;AAEA,IAAA,YAAY,CAAC,MAAe,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;IACnC;+GAzCS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAb,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;;MCEY,gBAAgB,CAAA;AAEzB,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,CAAC;IACZ;AAEA,IAAA,IAAI,mBAAmB,GAAA;AACnB,QAAA,OAAO,aAAa;IACxB;AAEA,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,OAAO,CAAC;IACZ;AAEA,IAAA,WAAA,CAA6C,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAErD;AAEA,IAAA,WAAW,CAAC,KAAa,EAAE,SAAkB,EAAE,OAAgB,EAAA;AAC3D,QAAA,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC;IAC/F;IAEA,YAAY,CAAC,KAAsB,EAAE,MAAe,EAAE,SAAkB,EAAE,OAAgB,EAAE,SAAkB,EAAA;AAC1G,QAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AACxC,QAAA,SAAS,GAAG,SAAS,IAAI,SAAS;AAClC,QAAA,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,cAAc;QACxC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAW,KAAK,GAAG,UAAU,CAAS,KAAK,CAAC,IAAI,CAAC;AACxF,QAAA,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;AACtE,YAAA,qBAAqB,EAAE,SAAS;AAChC,YAAA,qBAAqB,EAAE,SAAS;AAChC,YAAA,WAAW,EAAE;AAChB,SAAA,CAAC;AACF,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAC,GAAG,EAAE,GAAG,EAAC,CAAC;IAC/E;AAEA,IAAA,gBAAgB,CAAC,KAAa,EAAE,SAAkB,EAAE,OAAgB,EAAA;AAChE,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA,WAAA,CAAa,EAAE,SAAS,EAAE,OAAO,CAAC;IACtE;AAEU,IAAA,YAAY,CAAC,SAAiB,EAAA;AACpC,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,gBAAgB;IAC9E;AAzCS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAcL,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAd3B,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;0BAegB,MAAM;2BAAC,gBAAgB;;;MCf3B,qBAAqB,CAAA;AAO9B,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,YAAY,EAAO;AAC/C,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;IAChC;IAEA,GAAG,CAAC,EAAU,EAAE,SAAe,EAAA;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,SAAS;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC5C,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE;YAC/C,QAAQ,CAAC,SAAS,CAAC;QACvB;AACA,QAAA,OAAO,QAAQ;IACnB;IAEA,GAAG,CAAC,EAAU,EAAE,QAA0B,EAAA;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,QAAQ;AACnC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;IAChC;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;IAChC;IAEA,oBAAoB,CAAC,EAAU,EAAE,QAAiC,EAAA;AAC9D,QAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,QAAQ;IAC1C;+GAnCS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAArB,qBAAqB,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;MCIY,WAAW,CAAA;AAEpB,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IAAI,UAAU,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IAC3B;AAMA,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,EAAO;AAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACzB;AAEA,IAAA,OAAO,CAAC,IAAY,EAAE,UAAkB,EAAE,MAAe,EAAA;QACrD,IAAI,GAAG,OAAO,KAAK,IAAI,WAAW,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACjE,UAAU,GAAG,OAAO,KAAK,IAAI,WAAW,GAAG,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;AACnF,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACtD;+GAxBS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAX,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;ACWM,MAAM,UAAU,GAAkB,EAAE;MAG9B,qBAAqB,CAAA;AAE9B,IAAA,IAAI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5G;AAEA,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,UAAU;IACtE;IAEA,IAAI,UAAU,CAAC,KAAoB,EAAA;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;QAC3C,IAAI,CAAC,iBAAiB,EAAE;IAC5B;AAEA,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,YAAY;IAC5B;AAEA,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe;IACnD;IAEA,IAAI,eAAe,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACvB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1C;AAEA,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe;IAChD;IAEA,IAAI,YAAY,CAAC,IAAY,EAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC,eAAe;QAC5C,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACvD;AAEA,IAAA,IAAI,kBAAkB,GAAA;QAClB,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IAAI,kBAAkB,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QACxB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/C;AAEA,IAAA,IAAI,mBAAmB,GAAA;AACnB,QAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB;IACnC;IAEA,IAAI,mBAAmB,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK;IACpC;AAEA,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,MAAM;IACtB;AAEA,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;IAC9B;AAEA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;IACjC;IAUA,WAAA,CAA4C,MAAqB,EACpB,OAAuB,EACvB,OAAuB,EACrB,QAAyB,EAC1B,MAAsB,EAAA;QAJxB,IAAA,CAAA,MAAM,GAAN,MAAM;QACL,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,OAAO,GAAP,OAAO;QACL,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACT,IAAA,CAAA,MAAM,GAAN,MAAM;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;QACtB,IAAI,CAAC,YAAY,GAAG;AAChB,YAAA,IAAI,EAAE;SACT;QACD,IAAI,CAAC,oBAAoB,GAAG;AACxB,YAAA,IAAI,EAAE;SACT;AACD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY;QAC3C,IAAI,CAAC,WAAW,EAAE;IACtB;IAEU,WAAW,GAAA;IAErB;AAEA,IAAA,gBAAgB,CAAC,SAAmB,EAAA;QAChC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,YAAY;AAC5F,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAS,SAAS,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAG;AAC7B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU;AACnE,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,YAAY,CAAC,SAAmB,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC;YAAE;AACxD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D;AAEA,IAAA,uBAAuB,CAAC,YAAgC,EAAA;AACpD,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,oBAAoB,GAAG,YAAY;YACxC,IAAI,CAAC,iBAAiB,EAAE;YACxB;QACJ;AACA,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE;AAC9B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY;IAC/C;AAEA,IAAA,kBAAkB,CAAC,GAAW,EAAE,MAAA,GAAiB,IAAI,EAAA;AACjD,QAAA,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,EAAE;AACnB,QAAA,IAAI;AACA,YAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,EAAE;AACxC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU;YAC5B,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YACnD;YACA,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC;QACxC;QAAE,OAAO,MAAM,EAAE;AACb,YAAA,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC;AAC7C,YAAA,OAAO,GAAG;QACd;IACJ;AAEA,IAAA,MAAM,cAAc,CAAC,GAAW,EAAE,SAAc,IAAI,EAAA;AAChD,QAAA,MAAM,IAAI,CAAC,cAAc,EAAE;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC;IAC/C;IAEA,eAAe,CAAC,GAAG,IAAc,EAAA;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAgB,OAAO,IAAG;YACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAG;AAC7E,gBAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAI;oBACnC,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AAC7B,oBAAA,OAAO,MAAM;AACjB,gBAAA,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,wBAAwB,CAAC,YAA2B,EAAE,MAAY,EAAE,IAAa,EAAA;AAC7E,QAAA,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,eAAe;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3E;AAEA,IAAA,uBAAuB,CAAC,YAA4B,EAAE,MAAY,EAAE,IAAa,EAAA;AAC7E,QAAA,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,eAAe;QACnC,MAAM,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI;AAChF,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,GAAG,EAAE,EAAE,MAAM,CAAC;IAC/E;AAEU,IAAA,MAAM,cAAc,GAAA;QAC1B,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEU,aAAa,CAAC,IAAY,EAAE,UAAyB,EAAA;QAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;YACxE,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;AAC9C,YAAA,OAAO,GAAG;QACd,CAAC,EAAE,EAAmB,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAClC;IAEU,WAAW,CAAC,IAAuB,EAAE,MAAe,EAAA;AAC1D,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;;AAE1B,YAAA,OAAO,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;QACnE;AACA,QAAA,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB;AACA,QAAA,OAAO,IAAc;IACzB;IAEU,iBAAiB,CAAC,IAAY,EAAE,MAAe,EAAA;AACrD,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,SAAiB,EAAE,CAAS,KAAI;AAC1E,YAAA,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;AAC7C,YAAA,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;AACnD,QAAA,CAAC,CAAC;IACN;IAEU,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE;AACtE,YAAA,OAAO,IAAI;QACf;QACA,IAAI,WAAW,GAAW,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;eACrF,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,IAAI;AACnH,QAAA,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,WAAW;QAEpC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;YAC1B,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACpC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChD;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,WAAW;IACtB;IAEU,iBAAiB,GAAA;AACvB,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;AACtB,YAAA,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACjC,YAAA,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAC3C,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,KAAI;YACxE,MAAM,CAAC,QAAQ,CAAC,GAAG;gBACf,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC;gBAC9C,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC;aACzD;AACD,YAAA,OAAO,MAAM;QACjB,CAAC,EAAE,EAAwB,CAAC;IAChC;+GA9NS,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EA0EV,aAAa,EAAA,EAAA,EAAA,KAAA,EACb,cAAc,aACd,cAAc,EAAA,EAAA,EAAA,KAAA,EACd,eAAe,EAAA,EAAA,EAAA,KAAA,EACf,cAAc,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHA9EzB,qBAAqB,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;0BA2EgB,MAAM;2BAAC,aAAa;;0BACpB,MAAM;2BAAC,cAAc;;0BACrB,MAAM;2BAAC,cAAc;;0BACrB,MAAM;2BAAC,eAAe;;0BACtB,MAAM;2BAAC,cAAc;;;AC5FhC,MAAO,eAAgB,SAAQ,qBAAqB,CAAA;AAMtD,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe;IACnD;IAEA,IAAI,eAAe,CAAC,IAAY,EAAA;QAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAK;YAC7B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK;AAC5C,QAAA,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;IACzE;AAEA,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAI;AACrG,YAAA,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAc,CAAC,IAAI,EAAE;QACnE,CAAC,CAAC,CAAC;IACP;IAEU,WAAW,GAAA;QACjB,KAAK,CAAC,WAAW,EAAE;QACnB,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC;AAClD,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;QAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAoB,IAAI,CAAC;AACpE,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ;YAAE;AAC7B,QAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAY,KAAI;AACrC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC/B,QAAA,CAAC;IACL;AAEA,IAAA,MAAM,gBAAgB,GAAA;AAClB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;AAC5C,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE;AAC1C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpC,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,EAAE;AAChD,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,IAAG;YACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW;YACxD,IAAI,WAAW,EAAE;gBACb,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;gBACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;AAC9D,gBAAA,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAAE,oBAAA,OAAO,KAAK;YAC3E;YACA,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,QAAA,CAAC,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,eAAe,CAAC;QACzC;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW;AAC1C,eAAA,IAAI,CAAC,cAAc,CAAC,eAAe;AACnC,eAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC5E,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1C;AAEU,IAAA,cAAc,CAAC,IAAY,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;AACtB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI;AACpE,cAAE,IAAI,GAAG,IAAI;IACrB;IAEU,MAAM,WAAW,CAAC,IAAY,EAAA;AACpC,QAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC;AAClD,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,UAAU;QACrD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE;IAChC;IAEA,MAAM,aAAa,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,UAAU;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAA,CAAE;AAC5C,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAgB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAA,EAAG,GAAG,CAAA,CAAE,CAAC;aACzJ,IAAI,CAAC,QAAQ,IAAG;AACb,YAAA,QAAQ,GAAG,QAAQ,IAAI,EAAE;AACzB,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAI;gBAC5D,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC/C,gBAAA,OAAO,MAAM;YACjB,CAAC,EAAE,EAAmB,CAAC;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU;YACpC,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,OAAO,UAAU;AACrB,QAAA,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAG;AACb,YAAA,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACtD,YAAA,OAAO,UAAU;AACrB,QAAA,CAAC,CAAC;AACN,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;IACzC;AAEU,IAAA,MAAM,cAAc,GAAA;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;IAC/C;IAEU,YAAY,GAAA;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAA,CAAE;QAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAoB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA,gBAAA,EAAmB,GAAG,CAAA,CAAE,CAAC;aAClJ,KAAK,CAAC,KAAK,IAAG;AACX,YAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC;YACpD,OAAO;AACH,gBAAA,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7B,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,eAAe,EAAE,IAAI;AACrB,gBAAA,QAAQ,EAAE;AACN,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,EAAE,EAAE;AACP;aACJ;AACL,QAAA,CAAC,CAAC;QACN,OAAO,IAAI,CAAC,eAAe;IAC/B;+GAxHS,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAf,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;MCFY,cAAc,CAAA;AAIvB,IAAA,WAAA,CAA0C,GAAgB,EAAA;QAAhB,IAAA,CAAA,GAAG,GAAH,GAAG;IAE7C;IAEA,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,OAAO,EAAE,OAAO,IAAG;AAChE,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,IAAG;AAChC,gBAAA,MAAM,OAAO,GAAoB,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE;gBACjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,IAAG;AACpC,oBAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;wBAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAC/B,oBAAA,CAAC,CAAC;AACN,gBAAA,CAAC,CAAC;gBACF,OAAO,CAAC,OAAO,CAAC;YACpB,CAAC,EAAE,MAAK;gBACJ,OAAO,CAAC,EAAE,CAAC;AACf,YAAA,CAAC,CAAC;QACN,CAAC,EAAE;QACH,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,MAAM,SAAS,CAAC,IAAY,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE;AACvC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;AACxB,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC;IACxB;AA9BS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAIH,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAJtB,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;0BAKgB,MAAM;2BAAC,WAAW;;;MCJtB,qBAAqB,CAAA;AAE9B,IAAA,WAAA,CAA8C,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAEtD;AAEA,IAAA,KAAK,CAAC,OAAe,EAAE,MAAY,EAAE,KAAc,EAAA;QAC/C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,qCAAqC,CAAC,CAAC;IACjH;AAEA,IAAA,IAAI,CAAC,OAAe,EAAE,MAAY,EAAE,KAAc,EAAA;QAC9C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,qCAAqC,CAAC,CAAC;IACjH;AAEA,IAAA,OAAO,CAAC,OAAe,EAAE,MAAY,EAAE,KAAc,EAAA;QACjD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,qCAAqC,CAAC,CAAC;IACjH;AAEA,IAAA,OAAO,CAAC,OAAe,EAAE,MAAY,EAAE,KAAc,EAAA;QACjD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,qCAAqC,CAAC,CAAC;IACjH;AAEQ,IAAA,gBAAgB,CAAC,OAAe,EAAE,MAAW,EAAE,QAAmC,EAAA;AACtF,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChE;AAxBS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAEV,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAF3B,qBAAqB,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;0BAGgB,MAAM;2BAAC,gBAAgB;;;ACGlC,MAAO,uBAAwB,SAAQ,oBAAoB,CAAA;AAI7D,IAAA,WAAA,CAA+C,QAA0B,EAAA;AACrE,QAAA,KAAK,EAAE;QADoC,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAEnD,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;IACnB;AAEA,IAAA,SAAS,CAAC,IAAa,EAAA;AACnB,QAAA,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,IAAG;AACtD,YAAA,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI;AAC3D,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;AACnC,QAAA,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;IAChC;AAEA,IAAA,KAAK,CAAC,GAAW,EAAA;QACb,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,IAAG;AACtD,YAAA,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI;AAC3D,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,aAAa,CAAC,SAAkB,EAAA;QAC5B,MAAM,MAAM,GAAG,SAAS,GAAG,CAAA,SAAA,CAAW,GAAG,CAAA,KAAA,CAAO;QAChD,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;QACxD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AACpD,gBAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;AAAE,oBAAA,OAAO,GAAG;AACzC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;gBACvB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC/B,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,GAAG;AACtD,gBAAA,OAAO,GAAG;YACd,CAAC,EAAE,EAAE,CAAC;QACV;AACA,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1B;IAEA,mBAAmB,CAAC,YAA6B,EAAE,EAAiC,EAAA;AAChF,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,IAAI;QAC9B,MAAM,WAAW,GAAG,EAAE;QACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC1E,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACtE,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAChB,YAAA,OAAO,GAAG;QACd,CAAC,EAAE,EAAE,CAAC;AACN,QAAA,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAG;AAC/D,YAAA,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAC3D,EAAE,CAAC,CAAC,CAAC;AACL,YAAA,OAAO,CAAC;AACZ,QAAA,CAAC,CAAC,EAAE,QAAQ,CAAC;AACb,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAG;AACpB,YAAA,CAAC,CAAC,MAAM,GAAG,QAAQ;AACvB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,QAAQ;IACnB;AA9DS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAIZ,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAJ3B,uBAAuB,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;0BAKgB,MAAM;2BAAC,gBAAgB;;;MCT3B,cAAc,CAAA;AAEvB,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,YAAY;IAC5B;AAEA,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,cAAc;IAC9B;AAKA,IAAA,WAAA,CAAqC,IAAY,EAAA;QAAZ,IAAA,CAAA,IAAI,GAAJ,IAAI;AACrC,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,EAAU;IACpD;AAEA,IAAA,MAAM,CAAI,QAAiG,EAAA;QACvG,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,OAAO,CAAI,QAAQ,CAAC,CAAC,CAAC;IAChF;AAEA,IAAA,GAAG,CAAC,QAAwB,EAAA;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E;AAEA,IAAA,OAAO,CAAI,KAAyB,EAAA;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E;AAEA,IAAA,MAAM,CAAI,KAAyB,EAAA;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E;IAEU,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC;YAAE;QAC5B,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAC/C;AAEU,IAAA,GAAG,CAAI,OAAmB,EAAA;QAChC,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3C,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,KAAI;AACxC,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,IAAG;gBACb,OAAO,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,eAAe,EAAE;YAC1B,CAAC,EAAE,CAAC,IAAG;gBACH,MAAM,CAAC,CAAC,CAAC;gBACT,IAAI,CAAC,eAAe,EAAE;AAC1B,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;AApDS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAaH,MAAM,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAbjB,cAAc,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;0BAcgB,MAAM;2BAAC,MAAM;;;MCbjB,cAAc,CAAA;AAMvB,IAAA,WAAA,CAAsB,cAAmC,EAAA;QAAnC,IAAA,CAAA,cAAc,GAAd,cAAc;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC;YACvC,QAAQ,EAAE,cAAc,KAAK,UAAU,GAAG,QAAQ,GAAG;AACxD,SAAA,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,cAAc,KAAK,UAAU,IAAI,OAAO,cAAc,KAAK,UAAU;AACzF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE;IAC9B;IAEA,QAAQ,CAAC,IAAiB,EAAE,EAA6B,EAAA;AACrD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE;AAC9B,QAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAK;YACrC,qBAAqB,CAAC,MAAK;gBACvB,EAAE,CAAC,IAAI,CAAC;AACZ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AACF,QAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtC;AAEA,IAAA,SAAS,CAAC,IAAiB,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YAC7B;QACJ;QACA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACzC,QAAA,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/B;AACH;;AClCD,SAASE,aAAW,GAAA;AAEpB;AAEA,SAAS,QAAQ,CAAC,EAAO,EAAA;IACrB,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,EAAE,KAAK,MAAM;AACzD;AAGM,MAAO,iBAAkB,SAAQC,gBAAkB,CAAA;aAErC,IAAA,CAAA,UAAU,GAAW,QAAX,CAAoB;AAI9C,IAAA,WAAA,CAA8B,GAAQ,EACM,WAAmB,EAChB,cAAmC,EAC7D,SAA2B,EAAA;QAC5C,KAAK,CAAC,GAAG,CAAC;QAH8B,IAAA,CAAA,WAAW,GAAX,WAAW;QACR,IAAA,CAAA,cAAc,GAAd,cAAc;QACxC,IAAA,CAAA,SAAS,GAAT,SAAS;QAE1B,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,cAAc,CAAC;IACtD;AAEA,IAAA,QAAQ,CAAC,SAAiB,EAAA;AACtB,QAAA,OAAO,SAAS,KAAK,iBAAiB,CAAC,UAAU;IACrD;AAEA,IAAA,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB,EAAA;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACnC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ;AACvB,gBAAA,OAAOD,aAAW;AACtB,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,EAAE;AACxC,YAAA,MAAM,EAAE,GAAG,CAAC,EAAO,KAAI;AACnB,gBAAA,KAAK,CAAC,GAAG,CAAC,MAAK;oBACX,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;AAC/B,gBAAA,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;AACxB,YAAA,CAAC;AACD,YAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;AACnB,gBAAA,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC;YAC3C;iBACK;gBACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACvC;AACA,YAAA,OAAO,MAAK;AACR,gBAAA,IAAI;AACA,oBAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;AACnB,wBAAA,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC9C;yBACK;AACD,wBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;oBACpC;gBACJ;gBACA,OAAO,CAAC,EAAE;gBACV;wBAAU;oBACN,KAAK,CAAC,KAAK,EAAE;gBACjB;AACJ,YAAA,CAAC;AACL,QAAA,CAAC,CAAC;IACN;AAlDS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAMN,QAAQ,EAAA,EAAA,EAAA,KAAA,EACR,YAAY,aACZ,eAAe,EAAA,EAAA,EAAA,KAAA,EAAAF,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAR1B,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAOgB,MAAM;2BAAC,QAAQ;;0BACf,MAAM;2BAAC,YAAY;;0BACnB,MAAM;2BAAC,eAAe;;;SCrBvB,WAAW,GAAA;AAE3B;AAGM,MAAO,iBAAkB,SAAQG,gBAAkB,CAAA;aAEtC,IAAA,CAAA,UAAU,GAAW,QAAX,CAAoB;IAE7C,WAAA,CAA8B,GAAQ,EAAU,SAA2B,EAAA;QACvE,KAAK,CAAC,GAAG,CAAC;QADkC,IAAA,CAAA,SAAS,GAAT,SAAS;IAEzD;AAEA,IAAA,QAAQ,CAAC,SAAS,EAAA;AACd,QAAA,OAAO,SAAS,KAAK,iBAAiB,CAAC,UAAU;IACrD;AAEA,IAAA,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB,EAAA;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACnC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ;AAAE,gBAAA,OAAO,WAAW;AAC/C,YAAA,MAAM,QAAQ,GAAG,CAAC,CAAQ,KAAI;gBAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAA,CAAC;AACD,YAAA,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC7C,OAAO,MAAM,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACjE,QAAA,CAAC,CAAC;IACN;AAtBS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAIN,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAH,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAJnB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAKgB,MAAM;2BAAC,QAAQ;;;MCTnB,SAAS,CAAA;IAClB,SAAS,CAAC,KAAY,EAAE,KAAa,EAAA;QACjC,MAAM,MAAM,GAAU,EAAE;QACxB,IAAI,SAAS,GAAU,IAAI;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC1B,YAAA,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,EAAE;gBACpB,SAAS,GAAG,EAAE;AACd,gBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1B;AACA,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAM;IACjB;+GAZS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAT,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACKD,MAAM,YAAY,GAAa,EAAE;MAKpB,WAAW,CAAA;AAEpB,IAAA,SAAS,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,YAAY;QAC/B,MAAM,OAAO,GAAa,EAAE;QAC5B,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAI;YACpC,OAAO,CAAC,IAAI,CAAC;AACT,gBAAA,GAAG,EAAE,GAAG;AACR,gBAAA,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,OAAO,CAAC;AAClB,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,OAAO;IAClB;+GAbS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCNY,uBAAuB,CAAA;AAChC,IAAA,SAAS,CAAC,KAAY,EAAE,UAA4B,EAAE,SAAc,EAAE,EAAA;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;AACf,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;YAC7B,UAAU,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,KAAI;AAC9E,gBAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC/B,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,KAAK,EAAE,KAAK;AACZ,oBAAA,MAAM,EAAE;AACX,iBAAA,CAAC;AACN,YAAA,CAAC;AACL,QAAA,CAAC,CAAC;QACF,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAI;AAClE,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;AAClD,YAAA,OAAO,MAAM;AACjB,QAAA,CAAC,EAAE,EAAC,GAAG,IAAI,EAAC,CAAC,CAAC;IAClB;+GAjBS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAvB,uBAAuB,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;SCHeI,eAAa,GAAA;AACzB,IAAA,OAAO,IAAI;AACf;MAKa,UAAU,CAAA;AACnB,IAAA,SAAS,CAAC,MAAW,EAAE,SAAcA,eAAa,EAAE,SAAc,EAAE,EAAA;QAChE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,EAAE;QACxD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAI;YACxF,MAAM,KAAK,GAAG,GAAG;AACjB,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;AAC5E,QAAA,CAAC;QACD,IAAI,QAAQ,EAAE;YACV,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,IAAG;AACpC,gBAAA,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YACvD,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAI;gBACtB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AACzB,gBAAA,OAAO,MAAM;YACjB,CAAC,EAAE,EAAE,CAAC;QACV;QACA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;YAChC,OAAO,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;AACjD,QAAA,CAAC,CAAC;IACN;+GAnBS,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;SCNeA,eAAa,GAAA;AACzB,IAAA,OAAO,IAAI;AACf;MAKa,QAAQ,CAAA;AACjB,IAAA,SAAS,CAAC,MAAa,EAAE,MAAA,GAAcA,eAAa,EAAE,MAAY,EAAA;AAC9D,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,EAAE;AAC3C,QAAA,MAAM,GAAG,MAAM,IAAI,EAAE;AACrB,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC9B,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM;QAC1B;QACA,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,KAAI;AAC1F,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;AACvE,QAAA,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClF;+GAXS,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAR,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCHY,gBAAgB,CAAA;AAEzB,IAAA,WAAA,CAAoB,SAA2B,EAAA;QAA3B,IAAA,CAAA,SAAS,GAAT,SAAS;IAC7B;AAEA,IAAA,SAAS,CAAC,KAAa,EAAE,MAAe,EAAE,SAAkB,EAAE,OAAgB,EAAA;AAC1E,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IACzE;+GAPS,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCCY,aAAa,CAAA;IACtB,SAAS,CAAC,KAAU,EAAE,MAAW,EAAA;QAC7B,OAAO,KAAK,IAAI,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI;IACzF;+GAHS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCAY,WAAW,CAAA;AACpB,IAAA,SAAS,CAAC,KAAU,EAAA;QAChB,OAAO,OAAO,KAAK;IACvB;+GAHS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCEY,YAAY,CAAA;AAErB,IAAA,SAAS,CAAC,KAAU,EAAE,IAAY,EAAE,aAAkB,EAAE,EAAA;AACpD,QAAA,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;IACzE;+GAJS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCGY,kBAAkB,CAAA;AAO3B,IAAA,WAAA,CAAsB,eAAsC,EAAA;QAAtC,IAAA,CAAA,eAAe,GAAf,eAAe;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;IAC9B;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAK;AACzE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC9B,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,gBAAgB;AACrB,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;IAC3C;IAEA,SAAS,CAAC,UAAkB,EAAE,SAAe,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,IAAI;AAC5B,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE;AACtE,YAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU;AAClC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC;QACzE;QACA,OAAO,IAAI,CAAC,cAAc;IAC9B;+GA9BS,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCAY,WAAW,CAAA;AAEpB,IAAA,SAAS,CAAC,OAAc,EAAE,MAAc,EAAE,MAAiB,IAAI,EAAA;AAC3D,QAAA,MAAM,MAAM,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,MAAW,EAAE,IAAS,KAAI;AAC7D,YAAA,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;AACpD,YAAA,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG;YACxC,MAAM,KAAK,GAAU,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AACtC,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAChB,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;AACnB,YAAA,OAAO,MAAM;QACjB,CAAC,EAAE,EAAE,CAAC;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAG;AACjC,YAAA,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAC;AAC3C,QAAA,CAAC,CAAC;IACN;+GAdS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;SCHe,aAAa,GAAA;AACzB,IAAA,OAAO,IAAI;AACf;MAMa,YAAY,CAAA;AACrB,IAAA,SAAS,CAAC,KAAU,EAAE,GAAG,MAAa,EAAA;QAClC,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5E;+GAHS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCLY,UAAU,CAAA;IACnB,SAAS,CAAC,KAAU,EAAE,IAAY,EAAA;AAC9B,QAAA,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI;IAClC;+GAHS,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCEY,QAAQ,CAAA;AAEjB,IAAA,SAAS,CAAC,KAAU,EAAE,SAAA,GAAoB,IAAI,EAAA;AAC1C,QAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;AAC9B,cAAE,KAAK,CAAC,IAAI,CAAC,SAAS;cACpB,EAAE;IACZ;+GANS,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAR,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACFD,MAAM,SAAS,GAAU,EAAE;MAKd,QAAQ,CAAA;AAEjB,IAAA,SAAS,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,SAAS;AAC5B,QAAA,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK;cAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACzB,cAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5B;+GAPS,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAR,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACJK,SAAU,aAAa,CAAC,IAAI,EAAA;AAC9B,IAAA,OAAO,IAAI;AACf;MAKa,OAAO,CAAA;AAChB,IAAA,SAAS,CAAC,MAAa,EAAE,SAAc,aAAa,EAAE,SAAc,EAAE,EAAA;AAClE,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,EAAE;QAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,KAAI;AAClF,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE;AAChC,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,MAAM,EAAE;AACX,aAAA,CAAC;AACN,QAAA,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACzE;+GAXS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAP,OAAO,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAHnB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCFY,OAAO,CAAA;AAChB,IAAA,SAAS,CAAC,KAAY,EAAE,WAAgB,IAAI,EAAE,SAAc,EAAE,EAAA;QAC1D,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAY,IAAI,CAAC;QAC7C,MAAM,WAAW,GAAa,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,KAAI;AAC1F,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAClC,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,MAAM,EAAE;AACX,aAAA,CAAC;AACN,QAAA,CAAC;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACnF;+GAXS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAP,OAAO,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAHnB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCCY,OAAO,CAAA;AAChB,IAAA,SAAS,CAAC,KAAU,EAAE,WAAgB,IAAI,EAAE,SAAc,EAAE,EAAA;QACxD,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAY,IAAI,CAAC;QAC7C,MAAM,WAAW,GAAa,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,KAAI;AAC1F,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAClC,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,MAAM,EAAE;AACX,aAAA,CAAC;AACN,QAAA,CAAC;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACnF;+GAXS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAP,OAAO,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAHnB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCDY,OAAO,CAAA;AAEhB,IAAA,SAAS,CAAC,KAAY,EAAA;QAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;IACjE;+GAJS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAP,OAAO,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAHnB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACDK,SAAU,cAAc,CAAC,MAAM,EAAA;AACjC,IAAA,OAAO,MAAM;AACjB;MAKa,UAAU,CAAA;IACnB,SAAS,CAAC,MAAa,EAAE,MAAW,EAAE,OAAA,GAAe,cAAc,EAAE,MAAA,GAAc,EAAE,EAAA;AACjF,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,EAAE;QAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAI;AAC5F,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE;AACjC,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,MAAM,EAAE;AACX,aAAA,CAAC;AACN,QAAA,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IACpG;+GAZS,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACND,MAAM,KAAK,GAAQ,EAAE;MAKR,SAAS,CAAA;AAElB,IAAA,SAAS,CAAC,GAAQ,EAAE,MAAW,EAAE,eAAuB,KAAK,EAAA;AACzD,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,KAAK;AACtB,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,GAAG;QACvB,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,EAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,KAAI;AACrF,YAAA,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AACjE,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,KAAI;AACrC,oBAAA,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;AACnH,oBAAA,OAAO,MAAM;gBACjB,CAAC,EAAE,EAAE,CAAC;AACN,gBAAA,OAAO,KAAK;YAChB;AACA,YAAA,OAAO,IAAI;AACf,QAAA,CAAC,CAAC;QACF,OAAO,QAAQ,CAAC,GAAG;IACvB;+GAhBS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAT,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCDY,WAAW,CAAA;AACpB,IAAA,SAAS,CAAC,KAAa,EAAE,IAAqB,EAAE,EAAU,EAAA;QACtD,OAAO,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAA,EAAG,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAA,CAAE;IAC3E;+GAHS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACFD,MAAM,UAAU,GAAU,EAAE;MAKf,WAAW,CAAA;AAEpB,IAAA,SAAS,CAAC,KAAY,EAAA;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,UAAU;QAClD,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB;AACA,QAAA,OAAO,MAAM;IACjB;+GATS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCDY,SAAS,CAAA;AAElB,IAAA,WAAA,CAAoB,SAA2B,EAAA;QAA3B,IAAA,CAAA,SAAS,GAAT,SAAS;IAC7B;AAEA,IAAA,SAAS,CAAC,KAAa,EAAE,YAAoB,CAAC,EAAE,UAAkB,CAAC,EAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC;IAChE;+GAPS,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAT,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCCY,YAAY,CAAA;AAErB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;IAE7B;AAEA,IAAA,SAAS,CAAC,KAAa,EAAE,IAAA,GAAe,MAAM,EAAA;QAC1C,QAAQ,IAAI;AACR,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACxD,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC;AACzD,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAC1D,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC;AACvD,YAAA,KAAK,aAAa;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC;AAC/D,YAAA;AACI,gBAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,IAAI,CAAA,CAAE,CAAC;;IAE3F;+GArBS,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCAY,SAAS,CAAA;AAElB,IAAA,SAAS,CAAC,KAAY,EAAA;QAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;IACnE;+GAJS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAT,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCCY,SAAS,CAAA;AAElB,IAAA,SAAS,CAAC,KAAU,EAAE,SAAA,GAAoB,GAAG,EAAA;QACzC,OAAO,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACtC;+GAJS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAT,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCKY,aAAa,CAAA;AAStB,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe;IACxC;IAEA,WAAA,CAAqB,GAAsB,EAAqC,QAA0B,EAAA;QAArF,IAAA,CAAA,GAAG,GAAH,GAAG;QAAwD,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAExF;AAEA,IAAA,SAAS,CAAC,KAAuB,EAAE,GAAG,IAAW,EAAA;AAC7C,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE;QACrB,IAAI,KAAK,GAAG,KAAK;AACjB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU;AAC3C,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;YAC5B,KAAK,GAAG,IAAI;QAChB;AACA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AAClD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;YACxB,KAAK,GAAG,IAAI;QAChB;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;YAClB,KAAK,GAAG,IAAI;QAChB;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,YAAA,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/C,gBAAA,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC/C,oBAAA,MAAM,SAAS,GAAW,IAAI,CAAC,CAAC;AAC3B,yBAAA,OAAO,CAAC,kCAAkC,EAAE,CAAA,KAAA,CAAO;AACnD,yBAAA,OAAO,CAAC,sBAAsB,EAAE,CAAA,KAAA,CAAO,CAAC;AAC7C,oBAAA,IAAI;wBACA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;oBACvC;oBAAE,OAAO,CAAC,EAAE;wBACR,MAAM,IAAI,WAAW,CAAC,CAAA,qEAAA,EAAwE,IAAI,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;oBAC5G;gBACJ;AAAO,qBAAA,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;gBACzB;YACJ;YACA,KAAK,GAAG,IAAI;QAChB;QACA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK;AAChC,sBAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM;AAC1D,sBAAE,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;gBAChE,OAAO,IAAI,CAAC,SAAS;YACzB;AACA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACtB,OAAO,IAAI,CAAC,SAAS;YACzB;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;AACrE,YAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,IAAG;AAC1D,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACxB,oBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;gBAC5B;AACJ,YAAA,CAAC,CAAC;QACN;QACA,OAAO,IAAI,CAAC,SAAS;IACzB;AAzES,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,mDAa+B,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAb5D,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;mHAAb,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB;;kBACA,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,IAAI,EAAE;AACT,iBAAA;;0BAciD,MAAM;2BAAC,gBAAgB;;;ACnBzE,MAAM,WAAW,GAAU,EAAE;MAKhB,UAAU,CAAA;AAEnB,IAAA,SAAS,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,WAAW;AAC9B,QAAA,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK;AAC5B,cAAE;AACF,cAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD;+GAPS,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;MCSY,eAAe,CAAA;AAUxB,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,QAAQ;IACxB;AAEA,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,WAAA,CAA+C,OAAwB,EAAY,GAAsB,EAAA;QAA1D,IAAA,CAAA,OAAO,GAAP,OAAO;QAA6B,IAAA,CAAA,GAAG,GAAH,GAAG;AAClF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,EAAiB;AAClD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAiB;IACpD;IAEU,SAAS,GAAA;AACf,QAAA,OAAO,YAAY,IAAI;IAC3B;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC5B;AAGA,IAAA,KAAK,CAAC,EAAS,EAAA;QACX,EAAE,EAAE,cAAc,EAAE;QACpB,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,IAAI;QAC9B,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,OAAO,IAAI;IACf;IAEA,UAAU,GAAA;QACN,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/B,QAAA,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACpD,QAAA,IAAI,EAAE,MAAM,YAAY,OAAO,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,OAAO,KAAK;QAChB;AACA,QAAA,MAAM,CAAC,IAAI,CAAC,MAAM,IAAG;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACpB,IAAI,MAAM,EAAE;AACR,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;YACxD;QACJ,CAAC,EAAE,MAAM,IAAG;AACR,YAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO;AAC1B,gBAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;AACpE,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;AACtD,QAAA,CAAC,CAAC,CAAC,OAAO,CAAC,MAAK;YACZ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;YAC5B;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,IAAI;IACf;AApES,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAoBJ,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGApB1B,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE;AACb,iBAAA;;0BAqBgB,MAAM;2BAAC,eAAe;yEAlB1B,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAES,SAAS,EAAA,CAAA;sBAAlB;gBACS,OAAO,EAAA,CAAA;sBAAhB;gBAKG,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,gBAAgB;gBAMzB,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,eAAe;gBAmB5B,KAAK,EAAA,CAAA;sBADJ,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;ACzC/B,MAAO,oBAAqB,SAAQ,eAAe,CAAA;IAI3C,SAAS,GAAA;QACf,OAAO,IAAI,CAAC,MAAM;IACtB;+GANS,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE;AACb,iBAAA;8BAG0B,MAAM,EAAA,CAAA;sBAA5B,KAAK;uBAAC,cAAc;;;ACLzB,MAAM,YAAY,GAAG,eAAe;AACpC,MAAM,YAAY,GAAG,eAAe;MAKvB,mBAAmB,CAAA;AAK5B,IAAA,WAAA,CAAoB,IAAgB,EAAU,OAAmB,EAAU,QAAmB,EAAU,SAA2B,EAAA;QAA/G,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAsB,IAAA,CAAA,OAAO,GAAP,OAAO;QAAsB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAqB,IAAA,CAAA,SAAS,GAAT,SAAS;IAEjH;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC;QACJ;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;AACnE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;AAChE,QAAA,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,IAAG;AAC7D,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAC3B,CAAC,EAAE,MAAK;AACJ,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;AACnE,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;AACpE,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,aAAa,CAAC,GAAW,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;AACnE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,kBAAkB,EAAE,QAAQ,GAAG,CAAA,EAAA,CAAI,CAAC;QACvF,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC;IAC9F;+GA7BS,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;8JAGY,UAAU,EAAA,CAAA;sBAAlB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;;;MCLQ,iBAAiB,CAAA;aAET,IAAA,CAAA,MAAM,GAAsB,IAAtB,CAA2B;AA4DlD,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa;IACrC;AAEA,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,MAAM;IACtB;AAEA,IAAA,IACI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,IACI,UAAU,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,KAAK;YAAE;QACZ,IAAI,CAAC,IAAI,EAAE;IACf;AAEA,IAAA,WAAA,CAAsB,OAAgC,EAAA;QAAhC,IAAA,CAAA,OAAO,GAAP,OAAO;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAO;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAO;AACvC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,EAAiB;AACnD,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,KAAiB,KAAU;;YAEvC,IAAI,KAAK,CAAC,MAAM;gBAAE;AAClB,YAAA,MAAM,MAAM,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAS;;;AAGtE,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE;;gBAE/E,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;AACtF,gBAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,oBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACpC;;AAEA,gBAAA,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAAE;YACvD;YACA,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AACvE,QAAA,CAAC;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,KAAoB,KAAa;AAC/C,YAAA,MAAM,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAqB;AACjF,YAAA,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC;YACtF,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,IAAI,QAAQ,EAAE;gBACjC,KAAK,CAAC,eAAe,EAAE;gBACvB,KAAK,CAAC,cAAc,EAAE;YAC1B;AACA,YAAA,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG,EAAE;gBAC/C,IAAI,CAAC,IAAI,EAAE;AACX,gBAAA,OAAO,KAAK;YAChB;AACA,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,YAAA,OAAO,IAAI;AACf,QAAA,CAAC;IACL;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,iBAAiB,CAAC,MAAM,KAAK,IAAI,EAAE;AACnC,YAAA,iBAAiB,CAAC,MAAM,GAAG,IAAI;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B;IACJ;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;AAIA,IAAA,IAAI,CAAC,MAAc,EAAA;QACf,IAAI,IAAI,CAAC,MAAM;YAAE;QACjB,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,IAAI,CAAC,eAAe;AAAE,gBAAA,OAAO,IAAI;YACtC,MAAM,CAAC,cAAc,EAAE;QAC3B;QACA,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,IAAI;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,iBAAiB,CAAC,MAAM,GAAG,IAAI;;QAE/B,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE;YAClB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;YAChD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;QACxD,CAAC,EAAE,EAAE,CAAC;AACN,QAAA,OAAO,IAAI;IACf;IAEA,IAAI,GAAA;QACA,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,SAAS,EAAE;QAChB,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QACnD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;;QAEvD,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,iBAAiB,CAAC,MAAM,KAAK,IAAI,EAAE;AACnC,gBAAA,iBAAiB,CAAC,MAAM,GAAG,IAAI;AAC/B,gBAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;YAC/B;QACJ,CAAC,EAAE,EAAE,CAAC;AACN,QAAA,OAAO,IAAI;IACf;+GAlLS,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE;AACb,iBAAA;+EAWY,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAQQ,aAAa,EAAA,CAAA;sBAArB;gBAMQ,eAAe,EAAA,CAAA;sBAAvB;gBAMQ,KAAK,EAAA,CAAA;sBAAb;gBAMQ,eAAe,EAAA,CAAA;sBAAvB;gBAES,OAAO,EAAA,CAAA;sBAAhB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;gBACS,UAAU,EAAA,CAAA;sBAAnB;gBAYG,QAAQ,EAAA,CAAA;sBADX,WAAW;uBAAC,YAAY;gBAMrB,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,gBAAgB;gBAMzB,UAAU,EAAA,CAAA;sBADb;gBAqED,IAAI,EAAA,CAAA;sBAFH,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;sBACxC,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;;ACvI7C,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;MAoBlC,wBAAwB,CAAA;AAQjC,IAAA,WAAA,CAAsB,GAAqB,EACa,QAAqB,EAC3C,QAA2B,EAC5B,WAA6B,EAAA;QAHxC,IAAA,CAAA,GAAG,GAAH,GAAG;QAC+B,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAC9B,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACT,IAAA,CAAA,WAAW,GAAX,WAAW;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC;QAC9G;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC;QAChF;AACA,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC7B;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,iBAAiB,CACjD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,EACxD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAC7D;IACL;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;QAChC,IAAI,CAAC,WAAW,EAAE;IACtB;IAEU,UAAU,CAAC,OAAgB,KAAK,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc;YAAE;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK;AAC1C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;QACvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,OAAO;;QAEtC,MAAM,UAAU,GAAiB,EAAE;AACnC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC7B,YAAA,UAAU,CAAC,IAAI,CACX,KAAK,CAAC;AACF,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBAChC,OAAO,EAAE,UAAU;aACtB,CAAC,EACF,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC7C;QACL;AACA,QAAA,UAAU,CAAC,IAAI,CACX,KAAK,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAC5B;AACD,QAAA,MAAM,OAAO,GAAG,YAAmC;AAC/C,YAAA,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,IAAI,WAAW;AACrD,YAAA,IAAI,YAAY,IAAI,KAAK,EAAE;gBACvB,OAAO;AACH,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;AACpD,wBAAA,QAAQ,EAAE,OAAO;AACpB,qBAAA;AACD,oBAAA,SAAS,EAAE,KAAK;oBAChB;iBACH;YACL;AACA,YAAA,MAAM,EAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAC,GAAG,MAAM,eAAe,CAC3D,GAAG,EACH,OAAO,EACP;AACI,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ;gBAC9C;AACH,aAAA,CACJ;YAED,OAAO;AACH,gBAAA,MAAM,EAAE;AACJ,oBAAA,IAAI,EAAE,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,EAAE,GAAG,EAAE,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;AACxD,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA;gBACD,SAAS;gBACT,YAAY;gBACZ;aACH;AACL,QAAA,CAAC;;QAED,IAAI,CAAC,OAAO,GAAG,UAAU,CACrB,GAAG,EACH,OAAO,EACP,MAAK;AACD,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAC,KAAI;AAEjE,gBAAA,IAAI,cAAc,EAAE,KAAK,EAAE;oBACvB,MAAM,EAAC,CAAC,EAAE,CAAC,EAAC,GAAG,cAAc,CAAC,KAAK;AACnC,oBAAA,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;AACzB,wBAAA,IAAI,EAAE,CAAC,IAAI,IAAI,GAAG,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,GAAG,CAAA,CAAE;AAC/B,wBAAA,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,GAAG,CAAA,CAAE;AACjC,qBAAA,CAAC;gBACN;gBAEA,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;oBACjC,OAAO,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG;AACzB,oBAAA,MAAM,EAAE,CAAA,sBAAA;AACX,iBAAA,CAAC;AAEF,gBAAA,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,EAAE;AAC3C,gBAAA,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE;AACnD,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa;AACxC,gBAAA,MAAM,YAAY,GAAG,CAAA,mBAAA,EAAsB,SAAS,EAAE;gBACtD,IAAI,aAAa,EAAE;oBACf,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;oBAClD,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;gBAC1D;qBAAO;AACH,oBAAA,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;AAC/B,oBAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;gBACvC;AACA,gBAAA,IAAI,YAAY,IAAI,KAAK,EAAE;oBACvB,IAAI,CAAC,YAAY,EAAE;AACf,wBAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,sBAAA,CAAwB,CAAC;AAC/C,wBAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,uBAAA,CAAyB,CAAC;oBACvD;yBAAO;AACH,wBAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,uBAAA,CAAyB,CAAC;AAChD,wBAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,sBAAA,CAAwB,CAAC;oBACtD;AACA,oBAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,wBAAA,CAA0B,CAAC;gBACxD;qBAAO;AACH,oBAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,wBAAA,CAA0B,CAAC;AACjD,oBAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,uBAAA,CAAyB,CAAC;AACnD,oBAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,sBAAA,CAAwB,CAAC;gBACtD;AACA,gBAAA,SAAS,CAAC,OAAO,CAAC,IAAI,IAAG;AACrB,oBAAA,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,IAAI,CAAA,CAAE,EAAE,CAAA,EAAG,OAAO,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI,CAAC;AACnE,oBAAA,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,CAAA,CAAE,EAAE,CAAA,EAAG,WAAW,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI,CAAC;AACxE,gBAAA,CAAC,CAAC;AACF,gBAAA,IAAI,CAAC,aAAa,GAAG,YAAY;AACrC,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CACJ;IACL;IAEU,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc;YAAE;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI;AACnC,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChB,QAAA,IAAI,CAAC,OAAO,IAAI;IACpB;IAEU,aAAa,GAAA;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;QACrC,IAAI,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,OAAO,IAAI,CAAC,QAAQ;QACxB;AACA,QAAA,IAAI,MAAM,YAAY,UAAU,EAAE;YAC9B,OAAO,MAAM,CAAC,aAAa;QAC/B;AACA,QAAA,IAAI,MAAM,YAAY,WAAW,EAAE;AAC/B,YAAA,OAAO,MAAM;QACjB;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAA4B;AAC5D,QAAA,OAAO,MAAM,EAAE,aAAa,IAAI,IAAI,CAAC,QAAQ;IACjD;IAEU,aAAa,GAAA;QACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,QAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,sBAAA,CAAwB,CAAC;AAC7C,QAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACjC,QAAA,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzD,QAAA,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxD,GAAG,CAAC,aAAa,EAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAE1E,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;AACpE,YAAA,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;AACvC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;AACrB,oBAAA,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;gBACxD;AACJ,YAAA,CAAC,CAAC;QACN;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;AACjD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;QAC7C;QACA,IAAI,aAAa,EAAE;YACf,MAAM,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrG,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvG,YAAA,IAAI,QAAQ,IAAI,UAAU,EAAE;AACxB,gBAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,0BAAA,CAA4B,CAAC;YACvD;iBAAO;gBACH,MAAM,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY;gBACjD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAA,CAAE,CAAC;YAC1D;QACJ;AACA,QAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC;AAC9C,QAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;IAC3B;IAEA,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACrB,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACxC;AAhNS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,kDASD,YAAY,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGATnC,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA;;0BAUgB;;0BAAY,MAAM;2BAAC,YAAY;;0BAC/B;;0BACA;;;ACvCX,MAAO,uBAAwB,SAAQ,eAAe,CAAA;AAKxD,IAAA,WAAA,CAAqB,OAAmB,EACnB,QAA2B,EACX,OAAwB,EACjD,GAAsB,EAAA;AAC9B,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;QAJF,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAIzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;IACtB;IAEU,SAAS,GAAA;QACf,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,UAAU,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACxB;AAAO,aAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACxB;AACA,QAAA,OAAO,IAAI;IACf;AAzBS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,0EAOZ,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAP1B,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,iBAAiB;AAC9B,iBAAA;;0BAQgB,MAAM;2BAAC,eAAe;yEAL1B,UAAU,EAAA,CAAA;sBAAlB;gBACQ,MAAM,EAAA,CAAA;sBAAd;;;MCNQ,6BAA6B,CAAA;AAKtC,IAAA,WAAA,CAAmB,GAAqB,EAAA;QAArB,IAAA,CAAA,GAAG,GAAH,GAAG;IACtB;+GANS,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;gFAIY,MAAM,EAAA,CAAA;sBAAd;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;MCJQ,uBAAuB,CAAA;IAIhC,WAAA,CAAqB,eAAsC,EACtC,QAA0B,EAAA;QAD1B,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAE7B;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpD;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACxC;+GAfS,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;iHAG4B,EAAE,EAAA,CAAA;sBAA1B,KAAK;uBAAC,gBAAgB;;;MCad,aAAa,CAAA;AAOtB,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,MAAM;IACtB;AAIA,IAAA,WAAA,CAAoB,OAAmB,EAAU,QAAmB,EAAgC,KAAmB,EAAA;QAAnG,IAAA,CAAA,OAAO,GAAP,OAAO;QAAsB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAA2C,IAAA,CAAA,KAAK,GAAL,KAAK;AACrG,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC;AAC9D,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAW;IACnD;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAChF;IAEA,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;IACtC;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA,SAAA,EAAY,OAAO,CAAC,IAAI,CAAC,aAAa,CAAA,CAAE,CAAC;AAC/F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA,SAAA,EAAY,OAAO,CAAC,IAAI,CAAC,YAAY,CAAA,CAAE,CAAC;QAC/F;QACA,IAAI,CAAC,UAAU,EAAE;IACrB;IAGA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;QAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,UAAU,EAAE;IACrB;IAEQ,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,OAAA,CAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAG;AAC7F,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU;gBAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI;AAC/C,QAAA,CAAC,CAAC;IACN;AAhDS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,qEAcwD,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAdjF,aAAa,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;;0BAe0E,MAAM;2BAAC,YAAY;yCAZjF,IAAI,EAAA,CAAA;sBAAZ;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACS,YAAY,EAAA,CAAA;sBAArB;gBAGG,QAAQ,EAAA,CAAA;sBADX,WAAW;uBAAC,cAAc;gBA8B3B,KAAK,EAAA,CAAA;sBADJ,YAAY;uBAAC,OAAO;;;MC1CZ,0BAA0B,CAAA;IAQ3B,OAAO,sBAAsB,CAAC,SAAuB,EAAA;AACzD,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC;AAC9D,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC;QAE7D,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE;AAC3C,YAAA,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE;gBAChC,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AACtC,oBAAA,OAAO,IAAI;gBACf;YACJ;AACA,YAAA,OAAO,KAAK;QAChB;aAAO;AACH,YAAA,OAAO,IAAI;QACf;IACJ;AAEA,IAAA,WAAA,CAAoB,iBAAmC,EAAA;QAAnC,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;IAAqB;AAE1D,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;QACrD,IAAI,YAAY,EAAE;YACd,IAAI,IAAI,CAAC,OAAO;AACZ,gBAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/E,IAAI,IAAI,CAAC,iBAAiB;AACtB,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC5F;QACA,IAAI,CAAC,SAAS,EAAE;IACpB;IAEA,SAAS,GAAA;QACL,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;QACpC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACjD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC;AAC3D,QAAA,OAAO,CAAC,SAAS,GAAG,OAAO;IAC/B;AAEQ,IAAA,kBAAkB,CAAC,OAAsB,EAAA;AAC7C,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AACpC,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC;AAC/C,QAAA,OAAO,CAAC,CAAC,OAAO,CAAC,mBAAmB;gBAC5B,SAAS,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,SAAS,CAAC;gBACzE,UAAU,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACxF;IAEQ,qBAAqB,CAAC,GAAQ,EAAE,OAAY,EAAA;AAChD,QAAA,IAAI,CAAC,GAAG;YAAE;QACV,IAAI,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC;AACzC,QAAA,IAAI,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;YAC9B,QAAQ,GAAG,GAAG;QAClB;QACA,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC;AAClD,QAAA,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC;;YAEhE,IAAI,IAAI,CAAC,GAAG,IAAI,QAAQ,KAAK,WAAW,EAAE;gBACtC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC;gBAC9C;YACJ;YACA,MAAM,IAAI,GAAa,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;YACvF,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC,WAAW,EAAE;AACvC,gBAAA,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI;YAC5B;QACJ;QACA,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAErC,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAChE,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;gBAAE;YACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;QACrC;IACJ;+GA9ES,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1B,0BAA0B,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;qFAKmB,OAAO,EAAA,CAAA;sBAAtB;gBACe,iBAAiB,EAAA,CAAA;sBAAhC;gBACe,iBAAiB,EAAA,CAAA;sBAAhC;;;MCbQ,mBAAmB,CAAA;AAE5B,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;IAC1C;AAEA,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE;IAC3C;AAgBA,IAAA,WAAA,CAAoB,IAAY,EAAA;QAAZ,IAAA,CAAA,IAAI,GAAJ,IAAI;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,EAAU;AAC5C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,EAAuB;AACxD,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC;IACvF;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE;QAC/D,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI;QAC7D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY;AAC9F,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE;IAClB;AAEA,IAAA,OAAO,CAAC,IAAa,EAAA;AACjB,QAAA,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;QACxD,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI;AAC7D,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAK;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;AAC1B,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,QAAQ,CAAC,IAAY,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE;IAClB;IAEQ,QAAQ,GAAA;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,IAAG;AAClD,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AAClG,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,YAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY;YACrD,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;AAChC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AACnC,gBAAA,MAAM,EAAE,GAAG,SAAS,GAAG,KAAK;gBAC5B,OAAO,IAAI,YAAY;AACnB,sBAAE;AACF,sBAAE,IAAI,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;AACzE,YAAA,CAAC,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC3B;YACJ;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,QAAA,CAAC,CAAC;IACN;+GAvES,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,QAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE;AACb,iBAAA;2EAWwB,MAAM,EAAA,CAAA;sBAA1B,KAAK;uBAAC,YAAY;gBACV,IAAI,EAAA,CAAA;sBAAZ;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAES,UAAU,EAAA,CAAA;sBAAnB;gBACS,SAAS,EAAA,CAAA;sBAAlB;;;MClBQ,uBAAuB,CAAA;AAIhC,IAAA,WAAA,CAAoB,UAA+B,EAAU,aAA+B,EAAU,WAA6B,EAAA;QAA/G,IAAA,CAAA,UAAU,GAAV,UAAU;QAA+B,IAAA,CAAA,aAAa,GAAb,aAAa;QAA4B,IAAA,CAAA,WAAW,GAAX,WAAW;IAEjH;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACjF;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;IAChC;IAEQ,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAU,KAAI;AACpD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;AACjE,QAAA,CAAC,CAAC;IACN;+GAvBS,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;MCIY,mBAAmB,CAAA;IAK5B,IACI,UAAU,CAAC,QAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACxB,IAAI,CAAC,UAAU,EAAE;IACrB;AAEA,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,QAAQ;IACxB;AAEA,IAAA,IAAI,GAAG,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG;IAC3B;AAEA,IAAA,WAAA,CAAoB,IAAgB,EAAU,aAA+B,EAAU,WAA6B,EAAU,SAA2B,EAAA;QAArI,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAsB,IAAA,CAAA,aAAa,GAAb,aAAa;QAA4B,IAAA,CAAA,WAAW,GAAX,WAAW;QAA4B,IAAA,CAAA,SAAS,GAAT,SAAS;AACnI,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE;IAC1C;IAEQ,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE;QACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACrC,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3C,YAAA,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAG;AAC3D,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG;AACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;AACzE,YAAA,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;QACnB;IACJ;+GAjCS,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE;AACb,iBAAA;sKAOO,UAAU,EAAA,CAAA;sBADb;;;MCNQ,eAAe,CAAA;AASxB,IAAA,WAAA,CAAoB,GAAsB,EAAU,MAAqB,EAAU,OAAmB,EAAA;QAAlF,IAAA,CAAA,GAAG,GAAH,GAAG;QAA6B,IAAA,CAAA,MAAM,GAAN,MAAM;QAAyB,IAAA,CAAA,OAAO,GAAP,OAAO;QACtF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa;QAC7D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC,MAAK;AAC7C,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3C,CAAC,EAAE,EAAE,CAAC;IACV;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAQ,KAAI;AACpE,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,YAAY,EAAE;AACrD,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;IACrC;IAIA,YAAY,GAAA;QACR,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,GAAG;AACpE,QAAA,IAAI,CAAC,QAAQ,GAAG,aAAa,GAAG,CAAC;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;IAC1B;+GApCS,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;wIAGgC,QAAQ,EAAA,CAAA;sBAApC,WAAW;uBAAC,cAAc;gBACS,UAAU,EAAA,CAAA;sBAA7C,WAAW;uBAAC,qBAAqB;gBA2BlC,YAAY,EAAA,CAAA;sBAFX,YAAY;uBAAC,eAAe;;sBAC5B,YAAY;uBAAC,eAAe;;;MC/BpB,oBAAoB,CAAA;AAM7B,IAAA,WAAA,CAAoB,MAAqB,EAAU,OAAmB,EAAU,QAAmB,EAAA;QAA/E,IAAA,CAAA,MAAM,GAAN,MAAM;QAAyB,IAAA,CAAA,OAAO,GAAP,OAAO;QAAsB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACxF;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,MAAK;AAC1D,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACtB,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;gBACxF;YACJ;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;AAC/F,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;IACpC;+GArBS,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;gIAGY,WAAW,EAAA,CAAA;sBAAnB;;;MCDQ,0BAA0B,CAAA;AAkBnC,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACxC;AAEA,IAAA,WAAA,CAAoB,UAAsB,EAAU,QAAmB,EAAU,aAA+B,EAAA;QAA5F,IAAA,CAAA,UAAU,GAAV,UAAU;QAAsB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAqB,IAAA,CAAA,aAAa,GAAb,aAAa;IAE9F;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE;AAC7D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,YAAY,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACvG,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK;YACvB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChF,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/C,YAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACxD,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1D,YAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrD,MAAM,OAAO,GAAQ,IAAI;YACzB,MAAM,QAAQ,GAAG;iBACZ;AACA,iBAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEjI,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAC1B,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC;;AAExD,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE;AAC1B,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;AAC7C,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,CAAA,KAAA,EAAQ,IAAI,CAAC,SAAS,CAAA,CAAE,CAAC;AACtC,YAAA,IAAI,CAAC,OAAO,CAAC,CAAA,KAAA,EAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA,CAAE,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA,CAAE,CAAC;QACxC,CAAC,EAAE,MAAM,IAAG;AACR,YAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC;AACzD,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,OAAO,CAAC,SAAiB,EAAE,KAAA,GAAiB,IAAI,EAAA;AACpD,QAAA,IAAI,CAAC,KAAK;YAAE;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;IACvC;+GA7DS,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1B,0BAA0B,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;sIAG+B,IAAI,EAAA,CAAA;sBAA/B,KAAK;uBAAC,mBAAmB;gBACjB,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;;;MCXQ,8BAA8B,CAAA;AAKvC,IAAA,WAAA,CAAqB,WAA6B,EAAA;QAA7B,IAAA,CAAA,WAAW,GAAX,WAAW;IAEhC;+GAPS,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA9B,8BAA8B,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;gFAIY,IAAI,EAAA,CAAA;sBAAZ;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;MCSQ,sBAAsB,CAAA;AAuB/B,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;IAClB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IACnD;IAEA,kBAAkB,GAAA;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS;AAC9E,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC5B;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,gBAAgB,GAAG;YACpB,GAAG,EAAE,IAAI,CAAC,kBAAkB;YAC5B,KAAK,EAAE,IAAI,CAAC,oBAAoB;YAChC,IAAI,EAAE,IAAI,CAAC;SACd;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC5B;+GAhDS,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,SAAA,EAad,8BAA8B,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCnD,q1HA+EA,igCD5Da,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;+BACI,gBAAgB,EAAA,QAAA,EAAA,q1HAAA,EAAA;sFAKjB,IAAI,EAAA,CAAA;sBAAZ;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBAOO,kBAAkB,EAAA,CAAA;sBADzB,eAAe;uBAAC,8BAA8B;gBAIvC,kBAAkB,EAAA,CAAA;sBADzB,SAAS;uBAAC,oBAAoB;gBAGvB,oBAAoB,EAAA,CAAA;sBAD3B,SAAS;uBAAC,sBAAsB;gBAGzB,mBAAmB,EAAA,CAAA;sBAD1B,SAAS;uBAAC,qBAAqB;;;ME1BvB,oBAAoB,CAAA;AAuD7B,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QACzB,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM;QAC5B,IAAI,CAAC,qBAAqB,EAAE;IAChC;IAEU,qBAAqB,GAAA;QAC3B,IAAI,CAAC,aAAa,GAAG;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC5C;IACL;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;IAC7B;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,qBAAqB,EAAE;IAChC;+GAjFS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAoDlB,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjEvC,yjBAeA,EAAA,MAAA,EAAA,CAAA,ylGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDFa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,EAAA,aAAA,EACF,iBAAiB,CAAC,IAAI,YAC3B,cAAc,EAAA,QAAA,EAAA,yjBAAA,EAAA,MAAA,EAAA,CAAA,ylGAAA,CAAA,EAAA;wDASf,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAOQ,SAAS,EAAA,CAAA;sBAAjB;gBAMQ,SAAS,EAAA,CAAA;sBAAjB;gBAOQ,aAAa,EAAA,CAAA;sBAArB;gBAOQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAMQ,cAAc,EAAA,CAAA;sBAAtB;gBAKD,OAAO,EAAA,CAAA;sBADN,SAAS;uBAAC,wBAAwB;;;MEpD1B,uBAAuB,CAAA;AAShC,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;IACnC;AAEA,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;IACzD;IAIA,WAAA,CAAmB,KAAmB,EAAS,UAA+B,EAAA;QAA3D,IAAA,CAAA,KAAK,GAAL,KAAK;QAAuB,IAAA,CAAA,UAAU,GAAV,UAAU;AACrD,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC;AAChB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC7B;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/E;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;IAChC;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO;QAC1E,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI;QAC7F,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI;QAC1F,IAAI,CAAC,QAAQ,EAAE;IACnB;AAEA,IAAA,QAAQ,CAAC,IAAY,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;YAAE;AAChF,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9B;QACJ;AACA,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AACvC,QAAA,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;AAC1D,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;IAClC;IAEU,QAAQ,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AACtB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;QAC1C,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC;AAC1C,QAAA,IAAI,OAAO,GAAG,UAAU,EAAE;YACtB,OAAO,GAAG,UAAU;AACpB,YAAA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;QACvD;QACA,MAAM,KAAK,GAAa,EAAE;AAC1B,QAAA,KAAK,IAAI,GAAG,GAAG,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;AAC7C,YAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;+GAnES,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,oMCbpC,6rCAmBA,EAAA,MAAA,EAAA,CAAA,21EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDNa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,EAAA,aAAA,EACF,iBAAiB,CAAC,IAAI,YAC3B,iBAAiB,EAAA,QAAA,EAAA,6rCAAA,EAAA,MAAA,EAAA,CAAA,21EAAA,CAAA,EAAA;6GAMlB,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,aAAa,EAAA,CAAA;sBAArB;;;MEsBQ,qBAAqB,CAAA;AAoD9B,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;IACxD;AAuBU,IAAA,OAAO,OAAO,CAAC,OAAe,EAAE,CAAwB,EAAE,CAAwB,EAAA;AACxF,QAAA,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;AACnC,QAAA,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;QACnC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACpC;AAEA,IAAA,WAAA,CAAsB,OAAgC,EAAA;QAAhC,IAAA,CAAA,OAAO,GAAP,OAAO;AA0I7B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,IAAY,EAAE,YAAoB,KAA8B;AACxE,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI;YACpD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;AACtG,QAAA,CAAC;AA5IG,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;IACzB;IAEA,WAAW,CAAC,IAAY,EAAE,KAAU,EAAA;AAChC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;AACvC,QAAA,IAAI,CAAC,IAAI;YAAE;QACX,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA,EAAA,EAAK,IAAI,CAAA,CAAE,EAAE,KAAK,CAAC;IAC9C;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAI;YAClE,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;AACvC,gBAAA,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAG;AAC9B,oBAAA,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS;AAC9B,gBAAA,CAAC,CAAC;AACF,gBAAA,OAAO,MAAM;YACjB;AACA,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;AAAE,gBAAA,OAAO,MAAM;AAC1F,YAAA,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS;AACpC,YAAA,OAAO,MAAM;QACjB,CAAC,EAAE,EAAE,CAAC;IACV;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB;IAClE;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE;YAClD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,KAAI;AAChF,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;AACnD,oBAAA,OAAO,MAAM;AACjB,gBAAA,MAAM,CAAC,MAAM,CAAC,GAAG,EAAC,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,EAAE,IAAI,EAAE,MAAM,EAAC;AACvE,gBAAA,OAAO,MAAM;YACjB,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAI;AACjD,gBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;AAC1B,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK;AAC9C,sBAAE,EAAC,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,EAAE,IAAI,EAAE,KAAK;sBACjD,KAAK;AACX,gBAAA,OAAO,MAAM;YACjB,CAAC,EAAE,EAAmB,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;gBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBACpC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM;AACnD,YAAA,CAAC,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI;AACnF,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AACvC,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;AACxB,gBAAA,IAAI,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAAE,oBAAA,OAAO,GAAG;AACpD,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAChB,gBAAA,OAAO,GAAG;YACd,CAAC,EAAE,EAAE,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QACpF;QACA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACnE,QAAA,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI;QACvF;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO;YAAE;QACpJ,IAAI,CAAC,OAAO,EAAE;IAClB;AAEA,IAAA,OAAO,CAAC,IAAa,EAAA;QACjB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;IACjC;AAEA,IAAA,SAAS,CAAC,MAAc,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IACxC;IAEA,UAAU,CAAC,MAAc,EAAE,MAA0B,EAAA;QACjD,IAAI,MAAM,EAAE;YACR;QACJ;AACA,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe;AACtE,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;QACrB,IAAI,CAAC,OAAO,EAAE;IAClB;IAEA,aAAa,CAAC,CAAS,EAAE,KAAuB,EAAA;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,MAAM;YAAE;AAClB,QAAA,QAAQ,GAAG,CAAC,UAAU;AAClB,YAAA,KAAK,MAAM;AACP,gBAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAc;AACtD,gBAAA,MAAM,GAAG,GAAG,CAAA,EAAG,KAAK,EAAE;AACtB,gBAAA,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACd,oBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACf,oBAAA,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE;AAChB,wBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpB;oBACJ;gBACJ;qBAAO;AACH,oBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;gBAChB;AACA,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC/B;AACJ,YAAA,KAAK,UAAU;AACX,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACf,oBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpB;gBACJ;AACA,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;gBACpB;AACJ,YAAA;gBACI,IAAI,CAAC,KAAK,EAAE;AACR,oBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpB;gBACJ;AACA,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;gBACrB;;QAER,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IACxC;AAEA,IAAA,eAAe,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,OAAO,EAAE;IAClB;IAOU,aAAa,CAAC,IAAY,EAAE,WAAmB,EAAE,OAAe,EAAE,eAAwB,EAAE,MAAc,EAAA;AAChH,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,OAAO,CAAC,OAAO,CAAC;AACnB,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,KAAK,EAAE;AACV,aAAA,CAAC;QACN;QACA,MAAM,OAAO,GAA+B;AACxC,cAAE,CAAC,CAAC,EAAE,CAAC,KAAK,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AACvD,cAAE,CAAC,CAAC,EAAE,CAAC,KAAK,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,WAAW;AACrC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC;AACvD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE;AAC5C,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,KAAI;AAClC,YAAA,OAAO,IAAI,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC;AACtF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AACzC,YAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C;AACA,QAAA,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;QAC3F,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,KAAI;AAC1B,YAAA,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE;AAC7B,QAAA,CAAC,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,CAAC;AACnB,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE;AACV,SAAA,CAAC;IACN;+GA/PS,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,SAAA,EA0Eb,6BAA6B,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClHlD,69TAuLA,EAAA,MAAA,EAAA,CAAA,+1IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,cAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FD/Ia,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,EAAA,aAAA,EACF,iBAAiB,CAAC,IAAI,YAC3B,eAAe,EAAA,QAAA,EAAA,69TAAA,EAAA,MAAA,EAAA,CAAA,+1IAAA,CAAA,EAAA;+EAMhB,UAAU,EAAA,CAAA;sBAAlB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBAeD,WAAW,EAAA,CAAA;sBADV,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;gBAI3C,eAAe,EAAA,CAAA;sBADd,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;gBAI/C,eAAe,EAAA,CAAA;sBADd,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;gBAI5C,kBAAkB,EAAA,CAAA;sBADjB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;gBAI/C,sBAAsB,EAAA,CAAA;sBADrB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;gBAIzC,UAAU,EAAA,CAAA;sBADnB,SAAS;uBAAC,YAAY;gBAIb,kBAAkB,EAAA,CAAA;sBAD3B,eAAe;uBAAC,6BAA6B;;;AE7BlD;AACO,MAAM,KAAK,GAAG;IACjB,SAAS;IACT,WAAW;IACX,uBAAuB;IACvB,UAAU;IACV,QAAQ;IACR,gBAAgB;IAChB,aAAa;IACb,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,SAAS;IACT,WAAW;IACX,WAAW;IACX,SAAS;IACT,YAAY;IACZ,SAAS;IACT,SAAS;IACT,aAAa;IACb;CACH;AAED;AACO,MAAM,UAAU,GAAG;IACtB,eAAe;IACf,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,wBAAwB;IACxB,uBAAuB;IACvB,6BAA6B;IAC7B,uBAAuB;IACvB,aAAa;IACb,0BAA0B;IAC1B,mBAAmB;IACnB,uBAAuB;IACvB,mBAAmB;IACnB,eAAe;IACf,oBAAoB;IACpB,0BAA0B;IAC1B;CACH;AAED;AACO,MAAM,UAAU,GAAG;IACtB,oBAAoB;IACpB,qBAAqB;IACrB,uBAAuB;IACvB;CACH;AAEM,MAAM,SAAS,GAAG;AACrB,IAAA,GAAG,KAAK;IACR,cAAc;IACd,eAAe;IACf,SAAS;IACT,UAAU;IACV,UAAU;IACV,iBAAiB;IACjB,aAAa;IACb,mBAAmB;IACnB,aAAa;IACb,gBAAgB;IAChB,qBAAqB;IACrB,WAAW;IACX,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,YAAY;IACZ,qBAAqB;IACrB,cAAc;IACd,qBAAqB;IACrB,uBAAuB;IACvB,gBAAgB;IAChB,WAAW;IACX,qBAAqB;IACrB,qBAAqB;AACrB,IAAA;AACI,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,KAAK,EAAE;AACV,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,KAAK,EAAE;AACV,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,WAAW,EAAE;AAChB,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,WAAW,EAAE;AAChB;CAEJ;AAEK,SAAU,UAAU,CAAC,MAAsB,EAAA;IAC7C,OAAO,MAAM,CAAC,IAAI;AACtB;;MC/La,IAAI,CAAA;AAQb,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,GAAG,GAAG,EAAE;AACb,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,IAAI,GAAG;YACR,iCAAiC;YACjC,WAAW;YACX,aAAa;YACb,mBAAmB;YACnB,UAAU;YACV,UAAU;YACV,SAAS;YACT,SAAS;AACZ,SAAA,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;YAClB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;AACjC,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC;AACA,YAAA,OAAO,GAAG;QACd,CAAC,EAAE,EAAE,CAAC;IACV;AAEA,IAAA,WAAW,CAAC,KAAkB,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,OAAO,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE;YAClC,sBAAsB,EAAE,IAAI,CAAC,IAAI;YACjC,GAAG,EAAE,IAAI,CAAC;AACb,SAAA,CAAC,CAAC,IAAI,CAAC,MAAM,IAAG;AACb,YAAA,MAAMC,SAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAc;YAC9C,IAAI,CAAC,IAAI,GAAG;AACR,gBAAA,GAAGA,SAAO;AACV,gBAAA,kBAAkB,EAAE,CAAC,KAAiB,KAAI;oBACtC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,iBAAiB;oBACpD,MAAM,OAAO,GAAGA,SAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC,oBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,WAAkB;AACpC,oBAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;AACzE,oBAAA,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,oBAAA,OAAO,OAAO;gBAClB,CAAC;AACD,gBAAA,mBAAmB,EAAE,CAAC,OAAe,EAAE,KAAiB,KAAI;AACxD,oBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,WAAkB;AACpC,oBAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;AACzE,oBAAA,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AACpB,oBAAA,OAAO,KAAK;gBAChB;aACa;YACjB,IAAI,CAAC,iBAAiB,EAAE;YACxB,OAAO,IAAI,CAAC,IAAI;AACpB,QAAA,CAAC,CAAC;IACN;IAEU,iBAAiB,GAAA;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;QACtC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;IAChD;IAEU,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,IAAI,CAAC;YACL,MAAM,GAAG,GAAG,EAAE;AACd,YAAA,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;AAChB,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS;AAAE,oBAAA,OAAO,GAAG,CAAC,CAAC,CAAC;;oBAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3E;YACA,MAAM,OAAO,GAAG,EAAE;AAClB,YAAA,KAAK,CAAC,IAAI,GAAG,EAAE;AACX,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,OAAO;QAC7B;QACA,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEU,aAAa,CAAC,GAAG,EAAE,MAAM,EAAA;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;AAC7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjC,YAAA,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5C;AACA,QAAA,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;IAC1B;AAEA,IAAA,+BAA+B,CAAC,WAAmB,EAAA;QAC/C,IAAI,CAAC,iBAAiB,EAAE;IAC5B;AAEA,IAAA,SAAS,CAAC,IAAY,EAAA;AAClB,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;IAClC;IAEA,WAAW,CAAC,OAAe,EAAE,WAAmB,EAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC3C;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;QACjC,IAAI,OAAO,GAAG,CAAC;QACf,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,CAAS,KAAI;AACpD,YAAA,MAAM,GAAG,GAAG,WAAW,GAAG,OAAO;YACjC,OAAO,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,YAAA,OAAO,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;AAC7B,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,CAAC;IACZ;IAEA,iBAAiB,CAAC,cAAsB,EAAE,iBAAyB,EAAA;QAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC3C;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE;QACpC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;QAC7C,IAAI,OAAO,GAAG,CAAC;AACf,QAAA,OAAO,CAAC,OAAO,CAAC,UAAU,MAAM,EAAA;AAC5B,YAAA,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;AAChC,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,OAAO;;AAEzC,QAAA,OAAO,CAAC;IACZ;AAEA,IAAA,QAAQ,CAAC,EAAU,EAAA;;AAEf,QAAA,OAAO,CAAC;IACZ;AAEA,IAAA,QAAQ,CAAC,EAAU,EAAE,IAAY,EAAE,QAAgB,EAAE,QAAgB,EAAA;AACjE,QAAA,IAAI,EAAE,KAAK,CAAC,EAAE;;AAEV,YAAA,OAAO,CAAC;QACZ;AACA,QAAA,IAAI,QAAQ,KAAK,CAAC,EAAE;;AAEhB,YAAA,OAAO,EAAE;QACb;QACA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;;AAEnE,QAAA,OAAO,CAAC;IACZ;AAEA,IAAA,OAAO,CAAC,EAAU,EAAE,IAAY,EAAE,QAAgB,EAAE,KAAa,EAAA;;AAE7D,QAAA,OAAO,EAAE;IACb;AAEA,IAAA,OAAO,CAAC,EAAU,EAAE,MAAc,EAAE,MAAc,EAAE,SAAiB,EAAA;;AAEjE,QAAA,OAAO,EAAE;IACb;+GAlKS,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAJ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAI,cAFD,MAAM,EAAA,CAAA,CAAA;;4FAET,IAAI,EAAA,UAAA,EAAA,CAAA;kBAHhB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;SC+Be,WAAW,GAAA;AACvB,IAAA,IAAI,QAAQ,QAAQ,CAAC,KAAK,WAAW,IAAI,QAAQ,QAAQ,CAAC,KAAK,WAAW;AAAE,QAAA,OAAO,GAAG;IACtF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5C,IAAA,MAAM,aAAa,GAAI,QAAQ,CAAC,aAAmC;IACnE,IAAI,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,GAAG,IAAI,wBAAwB,CAAC;IACxE,IAAI,CAAC,aAAa,EAAE;AAChB,QAAA,IAAI;;YAEA,MAAM,IAAI,KAAK,EAAE;QACrB;QAAE,OAAO,CAAC,EAAE;YACR,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI;YAC7D,MAAM,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAW;AACvC,YAAA,MAAM,MAAM,GAAG,CACX,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC;AACvD,gBAAA,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC;gBAC1C,CAAC,CAAA,EAAG,YAAY,CAAA,QAAA,CAAU,CAAC,EAC7B,KAAK,EAAE;YACT,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;QACtC;IACJ;IACA,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAG;QAChC,IAAI,CAAC,CAAC,CAAC,GAAG;AAAE,YAAA,OAAO,KAAK;QACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3B,QAAA,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1E,IAAA,CAAC,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,CAAC,UAAU,GAAG,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;AACpE,IAAA,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;IACjD,IAAI,CAAC,GAAG,EAAE;AACV,IAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAA,EAAA,EAAK,SAAS,CAAC,IAAI,CAAA,EAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;AACvE;AAEM,SAAU,YAAY,CAAC,OAAe,EAAA;AACxC,IAAA,IAAI;AACA,QAAA,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ;IACpC;IAAE,OAAO,CAAC,EAAE;AACR,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACd,QAAA,OAAO,GAAG;IACd;AACJ;SAEgB,cAAc,GAAA;AAC1B,IAAA,OAAO,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,IAAI,GAAG,IAAI;AACjE;MAoBa,cAAc,CAAA;IAEf,OAAO,YAAY,CAAC,MAAsB,EAAA;QAC9C,OAAO;AACH,YAAA,GAAG,SAAS;AACZ,YAAA;AACI,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,UAAU,KAAK;AACxD,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,WAAW,KAAK;AACzD,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,WAAW,KAAK;AACzD,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,eAAe,KAAK;AAC7D,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,cAAc,KAAK;AAC5D,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,cAAc,KAAK;AAC5D,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,aAAa,KAAK;AAC3D,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,kBAAkB,KAAK;AAChE,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,UAAU,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO,KAAK,WAAW;gBAC5D,IAAI,EAAE,CAAC,QAAQ;AAClB,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,UAAU,EAAE;AACf,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,WAAW,KAAK,EAAE;AACxD,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,cAAc,KAAK,UAAU;AACnE,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,UAAU,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,aAAa,KAAK,UAAU;AACjE,gBAAA,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,aAAa,IAAI,QAAQ,GAAG,cAAc;AAC7E,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,UAAU,EAAE,YAAY;gBACxB,IAAI,EAAE,CAAC,YAAY;AACtB;SACJ;IACL;IAEA,OAAO,OAAO,CAAC,MAAsB,EAAA;QACjC,OAAO;AACH,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,MAAM;SAChD;IACL;IAEA,OAAO,YAAY,CAAC,MAAsB,EAAA;QACtC,OAAO,wBAAwB,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACxE;AAEA,IAAA,WAAA,GAAA;IAEA;+GAjFS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,s3BAXnB,YAAY;AACZ,YAAA,WAAW,u2BAMX,WAAW,CAAA,EAAA,CAAA,CAAA;gHAIN,cAAc,EAAA,SAAA,EAFZ,KAAK,EAAA,OAAA,EAAA,CATZ,YAAY;AACZ,YAAA,WAAW,EAMX,WAAW,CAAA,EAAA,CAAA,CAAA;;4FAIN,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;AACV,wBAAA,GAAG,KAAK;AACR,wBAAA,GAAG,UAAU;AACb,wBAAA,GAAG;AACN,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE;AACL,wBAAA,GAAG,KAAK;AACR,wBAAA,GAAG,UAAU;AACb,wBAAA,GAAG,UAAU;wBACb;AACH,qBAAA;AACD,oBAAA,SAAS,EAAE;AACd,iBAAA;;;ACjGD;;AAEG;;;;"}
|