{"version":3,"file":"webilix-ngx-helper-m3.mjs","sources":["../../../ngx-helper-m3/src/lib/ngx-helper.config.ts","../../../ngx-helper-m3/src/lib/components/box/ngx-helper-box.interface.ts","../../../ngx-helper-m3/src/lib/components/box/ngx-helper-box.component.ts","../../../ngx-helper-m3/src/lib/components/box/ngx-helper-box.component.html","../../../ngx-helper-m3/src/lib/pipes/bank-card.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/date.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/duration.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/file-size.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/mobile.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/number.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/period.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/price.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/volume.pipe.ts","../../../ngx-helper-m3/src/lib/pipes/weight.pipe.ts","../../../ngx-helper-m3/src/lib/components/value/ngx-helper-value.pipe.ts","../../../ngx-helper-m3/src/lib/components/component.service.ts","../../../ngx-helper-m3/src/lib/components/card/ngx-helper-card.component.ts","../../../ngx-helper-m3/src/lib/components/card/ngx-helper-card.component.html","../../../ngx-helper-m3/src/lib/components/loader/ngx-helper-loader.component.ts","../../../ngx-helper-m3/src/lib/components/loader/ngx-helper-loader.component.html","../../../ngx-helper-m3/src/lib/components/page-group/ngx-helper-page-group.interface.ts","../../../ngx-helper-m3/src/lib/components/page-group/ngx-helper-page-group.component.ts","../../../ngx-helper-m3/src/lib/components/page-group/ngx-helper-page-group.component.html","../../../ngx-helper-m3/src/lib/components/progress/ngx-helper-progress.component.ts","../../../ngx-helper-m3/src/lib/components/progress/ngx-helper-progress.component.html","../../../ngx-helper-m3/src/lib/components/section/ngx-helper-section.component.ts","../../../ngx-helper-m3/src/lib/components/section/ngx-helper-section.component.html","../../../ngx-helper-m3/src/lib/components/section/column/ngx-helper-section-column.component.ts","../../../ngx-helper-m3/src/lib/components/section/column/ngx-helper-section-column.component.html","../../../ngx-helper-m3/src/lib/components/value/box/ngx-helper-value-box.component.ts","../../../ngx-helper-m3/src/lib/components/value/box/ngx-helper-value-box.component.html","../../../ngx-helper-m3/src/lib/components/value/list/ngx-helper-value-list.component.ts","../../../ngx-helper-m3/src/lib/components/value/list/ngx-helper-value-list.component.html","../../../ngx-helper-m3/src/lib/confirm/dialog/confirm-dialog.component.ts","../../../ngx-helper-m3/src/lib/confirm/dialog/confirm-dialog.component.html","../../../ngx-helper-m3/src/lib/confirm/bottom-sheet/confirm-bottom-sheet.component.ts","../../../ngx-helper-m3/src/lib/confirm/bottom-sheet/confirm-bottom-sheet.component.html","../../../ngx-helper-m3/src/lib/confirm/confirm.service.ts","../../../ngx-helper-m3/src/lib/container/container.interface.ts","../../../ngx-helper-m3/src/lib/container/dialog/container-dialog.component.ts","../../../ngx-helper-m3/src/lib/container/dialog/container-dialog.component.html","../../../ngx-helper-m3/src/lib/container/bottom-sheet/container-bottom-sheet.component.ts","../../../ngx-helper-m3/src/lib/container/bottom-sheet/container-bottom-sheet.component.html","../../../ngx-helper-m3/src/lib/container/container.service.ts","../../../ngx-helper-m3/src/lib/coordinates/get/get.component.ts","../../../ngx-helper-m3/src/lib/coordinates/get/get.component.html","../../../ngx-helper-m3/src/lib/coordinates/show/show.component.ts","../../../ngx-helper-m3/src/lib/coordinates/show/show.component.html","../../../ngx-helper-m3/src/lib/coordinates/ngx-helper-coordinates.service.ts","../../../ngx-helper-m3/src/lib/http/download/download.component.ts","../../../ngx-helper-m3/src/lib/http/download/download.component.html","../../../ngx-helper-m3/src/lib/http/pdf/pdf.component.ts","../../../ngx-helper-m3/src/lib/http/pdf/pdf.component.html","../../../ngx-helper-m3/src/lib/http/upload/upload.component.ts","../../../ngx-helper-m3/src/lib/http/upload/upload.component.html","../../../ngx-helper-m3/src/lib/pipes/multi-line.pipe.ts","../../../ngx-helper-m3/src/lib/toast/toast/toast.component.ts","../../../ngx-helper-m3/src/lib/toast/toast/toast.component.html","../../../ngx-helper-m3/src/lib/toast/ngx-helper-toast.service.ts","../../../ngx-helper-m3/src/lib/http/ngx-helper-http.service.ts","../../../ngx-helper-m3/src/lib/image/image/image.component.ts","../../../ngx-helper-m3/src/lib/image/image/image.component.html","../../../ngx-helper-m3/src/lib/image/gallery/gallery.component.ts","../../../ngx-helper-m3/src/lib/image/gallery/gallery.component.html","../../../ngx-helper-m3/src/lib/image/ngx-helper-image.service.ts","../../../ngx-helper-m3/src/lib/route/get/get.component.ts","../../../ngx-helper-m3/src/lib/route/get/get.component.html","../../../ngx-helper-m3/src/lib/route/show/show.component.ts","../../../ngx-helper-m3/src/lib/route/show/show.component.html","../../../ngx-helper-m3/src/lib/route/ngx-helper-route.service.ts","../../../ngx-helper-m3/src/lib/directives/ngx-helper-mobile-view.directive.ts","../../../ngx-helper-m3/src/lib/directives/ngx-helper-show-in.directive.ts","../../../ngx-helper-m3/src/lib/directives/ngx-helper-sticky.directive.ts","../../../ngx-helper-m3/src/lib/pipes/safe.pipe.ts","../../../ngx-helper-m3/src/public-api.ts","../../../ngx-helper-m3/src/webilix-ngx-helper-m3.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders, Provider } from '@angular/core';\n\nexport interface INgxHelperConfig {\n    readonly mobileWidth: number;\n\n    // PAGE GROUP\n    readonly pageGroupSidebarWidth: string;\n\n    // TOAST\n    readonly toastTimeout: number;\n    readonly toastXPosition: 'LEFT' | 'CENTER' | 'RIGHT';\n    readonly toastAllowDuplicates: boolean;\n    readonly toastResetDuplicates: boolean;\n    readonly toastProgressAnimation: 'DECREASE' | 'INCREASE';\n\n    // STICKY\n    readonly stickyView: {\n        readonly top?: string | { readonly desktopView: string; readonly mobileView: string };\n        readonly bottom?: string | { readonly desktopView: string; readonly mobileView: string };\n    };\n}\n\nexport const NGX_HELPER_CONFIG = new InjectionToken<Partial<INgxHelperConfig>>('NGX-HELPER-CONFIG');\n\nexport const provideNgxHelperConfig = (config: Partial<INgxHelperConfig>): EnvironmentProviders => {\n    const providers: Provider[] = [{ provide: NGX_HELPER_CONFIG, useValue: config }];\n\n    return makeEnvironmentProviders(providers);\n};\n","import { InjectionToken } from '@angular/core';\n\nexport const NGX_HELPER_BOX_DATA: InjectionToken<any> = new InjectionToken('NGX-HELPER-BOX-DATA');\n","import { Component, HostBinding, Injector, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { NGX_HELPER_BOX_DATA } from './ngx-helper-box.interface';\n\n@Component({\n    selector: 'ngx-helper-box',\n    imports: [NgComponentOutlet],\n    templateUrl: './ngx-helper-box.component.html',\n    styleUrl: './ngx-helper-box.component.scss',\n})\nexport class NgxHelperBoxComponent implements OnInit, OnChanges {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-box';\n    @HostBinding('style.padding') protected paddingCSS!: string;\n\n    @Input({ required: false }) component?: ComponentType<any>;\n    @Input({ required: false }) data?: any;\n    @Input({ required: false }) padding: string = '1rem';\n    @Input({ required: false }) hideShadow: boolean = false;\n\n    public injector!: Injector;\n\n    ngOnInit(): void {\n        this.setInjector();\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.setInjector();\n    }\n\n    setInjector(): void {\n        this.paddingCSS = this.padding;\n        this.className = `ngx-helper-m3-box${this.hideShadow ? ' hide-shadow' : ''}`;\n        if (!this.component) return;\n\n        this.injector = Injector.create({\n            providers: [{ provide: NGX_HELPER_BOX_DATA, useValue: this.data }],\n        });\n    }\n}\n","@if (component) {\n<span *ngComponentOutlet=\"component; injector: injector\"></span>\n} @else {\n<ng-content></ng-content>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperBankCard' })\nexport class NgxHelperBankCardPipe implements PipeTransform {\n    transform(value?: string | null, options?: { view?: 'CARD' | 'BANK'; join?: string }): string {\n        if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n        switch (options?.view) {\n            case 'BANK':\n                return Helper.BANK.findCard(value)?.title || '';\n            default:\n                return Helper.STRING.getBankCardView(value, options?.join || '-');\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\nimport { JalaliDateTime } from '@webilix/jalali-date-time';\n\nimport { DateFormats } from '../pipe.types';\n\n@Pipe({ name: 'ngxHelperDate' })\nexport class NgxHelperDatePipe implements PipeTransform {\n    transform(value?: Date | null, options?: { format?: DateFormats; timezone?: string }): string;\n    transform(value?: number | null, options?: { format?: DateFormats; timezone?: string }): string;\n    transform(value?: any, options?: { format?: DateFormats; timezone?: string }): string {\n        if (value === undefined || value === null || (!Helper.IS.date(value) && !Helper.IS.number(value))) return '';\n\n        const date: Date = typeof value === 'number' ? new Date(value) : value;\n        const jalali = JalaliDateTime();\n        const timezone: string =\n            options?.timezone && jalali.timezones().includes(options?.timezone) ? options?.timezone : 'Asia/Tehran';\n\n        switch (options?.format || 'DATE') {\n            case 'FULL':\n                return jalali.toFullText(date, { format: 'W، d N Y H:I', timezone });\n\n            case 'SHORT':\n                return jalali.toFullText(date, { format: 'Y/M/D', timezone });\n\n            case 'DATE':\n                return jalali.toFullText(date, { format: 'W، d N Y', timezone });\n\n            case 'TIME':\n                return jalali.toFullText(date, { format: 'H:I', timezone });\n\n            case 'WEEK':\n                const { from, to } = jalali.periodWeek(1, date, timezone);\n                return Helper.DATE.jalaliPeriod(from, to, timezone);\n\n            case 'MONTH':\n                return jalali.toFullText(date, { format: 'N Y', timezone });\n\n            case 'YEAR':\n                return jalali.toFullText(date, { format: 'Y', timezone });\n\n            default:\n                return jalali.toFullText(date, { format: options?.format, timezone });\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { DurationFormats } from '../pipe.types';\n\n@Pipe({ name: 'ngxHelperDuration' })\nexport class NgxHelperDurationPipe implements PipeTransform {\n    transform(value?: number | null, options?: { format?: DurationFormats; english?: boolean }): string;\n    transform(value?: Date | null, options?: { format?: DurationFormats; english?: boolean }): string;\n    transform(value?: { from: Date } | null, options?: { format?: DurationFormats; english?: boolean }): string;\n    transform(value?: { to: Date } | null, options?: { format?: DurationFormats; english?: boolean }): string;\n    transform(value?: { from: Date; to: Date } | null, options?: { format?: DurationFormats; english?: boolean }): string;\n    transform(value?: any, options?: { format?: DurationFormats; english?: boolean }): string {\n        if (value === undefined || value === null) return '';\n\n        let seconds: number = 0;\n        if (Helper.IS.number(value)) seconds = Math.abs(value);\n        else if (Helper.IS.date(value)) seconds = Math.floor(Math.abs(new Date().getTime() - value.getTime()) / 1000);\n        else if (Helper.IS.object(value)) {\n            const from: Date = 'from' in value ? value.from : new Date();\n            const to: Date = 'to' in value ? value.to : new Date();\n            seconds = Math.floor(Math.abs(from.getTime() - to.getTime()) / 1000);\n        }\n\n        const days: number = Math.floor(seconds / (24 * 60 * 60));\n        seconds -= days * (24 * 60 * 60);\n        const hours: number = Math.floor(seconds / (60 * 60));\n        seconds -= hours * (60 * 60);\n        const minutes: number = Math.floor(seconds / 60);\n        seconds -= minutes * 60;\n\n        const hasDays: boolean = days !== 0;\n        const time: string = [hours, minutes, seconds].map((v) => v.toString().padStart(2, '0')).join(':');\n\n        switch (options?.format || 'TEXT') {\n            case 'TEXT':\n                const hasTime: boolean = !!hours || !!minutes || !!seconds;\n                const day: string = hasDays\n                    ? Helper.NUMBER.format(days, 'EN') + (!!options?.english ? (days === 1 ? ' day' : ' days') : ' روز')\n                    : '';\n                const join = hasDays && hasTime ? (!!options?.english ? ', ' : ' و ') : '';\n                return (day + join + (!hasDays || hasTime ? time : '')).trim();\n\n            case 'FULL':\n                return (hasDays ? '(' + Helper.NUMBER.format(days, 'EN') + ') ' : '') + time;\n\n            case 'DAY':\n                return Helper.NUMBER.format(days + (hours !== 0 || minutes !== 0 ? 1 : 0), !!options?.english ? 'EN' : 'FA');\n\n            case 'HOUR':\n                return Helper.NUMBER.format(days * 24 + hours + (minutes !== 0 ? 1 : 0), !!options?.english ? 'EN' : 'FA');\n\n            case 'MINUTE':\n                return Helper.NUMBER.format(days * 24 * 60 + hours * 60 + minutes, !!options?.english ? 'EN' : 'FA');\n\n            case 'SECOND':\n                return Helper.NUMBER.format(\n                    days * 24 * 3600 + hours * 3600 + minutes * 60 + seconds,\n                    !!options?.english ? 'EN' : 'FA',\n                );\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperFileSize' })\nexport class NgxHelperFileSizePipe implements PipeTransform {\n    transform(value?: number | null, options?: { english?: boolean }): string {\n        if (value === undefined || value === null || !Helper.IS.number(value)) return '';\n\n        return Helper.NUMBER.toFileSize(value, !!options?.english ? 'EN' : 'FA');\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperMobile' })\nexport class NgxHelperMobilePipe implements PipeTransform {\n    transform(value?: string | null, options?: { join?: string }): string {\n        if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n        return Helper.STRING.getMobileView(value, options?.join || '-');\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperNumber' })\nexport class NgxHelperNumberPipe implements PipeTransform {\n    transform(value?: number | null, options?: { fractionDigits?: number; english?: boolean }): string {\n        if (value === undefined || value === null || !Helper.IS.number(value)) return '';\n\n        value = options?.fractionDigits ? +value.toFixed(options?.fractionDigits) : value;\n        return Helper.NUMBER.format(value, options?.english ? 'EN' : 'FA');\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperPeriod' })\nexport class NgxHelperPeriodPipe implements PipeTransform {\n    transform(value?: Date | null, options?: { timezone?: string }): string;\n    transform(value?: { from: Date } | null, options?: { timezone?: string }): string;\n    transform(value?: { to: Date } | null, options?: { timezone?: string }): string;\n    transform(value?: { from: Date; to: Date } | null, options?: { timezone?: string }): string;\n    transform(value?: any, options?: { timezone?: string }): string {\n        if (value === undefined || value === null) return '';\n\n        const from: Date = Helper.IS.date(value) ? value : 'from' in value ? value.from : new Date();\n        const to: Date = Helper.IS.date(value) ? new Date() : 'to' in value ? value.to : new Date();\n\n        return Helper.DATE.jalaliPeriod(from, to, options?.timezone || '');\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperPrice' })\nexport class NgxHelperPricePipe implements PipeTransform {\n    transform(value?: number | null, options?: { currency?: string; short?: boolean; english?: boolean }): string {\n        if (value === undefined || value === null || !Helper.IS.number(value) || value < 0) return '';\n\n        const getPrice = (...titles: [string, string][]): string => {\n            if (value === undefined || value === null) return '';\n\n            const price: string = Helper.NUMBER.format(+value.toFixed(2), !!options?.english ? 'EN' : 'FA');\n            const unit: string = titles[options?.short ? 0 : 1][options?.english ? 0 : 1];\n            const currency: string = options?.currency ? ' ' + options?.currency : '';\n\n            return `${price} ${unit}${currency}`;\n        };\n\n        if (value < 1000) return getPrice(['', ''], ['', '']);\n\n        value /= 1000;\n        if (value < 1000) return getPrice(['T', 'ه'], ['Thousand', 'هزار']);\n\n        value /= 1000;\n        if (value < 1000) return getPrice(['M', 'م'], ['Million', 'میلیون']);\n\n        value /= 1000;\n        return getPrice(['B', 'د'], ['Billion', 'میلیارد']);\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperVolume' })\nexport class NgxHelperVolumePipe implements PipeTransform {\n    transform(value?: number | null, options?: { short?: boolean; english?: boolean }): string {\n        if (value === undefined || value === null || !Helper.IS.number(value) || value < 0) return '';\n\n        const getVolume = (...titles: [string, string][]): string => {\n            if (value === undefined || value === null) return '';\n\n            const volume: string = Helper.NUMBER.format(+value.toFixed(2), options?.english ? 'EN' : 'FA');\n            const shortIndex: number = options?.short ? 0 : 1;\n            const titleIndex: number = options?.english ? 0 : 1;\n            return `${volume} ${titles[shortIndex][titleIndex]}`;\n        };\n\n        if (value === 0) return getVolume(['', ''], ['', '']);\n\n        if (value < 1000) return getVolume(['ML', 'م'], ['Milliliter', 'میلی لیتر']);\n\n        value /= 1000;\n        return getVolume(['L', 'ل'], ['Liter', 'لیتر']);\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperWeight' })\nexport class NgxHelperWeightPipe implements PipeTransform {\n    transform(value?: number | null, options?: { short?: boolean; english?: boolean }): string {\n        if (value === undefined || value === null || !Helper.IS.number(value) || value < 0) return '';\n\n        const getWeight = (...titles: [string, string][]): string => {\n            if (value === undefined || value === null) return '';\n\n            const weight: string = Helper.NUMBER.format(+value.toFixed(2), options?.english ? 'EN' : 'FA');\n            const shortIndex: number = options?.short ? 0 : 1;\n            const titleIndex: number = options?.english ? 0 : 1;\n            return `${weight} ${titles[shortIndex][titleIndex]}`;\n        };\n\n        if (value === 0) return getWeight(['', ''], ['', '']);\n\n        if (value < 1000) return getWeight(['G', 'گ'], ['Gram', 'گرم']);\n\n        value /= 1000;\n        if (value < 1000) return getWeight(['K', 'ک'], ['Kilogram', 'کیلو']);\n\n        value /= 1000;\n        if (value < 1000) return getWeight(['T', 'ت'], ['Tonne', 'تن']);\n\n        value /= 1000;\n        if (value < 1000) return getWeight(['KT', 'ه'], ['Kilotonne', 'هزار تن']);\n\n        value /= 1000;\n        return getWeight(['MT', 'م'], ['Milliontonne', 'میلیون تن']);\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { NgxHelperBankCardPipe } from '../../pipes/bank-card.pipe';\nimport { NgxHelperDatePipe } from '../../pipes/date.pipe';\nimport { NgxHelperDurationPipe } from '../../pipes/duration.pipe';\nimport { NgxHelperFileSizePipe } from '../../pipes/file-size.pipe';\nimport { NgxHelperMobilePipe } from '../../pipes/mobile.pipe';\nimport { NgxHelperNumberPipe } from '../../pipes/number.pipe';\nimport { NgxHelperPeriodPipe } from '../../pipes/period.pipe';\nimport { NgxHelperPricePipe } from '../../pipes/price.pipe';\nimport { NgxHelperVolumePipe } from '../../pipes/volume.pipe';\nimport { NgxHelperWeightPipe } from '../../pipes/weight.pipe';\n\nimport { NgxHelperValue } from './ngx-helper-value.interface';\n\n@Pipe({ name: 'ngxHelperValue' })\nexport class NgxHelperValuePipe implements PipeTransform {\n    transform(value?: NgxHelperValue, options?: { emptyText?: string }): string {\n        const emptyText = options?.emptyText || '';\n        if (value === undefined || Helper.IS.empty(value)) return emptyText;\n\n        switch (value.type) {\n            case 'BANK-CARD':\n                return new NgxHelperBankCardPipe().transform(value.value, value) || emptyText;\n\n            case 'DATE':\n                return new NgxHelperDatePipe().transform(value.value as any, value) || emptyText;\n\n            case 'DURATION':\n                return new NgxHelperDurationPipe().transform(value.value as any, value) || emptyText;\n\n            case 'FILE-SIZE':\n                return new NgxHelperFileSizePipe().transform(value.value as any, value) || emptyText;\n\n            case 'MOBILE':\n                return new NgxHelperMobilePipe().transform(value.value as any, value) || emptyText;\n\n            case 'NUMBER':\n                return new NgxHelperNumberPipe().transform(value.value as any, value) || emptyText;\n\n            case 'PERIOD':\n                return new NgxHelperPeriodPipe().transform(value.value as any, value) || emptyText;\n\n            case 'PRICE':\n                return new NgxHelperPricePipe().transform(value.value as any, value) || emptyText;\n\n            case 'STRING':\n                return Helper.IS.string(value.value) ? (value.value as any) : emptyText;\n\n            case 'VOLUME':\n                return new NgxHelperVolumePipe().transform(value.value as any, value) || emptyText;\n\n            case 'WEIGHT':\n                return new NgxHelperWeightPipe().transform(value.value as any, value) || emptyText;\n        }\n    }\n}\n","import { Injectable } from '@angular/core';\n\nimport { INgxHelperConfig } from '../ngx-helper.config';\n\nimport { INgxHelperValue, NgxHelperValue } from './value/ngx-helper-value.interface';\nimport { NgxHelperValuePipe } from './value/ngx-helper-value.pipe';\n\nexport interface IComponentConfig {\n    readonly mobileWidth: number;\n    readonly pageGroupSidebarWidth: string;\n    readonly stickyView?: {\n        readonly top?: { readonly desktopView: string; readonly mobileView: string };\n        readonly bottom?: { readonly desktopView: string; readonly mobileView: string };\n    };\n}\n\nexport interface IValueComponentData {\n    readonly title: string;\n    readonly value: string;\n    readonly color?: string;\n    readonly action?: () => string[] | void;\n    readonly copyToClipboard?: boolean;\n    readonly ltr?: boolean;\n    readonly english?: boolean;\n}\n\n@Injectable()\nexport class ComponentService {\n    getComponentConfig(config?: Partial<INgxHelperConfig>): IComponentConfig {\n        const getStickyView = (\n            config: string | { desktopView: string; mobileView: string },\n        ): { desktopView: string; mobileView: string } => {\n            return {\n                desktopView: typeof config === 'string' ? config : config.desktopView,\n                mobileView: typeof config === 'string' ? config : config.mobileView,\n            };\n        };\n\n        return {\n            mobileWidth: config?.mobileWidth || 600,\n            pageGroupSidebarWidth: config?.pageGroupSidebarWidth || '200px',\n            stickyView: config?.stickyView\n                ? {\n                      top: config.stickyView.top ? getStickyView(config.stickyView.top) : undefined,\n                      bottom: config.stickyView.bottom ? getStickyView(config.stickyView.bottom) : undefined,\n                  }\n                : undefined,\n        };\n    }\n\n    private isRTL(value: NgxHelperValue): boolean {\n        switch (value.type) {\n            case 'BANK-CARD':\n            case 'MOBILE':\n            case 'NUMBER':\n                return true;\n\n            case 'DURATION':\n                return value.format === 'FULL';\n        }\n\n        return false;\n    }\n\n    getValueData(values: INgxHelperValue[]): IValueComponentData[] {\n        const pipeTransform = new NgxHelperValuePipe().transform;\n        const ltrValues: NgxHelperValue['type'][] = ['BANK-CARD', 'MOBILE', 'NUMBER'];\n\n        return values.map((item) => {\n            const value = item.value;\n            return value === undefined\n                ? { title: item.title, value: '' }\n                : typeof value === 'string'\n                ? { title: item.title, value: value.trim(), color: item.color }\n                : {\n                      title: item.title,\n                      value: pipeTransform(value),\n                      color: item.color,\n                      action: item.action,\n                      copyToClipboard: item.copyToClipboard,\n                      ltr: this.isRTL(value),\n                      english: 'english' in value && !!value.english,\n                  };\n        });\n    }\n}\n","import { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { MatButton } from '@angular/material/button';\nimport { MatDivider } from '@angular/material/divider';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../component.service';\n\nimport { INgxHelperCardOption, NgxHelperCardAction } from './ngx-helper-card.interface';\n\ntype Button =\n    | { type: 'BUTTON'; title: string; icon: string; action: () => void; color?: string; showIcon?: boolean }\n    | {\n          type: 'MENU';\n          title: string;\n          icon: string;\n          color?: string;\n          showIcon?: boolean;\n          buttons: ('DIVIDER' | { title: string; icon: string; action: () => void; color?: string })[];\n      };\n\n@Component({\n    selector: 'ngx-helper-card',\n    host: { '(window:resize)': 'onResize()' },\n    imports: [NgClass, MatButton, MatDivider, MatIcon, MatMenuModule],\n    providers: [ComponentService],\n    templateUrl: './ngx-helper-card.component.html',\n    styleUrl: './ngx-helper-card.component.scss',\n})\nexport class NgxHelperCardComponent implements OnInit, OnChanges {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-card';\n\n    @Input({ required: true }) title!: string;\n    @Input({ required: false }) subTitle?: string;\n    @Input({ required: false }) icon?: string;\n    @Input({ required: false }) actions: NgxHelperCardAction[] = [];\n    @Input({ required: false }) option?: INgxHelperCardOption;\n    @Input({ required: false }) padding: string = '1rem';\n    @Input({ required: false }) backgroundColor?: string;\n    @Input({ required: false }) hasShadow: boolean = false;\n\n    public isMobile: boolean = false;\n    public buttons: Button[] = [];\n    private componentConfig!: IComponentConfig;\n\n    public optionId?: string;\n    public optionTitle?: string;\n    public optionItems: ('DIVIDER' | { readonly id: string; readonly title: string })[] = [];\n\n    constructor(\n        private readonly componentService: ComponentService,\n        @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n    ) {}\n\n    ngOnInit(): void {\n        this.componentConfig = this.componentService.getComponentConfig(this.config);\n        this.onResize();\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.className = `ngx-helper-m3-card${this.hasShadow ? ' has-shadow' : ''}`;\n\n        this.buttons = this.actions.map((action) => {\n            return 'buttons' in action ? { type: 'MENU', ...action } : { type: 'BUTTON', ...action };\n        });\n\n        this.optionId = undefined;\n        this.optionItems = [];\n\n        if (this.option) {\n            this.option.items.forEach((item) => {\n                if (item === 'DIVIDER') {\n                    if (this.optionItems.length !== 0 && this.optionItems[this.optionItems.length - 1] !== 'DIVIDER')\n                        this.optionItems.push('DIVIDER');\n                } else this.optionItems.push(item);\n            });\n            while (this.optionItems[this.optionItems.length - 1] === 'DIVIDER')\n                this.optionItems.splice(this.optionItems.length - 1);\n\n            const ids: string[] = this.option.items.map((item) => (item === 'DIVIDER' ? '' : item.id));\n            this.optionId = this.option.id && ids.includes(this.option.id) ? this.option.id : undefined;\n            this.setOption(this.optionId || '', true);\n        }\n    }\n\n    onResize(): void {\n        this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n    }\n\n    setOption(id: string, firstCheck?: boolean): void {\n        if (!this.option || this.optionItems.length === 0) return;\n\n        const ids: string[] = this.optionItems.filter((item) => item !== 'DIVIDER').map((item) => item.id);\n        this.optionId = id && ids.includes(id) ? id : ids[0];\n        this.optionTitle = this.optionItems\n            .filter((item) => item !== 'DIVIDER')\n            .find((item) => item.id === this.optionId)?.title;\n\n        if (!firstCheck) this.option.action(this.optionId);\n    }\n}\n","<div class=\"card-header\" [class.has-sub-title]=\"subTitle\">\n    <!-- ICON -->\n    @if (icon) { <mat-icon>{{ icon }}</mat-icon> }\n\n    <!-- TITLE -->\n    <div class=\"content\">\n        <div class=\"title\">{{ title }}</div>\n        <!-- SUB TITLE -->\n        @if (subTitle) {\n        <div class=\"sub-title\">{{ subTitle }}</div>\n        }\n    </div>\n\n    <!-- BUTTONS -->\n    @if (buttons.length > 0) {\n    <div class=\"buttons\" [ngClass]=\"isMobile ? 'mobile-view' : ''\">\n        @for (item of buttons; track $index) {\n        <!-- TYPE -->\n        @switch (item.type) {\n\n        <!-- BUTTON -->\n        @case('BUTTON') {\n        <button mat-button type=\"button\" [style.color]=\"item.color\" (click)=\"item.action()\">\n            @if (!isMobile) {\n            <div class=\"title\">{{ item.title }}</div>\n            }\n            <!-- ICON -->\n            @if (isMobile || item.showIcon) {\n            <mat-icon>{{ item.icon }}</mat-icon>\n            }\n        </button>\n        }\n\n        <!-- MENU -->\n        @case('MENU') {\n        <button mat-button type=\"button\" [style.color]=\"item.color\" [matMenuTriggerFor]=\"actionMenu\">\n            @if (!isMobile) {\n            <div class=\"title\">{{ item.title }}</div>\n            }\n            <!-- ICON -->\n            @if (isMobile || item.showIcon) {\n            <mat-icon>{{ item.icon }}</mat-icon>\n            }\n        </button>\n        <mat-menu #actionMenu=\"matMenu\" class=\"ngx-helper-card-action-menu\" [xPosition]=\"'before'\">\n            @for (menu of item.buttons; track $index) {\n            <!-- DIVIDER -->\n            @if (menu === 'DIVIDER') { <mat-divider></mat-divider> }\n            <!-- BUTTON -->\n            @else {\n            <button mat-menu-item type=\"button\" (click)=\"menu.action()\" [style.color]=\"menu.color\">\n                <div class=\"title\">{{ menu.title }}</div>\n                <mat-icon [style.color]=\"menu.color\">{{ menu.icon }}</mat-icon>\n            </button>\n            } }\n        </mat-menu>\n        } } }\n    </div>\n    }\n\n    <!-- OPTION -->\n    @if (option && optionItems.length > 0) {\n    <div class=\"option\" [ngClass]=\"isMobile ? 'mobile-view' : ''\">\n        <button mat-button type=\"button\" [matMenuTriggerFor]=\"optionMenu\">\n            @if (!isMobile) {\n            <div class=\"title\">{{ optionTitle }}</div>\n            }\n            <mat-icon [class.mobile-view]=\"isMobile\">{{ option.icon }}</mat-icon>\n        </button>\n        <mat-menu #optionMenu=\"matMenu\" class=\"ngx-helper-card-action-option\" [xPosition]=\"'before'\">\n            @for (item of optionItems; track $index) {\n            <!-- DIVIDER -->\n            @if (item === 'DIVIDER') { <mat-divider></mat-divider> }\n            <!-- BUTTON -->\n            @else {\n            <button mat-menu-item type=\"button\" [disabled]=\"optionId === item.id\" (click)=\"setOption(item.id)\">\n                <div class=\"title\">{{ item.title }}</div>\n                <mat-icon [style.opacity]=\"optionId === item.id ? 1 : 0\">done_all</mat-icon>\n            </button>\n            } }\n        </mat-menu>\n    </div>\n    }\n</div>\n\n<div class=\"card-content\" [style.padding]=\"padding\" [style.background-color]=\"backgroundColor\">\n    <ng-content></ng-content>\n</div>\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n    selector: 'ngx-helper-loader',\n    imports: [],\n    templateUrl: './ngx-helper-loader.component.html',\n    styleUrl: './ngx-helper-loader.component.scss',\n})\nexport class NgxHelperLoaderComponent implements OnInit, OnChanges {\n    @HostBinding('style.--loader-size') public loaderSize!: string;\n    @HostBinding('style.--loader-color') public loaderColor!: string;\n\n    @Input({ required: false }) public mode: 'SPINNER' | 'DOTS-SPINNER' | 'WHEEL-SPINNER' = 'SPINNER';\n    @Input({ required: false }) public size!: number;\n    @Input({ required: false }) public color!: string;\n    @Input({ required: false }) public padding?: string;\n    @Input({ required: false }) public margin?: string;\n\n    ngOnInit(): void {\n        this.init();\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.init();\n    }\n\n    init(): void {\n        this.loaderSize = `${this.size || 25}px`;\n        this.loaderColor = this.color || `var(--secondary)`;\n    }\n}\n","<div [style.padding]=\"padding || '0'\">\n    <div [class]=\"mode.toLowerCase()\" [style.margin]=\"margin || '0px'\"></div>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\ninterface IPage {\n    readonly title: string;\n    readonly icon: string;\n    readonly component: ComponentType<any>;\n}\n\nexport interface INgxHelperPageGroup {\n    readonly route?: string[];\n    readonly header?: ComponentType<any>;\n    readonly pages: { [key: string]: IPage };\n\n    // SETTING\n    readonly sidebarWidth?: string;\n    readonly showMenu?: boolean;\n}\n\nexport interface INgxHelperPageGroupItem {\n    readonly index: number;\n    readonly id: string;\n    readonly title: string;\n    readonly icon: string;\n}\n\nexport const NGX_HELPER_PAGE_GROUP_ITEM: InjectionToken<INgxHelperPageGroupItem> = new InjectionToken(\n    'NGX-HELPER-PAGE-GROUP-ITEM',\n);\nexport const NGX_HELPER_PAGE_GROUP_DATA: InjectionToken<any> = new InjectionToken('NGX-HELPER-PAGE-GROUP-DATA');\nexport const NGX_HELPER_PAGE_GROUP_DATA_CHANGE: InjectionToken<(data: any) => void> = new InjectionToken(\n    'NGX-HELPER-PAGE-GROUP-DATA-CHANGE',\n);\n","import {\n    Component,\n    EventEmitter,\n    HostBinding,\n    Inject,\n    Injector,\n    Input,\n    OnChanges,\n    OnInit,\n    Optional,\n    Output,\n    SimpleChanges,\n} from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { MatButton, MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../component.service';\n\nimport {\n    INgxHelperPageGroup,\n    INgxHelperPageGroupItem,\n    NGX_HELPER_PAGE_GROUP_DATA,\n    NGX_HELPER_PAGE_GROUP_DATA_CHANGE,\n    NGX_HELPER_PAGE_GROUP_ITEM,\n} from './ngx-helper-page-group.interface';\n\n@Component({\n    selector: 'ngx-helper-page-group',\n    host: { '(window:resize)': 'onResize()' },\n    imports: [NgComponentOutlet, MatButton, MatIcon, MatMenuModule],\n    providers: [ComponentService],\n    templateUrl: './ngx-helper-page-group.component.html',\n    styleUrl: './ngx-helper-page-group.component.scss',\n})\nexport class NgxHelperPageGroupComponent implements OnInit, OnChanges {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-page-group';\n    @HostBinding('style.display') public display: string = 'none';\n\n    @Input({ required: true }) pageGroup!: INgxHelperPageGroup;\n    @Input({ required: false }) pageId!: string;\n    @Input({ required: false }) data?: any;\n    @Output() pageChanged: EventEmitter<INgxHelperPageGroupItem> = new EventEmitter<INgxHelperPageGroupItem>();\n    @Output() dataChanged: EventEmitter<any> = new EventEmitter<any>();\n\n    public isMobile: boolean = false;\n    public pages: string[] = [];\n    public injector!: Injector;\n\n    public sidebarWidth!: string;\n    public componentConfig!: IComponentConfig;\n\n    constructor(\n        private readonly activatedRoute: ActivatedRoute,\n        private readonly router: Router,\n        private readonly componentService: ComponentService,\n        @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n    ) {}\n\n    ngOnInit(): void {\n        this.pages = Object.keys(this.pageGroup.pages);\n        this.display = this.pages.length === 0 ? 'none' : 'flex';\n        if (this.pages.length === 0) return;\n\n        this.componentConfig = this.componentService.getComponentConfig(this.config);\n        this.sidebarWidth = this.pageGroup.sidebarWidth || this.componentConfig.pageGroupSidebarWidth;\n\n        if (!this.pageGroup.pages[this.pageId]) this.pageId = this.pages[0];\n\n        const queryParams: { [key: string]: any } = { ...this.activatedRoute.snapshot.queryParams };\n        if (!!this.pageGroup.route && Helper.IS.string(queryParams['ngx-helper-page-group'])) {\n            const id: string = queryParams['ngx-helper-page-group'];\n            if (this.pageId !== id && this.pages.includes(id)) {\n                this.pageId = id;\n                this.triggerPageChanged();\n            }\n        }\n\n        this.onResize();\n        this.setInjector();\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.setInjector();\n    }\n\n    onResize(): void {\n        this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n        this.className = `ngx-helper-m3-page-group${this.isMobile ? ' mobile-view' : ''}`;\n    }\n\n    setInjector(): void {\n        if (this.pages.length === 0) return;\n\n        const item: INgxHelperPageGroupItem = {\n            index: this.pages.findIndex((page) => page === this.pageId),\n            id: this.pageId,\n            title: this.pageGroup.pages[this.pageId].title,\n            icon: this.pageGroup.pages[this.pageId].icon,\n        };\n\n        this.injector = Injector.create({\n            providers: [\n                { provide: NGX_HELPER_PAGE_GROUP_ITEM, useValue: item },\n                { provide: NGX_HELPER_PAGE_GROUP_DATA, useValue: this.data },\n                { provide: NGX_HELPER_PAGE_GROUP_DATA_CHANGE, useValue: (data: any) => this.dataChanged.next(data) },\n            ],\n        });\n    }\n\n    setPage(id: string): void {\n        if (this.pages.length === 0 || this.pageId == id) return;\n\n        const page = this.pageGroup.pages[id];\n        const index: number = this.pages.findIndex((p) => p === id);\n        if (!page || index === -1) return;\n\n        this.pageId = id;\n        this.triggerPageChanged();\n        this.setInjector();\n\n        if (this.pageGroup.route) {\n            const queryParams: { [key: string]: any } = { ...this.activatedRoute.snapshot.queryParams };\n            queryParams['ngx-helper-page-group'] = this.pageId;\n            this.router.navigate(this.pageGroup.route, { queryParams });\n        }\n    }\n\n    triggerPageChanged(): void {\n        const item: INgxHelperPageGroupItem = {\n            index: this.pages.findIndex((page) => page === this.pageId),\n            id: this.pageId,\n            title: this.pageGroup.pages[this.pageId].title,\n            icon: this.pageGroup.pages[this.pageId].icon,\n        };\n        this.pageChanged.next(item);\n    }\n}\n","@if (pages.length > 0) {\n<!-- DESKTOP VIEW -->\n@if (!isMobile) {\n<div\n    class=\"page-group-aside\"\n    [style.width]=\"sidebarWidth\"\n    [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n    [style.top]=\"componentConfig.stickyView?.top?.desktopView || undefined\"\n>\n    @for (item of pages; track $index) {\n    <div\n        class=\"page\"\n        [class.active]=\"pageId === item\"\n        [style.cursor]=\"pageId === item ? 'default' : 'pointer'\"\n        (click)=\"setPage(item)\"\n    >\n        <!-- ICON -->\n        <mat-icon>{{ pageGroup.pages[item].icon }}</mat-icon>\n        <div class=\"title\">{{ pageGroup.pages[item].title }}</div>\n        <!-- CURRENT PAGE -->\n        @if (pageId === item) { <mat-icon>keyboard_double_arrow_left</mat-icon> }\n    </div>\n    }\n</div>\n}\n\n<!-- MOBILE VIEW -->\n@if (isMobile) {\n\n<!-- MOBILE LIST VIEW -->\n@if (pageGroup.showMenu === false || (pages.length <= 5 && !pageGroup.showMenu)) {\n<div\n    class=\"page-group-nav\"\n    [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n    [style.top]=\"componentConfig.stickyView?.top?.mobileView || undefined\"\n>\n    @for (item of pages; track $index) {\n    <div\n        class=\"page\"\n        [class.active]=\"pageId === item\"\n        [style.cursor]=\"pageId === item ? 'default' : 'pointer'\"\n        (click)=\"setPage(item)\"\n    >\n        <mat-icon>{{ pageGroup.pages[item].icon }}</mat-icon>\n        @if (pageId === item) {\n        <div class=\"title\">{{ pageGroup.pages[item].title }}</div>\n        }\n    </div>\n    }\n</div>\n}\n\n<!-- MOBILE MENU VIEW -->\n@else {\n<div\n    class=\"page-group-menu\"\n    [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n    [style.top]=\"componentConfig.stickyView?.top?.mobileView || undefined\"\n>\n    <mat-icon class=\"page\">{{ pageGroup.pages[pageId].icon }}</mat-icon>\n    <div class=\"title\">{{ pageGroup.pages[pageId].title }}</div>\n    <button mat-button type=\"button\" [matMenuTriggerFor]=\"pageMenu\" class=\"menu\">\n        <mat-icon>more_vert</mat-icon>\n    </button>\n    <mat-menu #pageMenu=\"matMenu\" class=\"ngx-helper-page-group-menu\" [xPosition]=\"'before'\">\n        @for (item of pages; track $index) {\n        <button mat-menu-item type=\"button\" (click)=\"setPage(item)\" [disabled]=\"item === pageId\">\n            <div class=\"title\">{{ pageGroup.pages[item].title }}</div>\n            <mat-icon>{{ pageGroup.pages[item].icon }}</mat-icon>\n        </button>\n        }\n    </mat-menu>\n</div>\n}\n\n<div\n    class=\"page-group-spacer\"\n    [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n    [style.top]=\"\n        'calc(' +\n        (componentConfig.stickyView?.top?.mobileView || undefined) +\n        ' + var(--ngx-helper-m3-page-group-toolbar-height))'\n    \"\n></div>\n}\n\n<div class=\"page-group-content\">\n    <!-- HEADER -->\n    @if (pageGroup.header) {\n    <div\n        class=\"header\"\n        [style.position]=\"componentConfig.stickyView?.top ? 'sticky' : 'static'\"\n        [style.top]=\"\n            (isMobile\n                ? 'calc(' +\n                  (componentConfig.stickyView?.top?.mobileView || undefined) +\n                  ' + var(--ngx-helper-m3-page-group-toolbar-height) + 1rem)'\n                : componentConfig.stickyView?.top?.desktopView) || undefined\n        \"\n    >\n        <span *ngComponentOutlet=\"pageGroup.header; injector: injector\"></span>\n        <div class=\"spacer\"></div>\n    </div>\n    }\n    <span *ngComponentOutlet=\"pageGroup.pages[pageId].component; injector: injector\"></span>\n</div>\n}\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n    selector: 'ngx-helper-progress',\n    imports: [],\n    templateUrl: './ngx-helper-progress.component.html',\n    styleUrl: './ngx-helper-progress.component.scss',\n})\nexport class NgxHelperProgressComponent implements OnChanges {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-progress';\n    @HostBinding('style.border-radius') protected borderRadiusCSS!: string;\n    @HostBinding('style.background-color') protected backgroundColorCSS!: string;\n\n    @Input({ required: true }) value!: number | { done: number; total: number };\n    @Input({ required: false }) align: 'LR' | 'RL' | 'TB' | 'BT' = 'LR';\n    @Input({ required: false }) borderRadius: string = '0px';\n    @Input({ required: false }) progressColor: string = 'var(--surface-container)';\n    @Input({ required: false }) backgroundColor?: string;\n\n    public size!: string;\n    public direction!: 'H' | 'V';\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.className = `ngx-helper-m3-progress ${this.align}`;\n        this.borderRadiusCSS = this.borderRadius;\n        this.backgroundColorCSS = this.backgroundColor || 'transparent';\n\n        let value: number =\n            this.value === undefined\n                ? 0\n                : typeof this.value === 'number'\n                ? this.value\n                : (this.value.done / this.value.total) * 100;\n        if (isNaN(value) || value < 0) value = 0;\n        else if (value > 100) value = 100;\n        this.size = `${value.toFixed(2)}%`;\n        this.direction = this.align === 'LR' || this.align === 'RL' ? 'H' : 'V';\n    }\n}\n","<div\n    class=\"progress\"\n    [style.border-radius]=\"borderRadius\"\n    [style.background-color]=\"progressColor\"\n    [style.width]=\"direction === 'H' ? size : '100%'\"\n    [style.height]=\"direction === 'V' ? size : '100%'\"\n></div>\n<div class=\"content\"><ng-content></ng-content></div>\n","import { Component, HostBinding, Inject, Input, OnInit, Optional } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../component.service';\n\n@Component({\n    selector: 'ngx-helper-section',\n    host: { '(window:resize)': 'onResize()' },\n    imports: [],\n    providers: [ComponentService],\n    templateUrl: './ngx-helper-section.component.html',\n    styleUrl: './ngx-helper-section.component.scss',\n})\nexport class NgxHelperSectionComponent implements OnInit {\n    @HostBinding('style.--section-gap') protected gap!: string;\n\n    @Input({ required: false }) gapSize?: string;\n\n    private componentConfig!: IComponentConfig;\n    public isMobile: boolean = false;\n\n    constructor(\n        private readonly componentService: ComponentService,\n        @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n    ) {}\n\n    ngOnInit(): void {\n        this.componentConfig = this.componentService.getComponentConfig(this.config);\n        this.gap = this.gapSize || '1rem';\n\n        this.onResize();\n    }\n\n    onResize(): void {\n        this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n    }\n}\n","<div class=\"section-columns\" [class.section-columns-mobile]=\"isMobile\">\n    <ng-content></ng-content>\n</div>\n","import { Component, HostBinding, inject, Inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig } from '../../component.service';\n\n@Component({\n    selector: 'ngx-helper-section-column',\n    host: { '(window:resize)': 'onResize()' },\n    imports: [],\n    templateUrl: './ngx-helper-section-column.component.html',\n    styleUrl: './ngx-helper-section-column.component.scss',\n})\nexport class NgxHelperSectionColumnComponent implements OnInit, OnChanges {\n    @HostBinding('style.flex') flexStyle: string = '1';\n    @HostBinding('style.width') widthStyle: string = '*';\n\n    @HostBinding('style.position') stickyPosition!: string;\n    @HostBinding('style.zInde') stickyZIndex!: string;\n    @HostBinding('style.top') stickyTop!: string;\n\n    @Input({ required: false }) flex?: number;\n    @Input({ required: false }) width?: string;\n    @Input({ required: false }) sticky?: boolean | 'DESKTOP' | 'MOBILE';\n    @Input({ required: false }) zIndex?: number;\n\n    private componentConfig!: IComponentConfig;\n    private isMobile: boolean = false;\n\n    constructor(\n        private readonly componentService: ComponentService,\n        @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n    ) {}\n\n    ngOnInit(): void {\n        this.componentConfig = this.componentService.getComponentConfig(this.config);\n        this.onResize();\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.flexStyle = this.width ? 'unset' : this.flex?.toString() || '1';\n        this.widthStyle = this.width || '*';\n\n        this.componentConfig = this.componentService.getComponentConfig(this.config);\n        this.onResize();\n    }\n\n    onResize(): void {\n        this.isMobile = window.innerWidth <= this.componentConfig.mobileWidth;\n        this.setPosition();\n    }\n\n    setPosition(): void {\n        const top = this.componentConfig.stickyView?.top;\n        if (!top) return;\n\n        const sticky: boolean =\n            this.sticky === true ||\n            (this.sticky === 'DESKTOP' && !this.isMobile) ||\n            (this.sticky === 'MOBILE' && this.isMobile);\n\n        this.stickyPosition = sticky ? 'sticky' : 'static';\n        this.stickyZIndex = sticky ? (this.zIndex ? this.zIndex.toString() : '1') : 'auto';\n        this.stickyTop = sticky ? (this.isMobile ? top.mobileView : top.desktopView) : 'auto';\n    }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { Router } from '@angular/router';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../../../ngx-helper.config';\n\nimport { ComponentService, IComponentConfig, IValueComponentData } from '../../component.service';\n\nimport { INgxHelperValue } from '../ngx-helper-value.interface';\n\n@Component({\n    selector: 'ngx-helper-value-box',\n    host: { '(window:resize)': 'onResize()' },\n    imports: [ClipboardModule, MatIcon, MatIconButton],\n    providers: [ComponentService],\n    templateUrl: './ngx-helper-value-box.component.html',\n    styleUrl: './ngx-helper-value-box.component.scss',\n})\nexport class NgxHelperValueBoxComponent implements OnInit, OnChanges {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-value-box';\n    @HostBinding('style.grid-template-columns') protected gridTemplateColumns!: string;\n    @HostBinding('style.--gap-size') protected boxGap!: string;\n\n    @Input({ required: true }) values!: INgxHelperValue[];\n    @Input({ required: false }) column?: number | { desktop?: number; mobile?: number };\n    @Input({ required: false }) clearBox: boolean = false;\n    @Input({ required: false }) emptyText: string = 'نامشخص';\n    @Input({ required: false }) gapSize: string = '1rem';\n    @Input({ required: false }) hideShadow: boolean = false;\n\n    public data: IValueComponentData[] = [];\n\n    public copyIndex?: number;\n    private copyTimeout: any;\n\n    private componentConfig!: IComponentConfig;\n\n    constructor(\n        private readonly router: Router,\n        private readonly componentService: ComponentService,\n        @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n    ) {}\n\n    ngOnInit(): void {\n        this.componentConfig = this.componentService.getComponentConfig(this.config);\n        this.onResize();\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.boxGap = this.gapSize;\n        this.className = `ngx-helper-m3-value-box${this.hideShadow ? ' hide-shadow' : ''}`;\n\n        this.data = this.componentService.getValueData(this.values);\n    }\n\n    onResize(): void {\n        if (this.values.length === 0) return;\n\n        const isMobile: boolean = window.innerWidth <= this.componentConfig.mobileWidth;\n        const columnSize: number =\n            this.column === undefined\n                ? this.values.length\n                : typeof this.column === 'number'\n                ? this.column\n                : isMobile\n                ? this.column.mobile || this.values.length\n                : this.column.desktop || this.values.length;\n\n        const column: number = columnSize <= 0 || columnSize > this.values.length ? this.values.length : columnSize;\n        this.gridTemplateColumns = Array(column).fill('1fr').join(' ');\n    }\n\n    onClick(action?: () => string[] | void): void {\n        if (!action) return;\n\n        const response = action();\n        if (response) this.router.navigate(response);\n    }\n\n    onCopy(event: Event, index: number): void {\n        event.preventDefault();\n\n        if (this.copyTimeout) clearTimeout(this.copyTimeout);\n        this.copyIndex = index;\n        this.copyTimeout = setTimeout(() => {\n            this.copyIndex = undefined;\n            this.copyTimeout = undefined;\n        }, 2000);\n    }\n}\n","@for (item of data; track $index) {\n<div class=\"value-box\" [class.clear]=\"clearBox\" [class.click]=\"!!item.action\">\n    <div class=\"title\" (click)=\"onClick(item.action)\">{{ item.title }}</div>\n    <div\n        class=\"value\"\n        [style.display]=\"'inline-block'\"\n        [style.direction]=\"item.ltr ? 'ltr' : '*'\"\n        [style.color]=\"item.color\"\n        [class.en]=\"item.english\"\n        [class.empty]=\"!item.value\"\n        (click)=\"onClick(item.action)\"\n    >\n        {{ item.value || emptyText }}\n    </div>\n    <!-- COPY TO CLIPBOARD -->\n    @if (item.copyToClipboard && item.value) {\n    <button mat-icon-button type=\"button\" [cdkCopyToClipboard]=\"item.value\" (click)=\"onCopy($event, $index)\">\n        <mat-icon>{{ copyIndex === $index ? 'done_all' : 'copy' }}</mat-icon>\n    </button>\n    }\n</div>\n}\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { Router } from '@angular/router';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { ComponentService, IValueComponentData } from '../../component.service';\n\nimport { INgxHelperValue } from '../ngx-helper-value.interface';\n\n@Component({\n    selector: 'ngx-helper-value-list',\n    imports: [ClipboardModule, MatIcon, MatIconButton],\n    providers: [ComponentService],\n    templateUrl: './ngx-helper-value-list.component.html',\n    styleUrl: './ngx-helper-value-list.component.scss',\n})\nexport class NgxHelperValueListComponent implements OnChanges {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-value-list';\n\n    @Input({ required: true }) values!: INgxHelperValue[];\n    @Input({ required: false }) titleWidth: string = '20%';\n    @Input({ required: false }) emptyText: string = 'نامشخص';\n\n    public data: IValueComponentData[] = [];\n\n    public copyIndex?: number;\n    private copyTimeout: any;\n\n    constructor(private readonly router: Router, private readonly componentService: ComponentService) {}\n\n    ngOnChanges(changes: SimpleChanges): void {\n        this.data = this.componentService.getValueData(this.values);\n    }\n\n    onClick(action?: () => string[] | void): void {\n        if (!action) return;\n\n        const response = action();\n        if (response) this.router.navigate(response);\n    }\n\n    onCopy(event: Event, index: number): void {\n        event.preventDefault();\n\n        if (this.copyTimeout) clearTimeout(this.copyTimeout);\n        this.copyIndex = index;\n        this.copyTimeout = setTimeout(() => {\n            this.copyIndex = undefined;\n            this.copyTimeout = undefined;\n        }, 2000);\n    }\n}\n","@for (item of data; track $index) {\n<div class=\"value-list-item\" [class.even]=\"$index % 2 === 0\" [class.odd]=\"$index % 2 === 1\">\n    <div class=\"title\" [style.width]=\"titleWidth\">{{ item.title }}:</div>\n    <div class=\"value\">\n        <div\n            [style.display]=\"'inline-block'\"\n            [style.direction]=\"item.ltr ? 'ltr' : '*'\"\n            [style.color]=\"item.color\"\n            [class.en]=\"item.english\"\n            [class.empty]=\"!item.value\"\n            [class.click]=\"!!item.action\"\n            (click)=\"onClick(item.action)\"\n        >\n            {{ item.value || emptyText }}\n        </div>\n        <!-- ACTION -->\n        @if (item.action) {\n        <button mat-icon-button type=\"button\" (click)=\"onClick(item.action)\">\n            <mat-icon [style.color]=\"item.color\">open_in_new</mat-icon>\n        </button>\n\n        }\n    </div>\n    <!-- COPY TO CLIPBOARD -->\n    @if (item.copyToClipboard && item.value) {\n    <button mat-icon-button type=\"button\" [cdkCopyToClipboard]=\"item.value\" (click)=\"onCopy($event, $index)\">\n        <mat-icon>{{ copyIndex === $index ? 'done_all' : 'copy' }}</mat-icon>\n    </button>\n    }\n</div>\n}\n","import { Component, HostBinding, inject } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { INgxHelperConfirm } from '../confirm.interface';\n\n@Component({\n    host: { selector: 'confirm-dialog' },\n    imports: [NgClass, MatButtonModule, MatDialogModule, MatIconModule],\n    templateUrl: './confirm-dialog.component.html',\n    styleUrl: './confirm-dialog.component.scss',\n})\nexport class ConfirmDialogComponent {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-confirm';\n\n    public confirm: INgxHelperConfirm = inject(MAT_DIALOG_DATA);\n}\n","<div class=\"confirm-content\">\n    <!-- ICON -->\n    @if (confirm.icon) {\n    <mat-icon>{{ confirm.icon }}</mat-icon>\n    }\n\n    <!-- CONTENT -->\n    <div class=\"confirm\">\n        <div class=\"question\">{{ confirm.question }}</div>\n        <!-- DESCRIPTION -->\n        @if (confirm.description) {\n        <div class=\"description\">{{ confirm.description }}</div>\n        }\n        <!-- DATA -->\n        @if (confirm.data) {\n        <div class=\"data\">\n            <div class=\"title\">{{ confirm.data.title }}:</div>\n            <div class=\"value\">{{ confirm.data.value }}</div>\n        </div>\n        }\n    </div>\n</div>\n\n<div class=\"confirm-footer\">\n    <button mat-button type=\"button\" mat-dialog-close [ngClass]=\"confirm.denyClass\">خیر</button>\n    <button mat-button type=\"button\" [mat-dialog-close]=\"true\" [ngClass]=\"confirm.confirmClass\">بلی</button>\n</div>\n","import { Component, HostBinding, inject } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { INgxHelperConfirm } from '../confirm.interface';\n\n@Component({\n    host: { selector: 'confirm-bottom-sheet' },\n    imports: [NgClass, MatButtonModule, MatIconModule],\n    templateUrl: './confirm-bottom-sheet.component.html',\n    styleUrl: './confirm-bottom-sheet.component.scss',\n})\nexport class ConfirmBottomSheetComponent {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-confirm';\n\n    public confirm: INgxHelperConfirm = inject(MAT_BOTTOM_SHEET_DATA);\n\n    constructor(private readonly matBottomSheetRef: MatBottomSheetRef<ConfirmBottomSheetComponent>) {}\n\n    close(confirmed?: boolean) {\n        this.matBottomSheetRef.dismiss(confirmed);\n    }\n}\n","<div class=\"confirm-content\">\n    <!-- ICON -->\n    @if (confirm.icon) {\n    <mat-icon>{{ confirm.icon }}</mat-icon>\n    }\n\n    <!-- CONTENT -->\n    <div class=\"confirm\">\n        <div class=\"question\">{{ confirm.question }}</div>\n        <!-- DESCRIPTION -->\n        @if (confirm.description) {\n        <div class=\"description\">{{ confirm.description }}</div>\n        }\n        <!-- DATA -->\n        @if (confirm.data) {\n        <div class=\"data\">\n            <div class=\"title\">{{ confirm.data.title }}:</div>\n            <div class=\"value\">{{ confirm.data.value }}</div>\n        </div>\n        }\n    </div>\n</div>\n\n<div class=\"confirm-footer\">\n    <button mat-button type=\"button\" (click)=\"close()\" [ngClass]=\"confirm.denyClass\">خیر</button>\n    <button mat-button type=\"button\" (click)=\"close(true)\" [ngClass]=\"confirm.confirmClass\">بلی</button>\n</div>\n","import { Injectable } from '@angular/core';\n\nimport { MatBottomSheet, MatBottomSheetConfig } from '@angular/material/bottom-sheet';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\nimport { ConfirmDialogComponent } from './dialog/confirm-dialog.component';\nimport { ConfirmBottomSheetComponent } from './bottom-sheet/confirm-bottom-sheet.component';\n\nimport { INgxHelperConfirm } from './confirm.interface';\n\ninterface IConfirmData {\n    readonly title: string;\n    readonly value?: string;\n}\n\ninterface IConfirmConfig {\n    readonly description: string;\n    readonly confirmClass: string;\n    readonly denyClass: string;\n}\n\nclass NgxHelperConfirmCalss {\n    constructor(\n        private readonly matBottomSheet: MatBottomSheet,\n        private readonly matDialog: MatDialog,\n        private readonly confirm: INgxHelperConfirm,\n    ) {}\n\n    dialog(onConfirmed: () => void): void;\n    dialog(onConfirmed: () => void, onDenied: () => void): void;\n    dialog(onConfirmed: () => void, config: MatDialogConfig): void;\n    dialog(onConfirmed: () => void, onDenied: () => void, config: MatDialogConfig): void;\n    dialog(onConfirmed: () => void, arg1?: any, arg2?: any): void {\n        const onDenied: (() => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n        const config: MatDialogConfig = arg2 || (typeof arg1 !== 'function' ? arg1 : {});\n\n        this.matDialog\n            .open<any, any, boolean>(ConfirmDialogComponent, {\n                // DEFAULT CONFIG\n                width: 'calc(100vw - 4rem)',\n                direction: 'rtl',\n                enterAnimationDuration: '100ms',\n                exitAnimationDuration: '100ms',\n                // OVERWRITE CONFIG\n                ...config,\n                maxHeight: '80vh',\n                // DATA\n                data: this.confirm,\n            })\n            .afterClosed()\n            .subscribe({ next: (confirmed?: boolean) => (!!confirmed ? onConfirmed() : onDenied ? onDenied() : undefined) });\n    }\n\n    bottomSheet(onConfirmed: () => void): void;\n    bottomSheet(onConfirmed: () => void, onDenied: () => void): void;\n    bottomSheet(onConfirmed: () => void, config: MatBottomSheetConfig): void;\n    bottomSheet(onConfirmed: () => void, onDenied: () => void, config: MatBottomSheetConfig): void;\n    bottomSheet(onConfirmed: () => void, arg1?: any, arg2?: any): void {\n        const onDenied: (() => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n        const config: MatBottomSheetConfig = arg2 || (typeof arg1 !== 'function' ? arg1 : {});\n\n        this.matBottomSheet\n            .open<any, any, boolean>(ConfirmBottomSheetComponent, {\n                // DEFAULT CONFIG\n                direction: 'rtl',\n                panelClass: 'ngx-helper-bottom-sheet',\n                // OVERWRITE CONFIG\n                ...config,\n                maxHeight: '80vh',\n                // DATA\n                data: this.confirm,\n            })\n            .afterDismissed()\n            .subscribe({ next: (confirmed?: boolean) => (!!confirmed ? onConfirmed() : onDenied ? onDenied() : undefined) });\n    }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperConfirmService {\n    constructor(private readonly matBottomSheet: MatBottomSheet, private readonly matDialog: MatDialog) {}\n\n    verify(confirm: INgxHelperConfirm): NgxHelperConfirmCalss {\n        return new NgxHelperConfirmCalss(this.matBottomSheet, this.matDialog, confirm);\n    }\n\n    active(data: IConfirmData): NgxHelperConfirmCalss;\n    active(data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n    active(data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n        return this.verify({\n            question: `آیا می‌خواهید ${data.title} انتخاب شده را فعال کنید؟`,\n            description: config?.description,\n            data: data.value ? { title: data.title, value: data.value } : undefined,\n            icon: 'check_box',\n            confirmClass: config?.confirmClass,\n            denyClass: config?.denyClass,\n        });\n    }\n\n    deactive(data: IConfirmData): NgxHelperConfirmCalss;\n    deactive(data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n    deactive(data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n        return this.verify({\n            question: `آیا می‌خواهید ${data.title} انتخاب شده را غیرفعال کنید؟`,\n            description: config?.description,\n            data: data.value ? { title: data.title, value: data.value } : undefined,\n            icon: 'disabled_by_default',\n            confirmClass: config?.confirmClass || 'error',\n            denyClass: config?.denyClass,\n        });\n    }\n\n    status(active: boolean, data: IConfirmData): NgxHelperConfirmCalss;\n    status(active: boolean, data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n    status(active: boolean, data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n        return active ? this.active(data, config || {}) : this.deactive(data, config || {});\n    }\n\n    delete(data: IConfirmData): NgxHelperConfirmCalss;\n    delete(data: IConfirmData, config: Partial<IConfirmConfig>): NgxHelperConfirmCalss;\n    delete(data: IConfirmData, config?: Partial<IConfirmConfig>): NgxHelperConfirmCalss {\n        return this.verify({\n            question: `آیا می‌خواهید ${data.title} انتخاب شده را حذف کنید؟`,\n            description: config?.description,\n            data: data.value ? { title: data.title, value: data.value } : undefined,\n            icon: 'delete',\n            confirmClass: config?.confirmClass || 'error',\n            denyClass: config?.denyClass,\n        });\n    }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface INgxHelperContainerConfig {\n    data?: any;\n    padding?: string;\n    hideClose?: boolean;\n}\n\nexport type NgxHelperContainer = 'DIALOG' | 'BOTTOMSHEET';\n\nexport const NGX_HELPER_CONTAINER_TYPE: InjectionToken<NgxHelperContainer> = new InjectionToken('NGX-HELPER-CONTAINER-TYPE');\nexport const NGX_HELPER_CONTAINER_DATA: InjectionToken<any> = new InjectionToken<any>('NGX-HELPER-CONTAINER-DATA');\nexport const NGX_HELPER_CONTAINER_CLOSE: InjectionToken<(response?: any) => void> = new InjectionToken(\n    'NGX-HELPER-CONTAINER-CLOSE',\n);\n","import { NgComponentOutlet } from '@angular/common';\nimport { Component, HostBinding, inject, Injector, OnInit } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatIcon } from '@angular/material/icon';\n\nimport {\n    INgxHelperContainerConfig,\n    NGX_HELPER_CONTAINER_CLOSE,\n    NGX_HELPER_CONTAINER_DATA,\n    NGX_HELPER_CONTAINER_TYPE,\n} from '../container.interface';\n\n@Component({\n    host: { selector: 'container-dialog' },\n    imports: [NgComponentOutlet, MatIconButton, MatIcon],\n    templateUrl: './container-dialog.component.html',\n    styleUrl: './container-dialog.component.scss',\n})\nexport class ContainerDialogComponent implements OnInit {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-container';\n\n    public container: {\n        component: ComponentType<any>;\n        readonly title: string;\n        readonly config: INgxHelperContainerConfig;\n    } = inject(MAT_DIALOG_DATA);\n\n    public injector!: Injector;\n\n    constructor(private readonly matDialogRef: MatDialogRef<ContainerDialogComponent>) {}\n\n    ngOnInit(): void {\n        this.injector = Injector.create({\n            providers: [\n                { provide: NGX_HELPER_CONTAINER_TYPE, useValue: 'DIALOG' },\n                { provide: NGX_HELPER_CONTAINER_DATA, useValue: this.container.config.data },\n                {\n                    provide: NGX_HELPER_CONTAINER_CLOSE,\n                    useFactory: () => (response?: any) => this.matDialogRef.close(response),\n                },\n            ],\n        });\n    }\n\n    close(): void {\n        this.matDialogRef.close();\n    }\n}\n","<div class=\"container-header\">\n    <div class=\"title\">{{ container.title }}</div>\n    @if (!container.config.hideClose) {\n    <button mat-icon-button type=\"button\" (click)=\"close()\">\n        <mat-icon>close</mat-icon>\n    </button>\n    }\n</div>\n\n<div class=\"container-content\" [style.padding]=\"container.config.padding || '1rem'\">\n    <span *ngComponentOutlet=\"container.component; injector: injector\"></span>\n</div>\n","import { NgComponentOutlet } from '@angular/common';\nimport { Component, HostBinding, inject, Injector, OnInit } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\nimport {\n    INgxHelperContainerConfig,\n    NGX_HELPER_CONTAINER_CLOSE,\n    NGX_HELPER_CONTAINER_DATA,\n    NGX_HELPER_CONTAINER_TYPE,\n} from '../container.interface';\n\n@Component({\n    host: { selector: 'container-bottom-sheet' },\n    imports: [NgComponentOutlet, MatIconButton, MatIcon],\n    templateUrl: './container-bottom-sheet.component.html',\n    styleUrl: './container-bottom-sheet.component.scss',\n})\nexport class ContainerBottomSheetComponent implements OnInit {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-container';\n\n    public container: {\n        component: ComponentType<any>;\n        readonly title: string;\n        readonly config: INgxHelperContainerConfig;\n    } = inject(MAT_BOTTOM_SHEET_DATA);\n\n    public injector!: Injector;\n\n    constructor(private readonly matBottomSheetRef: MatBottomSheetRef<ContainerBottomSheetComponent>) {}\n\n    ngOnInit(): void {\n        this.injector = Injector.create({\n            providers: [\n                { provide: NGX_HELPER_CONTAINER_TYPE, useValue: 'BOTTOMSHEET' },\n                { provide: NGX_HELPER_CONTAINER_DATA, useValue: this.container.config.data },\n                {\n                    provide: NGX_HELPER_CONTAINER_CLOSE,\n                    useFactory: () => (response?: any) => this.matBottomSheetRef.dismiss(response),\n                },\n            ],\n        });\n    }\n\n    close(): void {\n        this.matBottomSheetRef.dismiss();\n    }\n}\n","<div class=\"container-header\">\n    <div class=\"title\">{{ container.title }}</div>\n    @if (!container.config.hideClose) {\n    <button mat-icon-button type=\"button\" (click)=\"close()\">\n        <mat-icon>close</mat-icon>\n    </button>\n    }\n</div>\n\n<div class=\"container-content\" [style.padding]=\"container.config.padding || '1rem'\">\n    <span *ngComponentOutlet=\"container.component; injector: injector\"></span>\n</div>\n","import { Injectable } from '@angular/core';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { MatBottomSheet, MatBottomSheetConfig } from '@angular/material/bottom-sheet';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\nimport { ContainerDialogComponent } from './dialog/container-dialog.component';\nimport { ContainerBottomSheetComponent } from './bottom-sheet/container-bottom-sheet.component';\n\nimport { INgxHelperContainerConfig } from './container.interface';\n\ninterface IContainerData {\n    readonly component: ComponentType<any>;\n    readonly title: string;\n    readonly config: INgxHelperContainerConfig;\n}\n\nclass NgxHelperContainerCalss {\n    constructor(\n        private readonly matBottomSheet: MatBottomSheet,\n        private readonly matDialog: MatDialog,\n        private readonly container: IContainerData,\n    ) {}\n\n    dialog<T>(): void;\n    dialog<T>(onResponse: (response: T) => void): void;\n    dialog<T>(onResponse: (response: T) => void, onDismiss: () => void): void;\n    dialog<T>(onResponse: (response: T) => void, config: MatDialogConfig): void;\n    dialog<T>(onResponse: (response: T) => void, onDismiss: () => void, config: MatDialogConfig): void;\n    dialog<T>(arg1?: any, arg2?: any, arg3?: any): void {\n        const onResponse: ((response: T) => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n        const onDismiss: (() => void) | undefined = typeof arg2 === 'function' ? arg2 : undefined;\n        const config: MatDialogConfig = arg3 || (typeof arg2 !== 'function' ? arg2 : {});\n\n        this.matDialog\n            .open(ContainerDialogComponent, {\n                // DEFAULT CONFIG\n                width: 'calc(100vw - 4rem)',\n                direction: 'rtl',\n                enterAnimationDuration: '100ms',\n                exitAnimationDuration: '100ms',\n                // OVERWRITE CONFIG\n                ...config,\n                maxHeight: '80vh',\n                // DATA\n                data: this.container,\n            })\n            .afterClosed()\n            .subscribe({\n                next: (response?: T) => {\n                    if (onResponse && !!response) onResponse(response);\n                    if (onDismiss && !response) onDismiss();\n                },\n            });\n    }\n\n    bottomSheet<T>(): void;\n    bottomSheet<T>(onResponse: (result: T) => void): void;\n    bottomSheet<T>(onResponse: (result: T) => void, onDismiss: () => void): void;\n    bottomSheet<T>(onResponse: (result: T) => void, config: MatBottomSheetConfig): void;\n    bottomSheet<T>(onResponse: (result: T) => void, onDismiss: () => void, config: MatBottomSheetConfig): void;\n    bottomSheet<T>(arg1?: any, arg2?: any, arg3?: any): void {\n        const onResponse: ((result: T) => void) | undefined = typeof arg1 === 'function' ? arg1 : undefined;\n        const onDismiss: (() => void) | undefined = typeof arg2 === 'function' ? arg2 : undefined;\n        const config: MatBottomSheetConfig = arg3 || (typeof arg2 !== 'function' ? arg2 : {});\n\n        this.matBottomSheet\n            .open<any, any, T>(ContainerBottomSheetComponent, {\n                // DEFAULT CONFIG\n                direction: 'rtl',\n                panelClass: 'ngx-helper-bottom-sheet',\n                // OVERWRITE CONFIG\n                ...config,\n                maxHeight: '80vh',\n                // DATA\n                data: this.container,\n            })\n            .afterDismissed()\n            .subscribe({\n                next: (response?: T) => {\n                    if (onResponse && !!response) onResponse(response);\n                    if (onDismiss && !response) onDismiss();\n                },\n            });\n    }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperContainerService {\n    constructor(private readonly matBottomSheet: MatBottomSheet, private readonly matDialog: MatDialog) {}\n\n    init(component: ComponentType<any>, title: string): NgxHelperContainerCalss;\n    init(component: ComponentType<any>, title: string, config: INgxHelperContainerConfig): NgxHelperContainerCalss;\n    init(component: ComponentType<any>, title: string, arg1?: any): NgxHelperContainerCalss {\n        const config: INgxHelperContainerConfig = arg1 || {};\n\n        return new NgxHelperContainerCalss(this.matBottomSheet, this.matDialog, { component, title, config });\n    }\n}\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\n\nimport { Feature, Map, View } from 'ol';\nimport { Coordinate } from 'ol/coordinate';\nimport { Point } from 'ol/geom';\nimport interactionDoubleClickZoom from 'ol/interaction/DoubleClickZoom';\nimport BaseLayer from 'ol/layer/Base';\nimport TileLayer from 'ol/layer/Tile';\nimport VectorLayer from 'ol/layer/Vector';\nimport OSM from 'ol/source/OSM';\nimport VectorSource from 'ol/source/Vector';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { INgxHelperCoordinates, INgxHelperCoordinatesConfig } from '../ngx-helper-coordinates.interface';\n\n@Component({\n    host: { selector: 'get', '(window:keydown)': 'checkEscape($event)' },\n    imports: [FormsModule, NgxMaskDirective, MatIcon],\n    providers: [provideNgxMask()],\n    templateUrl: './get.component.html',\n    styleUrl: './get.component.scss',\n})\nexport class GetComponent implements OnInit {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-coordinates';\n\n    @Input({ required: true }) coordinates?: INgxHelperCoordinates;\n    @Input({ required: true }) config?: Partial<INgxHelperCoordinatesConfig>;\n    @Input({ required: true }) close!: (coordinates?: INgxHelperCoordinates) => void;\n\n    protected coordinate: Coordinate = [];\n    protected inputTransformFn = (value: any): string => Helper.STRING.changeNumbers(value.toString(), 'EN');\n\n    private map!: Map;\n\n    ngOnInit(): void {\n        this.coordinate = this.coordinates\n            ? [this.coordinates.longitude, this.coordinates.latitude]\n            : this.config?.view\n            ? [this.config.view.longitude, this.config.view.latitude]\n            : [51.3380603, 35.6997382];\n\n        const zoom: number = this.config?.zoom || 15;\n\n        this.map = new Map({\n            view: new View({ center: this.coordinate, zoom, projection: 'EPSG:4326' }),\n            layers: [new TileLayer({ source: new OSM() })],\n            target: 'ngx-helper-m3-coordinates-map',\n        });\n\n        this.map\n            .getInteractions()\n            .getArray()\n            .forEach((interaction) => {\n                if (interaction instanceof interactionDoubleClickZoom) this.map.removeInteraction(interaction);\n            });\n\n        this.addLayer();\n    }\n\n    addLayer(): void {\n        this.map\n            .getLayers()\n            .getArray()\n            .forEach((layer: BaseLayer) => {\n                if (layer instanceof VectorLayer) this.map.removeLayer(layer);\n            });\n\n        if (this.coordinates) {\n            const size: number = this.config?.size || 8;\n            const color: string = this.config?.color || 'rgb(42, 101, 126)';\n\n            const point = new Point(this.coordinate);\n            const layer = new VectorLayer({\n                source: new VectorSource({ features: [new Feature(point)] }),\n                style: {\n                    'circle-fill-color': color,\n                    'circle-radius': size,\n                    'circle-stroke-color': '#FFF',\n                    'circle-stroke-width': 1,\n                },\n            });\n            this.map.addLayer(layer);\n        }\n    }\n\n    checkInputs(latitude: string, longitude: string): void {\n        this.coordinates = undefined;\n        this.addLayer();\n\n        latitude = latitude.toString().trim();\n        if (latitude === '' || isNaN(+latitude) || +latitude < -180 || +latitude > 180) return;\n\n        longitude = longitude.toString().trim();\n        if (longitude === '' || isNaN(+longitude) || +longitude < -180 || +longitude > 180) return;\n\n        const center: Coordinate = [+longitude, +latitude];\n        this.map.getView().animate({ center, duration: 1000 });\n\n        this.coordinate = [+longitude, +latitude];\n        this.coordinates = { latitude: +latitude, longitude: +longitude };\n        this.addLayer();\n    }\n\n    selectCoordinates(): void {\n        if (!this.coordinates) return;\n        this.close(this.coordinates);\n    }\n\n    setCoordinates(event: MouseEvent): void {\n        event.preventDefault();\n\n        this.coordinate = this.map.getEventCoordinate(event).map((c: number) => +c.toFixed(7));\n        this.coordinates = { latitude: this.coordinate[1], longitude: this.coordinate[0] };\n        this.addLayer();\n    }\n\n    checkEscape(event: any): void {\n        if (!(event instanceof KeyboardEvent)) return;\n\n        if (event.code === 'Escape') {\n            event.preventDefault();\n            this.close();\n        }\n    }\n}\n","<div\n    id=\"ngx-helper-m3-coordinates-map\"\n    class=\"map\"\n    (dblclick)=\"setCoordinates($event)\"\n    (contextmenu)=\"setCoordinates($event)\"\n></div>\n\n<div class=\"coordinates\">\n    <div class=\"header\">\n        <div class=\"title\">COORDINATES</div>\n        <mat-icon (click)=\"close()\">close</mat-icon>\n    </div>\n    <div class=\"item\">\n        <div class=\"title\">LATITUDE</div>\n        <input\n            type=\"text\"\n            maxlength=\"15\"\n            inputmode=\"numeric\"\n            [ngModel]=\"coordinates?.latitude\"\n            mask=\"separator.12\"\n            thousandSeparator=\"\"\n            decimalMarker=\".\"\n            [allowNegativeNumbers]=\"true\"\n            [inputTransformFn]=\"inputTransformFn\"\n            (keyup.enter)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n            (blur)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n            #latitudeInput\n        />\n    </div>\n    <div class=\"item\">\n        <div class=\"title\">LONGITUDE</div>\n        <input\n            type=\"text\"\n            maxlength=\"15\"\n            inputmode=\"numeric\"\n            [ngModel]=\"coordinates?.longitude\"\n            mask=\"separator.12\"\n            thousandSeparator=\"\"\n            decimalMarker=\".\"\n            [allowNegativeNumbers]=\"true\"\n            [inputTransformFn]=\"inputTransformFn\"\n            (keyup.enter)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n            (blur)=\"checkInputs(latitudeInput.value, longitudeInput.value)\"\n            #longitudeInput\n        />\n    </div>\n    <div class=\"buttons\">\n        <mat-icon [class.disabled]=\"!coordinates\" (click)=\"selectCoordinates()\">done_all</mat-icon>\n    </div>\n</div>\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { Feature, Map, View } from 'ol';\nimport { Coordinate } from 'ol/coordinate';\nimport { Point } from 'ol/geom';\nimport TileLayer from 'ol/layer/Tile';\nimport VectorLayer from 'ol/layer/Vector';\nimport OSM from 'ol/source/OSM';\nimport VectorSource from 'ol/source/Vector';\n\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperCoordinates, INgxHelperCoordinatesConfig } from '../ngx-helper-coordinates.interface';\n\n@Component({\n    host: { selector: 'show', '(window:keydown)': 'checkEscape($event)' },\n    imports: [ClipboardModule, MatIcon],\n    templateUrl: './show.component.html',\n    styleUrl: './show.component.scss',\n})\nexport class ShowComponent implements OnInit {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-coordinates';\n\n    @Input({ required: true }) coordinates!: INgxHelperCoordinates;\n    @Input({ required: true }) config?: Partial<Omit<INgxHelperCoordinatesConfig, 'view'>>;\n    @Input({ required: true }) close!: () => void;\n\n    protected copied?: 'LATITUDE' | 'LONGITUDE';\n\n    private copyTimeout: any;\n    private map!: Map;\n\n    ngOnInit(): void {\n        const coordinate: Coordinate = [this.coordinates.longitude, this.coordinates.latitude];\n        const point = new Point(coordinate);\n\n        const zoom: number = this.config?.zoom || 15;\n        const size: number = this.config?.size || 8;\n        const color: string = this.config?.color || 'rgb(42, 101, 126)';\n\n        this.map = new Map({\n            view: new View({ center: coordinate, zoom, projection: 'EPSG:4326' }),\n            layers: [\n                new TileLayer({ source: new OSM() }),\n                new VectorLayer({\n                    source: new VectorSource({ features: [new Feature(point)] }),\n                    style: {\n                        'circle-fill-color': color,\n                        'circle-radius': size,\n                        'circle-stroke-color': '#FFF',\n                        'circle-stroke-width': 1,\n                    },\n                }),\n            ],\n            target: 'ngx-helper-m3-coordinates-map',\n        });\n    }\n\n    setCopy(type: 'LATITUDE' | 'LONGITUDE'): void {\n        if (this.copyTimeout) clearTimeout(this.copyTimeout);\n\n        this.copied = type;\n        this.copyTimeout = setTimeout(() => (this.copied = undefined), 1000);\n    }\n\n    checkEscape(event: any): void {\n        if (!(event instanceof KeyboardEvent)) return;\n\n        if (event.code === 'Escape') {\n            event.preventDefault();\n            this.close();\n        }\n    }\n}\n","<div id=\"ngx-helper-m3-coordinates-map\" class=\"map\"></div>\n\n<div class=\"coordinates\">\n    <div class=\"header\">\n        <div class=\"title\">COORDINATES</div>\n        <mat-icon (click)=\"close()\">close</mat-icon>\n    </div>\n    <div class=\"item\">\n        <div class=\"title\">LATITUDE</div>\n        <div class=\"value\">{{ coordinates.latitude.toFixed(7) }}</div>\n        <mat-icon [cdkCopyToClipboard]=\"coordinates.latitude.toString()\" (click)=\"setCopy('LATITUDE')\">\n            {{ copied === 'LATITUDE' ? 'done_all' : 'copy' }}\n        </mat-icon>\n    </div>\n    <div class=\"item\">\n        <div class=\"title\">LONGITUDE</div>\n        <div class=\"value\">{{ coordinates.longitude.toFixed(7) }}</div>\n        <mat-icon [cdkCopyToClipboard]=\"coordinates.longitude.toString()\" (click)=\"setCopy('LONGITUDE')\">\n            {{ copied === 'LONGITUDE' ? 'done_all' : 'copy' }}\n        </mat-icon>\n    </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { GetComponent } from './get/get.component';\nimport { ShowComponent } from './show/show.component';\n\nimport { INgxHelperCoordinates, INgxHelperCoordinatesConfig } from './ngx-helper-coordinates.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperCoordinatesService {\n    constructor(private readonly overlay: Overlay) {}\n\n    get(): Promise<INgxHelperCoordinates>;\n    get(coordinates: INgxHelperCoordinates): Promise<INgxHelperCoordinates>;\n    get(config: Partial<INgxHelperCoordinatesConfig>): Promise<INgxHelperCoordinates>;\n    get(coordinates: INgxHelperCoordinates, config: Partial<INgxHelperCoordinatesConfig>): Promise<INgxHelperCoordinates>;\n    get(arg1?: any, arg2?: any): Promise<INgxHelperCoordinates> {\n        const coordinates: INgxHelperCoordinates | undefined = arg1 ? ('latitude' in arg1 ? arg1 : undefined) : undefined;\n        const config: Partial<INgxHelperCoordinatesConfig> | undefined = arg2 || (arg1 && !coordinates ? arg1 : undefined);\n\n        return new Promise<INgxHelperCoordinates>((resolve, reject) => {\n            const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n            const componentRef = overlayRef.attach(new ComponentPortal(GetComponent));\n\n            componentRef.setInput('coordinates', coordinates);\n            componentRef.setInput('config', config);\n            componentRef.setInput('close', (coordinates?: INgxHelperCoordinates) => {\n                coordinates ? resolve(coordinates) : reject();\n                overlayRef.dispose();\n            });\n        });\n    }\n\n    show(coordinates: INgxHelperCoordinates): void;\n    show(coordinates: INgxHelperCoordinates, config: Partial<Omit<INgxHelperCoordinatesConfig, 'view'>>): void;\n    show(coordinates: INgxHelperCoordinates, config?: Partial<Omit<INgxHelperCoordinatesConfig, 'view'>>): void {\n        const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n        const componentRef = overlayRef.attach(new ComponentPortal(ShowComponent));\n\n        componentRef.setInput('coordinates', coordinates);\n        componentRef.setInput('config', config);\n        componentRef.setInput('close', () => overlayRef.dispose());\n    }\n}\n","import { AfterViewInit, Component, HostBinding, Input } from '@angular/core';\nimport { HttpClient, HttpEventType, HttpHeaders } from '@angular/common/http';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperHttpDownloadConfig } from '../ngx-helper-http.interface';\n\n@Component({\n    host: { selector: 'download' },\n    imports: [MatIcon],\n    templateUrl: './download.component.html',\n    styleUrl: './download.component.scss',\n})\nexport class DownloadComponent implements AfterViewInit {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-http';\n    @HostBinding('style.left') protected left: string = 'calc(-250px - 1rem)';\n    @HostBinding('style.bottom') public bottom: string = '1rem';\n\n    @Input({ required: true }) id!: string;\n    @Input({ required: true }) path!: string;\n    @Input({ required: true }) title!: string;\n    @Input({ required: true }) config!: Partial<INgxHelperHttpDownloadConfig>;\n    @Input({ required: true }) onSuccess!: (arrayBuffer: ArrayBuffer) => void;\n    @Input({ required: true }) onError!: () => void;\n    @Input({ required: true }) close!: () => void;\n\n    protected progress: number = 0;\n\n    constructor(private readonly httpClient: HttpClient) {}\n\n    ngAfterViewInit(): void {\n        setTimeout(() => (this.left = '1rem'), 0);\n        setTimeout(this.download.bind(this), 1);\n    }\n\n    download(): void {\n        let headers: HttpHeaders = new HttpHeaders();\n        const header: { [key: string]: any } = this.config.header || {};\n        Object.keys(header).forEach((key: string) => (headers = headers.set(key, header[key])));\n\n        let request;\n        switch (this.config.method || 'GET') {\n            case 'GET':\n                request = this.httpClient.get(this.path, {\n                    headers,\n                    reportProgress: true,\n                    observe: 'events',\n                    responseType: 'arraybuffer',\n                });\n                break;\n            case 'POST':\n                request = this.httpClient.post(this.path, {\n                    headers,\n                    reportProgress: true,\n                    observe: 'events',\n                    responseType: 'arraybuffer',\n                });\n                break;\n            case 'PUT':\n                request = this.httpClient.put(this.path, {\n                    headers,\n                    reportProgress: true,\n                    observe: 'events',\n                    responseType: 'arraybuffer',\n                });\n                break;\n            case 'PATCH':\n                request = this.httpClient.patch(this.path, {\n                    headers,\n                    reportProgress: true,\n                    observe: 'events',\n                    responseType: 'arraybuffer',\n                });\n                break;\n        }\n\n        request.subscribe({\n            next: (event: any) => {\n                switch (event.type) {\n                    case HttpEventType.DownloadProgress:\n                        const progress: number =\n                            event.loaded && event.total ? Math.ceil((event.loaded / event.total) * 1000) / 10 : 0;\n                        this.progress = progress <= 100 ? progress : 100;\n                        break;\n\n                    case HttpEventType.Response:\n                        this.progress = 100;\n                        this.onSuccess(event.body);\n                        this.close();\n                        break;\n                }\n            },\n            error: () => {\n                this.onError();\n                this.close();\n            },\n        });\n    }\n}\n","<div class=\"content\">\n    <mat-icon>file_download</mat-icon>\n    <div class=\"title\">{{ title }}</div>\n</div>\n\n<div class=\"progress-container\">\n    <div class=\"progress-value\" [style.width]=\"progress + '%'\"></div>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\n\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n    host: { selector: 'pdf', '(window:keydown)': 'checkEscape($event)' },\n    imports: [MatIcon, MatIconButton, PdfViewerModule],\n    templateUrl: './pdf.component.html',\n    styleUrl: './pdf.component.scss',\n})\nexport class PdfComponent {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-pdf';\n\n    @Input({ required: true }) src!: string;\n    @Input({ required: true }) close!: () => void;\n\n    checkEscape(event: any): void {\n        if (!(event instanceof KeyboardEvent)) return;\n\n        if (event.code === 'Escape') {\n            event.preventDefault();\n            this.close();\n        }\n    }\n}\n","<div class=\"background\"></div>\n<button class=\"close\" mat-icon-button (click)=\"close()\"><mat-icon>close</mat-icon></button>\n\n<pdf-viewer\n    [src]=\"src\"\n    [render-text]=\"true\"\n    [zoom-scale]=\"'page-fit'\"\n    [original-size]=\"true\"\n    [fit-to-page]=\"true\"\n    style=\"width: calc(100vw - 2rem); height: calc(100vh - 2rem)\"\n></pdf-viewer>\n","import { AfterViewInit, Component, HostBinding, Input } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpEvent, HttpEventType, HttpHeaders, HttpStatusCode } from '@angular/common/http';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { INgxHelperHttpUploadConfig } from '../ngx-helper-http.interface';\n\n@Component({\n    host: { selector: 'upload' },\n    imports: [MatIcon],\n    templateUrl: './upload.component.html',\n    styleUrl: './upload.component.scss',\n})\nexport class UploadComponent<R, E> implements AfterViewInit {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-http';\n    @HostBinding('style.left') protected left: string = 'calc(-250px - 1rem)';\n    @HostBinding('style.bottom') bottom: string = '1rem';\n\n    @Input({ required: true }) id!: string;\n    @Input({ required: true }) file!: File;\n    @Input({ required: true }) url!: string;\n    @Input({ required: true }) config!: Partial<INgxHelperHttpUploadConfig>;\n    @Input({ required: true }) close!: (type: 'RESPONSE' | 'ERROR', result: any, status: HttpStatusCode) => void;\n\n    protected progress: number = 0;\n\n    constructor(private readonly httpClient: HttpClient) {}\n\n    ngAfterViewInit(): void {\n        setTimeout(() => (this.left = '1rem'), 0);\n        setTimeout(this.upload.bind(this), 0);\n    }\n\n    upload(): void {\n        const formData: FormData = new FormData();\n        formData.append('file', this.file);\n\n        const body: { [key: string]: any } = this.config.body || {};\n        Object.keys(body).forEach((k: string) => formData.append(k, body[k]));\n\n        let headers: HttpHeaders = new HttpHeaders();\n        const header: { [key: string]: any } = this.config.header || {};\n        Object.keys(header).forEach((key: string) => (headers = headers.set(key, header[key])));\n\n        let request;\n        switch (this.config.method || 'POST') {\n            case 'POST':\n                request = this.httpClient.post<R>(this.url, formData, { headers, reportProgress: true, observe: 'events' });\n                break;\n            case 'PUT':\n                request = this.httpClient.put<R>(this.url, formData, { headers, reportProgress: true, observe: 'events' });\n                break;\n            case 'PATCH':\n                request = this.httpClient.patch<R>(this.url, formData, { headers, reportProgress: true, observe: 'events' });\n                break;\n        }\n\n        request.subscribe({\n            next: (event: HttpEvent<R>) => {\n                switch (event.type) {\n                    case HttpEventType.UploadProgress:\n                        if (!event.loaded || !event.total) return;\n                        const progress: number = (event.loaded / event.total) * 100;\n                        this.progress = progress > 100 ? 100 : +progress.toFixed(2);\n                        break;\n\n                    case HttpEventType.Response:\n                        this.progress = 100;\n                        this.close('RESPONSE', event.body, event.status);\n                        break;\n                }\n            },\n            error: (error: HttpErrorResponse) => this.close('ERROR', error.error, error.status),\n        });\n    }\n}\n","<div class=\"content\">\n    <mat-icon>file_upload</mat-icon>\n    <div class=\"file\">{{ file.name }}</div>\n</div>\n\n<div class=\"progress-container\">\n    <div class=\"progress-value\" [style.width]=\"progress + '%'\"></div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { Helper } from '@webilix/helper-library';\n\n@Pipe({ name: 'ngxHelperMultiLine' })\nexport class NgxHelperMultiLinePipe implements PipeTransform {\n    constructor(private readonly domSanitizer: DomSanitizer) {}\n\n    transform(value?: string | null, options?: { html?: boolean }): string | SafeHtml {\n        if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n        return options?.html\n            ? this.domSanitizer.bypassSecurityTrustHtml(value.replace(/(?:\\r\\n|\\r|\\n)/g, '<br />'))\n            : Helper.STRING.escapeHTML(value).replace(/(?:\\r\\n|\\r|\\n)/g, '<br />');\n    }\n}\n","import { AfterViewInit, Component, ElementRef, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { NgxHelperMultiLinePipe } from '../../pipes/multi-line.pipe';\nimport { INgxHelperConfig } from '../../ngx-helper.config';\n\nimport { INgxHelperToastConfig } from '../ngx-helper-toast.interface';\n\n@Component({\n    host: { selector: 'toast' },\n    imports: [MatIcon, NgxHelperMultiLinePipe],\n    templateUrl: './toast.component.html',\n    styleUrl: './toast.component.scss',\n})\nexport class ToastComponent implements OnInit, OnDestroy, AfterViewInit {\n    @HostListener('click') private onClick = () => this.close();\n\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-toast';\n    @HostBinding('style.top') public top: string = '0';\n    @HostBinding('style.color') public textColor!: string;\n    @HostBinding('style.border-color') public borderColor!: string;\n    @HostBinding('style.background-color') public backgroundColor!: string;\n\n    @Input({ required: true }) id!: string;\n    @Input({ required: true }) icon!: string;\n    @Input({ required: true }) messages: string[] = [];\n    @Input({ required: true }) config!: { helper?: Partial<INgxHelperConfig>; toast: Partial<INgxHelperToastConfig> };\n    @Input({ required: true }) init!: () => void;\n    @Input({ required: true }) close!: () => void;\n\n    public progress: number = 0;\n    public start: number = 0;\n\n    protected timeout!: number;\n    protected showClose!: boolean;\n    protected animation!: 'DECREASE' | 'INCREASE';\n\n    private interval?: any;\n\n    constructor(public readonly elementRef: ElementRef) {}\n\n    ngOnInit(): void {\n        this.borderColor = this.backgroundColor;\n\n        const xPosition: 'LEFT' | 'CENTER' | 'RIGHT' = this.config.helper?.toastXPosition || 'CENTER';\n        this.className = `ngx-helper-m3-toast ${xPosition.toLowerCase()}`;\n\n        const toastTimeout =\n            this.config.helper?.toastTimeout === undefined || this.config.helper?.toastTimeout < 0\n                ? 4000\n                : this.config.helper?.toastTimeout;\n        this.timeout =\n            this.config.toast.timeout === undefined || this.config.toast.timeout < 0\n                ? toastTimeout\n                : this.config.toast.timeout;\n        this.showClose = this.config.toast.showClose || this.timeout === 0;\n        this.animation = this.config.helper?.toastProgressAnimation || 'DECREASE';\n\n        if (this.timeout) {\n            this.start = new Date().getTime();\n            this.interval = setInterval(() => {\n                const timer: number = new Date().getTime();\n                this.progress = ((timer - this.start) * 100) / this.timeout;\n                this.progress = this.progress < 100 ? +this.progress.toFixed(2) : 100;\n                if (this.progress === 100) this.close();\n            }, 25);\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (this.interval) clearInterval(this.interval);\n    }\n\n    ngAfterViewInit(): void {\n        setTimeout(() => this.init(), 0);\n    }\n}\n","<div class=\"content\">\n    <div class=\"toast\">\n        <mat-icon [style.color]=\"textColor\" class=\"icon\">{{ icon }}</mat-icon>\n        <ul>\n            @for (message of messages; track $index) {\n            <li [innerHTML]=\"message | ngxHelperMultiLine\"></li>\n            }\n        </ul>\n    </div>\n    <!-- CLOSE ICON -->\n    @if (showClose) {\n    <mat-icon [style.color]=\"textColor\" class=\"close\">close</mat-icon>\n    }\n</div>\n\n<div class=\"progress-container\" [style.background-color]=\"backgroundColor\">\n    @if (timeout !== 0) {\n    <div\n        class=\"progress-value\"\n        [style.background-color]=\"'color-mix(in srgb, ' + backgroundColor + ', black 25%)'\"\n        [style.width]=\"(animation === 'DECREASE' ? 100 - progress : progress) + '%'\"\n    ></div>\n    }\n</div>\n","import { ComponentRef, Inject, Injectable, Optional } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../ngx-helper.config';\n\nimport { ToastComponent } from './toast/toast.component';\nimport { INgxHelperToastConfig } from './ngx-helper-toast.interface';\n\ninterface IToast {\n    readonly icon: string;\n    readonly textColor: string;\n    readonly backgroundColor: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperToastService {\n    private components: { id: string; componentRef: ComponentRef<ToastComponent>; content: string }[] = [];\n\n    constructor(\n        private readonly overlay: Overlay,\n        @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n    ) {}\n\n    private getId(): string {\n        let id: string | undefined = undefined;\n        while (!id || this.components.some((c) => c.id === id)) id = Helper.STRING.getRandom(10);\n\n        return id;\n    }\n\n    private updatePositions(): void {\n        let top: number = 0;\n        this.components.forEach((c, index) => {\n            c.componentRef.instance.top = `calc(${(index / 1.5).toFixed(1)}rem + calc(${top}px + 1rem))`;\n            top += +c.componentRef.instance.elementRef.nativeElement.offsetHeight;\n        });\n    }\n\n    toast(toast: IToast, message: string | string[]): void;\n    toast(toast: IToast, message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n    toast(toast: IToast, message: string | string[], onClose: () => void): void;\n    toast(toast: IToast, message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n    toast(toast: IToast, message: string | string[], arg1?: any, arg2?: any): void {\n        const config: Partial<INgxHelperToastConfig> = arg2 ? arg1 : typeof arg1 === 'object' ? arg1 : {};\n        const onClose: () => void = arg2 || (typeof arg1 === 'function' ? arg1 : () => {});\n\n        const messages: string[] = typeof message === 'string' ? [message] : message;\n        const content: string = [toast.icon, toast.textColor, toast.backgroundColor, ...messages].join('\\n');\n        const duplicate = this.components.find((component) => component.content === content);\n        if (!this.config?.toastAllowDuplicates && duplicate) {\n            if (this.config?.toastResetDuplicates) {\n                duplicate.componentRef.instance.start = new Date().getTime();\n                duplicate.componentRef.instance.progress = 0;\n            }\n            return;\n        }\n\n        const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n        const componentRef = overlayRef.attach(new ComponentPortal(ToastComponent));\n\n        componentRef.instance.textColor = toast.textColor;\n        componentRef.instance.backgroundColor = toast.backgroundColor;\n\n        const id: string = this.getId();\n        componentRef.setInput('id', id);\n        componentRef.setInput('icon', toast.icon);\n        componentRef.setInput('messages', messages);\n        componentRef.setInput('config', { helper: this.config, toast: config });\n        componentRef.setInput('init', () => this.updatePositions());\n        componentRef.setInput('close', () => {\n            this.components = this.components.filter((c) => c.id !== componentRef.instance.id);\n            this.updatePositions();\n            if (onClose) onClose();\n            overlayRef.dispose();\n        });\n\n        this.components.push({ id, componentRef, content });\n    }\n\n    info(message: string | string[]): void;\n    info(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n    info(message: string | string[], onClose: () => void): void;\n    info(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n    info(message: string | string[], arg1?: any, arg2?: any): void {\n        const toast: IToast = { icon: 'warning_amber', textColor: '#fff', backgroundColor: '#2f96b4' };\n        this.toast(toast, message, arg1, arg2);\n    }\n\n    success(message: string | string[]): void;\n    success(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n    success(message: string | string[], onClose: () => void): void;\n    success(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n    success(message: string | string[], arg1?: any, arg2?: any): void {\n        const toast: IToast = { icon: 'done_all', textColor: '#fff', backgroundColor: '#51a351' };\n        this.toast(toast, message, arg1, arg2);\n    }\n\n    warning(message: string | string[]): void;\n    warning(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n    warning(message: string | string[], onClose: () => void): void;\n    warning(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n    warning(message: string | string[], arg1?: any, arg2?: any): void {\n        const toast: IToast = { icon: 'info', textColor: '#fff', backgroundColor: '#f89406' };\n        this.toast(toast, message, arg1, arg2);\n    }\n\n    error(message: string | string[]): void;\n    error(message: string | string[], config: Partial<INgxHelperToastConfig>): void;\n    error(message: string | string[], onClose: () => void): void;\n    error(message: string | string[], config: Partial<INgxHelperToastConfig>, onClose: () => void): void;\n    error(message: string | string[], arg1?: any, arg2?: any): void {\n        const toast: IToast = { icon: 'cancel', textColor: '#fff', backgroundColor: '#bd362f' };\n        this.toast(toast, message, arg1, arg2);\n    }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { HttpStatusCode } from '@angular/common/http';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { NgxHelperToastService } from '../toast/ngx-helper-toast.service';\n\nimport { DownloadComponent } from './download/download.component';\nimport { PdfComponent } from './pdf/pdf.component';\nimport { UploadComponent } from './upload/upload.component';\nimport { INgxHelperHttpDownloadConfig, INgxHelperHttpUploadConfig } from './ngx-helper-http.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperHttpService {\n    private components: {\n        id: string;\n        componentRef: ComponentRef<DownloadComponent> | ComponentRef<UploadComponent<any, any>>;\n    }[] = [];\n\n    constructor(private readonly overlay: Overlay, private readonly ngxHelperToastService: NgxHelperToastService) {}\n\n    private getId(): string {\n        let id: string | undefined = undefined;\n        while (!id || this.components.some((c) => c.id === id)) id = Helper.STRING.getRandom(10);\n\n        return id;\n    }\n\n    private updatePositions(): void {\n        this.components.forEach((c, index) => {\n            c.componentRef.instance.bottom = `calc(${(index / 1.5).toFixed(1)}rem + calc(${index * 40}px + 1rem))`;\n        });\n    }\n\n    private getBuffer(path: string, title: string): Promise<ArrayBuffer>;\n    private getBuffer(path: string, title: string, config: Partial<INgxHelperHttpDownloadConfig>): Promise<ArrayBuffer>;\n    private getBuffer(path: string, title: string, config?: Partial<INgxHelperHttpDownloadConfig>): Promise<ArrayBuffer> {\n        return new Promise<ArrayBuffer>((resolve, reject) => {\n            const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n            const componentRef = overlayRef.attach(new ComponentPortal(DownloadComponent));\n\n            const id: string = this.getId();\n            componentRef.setInput('id', id);\n            componentRef.setInput('path', path);\n            componentRef.setInput('title', title);\n            componentRef.setInput('config', config || {});\n            componentRef.setInput('onSuccess', (arrayBuffer: ArrayBuffer) => resolve(arrayBuffer));\n            componentRef.setInput('onError', () => reject());\n            componentRef.setInput('close', () => {\n                this.components = this.components.filter((c) => c.id !== componentRef.instance.id);\n                this.updatePositions();\n                overlayRef.dispose();\n            });\n\n            this.components.push({ id, componentRef });\n            this.updatePositions();\n        });\n    }\n\n    download(path: string, title: string): void;\n    download(path: string, title: string, config: Partial<INgxHelperHttpDownloadConfig>): void;\n    download(path: string, title: string, config?: Partial<INgxHelperHttpDownloadConfig>): void {\n        const onError = () => this.ngxHelperToastService.error('امکان دانلود فایل وجود ندارد.');\n        const onSuccess = (arrayBuffer: ArrayBuffer) => {\n            try {\n                const split: string[] = path\n                    .split('.')\n                    .map((text: string) => text.trim().replace(/\\//gi, ''))\n                    .filter((text: string) => !!text);\n                const name: string = Helper.STRING.getFileName(title, split[split.length - 1] || '');\n\n                const href: string = URL.createObjectURL(new Blob([arrayBuffer]));\n                const a: HTMLAnchorElement = document.createElement('a');\n                a.href = href;\n                a.download = name;\n                a.click();\n            } catch (e) {\n                onError();\n            }\n        };\n\n        this.getBuffer(path, title, config || {}).then(onSuccess, onError);\n    }\n\n    upload<R, E>(\n        file: File,\n        url: string,\n        onSuccess: (response: R | undefined, status: HttpStatusCode) => void,\n        onError: (error: E | undefined, status: HttpStatusCode) => void,\n    ): void;\n    upload<R, E>(\n        file: File,\n        url: string,\n        config: Partial<INgxHelperHttpUploadConfig>,\n        onSuccess: (response: R, status: HttpStatusCode) => void,\n        onError: (error: E, status: HttpStatusCode) => void,\n    ): void;\n    upload<R, E>(file: File, url: string, arg1: any, arg2: any, arg3?: any): void {\n        const config: Partial<INgxHelperHttpUploadConfig> = typeof arg3 === 'function' ? arg1 : {};\n        const onSuccess: (response: R, status: HttpStatusCode) => void = typeof arg3 === 'function' ? arg2 : arg1;\n        const onError: (error: E, status: HttpStatusCode) => void = typeof arg3 === 'function' ? arg3 : arg2;\n\n        const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n        const componentRef = overlayRef.attach(new ComponentPortal(UploadComponent));\n\n        const id: string = this.getId();\n        componentRef.setInput('id', id);\n        componentRef.setInput('file', file);\n        componentRef.setInput('url', url);\n        componentRef.setInput('config', config);\n        componentRef.setInput('close', (type: 'RESPONSE' | 'ERROR', result: any, status: HttpStatusCode) => {\n            this.components = this.components.filter((c) => c.id !== componentRef.instance.id);\n            this.updatePositions();\n            switch (type) {\n                case 'RESPONSE':\n                    onSuccess(result || undefined, status);\n                    break;\n                case 'ERROR':\n                    onError(result || undefined, status);\n                    break;\n            }\n            overlayRef.dispose();\n        });\n\n        this.components.push({ id, componentRef });\n        this.updatePositions();\n    }\n\n    //#region PDF\n    getPDF = (data: string | ArrayBuffer | Blob, config?: Partial<INgxHelperHttpDownloadConfig>): Promise<Blob> => {\n        return new Promise<Blob>((resolve, reject) => {\n            if (typeof data !== 'string') {\n                resolve(new Blob([data], { type: 'application/pdf' }));\n                return;\n            }\n\n            this.getBuffer(data, 'دریافت فایل', config || {}).then(\n                (arrayBuffer: ArrayBuffer) => resolve(new Blob([arrayBuffer], { type: 'application/pdf' })),\n                () => reject(),\n            );\n        });\n    };\n\n    showPDF(url: string): void;\n    showPDF(url: string, config: Partial<INgxHelperHttpDownloadConfig>): void;\n    showPDF(buffer: ArrayBuffer): void;\n    showPDF(buffer: ArrayBuffer, config: Partial<INgxHelperHttpDownloadConfig>): void;\n    showPDF(blob: Blob): void;\n    showPDF(blob: Blob, config: Partial<INgxHelperHttpDownloadConfig>): void;\n    showPDF(data: string | ArrayBuffer | Blob, config?: Partial<INgxHelperHttpDownloadConfig>): void {\n        this.getPDF(data, config).then(async (blob: Blob) => {\n            const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n            const componentRef = overlayRef.attach(new ComponentPortal(PdfComponent));\n\n            componentRef.setInput('src', URL.createObjectURL(blob));\n            componentRef.setInput('close', () => {\n                document.body.style.overflow = 'visible';\n                overlayRef.dispose();\n            });\n\n            document.body.style.overflow = 'hidden';\n        });\n    }\n\n    printPDF(url: string): void;\n    printPDF(url: string, config: Partial<INgxHelperHttpDownloadConfig>): void;\n    printPDF(buffer: ArrayBuffer): void;\n    printPDF(buffer: ArrayBuffer, config: Partial<INgxHelperHttpDownloadConfig>): void;\n    printPDF(blob: Blob): void;\n    printPDF(blob: Blob, config: Partial<INgxHelperHttpDownloadConfig>): void;\n    printPDF(data: string | ArrayBuffer | Blob, config?: Partial<INgxHelperHttpDownloadConfig>): void {\n        this.getPDF(data, config).then(\n            (blob: Blob) => {\n                try {\n                    const prevIframe = document.getElementById('ngx-helper-http-pdf-download-iframe');\n                    if (prevIframe) document.body.removeChild(prevIframe);\n\n                    const src: string = URL.createObjectURL(blob);\n                    const iframe: HTMLIFrameElement = document.createElement('iframe');\n                    iframe.id = 'ngx-helper-http-pdf-download-iframe';\n                    iframe.style.display = 'none';\n                    document.body.appendChild(iframe);\n\n                    iframe.src = src;\n                    iframe.onload = () => iframe.contentWindow?.print();\n                } catch (e) {\n                    this.ngxHelperToastService.error('امکان پرینت فایل وجود ندارد.');\n                }\n            },\n            () => this.ngxHelperToastService.error('امکان دانلود فایل وجود ندارد.'),\n        );\n    }\n    //#endregion\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\n\nimport { NgxHelperMultiLinePipe } from '../../pipes/multi-line.pipe';\n\nimport { INgxHelperImage, INgxHelperImageConfig } from '../ngx-helper-image.interface';\n\n@Component({\n    host: { selector: 'image', '(window:keydown)': 'checkEscape($event)' },\n    imports: [MatIcon, MatIconButton, NgxHelperMultiLinePipe],\n    templateUrl: './image.component.html',\n    styleUrl: './image.component.scss',\n})\nexport class ImageComponent {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-image';\n\n    @Input({ required: true }) image!: INgxHelperImage;\n    @Input({ required: true }) config?: INgxHelperImageConfig;\n    @Input({ required: true }) close!: () => void;\n\n    checkEscape(event: any): void {\n        if (!(event instanceof KeyboardEvent)) return;\n\n        if (event.code === 'Escape') {\n            event.preventDefault();\n            this.close();\n        }\n    }\n}\n","<div\n    class=\"background\"\n    [style.background-color]=\"config?.backgroundColor || 'var(--background)'\"\n    [style.opacity]=\"config?.backgroundOpacity || 0.95\"\n></div>\n\n<button class=\"close\" mat-icon-button (click)=\"close()\"><mat-icon>close</mat-icon></button>\n\n<div class=\"image\">\n    <img [src]=\"image.image\" />\n</div>\n\n<!-- DESCRIPTION -->\n@if (image.description) {\n<div class=\"description\">\n    <div class=\"content\" [innerHTML]=\"image.description | ngxHelperMultiLine\"></div>\n</div>\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\n\nimport { NgxHelperMultiLinePipe } from '../../pipes/multi-line.pipe';\n\nimport { INgxHelperImage, INgxHelperImageConfig } from '../ngx-helper-image.interface';\n\n@Component({\n    host: { selector: 'gallery', '(window:keydown)': 'checkKey($event)' },\n    imports: [MatIcon, MatIconButton, NgxHelperMultiLinePipe],\n    templateUrl: './gallery.component.html',\n    styleUrl: './gallery.component.scss',\n})\nexport class GalleryComponent {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-image';\n\n    @Input({ required: true }) images!: INgxHelperImage[];\n    @Input({ required: true }) config?: INgxHelperImageConfig;\n    @Input({ required: true }) index: number = 0;\n    @Input({ required: true }) close!: () => void;\n\n    checkKey(event: any): void {\n        if (!(event instanceof KeyboardEvent)) return;\n\n        if (event.code === 'Escape') {\n            event.preventDefault();\n            this.close();\n        }\n\n        if (event.code === 'ArrowRight') {\n            event.preventDefault();\n            this.changeIndex(1);\n        }\n\n        if (event.code === 'ArrowLeft') {\n            event.preventDefault();\n            this.changeIndex(-1);\n        }\n    }\n\n    changeIndex(change: number): void {\n        this.index += change;\n        if (this.index < 0) this.index = this.images.length - 1;\n        if (this.index >= this.images.length) this.index = 0;\n    }\n}\n","<div\n    class=\"background\"\n    [style.background-color]=\"config?.backgroundColor || 'var(--background)'\"\n    [style.opacity]=\"config?.backgroundOpacity || 0.95\"\n></div>\n\n<button class=\"close\" mat-icon-button (click)=\"close()\"><mat-icon>close</mat-icon></button>\n\n<div class=\"arrows\">\n    <button class=\"arrow\" mat-icon-button (click)=\"changeIndex(1)\"><mat-icon>chevron_right</mat-icon></button>\n    <div class=\"count\">{{ index + 1 }} از {{ images.length }}</div>\n    <button class=\"arrow\" mat-icon-button (click)=\"changeIndex(-1)\"><mat-icon>chevron_left</mat-icon></button>\n</div>\n\n<div class=\"image\">\n    <img [src]=\"images[index].image\" />\n</div>\n\n<!-- DESCRIPTION -->\n@if (images[index].description) {\n<div class=\"description\">\n    <div class=\"content\" [innerHTML]=\"images[index].description | ngxHelperMultiLine\"></div>\n</div>\n}\n","import { Injectable } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { ImageComponent } from './image/image.component';\nimport { GalleryComponent } from './gallery/gallery.component';\n\nimport { INgxHelperImage, INgxHelperImageConfig } from './ngx-helper-image.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperImageService {\n    constructor(private readonly overlay: Overlay) {}\n\n    showImage(image: INgxHelperImage, config?: INgxHelperImageConfig): void {\n        const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n        const componentRef = overlayRef.attach(new ComponentPortal(ImageComponent));\n\n        componentRef.setInput('image', image);\n        componentRef.setInput('config', config);\n        componentRef.setInput('close', () => {\n            document.body.style.overflow = 'visible';\n            overlayRef.dispose();\n        });\n\n        document.body.style.overflow = 'hidden';\n    }\n\n    showGallery(images: INgxHelperImage[]): void;\n    showGallery(images: INgxHelperImage[], index: number): void;\n    showGallery(images: INgxHelperImage[], config: INgxHelperImageConfig): void;\n    showGallery(images: INgxHelperImage[], index: number, config: INgxHelperImageConfig): void;\n    showGallery(images: INgxHelperImage[], arg1?: any, arg2?: any): void {\n        if (images.length === 0) return;\n\n        const index: number = Helper.IS.number(arg1) && !!images[arg1] ? arg1 : 0;\n        const config: INgxHelperImageConfig | undefined = arg2 || (Helper.IS.object(arg1) ? arg1 : undefined);\n\n        if (images.length === 1) {\n            this.showImage(images[0], config);\n            return;\n        }\n\n        const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n        const componentRef = overlayRef.attach(new ComponentPortal(GalleryComponent));\n\n        componentRef.setInput('images', images);\n        componentRef.setInput('config', config);\n        componentRef.setInput('index', index);\n        componentRef.setInput('close', () => {\n            document.body.style.overflow = 'visible';\n            overlayRef.dispose();\n        });\n\n        document.body.style.overflow = 'hidden';\n    }\n}\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { DecimalPipe } from '@angular/common';\nimport { CdkDragDrop, DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { Feature, Map, View } from 'ol';\nimport { LineString, Point } from 'ol/geom';\nimport { Coordinate } from 'ol/coordinate';\nimport interactionDoubleClickZoom from 'ol/interaction/DoubleClickZoom';\nimport VectorSource from 'ol/source/Vector';\nimport OSM from 'ol/source/OSM';\nimport TileLayer from 'ol/layer/Tile';\nimport VectorLayer from 'ol/layer/Vector';\n\nimport { Helper, IGeoRouteLength } from '@webilix/helper-library';\n\nimport { INgxHelperRouteConfig, NgxHelperRoute } from '../ngx-helper-route.interface';\n\n@Component({\n    host: { selector: 'get', '(window:keydown)': 'checkEscape($event)' },\n    imports: [DragDropModule, MatIcon, DecimalPipe],\n    templateUrl: './get.component.html',\n    styleUrl: './get.component.scss',\n})\nexport class GetComponent implements OnInit {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-route';\n\n    @Input({ required: true }) route!: NgxHelperRoute;\n    @Input({ required: true }) config?: Partial<INgxHelperRouteConfig>;\n    @Input({ required: true }) close!: (route?: NgxHelperRoute) => void;\n\n    protected distance!: IGeoRouteLength;\n\n    private layers: VectorLayer[] = [];\n    private map!: Map;\n\n    ngOnInit(): void {\n        const coordinates =\n            this.route.length > 0\n                ? [this.route[0].longitude, this.route[0].latitude]\n                : this.config?.view\n                ? [this.config.view.longitude, this.config.view.latitude]\n                : [51.3380603, 35.6997382];\n\n        const zoom: number = this.config?.zoom || 15;\n\n        this.map = new Map({\n            view: new View({ center: coordinates, zoom, projection: 'EPSG:4326' }),\n            layers: [new TileLayer({ source: new OSM() })],\n            target: 'ngx-helper-m3-route-map',\n        });\n\n        this.map\n            .getInteractions()\n            .getArray()\n            .forEach((interaction) => {\n                if (interaction instanceof interactionDoubleClickZoom) this.map.removeInteraction(interaction);\n            });\n\n        this.addLayers();\n    }\n\n    addLayers(): void {\n        this.layers.forEach((layer: VectorLayer) => this.map.removeLayer(layer));\n        this.layers = [];\n\n        this.distance = Helper.GEO.routeLength(this.route);\n        if (this.route.length === 0) return;\n\n        // ADD LINES\n        this.route.forEach((coordinates, index: number) => {\n            if (index == 0) return;\n            const color: string = this.config?.circle?.color || 'rgb(42, 101, 126)';\n\n            const from: number[] = [this.route[index - 1].longitude, this.route[index - 1].latitude];\n            const to: number[] = [coordinates.longitude, coordinates.latitude];\n            const feature: Feature<LineString> = new Feature<LineString>({ geometry: new LineString([from, to]) });\n            const layer: VectorLayer = new VectorLayer({\n                source: new VectorSource({ features: [feature] }),\n                style: {\n                    'stroke-line-dash': [3, 3, 3],\n                    'stroke-color': color,\n                    'stroke-width': 2,\n                },\n            });\n            this.map.addLayer(layer);\n            this.layers.push(layer);\n        });\n\n        // ADD CIRCLES\n        this.route.forEach((coordinates, index: number) => {\n            const circle = {\n                size: this.config?.circle?.size || 10,\n                color: this.config?.circle?.color || 'rgb(42, 101, 126)',\n            };\n\n            const text = {\n                size: this.config?.text?.size || 13,\n                font: this.config?.text?.font || 'Yekan',\n                color: this.config?.text?.color || 'rgb(255, 255, 255)',\n            };\n\n            const point = new Point([coordinates.longitude, coordinates.latitude]);\n            const layer = new VectorLayer({\n                source: new VectorSource({ features: [new Feature(point)] }),\n                style: {\n                    // CIRCLE\n                    'circle-fill-color': circle.color,\n                    'circle-radius': circle.size,\n                    'circle-stroke-color': '#FFF',\n                    'circle-stroke-width': 1,\n                    // TEXT\n                    'text-value': (index + 1).toString(),\n                    'text-font': `${text.size}px ${text.font}`,\n                    'text-fill-color': text.color,\n                    'text-offset-y': 1,\n                    'text-stroke-color': circle.color,\n                    'text-stroke-width': 2,\n                },\n            });\n            this.map.addLayer(layer);\n            this.layers.push(layer);\n        });\n    }\n\n    setCoordinates(event: MouseEvent): void {\n        event.preventDefault();\n\n        const coordinates: number[] = this.map.getEventCoordinate(event).map((c: number) => +c.toFixed(7));\n        if (isNaN(coordinates[0]) || isNaN(coordinates[1])) return;\n\n        this.route.push({ latitude: coordinates[1], longitude: coordinates[0] });\n        this.addLayers();\n\n        // ANIMATE\n        if (!this.config?.disableAnimate) this.animate(this.route.length - 1);\n    }\n\n    selectRoute(): void {\n        if (this.route.length < 2) return;\n        this.close(this.route);\n    }\n\n    animate(index: number): void {\n        if (!this.route[index]) return;\n\n        const center: Coordinate = [this.route[index].longitude, this.route[index].latitude];\n        this.map.getView().animate({ center, duration: 250 });\n    }\n\n    delete(index: number): void {\n        if (!this.route[index]) return;\n\n        this.route.splice(index, 1);\n        this.addLayers();\n    }\n\n    drop(event: CdkDragDrop<any>): void {\n        if (event.previousIndex === event.currentIndex) return;\n        moveItemInArray(this.route, event.previousIndex, event.currentIndex);\n        this.addLayers();\n    }\n\n    checkEscape(event: any): void {\n        if (!(event instanceof KeyboardEvent)) return;\n\n        if (event.code === 'Escape') {\n            event.preventDefault();\n            this.close();\n        }\n    }\n}\n","<div\n    id=\"ngx-helper-m3-route-map\"\n    class=\"map\"\n    (dblclick)=\"setCoordinates($event)\"\n    (contextmenu)=\"setCoordinates($event)\"\n></div>\n\n<div class=\"route\">\n    <div class=\"header\">\n        <div class=\"title\">ROUTE</div>\n        <mat-icon (click)=\"close()\">close</mat-icon>\n    </div>\n\n    <div class=\"coordinates\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n        @for (item of route; track $index) {\n        <div class=\"coordinate ngx-helper-m3-route-coordinate\" cdkDrag cdkDragLockAxis=\"y\" cdkDragBoundary=\".coordinates\">\n            <!-- DRAG -->\n            @if (route.length > 1) { <mat-icon cdkDragHandle>drag_indicator</mat-icon> }\n            <div class=\"index\" [style.padding-left]=\"route.length > 1 ? '0' : '0.5rem'\">{{ $index + 1 }}</div>\n            <div class=\"value\" (click)=\"animate($index)\">{{ item.latitude.toFixed(5) }}</div>\n            <div class=\"value\" (click)=\"animate($index)\">{{ item.longitude.toFixed(5) }}</div>\n            <mat-icon class=\"delete\" (click)=\"delete($index)\">delete</mat-icon>\n        </div>\n        }\n    </div>\n\n    <div class=\"footer\">\n        <div class=\"distance\">{{ distance.length | number }} M</div>\n        <mat-icon [class.disabled]=\"route.length < 2\" (click)=\"selectRoute()\">done_all</mat-icon>\n    </div>\n</div>\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { DecimalPipe } from '@angular/common';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\n\nimport { MatIcon } from '@angular/material/icon';\n\nimport { Feature, Map, View } from 'ol';\nimport { Coordinate } from 'ol/coordinate';\nimport { LineString, Point } from 'ol/geom';\nimport interactionDoubleClickZoom from 'ol/interaction/DoubleClickZoom';\nimport OSM from 'ol/source/OSM';\nimport TileLayer from 'ol/layer/Tile';\nimport VectorLayer from 'ol/layer/Vector';\nimport VectorSource from 'ol/source/Vector';\n\nimport { Helper, IGeoRouteLength } from '@webilix/helper-library';\n\nimport { INgxHelperRouteConfig, NgxHelperRoute } from '../ngx-helper-route.interface';\n\n@Component({\n    host: { selector: 'show', '(window:keydown)': 'checkKey($event)' },\n    imports: [ClipboardModule, MatIcon, DecimalPipe],\n    templateUrl: './show.component.html',\n    styleUrl: './show.component.scss',\n})\nexport class ShowComponent implements OnInit {\n    @HostBinding('className') protected className: string = 'ngx-helper-m3-route';\n\n    @Input({ required: true }) route!: NgxHelperRoute;\n    @Input({ required: true }) config?: Partial<INgxHelperRouteConfig>;\n    @Input({ required: true }) close!: () => void;\n\n    protected distance!: IGeoRouteLength;\n    protected copied?: number;\n    protected index: number = 0;\n\n    private layers: VectorLayer[] = [];\n    private copyTimeout?: any;\n    private map!: Map;\n\n    ngOnInit(): void {\n        this.distance = Helper.GEO.routeLength(this.route);\n        const coordinates: Coordinate = [this.route[0].longitude, this.route[0].latitude];\n        const zoom: number = this.config?.zoom || 15;\n\n        this.map = new Map({\n            view: new View({ center: coordinates, zoom, projection: 'EPSG:4326' }),\n            layers: [new TileLayer({ source: new OSM() })],\n            target: 'ngx-helper-m3-route-map',\n        });\n\n        this.map\n            .getInteractions()\n            .getArray()\n            .forEach((interaction) => {\n                if (interaction instanceof interactionDoubleClickZoom) this.map.removeInteraction(interaction);\n            });\n\n        // ADD LINES\n        this.route.forEach((coordinates, index: number) => {\n            if (index == 0) return;\n            const color: string = this.config?.circle?.color || 'rgb(42, 101, 126)';\n\n            const from: number[] = [this.route[index - 1].longitude, this.route[index - 1].latitude];\n            const to: number[] = [coordinates.longitude, coordinates.latitude];\n            const feature: Feature<LineString> = new Feature<LineString>({ geometry: new LineString([from, to]) });\n            const layer: VectorLayer = new VectorLayer({\n                source: new VectorSource({ features: [feature] }),\n                style: {\n                    'stroke-line-dash': [3, 3, 3],\n                    'stroke-color': color,\n                    'stroke-width': 2,\n                },\n            });\n            this.map.addLayer(layer);\n        });\n\n        // ADD CIRCLES\n        this.route.forEach((coordinates, index: number) => {\n            const circle = {\n                size: this.config?.circle?.size || 10,\n                color: this.config?.circle?.color || 'rgb(42, 101, 126)',\n            };\n\n            const text = {\n                size: this.config?.text?.size || 13,\n                font: this.config?.text?.font || 'Yekan',\n                color: this.config?.text?.color || 'rgb(255, 255, 255)',\n            };\n\n            const point = new Point([coordinates.longitude, coordinates.latitude]);\n            const layer = new VectorLayer({\n                source: new VectorSource({ features: [new Feature(point)] }),\n                style: {\n                    // CIRCLE\n                    'circle-fill-color': circle.color,\n                    'circle-radius': circle.size,\n                    'circle-stroke-color': '#FFF',\n                    'circle-stroke-width': 1,\n                    // TEXT\n                    'text-value': (index + 1).toString(),\n                    'text-font': `${text.size}px ${text.font}`,\n                    'text-fill-color': text.color,\n                    'text-offset-y': 1,\n                    'text-stroke-color': circle.color,\n                    'text-stroke-width': 2,\n                },\n            });\n            this.map.addLayer(layer);\n        });\n\n        this.addLayers();\n    }\n\n    addLayers(): void {\n        this.layers.forEach((layer: VectorLayer) => this.map.removeLayer(layer));\n        this.layers = [];\n\n        // ADD CIRCLES\n        this.route.forEach((coordinates, index: number) => {\n            if (index !== this.index) return;\n\n            const circle = {\n                size: this.config?.circle?.size || 10,\n                color: this.config?.circle?.color || 'rgb(42, 101, 126)',\n            };\n\n            const text = {\n                size: this.config?.text?.size || 13,\n                font: this.config?.text?.font || 'Yekan',\n                color: this.config?.text?.color || 'rgb(255, 255, 255)',\n            };\n\n            const point = new Point([coordinates.longitude, coordinates.latitude]);\n            const layer = new VectorLayer({\n                source: new VectorSource({ features: [new Feature(point)] }),\n                style: {\n                    // CIRCLE\n                    'circle-fill-color': circle.color,\n                    'circle-radius': circle.size * 1.4,\n                    'circle-stroke-color': '#FFF',\n                    'circle-stroke-width': 1,\n                    // TEXT\n                    'text-value': (index + 1).toString(),\n                    'text-font': `${text.size * 1.2}px ${text.font}`,\n                    'text-fill-color': text.color,\n                    'text-offset-y': 1,\n                    'text-stroke-color': circle.color,\n                    'text-stroke-width': 2,\n                },\n            });\n            this.map.addLayer(layer);\n            this.layers.push(layer);\n        });\n    }\n\n    animate(index: number): void {\n        if (!this.route[index]) return;\n\n        this.index = index;\n        this.addLayers();\n\n        const center: Coordinate = [this.route[index].longitude, this.route[index].latitude];\n        this.map.getView().animate({ center, duration: 250 });\n    }\n\n    setCopy(index: number): void {\n        if (this.copyTimeout) clearTimeout(this.copyTimeout);\n\n        this.copied = index;\n        this.copyTimeout = setTimeout(() => (this.copied = undefined), 1000);\n    }\n\n    checkKey(event: any): void {\n        if (!(event instanceof KeyboardEvent)) return;\n\n        if (event.code === 'Escape') {\n            event.preventDefault();\n            this.close();\n        }\n\n        if (this.index !== undefined) {\n            const change: number = event.code === 'ArrowUp' ? -1 : event.code === 'ArrowDown' ? 1 : 0;\n            if (change !== 0) {\n                event.preventDefault();\n                this.animate(this.index + change);\n            }\n        }\n    }\n}\n","<div id=\"ngx-helper-m3-route-map\" class=\"map\"></div>\n\n<div class=\"route\">\n    <div class=\"header\">\n        <div class=\"title\">ROUTE</div>\n        <mat-icon (click)=\"close()\">close</mat-icon>\n    </div>\n\n    <div class=\"coordinates\">\n        @for (item of route; track $index) {\n        <div class=\"coordinate ngx-helper-m3-route-coordinate\" [class.selected]=\"index === $index\" (click)=\"animate($index)\">\n            <div class=\"index\" [style.padding-left]=\"route.length > 1 ? '0' : '0.5rem'\">{{ $index + 1 }}</div>\n            <div class=\"value\">{{ item.latitude.toFixed(5) }}</div>\n            <div class=\"value\">{{ item.longitude.toFixed(5) }}</div>\n            <mat-icon\n                [cdkCopyToClipboard]=\"item.latitude.toString() + ',' + item.longitude.toString()\"\n                (click)=\"setCopy($index)\"\n            >\n                {{ copied === $index ? 'done_all' : 'copy' }}\n            </mat-icon>\n        </div>\n        }\n    </div>\n\n    <div class=\"footer\">\n        <div class=\"distance\">{{ distance.length | number }} M</div>\n    </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { Helper } from '@webilix/helper-library';\n\nimport { GetComponent } from './get/get.component';\nimport { ShowComponent } from './show/show.component';\n\nimport { INgxHelperRouteConfig, NgxHelperRoute } from './ngx-helper-route.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxHelperRouteService {\n    constructor(private readonly overlay: Overlay) {}\n\n    get(): Promise<NgxHelperRoute>;\n    get(route: NgxHelperRoute): Promise<NgxHelperRoute>;\n    get(config: Partial<INgxHelperRouteConfig>): Promise<NgxHelperRoute>;\n    get(route: NgxHelperRoute, config: Partial<INgxHelperRouteConfig>): Promise<NgxHelperRoute>;\n    get(arg1?: any, arg2?: any): Promise<NgxHelperRoute> {\n        const route: NgxHelperRoute = arg1 && Helper.IS.array(arg1) ? arg1 : [];\n        const config: Partial<INgxHelperRouteConfig> | undefined =\n            arg2 || (arg1 && !Helper.IS.array(arg1) ? arg1 : undefined);\n\n        return new Promise<NgxHelperRoute>((resolve, reject) => {\n            const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n            const componentRef = overlayRef.attach(new ComponentPortal(GetComponent));\n\n            componentRef.setInput('route', route);\n            componentRef.setInput('config', config);\n            componentRef.setInput('close', (route?: NgxHelperRoute) => {\n                route ? resolve(route) : reject();\n                overlayRef.dispose();\n            });\n        });\n    }\n\n    show(route: NgxHelperRoute): void;\n    show(route: NgxHelperRoute, config: Partial<Omit<INgxHelperRouteConfig, 'view'>>): void;\n    show(route: NgxHelperRoute, config?: Partial<Omit<INgxHelperRouteConfig, 'view'>>): void {\n        const overlayRef = this.overlay.create({ hasBackdrop: false, direction: 'rtl' });\n        const componentRef = overlayRef.attach(new ComponentPortal(ShowComponent));\n\n        componentRef.setInput('route', route);\n        componentRef.setInput('config', config);\n        componentRef.setInput('close', () => overlayRef.dispose());\n    }\n}\n","import { Directive, ElementRef, Inject, Input, OnInit, Optional, RendererFactory2 } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../ngx-helper.config';\n\n@Directive({\n    selector: '[ngxHelperMobileView]',\n    host: { '(window:resize)': 'onResize()' },\n})\nexport class NgxHelperMobileViewDirective implements OnInit {\n    @Input({ required: true }) public ngxHelperMobileView!: string;\n\n    private mobileWidth!: number;\n\n    constructor(\n        private readonly elementRef: ElementRef,\n        private readonly rendererFactory: RendererFactory2,\n        @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n    ) {}\n\n    ngOnInit(): void {\n        this.mobileWidth = this.config?.mobileWidth || 600;\n        this.onResize();\n    }\n\n    onResize(): void {\n        if (!this.elementRef) return;\n\n        const renderer = this.rendererFactory.createRenderer(null, null);\n        const isMobile: boolean = window.innerWidth <= this.mobileWidth;\n        if (isMobile) {\n            renderer.addClass(this.elementRef.nativeElement, this.ngxHelperMobileView);\n        } else {\n            renderer.removeClass(this.elementRef.nativeElement, this.ngxHelperMobileView);\n        }\n    }\n}\n","import { Directive, ElementRef, Inject, Input, OnInit, Optional } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../ngx-helper.config';\n\n@Directive({ selector: '[ngxHelperShowIn]', host: { '(window:resize)': 'onResize()' } })\nexport class NgxHelperShowInDirective implements OnInit {\n    @Input({ required: true }) ngxHelperShowIn!: 'DESKTOP' | 'MOBILE';\n\n    private mobileWidth!: number;\n\n    constructor(\n        private readonly elementRef: ElementRef,\n        @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n    ) {}\n\n    ngOnInit(): void {\n        this.mobileWidth = this.config?.mobileWidth || 600;\n        this.onResize();\n    }\n\n    onResize(): void {\n        if (!this.elementRef) return;\n\n        const element: HTMLElement = this.elementRef.nativeElement;\n        const isMobile: boolean = window.innerWidth <= this.mobileWidth;\n\n        switch (this.ngxHelperShowIn) {\n            case 'DESKTOP':\n                element.style.display = isMobile ? 'none' : '';\n                break;\n            case 'MOBILE':\n                element.style.display = isMobile ? '' : 'none';\n                break;\n        }\n    }\n}\n","import { Directive, ElementRef, Inject, Input, OnInit, Optional } from '@angular/core';\n\nimport { INgxHelperConfig, NGX_HELPER_CONFIG } from '../ngx-helper.config';\n\ninterface IStickyView {\n    readonly top?: { readonly desktopView: string; readonly mobileView: string };\n    readonly bottom?: { readonly desktopView: string; readonly mobileView: string };\n}\n\n@Directive({\n    selector: '[ngxHelperSticky]',\n    host: { '(window:resize)': 'onResize()' },\n})\nexport class NgxHelperStickyDirective implements OnInit {\n    @Input({ required: true }) public ngxHelperSticky!: 'TOP' | 'BOTTOM';\n    @Input({ required: false }) public stickyIn: 'ALWAYS' | 'DESKTOP' | 'MOBILE' = 'ALWAYS';\n    @Input({ required: false }) public zIndex?: number;\n\n    private mobileWidth!: number;\n    private stickyView!: IStickyView;\n    private isMobile: boolean = false;\n\n    constructor(\n        private readonly elementRef: ElementRef,\n        @Optional() @Inject(NGX_HELPER_CONFIG) private readonly config?: Partial<INgxHelperConfig>,\n    ) {}\n\n    ngOnInit(): void {\n        const getStickyView = (\n            config: string | { desktopView: string; mobileView: string },\n        ): { desktopView: string; mobileView: string } => {\n            return {\n                desktopView: typeof config === 'string' ? config : config.desktopView,\n                mobileView: typeof config === 'string' ? config : config.mobileView,\n            };\n        };\n\n        this.mobileWidth = this.config?.mobileWidth || 600;\n        this.stickyView = {\n            top: this.config?.stickyView?.top ? getStickyView(this.config.stickyView.top) : undefined,\n            bottom: this.config?.stickyView?.bottom ? getStickyView(this.config.stickyView.bottom) : undefined,\n        };\n\n        this.onResize();\n    }\n\n    onResize(): void {\n        this.isMobile = window.innerWidth <= this.mobileWidth;\n        this.setPosition();\n    }\n\n    setPosition(): void {\n        const element: HTMLElement = this.elementRef.nativeElement;\n        if (!element) return;\n\n        const sticky: boolean =\n            this.stickyIn === 'ALWAYS' ||\n            (this.stickyIn === 'DESKTOP' && !this.isMobile) ||\n            (this.stickyIn === 'MOBILE' && this.isMobile);\n\n        switch (this.ngxHelperSticky) {\n            case 'TOP':\n                const top = this.stickyView.top;\n                if (!top) return;\n\n                element.style.position = sticky ? 'sticky' : 'static';\n                element.style.zIndex = sticky ? (this.zIndex ? this.zIndex.toString() : '1') : 'auto';\n                element.style.top = sticky ? (this.isMobile ? top.mobileView : top.desktopView) : 'auto';\n                break;\n\n            case 'BOTTOM':\n                const bottom = this.stickyView.bottom;\n                if (!bottom) return;\n\n                element.style.position = sticky ? 'sticky' : 'static';\n                element.style.zIndex = sticky ? (this.zIndex ? this.zIndex.toString() : '1') : 'auto';\n                element.style.bottom = sticky ? (this.isMobile ? bottom.mobileView : bottom.desktopView) : 'auto';\n                break;\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\n\nimport { Helper } from '@webilix/helper-library';\n\ntype Types = 'HTML' | 'STYLE' | 'SCRIPT' | 'URL' | 'RESOURCE_URL';\n\n@Pipe({ name: 'ngxHelperSafe' })\nexport class NgxHelperSafePipe implements PipeTransform {\n    constructor(private readonly domSanitizer: DomSanitizer) {}\n\n    transform(\n        value?: string | null,\n        options?: { type?: Types },\n    ): string | SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n        if (value === undefined || value === null || !Helper.IS.string(value) || value === '') return '';\n\n        switch (options?.type || 'HTML') {\n            case 'STYLE':\n                return this.domSanitizer.bypassSecurityTrustStyle(value);\n            case 'SCRIPT':\n                return this.domSanitizer.bypassSecurityTrustScript(value);\n            case 'URL':\n                return this.domSanitizer.bypassSecurityTrustUrl(value);\n            case 'RESOURCE_URL':\n                return this.domSanitizer.bypassSecurityTrustResourceUrl(value);\n            case 'HTML':\n                return this.domSanitizer.bypassSecurityTrustHtml(value);\n        }\n    }\n}\n","/*\n * Public API Surface of ngx-helper-m3\n */\n\nexport * from './lib/ngx-helper.config';\n\n// COMPONENTS\nexport * from './lib/components/box/ngx-helper-box.component';\nexport * from './lib/components/box/ngx-helper-box.interface';\nexport * from './lib/components/card/ngx-helper-card.component';\nexport * from './lib/components/card/ngx-helper-card.interface';\nexport * from './lib/components/loader/ngx-helper-loader.component';\nexport * from './lib/components/page-group/ngx-helper-page-group.component';\nexport * from './lib/components/page-group/ngx-helper-page-group.interface';\nexport * from './lib/components/progress/ngx-helper-progress.component';\nexport * from './lib/components/section/ngx-helper-section.component';\nexport * from './lib/components/section/column/ngx-helper-section-column.component';\nexport * from './lib/components/value/box/ngx-helper-value-box.component';\nexport * from './lib/components/value/list/ngx-helper-value-list.component';\nexport * from './lib/components/value/ngx-helper-value.interface';\nexport * from './lib/components/value/ngx-helper-value.pipe';\n\n// SERVICES\nexport * from './lib/confirm/confirm.interface';\nexport * from './lib/confirm/confirm.service';\nexport * from './lib/container/container.interface';\nexport * from './lib/container/container.service';\nexport * from './lib/coordinates/ngx-helper-coordinates.interface';\nexport * from './lib/coordinates/ngx-helper-coordinates.service';\nexport * from './lib/http/ngx-helper-http.interface';\nexport * from './lib/http/ngx-helper-http.service';\nexport * from './lib/image/ngx-helper-image.interface';\nexport * from './lib/image/ngx-helper-image.service';\nexport * from './lib/route/ngx-helper-route.interface';\nexport * from './lib/route/ngx-helper-route.service';\nexport * from './lib/toast/ngx-helper-toast.interface';\nexport * from './lib/toast/ngx-helper-toast.service';\n\n// DIRECTIVES\nexport * from './lib/directives/ngx-helper-mobile-view.directive';\nexport * from './lib/directives/ngx-helper-show-in.directive';\nexport * from './lib/directives/ngx-helper-sticky.directive';\n\n// PIPES\nexport * from './lib/pipes/bank-card.pipe';\nexport * from './lib/pipes/date.pipe';\nexport * from './lib/pipes/duration.pipe';\nexport * from './lib/pipes/file-size.pipe';\nexport * from './lib/pipes/mobile.pipe';\nexport * from './lib/pipes/multi-line.pipe';\nexport * from './lib/pipes/number.pipe';\nexport * from './lib/pipes/period.pipe';\nexport * from './lib/pipes/price.pipe';\nexport * from './lib/pipes/safe.pipe';\nexport * from './lib/pipes/volume.pipe';\nexport * from './lib/pipes/weight.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i2.ComponentService","i1","i2","GetComponent","ShowComponent","i2.NgxHelperToastService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsBa,iBAAiB,GAAG,IAAI,cAAc,CAA4B,mBAAmB;AAE3F,MAAM,sBAAsB,GAAG,CAAC,MAAiC,KAA0B;AAC9F,IAAA,MAAM,SAAS,GAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAEhF,IAAA,OAAO,wBAAwB,CAAC,SAAS,CAAC;AAC9C;;MC1Ba,mBAAmB,GAAwB,IAAI,cAAc,CAAC,qBAAqB;;MCUnF,qBAAqB,CAAA;IACM,SAAS,GAAW,mBAAmB;AACnC,IAAA,UAAU;AAEtB,IAAA,SAAS;AACT,IAAA,IAAI;IACJ,OAAO,GAAW,MAAM;IACxB,UAAU,GAAY,KAAK;AAEhD,IAAA,QAAQ;IAEf,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,EAAE;IACtB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,WAAW,EAAE;IACtB;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAA,iBAAA,EAAoB,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,EAAE,EAAE;QAC5E,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AAErB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC5B,YAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACrE,SAAA,CAAC;IACN;uGA3BS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZlC,kIAKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDGc,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,sCAAA,EAAA,0BAAA,EAAA,2BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIlB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACI,gBAAgB,EAAA,OAAA,EACjB,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,kIAAA,EAAA;;sBAK3B,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,eAAe;;sBAE3B,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;MEdjB,qBAAqB,CAAA;IAC9B,SAAS,CAAC,KAAqB,EAAE,OAAmD,EAAA;QAChF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE;AAEhG,QAAA,QAAQ,OAAO,EAAE,IAAI;AACjB,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;AACnD,YAAA;AACI,gBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC;;IAE7E;uGAVS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,IAAI;mBAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE;;;MCItB,iBAAiB,CAAA;IAG1B,SAAS,CAAC,KAAW,EAAE,OAAqD,EAAA;AACxE,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAAE,YAAA,OAAO,EAAE;AAE5G,QAAA,MAAM,IAAI,GAAS,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK;AACtE,QAAA,MAAM,MAAM,GAAG,cAAc,EAAE;QAC/B,MAAM,QAAQ,GACV,OAAO,EAAE,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,OAAO,EAAE,QAAQ,GAAG,aAAa;AAE3G,QAAA,QAAQ,OAAO,EAAE,MAAM,IAAI,MAAM;AAC7B,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AAExE,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEjE,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAEpE,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAE/D,YAAA,KAAK,MAAM;AACP,gBAAA,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC;AACzD,gBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC;AAEvD,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAE/D,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAE7D,YAAA;AACI,gBAAA,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;;IAEjF;uGArCS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,IAAI;mBAAC,EAAE,IAAI,EAAE,eAAe,EAAE;;;MCAlB,qBAAqB,CAAA;IAM9B,SAAS,CAAC,KAAW,EAAE,OAAyD,EAAA;AAC5E,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,EAAE;QAEpD,IAAI,OAAO,GAAW,CAAC;AACvB,QAAA,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACjD,aAAA,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;aACxG,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC9B,YAAA,MAAM,IAAI,GAAS,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;AAC5D,YAAA,MAAM,EAAE,GAAS,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE;YACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;QACxE;AAEA,QAAA,MAAM,IAAI,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAChC,QAAA,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;AAChD,QAAA,OAAO,IAAI,OAAO,GAAG,EAAE;AAEvB,QAAA,MAAM,OAAO,GAAY,IAAI,KAAK,CAAC;AACnC,QAAA,MAAM,IAAI,GAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAElG,QAAA,QAAQ,OAAO,EAAE,MAAM,IAAI,MAAM;AAC7B,YAAA,KAAK,MAAM;AACP,gBAAA,MAAM,OAAO,GAAY,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO;gBAC1D,MAAM,GAAG,GAAW;AAChB,sBAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,IAAI,MAAM;sBACjG,EAAE;gBACR,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,EAAE;gBAC1E,OAAO,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE;AAElE,YAAA,KAAK,MAAM;gBACP,OAAO,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI;AAEhF,YAAA,KAAK,KAAK;AACN,gBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhH,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9G,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAExG,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CACvB,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,EACxD,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CACnC;;IAEb;uGAvDS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,IAAI;mBAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE;;;MCDtB,qBAAqB,CAAA;IAC9B,SAAS,CAAC,KAAqB,EAAE,OAA+B,EAAA;AAC5D,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,EAAE;QAEhF,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5E;uGALS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,IAAI;mBAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE;;;MCCtB,mBAAmB,CAAA;IAC5B,SAAS,CAAC,KAAqB,EAAE,OAA2B,EAAA;QACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE;AAEhG,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC;IACnE;uGALS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,IAAI;mBAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE;;;MCCpB,mBAAmB,CAAA;IAC5B,SAAS,CAAC,KAAqB,EAAE,OAAwD,EAAA;AACrF,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,EAAE;QAEhF,KAAK,GAAG,OAAO,EAAE,cAAc,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,KAAK;QACjF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;IACtE;uGANS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,IAAI;mBAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE;;;MCCpB,mBAAmB,CAAA;IAK5B,SAAS,CAAC,KAAW,EAAE,OAA+B,EAAA;AAClD,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,EAAE;AAEpD,QAAA,MAAM,IAAI,GAAS,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;AAC5F,QAAA,MAAM,EAAE,GAAS,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE;AAE3F,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtE;uGAZS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,IAAI;mBAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE;;;MCCpB,kBAAkB,CAAA;IAC3B,SAAS,CAAC,KAAqB,EAAE,OAAmE,EAAA;QAChG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AAAE,YAAA,OAAO,EAAE;AAE7F,QAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,MAA0B,KAAY;AACvD,YAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE;AAEpD,YAAA,MAAM,KAAK,GAAW,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/F,YAAA,MAAM,IAAI,GAAW,MAAM,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7E,YAAA,MAAM,QAAQ,GAAW,OAAO,EAAE,QAAQ,GAAG,GAAG,GAAG,OAAO,EAAE,QAAQ,GAAG,EAAE;AAEzE,YAAA,OAAO,GAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,EAAG,QAAQ,EAAE;AACxC,QAAA,CAAC;QAED,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAErD,KAAK,IAAI,IAAI;QACb,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEnE,KAAK,IAAI,IAAI;QACb,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEpE,KAAK,IAAI,IAAI;AACb,QAAA,OAAO,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvD;uGAxBS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,IAAI;mBAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE;;;MCCnB,mBAAmB,CAAA;IAC5B,SAAS,CAAC,KAAqB,EAAE,OAAgD,EAAA;QAC7E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AAAE,YAAA,OAAO,EAAE;AAE7F,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,MAA0B,KAAY;AACxD,YAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE;AAEpD,YAAA,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9F,YAAA,MAAM,UAAU,GAAW,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC;AACjD,YAAA,MAAM,UAAU,GAAW,OAAO,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC;YACnD,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAA,CAAE;AACxD,QAAA,CAAC;QAED,IAAI,KAAK,KAAK,CAAC;AAAE,YAAA,OAAO,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAErD,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAE5E,KAAK,IAAI,IAAI;AACb,QAAA,OAAO,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnD;uGAnBS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,IAAI;mBAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE;;;MCCpB,mBAAmB,CAAA;IAC5B,SAAS,CAAC,KAAqB,EAAE,OAAgD,EAAA;QAC7E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AAAE,YAAA,OAAO,EAAE;AAE7F,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,MAA0B,KAAY;AACxD,YAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE;AAEpD,YAAA,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9F,YAAA,MAAM,UAAU,GAAW,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC;AACjD,YAAA,MAAM,UAAU,GAAW,OAAO,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC;YACnD,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAA,CAAE;AACxD,QAAA,CAAC;QAED,IAAI,KAAK,KAAK,CAAC;AAAE,YAAA,OAAO,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAErD,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE/D,KAAK,IAAI,IAAI;QACb,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEpE,KAAK,IAAI,IAAI;QACb,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE/D,KAAK,IAAI,IAAI;QACb,IAAI,KAAK,GAAG,IAAI;AAAE,YAAA,OAAO,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEzE,KAAK,IAAI,IAAI;AACb,QAAA,OAAO,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAChE;uGA5BS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,IAAI;mBAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE;;;MCcpB,kBAAkB,CAAA;IAC3B,SAAS,CAAC,KAAsB,EAAE,OAAgC,EAAA;AAC9D,QAAA,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE;QAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,SAAS;AAEnE,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,WAAW;AACZ,gBAAA,OAAO,IAAI,qBAAqB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,SAAS;AAEjF,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,IAAI,iBAAiB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAY,EAAE,KAAK,CAAC,IAAI,SAAS;AAEpF,YAAA,KAAK,UAAU;AACX,gBAAA,OAAO,IAAI,qBAAqB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAY,EAAE,KAAK,CAAC,IAAI,SAAS;AAExF,YAAA,KAAK,WAAW;AACZ,gBAAA,OAAO,IAAI,qBAAqB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAY,EAAE,KAAK,CAAC,IAAI,SAAS;AAExF,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI,mBAAmB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAY,EAAE,KAAK,CAAC,IAAI,SAAS;AAEtF,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI,mBAAmB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAY,EAAE,KAAK,CAAC,IAAI,SAAS;AAEtF,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI,mBAAmB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAY,EAAE,KAAK,CAAC,IAAI,SAAS;AAEtF,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,IAAI,kBAAkB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAY,EAAE,KAAK,CAAC,IAAI,SAAS;AAErF,YAAA,KAAK,QAAQ;gBACT,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAI,KAAK,CAAC,KAAa,GAAG,SAAS;AAE3E,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI,mBAAmB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAY,EAAE,KAAK,CAAC,IAAI,SAAS;AAEtF,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI,mBAAmB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAY,EAAE,KAAK,CAAC,IAAI,SAAS;;IAE9F;uGAvCS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,IAAI;mBAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE;;;MCUnB,gBAAgB,CAAA;AACzB,IAAA,kBAAkB,CAAC,MAAkC,EAAA;AACjD,QAAA,MAAM,aAAa,GAAG,CAClB,MAA4D,KACf;YAC7C,OAAO;AACH,gBAAA,WAAW,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,WAAW;AACrE,gBAAA,UAAU,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU;aACtE;AACL,QAAA,CAAC;QAED,OAAO;AACH,YAAA,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,GAAG;AACvC,YAAA,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,IAAI,OAAO;YAC/D,UAAU,EAAE,MAAM,EAAE;AAChB,kBAAE;oBACI,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS;oBAC7E,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS;AACzF;AACH,kBAAE,SAAS;SAClB;IACL;AAEQ,IAAA,KAAK,CAAC,KAAqB,EAAA;AAC/B,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,QAAQ;AACb,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI;AAEf,YAAA,KAAK,UAAU;AACX,gBAAA,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM;;AAGtC,QAAA,OAAO,KAAK;IAChB;AAEA,IAAA,YAAY,CAAC,MAAyB,EAAA;AAClC,QAAA,MAAM,aAAa,GAAG,IAAI,kBAAkB,EAAE,CAAC,SAAS;QACxD,MAAM,SAAS,GAA6B,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAE7E,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACvB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;YACxB,OAAO,KAAK,KAAK;kBACX,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;AAChC,kBAAE,OAAO,KAAK,KAAK;sBACjB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7D,sBAAE;wBACI,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,wBAAA,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;wBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,eAAe,EAAE,IAAI,CAAC,eAAe;AACrC,wBAAA,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;wBACtB,OAAO,EAAE,SAAS,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO;qBACjD;AACX,QAAA,CAAC,CAAC;IACN;uGAzDS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAhB,gBAAgB,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;MCOY,sBAAsB,CAAA;AAqBV,IAAA,gBAAA;AACuC,IAAA,MAAA;IArBxB,SAAS,GAAW,oBAAoB;AAEjD,IAAA,KAAK;AACJ,IAAA,QAAQ;AACR,IAAA,IAAI;IACJ,OAAO,GAA0B,EAAE;AACnC,IAAA,MAAM;IACN,OAAO,GAAW,MAAM;AACxB,IAAA,eAAe;IACf,SAAS,GAAY,KAAK;IAE/C,QAAQ,GAAY,KAAK;IACzB,OAAO,GAAa,EAAE;AACrB,IAAA,eAAe;AAEhB,IAAA,QAAQ;AACR,IAAA,WAAW;IACX,WAAW,GAAoE,EAAE;IAExF,WAAA,CACqB,gBAAkC,EACK,MAAkC,EAAA;QADzE,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACuB,IAAA,CAAA,MAAM,GAAN,MAAM;IAC/D;IAEH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5E,IAAI,CAAC,QAAQ,EAAE;IACnB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAA,kBAAA,EAAqB,IAAI,CAAC,SAAS,GAAG,aAAa,GAAG,EAAE,EAAE;AAE3E,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;YACvC,OAAO,SAAS,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE;AAC5F,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AAErB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC/B,gBAAA,IAAI,IAAI,KAAK,SAAS,EAAE;oBACpB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;AAC5F,wBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;gBACxC;;AAAO,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,YAAA,CAAC,CAAC;AACF,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;AAC9D,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAExD,YAAA,MAAM,GAAG,GAAa,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1F,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS;YAC3F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC;QAC7C;IACJ;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW;IACzE;IAEA,SAAS,CAAC,EAAU,EAAE,UAAoB,EAAA;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE;AAEnD,QAAA,MAAM,GAAG,GAAa,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAClG,IAAI,CAAC,QAAQ,GAAG,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACnB,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,SAAS;AACnC,aAAA,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK;AAErD,QAAA,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtD;AAtES,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,+CAsBP,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAtBhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAJpB,CAAC,gBAAgB,CAAC,+CC7BjC,6xGAwFA,EAAA,MAAA,EAAA,CAAA,48BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5Dc,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,0IAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKvD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;+BACI,iBAAiB,EAAA,IAAA,EACrB,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAA,OAAA,EAChC,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,CAAC,EAAA,SAAA,EACtD,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,6xGAAA,EAAA,MAAA,EAAA,CAAA,48BAAA,CAAA,EAAA;;0BA0BxB;;0BAAY,MAAM;2BAAC,iBAAiB;;sBArBxC,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;MEnCjB,wBAAwB,CAAA;AACU,IAAA,UAAU;AACT,IAAA,WAAW;IAEpB,IAAI,GAAiD,SAAS;AAC9D,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,MAAM;IAEzC,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;IACf;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,IAAI,EAAE;IACf;IAEA,IAAI,GAAA;QACA,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA,EAAA,CAAI;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,kBAAkB;IACvD;uGArBS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,gTCRrC,uIAGA,EAAA,MAAA,EAAA,CAAA,0kDAAA,CAAA,EAAA,CAAA;;2FDKa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,WACpB,EAAE,EAAA,QAAA,EAAA,uIAAA,EAAA,MAAA,EAAA,CAAA,0kDAAA,CAAA,EAAA;;sBAKV,WAAW;uBAAC,qBAAqB;;sBACjC,WAAW;uBAAC,sBAAsB;;sBAElC,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;MEUjB,0BAA0B,GAA4C,IAAI,cAAc,CACjG,4BAA4B;MAEnB,0BAA0B,GAAwB,IAAI,cAAc,CAAC,4BAA4B;MACjG,iCAAiC,GAAwC,IAAI,cAAc,CACpG,mCAAmC;;MCW1B,2BAA2B,CAAA;AAkBf,IAAA,cAAA;AACA,IAAA,MAAA;AACA,IAAA,gBAAA;AACuC,IAAA,MAAA;IApBxB,SAAS,GAAW,0BAA0B;IAC7C,OAAO,GAAW,MAAM;AAElC,IAAA,SAAS;AACR,IAAA,MAAM;AACN,IAAA,IAAI;AACtB,IAAA,WAAW,GAA0C,IAAI,YAAY,EAA2B;AAChG,IAAA,WAAW,GAAsB,IAAI,YAAY,EAAO;IAE3D,QAAQ,GAAY,KAAK;IACzB,KAAK,GAAa,EAAE;AACpB,IAAA,QAAQ;AAER,IAAA,YAAY;AACZ,IAAA,eAAe;AAEtB,IAAA,WAAA,CACqB,cAA8B,EAC9B,MAAc,EACd,gBAAkC,EACK,MAAkC,EAAA;QAHzE,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACuB,IAAA,CAAA,MAAM,GAAN,MAAM;IAC/D;IAEH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC9C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM;AACxD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE;AAE7B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5E,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,qBAAqB;QAE7F,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnE,QAAA,MAAM,WAAW,GAA2B,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE;QAC3F,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,EAAE;AAClF,YAAA,MAAM,EAAE,GAAW,WAAW,CAAC,uBAAuB,CAAC;AACvD,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AAC/C,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE;gBAChB,IAAI,CAAC,kBAAkB,EAAE;YAC7B;QACJ;QAEA,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,WAAW,EAAE;IACtB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,WAAW,EAAE;IACtB;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW;AACrE,QAAA,IAAI,CAAC,SAAS,GAAG,CAAA,wBAAA,EAA2B,IAAI,CAAC,QAAQ,GAAG,cAAc,GAAG,EAAE,EAAE;IACrF;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE;AAE7B,QAAA,MAAM,IAAI,GAA4B;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;YAC3D,EAAE,EAAE,IAAI,CAAC,MAAM;AACf,YAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK;AAC9C,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI;SAC/C;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC5B,YAAA,SAAS,EAAE;AACP,gBAAA,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACvD,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE;AAC5D,gBAAA,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,CAAC,IAAS,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACvG,aAAA;AACJ,SAAA,CAAC;IACN;AAEA,IAAA,OAAO,CAAC,EAAU,EAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE;YAAE;QAElD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AACrC,QAAA,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC3D,QAAA,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE;AAE3B,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;QAChB,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,WAAW,EAAE;AAElB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACtB,YAAA,MAAM,WAAW,GAA2B,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC3F,YAAA,WAAW,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,MAAM;AAClD,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC;QAC/D;IACJ;IAEA,kBAAkB,GAAA;AACd,QAAA,MAAM,IAAI,GAA4B;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;YAC3D,EAAE,EAAE,IAAI,CAAC,MAAM;AACf,YAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK;AAC9C,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI;SAC/C;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B;AArGS,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,mGAqBZ,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AArBhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAJzB,CAAC,gBAAgB,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCjC,mnHA2GA,EAAA,MAAA,EAAA,CAAA,iVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDtEc,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,sCAAA,EAAA,0BAAA,EAAA,2BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,0IAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKrD,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,QAC3B,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAChC,CAAC,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,EAAA,SAAA,EACpD,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,mnHAAA,EAAA,MAAA,EAAA,CAAA,iVAAA,CAAA,EAAA;;0BAyBxB;;0BAAY,MAAM;2BAAC,iBAAiB;;sBApBxC,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,eAAe;;sBAE3B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB;;sBACA;;;ME1CQ,0BAA0B,CAAA;IACC,SAAS,GAAW,wBAAwB;AAClC,IAAA,eAAe;AACZ,IAAA,kBAAkB;AAExC,IAAA,KAAK;IACJ,KAAK,GAA8B,IAAI;IACvC,YAAY,GAAW,KAAK;IAC5B,aAAa,GAAW,0BAA0B;AAClD,IAAA,eAAe;AAEpC,IAAA,IAAI;AACJ,IAAA,SAAS;AAEhB,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,CAAA,uBAAA,EAA0B,IAAI,CAAC,KAAK,EAAE;AACvD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY;QACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,IAAI,aAAa;AAE/D,QAAA,IAAI,KAAK,GACL,IAAI,CAAC,KAAK,KAAK;AACX,cAAE;AACF,cAAE,OAAO,IAAI,CAAC,KAAK,KAAK;kBACtB,IAAI,CAAC;AACP,kBAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG;AACpD,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,GAAG,CAAC;aACnC,IAAI,KAAK,GAAG,GAAG;YAAE,KAAK,GAAG,GAAG;QACjC,IAAI,CAAC,IAAI,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG;IAC3E;uGA7BS,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,+YCRvC,gTAQA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDAa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,WACtB,EAAE,EAAA,QAAA,EAAA,gTAAA,EAAA;;sBAKV,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,qBAAqB;;sBACjC,WAAW;uBAAC,wBAAwB;;sBAEpC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;MEHjB,yBAAyB,CAAA;AASb,IAAA,gBAAA;AACuC,IAAA,MAAA;AATd,IAAA,GAAG;AAErB,IAAA,OAAO;AAE3B,IAAA,eAAe;IAChB,QAAQ,GAAY,KAAK;IAEhC,WAAA,CACqB,gBAAkC,EACK,MAAkC,EAAA;QADzE,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACuB,IAAA,CAAA,MAAM,GAAN,MAAM;IAC/D;IAEH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5E,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM;QAEjC,IAAI,CAAC,QAAQ,EAAE;IACnB;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW;IACzE;AAtBS,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,+CAUV,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAVhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAJvB,CAAC,gBAAgB,CAAC,0BCVjC,sHAGA,EAAA,MAAA,EAAA,CAAA,iaAAA,CAAA,EAAA,CAAA;;2FDWa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;+BACI,oBAAoB,EAAA,IAAA,EACxB,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAA,OAAA,EAChC,EAAE,EAAA,SAAA,EACA,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,sHAAA,EAAA,MAAA,EAAA,CAAA,iaAAA,CAAA,EAAA;;0BAcxB;;0BAAY,MAAM;2BAAC,iBAAiB;;sBATxC,WAAW;uBAAC,qBAAqB;;sBAEjC,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;MEJjB,+BAA+B,CAAA;AAiBnB,IAAA,gBAAA;AACuC,IAAA,MAAA;IAjBjC,SAAS,GAAW,GAAG;IACtB,UAAU,GAAW,GAAG;AAErB,IAAA,cAAc;AACjB,IAAA,YAAY;AACd,IAAA,SAAS;AAEP,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,MAAM;AACN,IAAA,MAAM;AAE1B,IAAA,eAAe;IACf,QAAQ,GAAY,KAAK;IAEjC,WAAA,CACqB,gBAAkC,EACK,MAAkC,EAAA;QADzE,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACuB,IAAA,CAAA,MAAM,GAAN,MAAM;IAC/D;IAEH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5E,IAAI,CAAC,QAAQ,EAAE;IACnB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG;QACpE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG;AAEnC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5E,IAAI,CAAC,QAAQ,EAAE;IACnB;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW;QACrE,IAAI,CAAC,WAAW,EAAE;IACtB;IAEA,WAAW,GAAA;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG;AAChD,QAAA,IAAI,CAAC,GAAG;YAAE;AAEV,QAAA,MAAM,MAAM,GACR,IAAI,CAAC,MAAM,KAAK,IAAI;aACnB,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC5C,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;AAE/C,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ;AAClD,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,MAAM;AAClF,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,IAAI,MAAM;IACzF;AAnDS,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,+CAkBhB,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAlBhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,8aCb5C,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDYa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAP3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,QAC/B,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAChC,EAAE,EAAA,QAAA,EAAA,6BAAA,EAAA;;0BAsBN;;0BAAY,MAAM;2BAAC,iBAAiB;;sBAjBxC,WAAW;uBAAC,YAAY;;sBACxB,WAAW;uBAAC,aAAa;;sBAEzB,WAAW;uBAAC,gBAAgB;;sBAC5B,WAAW;uBAAC,aAAa;;sBACzB,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;MEHjB,0BAA0B,CAAA;AAoBd,IAAA,MAAA;AACA,IAAA,gBAAA;AACuC,IAAA,MAAA;IArBxB,SAAS,GAAW,yBAAyB;AAC3B,IAAA,mBAAmB;AAC9B,IAAA,MAAM;AAEtB,IAAA,MAAM;AACL,IAAA,MAAM;IACN,QAAQ,GAAY,KAAK;IACzB,SAAS,GAAW,QAAQ;IAC5B,OAAO,GAAW,MAAM;IACxB,UAAU,GAAY,KAAK;IAEhD,IAAI,GAA0B,EAAE;AAEhC,IAAA,SAAS;AACR,IAAA,WAAW;AAEX,IAAA,eAAe;AAEvB,IAAA,WAAA,CACqB,MAAc,EACd,gBAAkC,EACK,MAAkC,EAAA;QAFzE,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACuB,IAAA,CAAA,MAAM,GAAN,MAAM;IAC/D;IAEH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5E,IAAI,CAAC,QAAQ,EAAE;IACnB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAA,uBAAA,EAA0B,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,EAAE,EAAE;AAElF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/D;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE;QAE9B,MAAM,QAAQ,GAAY,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW;AAC/E,QAAA,MAAM,UAAU,GACZ,IAAI,CAAC,MAAM,KAAK;AACZ,cAAE,IAAI,CAAC,MAAM,CAAC;AACd,cAAE,OAAO,IAAI,CAAC,MAAM,KAAK;kBACvB,IAAI,CAAC;AACP,kBAAE;sBACA,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;AACpC,sBAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;QAEnD,MAAM,MAAM,GAAW,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU;AAC3G,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAClE;AAEA,IAAA,OAAO,CAAC,MAA8B,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM;YAAE;AAEb,QAAA,MAAM,QAAQ,GAAG,MAAM,EAAE;AACzB,QAAA,IAAI,QAAQ;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChD;IAEA,MAAM,CAAC,KAAY,EAAE,KAAa,EAAA;QAC9B,KAAK,CAAC,cAAc,EAAE;QAEtB,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS;QAChC,CAAC,EAAE,IAAI,CAAC;IACZ;AAtES,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,qEAsBX,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAtBhC,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAJxB,CAAC,gBAAgB,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBjC,+1BAsBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDNc,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKxC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,QAC1B,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAA,OAAA,EAChC,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa,CAAC,EAAA,SAAA,EACvC,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,+1BAAA,EAAA;;0BA0BxB;;0BAAY,MAAM;2BAAC,iBAAiB;;sBArBxC,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,6BAA6B;;sBACzC,WAAW;uBAAC,kBAAkB;;sBAE9B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;MEbjB,2BAA2B,CAAA;AAYP,IAAA,MAAA;AAAiC,IAAA,gBAAA;IAX1B,SAAS,GAAW,0BAA0B;AAEvD,IAAA,MAAM;IACL,UAAU,GAAW,KAAK;IAC1B,SAAS,GAAW,QAAQ;IAEjD,IAAI,GAA0B,EAAE;AAEhC,IAAA,SAAS;AACR,IAAA,WAAW;IAEnB,WAAA,CAA6B,MAAc,EAAmB,gBAAkC,EAAA;QAAnE,IAAA,CAAA,MAAM,GAAN,MAAM;QAA2B,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAAqB;AAEnG,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/D;AAEA,IAAA,OAAO,CAAC,MAA8B,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM;YAAE;AAEb,QAAA,MAAM,QAAQ,GAAG,MAAM,EAAE;AACzB,QAAA,IAAI,QAAQ;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChD;IAEA,MAAM,CAAC,KAAY,EAAE,KAAa,EAAA;QAC9B,KAAK,CAAC,cAAc,EAAE;QAEtB,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS;QAChC,CAAC,EAAE,IAAI,CAAC;IACZ;uGAlCS,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAJzB,CAAC,gBAAgB,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdjC,isCA+BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlBc,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKxC,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BACI,uBAAuB,EAAA,OAAA,EACxB,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa,CAAC,EAAA,SAAA,EACvC,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,isCAAA,EAAA;;sBAK5B,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;MERjB,sBAAsB,CAAA;IACK,SAAS,GAAW,uBAAuB;AAExE,IAAA,OAAO,GAAsB,MAAM,CAAC,eAAe,CAAC;uGAHlD,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfnC,g7BA2BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhBc,OAAO,mFAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIzD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACA,YAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAA,OAAA,EAC3B,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,g7BAAA,EAAA;;sBAKlE,WAAW;uBAAC,WAAW;;;MEDf,2BAA2B,CAAA;AAKP,IAAA,iBAAA;IAJO,SAAS,GAAW,uBAAuB;AAExE,IAAA,OAAO,GAAsB,MAAM,CAAC,qBAAqB,CAAC;AAEjE,IAAA,WAAA,CAA6B,iBAAiE,EAAA;QAAjE,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;IAAmD;AAEjG,IAAA,KAAK,CAAC,SAAmB,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC;IAC7C;uGATS,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,qLCfxC,+6BA2BA,EAAA,MAAA,EAAA,CAAA,6EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhBc,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,qXAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIxC,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;2BACA,EAAE,QAAQ,EAAE,sBAAsB,EAAE,EAAA,OAAA,EACjC,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,+6BAAA,EAAA,MAAA,EAAA,CAAA,6EAAA,CAAA,EAAA;;sBAKjD,WAAW;uBAAC,WAAW;;;AEK5B,MAAM,qBAAqB,CAAA;AAEF,IAAA,cAAA;AACA,IAAA,SAAA;AACA,IAAA,OAAA;AAHrB,IAAA,WAAA,CACqB,cAA8B,EAC9B,SAAoB,EACpB,OAA0B,EAAA;QAF1B,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,OAAO,GAAP,OAAO;IACzB;AAMH,IAAA,MAAM,CAAC,WAAuB,EAAE,IAAU,EAAE,IAAU,EAAA;AAClD,QAAA,MAAM,QAAQ,GAA6B,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,SAAS;AACxF,QAAA,MAAM,MAAM,GAAoB,IAAI,KAAK,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AAEhF,QAAA,IAAI,CAAC;aACA,IAAI,CAAoB,sBAAsB,EAAE;;AAE7C,YAAA,KAAK,EAAE,oBAAoB;AAC3B,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,sBAAsB,EAAE,OAAO;AAC/B,YAAA,qBAAqB,EAAE,OAAO;;AAE9B,YAAA,GAAG,MAAM;AACT,YAAA,SAAS,EAAE,MAAM;;YAEjB,IAAI,EAAE,IAAI,CAAC,OAAO;SACrB;AACA,aAAA,WAAW;AACX,aAAA,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,SAAmB,MAAM,CAAC,CAAC,SAAS,GAAG,WAAW,EAAE,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IACxH;AAMA,IAAA,WAAW,CAAC,WAAuB,EAAE,IAAU,EAAE,IAAU,EAAA;AACvD,QAAA,MAAM,QAAQ,GAA6B,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,SAAS;AACxF,QAAA,MAAM,MAAM,GAAyB,IAAI,KAAK,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AAErF,QAAA,IAAI,CAAC;aACA,IAAI,CAAoB,2BAA2B,EAAE;;AAElD,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,UAAU,EAAE,yBAAyB;;AAErC,YAAA,GAAG,MAAM;AACT,YAAA,SAAS,EAAE,MAAM;;YAEjB,IAAI,EAAE,IAAI,CAAC,OAAO;SACrB;AACA,aAAA,cAAc;AACd,aAAA,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,SAAmB,MAAM,CAAC,CAAC,SAAS,GAAG,WAAW,EAAE,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IACxH;AACH;MAGY,uBAAuB,CAAA;AACH,IAAA,cAAA;AAAiD,IAAA,SAAA;IAA9E,WAAA,CAA6B,cAA8B,EAAmB,SAAoB,EAAA;QAArE,IAAA,CAAA,cAAc,GAAd,cAAc;QAAmC,IAAA,CAAA,SAAS,GAAT,SAAS;IAAc;AAErG,IAAA,MAAM,CAAC,OAA0B,EAAA;AAC7B,QAAA,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;IAClF;IAIA,MAAM,CAAC,IAAkB,EAAE,MAAgC,EAAA;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC;AACf,YAAA,QAAQ,EAAE,CAAA,cAAA,EAAiB,IAAI,CAAC,KAAK,CAAA,yBAAA,CAA2B;YAChE,WAAW,EAAE,MAAM,EAAE,WAAW;YAChC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,SAAS;AACvE,YAAA,IAAI,EAAE,WAAW;YACjB,YAAY,EAAE,MAAM,EAAE,YAAY;YAClC,SAAS,EAAE,MAAM,EAAE,SAAS;AAC/B,SAAA,CAAC;IACN;IAIA,QAAQ,CAAC,IAAkB,EAAE,MAAgC,EAAA;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC;AACf,YAAA,QAAQ,EAAE,CAAA,cAAA,EAAiB,IAAI,CAAC,KAAK,CAAA,4BAAA,CAA8B;YACnE,WAAW,EAAE,MAAM,EAAE,WAAW;YAChC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,SAAS;AACvE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,OAAO;YAC7C,SAAS,EAAE,MAAM,EAAE,SAAS;AAC/B,SAAA,CAAC;IACN;AAIA,IAAA,MAAM,CAAC,MAAe,EAAE,IAAkB,EAAE,MAAgC,EAAA;QACxE,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;IACvF;IAIA,MAAM,CAAC,IAAkB,EAAE,MAAgC,EAAA;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC;AACf,YAAA,QAAQ,EAAE,CAAA,cAAA,EAAiB,IAAI,CAAC,KAAK,CAAA,wBAAA,CAA0B;YAC/D,WAAW,EAAE,MAAM,EAAE,WAAW;YAChC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,SAAS;AACvE,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,OAAO;YAC7C,SAAS,EAAE,MAAM,EAAE,SAAS;AAC/B,SAAA,CAAC;IACN;uGAlDS,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA;;2FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCnErB,yBAAyB,GAAuC,IAAI,cAAc,CAAC,2BAA2B;MAC9G,yBAAyB,GAAwB,IAAI,cAAc,CAAM,2BAA2B;MACpG,0BAA0B,GAA6C,IAAI,cAAc,CAClG,4BAA4B;;MCQnB,wBAAwB,CAAA;AAWJ,IAAA,YAAA;IAVO,SAAS,GAAW,yBAAyB;AAE1E,IAAA,SAAS,GAIZ,MAAM,CAAC,eAAe,CAAC;AAEpB,IAAA,QAAQ;AAEf,IAAA,WAAA,CAA6B,YAAoD,EAAA;QAApD,IAAA,CAAA,YAAY,GAAZ,YAAY;IAA2C;IAEpF,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC5B,YAAA,SAAS,EAAE;AACP,gBAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC1D,gBAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE;AAC5E,gBAAA;AACI,oBAAA,OAAO,EAAE,0BAA0B;AACnC,oBAAA,UAAU,EAAE,MAAM,CAAC,QAAc,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC1E,iBAAA;AACJ,aAAA;AACJ,SAAA,CAAC;IACN;IAEA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;IAC7B;uGA5BS,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,iLCrBrC,6bAYA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDKc,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,sCAAA,EAAA,0BAAA,EAAA,2BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,uKAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI1C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;2BACA,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAA,OAAA,EAC7B,CAAC,iBAAiB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,6bAAA,EAAA;;sBAKnD,WAAW;uBAAC,WAAW;;;MEDf,6BAA6B,CAAA;AAWT,IAAA,iBAAA;IAVO,SAAS,GAAW,yBAAyB;AAE1E,IAAA,SAAS,GAIZ,MAAM,CAAC,qBAAqB,CAAC;AAE1B,IAAA,QAAQ;AAEf,IAAA,WAAA,CAA6B,iBAAmE,EAAA;QAAnE,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;IAAqD;IAEnG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC5B,YAAA,SAAS,EAAE;AACP,gBAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,aAAa,EAAE;AAC/D,gBAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE;AAC5E,gBAAA;AACI,oBAAA,OAAO,EAAE,0BAA0B;AACnC,oBAAA,UAAU,EAAE,MAAM,CAAC,QAAc,KAAK,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;AACjF,iBAAA;AACJ,aAAA;AACJ,SAAA,CAAC;IACN;IAEA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;IACpC;uGA5BS,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,uLCrB1C,6bAYA,EAAA,MAAA,EAAA,CAAA,6EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDKc,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,sCAAA,EAAA,0BAAA,EAAA,2BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,uKAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI1C,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;2BACA,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAA,OAAA,EACnC,CAAC,iBAAiB,EAAE,aAAa,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,6bAAA,EAAA,MAAA,EAAA,CAAA,6EAAA,CAAA,EAAA;;sBAKnD,WAAW;uBAAC,WAAW;;;AEL5B,MAAM,uBAAuB,CAAA;AAEJ,IAAA,cAAA;AACA,IAAA,SAAA;AACA,IAAA,SAAA;AAHrB,IAAA,WAAA,CACqB,cAA8B,EAC9B,SAAoB,EACpB,SAAyB,EAAA;QAFzB,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,SAAS,GAAT,SAAS;IAC3B;AAOH,IAAA,MAAM,CAAI,IAAU,EAAE,IAAU,EAAE,IAAU,EAAA;AACxC,QAAA,MAAM,UAAU,GAAwC,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,SAAS;AACrG,QAAA,MAAM,SAAS,GAA6B,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,SAAS;AACzF,QAAA,MAAM,MAAM,GAAoB,IAAI,KAAK,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AAEhF,QAAA,IAAI,CAAC;aACA,IAAI,CAAC,wBAAwB,EAAE;;AAE5B,YAAA,KAAK,EAAE,oBAAoB;AAC3B,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,sBAAsB,EAAE,OAAO;AAC/B,YAAA,qBAAqB,EAAE,OAAO;;AAE9B,YAAA,GAAG,MAAM;AACT,YAAA,SAAS,EAAE,MAAM;;YAEjB,IAAI,EAAE,IAAI,CAAC,SAAS;SACvB;AACA,aAAA,WAAW;AACX,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,CAAC,QAAY,KAAI;AACnB,gBAAA,IAAI,UAAU,IAAI,CAAC,CAAC,QAAQ;oBAAE,UAAU,CAAC,QAAQ,CAAC;gBAClD,IAAI,SAAS,IAAI,CAAC,QAAQ;AAAE,oBAAA,SAAS,EAAE;YAC3C,CAAC;AACJ,SAAA,CAAC;IACV;AAOA,IAAA,WAAW,CAAI,IAAU,EAAE,IAAU,EAAE,IAAU,EAAA;AAC7C,QAAA,MAAM,UAAU,GAAsC,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,SAAS;AACnG,QAAA,MAAM,SAAS,GAA6B,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,SAAS;AACzF,QAAA,MAAM,MAAM,GAAyB,IAAI,KAAK,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AAErF,QAAA,IAAI,CAAC;aACA,IAAI,CAAc,6BAA6B,EAAE;;AAE9C,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,UAAU,EAAE,yBAAyB;;AAErC,YAAA,GAAG,MAAM;AACT,YAAA,SAAS,EAAE,MAAM;;YAEjB,IAAI,EAAE,IAAI,CAAC,SAAS;SACvB;AACA,aAAA,cAAc;AACd,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,CAAC,QAAY,KAAI;AACnB,gBAAA,IAAI,UAAU,IAAI,CAAC,CAAC,QAAQ;oBAAE,UAAU,CAAC,QAAQ,CAAC;gBAClD,IAAI,SAAS,IAAI,CAAC,QAAQ;AAAE,oBAAA,SAAS,EAAE;YAC3C,CAAC;AACJ,SAAA,CAAC;IACV;AACH;MAGY,yBAAyB,CAAA;AACL,IAAA,cAAA;AAAiD,IAAA,SAAA;IAA9E,WAAA,CAA6B,cAA8B,EAAmB,SAAoB,EAAA;QAArE,IAAA,CAAA,cAAc,GAAd,cAAc;QAAmC,IAAA,CAAA,SAAS,GAAT,SAAS;IAAc;AAIrG,IAAA,IAAI,CAAC,SAA6B,EAAE,KAAa,EAAE,IAAU,EAAA;AACzD,QAAA,MAAM,MAAM,GAA8B,IAAI,IAAI,EAAE;AAEpD,QAAA,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACzG;uGATS,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cADZ,MAAM,EAAA,CAAA;;2FACnB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;2BC5DrB,YAAY,CAAA;IACe,SAAS,GAAW,2BAA2B;AAExD,IAAA,WAAW;AACX,IAAA,MAAM;AACN,IAAA,KAAK;IAEtB,UAAU,GAAe,EAAE;AAC3B,IAAA,gBAAgB,GAAG,CAAC,KAAU,KAAa,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC;AAEhG,IAAA,GAAG;IAEX,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACnB,cAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;AACxD,cAAE,IAAI,CAAC,MAAM,EAAE;AACf,kBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;AACxD,kBAAE,CAAC,UAAU,EAAE,UAAU,CAAC;QAE9B,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE;AAE5C,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACf,YAAA,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAC1E,YAAA,MAAM,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9C,YAAA,MAAM,EAAE,+BAA+B;AAC1C,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC;AACA,aAAA,eAAe;AACf,aAAA,QAAQ;AACR,aAAA,OAAO,CAAC,CAAC,WAAW,KAAI;YACrB,IAAI,WAAW,YAAY,0BAA0B;AAAE,gBAAA,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAClG,QAAA,CAAC,CAAC;QAEN,IAAI,CAAC,QAAQ,EAAE;IACnB;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC;AACA,aAAA,SAAS;AACT,aAAA,QAAQ;AACR,aAAA,OAAO,CAAC,CAAC,KAAgB,KAAI;YAC1B,IAAI,KAAK,YAAY,WAAW;AAAE,gBAAA,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;AACjE,QAAA,CAAC,CAAC;AAEN,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC;YAC3C,MAAM,KAAK,GAAW,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,mBAAmB;YAE/D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,YAAA,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC;AAC1B,gBAAA,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5D,gBAAA,KAAK,EAAE;AACH,oBAAA,mBAAmB,EAAE,KAAK;AAC1B,oBAAA,eAAe,EAAE,IAAI;AACrB,oBAAA,qBAAqB,EAAE,MAAM;AAC7B,oBAAA,qBAAqB,EAAE,CAAC;AAC3B,iBAAA;AACJ,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5B;IACJ;IAEA,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS;QAC5B,IAAI,CAAC,QAAQ,EAAE;QAEf,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;AACrC,QAAA,IAAI,QAAQ,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG;YAAE;QAEhF,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;AACvC,QAAA,IAAI,SAAS,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG;YAAE;QAEpF,MAAM,MAAM,GAAe,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;AAClD,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAEtD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE;QACjE,IAAI,CAAC,QAAQ,EAAE;IACnB;IAEA,iBAAiB,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;IAChC;AAEA,IAAA,cAAc,CAAC,KAAiB,EAAA;QAC5B,KAAK,CAAC,cAAc,EAAE;QAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QAClF,IAAI,CAAC,QAAQ,EAAE;IACnB;AAEA,IAAA,WAAW,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC;YAAE;AAEvC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;uGArGS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,KAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAJV,CAAC,cAAc,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBjC,iwDAkDA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED5Bc,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,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,EAAE,gBAAgB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKvCE,cAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;2BACA,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,EAAA,OAAA,EAC3D,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,aACtC,CAAC,cAAc,EAAE,CAAC,EAAA,QAAA,EAAA,iwDAAA,EAAA;;sBAK5B,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;4BEXhB,aAAa,CAAA;IACc,SAAS,GAAW,2BAA2B;AAExD,IAAA,WAAW;AACX,IAAA,MAAM;AACN,IAAA,KAAK;AAEtB,IAAA,MAAM;AAER,IAAA,WAAW;AACX,IAAA,GAAG;IAEX,QAAQ,GAAA;AACJ,QAAA,MAAM,UAAU,GAAe,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AACtF,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC;QAEnC,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE;QAC5C,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAW,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,mBAAmB;AAE/D,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACf,YAAA,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACrE,YAAA,MAAM,EAAE;gBACJ,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACpC,gBAAA,IAAI,WAAW,CAAC;AACZ,oBAAA,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5D,oBAAA,KAAK,EAAE;AACH,wBAAA,mBAAmB,EAAE,KAAK;AAC1B,wBAAA,eAAe,EAAE,IAAI;AACrB,wBAAA,qBAAqB,EAAE,MAAM;AAC7B,wBAAA,qBAAqB,EAAE,CAAC;AAC3B,qBAAA;iBACJ,CAAC;AACL,aAAA;AACD,YAAA,MAAM,EAAE,+BAA+B;AAC1C,SAAA,CAAC;IACN;AAEA,IAAA,OAAO,CAAC,IAA8B,EAAA;QAClC,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAEpD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC;IACxE;AAEA,IAAA,WAAW,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC;YAAE;AAEvC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;uGApDS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrB1B,07BAsBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDLc,eAAe,0NAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIzBC,eAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACA,YAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,EAAA,OAAA,EAC5D,CAAC,eAAe,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,07BAAA,EAAA;;sBAKlC,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEhBhB,2BAA2B,CAAA;AACP,IAAA,OAAA;AAA7B,IAAA,WAAA,CAA6B,OAAgB,EAAA;QAAhB,IAAA,CAAA,OAAO,GAAP,OAAO;IAAY;IAMhD,GAAG,CAAC,IAAU,EAAE,IAAU,EAAA;QACtB,MAAM,WAAW,GAAsC,IAAI,IAAI,UAAU,IAAI,IAAI,GAAG,IAAI,GAAG,SAAS,IAAI,SAAS;AACjH,QAAA,MAAM,MAAM,GAAqD,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;QAElH,OAAO,IAAI,OAAO,CAAwB,CAAC,OAAO,EAAE,MAAM,KAAI;AAC1D,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAACD,cAAY,CAAC,CAAC;AAEzE,YAAA,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;AACjD,YAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;YACvC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAmC,KAAI;AACnE,gBAAA,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,MAAM,EAAE;gBAC7C,UAAU,CAAC,OAAO,EAAE;AACxB,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAIA,IAAI,CAAC,WAAkC,EAAE,MAA2D,EAAA;AAChG,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAACC,eAAa,CAAC,CAAC;AAE1E,QAAA,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;AACjD,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvC,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IAC9D;uGAjCS,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cADd,MAAM,EAAA,CAAA;;2FACnB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCIrB,iBAAiB,CAAA;AAeG,IAAA,UAAA;IAdO,SAAS,GAAW,oBAAoB;IACvC,IAAI,GAAW,qBAAqB;IACrC,MAAM,GAAW,MAAM;AAEhC,IAAA,EAAE;AACF,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,MAAM;AACN,IAAA,SAAS;AACT,IAAA,OAAO;AACP,IAAA,KAAK;IAEtB,QAAQ,GAAW,CAAC;AAE9B,IAAA,WAAA,CAA6B,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;IAAe;IAEtD,eAAe,GAAA;AACX,QAAA,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AACzC,QAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3C;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,OAAO,GAAgB,IAAI,WAAW,EAAE;QAC5C,MAAM,MAAM,GAA2B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;AAC/D,QAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEvF,QAAA,IAAI,OAAO;QACX,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK;AAC/B,YAAA,KAAK,KAAK;gBACN,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;oBACrC,OAAO;AACP,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,YAAY,EAAE,aAAa;AAC9B,iBAAA,CAAC;gBACF;AACJ,YAAA,KAAK,MAAM;gBACP,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACtC,OAAO;AACP,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,YAAY,EAAE,aAAa;AAC9B,iBAAA,CAAC;gBACF;AACJ,YAAA,KAAK,KAAK;gBACN,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;oBACrC,OAAO;AACP,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,YAAY,EAAE,aAAa;AAC9B,iBAAA,CAAC;gBACF;AACJ,YAAA,KAAK,OAAO;gBACR,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;oBACvC,OAAO;AACP,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,YAAY,EAAE,aAAa;AAC9B,iBAAA,CAAC;gBACF;;QAGR,OAAO,CAAC,SAAS,CAAC;AACd,YAAA,IAAI,EAAE,CAAC,KAAU,KAAI;AACjB,gBAAA,QAAQ,KAAK,CAAC,IAAI;oBACd,KAAK,aAAa,CAAC,gBAAgB;AAC/B,wBAAA,MAAM,QAAQ,GACV,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AACzF,wBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,GAAG,GAAG,QAAQ,GAAG,GAAG;wBAChD;oBAEJ,KAAK,aAAa,CAAC,QAAQ;AACvB,wBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG;AACnB,wBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;wBAC1B,IAAI,CAAC,KAAK,EAAE;wBACZ;;YAEZ,CAAC;YACD,KAAK,EAAE,MAAK;gBACR,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,KAAK,EAAE;YAChB,CAAC;AACJ,SAAA,CAAC;IACN;uGApFS,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb9B,gPAQA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCc,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIR,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AACA,YAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAA,OAAA,EACrB,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,gPAAA,EAAA;;sBAKjB,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,YAAY;;sBACxB,WAAW;uBAAC,cAAc;;sBAE1B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEZhB,YAAY,CAAA;IACe,SAAS,GAAW,mBAAmB;AAEhD,IAAA,GAAG;AACH,IAAA,KAAK;AAEhC,IAAA,WAAW,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC;YAAE;AAEvC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;uGAbS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,oQCZzB,mXAWA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHc,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,sKAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIxC,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;AACA,YAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,EAAA,OAAA,EAC3D,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,mXAAA,EAAA;;sBAKjD,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEHhB,eAAe,CAAA;AAaK,IAAA,UAAA;IAZO,SAAS,GAAW,oBAAoB;IACvC,IAAI,GAAW,qBAAqB;IAC5C,MAAM,GAAW,MAAM;AAEzB,IAAA,EAAE;AACF,IAAA,IAAI;AACJ,IAAA,GAAG;AACH,IAAA,MAAM;AACN,IAAA,KAAK;IAEtB,QAAQ,GAAW,CAAC;AAE9B,IAAA,WAAA,CAA6B,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;IAAe;IAEtD,eAAe,GAAA;AACX,QAAA,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AACzC,QAAA,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC;IAEA,MAAM,GAAA;AACF,QAAA,MAAM,QAAQ,GAAa,IAAI,QAAQ,EAAE;QACzC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;QAElC,MAAM,IAAI,GAA2B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;QAC3D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,QAAA,IAAI,OAAO,GAAgB,IAAI,WAAW,EAAE;QAC5C,MAAM,MAAM,GAA2B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;AAC/D,QAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEvF,QAAA,IAAI,OAAO;QACX,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM;AAChC,YAAA,KAAK,MAAM;gBACP,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;gBAC3G;AACJ,YAAA,KAAK,KAAK;gBACN,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;gBAC1G;AACJ,YAAA,KAAK,OAAO;gBACR,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;gBAC5G;;QAGR,OAAO,CAAC,SAAS,CAAC;AACd,YAAA,IAAI,EAAE,CAAC,KAAmB,KAAI;AAC1B,gBAAA,QAAQ,KAAK,CAAC,IAAI;oBACd,KAAK,aAAa,CAAC,cAAc;wBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK;4BAAE;AACnC,wBAAA,MAAM,QAAQ,GAAW,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG;wBAC3D,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3D;oBAEJ,KAAK,aAAa,CAAC,QAAQ;AACvB,wBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG;AACnB,wBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;wBAChD;;YAEZ,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAwB,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;AACtF,SAAA,CAAC;IACN;uGA7DS,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb5B,iPAQA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCc,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIR,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACA,YAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAA,OAAA,EACnB,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,iPAAA,EAAA;;sBAKjB,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,YAAY;;sBACxB,WAAW;uBAAC,cAAc;;sBAE1B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEhBhB,sBAAsB,CAAA;AACF,IAAA,YAAA;AAA7B,IAAA,WAAA,CAA6B,YAA0B,EAAA;QAA1B,IAAA,CAAA,YAAY,GAAZ,YAAY;IAAiB;IAE1D,SAAS,CAAC,KAAqB,EAAE,OAA4B,EAAA;QACzD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE;QAEhG,OAAO,OAAO,EAAE;AACZ,cAAE,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AACtF,cAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC9E;uGATS,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,IAAI;mBAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE;;;MCUvB,cAAc,CAAA;AAyBK,IAAA,UAAA;IAxBG,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE;IAEvB,SAAS,GAAW,qBAAqB;IAC5C,GAAG,GAAW,GAAG;AACf,IAAA,SAAS;AACF,IAAA,WAAW;AACP,IAAA,eAAe;AAElC,IAAA,EAAE;AACF,IAAA,IAAI;IACJ,QAAQ,GAAa,EAAE;AACvB,IAAA,MAAM;AACN,IAAA,IAAI;AACJ,IAAA,KAAK;IAEzB,QAAQ,GAAW,CAAC;IACpB,KAAK,GAAW,CAAC;AAEd,IAAA,OAAO;AACP,IAAA,SAAS;AACT,IAAA,SAAS;AAEX,IAAA,QAAQ;AAEhB,IAAA,WAAA,CAA4B,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;IAAe;IAErD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe;QAEvC,MAAM,SAAS,GAAgC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,IAAI,QAAQ;QAC7F,IAAI,CAAC,SAAS,GAAG,CAAA,oBAAA,EAAuB,SAAS,CAAC,WAAW,EAAE,CAAA,CAAE;QAEjE,MAAM,YAAY,GACd,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG;AACjF,cAAE;cACA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY;AAC1C,QAAA,IAAI,CAAC,OAAO;AACR,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG;AACnE,kBAAE;kBACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC;AAClE,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,IAAI,UAAU;AAEzE,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AACjC,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAK;gBAC7B,MAAM,KAAK,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AAC1C,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO;gBAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;AACrE,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;oBAAE,IAAI,CAAC,KAAK,EAAE;YAC3C,CAAC,EAAE,EAAE,CAAC;QACV;IACJ;IAEA,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;IACnD;IAEA,eAAe,GAAA;QACX,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC;uGA7DS,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf3B,szBAwBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDbc,OAAO,sIAAE,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,CAAA;;2FAIhC,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;2BACA,EAAE,QAAQ,EAAE,OAAO,EAAE,WAClB,CAAC,OAAO,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,szBAAA,EAAA;;sBAKzC,YAAY;uBAAC,OAAO;;sBAEpB,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,aAAa;;sBACzB,WAAW;uBAAC,oBAAoB;;sBAChC,WAAW;uBAAC,wBAAwB;;sBAEpC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEXhB,qBAAqB,CAAA;AAIT,IAAA,OAAA;AACuC,IAAA,MAAA;IAJpD,UAAU,GAAkF,EAAE;IAEtG,WAAA,CACqB,OAAgB,EACuB,MAAkC,EAAA;QADzE,IAAA,CAAA,OAAO,GAAP,OAAO;QACgC,IAAA,CAAA,MAAM,GAAN,MAAM;IAC/D;IAEK,KAAK,GAAA;QACT,IAAI,EAAE,GAAuB,SAAS;AACtC,QAAA,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;AAExF,QAAA,OAAO,EAAE;IACb;IAEQ,eAAe,GAAA;QACnB,IAAI,GAAG,GAAW,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAI;YACjC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,WAAA,EAAc,GAAG,CAAA,WAAA,CAAa;AAC5F,YAAA,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY;AACzE,QAAA,CAAC,CAAC;IACN;AAMA,IAAA,KAAK,CAAC,KAAa,EAAE,OAA0B,EAAE,IAAU,EAAE,IAAU,EAAA;QACnE,MAAM,MAAM,GAAmC,IAAI,GAAG,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,EAAE;QACjG,MAAM,OAAO,GAAe,IAAI,KAAK,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,MAAK,EAAE,CAAC,CAAC;AAElF,QAAA,MAAM,QAAQ,GAAa,OAAO,OAAO,KAAK,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO;QAC5E,MAAM,OAAO,GAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,eAAe,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACpG,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,IAAI,SAAS,EAAE;AACjD,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE;AACnC,gBAAA,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;gBAC5D,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC;YAChD;YACA;QACJ;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;QAE3E,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;QACjD,YAAY,CAAC,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe;AAE7D,QAAA,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACzC,QAAA,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC3C,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACvE,QAAA,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3D,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAK;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,OAAO;AAAE,gBAAA,OAAO,EAAE;YACtB,UAAU,CAAC,OAAO,EAAE;AACxB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IACvD;AAMA,IAAA,IAAI,CAAC,OAA0B,EAAE,IAAU,EAAE,IAAU,EAAA;AACnD,QAAA,MAAM,KAAK,GAAW,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE;QAC9F,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;IAC1C;AAMA,IAAA,OAAO,CAAC,OAA0B,EAAE,IAAU,EAAE,IAAU,EAAA;AACtD,QAAA,MAAM,KAAK,GAAW,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE;QACzF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;IAC1C;AAMA,IAAA,OAAO,CAAC,OAA0B,EAAE,IAAU,EAAE,IAAU,EAAA;AACtD,QAAA,MAAM,KAAK,GAAW,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE;QACrF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;IAC1C;AAMA,IAAA,KAAK,CAAC,OAA0B,EAAE,IAAU,EAAE,IAAU,EAAA;AACpD,QAAA,MAAM,KAAK,GAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE;QACvF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;IAC1C;AAlGS,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,2CAKN,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AALhC,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA;;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;0BAMzB;;0BAAY,MAAM;2BAAC,iBAAiB;;;MCRhC,oBAAoB,CAAA;AAMA,IAAA,OAAA;AAAmC,IAAA,qBAAA;IALxD,UAAU,GAGZ,EAAE;IAER,WAAA,CAA6B,OAAgB,EAAmB,qBAA4C,EAAA;QAA/E,IAAA,CAAA,OAAO,GAAP,OAAO;QAA4B,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;IAA0B;IAEvG,KAAK,GAAA;QACT,IAAI,EAAE,GAAuB,SAAS;AACtC,QAAA,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;AAExF,QAAA,OAAO,EAAE;IACb;IAEQ,eAAe,GAAA;QACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAI;YACjC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAA,KAAA,EAAQ,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,EAAE,CAAA,WAAA,CAAa;AAC1G,QAAA,CAAC,CAAC;IACN;AAIQ,IAAA,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,MAA8C,EAAA;QACzF,OAAO,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,KAAI;AAChD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,iBAAiB,CAAC,CAAC;AAE9E,YAAA,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,EAAE;AAC/B,YAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;AAC/B,YAAA,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AACnC,YAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;YACrC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;AAC7C,YAAA,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,WAAwB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;YACtF,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,EAAE,CAAC;AAChD,YAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAK;gBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClF,IAAI,CAAC,eAAe,EAAE;gBACtB,UAAU,CAAC,OAAO,EAAE;AACxB,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;YAC1C,IAAI,CAAC,eAAe,EAAE;AAC1B,QAAA,CAAC,CAAC;IACN;AAIA,IAAA,QAAQ,CAAC,IAAY,EAAE,KAAa,EAAE,MAA8C,EAAA;AAChF,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,+BAA+B,CAAC;AACvF,QAAA,MAAM,SAAS,GAAG,CAAC,WAAwB,KAAI;AAC3C,YAAA,IAAI;gBACA,MAAM,KAAK,GAAa;qBACnB,KAAK,CAAC,GAAG;AACT,qBAAA,GAAG,CAAC,CAAC,IAAY,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;qBACrD,MAAM,CAAC,CAAC,IAAY,KAAK,CAAC,CAAC,IAAI,CAAC;gBACrC,MAAM,IAAI,GAAW,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAEpF,gBAAA,MAAM,IAAI,GAAW,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACjE,MAAM,CAAC,GAAsB,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACxD,gBAAA,CAAC,CAAC,IAAI,GAAG,IAAI;AACb,gBAAA,CAAC,CAAC,QAAQ,GAAG,IAAI;gBACjB,CAAC,CAAC,KAAK,EAAE;YACb;YAAE,OAAO,CAAC,EAAE;AACR,gBAAA,OAAO,EAAE;YACb;AACJ,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;IACtE;IAeA,MAAM,CAAO,IAAU,EAAE,GAAW,EAAE,IAAS,EAAE,IAAS,EAAE,IAAU,EAAA;AAClE,QAAA,MAAM,MAAM,GAAwC,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,EAAE;AAC1F,QAAA,MAAM,SAAS,GAAkD,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI;AACzG,QAAA,MAAM,OAAO,GAA+C,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI;AAEpG,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,eAAe,CAAC,CAAC;AAE5E,QAAA,MAAM,EAAE,GAAW,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;AAC/B,QAAA,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AACnC,QAAA,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;AACjC,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvC,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAA0B,EAAE,MAAW,EAAE,MAAsB,KAAI;YAC/F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,eAAe,EAAE;YACtB,QAAQ,IAAI;AACR,gBAAA,KAAK,UAAU;AACX,oBAAA,SAAS,CAAC,MAAM,IAAI,SAAS,EAAE,MAAM,CAAC;oBACtC;AACJ,gBAAA,KAAK,OAAO;AACR,oBAAA,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,MAAM,CAAC;oBACpC;;YAER,UAAU,CAAC,OAAO,EAAE;AACxB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,EAAE;IAC1B;;AAGA,IAAA,MAAM,GAAG,CAAC,IAAiC,EAAE,MAA8C,KAAmB;QAC1G,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AACzC,YAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1B,gBAAA,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBACtD;YACJ;AAEA,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAClD,CAAC,WAAwB,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAC3F,MAAM,MAAM,EAAE,CACjB;AACL,QAAA,CAAC,CAAC;AACN,IAAA,CAAC;IAQD,OAAO,CAAC,IAAiC,EAAE,MAA8C,EAAA;AACrF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,IAAU,KAAI;AAChD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;AAEzE,YAAA,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACvD,YAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAK;gBAChC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS;gBACxC,UAAU,CAAC,OAAO,EAAE;AACxB,YAAA,CAAC,CAAC;YAEF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;AAC3C,QAAA,CAAC,CAAC;IACN;IAQA,QAAQ,CAAC,IAAiC,EAAE,MAA8C,EAAA;AACtF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAC1B,CAAC,IAAU,KAAI;AACX,YAAA,IAAI;gBACA,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,qCAAqC,CAAC;AACjF,gBAAA,IAAI,UAAU;AAAE,oBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;gBAErD,MAAM,GAAG,GAAW,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC7C,MAAM,MAAM,GAAsB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAClE,gBAAA,MAAM,CAAC,EAAE,GAAG,qCAAqC;AACjD,gBAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC7B,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAEjC,gBAAA,MAAM,CAAC,GAAG,GAAG,GAAG;AAChB,gBAAA,MAAM,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE;YACvD;YAAE,OAAO,CAAC,EAAE;AACR,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,8BAA8B,CAAC;YACpE;AACJ,QAAA,CAAC,EACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAC1E;IACL;uGAlLS,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAApB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA;;2FACnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCCrB,cAAc,CAAA;IACa,SAAS,GAAW,qBAAqB;AAElD,IAAA,KAAK;AACL,IAAA,MAAM;AACN,IAAA,KAAK;AAEhC,IAAA,WAAW,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC;YAAE;AAEvC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;uGAdS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,4RCf3B,mhBAkBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPc,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,kKAAE,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,CAAA;;2FAI/C,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACA,YAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,EAAA,OAAA,EAC7D,CAAC,OAAO,EAAE,aAAa,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,mhBAAA,EAAA;;sBAKxD,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MELhB,gBAAgB,CAAA;IACW,SAAS,GAAW,qBAAqB;AAElD,IAAA,MAAM;AACN,IAAA,MAAM;IACN,KAAK,GAAW,CAAC;AACjB,IAAA,KAAK;AAEhC,IAAA,QAAQ,CAAC,KAAU,EAAA;AACf,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC;YAAE;AAEvC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QAChB;AAEA,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACvB;AAEA,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YAC5B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB;IACJ;AAEA,IAAA,WAAW,CAAC,MAAc,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,IAAI,MAAM;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACvD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC;IACxD;uGA/BS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,6SCf7B,s4BAwBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDbc,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,kKAAE,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,CAAA;;2FAI/C,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AACA,YAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,EAAA,OAAA,EAC5D,CAAC,OAAO,EAAE,aAAa,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,s4BAAA,EAAA;;sBAKxD,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;METhB,qBAAqB,CAAA;AACD,IAAA,OAAA;AAA7B,IAAA,WAAA,CAA6B,OAAgB,EAAA;QAAhB,IAAA,CAAA,OAAO,GAAP,OAAO;IAAY;IAEhD,SAAS,CAAC,KAAsB,EAAE,MAA8B,EAAA;AAC5D,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;AAE3E,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AACrC,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvC,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAK;YAChC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS;YACxC,UAAU,CAAC,OAAO,EAAE;AACxB,QAAA,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;IAC3C;AAMA,IAAA,WAAW,CAAC,MAAyB,EAAE,IAAU,EAAE,IAAU,EAAA;AACzD,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE;QAEzB,MAAM,KAAK,GAAW,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;QACzE,MAAM,MAAM,GAAsC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAErG,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;YACjC;QACJ;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAC;AAE7E,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvC,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvC,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AACrC,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAK;YAChC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS;YACxC,UAAU,CAAC,OAAO,EAAE;AACxB,QAAA,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;IAC3C;uGA5CS,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAArB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA;;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCcrB,YAAY,CAAA;IACe,SAAS,GAAW,qBAAqB;AAElD,IAAA,KAAK;AACL,IAAA,MAAM;AACN,IAAA,KAAK;AAEtB,IAAA,QAAQ;IAEV,MAAM,GAAkB,EAAE;AAC1B,IAAA,GAAG;IAEX,QAAQ,GAAA;QACJ,MAAM,WAAW,GACb,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG;AAChB,cAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;AAClD,cAAE,IAAI,CAAC,MAAM,EAAE;AACf,kBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;AACxD,kBAAE,CAAC,UAAU,EAAE,UAAU,CAAC;QAElC,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE;AAE5C,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACf,YAAA,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACtE,YAAA,MAAM,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9C,YAAA,MAAM,EAAE,yBAAyB;AACpC,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC;AACA,aAAA,eAAe;AACf,aAAA,QAAQ;AACR,aAAA,OAAO,CAAC,CAAC,WAAW,KAAI;YACrB,IAAI,WAAW,YAAY,0BAA0B;AAAE,gBAAA,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAClG,QAAA,CAAC,CAAC;QAEN,IAAI,CAAC,SAAS,EAAE;IACpB;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAkB,KAAK,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAEhB,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAClD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE;;QAG7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAa,KAAI;YAC9C,IAAI,KAAK,IAAI,CAAC;gBAAE;YAChB,MAAM,KAAK,GAAW,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,mBAAmB;YAEvE,MAAM,IAAI,GAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;YACxF,MAAM,EAAE,GAAa,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC;AAClE,YAAA,MAAM,OAAO,GAAwB,IAAI,OAAO,CAAa,EAAE,QAAQ,EAAE,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AACtG,YAAA,MAAM,KAAK,GAAgB,IAAI,WAAW,CAAC;gBACvC,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AACjD,gBAAA,KAAK,EAAE;AACH,oBAAA,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,cAAc,EAAE,CAAC;AACpB,iBAAA;AACJ,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAa,KAAI;AAC9C,YAAA,MAAM,MAAM,GAAG;gBACX,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,mBAAmB;aAC3D;AAED,YAAA,MAAM,IAAI,GAAG;gBACT,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO;gBACxC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,oBAAoB;aAC1D;AAED,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AACtE,YAAA,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC;AAC1B,gBAAA,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5D,gBAAA,KAAK,EAAE;;oBAEH,mBAAmB,EAAE,MAAM,CAAC,KAAK;oBACjC,eAAe,EAAE,MAAM,CAAC,IAAI;AAC5B,oBAAA,qBAAqB,EAAE,MAAM;AAC7B,oBAAA,qBAAqB,EAAE,CAAC;;oBAExB,YAAY,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE;oBACpC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA,GAAA,EAAM,IAAI,CAAC,IAAI,CAAA,CAAE;oBAC1C,iBAAiB,EAAE,IAAI,CAAC,KAAK;AAC7B,oBAAA,eAAe,EAAE,CAAC;oBAClB,mBAAmB,EAAE,MAAM,CAAC,KAAK;AACjC,oBAAA,mBAAmB,EAAE,CAAC;AACzB,iBAAA;AACJ,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,cAAc,CAAC,KAAiB,EAAA;QAC5B,KAAK,CAAC,cAAc,EAAE;QAEtB,MAAM,WAAW,GAAa,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClG,QAAA,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAAE;QAEpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,SAAS,EAAE;;AAGhB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACzE;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1B;AAEA,IAAA,OAAO,CAAC,KAAa,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE;QAExB,MAAM,MAAM,GAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACpF,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACzD;AAEA,IAAA,MAAM,CAAC,KAAa,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE;QAExB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,EAAE;IACpB;AAEA,IAAA,IAAI,CAAC,KAAuB,EAAA;AACxB,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY;YAAE;AAChD,QAAA,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;QACpE,IAAI,CAAC,SAAS,EAAE;IACpB;AAEA,IAAA,WAAW,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC;YAAE;AAEvC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;uGAlJS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,0RCzBzB,s1CA+BA,EAAA,MAAA,EAAA,CAAA,qfAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDVc,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,sIAAE,WAAW,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA;;2FAIrC,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;AACA,YAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,EAAA,OAAA,EAC3D,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,s1CAAA,EAAA,MAAA,EAAA,CAAA,qfAAA,CAAA,EAAA;;sBAK9C,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MELhB,aAAa,CAAA;IACc,SAAS,GAAW,qBAAqB;AAElD,IAAA,KAAK;AACL,IAAA,MAAM;AACN,IAAA,KAAK;AAEtB,IAAA,QAAQ;AACR,IAAA,MAAM;IACN,KAAK,GAAW,CAAC;IAEnB,MAAM,GAAkB,EAAE;AAC1B,IAAA,WAAW;AACX,IAAA,GAAG;IAEX,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAClD,MAAM,WAAW,GAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjF,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE;AAE5C,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACf,YAAA,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACtE,YAAA,MAAM,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9C,YAAA,MAAM,EAAE,yBAAyB;AACpC,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC;AACA,aAAA,eAAe;AACf,aAAA,QAAQ;AACR,aAAA,OAAO,CAAC,CAAC,WAAW,KAAI;YACrB,IAAI,WAAW,YAAY,0BAA0B;AAAE,gBAAA,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAClG,QAAA,CAAC,CAAC;;QAGN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAa,KAAI;YAC9C,IAAI,KAAK,IAAI,CAAC;gBAAE;YAChB,MAAM,KAAK,GAAW,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,mBAAmB;YAEvE,MAAM,IAAI,GAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;YACxF,MAAM,EAAE,GAAa,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC;AAClE,YAAA,MAAM,OAAO,GAAwB,IAAI,OAAO,CAAa,EAAE,QAAQ,EAAE,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AACtG,YAAA,MAAM,KAAK,GAAgB,IAAI,WAAW,CAAC;gBACvC,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AACjD,gBAAA,KAAK,EAAE;AACH,oBAAA,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,cAAc,EAAE,CAAC;AACpB,iBAAA;AACJ,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC5B,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAa,KAAI;AAC9C,YAAA,MAAM,MAAM,GAAG;gBACX,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,mBAAmB;aAC3D;AAED,YAAA,MAAM,IAAI,GAAG;gBACT,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO;gBACxC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,oBAAoB;aAC1D;AAED,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AACtE,YAAA,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC;AAC1B,gBAAA,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5D,gBAAA,KAAK,EAAE;;oBAEH,mBAAmB,EAAE,MAAM,CAAC,KAAK;oBACjC,eAAe,EAAE,MAAM,CAAC,IAAI;AAC5B,oBAAA,qBAAqB,EAAE,MAAM;AAC7B,oBAAA,qBAAqB,EAAE,CAAC;;oBAExB,YAAY,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE;oBACpC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA,GAAA,EAAM,IAAI,CAAC,IAAI,CAAA,CAAE;oBAC1C,iBAAiB,EAAE,IAAI,CAAC,KAAK;AAC7B,oBAAA,eAAe,EAAE,CAAC;oBAClB,mBAAmB,EAAE,MAAM,CAAC,KAAK;AACjC,oBAAA,mBAAmB,EAAE,CAAC;AACzB,iBAAA;AACJ,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC5B,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE;IACpB;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAkB,KAAK,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;;QAGhB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAa,KAAI;AAC9C,YAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK;gBAAE;AAE1B,YAAA,MAAM,MAAM,GAAG;gBACX,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,mBAAmB;aAC3D;AAED,YAAA,MAAM,IAAI,GAAG;gBACT,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO;gBACxC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,oBAAoB;aAC1D;AAED,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AACtE,YAAA,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC;AAC1B,gBAAA,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5D,gBAAA,KAAK,EAAE;;oBAEH,mBAAmB,EAAE,MAAM,CAAC,KAAK;AACjC,oBAAA,eAAe,EAAE,MAAM,CAAC,IAAI,GAAG,GAAG;AAClC,oBAAA,qBAAqB,EAAE,MAAM;AAC7B,oBAAA,qBAAqB,EAAE,CAAC;;oBAExB,YAAY,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE;oBACpC,WAAW,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA,GAAA,EAAM,IAAI,CAAC,IAAI,CAAA,CAAE;oBAChD,iBAAiB,EAAE,IAAI,CAAC,KAAK;AAC7B,oBAAA,eAAe,EAAE,CAAC;oBAClB,mBAAmB,EAAE,MAAM,CAAC,KAAK;AACjC,oBAAA,mBAAmB,EAAE,CAAC;AACzB,iBAAA;AACJ,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,OAAO,CAAC,KAAa,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE;AAExB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,SAAS,EAAE;QAEhB,MAAM,MAAM,GAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACpF,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACzD;AAEA,IAAA,OAAO,CAAC,KAAa,EAAA;QACjB,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAEpD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC;IACxE;AAEA,IAAA,QAAQ,CAAC,KAAU,EAAA;AACf,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC;YAAE;AAEvC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QAChB;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AAC1B,YAAA,MAAM,MAAM,GAAW,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC;AACzF,YAAA,IAAI,MAAM,KAAK,CAAC,EAAE;gBACd,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACrC;QACJ;IACJ;uGAnKS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,wRCzB1B,ymCA4BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDPc,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,sIAAE,WAAW,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA;;2FAItC,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACA,YAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,EAAA,OAAA,EACzD,CAAC,eAAe,EAAE,OAAO,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,ymCAAA,EAAA;;sBAK/C,WAAW;uBAAC,WAAW;;sBAEvB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MElBhB,qBAAqB,CAAA;AACD,IAAA,OAAA;AAA7B,IAAA,WAAA,CAA6B,OAAgB,EAAA;QAAhB,IAAA,CAAA,OAAO,GAAP,OAAO;IAAY;IAMhD,GAAG,CAAC,IAAU,EAAE,IAAU,EAAA;QACtB,MAAM,KAAK,GAAmB,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;QACvE,MAAM,MAAM,GACR,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;QAE/D,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,KAAI;AACnD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;AAEzE,YAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AACrC,YAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;YACvC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAsB,KAAI;AACtD,gBAAA,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE;gBACjC,UAAU,CAAC,OAAO,EAAE;AACxB,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAIA,IAAI,CAAC,KAAqB,EAAE,MAAqD,EAAA;AAC7E,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChF,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;AAE1E,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AACrC,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvC,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IAC9D;uGAlCS,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAArB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA;;2FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCHrB,4BAA4B,CAAA;AAMhB,IAAA,UAAA;AACA,IAAA,eAAA;AACuC,IAAA,MAAA;AAP1B,IAAA,mBAAmB;AAE7C,IAAA,WAAW;AAEnB,IAAA,WAAA,CACqB,UAAsB,EACtB,eAAiC,EACM,MAAkC,EAAA;QAFzE,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,eAAe,GAAf,eAAe;QACwB,IAAA,CAAA,MAAM,GAAN,MAAM;IAC/D;IAEH,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,GAAG;QAClD,IAAI,CAAC,QAAQ,EAAE;IACnB;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;QAChE,MAAM,QAAQ,GAAY,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW;QAC/D,IAAI,QAAQ,EAAE;AACV,YAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC9E;aAAO;AACH,YAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;QACjF;IACJ;AA1BS,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,4EAQb,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FARhC,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE;AAC5C,iBAAA;;0BASQ;;0BAAY,MAAM;2BAAC,iBAAiB;;sBAPxC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MCJhB,wBAAwB,CAAA;AAMZ,IAAA,UAAA;AACuC,IAAA,MAAA;AANjC,IAAA,eAAe;AAElC,IAAA,WAAW;IAEnB,WAAA,CACqB,UAAsB,EACiB,MAAkC,EAAA;QADzE,IAAA,CAAA,UAAU,GAAV,UAAU;QAC6B,IAAA,CAAA,MAAM,GAAN,MAAM;IAC/D;IAEH,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,GAAG;QAClD,IAAI,CAAC,QAAQ,EAAE;IACnB;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,MAAM,OAAO,GAAgB,IAAI,CAAC,UAAU,CAAC,aAAa;QAC1D,MAAM,QAAQ,GAAY,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW;AAE/D,QAAA,QAAQ,IAAI,CAAC,eAAe;AACxB,YAAA,KAAK,SAAS;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,EAAE;gBAC9C;AACJ,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM;gBAC9C;;IAEZ;AA7BS,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,4CAOT,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAPhC,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,SAAS;mBAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE;;0BAQ9E;;0BAAY,MAAM;2BAAC,iBAAiB;;sBANxC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MCOhB,wBAAwB,CAAA;AAUZ,IAAA,UAAA;AACuC,IAAA,MAAA;AAV1B,IAAA,eAAe;IACd,QAAQ,GAAoC,QAAQ;AACpD,IAAA,MAAM;AAEjC,IAAA,WAAW;AACX,IAAA,UAAU;IACV,QAAQ,GAAY,KAAK;IAEjC,WAAA,CACqB,UAAsB,EACiB,MAAkC,EAAA;QADzE,IAAA,CAAA,UAAU,GAAV,UAAU;QAC6B,IAAA,CAAA,MAAM,GAAN,MAAM;IAC/D;IAEH,QAAQ,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG,CAClB,MAA4D,KACf;YAC7C,OAAO;AACH,gBAAA,WAAW,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,WAAW;AACrE,gBAAA,UAAU,EAAE,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU;aACtE;AACL,QAAA,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,GAAG;QAClD,IAAI,CAAC,UAAU,GAAG;YACd,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS;YACzF,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS;SACrG;QAED,IAAI,CAAC,QAAQ,EAAE;IACnB;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW;QACrD,IAAI,CAAC,WAAW,EAAE;IACtB;IAEA,WAAW,GAAA;AACP,QAAA,MAAM,OAAO,GAAgB,IAAI,CAAC,UAAU,CAAC,aAAa;AAC1D,QAAA,IAAI,CAAC,OAAO;YAAE;AAEd,QAAA,MAAM,MAAM,GACR,IAAI,CAAC,QAAQ,KAAK,QAAQ;aACzB,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC9C,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;AAEjD,QAAA,QAAQ,IAAI,CAAC,eAAe;AACxB,YAAA,KAAK,KAAK;AACN,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG;AAC/B,gBAAA,IAAI,CAAC,GAAG;oBAAE;AAEV,gBAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ;AACrD,gBAAA,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,MAAM;AACrF,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,IAAI,MAAM;gBACxF;AAEJ,YAAA,KAAK,QAAQ;AACT,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;AACrC,gBAAA,IAAI,CAAC,MAAM;oBAAE;AAEb,gBAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ;AACrD,gBAAA,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,MAAM;AACrF,gBAAA,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM;gBACjG;;IAEZ;AAlES,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,4CAWT,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAXhC,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,IAAI,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE;AAC5C,iBAAA;;0BAYQ;;0BAAY,MAAM;2BAAC,iBAAiB;;sBAVxC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;sBACzB,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;;;MCRjB,iBAAiB,CAAA;AACG,IAAA,YAAA;AAA7B,IAAA,WAAA,CAA6B,YAA0B,EAAA;QAA1B,IAAA,CAAA,YAAY,GAAZ,YAAY;IAAiB;IAE1D,SAAS,CACL,KAAqB,EACrB,OAA0B,EAAA;QAE1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE;AAEhG,QAAA,QAAQ,OAAO,EAAE,IAAI,IAAI,MAAM;AAC3B,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC;AAC5D,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAC7D,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC;AAC1D,YAAA,KAAK,cAAc;gBACf,OAAO,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,KAAK,CAAC;AAClE,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC;;IAEnE;uGArBS,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,IAAI;mBAAC,EAAE,IAAI,EAAE,eAAe,EAAE;;;ACP/B;;AAEG;;ACFH;;AAEG;;;;"}