{"version":3,"file":"ng-vagabond-lab-ng-dsv-modules-admin.mjs","sources":["../../../projects/ng-dsv/modules/admin/service/admin.service.ts","../../../projects/ng-dsv/modules/admin/component/modal/admin.search.modal.component.ts","../../../projects/ng-dsv/modules/admin/component/modal/admin.search.modal.component.html","../../../projects/ng-dsv/modules/admin/component/form/admin.form.component.ts","../../../projects/ng-dsv/modules/admin/component/form/admin.form.component.html","../../../projects/ng-dsv/modules/admin/container/form/admin.form.container.ts","../../../projects/ng-dsv/modules/admin/container/form/admin.form.container.html","../../../projects/ng-dsv/modules/admin/container/search/admin.search.container.ts","../../../projects/ng-dsv/modules/admin/container/search/admin.search.container.html","../../../projects/ng-dsv/modules/admin/dto/admin.default.dto.ts","../../../projects/ng-dsv/modules/admin/ng-vagabond-lab-ng-dsv-modules-admin.ts"],"sourcesContent":["import { inject, Injectable, signal } from '@angular/core';\nimport { ApiDto, ApiService, PageableDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { AdminTabConfDto } from '../dto/admin.dto';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class AdminService {\n    apiService = inject(ApiService);\n\n    tabs = signal<AdminTabConfDto>({} as AdminTabConfDto);\n\n    datas = signal<Record<string, PageableDto<ApiDto[]>>>({});\n    data = signal<ApiDto>({} as ApiDto);\n\n    page = signal<Record<string, number>>({});\n    search = signal<Record<string, string>>({});\n\n    get(\n        endpoint: string,\n        fields: string,\n        search: string,\n        page: number = 0,\n        max: number = 10,\n        callback?: (data: PageableDto<ApiDto[]>) => void,\n    ) {\n        const url =\n            '/' +\n            endpoint +\n            '/findBy?fields=' +\n            fields +\n            '&values=' +\n            search +\n            '&first=' +\n            page +\n            '&max=' +\n            max;\n\n        const callbackResponse =\n            callback ??\n            ((data: PageableDto<ApiDto[]>) => {\n                this.datas.update((s) => ({ ...s, [endpoint]: data }));\n            });\n        this.apiService.get<PageableDto<ApiDto[]>>(encodeURI(url), callbackResponse);\n    }\n\n    post(endpoint: string, data: ApiDto) {\n        const url = '/' + endpoint;\n        this.apiService.post<ApiDto>(encodeURI(url), data, (response) => {\n            this.data.set(response);\n        });\n    }\n\n    put(endpoint: string, data: ApiDto) {\n        const url = '/' + endpoint;\n        this.apiService.put<ApiDto>(encodeURI(url), data, (response) => {\n            this.data.set(response);\n        });\n    }\n\n    findById(endpoint: string, id: string) {\n        const url = '/' + endpoint + '/' + id;\n        this.apiService.get<ApiDto>(encodeURI(url), (data) => {\n            this.data.set(data);\n        });\n    }\n}\n","import { Component, effect, inject, input, output, signal } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { ReactiveSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';\nimport { DsvItemComponent } from '@ng-vagabond-lab/ng-dsv/ds/item';\nimport { ModalButtonComponent, ModalComponent, ModalService } from '@ng-vagabond-lab/ng-dsv/ds/modal';\nimport { ManyToManyDto } from '../../dto/admin.dto';\nimport { AdminService } from '../../service/admin.service';\n\n@Component({\n    selector: 'dsv-admin-search-modal',\n    imports: [DsvItemComponent, ModalButtonComponent, ModalComponent, ReactiveSearchbarComponent],\n    templateUrl: './admin.search.modal.component.html',\n    styleUrls: ['./admin.search.modal.component.scss'],\n})\nexport class AdminSearchModalContainer {\n    modalService = inject(ModalService);\n    adminService = inject(AdminService);\n\n    m2em = input.required<ManyToManyDto>();\n\n    search = signal<string>('');\n    datas = signal<ApiDto[]>([]);\n\n    callback = output<ApiDto>();\n\n    constructor() {\n        effect(() => {\n            this.adminService.get(this.m2em().endPoint, this.m2em().fields, this.search(), 0, 500, (data) => {\n                this.datas.set(data.content);\n            });\n        });\n    }\n\n    getValue(data: ApiDto, name: string) {\n        return data[name as keyof ApiDto] as string;\n    }\n\n    doSearch(search: string) {\n        this.search.set(search);\n    }\n\n    clickItem = (data: ApiDto) => {\n        this.callback.emit(data);\n        this.modalService.close('m2m');\n    };\n}\n","<dsv-modal-button\n    id=\"m2m\"\n    icon=\"ri-add-line\"\n/>\n<dsv-modal\n    id=\"m2m\"\n    titleText=\"Ajouter un élément\"\n>\n    <dsv-form-reactive-searchbar\n        [search]=\"search()\"\n        (callbackSearch)=\"doSearch($event)\"\n    />\n    <div>\n        @for (data of datas(); track data.id) {\n            <dsv-item\n                [text]=\"getValue(data, m2em().name)\"\n                (callback)=\"clickItem(data)\"\n            />\n        }\n    </div>\n</dsv-modal>\n","import { Component, effect, input, output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { ApiDto, ID } from '@ng-vagabond-lab/ng-dsv/api';\nimport { DsvChipComponent } from '@ng-vagabond-lab/ng-dsv/ds/chip';\nimport {\n    BaseFormReactiveComponent,\n    FormReactiveCheckboxComponent,\n    FormReactiveComponent,\n    FormReactiveInputComponent,\n} from '@ng-vagabond-lab/ng-dsv/ds/form/reactive';\nimport { FormDto } from '../../dto/admin.dto';\nimport { AdminSearchModalContainer } from '../modal/admin.search.modal.component';\n\n@Component({\n    selector: 'dsv-admin-form',\n    imports: [\n        ReactiveFormsModule,\n        DsvChipComponent,\n        FormReactiveComponent,\n        FormReactiveInputComponent,\n        FormReactiveCheckboxComponent,\n        AdminSearchModalContainer,\n    ],\n    templateUrl: './admin.form.component.html',\n    styleUrls: ['./admin.form.component.scss'],\n})\nexport class AdminFormComponent extends BaseFormReactiveComponent {\n    urlBack = input<string>();\n    data = input.required<ApiDto>();\n    formConf = input.required<FormDto[]>();\n\n    callback = output<ApiDto>();\n\n    constructor() {\n        super();\n        effect(() => {\n            this.formBuilder.control('a');\n\n            let formControl = {} as { [key: string]: FormControl };\n            this.formConf()?.forEach((conf) => {\n                let value = this.data()[conf.name as keyof ApiDto];\n                if (conf.type === 'datetime-local' && value) {\n                    value = (value as string).substring(0, 16);\n                }\n                const required = conf.required || false;\n                formControl[conf.name] = new FormControl(\n                    { value, disabled: conf.disabled ?? false },\n                    required ? Validators.required : null,\n                );\n            });\n            this.form = this.formBuilder.group(formControl);\n        });\n    }\n\n    sendForm(data: ApiDto) {\n        this.callback.emit(data);\n    }\n\n    removeValue = (name: string, id: ID) => () => {\n        this.form.value[name] = this.form.value[name].filter((value: ApiDto) => value.id !== id);\n    };\n\n    addValue = (name: string) => (data: ApiDto) => {\n        const find = this.form.value[name].find((value: ApiDto) => value.id === data.id);\n        if (!find) {\n            this.form.value[name].push(data);\n        }\n    };\n}\n","<dsv-form-reactive\n    [form]=\"form\"\n    [urlBack]=\"urlBack()!\"\n    (callback)=\"sendForm($event)\"\n>\n    @for (field of formConf(); track field.name) {\n        <div [class]=\"'item ' + (field.className ?? '')\">\n            @if (\n                field.type === 'text' ||\n                field.type === 'number' ||\n                field.type === 'textarea' ||\n                field.type === 'datetime-local'\n            ) {\n                <dsv-form-reactive-input\n                    [form]=\"form\"\n                    [field]=\"field.name\"\n                    [type]=\"field.type\"\n                    [required]=\"field.required ?? false\"\n                />\n            }\n            @if (field.type === 'switch') {\n                <dsv-form-reactive-checkbox\n                    [form]=\"form\"\n                    [field]=\"field.name\"\n                />\n            }\n            @if (field.type === 'm2m') {\n                <div class=\"m2m\">\n                    <div class=\"m2m-content\">\n                        @for (value of form.value[field.name]; track value.id) {\n                            <dsv-chip\n                                color=\"default\"\n                                [text]=\"value.name\"\n                                (delete)=\"removeValue(field.name, value.id)()\"\n                            />\n                        }\n                        <dsv-admin-search-modal\n                            [m2em]=\"field.m2m!\"\n                            (callback)=\"addValue(field.name)($event)\"\n                        />\n                    </div>\n                </div>\n            }\n        </div>\n    }\n</dsv-form-reactive>\n","import { Component, effect, inject, signal } from '@angular/core';\nimport { ApiDto } from '@ng-vagabond-lab/ng-dsv/api';\nimport { BaseRouteComponent } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { TabDto } from '@ng-vagabond-lab/ng-dsv/ds/tab';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { AdminFormComponent } from '../../component/form/admin.form.component';\nimport { AdminTabDto } from '../../dto/admin.dto';\nimport { AdminService } from '../../service/admin.service';\n\n@Component({\n    selector: 'dsv-admin-form-container',\n    imports: [DsvCardComponent, AdminFormComponent],\n    templateUrl: './admin.form.container.html',\n    styleUrls: ['./admin.form.container.scss'],\n})\nexport class AdminFormContainer extends BaseRouteComponent {\n    adminService = inject(AdminService);\n    platformService = inject(PlatformService);\n\n    tabs = signal<TabDto[]>([]);\n    tab = signal<string>('user');\n    tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n    constructor() {\n        super();\n        effect(() => {\n            if (this.platformService.isPlatformBrowser()) {\n                const id = this.routeParams()?.['id'];\n                this.tab.set(this.routeParams()?.['type']);\n                const tab = this.adminService.tabs()?.tabs.find((tab) => tab.name === this.tab());\n                this.tabConfig.set(tab);\n                if (Number.isNaN(Number(id))) {\n                    this.adminService.data.set({} as ApiDto);\n                } else {\n                    this.findById(this.routeParams()?.['id']);\n                }\n            }\n        });\n    }\n\n    findById(id: string) {\n        this.adminService.findById(this.tabConfig()?.name!, id);\n    }\n\n    sendForm(data: ApiDto) {\n        const dataFusion = {\n            ...this.adminService.data(),\n            ...data,\n        };\n        if (dataFusion.id) {\n            this.adminService.put(this.tabConfig()?.name!, dataFusion);\n        } else {\n            this.adminService.post(this.tabConfig()?.name!, dataFusion);\n        }\n    }\n}\n","<dsv-card [titleText]=\"adminService.data().id ? 'Modification' : 'Ajout'\">\n    <dsv-admin-form\n        [data]=\"adminService.data()\"\n        [formConf]=\"tabConfig()?.form!\"\n        [urlBack]=\"'/admin/' + tab()\"\n        (callback)=\"sendForm($event)\"\n    />\n</dsv-card>\n","import { Component, effect, inject, signal } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { BaseRouteComponent } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { FormSignalSearchbarComponent } from '@ng-vagabond-lab/ng-dsv/ds/form/signal';\nimport { PaginateComponent } from '@ng-vagabond-lab/ng-dsv/ds/paginate';\nimport { TabDto, TabsComponent } from '@ng-vagabond-lab/ng-dsv/ds/tab';\nimport { TableComponent } from '@ng-vagabond-lab/ng-dsv/ds/table';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { AdminTabDto } from '../../dto/admin.dto';\nimport { AdminService } from '../../service/admin.service';\n\n@Component({\n    selector: 'dsv-admin-search',\n    imports: [\n        DsvCardComponent,\n        DsvButtonComponent,\n        TabsComponent,\n        TableComponent,\n        PaginateComponent,\n        RouterLink,\n        FormSignalSearchbarComponent,\n    ],\n    templateUrl: './admin.search.container.html',\n    styleUrls: ['./admin.search.container.scss'],\n})\nexport class AdminSearchContainer extends BaseRouteComponent {\n    adminService = inject(AdminService);\n    platformService = inject(PlatformService);\n\n    tabs = signal<TabDto[]>([]);\n    tab = signal<string>('user');\n    tabConfig = signal<AdminTabDto | undefined>(undefined);\n\n    load = signal<Record<string, boolean>>({});\n\n    constructor() {\n        super();\n        effect(() => {\n            if (this.platformService.isPlatformBrowser()) {\n                this.tab.set(this.routeParams()?.['type']);\n                const tab = this.adminService.tabs()?.tabs.find((tab) => tab.name === this.tab());\n                this.tabConfig.set(tab);\n                if (!this.load()[this.routeParams()?.['type']]) {\n                    this.load.update((s) => ({ ...s, [this.tabConfig()?.name!]: true }));\n                    this.gotoPage(0);\n                }\n            }\n        });\n        effect(() => {\n            if (this.platformService.isPlatformBrowser()) {\n                const tabs = this.adminService.tabs()?.tabs;\n                const tabsDtos: TabDto[] = [];\n                if (tabs) {\n                    tabs.forEach((tab) => {\n                        const tabsDto = {} as TabDto;\n                        tabsDto.id = tab.name;\n                        tabsDto.title = tab.name;\n                        tabsDto.url = '/admin/' + tab.name;\n                        tabsDtos.push(tabsDto);\n                    });\n                }\n                this.tabs.set(tabsDtos);\n            }\n        });\n    }\n\n    gotoPage(page: number, search: string = '') {\n        this.adminService.page.update((s) => ({ ...s, [this.tabConfig()?.name!]: page }));\n        this.adminService.search.update((s) => ({ ...s, [this.tabConfig()?.name!]: search }));\n        this.adminService.get(\n            this.tabConfig()?.name!,\n            this.tabConfig()?.findByChamps!,\n            search,\n            page,\n            this.adminService.tabs()?.max,\n        );\n    }\n}\n","<dsv-tabs-component\n    [tabs]=\"tabs()\"\n    [active]=\"tab()\"\n/>\n<dsv-card>\n    <div class=\"admin-header\">\n        <span>Résulat : {{ adminService.datas()[tab()]?.totalElements }}</span>\n        <dsv-button\n            variant=\"contained\"\n            color=\"primary\"\n            icon=\"ri-add-line\"\n            [routerLink]=\"'/admin/' + tab() + '/add'\"\n            [prevent]=\"false\"\n        ></dsv-button>\n    </div>\n    <dsv-form-signal-searchbar\n        [search]=\"adminService.search()[tab()]\"\n        (callbackSearch)=\"gotoPage(0, $event)\"\n    />\n    <dsv-table\n        [cells]=\"tabConfig()?.cells!\"\n        [datas]=\"adminService.datas()[tab()]?.content!\"\n        [max]=\"adminService.tabs().max!\"\n        [url]=\"'/admin/' + tab()\"\n    ></dsv-table>\n    <dsv-paginate\n        [page]=\"adminService.page()[this.tabConfig()?.name!]\"\n        [max]=\"adminService.datas()[tab()]?.totalPages!\"\n        (callback)=\"gotoPage($event)\"\n    />\n</dsv-card>\n","import { AdminTabDto } from './admin.dto';\n\nexport const ADMIN_COL = [\n    { label: 'AUTH.FIELDS.CREATE_DATE', width: '145px', name: 'creationDate', date: true, order: true },\n    { label: 'AUTH.FIELDS.ACTIVE', width: '70px', name: 'active', order: true },\n];\n\nexport const ADMIN_PROFILE_M2M = {\n    name: 'name',\n    endPoint: 'profile',\n    fields: 'name%',\n    order: 'name',\n    orderBy: 'asc',\n};\n\nexport const ADMIN_INPUT = [\n    {\n        name: 'creationDate',\n        label: 'AUTH.FIELDS.CREATE_DATE',\n        type: 'datetime-local',\n        className: 'width50',\n        disabled: true,\n    },\n    {\n        name: 'updatedDate',\n        label: 'AUTH.FIELDS.UPDATE_DATE',\n        type: 'datetime-local',\n        className: 'width50',\n        disabled: true,\n    },\n    {\n        name: 'deletedDate',\n        label: 'AUTH.FIELDS.DELETE_DATE',\n        type: 'datetime-local',\n        className: 'width50',\n        disabled: true,\n    },\n    { name: 'active', label: 'AUTH.FIELDS.ACTIVE', type: 'switch', required: false, className: 'width50' },\n];\n\nexport const ADMIN_USER: AdminTabDto[] = [\n    {\n        name: 'user',\n        label: 'AUTH.USER:TITLE',\n        findByChamps: 'username%And|Email%',\n        sortBy: 'creationDate',\n        sortByAsc: 'desc',\n        cells: [\n            { label: 'AUTH.FIELDS.LOGIN', name: 'username', order: true },\n            { label: 'AUTH.FIELDS.EMAIL', width: '240px', name: 'email', order: true },\n            { label: 'AUTH.FIELDS.PROFILES', name: 'profiles.name' },\n            {\n                label: 'AUTH.FIELDS.LAST_CONNEXION_DATE',\n                width: '150px',\n                name: 'lastConnexionDate',\n                date: true,\n                order: true,\n            },\n            ...ADMIN_COL,\n        ],\n        form: [\n            { name: 'username', label: 'AUTH.FIELDS.LOGIN', type: 'text', required: true },\n            { name: 'password', label: 'AUTH.FIELDS.PASSWORD', type: 'password', required: false },\n            { name: 'email', label: 'AUTH.FIELDS.EMAIL', type: 'text', email: true, required: true },\n            {\n                name: 'profiles',\n                label: 'AUTH.FIELDS.PFOFILES',\n                type: 'm2m',\n                required: false,\n                m2m: ADMIN_PROFILE_M2M,\n                array: true,\n            },\n            {\n                name: 'lastConnexionDate',\n                label: 'AUTH.FIELDS.LAST_CONNEXION_DATE',\n                type: 'datetime-local',\n                required: false,\n            },\n            {\n                name: 'activationToken',\n                label: 'AUTH.FIELDS.ACTIVATION_TOKEN',\n                type: 'text',\n                className: 'width50',\n            },\n            {\n                name: 'emailActivation',\n                label: 'AUTH.FIELDS.EMAIL_ACTIVIATION',\n                type: 'switch',\n                className: 'width50',\n            },\n            {\n                name: 'identityToken',\n                label: 'AUTH.FIELDS.IDENTITY_TOKEN',\n                type: 'text',\n                className: 'width50',\n            },\n            {\n                name: 'identityTokenDateEnd',\n                label: 'AUTH.FIELDS.IDENTITY_TOKEN_DATE',\n                type: 'datetime-local',\n                className: 'width50',\n            },\n            { name: 'googleId', label: 'AUTH.FIELDS.GOOGLE_ID', type: 'text', className: 'width50' },\n            { name: 'facebookId', label: 'AUTH.FIELDS.FACEBOOK_ID', type: 'text', className: 'width50' },\n            ...ADMIN_INPUT,\n        ],\n    },\n];\n\nexport const ADMIN_PROFILE: AdminTabDto[] = [\n    {\n        name: 'profile',\n        label: 'AUTH.PROFILE:TITLE',\n        findByChamps: 'name%',\n        sortBy: 'name',\n        cells: [\n            { label: 'AUTH.FIELDS.NAME', name: 'name', order: true },\n            { label: 'AUTH.FIELDS.ROLES', name: 'roles', order: true },\n            ...ADMIN_COL,\n        ],\n        form: [\n            { name: 'name', label: 'AUTH.FIELDS.NAME', type: 'text', required: true },\n            { name: 'roles', label: 'AUTH.FIELDS.ROLES', type: 'text', required: true },\n            ...ADMIN_INPUT,\n        ],\n    },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;MAOa,YAAY,CAAA;AACrB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAE/B,IAAA,IAAI,GAAG,MAAM,CAAkB,EAAqB,2EAAC;AAErD,IAAA,KAAK,GAAG,MAAM,CAAwC,EAAE,4EAAC;AACzD,IAAA,IAAI,GAAG,MAAM,CAAS,EAAY,2EAAC;AAEnC,IAAA,IAAI,GAAG,MAAM,CAAyB,EAAE,2EAAC;AACzC,IAAA,MAAM,GAAG,MAAM,CAAyB,EAAE,6EAAC;AAE3C,IAAA,GAAG,CACC,QAAgB,EAChB,MAAc,EACd,MAAc,EACd,IAAA,GAAe,CAAC,EAChB,GAAA,GAAc,EAAE,EAChB,QAAgD,EAAA;QAEhD,MAAM,GAAG,GACL,GAAG;YACH,QAAQ;YACR,iBAAiB;YACjB,MAAM;YACN,UAAU;YACV,MAAM;YACN,SAAS;YACT,IAAI;YACJ,OAAO;AACP,YAAA,GAAG;QAEP,MAAM,gBAAgB,GAClB,QAAQ;aACP,CAAC,IAA2B,KAAI;gBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC;AAC1D,YAAA,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAwB,SAAS,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC;IAChF;IAEA,IAAI,CAAC,QAAgB,EAAE,IAAY,EAAA;AAC/B,QAAA,MAAM,GAAG,GAAG,GAAG,GAAG,QAAQ;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAS,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,KAAI;AAC5D,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3B,QAAA,CAAC,CAAC;IACN;IAEA,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAA;AAC9B,QAAA,MAAM,GAAG,GAAG,GAAG,GAAG,QAAQ;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAS,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,KAAI;AAC3D,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3B,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,CAAC,QAAgB,EAAE,EAAU,EAAA;QACjC,MAAM,GAAG,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE;AACrC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAS,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAI;AACjD,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,CAAC,CAAC;IACN;uGA1DS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA;;2FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;MCQY,yBAAyB,CAAA;AAClC,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAEnC,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,0EAAiB;AAEtC,IAAA,MAAM,GAAG,MAAM,CAAS,EAAE,6EAAC;AAC3B,IAAA,KAAK,GAAG,MAAM,CAAW,EAAE,4EAAC;IAE5B,QAAQ,GAAG,MAAM,EAAU;AAE3B,IAAA,WAAA,GAAA;QACI,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,KAAI;gBAC5F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAoB,CAAW;IAC/C;AAEA,IAAA,QAAQ,CAAC,MAAc,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;IAC3B;AAEA,IAAA,SAAS,GAAG,CAAC,IAAY,KAAI;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;AAClC,IAAA,CAAC;uGA9BQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdtC,4fAqBA,EAAA,MAAA,EAAA,CAAA,0IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDXc,gBAAgB,sHAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,0BAA0B,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAInF,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACI,wBAAwB,EAAA,OAAA,EACzB,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,0BAA0B,CAAC,EAAA,QAAA,EAAA,4fAAA,EAAA,MAAA,EAAA,CAAA,0IAAA,CAAA,EAAA;;;AEgB3F,MAAO,kBAAmB,SAAQ,yBAAyB,CAAA;IAC7D,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;AACzB,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,0EAAU;AAC/B,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,8EAAa;IAEtC,QAAQ,GAAG,MAAM,EAAU;AAE3B,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;YAE7B,IAAI,WAAW,GAAG,EAAoC;YACtD,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAoB,CAAC;gBAClD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,EAAE;oBACzC,KAAK,GAAI,KAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC9C;AACA,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AACvC,gBAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,EAC3C,QAAQ,GAAG,UAAU,CAAC,QAAQ,GAAG,IAAI,CACxC;AACL,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;AACnD,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,QAAQ,CAAC,IAAY,EAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;IAEA,WAAW,GAAG,CAAC,IAAY,EAAE,EAAM,KAAK,MAAK;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAa,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;AAC5F,IAAA,CAAC;IAED,QAAQ,GAAG,CAAC,IAAY,KAAK,CAAC,IAAY,KAAI;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAChF,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC;AACJ,IAAA,CAAC;uGAzCQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B/B,urDA8CA,EAAA,MAAA,EAAA,CAAA,qnBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED9BQ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,0BAA0B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,6BAA6B,4IAC7B,yBAAyB,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKpB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAb9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EACjB;wBACL,mBAAmB;wBACnB,gBAAgB;wBAChB,qBAAqB;wBACrB,0BAA0B;wBAC1B,6BAA6B;wBAC7B,yBAAyB;AAC5B,qBAAA,EAAA,QAAA,EAAA,urDAAA,EAAA,MAAA,EAAA,CAAA,qnBAAA,CAAA,EAAA;;;AENC,MAAO,kBAAmB,SAAQ,kBAAkB,CAAA;AACtD,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAEzC,IAAA,IAAI,GAAG,MAAM,CAAW,EAAE,2EAAC;AAC3B,IAAA,GAAG,GAAG,MAAM,CAAS,MAAM,0EAAC;AAC5B,IAAA,SAAS,GAAG,MAAM,CAA0B,SAAS,gFAAC;AAEtD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,EAAE;gBAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;AACrC,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;AACjF,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBACvB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;oBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAY,CAAC;gBAC5C;qBAAO;AACH,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC7C;YACJ;AACJ,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,QAAQ,CAAC,EAAU,EAAA;AACf,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAK,EAAE,EAAE,CAAC;IAC3D;AAEA,IAAA,QAAQ,CAAC,IAAY,EAAA;AACjB,QAAA,MAAM,UAAU,GAAG;AACf,YAAA,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AAC3B,YAAA,GAAG,IAAI;SACV;AACD,QAAA,IAAI,UAAU,CAAC,EAAE,EAAE;AACf,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAK,EAAE,UAAU,CAAC;QAC9D;aAAO;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAK,EAAE,UAAU,CAAC;QAC/D;IACJ;uGAvCS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB/B,+RAQA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIc,gBAAgB,kHAAE,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIrC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAAA,OAAA,EAC3B,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,+RAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA;;;AEe7C,MAAO,oBAAqB,SAAQ,kBAAkB,CAAA;AACxD,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAEzC,IAAA,IAAI,GAAG,MAAM,CAAW,EAAE,2EAAC;AAC3B,IAAA,GAAG,GAAG,MAAM,CAAS,MAAM,0EAAC;AAC5B,IAAA,SAAS,GAAG,MAAM,CAA0B,SAAS,gFAAC;AAEtD,IAAA,IAAI,GAAG,MAAM,CAA0B,EAAE,2EAAC;AAE1C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,EAAE;AAC1C,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;AACjF,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE;AAC5C,oBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAK,GAAG,IAAI,EAAE,CAAC,CAAC;AACpE,oBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpB;YACJ;AACJ,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,EAAE;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI;gBAC3C,MAAM,QAAQ,GAAa,EAAE;gBAC7B,IAAI,IAAI,EAAE;AACN,oBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;wBACjB,MAAM,OAAO,GAAG,EAAY;AAC5B,wBAAA,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI;AACrB,wBAAA,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI;wBACxB,OAAO,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,IAAI;AAClC,wBAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1B,oBAAA,CAAC,CAAC;gBACN;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC3B;AACJ,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,QAAQ,CAAC,IAAY,EAAE,MAAA,GAAiB,EAAE,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAK,GAAG,IAAI,EAAE,CAAC,CAAC;AACjF,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAK,GAAG,MAAM,EAAE,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACjB,IAAI,CAAC,SAAS,EAAE,EAAE,IAAK,EACvB,IAAI,CAAC,SAAS,EAAE,EAAE,YAAa,EAC/B,MAAM,EACN,IAAI,EACJ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,CAChC;IACL;uGAnDS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BjC,w/BA+BA,EAAA,MAAA,EAAA,CAAA,8NAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDfQ,gBAAgB,kHAChB,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,aAAa,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,UAAU,oOACV,4BAA4B,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKvB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAdhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,OAAA,EACnB;wBACL,gBAAgB;wBAChB,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,iBAAiB;wBACjB,UAAU;wBACV,4BAA4B;AAC/B,qBAAA,EAAA,QAAA,EAAA,w/BAAA,EAAA,MAAA,EAAA,CAAA,8NAAA,CAAA,EAAA;;;AErBE,MAAM,SAAS,GAAG;AACrB,IAAA,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AACnG,IAAA,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;;AAGxE,MAAM,iBAAiB,GAAG;AAC7B,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,OAAO,EAAE,KAAK;;AAGX,MAAM,WAAW,GAAG;AACvB,IAAA;AACI,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA;AACD,IAAA;AACI,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,KAAK,EAAE,yBAAyB;AAChC,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA;AACD,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE;;AAGnG,MAAM,UAAU,GAAkB;AACrC,IAAA;AACI,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,YAAY,EAAE,qBAAqB;AACnC,QAAA,MAAM,EAAE,cAAc;AACtB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,KAAK,EAAE;YACH,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE;AAC7D,YAAA,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1E,YAAA,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,eAAe,EAAE;AACxD,YAAA;AACI,gBAAA,KAAK,EAAE,iCAAiC;AACxC,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACD,YAAA,GAAG,SAAS;AACf,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC9E,YAAA,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;AACtF,YAAA,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AACxF,YAAA;AACI,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,KAAK,EAAE,sBAAsB;AAC7B,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,GAAG,EAAE,iBAAiB;AACtB,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,KAAK,EAAE,iCAAiC;AACxC,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,QAAQ,EAAE,KAAK;AAClB,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,KAAK,EAAE,8BAA8B;AACrC,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,SAAS,EAAE,SAAS;AACvB,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,KAAK,EAAE,+BAA+B;AACtC,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,SAAS,EAAE,SAAS;AACvB,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,KAAK,EAAE,4BAA4B;AACnC,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,SAAS,EAAE,SAAS;AACvB,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,sBAAsB;AAC5B,gBAAA,KAAK,EAAE,iCAAiC;AACxC,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,SAAS,EAAE,SAAS;AACvB,aAAA;AACD,YAAA,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE;AACxF,YAAA,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE;AAC5F,YAAA,GAAG,WAAW;AACjB,SAAA;AACJ,KAAA;;AAGE,MAAM,aAAa,GAAkB;AACxC,IAAA;AACI,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE;YACH,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;YACxD,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1D,YAAA,GAAG,SAAS;AACf,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AACzE,YAAA,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC3E,YAAA,GAAG,WAAW;AACjB,SAAA;AACJ,KAAA;;;AC7HL;;AAEG;;;;"}