@strapi/i18n 5.9.0 → 5.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/chunks/SettingsPage-B6ikxVOg.js +820 -0
- package/dist/admin/chunks/SettingsPage-B6ikxVOg.js.map +1 -0
- package/dist/admin/chunks/SettingsPage-DydtYvMJ.mjs +797 -0
- package/dist/admin/chunks/SettingsPage-DydtYvMJ.mjs.map +1 -0
- package/dist/admin/chunks/de-Cm8mYdaO.mjs +64 -0
- package/dist/admin/chunks/de-Cm8mYdaO.mjs.map +1 -0
- package/dist/admin/chunks/de-nEMWvIiY.js +66 -0
- package/dist/admin/chunks/de-nEMWvIiY.js.map +1 -0
- package/dist/admin/chunks/dk-BeUFOegB.mjs +64 -0
- package/dist/admin/chunks/dk-BeUFOegB.mjs.map +1 -0
- package/dist/admin/chunks/dk-CYATLPVe.js +66 -0
- package/dist/admin/chunks/dk-CYATLPVe.js.map +1 -0
- package/dist/admin/chunks/en-CG5cUCbD.js +81 -0
- package/dist/admin/chunks/en-CG5cUCbD.js.map +1 -0
- package/dist/admin/chunks/en-eWSaCeOb.mjs +79 -0
- package/dist/admin/chunks/en-eWSaCeOb.mjs.map +1 -0
- package/dist/admin/chunks/es-CWsogTGm.js +66 -0
- package/dist/admin/chunks/es-CWsogTGm.js.map +1 -0
- package/dist/admin/chunks/es-DqF_IdAc.mjs +64 -0
- package/dist/admin/chunks/es-DqF_IdAc.mjs.map +1 -0
- package/dist/admin/chunks/fr-CC7UFcYd.js +66 -0
- package/dist/admin/chunks/fr-CC7UFcYd.js.map +1 -0
- package/dist/admin/chunks/fr-CyARbZ3c.mjs +64 -0
- package/dist/admin/chunks/fr-CyARbZ3c.mjs.map +1 -0
- package/dist/admin/chunks/index-Dch-2xao.js +2035 -0
- package/dist/admin/chunks/index-Dch-2xao.js.map +1 -0
- package/dist/admin/chunks/index-k3BHSNs0.mjs +2006 -0
- package/dist/admin/chunks/index-k3BHSNs0.mjs.map +1 -0
- package/dist/admin/chunks/ko-Ax4NSedM.mjs +63 -0
- package/dist/admin/chunks/ko-Ax4NSedM.mjs.map +1 -0
- package/dist/admin/chunks/ko-XwGmfhoq.js +65 -0
- package/dist/admin/chunks/ko-XwGmfhoq.js.map +1 -0
- package/dist/admin/chunks/pl-B-aqvMqL.mjs +64 -0
- package/dist/admin/chunks/pl-B-aqvMqL.mjs.map +1 -0
- package/dist/admin/chunks/pl-B_vzY_ZB.js +66 -0
- package/dist/admin/chunks/pl-B_vzY_ZB.js.map +1 -0
- package/dist/admin/chunks/ru-VkPjQ-Sk.mjs +66 -0
- package/dist/admin/chunks/ru-VkPjQ-Sk.mjs.map +1 -0
- package/dist/admin/chunks/ru-WzHcJV1f.js +68 -0
- package/dist/admin/chunks/ru-WzHcJV1f.js.map +1 -0
- package/dist/admin/chunks/tr-CcWp6u3w.js +66 -0
- package/dist/admin/chunks/tr-CcWp6u3w.js.map +1 -0
- package/dist/admin/chunks/tr-DcTR88c9.mjs +64 -0
- package/dist/admin/chunks/tr-DcTR88c9.mjs.map +1 -0
- package/dist/admin/chunks/zh-C9So4SGq.js +66 -0
- package/dist/admin/chunks/zh-C9So4SGq.js.map +1 -0
- package/dist/admin/chunks/zh-Hans-DnU2bhri.js +57 -0
- package/dist/admin/chunks/zh-Hans-DnU2bhri.js.map +1 -0
- package/dist/admin/chunks/zh-Hans-L3wsRegj.mjs +55 -0
- package/dist/admin/chunks/zh-Hans-L3wsRegj.mjs.map +1 -0
- package/dist/admin/chunks/zh-RZyMiPIs.mjs +64 -0
- package/dist/admin/chunks/zh-RZyMiPIs.mjs.map +1 -0
- package/dist/admin/index.js +20 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +15 -6
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/CMHeaderActions.d.ts +1 -1
- package/dist/admin/src/components/tests/CreateLocale.test.d.ts +1 -0
- package/dist/admin/src/components/tests/DeleteLocale.test.d.ts +1 -0
- package/dist/admin/src/components/tests/EditLocale.test.d.ts +1 -0
- package/dist/admin/src/components/tests/LocaleListCell.test.d.ts +1 -0
- package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +1 -1
- package/dist/admin/src/pages/tests/SettingsPage.test.d.ts +1 -0
- package/dist/admin/tests/server.d.ts +1 -0
- package/dist/admin/tests/utils.d.ts +6 -0
- package/dist/server/index.js +3650 -3390
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +3632 -3374
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/services/localizations.d.ts +1 -1
- package/dist/server/src/services/localizations.d.ts.map +1 -1
- package/dist/shared/contracts/content-manager.d.ts +1 -1
- package/dist/shared/contracts/shared.d.ts +1 -1
- package/package.json +14 -11
- package/dist/_chunks/SettingsPage-B-KzAqT3.mjs +0 -554
- package/dist/_chunks/SettingsPage-B-KzAqT3.mjs.map +0 -1
- package/dist/_chunks/SettingsPage-hyOi94O9.js +0 -573
- package/dist/_chunks/SettingsPage-hyOi94O9.js.map +0 -1
- package/dist/_chunks/de-BOhNX_-5.js +0 -65
- package/dist/_chunks/de-BOhNX_-5.js.map +0 -1
- package/dist/_chunks/de-D80IRBP9.mjs +0 -65
- package/dist/_chunks/de-D80IRBP9.mjs.map +0 -1
- package/dist/_chunks/dk-CJ6Zzz78.mjs +0 -65
- package/dist/_chunks/dk-CJ6Zzz78.mjs.map +0 -1
- package/dist/_chunks/dk-cjXm0p3m.js +0 -65
- package/dist/_chunks/dk-cjXm0p3m.js.map +0 -1
- package/dist/_chunks/en-BTyF7WVW.mjs +0 -80
- package/dist/_chunks/en-BTyF7WVW.mjs.map +0 -1
- package/dist/_chunks/en-UlC0jh2t.js +0 -80
- package/dist/_chunks/en-UlC0jh2t.js.map +0 -1
- package/dist/_chunks/es-V8WnPN7w.mjs +0 -65
- package/dist/_chunks/es-V8WnPN7w.mjs.map +0 -1
- package/dist/_chunks/es-hr9b_HLp.js +0 -65
- package/dist/_chunks/es-hr9b_HLp.js.map +0 -1
- package/dist/_chunks/fr-BFmBbE0H.js +0 -65
- package/dist/_chunks/fr-BFmBbE0H.js.map +0 -1
- package/dist/_chunks/fr-F94noFiV.mjs +0 -65
- package/dist/_chunks/fr-F94noFiV.mjs.map +0 -1
- package/dist/_chunks/index-BcYj5jo9.mjs +0 -1589
- package/dist/_chunks/index-BcYj5jo9.mjs.map +0 -1
- package/dist/_chunks/index-C8NzsAKp.js +0 -1610
- package/dist/_chunks/index-C8NzsAKp.js.map +0 -1
- package/dist/_chunks/ko-C40pNQ9b.js +0 -64
- package/dist/_chunks/ko-C40pNQ9b.js.map +0 -1
- package/dist/_chunks/ko-CF-P3Car.mjs +0 -64
- package/dist/_chunks/ko-CF-P3Car.mjs.map +0 -1
- package/dist/_chunks/pl-Dxr9RUmD.mjs +0 -65
- package/dist/_chunks/pl-Dxr9RUmD.mjs.map +0 -1
- package/dist/_chunks/pl-JtWBy-JQ.js +0 -65
- package/dist/_chunks/pl-JtWBy-JQ.js.map +0 -1
- package/dist/_chunks/ru-B-4sVwXN.mjs +0 -67
- package/dist/_chunks/ru-B-4sVwXN.mjs.map +0 -1
- package/dist/_chunks/ru-COSWt3Nu.js +0 -67
- package/dist/_chunks/ru-COSWt3Nu.js.map +0 -1
- package/dist/_chunks/tr-BVj1O5ch.js +0 -65
- package/dist/_chunks/tr-BVj1O5ch.js.map +0 -1
- package/dist/_chunks/tr-Ccu6Yj11.mjs +0 -65
- package/dist/_chunks/tr-Ccu6Yj11.mjs.map +0 -1
- package/dist/_chunks/zh-BIz395Ms.mjs +0 -65
- package/dist/_chunks/zh-BIz395Ms.mjs.map +0 -1
- package/dist/_chunks/zh-Hans-Bfo6_TCM.mjs +0 -56
- package/dist/_chunks/zh-Hans-Bfo6_TCM.mjs.map +0 -1
- package/dist/_chunks/zh-Hans-DIEm_EMC.js +0 -56
- package/dist/_chunks/zh-Hans-DIEm_EMC.js.map +0 -1
- package/dist/_chunks/zh-wkBPBkhc.js +0 -65
- package/dist/_chunks/zh-wkBPBkhc.js.map +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index-Dch-2xao.js","sources":["../../../admin/src/pluginId.ts","../../../admin/src/utils/getTranslation.ts","../../../admin/src/components/CheckboxConfirmation.tsx","../../../admin/src/utils/fields.ts","../../../admin/src/utils/strings.ts","../../../admin/src/hooks/useI18n.ts","../../../admin/src/services/api.ts","../../../admin/src/services/locales.ts","../../../admin/src/services/relations.ts","../../../admin/src/utils/clean.ts","../../../admin/src/components/BulkLocaleActionModal.tsx","../../../admin/src/components/CMHeaderActions.tsx","../../../admin/src/components/CMListViewModalsAdditionalInformation.tsx","../../../admin/src/components/LocalePicker.tsx","../../../admin/src/constants.ts","../../../admin/src/contentManagerHooks/editView.tsx","../../../admin/src/components/LocaleListCell.tsx","../../../admin/src/contentManagerHooks/listView.tsx","../../../admin/src/contentReleasesHooks/releaseDetailsView.ts","../../../admin/src/middlewares/extendCTBAttributeInitialData.ts","../../../admin/src/middlewares/extendCTBInitialData.ts","../../../admin/src/middlewares/rbac-middleware.ts","../../../admin/src/utils/prefixPluginTranslations.ts","../../../admin/src/utils/schemas.ts","../../../admin/src/index.ts"],"sourcesContent":["export const pluginId = 'i18n';\n","import { pluginId } from '../pluginId';\n\nconst getTranslation = (id: string) => `${pluginId}.${id}`;\n\nexport { getTranslation };\n","import * as React from 'react';\n\nimport { Button, Checkbox, Dialog, Field, Flex, Typography } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nconst TextAlignTypography = styled(Typography)`\n text-align: center;\n`;\n\ninterface IntlMessage extends MessageDescriptor {\n values: object;\n}\n\ninterface CheckboxConfirmationProps {\n description: IntlMessage;\n intlLabel: IntlMessage;\n isCreating?: boolean;\n name: string;\n onChange: (event: { target: { name: string; value: boolean; type: string } }) => void;\n value: boolean;\n}\n\nconst CheckboxConfirmation = ({\n description,\n isCreating = false,\n intlLabel,\n name,\n onChange,\n value,\n}: CheckboxConfirmationProps) => {\n const { formatMessage } = useIntl();\n const [isOpen, setIsOpen] = React.useState(false);\n\n const handleChange = (value: boolean) => {\n if (isCreating || value) {\n return onChange({ target: { name, value, type: 'checkbox' } });\n }\n\n if (!value) {\n return setIsOpen(true);\n }\n\n return null;\n };\n\n const handleConfirm = () => {\n onChange({ target: { name, value: false, type: 'checkbox' } });\n };\n\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n return (\n <Dialog.Root open={isOpen} onOpenChange={setIsOpen}>\n <Field.Root hint={hint} name={name}>\n <Checkbox onCheckedChange={handleChange} checked={value}>\n {label}\n </Checkbox>\n <Field.Hint />\n </Field.Root>\n <Dialog.Content>\n <Dialog.Header>\n {formatMessage({\n id: getTranslation('CheckboxConfirmation.Modal.title'),\n defaultMessage: 'Disable localization',\n })}\n </Dialog.Header>\n <Dialog.Body icon={<WarningCircle />}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <TextAlignTypography>\n {formatMessage({\n id: getTranslation('CheckboxConfirmation.Modal.content'),\n defaultMessage:\n 'Disabling localization will engender the deletion of all your content but the one associated to your default locale (if existing).',\n })}\n </TextAlignTypography>\n </Flex>\n <Flex justifyContent=\"center\">\n <Typography fontWeight=\"semiBold\">\n {formatMessage({\n id: getTranslation('CheckboxConfirmation.Modal.body'),\n defaultMessage: 'Do you want to disable it?',\n })}\n </Typography>\n </Flex>\n </Flex>\n </Dialog.Body>\n <Dialog.Footer>\n <Dialog.Cancel>\n <Button variant=\"tertiary\">\n {formatMessage({\n id: 'components.popUpWarning.button.cancel',\n defaultMessage: 'No, cancel',\n })}\n </Button>\n </Dialog.Cancel>\n <Dialog.Action>\n <Button variant=\"danger-light\" onClick={handleConfirm}>\n {formatMessage({\n id: getTranslation('CheckboxConfirmation.Modal.button-confirm'),\n defaultMessage: 'Yes, disable',\n })}\n </Button>\n </Dialog.Action>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Root>\n );\n};\n\nexport { CheckboxConfirmation };\n","const LOCALIZED_FIELDS = [\n 'biginteger',\n 'boolean',\n 'component',\n 'date',\n 'datetime',\n 'decimal',\n 'dynamiczone',\n 'email',\n 'enumeration',\n 'float',\n 'integer',\n 'json',\n 'media',\n 'number',\n 'password',\n 'richtext',\n 'blocks',\n 'string',\n 'text',\n 'time',\n];\n\nconst doesPluginOptionsHaveI18nLocalized = (\n opts?: object\n): opts is { i18n: { localized: boolean } } =>\n typeof opts === 'object' &&\n opts !== null &&\n 'i18n' in opts &&\n typeof opts.i18n === 'object' &&\n opts.i18n !== null &&\n 'localized' in opts.i18n &&\n typeof opts.i18n.localized === 'boolean';\n\nexport { LOCALIZED_FIELDS, doesPluginOptionsHaveI18nLocalized };\n","const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport { capitalize };\n","import * as React from 'react';\n\nimport { useAuth } from '@strapi/admin/strapi-admin';\nimport { unstable_useDocument as useDocument } from '@strapi/content-manager/strapi-admin';\nimport { useParams } from 'react-router-dom';\n\nimport { doesPluginOptionsHaveI18nLocalized } from '../utils/fields';\nimport { capitalize } from '../utils/strings';\n\ntype UseI18n = () => {\n hasI18n: boolean;\n canCreate: string[];\n canRead: string[];\n canUpdate: string[];\n canDelete: string[];\n canPublish: string[];\n};\n\n/**\n * @alpha\n * @description This hook is used to get the i18n status of a content type.\n * Also returns the CRUDP permission locale properties for the content type\n * so we know which locales the user can perform actions on.\n */\nconst useI18n: UseI18n = () => {\n // Extract the params from the URL to pass to our useDocument hook\n const params = useParams<{ collectionType: string; slug: string; model: string }>();\n\n const userPermissions = useAuth('useI18n', (state) => state.permissions);\n const actions = React.useMemo(() => {\n const permissions = userPermissions.filter((permission) => permission.subject === params.slug);\n\n return permissions.reduce<Omit<ReturnType<UseI18n>, 'hasI18n'>>(\n (acc, permission) => {\n const [actionShorthand] = permission.action.split('.').slice(-1);\n\n return {\n ...acc,\n [`can${capitalize(actionShorthand)}`]: permission.properties?.locales ?? [],\n };\n },\n { canCreate: [], canRead: [], canUpdate: [], canDelete: [], canPublish: [] }\n );\n }, [params.slug, userPermissions]);\n\n // TODO: use specific hook to get schema only\n const { schema } = useDocument(\n {\n // We can non-null assert these because below we skip the query if they are not present\n collectionType: params.collectionType!,\n model: params.slug!,\n },\n {\n skip: true,\n }\n );\n\n if (doesPluginOptionsHaveI18nLocalized(schema?.pluginOptions)) {\n return {\n hasI18n: schema.pluginOptions.i18n.localized,\n ...actions,\n };\n }\n\n return {\n hasI18n: false,\n ...actions,\n };\n};\n\nexport { useI18n };\n","import { adminApi } from '@strapi/admin/strapi-admin';\n\nconst i18nApi = adminApi.enhanceEndpoints({\n addTagTypes: ['Locale'],\n});\n\nexport { i18nApi };\n","import { i18nApi } from './api';\n\nimport type { GetISOLocales } from '../../../shared/contracts/iso-locales';\nimport type {\n GetLocales,\n CreateLocale,\n DeleteLocale,\n UpdateLocale,\n} from '../../../shared/contracts/locales';\n\nconst localesApi = i18nApi.injectEndpoints({\n endpoints: (builder) => ({\n createLocale: builder.mutation<CreateLocale.Response, CreateLocale.Request['body']>({\n query: (data) => ({\n url: '/i18n/locales',\n method: 'POST',\n data,\n }),\n invalidatesTags: [{ type: 'Locale', id: 'LIST' }],\n }),\n deleteLocale: builder.mutation<DeleteLocale.Response, DeleteLocale.Params['id']>({\n query: (id) => ({\n url: `/i18n/locales/${id}`,\n method: 'DELETE',\n }),\n invalidatesTags: (result, error, id) => [{ type: 'Locale', id }],\n }),\n getLocales: builder.query<GetLocales.Response, void>({\n query: () => '/i18n/locales',\n providesTags: (res) => [\n { type: 'Locale', id: 'LIST' },\n ...(Array.isArray(res)\n ? res.map((locale) => ({\n type: 'Locale' as const,\n id: locale.id,\n }))\n : []),\n ],\n }),\n getDefaultLocales: builder.query<GetISOLocales.Response, void>({\n query: () => '/i18n/iso-locales',\n }),\n updateLocale: builder.mutation<\n UpdateLocale.Response,\n UpdateLocale.Request['body'] & UpdateLocale.Params\n >({\n query: ({ id, ...data }) => ({\n url: `/i18n/locales/${id}`,\n method: 'PUT',\n data,\n }),\n invalidatesTags: (result, error, { id }) => [{ type: 'Locale', id }],\n }),\n }),\n});\n\nconst {\n useCreateLocaleMutation,\n useDeleteLocaleMutation,\n useGetLocalesQuery,\n useGetDefaultLocalesQuery,\n useUpdateLocaleMutation,\n} = localesApi;\n\nexport {\n useCreateLocaleMutation,\n useDeleteLocaleMutation,\n useGetLocalesQuery,\n useGetDefaultLocalesQuery,\n useUpdateLocaleMutation,\n};\n","import { i18nApi } from './api';\n\nimport type { CountManyEntriesDraftRelations } from '../../../shared/contracts/content-manager';\n\nconst relationsApi = i18nApi.injectEndpoints({\n overrideExisting: true,\n endpoints: (builder) => ({\n getManyDraftRelationCount: builder.query<\n CountManyEntriesDraftRelations.Response['data'],\n CountManyEntriesDraftRelations.Request['query'] & {\n model: string;\n }\n >({\n query: ({ model, ...params }) => ({\n url: `/content-manager/collection-types/${model}/actions/countManyEntriesDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (response: CountManyEntriesDraftRelations.Response) => response.data,\n }),\n }),\n});\n\nconst { useGetManyDraftRelationCountQuery } = relationsApi;\n\nexport { useGetManyDraftRelationCountQuery };\n","import type { Schema } from '@strapi/types';\n\ntype Data = Record<keyof Schema.ContentType['attributes'], any>;\n\nconst cleanData = (\n data: Data,\n schema: Schema.ContentType,\n components: Record<string, Schema.Component>\n) => {\n const cleanedData = removeFields(data, [\n 'createdAt',\n 'createdBy',\n 'updatedAt',\n 'updatedBy',\n 'id',\n 'documentId',\n 'publishedAt',\n 'strapi_stage',\n 'strapi_assignee',\n 'locale',\n 'status',\n ]);\n\n const cleanedDataWithoutPasswordAndRelation = recursiveRemoveFieldTypes(\n cleanedData,\n schema,\n components,\n ['relation', 'password']\n );\n\n return cleanedDataWithoutPasswordAndRelation;\n};\n\nconst removeFields = (data: Data, fields: Array<keyof Schema.ContentType['attributes']>) => {\n return Object.keys(data).reduce((acc, current) => {\n if (fields.includes(current)) {\n return acc;\n }\n acc[current] = data[current];\n return acc;\n }, {} as Data);\n};\n\nconst recursiveRemoveFieldTypes = (\n data: Data,\n schema: Schema.Schema,\n components: Record<string, Schema.Component>,\n fields: Array<keyof Schema.ContentType['attributes']>\n) => {\n return Object.keys(data).reduce((acc, current) => {\n const attribute = schema.attributes[current] ?? { type: undefined };\n\n if (fields.includes(attribute.type)) {\n return acc;\n }\n\n if (attribute.type === 'dynamiczone') {\n acc[current] = data[current].map((componentValue: any, index: number) => {\n const { id: _, ...rest } = recursiveRemoveFieldTypes(\n componentValue,\n components[componentValue.__component],\n components,\n fields\n );\n\n return {\n ...rest,\n __temp_key__: index + 1,\n };\n });\n } else if (attribute.type === 'component') {\n const { repeatable, component } = attribute;\n\n if (repeatable) {\n acc[current] = (data[current] ?? []).map((compoData: any, index: number) => {\n const { id: _, ...rest } = recursiveRemoveFieldTypes(\n compoData,\n components[component],\n components,\n fields\n );\n\n return {\n ...rest,\n __temp_key__: index + 1,\n };\n });\n } else {\n const { id: _, ...rest } = recursiveRemoveFieldTypes(\n data[current] ?? {},\n components[component],\n components,\n fields\n );\n\n acc[current] = rest;\n }\n } else {\n acc[current] = data[current];\n }\n\n return acc;\n }, {} as any);\n};\n\nexport { cleanData };\n","import * as React from 'react';\n\nimport { FormErrors, Table, useTable } from '@strapi/admin/strapi-admin';\nimport { Box, Typography, IconButton, Flex, Tooltip, Status, Modal } from '@strapi/design-system';\nimport { Pencil, CheckCircle, CrossCircle, ArrowsCounterClockwise } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { type MessageDescriptor, useIntl, PrimitiveType } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { Locale } from '../../../shared/contracts/locales';\nimport { getTranslation } from '../utils/getTranslation';\nimport { capitalize } from '../utils/strings';\n\nimport { LocaleStatus } from './CMHeaderActions';\n\nimport type { Modules } from '@strapi/types';\n\ntype Status = Modules.Documents.Params.PublicationStatus.Kind | 'modified';\n\n/* -------------------------------------------------------------------------------------------------\n * EntryValidationText\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EntryValidationTextProps {\n status: Status;\n validationErrors: FormErrors[string] | null;\n action: 'bulk-publish' | 'bulk-unpublish';\n}\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\nconst isErrorMessageDescriptor = (object?: string | object): object is TranslationMessage => {\n return (\n typeof object === 'object' && object !== null && 'id' in object && 'defaultMessage' in object\n );\n};\n\nconst EntryValidationText = ({\n status = 'draft',\n validationErrors,\n action,\n}: EntryValidationTextProps) => {\n const { formatMessage } = useIntl();\n\n /**\n * TODO: Should this be extracted an made into a factory to recursively get\n * error messages??\n */\n const getErrorStr = (key: string, value?: FormErrors[string]): string => {\n if (typeof value === 'string') {\n return `${key}: ${value}`;\n } else if (isErrorMessageDescriptor(value)) {\n return `${key}: ${formatMessage(value)}`;\n } else if (Array.isArray(value)) {\n return value.map((v) => getErrorStr(key, v)).join(' ');\n } else if (typeof value === 'object' && !Array.isArray(value)) {\n return Object.entries(value)\n .map(([k, v]) => getErrorStr(k, v))\n .join(' ');\n } else {\n /**\n * unlikely to happen, but we need to return something\n */\n return '';\n }\n };\n\n if (validationErrors) {\n const validationErrorsMessages = Object.entries(validationErrors)\n .map(([key, value]) => {\n return getErrorStr(key, value);\n })\n .join(' ');\n\n return (\n <Flex gap={2}>\n <CrossCircle fill=\"danger600\" />\n <Tooltip label={validationErrorsMessages}>\n <Typography\n maxWidth={'30rem'}\n textColor=\"danger600\"\n variant=\"omega\"\n fontWeight=\"semiBold\"\n ellipsis\n >\n {validationErrorsMessages}\n </Typography>\n </Tooltip>\n </Flex>\n );\n }\n\n const getStatusMessage = () => {\n if (action === 'bulk-publish') {\n if (status === 'published') {\n return {\n icon: <CheckCircle fill=\"success600\" />,\n text: formatMessage({\n id: 'content-manager.bulk-publish.already-published',\n defaultMessage: 'Already Published',\n }),\n textColor: 'success600',\n fontWeight: 'bold',\n };\n } else if (status === 'modified') {\n return {\n icon: <ArrowsCounterClockwise fill=\"alternative600\" />,\n text: formatMessage({\n id: 'app.utils.ready-to-publish-changes',\n defaultMessage: 'Ready to publish changes',\n }),\n };\n } else {\n return {\n icon: <CheckCircle fill=\"success600\" />,\n text: formatMessage({\n id: 'app.utils.ready-to-publish',\n defaultMessage: 'Ready to publish',\n }),\n };\n }\n } else {\n if (status === 'draft') {\n return {\n icon: <CheckCircle fill=\"success600\" />,\n text: formatMessage({\n id: 'content-manager.bulk-unpublish.already-unpublished',\n defaultMessage: 'Already Unpublished',\n }),\n textColor: 'success600',\n fontWeight: 'bold',\n };\n } else {\n return {\n icon: <CheckCircle fill=\"success600\" />,\n text: formatMessage({\n id: 'app.utils.ready-to-unpublish-changes',\n defaultMessage: 'Ready to unpublish',\n }),\n textColor: 'success600',\n fontWeight: 'bold',\n };\n }\n }\n };\n\n const { icon, text, textColor = 'success600', fontWeight = 'normal' } = getStatusMessage();\n\n return (\n <Flex gap={2}>\n {icon}\n <Typography textColor={textColor} fontWeight={fontWeight}>\n {text}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BoldChunk\n * -----------------------------------------------------------------------------------------------*/\n\nconst BoldChunk = (chunks: React.ReactNode) => <Typography fontWeight=\"bold\">{chunks}</Typography>;\n\n/* -------------------------------------------------------------------------------------------------\n * BulkLocaleActionModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BulkLocaleActionModalProps {\n rows: LocaleStatus[];\n headers: {\n label: string;\n name: string;\n }[];\n localesMetadata: Locale[];\n validationErrors?: FormErrors;\n action: 'bulk-publish' | 'bulk-unpublish';\n}\n\nconst BulkLocaleActionModal = ({\n headers,\n rows,\n localesMetadata,\n validationErrors = {},\n action,\n}: BulkLocaleActionModalProps) => {\n const { formatMessage } = useIntl();\n\n const selectedRows = useTable<LocaleStatus[]>(\n 'BulkLocaleActionModal',\n (state) => state.selectedRows\n );\n\n const getFormattedCountMessage = () => {\n const currentStatusByLocale = rows.reduce<Record<string, string>>((acc, { locale, status }) => {\n acc[locale] = status;\n return acc;\n }, {});\n const localesWithErrors = Object.keys(validationErrors);\n\n const publishedCount = selectedRows.filter(\n ({ locale }) => currentStatusByLocale[locale] === 'published'\n ).length;\n\n const draftCount = selectedRows.filter(\n ({ locale }) =>\n (currentStatusByLocale[locale] === 'draft' ||\n currentStatusByLocale[locale] === 'modified') &&\n !localesWithErrors.includes(locale)\n ).length;\n\n const withErrorsCount = localesWithErrors.length;\n const messageId =\n action === 'bulk-publish'\n ? 'content-manager.containers.list.selectedEntriesModal.selectedCount.publish'\n : 'content-manager.containers.list.selectedEntriesModal.selectedCount.unpublish';\n\n const defaultMessage =\n action === 'bulk-publish'\n ? '<b>{publishedCount}</b> {publishedCount, plural, =0 {entries} one {entry} other {entries}} already published. <b>{draftCount}</b> {draftCount, plural, =0 {entries} one {entry} other {entries}} ready to publish. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action.'\n : '<b>{draftCount}</b> {draftCount, plural, =0 {entries} one {entry} other {entries}} already unpublished. <b>{publishedCount}</b> {publishedCount, plural, =0 {entries} one {entry} other {entries}} ready to unpublish.';\n\n return formatMessage(\n {\n id: messageId,\n defaultMessage,\n },\n {\n withErrorsCount,\n draftCount,\n publishedCount,\n b: BoldChunk,\n }\n );\n };\n\n return (\n <Modal.Body>\n <Typography>{getFormattedCountMessage()}</Typography>\n <Box marginTop={5}>\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {headers.map((head) => (\n <Table.HeaderCell key={head.name} {...head} />\n ))}\n </Table.Head>\n <Table.Body>\n {rows.map(({ locale, status }, index) => {\n const error = validationErrors?.[locale] ?? null;\n\n const statusVariant =\n status === 'draft' ? 'primary' : status === 'published' ? 'success' : 'alternative';\n\n return (\n <Table.Row key={index}>\n <Table.CheckboxCell id={locale} aria-label={`Select ${locale}`} />\n <Table.Cell>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {Array.isArray(localesMetadata)\n ? localesMetadata.find((localeEntry) => localeEntry.code === locale)?.name\n : locale}\n </Typography>\n </Table.Cell>\n <Table.Cell>\n <Box display=\"flex\">\n <Status\n display=\"flex\"\n paddingLeft=\"6px\"\n paddingRight=\"6px\"\n paddingTop=\"2px\"\n paddingBottom=\"2px\"\n size={'S'}\n variant={statusVariant}\n >\n <Typography tag=\"span\" variant=\"pi\" fontWeight=\"bold\">\n {capitalize(status)}\n </Typography>\n </Status>\n </Box>\n </Table.Cell>\n <Table.Cell>\n <EntryValidationText validationErrors={error} status={status} action={action} />\n </Table.Cell>\n <Table.Cell>\n <IconButton\n tag={Link}\n to={{\n search: stringify({ plugins: { i18n: { locale } } }),\n }}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: locale,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Table.Cell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Box>\n </Modal.Body>\n );\n};\n\nexport { BulkLocaleActionModal };\nexport type { BulkLocaleActionModalProps };\n","import * as React from 'react';\n\nimport { skipToken } from '@reduxjs/toolkit/query';\nimport {\n useNotification,\n useQueryParams,\n Table,\n useAPIErrorHandler,\n FormErrors,\n useForm,\n} from '@strapi/admin/strapi-admin';\nimport {\n type DocumentActionComponent,\n type DocumentActionProps,\n unstable_useDocument as useDocument,\n unstable_useDocumentActions as useDocumentActions,\n buildValidParams,\n HeaderActionProps,\n} from '@strapi/content-manager/strapi-admin';\nimport {\n Flex,\n Status,\n Typography,\n Button,\n Modal,\n Field,\n SingleSelect,\n SingleSelectOption,\n Dialog,\n type StatusVariant,\n} from '@strapi/design-system';\nimport { WarningCircle, ListPlus, Trash, Download, Cross, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useI18n } from '../hooks/useI18n';\nimport { useGetLocalesQuery } from '../services/locales';\nimport { useGetManyDraftRelationCountQuery } from '../services/relations';\nimport { cleanData } from '../utils/clean';\nimport { getTranslation } from '../utils/getTranslation';\nimport { capitalize } from '../utils/strings';\n\nimport { BulkLocaleActionModal } from './BulkLocaleActionModal';\n\nimport type { Locale } from '../../../shared/contracts/locales';\nimport type { I18nBaseQuery } from '../types';\nimport type { Modules } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * LocalePickerAction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LocaleOptionProps {\n isDraftAndPublishEnabled: boolean;\n locale: Locale;\n status: 'draft' | 'published' | 'modified';\n entryExists: boolean;\n}\n\nconst statusVariants: Record<LocaleOptionProps['status'], StatusVariant> = {\n draft: 'secondary',\n published: 'success',\n modified: 'alternative',\n};\n\nconst LocaleOption = ({\n isDraftAndPublishEnabled,\n locale,\n status,\n entryExists,\n}: LocaleOptionProps) => {\n const { formatMessage } = useIntl();\n\n if (!entryExists) {\n return formatMessage(\n {\n id: getTranslation('CMEditViewLocalePicker.locale.create'),\n defaultMessage: 'Create <bold>{locale}</bold> locale',\n },\n {\n bold: (locale: React.ReactNode) => <b>{locale}</b>,\n locale: locale.name,\n }\n );\n }\n\n return (\n <Flex width=\"100%\" gap={1} justifyContent=\"space-between\">\n <Typography>{locale.name}</Typography>\n {isDraftAndPublishEnabled ? (\n <Status\n display=\"flex\"\n paddingLeft=\"6px\"\n paddingRight=\"6px\"\n paddingTop=\"2px\"\n paddingBottom=\"2px\"\n size=\"S\"\n variant={statusVariants[status]}\n >\n <Typography tag=\"span\" variant=\"pi\" fontWeight=\"bold\">\n {capitalize(status)}\n </Typography>\n </Status>\n ) : null}\n </Flex>\n );\n};\n\nconst LocalePickerAction = ({\n document,\n meta,\n model,\n collectionType,\n documentId,\n}: HeaderActionProps) => {\n const { formatMessage } = useIntl();\n const [{ query }, setQuery] = useQueryParams<I18nBaseQuery>();\n const { hasI18n, canCreate, canRead } = useI18n();\n const { data: locales = [] } = useGetLocalesQuery();\n const currentDesiredLocale = query.plugins?.i18n?.locale;\n const { schema } = useDocument({\n model,\n collectionType,\n documentId,\n params: { locale: currentDesiredLocale },\n });\n\n const handleSelect = React.useCallback(\n (value: string) => {\n setQuery({\n plugins: {\n ...query.plugins,\n i18n: {\n locale: value,\n },\n },\n });\n },\n [query.plugins, setQuery]\n );\n\n React.useEffect(() => {\n if (!Array.isArray(locales) || !hasI18n) {\n return;\n }\n /**\n * Handle the case where the current locale query param doesn't exist\n * in the list of available locales, so we redirect to the default locale.\n */\n const doesLocaleExist = locales.find((loc) => loc.code === currentDesiredLocale);\n const defaultLocale = locales.find((locale) => locale.isDefault);\n if (!doesLocaleExist && defaultLocale?.code) {\n handleSelect(defaultLocale.code);\n }\n }, [handleSelect, hasI18n, locales, currentDesiredLocale]);\n\n const currentLocale = Array.isArray(locales)\n ? locales.find((locale) => locale.code === currentDesiredLocale)\n : undefined;\n\n const allCurrentLocales = [\n { status: getDocumentStatus(document, meta), locale: currentLocale?.code },\n ...(document?.localizations ?? []),\n ];\n\n if (!hasI18n || !Array.isArray(locales) || locales.length === 0) {\n return null;\n }\n\n const displayedLocales = locales.filter((locale) => {\n /**\n * If you can read we allow you to see the locale exists\n * otherwise the locale is hidden.\n */\n return canRead.includes(locale.code);\n });\n\n return {\n label: formatMessage({\n id: getTranslation('Settings.locales.modal.locales.label'),\n defaultMessage: 'Locales',\n }),\n options: displayedLocales.map((locale) => {\n const entryWithLocaleExists = allCurrentLocales.some((doc) => doc.locale === locale.code);\n\n const currentLocaleDoc = allCurrentLocales.find((doc) =>\n 'locale' in doc ? doc.locale === locale.code : false\n );\n\n const permissionsToCheck = currentLocaleDoc ? canRead : canCreate;\n\n return {\n disabled: !permissionsToCheck.includes(locale.code),\n value: locale.code,\n label: (\n <LocaleOption\n isDraftAndPublishEnabled={!!schema?.options?.draftAndPublish}\n locale={locale}\n status={currentLocaleDoc?.status}\n entryExists={entryWithLocaleExists}\n />\n ),\n startIcon: !entryWithLocaleExists ? <Plus /> : null,\n };\n }),\n customizeContent: () => currentLocale?.name,\n onSelect: handleSelect,\n value: currentLocale,\n };\n};\n\ntype UseDocument = typeof useDocument;\n\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FillFromAnotherLocaleAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst FillFromAnotherLocaleAction = ({\n documentId,\n meta,\n model,\n collectionType,\n}: HeaderActionProps) => {\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams<I18nBaseQuery>();\n const { hasI18n } = useI18n();\n const currentDesiredLocale = query.plugins?.i18n?.locale;\n const [localeSelected, setLocaleSelected] = React.useState<string | null>(null);\n const setValues = useForm('FillFromAnotherLocale', (state) => state.setValues);\n\n const { getDocument } = useDocumentActions();\n const { schema, components } = useDocument({\n model,\n documentId,\n collectionType,\n params: { locale: currentDesiredLocale },\n });\n const { data: locales = [] } = useGetLocalesQuery();\n\n const availableLocales = Array.isArray(locales)\n ? locales.filter((locale) => meta?.availableLocales.some((l) => l.locale === locale.code))\n : [];\n\n const fillFromLocale = (onClose: () => void) => async () => {\n const response = await getDocument({\n collectionType,\n model,\n documentId,\n params: { locale: localeSelected },\n });\n if (!response || !schema) {\n return;\n }\n\n const { data } = response;\n\n const cleanedData = cleanData(data, schema, components);\n\n setValues(cleanedData);\n\n onClose();\n };\n\n if (!hasI18n) {\n return null;\n }\n\n return {\n type: 'icon',\n icon: <Download />,\n disabled: availableLocales.length === 0,\n label: formatMessage({\n id: getTranslation('CMEditViewCopyLocale.copy-text'),\n defaultMessage: 'Fill in from another locale',\n }),\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: getTranslation('CMEditViewCopyLocale.dialog.title'),\n defaultMessage: 'Confirmation',\n }),\n content: ({ onClose }: { onClose: () => void }) => (\n <>\n <Dialog.Body>\n <Flex direction=\"column\" gap={3}>\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n <Typography textAlign=\"center\">\n {formatMessage({\n id: getTranslation('CMEditViewCopyLocale.dialog.body'),\n defaultMessage:\n 'Your current content will be erased and filled by the content of the selected locale:',\n })}\n </Typography>\n <Field.Root width=\"100%\">\n <Field.Label>\n {formatMessage({\n id: getTranslation('CMEditViewCopyLocale.dialog.field.label'),\n defaultMessage: 'Locale',\n })}\n </Field.Label>\n <SingleSelect\n value={localeSelected}\n placeholder={formatMessage({\n id: getTranslation('CMEditViewCopyLocale.dialog.field.placeholder'),\n defaultMessage: 'Select one locale...',\n })}\n // @ts-expect-error – the DS will handle numbers, but we're not allowing the API.\n onChange={(value) => setLocaleSelected(value)}\n >\n {availableLocales.map((locale) => (\n <SingleSelectOption key={locale.code} value={locale.code}>\n {locale.name}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n </Flex>\n </Dialog.Body>\n <Dialog.Footer>\n <Flex gap={2} width=\"100%\">\n <Button flex=\"auto\" variant=\"tertiary\" onClick={onClose}>\n {formatMessage({\n id: getTranslation('CMEditViewCopyLocale.cancel-text'),\n defaultMessage: 'No, cancel',\n })}\n </Button>\n <Button flex=\"auto\" variant=\"success\" onClick={fillFromLocale(onClose)}>\n {formatMessage({\n id: getTranslation('CMEditViewCopyLocale.submit-text'),\n defaultMessage: 'Yes, fill in',\n })}\n </Button>\n </Flex>\n </Dialog.Footer>\n </>\n ),\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteLocaleAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst DeleteLocaleAction: DocumentActionComponent = ({\n document,\n documentId,\n model,\n collectionType,\n}) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { delete: deleteAction } = useDocumentActions();\n const { hasI18n, canDelete } = useI18n();\n\n // Get the current locale object, using the URL instead of document so it works while creating\n const [{ query }] = useQueryParams<I18nBaseQuery>();\n const { data: locales = [] } = useGetLocalesQuery();\n const currentDesiredLocale = query.plugins?.i18n?.locale;\n const locale = !('error' in locales) && locales.find((loc) => loc.code === currentDesiredLocale);\n\n if (!hasI18n) {\n return null;\n }\n\n return {\n disabled:\n (document?.locale && !canDelete.includes(document.locale)) || !document || !document.id,\n position: ['header', 'table-row'],\n label: formatMessage(\n {\n id: getTranslation('actions.delete.label'),\n defaultMessage: 'Delete entry ({locale})',\n },\n { locale: locale && locale.name }\n ),\n icon: <StyledTrash />,\n variant: 'danger',\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: getTranslation('actions.delete.dialog.title'),\n defaultMessage: 'Confirmation',\n }),\n content: (\n <Flex direction=\"column\" gap={2}>\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n <Typography tag=\"p\" variant=\"omega\" textAlign=\"center\">\n {formatMessage({\n id: getTranslation('actions.delete.dialog.body'),\n defaultMessage: 'Are you sure?',\n })}\n </Typography>\n </Flex>\n ),\n onConfirm: async () => {\n const unableToDelete =\n // We are unable to delete a collection type without a document ID\n // & unable to delete generally if there is no document locale\n (collectionType !== 'single-types' && !documentId) || !document?.locale;\n\n if (unableToDelete) {\n console.error(\n \"You're trying to delete a document without an id or locale, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: getTranslation('actions.delete.error'),\n defaultMessage: 'An error occurred while trying to delete the document locale.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n const res = await deleteAction({\n documentId,\n model,\n collectionType,\n params: { locale: document.locale },\n });\n\n if (!('error' in res)) {\n navigate({ pathname: `../${collectionType}/${model}` }, { replace: true });\n }\n },\n },\n };\n};\n\nexport type LocaleStatus = {\n locale: string;\n status: Modules.Documents.Params.PublicationStatus.Kind | 'modified';\n};\n\ninterface ExtendedDocumentActionProps extends DocumentActionProps {\n action?: 'bulk-publish' | 'bulk-unpublish';\n}\n\n/* -------------------------------------------------------------------------------------------------\n * BulkLocaleAction\n *\n * This component is used to handle bulk publish and unpublish actions on locales.\n * -----------------------------------------------------------------------------------------------*/\n\nconst BulkLocaleAction: DocumentActionComponent = ({\n document,\n documentId,\n model,\n collectionType,\n action,\n}: ExtendedDocumentActionProps) => {\n const locale = document?.locale ?? null;\n const [{ query }] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const isOnPublishedTab = query.status === 'published';\n\n const { formatMessage } = useIntl();\n const { hasI18n, canPublish } = useI18n();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [selectedRows, setSelectedRows] = React.useState<any[]>([]);\n const [isDraftRelationConfirmationOpen, setIsDraftRelationConfirmationOpen] =\n React.useState<boolean>(false);\n\n const { publishMany: publishManyAction, unpublishMany: unpublishManyAction } =\n useDocumentActions();\n\n const { schema, validate } = useDocument(\n {\n model,\n collectionType,\n documentId,\n params: {\n locale,\n },\n },\n {\n // No need to fetch the document, the data is already available in the `document` prop\n skip: true,\n }\n );\n\n const { data: localesMetadata = [] } = useGetLocalesQuery(hasI18n ? undefined : skipToken);\n\n const headers = [\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n },\n {\n label: formatMessage({\n id: getTranslation('CMEditViewBulkLocale.status'),\n defaultMessage: 'Status',\n }),\n name: 'status',\n },\n {\n label: formatMessage({\n id: getTranslation('CMEditViewBulkLocale.publication-status'),\n defaultMessage: 'Publication Status',\n }),\n name: 'publication-status',\n },\n ];\n\n // Extract the rows for the bulk locale publish modal and any validation\n // errors per locale\n const [rows, validationErrors] = React.useMemo(() => {\n if (!document) {\n return [[], {}];\n }\n\n const localizations = document.localizations ?? [];\n\n // Build the rows for the bulk locale publish modal by combining the current\n // document with all the available locales from the document meta\n const locales: LocaleStatus[] = localizations.map((doc: any) => {\n const { locale, status } = doc;\n return { locale, status };\n });\n\n // Add the current document locale\n locales.unshift({\n locale: document.locale,\n status: document.status,\n });\n\n // Build the validation errors for each locale.\n const allDocuments = [document, ...localizations];\n const errors = allDocuments.reduce<FormErrors>((errs, document) => {\n if (!document) {\n return errs;\n }\n\n // Validate each locale entry via the useDocument validate function and store any errors in a dictionary\n const validation = validate(document as Modules.Documents.AnyDocument);\n if (validation !== null) {\n errs[document.locale] = validation;\n }\n return errs;\n }, {});\n\n return [locales, errors];\n }, [document, validate]);\n\n const isBulkPublish = action === 'bulk-publish';\n const localesForAction = selectedRows.reduce((acc: string[], selectedRow: LocaleStatus) => {\n const isValidLocale =\n // Validation errors are irrelevant if we are trying to unpublish\n !isBulkPublish || !Object.keys(validationErrors).includes(selectedRow.locale);\n\n const shouldAddLocale = isBulkPublish\n ? selectedRow.status !== 'published' && isValidLocale\n : selectedRow.status !== 'draft' && isValidLocale;\n\n if (shouldAddLocale) {\n acc.push(selectedRow.locale);\n }\n\n return acc;\n }, []);\n\n // TODO skipping this for now as there is a bug with the draft relation count that will be worked on separately\n // see https://www.notion.so/strapi/Count-draft-relations-56901b492efb45ab90d42fe975b32bd8?pvs=4\n const enableDraftRelationsCount = false;\n const {\n data: draftRelationsCount = 0,\n isLoading: isDraftRelationsLoading,\n error: isDraftRelationsError,\n } = useGetManyDraftRelationCountQuery(\n {\n model,\n documentIds: [documentId!],\n locale: localesForAction,\n },\n {\n skip: !enableDraftRelationsCount || !documentId || localesForAction.length === 0,\n }\n );\n\n React.useEffect(() => {\n if (isDraftRelationsError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(isDraftRelationsError),\n });\n }\n }, [isDraftRelationsError, toggleNotification, formatAPIError]);\n\n if (!schema?.options?.draftAndPublish) {\n return null;\n }\n\n if (!hasI18n) {\n return null;\n }\n\n if (!documentId) {\n return null;\n }\n\n // This document action can be enabled given that draft and publish and i18n are\n // enabled and we can publish the current locale.\n\n const publish = async () => {\n await publishManyAction({\n model,\n documentIds: [documentId],\n params: {\n ...params,\n locale: localesForAction,\n },\n });\n\n setSelectedRows([]);\n };\n\n const unpublish = async () => {\n await unpublishManyAction({\n model,\n documentIds: [documentId],\n params: {\n ...params,\n locale: localesForAction,\n },\n });\n\n setSelectedRows([]);\n };\n\n const handleAction = async () => {\n if (draftRelationsCount > 0) {\n setIsDraftRelationConfirmationOpen(true);\n } else if (isBulkPublish) {\n await publish();\n } else {\n await unpublish();\n }\n };\n\n if (isDraftRelationConfirmationOpen) {\n return {\n label: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n variant: 'danger',\n dialog: {\n onCancel: () => {\n setIsDraftRelationConfirmationOpen(false);\n },\n onConfirm: async () => {\n await publish();\n\n setIsDraftRelationConfirmationOpen(false);\n },\n type: 'dialog',\n title: formatMessage({\n id: getTranslation('actions.publish.dialog.title'),\n defaultMessage: 'Confirmation',\n }),\n content: (\n <Flex direction=\"column\" alignItems=\"center\" gap={2}>\n <WarningCircle width=\"2.4rem\" height=\"2.4rem\" fill=\"danger600\" />\n <Typography textAlign=\"center\">\n {formatMessage({\n id: getTranslation('CMEditViewBulkLocale.draft-relation-warning'),\n defaultMessage:\n 'Some locales are related to draft entries. Publishing them could leave broken links in your app.',\n })}\n </Typography>\n <Typography textAlign=\"center\">\n {formatMessage({\n id: getTranslation('CMEditViewBulkLocale.continue-confirmation'),\n defaultMessage: 'Are you sure you want to continue?',\n })}\n </Typography>\n </Flex>\n ),\n },\n };\n }\n\n const hasPermission = selectedRows\n .map(({ locale }) => locale)\n .every((locale) => canPublish.includes(locale));\n\n return {\n label: formatMessage({\n id: getTranslation(`CMEditViewBulkLocale.${isBulkPublish ? 'publish' : 'unpublish'}-title`),\n defaultMessage: `${isBulkPublish ? 'Publish' : 'Unpublish'} Multiple Locales`,\n }),\n variant: isBulkPublish ? 'secondary' : 'danger',\n icon: isBulkPublish ? <ListPlus /> : <Cross />,\n disabled: isOnPublishedTab || canPublish.length === 0,\n position: ['panel'],\n dialog: {\n type: 'modal',\n title: formatMessage({\n id: getTranslation(`CMEditViewBulkLocale.${isBulkPublish ? 'publish' : 'unpublish'}-title`),\n defaultMessage: `${isBulkPublish ? 'Publish' : 'Unpublish'} Multiple Locales`,\n }),\n content: () => {\n return (\n <Table.Root\n headers={headers}\n rows={rows.map((row) => ({\n ...row,\n id: row.locale,\n }))}\n selectedRows={selectedRows}\n onSelectedRowsChange={(tableSelectedRows) => setSelectedRows(tableSelectedRows)}\n >\n <BulkLocaleActionModal\n validationErrors={validationErrors}\n headers={headers}\n rows={rows}\n localesMetadata={localesMetadata as Locale[]}\n action={action ?? 'bulk-publish'}\n />\n </Table.Root>\n );\n },\n footer: () => (\n <Modal.Footer justifyContent=\"flex-end\">\n <Button\n loading={isDraftRelationsLoading}\n disabled={!hasPermission || localesForAction.length === 0}\n variant=\"default\"\n onClick={handleAction}\n >\n {formatMessage({\n id: isBulkPublish ? 'app.utils.publish' : 'app.utils.unpublish',\n defaultMessage: isBulkPublish ? 'Publish' : 'Unpublish',\n })}\n </Button>\n </Modal.Footer>\n ),\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BulkLocalePublishAction\n * -----------------------------------------------------------------------------------------------*/\nconst BulkLocalePublishAction: DocumentActionComponent = (props: ExtendedDocumentActionProps) => {\n return BulkLocaleAction({ action: 'bulk-publish', ...props });\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BulkLocaleUnpublishAction\n * -----------------------------------------------------------------------------------------------*/\nconst BulkLocaleUnpublishAction: DocumentActionComponent = (props: ExtendedDocumentActionProps) => {\n return BulkLocaleAction({ action: 'bulk-unpublish', ...props });\n};\n\n/**\n * Because the icon system is completely broken, we have to do\n * this to remove the fill from the cog.\n */\nconst StyledTrash = styled(Trash)`\n path {\n fill: currentColor;\n }\n`;\n\nexport {\n BulkLocalePublishAction,\n BulkLocaleUnpublishAction,\n DeleteLocaleAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n};\n","import * as React from 'react';\n\nimport { Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useI18n } from '../hooks/useI18n';\nimport { getTranslation } from '../utils/getTranslation';\n\nconst Emphasis = (chunks: React.ReactNode) => {\n return (\n <Typography fontWeight=\"semiBold\" textColor=\"danger500\">\n {chunks}\n </Typography>\n );\n};\n\nconst DeleteModalAdditionalInfo = () => {\n const { hasI18n } = useI18n();\n const { formatMessage } = useIntl();\n\n if (!hasI18n) {\n return null;\n }\n\n return (\n <Typography textColor=\"danger500\">\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.deleteAdditionalInfos'),\n defaultMessage:\n 'This will delete the active locale versions <em>(from Internationalization)</em>',\n },\n {\n em: Emphasis,\n }\n )}\n </Typography>\n );\n};\n\nconst PublishModalAdditionalInfo = () => {\n const { hasI18n } = useI18n();\n const { formatMessage } = useIntl();\n\n if (!hasI18n) {\n return null;\n }\n\n return (\n <Typography textColor=\"danger500\">\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.publishAdditionalInfos'),\n defaultMessage:\n 'This will publish the active locale versions <em>(from Internationalization)</em>',\n },\n {\n em: Emphasis,\n }\n )}\n </Typography>\n );\n};\n\nconst UnpublishModalAdditionalInfo = () => {\n const { hasI18n } = useI18n();\n const { formatMessage } = useIntl();\n\n if (!hasI18n) {\n return null;\n }\n\n return (\n <Typography textColor=\"danger500\">\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.unpublishAdditionalInfos'),\n defaultMessage:\n 'This will unpublish the active locale versions <em>(from Internationalization)</em>',\n },\n {\n em: Emphasis,\n }\n )}\n </Typography>\n );\n};\n\nexport { DeleteModalAdditionalInfo, PublishModalAdditionalInfo, UnpublishModalAdditionalInfo };\n","import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport { SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useI18n } from '../hooks/useI18n';\nimport { useGetLocalesQuery } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport type { I18nBaseQuery } from '../types';\n\ninterface Query extends I18nBaseQuery {\n page?: number;\n}\n\nconst LocalePicker = () => {\n const { formatMessage } = useIntl();\n const [{ query }, setQuery] = useQueryParams<Query>();\n\n const { hasI18n, canRead, canCreate } = useI18n();\n const { data: locales = [] } = useGetLocalesQuery(undefined, {\n skip: !hasI18n,\n });\n\n const handleChange = React.useCallback(\n (code: string, replace = false) => {\n setQuery(\n {\n page: 1,\n plugins: { ...query.plugins, i18n: { locale: code } },\n },\n 'push',\n replace\n );\n },\n [query.plugins, setQuery]\n );\n\n React.useEffect(() => {\n if (!Array.isArray(locales) || !hasI18n) {\n return;\n }\n /**\n * Handle the case where the current locale query param doesn't exist\n * in the list of available locales, so we redirect to the default locale.\n */\n const currentDesiredLocale = query.plugins?.i18n?.locale;\n const doesLocaleExist = locales.find((loc) => loc.code === currentDesiredLocale);\n const defaultLocale = locales.find((locale) => locale.isDefault);\n if (!doesLocaleExist && defaultLocale?.code) {\n handleChange(defaultLocale.code, true);\n }\n }, [hasI18n, handleChange, locales, query.plugins?.i18n?.locale]);\n\n if (!hasI18n || !Array.isArray(locales) || locales.length === 0) {\n return null;\n }\n\n const displayedLocales = locales.filter((locale) => {\n /**\n * If you can create or read we allow you to see the locale exists\n * this is because in the ListView, you may be able to create a new entry\n * in a locale you can't read.\n */\n return canCreate.includes(locale.code) || canRead.includes(locale.code);\n });\n\n return (\n <SingleSelect\n size=\"S\"\n aria-label={formatMessage({\n id: getTranslation('actions.select-locale'),\n defaultMessage: 'Select locale',\n })}\n value={query.plugins?.i18n?.locale || locales.find((locale) => locale.isDefault)?.code}\n // @ts-expect-error – This can be removed in V2 of the DS.\n onChange={handleChange}\n >\n {displayedLocales.map((locale) => (\n <SingleSelectOption key={locale.id} value={locale.code}>\n {locale.name}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n\nexport { LocalePicker };\n","export const PERMISSIONS = {\n accessMain: [{ action: 'plugin::i18n.locale.read', subject: null }],\n create: [{ action: 'plugin::i18n.locale.create', subject: null }],\n delete: [{ action: 'plugin::i18n.locale.delete', subject: null }],\n update: [{ action: 'plugin::i18n.locale.update', subject: null }],\n read: [{ action: 'plugin::i18n.locale.read', subject: null }],\n};\n","/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport { Flex, VisuallyHidden } from '@strapi/design-system';\nimport { Earth, EarthStriked } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nimport type { EditFieldLayout, EditLayout } from '@strapi/content-manager/strapi-admin';\n\ninterface MutateEditViewArgs {\n layout: EditLayout;\n}\n\nconst mutateEditViewHook = ({ layout }: MutateEditViewArgs): MutateEditViewArgs => {\n // If i18n isn't explicitly enabled on the content type, then no field can be localized\n if (\n !('i18n' in layout.options) ||\n (typeof layout.options.i18n === 'object' &&\n layout.options.i18n !== null &&\n 'localized' in layout.options.i18n &&\n !layout.options.i18n.localized)\n ) {\n return { layout };\n }\n\n const components = Object.entries(layout.components).reduce<EditLayout['components']>(\n (acc, [key, componentLayout]) => {\n return {\n ...acc,\n [key]: {\n ...componentLayout,\n layout: componentLayout.layout.map((row) => row.map(addLabelActionToField)),\n },\n };\n },\n {}\n );\n\n return {\n layout: {\n ...layout,\n components,\n layout: layout.layout.map((panel) => panel.map((row) => row.map(addLabelActionToField))),\n },\n } satisfies Pick<MutateEditViewArgs, 'layout'>;\n};\n\nconst addLabelActionToField = (field: EditFieldLayout) => {\n const isFieldLocalized = doesFieldHaveI18nPluginOpt(field.attribute.pluginOptions)\n ? field.attribute.pluginOptions.i18n.localized\n : true || ['uid', 'relation'].includes(field.attribute.type);\n\n const labelActionProps = {\n title: {\n id: isFieldLocalized\n ? getTranslation('Field.localized')\n : getTranslation('Field.not-localized'),\n defaultMessage: isFieldLocalized\n ? 'This value is unique for the selected locale'\n : 'This value is the same across all locales',\n },\n icon: isFieldLocalized ? <Earth /> : null,\n };\n\n return {\n ...field,\n labelAction: isFieldLocalized ? <LabelAction {...labelActionProps} /> : null,\n };\n};\n\nconst doesFieldHaveI18nPluginOpt = (\n pluginOpts?: object\n): pluginOpts is { i18n: { localized: boolean } } => {\n if (!pluginOpts) {\n return false;\n }\n\n return (\n 'i18n' in pluginOpts &&\n typeof pluginOpts.i18n === 'object' &&\n pluginOpts.i18n !== null &&\n 'localized' in pluginOpts.i18n\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LabelAction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LabelActionProps {\n title: MessageDescriptor;\n icon: React.ReactNode;\n}\n\nconst LabelAction = ({ title, icon }: LabelActionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Span tag=\"span\">\n <VisuallyHidden tag=\"span\">{formatMessage(title)}</VisuallyHidden>\n {React.cloneElement(icon as React.ReactElement, {\n 'aria-hidden': true,\n focusable: false, // See: https://allyjs.io/tutorials/focusing-in-svg.html#making-svg-elements-focusable\n })}\n </Span>\n );\n};\n\nconst Span = styled(Flex)`\n svg {\n width: 12px;\n height: 12px;\n\n fill: ${({ theme }) => theme.colors.neutral500};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n`;\n\nexport { mutateEditViewHook };\n","import { Box, Flex, Popover, Typography, useCollator, Button } from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale } from '../../../shared/contracts/locales';\nimport { useGetLocalesQuery } from '../services/locales';\n\ninterface LocaleListCellProps {\n localizations: { locale: string }[];\n locale: string;\n}\n\nconst LocaleListCell = ({ locale: currentLocale, localizations }: LocaleListCellProps) => {\n const { locale: language } = useIntl();\n const { data: locales = [] } = useGetLocalesQuery();\n const formatter = useCollator(language, {\n sensitivity: 'base',\n });\n\n if (!Array.isArray(locales) || !localizations) {\n return null;\n }\n\n const availableLocales = localizations.map((loc) => loc.locale);\n\n const localesForDocument = locales\n .reduce<Locale[]>((acc, locale) => {\n const createdLocale = [currentLocale, ...availableLocales].find((loc) => {\n return loc === locale.code;\n });\n\n if (createdLocale) {\n acc.push(locale);\n }\n\n return acc;\n }, [])\n .map((locale) => {\n if (locale.isDefault) {\n return `${locale.name} (default)`;\n }\n\n return locale.name;\n })\n .toSorted((a, b) => formatter.compare(a, b));\n\n return (\n <Popover.Root>\n <Popover.Trigger>\n <Button variant=\"ghost\" type=\"button\" onClick={(e) => e.stopPropagation()}>\n <Flex minWidth=\"100%\" alignItems=\"center\" justifyContent=\"center\" fontWeight=\"regular\">\n <Typography textColor=\"neutral800\" ellipsis marginRight={2}>\n {localesForDocument.join(', ')}\n </Typography>\n <Flex>\n <CaretDown width=\"1.2rem\" height=\"1.2rem\" />\n </Flex>\n </Flex>\n </Button>\n </Popover.Trigger>\n <Popover.Content sideOffset={16}>\n <ul>\n {localesForDocument.map((name) => (\n <Box key={name} padding={3} tag=\"li\">\n <Typography>{name}</Typography>\n </Box>\n ))}\n </ul>\n </Popover.Content>\n </Popover.Root>\n );\n};\n\nexport { LocaleListCell };\nexport type { LocaleListCellProps };\n","/* eslint-disable check-file/filename-naming-convention */\nimport { LocaleListCell } from '../components/LocaleListCell';\nimport { doesPluginOptionsHaveI18nLocalized } from '../utils/fields';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport type { ListFieldLayout, ListLayout } from '@strapi/content-manager/strapi-admin';\n\n/* -------------------------------------------------------------------------------------------------\n * addColumnToTableHook\n * -----------------------------------------------------------------------------------------------*/\ninterface AddColumnToTableHookArgs {\n layout: ListLayout;\n displayedHeaders: ListFieldLayout[];\n}\n\nconst addColumnToTableHook = ({ displayedHeaders, layout }: AddColumnToTableHookArgs) => {\n const { options } = layout;\n\n const isFieldLocalized = doesPluginOptionsHaveI18nLocalized(options)\n ? options.i18n.localized\n : false;\n\n if (!isFieldLocalized) {\n return { displayedHeaders, layout };\n }\n\n return {\n displayedHeaders: [\n ...displayedHeaders,\n {\n attribute: { type: 'string' },\n label: {\n id: getTranslation('list-view.table.header.label'),\n defaultMessage: 'Available in',\n },\n searchable: false,\n sortable: false,\n name: 'locales',\n // @ts-expect-error – ID is seen as number | string; this will change when we move the type over.\n cellFormatter: (props, _header, meta) => <LocaleListCell {...props} {...meta} />,\n },\n ],\n layout,\n };\n};\n\nexport { addColumnToTableHook };\n","import type { Schema } from '@strapi/types';\n/* -------------------------------------------------------------------------------------------------\n * addLocaleToReleasesHook\n * -----------------------------------------------------------------------------------------------*/\ninterface AddLocaleToReleasesHookArgs {\n displayedHeaders: {\n key: string;\n fieldSchema: Schema.Attribute.Kind | 'custom';\n metadatas: {\n label: { id: string; defaultMessage: string };\n searchable: boolean;\n sortable: boolean;\n };\n name: string;\n }[];\n hasI18nEnabled: boolean;\n}\n\nconst addLocaleToReleasesHook = ({ displayedHeaders = [] }: AddLocaleToReleasesHookArgs) => {\n return {\n displayedHeaders: [\n ...displayedHeaders,\n {\n label: {\n id: 'content-releases.page.ReleaseDetails.table.header.label.locale',\n defaultMessage: 'locale',\n },\n name: 'locale',\n },\n ],\n hasI18nEnabled: true,\n };\n};\n\nexport { addLocaleToReleasesHook };\n","import get from 'lodash/get';\n\nimport type { Middleware } from '@reduxjs/toolkit';\nimport type { Store } from '@strapi/admin/strapi-admin';\n\nconst extendCTBAttributeInitialDataMiddleware: () => Middleware<\n object,\n ReturnType<Store['getState']>\n> = () => {\n return ({ getState }) =>\n (next) =>\n (action) => {\n const enhanceAction = () => {\n // the block here is to catch the error when trying to access the state\n // of the ctb when the plugin is not mounted\n try {\n const store = getState();\n\n const hasi18nEnabled = get(\n store,\n [\n 'content-type-builder_dataManagerProvider',\n 'modifiedData',\n 'contentType',\n 'schema',\n 'pluginOptions',\n 'i18n',\n 'localized',\n ],\n false\n );\n\n if (hasi18nEnabled) {\n const pluginOptions = action.options\n ? { ...action.options.pluginOptions, i18n: { localized: true } }\n : { i18n: { localized: true } };\n\n return next({\n ...action,\n options: {\n pluginOptions,\n },\n });\n }\n\n return next(action);\n } catch (err) {\n return next(action);\n }\n };\n\n if (\n action.type === 'ContentTypeBuilder/FormModal/SET_ATTRIBUTE_DATA_SCHEMA' &&\n action.forTarget === 'contentType' &&\n !['relation', 'component'].includes(action.attributeType) &&\n !action.isEditing\n ) {\n return enhanceAction();\n }\n\n if (\n action.type === 'ContentTypeBuilder/FormModal/SET_CUSTOM_FIELD_DATA_SCHEMA' &&\n action.forTarget === 'contentType' &&\n !action.isEditing\n ) {\n return enhanceAction();\n }\n\n if (\n (action.type ===\n 'ContentTypeBuilder/FormModal/RESET_PROPS_AND_SET_FORM_FOR_ADDING_AN_EXISTING_COMPO' ||\n action.type === 'ContentTypeBuilder/FormModal/RESET_PROPS_AND_SAVE_CURRENT_DATA') &&\n action.forTarget === 'contentType'\n ) {\n return enhanceAction();\n }\n\n return next(action);\n };\n};\n\nexport { extendCTBAttributeInitialDataMiddleware };\n","import type { Middleware } from '@reduxjs/toolkit';\nimport type { Store } from '@strapi/admin/strapi-admin';\n\nconst extendCTBInitialDataMiddleware: () => Middleware<\n object,\n ReturnType<Store['getState']>\n> = () => {\n return () => (next) => (action) => {\n if (\n action.type === 'ContentTypeBuilder/FormModal/SET_DATA_TO_EDIT' &&\n action.modalType === 'contentType'\n ) {\n const i18n = { localized: false };\n\n const pluginOptions = action.data.pluginOptions\n ? { ...action.data.pluginOptions, i18n }\n : { i18n };\n\n const data = { ...action.data, pluginOptions };\n\n if (action.actionType === 'create') {\n return next({ ...action, data });\n }\n\n // Override the action if the pluginOption config does not contain i18n\n // In this case we need to set the proper initialData shape\n if (!action.data.pluginOptions?.i18n?.localized) {\n return next({ ...action, data });\n }\n }\n\n // action is not the one we want to override\n return next(action);\n };\n};\n\nexport { extendCTBInitialDataMiddleware };\n","/* eslint-disable check-file/filename-naming-convention */\nimport * as qs from 'qs';\nimport { matchPath } from 'react-router-dom';\n\nimport type { RBACMiddleware } from '@strapi/admin/strapi-admin';\n\nconst localeMiddleware: RBACMiddleware = (ctx) => (next) => (permissions) => {\n const match = matchPath('/content-manager/:collectionType/:model?/:id', ctx.pathname);\n\n if (!match) {\n return next(permissions);\n }\n\n const search = qs.parse(ctx.search);\n\n if (typeof search !== 'object') {\n return next(permissions);\n }\n\n if (!('plugins' in search && typeof search.plugins === 'object')) {\n return next(permissions);\n }\n\n if (\n !(\n 'i18n' in search.plugins &&\n typeof search.plugins.i18n === 'object' &&\n !Array.isArray(search.plugins.i18n)\n )\n ) {\n return next(permissions);\n }\n\n const { locale } = search.plugins.i18n;\n\n if (typeof locale !== 'string') {\n return next(permissions);\n }\n\n const revisedPermissions = permissions.filter(\n (permission) =>\n !permission.properties?.locales || permission.properties.locales.includes(locale)\n );\n\n return next(revisedPermissions);\n};\n\nexport { localeMiddleware };\n","type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n","import omit from 'lodash/omit';\n\nimport { LOCALIZED_FIELDS, doesPluginOptionsHaveI18nLocalized } from './fields';\n\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * mutateCTBContentTypeSchema\n * -----------------------------------------------------------------------------------------------*/\n\nconst mutateCTBContentTypeSchema = (\n nextSchema: Schema.ContentType,\n prevSchema?: {\n apiID?: string;\n schema?: Schema.ContentType;\n uid?: string;\n }\n) => {\n // Don't perform mutations components\n if (!doesPluginOptionsHaveI18nLocalized(nextSchema.pluginOptions)) {\n return nextSchema;\n }\n\n const isNextSchemaLocalized = nextSchema.pluginOptions.i18n.localized;\n const isPrevSchemaLocalized = doesPluginOptionsHaveI18nLocalized(\n prevSchema?.schema?.pluginOptions\n )\n ? prevSchema?.schema?.pluginOptions.i18n.localized\n : false;\n\n // No need to perform modification on the schema, if the i18n feature was not changed\n // at the ct level\n if (isNextSchemaLocalized && isPrevSchemaLocalized) {\n return nextSchema;\n }\n\n if (isNextSchemaLocalized) {\n const attributes = addLocalisationToFields(nextSchema.attributes);\n\n return { ...nextSchema, attributes };\n }\n\n // Remove the i18n object from the pluginOptions\n if (!isNextSchemaLocalized) {\n const pluginOptions = omit(nextSchema.pluginOptions, 'i18n');\n const attributes = disableAttributesLocalisation(nextSchema.attributes);\n\n return { ...nextSchema, pluginOptions, attributes };\n }\n\n return nextSchema;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * addLocalisationToFields\n * -----------------------------------------------------------------------------------------------*/\n\nconst addLocalisationToFields = (attributes: Schema.ContentType['attributes']) =>\n Object.keys(attributes).reduce<Schema.ContentType['attributes']>((acc, current) => {\n const currentAttribute = attributes[current];\n\n if (LOCALIZED_FIELDS.includes(currentAttribute.type)) {\n const i18n = { localized: true };\n\n const pluginOptions = currentAttribute.pluginOptions\n ? { ...currentAttribute.pluginOptions, i18n }\n : { i18n };\n\n acc[current] = { ...currentAttribute, pluginOptions };\n\n return acc;\n }\n\n acc[current] = currentAttribute;\n\n return acc;\n }, {});\n\n/* -------------------------------------------------------------------------------------------------\n * disableAttributesLocalisation\n * -----------------------------------------------------------------------------------------------*/\n\ntype OmitByPath<T extends object, K extends string[]> = Pick<T, Exclude<keyof T, K[number]>>;\n\nconst disableAttributesLocalisation = (attributes: Schema.ContentType['attributes']) =>\n Object.keys(attributes).reduce<\n Record<string, OmitByPath<Schema.ContentType['attributes'][string], ['pluginOptions', 'i18n']>>\n >((acc, current) => {\n acc[current] = omit(attributes[current], 'pluginOptions.i18n');\n\n return acc;\n }, {});\n\nexport { mutateCTBContentTypeSchema };\n","import get from 'lodash/get';\nimport * as yup from 'yup';\n\nimport { CheckboxConfirmation } from './components/CheckboxConfirmation';\nimport {\n BulkLocalePublishAction,\n BulkLocaleUnpublishAction,\n DeleteLocaleAction,\n LocalePickerAction,\n FillFromAnotherLocaleAction,\n} from './components/CMHeaderActions';\nimport {\n DeleteModalAdditionalInfo,\n PublishModalAdditionalInfo,\n UnpublishModalAdditionalInfo,\n} from './components/CMListViewModalsAdditionalInformation';\nimport { LocalePicker } from './components/LocalePicker';\nimport { PERMISSIONS } from './constants';\nimport { mutateEditViewHook } from './contentManagerHooks/editView';\nimport { addColumnToTableHook } from './contentManagerHooks/listView';\nimport { addLocaleToReleasesHook } from './contentReleasesHooks/releaseDetailsView';\nimport { extendCTBAttributeInitialDataMiddleware } from './middlewares/extendCTBAttributeInitialData';\nimport { extendCTBInitialDataMiddleware } from './middlewares/extendCTBInitialData';\nimport { localeMiddleware } from './middlewares/rbac-middleware';\nimport { pluginId } from './pluginId';\nimport { i18nApi } from './services/api';\nimport { LOCALIZED_FIELDS } from './utils/fields';\nimport { getTranslation } from './utils/getTranslation';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\nimport { mutateCTBContentTypeSchema } from './utils/schemas';\n\nimport type { DocumentActionComponent } from '@strapi/content-manager/strapi-admin';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n app.addMiddlewares([extendCTBAttributeInitialDataMiddleware, extendCTBInitialDataMiddleware]);\n app.addMiddlewares([() => i18nApi.middleware]);\n app.addReducers({\n [i18nApi.reducerPath]: i18nApi.reducer,\n });\n app.addRBACMiddleware([localeMiddleware]);\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: any) {\n // // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n app.registerHook('Admin/CM/pages/EditView/mutate-edit-view-layout', mutateEditViewHook);\n // Hooks that checks if the locale is present in the release\n app.registerHook(\n 'ContentReleases/pages/ReleaseDetails/add-locale-in-releases',\n addLocaleToReleasesHook\n );\n\n // Add the settings link\n app.addSettingsLink('global', {\n intlLabel: {\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n },\n id: 'internationalization',\n to: 'internationalization',\n Component: () =>\n import('./pages/SettingsPage').then((mod) => ({ default: mod.ProtectedSettingsPage })),\n permissions: PERMISSIONS.accessMain,\n });\n\n const contentManager = app.getPlugin('content-manager');\n\n contentManager.apis.addDocumentHeaderAction([LocalePickerAction, FillFromAnotherLocaleAction]);\n contentManager.apis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'delete');\n actions.splice(indexOfDeleteAction, 0, DeleteLocaleAction);\n return actions;\n });\n\n contentManager.apis.addDocumentAction((actions: DocumentActionComponent[]) => {\n // When enabled the bulk locale publish action should be the first action\n // in 'More Document Actions' and therefore the third action in the array\n actions.splice(2, 0, BulkLocalePublishAction);\n actions.splice(5, 0, BulkLocaleUnpublishAction);\n return actions;\n });\n\n contentManager.injectComponent('listView', 'actions', {\n name: 'i18n-locale-filter',\n Component: LocalePicker,\n });\n\n contentManager.injectComponent('listView', 'publishModalAdditionalInfos', {\n name: 'i18n-publish-bullets-in-modal',\n Component: PublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'unpublishModalAdditionalInfos', {\n name: 'i18n-unpublish-bullets-in-modal',\n Component: UnpublishModalAdditionalInfo,\n });\n\n contentManager.injectComponent('listView', 'deleteModalAdditionalInfos', {\n name: 'i18n-delete-bullets-in-modal',\n Component: DeleteModalAdditionalInfo,\n });\n\n const ctbPlugin = app.getPlugin('content-type-builder');\n\n if (ctbPlugin) {\n const ctbFormsAPI = ctbPlugin.apis.forms;\n ctbFormsAPI.addContentTypeSchemaMutation(mutateCTBContentTypeSchema);\n ctbFormsAPI.components.add({ id: 'checkboxConfirmation', component: CheckboxConfirmation });\n\n ctbFormsAPI.extendContentType({\n validator: () => ({\n i18n: yup.object().shape({\n localized: yup.bool(),\n }),\n }),\n form: {\n advanced() {\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-content-type'),\n defaultMessage: 'Allows translating an entry into different languages',\n },\n type: 'checkboxConfirmation',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-content-type'),\n defaultMessage: 'Localization',\n },\n },\n ];\n },\n },\n });\n\n ctbFormsAPI.extendFields(LOCALIZED_FIELDS, {\n form: {\n advanced({ contentTypeSchema, forTarget, type, step }: any) {\n if (forTarget !== 'contentType') {\n return [];\n }\n\n const hasI18nEnabled = get(\n contentTypeSchema,\n ['schema', 'pluginOptions', 'i18n', 'localized'],\n false\n );\n\n if (!hasI18nEnabled) {\n return [];\n }\n\n if (type === 'component' && step === '1') {\n return [];\n }\n\n return [\n {\n name: 'pluginOptions.i18n.localized',\n description: {\n id: getTranslation('plugin.schema.i18n.localized.description-field'),\n defaultMessage: 'The field can have different values in each locale',\n },\n type: 'checkbox',\n intlLabel: {\n id: getTranslation('plugin.schema.i18n.localized.label-field'),\n defaultMessage: 'Enable localization for this field',\n },\n },\n ];\n },\n },\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["pluginId","getTranslation","id","TextAlignTypography","styled","Typography","CheckboxConfirmation","description","isCreating","intlLabel","name","onChange","value","formatMessage","useIntl","isOpen","setIsOpen","React","useState","handleChange","target","type","handleConfirm","label","defaultMessage","values","hint","_jsxs","Dialog","Root","open","onOpenChange","Field","_jsx","Checkbox","onCheckedChange","checked","Hint","Content","Header","Body","icon","WarningCircle","Flex","direction","alignItems","gap","justifyContent","fontWeight","Footer","Cancel","Button","variant","Action","onClick","LOCALIZED_FIELDS","doesPluginOptionsHaveI18nLocalized","opts","i18n","localized","capitalize","str","charAt","toUpperCase","slice","useI18n","params","useParams","userPermissions","useAuth","state","permissions","actions","useMemo","filter","permission","subject","slug","reduce","acc","actionShorthand","action","split","properties","locales","canCreate","canRead","canUpdate","canDelete","canPublish","schema","useDocument","collectionType","model","skip","pluginOptions","hasI18n","i18nApi","adminApi","enhanceEndpoints","addTagTypes","localesApi","injectEndpoints","endpoints","builder","createLocale","mutation","query","data","url","method","invalidatesTags","deleteLocale","result","error","getLocales","providesTags","res","Array","isArray","map","locale","getDefaultLocales","updateLocale","useCreateLocaleMutation","useDeleteLocaleMutation","useGetLocalesQuery","useGetDefaultLocalesQuery","useUpdateLocaleMutation","relationsApi","overrideExisting","getManyDraftRelationCount","config","transformResponse","response","useGetManyDraftRelationCountQuery","cleanData","components","cleanedData","removeFields","cleanedDataWithoutPasswordAndRelation","recursiveRemoveFieldTypes","fields","Object","keys","current","includes","attribute","attributes","undefined","componentValue","index","_","rest","__component","__temp_key__","repeatable","component","compoData","isErrorMessageDescriptor","object","EntryValidationText","status","validationErrors","getErrorStr","key","v","join","entries","k","validationErrorsMessages","CrossCircle","fill","Tooltip","maxWidth","textColor","ellipsis","getStatusMessage","CheckCircle","text","ArrowsCounterClockwise","BoldChunk","chunks","BulkLocaleActionModal","headers","rows","localesMetadata","selectedRows","useTable","getFormattedCountMessage","currentStatusByLocale","localesWithErrors","publishedCount","length","draftCount","withErrorsCount","messageId","b","Modal","Box","marginTop","Table","Head","HeaderCheckboxCell","head","HeaderCell","statusVariant","Row","CheckboxCell","aria-label","Cell","find","localeEntry","code","display","Status","paddingLeft","paddingRight","paddingTop","paddingBottom","size","tag","IconButton","Link","to","search","stringify","plugins","Pencil","statusVariants","draft","published","modified","LocaleOption","isDraftAndPublishEnabled","entryExists","bold","width","LocalePickerAction","document","meta","documentId","setQuery","useQueryParams","currentDesiredLocale","handleSelect","useCallback","useEffect","doesLocaleExist","loc","defaultLocale","isDefault","currentLocale","allCurrentLocales","getDocumentStatus","localizations","displayedLocales","options","entryWithLocaleExists","some","doc","currentLocaleDoc","permissionsToCheck","disabled","draftAndPublish","startIcon","Plus","customizeContent","onSelect","docStatus","statuses","availableStatus","publishedAt","FillFromAnotherLocaleAction","localeSelected","setLocaleSelected","setValues","useForm","getDocument","useDocumentActions","availableLocales","l","fillFromLocale","onClose","Download","dialog","title","content","_Fragment","height","textAlign","Label","SingleSelect","placeholder","SingleSelectOption","flex","DeleteLocaleAction","navigate","useNavigate","toggleNotification","useNotification","delete","deleteAction","position","StyledTrash","onConfirm","unableToDelete","console","message","pathname","replace","BulkLocaleAction","buildValidParams","isOnPublishedTab","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","setSelectedRows","isDraftRelationConfirmationOpen","setIsDraftRelationConfirmationOpen","publishMany","publishManyAction","unpublishMany","unpublishManyAction","validate","skipToken","unshift","allDocuments","errors","errs","validation","isBulkPublish","localesForAction","selectedRow","isValidLocale","shouldAddLocale","push","enableDraftRelationsCount","draftRelationsCount","isLoading","isDraftRelationsLoading","isDraftRelationsError","documentIds","publish","unpublish","handleAction","onCancel","hasPermission","every","ListPlus","Cross","row","onSelectedRowsChange","tableSelectedRows","footer","loading","BulkLocalePublishAction","props","BulkLocaleUnpublishAction","Trash","Emphasis","DeleteModalAdditionalInfo","em","PublishModalAdditionalInfo","UnpublishModalAdditionalInfo","LocalePicker","page","PERMISSIONS","accessMain","create","update","read","mutateEditViewHook","layout","componentLayout","addLabelActionToField","panel","field","isFieldLocalized","doesFieldHaveI18nPluginOpt","labelActionProps","Earth","labelAction","LabelAction","pluginOpts","Span","VisuallyHidden","cloneElement","focusable","theme","colors","neutral500","LocaleListCell","language","formatter","useCollator","sensitivity","localesForDocument","createdLocale","toSorted","a","compare","Popover","Trigger","e","stopPropagation","minWidth","marginRight","CaretDown","sideOffset","ul","padding","addColumnToTableHook","displayedHeaders","searchable","sortable","cellFormatter","_header","addLocaleToReleasesHook","hasI18nEnabled","extendCTBAttributeInitialDataMiddleware","getState","next","enhanceAction","store","hasi18nEnabled","get","err","forTarget","attributeType","isEditing","extendCTBInitialDataMiddleware","modalType","actionType","localeMiddleware","ctx","match","matchPath","qs","parse","revisedPermissions","prefixPluginTranslations","trad","mutateCTBContentTypeSchema","nextSchema","prevSchema","isNextSchemaLocalized","isPrevSchemaLocalized","addLocalisationToFields","omit","disableAttributesLocalisation","currentAttribute","register","app","addMiddlewares","middleware","addReducers","reducerPath","reducer","addRBACMiddleware","registerPlugin","bootstrap","registerHook","addSettingsLink","Component","then","mod","default","ProtectedSettingsPage","contentManager","getPlugin","apis","addDocumentHeaderAction","addDocumentAction","indexOfDeleteAction","findIndex","splice","injectComponent","ctbPlugin","ctbFormsAPI","forms","addContentTypeSchemaMutation","add","extendContentType","validator","yup","shape","bool","form","advanced","extendFields","contentTypeSchema","step","registerTrads","importedTrads","Promise","all","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAMA,WAAW,MAAO;;ACEzBC,MAAAA,cAAAA,GAAiB,CAACC,EAAe,GAAA,CAAC,EAAEF,QAAS,CAAA,CAAC,EAAEE,EAAAA,CAAG;;ACOzD,MAAMC,mBAAAA,GAAsBC,uBAAOC,CAAAA,uBAAAA,CAAW;;AAE9C,CAAC;AAeD,MAAMC,oBAAuB,GAAA,CAAC,EAC5BC,WAAW,EACXC,UAAa,GAAA,KAAK,EAClBC,SAAS,EACTC,IAAI,EACJC,QAAQ,EACRC,KAAK,EACqB,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,MAAQC,EAAAA,SAAAA,CAAU,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAE3C,IAAA,MAAMC,eAAe,CAACP,KAAAA,GAAAA;AACpB,QAAA,IAAIJ,cAAcI,KAAO,EAAA;AACvB,YAAA,OAAOD,QAAS,CAAA;gBAAES,MAAQ,EAAA;AAAEV,oBAAAA,IAAAA;AAAME,oBAAAA,KAAAA;oBAAOS,IAAM,EAAA;AAAW;AAAE,aAAA,CAAA;AAC9D;AAEA,QAAA,IAAI,CAACT,KAAO,EAAA;AACV,YAAA,OAAOI,SAAU,CAAA,IAAA,CAAA;AACnB;QAEA,OAAO,IAAA;AACT,KAAA;AAEA,IAAA,MAAMM,aAAgB,GAAA,IAAA;QACpBX,QAAS,CAAA;YAAES,MAAQ,EAAA;AAAEV,gBAAAA,IAAAA;gBAAME,KAAO,EAAA,KAAA;gBAAOS,IAAM,EAAA;AAAW;AAAE,SAAA,CAAA;AAC9D,KAAA;AAEA,IAAA,MAAME,KAAQd,GAAAA,SAAAA,CAAUP,EAAE,GACtBW,aACE,CAAA;AAAEX,QAAAA,EAAAA,EAAIO,UAAUP,EAAE;AAAEsB,QAAAA,cAAAA,EAAgBf,UAAUe;KAC9C,EAAA;AAAE,QAAA,GAAGf,UAAUgB;KAEjBf,CAAAA,GAAAA,IAAAA;IAEJ,MAAMgB,IAAAA,GAAOnB,cACTM,aACE,CAAA;AAAEX,QAAAA,EAAAA,EAAIK,YAAYL,EAAE;AAAEsB,QAAAA,cAAAA,EAAgBjB,YAAYiB;KAClD,EAAA;AAAE,QAAA,GAAGjB,YAAYkB;KAEnB,CAAA,GAAA,EAAA;IAEJ,qBACEE,eAAA,CAACC,oBAAOC,IAAI,EAAA;QAACC,IAAMf,EAAAA,MAAAA;QAAQgB,YAAcf,EAAAA,SAAAA;;AACvC,0BAAAW,eAAA,CAACK,mBAAMH,IAAI,EAAA;gBAACH,IAAMA,EAAAA,IAAAA;gBAAMhB,IAAMA,EAAAA,IAAAA;;kCAC5BuB,cAACC,CAAAA,qBAAAA,EAAAA;wBAASC,eAAiBhB,EAAAA,YAAAA;wBAAciB,OAASxB,EAAAA,KAAAA;AAC/CW,wBAAAA,QAAAA,EAAAA;;AAEH,kCAAAU,cAAA,CAACD,mBAAMK,IAAI,EAAA,EAAA;;;AAEb,0BAAAV,eAAA,CAACC,oBAAOU,OAAO,EAAA;;AACb,kCAAAL,cAAA,CAACL,oBAAOW,MAAM,EAAA;kCACX1B,aAAc,CAAA;AACbX,4BAAAA,EAAAA,EAAID,cAAe,CAAA,kCAAA,CAAA;4BACnBuB,cAAgB,EAAA;AAClB,yBAAA;;AAEF,kCAAAS,cAAA,CAACL,oBAAOY,IAAI,EAAA;AAACC,wBAAAA,IAAAA,gBAAMR,cAACS,CAAAA,mBAAAA,EAAAA,EAAAA,CAAAA;AAClB,wBAAA,QAAA,gBAAAf,eAACgB,CAAAA,iBAAAA,EAAAA;4BAAKC,SAAU,EAAA,QAAA;4BAASC,UAAW,EAAA,SAAA;4BAAUC,GAAK,EAAA,CAAA;;8CACjDb,cAACU,CAAAA,iBAAAA,EAAAA;oCAAKI,cAAe,EAAA,QAAA;AACnB,oCAAA,QAAA,gBAAAd,cAAC9B,CAAAA,mBAAAA,EAAAA;kDACEU,aAAc,CAAA;AACbX,4CAAAA,EAAAA,EAAID,cAAe,CAAA,oCAAA,CAAA;4CACnBuB,cACE,EAAA;AACJ,yCAAA;;;8CAGJS,cAACU,CAAAA,iBAAAA,EAAAA;oCAAKI,cAAe,EAAA,QAAA;AACnB,oCAAA,QAAA,gBAAAd,cAAC5B,CAAAA,uBAAAA,EAAAA;wCAAW2C,UAAW,EAAA,UAAA;kDACpBnC,aAAc,CAAA;AACbX,4CAAAA,EAAAA,EAAID,cAAe,CAAA,iCAAA,CAAA;4CACnBuB,cAAgB,EAAA;AAClB,yCAAA;;;;;;AAKR,kCAAAG,eAAA,CAACC,oBAAOqB,MAAM,EAAA;;AACZ,0CAAAhB,cAAA,CAACL,oBAAOsB,MAAM,EAAA;AACZ,gCAAA,QAAA,gBAAAjB,cAACkB,CAAAA,mBAAAA,EAAAA;oCAAOC,OAAQ,EAAA,UAAA;8CACbvC,aAAc,CAAA;wCACbX,EAAI,EAAA,uCAAA;wCACJsB,cAAgB,EAAA;AAClB,qCAAA;;;AAGJ,0CAAAS,cAAA,CAACL,oBAAOyB,MAAM,EAAA;AACZ,gCAAA,QAAA,gBAAApB,cAACkB,CAAAA,mBAAAA,EAAAA;oCAAOC,OAAQ,EAAA,cAAA;oCAAeE,OAAShC,EAAAA,aAAAA;8CACrCT,aAAc,CAAA;AACbX,wCAAAA,EAAAA,EAAID,cAAe,CAAA,2CAAA,CAAA;wCACnBuB,cAAgB,EAAA;AAClB,qCAAA;;;;;;;;;AAOd,CAAA;;AC5HA,MAAM+B,gBAAmB,GAAA;AACvB,IAAA,YAAA;AACA,IAAA,SAAA;AACA,IAAA,WAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,SAAA;AACA,IAAA,aAAA;AACA,IAAA,OAAA;AACA,IAAA,aAAA;AACA,IAAA,OAAA;AACA,IAAA,SAAA;AACA,IAAA,MAAA;AACA,IAAA,OAAA;AACA,IAAA,QAAA;AACA,IAAA,UAAA;AACA,IAAA,UAAA;AACA,IAAA,QAAA;AACA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,kCAAqC,GAAA,CACzCC,IAEA,GAAA,OAAOA,IAAS,KAAA,QAAA,IAChBA,IAAS,KAAA,IAAA,IACT,MAAUA,IAAAA,IAAAA,IACV,OAAOA,IAAAA,CAAKC,IAAI,KAAK,QACrBD,IAAAA,IAAAA,CAAKC,IAAI,KAAK,IACd,IAAA,WAAA,IAAeD,IAAKC,CAAAA,IAAI,IACxB,OAAOD,IAAKC,CAAAA,IAAI,CAACC,SAAS,KAAK,SAAA;;AChCjC,MAAMC,UAAAA,GAAa,CAACC,GAAAA,GAAgBA,GAAIC,CAAAA,MAAM,CAAC,CAAA,CAAA,CAAGC,WAAW,EAAA,GAAKF,GAAIG,CAAAA,KAAK,CAAC,CAAA,CAAA;;ACkB5E;;;;;AAKC,IACD,MAAMC,OAAmB,GAAA,IAAA;;AAEvB,IAAA,MAAMC,MAASC,GAAAA,wBAAAA,EAAAA;AAEf,IAAA,MAAMC,kBAAkBC,mBAAQ,CAAA,SAAA,EAAW,CAACC,KAAAA,GAAUA,MAAMC,WAAW,CAAA;IACvE,MAAMC,OAAAA,GAAUvD,gBAAMwD,CAAAA,OAAO,CAAC,IAAA;QAC5B,MAAMF,WAAAA,GAAcH,eAAgBM,CAAAA,MAAM,CAAC,CAACC,aAAeA,UAAWC,CAAAA,OAAO,KAAKV,MAAAA,CAAOW,IAAI,CAAA;AAE7F,QAAA,OAAON,WAAYO,CAAAA,MAAM,CACvB,CAACC,GAAKJ,EAAAA,UAAAA,GAAAA;YACJ,MAAM,CAACK,eAAgB,CAAA,GAAGL,UAAWM,CAAAA,MAAM,CAACC,KAAK,CAAC,GAAA,CAAA,CAAKlB,KAAK,CAAC,CAAC,CAAA,CAAA;YAE9D,OAAO;AACL,gBAAA,GAAGe,GAAG;AACN,gBAAA,CAAC,CAAC,GAAG,EAAEnB,UAAAA,CAAWoB,eAAiB,CAAA,CAAA,CAAC,GAAGL,UAAWQ,CAAAA,UAAU,EAAEC,OAAAA,IAAW;AAC3E,aAAA;SAEF,EAAA;AAAEC,YAAAA,SAAAA,EAAW,EAAE;AAAEC,YAAAA,OAAAA,EAAS,EAAE;AAAEC,YAAAA,SAAAA,EAAW,EAAE;AAAEC,YAAAA,SAAAA,EAAW,EAAE;AAAEC,YAAAA,UAAAA,EAAY;AAAG,SAAA,CAAA;KAE5E,EAAA;AAACvB,QAAAA,MAAAA,CAAOW,IAAI;AAAET,QAAAA;AAAgB,KAAA,CAAA;;AAGjC,IAAA,MAAM,EAAEsB,MAAM,EAAE,GAAGC,kCACjB,CAAA;;AAEEC,QAAAA,cAAAA,EAAgB1B,OAAO0B,cAAc;AACrCC,QAAAA,KAAAA,EAAO3B,OAAOW;KAEhB,EAAA;QACEiB,IAAM,EAAA;AACR,KAAA,CAAA;IAGF,IAAItC,kCAAAA,CAAmCkC,QAAQK,aAAgB,CAAA,EAAA;QAC7D,OAAO;AACLC,YAAAA,OAAAA,EAASN,MAAOK,CAAAA,aAAa,CAACrC,IAAI,CAACC,SAAS;AAC5C,YAAA,GAAGa;AACL,SAAA;AACF;IAEA,OAAO;QACLwB,OAAS,EAAA,KAAA;AACT,QAAA,GAAGxB;AACL,KAAA;AACF,CAAA;;AClEA,MAAMyB,OAAAA,GAAUC,oBAASC,CAAAA,gBAAgB,CAAC;IACxCC,WAAa,EAAA;AAAC,QAAA;AAAS;AACzB,CAAA,CAAA;;ACMA,MAAMC,UAAAA,GAAaJ,OAAQK,CAAAA,eAAe,CAAC;IACzCC,SAAW,EAAA,CAACC,WAAa;YACvBC,YAAcD,EAAAA,OAAAA,CAAQE,QAAQ,CAAsD;gBAClFC,KAAO,EAAA,CAACC,QAAU;wBAChBC,GAAK,EAAA,eAAA;wBACLC,MAAQ,EAAA,MAAA;AACRF,wBAAAA;qBACF,CAAA;gBACAG,eAAiB,EAAA;AAAC,oBAAA;wBAAE1F,IAAM,EAAA,QAAA;wBAAUnB,EAAI,EAAA;AAAO;AAAE;AACnD,aAAA,CAAA;YACA8G,YAAcR,EAAAA,OAAAA,CAAQE,QAAQ,CAAmD;gBAC/EC,KAAO,EAAA,CAACzG,MAAQ;AACd2G,wBAAAA,GAAAA,EAAK,CAAC,cAAc,EAAE3G,EAAAA,CAAG,CAAC;wBAC1B4G,MAAQ,EAAA;qBACV,CAAA;gBACAC,eAAiB,EAAA,CAACE,MAAQC,EAAAA,KAAAA,EAAOhH,EAAO,GAAA;AAAC,wBAAA;4BAAEmB,IAAM,EAAA,QAAA;AAAUnB,4BAAAA;AAAG;AAAE;AAClE,aAAA,CAAA;YACAiH,UAAYX,EAAAA,OAAAA,CAAQG,KAAK,CAA4B;AACnDA,gBAAAA,KAAAA,EAAO,IAAM,eAAA;AACbS,gBAAAA,YAAAA,EAAc,CAACC,GAAQ,GAAA;AACrB,wBAAA;4BAAEhG,IAAM,EAAA,QAAA;4BAAUnB,EAAI,EAAA;AAAO,yBAAA;2BACzBoH,KAAMC,CAAAA,OAAO,CAACF,GACdA,CAAAA,GAAAA,GAAAA,CAAIG,GAAG,CAAC,CAACC,UAAY;gCACnBpG,IAAM,EAAA,QAAA;AACNnB,gCAAAA,EAAAA,EAAIuH,OAAOvH;AACb,6BAAA,KACA;AACL;AACH,aAAA,CAAA;YACAwH,iBAAmBlB,EAAAA,OAAAA,CAAQG,KAAK,CAA+B;AAC7DA,gBAAAA,KAAAA,EAAO,IAAM;AACf,aAAA,CAAA;YACAgB,YAAcnB,EAAAA,OAAAA,CAAQE,QAAQ,CAG5B;AACAC,gBAAAA,KAAAA,EAAO,CAAC,EAAEzG,EAAE,EAAE,GAAG0G,IAAAA,EAAM,IAAM;AAC3BC,wBAAAA,GAAAA,EAAK,CAAC,cAAc,EAAE3G,EAAAA,CAAG,CAAC;wBAC1B4G,MAAQ,EAAA,KAAA;AACRF,wBAAAA;qBACF,CAAA;AACAG,gBAAAA,eAAAA,EAAiB,CAACE,MAAQC,EAAAA,KAAAA,EAAO,EAAEhH,EAAE,EAAE,GAAK;AAAC,wBAAA;4BAAEmB,IAAM,EAAA,QAAA;AAAUnB,4BAAAA;AAAG;AAAE;AACtE,aAAA;SACF;AACF,CAAA,CAAA;AAEM,MAAA,EACJ0H,uBAAuB,EACvBC,uBAAuB,EACvBC,kBAAkB,EAClBC,yBAAyB,EACzBC,uBAAuB,EACxB,GAAG3B;;AC1DJ,MAAM4B,YAAAA,GAAehC,OAAQK,CAAAA,eAAe,CAAC;IAC3C4B,gBAAkB,EAAA,IAAA;IAClB3B,SAAW,EAAA,CAACC,WAAa;YACvB2B,yBAA2B3B,EAAAA,OAAAA,CAAQG,KAAK,CAKtC;AACAA,gBAAAA,KAAAA,EAAO,CAAC,EAAEd,KAAK,EAAE,GAAG3B,MAAAA,EAAQ,IAAM;AAChC2C,wBAAAA,GAAAA,EAAK,CAAC,kCAAkC,EAAEhB,KAAAA,CAAM,uCAAuC,CAAC;wBACxFiB,MAAQ,EAAA,KAAA;wBACRsB,MAAQ,EAAA;AACNlE,4BAAAA;AACF;qBACF,CAAA;gBACAmE,iBAAmB,EAAA,CAACC,QAAsDA,GAAAA,QAAAA,CAAS1B;AACrF,aAAA;SACF;AACF,CAAA,CAAA;AAEA,MAAM,EAAE2B,iCAAiC,EAAE,GAAGN,YAAAA;;ACrB9C,MAAMO,SAAAA,GAAY,CAChB5B,IAAAA,EACAlB,MACA+C,EAAAA,UAAAA,GAAAA;IAEA,MAAMC,WAAAA,GAAcC,aAAa/B,IAAM,EAAA;AACrC,QAAA,WAAA;AACA,QAAA,WAAA;AACA,QAAA,WAAA;AACA,QAAA,WAAA;AACA,QAAA,IAAA;AACA,QAAA,YAAA;AACA,QAAA,aAAA;AACA,QAAA,cAAA;AACA,QAAA,iBAAA;AACA,QAAA,QAAA;AACA,QAAA;AACD,KAAA,CAAA;AAED,IAAA,MAAMgC,qCAAwCC,GAAAA,yBAAAA,CAC5CH,WACAhD,EAAAA,MAAAA,EACA+C,UACA,EAAA;AAAC,QAAA,UAAA;AAAY,QAAA;AAAW,KAAA,CAAA;IAG1B,OAAOG,qCAAAA;AACT,CAAA;AAEA,MAAMD,YAAAA,GAAe,CAAC/B,IAAYkC,EAAAA,MAAAA,GAAAA;AAChC,IAAA,OAAOC,OAAOC,IAAI,CAACpC,MAAM9B,MAAM,CAAC,CAACC,GAAKkE,EAAAA,OAAAA,GAAAA;QACpC,IAAIH,MAAAA,CAAOI,QAAQ,CAACD,OAAU,CAAA,EAAA;YAC5B,OAAOlE,GAAAA;AACT;AACAA,QAAAA,GAAG,CAACkE,OAAAA,CAAQ,GAAGrC,IAAI,CAACqC,OAAQ,CAAA;QAC5B,OAAOlE,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN,CAAA;AAEA,MAAM8D,yBAA4B,GAAA,CAChCjC,IACAlB,EAAAA,MAAAA,EACA+C,UACAK,EAAAA,MAAAA,GAAAA;AAEA,IAAA,OAAOC,OAAOC,IAAI,CAACpC,MAAM9B,MAAM,CAAC,CAACC,GAAKkE,EAAAA,OAAAA,GAAAA;AACpC,QAAA,MAAME,SAAYzD,GAAAA,MAAAA,CAAO0D,UAAU,CAACH,QAAQ,IAAI;YAAE5H,IAAMgI,EAAAA;AAAU,SAAA;AAElE,QAAA,IAAIP,MAAOI,CAAAA,QAAQ,CAACC,SAAAA,CAAU9H,IAAI,CAAG,EAAA;YACnC,OAAO0D,GAAAA;AACT;QAEA,IAAIoE,SAAAA,CAAU9H,IAAI,KAAK,aAAe,EAAA;YACpC0D,GAAG,CAACkE,OAAQ,CAAA,GAAGrC,IAAI,CAACqC,QAAQ,CAACzB,GAAG,CAAC,CAAC8B,cAAqBC,EAAAA,KAAAA,GAAAA;AACrD,gBAAA,MAAM,EAAErJ,EAAAA,EAAIsJ,CAAC,EAAE,GAAGC,IAAM,EAAA,GAAGZ,yBACzBS,CAAAA,cAAAA,EACAb,UAAU,CAACa,cAAAA,CAAeI,WAAW,CAAC,EACtCjB,UACAK,EAAAA,MAAAA,CAAAA;gBAGF,OAAO;AACL,oBAAA,GAAGW,IAAI;AACPE,oBAAAA,YAAAA,EAAcJ,KAAQ,GAAA;AACxB,iBAAA;AACF,aAAA,CAAA;AACF,SAAA,MAAO,IAAIJ,SAAAA,CAAU9H,IAAI,KAAK,WAAa,EAAA;AACzC,YAAA,MAAM,EAAEuI,UAAU,EAAEC,SAAS,EAAE,GAAGV,SAAAA;AAElC,YAAA,IAAIS,UAAY,EAAA;AACd7E,gBAAAA,GAAG,CAACkE,OAAAA,CAAQ,GAAIrC,CAAAA,IAAI,CAACqC,OAAQ,CAAA,IAAI,EAAE,EAAEzB,GAAG,CAAC,CAACsC,SAAgBP,EAAAA,KAAAA,GAAAA;AACxD,oBAAA,MAAM,EAAErJ,EAAAA,EAAIsJ,CAAC,EAAE,GAAGC,IAAAA,EAAM,GAAGZ,yBAAAA,CACzBiB,SACArB,EAAAA,UAAU,CAACoB,SAAAA,CAAU,EACrBpB,UACAK,EAAAA,MAAAA,CAAAA;oBAGF,OAAO;AACL,wBAAA,GAAGW,IAAI;AACPE,wBAAAA,YAAAA,EAAcJ,KAAQ,GAAA;AACxB,qBAAA;AACF,iBAAA,CAAA;aACK,MAAA;AACL,gBAAA,MAAM,EAAErJ,EAAIsJ,EAAAA,CAAC,EAAE,GAAGC,IAAAA,EAAM,GAAGZ,yBACzBjC,CAAAA,IAAI,CAACqC,OAAAA,CAAQ,IAAI,EAAC,EAClBR,UAAU,CAACoB,SAAAA,CAAU,EACrBpB,UACAK,EAAAA,MAAAA,CAAAA;gBAGF/D,GAAG,CAACkE,QAAQ,GAAGQ,IAAAA;AACjB;SACK,MAAA;AACL1E,YAAAA,GAAG,CAACkE,OAAAA,CAAQ,GAAGrC,IAAI,CAACqC,OAAQ,CAAA;AAC9B;QAEA,OAAOlE,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN,CAAA;;ACtEA,MAAMgF,2BAA2B,CAACC,MAAAA,GAAAA;AAChC,IAAA,OACE,OAAOA,MAAW,KAAA,QAAA,IAAYA,WAAW,IAAQ,IAAA,IAAA,IAAQA,UAAU,gBAAoBA,IAAAA,MAAAA;AAE3F,CAAA;AAEA,MAAMC,mBAAAA,GAAsB,CAAC,EAC3BC,MAAAA,GAAS,OAAO,EAChBC,gBAAgB,EAChBlF,MAAM,EACmB,GAAA;IACzB,MAAM,EAAEpE,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B;;;MAIA,MAAMsJ,WAAc,GAAA,CAACC,GAAazJ,EAAAA,KAAAA,GAAAA;QAChC,IAAI,OAAOA,UAAU,QAAU,EAAA;AAC7B,YAAA,OAAO,CAAC,EAAEyJ,GAAAA,CAAI,EAAE,EAAEzJ,MAAM,CAAC;SACpB,MAAA,IAAImJ,yBAAyBnJ,KAAQ,CAAA,EAAA;AAC1C,YAAA,OAAO,CAAC,EAAEyJ,GAAAA,CAAI,EAAE,EAAExJ,aAAAA,CAAcD,OAAO,CAAC;AAC1C,SAAA,MAAO,IAAI0G,KAAAA,CAAMC,OAAO,CAAC3G,KAAQ,CAAA,EAAA;YAC/B,OAAOA,KAAAA,CAAM4G,GAAG,CAAC,CAAC8C,IAAMF,WAAYC,CAAAA,GAAAA,EAAKC,CAAIC,CAAAA,CAAAA,CAAAA,IAAI,CAAC,GAAA,CAAA;SAC7C,MAAA,IAAI,OAAO3J,KAAU,KAAA,QAAA,IAAY,CAAC0G,KAAMC,CAAAA,OAAO,CAAC3G,KAAQ,CAAA,EAAA;AAC7D,YAAA,OAAOmI,MAAOyB,CAAAA,OAAO,CAAC5J,KAAAA,CAAAA,CACnB4G,GAAG,CAAC,CAAC,CAACiD,CAAAA,EAAGH,EAAE,GAAKF,WAAAA,CAAYK,CAAGH,EAAAA,CAAAA,CAAAA,CAAAA,CAC/BC,IAAI,CAAC,GAAA,CAAA;SACH,MAAA;AACL;;AAEC,UACD,OAAO,EAAA;AACT;AACF,KAAA;AAEA,IAAA,IAAIJ,gBAAkB,EAAA;QACpB,MAAMO,wBAAAA,GAA2B3B,MAAOyB,CAAAA,OAAO,CAACL,gBAAAA,CAAAA,CAC7C3C,GAAG,CAAC,CAAC,CAAC6C,GAAAA,EAAKzJ,KAAM,CAAA,GAAA;AAChB,YAAA,OAAOwJ,YAAYC,GAAKzJ,EAAAA,KAAAA,CAAAA;AAC1B,SAAA,CAAA,CACC2J,IAAI,CAAC,GAAA,CAAA;AAER,QAAA,qBACE5I,eAACgB,CAAAA,iBAAAA,EAAAA;YAAKG,GAAK,EAAA,CAAA;;8BACTb,cAAC0I,CAAAA,iBAAAA,EAAAA;oBAAYC,IAAK,EAAA;;8BAClB3I,cAAC4I,CAAAA,oBAAAA,EAAAA;oBAAQtJ,KAAOmJ,EAAAA,wBAAAA;AACd,oBAAA,QAAA,gBAAAzI,cAAC5B,CAAAA,uBAAAA,EAAAA;wBACCyK,QAAU,EAAA,OAAA;wBACVC,SAAU,EAAA,WAAA;wBACV3H,OAAQ,EAAA,OAAA;wBACRJ,UAAW,EAAA,UAAA;wBACXgI,QAAQ,EAAA,IAAA;AAEPN,wBAAAA,QAAAA,EAAAA;;;;;AAKX;AAEA,IAAA,MAAMO,gBAAmB,GAAA,IAAA;AACvB,QAAA,IAAIhG,WAAW,cAAgB,EAAA;AAC7B,YAAA,IAAIiF,WAAW,WAAa,EAAA;gBAC1B,OAAO;AACLzH,oBAAAA,IAAAA,gBAAMR,cAACiJ,CAAAA,iBAAAA,EAAAA;wBAAYN,IAAK,EAAA;;AACxBO,oBAAAA,IAAAA,EAAMtK,aAAc,CAAA;wBAClBX,EAAI,EAAA,gDAAA;wBACJsB,cAAgB,EAAA;AAClB,qBAAA,CAAA;oBACAuJ,SAAW,EAAA,YAAA;oBACX/H,UAAY,EAAA;AACd,iBAAA;aACK,MAAA,IAAIkH,WAAW,UAAY,EAAA;gBAChC,OAAO;AACLzH,oBAAAA,IAAAA,gBAAMR,cAACmJ,CAAAA,4BAAAA,EAAAA;wBAAuBR,IAAK,EAAA;;AACnCO,oBAAAA,IAAAA,EAAMtK,aAAc,CAAA;wBAClBX,EAAI,EAAA,oCAAA;wBACJsB,cAAgB,EAAA;AAClB,qBAAA;AACF,iBAAA;aACK,MAAA;gBACL,OAAO;AACLiB,oBAAAA,IAAAA,gBAAMR,cAACiJ,CAAAA,iBAAAA,EAAAA;wBAAYN,IAAK,EAAA;;AACxBO,oBAAAA,IAAAA,EAAMtK,aAAc,CAAA;wBAClBX,EAAI,EAAA,4BAAA;wBACJsB,cAAgB,EAAA;AAClB,qBAAA;AACF,iBAAA;AACF;SACK,MAAA;AACL,YAAA,IAAI0I,WAAW,OAAS,EAAA;gBACtB,OAAO;AACLzH,oBAAAA,IAAAA,gBAAMR,cAACiJ,CAAAA,iBAAAA,EAAAA;wBAAYN,IAAK,EAAA;;AACxBO,oBAAAA,IAAAA,EAAMtK,aAAc,CAAA;wBAClBX,EAAI,EAAA,oDAAA;wBACJsB,cAAgB,EAAA;AAClB,qBAAA,CAAA;oBACAuJ,SAAW,EAAA,YAAA;oBACX/H,UAAY,EAAA;AACd,iBAAA;aACK,MAAA;gBACL,OAAO;AACLP,oBAAAA,IAAAA,gBAAMR,cAACiJ,CAAAA,iBAAAA,EAAAA;wBAAYN,IAAK,EAAA;;AACxBO,oBAAAA,IAAAA,EAAMtK,aAAc,CAAA;wBAClBX,EAAI,EAAA,sCAAA;wBACJsB,cAAgB,EAAA;AAClB,qBAAA,CAAA;oBACAuJ,SAAW,EAAA,YAAA;oBACX/H,UAAY,EAAA;AACd,iBAAA;AACF;AACF;AACF,KAAA;IAEA,MAAM,EAAEP,IAAI,EAAE0I,IAAI,EAAEJ,SAAY,GAAA,YAAY,EAAE/H,UAAAA,GAAa,QAAQ,EAAE,GAAGiI,gBAAAA,EAAAA;AAExE,IAAA,qBACEtJ,eAACgB,CAAAA,iBAAAA,EAAAA;QAAKG,GAAK,EAAA,CAAA;;AACRL,YAAAA,IAAAA;0BACDR,cAAC5B,CAAAA,uBAAAA,EAAAA;gBAAW0K,SAAWA,EAAAA,SAAAA;gBAAW/H,UAAYA,EAAAA,UAAAA;AAC3CmI,gBAAAA,QAAAA,EAAAA;;;;AAIT,CAAA;AAEA;;AAEkG,qGAElG,MAAME,SAAAA,GAAY,CAACC,MAAAA,iBAA4BrJ,cAAC5B,CAAAA,uBAAAA,EAAAA;QAAW2C,UAAW,EAAA,MAAA;AAAQsI,QAAAA,QAAAA,EAAAA;;AAiB9E,MAAMC,qBAAwB,GAAA,CAAC,EAC7BC,OAAO,EACPC,IAAI,EACJC,eAAe,EACfvB,gBAAmB,GAAA,EAAE,EACrBlF,MAAM,EACqB,GAAA;IAC3B,MAAM,EAAEpE,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAM6K,eAAeC,oBACnB,CAAA,uBAAA,EACA,CAACtH,KAAAA,GAAUA,MAAMqH,YAAY,CAAA;AAG/B,IAAA,MAAME,wBAA2B,GAAA,IAAA;QAC/B,MAAMC,qBAAAA,GAAwBL,IAAK3G,CAAAA,MAAM,CAAyB,CAACC,KAAK,EAAE0C,MAAM,EAAEyC,MAAM,EAAE,GAAA;YACxFnF,GAAG,CAAC0C,OAAO,GAAGyC,MAAAA;YACd,OAAOnF,GAAAA;AACT,SAAA,EAAG,EAAC,CAAA;QACJ,MAAMgH,iBAAAA,GAAoBhD,MAAOC,CAAAA,IAAI,CAACmB,gBAAAA,CAAAA;AAEtC,QAAA,MAAM6B,cAAiBL,GAAAA,YAAAA,CAAajH,MAAM,CACxC,CAAC,EAAE+C,MAAM,EAAE,GAAKqE,qBAAqB,CAACrE,MAAO,CAAA,KAAK,aAClDwE,MAAM;QAER,MAAMC,UAAAA,GAAaP,YAAajH,CAAAA,MAAM,CACpC,CAAC,EAAE+C,MAAM,EAAE,GACT,CAACqE,qBAAqB,CAACrE,MAAO,CAAA,KAAK,OACjCqE,IAAAA,qBAAqB,CAACrE,MAAAA,CAAO,KAAK,UAAS,KAC7C,CAACsE,iBAAkB7C,CAAAA,QAAQ,CAACzB,MAAAA,CAAAA,CAAAA,CAC9BwE,MAAM;QAER,MAAME,eAAAA,GAAkBJ,kBAAkBE,MAAM;QAChD,MAAMG,SAAAA,GACJnH,MAAW,KAAA,cAAA,GACP,4EACA,GAAA,8EAAA;QAEN,MAAMzD,cAAAA,GACJyD,MAAW,KAAA,cAAA,GACP,qUACA,GAAA,wNAAA;AAEN,QAAA,OAAOpE,aACL,CAAA;YACEX,EAAIkM,EAAAA,SAAAA;AACJ5K,YAAAA;SAEF,EAAA;AACE2K,YAAAA,eAAAA;AACAD,YAAAA,UAAAA;AACAF,YAAAA,cAAAA;YACAK,CAAGhB,EAAAA;AACL,SAAA,CAAA;AAEJ,KAAA;IAEA,qBACE1J,eAAA,CAAC2K,mBAAM9J,IAAI,EAAA;;0BACTP,cAAC5B,CAAAA,uBAAAA,EAAAA;AAAYwL,gBAAAA,QAAAA,EAAAA,wBAAAA;;0BACb5J,cAACsK,CAAAA,gBAAAA,EAAAA;gBAAIC,SAAW,EAAA,CAAA;wCACd7K,eAAA,CAAC8K,kBAAMnK,OAAO,EAAA;;AACZ,sCAAAX,eAAA,CAAC8K,kBAAMC,IAAI,EAAA;;AACT,8CAAAzK,cAAA,CAACwK,kBAAME,kBAAkB,EAAA,EAAA,CAAA;AACxBnB,gCAAAA,OAAAA,CAAQhE,GAAG,CAAC,CAACoF,IACZ,iBAAA3K,cAAA,CAACwK,kBAAMI,UAAU,EAAA;AAAkB,wCAAA,GAAGD;AAAfA,qCAAAA,EAAAA,IAAAA,CAAKlM,IAAI,CAAA;;;AAGpC,sCAAAuB,cAAA,CAACwK,kBAAMjK,IAAI,EAAA;sCACRiJ,IAAKjE,CAAAA,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAEyC,MAAM,EAAE,EAAEX,KAAAA,GAAAA;AAC7B,gCAAA,MAAMrC,KAAQiD,GAAAA,gBAAAA,GAAmB1C,MAAAA,CAAO,IAAI,IAAA;AAE5C,gCAAA,MAAMqF,gBACJ5C,MAAW,KAAA,OAAA,GAAU,SAAYA,GAAAA,MAAAA,KAAW,cAAc,SAAY,GAAA,aAAA;gCAExE,qBACEvI,eAAA,CAAC8K,kBAAMM,GAAG,EAAA;;AACR,sDAAA9K,cAAA,CAACwK,kBAAMO,YAAY,EAAA;4CAAC9M,EAAIuH,EAAAA,MAAAA;AAAQwF,4CAAAA,YAAAA,EAAY,CAAC,OAAO,EAAExF,MAAAA,CAAO;;AAC7D,sDAAAxF,cAAA,CAACwK,kBAAMS,IAAI,EAAA;AACT,4CAAA,QAAA,gBAAAjL,cAAC5B,CAAAA,uBAAAA,EAAAA;gDAAW+C,OAAQ,EAAA,OAAA;gDAAQ2H,SAAU,EAAA,YAAA;AACnCzD,gDAAAA,QAAAA,EAAAA,KAAAA,CAAMC,OAAO,CAACmE,eACXA,CAAAA,GAAAA,eAAAA,CAAgByB,IAAI,CAAC,CAACC,WAAAA,GAAgBA,WAAYC,CAAAA,IAAI,KAAK5F,MAAAA,CAAAA,EAAS/G,IACpE+G,GAAAA;;;AAGR,sDAAAxF,cAAA,CAACwK,kBAAMS,IAAI,EAAA;AACT,4CAAA,QAAA,gBAAAjL,cAACsK,CAAAA,gBAAAA,EAAAA;gDAAIe,OAAQ,EAAA,MAAA;AACX,gDAAA,QAAA,gBAAArL,cAACsL,CAAAA,mBAAAA,EAAAA;oDACCD,OAAQ,EAAA,MAAA;oDACRE,WAAY,EAAA,KAAA;oDACZC,YAAa,EAAA,KAAA;oDACbC,UAAW,EAAA,KAAA;oDACXC,aAAc,EAAA,KAAA;oDACdC,IAAM,EAAA,GAAA;oDACNxK,OAAS0J,EAAAA,aAAAA;AAET,oDAAA,QAAA,gBAAA7K,cAAC5B,CAAAA,uBAAAA,EAAAA;wDAAWwN,GAAI,EAAA,MAAA;wDAAOzK,OAAQ,EAAA,IAAA;wDAAKJ,UAAW,EAAA,MAAA;kEAC5CY,UAAWsG,CAAAA,MAAAA;;;;;AAKpB,sDAAAjI,cAAA,CAACwK,kBAAMS,IAAI,EAAA;AACT,4CAAA,QAAA,gBAAAjL,cAACgI,CAAAA,mBAAAA,EAAAA;gDAAoBE,gBAAkBjD,EAAAA,KAAAA;gDAAOgD,MAAQA,EAAAA,MAAAA;gDAAQjF,MAAQA,EAAAA;;;AAExE,sDAAAhD,cAAA,CAACwK,kBAAMS,IAAI,EAAA;AACT,4CAAA,QAAA,gBAAAjL,cAAC6L,CAAAA,uBAAAA,EAAAA;gDACCD,GAAKE,EAAAA,mBAAAA;gDACLC,EAAI,EAAA;AACFC,oDAAAA,MAAAA,EAAQC,YAAU,CAAA;wDAAEC,OAAS,EAAA;4DAAEzK,IAAM,EAAA;AAAE+D,gEAAAA;AAAO;AAAE;AAAE,qDAAA;AACpD,iDAAA;AACAlG,gDAAAA,KAAAA,EAAOV,aACL,CAAA;AACEX,oDAAAA,EAAAA,EAAID,cAAe,CAAA,4BAAA,CAAA;oDACnBuB,cAAgB,EAAA;iDAElB,EAAA;oDACEd,IAAM+G,EAAAA;AACR,iDAAA,CAAA;gDAEFrE,OAAQ,EAAA,OAAA;AAER,gDAAA,QAAA,gBAAAnB,cAACmM,CAAAA,YAAAA,EAAAA,EAAAA;;;;AA9CS7E,iCAAAA,EAAAA,KAAAA,CAAAA;AAmDpB,6BAAA;;;;;;;AAMZ,CAAA;;AC9PA,MAAM8E,cAAqE,GAAA;IACzEC,KAAO,EAAA,WAAA;IACPC,SAAW,EAAA,SAAA;IACXC,QAAU,EAAA;AACZ,CAAA;AAEA,MAAMC,YAAAA,GAAe,CAAC,EACpBC,wBAAwB,EACxBjH,MAAM,EACNyC,MAAM,EACNyE,WAAW,EACO,GAAA;IAClB,MAAM,EAAE9N,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,IAAI,CAAC6N,WAAa,EAAA;AAChB,QAAA,OAAO9N,aACL,CAAA;AACEX,YAAAA,EAAAA,EAAID,cAAe,CAAA,sCAAA,CAAA;YACnBuB,cAAgB,EAAA;SAElB,EAAA;YACEoN,IAAM,EAAA,CAACnH,uBAA4BxF,cAACoK,CAAAA,GAAAA,EAAAA;AAAG5E,oBAAAA,QAAAA,EAAAA;;AACvCA,YAAAA,MAAAA,EAAQA,OAAO/G;AACjB,SAAA,CAAA;AAEJ;AAEA,IAAA,qBACEiB,eAACgB,CAAAA,iBAAAA,EAAAA;QAAKkM,KAAM,EAAA,MAAA;QAAO/L,GAAK,EAAA,CAAA;QAAGC,cAAe,EAAA,eAAA;;0BACxCd,cAAC5B,CAAAA,uBAAAA,EAAAA;AAAYoH,gBAAAA,QAAAA,EAAAA,MAAAA,CAAO/G;;AACnBgO,YAAAA,wBAAAA,iBACCzM,cAACsL,CAAAA,mBAAAA,EAAAA;gBACCD,OAAQ,EAAA,MAAA;gBACRE,WAAY,EAAA,KAAA;gBACZC,YAAa,EAAA,KAAA;gBACbC,UAAW,EAAA,KAAA;gBACXC,aAAc,EAAA,KAAA;gBACdC,IAAK,EAAA,GAAA;gBACLxK,OAASiL,EAAAA,cAAc,CAACnE,MAAO,CAAA;AAE/B,gBAAA,QAAA,gBAAAjI,cAAC5B,CAAAA,uBAAAA,EAAAA;oBAAWwN,GAAI,EAAA,MAAA;oBAAOzK,OAAQ,EAAA,IAAA;oBAAKJ,UAAW,EAAA,MAAA;8BAC5CY,UAAWsG,CAAAA,MAAAA;;AAGd,aAAA,CAAA,GAAA;;;AAGV,CAAA;AAEA,MAAM4E,kBAAqB,GAAA,CAAC,EAC1BC,QAAQ,EACRC,IAAI,EACJnJ,KAAK,EACLD,cAAc,EACdqJ,UAAU,EACQ,GAAA;IAClB,MAAM,EAAEpO,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAAC,EAAE6F,KAAK,EAAE,EAAEuI,SAAS,GAAGC,0BAAAA,EAAAA;AAC9B,IAAA,MAAM,EAAEnJ,OAAO,EAAEX,SAAS,EAAEC,OAAO,EAAE,GAAGrB,OAAAA,EAAAA;AACxC,IAAA,MAAM,EAAE2C,IAAAA,EAAMxB,OAAU,GAAA,EAAE,EAAE,GAAG0C,kBAAAA,EAAAA;AAC/B,IAAA,MAAMsH,oBAAuBzI,GAAAA,KAAAA,CAAMwH,OAAO,EAAEzK,IAAM+D,EAAAA,MAAAA;AAClD,IAAA,MAAM,EAAE/B,MAAM,EAAE,GAAGC,kCAAY,CAAA;AAC7BE,QAAAA,KAAAA;AACAD,QAAAA,cAAAA;AACAqJ,QAAAA,UAAAA;QACA/K,MAAQ,EAAA;YAAEuD,MAAQ2H,EAAAA;AAAqB;AACzC,KAAA,CAAA;AAEA,IAAA,MAAMC,YAAepO,GAAAA,gBAAAA,CAAMqO,WAAW,CACpC,CAAC1O,KAAAA,GAAAA;QACCsO,QAAS,CAAA;YACPf,OAAS,EAAA;AACP,gBAAA,GAAGxH,MAAMwH,OAAO;gBAChBzK,IAAM,EAAA;oBACJ+D,MAAQ7G,EAAAA;AACV;AACF;AACF,SAAA,CAAA;KAEF,EAAA;AAAC+F,QAAAA,KAAAA,CAAMwH,OAAO;AAAEe,QAAAA;AAAS,KAAA,CAAA;AAG3BjO,IAAAA,gBAAAA,CAAMsO,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACjI,KAAMC,CAAAA,OAAO,CAACnC,OAAAA,CAAAA,IAAY,CAACY,OAAS,EAAA;AACvC,YAAA;AACF;AACA;;;QAIA,MAAMwJ,kBAAkBpK,OAAQ+H,CAAAA,IAAI,CAAC,CAACsC,GAAAA,GAAQA,GAAIpC,CAAAA,IAAI,KAAK+B,oBAAAA,CAAAA;AAC3D,QAAA,MAAMM,gBAAgBtK,OAAQ+H,CAAAA,IAAI,CAAC,CAAC1F,MAAAA,GAAWA,OAAOkI,SAAS,CAAA;QAC/D,IAAI,CAACH,eAAmBE,IAAAA,aAAAA,EAAerC,IAAM,EAAA;AAC3CgC,YAAAA,YAAAA,CAAaK,cAAcrC,IAAI,CAAA;AACjC;KACC,EAAA;AAACgC,QAAAA,YAAAA;AAAcrJ,QAAAA,OAAAA;AAASZ,QAAAA,OAAAA;AAASgK,QAAAA;AAAqB,KAAA,CAAA;AAEzD,IAAA,MAAMQ,aAAgBtI,GAAAA,KAAAA,CAAMC,OAAO,CAACnC,OAChCA,CAAAA,GAAAA,OAAAA,CAAQ+H,IAAI,CAAC,CAAC1F,MAAAA,GAAWA,MAAO4F,CAAAA,IAAI,KAAK+B,oBACzC/F,CAAAA,GAAAA,SAAAA;AAEJ,IAAA,MAAMwG,iBAAoB,GAAA;AACxB,QAAA;AAAE3F,YAAAA,MAAAA,EAAQ4F,kBAAkBf,QAAUC,EAAAA,IAAAA,CAAAA;AAAOvH,YAAAA,MAAAA,EAAQmI,aAAevC,EAAAA;AAAK,SAAA;AACrE0B,QAAAA,GAAAA,QAAAA,EAAUgB,iBAAiB;AAChC,KAAA;IAED,IAAI,CAAC/J,OAAW,IAAA,CAACsB,KAAMC,CAAAA,OAAO,CAACnC,OAAYA,CAAAA,IAAAA,OAAAA,CAAQ6G,MAAM,KAAK,CAAG,EAAA;QAC/D,OAAO,IAAA;AACT;AAEA,IAAA,MAAM+D,gBAAmB5K,GAAAA,OAAAA,CAAQV,MAAM,CAAC,CAAC+C,MAAAA,GAAAA;AACvC;;;AAGC,QACD,OAAOnC,OAAAA,CAAQ4D,QAAQ,CAACzB,OAAO4F,IAAI,CAAA;AACrC,KAAA,CAAA;IAEA,OAAO;AACL9L,QAAAA,KAAAA,EAAOV,aAAc,CAAA;AACnBX,YAAAA,EAAAA,EAAID,cAAe,CAAA,sCAAA,CAAA;YACnBuB,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAyO,OAASD,EAAAA,gBAAAA,CAAiBxI,GAAG,CAAC,CAACC,MAAAA,GAAAA;YAC7B,MAAMyI,qBAAAA,GAAwBL,iBAAkBM,CAAAA,IAAI,CAAC,CAACC,MAAQA,GAAI3I,CAAAA,MAAM,KAAKA,MAAAA,CAAO4F,IAAI,CAAA;AAExF,YAAA,MAAMgD,gBAAmBR,GAAAA,iBAAAA,CAAkB1C,IAAI,CAAC,CAACiD,GAAAA,GAC/C,QAAYA,IAAAA,GAAAA,GAAMA,GAAI3I,CAAAA,MAAM,KAAKA,MAAAA,CAAO4F,IAAI,GAAG,KAAA,CAAA;YAGjD,MAAMiD,kBAAAA,GAAqBD,mBAAmB/K,OAAUD,GAAAA,SAAAA;YAExD,OAAO;AACLkL,gBAAAA,QAAAA,EAAU,CAACD,kBAAAA,CAAmBpH,QAAQ,CAACzB,OAAO4F,IAAI,CAAA;AAClDzM,gBAAAA,KAAAA,EAAO6G,OAAO4F,IAAI;AAClB9L,gBAAAA,KAAAA,gBACEU,cAACwM,CAAAA,YAAAA,EAAAA;oBACCC,wBAA0B,EAAA,CAAC,CAAChJ,MAAAA,EAAQuK,OAASO,EAAAA,eAAAA;oBAC7C/I,MAAQA,EAAAA,MAAAA;AACRyC,oBAAAA,MAAAA,EAAQmG,gBAAkBnG,EAAAA,MAAAA;oBAC1ByE,WAAauB,EAAAA;;gBAGjBO,SAAW,EAAA,CAACP,qBAAwB,iBAAAjO,cAAA,CAACyO,UAAU,EAAA,EAAA,CAAA,GAAA;AACjD,aAAA;AACF,SAAA,CAAA;AACAC,QAAAA,gBAAAA,EAAkB,IAAMf,aAAelP,EAAAA,IAAAA;QACvCkQ,QAAUvB,EAAAA,YAAAA;QACVzO,KAAOgP,EAAAA;AACT,KAAA;AACF,CAAA;AAIA,MAAME,iBAAAA,GAAoB,CACxBf,QACAC,EAAAA,IAAAA,GAAAA;AAEA,IAAA,MAAM6B,YAAY9B,QAAU7E,EAAAA,MAAAA;IAC5B,MAAM4G,QAAAA,GAAW9B,IAAM+B,EAAAA,eAAAA,IAAmB,EAAE;AAE5C;;MAGA,IAAI,CAACF,SAAW,EAAA;QACd,OAAO,OAAA;AACT;AAEA;;MAGA,IAAIA,SAAc,KAAA,OAAA,IAAWC,QAAS3D,CAAAA,IAAI,CAAC,CAACiD,GAAQA,GAAAA,GAAAA,CAAIY,WAAW,KAAK,IAAO,CAAA,EAAA;QAC7E,OAAO,WAAA;AACT;IAEA,OAAOH,SAAAA;AACT,CAAA;AAEA;;qGAIA,MAAMI,2BAA8B,GAAA,CAAC,EACnChC,UAAU,EACVD,IAAI,EACJnJ,KAAK,EACLD,cAAc,EACI,GAAA;IAClB,MAAM,EAAE/E,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAAC,EAAE6F,KAAK,EAAE,CAAC,GAAGwI,0BAAAA,EAAAA;IACpB,MAAM,EAAEnJ,OAAO,EAAE,GAAG/B,OAAAA,EAAAA;AACpB,IAAA,MAAMmL,oBAAuBzI,GAAAA,KAAAA,CAAMwH,OAAO,EAAEzK,IAAM+D,EAAAA,MAAAA;AAClD,IAAA,MAAM,CAACyJ,cAAgBC,EAAAA,iBAAAA,CAAkB,GAAGlQ,gBAAAA,CAAMC,QAAQ,CAAgB,IAAA,CAAA;AAC1E,IAAA,MAAMkQ,YAAYC,mBAAQ,CAAA,uBAAA,EAAyB,CAAC/M,KAAAA,GAAUA,MAAM8M,SAAS,CAAA;IAE7E,MAAM,EAAEE,WAAW,EAAE,GAAGC,yCAAAA,EAAAA;AACxB,IAAA,MAAM,EAAE7L,MAAM,EAAE+C,UAAU,EAAE,GAAG9C,kCAAY,CAAA;AACzCE,QAAAA,KAAAA;AACAoJ,QAAAA,UAAAA;AACArJ,QAAAA,cAAAA;QACA1B,MAAQ,EAAA;YAAEuD,MAAQ2H,EAAAA;AAAqB;AACzC,KAAA,CAAA;AACA,IAAA,MAAM,EAAExI,IAAAA,EAAMxB,OAAU,GAAA,EAAE,EAAE,GAAG0C,kBAAAA,EAAAA;IAE/B,MAAM0J,gBAAAA,GAAmBlK,MAAMC,OAAO,CAACnC,WACnCA,OAAQV,CAAAA,MAAM,CAAC,CAAC+C,MAAAA,GAAWuH,MAAMwC,gBAAiBrB,CAAAA,IAAAA,CAAK,CAACsB,CAAMA,GAAAA,CAAAA,CAAEhK,MAAM,KAAKA,MAAAA,CAAO4F,IAAI,CAAA,CAAA,GACtF,EAAE;IAEN,MAAMqE,cAAAA,GAAiB,CAACC,OAAwB,GAAA,UAAA;YAC9C,MAAMrJ,QAAAA,GAAW,MAAMgJ,WAAY,CAAA;AACjC1L,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAoJ,gBAAAA,UAAAA;gBACA/K,MAAQ,EAAA;oBAAEuD,MAAQyJ,EAAAA;AAAe;AACnC,aAAA,CAAA;YACA,IAAI,CAAC5I,QAAY,IAAA,CAAC5C,MAAQ,EAAA;AACxB,gBAAA;AACF;YAEA,MAAM,EAAEkB,IAAI,EAAE,GAAG0B,QAAAA;YAEjB,MAAMI,WAAAA,GAAcF,SAAU5B,CAAAA,IAAAA,EAAMlB,MAAQ+C,EAAAA,UAAAA,CAAAA;YAE5C2I,SAAU1I,CAAAA,WAAAA,CAAAA;AAEViJ,YAAAA,OAAAA,EAAAA;AACF,SAAA;AAEA,IAAA,IAAI,CAAC3L,OAAS,EAAA;QACZ,OAAO,IAAA;AACT;IAEA,OAAO;QACL3E,IAAM,EAAA,MAAA;AACNoB,QAAAA,IAAAA,gBAAMR,cAAC2P,CAAAA,cAAAA,EAAAA,EAAAA,CAAAA;QACPrB,QAAUiB,EAAAA,gBAAAA,CAAiBvF,MAAM,KAAK,CAAA;AACtC1K,QAAAA,KAAAA,EAAOV,aAAc,CAAA;AACnBX,YAAAA,EAAAA,EAAID,cAAe,CAAA,gCAAA,CAAA;YACnBuB,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAqQ,MAAQ,EAAA;YACNxQ,IAAM,EAAA,QAAA;AACNyQ,YAAAA,KAAAA,EAAOjR,aAAc,CAAA;AACnBX,gBAAAA,EAAAA,EAAID,cAAe,CAAA,mCAAA,CAAA;gBACnBuB,cAAgB,EAAA;AAClB,aAAA,CAAA;AACAuQ,YAAAA,OAAAA,EAAS,CAAC,EAAEJ,OAAO,EAA2B,iBAC5ChQ,eAAA,CAAAqQ,mBAAA,EAAA;;AACE,sCAAA/P,cAAA,CAACL,oBAAOY,IAAI,EAAA;AACV,4BAAA,QAAA,gBAAAb,eAACgB,CAAAA,iBAAAA,EAAAA;gCAAKC,SAAU,EAAA,QAAA;gCAASE,GAAK,EAAA,CAAA;;kDAC5Bb,cAACS,CAAAA,mBAAAA,EAAAA;wCAAcmM,KAAM,EAAA,MAAA;wCAAOoD,MAAO,EAAA,MAAA;wCAAOrH,IAAK,EAAA;;kDAC/C3I,cAAC5B,CAAAA,uBAAAA,EAAAA;wCAAW6R,SAAU,EAAA,QAAA;kDACnBrR,aAAc,CAAA;AACbX,4CAAAA,EAAAA,EAAID,cAAe,CAAA,kCAAA,CAAA;4CACnBuB,cACE,EAAA;AACJ,yCAAA;;AAEF,kDAAAG,eAAA,CAACK,mBAAMH,IAAI,EAAA;wCAACgN,KAAM,EAAA,MAAA;;AAChB,0DAAA5M,cAAA,CAACD,mBAAMmQ,KAAK,EAAA;0DACTtR,aAAc,CAAA;AACbX,oDAAAA,EAAAA,EAAID,cAAe,CAAA,yCAAA,CAAA;oDACnBuB,cAAgB,EAAA;AAClB,iDAAA;;0DAEFS,cAACmQ,CAAAA,yBAAAA,EAAAA;gDACCxR,KAAOsQ,EAAAA,cAAAA;AACPmB,gDAAAA,WAAAA,EAAaxR,aAAc,CAAA;AACzBX,oDAAAA,EAAAA,EAAID,cAAe,CAAA,+CAAA,CAAA;oDACnBuB,cAAgB,EAAA;AAClB,iDAAA,CAAA;;gDAEAb,QAAU,EAAA,CAACC,QAAUuQ,iBAAkBvQ,CAAAA,KAAAA,CAAAA;AAEtC4Q,gDAAAA,QAAAA,EAAAA,gBAAAA,CAAiBhK,GAAG,CAAC,CAACC,MAAAA,iBACrBxF,cAACqQ,CAAAA,+BAAAA,EAAAA;AAAqC1R,wDAAAA,KAAAA,EAAO6G,OAAO4F,IAAI;AACrD5F,wDAAAA,QAAAA,EAAAA,MAAAA,CAAO/G;AADe+G,qDAAAA,EAAAA,MAAAA,CAAO4F,IAAI,CAAA;;;;;;;AAQ9C,sCAAApL,cAAA,CAACL,oBAAOqB,MAAM,EAAA;AACZ,4BAAA,QAAA,gBAAAtB,eAACgB,CAAAA,iBAAAA,EAAAA;gCAAKG,GAAK,EAAA,CAAA;gCAAG+L,KAAM,EAAA,MAAA;;kDAClB5M,cAACkB,CAAAA,mBAAAA,EAAAA;wCAAOoP,IAAK,EAAA,MAAA;wCAAOnP,OAAQ,EAAA,UAAA;wCAAWE,OAASqO,EAAAA,OAAAA;kDAC7C9Q,aAAc,CAAA;AACbX,4CAAAA,EAAAA,EAAID,cAAe,CAAA,kCAAA,CAAA;4CACnBuB,cAAgB,EAAA;AAClB,yCAAA;;kDAEFS,cAACkB,CAAAA,mBAAAA,EAAAA;wCAAOoP,IAAK,EAAA,MAAA;wCAAOnP,OAAQ,EAAA,SAAA;AAAUE,wCAAAA,OAAAA,EAASoO,cAAeC,CAAAA,OAAAA,CAAAA;kDAC3D9Q,aAAc,CAAA;AACbX,4CAAAA,EAAAA,EAAID,cAAe,CAAA,kCAAA,CAAA;4CACnBuB,cAAgB,EAAA;AAClB,yCAAA;;;;;;;AAMZ;AACF,KAAA;AACF,CAAA;AAEA;;qGAIA,MAAMgR,kBAA8C,GAAA,CAAC,EACnDzD,QAAQ,EACRE,UAAU,EACVpJ,KAAK,EACLD,cAAc,EACf,GAAA;IACC,MAAM,EAAE/E,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM2R,QAAWC,GAAAA,0BAAAA,EAAAA;IACjB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,MAAAA,EAAQC,YAAY,EAAE,GAAGvB,yCAAAA,EAAAA;AACjC,IAAA,MAAM,EAAEvL,OAAO,EAAER,SAAS,EAAE,GAAGvB,OAAAA,EAAAA;;AAG/B,IAAA,MAAM,CAAC,EAAE0C,KAAK,EAAE,CAAC,GAAGwI,0BAAAA,EAAAA;AACpB,IAAA,MAAM,EAAEvI,IAAAA,EAAMxB,OAAU,GAAA,EAAE,EAAE,GAAG0C,kBAAAA,EAAAA;AAC/B,IAAA,MAAMsH,oBAAuBzI,GAAAA,KAAAA,CAAMwH,OAAO,EAAEzK,IAAM+D,EAAAA,MAAAA;AAClD,IAAA,MAAMA,MAAS,GAAA,EAAE,OAAA,IAAWrC,OAAM,CAAA,IAAMA,OAAQ+H,CAAAA,IAAI,CAAC,CAACsC,GAAQA,GAAAA,GAAAA,CAAIpC,IAAI,KAAK+B,oBAAAA,CAAAA;AAE3E,IAAA,IAAI,CAACpJ,OAAS,EAAA;QACZ,OAAO,IAAA;AACT;IAEA,OAAO;AACLuK,QAAAA,QAAAA,EACE,QAACxB,EAAUtH,MAAU,IAAA,CAACjC,UAAU0D,QAAQ,CAAC6F,QAAStH,CAAAA,MAAM,CAAM,IAAA,CAACsH,QAAY,IAAA,CAACA,SAAS7O,EAAE;QACzF6S,QAAU,EAAA;AAAC,YAAA,QAAA;AAAU,YAAA;AAAY,SAAA;AACjCxR,QAAAA,KAAAA,EAAOV,aACL,CAAA;AACEX,YAAAA,EAAAA,EAAID,cAAe,CAAA,sBAAA,CAAA;YACnBuB,cAAgB,EAAA;SAElB,EAAA;YAAEiG,MAAQA,EAAAA,MAAAA,IAAUA,OAAO/G;AAAK,SAAA,CAAA;AAElC+B,QAAAA,IAAAA,gBAAMR,cAAC+Q,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;QACP5P,OAAS,EAAA,QAAA;QACTyO,MAAQ,EAAA;YACNxQ,IAAM,EAAA,QAAA;AACNyQ,YAAAA,KAAAA,EAAOjR,aAAc,CAAA;AACnBX,gBAAAA,EAAAA,EAAID,cAAe,CAAA,6BAAA,CAAA;gBACnBuB,cAAgB,EAAA;AAClB,aAAA,CAAA;AACAuQ,YAAAA,OAAAA,gBACEpQ,eAACgB,CAAAA,iBAAAA,EAAAA;gBAAKC,SAAU,EAAA,QAAA;gBAASE,GAAK,EAAA,CAAA;;kCAC5Bb,cAACS,CAAAA,mBAAAA,EAAAA;wBAAcmM,KAAM,EAAA,MAAA;wBAAOoD,MAAO,EAAA,MAAA;wBAAOrH,IAAK,EAAA;;kCAC/C3I,cAAC5B,CAAAA,uBAAAA,EAAAA;wBAAWwN,GAAI,EAAA,GAAA;wBAAIzK,OAAQ,EAAA,OAAA;wBAAQ8O,SAAU,EAAA,QAAA;kCAC3CrR,aAAc,CAAA;AACbX,4BAAAA,EAAAA,EAAID,cAAe,CAAA,4BAAA,CAAA;4BACnBuB,cAAgB,EAAA;AAClB,yBAAA;;;;YAINyR,SAAW,EAAA,UAAA;gBACT,MAAMC,cAAAA;;AAGHtN,gBAAAA,cAAAA,KAAmB,cAAkB,IAAA,CAACqJ,UAAe,IAAA,CAACF,QAAUtH,EAAAA,MAAAA;AAEnE,gBAAA,IAAIyL,cAAgB,EAAA;AAClBC,oBAAAA,OAAAA,CAAQjM,KAAK,CACX,qHAAA,CAAA;oBAGFyL,kBAAmB,CAAA;AACjBS,wBAAAA,OAAAA,EAASvS,aAAc,CAAA;AACrBX,4BAAAA,EAAAA,EAAID,cAAe,CAAA,sBAAA,CAAA;4BACnBuB,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAH,IAAM,EAAA;AACR,qBAAA,CAAA;AAEA,oBAAA;AACF;gBAEA,MAAMgG,GAAAA,GAAM,MAAMyL,YAAa,CAAA;AAC7B7D,oBAAAA,UAAAA;AACApJ,oBAAAA,KAAAA;AACAD,oBAAAA,cAAAA;oBACA1B,MAAQ,EAAA;AAAEuD,wBAAAA,MAAAA,EAAQsH,SAAStH;AAAO;AACpC,iBAAA,CAAA;AAEA,gBAAA,IAAI,EAAE,OAAWJ,IAAAA,GAAE,CAAI,EAAA;oBACrBoL,QAAS,CAAA;AAAEY,wBAAAA,QAAAA,EAAU,CAAC,GAAG,EAAEzN,eAAe,CAAC,EAAEC,MAAM;qBAAK,EAAA;wBAAEyN,OAAS,EAAA;AAAK,qBAAA,CAAA;AAC1E;AACF;AACF;AACF,KAAA;AACF,CAAA;AAWA;;;;AAIkG,qGAElG,MAAMC,gBAAAA,GAA4C,CAAC,EACjDxE,QAAQ,EACRE,UAAU,EACVpJ,KAAK,EACLD,cAAc,EACdX,MAAM,EACsB,GAAA;IAC5B,MAAMwC,MAAAA,GAASsH,UAAUtH,MAAU,IAAA,IAAA;AACnC,IAAA,MAAM,CAAC,SAAEd,OAAK,EAAE,CAAC,GAAGwI,0BAAAA,EAAAA;AAEpB,IAAA,MAAMjL,SAASjD,gBAAMwD,CAAAA,OAAO,CAAC,IAAM+O,+BAAiB7M,OAAQ,CAAA,EAAA;AAACA,QAAAA;AAAM,KAAA,CAAA;IACnE,MAAM8M,gBAAAA,GAAmB9M,OAAMuD,CAAAA,MAAM,KAAK,WAAA;IAE1C,MAAM,EAAErJ,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEkF,OAAO,EAAEP,UAAU,EAAE,GAAGxB,OAAAA,EAAAA;IAChC,MAAM,EAAE0O,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEc,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,8BAAAA,EAAAA;AAEpD,IAAA,MAAM,CAACjI,YAAckI,EAAAA,eAAAA,CAAgB,GAAG5S,gBAAMC,CAAAA,QAAQ,CAAQ,EAAE,CAAA;AAChE,IAAA,MAAM,CAAC4S,+BAAiCC,EAAAA,kCAAAA,CAAmC,GACzE9S,gBAAAA,CAAMC,QAAQ,CAAU,KAAA,CAAA;AAE1B,IAAA,MAAM,EAAE8S,WAAaC,EAAAA,iBAAiB,EAAEC,aAAeC,EAAAA,mBAAmB,EAAE,GAC1E5C,yCAAAA,EAAAA;AAEF,IAAA,MAAM,EAAE7L,MAAM,EAAE0O,QAAQ,EAAE,GAAGzO,kCAC3B,CAAA;AACEE,QAAAA,KAAAA;AACAD,QAAAA,cAAAA;AACAqJ,QAAAA,UAAAA;QACA/K,MAAQ,EAAA;AACNuD,YAAAA;AACF;KAEF,EAAA;;QAEE3B,IAAM,EAAA;AACR,KAAA,CAAA;IAGF,MAAM,EAAEc,MAAM8E,eAAkB,GAAA,EAAE,EAAE,GAAG5D,kBAAAA,CAAmB9B,UAAUqD,SAAYgL,GAAAA,eAAAA,CAAAA;AAEhF,IAAA,MAAM7I,OAAU,GAAA;AACd,QAAA;AACEjK,YAAAA,KAAAA,EAAOV,aAAc,CAAA;gBACnBX,EAAI,EAAA,aAAA;gBACJsB,cAAgB,EAAA;AAClB,aAAA,CAAA;YACAd,IAAM,EAAA;AACR,SAAA;AACA,QAAA;AACEa,YAAAA,KAAAA,EAAOV,aAAc,CAAA;AACnBX,gBAAAA,EAAAA,EAAID,cAAe,CAAA,6BAAA,CAAA;gBACnBuB,cAAgB,EAAA;AAClB,aAAA,CAAA;YACAd,IAAM,EAAA;AACR,SAAA;AACA,QAAA;AACEa,YAAAA,KAAAA,EAAOV,aAAc,CAAA;AACnBX,gBAAAA,EAAAA,EAAID,cAAe,CAAA,yCAAA,CAAA;gBACnBuB,cAAgB,EAAA;AAClB,aAAA,CAAA;YACAd,IAAM,EAAA;AACR;AACD,KAAA;;;AAID,IAAA,MAAM,CAAC+K,IAAMtB,EAAAA,gBAAAA,CAAiB,GAAGlJ,gBAAAA,CAAMwD,OAAO,CAAC,IAAA;AAC7C,QAAA,IAAI,CAACsK,QAAU,EAAA;YACb,OAAO;gBAAC,EAAE;gBAAE;AAAG,aAAA;AACjB;AAEA,QAAA,MAAMgB,aAAgBhB,GAAAA,QAAAA,CAASgB,aAAa,IAAI,EAAE;;;AAIlD,QAAA,MAAM3K,OAA0B2K,GAAAA,aAAAA,CAAcvI,GAAG,CAAC,CAAC4I,GAAAA,GAAAA;AACjD,YAAA,MAAM,EAAE3I,MAAM,EAAEyC,MAAM,EAAE,GAAGkG,GAAAA;YAC3B,OAAO;AAAE3I,gBAAAA,MAAAA;AAAQyC,gBAAAA;AAAO,aAAA;AAC1B,SAAA,CAAA;;AAGA9E,QAAAA,OAAAA,CAAQkP,OAAO,CAAC;AACd7M,YAAAA,MAAAA,EAAQsH,SAAStH,MAAM;AACvByC,YAAAA,MAAAA,EAAQ6E,SAAS7E;AACnB,SAAA,CAAA;;AAGA,QAAA,MAAMqK,YAAe,GAAA;AAACxF,YAAAA,QAAAA;AAAagB,YAAAA,GAAAA;AAAc,SAAA;AACjD,QAAA,MAAMyE,MAASD,GAAAA,YAAAA,CAAazP,MAAM,CAAa,CAAC2P,IAAM1F,EAAAA,QAAAA,GAAAA;AACpD,YAAA,IAAI,CAACA,QAAU,EAAA;gBACb,OAAO0F,IAAAA;AACT;;AAGA,YAAA,MAAMC,aAAaN,QAASrF,CAAAA,QAAAA,CAAAA;AAC5B,YAAA,IAAI2F,eAAe,IAAM,EAAA;AACvBD,gBAAAA,IAAI,CAAC1F,QAAAA,CAAStH,MAAM,CAAC,GAAGiN,UAAAA;AAC1B;YACA,OAAOD,IAAAA;AACT,SAAA,EAAG,EAAC,CAAA;QAEJ,OAAO;AAACrP,YAAAA,OAAAA;AAASoP,YAAAA;AAAO,SAAA;KACvB,EAAA;AAACzF,QAAAA,QAAAA;AAAUqF,QAAAA;AAAS,KAAA,CAAA;AAEvB,IAAA,MAAMO,gBAAgB1P,MAAW,KAAA,cAAA;AACjC,IAAA,MAAM2P,gBAAmBjJ,GAAAA,YAAAA,CAAa7G,MAAM,CAAC,CAACC,GAAe8P,EAAAA,WAAAA,GAAAA;AAC3D,QAAA,MAAMC;QAEJ,CAACH,aAAAA,IAAiB,CAAC5L,MAAOC,CAAAA,IAAI,CAACmB,gBAAkBjB,CAAAA,CAAAA,QAAQ,CAAC2L,WAAAA,CAAYpN,MAAM,CAAA;QAE9E,MAAMsN,eAAAA,GAAkBJ,aACpBE,GAAAA,WAAAA,CAAY3K,MAAM,KAAK,eAAe4K,aACtCD,GAAAA,WAAAA,CAAY3K,MAAM,KAAK,OAAW4K,IAAAA,aAAAA;AAEtC,QAAA,IAAIC,eAAiB,EAAA;YACnBhQ,GAAIiQ,CAAAA,IAAI,CAACH,WAAAA,CAAYpN,MAAM,CAAA;AAC7B;QAEA,OAAO1C,GAAAA;AACT,KAAA,EAAG,EAAE,CAAA;;;AAIL,IAAA,MAAMkQ,yBAA4B,GAAA,KAAA;AAClC,IAAA,MAAM,EACJrO,IAAAA,EAAMsO,mBAAsB,GAAA,CAAC,EAC7BC,SAAAA,EAAWC,uBAAuB,EAClClO,KAAOmO,EAAAA,qBAAqB,EAC7B,GAAG9M,iCACF,CAAA;AACE1C,QAAAA,KAAAA;QACAyP,WAAa,EAAA;AAACrG,YAAAA;AAAY,SAAA;QAC1BxH,MAAQmN,EAAAA;KAEV,EAAA;AACE9O,QAAAA,IAAAA,EAAM,CAACmP;AACT,KAAA,CAAA;AAGFhU,IAAAA,gBAAAA,CAAMsO,SAAS,CAAC,IAAA;AACd,QAAA,IAAI8F,qBAAuB,EAAA;YACzB1C,kBAAmB,CAAA;gBACjBtR,IAAM,EAAA,QAAA;AACN+R,gBAAAA,OAAAA,EAASO,cAAe0B,CAAAA,qBAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,qBAAAA;AAAuB1C,QAAAA,kBAAAA;AAAoBgB,QAAAA;AAAe,KAAA,CAAA;IAE9D,IAAI,CAACjO,MAAQuK,EAAAA,OAAAA,EAASO,eAAiB,EAAA;QACrC,OAAO,IAAA;AACT;AAEA,IAAA,IAAI,CAACxK,OAAS,EAAA;QACZ,OAAO,IAAA;AACT;AAEA,IAAA,IAAI,CAACiJ,UAAY,EAAA;QACf,OAAO,IAAA;AACT;;;AAKA,IAAA,MAAMsG,OAAU,GAAA,UAAA;AACd,QAAA,MAAMtB,iBAAkB,CAAA;AACtBpO,YAAAA,KAAAA;YACAyP,WAAa,EAAA;AAACrG,gBAAAA;AAAW,aAAA;YACzB/K,MAAQ,EAAA;AACN,gBAAA,GAAGA,MAAM;gBACTuD,MAAQmN,EAAAA;AACV;AACF,SAAA,CAAA;AAEAf,QAAAA,eAAAA,CAAgB,EAAE,CAAA;AACpB,KAAA;AAEA,IAAA,MAAM2B,SAAY,GAAA,UAAA;AAChB,QAAA,MAAMrB,mBAAoB,CAAA;AACxBtO,YAAAA,KAAAA;YACAyP,WAAa,EAAA;AAACrG,gBAAAA;AAAW,aAAA;YACzB/K,MAAQ,EAAA;AACN,gBAAA,GAAGA,MAAM;gBACTuD,MAAQmN,EAAAA;AACV;AACF,SAAA,CAAA;AAEAf,QAAAA,eAAAA,CAAgB,EAAE,CAAA;AACpB,KAAA;AAEA,IAAA,MAAM4B,YAAe,GAAA,UAAA;AACnB,QAAA,IAAIP,sBAAsB,CAAG,EAAA;YAC3BnB,kCAAmC,CAAA,IAAA,CAAA;AACrC,SAAA,MAAO,IAAIY,aAAe,EAAA;YACxB,MAAMY,OAAAA,EAAAA;SACD,MAAA;YACL,MAAMC,SAAAA,EAAAA;AACR;AACF,KAAA;AAEA,IAAA,IAAI1B,+BAAiC,EAAA;QACnC,OAAO;AACLvS,YAAAA,KAAAA,EAAOV,aAAc,CAAA;gBACnBX,EAAI,EAAA,oCAAA;gBACJsB,cAAgB,EAAA;AAClB,aAAA,CAAA;YACA4B,OAAS,EAAA,QAAA;YACTyO,MAAQ,EAAA;gBACN6D,QAAU,EAAA,IAAA;oBACR3B,kCAAmC,CAAA,KAAA,CAAA;AACrC,iBAAA;gBACAd,SAAW,EAAA,UAAA;oBACT,MAAMsC,OAAAA,EAAAA;oBAENxB,kCAAmC,CAAA,KAAA,CAAA;AACrC,iBAAA;gBACA1S,IAAM,EAAA,QAAA;AACNyQ,gBAAAA,KAAAA,EAAOjR,aAAc,CAAA;AACnBX,oBAAAA,EAAAA,EAAID,cAAe,CAAA,8BAAA,CAAA;oBACnBuB,cAAgB,EAAA;AAClB,iBAAA,CAAA;AACAuQ,gBAAAA,OAAAA,gBACEpQ,eAACgB,CAAAA,iBAAAA,EAAAA;oBAAKC,SAAU,EAAA,QAAA;oBAASC,UAAW,EAAA,QAAA;oBAASC,GAAK,EAAA,CAAA;;sCAChDb,cAACS,CAAAA,mBAAAA,EAAAA;4BAAcmM,KAAM,EAAA,QAAA;4BAASoD,MAAO,EAAA,QAAA;4BAASrH,IAAK,EAAA;;sCACnD3I,cAAC5B,CAAAA,uBAAAA,EAAAA;4BAAW6R,SAAU,EAAA,QAAA;sCACnBrR,aAAc,CAAA;AACbX,gCAAAA,EAAAA,EAAID,cAAe,CAAA,6CAAA,CAAA;gCACnBuB,cACE,EAAA;AACJ,6BAAA;;sCAEFS,cAAC5B,CAAAA,uBAAAA,EAAAA;4BAAW6R,SAAU,EAAA,QAAA;sCACnBrR,aAAc,CAAA;AACbX,gCAAAA,EAAAA,EAAID,cAAe,CAAA,4CAAA,CAAA;gCACnBuB,cAAgB,EAAA;AAClB,6BAAA;;;;AAIR;AACF,SAAA;AACF;AAEA,IAAA,MAAMmU,gBAAgBhK,YACnBnE,CAAAA,GAAG,CAAC,CAAC,EAAEC,MAAM,EAAE,GAAKA,MAAAA,CAAAA,CACpBmO,KAAK,CAAC,CAACnO,MAAWhC,GAAAA,UAAAA,CAAWyD,QAAQ,CAACzB,MAAAA,CAAAA,CAAAA;IAEzC,OAAO;AACLlG,QAAAA,KAAAA,EAAOV,aAAc,CAAA;YACnBX,EAAID,EAAAA,cAAAA,CAAe,CAAC,qBAAqB,EAAE0U,gBAAgB,SAAY,GAAA,WAAA,CAAY,MAAM,CAAC,CAAA;AAC1FnT,YAAAA,cAAAA,EAAgB,CAAC,EAAEmT,aAAAA,GAAgB,SAAY,GAAA,WAAA,CAAY,iBAAiB;AAC9E,SAAA,CAAA;AACAvR,QAAAA,OAAAA,EAASuR,gBAAgB,WAAc,GAAA,QAAA;QACvClS,IAAMkS,EAAAA,aAAAA,iBAAgB1S,cAAC4T,CAAAA,cAAAA,EAAAA,EAAAA,CAAAA,iBAAc5T,cAAC6T,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;QACtCvF,QAAUkD,EAAAA,gBAAAA,IAAoBhO,UAAWwG,CAAAA,MAAM,KAAK,CAAA;QACpD8G,QAAU,EAAA;AAAC,YAAA;AAAQ,SAAA;QACnBlB,MAAQ,EAAA;YACNxQ,IAAM,EAAA,OAAA;AACNyQ,YAAAA,KAAAA,EAAOjR,aAAc,CAAA;gBACnBX,EAAID,EAAAA,cAAAA,CAAe,CAAC,qBAAqB,EAAE0U,gBAAgB,SAAY,GAAA,WAAA,CAAY,MAAM,CAAC,CAAA;AAC1FnT,gBAAAA,cAAAA,EAAgB,CAAC,EAAEmT,aAAAA,GAAgB,SAAY,GAAA,WAAA,CAAY,iBAAiB;AAC9E,aAAA,CAAA;YACA5C,OAAS,EAAA,IAAA;gBACP,qBACE9P,cAAA,CAACwK,kBAAM5K,IAAI,EAAA;oBACT2J,OAASA,EAAAA,OAAAA;AACTC,oBAAAA,IAAAA,EAAMA,IAAKjE,CAAAA,GAAG,CAAC,CAACuO,OAAS;AACvB,4BAAA,GAAGA,GAAG;AACN7V,4BAAAA,EAAAA,EAAI6V,IAAItO;yBACV,CAAA,CAAA;oBACAkE,YAAcA,EAAAA,YAAAA;oBACdqK,oBAAsB,EAAA,CAACC,oBAAsBpC,eAAgBoC,CAAAA,iBAAAA,CAAAA;AAE7D,oBAAA,QAAA,gBAAAhU,cAACsJ,CAAAA,qBAAAA,EAAAA;wBACCpB,gBAAkBA,EAAAA,gBAAAA;wBAClBqB,OAASA,EAAAA,OAAAA;wBACTC,IAAMA,EAAAA,IAAAA;wBACNC,eAAiBA,EAAAA,eAAAA;AACjBzG,wBAAAA,MAAAA,EAAQA,MAAU,IAAA;;;AAI1B,aAAA;YACAiR,MAAQ,EAAA,kBACNjU,cAACqK,CAAAA,kBAAAA,CAAMrJ,MAAM,EAAA;oBAACF,cAAe,EAAA,UAAA;AAC3B,oBAAA,QAAA,gBAAAd,cAACkB,CAAAA,mBAAAA,EAAAA;wBACCgT,OAASf,EAAAA,uBAAAA;AACT7E,wBAAAA,QAAAA,EAAU,CAACoF,aAAAA,IAAiBf,gBAAiB3I,CAAAA,MAAM,KAAK,CAAA;wBACxD7I,OAAQ,EAAA,SAAA;wBACRE,OAASmS,EAAAA,YAAAA;kCAER5U,aAAc,CAAA;AACbX,4BAAAA,EAAAA,EAAIyU,gBAAgB,mBAAsB,GAAA,qBAAA;AAC1CnT,4BAAAA,cAAAA,EAAgBmT,gBAAgB,SAAY,GAAA;AAC9C,yBAAA;;;AAIR;AACF,KAAA;AACF,CAAA;AAEA;;qGAGA,MAAMyB,0BAAmD,CAACC,KAAAA,GAAAA;AACxD,IAAA,OAAO9C,gBAAiB,CAAA;QAAEtO,MAAQ,EAAA,cAAA;AAAgB,QAAA,GAAGoR;AAAM,KAAA,CAAA;AAC7D,CAAA;AAEA;;qGAGA,MAAMC,4BAAqD,CAACD,KAAAA,GAAAA;AAC1D,IAAA,OAAO9C,gBAAiB,CAAA;QAAEtO,MAAQ,EAAA,gBAAA;AAAkB,QAAA,GAAGoR;AAAM,KAAA,CAAA;AAC/D,CAAA;AAEA;;;AAGC,IACD,MAAMrD,WAAAA,GAAc5S,uBAAOmW,CAAAA,WAAAA,CAAM;;;;AAIjC,CAAC;;ACtxBD,MAAMC,WAAW,CAAClL,MAAAA,GAAAA;AAChB,IAAA,qBACErJ,cAAC5B,CAAAA,uBAAAA,EAAAA;QAAW2C,UAAW,EAAA,UAAA;QAAW+H,SAAU,EAAA,WAAA;AACzCO,QAAAA,QAAAA,EAAAA;;AAGP,CAAA;AAEA,MAAMmL,yBAA4B,GAAA,IAAA;IAChC,MAAM,EAAEzQ,OAAO,EAAE,GAAG/B,OAAAA,EAAAA;IACpB,MAAM,EAAEpD,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,IAAI,CAACkF,OAAS,EAAA;QACZ,OAAO,IAAA;AACT;AAEA,IAAA,qBACE/D,cAAC5B,CAAAA,uBAAAA,EAAAA;QAAW0K,SAAU,EAAA,WAAA;kBACnBlK,aACC,CAAA;AACEX,YAAAA,EAAAA,EAAID,cAAe,CAAA,6CAAA,CAAA;YACnBuB,cACE,EAAA;SAEJ,EAAA;YACEkV,EAAIF,EAAAA;AACN,SAAA;;AAIR,CAAA;AAEA,MAAMG,0BAA6B,GAAA,IAAA;IACjC,MAAM,EAAE3Q,OAAO,EAAE,GAAG/B,OAAAA,EAAAA;IACpB,MAAM,EAAEpD,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,IAAI,CAACkF,OAAS,EAAA;QACZ,OAAO,IAAA;AACT;AAEA,IAAA,qBACE/D,cAAC5B,CAAAA,uBAAAA,EAAAA;QAAW0K,SAAU,EAAA,WAAA;kBACnBlK,aACC,CAAA;AACEX,YAAAA,EAAAA,EAAID,cAAe,CAAA,8CAAA,CAAA;YACnBuB,cACE,EAAA;SAEJ,EAAA;YACEkV,EAAIF,EAAAA;AACN,SAAA;;AAIR,CAAA;AAEA,MAAMI,4BAA+B,GAAA,IAAA;IACnC,MAAM,EAAE5Q,OAAO,EAAE,GAAG/B,OAAAA,EAAAA;IACpB,MAAM,EAAEpD,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,IAAI,CAACkF,OAAS,EAAA;QACZ,OAAO,IAAA;AACT;AAEA,IAAA,qBACE/D,cAAC5B,CAAAA,uBAAAA,EAAAA;QAAW0K,SAAU,EAAA,WAAA;kBACnBlK,aACC,CAAA;AACEX,YAAAA,EAAAA,EAAID,cAAe,CAAA,gDAAA,CAAA;YACnBuB,cACE,EAAA;SAEJ,EAAA;YACEkV,EAAIF,EAAAA;AACN,SAAA;;AAIR,CAAA;;ACtEA,MAAMK,YAAe,GAAA,IAAA;IACnB,MAAM,EAAEhW,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAAC,EAAE6F,KAAK,EAAE,EAAEuI,SAAS,GAAGC,0BAAAA,EAAAA;AAE9B,IAAA,MAAM,EAAEnJ,OAAO,EAAEV,OAAO,EAAED,SAAS,EAAE,GAAGpB,OAAAA,EAAAA;AACxC,IAAA,MAAM,EAAE2C,IAAMxB,EAAAA,OAAAA,GAAU,EAAE,EAAE,GAAG0C,mBAAmBuB,SAAW,EAAA;AAC3DvD,QAAAA,IAAAA,EAAM,CAACE;AACT,KAAA,CAAA;AAEA,IAAA,MAAM7E,eAAeF,gBAAMqO,CAAAA,WAAW,CACpC,CAACjC,IAAAA,EAAciG,UAAU,KAAK,GAAA;QAC5BpE,QACE,CAAA;YACE4H,IAAM,EAAA,CAAA;YACN3I,OAAS,EAAA;AAAE,gBAAA,GAAGxH,MAAMwH,OAAO;gBAAEzK,IAAM,EAAA;oBAAE+D,MAAQ4F,EAAAA;AAAK;AAAE;AACtD,SAAA,EACA,MACAiG,EAAAA,OAAAA,CAAAA;KAGJ,EAAA;AAAC3M,QAAAA,KAAAA,CAAMwH,OAAO;AAAEe,QAAAA;AAAS,KAAA,CAAA;AAG3BjO,IAAAA,gBAAAA,CAAMsO,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACjI,KAAMC,CAAAA,OAAO,CAACnC,OAAAA,CAAAA,IAAY,CAACY,OAAS,EAAA;AACvC,YAAA;AACF;AACA;;;AAGC,QACD,MAAMoJ,oBAAAA,GAAuBzI,KAAMwH,CAAAA,OAAO,EAAEzK,IAAM+D,EAAAA,MAAAA;QAClD,MAAM+H,eAAAA,GAAkBpK,QAAQ+H,IAAI,CAAC,CAACsC,GAAQA,GAAAA,GAAAA,CAAIpC,IAAI,KAAK+B,oBAAAA,CAAAA;AAC3D,QAAA,MAAMM,gBAAgBtK,OAAQ+H,CAAAA,IAAI,CAAC,CAAC1F,MAAAA,GAAWA,OAAOkI,SAAS,CAAA;QAC/D,IAAI,CAACH,eAAmBE,IAAAA,aAAAA,EAAerC,IAAM,EAAA;YAC3ClM,YAAauO,CAAAA,aAAAA,CAAcrC,IAAI,EAAE,IAAA,CAAA;AACnC;KACC,EAAA;AAACrH,QAAAA,OAAAA;AAAS7E,QAAAA,YAAAA;AAAciE,QAAAA,OAAAA;QAASuB,KAAMwH,CAAAA,OAAO,EAAEzK,IAAM+D,EAAAA;AAAO,KAAA,CAAA;IAEhE,IAAI,CAACzB,OAAW,IAAA,CAACsB,KAAMC,CAAAA,OAAO,CAACnC,OAAYA,CAAAA,IAAAA,OAAAA,CAAQ6G,MAAM,KAAK,CAAG,EAAA;QAC/D,OAAO,IAAA;AACT;AAEA,IAAA,MAAM+D,gBAAmB5K,GAAAA,OAAAA,CAAQV,MAAM,CAAC,CAAC+C,MAAAA,GAAAA;AACvC;;;;QAKA,OAAOpC,SAAU6D,CAAAA,QAAQ,CAACzB,MAAAA,CAAO4F,IAAI,CAAA,IAAK/H,OAAQ4D,CAAAA,QAAQ,CAACzB,MAAAA,CAAO4F,IAAI,CAAA;AACxE,KAAA,CAAA;AAEA,IAAA,qBACEpL,cAACmQ,CAAAA,yBAAAA,EAAAA;QACCxE,IAAK,EAAA,GAAA;AACLX,QAAAA,YAAAA,EAAYpM,aAAc,CAAA;AACxBX,YAAAA,EAAAA,EAAID,cAAe,CAAA,uBAAA,CAAA;YACnBuB,cAAgB,EAAA;AAClB,SAAA,CAAA;AACAZ,QAAAA,KAAAA,EAAO+F,KAAMwH,CAAAA,OAAO,EAAEzK,IAAAA,EAAM+D,MAAUrC,IAAAA,OAAAA,CAAQ+H,IAAI,CAAC,CAAC1F,MAAAA,GAAWA,MAAOkI,CAAAA,SAAS,CAAGtC,EAAAA,IAAAA;;QAElF1M,QAAUQ,EAAAA,YAAAA;AAET6O,QAAAA,QAAAA,EAAAA,gBAAAA,CAAiBxI,GAAG,CAAC,CAACC,MAAAA,iBACrBxF,cAACqQ,CAAAA,+BAAAA,EAAAA;AAAmC1R,gBAAAA,KAAAA,EAAO6G,OAAO4F,IAAI;AACnD5F,gBAAAA,QAAAA,EAAAA,MAAAA,CAAO/G;AADe+G,aAAAA,EAAAA,MAAAA,CAAOvH,EAAE,CAAA;;AAM1C,CAAA;;MCtFa6W,WAAc,GAAA;IACzBC,UAAY,EAAA;AAAC,QAAA;YAAE/R,MAAQ,EAAA,0BAAA;YAA4BL,OAAS,EAAA;AAAK;AAAE,KAAA;IACnEqS,MAAQ,EAAA;AAAC,QAAA;YAAEhS,MAAQ,EAAA,4BAAA;YAA8BL,OAAS,EAAA;AAAK;AAAE,KAAA;IACjEiO,MAAQ,EAAA;AAAC,QAAA;YAAE5N,MAAQ,EAAA,4BAAA;YAA8BL,OAAS,EAAA;AAAK;AAAE,KAAA;IACjEsS,MAAQ,EAAA;AAAC,QAAA;YAAEjS,MAAQ,EAAA,4BAAA;YAA8BL,OAAS,EAAA;AAAK;AAAE,KAAA;IACjEuS,IAAM,EAAA;AAAC,QAAA;YAAElS,MAAQ,EAAA,0BAAA;YAA4BL,OAAS,EAAA;AAAK;AAAE;AAC/D;;ACUA,MAAMwS,kBAAqB,GAAA,CAAC,EAAEC,MAAM,EAAsB,GAAA;;AAExD,IAAA,IACE,EAAE,MAAUA,IAAAA,MAAAA,CAAOpH,OAAO,CAAD,IACxB,OAAOoH,MAAAA,CAAOpH,OAAO,CAACvM,IAAI,KAAK,YAC9B2T,MAAOpH,CAAAA,OAAO,CAACvM,IAAI,KAAK,IAAA,IACxB,WAAe2T,IAAAA,MAAAA,CAAOpH,OAAO,CAACvM,IAAI,IAClC,CAAC2T,OAAOpH,OAAO,CAACvM,IAAI,CAACC,SAAS,EAChC;QACA,OAAO;AAAE0T,YAAAA;AAAO,SAAA;AAClB;AAEA,IAAA,MAAM5O,UAAaM,GAAAA,MAAAA,CAAOyB,OAAO,CAAC6M,MAAO5O,CAAAA,UAAU,CAAE3D,CAAAA,MAAM,CACzD,CAACC,GAAK,EAAA,CAACsF,KAAKiN,eAAgB,CAAA,GAAA;QAC1B,OAAO;AACL,YAAA,GAAGvS,GAAG;AACN,YAAA,CAACsF,MAAM;AACL,gBAAA,GAAGiN,eAAe;gBAClBD,MAAQC,EAAAA,eAAAA,CAAgBD,MAAM,CAAC7P,GAAG,CAAC,CAACuO,GAAAA,GAAQA,GAAIvO,CAAAA,GAAG,CAAC+P,qBAAAA,CAAAA;AACtD;AACF,SAAA;AACF,KAAA,EACA,EAAC,CAAA;IAGH,OAAO;QACLF,MAAQ,EAAA;AACN,YAAA,GAAGA,MAAM;AACT5O,YAAAA,UAAAA;AACA4O,YAAAA,MAAAA,EAAQA,MAAOA,CAAAA,MAAM,CAAC7P,GAAG,CAAC,CAACgQ,KAAAA,GAAUA,KAAMhQ,CAAAA,GAAG,CAAC,CAACuO,GAAQA,GAAAA,GAAAA,CAAIvO,GAAG,CAAC+P,qBAAAA,CAAAA,CAAAA;AAClE;AACF,KAAA;AACF,CAAA;AAEA,MAAMA,wBAAwB,CAACE,KAAAA,GAAAA;AAC7B,IAAA,MAAMC,mBAAmBC,0BAA2BF,CAAAA,KAAAA,CAAMtO,SAAS,CAACpD,aAAa,CAC7E0R,GAAAA,KAAAA,CAAMtO,SAAS,CAACpD,aAAa,CAACrC,IAAI,CAACC,SAAS,GAC5C,IAAyD;AAE7D,IAAA,MAAMiU,gBAAmB,GAAA;QACvB9F,KAAO,EAAA;YACL5R,EAAIwX,EAAAA,gBAAAA,GACAzX,cAAe,CAAA,iBAAA,CAAA,GACfA,cAAe,CAAA,qBAAA,CAAA;AACnBuB,YAAAA,cAAAA,EAAgBkW,mBACZ,8CACA,GAAA;AACN,SAAA;QACAjV,IAAMiV,EAAAA,gBAAAA,iBAAmBzV,eAAC4V,WAAW,EAAA,EAAA,CAAA,GAAA;AACvC,KAAA;IAEA,OAAO;AACL,QAAA,GAAGJ,KAAK;AACRK,QAAAA,WAAAA,EAAaJ,iCAAmBzV,cAAC8V,CAAAA,WAAAA,EAAAA;AAAa,YAAA,GAAGH;AAAuB,SAAA,CAAA,GAAA;AAC1E,KAAA;AACF,CAAA;AAEA,MAAMD,6BAA6B,CACjCK,UAAAA,GAAAA;AAEA,IAAA,IAAI,CAACA,UAAY,EAAA;QACf,OAAO,KAAA;AACT;AAEA,IAAA,OACE,MAAUA,IAAAA,UAAAA,IACV,OAAOA,UAAAA,CAAWtU,IAAI,KAAK,QAC3BsU,IAAAA,UAAAA,CAAWtU,IAAI,KAAK,IACpB,IAAA,WAAA,IAAesU,WAAWtU,IAAI;AAElC,CAAA;AAWA,MAAMqU,cAAc,CAAC,EAAEjG,KAAK,EAAErP,IAAI,EAAoB,GAAA;IACpD,MAAM,EAAE5B,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEa,eAACsW,CAAAA,IAAAA,EAAAA;QAAKpK,GAAI,EAAA,MAAA;;0BACR5L,cAACiW,CAAAA,2BAAAA,EAAAA;gBAAerK,GAAI,EAAA,MAAA;0BAAQhN,aAAciR,CAAAA,KAAAA;;0BACzC7Q,gBAAMkX,CAAAA,YAAY,CAAC1V,IAA4B,EAAA;gBAC9C,aAAe,EAAA,IAAA;gBACf2V,SAAW,EAAA;AACb,aAAA;;;AAGN,CAAA;AAEA,MAAMH,IAAAA,GAAO7X,uBAAOuC,CAAAA,iBAAAA,CAAK;;;;;UAKf,EAAE,CAAC,EAAE0V,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;YAGvC,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;AAGrD,CAAC;;AC9GD,MAAMC,iBAAiB,CAAC,EAAE/Q,QAAQmI,aAAa,EAAEG,aAAa,EAAuB,GAAA;AACnF,IAAA,MAAM,EAAEtI,MAAAA,EAAQgR,QAAQ,EAAE,GAAG3X,iBAAAA,EAAAA;AAC7B,IAAA,MAAM,EAAE8F,IAAAA,EAAMxB,OAAU,GAAA,EAAE,EAAE,GAAG0C,kBAAAA,EAAAA;IAC/B,MAAM4Q,SAAAA,GAAYC,yBAAYF,QAAU,EAAA;QACtCG,WAAa,EAAA;AACf,KAAA,CAAA;AAEA,IAAA,IAAI,CAACtR,KAAMC,CAAAA,OAAO,CAACnC,OAAAA,CAAAA,IAAY,CAAC2K,aAAe,EAAA;QAC7C,OAAO,IAAA;AACT;AAEA,IAAA,MAAMyB,mBAAmBzB,aAAcvI,CAAAA,GAAG,CAAC,CAACiI,GAAAA,GAAQA,IAAIhI,MAAM,CAAA;AAE9D,IAAA,MAAMoR,kBAAqBzT,GAAAA,OAAAA,CACxBN,MAAM,CAAW,CAACC,GAAK0C,EAAAA,MAAAA,GAAAA;AACtB,QAAA,MAAMqR,aAAgB,GAAA;AAAClJ,YAAAA,aAAAA;AAAkB4B,YAAAA,GAAAA;SAAiB,CAACrE,IAAI,CAAC,CAACsC,GAAAA,GAAAA;YAC/D,OAAOA,GAAAA,KAAQhI,OAAO4F,IAAI;AAC5B,SAAA,CAAA;AAEA,QAAA,IAAIyL,aAAe,EAAA;AACjB/T,YAAAA,GAAAA,CAAIiQ,IAAI,CAACvN,MAAAA,CAAAA;AACX;QAEA,OAAO1C,GAAAA;AACT,KAAA,EAAG,EAAE,CAAA,CACJyC,GAAG,CAAC,CAACC,MAAAA,GAAAA;QACJ,IAAIA,MAAAA,CAAOkI,SAAS,EAAE;AACpB,YAAA,OAAO,CAAC,EAAElI,MAAAA,CAAO/G,IAAI,CAAC,UAAU,CAAC;AACnC;AAEA,QAAA,OAAO+G,OAAO/G,IAAI;KAEnBqY,CAAAA,CAAAA,QAAQ,CAAC,CAACC,CAAAA,EAAG3M,IAAMqM,SAAUO,CAAAA,OAAO,CAACD,CAAG3M,EAAAA,CAAAA,CAAAA,CAAAA;IAE3C,qBACE1K,eAAA,CAACuX,qBAAQrX,IAAI,EAAA;;AACX,0BAAAI,cAAA,CAACiX,qBAAQC,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAlX,cAACkB,CAAAA,mBAAAA,EAAAA;oBAAOC,OAAQ,EAAA,OAAA;oBAAQ/B,IAAK,EAAA,QAAA;oBAASiC,OAAS,EAAA,CAAC8V,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;AACrE,oBAAA,QAAA,gBAAA1X,eAACgB,CAAAA,iBAAAA,EAAAA;wBAAK2W,QAAS,EAAA,MAAA;wBAAOzW,UAAW,EAAA,QAAA;wBAASE,cAAe,EAAA,QAAA;wBAASC,UAAW,EAAA,SAAA;;0CAC3Ef,cAAC5B,CAAAA,uBAAAA,EAAAA;gCAAW0K,SAAU,EAAA,YAAA;gCAAaC,QAAQ,EAAA,IAAA;gCAACuO,WAAa,EAAA,CAAA;AACtDV,gCAAAA,QAAAA,EAAAA,kBAAAA,CAAmBtO,IAAI,CAAC,IAAA;;0CAE3BtI,cAACU,CAAAA,iBAAAA,EAAAA;AACC,gCAAA,QAAA,gBAAAV,cAACuX,CAAAA,eAAAA,EAAAA;oCAAU3K,KAAM,EAAA,QAAA;oCAASoD,MAAO,EAAA;;;;;;;AAKzC,0BAAAhQ,cAAA,CAACiX,qBAAQ5W,OAAO,EAAA;gBAACmX,UAAY,EAAA,EAAA;AAC3B,gBAAA,QAAA,gBAAAxX,cAACyX,CAAAA,IAAAA,EAAAA;AACEb,oBAAAA,QAAAA,EAAAA,kBAAAA,CAAmBrR,GAAG,CAAC,CAAC9G,IAAAA,iBACvBuB,cAACsK,CAAAA,gBAAAA,EAAAA;4BAAeoN,OAAS,EAAA,CAAA;4BAAG9L,GAAI,EAAA,IAAA;AAC9B,4BAAA,QAAA,gBAAA5L,cAAC5B,CAAAA,uBAAAA,EAAAA;AAAYK,gCAAAA,QAAAA,EAAAA;;AADLA,yBAAAA,EAAAA,IAAAA,CAAAA;;;;;AAQtB,CAAA;;ACxDA,MAAMkZ,uBAAuB,CAAC,EAAEC,gBAAgB,EAAExC,MAAM,EAA4B,GAAA;IAClF,MAAM,EAAEpH,OAAO,EAAE,GAAGoH,MAAAA;AAEpB,IAAA,MAAMK,mBAAmBlU,kCAAmCyM,CAAAA,OAAAA,CAAAA,GACxDA,QAAQvM,IAAI,CAACC,SAAS,GACtB,KAAA;AAEJ,IAAA,IAAI,CAAC+T,gBAAkB,EAAA;QACrB,OAAO;AAAEmC,YAAAA,gBAAAA;AAAkBxC,YAAAA;AAAO,SAAA;AACpC;IAEA,OAAO;QACLwC,gBAAkB,EAAA;AACbA,YAAAA,GAAAA,gBAAAA;AACH,YAAA;gBACE1Q,SAAW,EAAA;oBAAE9H,IAAM,EAAA;AAAS,iBAAA;gBAC5BE,KAAO,EAAA;AACLrB,oBAAAA,EAAAA,EAAID,cAAe,CAAA,8BAAA,CAAA;oBACnBuB,cAAgB,EAAA;AAClB,iBAAA;gBACAsY,UAAY,EAAA,KAAA;gBACZC,QAAU,EAAA,KAAA;gBACVrZ,IAAM,EAAA,SAAA;;AAENsZ,gBAAAA,aAAAA,EAAe,CAAC3D,KAAAA,EAAO4D,OAASjL,EAAAA,IAAAA,iBAAS/M,cAACuW,CAAAA,cAAAA,EAAAA;AAAgB,wBAAA,GAAGnC,KAAK;AAAG,wBAAA,GAAGrH;;AAC1E;AACD,SAAA;AACDqI,QAAAA;AACF,KAAA;AACF,CAAA;;AC1BA,MAAM6C,uBAA0B,GAAA,CAAC,EAAEL,gBAAAA,GAAmB,EAAE,EAA+B,GAAA;IACrF,OAAO;QACLA,gBAAkB,EAAA;AACbA,YAAAA,GAAAA,gBAAAA;AACH,YAAA;gBACEtY,KAAO,EAAA;oBACLrB,EAAI,EAAA,gEAAA;oBACJsB,cAAgB,EAAA;AAClB,iBAAA;gBACAd,IAAM,EAAA;AACR;AACD,SAAA;QACDyZ,cAAgB,EAAA;AAClB,KAAA;AACF,CAAA;;AC3BA,MAAMC,uCAGF,GAAA,IAAA;AACF,IAAA,OAAO,CAAC,EAAEC,QAAQ,EAAE,GAClB,CAACC,OACD,CAACrV,MAAAA,GAAAA;AACC,gBAAA,MAAMsV,aAAgB,GAAA,IAAA;;;oBAGpB,IAAI;AACF,wBAAA,MAAMC,KAAQH,GAAAA,QAAAA,EAAAA;wBAEd,MAAMI,cAAAA,GAAiBC,IACrBF,KACA,EAAA;AACE,4BAAA,0CAAA;AACA,4BAAA,cAAA;AACA,4BAAA,aAAA;AACA,4BAAA,QAAA;AACA,4BAAA,eAAA;AACA,4BAAA,MAAA;AACA,4BAAA;yBACD,EACD,KAAA,CAAA;AAGF,wBAAA,IAAIC,cAAgB,EAAA;4BAClB,MAAM1U,aAAAA,GAAgBd,MAAOgL,CAAAA,OAAO,GAChC;gCAAE,GAAGhL,MAAAA,CAAOgL,OAAO,CAAClK,aAAa;gCAAErC,IAAM,EAAA;oCAAEC,SAAW,EAAA;AAAK;6BAC3D,GAAA;gCAAED,IAAM,EAAA;oCAAEC,SAAW,EAAA;AAAK;AAAE,6BAAA;AAEhC,4BAAA,OAAO2W,IAAK,CAAA;AACV,gCAAA,GAAGrV,MAAM;gCACTgL,OAAS,EAAA;AACPlK,oCAAAA;AACF;AACF,6BAAA,CAAA;AACF;AAEA,wBAAA,OAAOuU,IAAKrV,CAAAA,MAAAA,CAAAA;AACd,qBAAA,CAAE,OAAO0V,GAAK,EAAA;AACZ,wBAAA,OAAOL,IAAKrV,CAAAA,MAAAA,CAAAA;AACd;AACF,iBAAA;gBAEA,IACEA,MAAAA,CAAO5D,IAAI,KAAK,wDAAA,IAChB4D,OAAO2V,SAAS,KAAK,iBACrB,CAAC;AAAC,oBAAA,UAAA;AAAY,oBAAA;iBAAY,CAAC1R,QAAQ,CAACjE,MAAO4V,CAAAA,aAAa,KACxD,CAAC5V,MAAAA,CAAO6V,SAAS,EACjB;oBACA,OAAOP,aAAAA,EAAAA;AACT;gBAEA,IACEtV,MAAAA,CAAO5D,IAAI,KAAK,2DAChB4D,IAAAA,MAAAA,CAAO2V,SAAS,KAAK,aACrB,IAAA,CAAC3V,MAAO6V,CAAAA,SAAS,EACjB;oBACA,OAAOP,aAAAA,EAAAA;AACT;AAEA,gBAAA,IACE,CAACtV,MAAO5D,CAAAA,IAAI,KACV,oFACA4D,IAAAA,MAAAA,CAAO5D,IAAI,KAAK,gEAA+D,KACjF4D,MAAO2V,CAAAA,SAAS,KAAK,aACrB,EAAA;oBACA,OAAOL,aAAAA,EAAAA;AACT;AAEA,gBAAA,OAAOD,IAAKrV,CAAAA,MAAAA,CAAAA;AACd,aAAA;AACJ,CAAA;;AC5EA,MAAM8V,8BAGF,GAAA,IAAA;IACF,OAAO,IAAM,CAACT,IAAAA,GAAS,CAACrV,MAAAA,GAAAA;AACtB,gBAAA,IACEA,OAAO5D,IAAI,KAAK,mDAChB4D,MAAO+V,CAAAA,SAAS,KAAK,aACrB,EAAA;AACA,oBAAA,MAAMtX,IAAO,GAAA;wBAAEC,SAAW,EAAA;AAAM,qBAAA;AAEhC,oBAAA,MAAMoC,aAAgBd,GAAAA,MAAAA,CAAO2B,IAAI,CAACb,aAAa,GAC3C;wBAAE,GAAGd,MAAAA,CAAO2B,IAAI,CAACb,aAAa;AAAErC,wBAAAA;qBAChC,GAAA;AAAEA,wBAAAA;AAAK,qBAAA;AAEX,oBAAA,MAAMkD,IAAO,GAAA;AAAE,wBAAA,GAAG3B,OAAO2B,IAAI;AAAEb,wBAAAA;AAAc,qBAAA;oBAE7C,IAAId,MAAAA,CAAOgW,UAAU,KAAK,QAAU,EAAA;AAClC,wBAAA,OAAOX,IAAK,CAAA;AAAE,4BAAA,GAAGrV,MAAM;AAAE2B,4BAAAA;AAAK,yBAAA,CAAA;AAChC;;;AAIA,oBAAA,IAAI,CAAC3B,MAAO2B,CAAAA,IAAI,CAACb,aAAa,EAAErC,MAAMC,SAAW,EAAA;AAC/C,wBAAA,OAAO2W,IAAK,CAAA;AAAE,4BAAA,GAAGrV,MAAM;AAAE2B,4BAAAA;AAAK,yBAAA,CAAA;AAChC;AACF;;AAGA,gBAAA,OAAO0T,IAAKrV,CAAAA,MAAAA,CAAAA;AACd,aAAA;AACF,CAAA;;AC5BA,MAAMiW,gBAAmC,GAAA,CAACC,GAAQ,GAAA,CAACb,OAAS,CAAC/V,WAAAA,GAAAA;AAC3D,YAAA,MAAM6W,KAAQC,GAAAA,wBAAAA,CAAU,8CAAgDF,EAAAA,GAAAA,CAAI9H,QAAQ,CAAA;AAEpF,YAAA,IAAI,CAAC+H,KAAO,EAAA;AACV,gBAAA,OAAOd,IAAK/V,CAAAA,WAAAA,CAAAA;AACd;AAEA,YAAA,MAAM0J,MAASqN,GAAAA,aAAAA,CAAGC,KAAK,CAACJ,IAAIlN,MAAM,CAAA;YAElC,IAAI,OAAOA,WAAW,QAAU,EAAA;AAC9B,gBAAA,OAAOqM,IAAK/V,CAAAA,WAAAA,CAAAA;AACd;YAEA,IAAI,EAAE,SAAa0J,IAAAA,MAAAA,IAAU,OAAOA,MAAOE,CAAAA,OAAO,KAAK,QAAO,CAAI,EAAA;AAChE,gBAAA,OAAOmM,IAAK/V,CAAAA,WAAAA,CAAAA;AACd;YAEA,IACE,EACE,MAAU0J,IAAAA,MAAAA,CAAOE,OAAO,IACxB,OAAOF,MAAOE,CAAAA,OAAO,CAACzK,IAAI,KAAK,QAC/B,IAAA,CAAC4D,MAAMC,OAAO,CAAC0G,OAAOE,OAAO,CAACzK,IAAI,CAAA,CAEpC,EAAA;AACA,gBAAA,OAAO4W,IAAK/V,CAAAA,WAAAA,CAAAA;AACd;AAEA,YAAA,MAAM,EAAEkD,MAAM,EAAE,GAAGwG,MAAOE,CAAAA,OAAO,CAACzK,IAAI;YAEtC,IAAI,OAAO+D,WAAW,QAAU,EAAA;AAC9B,gBAAA,OAAO6S,IAAK/V,CAAAA,WAAAA,CAAAA;AACd;AAEA,YAAA,MAAMiX,qBAAqBjX,WAAYG,CAAAA,MAAM,CAC3C,CAACC,aACC,CAACA,UAAAA,CAAWQ,UAAU,EAAEC,WAAWT,UAAWQ,CAAAA,UAAU,CAACC,OAAO,CAAC8D,QAAQ,CAACzB,MAAAA,CAAAA,CAAAA;AAG9E,YAAA,OAAO6S,IAAKkB,CAAAA,kBAAAA,CAAAA;AACd,SAAA;;AC3CA,MAAMC,wBAAAA,GAA2B,CAACC,IAAmB1b,EAAAA,QAAAA,GAAAA;AAInD,IAAA,OAAO+I,OAAOC,IAAI,CAAC0S,MAAM5W,MAAM,CAAC,CAACC,GAAKkE,EAAAA,OAAAA,GAAAA;AACpClE,QAAAA,GAAG,CAAC,CAAC,EAAE/E,QAAAA,CAAS,CAAC,EAAEiJ,OAAQ,CAAA,CAAC,CAAC,GAAGyS,IAAI,CAACzS,OAAQ,CAAA;QAC7C,OAAOlE,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN,CAAA;;ACJA;;qGAIA,MAAM4W,0BAA6B,GAAA,CACjCC,UACAC,EAAAA,UAAAA,GAAAA;;AAOA,IAAA,IAAI,CAACrY,kCAAAA,CAAmCoY,UAAW7V,CAAAA,aAAa,CAAG,EAAA;QACjE,OAAO6V,UAAAA;AACT;AAEA,IAAA,MAAME,wBAAwBF,UAAW7V,CAAAA,aAAa,CAACrC,IAAI,CAACC,SAAS;IACrE,MAAMoY,qBAAAA,GAAwBvY,mCAC5BqY,UAAYnW,EAAAA,MAAAA,EAAQK,iBAElB8V,UAAYnW,EAAAA,MAAAA,EAAQK,aAAcrC,CAAAA,IAAAA,CAAKC,SACvC,GAAA,KAAA;;;AAIJ,IAAA,IAAImY,yBAAyBC,qBAAuB,EAAA;QAClD,OAAOH,UAAAA;AACT;AAEA,IAAA,IAAIE,qBAAuB,EAAA;QACzB,MAAM1S,UAAAA,GAAa4S,uBAAwBJ,CAAAA,UAAAA,CAAWxS,UAAU,CAAA;QAEhE,OAAO;AAAE,YAAA,GAAGwS,UAAU;AAAExS,YAAAA;AAAW,SAAA;AACrC;;AAGA,IAAA,IAAI,CAAC0S,qBAAuB,EAAA;AAC1B,QAAA,MAAM/V,aAAgBkW,GAAAA,IAAAA,CAAKL,UAAW7V,CAAAA,aAAa,EAAE,MAAA,CAAA;QACrD,MAAMqD,UAAAA,GAAa8S,6BAA8BN,CAAAA,UAAAA,CAAWxS,UAAU,CAAA;QAEtE,OAAO;AAAE,YAAA,GAAGwS,UAAU;AAAE7V,YAAAA,aAAAA;AAAeqD,YAAAA;AAAW,SAAA;AACpD;IAEA,OAAOwS,UAAAA;AACT,CAAA;AAEA;;qGAIA,MAAMI,uBAA0B,GAAA,CAAC5S,UAC/BL,GAAAA,MAAAA,CAAOC,IAAI,CAACI,UAAYtE,CAAAA,CAAAA,MAAM,CAAmC,CAACC,GAAKkE,EAAAA,OAAAA,GAAAA;QACrE,MAAMkT,gBAAAA,GAAmB/S,UAAU,CAACH,OAAQ,CAAA;AAE5C,QAAA,IAAI1F,gBAAiB2F,CAAAA,QAAQ,CAACiT,gBAAAA,CAAiB9a,IAAI,CAAG,EAAA;AACpD,YAAA,MAAMqC,IAAO,GAAA;gBAAEC,SAAW,EAAA;AAAK,aAAA;YAE/B,MAAMoC,aAAAA,GAAgBoW,gBAAiBpW,CAAAA,aAAa,GAChD;AAAE,gBAAA,GAAGoW,iBAAiBpW,aAAa;AAAErC,gBAAAA;aACrC,GAAA;AAAEA,gBAAAA;AAAK,aAAA;YAEXqB,GAAG,CAACkE,QAAQ,GAAG;AAAE,gBAAA,GAAGkT,gBAAgB;AAAEpW,gBAAAA;AAAc,aAAA;YAEpD,OAAOhB,GAAAA;AACT;QAEAA,GAAG,CAACkE,QAAQ,GAAGkT,gBAAAA;QAEf,OAAOpX,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AAQN,MAAMmX,6BAAAA,GAAgC,CAAC9S,UAAAA,GACrCL,MAAOC,CAAAA,IAAI,CAACI,UAAYtE,CAAAA,CAAAA,MAAM,CAE5B,CAACC,GAAKkE,EAAAA,OAAAA,GAAAA;AACNlE,QAAAA,GAAG,CAACkE,OAAQ,CAAA,GAAGgT,KAAK7S,UAAU,CAACH,QAAQ,EAAE,oBAAA,CAAA;QAEzC,OAAOlE,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;AC1DN;AACA,YAAe;AACbqX,IAAAA,QAAAA,CAAAA,CAASC,GAAQ,EAAA;AACfA,QAAAA,GAAAA,CAAIC,cAAc,CAAC;AAAClC,YAAAA,uCAAAA;AAAyCW,YAAAA;AAA+B,SAAA,CAAA;AAC5FsB,QAAAA,GAAAA,CAAIC,cAAc,CAAC;AAAC,YAAA,IAAMrW,QAAQsW;AAAW,SAAA,CAAA;AAC7CF,QAAAA,GAAAA,CAAIG,WAAW,CAAC;AACd,YAAA,CAACvW,OAAQwW,CAAAA,WAAW,GAAGxW,QAAQyW;AACjC,SAAA,CAAA;AACAL,QAAAA,GAAAA,CAAIM,iBAAiB,CAAC;AAACzB,YAAAA;AAAiB,SAAA,CAAA;AACxCmB,QAAAA,GAAAA,CAAIO,cAAc,CAAC;YACjB1c,EAAIF,EAAAA,QAAAA;YACJU,IAAMV,EAAAA;AACR,SAAA,CAAA;AACF,KAAA;AACA6c,IAAAA,SAAAA,CAAAA,CAAUR,GAAQ,EAAA;;QAEhBA,GAAIS,CAAAA,YAAY,CAAC,gDAAkDlD,EAAAA,oBAAAA,CAAAA;QACnEyC,GAAIS,CAAAA,YAAY,CAAC,iDAAmD1F,EAAAA,kBAAAA,CAAAA;;QAEpEiF,GAAIS,CAAAA,YAAY,CACd,6DACA5C,EAAAA,uBAAAA,CAAAA;;QAIFmC,GAAIU,CAAAA,eAAe,CAAC,QAAU,EAAA;YAC5Btc,SAAW,EAAA;AACTP,gBAAAA,EAAAA,EAAID,cAAe,CAAA,aAAA,CAAA;gBACnBuB,cAAgB,EAAA;AAClB,aAAA;YACAtB,EAAI,EAAA,sBAAA;YACJ8N,EAAI,EAAA,sBAAA;YACJgP,SAAW,EAAA,IACT,oDAAO,4BAAA,KAAA,CAAwBC,IAAI,CAAC,CAACC,OAAS;AAAEC,wBAAAA,OAAAA,EAASD,IAAIE;qBAAsB,CAAA,CAAA;AACrF7Y,YAAAA,WAAAA,EAAawS,YAAYC;AAC3B,SAAA,CAAA;QAEA,MAAMqG,cAAAA,GAAiBhB,GAAIiB,CAAAA,SAAS,CAAC,iBAAA,CAAA;QAErCD,cAAeE,CAAAA,IAAI,CAACC,uBAAuB,CAAC;AAAC1O,YAAAA,kBAAAA;AAAoBmC,YAAAA;AAA4B,SAAA,CAAA;AAC7FoM,QAAAA,cAAAA,CAAeE,IAAI,CAACE,iBAAiB,CAAC,CAACjZ,OAAAA,GAAAA;YACrC,MAAMkZ,mBAAAA,GAAsBlZ,QAAQmZ,SAAS,CAAC,CAAC1Y,MAAWA,GAAAA,MAAAA,CAAO5D,IAAI,KAAK,QAAA,CAAA;YAC1EmD,OAAQoZ,CAAAA,MAAM,CAACF,mBAAAA,EAAqB,CAAGlL,EAAAA,kBAAAA,CAAAA;YACvC,OAAOhO,OAAAA;AACT,SAAA,CAAA;AAEA6Y,QAAAA,cAAAA,CAAeE,IAAI,CAACE,iBAAiB,CAAC,CAACjZ,OAAAA,GAAAA;;;YAGrCA,OAAQoZ,CAAAA,MAAM,CAAC,CAAA,EAAG,CAAGxH,EAAAA,uBAAAA,CAAAA;YACrB5R,OAAQoZ,CAAAA,MAAM,CAAC,CAAA,EAAG,CAAGtH,EAAAA,yBAAAA,CAAAA;YACrB,OAAO9R,OAAAA;AACT,SAAA,CAAA;QAEA6Y,cAAeQ,CAAAA,eAAe,CAAC,UAAA,EAAY,SAAW,EAAA;YACpDnd,IAAM,EAAA,oBAAA;YACNsc,SAAWnG,EAAAA;AACb,SAAA,CAAA;QAEAwG,cAAeQ,CAAAA,eAAe,CAAC,UAAA,EAAY,6BAA+B,EAAA;YACxEnd,IAAM,EAAA,+BAAA;YACNsc,SAAWrG,EAAAA;AACb,SAAA,CAAA;QAEA0G,cAAeQ,CAAAA,eAAe,CAAC,UAAA,EAAY,+BAAiC,EAAA;YAC1End,IAAM,EAAA,iCAAA;YACNsc,SAAWpG,EAAAA;AACb,SAAA,CAAA;QAEAyG,cAAeQ,CAAAA,eAAe,CAAC,UAAA,EAAY,4BAA8B,EAAA;YACvEnd,IAAM,EAAA,8BAAA;YACNsc,SAAWvG,EAAAA;AACb,SAAA,CAAA;QAEA,MAAMqH,SAAAA,GAAYzB,GAAIiB,CAAAA,SAAS,CAAC,sBAAA,CAAA;AAEhC,QAAA,IAAIQ,SAAW,EAAA;AACb,YAAA,MAAMC,WAAcD,GAAAA,SAAAA,CAAUP,IAAI,CAACS,KAAK;AACxCD,YAAAA,WAAAA,CAAYE,4BAA4B,CAACtC,0BAAAA,CAAAA;YACzCoC,WAAYtV,CAAAA,UAAU,CAACyV,GAAG,CAAC;gBAAEhe,EAAI,EAAA,sBAAA;gBAAwB2J,SAAWvJ,EAAAA;AAAqB,aAAA,CAAA;AAEzFyd,YAAAA,WAAAA,CAAYI,iBAAiB,CAAC;AAC5BC,gBAAAA,SAAAA,EAAW,KAAO;AAChB1a,wBAAAA,IAAAA,EAAM2a,cAAIrU,CAAAA,MAAM,EAAGsU,CAAAA,KAAK,CAAC;AACvB3a,4BAAAA,SAAAA,EAAW0a,eAAIE,IAAI;AACrB,yBAAA;qBACF,CAAA;gBACAC,IAAM,EAAA;AACJC,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO;AACL,4BAAA;gCACE/d,IAAM,EAAA,8BAAA;gCACNH,WAAa,EAAA;AACXL,oCAAAA,EAAAA,EAAID,cAAe,CAAA,uDAAA,CAAA;oCACnBuB,cAAgB,EAAA;AAClB,iCAAA;gCACAH,IAAM,EAAA,sBAAA;gCACNZ,SAAW,EAAA;AACTP,oCAAAA,EAAAA,EAAID,cAAe,CAAA,iDAAA,CAAA;oCACnBuB,cAAgB,EAAA;AAClB;AACF;AACD,yBAAA;AACH;AACF;AACF,aAAA,CAAA;YAEAuc,WAAYW,CAAAA,YAAY,CAACnb,gBAAkB,EAAA;gBACzCib,IAAM,EAAA;oBACJC,QAAS,CAAA,CAAA,EAAEE,iBAAiB,EAAE/D,SAAS,EAAEvZ,IAAI,EAAEud,IAAI,EAAO,EAAA;AACxD,wBAAA,IAAIhE,cAAc,aAAe,EAAA;AAC/B,4BAAA,OAAO,EAAE;AACX;wBAEA,MAAMT,cAAAA,GAAiBO,IACrBiE,iBACA,EAAA;AAAC,4BAAA,QAAA;AAAU,4BAAA,eAAA;AAAiB,4BAAA,MAAA;AAAQ,4BAAA;yBAAY,EAChD,KAAA,CAAA;AAGF,wBAAA,IAAI,CAACxE,cAAgB,EAAA;AACnB,4BAAA,OAAO,EAAE;AACX;wBAEA,IAAI9Y,IAAAA,KAAS,WAAeud,IAAAA,IAAAA,KAAS,GAAK,EAAA;AACxC,4BAAA,OAAO,EAAE;AACX;wBAEA,OAAO;AACL,4BAAA;gCACEle,IAAM,EAAA,8BAAA;gCACNH,WAAa,EAAA;AACXL,oCAAAA,EAAAA,EAAID,cAAe,CAAA,gDAAA,CAAA;oCACnBuB,cAAgB,EAAA;AAClB,iCAAA;gCACAH,IAAM,EAAA,UAAA;gCACNZ,SAAW,EAAA;AACTP,oCAAAA,EAAAA,EAAID,cAAe,CAAA,0CAAA,CAAA;oCACnBuB,cAAgB,EAAA;AAClB;AACF;AACD,yBAAA;AACH;AACF;AACF,aAAA,CAAA;AACF;AACF,KAAA;IACA,MAAMqd,aAAAA,CAAAA,CAAc,EAAEzZ,OAAO,EAAyB,EAAA;QACpD,MAAM0Z,aAAAA,GAAgB,MAAMC,OAAQC,CAAAA,GAAG,CACrC5Z,OAAQoC,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAO,CAAA,KAAK,CAAC,CAAA,CAC1CwV,IAAI,CAAC,CAAC,EAAEE,OAAAA,EAASvW,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAM6U,yBAAyB7U,IAAM5G,EAAAA,QAAAA,CAAAA;AACrCyH,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA,CACCwX,KAAK,CAAC,IAAA;gBACL,OAAO;AACLrY,oBAAAA,IAAAA,EAAM,EAAC;AACPa,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA,CAAA;QAGF,OAAOsX,OAAAA,CAAQG,OAAO,CAACJ,aAAAA,CAAAA;AACzB;AACF,CAAE;;;;;;;;;;;"}
|