element-web-synapse01pim.gr.jp

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

init.js.map (2966256B)


      1 {"version":3,"file":"bundles/12c8185ea2689492c07b/init.js","mappings":"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,yBACAC,KAAA,EACAC,SAAA,EACA,uBACAC,cAAA,EACA/+B,SAAA,EACA,uBACAh3J,MAAA,EACAg2L,mBAAA,EACA,2CACAC,0BAAA,EACA,0DACAC,aAAA,EACA,+BACAC,eAAA,EACA,mCACAC,kBAAA,EACAC,iBAAA,EACA5xH,OAAA,EACAy3F,GAAA,EACAhM,GAAA,EACAr0D,EAAA,EACAy6F,SAAA,EACAC,WAAA,EACAC,QAAA,EACAC,gBAAA,EACAplC,UAAA,EACAD,QAAA,EACAslC,QAAA,EACAC,iBAAA,EACA,uCACAC,IAAA,EACAt6B,GAAA,EACAjM,GAAA,EACAwmC,SAAA,EACAC,UAAA,EACAC,iBAAA,EACA,uCACA5Z,IAAA,EACA6Z,SAAA,EACAC,0BAAA,EACA/3I,KAAA,EACAg4I,YAAA,EACA,6BACAngC,SAAA,EACA,uBACA75H,OAAA,EACAi6J,UAAA,EACAC,YAAA,EACAC,aAAA,EACA,+BACAC,WAAA,EACA,2BACAC,UAAA,EACAl6I,WAAA,EACA,2BACAqB,SAAA,EACA,uBACA84I,eAAA,EACA,oCACAC,YAAA,EACA,6BACAC,UAAA,EACA,yBACAC,YAAA,EACA,6BACAr6I,WAAA,EACA,2BACAwjD,OAAA,EACAvwE,KAAA,EACAgsI,GAAA,EACAhM,GAAA,EACAqnC,GAAA,EACAC,GAAA,EACAC,UAAA,EACA,yBACAC,2BAAA,EACA,4DACAC,yBAAA,EACA,wDACAC,SAAA,EACAC,kBAAA,EACAC,cAAA,EACAC,QAAA,EACAC,UAAA,EACA,0BACAC,aAAA,EACA,gCACAC,YAAA,EACAC,eAAA,EACA,mCACAC,IAAA,EACAC,GAAA,EACAC,OAAA,EACAC,UAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAn5J,EAAA,EACAo5J,aAAA,EACAC,iBAAA,EACAC,QAAA,EACAC,UAAA,EACAC,WAAA,EACAC,SAAA,EACAC,aAAA,EACAC,cAAA,EACA,iCACAC,cAAA,EACA,iCACAC,kBAAA,EACA34F,MAAA,EACA44F,UAAA,EACA,yBACAC,aAAA,EACAC,UAAA,EACA,yBACAC,YAAA,EACA,6BACAC,YAAA,EACAC,YAAA,EACAC,KAAA,EACAC,iBAAA,EACAC,UAAA,EACAC,aAAA,EACAlhJ,KAAA,EACAmhJ,WAAA,EACAryD,OAAA,EACAsyD,QAAA,EACAvuE,SAAA,EACAwuE,MAAA,EACAC,OAAA,EACAC,YAAA,EACAtsL,OAAA,EACAusL,SAAA,EACAC,iBAAA,EACA,uCACAC,kBAAA,EACA,yCACAC,WAAA,EACA,2BACAC,QAAA,EACA,qBACAC,WAAA,EACAC,oBAAA,EACAC,iBAAA,EACAC,aAAA,EACAC,cAAA,EACA,iCACAvtF,OAAA,EACAwtF,UAAA,EACAC,UAAA,EACAC,UAAA,EACAxyH,OAAA,EACAyyH,cAAA,EACAC,oBAAA,EACAC,eAAA,EACAC,SAAA,EACA7iK,EAAA,EACA8iK,OAAA,EACAC,KAAA,EACAC,KAAA,EACAC,gBAAA,EACA,qCACAC,YAAA,EACAC,UAAA,EACAC,mBAAA,EACAC,iBAAA,EACAC,SAAA,EACAC,QAAA,EACA75H,OAAA,EACAgC,QAAA,EACA83H,OAAA,EACAxgC,GAAA,EACAygC,GAAA,EACAC,MAAA,EACAC,SAAA,EACAtuF,KAAA,EACAuuF,eAAA,EACA,mCACAC,MAAA,EACAC,QAAA,EACAC,iBAAA,EACAC,iBAAA,EACAC,MAAA,EACAC,aAAA,EACAC,YAAA,EACAC,aAAA,EACAC,MAAA,EACAC,MAAA,EACAC,YAAA,EACAC,UAAA,EACA,yBACAC,YAAA,EACA,6BACAC,sBAAA,EACA,iDACAC,uBAAA,EACA,mDACA51C,OAAA,EACAxoG,OAAA,EACAq+I,gBAAA,EACA,qCACAC,iBAAA,EACA,uCACAC,cAAA,EACA,iCACAC,eAAA,EACA,mCACAC,iBAAA,EACA,uCACAC,YAAA,EACA,6BACAC,cAAA,EACA,iCACAC,+BAAA,EACAC,yBAAA,EACAC,aAAA,EACAC,eAAA,EACAC,YAAA,EACAC,QAAA,EACAC,QAAA,EACAC,WAAA,EACA,2BACAC,eAAA,EACA,mCACAC,WAAA,EACAC,cAAA,EA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","sources":["webpack://element-web/./src/@types/media_preview.ts","webpack://element-web/./src/Avatar.ts","webpack://element-web/./src/utils/tokens/pickling.ts","webpack://element-web/./src/vector/getconfig.ts","webpack://element-web/./src/BasePlatform.ts","webpack://element-web/./src/KeyBindingsDefaults.ts","webpack://element-web/./src/KeyBindingsManager.ts","webpack://element-web/./src/Keyboard.ts","webpack://element-web/./src/actions/MatrixActionCreators.ts","webpack://element-web/./src/MatrixClientPeg.ts","webpack://element-web/./src/AsyncWrapper.tsx","webpack://element-web/./src/Modal.tsx","webpack://element-web/./src/PageTypes.ts","webpack://element-web/./src/PlatformPeg.ts","webpack://element-web/./src/PosthogAnalytics.ts","webpack://element-web/./src/dispatcher/payloads/SettingUpdatedPayload.ts","webpack://element-web/./src/PosthogTrackers.ts","webpack://element-web/./res/img/element-desktop-logo.svg","webpack://element-web/./src/SdkConfig.ts","webpack://element-web/./src/SlidingSyncManager.ts","webpack://element-web/./src/SupportedBrowser.ts","webpack://element-web/./src/components/views/dialogs/TermsDialog.tsx","webpack://element-web/./src/Terms.ts","webpack://element-web/./src/Views.ts","webpack://element-web/./src/accessibility/KeyboardShortcutUtils.ts","webpack://element-web/./src/accessibility/KeyboardShortcuts.ts","webpack://element-web/./src/accessibility/roving/RovingAccessibleButton.tsx","webpack://element-web/./src/accessibility/RovingTabIndex.tsx","webpack://element-web/./src/components/structures/TabbedView.tsx","webpack://element-web/./src/hooks/useWindowWidth.ts","webpack://element-web/./src/components/views/dialogs/BaseDialog.tsx","webpack://element-web/./src/components/views/dialogs/ErrorDialog.tsx","webpack://element-web/./src/components/views/dialogs/InfoDialog.tsx","webpack://element-web/./src/components/views/dialogs/QuestionDialog.tsx","webpack://element-web/./src/components/views/dialogs/ScrollableBaseModal.tsx","webpack://element-web/./src/components/views/dialogs/UserTab.ts","webpack://element-web/./src/components/views/dialogs/devtools/BaseTool.tsx","webpack://element-web/./src/components/views/dialogs/devtools/ServerInfo.tsx","webpack://element-web/./src/components/views/elements/AccessibleButton.tsx","webpack://element-web/./src/components/views/elements/DialogButtons.tsx","webpack://element-web/./src/components/views/elements/ExternalLink.tsx","webpack://element-web/./src/components/views/elements/Field.tsx","webpack://element-web/./src/components/views/elements/Spinner.tsx","webpack://element-web/./src/components/views/elements/SyntaxHighlight.tsx","webpack://element-web/./src/components/views/toasts/GenericToast.tsx","webpack://element-web/./src/components/views/typography/Heading.tsx","webpack://element-web/./src/contexts/MatrixClientContext.tsx","webpack://element-web/./src/contexts/RoomContext.ts","webpack://element-web/./src/contexts/SDKContext.ts","webpack://element-web/./src/customisations/Alias.ts","webpack://element-web/./src/customisations/ChatExport.ts","webpack://element-web/./src/customisations/ComponentVisibility.ts","webpack://element-web/./src/customisations/Directory.ts","webpack://element-web/./src/customisations/Lifecycle.ts","webpack://element-web/./src/customisations/Media.ts","webpack://element-web/./src/customisations/models/IMediaEventContent.ts","webpack://element-web/./src/customisations/RoomList.ts","webpack://element-web/./src/customisations/UserIdentifier.ts","webpack://element-web/./src/customisations/WidgetPermissions.ts","webpack://element-web/./src/customisations/WidgetVariables.ts","webpack://element-web/./src/dispatcher/actions.ts","webpack://element-web/./src/dispatcher/dispatcher.ts","webpack://element-web/./src/dispatcher/payloads.ts","webpack://element-web/./src/dispatcher/payloads/ComposerInsertPayload.ts","webpack://element-web/./src/emojipicker/recent.ts","webpack://element-web/./src/favicon.ts","webpack://element-web/./src/hooks/useAsyncMemo.ts","webpack://element-web/./src/hooks/useEventEmitter.ts","webpack://element-web/./src/hooks/useTimeout.ts","webpack://element-web/./src/i18n/browser.ts","webpack://element-web/./src/i18n/UserFriendlyError.ts","webpack://element-web/./src/i18n/languages.ts","webpack://element-web/./src/i18n/custom.ts","webpack://element-web/./src/i18n/settings.ts","webpack://element-web/./src/i18n/utils.ts","webpack://element-web/./src/ScalarAuthClient.ts","webpack://element-web/./src/components/views/settings/IntegrationManager.tsx","webpack://element-web/./src/integrations/IntegrationManagerInstance.ts","webpack://element-web/./src/components/views/dialogs/IntegrationsImpossibleDialog.tsx","webpack://element-web/./src/components/views/dialogs/IntegrationsDisabledDialog.tsx","webpack://element-web/./src/integrations/IntegrationManagers.ts","webpack://element-web/./src/linkify-matrix.ts","webpack://element-web/./src/models/LocalRoom.ts","webpack://element-web/./src/modules/ConfigApi.ts","webpack://element-web/./src/modules/customComponentApi.ts","webpack://element-web/./src/modules/Profile.ts","webpack://element-web/./src/modules/Navigation.ts","webpack://element-web/./src/modules/Dialog.tsx","webpack://element-web/./src/modules/Auth.ts","webpack://element-web/./src/modules/BuiltinsApi.tsx","webpack://element-web/./src/modules/models/Room.ts","webpack://element-web/./src/modules/AccountDataApi.ts","webpack://element-web/./src/modules/ClientApi.ts","webpack://element-web/./src/modules/StoresApi.ts","webpack://element-web/./src/modules/WidgetApi.ts","webpack://element-web/./src/modules/customisationsApi.ts","webpack://element-web/./src/modules/Api.ts","webpack://element-web/./src/modules/ComposerApi.ts","webpack://element-web/./src/modules/ExtrasApi.ts","webpack://element-web/./src/components/views/dialogs/ModuleUiDialog.tsx","webpack://element-web/./src/modules/ProxiedModuleApi.ts","webpack://element-web/./src/modules/AppModule.ts","webpack://element-web/./src/modules/ModuleComponents.tsx","webpack://element-web/./src/modules/ModuleRunner.ts","webpack://element-web/./src/modules/WidgetLifecycleApi.ts","webpack://element-web/./src/utils/JSON.ts","webpack://element-web/./src/rageshake/rageshake.ts","webpack://element-web/./src/rageshake/submit-rageshake.ts","webpack://element-web/./src/settings/SettingLevel.ts","webpack://element-web/./src/settings/controllers/ThemeController.ts","webpack://element-web/./src/settings/controllers/FontSizeController.ts","webpack://element-web/./src/settings/controllers/SystemFontController.ts","webpack://element-web/./src/settings/controllers/UIFeatureController.ts","webpack://element-web/./src/settings/controllers/ReducedMotionController.ts","webpack://element-web/./src/settings/controllers/IncompatibleController.ts","webpack://element-web/./src/settings/controllers/SlidingSyncController.ts","webpack://element-web/./src/settings/controllers/ServerSupportUnstableFeatureController.ts","webpack://element-web/./src/settings/controllers/AnalyticsController.ts","webpack://element-web/./src/settings/controllers/FallbackIceServerController.ts","webpack://element-web/./src/settings/controllers/MediaPreviewConfigController.ts","webpack://element-web/./src/@types/invite-rules.ts","webpack://element-web/./src/settings/controllers/InviteRulesConfigController.ts","webpack://element-web/./src/settings/controllers/RequiresSettingsController.ts","webpack://element-web/./src/settings/Settings.tsx","webpack://element-web/./src/settings/WatchManager.ts","webpack://element-web/./src/settings/controllers/BlockInvitesConfigController.ts","webpack://element-web/./src/settings/handlers/AbstractLocalStorageSettingsHandler.ts","webpack://element-web/./src/settings/handlers/DefaultSettingsHandler.ts","webpack://element-web/./src/settings/handlers/RoomAccountSettingsHandler.ts","webpack://element-web/./src/settings/handlers/AccountSettingsHandler.ts","webpack://element-web/./src/settings/handlers/RoomSettingsHandler.ts","webpack://element-web/./src/settings/handlers/ConfigSettingsHandler.ts","webpack://element-web/./src/settings/handlers/LocalEchoWrapper.ts","webpack://element-web/./src/settings/handlers/PlatformSettingsHandler.ts","webpack://element-web/./src/settings/SettingsStore.ts","webpack://element-web/./src/settings/handlers/DeviceSettingsHandler.ts","webpack://element-web/./src/settings/handlers/RoomDeviceSettingsHandler.ts","webpack://element-web/./src/settings/UIFeature.ts","webpack://element-web/./src/settings/controllers/DeviceIsolationModeController.ts","webpack://element-web/./src/settings/controllers/MatrixClientBackedController.ts","webpack://element-web/./src/settings/controllers/NotificationControllers.ts","webpack://element-web/./src/settings/controllers/ReloadOnChangeController.ts","webpack://element-web/./src/settings/controllers/SettingController.ts","webpack://element-web/./src/settings/enums/ImageSize.ts","webpack://element-web/./src/settings/enums/Layout.ts","webpack://element-web/./src/settings/handlers/MatrixClientBackedSettingsHandler.ts","webpack://element-web/./src/settings/handlers/SettingsHandler.ts","webpack://element-web/./src/settings/watchers/FontWatcher.ts","webpack://element-web/./src/settings/watchers/ThemeWatcher.ts","webpack://element-web/./src/stores/ActiveWidgetStore.ts","webpack://element-web/./src/stores/AsyncStore.ts","webpack://element-web/./src/stores/AsyncStoreWithClient.ts","webpack://element-web/./src/stores/BreadcrumbsStore.ts","webpack://element-web/./src/stores/OwnProfileStore.ts","webpack://element-web/./src/stores/ReadyWatchingStore.ts","webpack://element-web/./src/stores/ToastStore.ts","webpack://element-web/./src/stores/UIStore.ts","webpack://element-web/./src/stores/WidgetEchoStore.ts","webpack://element-web/./src/stores/WidgetStore.ts","webpack://element-web/./src/stores/room-list-v3/skip-list/sorters/index.ts","webpack://element-web/./src/stores/spaces/index.ts","webpack://element-web/./src/stores/widgets/types.ts","webpack://element-web/./src/stores/widgets/WidgetLayoutStore.ts","webpack://element-web/./src/stores/widgets/WidgetMessagingStore.ts","webpack://element-web/./src/theme.ts","webpack://element-web/./src/components/views/dialogs/ChangelogDialog.tsx","webpack://element-web/./src/toasts/UpdateToast.tsx","webpack://element-web/./src/utils/DMRoomMap.ts","webpack://element-web/./src/utils/LruCache.ts","webpack://element-web/./src/utils/SnakedObject.ts","webpack://element-web/./src/utils/StorageAccess.ts","webpack://element-web/./src/utils/StorageManager.ts","webpack://element-web/./src/utils/UrlUtils.ts","webpack://element-web/./src/utils/WidgetUtils.ts","webpack://element-web/./src/utils/arrays.ts","webpack://element-web/./src/utils/device/dehydration.ts","webpack://element-web/./src/utils/device/parseUserAgent.ts","webpack://element-web/./src/utils/dm/filterValidMDirect.ts","webpack://element-web/./src/utils/localRoom/isLocalRoom.ts","webpack://element-web/./src/utils/maps.ts","webpack://element-web/./src/utils/objects.ts","webpack://element-web/./src/utils/permalinks/MatrixToPermalinkConstructor.ts","webpack://element-web/./src/utils/permalinks/PermalinkConstructor.ts","webpack://element-web/./src/utils/permalinks/ElementPermalinkConstructor.ts","webpack://element-web/./src/utils/permalinks/MatrixSchemePermalinkConstructor.ts","webpack://element-web/./src/utils/permalinks/Permalinks.ts","webpack://element-web/./src/utils/permalinks/navigator.ts","webpack://element-web/./src/utils/promise.ts","webpack://element-web/./src/utils/strings.ts","webpack://element-web/./src/utils/units.ts","webpack://element-web/./src/utils/userStatus.ts","webpack://element-web/./src/components/views/toasts/GenericExpiringToast.tsx","webpack://element-web/./src/components/views/elements/DesktopCapturerSourcePicker.tsx","webpack://element-web/./src/indexing/BaseEventIndexManager.ts","webpack://element-web/./src/vector/platform/IPCManager.ts","webpack://element-web/./src/vector/platform/SeshatIndexManager.ts","webpack://element-web/./src/vector/platform/ElectronPlatform.tsx","webpack://element-web/./src/utils/SessionLock.ts","webpack://element-web/./src/vector/platform/WebPlatform.ts","webpack://element-web/./src/vector/platform/PWAPlatform.ts","webpack://element-web/./src/vector/rageshakesetup.ts","webpack://element-web/./src/vector/init.tsx","webpack://element-web/./src/widgets/Jitsi.ts","webpack://element-web/./src/widgets/WidgetType.ts","webpack://element-web/./res/img/betas/video_rooms.png","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/clean.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/inc.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/diff.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/major.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/minor.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/patch.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/prerelease.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rcompare.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-loose.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-build.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/sort.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rsort.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/coerce.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/truncate.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/to-comparators.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/max-satisfying.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-satisfying.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/outside.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/gtr.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/ltr.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/intersects.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/simplify.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/subset.js","webpack://element-web/../node_modules/.pnpm/semver@7.8.5/node_modules/semver/index.js","webpack://element-web/../packages/module-api/src/api/index.ts","webpack://element-web/../packages/module-api/src/loader.ts","webpack://element-web/../packages/module-api/src/api/customisations.ts","webpack://element-web/../packages/module-api/src/api/watchable.ts","webpack://element-web/javascript/node_modules/.pnpm/source-map-loader@5.0.0_webpack@5.108.4/node_modules/source-map-loader/dist/packages/shared-components/dist/numbers.js","webpack://element-web/javascript/node_modules/.pnpm/source-map-loader@5.0.0_webpack@5.108.4/node_modules/source-map-loader/dist/packages/shared-components/dist/element-web-shared-components.js"],"sourcesContent":["/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nexport enum MediaPreviewValue {\n    /**\n     * Media previews should be enabled.\n     */\n    On = \"on\",\n    /**\n     * Media previews should only be enabled for rooms with non-public join rules.\n     */\n    Private = \"private\",\n    /**\n     * Media previews should be disabled.\n     */\n    Off = \"off\",\n}\n\nexport const MEDIA_PREVIEW_ACCOUNT_DATA_TYPE = \"io.element.msc4278.media_preview_config\";\nexport interface MediaPreviewConfig extends Record<string, unknown> {\n    /**\n     * Media preview setting for thumbnails of media in rooms.\n     */\n    media_previews?: MediaPreviewValue;\n    /**\n     * Media preview settings for avatars of rooms we have been invited to.\n     */\n    invite_avatars?: MediaPreviewValue.On | MediaPreviewValue.Off;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2015, 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type RoomMember, type User, type Room, type ResizeMethod } from \"matrix-js-sdk/src/matrix\";\nimport { useIdColorHash } from \"@vector-im/compound-web\";\n\nimport DMRoomMap from \"./utils/DMRoomMap\";\nimport { mediaFromMxc } from \"./customisations/Media\";\nimport { isLocalRoom } from \"./utils/localRoom/isLocalRoom\";\nimport { getFirstGrapheme } from \"./utils/strings\";\nimport ThemeWatcher from \"./settings/watchers/ThemeWatcher\";\n\n/**\n * Hardcoded from the Compound colors.\n * Shade for background as defined in the compound web implementation\n * https://github.com/vector-im/compound-web/blob/main/src/components/Avatar\n */\nconst AVATAR_BG_LIGHT_COLORS = [\"#e0f8d9\", \"#e3f5f8\", \"#faeefb\", \"#f1efff\", \"#ffecf0\", \"#ffefe4\"];\nconst AVATAR_TEXT_LIGHT_COLORS = [\"#005f00\", \"#00548c\", \"#822198\", \"#5d26cd\", \"#9f0850\", \"#9b2200\"];\n\nconst AVATAR_BG_DARK_COLORS = [\"#002600\", \"#001b4e\", \"#37004e\", \"#22006a\", \"#450018\", \"#470000\"];\nconst AVATAR_TEXT_DARK_COLORS = [\"#56c02c\", \"#21bacd\", \"#d991de\", \"#ad9cfe\", \"#fe84a2\", \"#f6913d\"];\n\n// Not to be used for BaseAvatar urls as that has similar default avatar fallback already\nexport function avatarUrlForMember(\n    member: RoomMember | undefined,\n    width: number,\n    height: number,\n    resizeMethod: ResizeMethod,\n): string {\n    let url: string | null | undefined;\n    if (member?.getMxcAvatarUrl()) {\n        url = mediaFromMxc(member.getMxcAvatarUrl()).getThumbnailOfSourceHttp(width, height, resizeMethod);\n    }\n    if (!url) {\n        // member can be null here currently since on invites, the JS SDK\n        // does not have enough info to build a RoomMember object for\n        // the inviter.\n        url = defaultAvatarUrlForString(member ? member.userId : \"\");\n    }\n    return url;\n}\n\n/**\n * Determines if the current theme is dark\n */\nfunction isDarkTheme(): boolean {\n    return new ThemeWatcher().getEffectiveTheme() === \"dark\";\n}\n\n/**\n * Determines the HEX color to use in the avatar pills\n * @param id the user or room ID\n * @returns the text color to use on the avatar\n */\nexport function getAvatarTextColor(id: string): string {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    const index = useIdColorHash(id);\n\n    // Use light colors by default\n    return isDarkTheme() ? AVATAR_TEXT_DARK_COLORS[index - 1] : AVATAR_TEXT_LIGHT_COLORS[index - 1];\n}\n\nexport function avatarUrlForUser(\n    user: Pick<User, \"avatarUrl\">,\n    width: number,\n    height: number,\n    resizeMethod?: ResizeMethod,\n): string | null {\n    if (!user.avatarUrl) return null;\n    return mediaFromMxc(user.avatarUrl).getThumbnailOfSourceHttp(width, height, resizeMethod);\n}\n\nfunction isValidHexColor(color: string): boolean {\n    return (\n        typeof color === \"string\" &&\n        (color.length === 7 || color.length === 9) &&\n        color.startsWith(\"#\") &&\n        !color\n            .slice(1)\n            .split(\"\")\n            .some((c) => isNaN(parseInt(c, 16)))\n    );\n}\n\nfunction urlForColor(color: string): string {\n    const size = 40;\n    const canvas = document.createElement(\"canvas\");\n    canvas.width = size;\n    canvas.height = size;\n    const ctx = canvas.getContext(\"2d\");\n    // bail out when using jsdom in unit tests\n    if (!ctx) {\n        return \"\";\n    }\n    ctx.fillStyle = color;\n    ctx.fillRect(0, 0, size, size);\n    return canvas.toDataURL();\n}\n\n// XXX: Ideally we'd clear this cache when the theme changes\n// but since this function is at global scope, it's a bit\n// hard to install a listener here, even if there were a clear event to listen to\nconst colorToDataURLCache = new Map<string, string>();\n\nexport function defaultAvatarUrlForString(s: string): string {\n    if (!s) return \"\"; // XXX: should never happen but empirically does by evidence of a rageshake\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    const colorIndex = useIdColorHash(s);\n    // overwritten color value in custom themes\n    const cssVariable = `--avatar-background-colors_${colorIndex}`;\n    const cssValue = getComputedStyle(document.body).getPropertyValue(cssVariable);\n    // Light colors are the default\n    const color =\n        cssValue || isDarkTheme() ? AVATAR_BG_DARK_COLORS[colorIndex - 1] : AVATAR_BG_LIGHT_COLORS[colorIndex - 1];\n\n    let dataUrl = colorToDataURLCache.get(color);\n    if (!dataUrl) {\n        // validate color as this can come from account_data\n        // with custom theming\n        if (isValidHexColor(color)) {\n            dataUrl = urlForColor(color);\n            colorToDataURLCache.set(color, dataUrl);\n        } else {\n            dataUrl = \"\";\n        }\n    }\n    return dataUrl;\n}\n\n/**\n * returns the first (non-sigil) character of 'name',\n * converted to uppercase\n * @param {string} name\n * @returns {string} the first letter\n */\nexport function getInitialLetter(name: string): string | undefined {\n    if (!name) {\n        // XXX: We should find out what causes the name to sometimes be falsy.\n        console.trace(\"`name` argument to `getInitialLetter` not supplied\");\n        return undefined;\n    }\n    if (name.length < 1) {\n        return undefined;\n    }\n\n    const initial = name[0];\n    if ((initial === \"@\" || initial === \"#\" || initial === \"+\") && name[1]) {\n        name = name.substring(1);\n    }\n\n    return getFirstGrapheme(name).toUpperCase();\n}\n\nexport function avatarUrlForRoom(\n    room: Room | null,\n    width?: number,\n    height?: number,\n    resizeMethod?: ResizeMethod,\n    avatarMxcOverride?: string,\n): string | null {\n    if (!room) return null; // null-guard\n    const mxc = avatarMxcOverride ?? room.getMxcAvatarUrl();\n    if (mxc) {\n        const media = mediaFromMxc(mxc);\n        if (width !== undefined && height !== undefined) {\n            return media.getThumbnailOfSourceHttp(width, height, resizeMethod);\n        }\n        return media.srcHttp;\n    }\n\n    // space rooms cannot be DMs so skip the rest\n    if (room.isSpaceRoom()) return null;\n\n    // If the room is not a DM don't fallback to a member avatar\n    if (!DMRoomMap.shared().getUserIdForRoomId(room.roomId) && !isLocalRoom(room)) {\n        return null;\n    }\n\n    // If there are only two members in the DM use the avatar of the other member\n    const otherMember = room.getAvatarFallbackMember();\n    if (otherMember?.getMxcAvatarUrl()) {\n        const media = mediaFromMxc(otherMember.getMxcAvatarUrl());\n        if (width !== undefined && height !== undefined) {\n            return media.getThumbnailOfSourceHttp(width, height, resizeMethod);\n        }\n        return media.srcHttp;\n    }\n    return null;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020-2024 The Matrix.org Foundation C.I.C.\nCopyright 2018 New Vector Ltd\nCopyright 2016 Aviral Dasgupta\nCopyright 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// Note: we don't import the base64 utils from `matrix-js-sdk/src/matrix` because this file\n// is used by Element Web's service worker, and importing `matrix` brings in ~1mb of stuff\n// we don't need. Instead, we ignore the import restriction and only bring in what we actually\n// need.\n// Note: `base64` is not public in the js-sdk, so if it changes/breaks, that's on us. We should\n// be okay with our frequent tests, locked versioning, etc though. We'll pick up problems well\n// before release.\n// eslint-disable-next-line no-restricted-imports\nimport { encodeUnpaddedBase64 } from \"matrix-js-sdk/src/base64\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\n/**\n * Encrypted format of a pickle key, as stored in IndexedDB.\n */\nexport interface EncryptedPickleKey {\n    /** The encrypted payload. */\n    encrypted?: BufferSource;\n\n    /** Initialisation vector for the encryption. */\n    iv?: BufferSource;\n\n    /** The encryption key which was used to encrypt the payload. */\n    cryptoKey?: CryptoKey;\n}\n\n/**\n * Calculates the `additionalData` for the AES-GCM key used by the pickling processes. This\n * additional data is *not* encrypted, but *is* authenticated. The additional data is constructed\n * from the user ID and device ID provided.\n *\n * The later-constructed pickle key is used to decrypt values, such as access tokens, from IndexedDB.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/AesGcmParams for more information on\n * `additionalData`.\n *\n * @param {string} userId The user ID who owns the pickle key.\n * @param {string} deviceId The device ID which owns the pickle key.\n * @returns {Uint8Array} The additional data as a Uint8Array.\n */\nexport function getPickleAdditionalData(userId: string, deviceId: string): Uint8Array<ArrayBuffer> {\n    const additionalData = new Uint8Array(userId.length + deviceId.length + 1);\n    for (let i = 0; i < userId.length; i++) {\n        additionalData[i] = userId.charCodeAt(i);\n    }\n    additionalData[userId.length] = 124; // \"|\"\n    for (let i = 0; i < deviceId.length; i++) {\n        additionalData[userId.length + 1 + i] = deviceId.charCodeAt(i);\n    }\n    return additionalData;\n}\n\n/**\n * Encrypt the given pickle key, ready for storage in the database.\n *\n * @param pickleKey - The key to be encrypted.\n * @param userId - The user ID the pickle key belongs to.\n * @param deviceId - The device ID the pickle key belongs to.\n *\n * @returns Data object ready for storing in indexeddb.\n */\nexport async function encryptPickleKey(\n    pickleKey: Uint8Array<ArrayBuffer>,\n    userId: string,\n    deviceId: string,\n): Promise<EncryptedPickleKey | undefined> {\n    if (!crypto?.subtle) {\n        return undefined;\n    }\n    const cryptoKey = await crypto.subtle.generateKey({ name: \"AES-GCM\", length: 256 }, false, [\"encrypt\", \"decrypt\"]);\n    const iv = new Uint8Array(32);\n    crypto.getRandomValues(iv);\n\n    const additionalData = getPickleAdditionalData(userId, deviceId);\n    const encrypted = await crypto.subtle.encrypt({ name: \"AES-GCM\", iv, additionalData }, cryptoKey, pickleKey);\n    return { encrypted, iv, cryptoKey };\n}\n\n/**\n * Decrypts the provided data into a pickle key and base64-encodes it ready for use elsewhere.\n *\n * If `data` is undefined in part or in full, returns undefined.\n *\n *  If crypto functions are not available, returns undefined regardless of input.\n *\n * @param data An object containing the encrypted pickle key data: encrypted payload, initialization vector (IV), and crypto key. Typically loaded from indexedDB.\n * @param userId The user ID the pickle key belongs to.\n * @param deviceId The device ID the pickle key belongs to.\n * @returns A promise that resolves to the encoded pickle key, or undefined if the key cannot be built and encoded.\n */\nexport async function buildAndEncodePickleKey(\n    data: EncryptedPickleKey | undefined,\n    userId: string,\n    deviceId: string,\n): Promise<string | undefined> {\n    if (!crypto?.subtle) {\n        return undefined;\n    }\n    if (!data || !data.encrypted || !data.iv || !data.cryptoKey) {\n        return undefined;\n    }\n\n    try {\n        const additionalData = getPickleAdditionalData(userId, deviceId);\n        const pickleKeyBuf = await crypto.subtle.decrypt(\n            { name: \"AES-GCM\", iv: data.iv, additionalData },\n            data.cryptoKey,\n            data.encrypted,\n        );\n        if (pickleKeyBuf) {\n            return encodeUnpaddedBase64(new Uint8Array(pickleKeyBuf));\n        }\n    } catch {\n        logger.error(\"Error decrypting pickle key\");\n    }\n\n    return undefined;\n}\n","/*\nCopyright 2018-2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { IConfigOptions } from \"../IConfigOptions\";\n\n// Load the config file. First try to load up a domain-specific config of the\n// form \"config.$domain.json\" and if that fails, fall back to config.json.\nexport async function getVectorConfig(relativeLocation = \"\"): Promise<IConfigOptions | undefined> {\n    if (relativeLocation !== \"\" && !relativeLocation.endsWith(\"/\")) relativeLocation += \"/\";\n\n    // Handle trailing dot FQDNs\n    let domain = window.location.hostname.trimEnd();\n    if (domain.endsWith(\".\")) {\n        domain = domain.slice(0, -1);\n    }\n\n    const specificConfigPromise = getConfig(`${relativeLocation}config.${domain}.json`);\n    const generalConfigPromise = getConfig(relativeLocation + \"config.json\");\n\n    try {\n        const configJson = await specificConfigPromise;\n        // 404s succeed with an empty json config, so check that there are keys\n        if (!configJson || Object.keys(configJson).length === 0) {\n            throw new Error(); // throw to enter the catch\n        }\n        return configJson;\n    } catch {\n        return generalConfigPromise;\n    }\n}\n\nasync function getConfig(configJsonFilename: string): Promise<IConfigOptions | undefined> {\n    const url = new URL(configJsonFilename, window.location.href);\n    url.searchParams.set(\"cachebuster\", Date.now().toString());\n    const res = await fetch(url, {\n        cache: \"no-cache\",\n        method: \"GET\",\n    });\n\n    if (res.status === 404 || res.status === 0) {\n        // Lack of a config isn't an error, we should just use the defaults.\n        // Also treat a blank config as no config, assuming the status code is 0, because we don't get 404s from file:\n        // URIs so this is the only way we can not fail if the file doesn't exist when loading from a file:// URI.\n        return {} as IConfigOptions;\n    }\n\n    if (res.ok) {\n        return res.json();\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\nCopyright 2018 New Vector Ltd\nCopyright 2016 Aviral Dasgupta\nCopyright 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    type MatrixClient,\n    type MatrixEvent,\n    type Room,\n    type SSOAction,\n    encodeUnpaddedBase64,\n    type OAuthRegistrationRequest,\n    MatrixEventEvent,\n} from \"matrix-js-sdk/src/matrix\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport dis from \"./dispatcher/dispatcher\";\nimport type BaseEventIndexManager from \"./indexing/BaseEventIndexManager\";\nimport { type ActionPayload } from \"./dispatcher/payloads\";\nimport { type CheckUpdatesPayload } from \"./dispatcher/payloads/CheckUpdatesPayload\";\nimport { Action } from \"./dispatcher/actions\";\nimport { hideToast as hideUpdateToast } from \"./toasts/UpdateToast\";\nimport { MatrixClientPeg } from \"./MatrixClientPeg\";\nimport { idbLoad, idbSave, idbDelete } from \"./utils/StorageAccess\";\nimport { type ViewRoomPayload } from \"./dispatcher/payloads/ViewRoomPayload\";\nimport { type IConfigOptions } from \"./IConfigOptions\";\nimport SdkConfig from \"./SdkConfig\";\nimport { buildAndEncodePickleKey, encryptPickleKey } from \"./utils/tokens/pickling\";\nimport Favicon from \"./favicon.ts\";\nimport { getVectorConfig } from \"./vector/getconfig.ts\";\n\nexport const SSO_HOMESERVER_URL_KEY = \"mx_sso_hs_url\";\nexport const SSO_ID_SERVER_URL_KEY = \"mx_sso_is_url\";\nexport const SSO_IDP_ID_KEY = \"mx_sso_idp_id\";\n\nexport enum UpdateCheckStatus {\n    Checking = \"CHECKING\",\n    Error = \"ERROR\",\n    NotAvailable = \"NOTAVAILABLE\",\n    Downloading = \"DOWNLOADING\",\n    Ready = \"READY\",\n}\n\nexport interface UpdateStatus {\n    /**\n     * The current phase of the manual update check.\n     */\n    status: UpdateCheckStatus;\n    /**\n     * Detail string relating to the current status, typically for error details.\n     */\n    detail?: string;\n}\n\nconst UPDATE_DEFER_KEY = \"mx_defer_update\";\n\n/**\n * Base class for classes that provide platform-specific functionality\n * eg. Setting an application badge or displaying notifications\n *\n * Instances of this class are provided by the application.\n */\nexport default abstract class BasePlatform {\n    protected notificationCount = 0;\n    protected errorDidOccur = false;\n    protected _favicon?: Favicon;\n    public readonly initialised = Promise.resolve<void>(undefined);\n\n    protected constructor() {\n        dis.register(this.onAction.bind(this));\n        this.startUpdateCheck = this.startUpdateCheck.bind(this);\n    }\n\n    public async getConfig(): Promise<IConfigOptions | undefined> {\n        return getVectorConfig();\n    }\n\n    /**\n     * Get a sensible default display name for the device Element is running on\n     */\n    public abstract getDefaultDeviceDisplayName(): string;\n\n    protected onAction(payload: ActionPayload): void {\n        switch (payload.action) {\n            case Action.ClientNotViable:\n            case Action.OnLoggedOut:\n                this.setNotificationCount(0);\n                break;\n        }\n    }\n\n    // Used primarily for Analytics\n    public abstract getHumanReadableName(): string;\n\n    public setNotificationCount(count: number): void {\n        if (this.notificationCount === count) return;\n        this.notificationCount = count;\n        this.updateFavicon();\n    }\n\n    public setErrorStatus(errorDidOccur: boolean): void {\n        if (this.errorDidOccur === errorDidOccur) return;\n        this.errorDidOccur = errorDidOccur;\n        this.updateFavicon();\n    }\n\n    /**\n     * Whether we can call checkForUpdate on this platform build\n     */\n    public async canSelfUpdate(): Promise<boolean> {\n        return false;\n    }\n\n    public startUpdateCheck(): void {\n        hideUpdateToast();\n        localStorage.removeItem(UPDATE_DEFER_KEY);\n        dis.dispatch<CheckUpdatesPayload>({\n            action: Action.CheckUpdates,\n            status: UpdateCheckStatus.Checking,\n        });\n    }\n\n    /**\n     * Update the currently running app to the latest available version\n     * and replace this instance of the app with the new version.\n     */\n    public installUpdate(): void {}\n\n    /**\n     * Check if the version update has been deferred and that deferment is still in effect\n     * @param newVersion the version string to check\n     */\n    protected shouldShowUpdate(newVersion: string): boolean {\n        // If the user registered on this client in the last 24 hours then do not show them the update toast\n        if (MatrixClientPeg.userRegisteredWithinLastHours(24)) return false;\n\n        try {\n            const [version, deferUntil] = JSON.parse(localStorage.getItem(UPDATE_DEFER_KEY)!);\n            return newVersion !== version || Date.now() > deferUntil;\n        } catch {\n            return true;\n        }\n    }\n\n    /**\n     * Ignore the pending update and don't prompt about this version\n     * until the next morning (8am).\n     */\n    public deferUpdate(newVersion: string): void {\n        const date = new Date(Date.now() + 24 * 60 * 60 * 1000);\n        date.setHours(8, 0, 0, 0); // set to next 8am\n        localStorage.setItem(UPDATE_DEFER_KEY, JSON.stringify([newVersion, date.getTime()]));\n        hideUpdateToast();\n    }\n\n    /**\n     * Return true if platform supports multi-language\n     * spell-checking, otherwise false.\n     */\n    public supportsSpellCheckSettings(): boolean {\n        return false;\n    }\n\n    /**\n     * Returns true if platform allows overriding native context menus\n     */\n    public allowOverridingNativeContextMenus(): boolean {\n        return false;\n    }\n\n    /**\n     * Returns true if the platform supports displaying\n     * notifications, otherwise false.\n     * @returns {boolean} whether the platform supports displaying notifications\n     */\n    public supportsNotifications(): boolean {\n        return false;\n    }\n\n    /**\n     * Returns true if the application currently has permission\n     * to display notifications. Otherwise false.\n     * @returns {boolean} whether the application has permission to display notifications\n     */\n    public maySendNotifications(): boolean {\n        return false;\n    }\n\n    /**\n     * Requests permission to send notifications. Returns\n     * a promise that is resolved when the user has responded\n     * to the request. The promise has a single string argument\n     * that is 'granted' if the user allowed the request or\n     * 'denied' otherwise.\n     */\n    public abstract requestNotificationPermission(): Promise<string>;\n\n    public displayNotification(\n        title: string,\n        msg: string,\n        avatarUrl: string | null,\n        room: Room,\n        ev?: MatrixEvent,\n    ): Notification {\n        const notifBody: NotificationOptions = {\n            body: msg,\n            silent: true, // we play our own sounds\n        };\n        if (avatarUrl) notifBody[\"icon\"] = avatarUrl;\n        const notification = new window.Notification(title, notifBody);\n\n        notification.onclick = () => {\n            const payload: ViewRoomPayload = {\n                action: Action.ViewRoom,\n                room_id: room.roomId,\n                metricsTrigger: \"Notification\",\n            };\n\n            if (ev?.getThread()) {\n                payload.event_id = ev.getId();\n            }\n\n            dis.dispatch(payload);\n            window.focus();\n        };\n\n        const closeHandler = (): void => notification.close();\n\n        // Clear a notification from a redacted event.\n        if (ev) {\n            ev.once(MatrixEventEvent.BeforeRedaction, closeHandler);\n            notification.onclose = () => {\n                ev.off(MatrixEventEvent.BeforeRedaction, closeHandler);\n            };\n        }\n\n        return notification;\n    }\n\n    public loudNotification(ev: MatrixEvent, room: Room): void {}\n\n    /**\n     * Returns true if the platform requires URL previews in tooltips, otherwise false.\n     * @returns {boolean} whether the platform requires URL previews in tooltips\n     */\n    public needsUrlTooltips(): boolean {\n        return false;\n    }\n\n    /**\n     * Returns a promise that resolves to a string representing the current version of the application.\n     */\n    public abstract getAppVersion(): Promise<string>;\n\n    /**\n     * Restarts the application, without necessarily reloading\n     * any application code\n     */\n    public abstract reload(): void;\n\n    public supportsSetting(settingName?: string): boolean {\n        return false;\n    }\n\n    public async getSettingValue(settingName: string): Promise<any> {\n        return undefined;\n    }\n\n    public setSettingValue(settingName: string, value: any): Promise<void> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Get our platform specific EventIndexManager.\n     *\n     * @returns {BaseEventIndexManager} The EventIndex manager for our platform,\n     * can be null if the platform doesn't support event indexing.\n     */\n    public getEventIndexingManager(): BaseEventIndexManager | null {\n        return null;\n    }\n\n    public setLanguage(preferredLangs: string[]): void {}\n\n    public setSpellCheckEnabled(enabled: boolean): void {}\n\n    public async getSpellCheckEnabled(): Promise<boolean> {\n        return false;\n    }\n\n    public setSpellCheckLanguages(preferredLangs: string[]): void {}\n\n    public getSpellCheckLanguages(): Promise<string[]> | null {\n        return null;\n    }\n\n    public async getDesktopCapturerSources(options: GetSourcesOptions): Promise<Array<DesktopCapturerSource>> {\n        return [];\n    }\n\n    public supportsDesktopCapturer(): boolean {\n        return false;\n    }\n\n    public supportsJitsiScreensharing(): boolean {\n        return true;\n    }\n\n    public overrideBrowserShortcuts(): boolean {\n        return false;\n    }\n\n    public navigateForwardBack(back: boolean): void {}\n\n    public getAvailableSpellCheckLanguages(): Promise<string[]> | null {\n        return null;\n    }\n\n    /**\n     * The URL to return to after a successful SSO authentication\n     * @param fragmentAfterLogin optional fragment for specific view to return to\n     */\n    public getSSOCallbackUrl(fragmentAfterLogin = \"\"): URL {\n        const url = new URL(window.location.href);\n        url.hash = fragmentAfterLogin;\n        return url;\n    }\n\n    /**\n     * Begin Single Sign On flows.\n     * @param {MatrixClient} mxClient the matrix client using which we should start the flow\n     * @param {\"sso\"|\"cas\"} loginType the type of SSO it is, CAS/SSO.\n     * @param {string} fragmentAfterLogin the hash to pass to the app during sso callback.\n     * @param {SSOAction} action the SSO flow to indicate to the IdP, optional.\n     * @param {string} idpId The ID of the Identity Provider being targeted, optional.\n     */\n    public startSingleSignOn(\n        mxClient: MatrixClient,\n        loginType: \"sso\" | \"cas\",\n        fragmentAfterLogin?: string,\n        idpId?: string,\n        action?: SSOAction,\n    ): void {\n        // persist hs url and is url for when the user is returned to the app with the login token\n        localStorage.setItem(SSO_HOMESERVER_URL_KEY, mxClient.getHomeserverUrl());\n        if (mxClient.getIdentityServerUrl()) {\n            localStorage.setItem(SSO_ID_SERVER_URL_KEY, mxClient.getIdentityServerUrl()!);\n        }\n        if (idpId) {\n            localStorage.setItem(SSO_IDP_ID_KEY, idpId);\n        }\n        const callbackUrl = this.getSSOCallbackUrl(fragmentAfterLogin);\n        window.location.href = mxClient.getSsoLoginUrl(callbackUrl.toString(), loginType, idpId, action); // redirect to SSO\n    }\n\n    /**\n     * Get a previously stored pickle key.  The pickle key is used for\n     * encrypting libolm objects and react-sdk-crypto data.\n     * @param {string} userId the user ID for the user that the pickle key is for.\n     * @param {string} deviceId the device ID that the pickle key is for.\n     * @returns {string|null} the previously stored pickle key, or null if no\n     *     pickle key has been stored.\n     */\n    public async getPickleKey(userId: string, deviceId: string): Promise<string | null> {\n        let data: { encrypted?: BufferSource; iv?: BufferSource; cryptoKey?: CryptoKey } | undefined;\n        try {\n            data = await idbLoad(\"pickleKey\", [userId, deviceId]);\n        } catch (e) {\n            logger.error(\"idbLoad for pickleKey failed\", e);\n        }\n\n        return (await buildAndEncodePickleKey(data, userId, deviceId)) ?? null;\n    }\n\n    /**\n     * Create and store a pickle key for encrypting libolm objects.\n     * @param {string} userId the user ID for the user that the pickle key is for.\n     * @param {string} deviceId the device ID that the pickle key is for.\n     * @returns {string|null} the pickle key, or null if the platform does not\n     *     support storing pickle keys.\n     */\n    public async createPickleKey(userId: string, deviceId: string): Promise<string | null> {\n        const randomArray = new Uint8Array(32);\n        crypto.getRandomValues(randomArray);\n        const data = await encryptPickleKey(randomArray, userId, deviceId);\n        if (data === undefined) {\n            // no crypto support\n            return null;\n        }\n\n        try {\n            await idbSave(\"pickleKey\", [userId, deviceId], data);\n        } catch {\n            return null;\n        }\n        return encodeUnpaddedBase64(randomArray);\n    }\n\n    /**\n     * Delete a previously stored pickle key from storage.\n     * @param {string} userId the user ID for the user that the pickle key is for.\n     * @param {string} deviceId the device ID that the pickle key is for.\n     */\n    public async destroyPickleKey(userId: string, deviceId: string): Promise<void> {\n        try {\n            await idbDelete(\"pickleKey\", [userId, deviceId]);\n        } catch (e) {\n            logger.error(\"idbDelete failed in destroyPickleKey\", e);\n        }\n    }\n\n    /**\n     * Clear app storage, called when logging out to perform data clean up.\n     */\n    public async clearStorage(): Promise<void> {\n        window.sessionStorage.clear();\n        window.localStorage.clear();\n    }\n\n    /**\n     * Base URL to use when generating external links for this client, for platforms e.g. Desktop this will be a different instance\n     */\n    public get baseUrl(): string {\n        return window.location.origin + window.location.pathname;\n    }\n\n    /**\n     * Fallback Client URI to use for OAuth2 client registration for if one is not specified in config.json\n     */\n    public get defaultOAuthClientUri(): string {\n        return window.location.origin;\n    }\n\n    /**\n     * Metadata to use for dynamic OAuth2 client registrations\n     */\n    public async getOAuthClientMetadata(): Promise<OAuthRegistrationRequest> {\n        const config = SdkConfig.get();\n        return {\n            client_name: config.brand,\n            client_uri: config.oidc_metadata?.client_uri ?? this.defaultOAuthClientUri,\n            redirect_uris: [this.getOAuthCallbackUrl().href],\n            logo_uri: config.oidc_metadata?.logo_uri ?? new URL(\"vector-icons/1024.png\", this.baseUrl).href,\n            application_type: \"web\",\n            tos_uri: config.oidc_metadata?.tos_uri ?? config.terms_and_conditions_links?.[0]?.url,\n            policy_uri: config.oidc_metadata?.policy_uri ?? config.privacy_policy_url,\n        };\n    }\n\n    /**\n     * Suffix to append to the `state` parameter of OAuth2 /auth calls. Will be round-tripped to the callback URI.\n     * Currently only required for ElectronPlatform for passing element-desktop-ssoid.\n     */\n    public getOAuthClientState(): string {\n        return \"\";\n    }\n\n    /**\n     * The URL to return to after a successful OAuth2 authentication\n     */\n    public getOAuthCallbackUrl(): URL {\n        // The redirect URL has to exactly match that registered at the OAuth2 server, so\n        // build it from scratch to avoid leaking ephemeral query params (e.g. `updated`).\n        const url = new URL(window.location.origin + window.location.pathname);\n        // Set no_universal_links=true to prevent the callback being handled by Element X installed on macOS Apple Silicon\n        url.searchParams.set(\"no_universal_links\", \"true\");\n        return url;\n    }\n\n    /**\n     * Delay creating the `Favicon` instance until first use (on the first notification) as\n     * it uses canvas, which can trigger a permission prompt in Firefox's resist fingerprinting mode.\n     * See https://github.com/element-hq/element-web/issues/9605.\n     */\n    public get favicon(): Favicon {\n        if (this._favicon) {\n            return this._favicon;\n        }\n        this._favicon = new Favicon();\n        return this._favicon;\n    }\n\n    private updateFavicon(): void {\n        const notif: string | number = this.notificationCount;\n\n        if (this.errorDidOccur) {\n            this.favicon.badge(notif || \"×\", { bgColor: \"#f00\" });\n        }\n        this.favicon.badge(notif);\n    }\n\n    /**\n     * Begin update polling, if applicable\n     */\n    public startUpdater(): void {}\n\n    /**\n     * Checks if the current session is lock-free, i.e., no other instance is holding the session lock.\n     * Platforms that support session locking should override this method.\n     * @returns {boolean} True if the session is lock-free, false otherwise.\n     */\n    public abstract checkSessionLockFree(): boolean;\n    /**\n     * Attempts to acquire a session lock for this instance.\n     * If another instance is detected, calls the provided callback.\n     * Platforms that support session locking should override this method.\n     * @param _onNewInstance Callback to invoke if a new instance is detected.\n     * @returns {Promise<boolean>} True if the lock was acquired, false otherwise.\n     */\n    public abstract getSessionLock(_onNewInstance: () => Promise<void>): Promise<boolean>;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>\nCopyright 2021 Clemens Zeidler\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { IS_MAC, Key } from \"./Keyboard\";\nimport SettingsStore from \"./settings/SettingsStore\";\nimport SdkConfig from \"./SdkConfig\";\nimport { type IKeyBindingsProvider, type KeyBinding } from \"./KeyBindingsManager\";\nimport { CATEGORIES, CategoryName, KeyBindingAction } from \"./accessibility/KeyboardShortcuts\";\nimport { getKeyboardShortcuts } from \"./accessibility/KeyboardShortcutUtils\";\n\nexport const getBindingsByCategory = (category: CategoryName): KeyBinding[] => {\n    return CATEGORIES[category].settingNames.reduce<KeyBinding[]>((bindings, action) => {\n        const keyCombo = getKeyboardShortcuts()[action]?.default;\n        if (keyCombo) {\n            bindings.push({ action, keyCombo });\n        }\n        return bindings;\n    }, []);\n};\n\nconst messageComposerBindings = (): KeyBinding[] => {\n    const bindings = getBindingsByCategory(CategoryName.COMPOSER);\n\n    if (SettingsStore.getValue(\"MessageComposerInput.ctrlEnterToSend\")) {\n        bindings.push({\n            action: KeyBindingAction.SendMessage,\n            keyCombo: {\n                key: Key.ENTER,\n                ctrlOrCmdKey: true,\n            },\n        });\n        bindings.push({\n            action: KeyBindingAction.NewLine,\n            keyCombo: {\n                key: Key.ENTER,\n            },\n        });\n        bindings.push({\n            action: KeyBindingAction.NewLine,\n            keyCombo: {\n                key: Key.ENTER,\n                shiftKey: true,\n            },\n        });\n    } else {\n        bindings.push({\n            action: KeyBindingAction.SendMessage,\n            keyCombo: {\n                key: Key.ENTER,\n            },\n        });\n        bindings.push({\n            action: KeyBindingAction.NewLine,\n            keyCombo: {\n                key: Key.ENTER,\n                shiftKey: true,\n            },\n        });\n        if (IS_MAC) {\n            bindings.push({\n                action: KeyBindingAction.NewLine,\n                keyCombo: {\n                    key: Key.ENTER,\n                    altKey: true,\n                },\n            });\n        }\n    }\n\n    return bindings;\n};\n\nconst autocompleteBindings = (): KeyBinding[] => {\n    const bindings = getBindingsByCategory(CategoryName.AUTOCOMPLETE);\n\n    bindings.push({\n        action: KeyBindingAction.ForceCompleteAutocomplete,\n        keyCombo: {\n            key: Key.TAB,\n        },\n    });\n    bindings.push({\n        action: KeyBindingAction.ForceCompleteAutocomplete,\n        keyCombo: {\n            key: Key.TAB,\n            ctrlKey: true,\n        },\n    });\n    bindings.push({\n        action: KeyBindingAction.CompleteAutocomplete,\n        keyCombo: {\n            key: Key.ENTER,\n        },\n    });\n    bindings.push({\n        action: KeyBindingAction.CompleteAutocomplete,\n        keyCombo: {\n            key: Key.ENTER,\n            ctrlKey: true,\n        },\n    });\n\n    return bindings;\n};\n\nconst roomListBindings = (): KeyBinding[] => {\n    return getBindingsByCategory(CategoryName.ROOM_LIST);\n};\n\nconst roomBindings = (): KeyBinding[] => {\n    const bindings = getBindingsByCategory(CategoryName.ROOM);\n\n    if (SettingsStore.getValue(\"ctrlFForSearch\")) {\n        bindings.push({\n            action: KeyBindingAction.SearchInRoom,\n            keyCombo: {\n                key: Key.F,\n                ctrlOrCmdKey: true,\n            },\n        });\n    }\n\n    return bindings;\n};\n\nconst navigationBindings = (): KeyBinding[] => {\n    return getBindingsByCategory(CategoryName.NAVIGATION);\n};\n\nconst accessibilityBindings = (): KeyBinding[] => {\n    return getBindingsByCategory(CategoryName.ACCESSIBILITY);\n};\n\nconst callBindings = (): KeyBinding[] => {\n    return getBindingsByCategory(CategoryName.CALLS);\n};\n\nconst labsBindings = (): KeyBinding[] => {\n    if (!SdkConfig.get(\"show_labs_settings\")) return [];\n\n    return getBindingsByCategory(CategoryName.LABS);\n};\n\nexport const defaultBindingsProvider: IKeyBindingsProvider = {\n    getMessageComposerBindings: messageComposerBindings,\n    getAutocompleteBindings: autocompleteBindings,\n    getRoomListBindings: roomListBindings,\n    getRoomBindings: roomBindings,\n    getNavigationBindings: navigationBindings,\n    getAccessibilityBindings: accessibilityBindings,\n    getCallBindings: callBindings,\n    getLabsBindings: labsBindings,\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>\nCopyright 2021 Clemens Zeidler\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type KeyBindingAction } from \"./accessibility/KeyboardShortcuts\";\nimport { defaultBindingsProvider } from \"./KeyBindingsDefaults\";\nimport { IS_MAC } from \"./Keyboard\";\n\n/**\n * Represent a key combination.\n *\n * The combo is evaluated strictly, i.e. the KeyboardEvent must match exactly what is specified in the KeyCombo.\n */\nexport type KeyCombo = {\n    key: string;\n\n    /** On PC: ctrl is pressed; on Mac: meta is pressed */\n    ctrlOrCmdKey?: boolean;\n\n    altKey?: boolean;\n    ctrlKey?: boolean;\n    metaKey?: boolean;\n    shiftKey?: boolean;\n};\n\nexport type KeyBinding = {\n    action: KeyBindingAction;\n    keyCombo: KeyCombo;\n};\n\n/**\n * Helper method to check if a KeyboardEvent matches a KeyCombo\n *\n * Note, this method is only exported for testing.\n */\nexport function isKeyComboMatch(ev: KeyboardEvent | React.KeyboardEvent, combo: KeyCombo, onMac: boolean): boolean {\n    if (combo.key !== undefined) {\n        // When shift is pressed, letters are returned as upper case chars. In this case do a lower case comparison.\n        // This works for letter combos such as shift + U as well for none letter combos such as shift + Escape.\n        // If shift is not pressed, the toLowerCase conversion can be avoided.\n        if (ev.shiftKey) {\n            if (ev.key.toLowerCase() !== combo.key.toLowerCase()) {\n                return false;\n            }\n        } else if (ev.key !== combo.key) {\n            return false;\n        }\n    }\n\n    const comboCtrl = combo.ctrlKey ?? false;\n    const comboAlt = combo.altKey ?? false;\n    const comboShift = combo.shiftKey ?? false;\n    const comboMeta = combo.metaKey ?? false;\n    // Tests mock events may keep the modifiers undefined; convert them to booleans\n    const evCtrl = ev.ctrlKey ?? false;\n    const evAlt = ev.altKey ?? false;\n    const evShift = ev.shiftKey ?? false;\n    const evMeta = ev.metaKey ?? false;\n    // When ctrlOrCmd is set, the keys need do evaluated differently on PC and Mac\n    if (combo.ctrlOrCmdKey) {\n        if (onMac) {\n            if (!evMeta || evCtrl !== comboCtrl || evAlt !== comboAlt || evShift !== comboShift) {\n                return false;\n            }\n        } else {\n            if (!evCtrl || evMeta !== comboMeta || evAlt !== comboAlt || evShift !== comboShift) {\n                return false;\n            }\n        }\n        return true;\n    }\n\n    if (evMeta !== comboMeta || evCtrl !== comboCtrl || evAlt !== comboAlt || evShift !== comboShift) {\n        return false;\n    }\n\n    return true;\n}\n\nexport type KeyBindingGetter = () => KeyBinding[];\n\nexport interface IKeyBindingsProvider {\n    [key: string]: KeyBindingGetter;\n}\n\nexport class KeyBindingsManager {\n    /**\n     * List of key bindings providers.\n     *\n     * Key bindings from the first provider(s) in the list will have precedence over key bindings from later providers.\n     *\n     * To overwrite the default key bindings add a new providers before the default provider, e.g. a provider for\n     * customized key bindings.\n     */\n    public bindingsProviders: IKeyBindingsProvider[] = [defaultBindingsProvider];\n\n    /**\n     * Finds a matching KeyAction for a given KeyboardEvent\n     */\n    private getAction(\n        getters: KeyBindingGetter[],\n        ev: KeyboardEvent | React.KeyboardEvent,\n    ): KeyBindingAction | undefined {\n        for (const getter of getters) {\n            const bindings = getter();\n            const binding = bindings.find((it) => isKeyComboMatch(ev, it.keyCombo, IS_MAC));\n            if (binding) {\n                return binding.action;\n            }\n        }\n        return undefined;\n    }\n\n    public getMessageComposerAction(ev: KeyboardEvent | React.KeyboardEvent): KeyBindingAction | undefined {\n        return this.getAction(\n            this.bindingsProviders.map((it) => it.getMessageComposerBindings),\n            ev,\n        );\n    }\n\n    public getAutocompleteAction(ev: KeyboardEvent | React.KeyboardEvent): KeyBindingAction | undefined {\n        return this.getAction(\n            this.bindingsProviders.map((it) => it.getAutocompleteBindings),\n            ev,\n        );\n    }\n\n    public getRoomListAction(ev: KeyboardEvent | React.KeyboardEvent): KeyBindingAction | undefined {\n        return this.getAction(\n            this.bindingsProviders.map((it) => it.getRoomListBindings),\n            ev,\n        );\n    }\n\n    public getRoomAction(ev: KeyboardEvent | React.KeyboardEvent): KeyBindingAction | undefined {\n        return this.getAction(\n            this.bindingsProviders.map((it) => it.getRoomBindings),\n            ev,\n        );\n    }\n\n    public getNavigationAction(ev: KeyboardEvent | React.KeyboardEvent): KeyBindingAction | undefined {\n        return this.getAction(\n            this.bindingsProviders.map((it) => it.getNavigationBindings),\n            ev,\n        );\n    }\n\n    public getAccessibilityAction(ev: KeyboardEvent | React.KeyboardEvent): KeyBindingAction | undefined {\n        return this.getAction(\n            this.bindingsProviders.map((it) => it.getAccessibilityBindings),\n            ev,\n        );\n    }\n\n    public getCallAction(ev: KeyboardEvent | React.KeyboardEvent): KeyBindingAction | undefined {\n        return this.getAction(\n            this.bindingsProviders.map((it) => it.getCallBindings),\n            ev,\n        );\n    }\n\n    public getLabsAction(ev: KeyboardEvent | React.KeyboardEvent): KeyBindingAction | undefined {\n        return this.getAction(\n            this.bindingsProviders.map((it) => it.getLabsBindings),\n            ev,\n        );\n    }\n}\n\nconst manager = new KeyBindingsManager();\n\nexport function getKeyBindingsManager(): KeyBindingsManager {\n    return manager;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\nCopyright 2017 New Vector Ltd\nCopyright 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type React from \"react\";\n\nexport const Key = {\n    HOME: \"Home\",\n    END: \"End\",\n    PAGE_UP: \"PageUp\",\n    PAGE_DOWN: \"PageDown\",\n    BACKSPACE: \"Backspace\",\n    DELETE: \"Delete\",\n    ARROW_UP: \"ArrowUp\",\n    ARROW_DOWN: \"ArrowDown\",\n    ARROW_LEFT: \"ArrowLeft\",\n    ARROW_RIGHT: \"ArrowRight\",\n    F6: \"F6\",\n    TAB: \"Tab\",\n    ESCAPE: \"Escape\",\n    ENTER: \"Enter\",\n    ALT: \"Alt\",\n    CONTROL: \"Control\",\n    META: \"Meta\",\n    SHIFT: \"Shift\",\n    CONTEXT_MENU: \"ContextMenu\",\n\n    COMMA: \",\",\n    PERIOD: \".\",\n    LESS_THAN: \"<\",\n    GREATER_THAN: \">\",\n    BACKTICK: \"`\",\n    SPACE: \" \",\n    SLASH: \"/\",\n    SQUARE_BRACKET_LEFT: \"[\",\n    SQUARE_BRACKET_RIGHT: \"]\",\n    SEMICOLON: \";\",\n    A: \"a\",\n    B: \"b\",\n    C: \"c\",\n    D: \"d\",\n    E: \"e\",\n    F: \"f\",\n    G: \"g\",\n    H: \"h\",\n    I: \"i\",\n    J: \"j\",\n    K: \"k\",\n    L: \"l\",\n    M: \"m\",\n    N: \"n\",\n    O: \"o\",\n    P: \"p\",\n    Q: \"q\",\n    R: \"r\",\n    S: \"s\",\n    T: \"t\",\n    U: \"u\",\n    V: \"v\",\n    W: \"w\",\n    X: \"x\",\n    Y: \"y\",\n    Z: \"z\",\n};\n\nexport const IS_MAC = navigator.platform.toUpperCase().includes(\"MAC\");\nexport const IS_ELECTRON = window.electron;\n\nexport function isOnlyCtrlOrCmdKeyEvent(ev: React.KeyboardEvent | KeyboardEvent): boolean {\n    if (IS_MAC) {\n        return ev.metaKey && !ev.altKey && !ev.ctrlKey && !ev.shiftKey;\n    } else {\n        return ev.ctrlKey && !ev.altKey && !ev.metaKey && !ev.shiftKey;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2017-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    ClientEvent,\n    type MatrixClient,\n    type MatrixEvent,\n    MatrixEventEvent,\n    type Room,\n    RoomEvent,\n    type IRoomTimelineData,\n    type RoomState,\n    RoomStateEvent,\n} from \"matrix-js-sdk/src/matrix\";\n\nimport dis from \"../dispatcher/dispatcher\";\nimport { type ActionPayload } from \"../dispatcher/payloads\";\n\n/**\n * Create a MatrixActions.sync action that represents a MatrixClient `sync` event,\n * each parameter mapping to a key-value in the action.\n *\n * @param {MatrixClient} matrixClient the matrix client\n * @param {string} state the current sync state.\n * @param {string} prevState the previous sync state.\n * @returns {Object} an action of type MatrixActions.sync.\n */\nfunction createSyncAction(matrixClient: MatrixClient, state: string, prevState: string): ActionPayload {\n    return {\n        action: \"MatrixActions.sync\",\n        state,\n        prevState,\n        matrixClient,\n    };\n}\n\n/**\n * @typedef AccountDataAction\n * @type {Object}\n * @property {string} action 'MatrixActions.accountData'.\n * @property {MatrixEvent} event the MatrixEvent that triggered the dispatch.\n * @property {string} event_type the type of the MatrixEvent, e.g. \"m.direct\".\n * @property {Object} event_content the content of the MatrixEvent.\n * @property {MatrixEvent} previousEvent the previous account data event of the same type, if present\n */\n\n/**\n * Create a MatrixActions.accountData action that represents a MatrixClient `accountData`\n * matrix event.\n *\n * @param {MatrixClient} matrixClient the matrix client.\n * @param {MatrixEvent} accountDataEvent the account data event.\n * @param {MatrixEvent | undefined} previousAccountDataEvent the previous account data event of the same type, if present\n * @returns {AccountDataAction} an action of type MatrixActions.accountData.\n */\nfunction createAccountDataAction(\n    matrixClient: MatrixClient,\n    accountDataEvent: MatrixEvent,\n    previousAccountDataEvent?: MatrixEvent,\n): ActionPayload {\n    return {\n        action: \"MatrixActions.accountData\",\n        event: accountDataEvent,\n        event_type: accountDataEvent.getType(),\n        event_content: accountDataEvent.getContent(),\n        previousEvent: previousAccountDataEvent,\n    };\n}\n\n/**\n * @typedef RoomAccountDataAction\n * @type {Object}\n * @property {string} action 'MatrixActions.Room.accountData'.\n * @property {MatrixEvent} event the MatrixEvent that triggered the dispatch.\n * @property {string} event_type the type of the MatrixEvent, e.g. \"m.direct\".\n * @property {Object} event_content the content of the MatrixEvent.\n * @property {Room} room the room where the account data was changed.\n */\n\n/**\n * Create a MatrixActions.Room.accountData action that represents a MatrixClient `Room.accountData`\n * matrix event.\n *\n * @param {MatrixClient} matrixClient the matrix client.\n * @param {MatrixEvent} accountDataEvent the account data event.\n * @param {Room} room the room where account data was changed\n * @returns {RoomAccountDataAction} an action of type MatrixActions.Room.accountData.\n */\nfunction createRoomAccountDataAction(\n    matrixClient: MatrixClient,\n    accountDataEvent: MatrixEvent,\n    room: Room,\n): ActionPayload {\n    return {\n        action: \"MatrixActions.Room.accountData\",\n        event: accountDataEvent,\n        event_type: accountDataEvent.getType(),\n        event_content: accountDataEvent.getContent(),\n        room: room,\n    };\n}\n\n/**\n * @typedef RoomAction\n * @type {Object}\n * @property {string} action 'MatrixActions.Room'.\n * @property {Room} room the Room that was stored.\n */\n\n/**\n * Create a MatrixActions.Room action that represents a MatrixClient `Room`\n * matrix event, emitted when a Room is stored in the client.\n *\n * @param {MatrixClient} matrixClient the matrix client.\n * @param {Room} room the Room that was stored.\n * @returns {RoomAction} an action of type `MatrixActions.Room`.\n */\nfunction createRoomAction(matrixClient: MatrixClient, room: Room): ActionPayload {\n    return { action: \"MatrixActions.Room\", room };\n}\n\n/**\n * @typedef RoomTagsAction\n * @type {Object}\n * @property {string} action 'MatrixActions.Room.tags'.\n * @property {Room} room the Room whose tags changed.\n */\n\n/**\n * Create a MatrixActions.Room.tags action that represents a MatrixClient\n * `Room.tags` matrix event, emitted when the m.tag room account data\n * event is updated.\n *\n * @param {MatrixClient} matrixClient the matrix client.\n * @param {MatrixEvent} roomTagsEvent the m.tag event.\n * @param {Room} room the Room whose tags were changed.\n * @returns {RoomTagsAction} an action of type `MatrixActions.Room.tags`.\n */\nfunction createRoomTagsAction(matrixClient: MatrixClient, roomTagsEvent: MatrixEvent, room: Room): ActionPayload {\n    return { action: \"MatrixActions.Room.tags\", room };\n}\n\n/**\n * Create a MatrixActions.Room.receipt action that represents a MatrixClient\n * `Room.receipt` event, each parameter mapping to a key-value in the action.\n *\n * @param {MatrixClient} matrixClient the matrix client\n * @param {MatrixEvent} event the receipt event.\n * @param {Room} room the room the receipt happened in.\n * @returns {Object} an action of type MatrixActions.Room.receipt.\n */\nfunction createRoomReceiptAction(matrixClient: MatrixClient, event: MatrixEvent, room: Room): ActionPayload {\n    return {\n        action: \"MatrixActions.Room.receipt\",\n        event,\n        room,\n        matrixClient,\n    };\n}\n\n/**\n * @typedef IRoomTimelineActionPayload\n * @type {Object}\n * @property {string} action 'MatrixActions.Room.timeline'.\n * @property {boolean} isLiveEvent whether the event was attached to a\n * live timeline.\n * @property {boolean} isLiveUnfilteredRoomTimelineEvent whether the\n * event was attached to a timeline in the set of unfiltered timelines.\n * @property {Room} room the Room whose tags changed.\n */\nexport interface IRoomTimelineActionPayload extends Pick<ActionPayload, \"action\"> {\n    action: \"MatrixActions.Room.timeline\";\n    event: MatrixEvent;\n    room: Room | null;\n    isLiveEvent?: boolean;\n    isLiveUnfilteredRoomTimelineEvent: boolean;\n}\n\n/**\n * @typedef IRoomStateEventsActionPayload\n * @type {Object}\n * @property {string} action 'MatrixActions.RoomState.events'.\n * @property {MatrixEvent} event the state event received\n * @property {RoomState} state the room state into which the event was applied\n * @property {MatrixEvent | null} lastStateEvent the previous value for this (event-type, state-key) tuple in room state\n */\nexport interface IRoomStateEventsActionPayload extends Pick<ActionPayload, \"action\"> {\n    action: \"MatrixActions.RoomState.events\";\n    event: MatrixEvent;\n    state: RoomState;\n    lastStateEvent: MatrixEvent | null;\n}\n\n/**\n * Create a MatrixActions.Room.timeline action that represents a\n * MatrixClient `Room.timeline` matrix event, emitted when an event\n * is added to or removed from a timeline of a room.\n *\n * @param {MatrixClient} matrixClient the matrix client.\n * @param {MatrixEvent} timelineEvent the event that was added/removed.\n * @param {?Room} room the Room that was stored.\n * @param {boolean} toStartOfTimeline whether the event is being added\n * to the start (and not the end) of the timeline.\n * @param {boolean} removed whether the event was removed from the\n * timeline.\n * @param {Object} data\n * @param {boolean} data.liveEvent whether the event is a live event,\n * belonging to a live timeline.\n * @param {EventTimeline} data.timeline the timeline being altered.\n * @returns {IRoomTimelineActionPayload} an action of type `MatrixActions.Room.timeline`.\n */\nfunction createRoomTimelineAction(\n    matrixClient: MatrixClient,\n    timelineEvent: MatrixEvent,\n    room: Room | null,\n    toStartOfTimeline: boolean,\n    removed: boolean,\n    data: IRoomTimelineData,\n): IRoomTimelineActionPayload {\n    return {\n        action: \"MatrixActions.Room.timeline\",\n        event: timelineEvent,\n        isLiveEvent: data.liveEvent,\n        isLiveUnfilteredRoomTimelineEvent: data.timeline.getTimelineSet() === room?.getUnfilteredTimelineSet(),\n        room,\n    };\n}\n\n/**\n * Create a MatrixActions.Room.timeline action that represents a\n * MatrixClient `Room.timeline` matrix event, emitted when an event\n * is added to or removed from a timeline of a room.\n *\n * @param {MatrixClient} matrixClient the matrix client.\n * @param {MatrixEvent} event the state event received\n * @param {RoomState} state the room state into which the event was applied\n * @param {MatrixEvent | null} lastStateEvent the previous value for this (event-type, state-key) tuple in room state\n * @returns {IRoomStateEventsActionPayload} an action of type `MatrixActions.RoomState.events`.\n */\nfunction createRoomStateEventsAction(\n    matrixClient: MatrixClient,\n    event: MatrixEvent,\n    state: RoomState,\n    lastStateEvent: MatrixEvent | null,\n): IRoomStateEventsActionPayload {\n    return {\n        action: \"MatrixActions.RoomState.events\",\n        event,\n        state,\n        lastStateEvent,\n    };\n}\n\n/**\n * @typedef RoomMembershipAction\n * @type {Object}\n * @property {string} action 'MatrixActions.Room.myMembership'.\n * @property {Room} room to room for which the self-membership changed.\n * @property {string} membership the new membership\n * @property {string} oldMembership the previous membership, can be null.\n */\n\n/**\n * Create a MatrixActions.Room.myMembership action that represents\n * a MatrixClient `Room.myMembership` event for the syncing user,\n * emitted when the syncing user's membership is updated for a room.\n *\n * @param {MatrixClient} matrixClient the matrix client.\n * @param {Room} room to room for which the self-membership changed.\n * @param {string} membership the new membership\n * @param {string} oldMembership the previous membership, can be null.\n * @returns {RoomMembershipAction} an action of type `MatrixActions.Room.myMembership`.\n */\nfunction createSelfMembershipAction(\n    matrixClient: MatrixClient,\n    room: Room,\n    membership: string,\n    oldMembership: string,\n): ActionPayload {\n    return { action: \"MatrixActions.Room.myMembership\", room, membership, oldMembership };\n}\n\n/**\n * @typedef EventDecryptedAction\n * @type {Object}\n * @property {string} action 'MatrixActions.Event.decrypted'.\n * @property {MatrixEvent} event the matrix event that was decrypted.\n */\n\n/**\n * Create a MatrixActions.Event.decrypted action that represents\n * a MatrixClient `Event.decrypted` matrix event, emitted when a\n * matrix event is decrypted.\n *\n * @param {MatrixClient} matrixClient the matrix client.\n * @param {MatrixEvent} event the matrix event that was decrypted.\n * @returns {EventDecryptedAction} an action of type `MatrixActions.Event.decrypted`.\n */\nfunction createEventDecryptedAction(matrixClient: MatrixClient, event: MatrixEvent): ActionPayload {\n    return { action: \"MatrixActions.Event.decrypted\", event };\n}\n\ntype Listener = () => void;\ntype ActionCreator = (matrixClient: MatrixClient, ...args: any) => ActionPayload;\n\n// A list of callbacks to call to unregister all listeners added\nlet matrixClientListenersStop: Listener[] = [];\n\n/**\n * Start listening to events of type eventName on matrixClient and when they are emitted,\n * dispatch an action created by the actionCreator function.\n * @param {MatrixClient} matrixClient a MatrixClient to register a listener with.\n * @param {string} eventName the event to listen to on MatrixClient.\n * @param {function} actionCreator a function that should return an action to dispatch\n *                                 when given the MatrixClient as an argument as well as\n *                                 arguments emitted in the MatrixClient event.\n */\nfunction addMatrixClientListener(\n    matrixClient: MatrixClient,\n    eventName: Parameters<MatrixClient[\"emit\"]>[0],\n    actionCreator: ActionCreator,\n): void {\n    const listener: Listener = (...args) => {\n        const payload = actionCreator(matrixClient, ...args);\n        if (payload) {\n            // Consumers shouldn't have to worry about calling js-sdk methods mid-dispatch, so make this dispatch async\n            dis.dispatch(payload, false);\n        }\n    };\n    matrixClient.on(eventName, listener);\n    matrixClientListenersStop.push(() => {\n        matrixClient.removeListener(eventName, listener);\n    });\n}\n\n/**\n * This object is responsible for dispatching actions when certain events are emitted by\n * the given MatrixClient.\n */\nexport default {\n    /**\n     * Start listening to certain events from the MatrixClient and dispatch actions when\n     * they are emitted.\n     * @param {MatrixClient} matrixClient the MatrixClient to listen to events from\n     */\n    start(matrixClient: MatrixClient) {\n        addMatrixClientListener(matrixClient, ClientEvent.Sync, createSyncAction);\n        addMatrixClientListener(matrixClient, ClientEvent.AccountData, createAccountDataAction);\n        addMatrixClientListener(matrixClient, RoomEvent.AccountData, createRoomAccountDataAction);\n        addMatrixClientListener(matrixClient, ClientEvent.Room, createRoomAction);\n        addMatrixClientListener(matrixClient, RoomEvent.Tags, createRoomTagsAction);\n        addMatrixClientListener(matrixClient, RoomEvent.Receipt, createRoomReceiptAction);\n        addMatrixClientListener(matrixClient, RoomEvent.Timeline, createRoomTimelineAction);\n        addMatrixClientListener(matrixClient, RoomEvent.MyMembership, createSelfMembershipAction);\n        addMatrixClientListener(matrixClient, MatrixEventEvent.Decrypted, createEventDecryptedAction);\n        addMatrixClientListener(matrixClient, RoomStateEvent.Events, createRoomStateEventsAction);\n    },\n\n    /**\n     * Stop listening to events.\n     */\n    stop() {\n        matrixClientListenersStop.forEach((stopListener) => stopListener());\n        matrixClientListenersStop = [];\n    },\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2023 The Matrix.org Foundation C.I.C.\nCopyright 2017, 2018 , 2019 New Vector Ltd\nCopyright 2017 Vector Creations Ltd.\nCopyright 2015, 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type IStartClientOpts, type MatrixClient, MemoryStore, PendingEventOrdering } from \"matrix-js-sdk/src/matrix\";\nimport * as utils from \"matrix-js-sdk/src/utils\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport SettingsStore from \"./settings/SettingsStore\";\nimport MatrixActionCreators from \"./actions/MatrixActionCreators\";\nimport Modal from \"./Modal\";\nimport MatrixClientBackedSettingsHandler from \"./settings/handlers/MatrixClientBackedSettingsHandler\";\nimport * as StorageManager from \"./utils/StorageManager\";\nimport { SlidingSyncManager } from \"./SlidingSyncManager\";\nimport { _t, UserFriendlyError } from \"./languageHandler\";\nimport MatrixClientBackedController from \"./settings/controllers/MatrixClientBackedController\";\nimport ErrorDialog from \"./components/views/dialogs/ErrorDialog\";\nimport PlatformPeg from \"./PlatformPeg\";\nimport SdkConfig from \"./SdkConfig\";\nimport { setDeviceIsolationMode } from \"./settings/controllers/DeviceIsolationModeController.ts\";\nimport { initialiseDehydrationIfEnabled } from \"./utils/device/dehydration\";\n\nexport interface MatrixClientPegAssignOpts {\n    /**\n     * If we are using Rust crypto, a key with which to encrypt the indexeddb.\n     *\n     * If provided, it must be exactly 32 bytes of data. If both this and\n     * {@link MatrixClientPegAssignOpts.rustCryptoStorePassword} are undefined,\n     * the store will be unencrypted.\n     */\n    rustCryptoStoreKey?: Uint8Array;\n\n    /**\n     * If we are using Rust crypto, a password which will be used to derive a key to encrypt the store with.\n     *\n     * An alternative to {@link MatrixClientPegAssignOpts.rustCryptoStoreKey}. Ignored if `rustCryptoStoreKey` is set.\n     *\n     * Deriving a key from a password is (deliberately) a slow operation, so prefer to pass a `rustCryptoStoreKey`\n     * directly where possible.\n     */\n    rustCryptoStorePassword?: string;\n}\n\n/**\n * Holds the current instance of the `MatrixClient` to use across the codebase.\n * Looking for an `MatrixClient`? Just look for the `MatrixClientPeg` on the peg\n * board. \"Peg\" is the literal meaning of something you hang something on. So\n * you'll find a `MatrixClient` hanging on the `MatrixClientPeg`.\n */\nexport interface IMatrixClientPeg {\n    /**\n     * The opts used to start the client\n     */\n    opts: IStartClientOpts;\n\n    /**\n     * Get the current MatrixClient, if any\n     */\n    get(): MatrixClient | null;\n\n    /**\n     * Get the current MatrixClient, throwing an error if there isn't one\n     */\n    safeGet(): MatrixClient;\n\n    /**\n     * Sets the current MatrixClient.\n     * @param client The MatrixClient instance to set\n     */\n    set(client: MatrixClient): void;\n\n    /**\n     * Unset the current MatrixClient\n     */\n    unset(): void;\n\n    /**\n     * Prepare the MatrixClient for use, including initialising the store and crypto, but do not start it.\n     */\n    assign(opts?: MatrixClientPegAssignOpts): Promise<IStartClientOpts>;\n\n    /**\n     * Prepare the MatrixClient for use, including initialising the store and crypto, and start it.\n     */\n    start(opts?: MatrixClientPegAssignOpts): Promise<void>;\n\n    /**\n     * If we've registered a user ID we set this to the ID of the\n     * user we've just registered. If they then go & log in, we\n     * can send them to the welcome user (obviously this doesn't\n     * guarantee they'll get a chat with the welcome user).\n     *\n     * @param {string} uid The user ID of the user we've just registered\n     */\n    setJustRegisteredUserId(uid: string | null): void;\n\n    /**\n     * Returns true if the current user has just been registered by this\n     * client as determined by setJustRegisteredUserId()\n     *\n     * @returns {bool} True if user has just been registered\n     */\n    currentUserIsJustRegistered(): boolean;\n\n    /**\n     * If the current user has been registered by this device then this\n     * returns a boolean of whether it was within the last N hours given.\n     */\n    userRegisteredWithinLastHours(hours: number): boolean;\n\n    /**\n     * If the current user has been registered by this device then this\n     * returns a boolean of whether it was after a given timestamp.\n     */\n    userRegisteredAfter(date: Date): boolean;\n}\n\n/**\n * Wrapper object for handling the js-sdk Matrix Client object in the react-sdk\n * Handles the creation/initialisation of client objects.\n * This module provides a singleton instance of this class so the 'current'\n * Matrix Client object is available easily.\n */\nclass MatrixClientPegClass implements IMatrixClientPeg {\n    // These are the default options used when when the\n    // client is started in 'start'. These can be altered\n    // at any time up to after the 'will_start_client'\n    // event is finished processing.\n    public opts: IStartClientOpts = {\n        initialSyncLimit: 20,\n    };\n\n    private matrixClient: MatrixClient | null = null;\n    private justRegisteredUserId: string | null = null;\n\n    public get(): MatrixClient | null {\n        return this.matrixClient;\n    }\n\n    public safeGet(): MatrixClient {\n        if (!this.matrixClient) {\n            throw new UserFriendlyError(\"error_user_not_logged_in\");\n        }\n        return this.matrixClient;\n    }\n\n    public set(client: MatrixClient): void {\n        this.matrixClient = client;\n    }\n\n    public unset(): void {\n        this.matrixClient = null;\n\n        MatrixActionCreators.stop();\n    }\n\n    public setJustRegisteredUserId(uid: string | null): void {\n        this.justRegisteredUserId = uid;\n        if (uid) {\n            const registrationTime = Date.now().toString();\n            window.localStorage.setItem(\"mx_registration_time\", registrationTime);\n        }\n    }\n\n    public currentUserIsJustRegistered(): boolean {\n        return !!this.matrixClient && this.matrixClient.credentials.userId === this.justRegisteredUserId;\n    }\n\n    public userRegisteredWithinLastHours(hours: number): boolean {\n        if (hours <= 0) {\n            return false;\n        }\n\n        try {\n            const registrationTime = parseInt(window.localStorage.getItem(\"mx_registration_time\")!, 10);\n            const diff = Date.now() - registrationTime;\n            return diff / 36e5 <= hours;\n        } catch {\n            return false;\n        }\n    }\n\n    public userRegisteredAfter(timestamp: Date): boolean {\n        try {\n            const registrationTime = parseInt(window.localStorage.getItem(\"mx_registration_time\")!, 10);\n            return timestamp.getTime() <= registrationTime;\n        } catch {\n            return false;\n        }\n    }\n\n    private onUnexpectedStoreClose = async (): Promise<void> => {\n        if (!this.matrixClient) return;\n        this.matrixClient.stopClient(); // stop the client as the database has failed\n        this.matrixClient.store.destroy();\n\n        if (!this.matrixClient.isGuest()) {\n            // If the user is not a guest then prompt them to reload rather than doing it for them\n            // For guests this is likely to happen during e-mail verification as part of registration\n\n            const brand = SdkConfig.get().brand;\n            const platform = PlatformPeg.get()?.getHumanReadableName();\n\n            // Determine the description based on the platform\n            const description =\n                platform === \"Web Platform\"\n                    ? _t(\"error_database_closed_description|for_web\", { brand })\n                    : _t(\"error_database_closed_description|for_desktop\");\n\n            const [reload] = await Modal.createDialog(ErrorDialog, {\n                title: _t(\"error_database_closed_title\", { brand }),\n                description,\n                button: _t(\"action|reload\"),\n            }).finished;\n\n            if (!reload) return;\n        }\n\n        PlatformPeg.get()?.reload();\n    };\n\n    /**\n     * Implementation of {@link IMatrixClientPeg.assign}.\n     */\n    public async assign(assignOpts: MatrixClientPegAssignOpts = {}): Promise<IStartClientOpts> {\n        if (!this.matrixClient) {\n            throw new Error(\"createClient must be called first\");\n        }\n\n        for (const dbType of [\"indexeddb\", \"memory\"]) {\n            try {\n                const promise = this.matrixClient.store.startup();\n                logger.log(\"MatrixClientPeg: waiting for MatrixClient store to initialise\");\n                await promise;\n                break;\n            } catch (err) {\n                if (dbType === \"indexeddb\") {\n                    logger.error(\"Error starting matrixclient store - falling back to memory store\", err);\n                    this.matrixClient.store = new MemoryStore({\n                        localStorage: localStorage,\n                    });\n                } else {\n                    logger.error(\"Failed to start memory store!\", err);\n                    throw err;\n                }\n            }\n        }\n        this.matrixClient.store.on?.(\"closed\", this.onUnexpectedStoreClose);\n\n        // try to initialise e2e on the new client\n        if (!SettingsStore.getValue(\"lowBandwidth\")) {\n            await this.initClientCrypto(assignOpts.rustCryptoStoreKey, assignOpts.rustCryptoStorePassword);\n        }\n\n        const opts = utils.deepCopy(this.opts);\n        // the react sdk doesn't work without this, so don't allow\n        opts.pendingEventOrdering = PendingEventOrdering.Detached;\n        opts.lazyLoadMembers = true;\n        // Poll the user's `<server_name>/.well-known/matrix/client` for client config unless disabled by config.\n        // Leaving `clientWellKnownPollPeriod` unset stops the SDK fetching it.\n        if (SdkConfig.get(\"enable_client_well_known_lookups\")) {\n            opts.clientWellKnownPollPeriod = 2 * 60 * 60; // 2 hours\n        }\n        opts.threadSupport = true;\n        if (SettingsStore.getValue(\"feature_user_status\")) {\n            opts.unstableMSC4429SyncUserProfileFields = [\"org.matrix.msc4426.status\"];\n        }\n\n        if (SettingsStore.getValue(\"feature_sliding_sync\")) {\n            throw new UserFriendlyError(\"sliding_sync_legacy_no_longer_supported\");\n        }\n\n        // If the user has enabled the labs feature for sliding sync, set it up\n        // otherwise check if the feature is supported\n        if (SettingsStore.getValue(\"feature_simplified_sliding_sync\")) {\n            opts.slidingSync = await SlidingSyncManager.instance.setup(this.matrixClient);\n        } else {\n            SlidingSyncManager.instance.checkSupport(this.matrixClient);\n        }\n\n        // Connect the matrix client to the dispatcher and setting handlers\n        MatrixActionCreators.start(this.matrixClient);\n        MatrixClientBackedSettingsHandler.matrixClient = this.matrixClient;\n        MatrixClientBackedController.matrixClient = this.matrixClient;\n\n        return opts;\n    }\n\n    /**\n     * Attempt to initialize the crypto layer on a newly-created MatrixClient\n     *\n     * @param rustCryptoStoreKey - A key with which to encrypt the rust crypto indexeddb.\n     *   If provided, it must be exactly 32 bytes of data. If both this and `rustCryptoStorePassword` are\n     *   undefined, the store will be unencrypted.\n     *\n     * @param rustCryptoStorePassword - An alternative to `rustCryptoStoreKey`. Ignored if `rustCryptoStoreKey` is set.\n     *    A password which will be used to derive a key to encrypt the store with. Deriving a key from a password is\n     *    (deliberately) a slow operation, so prefer to pass a `rustCryptoStoreKey` directly where possible.\n     */\n    private async initClientCrypto(rustCryptoStoreKey?: Uint8Array, rustCryptoStorePassword?: string): Promise<void> {\n        if (!this.matrixClient) {\n            throw new Error(\"createClient must be called first\");\n        }\n\n        if (!rustCryptoStoreKey && !rustCryptoStorePassword) {\n            logger.error(\"Warning! Not using an encryption key for rust crypto store.\");\n        }\n\n        await this.matrixClient.initRustCrypto({\n            storageKey: rustCryptoStoreKey,\n            storagePassword: rustCryptoStorePassword,\n        });\n\n        StorageManager.setCryptoInitialised(true);\n\n        setDeviceIsolationMode(this.matrixClient, SettingsStore.getValue(\"feature_exclude_insecure_devices\"));\n\n        // Start dehydration. This code is only for the case where the client\n        // gets restarted, so we only do this if we already have the dehydration\n        // key cached, and we don't have to try to rehydrate a device. If this\n        // is a new login, we will start dehydration after Secret Storage is\n        // unlocked.\n        try {\n            await initialiseDehydrationIfEnabled(this.matrixClient, { onlyIfKeyCached: true, rehydrate: false });\n        } catch (e) {\n            // We may get an error dehydrating, such as if cross-signing and\n            // SSSS are not set up yet.  Just log the error and continue.\n            // If SSSS gets set up later, we will re-try dehydration.\n            console.log(\"Error starting device dehydration\", e);\n        }\n\n        return;\n    }\n\n    /**\n     * Implementation of {@link IMatrixClientPeg.start}.\n     */\n    public async start(assignOpts?: MatrixClientPegAssignOpts): Promise<void> {\n        const opts = await this.assign(assignOpts);\n\n        logger.log(`MatrixClientPeg: really starting MatrixClient`);\n        await this.matrixClient!.startClient(opts);\n        logger.log(`MatrixClientPeg: MatrixClient started`);\n    }\n}\n\n/**\n * Note: You should be using a React context with access to a client rather than\n * using this, as in a multi-account world this will not exist!\n */\nexport const MatrixClientPeg: IMatrixClientPeg = new MatrixClientPegClass();\n\nif (!window.mxMatrixClientPeg) {\n    window.mxMatrixClientPeg = MatrixClientPeg;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2015-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ReactNode, Suspense } from \"react\";\n\nimport { _t } from \"./languageHandler\";\nimport BaseDialog from \"./components/views/dialogs/BaseDialog\";\nimport DialogButtons from \"./components/views/elements/DialogButtons\";\nimport Spinner from \"./components/views/elements/Spinner\";\n\ninterface IProps {\n    onFinished(): void;\n    children: ReactNode;\n}\n\ninterface IState {\n    error?: Error;\n}\n\n/**\n * Wrap an asynchronous loader function with a react component which shows a\n * spinner until the real component loads.\n */\nexport default class AsyncWrapper extends React.Component<IProps, IState> {\n    public static getDerivedStateFromError(error: Error): IState {\n        return { error };\n    }\n\n    public state: IState = {};\n\n    public render(): React.ReactNode {\n        if (this.state.error) {\n            return (\n                <BaseDialog onFinished={this.props.onFinished} title={_t(\"common|error\")}>\n                    {_t(\"failed_load_async_component\")}\n                    <DialogButtons\n                        primaryButton={_t(\"action|dismiss\")}\n                        onPrimaryButtonClick={this.props.onFinished}\n                        hasCancel={false}\n                    />\n                </BaseDialog>\n            );\n        }\n\n        return <Suspense fallback={<Spinner />}>{this.props.children}</Suspense>;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\nCopyright 2015, 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { StrictMode } from \"react\";\nimport { createRoot, type Root } from \"react-dom/client\";\nimport classNames from \"classnames\";\nimport { TypedEventEmitter } from \"matrix-js-sdk/src/matrix\";\nimport { Glass, TooltipProvider } from \"@vector-im/compound-web\";\nimport { I18nContext } from \"@element-hq/web-shared-components\";\n\nimport defaultDispatcher from \"./dispatcher/dispatcher\";\nimport AsyncWrapper from \"./AsyncWrapper\";\nimport { type Defaultize } from \"./@types/common\";\nimport { type ActionPayload } from \"./dispatcher/payloads\";\nimport { filterBoolean } from \"./utils/arrays.ts\";\nimport { SDKContext } from \"./contexts/SDKContext.ts\";\n\nconst DIALOG_CONTAINER_ID = \"mx_Dialog_Container\";\nconst STATIC_DIALOG_CONTAINER_ID = \"mx_Dialog_StaticContainer\";\n\n// Type which accepts a React Component which looks like a Modal (accepts an onFinished prop)\nexport type ComponentType =\n    | React.ComponentType<{\n          onFinished(...args: any): void;\n      }>\n    | React.ComponentType<any>;\n\n/**\n * The parameter types of the `onFinished` callback property exposed by the component which forms the\n * body of the dialog.\n *\n * @typeParam C - The type of the React component which forms the body of the dialog.\n */\ntype OnFinishedParams<C extends ComponentType> = Parameters<React.ComponentProps<C>[\"onFinished\"]>;\n\n/**\n * The properties exposed by the `props` argument to {@link Modal.createDialog}: the same as\n * those exposed by the underlying component, with the exception of `onFinished`, which is provided by\n * `createDialog`.\n *\n * @typeParam C - The type of the React component which forms the body of the dialog.\n */\nexport type ComponentProps<C extends ComponentType> = Defaultize<\n    Omit<React.ComponentProps<C>, \"onFinished\">,\n    C[\"defaultProps\"]\n>;\n\nexport interface IModal<C extends ComponentType> {\n    elem: React.ReactNode;\n    className?: string;\n    beforeClosePromise?: Promise<boolean>;\n    closeReason?: ModalCloseReason;\n    onBeforeClose?(reason?: ModalCloseReason): Promise<boolean>;\n\n    /**\n     * Run the {@link deferred} with the given arguments, and close this modal.\n     *\n     * This method is passed as the `onFinished` callback to the underlying component,\n     * as well as being returned by {@link Modal.createDialog} to the caller.\n     */\n    close(...args: OnFinishedParams<C> | []): void;\n\n    hidden?: boolean;\n\n    /** A deferred to resolve when the dialog closes, with the results as provided by\n     * the call to {@link close} (normally from the `onFinished` callback).\n     */\n    deferred?: PromiseWithResolvers<OnFinishedParams<C> | []>;\n}\n\n/** The result of {@link Modal.createDialog}.\n *\n * @typeParam C - The type of the React component which forms the body of the dialog.\n */\nexport interface IHandle<C extends ComponentType> {\n    /**\n     * A promise which will resolve when the dialog closes.\n     *\n     * If the dialog body component calls the `onFinished` property, or the caller calls {@link close},\n     * the promise resolves with an array holding the arguments to that call.\n     *\n     * If the dialog is closed by clicking in the background, the promise resolves with an empty array.\n     */\n    finished: Promise<OnFinishedParams<C> | []>;\n\n    /**\n     * A function which, if called, will close the dialog.\n     *\n     * @param args - Arguments to return to {@link finished}.\n     */\n    close(this: void, ...args: OnFinishedParams<C>): void;\n}\n\ninterface IOptions<C extends ComponentType> {\n    onBeforeClose?: IModal<C>[\"onBeforeClose\"];\n}\n\nexport enum ModalManagerEvent {\n    Opened = \"opened\",\n    Closed = \"closed\",\n}\n\ntype HandlerMap = {\n    [ModalManagerEvent.Opened]: () => void;\n    [ModalManagerEvent.Closed]: () => void;\n};\n\ntype ModalCloseReason = \"backgroundClick\";\n\nfunction getOrCreateContainer(id: string): HTMLDivElement {\n    let container = document.getElementById(id) as HTMLDivElement | null;\n    if (!container) {\n        container = document.createElement(\"div\");\n        container.id = id;\n        document.body.appendChild(container);\n    }\n    return container;\n}\n\nexport class ModalManager extends TypedEventEmitter<ModalManagerEvent, HandlerMap> {\n    private counter = 0;\n    // The modal to prioritise over all others. If this is set, only show\n    // this modal. Remove all other modals from the stack when this modal\n    // is closed.\n    private priorityModal: IModal<any> | null = null;\n    // The modal to keep open underneath other modals if possible. Useful\n    // for cases like Settings where the modal should remain open while the\n    // user is prompted for more information/errors.\n    private staticModal: IModal<any> | null = null;\n    // A list of the modals we have stacked up, with the most recent at [0]\n    // Neither the static nor priority modal will be in this list.\n    private modals: IModal<any>[] = [];\n\n    private static root?: Root;\n    private static getOrCreateRoot(): Root {\n        if (!ModalManager.root) {\n            const container = getOrCreateContainer(DIALOG_CONTAINER_ID);\n            ModalManager.root = createRoot(container);\n        }\n        return ModalManager.root;\n    }\n\n    private static staticRoot?: Root;\n    private static getOrCreateStaticRoot(): Root {\n        if (!ModalManager.staticRoot) {\n            const container = getOrCreateContainer(STATIC_DIALOG_CONTAINER_ID);\n            ModalManager.staticRoot = createRoot(container);\n        }\n        return ModalManager.staticRoot;\n    }\n\n    public constructor() {\n        super();\n\n        // We never unregister this, but the Modal class is a singleton so there would\n        // never be an opportunity to do so anyway, except in the entirely theoretical\n        // scenario of instantiating a non-singleton instance of the Modal class.\n        defaultDispatcher.register(this.onAction);\n    }\n\n    private onAction = (payload: ActionPayload): void => {\n        if (payload.action === \"logout\") {\n            this.forceCloseAllModals();\n        }\n    };\n\n    public toggleCurrentDialogVisibility(): void {\n        const modal = this.getCurrentModal();\n        if (!modal) return;\n        modal.hidden = !modal.hidden;\n    }\n\n    public hasDialogs(): boolean {\n        return !!this.priorityModal || !!this.staticModal || this.modals.length > 0;\n    }\n\n    /**\n     * DEPRECATED.\n     * This is used only for tests. They should be using forceCloseAllModals but that\n     * caused a chunk of tests to fail, so for now they continue to use this.\n     *\n     * @param reason either \"backgroundClick\" or undefined\n     * @returns whether a modal was closed\n     */\n    public closeCurrentModal(reason?: ModalCloseReason): boolean {\n        const modal = this.getCurrentModal();\n        if (!modal) {\n            return false;\n        }\n        modal.closeReason = reason;\n        modal.close();\n        return true;\n    }\n\n    /**\n     * Forces closes all open modals. The modals onBeforeClose function will not be\n     * run and the modal will not have a chance to prevent closing. Intended for\n     * situations like the user logging out of the app.\n     */\n    public forceCloseAllModals(): void {\n        const modals = filterBoolean([...this.modals, this.staticModal, this.priorityModal]);\n        for (const modal of modals) {\n            modal.deferred?.resolve([]);\n            this.emitClosed();\n        }\n\n        this.modals = [];\n        this.staticModal = null;\n        this.priorityModal = null;\n        this.reRender();\n    }\n\n    /**\n     * @typeParam C - the component type\n     */\n    private buildModal<C extends ComponentType>(\n        Component: C,\n        props?: ComponentProps<C>,\n        className?: string,\n        options?: IOptions<C>,\n    ): {\n        modal: IModal<C>;\n        closeDialog: IHandle<C>[\"close\"];\n        onFinishedProm: IHandle<C>[\"finished\"];\n    } {\n        const modal = {\n            onBeforeClose: options?.onBeforeClose,\n            className,\n\n            // these will be set below but we need an object reference to pass to getCloseFn before we can do that\n            elem: null,\n        } as IModal<C>;\n\n        const [closeDialog, onFinishedProm] = this.getCloseFn<C>(modal);\n\n        // don't attempt to reuse the same AsyncWrapper for different dialogs,\n        // otherwise we'll get confused.\n        const modalCount = this.counter++;\n\n        // Typescript doesn't like us passing props as any here, but we know that they are well typed due to the rigorous generics.\n        modal.elem = (\n            <AsyncWrapper key={modalCount} onFinished={closeDialog}>\n                <Component {...(props as any)} onFinished={closeDialog} />\n            </AsyncWrapper>\n        );\n        modal.close = closeDialog;\n\n        return { modal, closeDialog, onFinishedProm };\n    }\n\n    private getCloseFn<C extends ComponentType>(modal: IModal<C>): [IHandle<C>[\"close\"], IHandle<C>[\"finished\"]] {\n        modal.deferred = Promise.withResolvers<OnFinishedParams<C> | []>();\n        return [\n            async (...args: OnFinishedParams<C>): Promise<void> => {\n                if (modal.beforeClosePromise) {\n                    await modal.beforeClosePromise;\n                } else if (modal.onBeforeClose) {\n                    modal.beforeClosePromise = modal.onBeforeClose(modal.closeReason);\n                    const shouldClose = await modal.beforeClosePromise;\n                    modal.beforeClosePromise = undefined;\n                    if (!shouldClose) {\n                        return;\n                    }\n                }\n                modal.deferred?.resolve(args);\n                const i = this.modals.indexOf(modal);\n                if (i >= 0) {\n                    this.modals.splice(i, 1);\n                }\n\n                if (this.priorityModal === modal) {\n                    this.priorityModal = null;\n\n                    // XXX: This is destructive\n                    this.modals = [];\n                }\n\n                if (this.staticModal === modal) {\n                    this.staticModal = null;\n\n                    // XXX: This is destructive\n                    this.modals = [];\n                }\n\n                this.reRender();\n                this.emitClosed();\n            },\n            modal.deferred.promise,\n        ];\n    }\n\n    /**\n     * @callback onBeforeClose\n     * @param {string?} reason either \"backgroundClick\" or null\n     * @returns {Promise<bool>} whether the dialog should close\n     */\n\n    /**\n     * Open a modal view.\n     *\n     * This can be used to display a react component which is loaded as an asynchronous\n     * webpack component. To do this, set 'loader' as:\n     *\n     *   (cb) => {\n     *       require(['<module>'], cb);\n     *   }\n     *\n     * @param component The component to render as a dialog. This component must accept an `onFinished` prop function as\n     *                  per the type {@link ComponentType}. If loading a component with esoteric dependencies consider\n     *                  using React.lazy to async load the component.\n     *                  e.g. `lazy(() => import('./MyComponent'))`\n     *\n     * @param props properties to pass to the displayed component. (We will also pass an `onFinished` property; when\n     *     called, that property will close the dialog and return the results to the caller via {@link IHandle.finished}.)\n     *\n     * @param className CSS class to apply to the modal wrapper\n     *\n     * @param isPriorityModal if true, this modal will be displayed regardless\n     *                                  of other modals that are currently in the stack.\n     *                                  Also, when closed, all modals will be removed\n     *                                  from the stack.\n     * @param isStaticModal if true, this modal will be displayed under other\n     *                                 modals in the stack. When closed, all modals will\n     *                                 also be removed from the stack. This is not compatible\n     *                                 with being a priority modal. Only one modal can be\n     *                                 static at a time.\n     * @param options? extra options for the dialog\n     * @param options.onBeforeClose a callback to decide whether to close the dialog\n     * @returns {@link IHandle} object.\n     */\n    public createDialog<C extends ComponentType>(\n        component: C,\n        props?: ComponentProps<C>,\n        className?: string,\n        isPriorityModal = false,\n        isStaticModal = false,\n        options: IOptions<C> = {},\n    ): IHandle<C> {\n        const beforeModal = this.getCurrentModal();\n        const { modal, closeDialog, onFinishedProm } = this.buildModal<C>(component, props, className, options);\n        if (isPriorityModal) {\n            // XXX: This is destructive\n            this.priorityModal = modal;\n        } else if (isStaticModal) {\n            // This is intentionally destructive\n            this.staticModal = modal;\n        } else {\n            this.modals.unshift(modal);\n        }\n\n        this.reRender();\n        this.emitIfChanged(beforeModal);\n\n        return {\n            close: closeDialog,\n            finished: onFinishedProm,\n        };\n    }\n\n    public appendDialog<C extends ComponentType>(\n        component: C,\n        props?: ComponentProps<C>,\n        className?: string,\n    ): IHandle<C> {\n        const beforeModal = this.getCurrentModal();\n        const { modal, closeDialog, onFinishedProm } = this.buildModal<C>(component, props, className, {});\n\n        this.modals.push(modal);\n\n        this.reRender();\n        this.emitIfChanged(beforeModal);\n\n        return {\n            close: closeDialog,\n            finished: onFinishedProm,\n        };\n    }\n\n    private emitIfChanged(beforeModal?: IModal<any>): void {\n        if (beforeModal !== this.getCurrentModal()) {\n            this.emit(ModalManagerEvent.Opened);\n        }\n    }\n\n    /**\n     * Emit the closed event\n     * @private\n     */\n    private emitClosed(): void {\n        this.emit(ModalManagerEvent.Closed);\n    }\n\n    private onBackgroundClick = (): void => {\n        const modal = this.getCurrentModal();\n        if (!modal) {\n            return;\n        }\n        // we want to pass a reason to the onBeforeClose\n        // callback, but close is currently defined to\n        // pass all number of arguments to the onFinished callback\n        // so, pass the reason to close through a member variable\n        modal.closeReason = \"backgroundClick\";\n        modal.close();\n        modal.closeReason = undefined;\n    };\n\n    private getCurrentModal(): IModal<any> {\n        return this.priorityModal ? this.priorityModal : this.modals[0] || this.staticModal;\n    }\n\n    private async reRender(): Promise<void> {\n        if (this.modals.length === 0 && !this.priorityModal && !this.staticModal) {\n            // If there is no modal to render, make all of Element available\n            // to screen reader users again\n            defaultDispatcher.dispatch({\n                action: \"aria_unhide_main_app\",\n            });\n            ModalManager.getOrCreateRoot().render(<></>);\n            ModalManager.getOrCreateStaticRoot().render(<></>);\n            return;\n        }\n\n        // Hide the content outside the modal to screen reader users\n        // so they won't be able to navigate into it and act on it using\n        // screen reader specific features\n        defaultDispatcher.dispatch({\n            action: \"aria_hide_main_app\",\n        });\n\n        if (this.staticModal) {\n            const classes = classNames(\"mx_Dialog_wrapper mx_Dialog_staticWrapper\", this.staticModal.className);\n\n            const staticDialog = (\n                <StrictMode>\n                    <SDKContext.Provider value={window.mxSdkContext}>\n                        {/* Provide I18nContext for shared-components used inside dialogs rendered in a separate root. */}\n                        <I18nContext.Provider value={window.mxModuleApi.i18n}>\n                            <TooltipProvider>\n                                <div className={classes}>\n                                    <Glass className=\"mx_Dialog_border\">\n                                        <div className=\"mx_Dialog\">{this.staticModal.elem}</div>\n                                    </Glass>\n                                    <div\n                                        data-testid=\"dialog-background\"\n                                        className=\"mx_Dialog_background mx_Dialog_staticBackground\"\n                                        onClick={this.onBackgroundClick}\n                                    />\n                                </div>\n                            </TooltipProvider>\n                        </I18nContext.Provider>\n                    </SDKContext.Provider>\n                </StrictMode>\n            );\n\n            ModalManager.getOrCreateStaticRoot().render(staticDialog);\n        } else {\n            // This is safe to call repeatedly if we happen to do that\n            ModalManager.getOrCreateStaticRoot().render(<></>);\n        }\n\n        const modal = this.getCurrentModal();\n        if (modal !== this.staticModal && !modal.hidden) {\n            const classes = classNames(\"mx_Dialog_wrapper\", modal.className, {\n                mx_Dialog_wrapperWithStaticUnder: this.staticModal,\n            });\n\n            const dialog = (\n                <StrictMode>\n                    <SDKContext.Provider value={window.mxSdkContext}>\n                        {/* Provide I18nContext for shared-components used inside dialogs rendered in a separate root. */}\n                        <I18nContext.Provider value={window.mxModuleApi.i18n}>\n                            <TooltipProvider>\n                                <div className={classes}>\n                                    <Glass className=\"mx_Dialog_border\">\n                                        <div className=\"mx_Dialog\">{modal.elem}</div>\n                                    </Glass>\n                                    <div\n                                        data-testid=\"dialog-background\"\n                                        className=\"mx_Dialog_background\"\n                                        onClick={this.onBackgroundClick}\n                                    />\n                                </div>\n                            </TooltipProvider>\n                        </I18nContext.Provider>\n                    </SDKContext.Provider>\n                </StrictMode>\n            );\n\n            ModalManager.getOrCreateRoot().render(dialog);\n        } else {\n            // This is safe to call repeatedly if we happen to do that\n            ModalManager.getOrCreateRoot().render(<></>);\n        }\n    }\n}\n\nif (!window.singletonModalManager) {\n    window.singletonModalManager = new ModalManager();\n}\nexport default window.singletonModalManager;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2017 Vector Creations Ltd\nCopyright 2015, 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/** The types of page which can be shown by the LoggedInView */\nenum PageType {\n    HomePage = \"home_page\",\n    RoomView = \"room_view\",\n    UserView = \"user_view\",\n}\n\nexport default PageType;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\nCopyright 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type BasePlatform from \"./BasePlatform\";\n\n/*\n * Holds the current instance of the `Platform` to use across the codebase.\n * Looking for an `Platform`? Just look for the `PlatformPeg` on the peg board.\n * \"Peg\" is the literal meaning of something you hang something on. So you'll\n * find a `Platform` hanging on the `PlatformPeg`.\n *\n * Used by the code to do anything specific to the platform we're running on\n * (eg. web, electron). Platforms are provided by the app layer. This allows the\n * app layer to set a Platform without necessarily having to have a MatrixChat\n * object.\n */\nexport class PlatformPeg {\n    private platform: BasePlatform | null = null;\n    private platformPromiseWithResolvers = Promise.withResolvers<BasePlatform>();\n\n    /**\n     * Returns a promise for the Platform object for the application.\n     */\n    public get platformPromise(): Promise<BasePlatform> {\n        return this.platformPromiseWithResolvers.promise;\n    }\n\n    /**\n     * Returns the current Platform object for the application.\n     * This should be an instance of a class extending BasePlatform.\n     */\n    public get(): BasePlatform | null {\n        return this.platform;\n    }\n\n    /**\n     * Sets the current platform handler object to use for the application.\n     * @param {BasePlatform} platform an instance of a class extending BasePlatform.\n     */\n    public set(platform: BasePlatform): void {\n        this.platformPromiseWithResolvers.resolve(platform);\n        this.platform = platform;\n    }\n}\n\nif (!window.mxPlatformPeg) {\n    window.mxPlatformPeg = new PlatformPeg();\n}\nexport default window.mxPlatformPeg;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport posthog, { type CaptureOptions, type PostHog, type Properties } from \"posthog-js\";\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { type UserProperties } from \"@matrix-org/analytics-events/types/typescript/UserProperties\";\nimport { type Signup } from \"@matrix-org/analytics-events/types/typescript/Signup\";\n\nimport PlatformPeg from \"./PlatformPeg\";\nimport SdkConfig from \"./SdkConfig\";\nimport { MatrixClientPeg } from \"./MatrixClientPeg\";\nimport SettingsStore from \"./settings/SettingsStore\";\nimport { type ScreenName } from \"./PosthogTrackers\";\nimport { type ActionPayload } from \"./dispatcher/payloads\";\nimport { Action } from \"./dispatcher/actions\";\nimport { isSettingUpdatedPayload, type SettingUpdatedPayload } from \"./dispatcher/payloads/SettingUpdatedPayload\";\nimport dis from \"./dispatcher/dispatcher\";\nimport { Layout } from \"./settings/enums/Layout\";\n\n/* Posthog analytics tracking.\n *\n * Anonymity behaviour is as follows:\n *\n * - If Posthog isn't configured in `config.json`, events are not sent.\n * - If [Do Not Track](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/doNotTrack) is\n *   enabled, events are not sent (this detection is built into posthog and turned on via the\n *   `respect_dnt` flag being passed to `posthog.init`).\n * - If the `feature_pseudonymous_analytics_opt_in` labs flag is `true`, track pseudonomously by maintaining\n *   a randomised analytics ID in account_data for that user (shared between devices) and sending it to posthog to\n     identify the user.\n * - Otherwise, if the existing `analyticsOptIn` flag is `true`, track anonymously, i.e. do not identify the user\n     using any identifier that would be consistent across devices.\n * - If both flags are false or not set, events are not sent.\n */\n\nexport interface IPosthogEvent {\n    // The event name that will be used by PostHog. Event names should use camelCase.\n    eventName: string;\n\n    // do not allow these to be sent manually, we enqueue them all for caching purposes\n    $set?: void;\n    $set_once?: void;\n}\n\nexport enum Anonymity {\n    Disabled,\n    Anonymous,\n    Pseudonymous,\n}\n\nconst whitelistedScreens = new Set([\n    \"register\",\n    \"login\",\n    \"forgot_password\",\n    \"soft_logout\",\n    \"new\",\n    \"settings\",\n    \"welcome\",\n    \"home\",\n    \"start\",\n    \"directory\",\n    \"start_sso\",\n    \"start_cas\",\n    \"complete_security\",\n    \"post_registration\",\n    \"room\",\n    \"user\",\n]);\n\nexport function getRedactedCurrentLocation(origin: string, hash: string, pathname: string): string {\n    // Redact PII from the current location.\n    // For known screens, assumes a URL structure of /<screen name>/might/be/pii\n    if (origin.startsWith(\"file://\")) {\n        pathname = \"/<redacted_file_scheme_url>/\";\n    }\n\n    let hashStr;\n    if (hash == \"\") {\n        hashStr = \"\";\n    } else {\n        let [beforeFirstSlash, screen] = hash.split(\"/\");\n\n        if (!whitelistedScreens.has(screen)) {\n            screen = \"<redacted_screen_name>\";\n        }\n\n        hashStr = `${beforeFirstSlash}/${screen}/<redacted>`;\n    }\n    return origin + pathname + hashStr;\n}\n\ninterface PlatformProperties {\n    appVersion: string;\n    appPlatform: string;\n}\n\nexport class PosthogAnalytics {\n    /* Wrapper for Posthog analytics.\n     * 3 modes of anonymity are supported, governed by this.anonymity\n     * - Anonymity.Disabled means *no data* is passed to posthog\n     * - Anonymity.Anonymous means no identifier is passed to posthog\n     * - Anonymity.Pseudonymous means an analytics ID stored in account_data and shared between devices\n     *   is passed to posthog.\n     *\n     * To update anonymity, call updateAnonymityFromSettings() or you can set it directly via setAnonymity().\n     *\n     * To pass an event to Posthog:\n     *\n     * 1. Declare a type for the event, extending IAnonymousEvent or IPseudonymousEvent.\n     * 2. Call the appropriate track*() method. Pseudonymous events will be dropped when anonymity is\n     *    Anonymous or Disabled; Anonymous events will be dropped when anonymity is Disabled.\n     */\n\n    private anonymity = Anonymity.Disabled;\n    // set true during the constructor if posthog config is present, otherwise false\n    private readonly enabled: boolean = false;\n    private static _instance: PosthogAnalytics | null = null;\n    private platformSuperProperties: Properties = {};\n    public static readonly ANALYTICS_EVENT_TYPE = \"im.vector.analytics\";\n    private propertiesForNextEvent: Partial<Record<\"$set\" | \"$set_once\", UserProperties>> = {};\n    private userPropertyCache: UserProperties = {};\n    private authenticationType: Signup[\"authenticationType\"] = \"Other\";\n    private watchSettingRef?: string;\n\n    // Will be set when the matrixClient is passed to the analytics object (e.g. on login).\n    private currentCryptoBackend?: \"Rust\" | \"Legacy\" = undefined;\n\n    public static get instance(): PosthogAnalytics {\n        if (!this._instance) {\n            this._instance = new PosthogAnalytics(posthog);\n        }\n        return this._instance;\n    }\n\n    public constructor(private readonly posthog: PostHog) {\n        const posthogConfig = SdkConfig.get(\"posthog\");\n        if (posthogConfig?.project_api_key && posthogConfig?.api_host) {\n            this.posthog.init(posthogConfig.project_api_key, {\n                api_host: posthogConfig.api_host,\n                autocapture: false,\n                mask_all_text: true,\n                mask_all_element_attributes: true,\n                // This only triggers on page load, which for our SPA isn't particularly useful.\n                // Plus, the .capture call originating from somewhere in posthog makes it hard\n                // to redact URLs, which requires async code.\n                //\n                // To raise this manually, just call .capture(\"$pageview\") or posthog.capture_pageview.\n                capture_pageview: false,\n                sanitize_properties: this.sanitizeProperties,\n                respect_dnt: true,\n                advanced_disable_decide: true,\n            });\n            this.enabled = true;\n        } else {\n            this.enabled = false;\n        }\n\n        dis.register(this.onAction);\n        SettingsStore.monitorSetting(\"layout\", null);\n        SettingsStore.monitorSetting(\"useCompactLayout\", null);\n        SettingsStore.monitorSetting(\"urlPreviewsEnabled\", null);\n        this.onLayoutUpdated();\n        this.onUrlPreviewSettingUpdated(SettingsStore.getValue(\"urlPreviewsEnabled\"));\n        this.updateCryptoSuperProperty();\n    }\n\n    private onLayoutUpdated = (): void => {\n        let layout: UserProperties[\"WebLayout\"];\n\n        switch (SettingsStore.getValue(\"layout\")) {\n            case Layout.IRC:\n                layout = \"IRC\";\n                break;\n            case Layout.Bubble:\n                layout = \"Bubble\";\n                break;\n            case Layout.Group:\n                layout = SettingsStore.getValue(\"useCompactLayout\") ? \"Compact\" : \"Group\";\n                break;\n        }\n\n        // This is known to clobber other devices but is a good enough solution\n        // to get an idea of how much use each layout gets.\n        this.setProperty(\"WebLayout\", layout);\n    };\n\n    private readonly onUrlPreviewSettingUpdated = (value: boolean): void => {\n        this.setProperty(\"URLPreviewsEnabled\", value);\n    };\n\n    private onAction = (payload: ActionPayload): void => {\n        if (payload.action !== Action.SettingUpdated) return;\n        const settingsPayload = payload as SettingUpdatedPayload;\n        if ([\"layout\", \"useCompactLayout\"].includes(settingsPayload.settingName)) {\n            this.onLayoutUpdated();\n        } else if (isSettingUpdatedPayload(settingsPayload, \"urlPreviewsEnabled\") && !settingsPayload.roomId) {\n            this.onUrlPreviewSettingUpdated(settingsPayload.newValue);\n        }\n    };\n\n    // we persist the last `$screen_name` and send it for all events until it is replaced\n    private lastScreen: ScreenName = \"Loading\";\n\n    private sanitizeProperties = (properties: Properties, eventName: string): Properties => {\n        // Callback from posthog to sanitize properties before sending them to the server.\n        //\n        // Here we sanitize posthog's built in properties which leak PII e.g. url reporting.\n        // See utils.js _.info.properties in posthog-js.\n\n        if (eventName === \"$pageview\") {\n            this.lastScreen = properties[\"$current_url\"];\n        }\n        // We inject a screen identifier in $current_url as per https://posthog.com/tutorials/spa\n        properties[\"$current_url\"] = this.lastScreen;\n\n        if (this.anonymity == Anonymity.Anonymous) {\n            // drop referrer information for anonymous users\n            properties[\"$referrer\"] = null;\n            properties[\"$referring_domain\"] = null;\n            properties[\"$initial_referrer\"] = null;\n            properties[\"$initial_referring_domain\"] = null;\n\n            // drop device ID, which is a UUID persisted in local storage\n            properties[\"$device_id\"] = null;\n        }\n\n        return properties;\n    };\n\n    private registerSuperProperties(properties: Properties): void {\n        if (this.enabled) {\n            this.posthog.register(properties);\n        }\n    }\n\n    private static async getPlatformProperties(): Promise<Partial<PlatformProperties>> {\n        const platform = PlatformPeg.get();\n        let appVersion: string | undefined;\n        try {\n            appVersion = await platform?.getAppVersion();\n        } catch {\n            // this happens if no version is set i.e. in dev\n            appVersion = \"unknown\";\n        }\n\n        return {\n            appVersion,\n            appPlatform: platform?.getHumanReadableName(),\n        };\n    }\n\n    // eslint-disable-nextline no-unused-vars\n    private capture(eventName: string, properties: Properties, options?: CaptureOptions): void {\n        if (!this.enabled) {\n            return;\n        }\n        const { origin, hash, pathname } = window.location;\n        properties[\"redactedCurrentUrl\"] = getRedactedCurrentLocation(origin, hash, pathname);\n        this.posthog.capture(eventName, { ...this.propertiesForNextEvent, ...properties }, options);\n        this.propertiesForNextEvent = {};\n    }\n\n    public isEnabled(): boolean {\n        return this.enabled;\n    }\n\n    public setAnonymity(anonymity: Anonymity): void {\n        // Update this.anonymity.\n        // This is public for testing purposes, typically you want to call updateAnonymityFromSettings\n        // to ensure this value is in step with the user's settings.\n        if (this.enabled && (anonymity == Anonymity.Disabled || anonymity == Anonymity.Anonymous)) {\n            // when transitioning to Disabled or Anonymous ensure we clear out any prior state\n            // set in posthog e.g. distinct ID\n            this.posthog.reset();\n            // Restore any previously set platform super properties\n            this.registerSuperProperties(this.platformSuperProperties);\n        }\n        this.anonymity = anonymity;\n        // update anyhow, no-op if not enabled or Disabled.\n        this.updateCryptoSuperProperty();\n    }\n\n    private static getRandomAnalyticsId(): string {\n        return [...crypto.getRandomValues(new Uint8Array(16))].map((c) => c.toString(16)).join(\"\");\n    }\n\n    public async identifyUser(client: MatrixClient, analyticsIdGenerator: () => string): Promise<void> {\n        if (this.anonymity == Anonymity.Pseudonymous) {\n            // Check the user's account_data for an analytics ID to use. Storing the ID in account_data allows\n            // different devices to send the same ID.\n            try {\n                const accountData = await client.getAccountDataFromServer(PosthogAnalytics.ANALYTICS_EVENT_TYPE);\n                let analyticsID = accountData?.id;\n                if (!analyticsID) {\n                    // Couldn't retrieve an analytics ID from user settings, so create one and set it on the server.\n                    // Note there's a race condition here - if two devices do these steps at the same time, last write\n                    // wins, and the first writer will send tracking with an ID that doesn't match the one on the server\n                    // until the next time account data is refreshed and this function is called (most likely on next\n                    // page load). This will happen pretty infrequently, so we can tolerate the possibility.\n                    analyticsID = analyticsIdGenerator();\n                    await client.setAccountData(PosthogAnalytics.ANALYTICS_EVENT_TYPE, {\n                        id: analyticsID,\n                        ...accountData,\n                    });\n                }\n                if (this.posthog.get_distinct_id() === analyticsID) {\n                    // No point identifying again\n                    return;\n                }\n                if (this.posthog.persistence?.get_property(\"$user_state\") === \"identified\") {\n                    // Analytics ID has changed, reset as Posthog will refuse to merge in this case\n                    this.posthog.reset();\n                }\n                this.posthog.identify(analyticsID);\n            } catch (e) {\n                // The above could fail due to network requests, but not essential to starting the application,\n                // so swallow it.\n                logger.log(\"Unable to identify user for tracking\", e);\n            }\n        }\n    }\n\n    public getAnonymity(): Anonymity {\n        return this.anonymity;\n    }\n\n    public logout(): void {\n        if (this.enabled) {\n            this.posthog.reset();\n        }\n        SettingsStore.unwatchSetting(this.watchSettingRef);\n        this.setAnonymity(Anonymity.Disabled);\n    }\n\n    public trackEvent<E extends IPosthogEvent>({ eventName, ...properties }: E, options?: CaptureOptions): void {\n        if (this.anonymity == Anonymity.Disabled || this.anonymity == Anonymity.Anonymous) return;\n        this.capture(eventName, properties, options);\n    }\n\n    public setProperty<K extends keyof UserProperties>(key: K, value: UserProperties[K]): void {\n        if (this.userPropertyCache[key] === value) return; // nothing to do\n        this.userPropertyCache[key] = value;\n\n        if (!this.propertiesForNextEvent[\"$set\"]) {\n            this.propertiesForNextEvent[\"$set\"] = {};\n        }\n        this.propertiesForNextEvent[\"$set\"][key] = value;\n    }\n\n    public setPropertyOnce<K extends keyof UserProperties>(key: K, value: UserProperties[K]): void {\n        if (this.userPropertyCache[key]) return; // nothing to do\n        this.userPropertyCache[key] = value;\n\n        if (!this.propertiesForNextEvent[\"$set_once\"]) {\n            this.propertiesForNextEvent[\"$set_once\"] = {};\n        }\n        this.propertiesForNextEvent[\"$set_once\"][key] = value;\n    }\n\n    public async updatePlatformSuperProperties(): Promise<void> {\n        // Update super properties in posthog with our platform (app version, platform).\n        // These properties will be subsequently passed in every event.\n        //\n        // This only needs to be done once per page lifetime. Note that getPlatformProperties\n        // is async and can involve a network request if we are running in a browser.\n        this.platformSuperProperties = await PosthogAnalytics.getPlatformProperties();\n        this.registerSuperProperties(this.platformSuperProperties);\n    }\n\n    private updateCryptoSuperProperty(): void {\n        if (!this.enabled || this.anonymity === Anonymity.Disabled) return;\n        // Update super property for cryptoSDK in posthog.\n        // This property will be subsequently passed in every event.\n        if (this.currentCryptoBackend) {\n            this.registerSuperProperties({ cryptoSDK: this.currentCryptoBackend });\n        }\n    }\n\n    public async updateAnonymityFromSettings(client: MatrixClient, pseudonymousOptIn: boolean): Promise<void> {\n        // Temporary until we have migration code to switch crypto sdk.\n        if (client.getCrypto()) {\n            const cryptoVersion = client.getCrypto()!.getVersion();\n            // version for rust is something like \"Rust SDK 0.6.0 (9c6b550), Vodozemac 0.5.0\"\n            // for legacy it will be 'Olm x.x.x\"\n            if (cryptoVersion.includes(\"Rust SDK\")) {\n                this.currentCryptoBackend = \"Rust\";\n            } else {\n                this.currentCryptoBackend = \"Legacy\";\n            }\n        }\n\n        // Update this.anonymity based on the user's analytics opt-in settings\n        const anonymity = pseudonymousOptIn ? Anonymity.Pseudonymous : Anonymity.Disabled;\n        this.setAnonymity(anonymity);\n        if (anonymity === Anonymity.Pseudonymous) {\n            await this.identifyUser(client, PosthogAnalytics.getRandomAnalyticsId);\n            if (MatrixClientPeg.currentUserIsJustRegistered()) {\n                this.trackNewUserEvent();\n            }\n        }\n\n        if (anonymity !== Anonymity.Disabled) {\n            await this.updatePlatformSuperProperties();\n            this.updateCryptoSuperProperty();\n        }\n    }\n\n    public startListeningToSettingsChanges(client: MatrixClient): void {\n        // Listen to account data changes from sync so we can observe changes to relevant flags and update.\n        // This is called -\n        //  * On page load, when the account data is first received by sync\n        //  * On login\n        //  * When another device changes account data\n        //  * When the user changes their preferences on this device\n        // Note that for new accounts, pseudonymousAnalyticsOptIn won't be set, so updateAnonymityFromSettings\n        // won't be called (i.e. this.anonymity will be left as the default, until the setting changes)\n        this.watchSettingRef = SettingsStore.watchSetting(\n            \"pseudonymousAnalyticsOptIn\",\n            null,\n            (originalSettingName, changedInRoomId, atLevel, newValueAtLevel, newValue) => {\n                this.updateAnonymityFromSettings(client, !!newValue);\n            },\n        );\n    }\n\n    public setAuthenticationType(authenticationType: Signup[\"authenticationType\"]): void {\n        this.authenticationType = authenticationType;\n    }\n\n    private trackNewUserEvent(): void {\n        // This is the only event that could have occured before analytics opt-in\n        // that we want to accumulate before the user has given consent\n        // All other scenarios should not track a user before they have given\n        // explicit consent that they are ok with their analytics data being collected\n        const options: CaptureOptions = {};\n        const registrationTime = parseInt(window.localStorage.getItem(\"mx_registration_time\")!, 10);\n        if (!isNaN(registrationTime)) {\n            options.timestamp = new Date(registrationTime);\n        }\n\n        return this.trackEvent<Signup>(\n            {\n                eventName: \"Signup\",\n                authenticationType: this.authenticationType,\n            },\n            options,\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type ActionPayload } from \"../payloads\";\nimport { type Action } from \"../actions\";\nimport { type SettingLevel } from \"../../settings/SettingLevel\";\nimport { type SettingKey, type Settings } from \"../../settings/Settings\";\n\nexport interface SettingUpdatedPayload<S extends SettingKey = SettingKey> extends ActionPayload {\n    action: Action.SettingUpdated;\n\n    settingName: S;\n    roomId: string | null;\n    level: SettingLevel;\n    newValueAtLevel: Settings[S][\"default\"];\n    newValue: Settings[S][\"default\"];\n}\n\n/**\n * Type guard to check if a payload is a SettingUpdatedPayload for a specific setting.\n * @param payload the payload to assert\n * @param settingName the setting name to check for\n */\nexport function isSettingUpdatedPayload<S extends SettingKey>(\n    payload: SettingUpdatedPayload<any>,\n    settingName: S,\n): payload is SettingUpdatedPayload<S> {\n    return payload.settingName === settingName;\n}\n","/*\nCopyright 2026 Element Creations Ltd.\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { PureComponent, type SyntheticEvent } from \"react\";\nimport { type WebScreen as ScreenEvent } from \"@matrix-org/analytics-events/types/typescript/WebScreen\";\nimport { type Interaction as InteractionEvent } from \"@matrix-org/analytics-events/types/typescript/Interaction\";\nimport { type PinUnpinAction } from \"@matrix-org/analytics-events/types/typescript/PinUnpinAction\";\nimport { type RoomListSortingAlgorithmChanged } from \"@matrix-org/analytics-events/types/typescript/RoomListSortingAlgorithmChanged\";\nimport { type UrlPreviewRendered } from \"@matrix-org/analytics-events/types/typescript/UrlPreviewRendered\";\nimport { type SectionCreation } from \"@matrix-org/analytics-events/types/typescript/SectionCreation\";\nimport { type ExpandCollapseSection } from \"@matrix-org/analytics-events/types/typescript/ExpandCollapseSection\";\n\nimport PageType from \"./PageTypes\";\nimport Views from \"./Views\";\nimport { PosthogAnalytics } from \"./PosthogAnalytics\";\nimport { SortingAlgorithm } from \"./stores/room-list-v3/skip-list/sorters\";\nimport { LruCache } from \"./utils/LruCache\";\n\nexport type ScreenName = ScreenEvent[\"$current_url\"];\nexport type InteractionName = InteractionEvent[\"name\"];\n\nconst notLoggedInMap: Record<Exclude<Views, Views.LOGGED_IN>, ScreenName> = {\n    [Views.LOADING]: \"Loading\",\n    [Views.CONFIRM_LOCK_THEFT]: \"ConfirmStartup\",\n    [Views.WELCOME]: \"Welcome\",\n    [Views.LOGIN]: \"Login\",\n    [Views.REGISTER]: \"Register\",\n    [Views.FORGOT_PASSWORD]: \"ForgotPassword\",\n    [Views.COMPLETE_SECURITY]: \"CompleteSecurity\",\n    [Views.E2E_SETUP]: \"E2ESetup\",\n    [Views.PENDING_CLIENT_START]: \"Loading\",\n    [Views.SOFT_LOGOUT]: \"SoftLogout\",\n    [Views.LOCK_STOLEN]: \"SessionLockStolen\",\n};\n\nconst loggedInPageTypeMap: Record<PageType | string, ScreenName> = {\n    [PageType.HomePage]: \"Home\",\n    [PageType.RoomView]: \"Room\",\n    [PageType.UserView]: \"User\",\n};\n\nconst SortingAlgorithmMap: Record<SortingAlgorithm, RoomListSortingAlgorithmChanged[\"newAlgorithm\"]> = {\n    [SortingAlgorithm.Recency]: \"Activity\",\n    [SortingAlgorithm.Unread]: \"Unread\",\n    [SortingAlgorithm.Alphabetic]: \"Alphabetic\",\n};\n\nexport default class PosthogTrackers {\n    private static internalInstance: PosthogTrackers;\n\n    private readonly previewedEventIds = new LruCache<string, true>(1000);\n\n    public static get instance(): PosthogTrackers {\n        if (!PosthogTrackers.internalInstance) {\n            PosthogTrackers.internalInstance = new PosthogTrackers();\n        }\n        return PosthogTrackers.internalInstance;\n    }\n\n    private view: Views = Views.LOADING;\n    private pageType?: PageType | string;\n    private override?: ScreenName;\n\n    public trackPageChange(view: Views, pageType: PageType | string | undefined, durationMs: number): void {\n        this.view = view;\n        this.pageType = pageType;\n        if (this.override) return;\n        this.trackPage(durationMs);\n    }\n\n    private trackPage(durationMs?: number): void {\n        const screenName =\n            this.view === Views.LOGGED_IN ? loggedInPageTypeMap[this.pageType!] : notLoggedInMap[this.view];\n        PosthogAnalytics.instance.trackEvent<ScreenEvent>({\n            eventName: \"$pageview\",\n            $current_url: screenName,\n            durationMs,\n        });\n    }\n\n    public trackOverride(screenName: ScreenName): void {\n        if (!screenName) return;\n        this.override = screenName;\n        PosthogAnalytics.instance.trackEvent<ScreenEvent>({\n            eventName: \"$pageview\",\n            $current_url: screenName,\n        });\n    }\n\n    public clearOverride(screenName: ScreenName): void {\n        if (screenName !== this.override) return;\n        this.override = undefined;\n        this.trackPage();\n    }\n\n    public static trackInteraction(name: InteractionName, ev?: SyntheticEvent | Event, index?: number): void {\n        let interactionType: InteractionEvent[\"interactionType\"];\n        if (ev?.type === \"click\") {\n            interactionType = \"Pointer\";\n        } else if (ev?.type.startsWith(\"key\")) {\n            interactionType = \"Keyboard\";\n        }\n\n        PosthogAnalytics.instance.trackEvent<InteractionEvent>({\n            eventName: \"Interaction\",\n            interactionType,\n            index,\n            name,\n        });\n    }\n\n    /**\n     * Track a pin or unpin action on a message.\n     * @param kind - Is pin or unpin.\n     * @param from - From where the action is triggered.\n     */\n    public static trackPinUnpinMessage(kind: PinUnpinAction[\"kind\"], from: PinUnpinAction[\"from\"]): void {\n        PosthogAnalytics.instance.trackEvent<PinUnpinAction>({\n            eventName: \"PinUnpinAction\",\n            kind,\n            from,\n        });\n    }\n\n    /**\n     * Track when the user chooses a different sorting algorithm for the room-list.\n     * @param oldAlgorithm - The old algorithm.\n     * @param newAlgorithm - The new algorithm.\n     */\n    public static trackRoomListSortingAlgorithmChange(\n        oldAlgorithm: SortingAlgorithm,\n        newAlgorithm: SortingAlgorithm,\n    ): void {\n        PosthogAnalytics.instance.trackEvent<RoomListSortingAlgorithmChanged>({\n            eventName: \"RoomListSortingAlgorithmChanged\",\n            oldAlgorithm: SortingAlgorithmMap[oldAlgorithm],\n            newAlgorithm: SortingAlgorithmMap[newAlgorithm],\n        });\n    }\n\n    /**\n     * Track if an event has had a previewed rendered in the client.\n     * This function makes a best-effort attempt to prevent double counting.\n     *\n     * @param eventId EventID for deduplication.\n     * @param isEncrypted Whether the event (and effectively the room) was encrypted.\n     * @param previews The previews generated from the event.\n     */\n    public trackUrlPreview(eventId: string, isEncrypted: boolean, previews: { image?: unknown }[]): void {\n        // Discount any previews that we have already tracked.\n        if (this.previewedEventIds.get(eventId)) {\n            return;\n        }\n        PosthogAnalytics.instance.trackEvent<UrlPreviewRendered>({\n            eventName: \"UrlPreviewRendered\",\n            previewKind: \"LegacyCard\",\n            hasThumbnail: previews.some((p) => !!p.image),\n            previewCount: previews.length,\n            encryptedRoom: isEncrypted,\n        });\n        this.previewedEventIds.set(eventId, true);\n    }\n\n    /**\n     * Track when the user creates a section in the room list.\n     * @param from The source from which the section creation was triggered.\n     */\n    public static trackSectionCreation(from: SectionCreation[\"from\"]): void {\n        PosthogAnalytics.instance.trackEvent<SectionCreation>({\n            eventName: \"SectionCreation\",\n            from,\n        });\n    }\n\n    /**\n     * Track when the user collapses or expands a section in the room list.\n     * @param kind Is expand or collapse.\n     * @param from From where the action is triggered.\n     */\n    public static trackCollapseOrExpandSection(\n        kind: ExpandCollapseSection[\"kind\"],\n        from: ExpandCollapseSection[\"from\"],\n    ): void {\n        PosthogAnalytics.instance.trackEvent<ExpandCollapseSection>({\n            eventName: \"ExpandCollapseSection\",\n            kind,\n            from,\n        });\n    }\n}\n\nexport class PosthogScreenTracker extends PureComponent<{ screenName: ScreenName }> {\n    public componentDidMount(): void {\n        PosthogTrackers.instance.trackOverride(this.props.screenName);\n    }\n\n    public componentDidUpdate(): void {\n        // We do not clear the old override here so that we do not send the non-override screen as a transition\n        PosthogTrackers.instance.trackOverride(this.props.screenName);\n    }\n\n    public componentWillUnmount(): void {\n        PosthogTrackers.instance.clearOverride(this.props.screenName);\n    }\n\n    public render(): React.ReactNode {\n        return null; // no need to render anything, we just need to hook into the React lifecycle\n    }\n}\n","var _rect, _g, _path, _g2, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nvar SvgElementDesktopLogo = function SvgElementDesktopLogo(props, ref) {\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 1024 1024\",\n    role: \"presentation\",\n    \"aria-hidden\": true,\n    ref: ref\n  }, props), /*#__PURE__*/React.createElement(\"g\", {\n    clipPath: \"url(#element-desktop-logo_svg__a)\"\n  }, /*#__PURE__*/React.createElement(\"mask\", {\n    id: \"element-desktop-logo_svg__b\",\n    width: 1024,\n    height: 1025,\n    x: 0,\n    y: -1,\n    maskUnits: \"userSpaceOnUse\",\n    style: {\n      maskType: \"alpha\"\n    }\n  }, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n    width: 1023,\n    height: 1023,\n    x: 0.5,\n    y: 0.5,\n    fill: \"#fff\",\n    stroke: \"#8D8D8D\",\n    rx: 265.5\n  }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n    mask: \"url(#element-desktop-logo_svg__b)\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M0 0h1024v1024H0z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#element-desktop-logo_svg__c)\",\n    d: \"M0 0h1024v1024H0z\"\n  }))), /*#__PURE__*/React.createElement(\"g\", {\n    filter: \"url(#element-desktop-logo_svg__d)\"\n  }, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"url(#element-desktop-logo_svg__e)\",\n    d: \"M512 106c224.228 0 406 181.772 406 406S736.228 918 512 918 106 736.228 106 512s181.772-406 406-406\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    stroke: \"url(#element-desktop-logo_svg__f)\",\n    strokeWidth: 8,\n    d: \"M512 106c224.228 0 406 181.772 406 406S736.228 918 512 918 106 736.228 106 512s181.772-406 406-406Z\",\n    style: {\n      mixBlendMode: \"color-burn\"\n    }\n  }), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n    fill: \"#fff\",\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    filter: \"url(#element-desktop-logo_svg__g)\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M437.051 293.072c0-16.547 13.442-29.961 30.024-29.961 112.383 0 203.489 90.916 203.489 203.067 0 16.547-13.442 29.961-30.024 29.961-16.581 0-30.023-13.414-30.023-29.961 0-79.057-64.221-143.145-143.442-143.145-16.582 0-30.024-13.414-30.024-29.961\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M730.866 436.217c16.581 0 30.023 13.414 30.023 29.961 0 112.15-91.105 203.066-203.489 203.066-16.581 0-30.023-13.414-30.023-29.961s13.442-29.96 30.023-29.96c79.221 0 143.443-64.089 143.443-143.145 0-16.547 13.442-29.961 30.023-29.961\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M587.421 730.924c0 16.547-13.442 29.96-30.023 29.96-112.384 0-203.489-90.916-203.489-203.066 0-16.547 13.442-29.961 30.023-29.961s30.023 13.414 30.023 29.961c0 79.057 64.221 143.145 143.443 143.145 16.581 0 30.023 13.414 30.023 29.961\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M293.134 587.779c-16.581 0-30.023-13.414-30.023-29.961 0-112.15 91.105-203.067 203.489-203.067 16.582 0 30.023 13.414 30.023 29.961s-13.441 29.961-30.023 29.961c-79.221 0-143.442 64.088-143.442 143.145 0 16.547-13.442 29.961-30.024 29.961\"\n  }))))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"element-desktop-logo_svg__c\",\n    x1: 512,\n    x2: 512,\n    y1: 1024,\n    y2: 0,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopColor: \"#04B96A\",\n    stopOpacity: 0.41\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.2,\n    stopColor: \"#07B661\",\n    stopOpacity: 0.23\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.4,\n    stopColor: \"#00B85C\",\n    stopOpacity: 0.11\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.6,\n    stopColor: \"#16BB69\",\n    stopOpacity: 0.06\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.8,\n    stopColor: \"#16BB79\",\n    stopOpacity: 0.03\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopColor: \"#fff\",\n    stopOpacity: 0\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"element-desktop-logo_svg__e\",\n    x1: 512,\n    x2: 512,\n    y1: 102,\n    y2: 922,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopColor: \"#98E1C1\"\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.33,\n    stopColor: \"#0BC491\"\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.66,\n    stopColor: \"#007A61\"\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopColor: \"#005C45\"\n  })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: \"element-desktop-logo_svg__f\",\n    x1: 512,\n    x2: 512,\n    y1: 102,\n    y2: 922,\n    gradientUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"stop\", {\n    stopColor: \"#16BB79\",\n    stopOpacity: 0.03\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.25,\n    stopColor: \"#16BB69\",\n    stopOpacity: 0.06\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.5,\n    stopColor: \"#00B85C\",\n    stopOpacity: 0.11\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 0.75,\n    stopColor: \"#07B661\",\n    stopOpacity: 0.23\n  }), /*#__PURE__*/React.createElement(\"stop\", {\n    offset: 1,\n    stopColor: \"#04B96A\",\n    stopOpacity: 0.41\n  })), /*#__PURE__*/React.createElement(\"filter\", {\n    id: \"element-desktop-logo_svg__d\",\n    width: 1060,\n    height: 1266,\n    x: -18,\n    y: 78,\n    colorInterpolationFilters: \"sRGB\",\n    filterUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"feFlood\", {\n    floodOpacity: 0,\n    result: \"BackgroundImageFix\"\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    \"in\": \"SourceAlpha\",\n    result: \"hardAlpha\",\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n  }), /*#__PURE__*/React.createElement(\"feOffset\", {\n    dy: 18\n  }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n    stdDeviation: 21\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0\"\n  }), /*#__PURE__*/React.createElement(\"feBlend\", {\n    in2: \"BackgroundImageFix\",\n    result: \"effect1_dropShadow_178_1078\"\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    \"in\": \"SourceAlpha\",\n    result: \"hardAlpha\",\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n  }), /*#__PURE__*/React.createElement(\"feOffset\", {\n    dy: 76\n  }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n    stdDeviation: 38\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0\"\n  }), /*#__PURE__*/React.createElement(\"feBlend\", {\n    in2: \"effect1_dropShadow_178_1078\",\n    result: \"effect2_dropShadow_178_1078\"\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    \"in\": \"SourceAlpha\",\n    result: \"hardAlpha\",\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n  }), /*#__PURE__*/React.createElement(\"feOffset\", {\n    dy: 170\n  }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n    stdDeviation: 51\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0\"\n  }), /*#__PURE__*/React.createElement(\"feBlend\", {\n    in2: \"effect2_dropShadow_178_1078\",\n    result: \"effect3_dropShadow_178_1078\"\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    \"in\": \"SourceAlpha\",\n    result: \"hardAlpha\",\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n  }), /*#__PURE__*/React.createElement(\"feOffset\", {\n    dy: 302\n  }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n    stdDeviation: 60\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01 0\"\n  }), /*#__PURE__*/React.createElement(\"feBlend\", {\n    in2: \"effect3_dropShadow_178_1078\",\n    result: \"effect4_dropShadow_178_1078\"\n  }), /*#__PURE__*/React.createElement(\"feBlend\", {\n    \"in\": \"SourceGraphic\",\n    in2: \"effect4_dropShadow_178_1078\",\n    result: \"shape\"\n  })), /*#__PURE__*/React.createElement(\"filter\", {\n    id: \"element-desktop-logo_svg__g\",\n    width: 537.778,\n    height: 537.773,\n    x: 243.111,\n    y: 247.111,\n    colorInterpolationFilters: \"sRGB\",\n    filterUnits: \"userSpaceOnUse\"\n  }, /*#__PURE__*/React.createElement(\"feFlood\", {\n    floodOpacity: 0,\n    result: \"BackgroundImageFix\"\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    \"in\": \"SourceAlpha\",\n    result: \"hardAlpha\",\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n  }), /*#__PURE__*/React.createElement(\"feOffset\", {\n    dy: 4\n  }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n    stdDeviation: 10\n  }), /*#__PURE__*/React.createElement(\"feComposite\", {\n    in2: \"hardAlpha\",\n    operator: \"out\"\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\n  }), /*#__PURE__*/React.createElement(\"feBlend\", {\n    in2: \"BackgroundImageFix\",\n    result: \"effect1_dropShadow_178_1078\"\n  }), /*#__PURE__*/React.createElement(\"feBlend\", {\n    \"in\": \"SourceGraphic\",\n    in2: \"effect1_dropShadow_178_1078\",\n    result: \"shape\"\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    \"in\": \"SourceAlpha\",\n    result: \"hardAlpha\",\n    values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n  }), /*#__PURE__*/React.createElement(\"feOffset\", {\n    dy: -16\n  }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n    stdDeviation: 11\n  }), /*#__PURE__*/React.createElement(\"feComposite\", {\n    in2: \"hardAlpha\",\n    k2: -1,\n    k3: 1,\n    operator: \"arithmetic\"\n  }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n    values: \"0 0 0 0 0.596078 0 0 0 0 0.882353 0 0 0 0 0.756863 0 0 0 1 0\"\n  }), /*#__PURE__*/React.createElement(\"feBlend\", {\n    in2: \"shape\",\n    result: \"effect2_innerShadow_178_1078\"\n  })), /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"element-desktop-logo_svg__a\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#fff\",\n    d: \"M0 0h1024v1024H0z\"\n  })))));\n};\nvar ForwardRef = /*#__PURE__*/forwardRef(SvgElementDesktopLogo);\nexport { ForwardRef as Icon };\nexport default \"img/element-desktop-logo.f4b4c62.svg\";","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2022 The Matrix.org Foundation C.I.C.\nCopyright 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { mergeWith } from \"lodash\";\nimport { type DeepReadonly } from \"shared-types\";\n\nimport { SnakedObject } from \"./utils/SnakedObject\";\nimport { type IConfigOptions, type ConfigOptions } from \"./IConfigOptions\";\nimport { isObject, objectClone } from \"./utils/objects\";\nimport ElementDesktopLogoSvg from \"../res/img/element-desktop-logo.svg\";\n\n// see element-web config.md for docs, or the IConfigOptions interface for dev docs\nexport const DEFAULTS = {\n    brand: \"Element\",\n    branding: {\n        logo_link_url: \"https://element.io\",\n        auth_header_logo_url: \"themes/element/img/logos/element-logo.svg\",\n        welcome_background_url: \"themes/element/img/backgrounds/lake.jpg\",\n    },\n    help_url: \"https://element.io/help\",\n    help_encryption_url: \"https://element.io/help#encryption\",\n    help_key_storage_url: \"https://element.io/help#encryption5\",\n    integrations_ui_url: \"https://scalar.vector.im/\",\n    integrations_rest_url: \"https://scalar.vector.im/api\",\n    show_labs_settings: false,\n    force_verification: false,\n    enable_client_well_known_lookups: true,\n\n    jitsi: {\n        preferred_domain: \"meet.element.io\",\n    },\n    element_call: {\n        brand: \"Element Call\",\n    },\n\n    // @ts-ignore - we deliberately use the camelCase version here so we trigger\n    // the fallback behaviour. If we used the snake_case version then we'd break\n    // everyone's config which has the camelCase property because our default would\n    // be preferred over their config.\n    desktopBuilds: {\n        available: true,\n        logo: ElementDesktopLogoSvg,\n        url: \"https://element.io/get-started\",\n    },\n\n    feedback: {\n        existing_issues_url:\n            \"https://github.com/vector-im/element-web/issues?q=is%3Aopen+is%3Aissue+sort%3Areactions-%2B1-desc\",\n        new_issue_url: \"https://github.com/vector-im/element-web/issues/new/choose\",\n    },\n\n    desktop_builds: {\n        available: true,\n        logo: \"vector-icons/1024.png\",\n        url: \"https://element.io/download\",\n        url_macos: \"https://packages.element.io/desktop/install/macos/Element.dmg\",\n        url_win64: \"https://packages.element.io/desktop/install/win32/x64/Element%20Setup.exe\",\n        url_win64arm: \"https://packages.element.io/desktop/install/win32/arm64/Element%20Setup.exe\",\n        url_linux: \"https://element.io/download#linux\",\n    },\n    mobile_builds: {\n        ios: \"https://apps.apple.com/app/vector/id1083446067\",\n        android: \"https://play.google.com/store/apps/details?id=im.vector.app\",\n        fdroid: \"https://f-droid.org/repository/browse/?fdid=im.vector.app\",\n    },\n} satisfies ConfigOptions;\n\nexport type { ConfigOptions };\n\nfunction mergeConfig(\n    config: DeepReadonly<IConfigOptions>,\n    changes: DeepReadonly<ConfigOptions>,\n): DeepReadonly<IConfigOptions> {\n    // return { ...config, ...changes };\n    return mergeWith(objectClone(config), changes, (objValue, srcValue) => {\n        // Don't merge arrays, prefer values from newer object\n        if (Array.isArray(objValue)) {\n            return srcValue;\n        }\n\n        // Don't allow objects to get nulled out, this will break our types\n        if (isObject(objValue) && !isObject(srcValue)) {\n            return objValue;\n        }\n    });\n}\n\ntype ObjectType<K extends keyof IConfigOptions> = IConfigOptions[K] extends object\n    ? SnakedObject<NonNullable<IConfigOptions[K]>>\n    : SnakedObject<NonNullable<IConfigOptions[K]>> | null | undefined;\n\nexport default class SdkConfig {\n    private static instance: DeepReadonly<IConfigOptions>;\n    private static fallback: SnakedObject<DeepReadonly<IConfigOptions>>;\n\n    private static setInstance(i: DeepReadonly<IConfigOptions>): void {\n        SdkConfig.instance = i;\n        SdkConfig.fallback = new SnakedObject(i);\n\n        // For debugging purposes\n        window.mxReactSdkConfig = i;\n    }\n\n    public static get(): IConfigOptions;\n    public static get<K extends keyof IConfigOptions>(key: K, altCaseName?: string): IConfigOptions[K];\n    public static get<K extends keyof IConfigOptions = never>(\n        key?: K,\n        altCaseName?: string,\n    ): DeepReadonly<IConfigOptions> | DeepReadonly<IConfigOptions>[K] {\n        if (key === undefined) {\n            // safe to cast as a fallback - we want to break the runtime contract in this case\n            return SdkConfig.instance || <IConfigOptions>{};\n        }\n        return SdkConfig.fallback.get(key, altCaseName);\n    }\n\n    public static getObject<K extends keyof IConfigOptions>(key: K, altCaseName?: string): ObjectType<K> {\n        const val = SdkConfig.get(key, altCaseName);\n        if (isObject(val)) {\n            return new SnakedObject(val);\n        }\n\n        // return the same type for sensitive callers (some want `undefined` specifically)\n        return (val === undefined ? undefined : null) as ObjectType<K>;\n    }\n\n    public static put(cfg: DeepReadonly<ConfigOptions>): void {\n        SdkConfig.setInstance(mergeConfig(DEFAULTS, cfg));\n    }\n\n    /**\n     * Resets the config.\n     */\n    public static reset(): void {\n        SdkConfig.setInstance(mergeConfig(DEFAULTS, {})); // safe to cast - defaults will be applied\n    }\n\n    public static add(cfg: DeepReadonly<ConfigOptions>): void {\n        SdkConfig.put(mergeConfig(SdkConfig.get(), cfg));\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/*\n * Sliding Sync Architecture - MSC https://github.com/matrix-org/matrix-spec-proposals/pull/3575\n *\n * This is a holistic summary of the changes made to Element-Web / React SDK / JS SDK to enable sliding sync.\n * This summary will hopefully signpost where developers need to look if they want to make changes to this code.\n *\n * At the lowest level, the JS SDK contains an HTTP API wrapper function in client.ts. This is used by\n * a SlidingSync class in JS SDK, which contains code to handle list operations (INSERT/DELETE/SYNC/etc)\n * and contains the main request API bodies, but has no code to control updating JS SDK structures: it just\n * exposes an EventEmitter to listen for updates. When MatrixClient.startClient is called, callers need to\n * provide a SlidingSync instance as this contains the main request API params (timeline limit, required state,\n * how many lists, etc).\n *\n * The SlidingSyncSdk INTERNAL class in JS SDK attaches listeners to SlidingSync to update JS SDK Room objects,\n * and it conveniently exposes an identical public API to SyncApi (to allow it to be a drop-in replacement).\n *\n * At the highest level, SlidingSyncManager contains mechanisms to tell UI lists which rooms to show,\n * and contains the core request API params used in Element-Web. It does this by listening for events\n * emitted by the SlidingSync class and by modifying the request API params on the SlidingSync class.\n *\n *    (entry point)                     (updates JS SDK)\n *  SlidingSyncManager                   SlidingSyncSdk\n *       |                                     |\n *       +------------------.------------------+\n *         listens          |          listens\n *                     SlidingSync\n *                     (sync loop,\n *                      list ops)\n */\n\nimport { type MatrixClient, ClientEvent, EventType, type Room } from \"matrix-js-sdk/src/matrix\";\nimport {\n    type MSC3575Filter,\n    type MSC3575List,\n    type MSC3575SlidingSyncResponse,\n    MSC3575_STATE_KEY_LAZY,\n    MSC3575_STATE_KEY_ME,\n    MSC3575_WILDCARD,\n    SlidingSync,\n    SlidingSyncEvent,\n    SlidingSyncState,\n} from \"matrix-js-sdk/src/sliding-sync\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { sleep } from \"matrix-js-sdk/src/utils\";\n\n// how long to long poll for\nconst SLIDING_SYNC_TIMEOUT_MS = 20 * 1000;\n\n// The state events we will get for every single room/space/old room/etc\n// This list is only augmented when a direct room subscription is made. (e.g you view a room)\nconst REQUIRED_STATE_LIST = [\n    [EventType.RoomJoinRules, \"\"], // the public icon on the room list\n    [EventType.RoomAvatar, \"\"], // any room avatar\n    [EventType.RoomCanonicalAlias, \"\"], // for room name calculations\n    [EventType.RoomTombstone, \"\"], // lets JS SDK hide rooms which are dead\n    [EventType.RoomEncryption, \"\"], // lets rooms be configured for E2EE correctly\n    [EventType.RoomCreate, \"\"], // for isSpaceRoom checks\n    [EventType.SpaceChild, MSC3575_WILDCARD], // all space children\n    [EventType.SpaceParent, MSC3575_WILDCARD], // all space parents\n    [EventType.RoomMember, MSC3575_STATE_KEY_ME], // lets the client calculate that we are in fact in the room\n];\n\n// the things to fetch when a user clicks on a room\nconst DEFAULT_ROOM_SUBSCRIPTION_INFO = {\n    timeline_limit: 50,\n    // missing required_state which will change depending on the kind of room\n    include_old_rooms: {\n        timeline_limit: 0,\n        required_state: REQUIRED_STATE_LIST,\n    },\n};\n// lazy load room members so rooms like Matrix HQ don't take forever to load\nconst UNENCRYPTED_SUBSCRIPTION_NAME = \"unencrypted\";\nconst UNENCRYPTED_SUBSCRIPTION = {\n    required_state: [\n        [EventType.RoomMember, MSC3575_STATE_KEY_ME], // except for m.room.members, get our own membership\n        [EventType.RoomMember, MSC3575_STATE_KEY_LAZY], // ...and lazy load the rest.\n    ],\n    ...DEFAULT_ROOM_SUBSCRIPTION_INFO,\n};\n\n// we need all the room members in encrypted rooms because we need to know which users to encrypt\n// messages for.\nconst ENCRYPTED_SUBSCRIPTION = {\n    required_state: [\n        [MSC3575_WILDCARD, MSC3575_WILDCARD], // all events\n    ],\n    ...DEFAULT_ROOM_SUBSCRIPTION_INFO,\n};\n\n// the complete set of lists made in SSS. The manager will spider all of these lists depending\n// on the count for each one.\nconst sssLists: Record<string, MSC3575List> = {\n    spaces: {\n        ranges: [[0, 10]],\n        timeline_limit: 0, // we don't care about the most recent message for spaces\n        required_state: REQUIRED_STATE_LIST,\n        include_old_rooms: {\n            timeline_limit: 0,\n            required_state: REQUIRED_STATE_LIST,\n        },\n        filters: {\n            room_types: [\"m.space\"],\n        },\n    },\n    invites: {\n        ranges: [[0, 10]],\n        timeline_limit: 1, // most recent message display\n        required_state: REQUIRED_STATE_LIST,\n        include_old_rooms: {\n            timeline_limit: 0,\n            required_state: REQUIRED_STATE_LIST,\n        },\n        filters: {\n            is_invite: true,\n        },\n    },\n    favourites: {\n        ranges: [[0, 10]],\n        timeline_limit: 1, // most recent message display\n        required_state: REQUIRED_STATE_LIST,\n        include_old_rooms: {\n            timeline_limit: 0,\n            required_state: REQUIRED_STATE_LIST,\n        },\n        filters: {\n            tags: [\"m.favourite\"],\n        },\n    },\n    dms: {\n        ranges: [[0, 10]],\n        timeline_limit: 1, // most recent message display\n        required_state: REQUIRED_STATE_LIST,\n        include_old_rooms: {\n            timeline_limit: 0,\n            required_state: REQUIRED_STATE_LIST,\n        },\n        filters: {\n            is_dm: true,\n            is_invite: false,\n            // If a DM has a Favourite & Low Prio tag then it'll be shown in those lists instead\n            not_tags: [\"m.favourite\", \"m.lowpriority\"],\n        },\n    },\n    untagged: {\n        // SSS will dupe suppress invites/dms from here, so we don't need \"not dms, not invites\"\n        ranges: [[0, 10]],\n        timeline_limit: 1, // most recent message display\n        required_state: REQUIRED_STATE_LIST,\n        include_old_rooms: {\n            timeline_limit: 0,\n            required_state: REQUIRED_STATE_LIST,\n        },\n    },\n};\n\nexport type PartialSlidingSyncRequest = {\n    filters?: MSC3575Filter;\n    sort?: string[];\n    ranges?: [startIndex: number, endIndex: number][];\n};\n\n/**\n * This class manages the entirety of sliding sync at a high UI/UX level. It controls the placement\n * of placeholders in lists, controls updating sliding window ranges, and controls which events\n * are pulled down when. The intention behind this manager is be the single place to look for sliding\n * sync options and code.\n */\nexport class SlidingSyncManager {\n    public static serverSupportsSlidingSync: boolean;\n\n    public static readonly ListSpaces = \"space_list\";\n    public static readonly ListSearch = \"search_list\";\n    private static readonly internalInstance = new SlidingSyncManager();\n\n    public slidingSync?: SlidingSync;\n    private client?: MatrixClient;\n\n    private configureDefer = Promise.withResolvers<void>();\n\n    public static get instance(): SlidingSyncManager {\n        return SlidingSyncManager.internalInstance;\n    }\n\n    private configure(client: MatrixClient, proxyUrl: string): SlidingSync {\n        this.client = client;\n        // create the set of lists we will use.\n        const lists = new Map();\n        for (const listName in sssLists) {\n            lists.set(listName, sssLists[listName]);\n        }\n        // by default use the encrypted subscription as that gets everything, which is a safer\n        // default than potentially missing member events.\n        this.slidingSync = new SlidingSync(proxyUrl, lists, ENCRYPTED_SUBSCRIPTION, client, SLIDING_SYNC_TIMEOUT_MS);\n        this.slidingSync.addCustomSubscription(UNENCRYPTED_SUBSCRIPTION_NAME, UNENCRYPTED_SUBSCRIPTION);\n        this.configureDefer.resolve();\n        return this.slidingSync;\n    }\n\n    /**\n     * Ensure that this list is registered.\n     * @param listKey The list key to register\n     * @param updateArgs The fields to update on the list.\n     * @returns The complete list request params\n     */\n    public async ensureListRegistered(listKey: string, updateArgs: PartialSlidingSyncRequest): Promise<MSC3575List> {\n        logger.debug(\"ensureListRegistered:::\", listKey, updateArgs);\n        await this.configureDefer.promise;\n        let list = this.slidingSync!.getListParams(listKey);\n        if (!list) {\n            list = {\n                ranges: [[0, 20]],\n                sort: [\"by_notification_level\", \"by_recency\"],\n                timeline_limit: 1, // most recent message display: though this seems to only be needed for favourites?\n                required_state: [\n                    [EventType.RoomJoinRules, \"\"], // the public icon on the room list\n                    [EventType.RoomAvatar, \"\"], // any room avatar\n                    [EventType.RoomTombstone, \"\"], // lets JS SDK hide rooms which are dead\n                    [EventType.RoomEncryption, \"\"], // lets rooms be configured for E2EE correctly\n                    [EventType.RoomCreate, \"\"], // for isSpaceRoom checks\n                    [EventType.RoomMember, MSC3575_STATE_KEY_ME], // lets the client calculate that we are in fact in the room\n                ],\n                include_old_rooms: {\n                    timeline_limit: 0,\n                    required_state: [\n                        [EventType.RoomCreate, \"\"],\n                        [EventType.RoomTombstone, \"\"], // lets JS SDK hide rooms which are dead\n                        [EventType.SpaceChild, MSC3575_WILDCARD], // all space children\n                        [EventType.SpaceParent, MSC3575_WILDCARD], // all space parents\n                        [EventType.RoomMember, MSC3575_STATE_KEY_ME], // lets the client calculate that we are in fact in the room\n                    ],\n                },\n                ...updateArgs,\n            };\n        } else {\n            const updatedList = { ...list, ...updateArgs };\n            // cannot use objectHasDiff as we need to do deep diff checking\n            if (JSON.stringify(list) === JSON.stringify(updatedList)) {\n                logger.debug(\"list matches, not sending, update => \", updateArgs);\n                return list;\n            }\n            list = updatedList;\n        }\n\n        try {\n            // if we only have range changes then call a different function so we don't nuke the list from before\n            if (updateArgs.ranges && Object.keys(updateArgs).length === 1) {\n                this.slidingSync!.setListRanges(listKey, updateArgs.ranges);\n            } else {\n                this.slidingSync!.setList(listKey, list);\n            }\n        } catch (err) {\n            logger.debug(\"ensureListRegistered: update failed txn_id=\", err);\n        }\n        return this.slidingSync!.getListParams(listKey)!;\n    }\n\n    /**\n     * Announces that the user has chosen to view the given room and that room will now\n     * be displayed, so it should have more state loaded.\n     * @param roomId The room to set visible\n     */\n    public async setRoomVisible(roomId: string): Promise<void> {\n        await this.configureDefer.promise;\n        const subscriptions = this.slidingSync!.getRoomSubscriptions();\n        if (subscriptions.has(roomId)) return;\n\n        subscriptions.add(roomId);\n\n        const room = this.client?.getRoom(roomId);\n        // default to safety: request all state if we can't work it out. This can happen if you\n        // refresh the app whilst viewing a room: we call setRoomVisible before we know anything\n        // about the room.\n        let shouldLazyLoad = false;\n        if (room) {\n            // do not lazy load encrypted rooms as we need the entire member list.\n            shouldLazyLoad = !(await this.client?.getCrypto()?.isEncryptionEnabledInRoom(roomId));\n        }\n        logger.log(\"SlidingSync setRoomVisible:\", roomId, \"shouldLazyLoad:\", shouldLazyLoad);\n        if (shouldLazyLoad) {\n            // lazy load this room\n            this.slidingSync!.useCustomSubscription(roomId, UNENCRYPTED_SUBSCRIPTION_NAME);\n        }\n        this.slidingSync!.modifyRoomSubscriptions(subscriptions);\n        if (room) {\n            return; // we have data already for this room, show immediately e.g it's in a list\n        }\n        // wait until we know about this room. This may take a little while.\n        return new Promise((resolve) => {\n            logger.log(`SlidingSync setRoomVisible room ${roomId} not found, waiting for ClientEvent.Room`);\n            const waitForRoom = (r: Room): void => {\n                if (r.roomId === roomId) {\n                    this.client?.off(ClientEvent.Room, waitForRoom);\n                    logger.log(`SlidingSync room ${roomId} found, resolving setRoomVisible`);\n                    resolve();\n                }\n            };\n            this.client?.on(ClientEvent.Room, waitForRoom);\n        });\n    }\n\n    /**\n     * Retrieve all rooms on the user's account. Retrieval is gradual over time.\n     * This function MUST be called BEFORE the first sync request goes out.\n     * @param batchSize The number of rooms to return in each request.\n     * @param gapBetweenRequestsMs The number of milliseconds to wait between requests.\n     */\n    private async startSpidering(\n        slidingSync: SlidingSync,\n        batchSize: number,\n        gapBetweenRequestsMs: number,\n    ): Promise<void> {\n        // The manager has created several lists (see `sssLists` in this file), all of which will be spidered simultaneously.\n        // There are multiple lists to ensure that we can populate invites/favourites/DMs sections immediately, rather than\n        // potentially waiting minutes if they are all very old rooms (and hence are returned last by the server). In this\n        // way, the lists are effectively priority requests. We don't actually care which room goes into which list at this\n        // point, as the RoomListStore will calculate this based on the returned data.\n\n        // copy the initial set of list names and ranges, we'll keep this map updated.\n        const listToUpperBound = new Map(\n            Object.keys(sssLists).map((listName) => {\n                return [listName, sssLists[listName].ranges[0][1]];\n            }),\n        );\n        console.log(\"startSpidering:\", listToUpperBound);\n\n        // listen for a response from the server. ANY 200 OK will do here, as we assume that it is ACKing\n        // the request change we have sent out. TODO: this may not be true if you concurrently subscribe to a room :/\n        // but in that case, for spidering at least, it isn't the end of the world as request N+1 includes all indexes\n        // from request N.\n        const lifecycle = async (\n            state: SlidingSyncState,\n            _: MSC3575SlidingSyncResponse | null,\n            err?: Error,\n        ): Promise<void> => {\n            if (state !== SlidingSyncState.Complete) {\n                return;\n            }\n            await sleep(gapBetweenRequestsMs); // don't tightloop; even on errors\n            if (err) {\n                return;\n            }\n\n            // for all lists with total counts > range => increase the range\n            let hasSetRanges = false;\n            listToUpperBound.forEach((currentUpperBound, listName) => {\n                const totalCount = slidingSync.getListData(listName)?.joinedCount || 0;\n                if (currentUpperBound < totalCount) {\n                    // increment the upper bound\n                    const newUpperBound = currentUpperBound + batchSize;\n                    console.log(`startSpidering: ${listName} ${currentUpperBound} => ${newUpperBound}`);\n                    listToUpperBound.set(listName, newUpperBound);\n                    // make the next request. This will only send the request when this callback has finished, so if\n                    // we set all the list ranges at once we will only send 1 new request.\n                    slidingSync.setListRanges(listName, [[0, newUpperBound]]);\n                    hasSetRanges = true;\n                }\n            });\n            if (!hasSetRanges) {\n                // finish spidering\n                slidingSync.off(SlidingSyncEvent.Lifecycle, lifecycle);\n            }\n        };\n        slidingSync.on(SlidingSyncEvent.Lifecycle, lifecycle);\n    }\n\n    /**\n     * Set up the Sliding Sync instance; configures the end point and starts spidering.\n     * The sliding sync endpoint is derived the following way:\n     *   1. The user-defined sliding sync proxy URL (legacy, for backwards compatibility)\n     *   2. The client `well-known` sliding sync proxy URL [declared at the unstable prefix](https://github.com/matrix-org/matrix-spec-proposals/blob/kegan/sync-v3/proposals/3575-sync.md#unstable-prefix)\n     *   3. The homeserver base url (for native server support)\n     * @param client The MatrixClient to use\n     * @returns A working Sliding Sync or undefined\n     */\n    public async setup(client: MatrixClient): Promise<SlidingSync | undefined> {\n        const slidingSync = this.configure(client, client.baseUrl);\n        logger.info(\"Simplified Sliding Sync activated at\", client.baseUrl);\n        this.startSpidering(slidingSync, 50, 50); // 50 rooms at a time, 50ms apart\n        return slidingSync;\n    }\n\n    /**\n     * Check if the server \"natively\" supports sliding sync (with an unstable endpoint).\n     * @param client The MatrixClient to use\n     * @returns Whether the \"native\" (unstable) endpoint is supported\n     */\n    public async nativeSlidingSyncSupport(client: MatrixClient): Promise<boolean> {\n        // Per https://github.com/matrix-org/matrix-spec-proposals/pull/3575/files#r1589542561\n        // `client` can be undefined/null in tests for some reason.\n        const support = await client?.doesServerSupportUnstableFeature(\"org.matrix.simplified_msc3575\");\n        if (support) {\n            logger.log(\"nativeSlidingSyncSupport: org.matrix.simplified_msc3575 sliding sync advertised as unstable\");\n        }\n        return support;\n    }\n\n    /**\n     * Check whether our homeserver has sliding sync support, that the endpoint is up, and\n     * is a sliding sync endpoint.\n     *\n     * Sets static member `SlidingSyncController.serverSupportsSlidingSync`\n     * @param client The MatrixClient to use\n     */\n    public async checkSupport(client: MatrixClient): Promise<void> {\n        if (await this.nativeSlidingSyncSupport(client)) {\n            SlidingSyncManager.serverSupportsSlidingSync = true;\n            return;\n        }\n        SlidingSyncManager.serverSupportsSlidingSync = false;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2024 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport browserlist from \"browserslist\";\nimport PopOutIcon from \"@vector-im/compound-design-tokens/assets/web/icons/pop-out\";\nimport memoizeOne from \"memoize-one\";\n\nimport { DeviceType, parseUserAgent } from \"./utils/device/parseUserAgent\";\nimport ToastStore from \"./stores/ToastStore\";\nimport GenericToast from \"./components/views/toasts/GenericToast\";\nimport { _t } from \"./languageHandler\";\nimport SdkConfig from \"./SdkConfig\";\n\nexport const LOCAL_STORAGE_KEY = \"mx_accepts_unsupported_browser\";\nconst TOAST_KEY = \"unsupportedbrowser\";\n\nconst SUPPORTED_DEVICE_TYPES = [DeviceType.Web, DeviceType.Desktop];\nconst SUPPORTED_BROWSER_QUERY =\n    \"last 2 Chrome versions, last 2 Firefox versions, last 2 Safari versions, last 2 Edge versions\";\nconst LEARN_MORE_URL = \"https://github.com/element-hq/element-web#supported-environments\";\n\nfunction onLearnMoreClick(): void {\n    onDismissClick();\n    window.open(LEARN_MORE_URL, \"_blank\", \"noopener,noreferrer\");\n}\n\nfunction onDismissClick(): void {\n    localStorage.setItem(LOCAL_STORAGE_KEY, String(true));\n    ToastStore.sharedInstance().dismissToast(TOAST_KEY);\n}\n\nfunction getBrowserNameVersion(browser: string): [name: string, version: number] {\n    const [browserName, browserVersion] = browser.split(\" \");\n    const browserNameLc = browserName.toLowerCase();\n    return [browserNameLc, parseInt(browserVersion, 10)];\n}\n\nfunction calculateBrowserSupport(): boolean {\n    const browsers = browserlist(SUPPORTED_BROWSER_QUERY).sort();\n    const minimumBrowserVersions = new Map<string, number>();\n    for (const browser of browsers) {\n        const [browserName, browserVersion] = getBrowserNameVersion(browser);\n        // We sorted the browsers so will encounter the minimum version first\n        if (minimumBrowserVersions.has(browserName)) continue;\n        minimumBrowserVersions.set(browserName, browserVersion);\n    }\n\n    const details = parseUserAgent(navigator.userAgent);\n\n    if (!details.client) {\n        logger.warn(\"Browser unsupported, unknown client\", navigator.userAgent);\n        return false;\n    }\n\n    if (!SUPPORTED_DEVICE_TYPES.includes(details.deviceType)) {\n        logger.warn(\"Browser unsupported, unsupported device type\", details.deviceType);\n        return false;\n    }\n\n    // We don't care about the browser version for desktop devices\n    // We ship our own browser (electron) for desktop devices\n    if (details.deviceType === DeviceType.Desktop) {\n        return true;\n    }\n\n    const [browserName, browserVersion] = getBrowserNameVersion(details.client);\n    const minimumVersion = minimumBrowserVersions.get(browserName);\n    // Check both with the sub-version cut off and without as some browsers have less granular versioning e.g. Safari\n    if (!minimumVersion || browserVersion < minimumVersion) {\n        logger.warn(\"Browser unsupported, unsupported user agent\", details.client);\n        return false;\n    }\n    return true;\n}\n\n/**\n * Function to check if the current browser is considered supported by our support policy.\n * Based on user agent parsing so may be inaccurate if the user has fingerprint prevention turned up to 11.\n * This is calculated once and stored for the lifetime of the session to prevent logspam.\n *\n * @returns `true` if the browser is supported by us, or `false` if *any* of the checks fail.\n */\nexport const getBrowserSupport = memoizeOne(calculateBrowserSupport);\n\n/**\n * Shows a user warning toast if the user's browser is not supported.\n */\nexport function checkBrowserSupport(): void {\n    const supported = getBrowserSupport();\n    if (supported) return;\n\n    if (localStorage.getItem(LOCAL_STORAGE_KEY)) {\n        logger.warn(\"Browser unsupported, but user has previously accepted\");\n        return;\n    }\n\n    const brand = SdkConfig.get().brand;\n    ToastStore.sharedInstance().addOrReplaceToast({\n        key: TOAST_KEY,\n        title: _t(\"unsupported_browser|title\", { brand }),\n        props: {\n            description: _t(\"unsupported_browser|description\", { brand }),\n            secondaryLabel: _t(\"action|learn_more\"),\n            SecondaryIcon: PopOutIcon,\n            onSecondaryClick: onLearnMoreClick,\n            primaryLabel: _t(\"action|dismiss\"),\n            onPrimaryClick: onDismissClick,\n        },\n        component: GenericToast,\n        priority: 40,\n    });\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type JSX } from \"react\";\nimport { SERVICE_TYPES } from \"matrix-js-sdk/src/matrix\";\n\nimport { _t } from \"../../../languageHandler\";\nimport DialogButtons from \"../elements/DialogButtons\";\nimport BaseDialog from \"./BaseDialog\";\nimport { pickBestPolicyLanguage, type ServicePolicyPair } from \"../../../Terms\";\nimport ExternalLink from \"../elements/ExternalLink\";\nimport { parseUrl } from \"../../../utils/UrlUtils\";\n\ninterface ITermsCheckboxProps {\n    onChange: (url: string, checked: boolean) => void;\n    url: string;\n    checked: boolean;\n}\n\nclass TermsCheckbox extends React.PureComponent<ITermsCheckboxProps> {\n    private onChange = (ev: React.FormEvent<HTMLInputElement>): void => {\n        this.props.onChange(this.props.url, ev.currentTarget.checked);\n    };\n\n    public render(): React.ReactNode {\n        return <input type=\"checkbox\" onChange={this.onChange} checked={this.props.checked} />;\n    }\n}\n\ninterface ITermsDialogProps {\n    /**\n     * Array of [Service, policies] pairs, where policies is the response from the\n     * /terms endpoint for that service\n     */\n    policiesAndServicePairs: ServicePolicyPair[];\n\n    /**\n     * urls that the user has already agreed to\n     */\n    agreedUrls: string[];\n\n    /**\n     * Called with:\n     *     * success {bool} True if the user accepted any douments, false if cancelled\n     *     * agreedUrls {string[]} List of agreed URLs\n     */\n    onFinished: (success: boolean, agreedUrls?: string[]) => void;\n}\n\ninterface IState {\n    agreedUrls: any;\n}\n\nexport default class TermsDialog extends React.PureComponent<ITermsDialogProps, IState> {\n    public constructor(props: ITermsDialogProps) {\n        super(props);\n        this.state = {\n            // url -> boolean\n            agreedUrls: {},\n        };\n        for (const url of props.agreedUrls) {\n            this.state.agreedUrls[url] = true;\n        }\n    }\n\n    private onCancelClick = (): void => {\n        this.props.onFinished(false);\n    };\n\n    private onNextClick = (): void => {\n        this.props.onFinished(\n            true,\n            Object.keys(this.state.agreedUrls).filter((url) => this.state.agreedUrls[url]),\n        );\n    };\n\n    private nameForServiceType(serviceType: SERVICE_TYPES, host: string): JSX.Element {\n        switch (serviceType) {\n            case SERVICE_TYPES.IS:\n                return (\n                    <div>\n                        {_t(\"common|identity_server\")}\n                        <br />({host})\n                    </div>\n                );\n            case SERVICE_TYPES.IM:\n                return (\n                    <div>\n                        {_t(\"common|integration_manager\")}\n                        <br />({host})\n                    </div>\n                );\n        }\n    }\n\n    private summaryForServiceType(serviceType: SERVICE_TYPES): JSX.Element {\n        switch (serviceType) {\n            case SERVICE_TYPES.IS:\n                return (\n                    <div>\n                        {_t(\"terms|summary_identity_server_1\")}\n                        <br />\n                        {_t(\"terms|summary_identity_server_2\")}\n                    </div>\n                );\n            case SERVICE_TYPES.IM:\n                return <div>{_t(\"terms|integration_manager\")}</div>;\n        }\n    }\n\n    private onTermsCheckboxChange = (url: string, checked: boolean): void => {\n        this.setState({\n            agreedUrls: Object.assign({}, this.state.agreedUrls, { [url]: checked }),\n        });\n    };\n\n    public render(): React.ReactNode {\n        const rows: JSX.Element[] = [];\n        for (const policiesAndService of this.props.policiesAndServicePairs) {\n            const parsedBaseUrl = parseUrl(policiesAndService.service.baseUrl);\n\n            const policyValues = Object.values(policiesAndService.policies);\n            for (let i = 0; i < policyValues.length; ++i) {\n                const internationalisedPolicy = pickBestPolicyLanguage(policyValues[i]);\n                if (!internationalisedPolicy) continue;\n                let serviceName: JSX.Element | undefined;\n                let summary: JSX.Element | undefined;\n                if (i === 0) {\n                    serviceName = this.nameForServiceType(policiesAndService.service.serviceType, parsedBaseUrl.host);\n                    summary = this.summaryForServiceType(policiesAndService.service.serviceType);\n                }\n\n                rows.push(\n                    <tr key={internationalisedPolicy.url}>\n                        <td className=\"mx_TermsDialog_service\">{serviceName}</td>\n                        <td className=\"mx_TermsDialog_summary\">{summary}</td>\n                        <td>\n                            <ExternalLink rel=\"noreferrer noopener\" target=\"_blank\" href={internationalisedPolicy.url}>\n                                {internationalisedPolicy.name}\n                            </ExternalLink>\n                        </td>\n                        <td>\n                            <TermsCheckbox\n                                url={internationalisedPolicy.url}\n                                onChange={this.onTermsCheckboxChange}\n                                checked={Boolean(this.state.agreedUrls[internationalisedPolicy.url])}\n                            />\n                        </td>\n                    </tr>,\n                );\n            }\n        }\n\n        // if all the documents for at least one service have been checked, we can enable\n        // the submit button\n        let enableSubmit = false;\n        for (const policiesAndService of this.props.policiesAndServicePairs) {\n            let docsAgreedForService = 0;\n            for (const terms of Object.values(policiesAndService.policies)) {\n                let docAgreed = false;\n                for (const lang of Object.keys(terms)) {\n                    if (lang === \"version\" || typeof terms[lang] === \"string\") continue;\n                    if (this.state.agreedUrls[terms[lang].url]) {\n                        docAgreed = true;\n                        break;\n                    }\n                }\n                if (docAgreed) {\n                    ++docsAgreedForService;\n                }\n            }\n            if (docsAgreedForService === Object.keys(policiesAndService.policies).length) {\n                enableSubmit = true;\n                break;\n            }\n        }\n\n        return (\n            <BaseDialog\n                fixedWidth={false}\n                onFinished={this.onCancelClick}\n                title={_t(\"terms|tos\")}\n                contentId=\"mx_Dialog_content\"\n                hasCancel={false}\n            >\n                <div id=\"mx_Dialog_content\">\n                    <p>{_t(\"terms|intro\")}</p>\n\n                    <table className=\"mx_TermsDialog_termsTable\">\n                        <tbody>\n                            <tr className=\"mx_TermsDialog_termsTableHeader\">\n                                <th>{_t(\"terms|column_service\")}</th>\n                                <th>{_t(\"terms|column_summary\")}</th>\n                                <th>{_t(\"terms|column_document\")}</th>\n                                <th>{_t(\"action|accept\")}</th>\n                            </tr>\n                            {rows}\n                        </tbody>\n                    </table>\n                </div>\n\n                <DialogButtons\n                    primaryButton={_t(\"action|next\")}\n                    hasCancel={true}\n                    onCancel={this.onCancelClick}\n                    onPrimaryButtonClick={this.onNextClick}\n                    primaryDisabled={!enableSubmit}\n                />\n            </BaseDialog>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport classNames from \"classnames\";\nimport {\n    type SERVICE_TYPES,\n    type MatrixClient,\n    type Terms,\n    type Policy,\n    type InternationalisedPolicy,\n} from \"matrix-js-sdk/src/matrix\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport Modal from \"./Modal\";\nimport TermsDialog from \"./components/views/dialogs/TermsDialog\";\nimport { pickBestLanguage } from \"./i18n/utils\";\n\nexport class TermsNotSignedError extends Error {}\n\n/**\n * Class representing a service that may have terms & conditions that\n * require agreement from the user before the user can use that service.\n */\nexport class Service {\n    /**\n     * @param {MatrixClient.SERVICE_TYPES} serviceType The type of service\n     * @param {string} baseUrl The Base URL of the service (ie. before '/_matrix')\n     * @param {string} accessToken The user's access token for the service\n     */\n    public constructor(\n        public serviceType: SERVICE_TYPES,\n        public baseUrl: string,\n        public accessToken: string,\n    ) {}\n}\n\nexport type ServicePolicyPair = {\n    policies: Terms[\"policies\"];\n    service: Service;\n};\n\nexport type TermsInteractionCallback = (\n    policiesAndServicePairs: ServicePolicyPair[],\n    agreedUrls: string[],\n    extraClassNames?: string,\n) => Promise<string[]>;\n\nexport function pickBestPolicyLanguage(policy: Policy): InternationalisedPolicy | undefined {\n    const termsLang = pickBestLanguage(Object.keys(policy).filter((k) => k !== \"version\"));\n    return <InternationalisedPolicy>policy[termsLang];\n}\n\n/**\n * Start a flow where the user is presented with terms & conditions for some services\n *\n * @param client The Matrix Client instance of the logged-in user\n * @param {Service[]} services Object with keys 'serviceType', 'baseUrl', 'accessToken'\n * @param {function} interactionCallback Function called with:\n *      * an array of { service: {Service}, policies: {terms response from API} }\n *      * an array of URLs the user has already agreed to\n *     Must return a Promise which resolves with a list of URLs of documents agreed to\n * @returns {Promise} resolves when the user agreed to all necessary terms or rejects\n *     if they cancel.\n */\nexport async function startTermsFlow(\n    client: MatrixClient,\n    services: Service[],\n    interactionCallback: TermsInteractionCallback = dialogTermsInteractionCallback,\n): Promise<void> {\n    const termsPromises = services.map((s) => client.getTerms(s.serviceType, s.baseUrl));\n\n    /*\n     * a /terms response looks like:\n     * {\n     *     \"policies\": {\n     *         \"terms_of_service\": {\n     *             \"version\": \"2.0\",\n     *              \"en\": {\n     *                 \"name\": \"Terms of Service\",\n     *                 \"url\": \"https://example.org/somewhere/terms-2.0-en.html\"\n     *             },\n     *             \"fr\": {\n     *                 \"name\": \"Conditions d'utilisation\",\n     *                 \"url\": \"https://example.org/somewhere/terms-2.0-fr.html\"\n     *             }\n     *         }\n     *     }\n     * }\n     */\n\n    const terms: Terms[] = await Promise.all(termsPromises);\n    const policiesAndServicePairs = terms.map((t, i) => {\n        return { service: services[i], policies: t.policies };\n    });\n\n    // fetch the set of agreed policy URLs from account data\n    const currentAcceptedTerms = client.getAccountData(\"m.accepted_terms\")?.getContent();\n    const agreedUrlSet = new Set<string>(currentAcceptedTerms?.accepted || []);\n\n    // remove any policies the user has already agreed to and any services where\n    // they've already agreed to all the policies\n    // NB. it could be nicer to show the user stuff they've already agreed to,\n    // but then they'd assume they can un-check the boxes to un-agree to a policy,\n    // but that is not a thing the API supports, so probably best to just show\n    // things they've not agreed to yet.\n    const unagreedPoliciesAndServicePairs: ServicePolicyPair[] = [];\n    for (const { service, policies } of policiesAndServicePairs) {\n        const unagreedPolicies: Terms[\"policies\"] = {};\n        for (const [policyName, policy] of Object.entries(policies)) {\n            let policyAgreed = false;\n            for (const lang of Object.keys(policy)) {\n                if (lang === \"version\" || typeof policy[lang] === \"string\") continue;\n                if (agreedUrlSet.has(policy[lang].url)) {\n                    policyAgreed = true;\n                    break;\n                }\n            }\n            if (!policyAgreed) unagreedPolicies[policyName] = policy;\n        }\n        if (Object.keys(unagreedPolicies).length > 0) {\n            unagreedPoliciesAndServicePairs.push({ service, policies: unagreedPolicies });\n        }\n    }\n\n    // if there's anything left to agree to, prompt the user\n    const numAcceptedBeforeAgreement = agreedUrlSet.size;\n    if (unagreedPoliciesAndServicePairs.length > 0) {\n        const newlyAgreedUrls = await interactionCallback(unagreedPoliciesAndServicePairs, [...agreedUrlSet]);\n        logger.log(\"User has agreed to URLs\", newlyAgreedUrls);\n        // Merge with previously agreed URLs\n        newlyAgreedUrls.forEach((url) => agreedUrlSet.add(url));\n    } else {\n        logger.log(\"User has already agreed to all required policies\");\n    }\n\n    // We only ever add to the set of URLs, so if anything has changed then we'd see a different length\n    if (agreedUrlSet.size !== numAcceptedBeforeAgreement) {\n        const newAcceptedTerms = { accepted: Array.from(agreedUrlSet) };\n        await client.setAccountData(\"m.accepted_terms\", newAcceptedTerms);\n    }\n\n    const agreePromises = policiesAndServicePairs.map((policiesAndService) => {\n        // filter the agreed URL list for ones that are actually for this service\n        // (one URL may be used for multiple services)\n        // Not a particularly efficient loop but probably fine given the numbers involved\n        const urlsForService = Array.from(agreedUrlSet).filter((url) => {\n            for (const policy of Object.values(policiesAndService.policies)) {\n                for (const lang of Object.keys(policy)) {\n                    if (lang === \"version\" || typeof policy[lang] === \"string\") continue;\n                    if (policy[lang].url === url) return true;\n                }\n            }\n            return false;\n        });\n\n        if (urlsForService.length === 0) return Promise.resolve();\n\n        return client.agreeToTerms(\n            policiesAndService.service.serviceType,\n            policiesAndService.service.baseUrl,\n            policiesAndService.service.accessToken,\n            urlsForService,\n        );\n    });\n    await Promise.all(agreePromises);\n}\n\nexport async function dialogTermsInteractionCallback(\n    policiesAndServicePairs: {\n        service: Service;\n        policies: { [policy: string]: Policy };\n    }[],\n    agreedUrls: string[],\n    extraClassNames?: string,\n): Promise<string[]> {\n    logger.log(\"Terms that need agreement\", policiesAndServicePairs);\n\n    const { finished } = Modal.createDialog(\n        TermsDialog,\n        {\n            policiesAndServicePairs,\n            agreedUrls,\n        },\n        classNames(\"mx_TermsDialog\", extraClassNames),\n    );\n\n    const [done, _agreedUrls] = await finished;\n    if (!done || !_agreedUrls) {\n        throw new TermsNotSignedError();\n    }\n    return _agreedUrls;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/**\n * Constants for MatrixChat.state.view.\n *\n * The `View` is the primary state machine of the application: it has different states for the various setup flows\n * that the user may find themselves in. Once we have a functioning client, we can transition to the `LOGGED_IN` state\n * which is the \"normal\" state of the application.\n *\n * An incomplete state transition diagram follows.\n *\n *                      (initial state)\n *                    ┌─────────────────┐ Lock held by other instance  ┌─────────────────┐\n *                    │    LOADING      │─────────────────────────────►│ CONFIRM_LOCK_   │\n *                    │                 │◄─────────────────────────────│     THEFT       │\n *                    └─────────────────┘ Lock theft confirmed         └─────────────────┘\n *     Session recovered │     │      │                                           Token/OIDC login succeeded\n *        ┌──────────────┘     │      └──────────────────────────────────────────────────────────────────┐\n *        │                    └───────────────────────────────────────────┐                             │\n *        │                                                                │ No previous session         │\n *        │                                                                ▼                             │\n *        │          (from all other states    Client logged out   ┌─────────────────┐                   │\n *        │            except LOCK_STOLEN)  ──────────────────────►│     WELCOME     │                   │\n *        │                                                        │                 │                   │\n *        │                                                        └─────────────────┘                   │\n *        │                                                               │   │                          │\n *        │                                                     \"Sign in\" │   │ \"Create account\"         │\n *        │                                                  ┌────────────┘   └──────────────┐           │\n *        │                                                  │                               │           │\n *        │                       \"Forgot                    ▼       \"Create an              ▼           │\n *        │   ┌─────────────────┐  password\"     ┌─────────────────┐   account\"     ┌─────────────────┐  │\n *        │   │ FORGOT_PASSWORD │◄───────────────│      LOGIN      │───────────────►│     REGISTER    │  │\n *        │   │                 │───────────────►│                 │◄───────────────│                 │  │\n *        │   └─────────────────┘ Complete /     └─────────────────┘ \"Sign in here\" └─────────────────┘  │\n *        │            ▲        \"Sign in instead\"        │                                   │           │\n *        │            │                                 └──────────────────────┐  ┌─────────┘           │\n *        │            │\"Forgotten your                                         │  │  ┌──────────────────┘\n *        │            │ password?\"                                             │  │  │\n *        │            │                                                        │  │  │\n *        │   ┌─────────────────┐ Soft-logout error                             │  │  │\n *        │   │  SOFT_LOGOUT    │◄───────────── (from all other states          │  │  │\n *        │   │                 │                except LOCK_STOLEN)            │  │  │\n *        │   └─────────────────┘                                               │  │  │\n *        │         │ Re-authentication succeeded                               ▼  ▼  ▼\n *        │         │                                                    ┌──────────────────┐\n *        ▼         ▼                                                    │ (postLoginSetup) │\n *     ┌─────────────────┐                                               └──────────────────┘\n *     │ PENDING_CLIENT_ │                                      Account has │     │      │ Account lacks\n *     │     START       │                                    cross-signing │     │      │ cross-signing\n *     └─────────────────┘                                           keys   │     │      │ keys\n *        │          │                                                      │     │      │\n *        │          └───────────────────────────────┐                      │     │      │\n *        │            Client started,               │                      │     │      └──────┐\n *        │            force_verification pending    │                      │     │             │\n *        │                                          ▼                      │     │             │\n *        │ Client started,                 ┌─────────────────┐             │     │             │\n *        │ force_verification              │  COMPLETE_      │◄────────────┘     │             ▼\n *        │ not needed                      │      SECURITY   │                   │      ┌─────────────────┐\n *        │                                 └─────────────────┘                   │      │   E2E_SETUP     │\n *        │                                          │                            │      │                 │\n *        │    ┌─────────────────────────────────────┘           E2EE not enabled │      └─────────────────┘\n *        │    │    ┌─────────────────────────────────────────────────────────────┘              │\n *        │    │    │     ┌──────────────────────────────────────────────────────────────────────┘\n *        │    │    │     │\n *        │    │    │     │\n *        │    │    │     │\n *        │    │    │     │\n *        ▼    ▼    ▼     ▼\n *       ┌─────────────────┐\n *       │   LOGGED_IN     │\n *       │                 │\n *       └─────────────────┘\n *\n *       (from all other states)\n *                │\n *                │ Session lock stolen\n *                ▼\n *       ┌─────────────────┐\n *       │  LOCK_STOLEN    │\n *       │                 │\n *       └─────────────────┘\n */\nenum Views {\n    // a special initial state which is only used at startup, while we are\n    // trying to re-animate a matrix client or register as a guest.\n    LOADING,\n\n    // Another tab holds the lock.\n    CONFIRM_LOCK_THEFT,\n\n    // we are showing the welcome view\n    WELCOME,\n\n    // we are showing the login view\n    LOGIN,\n\n    // we are showing the registration view\n    REGISTER,\n\n    // showing the 'forgot password' view\n    FORGOT_PASSWORD,\n\n    // showing flow to trust this new device with cross-signing\n    COMPLETE_SECURITY,\n\n    // flow to setup SSSS / cross-signing on this account\n    E2E_SETUP,\n\n    /**\n     * We have successfully recovered a session from localstorage, but the client\n     * has not yet been started.\n     */\n    PENDING_CLIENT_START,\n\n    // we are logged in with an active matrix client. The logged_in state also\n    // includes guests users as they too are logged in at the client level.\n    LOGGED_IN,\n\n    // We are logged out (invalid token) but have our local state again. The user\n    // should log back in to rehydrate the client.\n    SOFT_LOGOUT,\n\n    // Another instance of the application has started up. We just show an error page.\n    LOCK_STOLEN,\n}\n\nexport default Views;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type KeyCombo } from \"../KeyBindingsManager\";\nimport { IS_MAC, Key } from \"../Keyboard\";\nimport { _t, _td } from \"../languageHandler\";\nimport PlatformPeg from \"../PlatformPeg\";\nimport SettingsStore from \"../settings/SettingsStore\";\nimport {\n    DESKTOP_SHORTCUTS,\n    DIGITS,\n    type IKeyboardShortcuts,\n    KeyBindingAction,\n    KEYBOARD_SHORTCUTS,\n    type KeyboardShortcutSetting,\n    MAC_ONLY_SHORTCUTS,\n} from \"./KeyboardShortcuts\";\n\n/**\n * This function gets the keyboard shortcuts that should be presented in the UI\n * but they shouldn't be consumed by KeyBindingDefaults. That means that these\n * have to be manually mirrored in KeyBindingDefaults.\n */\nconst getUIOnlyShortcuts = (): IKeyboardShortcuts => {\n    const ctrlEnterToSend = SettingsStore.getValue(\"MessageComposerInput.ctrlEnterToSend\");\n\n    const keyboardShortcuts: IKeyboardShortcuts = {\n        [KeyBindingAction.SendMessage]: {\n            default: {\n                key: Key.ENTER,\n                ctrlOrCmdKey: ctrlEnterToSend,\n            },\n            displayName: _td(\"composer|send_button_title\"),\n        },\n        [KeyBindingAction.NewLine]: {\n            default: {\n                key: Key.ENTER,\n                shiftKey: !ctrlEnterToSend,\n            },\n            displayName: _td(\"keyboard|composer_new_line\"),\n        },\n        [KeyBindingAction.CompleteAutocomplete]: {\n            default: {\n                key: Key.ENTER,\n            },\n            displayName: _td(\"action|complete\"),\n        },\n        [KeyBindingAction.ForceCompleteAutocomplete]: {\n            default: {\n                key: Key.TAB,\n            },\n            displayName: _td(\"keyboard|autocomplete_force\"),\n        },\n        [KeyBindingAction.SearchInRoom]: {\n            default: {\n                ctrlOrCmdKey: true,\n                key: Key.F,\n            },\n            displayName: _td(\"keyboard|search\"),\n        },\n    };\n\n    if (PlatformPeg.get()?.overrideBrowserShortcuts()) {\n        // XXX: This keyboard shortcut isn't manually added to\n        // KeyBindingDefaults as it can't be easily handled by the\n        // KeyBindingManager\n        keyboardShortcuts[KeyBindingAction.SwitchToSpaceByNumber] = {\n            default: {\n                ctrlOrCmdKey: true,\n                key: DIGITS,\n            },\n            displayName: _td(\"keyboard|switch_to_space\"),\n        };\n    }\n\n    return keyboardShortcuts;\n};\n\n/**\n * This function gets keyboard shortcuts that can be consumed by the KeyBindingDefaults.\n */\nexport const getKeyboardShortcuts = (): IKeyboardShortcuts => {\n    const overrideBrowserShortcuts = PlatformPeg.get()?.overrideBrowserShortcuts();\n\n    return (Object.keys(KEYBOARD_SHORTCUTS) as KeyBindingAction[])\n        .filter((k) => {\n            if (KEYBOARD_SHORTCUTS[k]?.controller?.settingDisabled) return false;\n            if (MAC_ONLY_SHORTCUTS.includes(k) && !IS_MAC) return false;\n            if (DESKTOP_SHORTCUTS.includes(k) && !overrideBrowserShortcuts) return false;\n\n            return true;\n        })\n        .reduce((o, key) => {\n            o[key as KeyBindingAction] = KEYBOARD_SHORTCUTS[key as KeyBindingAction];\n            return o;\n        }, {} as IKeyboardShortcuts);\n};\n\n/**\n * Gets keyboard shortcuts that should be presented to the user in the UI.\n * @knipignore - exported for tests\n */\nexport const getKeyboardShortcutsForUI = (): IKeyboardShortcuts => {\n    const entries = [...Object.entries(getUIOnlyShortcuts()), ...Object.entries(getKeyboardShortcuts())] as [\n        KeyBindingAction,\n        KeyboardShortcutSetting,\n    ][];\n\n    return entries.reduce((acc, [key, value]) => {\n        acc[key] = value;\n        return acc;\n    }, {} as IKeyboardShortcuts);\n};\n\nexport const getKeyboardShortcutValue = (name: KeyBindingAction): KeyCombo | undefined => {\n    return getKeyboardShortcutsForUI()[name]?.default;\n};\n\nexport const getKeyboardShortcutDisplayName = (name: KeyBindingAction): string | undefined => {\n    const keyboardShortcutDisplayName = getKeyboardShortcutsForUI()[name]?.displayName;\n    return keyboardShortcutDisplayName && _t(keyboardShortcutDisplayName);\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\nCopyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// Import i18n.tsx instead of languageHandler to avoid circular deps\nimport { _td } from \"@element-hq/web-shared-components\";\n\nimport { IS_MAC, IS_ELECTRON, Key } from \"../Keyboard\";\nimport { type IBaseSetting } from \"../settings/Settings\";\nimport { type KeyCombo } from \"../KeyBindingsManager\";\n\nexport enum KeyBindingAction {\n    /** Send a message */\n    SendMessage = \"KeyBinding.sendMessageInComposer\",\n    /** Go backwards through the send history and use the message in composer view */\n    SelectPrevSendHistory = \"KeyBinding.previousMessageInComposerHistory\",\n    /** Go forwards through the send history */\n    SelectNextSendHistory = \"KeyBinding.nextMessageInComposerHistory\",\n    /** Start editing the user's last sent message */\n    EditPrevMessage = \"KeyBinding.editPreviousMessage\",\n    /** Start editing the user's next sent message */\n    EditNextMessage = \"KeyBinding.editNextMessage\",\n    /** Cancel editing a message or cancel replying to a message */\n    CancelReplyOrEdit = \"KeyBinding.cancelReplyInComposer\",\n    /** Show the sticker picker */\n    ShowStickerPicker = \"KeyBinding.showStickerPicker\",\n\n    /** Set bold format the current selection */\n    FormatBold = \"KeyBinding.toggleBoldInComposer\",\n    /** Set italics format the current selection */\n    FormatItalics = \"KeyBinding.toggleItalicsInComposer\",\n    /** Insert link for current selection */\n    FormatLink = \"KeyBinding.FormatLink\",\n    /** Set code format for current selection */\n    FormatCode = \"KeyBinding.FormatCode\",\n    /** Format the current selection as quote */\n    FormatQuote = \"KeyBinding.toggleQuoteInComposer\",\n    /** Undo the last editing */\n    EditUndo = \"KeyBinding.editUndoInComposer\",\n    /** Redo editing */\n    EditRedo = \"KeyBinding.editRedoInComposer\",\n    /** Insert new line */\n    NewLine = \"KeyBinding.newLineInComposer\",\n    /** Move the cursor to the start of the message */\n    MoveCursorToStart = \"KeyBinding.jumpToStartInComposer\",\n    /** Move the cursor to the end of the message */\n    MoveCursorToEnd = \"KeyBinding.jumpToEndInComposer\",\n\n    /** Accepts chosen autocomplete selection */\n    CompleteAutocomplete = \"KeyBinding.completeAutocomplete\",\n    /** Accepts chosen autocomplete selection or,\n     * if the autocompletion window is not shown, open the window and select the first selection */\n    ForceCompleteAutocomplete = \"KeyBinding.forceCompleteAutocomplete\",\n    /** Move to the previous autocomplete selection */\n    PrevSelectionInAutocomplete = \"KeyBinding.previousOptionInAutoComplete\",\n    /** Move to the next autocomplete selection */\n    NextSelectionInAutocomplete = \"KeyBinding.nextOptionInAutoComplete\",\n    /** Close the autocompletion window */\n    CancelAutocomplete = \"KeyBinding.cancelAutoComplete\",\n\n    /** Clear room list filter field */\n    ClearRoomFilter = \"KeyBinding.clearRoomFilter\",\n    /** Navigate up/down in the room list */\n    PrevRoom = \"KeyBinding.downerRoom\",\n    /** Navigate down in the room list */\n    NextRoom = \"KeyBinding.upperRoom\",\n    /** Select room from the room list */\n    SelectRoomInRoomList = \"KeyBinding.selectRoomInRoomList\",\n    /** Collapse room list section */\n    CollapseRoomListSection = \"KeyBinding.collapseSectionInRoomList\",\n    /** Expand room list section, if already expanded, jump to first room in the selection */\n    ExpandRoomListSection = \"KeyBinding.expandSectionInRoomList\",\n\n    /** Scroll up in the timeline */\n    ScrollUp = \"KeyBinding.scrollUpInTimeline\",\n    /** Scroll down in the timeline */\n    ScrollDown = \"KeyBinding.scrollDownInTimeline\",\n    /** Dismiss read marker and jump to bottom */\n    DismissReadMarker = \"KeyBinding.dismissReadMarkerAndJumpToBottom\",\n    /** Jump to oldest unread message */\n    JumpToOldestUnread = \"KeyBinding.jumpToOldestUnreadMessage\",\n    /** Upload a file */\n    UploadFile = \"KeyBinding.uploadFileToRoom\",\n    /** Focus search message in a room (must be enabled) */\n    SearchInRoom = \"KeyBinding.searchInRoom\",\n    /** Jump to the first (downloaded) message in the room */\n    JumpToFirstMessage = \"KeyBinding.jumpToFirstMessageInTimeline\",\n    /** Jump to the latest message in the room */\n    JumpToLatestMessage = \"KeyBinding.jumpToLastMessageInTimeline\",\n\n    /** Jump to room search (search for a room) */\n    FilterRooms = \"KeyBinding.filterRooms\",\n    /** Toggle the space panel */\n    ToggleSpacePanel = \"KeyBinding.toggleSpacePanel\",\n    /** Toggle the room side panel */\n    ToggleRoomSidePanel = \"KeyBinding.toggleRightPanel\",\n    /** Toggle the user menu */\n    ToggleUserMenu = \"KeyBinding.toggleTopLeftMenu\",\n    /** Toggle the short cut help dialog */\n    ShowKeyboardSettings = \"KeyBinding.showKeyBindingsSettings\",\n    /** Got to the Element home screen */\n    GoToHome = \"KeyBinding.goToHomeView\",\n    /** Select prev room */\n    SelectPrevRoom = \"KeyBinding.previousRoom\",\n    /** Select next room */\n    SelectNextRoom = \"KeyBinding.nextRoom\",\n    /** Select prev room with unread messages */\n    SelectPrevUnreadRoom = \"KeyBinding.previousUnreadRoom\",\n    /** Select next room with unread messages */\n    SelectNextUnreadRoom = \"KeyBinding.nextUnreadRoom\",\n\n    /** Switches to a space by number */\n    SwitchToSpaceByNumber = \"KeyBinding.switchToSpaceByNumber\",\n    /** Opens user settings */\n    OpenUserSettings = \"KeyBinding.openUserSettings\",\n    /** Navigates backward */\n    PreviousVisitedRoomOrSpace = \"KeyBinding.PreviousVisitedRoomOrSpace\",\n    /** Navigates forward */\n    NextVisitedRoomOrSpace = \"KeyBinding.NextVisitedRoomOrSpace\",\n    /** Navigates to the next Landmark */\n    NextLandmark = \"KeyBinding.nextLandmark\",\n    /** Navigates to the next Landmark */\n    PreviousLandmark = \"KeyBinding.previousLandmark\",\n\n    /** Toggles microphone while on a call */\n    ToggleMicInCall = \"KeyBinding.toggleMicInCall\",\n    /** Toggles webcam while on a call */\n    ToggleWebcamInCall = \"KeyBinding.toggleWebcamInCall\",\n\n    /** Accessibility actions */\n    Escape = \"KeyBinding.escape\",\n    Enter = \"KeyBinding.enter\",\n    Space = \"KeyBinding.space\",\n    Backspace = \"KeyBinding.backspace\",\n    Delete = \"KeyBinding.delete\",\n    Home = \"KeyBinding.home\",\n    End = \"KeyBinding.end\",\n    ArrowLeft = \"KeyBinding.arrowLeft\",\n    ArrowUp = \"KeyBinding.arrowUp\",\n    ArrowRight = \"KeyBinding.arrowRight\",\n    ArrowDown = \"KeyBinding.arrowDown\",\n    Tab = \"KeyBinding.tab\",\n    Comma = \"KeyBinding.comma\",\n    Save = \"KeyBinding.save\",\n\n    /** Toggle visibility of hidden events */\n    ToggleHiddenEventVisibility = \"KeyBinding.toggleHiddenEventVisibility\",\n}\n\nexport type KeyboardShortcutSetting = Omit<IBaseSetting<KeyCombo>, \"supportedLevels\" | \"displayName\"> & {\n    displayName?: TranslationKey;\n};\n\n// TODO: We should figure out what to do with the keyboard shortcuts that are not handled by KeybindingManager\nexport type IKeyboardShortcuts = Partial<Record<KeyBindingAction, KeyboardShortcutSetting>>;\n\nexport interface ICategory {\n    categoryLabel?: TranslationKey;\n    // TODO: We should figure out what to do with the keyboard shortcuts that are not handled by KeybindingManager\n    settingNames: KeyBindingAction[];\n}\n\nexport enum CategoryName {\n    NAVIGATION = \"Navigation\",\n    ACCESSIBILITY = \"Accessibility\",\n    CALLS = \"Calls\",\n    COMPOSER = \"Composer\",\n    ROOM_LIST = \"Room List\",\n    ROOM = \"Room\",\n    AUTOCOMPLETE = \"Autocomplete\",\n    LABS = \"Labs\",\n}\n\n// Meta-key representing the digits [0-9] often found at the top of standard keyboard layouts\nexport const DIGITS = \"digits\";\n\nexport const ALTERNATE_KEY_NAME: Record<string, TranslationKey> = {\n    [Key.PAGE_UP]: _td(\"keyboard|page_up\"),\n    [Key.PAGE_DOWN]: _td(\"keyboard|page_down\"),\n    [Key.ESCAPE]: _td(\"keyboard|escape\"),\n    [Key.ENTER]: _td(\"keyboard|enter\"),\n    [Key.SPACE]: _td(\"keyboard|space\"),\n    [Key.HOME]: _td(\"keyboard|home\"),\n    [Key.END]: _td(\"keyboard|end\"),\n    [Key.ALT]: _td(\"keyboard|alt\"),\n    [Key.CONTROL]: _td(\"keyboard|control\"),\n    [Key.SHIFT]: _td(\"keyboard|shift\"),\n    [DIGITS]: _td(\"keyboard|number\"),\n};\nexport const KEY_ICON: Record<string, string> = {\n    [Key.ARROW_UP]: \"↑\",\n    [Key.ARROW_DOWN]: \"↓\",\n    [Key.ARROW_LEFT]: \"←\",\n    [Key.ARROW_RIGHT]: \"→\",\n};\nif (IS_MAC) {\n    KEY_ICON[Key.META] = \"⌘\";\n    KEY_ICON[Key.ALT] = \"⌥\";\n    KEY_ICON[Key.SHIFT] = \"⇧\";\n}\n\nexport const CATEGORIES: Record<CategoryName, ICategory> = {\n    [CategoryName.COMPOSER]: {\n        categoryLabel: _td(\"settings|preferences|composer_heading\"),\n        settingNames: [\n            KeyBindingAction.SendMessage,\n            KeyBindingAction.NewLine,\n            KeyBindingAction.FormatBold,\n            KeyBindingAction.FormatItalics,\n            KeyBindingAction.FormatQuote,\n            KeyBindingAction.FormatLink,\n            KeyBindingAction.FormatCode,\n            KeyBindingAction.EditUndo,\n            KeyBindingAction.EditRedo,\n            KeyBindingAction.MoveCursorToStart,\n            KeyBindingAction.MoveCursorToEnd,\n            KeyBindingAction.CancelReplyOrEdit,\n            KeyBindingAction.EditNextMessage,\n            KeyBindingAction.EditPrevMessage,\n            KeyBindingAction.SelectNextSendHistory,\n            KeyBindingAction.SelectPrevSendHistory,\n            KeyBindingAction.ShowStickerPicker,\n        ],\n    },\n    [CategoryName.CALLS]: {\n        categoryLabel: _td(\"keyboard|category_calls\"),\n        settingNames: [KeyBindingAction.ToggleMicInCall, KeyBindingAction.ToggleWebcamInCall],\n    },\n    [CategoryName.ROOM]: {\n        categoryLabel: _td(\"common|room\"),\n        settingNames: [\n            KeyBindingAction.SearchInRoom,\n            KeyBindingAction.UploadFile,\n            KeyBindingAction.DismissReadMarker,\n            KeyBindingAction.JumpToOldestUnread,\n            KeyBindingAction.ScrollUp,\n            KeyBindingAction.ScrollDown,\n            KeyBindingAction.JumpToFirstMessage,\n            KeyBindingAction.JumpToLatestMessage,\n        ],\n    },\n    [CategoryName.ROOM_LIST]: {\n        categoryLabel: _td(\"keyboard|category_room_list\"),\n        settingNames: [\n            KeyBindingAction.SelectRoomInRoomList,\n            KeyBindingAction.ClearRoomFilter,\n            KeyBindingAction.CollapseRoomListSection,\n            KeyBindingAction.ExpandRoomListSection,\n            KeyBindingAction.NextRoom,\n            KeyBindingAction.PrevRoom,\n        ],\n    },\n    [CategoryName.ACCESSIBILITY]: {\n        categoryLabel: _td(\"common|accessibility\"),\n        settingNames: [\n            KeyBindingAction.Escape,\n            KeyBindingAction.Enter,\n            KeyBindingAction.Space,\n            KeyBindingAction.Backspace,\n            KeyBindingAction.Delete,\n            KeyBindingAction.Home,\n            KeyBindingAction.End,\n            KeyBindingAction.ArrowLeft,\n            KeyBindingAction.ArrowUp,\n            KeyBindingAction.ArrowRight,\n            KeyBindingAction.ArrowDown,\n            KeyBindingAction.Comma,\n            KeyBindingAction.Save,\n        ],\n    },\n    [CategoryName.NAVIGATION]: {\n        categoryLabel: _td(\"keyboard|category_navigation\"),\n        settingNames: [\n            KeyBindingAction.ToggleUserMenu,\n            KeyBindingAction.ToggleRoomSidePanel,\n            KeyBindingAction.ToggleSpacePanel,\n            KeyBindingAction.ShowKeyboardSettings,\n            KeyBindingAction.GoToHome,\n            KeyBindingAction.FilterRooms,\n            KeyBindingAction.SelectNextUnreadRoom,\n            KeyBindingAction.SelectPrevUnreadRoom,\n            KeyBindingAction.SelectNextRoom,\n            KeyBindingAction.SelectPrevRoom,\n            KeyBindingAction.OpenUserSettings,\n            KeyBindingAction.SwitchToSpaceByNumber,\n            KeyBindingAction.PreviousVisitedRoomOrSpace,\n            KeyBindingAction.NextVisitedRoomOrSpace,\n            KeyBindingAction.NextLandmark,\n            KeyBindingAction.PreviousLandmark,\n        ],\n    },\n    [CategoryName.AUTOCOMPLETE]: {\n        categoryLabel: _td(\"keyboard|category_autocomplete\"),\n        settingNames: [\n            KeyBindingAction.CancelAutocomplete,\n            KeyBindingAction.NextSelectionInAutocomplete,\n            KeyBindingAction.PrevSelectionInAutocomplete,\n            KeyBindingAction.CompleteAutocomplete,\n            KeyBindingAction.ForceCompleteAutocomplete,\n        ],\n    },\n    [CategoryName.LABS]: {\n        categoryLabel: _td(\"common|labs\"),\n        settingNames: [KeyBindingAction.ToggleHiddenEventVisibility],\n    },\n};\n\nexport const DESKTOP_SHORTCUTS = [\n    KeyBindingAction.OpenUserSettings,\n    KeyBindingAction.SwitchToSpaceByNumber,\n    KeyBindingAction.PreviousVisitedRoomOrSpace,\n    KeyBindingAction.NextVisitedRoomOrSpace,\n];\n\nexport const MAC_ONLY_SHORTCUTS = [KeyBindingAction.OpenUserSettings];\n\n// This is very intentionally modelled after SETTINGS as it will make it easier\n// to implement customizable keyboard shortcuts\n// TODO: TravisR will fix this nightmare when the new version of the SettingsStore becomes a thing\n// XXX: Exported for tests\nexport const KEYBOARD_SHORTCUTS: IKeyboardShortcuts = {\n    [KeyBindingAction.FormatBold]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.B,\n        },\n        displayName: _td(\"keyboard|composer_toggle_bold\"),\n    },\n    [KeyBindingAction.FormatItalics]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.I,\n        },\n        displayName: _td(\"keyboard|composer_toggle_italics\"),\n    },\n    [KeyBindingAction.FormatQuote]: {\n        default: {\n            ctrlOrCmdKey: true,\n            shiftKey: true,\n            key: Key.GREATER_THAN,\n        },\n        displayName: _td(\"keyboard|composer_toggle_quote\"),\n    },\n    [KeyBindingAction.FormatCode]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.E,\n        },\n        displayName: _td(\"keyboard|composer_toggle_code_block\"),\n    },\n    [KeyBindingAction.FormatLink]: {\n        default: {\n            ctrlOrCmdKey: true,\n            shiftKey: true,\n            key: Key.L,\n        },\n        displayName: _td(\"keyboard|composer_toggle_link\"),\n    },\n    [KeyBindingAction.CancelReplyOrEdit]: {\n        default: {\n            key: Key.ESCAPE,\n        },\n        displayName: _td(\"keyboard|cancel_reply\"),\n    },\n    [KeyBindingAction.EditNextMessage]: {\n        default: {\n            key: Key.ARROW_DOWN,\n        },\n        displayName: _td(\"keyboard|navigate_next_message_edit\"),\n    },\n    [KeyBindingAction.EditPrevMessage]: {\n        default: {\n            key: Key.ARROW_UP,\n        },\n        displayName: _td(\"keyboard|navigate_prev_message_edit\"),\n    },\n    [KeyBindingAction.MoveCursorToStart]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.HOME,\n        },\n        displayName: _td(\"keyboard|composer_jump_start\"),\n    },\n    [KeyBindingAction.MoveCursorToEnd]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.END,\n        },\n        displayName: _td(\"keyboard|composer_jump_end\"),\n    },\n    [KeyBindingAction.SelectNextSendHistory]: {\n        default: {\n            altKey: true,\n            ctrlKey: true,\n            key: Key.ARROW_DOWN,\n        },\n        displayName: _td(\"keyboard|composer_navigate_next_history\"),\n    },\n    [KeyBindingAction.SelectPrevSendHistory]: {\n        default: {\n            altKey: true,\n            ctrlKey: true,\n            key: Key.ARROW_UP,\n        },\n        displayName: _td(\"keyboard|composer_navigate_prev_history\"),\n    },\n    [KeyBindingAction.ShowStickerPicker]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.SEMICOLON,\n        },\n        displayName: _td(\"keyboard|send_sticker\"),\n    },\n    [KeyBindingAction.ToggleMicInCall]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.D,\n        },\n        displayName: _td(\"keyboard|toggle_microphone_mute\"),\n    },\n    [KeyBindingAction.ToggleWebcamInCall]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.E,\n        },\n        displayName: _td(\"keyboard|toggle_webcam_mute\"),\n    },\n    [KeyBindingAction.DismissReadMarker]: {\n        default: {\n            key: Key.ESCAPE,\n        },\n        displayName: _td(\"keyboard|dismiss_read_marker_and_jump_bottom\"),\n    },\n    [KeyBindingAction.JumpToOldestUnread]: {\n        default: {\n            shiftKey: true,\n            key: Key.PAGE_UP,\n        },\n        displayName: _td(\"keyboard|jump_to_read_marker\"),\n    },\n    [KeyBindingAction.UploadFile]: {\n        default: {\n            ctrlOrCmdKey: true,\n            shiftKey: true,\n            key: Key.U,\n        },\n        displayName: _td(\"keyboard|upload_file\"),\n    },\n    [KeyBindingAction.ScrollUp]: {\n        default: {\n            key: Key.PAGE_UP,\n        },\n        displayName: _td(\"keyboard|scroll_up_timeline\"),\n    },\n    [KeyBindingAction.ScrollDown]: {\n        default: {\n            key: Key.PAGE_DOWN,\n        },\n        displayName: _td(\"keyboard|scroll_down_timeline\"),\n    },\n    [KeyBindingAction.FilterRooms]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.K,\n        },\n        displayName: _td(\"keyboard|jump_room_search\"),\n    },\n    [KeyBindingAction.SelectRoomInRoomList]: {\n        default: {\n            key: Key.ENTER,\n        },\n        displayName: _td(\"keyboard|room_list_select_room\"),\n    },\n    [KeyBindingAction.CollapseRoomListSection]: {\n        default: {\n            key: Key.ARROW_LEFT,\n        },\n        displayName: _td(\"keyboard|room_list_collapse_section\"),\n    },\n    [KeyBindingAction.ExpandRoomListSection]: {\n        default: {\n            key: Key.ARROW_RIGHT,\n        },\n        displayName: _td(\"keyboard|room_list_expand_section\"),\n    },\n    [KeyBindingAction.NextRoom]: {\n        default: {\n            key: Key.ARROW_DOWN,\n        },\n        displayName: _td(\"keyboard|room_list_navigate_down\"),\n    },\n    [KeyBindingAction.PrevRoom]: {\n        default: {\n            key: Key.ARROW_UP,\n        },\n        displayName: _td(\"keyboard|room_list_navigate_up\"),\n    },\n    [KeyBindingAction.ToggleUserMenu]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.BACKTICK,\n        },\n        displayName: _td(\"keyboard|toggle_top_left_menu\"),\n    },\n    [KeyBindingAction.ToggleRoomSidePanel]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.PERIOD,\n        },\n        displayName: _td(\"keyboard|toggle_right_panel\"),\n    },\n    [KeyBindingAction.ShowKeyboardSettings]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: Key.SLASH,\n        },\n        displayName: _td(\"keyboard|keyboard_shortcuts_tab\"),\n    },\n    [KeyBindingAction.GoToHome]: {\n        default: {\n            ctrlKey: true,\n            altKey: !IS_MAC,\n            shiftKey: IS_MAC,\n            key: Key.H,\n        },\n        displayName: _td(\"keyboard|go_home_view\"),\n    },\n    [KeyBindingAction.SelectNextUnreadRoom]: {\n        default: {\n            shiftKey: true,\n            altKey: true,\n            key: Key.ARROW_DOWN,\n        },\n        displayName: _td(\"keyboard|next_unread_room\"),\n    },\n    [KeyBindingAction.SelectPrevUnreadRoom]: {\n        default: {\n            shiftKey: true,\n            altKey: true,\n            key: Key.ARROW_UP,\n        },\n        displayName: _td(\"keyboard|prev_unread_room\"),\n    },\n    [KeyBindingAction.SelectNextRoom]: {\n        default: {\n            altKey: true,\n            key: Key.ARROW_DOWN,\n        },\n        displayName: _td(\"keyboard|next_room\"),\n    },\n    [KeyBindingAction.SelectPrevRoom]: {\n        default: {\n            altKey: true,\n            key: Key.ARROW_UP,\n        },\n        displayName: _td(\"keyboard|prev_room\"),\n    },\n    [KeyBindingAction.CancelAutocomplete]: {\n        default: {\n            key: Key.ESCAPE,\n        },\n        displayName: _td(\"keyboard|autocomplete_cancel\"),\n    },\n    [KeyBindingAction.NextSelectionInAutocomplete]: {\n        default: {\n            key: Key.ARROW_DOWN,\n        },\n        displayName: _td(\"keyboard|autocomplete_navigate_next\"),\n    },\n    [KeyBindingAction.PrevSelectionInAutocomplete]: {\n        default: {\n            key: Key.ARROW_UP,\n        },\n        displayName: _td(\"keyboard|autocomplete_navigate_prev\"),\n    },\n    [KeyBindingAction.ToggleSpacePanel]: {\n        default: {\n            ctrlOrCmdKey: true,\n            shiftKey: true,\n            key: Key.D,\n        },\n        displayName: _td(\"keyboard|toggle_space_panel\"),\n    },\n    [KeyBindingAction.ToggleHiddenEventVisibility]: {\n        default: {\n            ctrlKey: true,\n            shiftKey: true,\n            key: Key.J,\n        },\n        displayName: _td(\"keyboard|toggle_hidden_events\"),\n    },\n    [KeyBindingAction.JumpToFirstMessage]: {\n        default: {\n            key: Key.HOME,\n            ctrlKey: true,\n        },\n        displayName: _td(\"keyboard|jump_first_message\"),\n    },\n    [KeyBindingAction.JumpToLatestMessage]: {\n        default: {\n            key: Key.END,\n            ctrlKey: true,\n        },\n        displayName: _td(\"keyboard|jump_last_message\"),\n    },\n    [KeyBindingAction.EditUndo]: {\n        default: {\n            key: Key.Z,\n            ctrlOrCmdKey: true,\n        },\n        displayName: _td(\"keyboard|composer_undo\"),\n    },\n    [KeyBindingAction.EditRedo]: {\n        default: {\n            key: IS_MAC ? Key.Z : Key.Y,\n            ctrlOrCmdKey: true,\n            shiftKey: IS_MAC,\n        },\n        displayName: _td(\"keyboard|composer_redo\"),\n    },\n    [KeyBindingAction.Save]: {\n        default: {\n            key: Key.S,\n            ctrlOrCmdKey: true,\n        },\n        displayName: _td(\"keyboard|save\"),\n    },\n    [KeyBindingAction.PreviousVisitedRoomOrSpace]: {\n        default: {\n            metaKey: IS_MAC,\n            altKey: !IS_MAC,\n            key: IS_MAC ? Key.SQUARE_BRACKET_LEFT : Key.ARROW_LEFT,\n        },\n        displayName: _td(\"keyboard|navigate_prev_history\"),\n    },\n    [KeyBindingAction.NextVisitedRoomOrSpace]: {\n        default: {\n            metaKey: IS_MAC,\n            altKey: !IS_MAC,\n            key: IS_MAC ? Key.SQUARE_BRACKET_RIGHT : Key.ARROW_RIGHT,\n        },\n        displayName: _td(\"keyboard|navigate_next_history\"),\n    },\n    [KeyBindingAction.SwitchToSpaceByNumber]: {\n        default: {\n            ctrlOrCmdKey: true,\n            key: DIGITS,\n        },\n        displayName: _td(\"keyboard|switch_to_space\"),\n    },\n    [KeyBindingAction.OpenUserSettings]: {\n        default: {\n            metaKey: true,\n            key: Key.COMMA,\n        },\n        displayName: _td(\"keyboard|open_user_settings\"),\n    },\n    [KeyBindingAction.Escape]: {\n        default: {\n            key: Key.ESCAPE,\n        },\n        displayName: _td(\"keyboard|close_dialog_menu\"),\n    },\n    [KeyBindingAction.Enter]: {\n        default: {\n            key: Key.ENTER,\n        },\n        displayName: _td(\"keyboard|activate_button\"),\n    },\n    [KeyBindingAction.Space]: {\n        default: {\n            key: Key.SPACE,\n        },\n    },\n    [KeyBindingAction.Backspace]: {\n        default: {\n            key: Key.BACKSPACE,\n        },\n    },\n    [KeyBindingAction.Delete]: {\n        default: {\n            key: Key.DELETE,\n        },\n    },\n    [KeyBindingAction.Home]: {\n        default: {\n            key: Key.HOME,\n        },\n    },\n    [KeyBindingAction.End]: {\n        default: {\n            key: Key.END,\n        },\n    },\n    [KeyBindingAction.ArrowLeft]: {\n        default: {\n            key: Key.ARROW_LEFT,\n        },\n    },\n    [KeyBindingAction.ArrowUp]: {\n        default: {\n            key: Key.ARROW_UP,\n        },\n    },\n    [KeyBindingAction.ArrowRight]: {\n        default: {\n            key: Key.ARROW_RIGHT,\n        },\n    },\n    [KeyBindingAction.ArrowDown]: {\n        default: {\n            key: Key.ARROW_DOWN,\n        },\n    },\n    [KeyBindingAction.Comma]: {\n        default: {\n            key: Key.COMMA,\n        },\n    },\n    [KeyBindingAction.NextLandmark]: {\n        default: {\n            ctrlOrCmdKey: !IS_ELECTRON,\n            key: Key.F6,\n        },\n        displayName: _td(\"keyboard|next_landmark\"),\n    },\n    [KeyBindingAction.PreviousLandmark]: {\n        default: {\n            ctrlOrCmdKey: !IS_ELECTRON,\n            key: Key.F6,\n            shiftKey: true,\n        },\n        displayName: _td(\"keyboard|prev_landmark\"),\n    },\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type JSX, type RefObject } from \"react\";\n\nimport AccessibleButton, { type ButtonProps } from \"../../components/views/elements/AccessibleButton\";\nimport { useRovingTabIndex } from \"../RovingTabIndex\";\n\ntype Props<T extends keyof HTMLElementTagNameMap> = Omit<ButtonProps<T>, \"tabIndex\"> & {\n    inputRef?: RefObject<HTMLElementTagNameMap[T] | null>;\n    focusOnMouseOver?: boolean;\n};\n\n// Wrapper to allow use of useRovingTabIndex for simple AccessibleButtons outside of React Functional Components.\nexport const RovingAccessibleButton = <T extends keyof HTMLElementTagNameMap>({\n    inputRef,\n    onFocus,\n    onMouseOver,\n    focusOnMouseOver,\n    ...props\n}: Props<T>): JSX.Element => {\n    const [onFocusInternal, isActive, ref] = useRovingTabIndex<HTMLElementTagNameMap[T]>(inputRef);\n    return (\n        <AccessibleButton\n            {...props}\n            onFocus={(event: React.FocusEvent<never, never>) => {\n                onFocusInternal();\n                onFocus?.(event);\n            }}\n            onMouseOver={(event: React.MouseEvent<never, never>) => {\n                if (focusOnMouseOver) onFocusInternal();\n                onMouseOver?.(event);\n            }}\n            ref={ref}\n            tabIndex={isActive ? 0 : -1}\n        />\n    );\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\nimport {\n    RovingAction,\n    RovingGridIndexProvider as SharedRovingGridIndexProvider,\n    type RovingGridIndexProviderProps,\n    RovingTabIndexProvider as SharedRovingTabIndexProvider,\n    type RovingTabIndexProviderProps,\n} from \"@element-hq/web-shared-components\";\n\nimport { getKeyBindingsManager } from \"../KeyBindingsManager\";\nimport { KeyBindingAction } from \"./KeyboardShortcuts\";\n\nexport { findNextSiblingElement, RovingTabIndexContext } from \"@element-hq/web-shared-components\";\nexport { checkInputableElement } from \"@element-hq/web-shared-components\";\nexport { RovingStateActionType } from \"@element-hq/web-shared-components\";\nexport { useRovingTabIndex } from \"@element-hq/web-shared-components\";\nexport type { IAction, IState } from \"@element-hq/web-shared-components\";\n\n/**\n * Module to simplify implementing the Roving TabIndex accessibility technique\n *\n * Wrap the Widget in an RovingTabIndexContextProvider\n * and then for all buttons make use of useRovingTabIndex or RovingTabIndexWrapper.\n * The code will keep track of which tabIndex was most recently focused and expose that information as `isActive` which\n * can then be used to only set the tabIndex to 0 as expected by the roving tabindex technique.\n * When the active button gets unmounted the closest button will be chosen as expected.\n * Initially the first button to mount will be given active state.\n *\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets#Technique_1_Roving_tabindex\n */\n\nconst getWebRovingAction = (ev: React.KeyboardEvent): RovingAction | undefined => {\n    switch (getKeyBindingsManager().getAccessibilityAction(ev)) {\n        case KeyBindingAction.Home:\n            return RovingAction.Home;\n        case KeyBindingAction.End:\n            return RovingAction.End;\n        case KeyBindingAction.ArrowLeft:\n            return RovingAction.ArrowLeft;\n        case KeyBindingAction.ArrowUp:\n            return RovingAction.ArrowUp;\n        case KeyBindingAction.ArrowRight:\n            return RovingAction.ArrowRight;\n        case KeyBindingAction.ArrowDown:\n            return RovingAction.ArrowDown;\n        case KeyBindingAction.Tab:\n            return RovingAction.Tab;\n        default:\n            return undefined;\n    }\n};\n\ntype IRovingTabIndexProps = Omit<RovingTabIndexProviderProps, \"getAction\">;\ntype IRovingGridIndexProps = Omit<RovingGridIndexProviderProps, \"getAction\">;\n\nexport const RovingTabIndexProvider: React.FC<IRovingTabIndexProps> = (props) => {\n    return <SharedRovingTabIndexProvider {...props} getAction={getWebRovingAction} />;\n};\n\nexport const RovingGridIndexProvider: React.FC<IRovingGridIndexProps> = (props) => {\n    return <SharedRovingGridIndexProvider {...props} getAction={getWebRovingAction} />;\n};\n\n// re-export the semantic helper components for simplicity\nexport { RovingTabIndexWrapper } from \"./roving/RovingTabIndexWrapper\";\nexport { RovingAccessibleButton } from \"./roving/RovingAccessibleButton\";\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 , 2024 The Matrix.org Foundation C.I.C.\nCopyright 2019 New Vector Ltd\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type JSX } from \"react\";\nimport classNames from \"classnames\";\nimport { AutoHideScrollbar } from \"@element-hq/web-shared-components\";\n\nimport { _t } from \"../../languageHandler\";\nimport { PosthogScreenTracker, type ScreenName } from \"../../PosthogTrackers\";\nimport { type NonEmptyArray } from \"../../@types/common\";\nimport { RovingAccessibleButton, RovingTabIndexProvider } from \"../../accessibility/RovingTabIndex\";\nimport { useWindowWidth } from \"../../hooks/useWindowWidth\";\n\n/**\n * Represents a tab for the TabbedView.\n */\nexport class Tab<T extends string> {\n    /**\n     * Creates a new tab.\n     * @param {string} id The tab's ID.\n     * @param {string} label The untranslated tab label.\n     * @param {string|JSX.Element} icon An SVG element to use for the tab icon.\n     * @param {JSX.Element} body The JSX for the tab container.\n     * @param {string} screenName The screen name to report to Posthog.\n     * @param {string} labelClassName Additional class to add to the tab label.\n     */\n    public constructor(\n        public readonly id: T,\n        public readonly label: TranslationKey,\n        public readonly icon: JSX.Element | null,\n        public readonly body: JSX.Element,\n        public readonly screenName?: ScreenName,\n        public readonly labelClassName?: string,\n    ) {}\n}\n\nexport function useActiveTabWithDefault<T extends string>(\n    tabs: NonEmptyArray<Tab<string>>,\n    defaultTabID: T,\n    initialTabID?: T,\n): [T, (tabId: T) => void] {\n    const [activeTabId, setActiveTabId] = React.useState(\n        initialTabID && tabs.some((t) => t.id === initialTabID) ? initialTabID : defaultTabID,\n    );\n\n    return [activeTabId, setActiveTabId];\n}\n\nexport enum TabLocation {\n    LEFT = \"left\",\n    TOP = \"top\",\n}\n\ninterface ITabPanelProps<T extends string> {\n    tab: Tab<T>;\n}\n\nfunction domIDForTabID(tabId: string): string {\n    return `mx_tabpanel_${tabId}`;\n}\n\nfunction TabPanel<T extends string>({ tab }: ITabPanelProps<T>): JSX.Element {\n    return (\n        <div\n            className=\"mx_TabbedView_tabPanel\"\n            key={tab.id}\n            id={domIDForTabID(tab.id)}\n            aria-labelledby={`${domIDForTabID(tab.id)}_label`}\n        >\n            <AutoHideScrollbar className=\"mx_AutoHideScrollbar mx_TabbedView_tabPanelContent\">\n                {tab.body}\n            </AutoHideScrollbar>\n        </div>\n    );\n}\n\ninterface ITabLabelProps<T extends string> {\n    tab: Tab<T>;\n    isActive: boolean;\n    showToolip: boolean;\n    onClick: () => void;\n}\n\nfunction TabLabel<T extends string>({ tab, isActive, showToolip, onClick }: ITabLabelProps<T>): JSX.Element {\n    const classes = classNames(\"mx_TabbedView_tabLabel\", tab.labelClassName, {\n        mx_TabbedView_tabLabel_active: isActive,\n    });\n\n    let tabIcon: JSX.Element | undefined;\n    if (tab.icon) {\n        tabIcon = tab.icon;\n    }\n\n    const id = domIDForTabID(tab.id);\n\n    const label = _t(tab.label);\n    return (\n        <RovingAccessibleButton\n            className={classes}\n            onClick={onClick}\n            data-testid={`settings-tab-${tab.id}`}\n            role=\"tab\"\n            aria-selected={isActive}\n            aria-controls={id}\n            element=\"li\"\n            title={showToolip ? label : undefined}\n            aria-labelledby={`${id}_label`}\n        >\n            {tabIcon}\n            <span className=\"mx_TabbedView_tabLabel_text\" id={`${id}_label`}>\n                {label}\n            </span>\n        </RovingAccessibleButton>\n    );\n}\n\ninterface IProps<T extends string> {\n    // An array of objects representign tabs that the tabbed view will display.\n    tabs: NonEmptyArray<Tab<T>>;\n    // The ID of the tab to show\n    activeTabId: T;\n    // The location of the tabs, dictating the layout of the TabbedView.\n    tabLocation?: TabLocation;\n    // A callback that is called when the active tab should change\n    onChange: (tabId: T) => void;\n    // The screen name to report to Posthog.\n    screenName?: ScreenName;\n    /**\n     * If true, the layout of the tabbed view will be responsive to the viewport size (eg, just showing icons\n     * instead of names of tabs).\n     * Only applies if `tabLocation === TabLocation.LEFT`.\n     * Default: false.\n     */\n    responsive?: boolean;\n}\n\n/**\n * A tabbed view component. Given objects representing content with titles, displays\n * them in a tabbed view where the user can select which one of the items to view at once.\n */\nexport default function TabbedView<T extends string>(props: IProps<T>): JSX.Element {\n    const tabLocation = props.tabLocation ?? TabLocation.LEFT;\n\n    const getTabById = (id: T): Tab<T> | undefined => {\n        return props.tabs.find((tab) => tab.id === id);\n    };\n\n    const windowWidth = useWindowWidth();\n\n    const labels = props.tabs.map((tab) => (\n        <TabLabel\n            key={\"tab_label_\" + tab.id}\n            tab={tab}\n            isActive={tab.id === props.activeTabId}\n            onClick={() => props.onChange(tab.id)}\n            // This should be the same as the the CSS breakpoint at which the tab labels are hidden\n            showToolip={windowWidth < 1024 && tabLocation == TabLocation.LEFT}\n        />\n    ));\n    const tab = getTabById(props.activeTabId);\n    const panel = tab ? <TabPanel tab={tab} /> : null;\n\n    const tabbedViewClasses = classNames({\n        mx_TabbedView: true,\n        mx_TabbedView_tabsOnLeft: tabLocation == TabLocation.LEFT,\n        mx_TabbedView_tabsOnTop: tabLocation == TabLocation.TOP,\n        mx_TabbedView_responsive: props.responsive,\n    });\n\n    const screenName = tab?.screenName ?? props.screenName;\n\n    return (\n        <div className={tabbedViewClasses}>\n            {screenName && <PosthogScreenTracker screenName={screenName} />}\n            <RovingTabIndexProvider\n                handleLoop\n                handleHomeEnd\n                handleLeftRight={tabLocation == TabLocation.TOP}\n                handleUpDown={tabLocation == TabLocation.LEFT}\n            >\n                {({ onKeyDownHandler }) => (\n                    <ul\n                        className=\"mx_TabbedView_tabLabels\"\n                        role=\"tablist\"\n                        aria-orientation={tabLocation == TabLocation.LEFT ? \"vertical\" : \"horizontal\"}\n                        onKeyDown={onKeyDownHandler}\n                    >\n                        {labels}\n                    </ul>\n                )}\n            </RovingTabIndexProvider>\n            {panel}\n        </div>\n    );\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2024 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\n\nimport UIStore, { UI_EVENTS } from \"../stores/UIStore\";\n\n/**\n * Hook that gets the width of the viewport using UIStore\n *\n * @returns the current window width\n */\nexport const useWindowWidth = (): number => {\n    const [width, setWidth] = React.useState(UIStore.instance.windowWidth);\n\n    React.useEffect(() => {\n        UIStore.instance.on(UI_EVENTS.Resize, () => {\n            setWidth(UIStore.instance.windowWidth);\n        });\n\n        return () => {\n            UIStore.instance.removeListener(UI_EVENTS.Resize, () => {\n                setWidth(UIStore.instance.windowWidth);\n            });\n        };\n    }, []);\n\n    return width;\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\nCopyright 2018, 2019 New Vector Ltd\nCopyright 2017 Vector Creations Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type JSX } from \"react\";\nimport FocusLock from \"react-focus-lock\";\nimport classNames from \"classnames\";\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\nimport { I18nContext } from \"@element-hq/web-shared-components\";\nimport { CloseIcon } from \"@vector-im/compound-design-tokens/assets/web/icons\";\n\nimport AccessibleButton from \"../elements/AccessibleButton\";\nimport { MatrixClientPeg } from \"../../../MatrixClientPeg\";\nimport { _t } from \"../../../languageHandler\";\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport Heading from \"../typography/Heading\";\nimport { PosthogScreenTracker, type ScreenName } from \"../../../PosthogTrackers\";\nimport { getKeyBindingsManager } from \"../../../KeyBindingsManager\";\nimport { KeyBindingAction } from \"../../../accessibility/KeyboardShortcuts\";\n\ninterface IProps {\n    /**\n     * Whether the dialog should have a 'close' button and a keyDown handler which\n     * will intercept 'Escape'.\n     *\n     * This should only be set to `false` if there is nothing the app can sensibly do if the\n     * dialog is cancelled, eg. \"We can't restore your session and\n     * the app cannot work\".\n     *\n     * Default: `true`.\n     */\n    \"hasCancel\"?: boolean;\n\n    /**\n     * Callback that will be called when the 'close' button is clicked or 'Escape' is pressed.\n     *\n     * Not used if `hasCancel` is false.\n     */\n    \"onFinished\"?: () => void;\n\n    // called when a key is pressed\n    \"onKeyDown\"?: (e: KeyboardEvent | React.KeyboardEvent) => void;\n\n    // CSS class to apply to dialog div\n    \"className\"?: string;\n\n    /**\n     * If true, dialog container is between 60% of the viewport width and 704 pixels (depending on screen size and dialog contents).\n     *\n     * Otherwise, the container will have no fixed width, allowing its contents to determine its size.\n     *\n     * Default: true.\n     */\n    \"fixedWidth\"?: boolean;\n\n    // To be displayed at the top of the dialog. Even above the title.\n    \"top\"?: React.ReactNode;\n\n    // Title for the dialog.\n    \"title\"?: React.ReactNode;\n    // Specific aria label to use, if not provided will set aria-labelledBy to mx_Dialog_title\n    \"aria-label\"?: string;\n\n    // Path to an icon to put in the header\n    \"headerImage\"?: string;\n\n    // children should be the content of the dialog\n    \"children\"?: React.ReactNode;\n\n    // Id of content element\n    // If provided, this is used to add a aria-describedby attribute\n    \"contentId\"?: string;\n\n    // optional additional class for the title element (basically anything that can be passed to classnames)\n    \"titleClass\"?: string | string[];\n\n    \"headerButton\"?: JSX.Element;\n\n    // optional Posthog ScreenName to supply during the lifetime of this dialog\n    \"screenName\"?: ScreenName;\n}\n\n/*\n * Basic container for modal dialogs.\n *\n * Includes a div for the title, and a keypress handler which cancels the\n * dialog on escape.\n */\nexport default class BaseDialog extends React.Component<IProps> {\n    private matrixClient: MatrixClient;\n\n    public static defaultProps: Partial<IProps> = {\n        hasCancel: true,\n        fixedWidth: true,\n    };\n\n    public constructor(props: IProps) {\n        super(props);\n\n        // XXX: The contract on MatrixClientContext says it is only available within a LoggedInView subtree,\n        // given that modals function outside the MatrixChat React tree this simulates that. We don't want to\n        // use safeGet as it throwing would mean we cannot use modals whilst the user isn't logged in.\n        // The longer term solution is to move our ModalManager into the React tree to inherit contexts properly.\n        this.matrixClient = MatrixClientPeg.get()!;\n    }\n\n    private onKeyDown = (e: KeyboardEvent | React.KeyboardEvent): void => {\n        this.props.onKeyDown?.(e);\n\n        const action = getKeyBindingsManager().getAccessibilityAction(e);\n        switch (action) {\n            case KeyBindingAction.Escape:\n                if (!this.props.hasCancel) break;\n\n                e.stopPropagation();\n                e.preventDefault();\n                this.props.onFinished?.();\n                break;\n        }\n    };\n\n    private onCancelClick = (): void => {\n        this.props.onFinished?.();\n    };\n\n    public render(): React.ReactNode {\n        let cancelButton;\n        if (this.props.hasCancel) {\n            cancelButton = (\n                <AccessibleButton\n                    onClick={this.onCancelClick}\n                    className=\"mx_Dialog_cancelButton\"\n                    title={_t(\"action|close\")}\n                    aria-label={_t(\"dialog_close_label\")}\n                    placement=\"bottom\"\n                >\n                    <CloseIcon />\n                </AccessibleButton>\n            );\n        }\n\n        let headerImage;\n        if (this.props.headerImage) {\n            headerImage = <img className=\"mx_Dialog_titleImage\" src={this.props.headerImage} alt=\"\" />;\n        }\n\n        const lockProps: Record<string, any> = {\n            \"onKeyDown\": this.onKeyDown,\n            \"role\": \"dialog\",\n            // Allow the dialog to be keyboard focusable\n            // So the escape key handling works in more cases (say you select the header)\n            \"tabIndex\": -1,\n            // This should point to a node describing the dialog.\n            // If we were about to completely follow this recommendation we'd need to\n            // make all the components relying on BaseDialog to be aware of it.\n            // So instead we will use the whole content as the description.\n            // Description comes first and if the content contains more text,\n            // AT users can skip its presentation.\n            \"aria-describedby\": this.props.contentId,\n        };\n\n        if (this.props[\"aria-label\"]) {\n            lockProps[\"aria-label\"] = this.props[\"aria-label\"];\n        } else {\n            lockProps[\"aria-labelledby\"] = \"mx_BaseDialog_title\";\n        }\n\n        return (\n            // XXX: We can't import ModuleAPI here because it causes a dependency cycle - hack and\n            // use the copy on the window object :(\n            <I18nContext.Provider value={window.mxModuleApi.i18n}>\n                <MatrixClientContext.Provider value={this.matrixClient}>\n                    {this.props.screenName && <PosthogScreenTracker screenName={this.props.screenName} />}\n                    <FocusLock\n                        returnFocus={true}\n                        lockProps={lockProps}\n                        className={classNames(this.props.className, {\n                            mx_Dialog_fixedWidth: this.props.fixedWidth,\n                        })}\n                    >\n                        {this.props.top}\n                        <div\n                            className={classNames(\"mx_Dialog_header\", {\n                                mx_Dialog_headerWithButton: !!this.props.headerButton,\n                            })}\n                        >\n                            {!!(this.props.title || headerImage) && (\n                                <Heading\n                                    size=\"3\"\n                                    as=\"h1\"\n                                    className={classNames(\"mx_Dialog_title\", this.props.titleClass)}\n                                    id=\"mx_BaseDialog_title\"\n                                >\n                                    {headerImage}\n                                    {this.props.title}\n                                </Heading>\n                            )}\n                            {this.props.headerButton}\n                        </div>\n                        {this.props.children}\n                        {cancelButton}\n                    </FocusLock>\n                </MatrixClientContext.Provider>\n            </I18nContext.Provider>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2015, 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/*\n * Usage:\n * Modal.createDialog(ErrorDialog, {\n *   title: \"some text\", (default: \"Error\")\n *   description: \"some more text\",\n *   button: \"Button Text\",\n *   onFinished: someFunction,\n *   focus: true|false (default: true)\n * });\n */\n\nimport React from \"react\";\n\nimport { _t, UserFriendlyError } from \"../../../languageHandler\";\nimport BaseDialog from \"./BaseDialog\";\n\n/**\n * Get a user friendly error message string from a given error. Useful for the\n * `description` prop of the `ErrorDialog`\n * @param err Error object in question to extract a useful message from. To make it easy\n * to use with try/catch, this is typed as `any` because try/catch will type\n * the error as `unknown`. And in any case we can use the fallback message.\n * @param translatedFallbackMessage The fallback message to be used if the error doesn't have any message\n * @returns a user friendly error message string from a given error\n */\nexport function extractErrorMessageFromError(err: any, translatedFallbackMessage: string): string {\n    return (\n        (err instanceof UserFriendlyError && err.translatedMessage) ||\n        (err instanceof Error && err.message) ||\n        translatedFallbackMessage\n    );\n}\n\ninterface IProps {\n    onFinished: (success?: boolean) => void;\n    title?: string;\n    description?: React.ReactNode;\n    button?: string;\n    focus?: boolean;\n    headerImage?: string;\n}\n\ninterface IState {\n    onFinished: (success: boolean) => void;\n}\n\nexport default class ErrorDialog extends React.Component<IProps, IState> {\n    public static defaultProps: Partial<IProps> = {\n        focus: true,\n    };\n\n    private onClick = (): void => {\n        this.props.onFinished(true);\n    };\n\n    public render(): React.ReactNode {\n        return (\n            <BaseDialog\n                className=\"mx_ErrorDialog\"\n                onFinished={this.props.onFinished}\n                title={this.props.title || _t(\"common|error\")}\n                headerImage={this.props.headerImage}\n                contentId=\"mx_Dialog_content\"\n            >\n                <div className=\"mx_Dialog_content\" id=\"mx_Dialog_content\">\n                    {this.props.description || _t(\"error|dialog_description_default\")}\n                </div>\n                <div className=\"mx_Dialog_buttons\">\n                    <button className=\"mx_Dialog_primary\" onClick={this.onClick} autoFocus={this.props.focus}>\n                        {this.props.button || _t(\"action|ok\")}\n                    </button>\n                </div>\n            </BaseDialog>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2015-2021 The Matrix.org Foundation C.I.C.\nCopyright 2019 Bastian Masanek, Noxware IT <matrix@noxware.de>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ReactNode } from \"react\";\nimport classNames from \"classnames\";\n\nimport { _t } from \"../../../languageHandler\";\nimport BaseDialog from \"./BaseDialog\";\nimport DialogButtons from \"../elements/DialogButtons\";\n\ninterface IProps {\n    top?: ReactNode;\n    title?: string;\n    description?: ReactNode;\n    className?: string;\n    button?: boolean | string;\n    hasCloseButton?: boolean;\n    fixedWidth?: boolean;\n    onKeyDown?(event: KeyboardEvent | React.KeyboardEvent): void;\n    onFinished(): void;\n}\n\nexport default class InfoDialog extends React.Component<IProps> {\n    public static defaultProps: Partial<IProps> = {\n        title: \"\",\n        description: \"\",\n        hasCloseButton: false,\n    };\n\n    private onFinished = (): void => {\n        this.props.onFinished();\n    };\n\n    public render(): React.ReactNode {\n        return (\n            <BaseDialog\n                className=\"mx_InfoDialog\"\n                onFinished={this.props.onFinished}\n                top={this.props.top}\n                title={this.props.title}\n                contentId=\"mx_Dialog_content\"\n                hasCancel={this.props.hasCloseButton}\n                onKeyDown={this.props.onKeyDown}\n                fixedWidth={this.props.fixedWidth}\n            >\n                <div className={classNames(\"mx_Dialog_content\", this.props.className)} id=\"mx_Dialog_content\">\n                    {this.props.description}\n                </div>\n                {this.props.button !== false && (\n                    <DialogButtons\n                        primaryButton={this.props.button || _t(\"action|ok\")}\n                        onPrimaryButtonClick={this.onFinished}\n                        hasCancel={false}\n                    />\n                )}\n            </BaseDialog>\n        );\n    }\n}\n","/*\nCopyright 2017-2024 New Vector Ltd.\nCopyright 2015, 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\nimport classNames from \"classnames\";\n\nimport { _t } from \"../../../languageHandler\";\nimport BaseDialog from \"./BaseDialog\";\nimport DialogButtons from \"../elements/DialogButtons\";\n\nexport interface IQuestionDialogProps {\n    title?: string;\n    description?: React.ReactNode;\n    extraButtons?: React.ReactNode;\n    button?: string;\n    buttonDisabled?: boolean;\n    danger?: boolean;\n    focus?: boolean;\n    headerImage?: string;\n    quitOnly?: boolean; // quitOnly doesn't show the cancel button just the quit [x].\n    fixedWidth?: boolean;\n    className?: string;\n    hasCancelButton?: boolean;\n    cancelButton?: React.ReactNode;\n    onFinished(ok?: boolean): void;\n}\n\nexport default class QuestionDialog extends React.Component<IQuestionDialogProps> {\n    public static defaultProps: Partial<IQuestionDialogProps> = {\n        title: \"\",\n        description: \"\",\n        extraButtons: null,\n        focus: true,\n        hasCancelButton: true,\n        danger: false,\n        quitOnly: false,\n    };\n\n    private onOk = (): void => {\n        this.props.onFinished(true);\n    };\n\n    private onCancel = (): void => {\n        this.props.onFinished(false);\n    };\n\n    public render(): React.ReactNode {\n        let primaryButtonClass = \"\";\n        if (this.props.danger) {\n            primaryButtonClass = \"danger\";\n        }\n        return (\n            <BaseDialog\n                className={classNames(\"mx_QuestionDialog\", this.props.className)}\n                onFinished={this.props.onFinished}\n                title={this.props.title}\n                contentId=\"mx_Dialog_content\"\n                headerImage={this.props.headerImage}\n                hasCancel={this.props.hasCancelButton}\n                fixedWidth={this.props.fixedWidth}\n            >\n                <div className=\"mx_Dialog_content\" id=\"mx_Dialog_content\">\n                    {this.props.description}\n                </div>\n                <DialogButtons\n                    primaryButton={this.props.button || _t(\"action|ok\")}\n                    primaryButtonClass={primaryButtonClass}\n                    primaryDisabled={this.props.buttonDisabled}\n                    cancelButton={this.props.cancelButton}\n                    hasCancel={this.props.hasCancelButton && !this.props.quitOnly}\n                    onPrimaryButtonClick={this.onOk}\n                    focus={this.props.focus}\n                    onCancel={this.onCancel}\n                >\n                    {this.props.extraButtons}\n                </DialogButtons>\n            </BaseDialog>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type FormEvent } from \"react\";\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\nimport FocusLock from \"react-focus-lock\";\nimport { CloseIcon } from \"@vector-im/compound-design-tokens/assets/web/icons\";\n\nimport { MatrixClientPeg } from \"../../../MatrixClientPeg\";\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport { _t } from \"../../../languageHandler\";\nimport AccessibleButton from \"../elements/AccessibleButton\";\nimport { KeyBindingAction } from \"../../../accessibility/KeyboardShortcuts\";\nimport { getKeyBindingsManager } from \"../../../KeyBindingsManager\";\n\nexport interface IScrollableBaseState {\n    canSubmit: boolean;\n    title: string;\n    actionLabel: string;\n    cancelLabel?: string;\n}\n\n/**\n * Scrollable dialog base from Compound (Web Components).\n */\nexport default abstract class ScrollableBaseModal<\n    TProps extends { onFinished?: (...args: any[]) => void },\n    TState extends IScrollableBaseState,\n> extends React.PureComponent<TProps, TState> {\n    protected constructor(props: TProps) {\n        super(props);\n    }\n\n    protected get matrixClient(): MatrixClient {\n        // XXX: The contract on MatrixClientContext says it is only available within a LoggedInView subtree,\n        // given that modals function outside the MatrixChat React tree this simulates that. We don't want to\n        // use safeGet as it throwing would mean we cannot use modals whilst the user isn't logged in.\n        // The longer term solution is to move our ModalManager into the React tree to inherit contexts properly.\n        return MatrixClientPeg.get()!;\n    }\n\n    private onKeyDown = (e: KeyboardEvent | React.KeyboardEvent): void => {\n        const action = getKeyBindingsManager().getAccessibilityAction(e);\n        switch (action) {\n            case KeyBindingAction.Escape:\n                e.stopPropagation();\n                e.preventDefault();\n                this.cancel();\n                break;\n        }\n    };\n\n    private onCancel = (): void => {\n        this.cancel();\n    };\n\n    private onSubmit = (e: MouseEvent | FormEvent): void => {\n        e.stopPropagation();\n        e.preventDefault();\n        if (!this.state.canSubmit) return; // pretend the submit button was disabled\n        this.submit();\n    };\n\n    protected abstract cancel(): void;\n    protected abstract submit(): void;\n    protected abstract renderContent(): React.ReactNode;\n\n    public render(): React.ReactNode {\n        return (\n            <MatrixClientContext.Provider value={this.matrixClient}>\n                <FocusLock\n                    returnFocus={true}\n                    lockProps={{\n                        \"onKeyDown\": this.onKeyDown,\n                        \"role\": \"dialog\",\n                        [\"aria-labelledby\"]: \"mx_CompoundDialog_title\",\n\n                        // Like BaseDialog, we'll just point this at the whole content\n                        [\"aria-describedby\"]: \"mx_CompoundDialog_content\",\n                    }}\n                    className=\"mx_CompoundDialog mx_ScrollableBaseDialog\"\n                >\n                    <div className=\"mx_CompoundDialog_header\">\n                        <h1>{this.state.title}</h1>\n                    </div>\n                    <AccessibleButton\n                        onClick={this.onCancel}\n                        className=\"mx_CompoundDialog_cancelButton\"\n                        aria-label={_t(\"dialog_close_label\")}\n                    >\n                        <CloseIcon />\n                    </AccessibleButton>\n                    <form onSubmit={this.onSubmit} className=\"mx_CompoundDialog_form\">\n                        <div className=\"mx_CompoundDialog_content\">{this.renderContent()}</div>\n                        <div className=\"mx_CompoundDialog_footer\">\n                            <AccessibleButton onClick={this.onCancel} kind=\"primary_outline\">\n                                {this.state.cancelLabel ?? _t(\"action|cancel\")}\n                            </AccessibleButton>\n                            <AccessibleButton\n                                onClick={this.onSubmit}\n                                kind=\"primary\"\n                                disabled={!this.state.canSubmit}\n                                type=\"submit\"\n                                element=\"button\"\n                                className=\"mx_Dialog_nonDialogButton\"\n                            >\n                                {this.state.actionLabel}\n                            </AccessibleButton>\n                        </div>\n                    </form>\n                </FocusLock>\n            </MatrixClientContext.Provider>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nexport enum UserTab {\n    Account = \"USER_ACCOUNT_TAB\",\n    Appearance = \"USER_APPEARANCE_TAB\",\n    Notifications = \"USER_NOTIFICATIONS_TAB\",\n    Preferences = \"USER_PREFERENCES_TAB\",\n    Keyboard = \"USER_KEYBOARD_TAB\",\n    Sidebar = \"USER_SIDEBAR_TAB\",\n    Voice = \"USER_VOICE_TAB\",\n    Security = \"USER_SECURITY_TAB\",\n    Encryption = \"USER_ENCRYPTION_TAB\",\n    Labs = \"USER_LABS_TAB\",\n    Mjolnir = \"USER_MJOLNIR_TAB\",\n    Help = \"USER_HELP_TAB\",\n    SessionManager = \"USER_SESSION_MANAGER_TAB\",\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2023 The Matrix.org Foundation C.I.C.\nCopyright 2022 Michael Telatynski <7t3chguy@gmail.com>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { createContext, type ReactNode, useState } from \"react\";\nimport { type Room } from \"matrix-js-sdk/src/matrix\";\nimport classNames from \"classnames\";\n\nimport { _t } from \"../../../../languageHandler\";\nimport { type XOR } from \"../../../../@types/common\";\nimport { type Tool } from \"../DevtoolsDialog\";\n\nexport interface IDevtoolsProps {\n    onBack(this: void): void;\n    setTool(this: void, label: TranslationKey, tool: Tool): void;\n}\n\ninterface IMinProps extends Pick<IDevtoolsProps, \"onBack\"> {\n    className?: string;\n    children?: ReactNode;\n    extraButton?: ReactNode;\n}\n\ninterface IProps extends IMinProps {\n    actionLabel: TranslationKey;\n    onAction(this: void): Promise<string | void>;\n}\n\nconst BaseTool: React.FC<XOR<IMinProps, IProps>> = ({\n    className,\n    actionLabel,\n    onBack,\n    onAction,\n    children,\n    extraButton,\n}) => {\n    const [message, setMessage] = useState<string | null>(null);\n\n    const onBackClick = (): void => {\n        if (message) {\n            setMessage(null);\n        } else {\n            onBack();\n        }\n    };\n\n    let actionButton: ReactNode = null;\n    if (message) {\n        children = message;\n    } else if (onAction && actionLabel) {\n        const onActionClick = (): void => {\n            onAction().then((msg) => {\n                if (typeof msg === \"string\") {\n                    setMessage(msg);\n                }\n            });\n        };\n\n        actionButton = <button onClick={onActionClick}>{_t(actionLabel)}</button>;\n    }\n\n    return (\n        <>\n            <div className={classNames(\"mx_DevTools_content\", className)}>{children}</div>\n            <div className=\"mx_Dialog_buttons\">\n                {extraButton}\n                <button onClick={onBackClick}>{_t(\"action|back\")}</button>\n                {actionButton}\n            </div>\n        </>\n    );\n};\n\nexport default BaseTool;\n\ninterface IContext {\n    room: Room;\n    threadRootId?: string | null;\n}\n\nexport const DevtoolsContext = createContext<IContext>({} as IContext);\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 Michael Telatynski <7t3chguy@gmail.com>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type JSX, useContext } from \"react\";\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\nimport BaseTool, { type IDevtoolsProps } from \"./BaseTool\";\nimport { _t } from \"../../../../languageHandler\";\nimport { useAsyncMemo } from \"../../../../hooks/useAsyncMemo\";\nimport MatrixClientContext from \"../../../../contexts/MatrixClientContext\";\nimport Spinner from \"../../elements/Spinner\";\nimport SyntaxHighlight from \"../../elements/SyntaxHighlight\";\nimport { MatrixClientPeg } from \"../../../../MatrixClientPeg\";\n\nconst FAILED_TO_LOAD = Symbol(\"failed-to-load\");\n\ninterface IServerWellKnown {\n    server: {\n        name: string;\n        version: string;\n    };\n}\n\nexport async function getServerVersionFromFederationApi(client: MatrixClient): Promise<IServerWellKnown> {\n    let baseUrl = client.getHomeserverUrl();\n\n    try {\n        const hsName = MatrixClientPeg.safeGet().getDomain();\n        // We don't use the js-sdk Autodiscovery module here as it only support client well-known, not server ones.\n        const response = await fetch(`https://${hsName}/.well-known/matrix/server`);\n        const json = await response.json();\n        if (json[\"m.server\"]) {\n            baseUrl = `https://${json[\"m.server\"]}`;\n        }\n    } catch (e) {\n        console.warn(e);\n    }\n\n    const response = await fetch(`${baseUrl}/_matrix/federation/v1/version`);\n    return response.json();\n}\n\nconst ServerInfo: React.FC<IDevtoolsProps> = ({ onBack }) => {\n    const cli = useContext(MatrixClientContext);\n    const capabilities = useAsyncMemo(() => cli.fetchCapabilities().catch(() => FAILED_TO_LOAD), [cli]);\n    const clientVersions = useAsyncMemo(() => cli.getVersions().catch(() => FAILED_TO_LOAD), [cli]);\n    const serverVersions = useAsyncMemo(async (): Promise<IServerWellKnown | symbol> => {\n        try {\n            return await getServerVersionFromFederationApi(cli);\n        } catch (e) {\n            console.warn(e);\n        }\n\n        return FAILED_TO_LOAD;\n    }, [cli]);\n\n    let body: JSX.Element;\n    if (!capabilities || !clientVersions || !serverVersions) {\n        body = <Spinner />;\n    } else {\n        body = (\n            <>\n                <h4>{_t(\"common|capabilities\")}</h4>\n                {capabilities !== FAILED_TO_LOAD ? (\n                    <SyntaxHighlight language=\"json\" children={JSON.stringify(capabilities, null, 4)} />\n                ) : (\n                    <div>{_t(\"devtools|failed_to_load\")}</div>\n                )}\n\n                <h4>{_t(\"devtools|client_versions\")}</h4>\n                {clientVersions !== FAILED_TO_LOAD ? (\n                    <SyntaxHighlight language=\"json\" children={JSON.stringify(clientVersions, null, 4)} />\n                ) : (\n                    <div>{_t(\"devtools|failed_to_load\")}</div>\n                )}\n\n                <h4>{_t(\"devtools|server_versions\")}</h4>\n                {serverVersions !== FAILED_TO_LOAD ? (\n                    <SyntaxHighlight language=\"json\" children={JSON.stringify(serverVersions, null, 4)} />\n                ) : (\n                    <div>{_t(\"devtools|failed_to_load\")}</div>\n                )}\n            </>\n        );\n    }\n\n    return <BaseTool onBack={onBack}>{body}</BaseTool>;\n};\n\nexport default ServerInfo;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2016 Jani Mustonen\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n */\n\nimport React, {\n    type JSX,\n    type ComponentProps,\n    type ComponentPropsWithoutRef,\n    type ReactElement,\n    type KeyboardEvent,\n    type Ref,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { Tooltip } from \"@vector-im/compound-web\";\n\nimport { getKeyBindingsManager } from \"../../../KeyBindingsManager\";\nimport { KeyBindingAction } from \"../../../accessibility/KeyboardShortcuts\";\n\nexport type ButtonEvent = React.MouseEvent<Element> | React.KeyboardEvent<Element> | React.FormEvent<Element>;\n\n/**\n * The kind of button, similar to how Bootstrap works.\n */\nexport type AccessibleButtonKind =\n    | \"primary\"\n    | \"primary_outline\"\n    | \"primary_sm\"\n    | \"secondary\"\n    | \"content_inline\"\n    | \"danger\"\n    | \"danger_outline\"\n    | \"danger_sm\"\n    | \"danger_inline\"\n    | \"link\"\n    | \"link_inline\"\n    | \"link_sm\"\n    | \"icon\"\n    | \"icon_primary\"\n    | \"icon_primary_outline\";\n\ntype ElementType = keyof HTMLElementTagNameMap;\nconst defaultElement = \"div\";\n\ntype TooltipProps = ComponentProps<typeof Tooltip>;\n\n/**\n * Type of props accepted by {@link AccessibleButton}.\n *\n * Extends props accepted by the underlying element specified using the `element` prop.\n */\ntype Props<T extends ElementType = \"div\"> = {\n    /**\n     * The base element type. \"div\" by default.\n     */\n    element?: T;\n    /**\n     * The kind of button, similar to how Bootstrap works.\n     */\n    kind?: AccessibleButtonKind;\n    /**\n     * Whether the button should be disabled.\n     */\n    disabled?: boolean;\n    /**\n     * Whether the button should trigger on mousedown event instead of on click event. Defaults to false (click event).\n     */\n    triggerOnMouseDown?: boolean;\n    /**\n     * Event handler for button activation. Should be implemented exactly like a normal `onClick` handler.\n     */\n    onClick: ((e: ButtonEvent) => void | Promise<void>) | null;\n    /**\n     * The tooltip to show on hover or focus.\n     */\n    title?: string;\n    /**\n     * The caption is a secondary text displayed under the `title` of the tooltip.\n     * Only valid when used in conjunction with `title`.\n     */\n    caption?: TooltipProps[\"caption\"];\n    /**\n     * The placement of the tooltip.\n     */\n    placement?: TooltipProps[\"placement\"];\n    /**\n     * Callback for when the tooltip is opened or closed.\n     */\n    onTooltipOpenChange?: TooltipProps[\"onOpenChange\"];\n\n    /**\n     * Whether the tooltip should be disabled.\n     */\n    disableTooltip?: TooltipProps[\"disabled\"];\n\n    ref?: Ref<HTMLElementTagNameMap[T]>;\n};\n\nexport type ButtonProps<T extends ElementType> = Props<T> & Omit<ComponentPropsWithoutRef<T>, keyof Props<T>>;\n\n/**\n * Type of the props passed to the element that is rendered by AccessibleButton.\n */\ntype RenderedElementProps<T extends ElementType> = React.InputHTMLAttributes<Element> & RefProp<T>;\n\n/**\n * AccessibleButton is a generic wrapper for any element that should be treated\n * as a button.  Identifies the element as a button, setting proper tab\n * indexing and keyboard activation behavior.\n *\n * If a ref is passed, it will be forwarded to the rendered element as specified using the `element` prop.\n *\n * @param {Object} props  react element properties\n * @returns {Object} rendered react\n */\nconst AccessibleButton = function AccessibleButton<T extends ElementType = typeof defaultElement>({\n    element,\n    onClick,\n    children,\n    kind,\n    disabled,\n    className,\n    onKeyDown,\n    onKeyUp,\n    triggerOnMouseDown,\n    title,\n    caption,\n    placement = \"right\",\n    onTooltipOpenChange,\n    disableTooltip,\n    role = \"button\",\n    tabIndex = 0,\n    ref,\n    ...restProps\n}: ButtonProps<T>): JSX.Element {\n    const newProps = {\n        ...restProps,\n        tabIndex,\n        role,\n        \"aria-label\": restProps[\"aria-label\"] ?? title,\n    } as RenderedElementProps<T>;\n\n    if (disabled) {\n        newProps[\"aria-disabled\"] = true;\n        newProps[\"disabled\"] = true;\n    } else {\n        if (triggerOnMouseDown) {\n            newProps.onMouseDown = onClick ?? undefined;\n        } else {\n            newProps.onClick = onClick ?? undefined;\n        }\n\n        if (element !== \"button\") {\n            // We need to consume enter onKeyDown and space onKeyUp\n            // otherwise we are risking also activating other keyboard focusable elements\n            // that might receive focus as a result of the AccessibleButtonClick action\n            // It's because we are using html buttons at a few places e.g. inside dialogs\n            // And divs which we report as role button to assistive technologies.\n            // Browsers handle space and enter key presses differently and we are only adjusting to the\n            // inconsistencies here\n            newProps.onKeyDown = (e: KeyboardEvent<never>) => {\n                const action = getKeyBindingsManager().getAccessibilityAction(e);\n\n                switch (action) {\n                    case KeyBindingAction.Enter:\n                        e.stopPropagation();\n                        e.preventDefault();\n                        return onClick?.(e);\n                    case KeyBindingAction.Space:\n                        e.stopPropagation();\n                        e.preventDefault();\n                        break;\n                    default:\n                        onKeyDown?.(e);\n                }\n            };\n            newProps.onKeyUp = (e: KeyboardEvent<never>) => {\n                const action = getKeyBindingsManager().getAccessibilityAction(e);\n\n                switch (action) {\n                    case KeyBindingAction.Enter:\n                        e.stopPropagation();\n                        e.preventDefault();\n                        break;\n                    case KeyBindingAction.Space:\n                        e.stopPropagation();\n                        e.preventDefault();\n                        return onClick?.(e);\n                    default:\n                        onKeyUp?.(e);\n                        break;\n                }\n            };\n        }\n    }\n\n    // Pass through the ref - used for keyboard shortcut access to some buttons\n    newProps.ref = ref;\n\n    newProps.className = classnames(\"mx_AccessibleButton\", className, {\n        mx_AccessibleButton_hasKind: kind,\n        [`mx_AccessibleButton_kind_${kind}`]: kind,\n        mx_AccessibleButton_disabled: disabled,\n    });\n\n    // React.createElement expects InputHTMLAttributes\n    const button = React.createElement(element ?? defaultElement, newProps, children);\n\n    if (title) {\n        return (\n            <Tooltip\n                description={title}\n                caption={caption}\n                isTriggerInteractive={true}\n                placement={placement}\n                onOpenChange={onTooltipOpenChange}\n                disabled={disableTooltip}\n            >\n                {button}\n            </Tooltip>\n        );\n    }\n    return button;\n};\n\ninterface RefProp<T extends ElementType> {\n    ref?: Ref<HTMLElementTagNameMap[T]>;\n}\n\ninterface ButtonComponent {\n    // With the explicit `element` prop\n    <C extends ElementType>(props: { element?: C } & ButtonProps<C> & RefProp<C>): ReactElement;\n    // Without the explicit `element` prop\n    (props: ButtonProps<\"div\"> & RefProp<\"div\">): ReactElement;\n}\n\nexport default AccessibleButton as ButtonComponent;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\nCopyright 2018 New Vector Ltd.\nCopyright 2017 Aidan Gauland\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type JSX, type ReactNode } from \"react\";\n\nimport { _t } from \"../../../languageHandler\";\n\ninterface IProps {\n    // The primary button which is styled differently and has default focus.\n    primaryButton: React.ReactNode;\n\n    // A node to insert into the cancel button instead of default \"Cancel\"\n    cancelButton?: React.ReactNode;\n\n    // If true, make the primary button a form submit button (input type=\"submit\")\n    primaryIsSubmit?: boolean;\n\n    // onClick handler for the primary button. Note that the returned promise, if\n    // returning a promise, is not used.\n    onPrimaryButtonClick?: (ev: React.MouseEvent) => void | Promise<void>;\n\n    // should there be a cancel button? default: true\n    hasCancel?: boolean;\n\n    // The class of the cancel button, only used if a cancel button is\n    // enabled\n    cancelButtonClass?: string;\n\n    // onClick handler for the cancel button.\n    onCancel?: (...args: any[]) => void;\n\n    focus?: boolean;\n\n    // disables the primary and cancel buttons\n    disabled?: boolean;\n\n    // disables only the primary button\n    primaryDisabled?: boolean;\n\n    // something to stick next to the buttons, optionally\n    additive?: ReactNode;\n\n    primaryButtonClass?: string;\n    children?: ReactNode;\n}\n\n/**\n * Basic container for buttons in modal dialogs.\n */\nexport default class DialogButtons extends React.Component<IProps> {\n    public static defaultProps: Partial<IProps> = {\n        hasCancel: true,\n        disabled: false,\n    };\n\n    private onCancelClick = (event: React.MouseEvent): void => {\n        this.props.onCancel?.(event);\n    };\n\n    public render(): React.ReactNode {\n        let primaryButtonClassName = \"mx_Dialog_primary\";\n        if (this.props.primaryButtonClass) {\n            primaryButtonClassName += \" \" + this.props.primaryButtonClass;\n        }\n\n        let cancelButton: JSX.Element | undefined;\n        if (this.props.hasCancel) {\n            cancelButton = (\n                <button\n                    // important: the default type is 'submit' and this button comes before the\n                    // primary in the DOM so will get form submissions unless we make it not a submit.\n                    data-testid=\"dialog-cancel-button\"\n                    type=\"button\"\n                    onClick={this.onCancelClick}\n                    className={this.props.cancelButtonClass}\n                    disabled={this.props.disabled}\n                >\n                    {this.props.cancelButton || _t(\"action|cancel\")}\n                </button>\n            );\n        }\n\n        let additive: JSX.Element | undefined;\n        if (this.props.additive) {\n            additive = <div className=\"mx_Dialog_buttons_additive\">{this.props.additive}</div>;\n        }\n\n        return (\n            <div className=\"mx_Dialog_buttons\">\n                {additive}\n                <span className=\"mx_Dialog_buttons_row\">\n                    {cancelButton}\n                    {this.props.children}\n                    <button\n                        type={this.props.primaryIsSubmit ? \"submit\" : \"button\"}\n                        data-testid=\"dialog-primary-button\"\n                        className={primaryButtonClassName}\n                        onClick={this.props.onPrimaryButtonClick}\n                        autoFocus={this.props.focus}\n                        disabled={this.props.disabled || this.props.primaryDisabled}\n                    >\n                        {this.props.primaryButton}\n                    </button>\n                </span>\n            </div>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type DetailedHTMLProps, type AnchorHTMLAttributes } from \"react\";\nimport classNames from \"classnames\";\nimport PopOutIcon from \"@vector-im/compound-design-tokens/assets/web/icons/pop-out\";\n\ninterface Props extends DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> {}\n\n/**\n * Simple link component that adds external link icon after link children\n */\nconst ExternalLink: React.FC<Props> = ({ children, className, ...rest }) => (\n    <a target=\"_blank\" rel=\"noreferrer noopener\" {...rest} className={classNames(\"mx_ExternalLink\", className)}>\n        {children}\n        <PopOutIcon className=\"mx_ExternalLink_icon\" />\n    </a>\n);\n\nexport default ExternalLink;\n","/*\nCopyright 2019-2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, {\n    type JSX,\n    type InputHTMLAttributes,\n    type SelectHTMLAttributes,\n    type TextareaHTMLAttributes,\n    type RefObject,\n    createRef,\n    type ComponentProps,\n    type RefCallback,\n    type Ref,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { debounce } from \"lodash\";\nimport { Tooltip } from \"@vector-im/compound-web\";\nimport { ChevronDownIcon } from \"@vector-im/compound-design-tokens/assets/web/icons\";\n\nimport { type IFieldState, type IValidationResult } from \"./Validation\";\n\n// Invoke validation from user input (when typing, etc.) at most once every N ms.\nconst VALIDATION_THROTTLE_MS = 200;\n\nconst BASE_ID = \"mx_Field\";\nlet count = 1;\nfunction getId(): string {\n    return `${BASE_ID}_${count++}`;\n}\n\nexport interface IValidateOpts {\n    focused?: boolean;\n    allowEmpty?: boolean;\n}\n\ninterface IProps {\n    // The field's ID, which binds the input and label together. Immutable.\n    id?: string;\n    // The field's label string.\n    label?: string;\n    // The field's placeholder string. Defaults to the label.\n    placeholder?: string;\n    // When true (default false), the placeholder will be shown instead of the label when\n    // the component is unfocused & empty.\n    usePlaceholderAsHint?: boolean;\n    // Optional component to include inside the field before the input.\n    prefixComponent?: React.ReactNode;\n    // Optional component to include inside the field after the input.\n    postfixComponent?: React.ReactNode;\n    // The callback called whenever the contents of the field\n    // changes.  Returns an object with `valid` boolean field\n    // and a `feedback` react component field to provide feedback\n    // to the user.\n    onValidate?: (input: IFieldState) => Promise<IValidationResult>;\n    // If specified, overrides the value returned by onValidate.\n    forceValidity?: boolean;\n    // If specified, contents will appear as a tooltip on the element and\n    // validation feedback tooltips will be suppressed.\n    tooltipContent?: JSX.Element | string;\n    // If specified the tooltip will be shown regardless of feedback\n    forceTooltipVisible?: boolean;\n    // If specified, the tooltip with be aligned accorindly with the field, defaults to Right.\n    tooltipAlignment?: ComponentProps<typeof Tooltip>[\"placement\"];\n    // If specified alongside tooltipContent, the class name to apply to the\n    // tooltip itself.\n    tooltipClassName?: string;\n    // If specified, an additional class name to apply to the field container\n    className?: string;\n    // On what events should validation occur; by default on all\n    validateOnFocus?: boolean;\n    validateOnBlur?: boolean;\n    validateOnChange?: boolean;\n    // All other props pass through to the <input>.\n}\n\nexport interface IInputProps extends IProps, InputHTMLAttributes<HTMLInputElement> {\n    // The ref pass through to the input\n    inputRef?: Ref<HTMLInputElement>;\n    // The element to create. Defaults to \"input\".\n    element: \"input\";\n    // The input's value. This is a controlled component, so the value is required.\n    value: string;\n}\n\ninterface ISelectProps extends IProps, SelectHTMLAttributes<HTMLSelectElement> {\n    // The ref pass through to the select\n    inputRef?: Ref<HTMLSelectElement>;\n    // To define options for a select, use <Field><option ... /></Field>\n    element: \"select\";\n    // The select's value. This is a controlled component, so the value is required.\n    value: string;\n}\n\ninterface ITextareaProps extends IProps, TextareaHTMLAttributes<HTMLTextAreaElement> {\n    // The ref pass through to the textarea\n    inputRef?: Ref<HTMLTextAreaElement>;\n    element: \"textarea\";\n    // The textarea's value. This is a controlled component, so the value is required.\n    value: string;\n}\n\nexport interface INativeOnChangeInputProps extends IProps, InputHTMLAttributes<HTMLInputElement> {\n    // The ref pass through to the input\n    inputRef?: Ref<HTMLInputElement>;\n    element: \"input\";\n    // The input's value. This is a controlled component, so the value is required.\n    value: string;\n}\n\ntype PropShapes = IInputProps | ISelectProps | ITextareaProps | INativeOnChangeInputProps;\n\ninterface IState {\n    valid?: boolean;\n    feedback?: JSX.Element | string;\n    feedbackVisible: boolean;\n    focused: boolean;\n}\n\nexport default class Field extends React.PureComponent<PropShapes, IState> {\n    private readonly id: string;\n    private readonly _inputRef = createRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>();\n\n    /**\n     * When props.inputRef is a callback ref, we will pass callbackRef to the DOM element.\n     * This is so that other methods here can still access the DOM element via this._inputRef.\n     */\n    private readonly callbackRef: RefCallback<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> = (node) => {\n        this._inputRef.current = node;\n        (this.props.inputRef as RefCallback<unknown>)(node);\n    };\n\n    public static readonly defaultProps = {\n        element: \"input\",\n        type: \"text\",\n        validateOnFocus: true,\n        validateOnBlur: true,\n        validateOnChange: true,\n        tooltipAlignment: \"right\",\n    };\n\n    /*\n     * This was changed from throttle to debounce: this is more traditional for\n     * form validation since it means that the validation doesn't happen at all\n     * until the user stops typing for a bit (debounce defaults to not running on\n     * the leading edge). If we're doing an HTTP hit on each validation, we have more\n     * incentive to prevent validating input that's very unlikely to be valid.\n     * We may find that we actually want different behaviour for registration\n     * fields, in which case we can add some options to control it.\n     */\n    private validateOnChange = debounce(() => {\n        this.validate({\n            focused: true,\n        });\n    }, VALIDATION_THROTTLE_MS);\n\n    public constructor(props: PropShapes) {\n        super(props);\n        this.state = {\n            feedbackVisible: false,\n            focused: false,\n        };\n\n        this.id = this.props.id || getId();\n    }\n\n    public focus(): void {\n        this.inputRef.current?.focus();\n        // programmatic does not fire onFocus handler\n        this.setState({\n            focused: true,\n        });\n    }\n\n    private onFocus = (ev: React.FocusEvent<any>): void => {\n        this.setState({\n            focused: true,\n        });\n        if (this.props.validateOnFocus) {\n            this.validate({\n                focused: true,\n            });\n        }\n        // Parent component may have supplied its own `onFocus` as well\n        this.props.onFocus?.(ev);\n    };\n\n    private onChange = (ev: React.ChangeEvent<any>): void => {\n        if (this.props.validateOnChange) {\n            this.validateOnChange();\n        }\n        // Parent component may have supplied its own `onChange` as well\n        this.props.onChange?.(ev);\n    };\n\n    private onBlur = (ev: React.FocusEvent<any>): void => {\n        this.setState({\n            focused: false,\n        });\n        if (this.props.validateOnBlur) {\n            this.validate({\n                focused: false,\n            });\n        }\n        // Parent component may have supplied its own `onBlur` as well\n        this.props.onBlur?.(ev);\n    };\n\n    public async validate({ focused, allowEmpty = true }: IValidateOpts): Promise<boolean | undefined> {\n        if (!this.props.onValidate) {\n            return;\n        }\n        const value = this.inputRef.current?.value ?? null;\n        const { valid, feedback } = await this.props.onValidate({\n            value,\n            focused: !!focused,\n            allowEmpty,\n        });\n\n        // this method is async and so we may have been blurred since the method was called\n        // if we have then hide the feedback as withValidation does\n        if (this.state.focused && feedback) {\n            this.setState({\n                valid,\n                feedback,\n                feedbackVisible: true,\n            });\n        } else {\n            // When we receive null `feedback`, we want to hide the tooltip.\n            // We leave the previous `feedback` content in state without updating it,\n            // so that we can hide the tooltip containing the most recent feedback\n            // via CSS animation.\n            this.setState({\n                valid,\n                feedbackVisible: false,\n            });\n        }\n\n        return valid;\n    }\n\n    private get inputRef(): RefObject<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | null> {\n        const inputRef = this.props.inputRef;\n        if (typeof inputRef === \"function\") {\n            // This is a callback ref, so return _inputRef which will point to the actual DOM element.\n            return this._inputRef;\n        }\n        return inputRef ?? this._inputRef;\n    }\n\n    private onTooltipOpenChange = (open: boolean): void => {\n        this.setState({\n            feedbackVisible: open,\n        });\n    };\n\n    public render(): React.ReactNode {\n        /* eslint @typescript-eslint/no-unused-vars: [\"error\", { \"ignoreRestSiblings\": true }] */\n        const {\n            element,\n            inputRef,\n            prefixComponent,\n            postfixComponent,\n            className,\n            onValidate,\n            children,\n            tooltipContent,\n            forceValidity,\n            tooltipClassName,\n            validateOnBlur,\n            validateOnChange,\n            validateOnFocus,\n            usePlaceholderAsHint,\n            forceTooltipVisible,\n            tooltipAlignment,\n            ...inputProps\n        } = this.props;\n\n        // Handle displaying feedback on validity\n        const tooltipProps: Pick<React.ComponentProps<typeof Tooltip>, \"aria-live\" | \"aria-atomic\"> = {};\n        let tooltipOpen = false;\n        if (tooltipContent || this.state.feedback) {\n            tooltipOpen = (this.state.focused && forceTooltipVisible) || this.state.feedbackVisible;\n\n            if (!tooltipContent) {\n                tooltipProps[\"aria-atomic\"] = \"true\";\n                tooltipProps[\"aria-live\"] = this.state.valid ? \"polite\" : \"assertive\";\n            }\n        }\n\n        inputProps.placeholder = inputProps.placeholder ?? inputProps.label;\n        inputProps.id = this.id; // this overwrites the id from props\n\n        inputProps.onFocus = this.onFocus;\n        inputProps.onChange = this.onChange;\n        inputProps.onBlur = this.onBlur;\n\n        // Appease typescript's inference\n        const inputProps_: React.HTMLAttributes<HTMLSelectElement | HTMLInputElement | HTMLTextAreaElement> &\n            React.ClassAttributes<HTMLSelectElement | HTMLInputElement | HTMLTextAreaElement> = {\n            ...inputProps,\n            ref: typeof this.props.inputRef === \"function\" ? this.callbackRef : this.inputRef,\n        };\n\n        const fieldInput = React.createElement(this.props.element, inputProps_, children);\n\n        let prefixContainer: JSX.Element | undefined;\n        if (prefixComponent) {\n            prefixContainer = <span className=\"mx_Field_prefix\">{prefixComponent}</span>;\n        }\n        let postfixContainer: JSX.Element | undefined;\n        if (postfixComponent) {\n            postfixContainer = <span className=\"mx_Field_postfix\">{postfixComponent}</span>;\n        }\n\n        const hasValidationFlag = forceValidity !== null && forceValidity !== undefined;\n        const fieldClasses = classNames(\"mx_Field\", `mx_Field_${this.props.element}`, className, {\n            // If we have a prefix element, leave the label always at the top left and\n            // don't animate it, as it looks a bit clunky and would add complexity to do\n            // properly.\n            mx_Field_labelAlwaysTopLeft: prefixComponent || usePlaceholderAsHint,\n            mx_Field_placeholderIsHint: usePlaceholderAsHint,\n            mx_Field_valid: hasValidationFlag ? forceValidity : onValidate && this.state.valid === true,\n            mx_Field_invalid: hasValidationFlag ? !forceValidity : onValidate && this.state.valid === false,\n        });\n\n        let inputDecoration: JSX.Element | undefined;\n        if (this.props.element === \"select\") {\n            inputDecoration = <ChevronDownIcon className=\"mx_Field_select_chevron\" />;\n        }\n\n        return (\n            <div className={fieldClasses}>\n                {prefixContainer}\n                <Tooltip\n                    {...tooltipProps}\n                    placement={tooltipAlignment}\n                    description=\"\"\n                    caption={tooltipContent || this.state.feedback}\n                    open={tooltipOpen}\n                    onOpenChange={this.onTooltipOpenChange}\n                >\n                    {fieldInput}\n                </Tooltip>\n                <label htmlFor={this.id}>{this.props.label}</label>\n                {inputDecoration}\n                {postfixContainer}\n            </div>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2015-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\nimport { InlineSpinner } from \"@vector-im/compound-web\";\n\nimport { _t } from \"../../../languageHandler\";\n\ninterface IProps {\n    size?: number;\n    message?: string;\n    onFinished: any; // XXX: Spinner pretends to be a dialog so it must accept an onFinished, but it never calls it\n    /**\n     * Whether to render the content in a div or span.\n     * @default \"div\"\n     */\n    as?: \"span\" | \"div\";\n}\n\nexport default class Spinner extends React.PureComponent<IProps> {\n    public static defaultProps: Partial<IProps> = {\n        size: 32,\n    };\n\n    public render(): React.ReactNode {\n        const { size, message, as: Component = \"div\" } = this.props;\n        return (\n            <Component className=\"mx_Spinner\">\n                {message && (\n                    <React.Fragment>\n                        <div className=\"mx_Spinner_Msg\">{message}</div>&nbsp;\n                    </React.Fragment>\n                )}\n                <InlineSpinner size={size} aria-label={_t(\"common|loading\")} role=\"progressbar\" data-testid=\"spinner\" />\n            </Component>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2023 The Matrix.org Foundation C.I.C.\nCopyright 2017 Michael Telatynski <7t3chguy@gmail.com>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type JSX } from \"react\";\n\nimport { useAsyncMemo } from \"../../../hooks/useAsyncMemo\";\n\ninterface Props {\n    language?: string;\n    children: string;\n}\n\nexport default function SyntaxHighlight({ children, language }: Props): JSX.Element {\n    const highlighted = useAsyncMemo(async () => {\n        const { default: highlight } = await import(\"highlight.js\");\n        return language ? highlight.highlight(children, { language }) : highlight.highlightAuto(children);\n    }, [language, children]);\n\n    return (\n        <pre className={`mx_SyntaxHighlight hljs language-${highlighted?.language}`}>\n            {highlighted ? <code dangerouslySetInnerHTML={{ __html: highlighted.value }} /> : children}\n        </pre>\n    );\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020, 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ComponentType, type ReactNode } from \"react\";\nimport { Button } from \"@vector-im/compound-web\";\n\nimport { type XOR } from \"../../../@types/common\";\n\nexport interface IProps {\n    description: ReactNode;\n    detail?: ReactNode;\n    primaryLabel: string;\n    PrimaryIcon?: ComponentType<React.SVGAttributes<SVGElement>>;\n\n    onPrimaryClick(this: void): void;\n}\n\ninterface IPropsExtended extends IProps {\n    secondaryLabel: string;\n    SecondaryIcon?: ComponentType<React.SVGAttributes<SVGElement>>;\n    destructive?: \"primary\" | \"secondary\";\n    onSecondaryClick(this: void): void;\n\n    // If set, this will override the max-width (of the description) making the toast wider or narrower than standard\n    overrideWidth?: string;\n}\n\nconst GenericToast: React.FC<XOR<IPropsExtended, IProps>> = ({\n    description,\n    detail,\n    primaryLabel,\n    PrimaryIcon,\n    secondaryLabel,\n    SecondaryIcon,\n    destructive,\n    onPrimaryClick,\n    onSecondaryClick,\n    overrideWidth,\n}) => {\n    const detailContent = detail ? <div className=\"mx_Toast_detail\">{detail}</div> : null;\n\n    return (\n        <div>\n            <div className=\"mx_Toast_description\" style={{ maxWidth: overrideWidth }}>\n                {description}\n                {detailContent}\n            </div>\n            <div className=\"mx_Toast_buttons\" aria-live=\"off\">\n                {onSecondaryClick && secondaryLabel && (\n                    <Button\n                        onClick={onSecondaryClick}\n                        kind={destructive === \"secondary\" ? \"destructive\" : \"secondary\"}\n                        Icon={SecondaryIcon}\n                        size=\"md\"\n                    >\n                        {secondaryLabel}\n                    </Button>\n                )}\n                <Button\n                    onClick={onPrimaryClick}\n                    kind={destructive === \"primary\" ? \"destructive\" : \"primary\"}\n                    Icon={PrimaryIcon}\n                    size=\"md\"\n                >\n                    {primaryLabel}\n                </Button>\n            </div>\n        </div>\n    );\n};\n\nexport default GenericToast;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type HTMLAttributes } from \"react\";\nimport classNames from \"classnames\";\n\ntype Size = \"1\" | \"2\" | \"3\" | \"4\";\n\ntype HTMLHeadingTags = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\ninterface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {\n    /**\n     * Defines the type of heading used\n     */\n    as?: HTMLHeadingTags;\n    /**\n     * Defines the appearance of the heading\n     * Falls back to the type of heading used if `as` is not provided\n     */\n    size: Size;\n}\n\nconst Heading: React.FC<HeadingProps> = ({ as, size = \"1\", className, children, ...rest }) =>\n    React.createElement(as || `h${size}`, {\n        ...rest,\n        className: classNames(`mx_Heading_h${size}`, className),\n        children,\n    });\n\nexport default Heading;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ComponentClass, createContext, useContext } from \"react\";\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\n// This context is available to components under LoggedInView,\n// the context must not be used by components outside a MatrixClientContext tree.\n// This assertion allows us to make the type not nullable.\nconst MatrixClientContext = createContext<MatrixClient>(null as any);\nMatrixClientContext.displayName = \"MatrixClientContext\";\nexport default MatrixClientContext;\n\nexport interface MatrixClientProps {\n    mxClient: MatrixClient;\n}\n\nexport function useMatrixClientContext(): MatrixClient {\n    return useContext(MatrixClientContext);\n}\n\nconst matrixHOC =\n    <ComposedComponentProps extends object>(\n        ComposedComponent: ComponentClass<ComposedComponentProps>,\n    ): ((\n        props: Omit<ComposedComponentProps, \"mxClient\"> & React.RefAttributes<InstanceType<typeof ComposedComponent>>,\n    ) => React.ReactElement | null) =>\n    (props) => {\n        const client = useContext(MatrixClientContext);\n\n        // @ts-ignore\n        return <ComposedComponent {...props} mxClient={client} />;\n    };\nexport const withMatrixClientHOC = matrixHOC;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { createContext } from \"react\";\n\nimport { type IRoomState } from \"../components/structures/RoomView\";\nimport { Layout } from \"../settings/enums/Layout\";\nimport { type RoomViewStore } from \"../stores/RoomViewStore\";\n\nexport enum TimelineRenderingType {\n    Room = \"Room\",\n    Thread = \"Thread\",\n    ThreadsList = \"ThreadsList\",\n    File = \"File\",\n    Notification = \"Notification\",\n    Search = \"Search\",\n    Pinned = \"Pinned\",\n}\n\n// This defines the content of the mainSplit.\n// If the mainSplit does not contain the Timeline, the chat is shown in the right panel.\nexport enum MainSplitContentType {\n    Timeline,\n    MaximisedWidget,\n    Call,\n}\n\nexport interface RoomContextType extends IRoomState {\n    threadId?: string;\n    roomViewStore: RoomViewStore;\n}\n\nconst RoomContext = createContext<RoomContextType>({\n    roomLoading: true,\n    peekLoading: false,\n    shouldPeek: true,\n    membersLoaded: false,\n    numUnreadMessages: 0,\n    canPeek: false,\n    showApps: false,\n    isPeeking: false,\n    showRightPanel: true,\n    joining: false,\n    showTopUnreadMessagesBar: false,\n    statusBarVisible: false,\n    canReact: false,\n    canSelfRedact: false,\n    canSendMessages: false,\n    resizing: false,\n    layout: Layout.Group,\n    lowBandwidth: false,\n    alwaysShowTimestamps: false,\n    showTwelveHourTimestamps: false,\n    userTimezone: undefined,\n    readMarkerInViewThresholdMs: 3000,\n    readMarkerOutOfViewThresholdMs: 30000,\n    showHiddenEvents: false,\n    showReadReceipts: true,\n    showRedactions: true,\n    showJoinLeaves: true,\n    showAvatarChanges: true,\n    showDisplaynameChanges: true,\n    matrixClientIsReady: false,\n    showUrlPreview: false,\n    timelineRenderingType: TimelineRenderingType.Room,\n    mainSplitContentType: MainSplitContentType.Timeline,\n    threadId: undefined,\n    liveTimeline: undefined,\n    narrow: false,\n    msc3946ProcessDynamicPredecessor: false,\n    canAskToJoin: false,\n    promptAskToJoin: false,\n    viewRoomOpts: { buttons: [] },\n    isRoomEncrypted: null,\n    // roomViewStore should always be present as it is passed to RoomView constructor.\n    // In time when we migrate the RoomView to MVVM it will cease to exist(become a ViewModel).\n    roomViewStore: undefined!,\n});\nRoomContext.displayName = \"RoomContext\";\nexport default RoomContext;\n","/*\nCopyright 2026 Element Creations Ltd.\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { createContext } from \"react\";\n\nimport { type SDKContextClass } from \"./SDKContextClass\";\n\n// This context is available to components under MatrixChat,\n// the context must not be used by components outside a SDKContextClass tree.\n// This assertion allows us to make the type not nullable.\n// This file is deliberately kept separate from the actual instantiation of the\n// stores to keep just a type import to the SDKContextClass itself.\nexport const SDKContext = createContext<SDKContextClass>(null as any);\nSDKContext.displayName = \"SDKContext\";\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { AliasCustomisations } from \"@element-hq/element-web-module-api\";\n\n// A real customisation module will define and export one or more of the\n// customisation points that make up `AliasCustomisations`.\nexport default {} as AliasCustomisations;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type ChatExportCustomisations } from \"@element-hq/element-web-module-api\";\n\nimport { type ExportFormat, type ExportType } from \"../utils/exportUtils/exportUtils\";\n\nexport type ForceChatExportParameters = ReturnType<\n    ChatExportCustomisations<ExportFormat, ExportType>[\"getForceChatExportParameters\"]\n>;\n\n/**\n * Force parameters in room chat export\n * fields returned here are forced\n * and not allowed to be edited in the chat export form\n */\nconst getForceChatExportParameters = (): ForceChatExportParameters => {\n    return {};\n};\n\n// A real customisation module will define and export one or more of the\n// customisation points that make up `IChatExportCustomisations`.\nexport default {\n    getForceChatExportParameters,\n} as ChatExportCustomisations<ExportFormat, ExportType>;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// Dev note: this customisation point is heavily inspired by UIFeature flags, though\n// with an intention of being used for more complex switching on whether or not a feature\n// should be shown.\n\n// Populate this class with the details of your customisations when copying it.\n\nimport { type ComponentVisibilityCustomisations as IComponentVisibilityCustomisations } from \"@element-hq/element-web-module-api\";\n\n// A real customisation module will define and export one or more of the\n// customisation points that make up the interface above.\nexport const ComponentVisibilityCustomisations: IComponentVisibilityCustomisations = {\n    // while we don't specify the functions here, their defaults are described\n    // in their pseudo-implementations above.\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { DirectoryCustomisations } from \"@element-hq/element-web-module-api\";\n\n// A real customisation module will define and export one or more of the\n// customisation points that make up `IDirectoryCustomisations`.\nexport default {} as DirectoryCustomisations;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { LifecycleCustomisations } from \"@element-hq/element-web-module-api\";\n\n// A real customisation module will define and export one or more of the\n// customisation points that make up `ILifecycleCustomisations`.\nexport default {} as LifecycleCustomisations;\n","/*\n * Copyright 2024 New Vector Ltd.\n * Copyright 2021 The Matrix.org Foundation C.I.C.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { type MatrixClient, parseErrorResponse, type ResizeMethod } from \"matrix-js-sdk/src/matrix\";\nimport { type MediaEventContent } from \"matrix-js-sdk/src/types\";\n\nimport type { MediaCustomisations, Media } from \"@element-hq/element-web-module-api\";\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\nimport { type IPreparedMedia, prepEventContentAsMedia } from \"./models/IMediaEventContent\";\nimport { UserFriendlyError } from \"../languageHandler\";\n\n// Populate this class with the details of your customisations when copying it.\n\n// Implementation note: The Media class must complete the contract as shown here, though\n// the constructor can be whatever is relevant to your implementation. The mediaForX\n// functions below create an instance of the Media class and are used throughout the\n// project.\n\n/**\n * A media object is a representation of a \"source media\" and an optional\n * \"thumbnail media\", derived from event contents or external sources.\n */\nclass MediaImplementation implements Media {\n    private client: MatrixClient;\n\n    // Per above, this constructor signature can be whatever is helpful for you.\n    public constructor(\n        private prepared: IPreparedMedia,\n        client?: MatrixClient,\n    ) {\n        this.client = client ?? MatrixClientPeg.safeGet();\n        if (!this.client) {\n            throw new Error(\"No possible MatrixClient for media resolution. Please provide one or log in.\");\n        }\n    }\n\n    /**\n     * True if the media appears to be encrypted. Actual file contents may vary.\n     */\n    public get isEncrypted(): boolean {\n        return !!this.prepared.file;\n    }\n\n    /**\n     * The MXC URI of the source media.\n     */\n    public get srcMxc(): string {\n        return this.prepared.mxc;\n    }\n\n    /**\n     * The MXC URI of the thumbnail media, if a thumbnail is recorded. Null/undefined\n     * otherwise.\n     */\n    public get thumbnailMxc(): string | undefined {\n        return this.prepared.thumbnail?.mxc;\n    }\n\n    /**\n     * Whether or not a thumbnail is recorded for this media.\n     */\n    public get hasThumbnail(): boolean {\n        return !!this.thumbnailMxc;\n    }\n\n    /**\n     * The HTTP URL for the source media.\n     */\n    public get srcHttp(): string | null {\n        // eslint-disable-next-line no-restricted-properties\n        return this.client.mxcUrlToHttp(this.srcMxc, undefined, undefined, undefined, false, true) || null;\n    }\n\n    /**\n     * The HTTP URL for the thumbnail media (without any specified width, height, etc). Null/undefined\n     * if no thumbnail media recorded.\n     */\n    public get thumbnailHttp(): string | null {\n        if (!this.hasThumbnail) return null;\n        // eslint-disable-next-line no-restricted-properties\n        return this.client.mxcUrlToHttp(this.thumbnailMxc!, undefined, undefined, undefined, false, true);\n    }\n\n    /**\n     * Gets the HTTP URL for the thumbnail media with the requested characteristics, if a thumbnail\n     * is recorded for this media. Returns null/undefined otherwise.\n     * @param {number} width The desired width of the thumbnail.\n     * @param {number} height The desired height of the thumbnail.\n     * @param {\"scale\"|\"crop\"} mode The desired thumbnailing mode. Defaults to scale.\n     * @returns {string} The HTTP URL which points to the thumbnail.\n     */\n    public getThumbnailHttp(width: number, height: number, mode: ResizeMethod = \"scale\"): string | null {\n        if (!this.hasThumbnail) return null;\n        // scale using the device pixel ratio to keep images clear\n        width = Math.floor(width * window.devicePixelRatio);\n        height = Math.floor(height * window.devicePixelRatio);\n        // eslint-disable-next-line no-restricted-properties\n        return this.client.mxcUrlToHttp(this.thumbnailMxc!, width, height, mode, false, true);\n    }\n\n    /**\n     * Gets the HTTP URL for a thumbnail of the source media with the requested characteristics.\n     * @param {number} width The desired width of the thumbnail.\n     * @param {number} height The desired height of the thumbnail.\n     * @param {\"scale\"|\"crop\"} mode The desired thumbnailing mode. Defaults to scale.\n     * @returns {string} The HTTP URL which points to the thumbnail.\n     */\n    public getThumbnailOfSourceHttp(width: number, height: number, mode: ResizeMethod = \"scale\"): string | null {\n        // scale using the device pixel ratio to keep images clear\n        width = Math.floor(width * window.devicePixelRatio);\n        height = Math.floor(height * window.devicePixelRatio);\n        // eslint-disable-next-line no-restricted-properties\n        return this.client.mxcUrlToHttp(this.srcMxc, width, height, mode, false, true);\n    }\n\n    /**\n     * Creates a square thumbnail of the media. If the media has a thumbnail recorded, that MXC will\n     * be used, otherwise the source media will be used.\n     * @param {number} dim The desired width and height.\n     * @returns {string} An HTTP URL for the thumbnail.\n     */\n    public getSquareThumbnailHttp(dim: number): string | null {\n        dim = Math.floor(dim * window.devicePixelRatio); // scale using the device pixel ratio to keep images clear\n        if (this.hasThumbnail) {\n            return this.getThumbnailHttp(dim, dim, \"crop\");\n        }\n        return this.getThumbnailOfSourceHttp(dim, dim, \"crop\");\n    }\n\n    /**\n     * Downloads the source media.\n     * @returns {Promise<Response>} Resolves to the server's response for chaining.\n     */\n    public async downloadSource(): Promise<Response> {\n        const src = this.srcHttp;\n        if (!src) {\n            throw new UserFriendlyError(\"error|download_media\");\n        }\n        const res = await fetch(src);\n        if (!res.ok) {\n            throw parseErrorResponse(res, await res.text());\n        }\n        return res;\n    }\n}\n\nexport type { Media };\n\ntype BaseMedia = MediaCustomisations<Partial<MediaEventContent>, MatrixClient, IPreparedMedia>;\n\n/**\n * Creates a media object from event content.\n * @param {MediaEventContent} content The event content.\n * @param {MatrixClient} client Optional client to use.\n * @returns {MediaImplementation} The media object.\n */\nexport const mediaFromContent: BaseMedia[\"mediaFromContent\"] = (\n    content: Partial<MediaEventContent>,\n    client?: MatrixClient,\n): Media => new MediaImplementation(prepEventContentAsMedia(content), client);\n\n/**\n * Creates a media object from an MXC URI.\n * @param {string} mxc The MXC URI.\n * @param {MatrixClient} client Optional client to use.\n * @returns {MediaImplementation} The media object.\n */\nexport const mediaFromMxc: BaseMedia[\"mediaFromMxc\"] = (mxc?: string, client?: MatrixClient): Media => {\n    return mediaFromContent({ url: mxc }, client);\n};\n","/*\n * Copyright 2024 New Vector Ltd.\n * Copyright 2021 The Matrix.org Foundation C.I.C.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { type EncryptedFile, type MediaEventContent } from \"matrix-js-sdk/src/types\";\n\nexport interface IPreparedMedia extends IMediaObject {\n    thumbnail?: IMediaObject;\n}\n\nexport interface IMediaObject {\n    mxc: string;\n    file?: EncryptedFile;\n}\n\n/**\n * Parses an event content body into a prepared media object. This prepared media object\n * can be used with other functions to manipulate the media.\n * @param {MediaEventContent} content Unredacted media event content. See interface.\n * @returns {IPreparedMedia} A prepared media object.\n * @throws Throws if the given content cannot be packaged into a prepared media object.\n */\nexport function prepEventContentAsMedia(content: Partial<MediaEventContent>): IPreparedMedia {\n    let thumbnail: IMediaObject | undefined;\n    if (typeof content?.info === \"object\" && \"thumbnail_url\" in content.info && content.info.thumbnail_url) {\n        thumbnail = {\n            mxc: content.info.thumbnail_url,\n            file: content.info.thumbnail_file,\n        };\n    } else if (\n        typeof content?.info === \"object\" &&\n        \"thumbnail_file\" in content.info &&\n        typeof content?.info?.thumbnail_file === \"object\" &&\n        content?.info?.thumbnail_file?.url\n    ) {\n        thumbnail = {\n            mxc: content.info.thumbnail_file.url,\n            file: content.info.thumbnail_file,\n        };\n    }\n\n    if (content?.url) {\n        return {\n            thumbnail,\n            mxc: content.url,\n            file: content.file,\n        };\n    } else if (content?.file?.url) {\n        return {\n            thumbnail,\n            mxc: content.file.url,\n            file: content.file,\n        };\n    }\n\n    throw new Error(\"Invalid file provided: cannot determine MXC URI. Has it been redacted?\");\n}\n","/*\n * Copyright 2024 New Vector Ltd.\n * Copyright 2020 The Matrix.org Foundation C.I.C.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { type Room } from \"matrix-js-sdk/src/matrix\";\n\nimport type { RoomListCustomisations as IRoomListCustomisations } from \"@element-hq/element-web-module-api\";\n\n// Populate this file with the details of your customisations when copying it.\n\n// A real customisation module will define and export one or more of the\n// customisation points that make up the interface above.\nexport const RoomListCustomisations: IRoomListCustomisations<Room> = {};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { UserIdentifierCustomisations } from \"@element-hq/element-web-module-api\";\n\n/**\n * Customise display of the user identifier\n * hide userId for guests, display 3pid\n *\n * Set withDisplayName to true when user identifier will be displayed alongside user name\n */\nfunction getDisplayUserIdentifier(\n    userId: string,\n    { roomId, withDisplayName }: { roomId?: string; withDisplayName?: boolean },\n): string | null {\n    return userId;\n}\n\n// A real customisation module will define and export one or more of the\n// customisation points that make up `IUserIdentifierCustomisations`.\nexport default {\n    getDisplayUserIdentifier,\n} as UserIdentifierCustomisations;\n","/*\n * Copyright 2024 New Vector Ltd.\n * Copyright 2020 The Matrix.org Foundation C.I.C.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\n// Populate this class with the details of your customisations when copying it.\nimport { type Capability, type Widget } from \"matrix-widget-api\";\n\nimport type { WidgetPermissionsCustomisations } from \"@element-hq/element-web-module-api\";\n\n// A real customisation module will define and export one or more of the\n// customisation points that make up the interface above.\nexport const WidgetPermissionCustomisations: WidgetPermissionsCustomisations<Widget, Capability> = {};\n","/*\n * Copyright 2024 New Vector Ltd.\n * Copyright 2021 The Matrix.org Foundation C.I.C.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\n// Populate this class with the details of your customisations when copying it.\nimport { type WidgetVariablesCustomisations } from \"@element-hq/element-web-module-api\";\n\n// A real customisation module will define and export one or more of the\n// customisation points that make up the interface above.\nexport const WidgetVariableCustomisations: WidgetVariablesCustomisations = {};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// Dispatcher actions also extend into any arbitrary string, so support that.\nexport type DispatcherAction = Action | string;\n\nexport enum Action {\n    // TODO: Populate with actual actions\n    // This is lazily generated as it also includes fixing a bunch of references. Work\n    // that we don't really want to take on in a giant chunk. We should always define\n    // new actions here, and ideally when we touch existing ones we take some time to\n    // define them correctly.\n\n    // When defining a new action, please use lower_scored_case with an optional class\n    // name prefix. For example, `RoomListStore.view_room` or `view_user_settings`.\n    // New definitions should also receive an accompanying interface in the payloads\n    // directory.\n\n    /**\n     * View a user's profile. Should be used with a ViewUserPayload.\n     */\n    ViewUser = \"view_user\",\n\n    /**\n     * Share a text message by forwarding it to a room selected by the user\n     */\n    Share = \"share\",\n\n    /**\n     * Open the user settings. No additional payload information required.\n     * Optionally can include an OpenToTabPayload.\n     */\n    ViewUserSettings = \"view_user_settings\",\n\n    /**\n     * Open the user device settings. No additional payload information required.\n     */\n    ViewUserDeviceSettings = \"view_user_device_settings\",\n\n    /**\n     * Opens the QR login flow. Only valid during authentication. No additional payload information required.\n     */\n    ViewQrLogin = \"view_qr_login\",\n\n    /**\n     * Opens the room directory. No additional payload information required.\n     */\n    ViewRoomDirectory = \"view_room_directory\",\n\n    /**\n     * Fires when viewing room by room_alias fails to find room\n     */\n    ViewRoomError = \"view_room_error\",\n\n    /**\n     * Navigates to app home\n     */\n    ViewHomePage = \"view_home_page\",\n\n    /**\n     * Forces the theme to reload. No additional payload information required.\n     */\n    RecheckTheme = \"recheck_theme\",\n\n    /**\n     * Provide status information for an ongoing update check. Should be used with a CheckUpdatesPayload.\n     */\n    CheckUpdates = \"check_updates\",\n\n    /**\n     * Focuses the user's cursor to the send message composer. Should be used with a FocusComposerPayload.\n     */\n    FocusSendMessageComposer = \"focus_send_message_composer\",\n\n    /**\n     * Clear the  to the send message composer. Should be used with a FocusComposerPayload.\n     */\n    ClearAndFocusSendMessageComposer = \"clear_focus_send_message_composer\",\n\n    /**\n     * Focuses the user's cursor to the edit message composer. Should be used with a FocusComposerPayload.\n     */\n    FocusEditMessageComposer = \"focus_edit_message_composer\",\n\n    /**\n     * Focuses the user's cursor to the edit message composer or send message\n     * composer based on the current edit state. Should be used with a FocusComposerPayload.\n     */\n    FocusAComposer = \"focus_a_composer\",\n\n    /**\n     * Focuses the threads panel.\n     */\n    FocusThreadsPanel = \"focus_threads_panel\",\n\n    /**\n     * Opens the user menu (previously known as the top left menu). No additional payload information required.\n     */\n    ToggleUserMenu = \"toggle_user_menu\",\n\n    /**\n     * Toggles the Space panel. No additional payload information required.\n     */\n    ToggleSpacePanel = \"toggle_space_panel\",\n\n    /**\n     * Sets the apps root font size. Should be used with UpdateFontSizePayload\n     */\n    MigrateBaseFontSize = \"migrate_base_font_size\",\n\n    /**\n     * Sets the apps root font size delta. Should be used with UpdateFontSizeDeltaPayload\n     * It will add the delta to the current font size.\n     * The delta should be between {@link FontWatcher.MIN_DELTA} and {@link FontWatcher.MAX_DELTA}.\n     */\n    UpdateFontSizeDelta = \"update_font_size_delta\",\n\n    /**\n     * Sets a system font. Should be used with UpdateSystemFontPayload\n     */\n    UpdateSystemFont = \"update_system_font\",\n\n    /**\n     * Changes room based on payload parameters. Should be used with ViewRoomPayload.\n     */\n    ViewRoom = \"view_room\",\n\n    /**\n     * Changes thread based on payload parameters. Should be used with ThreadPayload.\n     */\n    ViewThread = \"view_thread\",\n\n    /**\n     * Changes room based on room list order and payload parameters. Should be used with ViewRoomDeltaPayload.\n     */\n    ViewRoomDelta = \"view_room_delta\",\n\n    /**\n     * Opens the modal dial pad\n     */\n    OpenDialPad = \"open_dial_pad\",\n\n    /**\n     * Fired when an upload has started. Should be used with UploadStartedPayload.\n     */\n    UploadStarted = \"upload_started\",\n\n    /**\n     * Fired when an upload makes progress. Should be used with UploadProgressPayload.\n     */\n    UploadProgress = \"upload_progress\",\n\n    /**\n     * Fired when an upload is completed. Should be used with UploadFinishedPayload.\n     */\n    UploadFinished = \"upload_finished\",\n\n    /**\n     * Fired when an upload fails. Should be used with UploadErrorPayload.\n     */\n    UploadFailed = \"upload_failed\",\n\n    /**\n     * Fired when an upload is cancelled by the user. Should be used with UploadCanceledPayload.\n     */\n    UploadCanceled = \"upload_canceled\",\n\n    /**\n     * Fired when requesting to join a room. Should be used with JoinRoomPayload.\n     */\n    JoinRoom = \"join_room\",\n\n    /**\n     * Fired when successfully joining a room. Should be used with a JoinRoomReadyPayload.\n     */\n    JoinRoomReady = \"join_room_ready\",\n\n    /**\n     * Fired when joining a room failed\n     */\n    JoinRoomError = \"join_room_error\",\n\n    /**\n     * Fired when starting to bulk redact messages from a user in a room.\n     */\n    BulkRedactStart = \"bulk_redact_start\",\n\n    /**\n     * Fired when done bulk redacting messages from a user in a room.\n     */\n    BulkRedactEnd = \"bulk_redact_end\",\n\n    /**\n     * Inserts content into the active composer. Should be used with ComposerInsertPayload.\n     */\n    ComposerInsert = \"composer_insert\",\n\n    /**\n     * Inserts a file into a target composer.\n     */\n    ComposerFileInsert = \"composer_insert_file\",\n\n    /**\n     * Switches space. Should be used with SwitchSpacePayload.\n     */\n    SwitchSpace = \"switch_space\",\n\n    /**\n     * Signals to the visible space hierarchy that a change has occurred and that it should refresh.\n     */\n    UpdateSpaceHierarchy = \"update_space_hierarchy\",\n\n    /**\n     * Fires when a monitored setting is updated,\n     * see SettingsStore::monitorSetting for more details.\n     * Should be used with SettingUpdatedPayload.\n     */\n    SettingUpdated = \"setting_updated\",\n\n    /**\n     * Fires when a user starts to edit event (e.g. up arrow in compositor)\n     */\n    EditEvent = \"edit_event\",\n\n    /**\n     * The user accepted pseudonymous analytics (i.e. posthog) from the toast\n     * Payload: none\n     */\n    PseudonymousAnalyticsAccept = \"pseudonymous_analytics_accept\",\n\n    /**\n     * The user rejected pseudonymous analytics (i.e. posthog) from the toast\n     * Payload: none\n     */\n    PseudonymousAnalyticsReject = \"pseudonymous_analytics_reject\",\n\n    /**\n     * Dispatched after leave room or space is finished\n     */\n    AfterLeaveRoom = \"after_leave_room\",\n\n    /**\n     * Dispatched after a room has been successfully forgotten\n     * Should be used with AfterForgetRoomPayload.\n     */\n    AfterForgetRoom = \"after_forget_room\",\n\n    /**\n     * Used to defer actions until after sync is complete\n     * LifecycleStore will emit deferredAction payload after 'MatrixActions.sync'\n     */\n    DoAfterSyncPrepared = \"do_after_sync_prepared\",\n\n    /**\n     * Fired when clicking user name from group view\n     */\n    ViewStartChatOrReuse = \"view_start_chat_or_reuse\",\n\n    /**\n     * Fired when the user's active room changed, possibly from/to a non-room view.\n     * Payload: ActiveRoomChangedPayload\n     */\n    ActiveRoomChanged = \"active_room_changed\",\n\n    /**\n     * Fired when the forward dialog needs to be opened.\n     * Payload: OpenForwardDialogPayload\n     */\n    OpenForwardDialog = \"open_forward_dialog\",\n\n    /**\n     * Fired when the \"report event\" dialog needs to be opened.\n     * Payload: OpenReportEventDialogPayload.\n     */\n    OpenReportEventDialog = \"open_report_event_dialog\",\n\n    /**\n     * Fired when something within the application has determined that a logout,\n     * or logout-like behaviour, needs to happen. Specifically meant to target\n     * storage deletion rather than calling the logout API.\n     *\n     * No payload.\n     */\n    TriggerLogout = \"trigger_logout\",\n\n    /**\n     * Opens the user's preferences for the given space. Used with a OpenSpacePreferencesPayload.\n     */\n    OpenSpacePreferences = \"open_space_preferences\",\n\n    /**\n     * Opens the settings for the given space. Used with a OpenSpaceSettingsPayload.\n     */\n    OpenSpaceSettings = \"open_space_settings\",\n\n    /**\n     * Opens the invite dialog. Used with a OpenInviteDialogPayload.\n     */\n    OpenInviteDialog = \"open_invite_dialog\",\n\n    /**\n     * Opens a dialog to add an existing object to a space. Used with a OpenAddExistingToSpaceDialogPayload.\n     */\n    OpenAddToExistingSpaceDialog = \"open_add_to_existing_space_dialog\",\n\n    /**\n     * Let components know that they should log any useful debugging information\n     * because we're probably about to send bug report which includes all of the\n     * logs. Fires with no payload.\n     */\n    DumpDebugLogs = \"dump_debug_logs\",\n\n    /**\n     * Show current room topic\n     */\n    ShowRoomTopic = \"show_room_topic\",\n\n    /**\n     * Fired when the client is no longer viable to use: specifically, that we have been \"soft-logged out\".\n     */\n    ClientNotViable = \"client_not_viable\",\n\n    /**\n     * Fired when the client was logged out. No additional payload information required.\n     */\n    OnLoggedOut = \"on_logged_out\",\n\n    /**\n     * Fired when the client was logged in, or has otherwise been set up with authentication data (e.g., by loading the\n     * access token from local storage). Note that this does not necessarily mean that a login action has happened,\n     * just that authentication creds have been set up.\n     *\n     * Use with a OnLoggedInPayload.\n     */\n    OnLoggedIn = \"on_logged_in\",\n\n    /**\n     * Fired when the client is about to be started, shortly after {@link OnLoggedIn}.\n     *\n     * No additional payload information required.\n     */\n    WillStartClient = \"will_start_client\",\n\n    /**\n     * Fired when the client has started, shortly after {@link WillStartClient}.\n     *\n     * No additional payload information required.\n     */\n    ClientStarted = \"client_started\",\n\n    /**\n     * Overwrites the existing login with fresh session credentials. Use with a OverwriteLoginPayload.\n     */\n    OverwriteLogin = \"overwrite_login\",\n\n    /**\n     * Fired when we want to view a thread, either a new one or an existing one\n     */\n    ShowThread = \"show_thread\",\n\n    /**\n     * Fired when requesting to prompt for ask to join a room.\n     */\n    PromptAskToJoin = \"prompt_ask_to_join\",\n\n    /**\n     * Fired when requesting to submit an ask to join a room. Use with a SubmitAskToJoinPayload.\n     */\n    SubmitAskToJoin = \"submit_ask_to_join\",\n\n    /**\n     * Fired when requesting to cancel an ask to join a room. Use with a CancelAskToJoinPayload.\n     */\n    CancelAskToJoin = \"cancel_ask_to_join\",\n\n    /**\n     * Fired when we want to open spotlight search. Use with a OpenSpotlightPayload.\n     */\n    OpenSpotlight = \"open_spotlight\",\n\n    /**\n     * Fired when the room loaded.\n     */\n    RoomLoaded = \"room_loaded\",\n\n    /**\n     * Opens right panel with 3pid invite information\n     */\n    View3pidInvite = \"view_3pid_invite\",\n\n    /**\n     * Opens right panel room summary and focuses the search input. Use with a FocusMessageSearchPayload.\n     */\n    FocusMessageSearch = \"focus_search\",\n\n    /**\n     * Open the direct message dialog\n     */\n    CreateChat = \"view_create_chat\",\n\n    /**\n     * Open the create room dialog\n     */\n    CreateRoom = \"view_create_room\",\n\n    /**\n     * The `UserActivity` tracker determined that there was some activity from the user (typically a mouse movement\n     * or keyboard event).\n     */\n    UserActivity = \"user_activity\",\n\n    /**\n     * Fired to request collapsing all room list sections.\n     */\n    RoomListCollapseAllSections = \"room_list_collapse_all_sections\",\n\n    /**\n     * Fired to request expanding all room list sections.\n     */\n    RoomListExpandAllSections = \"room_list_expand_all_sections\",\n\n    /**\n     * Fired to report the collapse state of a given room list section.\n     * Payload: {@link RoomListSectionsCollapseStateChangedPayload}\n     */\n    RoomListSectionsCollapseStateChanged = \"room_list_sections_collapse_state_changed\",\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 New Vector Ltd\nCopyright 2015, 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type Action } from \"./actions\";\nimport { type ActionPayload, AsyncActionPayload } from \"./payloads\";\n\ntype DispatchToken = string;\n\nfunction invariant(cond: any, error: string): void {\n    if (!cond) throw new Error(error);\n}\n\n/**\n * A dispatcher for ActionPayloads (the default within the SDK).\n * Based on the old Flux dispatcher https://github.com/facebook/flux/blob/main/src/Dispatcher.js\n */\nexport class MatrixDispatcher {\n    private readonly callbacks = new Map<DispatchToken, (payload: ActionPayload) => void>();\n    private readonly isHandled = new Map<DispatchToken, boolean>();\n    private readonly isPending = new Map<DispatchToken, boolean>();\n    private pendingPayload?: ActionPayload;\n    private lastId = 1;\n\n    /**\n     * Registers a callback to be invoked with every dispatched payload. Returns\n     * a token that can be used with `waitFor()`.\n     */\n    public register(callback: (payload: ActionPayload) => void): DispatchToken {\n        const id = \"ID_\" + this.lastId++;\n        this.callbacks.set(id, callback);\n        if (this.isDispatching()) {\n            // If there is a dispatch happening right now then the newly registered callback should be skipped\n            this.isPending.set(id, true);\n            this.isHandled.set(id, true);\n        }\n        return id;\n    }\n\n    /**\n     * Removes a callback based on its token.\n     * @param id The token that was returned by `register`.\n     * Can be undefined to avoid needing an if around every caller.\n     */\n    public unregister(id: DispatchToken | undefined): void {\n        if (!id) return;\n        invariant(this.callbacks.has(id), `Dispatcher.unregister(...): '${id}' does not map to a registered callback.`);\n        this.callbacks.delete(id);\n    }\n\n    /**\n     * Waits for the callbacks specified to be invoked before continuing execution\n     * of the current callback. This method should only be used by a callback in\n     * response to a dispatched payload.\n     */\n    public waitFor(ids: DispatchToken[]): void {\n        invariant(this.isDispatching(), \"Dispatcher.waitFor(...): Must be invoked while dispatching.\");\n        for (const id of ids) {\n            if (this.isPending.get(id)) {\n                invariant(\n                    this.isHandled.get(id),\n                    `Dispatcher.waitFor(...): Circular dependency detected while waiting for '${id}'.`,\n                );\n                continue;\n            }\n            invariant(\n                this.callbacks.get(id),\n                `Dispatcher.waitFor(...): '${id}' does not map to a registered callback.`,\n            );\n            this.invokeCallback(id);\n        }\n    }\n\n    /**\n     * Dispatches a payload to all registered callbacks.\n     */\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    private _dispatch = (payload: ActionPayload): void => {\n        invariant(!this.isDispatching(), \"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.\");\n        this.startDispatching(payload);\n        try {\n            for (const [id] of this.callbacks) {\n                if (this.isPending.get(id)) {\n                    continue;\n                }\n                this.invokeCallback(id);\n            }\n        } finally {\n            this.stopDispatching();\n        }\n    };\n\n    /**\n     * Is this Dispatcher currently dispatching.\n     */\n    public isDispatching(): boolean {\n        return !!this.pendingPayload;\n    }\n\n    /**\n     * Call the callback stored with the given id. Also do some internal\n     * bookkeeping.\n     *\n     * Must only be called with an id which has a callback and pendingPayload set\n     * @internal\n     */\n    private invokeCallback(id: DispatchToken): void {\n        this.isPending.set(id, true);\n        this.callbacks.get(id)!(this.pendingPayload!);\n        this.isHandled.set(id, true);\n    }\n\n    /**\n     * Set up bookkeeping needed when dispatching.\n     *\n     * @internal\n     */\n    private startDispatching(payload: ActionPayload): void {\n        for (const [id] of this.callbacks) {\n            this.isPending.set(id, false);\n            this.isHandled.set(id, false);\n        }\n        this.pendingPayload = payload;\n    }\n\n    /**\n     * Clear bookkeeping used for dispatching.\n     *\n     * @internal\n     */\n    private stopDispatching(): void {\n        this.pendingPayload = undefined;\n    }\n\n    /**\n     * Dispatches an event on the dispatcher's event bus.\n     * @param {ActionPayload} payload Required. The payload to dispatch.\n     * @param {boolean=false} sync Optional. Pass true to dispatch\n     *        synchronously. This is useful for anything triggering\n     *        an operation that the browser requires user interaction\n     *        for. Default false (async).\n     */\n    public dispatch<T extends ActionPayload>(payload: T, sync = false): void {\n        if (payload instanceof AsyncActionPayload) {\n            payload.fn((action: ActionPayload) => {\n                this.dispatch(action, sync);\n            });\n            return;\n        }\n\n        if (sync) {\n            this._dispatch(payload);\n        } else {\n            // Unless the caller explicitly asked for us to dispatch synchronously,\n            // we always set a timeout to do this: The flux dispatcher complains\n            // if you dispatch from within a dispatch, so rather than action\n            // handlers having to worry about not calling anything that might\n            // then dispatch, we just do dispatches asynchronously.\n            window.setTimeout(this._dispatch, 0, payload);\n        }\n    }\n\n    /**\n     * Shorthand for dispatch({action: Action.WHATEVER}, sync). No additional\n     * properties can be included with this version.\n     * @param {Action} action The action to dispatch.\n     * @param {boolean=false} sync Whether the dispatch should be sync or not.\n     * @see dispatch(action: ActionPayload, sync: boolean)\n     */\n    public fire(action: Action, sync = false): void {\n        this.dispatch({ action }, sync);\n    }\n}\n\nconst defaultDispatcher = new MatrixDispatcher();\n\nif (!window.mxDispatcher) {\n    window.mxDispatcher = defaultDispatcher;\n}\n\nexport default defaultDispatcher;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type DispatcherAction } from \"./actions\";\n\n/**\n * The base dispatch type exposed by our dispatcher.\n */\nexport interface ActionPayload {\n    [property: string]: any; // effectively makes this 'extends Object'\n    action: DispatcherAction;\n}\n\n/**\n * Type guard to check if a payload is of a specific action type.\n * @param payload - the incoming payload to check\n * @param action - the action to return true for\n */\nexport function isAction<P extends ActionPayload>(payload: ActionPayload, action: P[\"action\"]): payload is P {\n    return payload.action === action;\n}\n\n/**\n * The function the dispatcher calls when ready for an AsyncActionPayload. The\n * single argument is used to start a dispatch. First the dispatcher calls the\n * outer function, then when the called function is ready it calls the cb\n * function to issue the dispatch. It may call the callback repeatedly if needed.\n */\nexport type AsyncActionFn = (cb: (action: ActionPayload) => void) => void;\n\n/**\n * An async version of ActionPayload\n */\nexport class AsyncActionPayload implements ActionPayload {\n    /**\n     * The function the dispatcher should call.\n     */\n    public readonly fn: AsyncActionFn;\n\n    /**\n     * @deprecated Not used on AsyncActionPayload.\n     */\n    public get action(): DispatcherAction {\n        return \"NOT_USED\";\n    }\n\n    /**\n     * Create a new AsyncActionPayload with the given ready function.\n     * @param {AsyncActionFn} readyFn The function to be called when the\n     * dispatcher is ready.\n     */\n    public constructor(readyFn: AsyncActionFn) {\n        this.fn = readyFn;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type ActionPayload } from \"../payloads\";\nimport { type Action } from \"../actions\";\nimport { type TimelineRenderingType } from \"../../contexts/RoomContext\";\n\nexport enum ComposerType {\n    Send = \"send\",\n    Edit = \"edit\",\n}\n\ninterface IBaseComposerInsertPayload extends ActionPayload {\n    action: Action.ComposerInsert;\n    timelineRenderingType: TimelineRenderingType;\n    composerType?: ComposerType; // falsy if should be re-dispatched to the correct composer\n}\n\ninterface IComposerInsertMentionPayload extends IBaseComposerInsertPayload {\n    userId: string;\n}\n\ninterface IComposerInsertPlaintextPayload extends IBaseComposerInsertPayload {\n    text: string;\n}\n\nexport type ComposerInsertPayload = IComposerInsertMentionPayload | IComposerInsertPlaintextPayload;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\nCopyright 2019 Tulir Asokan <tulir@maunium.net>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { orderBy } from \"lodash\";\nimport { type AccountDataEvents } from \"matrix-js-sdk/src/matrix\";\n\nimport SettingsStore from \"../settings/SettingsStore\";\nimport { SettingLevel } from \"../settings/SettingLevel\";\n\nexport type RecentEmojiData = AccountDataEvents[\"m.recent_emoji\"][\"recent_emoji\"];\nexport type LegacyRecentEmojiData = [emoji: string, count: number][];\n\n// XXX: We can get rid of the legacy account data handling towards the end of 2026.\ndeclare module \"matrix-js-sdk/src/types\" {\n    export interface AccountDataEvents {\n        \"io.element.recent_emoji\": { recent_emoji: LegacyRecentEmojiData };\n    }\n}\n\nconst SETTING_NAME = \"recent_emoji\";\n\n// we store more recents than we typically query but this lets us sort by weighted usage\n// even if you haven't used your typically favourite emoji for a little while.\nconst STORAGE_LIMIT = 100;\n\nfunction getRecentEmoji(): RecentEmojiData {\n    return SettingsStore.getValue(SETTING_NAME) || [];\n}\n\nexport function translateLegacyEmojiData(legacyData: LegacyRecentEmojiData): RecentEmojiData {\n    return legacyData.map(([emoji, total]) => ({\n        emoji,\n        total,\n    }));\n}\n\nexport function mergeEmojiData(data1: RecentEmojiData, data2?: RecentEmojiData): RecentEmojiData {\n    if (!data2) return data1;\n\n    return Object.values(\n        [...data1, ...data2].reduce(\n            (acc, item) => {\n                const existing = acc[item.emoji];\n\n                // If it doesn't exist or the current total is higher, update it\n                if (!existing || item.total > existing.total) {\n                    acc[item.emoji] = item;\n                }\n\n                return acc;\n            },\n            {} as Record<string, RecentEmojiData[number]>,\n        ),\n    );\n}\n\nexport function add(emoji: string): void {\n    const recents = getRecentEmoji();\n    const i = recents.findIndex((entry) => entry.emoji === emoji);\n\n    let newEntry: RecentEmojiData[number];\n    if (i >= 0) {\n        // first remove the existing tuple so that we can increment it and push it to the front\n        [newEntry] = recents.splice(i, 1);\n        newEntry.total++; // increment the usage count\n    } else {\n        newEntry = { emoji, total: 1 };\n    }\n\n    SettingsStore.setValue(SETTING_NAME, null, SettingLevel.ACCOUNT, [newEntry, ...recents].slice(0, STORAGE_LIMIT));\n}\n\nexport function get(limit = 24): string[] {\n    const recents = getRecentEmoji();\n\n    // perform a stable sort on `count` to keep the recent (date) order as a secondary sort factor\n    const sorted = orderBy(recents, \"total\", \"desc\");\n    return sorted.slice(0, limit).map(({ emoji }) => emoji);\n}\n","/*\nCopyright 2020-2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\ninterface IParams {\n    // colour parameters\n    bgColor: string;\n    textColor: string;\n    // font styling parameters\n    fontFamily: string;\n    fontWeight: \"normal\" | \"italic\" | \"bold\" | \"bolder\" | \"lighter\" | number;\n\n    // positioning parameters\n    isUp: boolean;\n    isLeft: boolean;\n}\n\nconst defaults: IParams = {\n    bgColor: \"#d00\",\n    textColor: \"#fff\",\n    fontFamily: \"sans-serif\", // Arial,Verdana,Times New Roman,serif,sans-serif,...\n    fontWeight: \"bold\", // normal,italic,oblique,bold,bolder,lighter,100,200,300,400,500,600,700,800,900\n\n    isUp: false,\n    isLeft: false,\n};\n\nabstract class IconRenderer {\n    protected readonly canvas: HTMLCanvasElement;\n    protected readonly context: CanvasRenderingContext2D;\n    public constructor(\n        protected readonly params: IParams = defaults,\n        protected readonly baseImage?: HTMLImageElement,\n    ) {\n        this.canvas = document.createElement(\"canvas\");\n        const context = this.canvas.getContext(\"2d\");\n        if (!context) {\n            throw Error(\"Could not get canvas context\");\n        }\n        this.context = context;\n    }\n\n    private options(\n        n: number | string,\n        params: IParams,\n    ): {\n        n: string | number;\n        len: number;\n        x: number;\n        y: number;\n        w: number;\n        h: number;\n    } {\n        const opt = {\n            n: typeof n === \"number\" ? Math.abs(n | 0) : n,\n            len: (\"\" + n).length,\n            // badge positioning constants as percentages\n            x: 0.4,\n            y: 0.4,\n            w: 0.6,\n            h: 0.6,\n        };\n\n        // apply positional transformations\n        if (params.isUp) {\n            if (opt.y < 0.6) {\n                opt.y = opt.y - 0.4;\n            } else {\n                opt.y = opt.y - 2 * opt.y + (1 - opt.w);\n            }\n        }\n        if (params.isLeft) {\n            if (opt.x < 0.6) {\n                opt.x = opt.x - 0.4;\n            } else {\n                opt.x = opt.x - 2 * opt.x + (1 - opt.h);\n            }\n        }\n\n        // scale the position to the canvas\n        opt.x = this.canvas.width * opt.x;\n        opt.y = this.canvas.height * opt.y;\n        opt.w = this.canvas.width * opt.w;\n        opt.h = this.canvas.height * opt.h;\n        return opt;\n    }\n\n    /**\n     * Draws a circualr status icon, usually over the top of the application icon.\n     * @param n The content of the circle. Should be a number or a single character.\n     * @param opts Options to adjust.\n     */\n    protected circle(n: number | string, opts?: Partial<IParams>): void {\n        const params = { ...this.params, ...opts };\n        const opt = this.options(n, params);\n\n        let more = false;\n        if (!this.baseImage) {\n            // If we omit the background, assume the entire canvas is our target.\n            opt.x = 0;\n            opt.y = 0;\n            opt.w = this.canvas.width;\n            opt.h = this.canvas.height;\n        }\n        if (opt.len === 2) {\n            opt.x = opt.x - opt.w * 0.4;\n            opt.w = opt.w * 1.4;\n            more = true;\n        } else if (opt.len >= 3) {\n            opt.x = opt.x - opt.w * 0.65;\n            opt.w = opt.w * 1.65;\n            more = true;\n        }\n\n        this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n        if (this.baseImage) {\n            this.context.drawImage(this.baseImage, 0, 0, this.canvas.width, this.canvas.height);\n        }\n        this.context.beginPath();\n        const fontSize = Math.floor(opt.h * (typeof opt.n === \"number\" && opt.n > 99 ? 0.85 : 1)) + \"px\";\n        this.context.font = `${params.fontWeight} ${fontSize} ${params.fontFamily}`;\n        this.context.textAlign = \"center\";\n\n        if (more) {\n            this.context.moveTo(opt.x + opt.w / 2, opt.y);\n            this.context.lineTo(opt.x + opt.w - opt.h / 2, opt.y);\n            this.context.quadraticCurveTo(opt.x + opt.w, opt.y, opt.x + opt.w, opt.y + opt.h / 2);\n            this.context.lineTo(opt.x + opt.w, opt.y + opt.h - opt.h / 2);\n            this.context.quadraticCurveTo(opt.x + opt.w, opt.y + opt.h, opt.x + opt.w - opt.h / 2, opt.y + opt.h);\n            this.context.lineTo(opt.x + opt.h / 2, opt.y + opt.h);\n            this.context.quadraticCurveTo(opt.x, opt.y + opt.h, opt.x, opt.y + opt.h - opt.h / 2);\n            this.context.lineTo(opt.x, opt.y + opt.h / 2);\n            this.context.quadraticCurveTo(opt.x, opt.y, opt.x + opt.h / 2, opt.y);\n        } else {\n            this.context.arc(opt.x + opt.w / 2, opt.y + opt.h / 2, opt.h / 2, 0, 2 * Math.PI);\n        }\n\n        this.context.fillStyle = params.bgColor;\n        this.context.fill();\n        this.context.closePath();\n        this.context.beginPath();\n        this.context.stroke();\n        this.context.fillStyle = params.textColor;\n\n        if (typeof opt.n === \"number\" && opt.n > 999) {\n            const count = (opt.n > 9999 ? 9 : Math.floor(opt.n / 1000)) + \"k+\";\n            this.context.fillText(count, Math.floor(opt.x + opt.w / 2), Math.floor(opt.y + opt.h - opt.h * 0.2));\n        } else {\n            this.context.fillText(\"\" + opt.n, Math.floor(opt.x + opt.w / 2), Math.floor(opt.y + opt.h - opt.h * 0.15));\n        }\n\n        this.context.closePath();\n    }\n}\n\nexport class BadgeOverlayRenderer extends IconRenderer {\n    public constructor() {\n        super();\n        // Overlays are 16x16 https://www.electronjs.org/docs/latest/api/browser-window#winsetoverlayiconoverlay-description-windows\n        this.canvas.width = 16;\n        this.canvas.height = 16;\n    }\n\n    /**\n     * Generate an overlay badge without the application icon, and export\n     * as an ArrayBuffer\n     * @param contents The content of the circle. Should be a number or a single character.\n     * @param bgColor Optional alternative background colo.r\n     * @returns An ArrayBuffer representing a 16x16 icon in `image/png` format, or `null` if no badge should be drawn.\n     */\n    public async render(contents: number | string, bgColor?: string): Promise<ArrayBuffer | null> {\n        if (contents === 0) {\n            return null;\n        }\n\n        this.circle(contents, { ...(bgColor ? { bgColor } : undefined) });\n        return new Promise((resolve, reject) => {\n            this.canvas.toBlob(\n                (blob) => {\n                    if (blob) {\n                        resolve(blob.arrayBuffer());\n                    }\n                    reject(new Error(\"Could not render badge overlay as blob\"));\n                },\n                \"image/png\",\n                1,\n            );\n        });\n    }\n}\n\n// multiple of 48 as per Google guidelines\n// multiple of 16 for higher quality scaling for small display\nconst DEFAULT_FAVICON_SIZE = 144;\n\n// Allows dynamic rendering of a circular badge atop the loaded favicon\n// supports colour, font and basic positioning parameters.\n// Based upon https://github.com/ejci/favico.js/blob/master/favico.js [MIT license]\nexport default class Favicon extends IconRenderer {\n    private readonly browser = {\n        ff: typeof window.InstallTrigger !== \"undefined\",\n        opera: !!window.opera || navigator.userAgent.includes(\"Opera\"),\n    };\n\n    private icons: HTMLLinkElement[];\n\n    private isReady = false;\n    // callback to run once isReady is asserted, allows for a badge to be queued for when it can be shown\n    private readyCb?: () => void;\n\n    public constructor() {\n        const baseImage = document.createElement(\"img\");\n        super(defaults, baseImage);\n\n        this.icons = Favicon.getIcons();\n\n        const lastIcon = this.icons[this.icons.length - 1];\n        if (lastIcon.hasAttribute(\"href\")) {\n            baseImage.setAttribute(\"crossOrigin\", \"anonymous\");\n            baseImage.onload = (): void => {\n                // get height and width of the favicon\n                this.canvas.height = baseImage.height > 0 ? baseImage.height : DEFAULT_FAVICON_SIZE;\n                this.canvas.width = baseImage.width > 0 ? baseImage.width : DEFAULT_FAVICON_SIZE;\n                this.ready();\n            };\n            baseImage.setAttribute(\"src\", lastIcon.getAttribute(\"href\")!);\n        } else {\n            this.canvas.height = baseImage.height = DEFAULT_FAVICON_SIZE;\n            this.canvas.width = baseImage.width = DEFAULT_FAVICON_SIZE;\n            this.ready();\n        }\n    }\n\n    private reset(): void {\n        this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n        this.context.drawImage(this.baseImage!, 0, 0, this.canvas.width, this.canvas.height);\n    }\n\n    private ready(): void {\n        if (this.isReady) return;\n        this.isReady = true;\n        this.readyCb?.();\n    }\n\n    private setIcon(canvas: HTMLCanvasElement): void {\n        setTimeout(() => {\n            this.setIconSrc(canvas.toDataURL(\"image/png\"));\n        }, 0);\n    }\n\n    private setIconSrc(url: string): void {\n        // if is attached to fav icon\n        if (this.browser.ff || this.browser.opera) {\n            // for FF we need to \"recreate\" element, attach to dom and remove old <link>\n            const old = this.icons[this.icons.length - 1];\n            const newIcon = window.document.createElement(\"link\");\n            this.icons = [newIcon];\n            newIcon.setAttribute(\"rel\", \"icon\");\n            newIcon.setAttribute(\"type\", \"image/png\");\n            window.document.getElementsByTagName(\"head\")[0].appendChild(newIcon);\n            newIcon.setAttribute(\"href\", url);\n            old.parentNode?.removeChild(old);\n        } else {\n            this.icons.forEach((icon) => {\n                icon.setAttribute(\"href\", url);\n            });\n        }\n    }\n\n    public badge(content: number | string, opts?: Partial<IParams>): void {\n        if (!this.isReady) {\n            this.readyCb = (): void => {\n                this.badge(content, opts);\n            };\n            return;\n        }\n\n        if (typeof content === \"string\" || content > 0) {\n            this.circle(content, opts);\n        } else {\n            this.reset();\n        }\n\n        this.setIcon(this.canvas);\n    }\n\n    private static getLinks(): HTMLLinkElement[] {\n        const icons: HTMLLinkElement[] = [];\n        const links = window.document.getElementsByTagName(\"head\")[0].getElementsByTagName(\"link\");\n        for (const link of links) {\n            if (link.hasAttribute(\"rel\") && /(^|\\s)icon(\\s|$)/i.test(link.getAttribute(\"rel\")!)) {\n                icons.push(link);\n            }\n        }\n        return icons;\n    }\n\n    private static getIcons(): HTMLLinkElement[] {\n        // get favicon link elements\n        let elms = Favicon.getLinks();\n        if (elms.length === 0) {\n            elms = [window.document.createElement(\"link\")];\n            elms[0].setAttribute(\"rel\", \"icon\");\n            window.document.getElementsByTagName(\"head\")[0].appendChild(elms[0]);\n        }\n        return elms;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { useState, useEffect, type DependencyList } from \"react\";\n\ntype Fn<T> = () => Promise<T>;\n\nexport function useAsyncMemo<T>(fn: Fn<T>, deps: DependencyList, initialValue: T): T;\nexport function useAsyncMemo<T>(fn: Fn<T>, deps: DependencyList, initialValue?: T): T | undefined;\nexport function useAsyncMemo<T>(fn: Fn<T>, deps: DependencyList, initialValue?: T): T | undefined {\n    const [value, setValue] = useState<T | undefined>(initialValue);\n    useEffect(() => {\n        let discard = false;\n        fn().then((v) => {\n            if (!discard) {\n                setValue(v);\n            }\n        });\n        return () => {\n            discard = true;\n        };\n    }, deps); // eslint-disable-line react-hooks/exhaustive-deps\n    return value;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { useRef, useEffect, useState, useCallback, type DependencyList } from \"react\";\nimport { type ListenerMap, type TypedEventEmitter } from \"matrix-js-sdk/src/matrix\";\n\nimport type { EventEmitter } from \"events\";\n\ntype Handler = (...args: any[]) => void;\n\nexport function useTypedEventEmitter<Events extends string, Arguments extends ListenerMap<Events>>(\n    emitter: TypedEventEmitter<Events, Arguments> | undefined,\n    eventName: Events,\n    handler: Handler,\n): void {\n    useEventEmitter(emitter, eventName, handler);\n}\n\n/**\n * Hook to wrap an EventEmitter on and off in hook lifecycle\n */\nexport function useEventEmitter(emitter: EventEmitter | undefined, eventName: string | symbol, handler: Handler): void {\n    // Create a ref that stores handler\n    const savedHandler = useRef(handler);\n\n    // Update ref.current value if handler changes.\n    useEffect(() => {\n        savedHandler.current = handler;\n    }, [handler]);\n\n    useEffect(\n        () => {\n            // allow disabling this hook by passing a falsy emitter\n            if (!emitter) return;\n\n            // Create event listener that calls handler function stored in ref\n            const eventListener = (...args: any[]): void => savedHandler.current(...args);\n\n            // Add event listener\n            emitter.on(eventName, eventListener);\n\n            // Remove event listener on cleanup\n            return () => {\n                emitter.off(eventName, eventListener);\n            };\n        },\n        [eventName, emitter], // Re-run if eventName or emitter changes\n    );\n}\n\ntype Mapper<T> = (...args: any[]) => T;\n\n/**\n * {@link useEventEmitterState}\n */\nexport function useTypedEventEmitterState<T, Events extends string, Arguments extends ListenerMap<Events>>(\n    emitter: TypedEventEmitter<Events, Arguments> | undefined,\n    eventName: Events,\n    fn: Mapper<T>,\n): T {\n    return useEventEmitterState<T>(emitter, eventName, fn);\n}\n\n/**\n * Creates a state, that can be updated by events.\n *\n * @param emitter The emitter sending the event\n * @param eventName Event name to listen for\n * @param fn The callback function, that should return the state value.\n *           It should have the signature of the event callback, except that all parameters are optional.\n *           If the params are not set, a default value for the state should be returned.\n * @returns State\n */\nexport function useEventEmitterState<T>(\n    emitter: EventEmitter | undefined,\n    eventName: string | symbol,\n    fn: Mapper<T>,\n): T {\n    const [value, setValue] = useState<T>(fn);\n    const handler = useCallback(\n        (...args: any[]) => {\n            setValue(fn(...args));\n        },\n        [fn],\n    );\n    // re-run when the emitter changes\n    useEffect(handler, [emitter]); // eslint-disable-line react-hooks/exhaustive-deps\n    useEventEmitter(emitter, eventName, handler);\n    return value;\n}\n\n/**\n * The return value of the callback function for `useEventEmitterAsyncState`.\n */\nexport type AsyncStateCallbackResult<T> = Promise<T | NoChange>;\n\n/**\n * Creates a state, which is computed asynchronously, and can be updated by events.\n *\n * Similar to `useEventEmitterState`, but the callback is `async`.\n *\n * If the event is emitted while the callback is running, it will wait until\n * after the callback completes before calling the callback again. If the event\n * is emitted multiple times while the callback is running, the callback will be\n * called once for each time the event was emitted, in the order that the events\n * were emitted.\n *\n * @param emitter The emitter sending the event\n * @param eventName Event name to listen for\n * @param fn The callback function, that should return the state value.\n *           It should have the signature of the event callback, except that all\n *           parameters are optional. If the params are not set, a default value\n *           for the state should be returned. If the state value should not\n *           change from its previous value, the function can return a `NoChange`\n *           object.\n * @param deps The dependencies of the callback function.\n * @param initialValue The initial value of the state, before the callback finishes its initial run.\n * @returns State\n */\nexport function useEventEmitterAsyncState<T, Events extends string, Arguments extends ListenerMap<Events>>(\n    emitter: TypedEventEmitter<Events, Arguments> | undefined,\n    eventName: string | symbol,\n    fn: Mapper<AsyncStateCallbackResult<T>>,\n    deps: DependencyList,\n    initialValue: T,\n): T;\nexport function useEventEmitterAsyncState<T, Events extends string, Arguments extends ListenerMap<Events>>(\n    emitter: TypedEventEmitter<Events, Arguments> | undefined,\n    eventName: string | symbol,\n    fn: Mapper<AsyncStateCallbackResult<T>>,\n    deps: DependencyList,\n    initialValue?: T,\n): T | undefined;\nexport function useEventEmitterAsyncState<T, Events extends string, Arguments extends ListenerMap<Events>>(\n    emitter: TypedEventEmitter<Events, Arguments> | undefined,\n    eventName: string | symbol,\n    fn: Mapper<AsyncStateCallbackResult<T>>,\n    deps: DependencyList,\n    initialValue?: T,\n): T | undefined {\n    const [value, setValue] = useState<T | undefined>(initialValue);\n\n    let running = false;\n    // If the handler is called while it's already running, we remember the\n    // arguments that it was called with, and call the handler again when the\n    // first call is done.\n    const rerunArgs: any[] = [];\n\n    const handler = useCallback(\n        (...args: any[]) => {\n            if (running) {\n                // We're already running, so remember the arguments we were\n                // called with, so that we can call the handler again when we're\n                // done.\n                rerunArgs.push(args);\n                return;\n            }\n            running = true; // eslint-disable-line react-hooks/exhaustive-deps\n            // Note: We need to use .then notation instead of async/await,\n            // because async/await would cause this function to return a\n            // promise, which `useEffect` doesn't like.\n            fn(...args)\n                .then((v) => {\n                    if (!(v instanceof NoChange)) {\n                        setValue(v);\n                    }\n                })\n                .finally(() => {\n                    running = false;\n                    if (rerunArgs.length != 0) {\n                        handler(...rerunArgs.shift());\n                    }\n                });\n        },\n        [fn, ...deps], // eslint-disable-line react-compiler/react-compiler, react-hooks/exhaustive-deps\n    );\n\n    // re-run when the emitter changes\n    useEffect(handler, [emitter, handler, ...deps]);\n    useEventEmitter(emitter, eventName, handler);\n    return value;\n}\n\n/**\n * Indicates that the callback for `useEventEmitterAsyncState` is not changing the value of the state.\n */\nexport class NoChange {}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { useEffect, useRef, useState } from \"react\";\n\ntype Handler = () => void;\n\n/**\n * Hook to simplify timeouts in functional components\n * @knipignore\n */\nexport const useTimeout = (handler: Handler, timeoutMs: number): void => {\n    // Create a ref that stores handler\n    const savedHandler = useRef<Handler>(undefined);\n\n    // Update ref.current value if handler changes.\n    useEffect(() => {\n        savedHandler.current = handler;\n    }, [handler]);\n\n    // Set up timer\n    useEffect(() => {\n        const timeoutID = window.setTimeout(() => {\n            savedHandler.current?.();\n        }, timeoutMs);\n        return () => clearTimeout(timeoutID);\n    }, [timeoutMs]);\n};\n\n// Hook to simplify intervals in functional components\nexport const useInterval = (handler: Handler, intervalMs: number): void => {\n    // Create a ref that stores handler\n    const savedHandler = useRef<Handler>(undefined);\n\n    // Update ref.current value if handler changes.\n    useEffect(() => {\n        savedHandler.current = handler;\n    }, [handler]);\n\n    // Set up timer\n    useEffect(() => {\n        const intervalID = window.setInterval(() => {\n            savedHandler.current?.();\n        }, intervalMs);\n        return () => clearInterval(intervalID);\n    }, [intervalMs]);\n};\n\n// Hook to simplify a variable counting down to 0, handler called when it reached 0\nexport const useExpiringCounter = (handler: Handler, intervalMs: number, initialCount: number): number => {\n    const [count, setCount] = useState(initialCount);\n    useInterval(() => setCount((c) => c - 1), intervalMs);\n    if (count === 0) {\n        handler();\n    }\n    return count;\n};\n","/*\n * Copyright 2025 New Vector Ltd.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\n/**\n * Query the browser for the user's language preferences\n */\nexport function getLanguagesFromBrowser(): readonly string[] {\n    if (navigator.languages && navigator.languages.length) return navigator.languages;\n    return [navigator.language ?? \"en\"];\n}\n\n/**\n * Query the browser for the user's primary language preference\n */\nexport function getLanguageFromBrowser(): string {\n    return getLanguagesFromBrowser()[0];\n}\n","/*\n * Copyright 2025 New Vector Ltd.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { type StringVariables } from \"@element-hq/web-shared-components\";\nimport { _t } from \"@element-hq/web-shared-components\";\n\nexport interface ErrorOptions {\n    // Because we're mixing the substitution variables and `cause` into the same object\n    // below, we want them to always explicitly say whether there is an underlying error\n    // or not to avoid typos of \"cause\" slipping through unnoticed.\n    cause: unknown | undefined;\n}\n\n/**\n * Used to rethrow an error with a user-friendly translatable message while maintaining\n * access to that original underlying error. Downstream consumers can display the\n * `translatedMessage` property in the UI and inspect the underlying error with the\n * `cause` property.\n *\n * The error message will display as English in the console and logs so Element\n * developers can easily understand the error and find the source in the code. It also\n * helps tools like Sentry deduplicate the error, or just generally searching in\n * rageshakes to find all instances regardless of the users locale.\n *\n * @param message - The untranslated error message text, e.g \"Something went wrong with %(foo)s\".\n * @param substitutionVariablesAndCause - Variable substitutions for the translation and\n * original cause of the error. If there is no cause, just pass `undefined`, e.g { foo:\n * 'bar', cause: err || undefined }\n */\nexport class UserFriendlyError extends Error {\n    public readonly translatedMessage: string;\n\n    public constructor(\n        message: TranslationKey,\n        substitutionVariablesAndCause?: Omit<StringVariables, keyof ErrorOptions> | ErrorOptions,\n    ) {\n        // Prevent \"Could not find /%\\(cause\\)s/g in x\" logs to the console by removing it from the list\n        const { cause, ...substitutionVariables } = substitutionVariablesAndCause ?? {};\n        const errorOptions = { cause };\n\n        // Create the error with the English version of the message that we want to show up in the logs\n        const englishTranslatedMessage = _t(message, { ...substitutionVariables, locale: \"en\" });\n        super(englishTranslatedMessage, errorOptions);\n\n        // Also provide a translated version of the error in the users locale to display\n        this.translatedMessage = _t(message, substitutionVariables);\n    }\n}\n","/*\n * Copyright 2025 New Vector Ltd.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport { retry } from \"../utils/promise\";\n\nconst i18nFolder = \"i18n/\";\n\ninterface ICounterpartTranslation {\n    [key: string]:\n        | string\n        | {\n              [pluralisation: string]: string;\n          };\n}\n\n/**\n * Fetch a language file with configurable retry behaviour\n * @param langPath the name of the language file within the i18n dir\n * @param num the number of times to retry\n */\nexport async function getLanguageRetry(langPath: string, num = 3): Promise<ICounterpartTranslation> {\n    return retry(\n        () => getLanguage(i18nFolder + langPath),\n        num,\n        (e) => {\n            logger.log(\"Failed to load i18n\", langPath);\n            logger.error(e);\n            return true; // always retry\n        },\n    );\n}\n\nasync function getLanguage(langPath: string): Promise<ICounterpartTranslation> {\n    const res = await fetch(langPath, { method: \"GET\" });\n\n    if (!res.ok) {\n        throw new Error(`Failed to load ${langPath}, got ${res.status}`);\n    }\n\n    return res.json();\n}\n","/*\n * Copyright 2025 New Vector Ltd.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { MapWithDefault } from \"matrix-js-sdk/src/utils\";\nimport _ from \"lodash\";\nimport { type TranslationStringsObject } from \"@matrix-org/react-sdk-module-api\";\nimport { KEY_SEPARATOR, registerTranslations } from \"@element-hq/web-shared-components\";\n\nimport SdkConfig from \"../SdkConfig\";\nimport { ModuleRunner } from \"../modules/ModuleRunner\";\n\nlet cachedCustomTranslations: TranslationStringsObject | undefined;\nlet cachedCustomTranslationsExpire = 0; // zero to trigger expiration right away\n\n/**\n * Any custom modules with translations to load are parsed first, followed by an\n * optionally defined translations file in the config. If no customization is made,\n * or the file can't be parsed, no action will be taken.\n *\n * This function should be called *after* registering other translations data to\n * ensure it overrides strings properly.\n */\nexport async function registerCustomTranslations({\n    testOnlyIgnoreCustomTranslationsCache = false,\n}: {\n    testOnlyIgnoreCustomTranslationsCache?: boolean;\n} = {}): Promise<void> {\n    const moduleTranslations = ModuleRunner.instance.allTranslations;\n    doRegisterTranslations(moduleTranslations);\n\n    const lookupUrl = SdkConfig.get().custom_translations_url;\n    if (!lookupUrl) return; // easy - nothing to do\n\n    try {\n        let json: TranslationStringsObject | undefined;\n        if (testOnlyIgnoreCustomTranslationsCache || Date.now() >= cachedCustomTranslationsExpire) {\n            json = (await (await fetch(lookupUrl)).json()) as TranslationStringsObject;\n            cachedCustomTranslations = json;\n\n            // Set expiration to the future, but not too far. Just trying to avoid\n            // repeated, successive, calls to the server rather than anything long-term.\n            cachedCustomTranslationsExpire = Date.now() + 5 * 60 * 1000;\n        } else {\n            json = cachedCustomTranslations;\n        }\n\n        // If the (potentially cached) json is invalid, don't use it.\n        if (!json) return;\n\n        // Finally, register it.\n        doRegisterTranslations(json);\n    } catch (e) {\n        // We consume all exceptions because it's considered non-fatal for custom\n        // translations to break. Most failures will be during initial development\n        // of the json file and not (hopefully) at runtime.\n        logger.warn(\"Ignoring error while registering custom translations: \", e);\n\n        // Like above: trigger a cache of the json to avoid successive calls.\n        cachedCustomTranslationsExpire = Date.now() + 5 * 60 * 1000;\n    }\n}\n\nfunction doRegisterTranslations(customTranslations: TranslationStringsObject): void {\n    // We convert the operator-friendly version into something counterpart can consume.\n    // Map: lang → Record: string → translation\n    const langs: MapWithDefault<string, Record<string, string>> = new MapWithDefault(() => ({}));\n    for (const [translationKey, translations] of Object.entries(customTranslations)) {\n        for (const [lang, translation] of Object.entries(translations)) {\n            _.set(langs.getOrCreate(lang), translationKey.split(KEY_SEPARATOR), translation);\n        }\n    }\n\n    // Finally, tell counterpart about our translations\n    for (const [lang, translations] of langs) {\n        registerTranslations(lang, translations);\n    }\n}\n","/*\n * Copyright 2025 New Vector Ltd.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { normalizeLanguageKey, getLangsJson, registerTranslations, setLocale } from \"@element-hq/web-shared-components\";\n\nimport SettingsStore from \"../settings/SettingsStore\";\nimport PlatformPeg from \"../PlatformPeg\";\nimport { SettingLevel } from \"../settings/SettingLevel\";\nimport { getLanguageRetry } from \"./languages\";\nimport { getLanguageFromBrowser } from \"./browser\";\nimport { registerCustomTranslations } from \"./custom\";\n\nexport function getUserLanguage(): string {\n    const language = SettingsStore.getValue(\"language\", null, /*excludeDefault:*/ true);\n    if (typeof language === \"string\" && language !== \"\") {\n        return language;\n    } else {\n        return normalizeLanguageKey(getLanguageFromBrowser());\n    }\n}\n\nexport async function setLanguage(...preferredLangs: string[]): Promise<void> {\n    PlatformPeg.get()?.setLanguage(preferredLangs);\n\n    const availableLanguages = await getLangsJson();\n    let chosenLanguage = preferredLangs.find((lang) => availableLanguages.hasOwnProperty(lang));\n    if (!chosenLanguage) {\n        // Fallback to en_EN if none is found\n        chosenLanguage = \"en\";\n        logger.error(\"Unable to find an appropriate language, preferred: \", preferredLangs);\n    }\n\n    const languageData = await getLanguageRetry(availableLanguages[chosenLanguage]);\n\n    registerTranslations(chosenLanguage, languageData);\n    setLocale(chosenLanguage);\n\n    await SettingsStore.setValue(\"language\", null, SettingLevel.DEVICE, chosenLanguage);\n    // Adds a lot of noise to test runs, so disable logging there.\n    if (process.env.NODE_ENV !== \"test\") {\n        logger.log(\"set language to \" + chosenLanguage);\n    }\n\n    // Set 'en' as fallback language:\n    if (chosenLanguage !== \"en\") {\n        const fallbackLanguageData = await getLanguageRetry(availableLanguages[\"en\"]);\n        registerTranslations(\"en\", fallbackLanguageData);\n    }\n\n    await registerCustomTranslations();\n}\n","/*\n * Copyright 2025 New Vector Ltd.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { getLangsJson, getLocale, normalizeLanguageKey } from \"@element-hq/web-shared-components\";\n\nasync function getAllLanguagesFromJson(): Promise<string[]> {\n    return Object.keys(await getLangsJson());\n}\n\ntype Language = {\n    value: string;\n    label: string; // translated\n    labelInTargetLanguage: string; // translated\n};\n\nexport async function getAllLanguagesWithLabels(): Promise<Language[]> {\n    const languageNames = new Intl.DisplayNames([getLocale()], { type: \"language\", style: \"short\" });\n    const languages = await getAllLanguagesFromJson();\n    return languages.map<Language>((langKey) => {\n        return {\n            value: langKey,\n            label: languageNames.of(langKey)!,\n            labelInTargetLanguage: new Intl.DisplayNames([langKey], { type: \"language\", style: \"short\" }).of(langKey)!,\n        };\n    });\n}\n\n/**\n * Given a list of language codes, pick the most appropriate one\n * given the current language (ie. getCurrentLanguage())\n * English is assumed to be a reasonable default.\n *\n * @param {string[]} langs List of language codes to pick from\n * @returns {string} The most appropriate language code from langs\n */\nexport function pickBestLanguage(langs: string[]): string {\n    const currentLang = getLocale();\n    const normalisedLangs = langs.map(normalizeLanguageKey);\n\n    {\n        // Best is an exact match\n        const currentLangIndex = normalisedLangs.indexOf(currentLang);\n        if (currentLangIndex > -1) return langs[currentLangIndex];\n    }\n\n    {\n        // Failing that, a different dialect of the same language\n        const closeLangIndex = normalisedLangs.findIndex((l) => l.slice(0, 2) === currentLang.slice(0, 2));\n        if (closeLangIndex > -1) return langs[closeLangIndex];\n    }\n\n    {\n        // Neither of those? Try an english variant.\n        const enIndex = normalisedLangs.findIndex((l) => l.startsWith(\"en\"));\n        if (enIndex > -1) return langs[enIndex];\n    }\n\n    // if nothing else, use the first\n    return langs[0];\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2016-2019 , 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { SERVICE_TYPES, type Room, type IOpenIDToken } from \"matrix-js-sdk/src/matrix\";\n\nimport SettingsStore from \"./settings/SettingsStore\";\nimport { Service, startTermsFlow, type TermsInteractionCallback, TermsNotSignedError } from \"./Terms\";\nimport { MatrixClientPeg } from \"./MatrixClientPeg\";\nimport SdkConfig from \"./SdkConfig\";\nimport { type WidgetType } from \"./widgets/WidgetType\";\nimport { parseUrl } from \"./utils/UrlUtils\";\n\n// The version of the integration manager API we're intending to work with\nconst imApiVersion = \"1.1\";\n\n// TODO: Generify the name of this class and all components within - it's not just for Scalar.\n\nexport default class ScalarAuthClient {\n    private scalarToken: string | null;\n    private termsInteractionCallback?: TermsInteractionCallback;\n    private isDefaultManager: boolean;\n\n    public constructor(\n        private apiUrl: string,\n        private uiUrl: string,\n    ) {\n        this.scalarToken = null;\n        // `undefined` to allow `startTermsFlow` to fallback to a default\n        // callback if this is unset.\n        this.termsInteractionCallback = undefined;\n\n        // We try and store the token on a per-manager basis, but need a fallback\n        // for the default manager.\n        const configApiUrl = SdkConfig.get(\"integrations_rest_url\");\n        const configUiUrl = SdkConfig.get(\"integrations_ui_url\");\n        this.isDefaultManager = apiUrl === configApiUrl && configUiUrl === uiUrl;\n    }\n\n    private writeTokenToStore(): void {\n        window.localStorage.setItem(\"mx_scalar_token_at_\" + this.apiUrl, this.scalarToken ?? \"\");\n        if (this.isDefaultManager) {\n            // We remove the old token from storage to migrate upwards. This is safe\n            // to do because even if the user switches to /app when this is on /develop\n            // they'll at worst register for a new token.\n            window.localStorage.removeItem(\"mx_scalar_token\"); // no-op when not present\n        }\n    }\n\n    private readTokenFromStore(): string | null {\n        let token = window.localStorage.getItem(\"mx_scalar_token_at_\" + this.apiUrl);\n        if (!token && this.isDefaultManager) {\n            token = window.localStorage.getItem(\"mx_scalar_token\");\n        }\n        return token;\n    }\n\n    private readToken(): string | null {\n        if (this.scalarToken) return this.scalarToken;\n        return this.readTokenFromStore();\n    }\n\n    public setTermsInteractionCallback(callback: TermsInteractionCallback): void {\n        this.termsInteractionCallback = callback;\n    }\n\n    public connect(): Promise<void> {\n        return this.getScalarToken().then((tok) => {\n            this.scalarToken = tok;\n        });\n    }\n\n    public hasCredentials(): boolean {\n        return this.scalarToken != null; // undef or null\n    }\n\n    // Returns a promise that resolves to a scalar_token string\n    public getScalarToken(): Promise<string> {\n        const token = this.readToken();\n\n        if (!token) {\n            return this.registerForToken();\n        } else {\n            return this.checkToken(token).catch((e) => {\n                if (e instanceof TermsNotSignedError) {\n                    // retrying won't help this\n                    throw e;\n                }\n                return this.registerForToken();\n            });\n        }\n    }\n\n    private async getAccountName(token: string): Promise<string> {\n        const url = new URL(this.apiUrl + \"/account\");\n        url.searchParams.set(\"scalar_token\", token);\n        url.searchParams.set(\"v\", imApiVersion);\n\n        const res = await fetch(url, {\n            method: \"GET\",\n        });\n\n        const body = await res.json();\n        if (body?.errcode === \"M_TERMS_NOT_SIGNED\") {\n            throw new TermsNotSignedError();\n        }\n\n        if (!res.ok) {\n            throw body;\n        }\n\n        if (!body?.user_id) {\n            throw new Error(\"Missing user_id in response\");\n        }\n\n        return body.user_id;\n    }\n\n    private checkToken(token: string): Promise<string> {\n        return this.getAccountName(token)\n            .then((userId) => {\n                const me = MatrixClientPeg.safeGet().getUserId();\n                if (userId !== me) {\n                    throw new Error(\"Scalar token is owned by someone else: \" + me);\n                }\n                return token;\n            })\n            .catch((e) => {\n                if (e instanceof TermsNotSignedError) {\n                    logger.log(\"Integration manager requires new terms to be agreed to\");\n                    // The terms endpoints are new and so live on standard _matrix prefixes,\n                    // but IM rest urls are currently configured with paths, so remove the\n                    // path from the base URL before passing it to the js-sdk\n\n                    // We continue to use the full URL for the calls done by\n                    // matrix-react-sdk, but the standard terms API called\n                    // by the js-sdk lives on the standard _matrix path. This means we\n                    // don't support running IMs on a non-root path, but it's the only\n                    // realistic way of transitioning to _matrix paths since configs in\n                    // the wild contain bits of the API path.\n\n                    // Once we've fully transitioned to _matrix URLs, we can give people\n                    // a grace period to update their configs, then use the rest url as\n                    // a regular base url.\n                    const parsedImRestUrl = parseUrl(this.apiUrl);\n                    parsedImRestUrl.pathname = \"\";\n                    return startTermsFlow(\n                        MatrixClientPeg.safeGet(),\n                        [new Service(SERVICE_TYPES.IM, parsedImRestUrl.toString(), token)],\n                        this.termsInteractionCallback,\n                    ).then(() => {\n                        return token;\n                    });\n                } else {\n                    throw e;\n                }\n            });\n    }\n\n    public registerForToken(): Promise<string> {\n        // Get openid bearer token from the HS as the first part of our dance\n        return MatrixClientPeg.safeGet()\n            .getOpenIdToken()\n            .then((tokenObject) => {\n                // Now we can send that to scalar and exchange it for a scalar token\n                return this.exchangeForScalarToken(tokenObject);\n            })\n            .then((token) => {\n                // Validate it (this mostly checks to see if the IM needs us to agree to some terms)\n                return this.checkToken(token);\n            })\n            .then((token) => {\n                this.scalarToken = token;\n                this.writeTokenToStore();\n                return token;\n            });\n    }\n\n    public async exchangeForScalarToken(openidTokenObject: IOpenIDToken): Promise<string> {\n        const scalarRestUrl = new URL(this.apiUrl + \"/register\");\n        scalarRestUrl.searchParams.set(\"v\", imApiVersion);\n\n        const res = await fetch(scalarRestUrl, {\n            method: \"POST\",\n            body: JSON.stringify(openidTokenObject),\n            headers: {\n                \"Content-Type\": \"application/json\",\n            },\n        });\n\n        if (!res.ok) {\n            throw new Error(`Scalar request failed: ${res.status}`);\n        }\n\n        const body = await res.json();\n        if (!body?.scalar_token) {\n            throw new Error(\"Missing scalar_token in response\");\n        }\n\n        return body.scalar_token;\n    }\n\n    public async getScalarPageTitle(url: string): Promise<string> {\n        const scalarPageLookupUrl = new URL(this.getStarterLink(this.apiUrl + \"/widgets/title_lookup\"));\n        scalarPageLookupUrl.searchParams.set(\"curl\", encodeURIComponent(url));\n\n        const res = await fetch(scalarPageLookupUrl, {\n            method: \"GET\",\n        });\n\n        if (!res.ok) {\n            throw new Error(`Scalar request failed: ${res.status}`);\n        }\n\n        const body = await res.json();\n        return body?.page_title_cache_item?.cached_title;\n    }\n\n    /**\n     * Mark all assets associated with the specified widget as \"disabled\" in the\n     * integration manager database.\n     * This can be useful to temporarily prevent purchased assets from being displayed.\n     * @param  {WidgetType} widgetType The Widget Type to disable assets for\n     * @param  {string} widgetId   The widget ID to disable assets for\n     * @returns {Promise}           Resolves on completion\n     */\n    public async disableWidgetAssets(widgetType: WidgetType, widgetId: string): Promise<void> {\n        const url = new URL(this.getStarterLink(this.apiUrl + \"/widgets/set_assets_state\"));\n        url.searchParams.set(\"widget_type\", widgetType.preferred);\n        url.searchParams.set(\"widget_id\", widgetId);\n        url.searchParams.set(\"state\", \"disable\");\n\n        const res = await fetch(url, {\n            method: \"GET\", // XXX: Actions shouldn't be GET requests\n        });\n\n        if (!res.ok) {\n            throw new Error(`Scalar request failed: ${res.status}`);\n        }\n\n        const body = await res.text();\n        if (!body) {\n            throw new Error(\"Failed to set widget assets state\");\n        }\n    }\n\n    public getScalarInterfaceUrlForRoom(room: Room, screen?: string, id?: string): string {\n        const roomId = room.roomId;\n        const roomName = room.name;\n        let url = this.uiUrl;\n        if (this.scalarToken) url += \"?scalar_token=\" + encodeURIComponent(this.scalarToken);\n        url += \"&room_id=\" + encodeURIComponent(roomId);\n        url += \"&room_name=\" + encodeURIComponent(roomName);\n        url += \"&theme=\" + encodeURIComponent(SettingsStore.getValue(\"theme\"));\n        if (id) {\n            url += \"&integ_id=\" + encodeURIComponent(id);\n        }\n        if (screen) {\n            url += \"&screen=\" + encodeURIComponent(screen);\n        }\n        return url;\n    }\n\n    public getStarterLink(starterLinkUrl: string): string {\n        if (!this.scalarToken) return starterLinkUrl;\n        return starterLinkUrl + \"?scalar_token=\" + encodeURIComponent(this.scalarToken);\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2015-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\n\nimport { _t } from \"../../../languageHandler\";\nimport dis from \"../../../dispatcher/dispatcher\";\nimport { type ActionPayload } from \"../../../dispatcher/payloads\";\nimport Spinner from \"../elements/Spinner\";\nimport { getKeyBindingsManager } from \"../../../KeyBindingsManager\";\nimport { KeyBindingAction } from \"../../../accessibility/KeyboardShortcuts\";\nimport Heading from \"../typography/Heading\";\n\ninterface IProps {\n    // false to display an error saying that we couldn't connect to the integration manager\n    connected?: boolean;\n\n    // true to display a loading spinner\n    loading?: boolean;\n\n    // The source URL to load\n    url?: string;\n\n    // callback when the manager is dismissed\n    onFinished: () => void;\n}\n\ninterface IState {\n    errored: boolean;\n}\n\nexport default class IntegrationManager extends React.Component<IProps, IState> {\n    private dispatcherRef?: string;\n\n    public static defaultProps: Partial<IProps> = {\n        connected: true,\n        loading: false,\n    };\n\n    public state = {\n        errored: false,\n    };\n\n    public componentDidMount(): void {\n        this.dispatcherRef = dis.register(this.onAction);\n        document.addEventListener(\"keydown\", this.onKeyDown);\n    }\n\n    public componentWillUnmount(): void {\n        dis.unregister(this.dispatcherRef);\n        document.removeEventListener(\"keydown\", this.onKeyDown);\n    }\n\n    private onKeyDown = (ev: KeyboardEvent): void => {\n        const action = getKeyBindingsManager().getAccessibilityAction(ev);\n        switch (action) {\n            case KeyBindingAction.Escape:\n                ev.stopPropagation();\n                ev.preventDefault();\n                this.props.onFinished();\n                break;\n        }\n    };\n\n    private onAction = (payload: ActionPayload): void => {\n        if (payload.action === \"close_scalar\") {\n            this.props.onFinished();\n        }\n    };\n\n    private onError = (): void => {\n        this.setState({ errored: true });\n    };\n\n    public render(): React.ReactNode {\n        if (this.props.loading) {\n            return (\n                <div className=\"mx_IntegrationManager_loading\">\n                    <Heading size=\"3\">{_t(\"integration_manager|connecting\")}</Heading>\n                    <Spinner />\n                </div>\n            );\n        }\n\n        if (!this.props.connected || this.state.errored) {\n            return (\n                <div className=\"mx_IntegrationManager_error\">\n                    <Heading size=\"3\">{_t(\"integration_manager|error_connecting_heading\")}</Heading>\n                    <p>{_t(\"integration_manager|error_connecting\")}</p>\n                </div>\n            );\n        }\n\n        return <iframe title={_t(\"common|integration_manager\")} src={this.props.url} onError={this.onError} />;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type ComponentProps } from \"react\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport type { Room } from \"matrix-js-sdk/src/matrix\";\nimport ScalarAuthClient from \"../ScalarAuthClient\";\nimport { dialogTermsInteractionCallback, TermsNotSignedError } from \"../Terms\";\nimport Modal from \"../Modal\";\nimport SettingsStore from \"../settings/SettingsStore\";\nimport IntegrationManager from \"../components/views/settings/IntegrationManager\";\nimport { IntegrationManagers } from \"./IntegrationManagers\";\nimport { parseUrl } from \"../utils/UrlUtils\";\n\nexport enum Kind {\n    Account = \"account\",\n    Config = \"config\",\n    Homeserver = \"homeserver\",\n}\n\nexport class IntegrationManagerInstance {\n    // Per the spec: UI URL is optional.\n    public constructor(\n        public readonly kind: string,\n        public readonly apiUrl: string,\n        public readonly uiUrl: string = apiUrl,\n        public readonly id?: string, // only applicable in some cases\n    ) {}\n\n    public get name(): string {\n        const parsed = parseUrl(this.uiUrl);\n        return parsed.host ?? \"\";\n    }\n\n    public get trimmedApiUrl(): string {\n        const parsed = parseUrl(this.apiUrl);\n        parsed.pathname = \"\";\n        return parsed.toString();\n    }\n\n    public getScalarClient(): ScalarAuthClient {\n        return new ScalarAuthClient(this.apiUrl, this.uiUrl);\n    }\n\n    public async open(room: Room, screen?: string, integrationId?: string): Promise<void> {\n        if (!SettingsStore.getValue(\"integrationProvisioning\")) {\n            return IntegrationManagers.sharedInstance().showDisabledDialog();\n        }\n\n        const dialog = Modal.createDialog(IntegrationManager, { loading: true }, \"mx_IntegrationManager\");\n\n        const client = this.getScalarClient();\n        client.setTermsInteractionCallback((policyInfo, agreedUrls) => {\n            // To avoid visual glitching of two modals stacking briefly, we customise the\n            // terms dialog sizing when it will appear for the integration manager so that\n            // it gets the same basic size as the integration manager's own modal.\n            return dialogTermsInteractionCallback(policyInfo, agreedUrls, \"mx_TermsDialog_forIntegrationManager\");\n        });\n\n        const newProps: Partial<ComponentProps<typeof IntegrationManager>> = {};\n        try {\n            await client.connect();\n            if (!client.hasCredentials()) {\n                newProps[\"connected\"] = false;\n            } else {\n                newProps[\"url\"] = client.getScalarInterfaceUrlForRoom(room, screen, integrationId);\n            }\n        } catch (e) {\n            if (e instanceof TermsNotSignedError) {\n                dialog.close();\n                return;\n            }\n\n            logger.error(e);\n            newProps[\"connected\"] = false;\n        }\n\n        // Close the old dialog and open a new one\n        dialog.close();\n        Modal.createDialog(IntegrationManager, newProps, \"mx_IntegrationManager\");\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\n\nimport { _t } from \"../../../languageHandler\";\nimport SdkConfig from \"../../../SdkConfig\";\nimport BaseDialog from \"./BaseDialog\";\nimport DialogButtons from \"../elements/DialogButtons\";\n\ninterface IProps {\n    onFinished(): void;\n}\n\nexport default class IntegrationsImpossibleDialog extends React.Component<IProps> {\n    private onAcknowledgeClick = (): void => {\n        this.props.onFinished();\n    };\n\n    public render(): React.ReactNode {\n        const brand = SdkConfig.get().brand;\n\n        return (\n            <BaseDialog\n                className=\"mx_IntegrationsImpossibleDialog\"\n                hasCancel={false}\n                onFinished={this.props.onFinished}\n                title={_t(\"integrations|impossible_dialog_title\")}\n            >\n                <div className=\"mx_IntegrationsImpossibleDialog_content\">\n                    <p>{_t(\"integrations|impossible_dialog_description\", { brand })}</p>\n                </div>\n                <DialogButtons\n                    primaryButton={_t(\"action|ok\")}\n                    onPrimaryButtonClick={this.onAcknowledgeClick}\n                    hasCancel={false}\n                />\n            </BaseDialog>\n        );\n    }\n}\n","/*\nCopyright 2024, 2025 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { useCallback } from \"react\";\n\nimport { _t } from \"../../../languageHandler\";\nimport dis from \"../../../dispatcher/dispatcher\";\nimport { Action } from \"../../../dispatcher/actions\";\nimport BaseDialog from \"./BaseDialog\";\nimport DialogButtons from \"../elements/DialogButtons\";\nimport { UserTab } from \"./UserTab\";\n\ninterface IProps {\n    onFinished(this: void): void;\n}\n\nexport const IntegrationsDisabledDialog: React.FC<IProps> = ({ onFinished }) => {\n    const onOpenSettingsClick = useCallback(() => {\n        onFinished();\n        dis.dispatch({\n            action: Action.ViewUserSettings,\n            initialTabId: UserTab.Security,\n        });\n    }, [onFinished]);\n\n    return (\n        <BaseDialog\n            className=\"mx_IntegrationsDisabledDialog\"\n            hasCancel={true}\n            onFinished={onFinished}\n            title={_t(\"integrations|disabled_dialog_title\")}\n        >\n            <div className=\"mx_IntegrationsDisabledDialog_content\">\n                <p>\n                    {_t(\"integrations|disabled_dialog_description\", {\n                        manageIntegrations: _t(\"integration_manager|manage_title\"),\n                    })}\n                </p>\n            </div>\n            <DialogButtons\n                primaryButton={_t(\"common|settings\")}\n                onPrimaryButtonClick={onOpenSettingsClick}\n                cancelButton={_t(\"action|ok\")}\n                onCancel={onFinished}\n            />\n        </BaseDialog>\n    );\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { ClientEvent, type IClientWellKnown, type MatrixClient, type MatrixEvent } from \"matrix-js-sdk/src/matrix\";\n\nimport SdkConfig from \"../SdkConfig\";\nimport Modal from \"../Modal\";\nimport { IntegrationManagerInstance, Kind } from \"./IntegrationManagerInstance\";\nimport IntegrationsImpossibleDialog from \"../components/views/dialogs/IntegrationsImpossibleDialog\";\nimport { IntegrationsDisabledDialog } from \"../components/views/dialogs/IntegrationsDisabledDialog\";\nimport WidgetUtils from \"../utils/WidgetUtils\";\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\n\nconst KIND_PREFERENCE = [\n    // Ordered: first is most preferred, last is least preferred.\n    Kind.Account,\n    Kind.Homeserver,\n    Kind.Config,\n];\n\nexport class IntegrationManagers {\n    private static instance?: IntegrationManagers;\n\n    private managers: IntegrationManagerInstance[] = [];\n    private client?: MatrixClient;\n    private primaryManager: IntegrationManagerInstance | null = null;\n\n    public static sharedInstance(): IntegrationManagers {\n        if (!IntegrationManagers.instance) {\n            IntegrationManagers.instance = new IntegrationManagers();\n        }\n        return IntegrationManagers.instance;\n    }\n\n    public constructor() {\n        this.compileManagers();\n    }\n\n    public startWatching(): void {\n        this.stopWatching();\n        this.client = MatrixClientPeg.safeGet();\n        this.client.on(ClientEvent.AccountData, this.onAccountData);\n        this.client.on(ClientEvent.ClientWellKnown, this.setupHomeserverManagers);\n        this.compileManagers();\n    }\n\n    public stopWatching(): void {\n        if (!this.client) return;\n        this.client.removeListener(ClientEvent.AccountData, this.onAccountData);\n        this.client.removeListener(ClientEvent.ClientWellKnown, this.setupHomeserverManagers);\n    }\n\n    private compileManagers(): void {\n        this.managers = [];\n        this.setupConfiguredManager();\n        this.setupAccountManagers();\n    }\n\n    private setupConfiguredManager(): void {\n        const apiUrl = SdkConfig.get(\"integrations_rest_url\");\n        const uiUrl = SdkConfig.get(\"integrations_ui_url\");\n\n        if (apiUrl && uiUrl) {\n            this.managers.push(new IntegrationManagerInstance(Kind.Config, apiUrl, uiUrl));\n            this.primaryManager = null; // reset primary\n        }\n    }\n\n    private setupHomeserverManagers = async (discoveryResponse: IClientWellKnown): Promise<void> => {\n        logger.log(\"Updating homeserver-configured integration managers...\");\n        if (discoveryResponse && discoveryResponse[\"m.integrations\"]) {\n            let managers = discoveryResponse[\"m.integrations\"][\"managers\"];\n            if (!Array.isArray(managers)) managers = []; // make it an array so we can wipe the HS managers\n\n            logger.log(`Homeserver has ${managers.length} integration managers`);\n\n            // Clear out any known managers for the homeserver\n            // TODO: Log out of the scalar clients\n            this.managers = this.managers.filter((m) => m.kind !== Kind.Homeserver);\n\n            // Now add all the managers the homeserver wants us to have\n            for (const hsManager of managers) {\n                if (!hsManager[\"api_url\"]) continue;\n                this.managers.push(\n                    new IntegrationManagerInstance(\n                        Kind.Homeserver,\n                        hsManager[\"api_url\"],\n                        hsManager[\"ui_url\"], // optional\n                    ),\n                );\n            }\n\n            this.primaryManager = null; // reset primary\n        } else {\n            logger.log(\"Homeserver has no integration managers\");\n        }\n    };\n\n    private setupAccountManagers(): void {\n        if (!this.client || !this.client.getUserId()) return; // not logged in\n        const widgets = WidgetUtils.getIntegrationManagerWidgets(this.client);\n        widgets.forEach((w) => {\n            const data = w.content[\"data\"];\n            if (!data) return;\n\n            const uiUrl = w.content[\"url\"];\n            const apiUrl = data[\"api_url\"] as string;\n            if (!apiUrl || !uiUrl) return;\n\n            const manager = new IntegrationManagerInstance(\n                Kind.Account,\n                apiUrl,\n                uiUrl,\n                w[\"id\"] || w[\"state_key\"] || \"\",\n            );\n            this.managers.push(manager);\n        });\n        this.primaryManager = null; // reset primary\n    }\n\n    private onAccountData = (ev: MatrixEvent): void => {\n        if (ev.getType() === \"m.widgets\") {\n            this.compileManagers();\n        }\n    };\n\n    public hasManager(): boolean {\n        return this.managers.length > 0;\n    }\n\n    public getOrderedManagers(): IntegrationManagerInstance[] {\n        const collator = new Intl.Collator();\n        const ordered: IntegrationManagerInstance[] = [];\n        for (const kind of KIND_PREFERENCE) {\n            const managers = this.managers.filter((m) => m.kind === kind);\n            if (!managers || !managers.length) continue;\n\n            if (kind === Kind.Account) {\n                // Order by state_keys (IDs)\n                managers.sort((a, b) => collator.compare(a.id ?? \"\", b.id ?? \"\"));\n            }\n\n            ordered.push(...managers);\n        }\n        return ordered;\n    }\n\n    public getPrimaryManager(): IntegrationManagerInstance | null {\n        if (this.hasManager()) {\n            if (this.primaryManager) return this.primaryManager;\n\n            this.primaryManager = this.getOrderedManagers()[0];\n            return this.primaryManager;\n        } else {\n            return null;\n        }\n    }\n\n    public openNoManagerDialog(): void {\n        Modal.createDialog(IntegrationsImpossibleDialog);\n    }\n\n    public showDisabledDialog(): void {\n        Modal.createDialog(IntegrationsDisabledDialog);\n    }\n}\n\n// For debugging\nwindow.mxIntegrationManagers = IntegrationManagers;\n","/*\nCopyright 2026 Element Creations Ltd.\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\nCopyright 2015, 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nconst escapeRegExp = function (s: string): string {\n    return s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n// Recognise URLs from both our local and official Element deployments.\n// Anyone else really should be using matrix.to. vector:// allowed to support Element Desktop relative links.\nexport const ELEMENT_URL_PATTERN = new RegExp(\n    \"^(?:vector://|https?://)?(?:\" +\n        escapeRegExp(window.location.host + window.location.pathname) +\n        \"|\" +\n        \"(?:www\\\\.)?(?:riot|vector)\\\\.im/(?:app|beta|staging|develop)/|\" +\n        \"(?:app|beta|staging|develop)\\\\.element\\\\.io/\" +\n        \")(#.*)\",\n);\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    type MatrixClient,\n    Room,\n    PendingEventOrdering,\n    MatrixEvent,\n    Direction,\n    EventType,\n} from \"matrix-js-sdk/src/matrix\";\n\nimport { type Member } from \"../utils/direct-messages\";\n\nexport const LOCAL_ROOM_ID_PREFIX = \"local+\";\n\nexport enum LocalRoomState {\n    NEW, // new local room; only known to the client\n    CREATING, // real room is being created\n    CREATED, // real room has been created via API; events applied\n    ERROR, // error during room creation\n}\n\n/**\n * A local room that only exists client side.\n * Its main purpose is to be used for temporary rooms when creating a DM.\n */\nexport class LocalRoom extends Room {\n    /** Whether the actual room should be encrypted. */\n    public encrypted = false;\n    /** If the actual room has been created, this holds its ID. */\n    public actualRoomId?: string;\n    /** DM chat partner */\n    public targets: Member[] = [];\n    /** Callbacks that should be invoked after the actual room has been created. */\n    public afterCreateCallbacks: ((roomId: string) => void)[] = [];\n    public state: LocalRoomState = LocalRoomState.NEW;\n\n    public constructor(roomId: string, client: MatrixClient, myUserId: string) {\n        super(roomId, client, myUserId, { pendingEventOrdering: PendingEventOrdering.Detached });\n        this.name = this.getDefaultRoomName(myUserId);\n    }\n\n    public get isNew(): boolean {\n        return this.state === LocalRoomState.NEW;\n    }\n\n    public get isCreated(): boolean {\n        return this.state === LocalRoomState.CREATED;\n    }\n\n    public get isError(): boolean {\n        return this.state === LocalRoomState.ERROR;\n    }\n\n    /**\n     * Check if encryption is enabled in this room.\n     * True if the room has any encryption state event\n     */\n    public isEncryptionEnabled(): boolean {\n        const roomState = this.getLiveTimeline().getState(Direction.Forward);\n        if (!roomState) return false;\n\n        const stateEvents = roomState.getStateEvents(EventType.RoomEncryption);\n        if (stateEvents.length === 0) return false;\n\n        // if there is an encryption state event, it is encrypted.\n        // Regardless of the content/algorithm, we assume it is encrypted.\n        return stateEvents[0] instanceof MatrixEvent;\n    }\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { ConfigApi as IConfigApi, Config } from \"@element-hq/element-web-module-api\";\nimport SdkConfig from \"../SdkConfig.ts\";\n\nexport class ConfigApi implements IConfigApi {\n    public get(): Config;\n    public get<K extends keyof Config>(key: K): Config[K];\n    public get<K extends keyof Config = never>(key?: K): Config | Config[K] {\n        if (key === undefined) {\n            return SdkConfig.get() as Config;\n        }\n        return SdkConfig.get(key);\n    }\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type MatrixEvent } from \"matrix-js-sdk/src/matrix\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport type {\n    CustomComponentsApi as ICustomComponentsApi,\n    CustomMessageRenderFunction,\n    CustomMessageComponentProps as ModuleCustomMessageComponentProps,\n    OriginalMessageComponentProps,\n    CustomMessageRenderHints as ModuleCustomCustomMessageRenderHints,\n    MatrixEvent as ModuleMatrixEvent,\n    CustomRoomPreviewBarRenderFunction,\n    CustomLoginRenderFunction,\n    CustomComposerPreviewRenderFunction,\n    CustomComposerPreviewComponentProps,\n} from \"@element-hq/element-web-module-api\";\nimport type React from \"react\";\n\ntype EventTypeOrFilter = Parameters<ICustomComponentsApi[\"registerMessageRenderer\"]>[0];\ntype ComposerPreviewFilterFn = Parameters<ICustomComponentsApi[\"registerComposerPreview\"]>[0];\n\ntype EventRenderer = {\n    eventTypeOrFilter: EventTypeOrFilter;\n    renderer: CustomMessageRenderFunction;\n    hints: ModuleCustomCustomMessageRenderHints;\n};\n\ninterface CustomMessageComponentProps extends Omit<ModuleCustomMessageComponentProps, \"mxEvent\"> {\n    mxEvent: MatrixEvent;\n}\n\ninterface CustomMessageRenderHints extends Omit<ModuleCustomCustomMessageRenderHints, \"allowDownloadingMedia\"> {\n    // Note. This just makes it easier to use this API on Element Web as we already have the moduleized event stored.\n    allowDownloadingMedia?: () => Promise<boolean>;\n}\n\ntype ComposerPreviewRenderer = {\n    filter: ComposerPreviewFilterFn;\n    renderer: CustomComposerPreviewRenderFunction;\n};\n\nexport class CustomComponentsApi implements ICustomComponentsApi {\n    /**\n     * Convert a matrix-js-sdk event into a ModuleMatrixEvent.\n     * @param mxEvent\n     * @returns An event object, or `null` if the event was not a message event.\n     */\n    private static getModuleMatrixEvent(mxEvent: MatrixEvent): ModuleMatrixEvent | null {\n        const eventId = mxEvent.getId();\n        const roomId = mxEvent.getRoomId();\n        const sender = mxEvent.sender;\n        // Typically we wouldn't expect messages without these keys to be rendered\n        // by the timeline, but for the sake of type safety.\n        if (!eventId || !roomId || !sender) {\n            // Not a message event.\n            return null;\n        }\n        return {\n            content: mxEvent.getContent(),\n            eventId,\n            originServerTs: mxEvent.getTs(),\n            roomId,\n            sender: sender.userId,\n            stateKey: mxEvent.getStateKey(),\n            type: mxEvent.getType(),\n            unsigned: mxEvent.getUnsigned(),\n        };\n    }\n\n    private readonly registeredMessageRenderers: EventRenderer[] = [];\n    private readonly registeredComposerPreviewRenderers: ComposerPreviewRenderer[] = [];\n\n    public registerMessageRenderer(\n        eventTypeOrFilter: EventTypeOrFilter,\n        renderer: CustomMessageRenderFunction,\n        hints: ModuleCustomCustomMessageRenderHints = {},\n    ): void {\n        this.registeredMessageRenderers.push({ eventTypeOrFilter: eventTypeOrFilter, renderer, hints });\n    }\n\n    /**\n     * Select the correct renderer based on the event information.\n     * @param mxEvent The message event being rendered.\n     * @returns The registered renderer.\n     */\n    private selectMessageRenderer(mxEvent: ModuleMatrixEvent): EventRenderer | undefined {\n        return this.registeredMessageRenderers.find((renderer) => {\n            if (typeof renderer.eventTypeOrFilter === \"string\") {\n                return renderer.eventTypeOrFilter === mxEvent.type;\n            } else {\n                try {\n                    return renderer.eventTypeOrFilter(mxEvent);\n                } catch (ex) {\n                    logger.warn(\"Message renderer failed to process filter\", ex);\n                    return false; // Skip erroring renderers.\n                }\n            }\n        });\n    }\n\n    /**\n     * Render the component for a message event.\n     * @param props Props to be passed to the custom renderer.\n     * @param originalComponent Function that will be rendered if no custom renderers are present, or as a child of a custom component.\n     * @returns A component if a custom renderer exists, or originalComponent returns a value. Otherwise null.\n     */\n    public renderMessage(\n        props: CustomMessageComponentProps,\n        originalComponent?: (props?: OriginalMessageComponentProps) => React.JSX.Element,\n    ): React.JSX.Element | null {\n        const moduleEv = CustomComponentsApi.getModuleMatrixEvent(props.mxEvent);\n        const renderer = moduleEv && this.selectMessageRenderer(moduleEv);\n        if (renderer) {\n            try {\n                return renderer.renderer({ ...props, mxEvent: moduleEv }, originalComponent);\n            } catch (ex) {\n                logger.warn(\"Message renderer failed to render\", ex);\n                // Fall through to original component. If the module encounters an error we still want to display messages to the user!\n            }\n        }\n        return originalComponent?.() ?? null;\n    }\n\n    /**\n     * Get hints about an message before rendering it.\n     * @param mxEvent The message event being rendered.\n     * @returns A component if a custom renderer exists, or originalComponent returns a value. Otherwise null.\n     */\n    public getHintsForMessage(mxEvent: MatrixEvent): CustomMessageRenderHints | null {\n        const moduleEv = CustomComponentsApi.getModuleMatrixEvent(mxEvent);\n        const renderer = moduleEv && this.selectMessageRenderer(moduleEv);\n        if (renderer) {\n            return {\n                ...renderer.hints,\n                // Convert from js-sdk style events to module events automatically.\n                allowDownloadingMedia: renderer.hints.allowDownloadingMedia\n                    ? () => renderer.hints.allowDownloadingMedia!(moduleEv)\n                    : undefined,\n            };\n        }\n        return null;\n    }\n\n    private _roomPreviewBarRenderer?: CustomRoomPreviewBarRenderFunction;\n\n    /**\n     * Get the custom room preview bar renderer, if any has been registered.\n     */\n    public get roomPreviewBarRenderer(): CustomRoomPreviewBarRenderFunction | undefined {\n        return this._roomPreviewBarRenderer;\n    }\n\n    /**\n     * Register a custom room preview bar renderer.\n     * @param renderer - the function that will render the custom room preview bar.\n     */\n    public registerRoomPreviewBar(renderer: CustomRoomPreviewBarRenderFunction): void {\n        this._roomPreviewBarRenderer = renderer;\n    }\n\n    private _loginRenderer?: CustomLoginRenderFunction;\n\n    /**\n     * Get the custom login component renderer, if any has been registered.\n     */\n    public get loginComponentRenderer(): CustomLoginRenderFunction | undefined {\n        return this._loginRenderer;\n    }\n\n    /**\n     * Register a custom login component renderer.\n     * @param renderer - the function that will render the login component.\n     */\n    public registerLoginComponent(renderer: CustomLoginRenderFunction): void {\n        this._loginRenderer = renderer;\n    }\n\n    public registerComposerPreview(\n        filter: ComposerPreviewFilterFn,\n        renderer: CustomComposerPreviewRenderFunction,\n    ): void {\n        this.registeredComposerPreviewRenderers.push({ filter, renderer });\n    }\n    /**\n     * Render the component for a composer preview.\n     * @param props Props to be passed to the custom renderer.\n     * @param originalComponent Function that will be rendered if no custom renderers are present, or as a child of a custom component.\n     * @returns A component if a custom renderer was found. Otherwise null.\n     */\n    public renderComposerPreview(\n        props: CustomComposerPreviewComponentProps,\n        originalComponent: (props?: CustomComposerPreviewComponentProps) => React.JSX.Element,\n    ): React.JSX.Element | null {\n        const renderer = this.registeredComposerPreviewRenderers.find(({ filter }) => filter(props.text, props.roomId));\n        if (renderer) {\n            try {\n                return renderer.renderer({ ...props }, originalComponent);\n            } catch (ex) {\n                logger.warn(\"Composer preview failed to render\", ex);\n            }\n        }\n        return null;\n    }\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type Profile, Watchable } from \"@element-hq/element-web-module-api\";\n\nimport { OwnProfileStore } from \"../stores/OwnProfileStore.ts\";\nimport { UPDATE_EVENT } from \"../stores/AsyncStore.ts\";\n\nexport class WatchableProfile extends Watchable<Profile> {\n    public constructor() {\n        super({});\n        this.value = this.profile;\n\n        OwnProfileStore.instance.on(UPDATE_EVENT, this.onProfileChange);\n    }\n\n    private get profile(): Profile {\n        return {\n            isGuest: OwnProfileStore.instance.matrixClient?.isGuest() ?? false,\n            userId: OwnProfileStore.instance.matrixClient?.getUserId() ?? undefined,\n            displayName: OwnProfileStore.instance.displayName ?? undefined,\n        };\n    }\n\n    private readonly onProfileChange = (): void => {\n        this.value = this.profile;\n    };\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type {\n    LocationRenderFunction,\n    NavigationApi as INavigationApi,\n    OpenRoomOptions,\n} from \"@element-hq/element-web-module-api\";\nimport { navigateToPermalink } from \"../utils/permalinks/navigator.ts\";\nimport { parsePermalink } from \"../utils/permalinks/Permalinks.ts\";\nimport dispatcher from \"../dispatcher/dispatcher.ts\";\nimport { Action } from \"../dispatcher/actions.ts\";\nimport type { ViewRoomPayload } from \"../dispatcher/payloads/ViewRoomPayload.ts\";\n\nexport class NavigationApi implements INavigationApi {\n    public locationRenderers = new Map<string, LocationRenderFunction>();\n\n    public async toMatrixToLink(link: string, join = false): Promise<void> {\n        navigateToPermalink(link);\n\n        const parts = parsePermalink(link);\n        if (parts?.roomIdOrAlias) {\n            this.openRoom(parts.roomIdOrAlias, {\n                viaServers: parts.viaServers ?? undefined,\n                autoJoin: join,\n            });\n        }\n    }\n\n    public registerLocationRenderer(path: string, renderer: LocationRenderFunction): void {\n        this.locationRenderers.set(path, renderer);\n    }\n\n    public openRoom(roomIdOrAlias: string, opts: OpenRoomOptions = {}): void {\n        const key = roomIdOrAlias.startsWith(\"#\") ? \"room_alias\" : \"room_id\";\n        dispatcher.dispatch<ViewRoomPayload>({\n            action: Action.ViewRoom,\n            [key]: roomIdOrAlias,\n            via_servers: opts.viaServers,\n            auto_join: opts.autoJoin,\n            metricsTrigger: undefined,\n        });\n    }\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ComponentType, type JSX, useCallback } from \"react\";\nimport { type DialogProps, type DialogOptions, type DialogHandle } from \"@element-hq/element-web-module-api\";\n\nimport Modal from \"../Modal\";\nimport BaseDialog from \"../components/views/dialogs/BaseDialog.tsx\";\n\nconst OuterDialog = <M, P extends object>({\n    title,\n    Dialog,\n    props,\n    onFinished,\n}: {\n    title: string;\n    Dialog: ComponentType<DialogProps<M> & P>;\n    props: P;\n    onFinished(this: void, ok: boolean, model: M | null): void;\n}): JSX.Element => {\n    const close = useCallback(() => onFinished(false, null), [onFinished]);\n    const submit = useCallback((model: M) => onFinished(true, model), [onFinished]);\n    return (\n        <BaseDialog onFinished={close} title={title}>\n            <Dialog {...props} onSubmit={submit} onCancel={close} />\n        </BaseDialog>\n    );\n};\n\nexport function openDialog<M, P extends object>(\n    initialOptions: DialogOptions,\n    Dialog: ComponentType<P & DialogProps<M>>,\n    props: P,\n): DialogHandle<M> {\n    const { close, finished } = Modal.createDialog(OuterDialog<M, P>, {\n        title: initialOptions.title,\n        Dialog,\n        props,\n    });\n\n    return {\n        finished: finished.then(([ok, model]) => ({\n            ok: ok ?? false,\n            model: model ?? null,\n        })),\n        close: () => close(false, null),\n    };\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type AccountAuthInfo } from \"@element-hq/element-web-module-api\";\nimport { sleep } from \"matrix-js-sdk/src/utils\";\n\nimport type { OverwriteLoginPayload } from \"../dispatcher/payloads/OverwriteLoginPayload.ts\";\nimport { Action } from \"../dispatcher/actions.ts\";\nimport defaultDispatcher from \"../dispatcher/dispatcher.ts\";\nimport type { ActionPayload } from \"../dispatcher/payloads.ts\";\n\nexport async function overwriteAccountAuth(accountInfo: AccountAuthInfo): Promise<void> {\n    const { promise, resolve } = Promise.withResolvers<void>();\n\n    const onAction = (payload: ActionPayload): void => {\n        if (payload.action === Action.OnLoggedIn) {\n            // We want to wait for the new login to complete before returning.\n            // See `Action.OnLoggedIn` in dispatcher.\n            resolve();\n        }\n    };\n    const dispatcherRef = defaultDispatcher.register(onAction);\n\n    defaultDispatcher.dispatch<OverwriteLoginPayload>(\n        {\n            action: Action.OverwriteLogin,\n            credentials: {\n                ...accountInfo,\n                guest: false,\n            },\n        },\n        true,\n    ); // require to be sync to match inherited interface behaviour\n\n    // wait for login to complete\n    await promise;\n    defaultDispatcher.unregister(dispatcherRef);\n    await sleep(0); // wait for the next tick to ensure the login is fully processed\n}\n","/*\nCopyright 2025 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\nimport { type RoomViewProps, type BuiltinsApi } from \"@element-hq/element-web-module-api\";\n\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\nimport type { Room } from \"matrix-js-sdk/src/matrix\";\nimport type { ModuleNotificationDecorationProps } from \"./components/ModuleNotificationDecoration\";\n\ninterface RoomViewPropsWithRoomId extends RoomViewProps {\n    /**\n     * The ID of the room to display\n     */\n    roomId?: string;\n}\n\ninterface RoomAvatarProps {\n    room: Room;\n    size?: string;\n}\n\ninterface Components {\n    roomView: React.ComponentType<RoomViewPropsWithRoomId>;\n    roomAvatar: React.ComponentType<RoomAvatarProps>;\n    notificationDecoration: React.ComponentType<ModuleNotificationDecorationProps>;\n}\n\nexport class ElementWebBuiltinsApi implements BuiltinsApi {\n    private _roomView?: Components[\"roomView\"];\n    private _roomAvatar?: Components[\"roomAvatar\"];\n    private _notificationDecoration?: Components[\"notificationDecoration\"];\n\n    /**\n     * Sets the components used by the API.\n     *\n     * This only really exists here because referencing these components directly causes a nightmare of\n     * circular dependencies that break the whole app, so instead we avoid referencing it here\n     * and pass it in from somewhere it's already referenced (see related comment in app.tsx).\n     *\n     * @param component The components used by the api, see {@link Components}\n     */\n    public setComponents(components: Components): void {\n        this._roomView = components.roomView;\n        this._roomAvatar = components.roomAvatar;\n        this._notificationDecoration = components.notificationDecoration;\n    }\n\n    public getRoomViewComponent(): React.ComponentType<RoomViewPropsWithRoomId> {\n        if (!this._roomView) {\n            throw new Error(\"No RoomView component has been set\");\n        }\n        return this._roomView;\n    }\n\n    public getRoomAvatarComponent(): React.ComponentType<RoomAvatarProps> {\n        if (!this._roomAvatar) {\n            throw new Error(\"No RoomAvatar component has been set\");\n        }\n        return this._roomAvatar;\n    }\n\n    public getNotificationDecorationComponent(): React.ComponentType<ModuleNotificationDecorationProps> {\n        if (!this._notificationDecoration) {\n            throw new Error(\"No NotificationDecoration component has been set\");\n        }\n        return this._notificationDecoration;\n    }\n\n    public renderRoomView(roomId: string, props?: RoomViewProps): React.ReactNode {\n        const Component = this.getRoomViewComponent();\n        return <Component roomId={roomId} {...props} />;\n    }\n\n    public renderRoomAvatar(roomId: string, size?: string): React.ReactNode {\n        const room = MatrixClientPeg.safeGet().getRoom(roomId);\n        if (!room) {\n            throw new Error(`No room such room: ${roomId}`);\n        }\n        const Component = this.getRoomAvatarComponent();\n        return <Component room={room} size={size} />;\n    }\n\n    public renderNotificationDecoration(roomId: string): React.ReactNode {\n        const room = MatrixClientPeg.safeGet().getRoom(roomId);\n        if (!room) {\n            throw new Error(`No room such room: ${roomId}`);\n        }\n        const Component = this.getNotificationDecorationComponent();\n        return <Component room={room} />;\n    }\n}\n","/*\nCopyright 2025 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type Room as IRoom, Watchable } from \"@element-hq/element-web-module-api\";\nimport { RoomEvent, type Room as SdkRoom } from \"matrix-js-sdk/src/matrix\";\n\nexport class Room implements IRoom {\n    public name: Watchable<string>;\n\n    public constructor(private sdkRoom: SdkRoom) {\n        this.name = new WatchableName(sdkRoom);\n    }\n\n    public getLastActiveTimestamp(): number {\n        return this.sdkRoom.getLastActiveTimestamp();\n    }\n\n    public get id(): string {\n        return this.sdkRoom.roomId;\n    }\n}\n\n/**\n * A custom watchable for room name.\n */\nclass WatchableName extends Watchable<string> {\n    public constructor(private sdkRoom: SdkRoom) {\n        super(sdkRoom.name);\n    }\n\n    private onNameUpdate = (): void => {\n        super.value = this.sdkRoom.name;\n    };\n    protected onFirstWatch(): void {\n        this.sdkRoom.on(RoomEvent.Name, this.onNameUpdate);\n    }\n\n    protected onLastWatch(): void {\n        this.sdkRoom.off(RoomEvent.Name, this.onNameUpdate);\n    }\n}\n","/*\nCopyright 2025 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { Watchable, type AccountDataApi as IAccountDataApi } from \"@element-hq/element-web-module-api\";\nimport { ClientEvent, type MatrixEvent, type MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\n\nexport class AccountDataApi implements IAccountDataApi {\n    public get(eventType: string): Watchable<unknown> {\n        const cli = MatrixClientPeg.safeGet();\n        return new AccountDataWatchable(cli, eventType);\n    }\n\n    public async set(eventType: string, content: any): Promise<void> {\n        const cli = MatrixClientPeg.safeGet();\n        //@ts-expect-error: JS-SDK accepts known event-types, intentionally allow arbitrary types.\n        await cli.setAccountData(eventType, content);\n    }\n\n    public async delete(eventType: string): Promise<void> {\n        const cli = MatrixClientPeg.safeGet();\n        //@ts-expect-error: JS-SDK accepts known event-types, intentionally allow arbitrary types.\n        await cli.deleteAccountData(eventType);\n    }\n}\n\nclass AccountDataWatchable extends Watchable<unknown> {\n    public constructor(\n        private cli: MatrixClient,\n        private eventType: string,\n    ) {\n        //@ts-expect-error: JS-SDK accepts known event-types, intentionally allow arbitrary types.\n        super(cli.getAccountData(eventType)?.getContent());\n    }\n\n    private onAccountData = (event: MatrixEvent): void => {\n        if (event.getType() === this.eventType) {\n            this.value = event.getContent();\n        }\n    };\n\n    protected onFirstWatch(): void {\n        this.cli.on(ClientEvent.AccountData, this.onAccountData);\n    }\n\n    protected onLastWatch(): void {\n        this.cli.off(ClientEvent.AccountData, this.onAccountData);\n    }\n}\n","/*\nCopyright 2025 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\nimport type { ClientApi as IClientApi, Room } from \"@element-hq/element-web-module-api\";\nimport { Room as ModuleRoom } from \"./models/Room\";\nimport { AccountDataApi } from \"./AccountDataApi\";\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\n\nexport class ClientApi implements IClientApi {\n    public readonly accountData = new AccountDataApi();\n\n    public getRoom(roomId: string): Room | null {\n        const sdkRoom = MatrixClientPeg.safeGet().getRoom(roomId);\n        if (sdkRoom) return new ModuleRoom(sdkRoom);\n        return null;\n    }\n}\n","/*\nCopyright 2025 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\nimport {\n    type StoresApi as IStoresApi,\n    type RoomListStoreApi as IRoomListStore,\n    type Room,\n    Watchable,\n} from \"@element-hq/element-web-module-api\";\n\nimport type { RoomListStoreV3Class, RoomListStoreV3Event } from \"../stores/room-list-v3/RoomListStoreV3\";\nimport { Room as ModuleRoom } from \"./models/Room\";\n\ninterface RlsEvents {\n    LISTS_LOADED_EVENT: RoomListStoreV3Event.ListsLoaded;\n    LISTS_UPDATE_EVENT: RoomListStoreV3Event.ListsUpdate;\n}\n\nexport class RoomListStoreApi implements IRoomListStore {\n    private rls?: RoomListStoreV3Class;\n    private LISTS_LOADED_EVENT?: RoomListStoreV3Event.ListsLoaded;\n    private LISTS_UPDATE_EVENT?: RoomListStoreV3Event.ListsUpdate;\n    public readonly moduleLoadPromise: Promise<void>;\n\n    public constructor() {\n        this.moduleLoadPromise = this.init();\n    }\n\n    /**\n     * Load the RLS through a dynamic import. This is necessary to prevent\n     * circular dependency issues.\n     */\n    private async init(): Promise<void> {\n        const module = await import(\"../stores/room-list-v3/RoomListStoreV3\");\n        this.rls = module.default.instance;\n        this.LISTS_LOADED_EVENT = module.LISTS_LOADED_EVENT;\n        this.LISTS_UPDATE_EVENT = module.LISTS_UPDATE_EVENT;\n    }\n\n    public getRooms(): RoomsWatchable {\n        return new RoomsWatchable(this.roomListStore, this.events);\n    }\n\n    private get events(): RlsEvents {\n        if (!this.LISTS_LOADED_EVENT || !this.LISTS_UPDATE_EVENT) {\n            throw new Error(\"Event type was not loaded correctly, did you forget to await waitForReady()?\");\n        }\n        return { LISTS_LOADED_EVENT: this.LISTS_LOADED_EVENT, LISTS_UPDATE_EVENT: this.LISTS_UPDATE_EVENT };\n    }\n\n    private get roomListStore(): RoomListStoreV3Class {\n        if (!this.rls) {\n            throw new Error(\"rls is undefined, did you forget to await waitForReady()?\");\n        }\n        return this.rls;\n    }\n\n    public async waitForReady(): Promise<void> {\n        // Wait for the module to load first\n        await this.moduleLoadPromise;\n\n        // Check if RLS is already loaded\n        if (!this.roomListStore.isLoadingRooms) return;\n\n        // Await a promise that resolves when RLS has loaded\n        const { promise, resolve } = Promise.withResolvers<void>();\n        const { LISTS_LOADED_EVENT } = this.events;\n        this.roomListStore.once(LISTS_LOADED_EVENT, resolve);\n        await promise;\n    }\n}\n\nclass RoomsWatchable extends Watchable<Room[]> {\n    public constructor(\n        private readonly rls: RoomListStoreV3Class,\n        private readonly events: RlsEvents,\n    ) {\n        super(rls.getSortedRooms().map((sdkRoom) => new ModuleRoom(sdkRoom)));\n    }\n\n    private onRlsUpdate = (): void => {\n        this.value = this.rls.getSortedRooms().map((sdkRoom) => new ModuleRoom(sdkRoom));\n    };\n\n    protected onFirstWatch(): void {\n        this.rls.on(this.events.LISTS_UPDATE_EVENT, this.onRlsUpdate);\n    }\n\n    protected onLastWatch(): void {\n        this.rls.off(this.events.LISTS_UPDATE_EVENT, this.onRlsUpdate);\n    }\n}\n\nexport class StoresApi implements IStoresApi {\n    private roomListStoreApi?: IRoomListStore;\n\n    public get roomListStore(): IRoomListStore {\n        if (!this.roomListStoreApi) {\n            this.roomListStoreApi = new RoomListStoreApi();\n        }\n        return this.roomListStoreApi;\n    }\n}\n","/*\nCopyright 2026 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type Container, type WidgetApi as WidgetApiInterface } from \"@element-hq/element-web-module-api\";\nimport { getHttpUriForMxc } from \"matrix-js-sdk/src/matrix\";\n\nimport type { IWidget } from \"matrix-widget-api\";\nimport WidgetStore, { isAppWidget } from \"../stores/WidgetStore\";\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\nimport { WidgetLayoutStore } from \"../stores/widgets/WidgetLayoutStore\";\n\n/**\n * Host-side implementation of the widget API.\n * Allows modules to interact with widgets, including listing widgets in rooms.\n */\nexport class WidgetApi implements WidgetApiInterface {\n    public getWidgetsInRoom(roomId: string): IWidget[] {\n        return WidgetStore.instance.getApps(roomId);\n    }\n\n    public getAppAvatarUrl(app: IWidget, width?: number, height?: number, resizeMethod?: string): string | null {\n        if (!isAppWidget(app) || !app.avatar_url) return null;\n        return getHttpUriForMxc(\n            MatrixClientPeg.safeGet().getHomeserverUrl(),\n            app.avatar_url,\n            width,\n            height,\n            resizeMethod,\n        );\n    }\n\n    public isAppInContainer(app: IWidget, container: Container, roomId: string): boolean {\n        const room = MatrixClientPeg.safeGet().getRoom(roomId);\n        if (!room) return false;\n        return WidgetLayoutStore.instance.isInContainer(room, app, container);\n    }\n\n    public moveAppToContainer(app: IWidget, container: Container, roomId: string): void {\n        const room = MatrixClientPeg.safeGet().getRoom(roomId);\n        if (!room) return;\n        WidgetLayoutStore.instance.moveToContainer(room, app, container);\n    }\n}\n","/*\nCopyright 2026 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { UIComponent, CustomisationsApi as ICustomisationsApi } from \"@element-hq/element-web-module-api\";\n\nexport class CustomisationsApi implements ICustomisationsApi {\n    private shouldShowComponentFunctions = new Set<(component: UIComponent) => boolean | void>();\n\n    /**\n     * Method to register a callback which can affect whether a given component is drawn or not.\n     * @param fn - the callback, if it returns true the component will be rendered, if false it will not be.\n     *   If undefined will defer to the next callback, ultimately falling through to `true` if none return false.\n     *   The next callback is decided in FIFO call order to this register function.\n     */\n    public registerShouldShowComponent(fn: (this: void, component: UIComponent) => boolean | void): void {\n        this.shouldShowComponentFunctions.add(fn);\n    }\n\n    /**\n     * Method to check whether, according to any registered modules, a given component should be rendered.\n     * @param component - the component to check\n     */\n    public shouldShowComponent(component: UIComponent): boolean | void {\n        for (const fn of this.shouldShowComponentFunctions) {\n            const v = fn(component);\n            if (typeof v === \"boolean\") {\n                return v;\n            }\n        }\n    }\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { createRoot, type Root } from \"react-dom/client\";\nimport { type Api, type RuntimeModuleConstructor } from \"@element-hq/element-web-module-api\";\nimport { I18nApi } from \"@element-hq/web-shared-components\";\n\nimport { ModuleRunner } from \"./ModuleRunner.ts\";\nimport AliasCustomisations from \"../customisations/Alias.ts\";\nimport { RoomListCustomisations } from \"../customisations/RoomList.ts\";\nimport ChatExportCustomisations from \"../customisations/ChatExport.ts\";\nimport { ComponentVisibilityCustomisations } from \"../customisations/ComponentVisibility.ts\";\nimport DirectoryCustomisations from \"../customisations/Directory.ts\";\nimport LifecycleCustomisations from \"../customisations/Lifecycle.ts\";\nimport * as MediaCustomisations from \"../customisations/Media.ts\";\nimport UserIdentifierCustomisations from \"../customisations/UserIdentifier.ts\";\nimport { WidgetPermissionCustomisations } from \"../customisations/WidgetPermissions.ts\";\nimport { WidgetVariableCustomisations } from \"../customisations/WidgetVariables.ts\";\nimport { ConfigApi } from \"./ConfigApi.ts\";\nimport { CustomComponentsApi } from \"./customComponentApi\";\nimport { WatchableProfile } from \"./Profile.ts\";\nimport { NavigationApi } from \"./Navigation.ts\";\nimport { openDialog } from \"./Dialog.tsx\";\nimport { overwriteAccountAuth } from \"./Auth.ts\";\nimport { ElementWebExtrasApi } from \"./ExtrasApi.ts\";\nimport { ElementWebBuiltinsApi } from \"./BuiltinsApi.tsx\";\nimport { ClientApi } from \"./ClientApi.ts\";\nimport { StoresApi } from \"./StoresApi.ts\";\nimport { WidgetLifecycleApi } from \"./WidgetLifecycleApi.ts\";\nimport { WidgetApi } from \"./WidgetApi.ts\";\nimport { CustomisationsApi } from \"./customisationsApi.ts\";\nimport { ComposerApi } from \"./ComposerApi.ts\";\nimport defaultDispatcher from \"../dispatcher/dispatcher.ts\";\n\nconst legacyCustomisationsFactory = <T extends object>(baseCustomisations: T) => {\n    let used = false;\n    return (customisations: T) => {\n        if (used) throw new Error(\"Legacy customisations can only be registered by one module\");\n        Object.assign(baseCustomisations, customisations);\n        used = true;\n    };\n};\n\n/**\n * Implementation of the @element-hq/element-web-module-api runtime module API.\n */\nexport class ModuleApi implements Api {\n    private static _instance: ModuleApi;\n\n    public static get instance(): ModuleApi {\n        if (!ModuleApi._instance) {\n            ModuleApi._instance = new ModuleApi();\n            window.mxModuleApi = ModuleApi._instance;\n        }\n        return ModuleApi._instance;\n    }\n\n    /* eslint-disable @typescript-eslint/naming-convention */\n    public async _registerLegacyModule(LegacyModule: RuntimeModuleConstructor): Promise<void> {\n        ModuleRunner.instance.registerModule((api) => new LegacyModule(api));\n    }\n    public readonly _registerLegacyAliasCustomisations = legacyCustomisationsFactory(AliasCustomisations);\n    public readonly _registerLegacyChatExportCustomisations = legacyCustomisationsFactory(ChatExportCustomisations);\n    public readonly _registerLegacyComponentVisibilityCustomisations = legacyCustomisationsFactory(\n        ComponentVisibilityCustomisations,\n    );\n    public readonly _registerLegacyDirectoryCustomisations = legacyCustomisationsFactory(DirectoryCustomisations);\n    public readonly _registerLegacyLifecycleCustomisations = legacyCustomisationsFactory(LifecycleCustomisations);\n    public readonly _registerLegacyMediaCustomisations = legacyCustomisationsFactory(MediaCustomisations);\n    public readonly _registerLegacyRoomListCustomisations = legacyCustomisationsFactory(RoomListCustomisations);\n    public readonly _registerLegacyUserIdentifierCustomisations =\n        legacyCustomisationsFactory(UserIdentifierCustomisations);\n    public readonly _registerLegacyWidgetPermissionsCustomisations: (\n        customisations: typeof WidgetPermissionCustomisations,\n    ) => void = legacyCustomisationsFactory(WidgetPermissionCustomisations);\n    public readonly _registerLegacyWidgetVariablesCustomisations =\n        legacyCustomisationsFactory(WidgetVariableCustomisations);\n    /* eslint-enable @typescript-eslint/naming-convention */\n\n    public readonly navigation = new NavigationApi();\n    public readonly openDialog = openDialog;\n    public readonly overwriteAccountAuth = overwriteAccountAuth;\n    public readonly profile = new WatchableProfile();\n\n    public readonly config = new ConfigApi();\n    public readonly i18n = new I18nApi();\n    public readonly customComponents = new CustomComponentsApi();\n    public readonly customisations = new CustomisationsApi();\n    public readonly extras = new ElementWebExtrasApi();\n    public readonly builtins = new ElementWebBuiltinsApi();\n    public readonly widgetLifecycle = new WidgetLifecycleApi();\n    public readonly widget = new WidgetApi();\n    public readonly rootNode = document.getElementById(\"matrixchat\")!;\n    public readonly client = new ClientApi();\n    public readonly stores = new StoresApi();\n    public readonly composer = new ComposerApi(defaultDispatcher);\n\n    public createRoot(element: Element): Root {\n        return createRoot(element);\n    }\n}\n\nexport type ModuleApiType = ModuleApi;\n","/*\nCopyright 2026 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    type ComposerApi as ModuleComposerApi,\n    type ComposerApiFileUploadOption,\n    type ComposerApiTarget,\n} from \"@element-hq/element-web-module-api\";\nimport { TypedEventEmitter } from \"matrix-js-sdk/src/matrix\";\n\nimport type { MatrixDispatcher } from \"../dispatcher/dispatcher\";\nimport { Action } from \"../dispatcher/actions\";\nimport { ComposerType, type ComposerInsertPayload } from \"../dispatcher/payloads/ComposerInsertPayload\";\nimport { TimelineRenderingType } from \"../contexts/RoomContext\";\nimport type { ComposerInsertFilesPayload } from \"../dispatcher/payloads/ComposerInsertFilePayload\";\n\nexport enum ModuleComposerApiEvents {\n    UploaderOptionsChanged = \"uploaderOptionsChanged\",\n}\n\ninterface ModuleComposerApiEventsMap {\n    [ModuleComposerApiEvents.UploaderOptionsChanged]: (option: ComposerApiFileUploadOption) => void;\n}\n\nexport class ComposerApi\n    extends TypedEventEmitter<ModuleComposerApiEvents, ModuleComposerApiEventsMap>\n    implements ModuleComposerApi\n{\n    private readonly configuredFileUploadOptions = new Map<string, ComposerApiFileUploadOption>();\n\n    public constructor(private readonly dispatcher: MatrixDispatcher) {\n        super();\n    }\n\n    /**\n     * List of possible file upload options.\n     */\n    public get fileUploadOptions(): ComposerApiFileUploadOption[] {\n        return [...this.configuredFileUploadOptions.values()];\n    }\n\n    public addFileUploadOption(option: ComposerApiFileUploadOption): void {\n        if (this.configuredFileUploadOptions.has(option.type)) {\n            throw new Error(`Option \"${option.type}\" already exists`);\n        }\n        if (option.type === \"local\") {\n            throw new Error(`Option \"local\" is reserved`);\n        }\n        this.configuredFileUploadOptions.set(option.type, option);\n        this.emit(ModuleComposerApiEvents.UploaderOptionsChanged, option);\n    }\n\n    public openFileUploadConfirmation(files: File[], view: ComposerApiTarget = { view: \"room\" }): void {\n        if (![\"room\", \"thread\"].includes(view.view)) {\n            throw new Error(`Invalid view '${view.view}'`);\n        }\n        this.dispatcher.dispatch({\n            action: Action.ComposerFileInsert,\n            files,\n            timelineRenderingType: view.view === \"room\" ? TimelineRenderingType.Room : TimelineRenderingType.Thread,\n        } satisfies ComposerInsertFilesPayload);\n    }\n\n    public insertPlaintextIntoComposer(plaintext: string, view: ComposerApiTarget = { view: \"room\" }): void {\n        if (![\"room\", \"thread\"].includes(view.view)) {\n            throw new Error(`Invalid view '${view.view}'`);\n        }\n        this.dispatcher.dispatch({\n            action: Action.ComposerInsert,\n            text: plaintext,\n            timelineRenderingType: view.view === \"room\" ? TimelineRenderingType.Room : TimelineRenderingType.Thread,\n            // We only support send.\n            composerType: ComposerType.Send,\n        } satisfies ComposerInsertPayload);\n    }\n}\n","/*\nCopyright 2026 Element Creations Ltd.\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { useState } from \"react\";\nimport {\n    type SpacePanelItemProps,\n    type ExtrasApi,\n    type RoomHeaderButtonsCallback,\n} from \"@element-hq/element-web-module-api\";\nimport { TypedEventEmitter } from \"matrix-js-sdk/src/matrix\";\n\nimport { useTypedEventEmitter } from \"../hooks/useEventEmitter\";\n\nexport interface ModuleSpacePanelItem extends SpacePanelItemProps {\n    spaceKey: string;\n}\n\nenum ExtrasApiEvent {\n    SpacePanelItemsChanged = \"SpacePanelItemsChanged\",\n}\n\ninterface EmittedEvents {\n    [ExtrasApiEvent.SpacePanelItemsChanged]: () => void;\n}\n\nexport class ElementWebExtrasApi extends TypedEventEmitter<keyof EmittedEvents, EmittedEvents> implements ExtrasApi {\n    public spacePanelItems = new Map<string, SpacePanelItemProps>();\n    public visibleRoomBySpaceKey = new Map<string, () => string[]>();\n    public roomHeaderButtonsCallbacks: RoomHeaderButtonsCallback[] = [];\n\n    public setSpacePanelItem(spacekey: string, item: SpacePanelItemProps): void {\n        this.spacePanelItems.set(spacekey, item);\n        this.emit(ExtrasApiEvent.SpacePanelItemsChanged);\n    }\n\n    public getVisibleRoomBySpaceKey(spaceKey: string, cb: () => string[]): void {\n        this.visibleRoomBySpaceKey.set(spaceKey, cb);\n    }\n\n    public addRoomHeaderButtonCallback(cb: RoomHeaderButtonsCallback): void {\n        this.roomHeaderButtonsCallbacks.push(cb);\n    }\n}\n\nexport function useModuleSpacePanelItems(api: ElementWebExtrasApi): ModuleSpacePanelItem[] {\n    const getItems = (): ModuleSpacePanelItem[] => {\n        return Array.from(api.spacePanelItems.entries()).map(([spaceKey, item]) => ({\n            spaceKey,\n            ...item,\n        }));\n    };\n\n    const [items, setItems] = useState<ModuleSpacePanelItem[]>(getItems);\n\n    useTypedEventEmitter(api, ExtrasApiEvent.SpacePanelItemsChanged, () => {\n        setItems(getItems());\n    });\n\n    return items;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { createRef, type RefObject } from \"react\";\nimport { type DialogContent, type DialogProps } from \"@matrix-org/react-sdk-module-api/lib/components/DialogContent\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { type ModuleApi } from \"@matrix-org/react-sdk-module-api/lib/ModuleApi\";\nimport { type ModuleUiDialogOptions } from \"@matrix-org/react-sdk-module-api/lib/types/ModuleUiDialogOptions\";\n\nimport ScrollableBaseModal, { type IScrollableBaseState } from \"./ScrollableBaseModal\";\nimport { _t } from \"../../../languageHandler\";\n\ninterface IProps<P extends DialogProps, C extends DialogContent<P>> {\n    contentFactory: (props: P, ref: React.RefObject<C | null>) => React.ReactNode;\n    additionalContentProps: Omit<P, keyof DialogProps> | undefined;\n    initialOptions: ModuleUiDialogOptions;\n    moduleApi: ModuleApi;\n    onFinished(ok?: boolean, model?: Awaited<ReturnType<DialogContent<P & DialogProps>[\"trySubmit\"]>>): void;\n}\n\ninterface IState extends IScrollableBaseState {\n    // nothing special\n}\n\nexport class ModuleUiDialog<\n    P extends DialogProps = DialogProps,\n    C extends DialogContent<P> = DialogContent<P>,\n> extends ScrollableBaseModal<IProps<P, C>, IState> {\n    private contentRef = createRef<C>();\n\n    public constructor(props: IProps<P, C>) {\n        super(props);\n\n        this.state = {\n            title: this.props.initialOptions.title,\n            actionLabel: this.props.initialOptions.actionLabel ?? _t(\"action|ok\"),\n            cancelLabel: this.props.initialOptions.cancelLabel,\n            canSubmit: this.props.initialOptions.canSubmit ?? true,\n        };\n    }\n\n    protected async submit(): Promise<void> {\n        try {\n            const model = await this.contentRef.current!.trySubmit();\n            this.props.onFinished(true, model);\n        } catch (e) {\n            logger.error(\"Error during submission of module dialog:\", e);\n        }\n    }\n\n    protected cancel(): void {\n        this.props.onFinished(false);\n    }\n\n    private setOptions(options: ModuleUiDialogOptions): void {\n        this.setState((state) => ({ ...state, ...options }));\n    }\n\n    protected renderContent(): React.ReactNode {\n        const dialogProps: DialogProps = {\n            moduleApi: this.props.moduleApi,\n            setOptions: this.setOptions.bind(this),\n            cancel: this.cancel.bind(this),\n        };\n\n        // Typescript isn't very happy understanding that `contentProps` satisfies `P`\n        const contentProps: P = {\n            ...this.props.additionalContentProps,\n            ...dialogProps,\n        } as unknown as P;\n\n        // XXX: we have to fudge the types here a little as the react-sdk-module-api lacks React 19 support\n        return (\n            <div className=\"mx_ModuleUiDialog\">\n                {this.props.contentFactory(contentProps, this.contentRef as RefObject<C>)}\n            </div>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type ModuleApi } from \"@matrix-org/react-sdk-module-api/lib/ModuleApi\";\nimport {\n    type TranslationStringsObject,\n    type PlainSubstitution,\n} from \"@matrix-org/react-sdk-module-api/lib/types/translations\";\nimport { type DialogContent, type DialogProps } from \"@matrix-org/react-sdk-module-api/lib/components/DialogContent\";\nimport { type AccountAuthInfo } from \"@matrix-org/react-sdk-module-api/lib/types/AccountAuthInfo\";\nimport * as Matrix from \"matrix-js-sdk/src/matrix\";\nimport { type IRegisterRequestParams } from \"matrix-js-sdk/src/matrix\";\nimport { type ModuleUiDialogOptions } from \"@matrix-org/react-sdk-module-api/lib/types/ModuleUiDialogOptions\";\n\nimport type React from \"react\";\nimport Modal from \"../Modal\";\nimport { _t } from \"../languageHandler\";\nimport { ModuleUiDialog } from \"../components/views/dialogs/ModuleUiDialog\";\nimport SdkConfig from \"../SdkConfig\";\nimport PlatformPeg from \"../PlatformPeg\";\nimport dispatcher from \"../dispatcher/dispatcher\";\nimport { navigateToPermalink } from \"../utils/permalinks/navigator\";\nimport { parsePermalink } from \"../utils/permalinks/Permalinks\";\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\nimport { Action } from \"../dispatcher/actions\";\nimport { type OverwriteLoginPayload } from \"../dispatcher/payloads/OverwriteLoginPayload\";\nimport { type ActionPayload } from \"../dispatcher/payloads\";\nimport WidgetStore, { type IApp } from \"../stores/WidgetStore\";\nimport { type Container, WidgetLayoutStore } from \"../stores/widgets/WidgetLayoutStore\";\nimport type { ViewRoomPayload } from \"../dispatcher/payloads/ViewRoomPayload.ts\";\n\n/**\n * Glue between the `ModuleApi` interface and the react-sdk. Anticipates one instance\n * to be assigned to a single module.\n */\nexport class ProxiedModuleApi implements ModuleApi {\n    private cachedTranslations?: TranslationStringsObject;\n\n    private overrideLoginResolve?: () => void;\n\n    public constructor() {\n        dispatcher.register(this.onAction);\n    }\n\n    private onAction = (payload: ActionPayload): void => {\n        if (payload.action === Action.OnLoggedIn) {\n            this.overrideLoginResolve?.();\n        }\n    };\n\n    /**\n     * All custom translations used by the associated module.\n     */\n    public get translations(): TranslationStringsObject | undefined {\n        return this.cachedTranslations;\n    }\n\n    /**\n     * @override\n     */\n    public registerTranslations(translations: TranslationStringsObject): void {\n        this.cachedTranslations = translations;\n    }\n\n    /**\n     * @override\n     */\n    public translateString(s: TranslationKey, variables?: Record<string, PlainSubstitution>): string {\n        return _t(s, variables);\n    }\n\n    /**\n     * @override\n     */\n    public openDialog<M extends object, P extends DialogProps, C extends DialogContent<P>>(\n        initialTitleOrOptions: string | ModuleUiDialogOptions,\n        body: (props: P, ref: React.RefObject<C | null>) => React.ReactNode,\n        props?: Omit<P, keyof DialogProps>,\n    ): Promise<{ didOkOrSubmit: boolean; model: M }> {\n        const initialOptions: ModuleUiDialogOptions =\n            typeof initialTitleOrOptions === \"string\" ? { title: initialTitleOrOptions } : initialTitleOrOptions;\n\n        return new Promise<{ didOkOrSubmit: boolean; model: M }>((resolve) => {\n            Modal.createDialog(\n                ModuleUiDialog<P, C>,\n                {\n                    initialOptions,\n                    contentFactory: body,\n                    moduleApi: this,\n                    additionalContentProps: props,\n                },\n                \"mx_CompoundDialog\",\n            ).finished.then(([didOkOrSubmit, model]) => {\n                resolve({ didOkOrSubmit: !!didOkOrSubmit, model: model as M });\n            });\n        });\n    }\n\n    /**\n     * @override\n     */\n    public async registerSimpleAccount(\n        username: string,\n        password: string,\n        displayName?: string,\n    ): Promise<AccountAuthInfo> {\n        const hsUrl = SdkConfig.get(\"validated_server_config\")?.hsUrl;\n        if (!hsUrl) throw new Error(\"Could not get homeserver url\");\n        const client = Matrix.createClient({ baseUrl: hsUrl });\n        const deviceName =\n            SdkConfig.get(\"default_device_display_name\") || PlatformPeg.get()?.getDefaultDeviceDisplayName();\n        const req: IRegisterRequestParams = {\n            username,\n            password,\n            initial_device_display_name: deviceName,\n            auth: undefined,\n            inhibit_login: false,\n        };\n        const creds = await client.registerRequest(req).catch((resp) =>\n            client.registerRequest({\n                ...req,\n                auth: {\n                    session: resp.data.session,\n                    type: \"m.login.dummy\",\n                },\n            }),\n        );\n\n        if (displayName) {\n            const profileClient = Matrix.createClient({\n                baseUrl: hsUrl,\n                userId: creds.user_id,\n                deviceId: creds.device_id,\n                accessToken: creds.access_token,\n            });\n            await profileClient.setDisplayName(displayName);\n        }\n\n        return {\n            homeserverUrl: hsUrl,\n            userId: creds.user_id!,\n            deviceId: creds.device_id!,\n            accessToken: creds.access_token!,\n        };\n    }\n\n    /**\n     * @override\n     */\n    public async overwriteAccountAuth(accountInfo: AccountAuthInfo): Promise<void> {\n        // We want to wait for the new login to complete before returning.\n        // See `Action.OnLoggedIn` in dispatcher.\n        const awaitNewLogin = new Promise<void>((resolve) => {\n            this.overrideLoginResolve = resolve;\n        });\n\n        dispatcher.dispatch<OverwriteLoginPayload>(\n            {\n                action: Action.OverwriteLogin,\n                credentials: {\n                    ...accountInfo,\n                    guest: false,\n                },\n            },\n            true,\n        ); // require to be sync to match inherited interface behaviour\n\n        // wait for login to complete\n        await awaitNewLogin;\n    }\n\n    /**\n     * @override\n     */\n    public async navigatePermalink(uri: string, andJoin?: boolean): Promise<void> {\n        navigateToPermalink(uri);\n\n        const parts = parsePermalink(uri);\n        if (parts?.roomIdOrAlias) {\n            if (parts.roomIdOrAlias.startsWith(\"#\")) {\n                dispatcher.dispatch<ViewRoomPayload>({\n                    action: Action.ViewRoom,\n                    room_alias: parts.roomIdOrAlias,\n                    via_servers: parts.viaServers ?? undefined,\n                    auto_join: andJoin ?? false,\n                    metricsTrigger: undefined,\n                });\n            } else {\n                dispatcher.dispatch<ViewRoomPayload>({\n                    action: Action.ViewRoom,\n                    room_id: parts.roomIdOrAlias,\n                    via_servers: parts.viaServers ?? undefined,\n                    auto_join: andJoin ?? false,\n                    metricsTrigger: undefined,\n                });\n            }\n        }\n    }\n\n    /**\n     * @override\n     */\n    public getConfigValue<T>(namespace: string, key: string): T | undefined {\n        // Force cast to `any` because the namespace won't be known to the SdkConfig types\n        const maybeObj = SdkConfig.get(namespace as any);\n        if (!maybeObj || !(typeof maybeObj === \"object\")) return undefined;\n        return maybeObj[key];\n    }\n\n    /**\n     * @override\n     */\n    public getApps(roomId: string): IApp[] {\n        return WidgetStore.instance.getApps(roomId);\n    }\n\n    /**\n     * @override\n     */\n    public getAppAvatarUrl(app: IApp, width?: number, height?: number, resizeMethod?: string): string | null {\n        if (!app.avatar_url) return null;\n        // eslint-disable-next-line no-restricted-properties\n        return MatrixClientPeg.safeGet().mxcUrlToHttp(app.avatar_url, width, height, resizeMethod);\n    }\n\n    /**\n     * @override\n     */\n    public isAppInContainer(app: IApp, container: Container, roomId: string): boolean {\n        const room = MatrixClientPeg.safeGet().getRoom(roomId);\n        if (!room) return false;\n        return WidgetLayoutStore.instance.isInContainer(room, app, container);\n    }\n\n    /**\n     * @override\n     */\n    public moveAppToContainer(app: IApp, container: Container, roomId: string): void {\n        const room = MatrixClientPeg.safeGet().getRoom(roomId);\n        if (!room) return;\n        WidgetLayoutStore.instance.moveToContainer(room, app, container);\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type RuntimeModule } from \"@matrix-org/react-sdk-module-api/lib/RuntimeModule\";\n\nimport { type ModuleFactory } from \"./ModuleFactory\";\nimport { ProxiedModuleApi } from \"./ProxiedModuleApi\";\n\n/**\n * Wraps a module factory into a usable module. Acts as a simple container\n * for the constructs needed to operate a module.\n */\nexport class AppModule {\n    /**\n     * The module instance.\n     */\n    public readonly module: RuntimeModule;\n\n    /**\n     * The API instance used by the module.\n     */\n    public readonly api = new ProxiedModuleApi();\n\n    /**\n     * Converts a factory into an AppModule. The factory will be called\n     * immediately.\n     * @param factory The module factory.\n     */\n    public constructor(factory: ModuleFactory) {\n        this.module = factory(this.api);\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { TextInputField } from \"@matrix-org/react-sdk-module-api/lib/components/TextInputField\";\nimport { Spinner as ModuleSpinner } from \"@matrix-org/react-sdk-module-api/lib/components/Spinner\";\nimport React, { type ChangeEvent } from \"react\";\n\nimport Field from \"../components/views/elements/Field\";\nimport Spinner from \"../components/views/elements/Spinner\";\n\n// Here we define all the render factories for the module API components. This file should be\n// imported by the ModuleRunner to load them into the call stack at runtime.\n//\n// If a new component is added to the module API, it should be added here too.\n//\n// Don't forget to add a test to ensure the renderFactory is overridden! See ModuleComponents-test.tsx\n\nTextInputField.renderFactory = (props) => (\n    <Field\n        type=\"text\"\n        value={props.value}\n        onChange={(e: ChangeEvent<HTMLInputElement>) => props.onChange(e.target.value)}\n        label={props.label}\n        autoComplete=\"off\"\n    />\n);\nModuleSpinner.renderFactory = () => <Spinner />;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { safeSet } from \"matrix-js-sdk/src/utils\";\nimport { type TranslationStringsObject } from \"@matrix-org/react-sdk-module-api/lib/types/translations\";\nimport { type AnyLifecycle } from \"@matrix-org/react-sdk-module-api/lib/lifecycles/types\";\nimport {\n    DefaultCryptoSetupExtensions,\n    type ProvideCryptoSetupExtensions,\n} from \"@matrix-org/react-sdk-module-api/lib/lifecycles/CryptoSetupExtensions\";\nimport {\n    DefaultExperimentalExtensions,\n    type ProvideExperimentalExtensions,\n} from \"@matrix-org/react-sdk-module-api/lib/lifecycles/ExperimentalExtensions\";\n\nimport { AppModule } from \"./AppModule\";\nimport { type ModuleFactory } from \"./ModuleFactory\";\n\nimport \"./ModuleComponents\";\n\n/**\n * Handles and manages extensions provided by modules.\n */\nclass ExtensionsManager {\n    // Private backing fields for extensions\n    private cryptoSetupExtension: ProvideCryptoSetupExtensions;\n    private experimentalExtension: ProvideExperimentalExtensions;\n\n    /** `true` if `cryptoSetupExtension` is the default implementation; `false` if it is implemented by a module. */\n    private hasDefaultCryptoSetupExtension = true;\n\n    /** `true` if `experimentalExtension` is the default implementation; `false` if it is implemented by a module. */\n    private hasDefaultExperimentalExtension = true;\n\n    /**\n     * Create a new instance.\n     */\n    public constructor() {\n        // Set up defaults\n        this.cryptoSetupExtension = new DefaultCryptoSetupExtensions();\n        this.experimentalExtension = new DefaultExperimentalExtensions();\n    }\n\n    /**\n     * Provides a crypto setup extension.\n     *\n     * @returns The registered extension. If no module provides this extension, a default implementation is returned.\n     */\n    public get cryptoSetup(): ProvideCryptoSetupExtensions {\n        return this.cryptoSetupExtension;\n    }\n\n    /**\n     * Provides an experimental extension.\n     *\n     * @remarks\n     * This method extension is provided to simplify experimentation and development, and is not intended for production code.\n     *\n     * @returns The registered extension. If no module provides this extension, a default implementation is returned.\n     */\n    public get experimental(): ProvideExperimentalExtensions {\n        return this.experimentalExtension;\n    }\n\n    /**\n     * Add any extensions provided by the module.\n     *\n     * @param module - The appModule to check for extensions.\n     *\n     * @throws if an extension is provided by more than one module.\n     */\n    public addExtensions(module: AppModule): void {\n        const runtimeModule = module.module;\n\n        /* Add the cryptoSetup extension if any */\n        if (runtimeModule.extensions?.cryptoSetup) {\n            if (this.hasDefaultCryptoSetupExtension) {\n                this.cryptoSetupExtension = runtimeModule.extensions?.cryptoSetup;\n                this.hasDefaultCryptoSetupExtension = false;\n            } else {\n                throw new Error(\n                    `adding cryptoSetup extension implementation from module ${runtimeModule.moduleName} but an implementation was already provided.`,\n                );\n            }\n        }\n\n        /* Add the experimental extension if any */\n        if (runtimeModule.extensions?.experimental) {\n            if (this.hasDefaultExperimentalExtension) {\n                this.experimentalExtension = runtimeModule.extensions?.experimental;\n                this.hasDefaultExperimentalExtension = false;\n            } else {\n                throw new Error(\n                    `adding experimental extension implementation from module ${runtimeModule.moduleName} but an implementation was already provided.`,\n                );\n            }\n        }\n    }\n}\n\n/**\n * Handles and coordinates the operation of modules.\n */\nexport class ModuleRunner {\n    public static readonly instance = new ModuleRunner();\n\n    private extensionsManager = new ExtensionsManager();\n\n    private modules: AppModule[] = [];\n\n    private constructor() {\n        // we only want one instance\n    }\n\n    /**\n     * Exposes all extensions which may be overridden/provided by modules.\n     *\n     * @returns An `ExtensionsManager` which exposes the extensions.\n     */\n    public get extensions(): ExtensionsManager {\n        return this.extensionsManager;\n    }\n\n    /**\n     * Resets the runner, clearing all known modules, and all extensions\n     *\n     * Intended for test usage only.\n     */\n    public reset(): void {\n        this.modules = [];\n        this.extensionsManager = new ExtensionsManager();\n    }\n\n    /**\n     * All custom translations from all registered modules.\n     */\n    public get allTranslations(): TranslationStringsObject {\n        const merged: TranslationStringsObject = {};\n\n        for (const module of this.modules) {\n            const i18n = module.api.translations;\n            if (!i18n) continue;\n\n            for (const [lang, strings] of Object.entries(i18n)) {\n                safeSet(merged, lang, merged[lang] || {});\n\n                for (const [str, val] of Object.entries(strings)) {\n                    safeSet(merged[lang], str, val);\n                }\n            }\n        }\n\n        return merged;\n    }\n\n    /**\n     * Registers a factory which creates a module for later loading. The factory\n     * will be called immediately.\n     * @param factory The module factory.\n     */\n    public registerModule(factory: ModuleFactory): void {\n        const appModule = new AppModule(factory);\n\n        this.modules.push(appModule);\n\n        // Check if the new module provides any extensions, and also ensure a given extension is only provided by a single runtime module.\n        this.extensionsManager.addExtensions(appModule);\n    }\n\n    /**\n     * Invokes a lifecycle event, notifying registered modules.\n     * @param lifecycleEvent The lifecycle event.\n     * @param args The arguments for the lifecycle event.\n     */\n    public invoke(lifecycleEvent: AnyLifecycle, ...args: any[]): void {\n        for (const module of this.modules) {\n            module.module.emit(lifecycleEvent, ...args);\n        }\n    }\n}\n","/*\nCopyright 2026 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { Widget } from \"matrix-widget-api\";\nimport type {\n    CapabilitiesApprover,\n    IdentityApprover,\n    PreloadApprover,\n    WidgetDescriptor,\n    WidgetLifecycleApi as WidgetLifecycleApiInterface,\n} from \"@element-hq/element-web-module-api\";\n\n/**\n * Converts a matrix-widget-api {@link Widget} into a {@link WidgetDescriptor} for the module API.\n * @param widget - The widget instance from matrix-widget-api.\n * @param roomId - The room ID the widget belongs to, if applicable.\n */\nexport const toWidgetDescriptor = (widget: Widget, roomId?: string): WidgetDescriptor => {\n    return {\n        id: widget.id,\n        templateUrl: widget.templateUrl,\n        creatorUserId: widget.creatorUserId,\n        type: widget.type,\n        origin: widget.origin,\n        roomId,\n    };\n};\n\n/**\n * Host-side implementation of the widget lifecycle API.\n * Allows a single module to register approver callbacks for widget preloading,\n * identity token requests, and capability requests. Only one approver per slot\n * is supported; attempting to register a second throws an error.\n */\nexport class WidgetLifecycleApi implements WidgetLifecycleApiInterface {\n    private preloadApprover?: PreloadApprover;\n    private identityApprover?: IdentityApprover;\n    private capabilitiesApprover?: CapabilitiesApprover;\n\n    private ensureApproverUnset<T>(current: T | undefined, name: string): void {\n        if (current) {\n            throw new Error(`Widget lifecycle ${name} approver already registered`);\n        }\n    }\n\n    /**\n     * Register a handler that can auto-approve widget preloading.\n     * Only one preload approver may be registered; a second call throws.\n     */\n    public registerPreloadApprover(approver: PreloadApprover): void {\n        this.ensureApproverUnset(this.preloadApprover, \"preload\");\n        this.preloadApprover = approver;\n    }\n\n    /**\n     * Register a handler that can auto-approve identity token requests.\n     * Only one identity approver may be registered; a second call throws.\n     */\n    public registerIdentityApprover(approver: IdentityApprover): void {\n        this.ensureApproverUnset(this.identityApprover, \"identity\");\n        this.identityApprover = approver;\n    }\n\n    /**\n     * Register a handler that can auto-approve widget capabilities.\n     * Only one capabilities approver may be registered; a second call throws.\n     */\n    public registerCapabilitiesApprover(approver: CapabilitiesApprover): void {\n        this.ensureApproverUnset(this.capabilitiesApprover, \"capabilities\");\n        this.capabilitiesApprover = approver;\n    }\n\n    /**\n     * Invoke the registered preload approver for the given widget.\n     * @returns `true` if the module approved preloading, `false` otherwise.\n     */\n    public async preapprovePreload(widget: WidgetDescriptor): Promise<boolean> {\n        if (!this.preloadApprover) return false;\n        try {\n            return (await this.preloadApprover(widget)) === true;\n        } catch (error) {\n            console.error(\"Widget preload approver failed\", error);\n            return false;\n        }\n    }\n\n    /**\n     * Invoke the registered identity approver for the given widget.\n     * @returns `true` if the module approved the identity token request, `false` otherwise.\n     */\n    public async preapproveIdentity(widget: WidgetDescriptor): Promise<boolean> {\n        if (!this.identityApprover) return false;\n        try {\n            return (await this.identityApprover(widget)) === true;\n        } catch (error) {\n            console.error(\"Widget identity approver failed\", error);\n            return false;\n        }\n    }\n\n    /**\n     * Invoke the registered capabilities approver for the given widget.\n     * @returns The set of approved capabilities, or `undefined` to defer to the default consent flow.\n     */\n    public async preapproveCapabilities(\n        widget: WidgetDescriptor,\n        requestedCapabilities: Set<string>,\n    ): Promise<Set<string> | undefined> {\n        if (!this.capabilitiesApprover) return undefined;\n        try {\n            return await this.capabilitiesApprover(widget, requestedCapabilities);\n        } catch (error) {\n            console.error(\"Widget capabilities approver failed\", error);\n            return undefined;\n        }\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\ntype StringifyReplacer = (this: any, key: string, value: any) => any;\n\n// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value#circular_references\n// Injects `<$ cycle-trimmed $>` wherever it cuts a cyclical object relationship\nexport const getCircularReplacer = (): StringifyReplacer => {\n    const seen = new WeakSet();\n    return (key: string, value: any): any => {\n        if (typeof value === \"object\" && value !== null) {\n            if (seen.has(value)) {\n                return \"<$ cycle-trimmed $>\";\n            }\n            seen.add(value);\n        }\n        return value;\n    };\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\nCopyright 2018 New Vector Ltd\nCopyright 2017 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// This module contains all the code needed to log the console, persist it to\n// disk and submit bug reports. Rationale is as follows:\n//  - Monkey-patching the console is preferable to having a log library because\n//    we can catch logs by other libraries more easily, without having to all\n//    depend on the same log framework / pass the logger around.\n//  - We use IndexedDB to persists logs because it has generous disk space\n//    limits compared to local storage. IndexedDB does not work in incognito\n//    mode, in which case this module will not be able to write logs to disk.\n//    However, the logs will still be stored in-memory, so can still be\n//    submitted in a bug report should the user wish to: we can also store more\n//    logs in-memory than in local storage, which does work in incognito mode.\n//    We also need to handle the case where there are 2+ tabs. Each JS runtime\n//    generates a random string which serves as the \"ID\" for that tab/session.\n//    These IDs are stored along with the log lines.\n//  - Bug reports are sent as a POST over HTTPS: it purposefully does not use\n//    Matrix as bug reports may be made when Matrix is not responsive (which may\n//    be the cause of the bug). We send the most recent N MB of UTF-8 log data,\n//    starting with the most recent, which we know because the \"ID\"s are\n//    actually timestamps. We then purge the remaining logs. We also do this\n//    purge on startup to prevent logs from accumulating.\n\n// the frequency with which we flush to indexeddb\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { secureRandomString } from \"matrix-js-sdk/src/randomstring\";\n\nimport { getCircularReplacer } from \"../utils/JSON\";\n\nconst FLUSH_RATE_MS = 30 * 1000;\n\n/** the length of log data we keep in indexeddb (and include in the reports), if there are more than 24 hours of logs */\nconst MAX_LOG_SIZE = 1024 * 1024 * 5; // 5 MB\n\n/** the length of log data we keep in indexeddb (and include in the reports), if there are less than 24 hours of logs */\nconst MAX_LOG_SIZE_24H = 1024 * 1024 * 100; // 100 MB\n\ntype LogFunction = (...args: (Error | DOMException | object | string)[]) => void;\nconst consoleFunctionsToLevels = {\n    log: \"I\",\n    info: \"I\",\n    warn: \"W\",\n    error: \"E\",\n    debug: \"D\",\n} as const;\ntype LogFunctionName = keyof typeof consoleFunctionsToLevels;\n\n// A class which monkey-patches the global console and stores log lines.\nexport class ConsoleLogger {\n    private logs = \"\";\n    private originalFunctions: { [key in LogFunctionName]?: LogFunction } = {};\n\n    public monkeyPatch(consoleObj: Console): void {\n        // Monkey-patch console logging\n        (Object.keys(consoleFunctionsToLevels) as LogFunctionName[]).forEach((fnName: LogFunctionName) => {\n            const level = consoleFunctionsToLevels[fnName];\n            const originalFn = consoleObj[fnName].bind(consoleObj);\n            this.originalFunctions[fnName] = originalFn;\n            consoleObj[fnName] = (...args) => {\n                this.log(level, ...args);\n                originalFn(...args);\n            };\n        });\n    }\n\n    public bypassRageshake(fnName: LogFunctionName, ...args: (Error | DOMException | object | string)[]): void {\n        this.originalFunctions[fnName]?.(...args);\n    }\n\n    public log(level: string, ...args: (Error | DOMException | object | string)[]): void {\n        // We don't know what locale the user may be running so use ISO strings\n        const ts = new Date().toISOString();\n\n        // Convert objects and errors to helpful things\n        args = args.map((arg) => {\n            if (arg instanceof DOMException) {\n                return arg.message + ` (${arg.name} | ${arg.code})`;\n            } else if (arg instanceof Error) {\n                return arg.message + (arg.stack ? `\\n${arg.stack}` : \"\");\n            } else if (typeof arg === \"object\") {\n                return JSON.stringify(arg, getCircularReplacer());\n            } else {\n                return arg;\n            }\n        });\n\n        // Some browsers support string formatting which we're not doing here\n        // so the lines are a little more ugly but easy to implement / quick to\n        // run.\n        // Example line:\n        // 2017-01-18T11:23:53.214Z W Failed to set badge count\n        // eslint-disable-next-line @typescript-eslint/no-base-to-string\n        let line = `${ts} ${level} ${args.join(\" \")}\\n`;\n        // Do some cleanup\n        line = line.replace(/token=[a-zA-Z0-9-]+/gm, \"token=xxxxx\");\n        // Using + really is the quickest way in JS\n        // http://jsperf.com/concat-vs-plus-vs-join\n        this.logs += line;\n    }\n\n    /**\n     * Retrieve log lines to flush to disk.\n     * @param {boolean} keepLogs True to not delete logs after flushing.\n     * @returns {string} \\n delimited log lines to flush.\n     */\n    public flush(keepLogs?: boolean): string {\n        // The ConsoleLogger doesn't care how these end up on disk, it just\n        // flushes them to the caller.\n        if (keepLogs) {\n            return this.logs;\n        }\n        const logsToFlush = this.logs;\n        this.logs = \"\";\n        return logsToFlush;\n    }\n}\n\n// A class which stores log lines in an IndexedDB instance.\nexport class IndexedDBLogStore {\n    private id: string;\n    private index = 0;\n    private db: IDBDatabase | null = null;\n    private flushPromise: Promise<void> | null = null;\n    private flushAgainPromise: Promise<void> | null = null;\n\n    public constructor(\n        private indexedDB: IDBFactory,\n        private logger: ConsoleLogger,\n    ) {\n        this.id = \"instance-\" + secureRandomString(16);\n    }\n\n    /**\n     * @returns {Promise} Resolves when the store is ready.\n     */\n    public connect(): Promise<void> {\n        const req = this.indexedDB.open(\"logs\");\n        return new Promise((resolve, reject) => {\n            req.onsuccess = () => {\n                this.db = req.result;\n                // Periodically flush logs to local storage / indexeddb\n                window.setInterval(this.flush.bind(this), FLUSH_RATE_MS);\n                resolve();\n            };\n\n            req.onerror = () => {\n                const err = \"Failed to open log database: \" + req.error?.name;\n                logger.error(err);\n                reject(new Error(err));\n            };\n\n            // First time: Setup the object store\n            req.onupgradeneeded = () => {\n                const db = req.result;\n                const logObjStore = db.createObjectStore(\"logs\", {\n                    keyPath: [\"id\", \"index\"],\n                });\n                // Keys in the database look like: [ \"instance-148938490\", 0 ]\n                // Later on we need to query everything based on an instance id.\n                // In order to do this, we need to set up indexes \"id\".\n                logObjStore.createIndex(\"id\", \"id\", { unique: false });\n\n                logObjStore.add(this.generateLogEntry(new Date() + \" ::: Log database was created.\"));\n\n                const lastModifiedStore = db.createObjectStore(\"logslastmod\", {\n                    keyPath: \"id\",\n                });\n                lastModifiedStore.add(this.generateLastModifiedTime());\n            };\n        });\n    }\n\n    /**\n     * Flush logs to disk.\n     *\n     * There are guards to protect against race conditions in order to ensure\n     * that all previous flushes have completed before the most recent flush.\n     * Consider without guards:\n     *  - A calls flush() periodically.\n     *  - B calls flush() and wants to send logs immediately afterwards.\n     *  - If B doesn't wait for A's flush to complete, B will be missing the\n     *    contents of A's flush.\n     * To protect against this, we set 'flushPromise' when a flush is ongoing.\n     * Subsequent calls to flush() during this period will chain another flush,\n     * then keep returning that same chained flush.\n     *\n     * This guarantees that we will always eventually do a flush when flush() is\n     * called.\n     *\n     * @returns {Promise} Resolved when the logs have been flushed.\n     */\n    public flush(): Promise<void> {\n        // check if a flush() operation is ongoing\n        if (this.flushPromise) {\n            if (this.flushAgainPromise) {\n                // this is the 3rd+ time we've called flush() : return the same promise.\n                return this.flushAgainPromise;\n            }\n            // queue up a flush to occur immediately after the pending one completes.\n            this.flushAgainPromise = this.flushPromise\n                .then(() => {\n                    return this.flush();\n                })\n                .then(() => {\n                    this.flushAgainPromise = null;\n                });\n            return this.flushAgainPromise;\n        }\n        // there is no flush promise or there was but it has finished, so do\n        // a brand new one, destroying the chain which may have been built up.\n        this.flushPromise = new Promise<void>((resolve, reject) => {\n            if (!this.db) {\n                // not connected yet or user rejected access for us to r/w to the db.\n                reject(new Error(\"No connected database\"));\n                return;\n            }\n            const lines = this.logger.flush();\n            if (lines.length === 0) {\n                resolve();\n                return;\n            }\n            const txn = this.db.transaction([\"logs\", \"logslastmod\"], \"readwrite\");\n            const objStore = txn.objectStore(\"logs\");\n            txn.oncomplete = (event) => {\n                resolve();\n            };\n            txn.onerror = () => {\n                logger.error(\"Failed to flush logs : \", txn.error);\n                reject(new Error(\"Failed to write logs: \" + txn.error?.message));\n            };\n            objStore.add(this.generateLogEntry(lines));\n            const lastModStore = txn.objectStore(\"logslastmod\");\n            lastModStore.put(this.generateLastModifiedTime());\n        }).then(() => {\n            this.flushPromise = null;\n        });\n        return this.flushPromise;\n    }\n\n    /**\n     * Consume the most recent logs and return them. Older logs which are not\n     * returned are deleted at the same time, so this can be called at startup\n     * to do house-keeping to keep the logs from growing too large.\n     *\n     * @returns {Promise<Object[]>} Resolves to an array of objects. The array is\n     * sorted in time (oldest first) based on when the log file was created (the\n     * log ID). The objects have said log ID in an \"id\" field and \"lines\" which\n     * is a big string with all the new-line delimited logs.\n     */\n    public async consume(): Promise<{ lines: string; id: string }[]> {\n        const allLogIds = await this.fetchLogIds();\n        let removeLogIds: string[] = [];\n        const logs: { lines: string; id: string }[] = [];\n        let size = 0;\n        for (let i = 0; i < allLogIds.length; i++) {\n            const instanceId = allLogIds[i];\n            const { lines, truncated } = await this.fetchLogs(instanceId, size);\n\n            // always add the returned logs: fetchLogs will truncate once it hits the size limit,\n            // so we'll go over the max but only by one fragment's worth.\n            logs.push({ lines, id: instanceId });\n            size += lines.length;\n\n            // If fetchLogs truncated we'll now be at or over the size limit,\n            // in which case we should stop and remove the rest of the log files.\n            if (truncated) {\n                logger.log(\n                    `rageshake: reached size limit while processing instance ${i + 1}/${\n                        allLogIds.length\n                    } (${instanceId}), with ${size} bytes of logs: will drop further instances`,\n                );\n                // the remaining log IDs should be removed. If we go out of\n                // bounds this is just []\n                removeLogIds = allLogIds.slice(i + 1);\n                break;\n            }\n        }\n        if (removeLogIds.length > 0) {\n            logger.log(`rageshake: removing logs: ${removeLogIds}`);\n            // Don't await this because it's non-fatal if we can't clean up\n            // logs.\n            Promise.all(removeLogIds.map((id) => this.deleteLogs(id))).then(\n                () => {\n                    logger.log(`Removed ${removeLogIds.length} old logs.`);\n                },\n                (err) => {\n                    logger.error(err);\n                },\n            );\n        }\n        return logs;\n    }\n\n    /**\n     * Fetch all the application instance names from the database.\n     */\n    private fetchLogIds(): Promise<string[]> {\n        const db = this.db;\n        if (!db) return Promise.reject(\"DB unavailable\");\n\n        // To gather all the log IDs, query for all records in logslastmod.\n        const o = db.transaction(\"logslastmod\", \"readonly\").objectStore(\"logslastmod\");\n        return selectQuery(o, undefined, (cursor) => {\n            return {\n                id: cursor.value.id,\n                ts: cursor.value.ts,\n            };\n        }).then((res) => {\n            // Sort IDs by timestamp (newest first)\n            return res\n                .sort((a, b) => {\n                    return b.ts - a.ts;\n                })\n                .map((a) => a.id);\n        });\n    }\n\n    /**\n     * Fetch logs for a given application instance from the database, stopping once we hit the size limit.\n     *\n     * @param id - Application instance to fetch logs for.\n     * @param sizeSoFar - Amount of logs we have already retrieved from other instances.\n     *\n     * @returns An object with the properties:\n     *  * `lines`: the concatenated logs for this ID\n     *  * `truncated`: whether the output was truncated due to hitting the size limit.\n     */\n    private fetchLogs(\n        id: string,\n        sizeSoFar: number,\n    ): Promise<{\n        lines: string;\n        truncated: boolean;\n    }> {\n        const db = this.db;\n        if (!db) return Promise.reject(\"DB unavailable\");\n\n        const objectStore = db.transaction(\"logs\", \"readonly\").objectStore(\"logs\");\n\n        /** Determine whether we should stop collecting logs after this batch.\n         *\n         * @param sizeSoFar - The total amount of logs collected so far.\n         * @param logBatchTimestamp - The timestamp of the most recent batch of logs collected.\n         *\n         * @returns `true` if we should stop after this batch.\n         */\n        function shouldTruncateAfterLogBatch(sizeSoFar: number, logBatchTimestamp: number): boolean {\n            // First check if we have exceeded the absolute limit\n            if (sizeSoFar >= MAX_LOG_SIZE_24H) {\n                return true;\n            }\n\n            // Otherwise, check if the most recent batch is more than 24H old, and we have exceeded the limit for logs over 24H\n            if (Date.now() - logBatchTimestamp >= 24 * 3600 * 1000 && sizeSoFar >= MAX_LOG_SIZE) {\n                return true;\n            }\n\n            // Otherwise, we're good.\n            return false;\n        }\n\n        return new Promise((resolve, reject) => {\n            const query = objectStore.index(\"id\").openCursor(IDBKeyRange.only(id), \"prev\");\n            let lines = \"\";\n            query.onerror = () => {\n                reject(new Error(\"Query failed: \" + query.error?.message));\n            };\n            query.onsuccess = () => {\n                const cursor = query.result;\n                if (!cursor) {\n                    // end of results\n                    resolve({ lines, truncated: false });\n                    return;\n                }\n                const newLines = cursor.value.lines;\n                // The query returns log chunks in reverse time order, so prepend this new chunk to the buffer.\n                lines = newLines + lines;\n                sizeSoFar += newLines.length;\n\n                // If we have now exceeded the size limit, stop.\n                if (shouldTruncateAfterLogBatch(sizeSoFar, cursor.value.ts ?? 0)) {\n                    resolve({ lines, truncated: true });\n                } else {\n                    cursor.continue();\n                }\n            };\n        });\n    }\n\n    /**\n     * Delete logs for a given application instance.\n     *\n     * @param id - Application instance to delete logs for.\n     */\n    private deleteLogs(id: string): Promise<void> {\n        const db = this.db;\n        if (!db) return Promise.reject(\"DB unavailable\");\n\n        return new Promise<void>((resolve, reject) => {\n            const txn = db.transaction([\"logs\", \"logslastmod\"], \"readwrite\");\n            const o = txn.objectStore(\"logs\");\n            // only load the key path, not the data which may be huge\n            const query = o.index(\"id\").openKeyCursor(IDBKeyRange.only(id));\n            query.onsuccess = () => {\n                const cursor = query.result;\n                if (!cursor) {\n                    return;\n                }\n                o.delete(cursor.primaryKey);\n                cursor.continue();\n            };\n            txn.oncomplete = () => {\n                resolve();\n            };\n            txn.onerror = () => {\n                reject(new Error(\"Failed to delete logs for \" + `'${id}' : ${query.error?.message}`));\n            };\n            // delete last modified entries\n            const lastModStore = txn.objectStore(\"logslastmod\");\n            lastModStore.delete(id);\n        });\n    }\n\n    /** Generate the object to be stored in the `logs` store */\n    private generateLogEntry(lines: string): { id: string; lines: string; index: number; ts: number } {\n        return {\n            id: this.id,\n            lines: lines,\n            index: this.index++,\n            /** The timestamp at which the line was *flushed* (not necessarily when it was written). */\n            ts: Date.now(),\n        };\n    }\n\n    private generateLastModifiedTime(): { id: string; ts: number } {\n        return {\n            id: this.id,\n            ts: Date.now(),\n        };\n    }\n}\n\n/**\n * Helper method to collect results from a Cursor and promiseify it.\n * @param {ObjectStore|Index} store The store to perform openCursor on.\n * @param {IDBKeyRange=} keyRange Optional key range to apply on the cursor.\n * @param {Function} resultMapper A function which is repeatedly called with a\n * Cursor.\n * Return the data you want to keep.\n * @returns {Promise<T[]>} Resolves to an array of whatever you returned from\n * resultMapper.\n */\nfunction selectQuery<T>(\n    store: IDBIndex | IDBObjectStore,\n    keyRange: IDBKeyRange | undefined,\n    resultMapper: (cursor: IDBCursorWithValue) => T,\n): Promise<T[]> {\n    const query = store.openCursor(keyRange);\n    return new Promise((resolve, reject) => {\n        const results: T[] = [];\n        query.onerror = () => {\n            reject(new Error(\"Query failed: \" + query.error?.message));\n        };\n        // collect results\n        query.onsuccess = () => {\n            const cursor = query.result;\n            if (!cursor) {\n                resolve(results);\n                return; // end of results\n            }\n            results.push(resultMapper(cursor));\n            cursor.continue();\n        };\n    });\n}\n\n/**\n * Configure rage shaking support for sending bug reports.\n * Modifies globals.\n * @param {boolean} setUpPersistence When true (default), the persistence will\n * be set up immediately for the logs.\n * @returns {Promise} Resolves when set up.\n */\nexport function init(setUpPersistence = true): Promise<void> {\n    if (global.mx_rage_initPromise) {\n        return global.mx_rage_initPromise;\n    }\n    global.mx_rage_logger = new ConsoleLogger();\n    global.mx_rage_logger.monkeyPatch(window.console);\n\n    // log unhandled rejections in the rageshake\n    window.addEventListener(\"unhandledrejection\", (event) => {\n        global.mx_rage_logger.log(\"error\", `Unhandled promise rejection: ${event.reason}`);\n    });\n\n    if (setUpPersistence) {\n        return tryInitStorage();\n    }\n\n    global.mx_rage_initPromise = Promise.resolve();\n    return global.mx_rage_initPromise;\n}\n\n/**\n * Try to start up the rageshake storage for logs. If not possible (client unsupported)\n * then this no-ops.\n * @returns {Promise} Resolves when complete.\n */\nexport function tryInitStorage(): Promise<void> {\n    if (global.mx_rage_initStoragePromise) {\n        return global.mx_rage_initStoragePromise;\n    }\n\n    logger.log(\"Configuring rageshake persistence...\");\n\n    // just *accessing* indexedDB throws an exception in firefox with\n    // indexeddb disabled.\n    let indexedDB;\n    try {\n        indexedDB = window.indexedDB;\n    } catch {}\n\n    if (indexedDB) {\n        global.mx_rage_store = new IndexedDBLogStore(indexedDB, global.mx_rage_logger);\n        global.mx_rage_initStoragePromise = global.mx_rage_store.connect();\n\n        // Fire off a task in the background which will clean up old logs in the store\n        global.mx_rage_initStoragePromise.then(() => {\n            global.mx_rage_store.consume().catch((e) => {\n                logger.error(\"Error cleaning up rageshake store\", e);\n            });\n        });\n\n        return global.mx_rage_initStoragePromise;\n    }\n    global.mx_rage_initStoragePromise = Promise.resolve();\n    return global.mx_rage_initStoragePromise;\n}\n\nexport function flush(): void {\n    if (!global.mx_rage_store) {\n        return;\n    }\n    global.mx_rage_store.flush();\n}\n\n/**\n * Clean up old logs.\n *\n * @deprecated There is no need to call this explicitly: it will be done as a side-effect of {@link tryInitStorage},\n * or {@link init} with `setUpPersistence: true`.\n *\n * @returns {Promise} Resolves if cleaned logs.\n */\nexport async function cleanup(): Promise<void> {\n    if (!global.mx_rage_store) {\n        return;\n    }\n    await global.mx_rage_store.consume();\n}\n\n/**\n * Get a recent snapshot of the logs, ready for attaching to a bug report\n *\n * @returns {Array<{lines: string, id, string}>}  list of log data\n */\nexport async function getLogsForReport(): Promise<{ lines: string; id: string }[]> {\n    if (!global.mx_rage_logger) {\n        throw new Error(\"No console logger, did you forget to call init()?\");\n    }\n    // If in incognito mode, store is null, but we still want bug report\n    // sending to work going off the in-memory console logs.\n    if (global.mx_rage_store) {\n        // flush most recent logs\n        await global.mx_rage_store.flush();\n        return global.mx_rage_store.consume();\n    } else {\n        return [\n            {\n                lines: global.mx_rage_logger.flush(true),\n                id: \"-\",\n            },\n        ];\n    }\n}\n","/*\nCopyright 2024, 2025 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\nCopyright 2018 New Vector Ltd\nCopyright 2017 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { Method, type MatrixClient } from \"matrix-js-sdk/src/matrix\";\nimport { type CryptoApi } from \"matrix-js-sdk/src/crypto-api\";\n\nimport type * as Pako from \"pako\";\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\nimport PlatformPeg from \"../PlatformPeg\";\nimport { _t } from \"../languageHandler\";\nimport * as rageshake from \"./rageshake\";\nimport SettingsStore from \"../settings/SettingsStore\";\nimport SdkConfig from \"../SdkConfig\";\nimport { getServerVersionFromFederationApi } from \"../components/views/dialogs/devtools/ServerInfo\";\nimport type * as Tar from \"tar-js\";\nimport { BugReportEndpointURLLocal } from \"../IConfigOptions\";\nimport { getBrowserSupport } from \"../SupportedBrowser\";\n\ninterface IOpts {\n    labels?: string[];\n    userText?: string;\n    sendLogs?: boolean;\n    progressCallback?: (s: string) => void;\n    customApp?: string;\n    customFields?: Record<string, string>;\n}\n\nexport class RageshakeError extends Error {\n    /**\n     * This error is thrown when the rageshake server cannot process the request.\n     * @param errorcode Machine-readable error code. See https://github.com/matrix-org/rageshake/blob/main/docs/api.md\n     * @param error A human-readable error.\n     * @param statusCode The HTTP status code.\n     * @param policyURL Optional policy URL that can be presented to the user.\n     */\n    public constructor(\n        public readonly errorcode: string,\n        public readonly error: string,\n        public readonly statusCode: number,\n        public readonly policyURL?: string,\n    ) {\n        super(`The rageshake server responded with an error ${errorcode} (${statusCode}): ${error}`);\n    }\n}\n\n/**\n * Exported only for testing.\n * @internal public for test\n */\nexport async function collectBugReport(opts: IOpts = {}, gzipLogs = true): Promise<FormData> {\n    const progressCallback = opts.progressCallback;\n\n    progressCallback?.(_t(\"bug_reporting|collecting_information\"));\n\n    logger.log(\"Sending bug report.\");\n\n    const body = new FormData();\n\n    await collectBaseInformation(body, opts);\n\n    const client = MatrixClientPeg.get();\n\n    if (client) {\n        await collectClientInfo(client, body);\n    }\n\n    collectLabels(client, opts, body);\n\n    collectSettings(body);\n\n    await collectStorageStatInfo(body);\n\n    collectMissingFeatures(body);\n\n    if (opts.sendLogs) {\n        await collectLogs(body, gzipLogs, progressCallback);\n    }\n\n    return body;\n}\n\nasync function getAppVersion(): Promise<string | undefined> {\n    try {\n        return await PlatformPeg.get()?.getAppVersion();\n    } catch {\n        // this happens if no version is set i.e. in dev\n    }\n}\n\nfunction matchesMediaQuery(query: string): string {\n    try {\n        return String(window.matchMedia(query).matches);\n    } catch {\n        // if not supported in browser\n    }\n    return \"UNKNOWN\";\n}\n\n/**\n * Collects base information about the user and the app to add to the report.\n */\nasync function collectBaseInformation(body: FormData, opts: IOpts): Promise<void> {\n    const version = await getAppVersion();\n\n    const userAgent = window.navigator?.userAgent ?? \"UNKNOWN\";\n\n    const installedPWA = matchesMediaQuery(\"(display-mode: standalone)\");\n    const touchInput = matchesMediaQuery(\"(pointer: coarse)\");\n\n    body.append(\"text\", opts.userText || \"User did not supply any additional text.\");\n    body.append(\"app\", opts.customApp || \"element-web\");\n    body.append(\"version\", version ?? \"UNKNOWN\");\n    body.append(\"user_agent\", userAgent);\n    body.append(\"supported_environment\", getBrowserSupport().toString());\n    body.append(\"installed_pwa\", installedPWA);\n    body.append(\"touch_input\", touchInput);\n\n    if (opts.customFields) {\n        for (const key in opts.customFields) {\n            body.append(key, opts.customFields[key]);\n        }\n    }\n}\n\n/**\n * Collects client and crypto related info.\n */\nasync function collectClientInfo(client: MatrixClient, body: FormData): Promise<void> {\n    body.append(\"user_id\", client.credentials.userId!);\n    body.append(\"device_id\", client.deviceId!);\n\n    const cryptoApi = client.getCrypto();\n\n    if (cryptoApi) {\n        await collectCryptoInfo(cryptoApi, body);\n        await collectRecoveryInfo(client, cryptoApi, body);\n    }\n\n    await collectSynapseSpecific(client, body);\n}\n\n/**\n * Collects information about the home server.\n */\nasync function collectSynapseSpecific(client: MatrixClient, body: FormData): Promise<void> {\n    try {\n        // XXX: This is synapse-specific but better than nothing until MSC support for a server version endpoint\n        const data = await client.http.request<Record<string, any>>(\n            Method.Get,\n            \"/server_version\",\n            undefined,\n            undefined,\n            {\n                prefix: \"/_synapse/admin/v1\",\n            },\n        );\n        Object.keys(data).forEach((key) => {\n            body.append(`matrix_hs_${key}`, data[key]);\n        });\n    } catch {\n        try {\n            // XXX: This relies on the federation listener being delegated via well-known\n            // or at the same place as the client server endpoint\n            const data = await getServerVersionFromFederationApi(client);\n            body.append(\"matrix_hs_name\", data.server.name);\n            body.append(\"matrix_hs_version\", data.server.version);\n        } catch {\n            try {\n                // If that fails we'll hit any endpoint and look at the server response header\n                const res = await fetch(client.http.getUrl(\"/login\"), {\n                    method: \"GET\",\n                    mode: \"cors\",\n                });\n                if (res.headers.has(\"server\")) {\n                    body.append(\"matrix_hs_server\", res.headers.get(\"server\")!);\n                }\n            } catch {\n                // Could not determine server version\n            }\n        }\n    }\n}\n\n/**\n * Collects crypto related information.\n */\nasync function collectCryptoInfo(cryptoApi: CryptoApi, body: FormData): Promise<void> {\n    body.append(\"crypto_version\", cryptoApi.getVersion());\n\n    const ownDeviceKeys = await cryptoApi.getOwnDeviceKeys();\n    const keys = [`curve25519:${ownDeviceKeys.curve25519}`, `ed25519:${ownDeviceKeys.ed25519}`];\n\n    body.append(\"device_keys\", keys.join(\", \"));\n\n    // add cross-signing status information\n    const crossSigningStatus = await cryptoApi.getCrossSigningStatus();\n\n    body.append(\"cross_signing_ready\", String(await cryptoApi.isCrossSigningReady()));\n    body.append(\"cross_signing_key\", (await cryptoApi.getCrossSigningKeyId()) ?? \"n/a\");\n    body.append(\"cross_signing_privkey_in_secret_storage\", String(crossSigningStatus.privateKeysInSecretStorage));\n\n    body.append(\"cross_signing_master_privkey_cached\", String(crossSigningStatus.privateKeysCachedLocally.masterKey));\n    body.append(\n        \"cross_signing_self_signing_privkey_cached\",\n        String(crossSigningStatus.privateKeysCachedLocally.selfSigningKey),\n    );\n    body.append(\n        \"cross_signing_user_signing_privkey_cached\",\n        String(crossSigningStatus.privateKeysCachedLocally.userSigningKey),\n    );\n}\n\n/**\n * Collects information about secret storage and backup.\n */\nasync function collectRecoveryInfo(client: MatrixClient, cryptoApi: CryptoApi, body: FormData): Promise<void> {\n    const secretStorage = client.secretStorage;\n    body.append(\"secret_storage_ready\", String(await cryptoApi.isSecretStorageReady()));\n    body.append(\"secret_storage_key_in_account\", String(await secretStorage.hasKey()));\n\n    body.append(\"session_backup_key_in_secret_storage\", String(!!(await client.isKeyBackupKeyStored())));\n    const sessionBackupKeyFromCache = await cryptoApi.getSessionBackupPrivateKey();\n    body.append(\"session_backup_key_cached\", String(!!sessionBackupKeyFromCache));\n    body.append(\"session_backup_key_well_formed\", String(sessionBackupKeyFromCache instanceof Uint8Array));\n}\n\n/**\n * Collects labels to add to the report.\n */\nexport function collectLabels(client: MatrixClient | null, opts: IOpts, body: FormData): void {\n    if (opts.labels) {\n        for (const label of opts.labels) {\n            body.append(\"label\", label);\n        }\n    }\n}\n\n/**\n * Collects some settings (lab flags and more) to add to the report.\n */\nexport function collectSettings(body: FormData): void {\n    // add labs options\n    const enabledLabs = SettingsStore.getFeatureSettingNames().filter((f) => SettingsStore.getValue(f));\n    if (enabledLabs.length) {\n        body.append(\"enabled_labs\", enabledLabs.join(\", \"));\n    }\n    // if low bandwidth mode is enabled, say so over rageshake, it causes many issues\n    if (SettingsStore.getValue(\"lowBandwidth\")) {\n        body.append(\"lowBandwidth\", \"enabled\");\n    }\n\n    body.append(\"mx_local_settings\", SettingsStore.exportForRageshake());\n}\n\n/**\n * Collects storage statistics to add to the report.\n */\nasync function collectStorageStatInfo(body: FormData): Promise<void> {\n    // add storage persistence/quota information\n    if (navigator.storage && navigator.storage.persisted) {\n        try {\n            body.append(\"storageManager_persisted\", String(await navigator.storage.persisted()));\n        } catch {}\n    } else if (document.hasStorageAccess) {\n        // Safari\n        try {\n            body.append(\"storageManager_persisted\", String(await document.hasStorageAccess()));\n        } catch {}\n    }\n    if (navigator.storage && navigator.storage.estimate) {\n        try {\n            const estimate = await navigator.storage.estimate();\n            body.append(\"storageManager_quota\", String(estimate.quota));\n            body.append(\"storageManager_usage\", String(estimate.usage));\n            if (estimate.usageDetails) {\n                Object.keys(estimate.usageDetails).forEach((k) => {\n                    body.append(`storageManager_usage_${k}`, String(estimate.usageDetails![k]));\n                });\n            }\n        } catch {}\n    }\n}\n\nfunction collectMissingFeatures(body: FormData): void {\n    if (window.Modernizr) {\n        const missingFeatures = (Object.keys(window.Modernizr) as [keyof ModernizrStatic]).filter(\n            (key: keyof ModernizrStatic) => window.Modernizr[key] === false,\n        );\n        if (missingFeatures.length > 0) {\n            body.append(\"modernizr_missing_features\", missingFeatures.join(\", \"));\n        }\n    }\n}\n\n/**\n * Collects logs to add to the report if enabled.\n */\nasync function collectLogs(\n    body: FormData,\n    gzipLogs: boolean,\n    progressCallback: ((s: string) => void) | undefined,\n): Promise<void> {\n    let pako: typeof Pako | undefined;\n    if (gzipLogs) {\n        pako = await import(\"pako\");\n    }\n\n    progressCallback?.(_t(\"bug_reporting|collecting_logs\"));\n    const logs = await rageshake.getLogsForReport();\n    for (const entry of logs) {\n        // encode as UTF-8\n        let buf = new TextEncoder().encode(entry.lines);\n\n        // compress\n        if (pako) {\n            buf = pako.gzip(buf).slice();\n        }\n\n        body.append(\"compressed-log\", new Blob([buf]), entry.id);\n    }\n}\n/**\n * Send a bug report.\n *\n * @param {string} bugReportEndpoint HTTP url to send the report to\n *\n * @param {object} opts optional dictionary of options\n *\n * @param {string} opts.userText Any additional user input.\n *\n * @param {boolean} opts.sendLogs True to send logs\n *\n * @param {function(string)} opts.progressCallback Callback to call with progress updates\n *\n * @returns {Promise<string>} URL returned by the rageshake server\n *\n * @throws A RageshakeError when the rageshake server responds with an error. This will be `RS_UNKNOWN` if the\n *         the server does not respond with an expected body format.\n */\nexport default async function sendBugReport(bugReportEndpoint?: string, opts: IOpts = {}): Promise<string> {\n    if (!bugReportEndpoint || bugReportEndpoint === BugReportEndpointURLLocal) {\n        throw new Error(\"No bug report endpoint has been set.\");\n    }\n\n    const progressCallback = opts.progressCallback || ((): void => {});\n    const body = await collectBugReport(opts);\n\n    progressCallback(_t(\"bug_reporting|uploading_logs\"));\n    return submitReport(bugReportEndpoint, body, progressCallback);\n}\n\n/**\n * Loads a bug report into a tarball.\n *\n * @param opts optional dictionary of options\n * @returns Resolves with a Tarball object.\n */\nexport async function loadBugReport(opts: IOpts = {}): Promise<Tar> {\n    const Tar = (await import(\"tar-js\")).default;\n    const progressCallback = opts.progressCallback || ((): void => {});\n    const body = await collectBugReport(opts, false);\n\n    progressCallback(_t(\"bug_reporting|downloading_logs\"));\n    let metadata = \"\";\n    const tape = new Tar();\n    let i = 0;\n    for (const [key, value] of body.entries()) {\n        if (key === \"compressed-log\") {\n            await new Promise<void>((resolve) => {\n                const reader = new FileReader();\n                reader.addEventListener(\"loadend\", (ev) => {\n                    tape.append(`log-${i++}.log`, new TextDecoder().decode(reader.result as ArrayBuffer));\n                    resolve();\n                });\n                reader.readAsArrayBuffer(value as Blob);\n            });\n        } else {\n            metadata += `${key} = ${value as string}\\n`;\n        }\n    }\n    tape.append(\"issue.txt\", metadata);\n    return tape;\n}\n\n/**\n * Downloads the files from a bug report. This is the same as sendBugReport,\n * but instead causes the browser to download the files locally.\n *\n * @param opts optional dictionary of options\n * @returns Resolved when the bug report is downloaded (or started).\n */\nexport async function downloadBugReport(opts: IOpts = {}): Promise<void> {\n    const tape = await loadBugReport(opts);\n    // We have to create a new anchor to download if we want a filename. Otherwise we could\n    // just use window.open.\n    const dl = document.createElement(\"a\");\n    dl.href = `data:application/octet-stream;base64,${btoa(uint8ToString(tape.out))}`;\n    dl.download = \"rageshake.tar\";\n    document.body.appendChild(dl);\n    dl.click();\n    document.body.removeChild(dl);\n}\n\n// Source: https://github.com/beatgammit/tar-js/blob/master/examples/main.js\nfunction uint8ToString(buf: Uint8Array): string {\n    let out = \"\";\n    for (let i = 0; i < buf.length; i += 1) {\n        out += String.fromCharCode(buf[i]);\n    }\n    return out;\n}\n\nexport async function submitFeedback(\n    label: string | undefined,\n    comment: string,\n    canContact = false,\n    extraData: Record<string, any> = {},\n): Promise<void> {\n    const bugReportEndpointUrl = SdkConfig.get().bug_report_endpoint_url;\n    if (!bugReportEndpointUrl || bugReportEndpointUrl === BugReportEndpointURLLocal) {\n        throw new Error(\"Bug report URL is not set or local\");\n    }\n    let version: string | undefined;\n    try {\n        version = await PlatformPeg.get()?.getAppVersion();\n    } catch {} // PlatformPeg already logs this.\n\n    const body = new FormData();\n    if (label) body.append(\"label\", label);\n    body.append(\"text\", comment);\n    body.append(\"can_contact\", canContact ? \"yes\" : \"no\");\n\n    body.append(\"app\", \"element-web\");\n    body.append(\"version\", version || \"UNKNOWN\");\n    body.append(\"platform\", PlatformPeg.get()?.getHumanReadableName() ?? \"n/a\");\n    body.append(\"user_id\", MatrixClientPeg.get()?.getUserId() ?? \"n/a\");\n\n    for (const k in extraData) {\n        body.append(k, JSON.stringify(extraData[k]));\n    }\n\n    await submitReport(bugReportEndpointUrl, body, () => {});\n}\n\n/**\n * Submit a rageshake report to the rageshake server.\n *\n * @param endpoint The endpoint to call.\n * @param body The report body.\n * @param progressCallback A callback that will be called when the upload process has begun.\n * @returns The URL to the public report.\n * @throws A RageshakeError when the rageshake server responds with an error. This will be `RS_UNKNOWN` if the\n *         the server does not respond with an expected body format.\n */\nasync function submitReport(\n    endpoint: string,\n    body: FormData,\n    progressCallback: (str: string) => void,\n): Promise<string> {\n    const req = fetch(endpoint, {\n        method: \"POST\",\n        body,\n        signal: AbortSignal.timeout?.(5 * 60 * 1000),\n    });\n    progressCallback(_t(\"bug_reporting|waiting_for_server\"));\n    const response = await req;\n    if (response.headers.get(\"Content-Type\") !== \"application/json\") {\n        throw new RageshakeError(\"UNKNOWN\", \"Rageshake server responded with unexpected type\", response.status);\n    }\n    const data = await response.json();\n    if (response.status < 200 || response.status >= 400) {\n        if (\"errcode\" in data) {\n            throw new RageshakeError(data.errcode, data.error, response.status, data.policy_url);\n        }\n        throw new RageshakeError(\"UNKNOWN\", \"Rageshake server responded with unexpected type\", response.status);\n    }\n    return data.report_url;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/**\n * Represents the various setting levels supported by the SettingsStore.\n */\nexport enum SettingLevel {\n    // TODO: [TS] Follow naming convention\n    DEVICE = \"device\",\n    ROOM_DEVICE = \"room-device\",\n    ROOM_ACCOUNT = \"room-account\",\n    ACCOUNT = \"account\",\n    ROOM = \"room\",\n    PLATFORM = \"platform\",\n    CONFIG = \"config\",\n    DEFAULT = \"default\",\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2019 Michael Telatynski <7t3chguy@gmail.com>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingController from \"./SettingController\";\nimport { DEFAULT_THEME, enumerateThemes } from \"../../theme\";\nimport { type SettingLevel } from \"../SettingLevel\";\n\nexport default class ThemeController extends SettingController {\n    public getValueOverride(\n        level: SettingLevel,\n        roomId: string,\n        calculatedValue: any,\n        calculatedAtLevel: SettingLevel | null,\n    ): any {\n        if (!calculatedValue) return null; // Don't override null themes\n\n        const themes = enumerateThemes();\n        // Override in case some no longer supported theme is stored here\n        if (!themes[calculatedValue]) {\n            return DEFAULT_THEME;\n        }\n\n        return null; // no override\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingController from \"./SettingController\";\nimport dis from \"../../dispatcher/dispatcher\";\nimport { type UpdateFontSizeDeltaPayload } from \"../../dispatcher/payloads/UpdateFontSizeDeltaPayload\";\nimport { Action } from \"../../dispatcher/actions\";\nimport { SettingLevel } from \"../SettingLevel\";\n\nexport default class FontSizeController extends SettingController {\n    public constructor() {\n        super();\n    }\n\n    public onChange(level: SettingLevel, roomId: string, newValue: any): void {\n        // In a distant past, `baseFontSize` was set on the account and config\n        // level. This can be accessed only after the initial sync. If we end up\n        // discovering that a logged in user has this kind of setting, we want to\n        // trigger another migration of the base font size.\n        if (level === SettingLevel.ACCOUNT || level === SettingLevel.CONFIG) {\n            dis.fire(Action.MigrateBaseFontSize);\n        } else if (newValue !== \"\") {\n            // Dispatch font size change so that everything open responds to the change.\n            dis.dispatch<UpdateFontSizeDeltaPayload>({\n                action: Action.UpdateFontSizeDelta,\n                delta: newValue,\n            });\n        }\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingController from \"./SettingController\";\nimport dis from \"../../dispatcher/dispatcher\";\nimport { type UpdateSystemFontPayload } from \"../../dispatcher/payloads/UpdateSystemFontPayload\";\nimport { Action } from \"../../dispatcher/actions\";\n\nexport default class SystemFontController extends SettingController {\n    public constructor() {\n        super();\n    }\n\n    public onChange(): void {\n        // Dispatch font size change so that everything open responds to the change.\n        dis.dispatch<UpdateSystemFontPayload>({\n            action: Action.UpdateSystemFont,\n            useBundledEmojiFont: this.settingsStore.getValue(\"useBundledEmojiFont\"),\n            useSystemFont: this.settingsStore.getValue(\"useSystemFont\"),\n            font: this.settingsStore.getValue(\"systemFont\"),\n        });\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingController from \"./SettingController\";\nimport { type SettingLevel } from \"../SettingLevel\";\nimport { type SettingKey } from \"../Settings.tsx\";\n\n/**\n * Enforces that a boolean setting cannot be enabled if the corresponding\n * UI feature is disabled. If the UI feature is enabled, the setting value\n * is unchanged.\n *\n * Settings using this controller are assumed to return `false` when disabled.\n */\nexport default class UIFeatureController extends SettingController {\n    public constructor(\n        private uiFeatureName: SettingKey,\n        private forcedValue = false,\n    ) {\n        super();\n    }\n\n    public getValueOverride(\n        level: SettingLevel,\n        roomId: string,\n        calculatedValue: any,\n        calculatedAtLevel: SettingLevel | null,\n    ): any {\n        if (this.settingDisabled) {\n            // per the docs: we force a disabled state when the feature isn't active\n            return this.forcedValue;\n        }\n        return null; // no override\n    }\n\n    public get settingDisabled(): boolean {\n        return !this.settingsStore.getValue(this.uiFeatureName);\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingController from \"./SettingController\";\nimport { type SettingLevel } from \"../SettingLevel\";\n\n/**\n * For animation-like settings, this controller checks whether the user has\n * indicated they prefer reduced motion via browser or OS level settings.\n * If they have, this forces the setting value to false.\n */\nexport default class ReducedMotionController extends SettingController {\n    public getValueOverride(\n        level: SettingLevel,\n        roomId: string,\n        calculatedValue: any,\n        calculatedAtLevel: SettingLevel | null,\n    ): any {\n        if (this.prefersReducedMotion()) {\n            return false;\n        }\n        return null; // no override\n    }\n\n    public get settingDisabled(): boolean {\n        return this.prefersReducedMotion();\n    }\n\n    private prefersReducedMotion(): boolean {\n        return window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingController from \"./SettingController\";\nimport { type SettingLevel } from \"../SettingLevel\";\nimport { type SettingKey, type Settings } from \"../Settings.tsx\";\nimport PlatformPeg from \"../../PlatformPeg.ts\";\n\n/**\n * Enforces that a boolean setting cannot be enabled if the incompatible setting\n * is also enabled, to prevent cascading undefined behaviour between conflicting\n * labs flags.\n */\nexport default class IncompatibleController<\n    ControlledSetting extends SettingKey,\n    WatchedSetting extends SettingKey,\n> extends SettingController {\n    public constructor(\n        private settingName: WatchedSetting,\n        private forcedValue: Settings[ControlledSetting][\"default\"] = false,\n        private incompatibleValue:\n            | Settings[WatchedSetting][\"default\"]\n            | ((v: Settings[WatchedSetting][\"default\"]) => boolean) = true,\n        private readonly disabledMessage?: string,\n        private readonly forceReload = false,\n    ) {\n        super();\n    }\n\n    public getValueOverride(\n        level: SettingLevel,\n        roomId: string,\n        calculatedValue: any,\n        calculatedAtLevel: SettingLevel | null,\n    ): any {\n        if (this.incompatibleSetting) {\n            return this.forcedValue;\n        }\n        return null; // no override\n    }\n\n    public get settingDisabled(): boolean | string {\n        if (this.incompatibleSetting) {\n            return this.disabledMessage ?? true;\n        }\n        return false;\n    }\n\n    public get incompatibleSetting(): boolean {\n        if (typeof this.incompatibleValue === \"function\") {\n            return this.incompatibleValue(this.settingsStore.getValue(this.settingName));\n        }\n        return this.settingsStore.getValue(this.settingName) === this.incompatibleValue;\n    }\n\n    public onChange(): void {\n        if (this.forceReload) {\n            PlatformPeg.get()?.reload();\n        }\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2024 Ed Geraghty <ed@geraghty.family>\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingController from \"./SettingController\";\nimport PlatformPeg from \"../../PlatformPeg\";\nimport { _t } from \"../../languageHandler\";\nimport { SlidingSyncManager } from \"../../SlidingSyncManager\";\n\nexport default class SlidingSyncController extends SettingController {\n    public async onChange(): Promise<void> {\n        PlatformPeg.get()?.reload();\n    }\n\n    public get settingDisabled(): boolean | string {\n        // Cannot be disabled once enabled, user has been warned and must log out and back in.\n        if (this.settingsStore.getValue(\"feature_simplified_sliding_sync\")) {\n            return _t(\"labs|sliding_sync_disabled_notice\");\n        }\n        if (!SlidingSyncManager.serverSupportsSlidingSync) {\n            return _t(\"labs|sliding_sync_server_no_support\");\n        }\n\n        return false;\n    }\n}\n","/*\nCopyright 2026 Element Creations Ltd.\nCopyright 2024 New Vector Ltd.\nCopyright 2023 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type SettingLevel } from \"../SettingLevel\";\nimport MatrixClientBackedController from \"./MatrixClientBackedController\";\nimport { type WatchManager } from \"../WatchManager\";\nimport { type SettingKey } from \"../Settings.tsx\";\nimport { _t } from \"../../languageHandler.tsx\";\nimport PlatformPeg from \"../../PlatformPeg.ts\";\n\n/**\n * Disables a given setting if the server unstable feature it requires is not supported\n * When a setting gets disabled or enabled from this controller it notifies the given WatchManager\n */\nexport default class ServerSupportUnstableFeatureController extends MatrixClientBackedController {\n    // Starts off as `undefined` so when we first compare the `newDisabledValue`, it sees\n    // it as a change and updates the watchers.\n    private enabled: boolean | undefined;\n\n    /**\n     * Construct a new ServerSupportUnstableFeatureController.\n     *\n     * @param unstableFeatureGroups - If any one of the feature groups is satisfied,\n     * then the setting is considered enabled. A feature group is satisfied if all of\n     * the features in the group are supported (all features in a group are required).\n     * @param defaultEnabled - If we haven't been able to check for support yet, should\n     *  this feature be enabled or disabled (default).\n     * @param forceReload - Should the client force reload.\n     */\n    public constructor(\n        private readonly settingName: SettingKey,\n        private readonly watchers: WatchManager,\n        private readonly unstableFeatureGroups: string[][],\n        private readonly stableVersion?: string,\n        private readonly disabledMessage?: TranslationKey,\n        private readonly forcedValue: any = false,\n        private readonly defaultEnabled = false,\n        private readonly forceReload = false,\n    ) {\n        super();\n    }\n\n    public onChange(): void {\n        if (this.forceReload) {\n            PlatformPeg.get()?.reload();\n        }\n    }\n\n    public get disabled(): boolean {\n        if (this.enabled !== undefined) {\n            return !this.enabled;\n        }\n        return !this.defaultEnabled;\n    }\n\n    public set disabled(newDisabledValue: boolean) {\n        if (!newDisabledValue === this.enabled) return;\n        this.enabled = !newDisabledValue;\n        const level = this.settingsStore.firstSupportedLevel(this.settingName);\n        if (!level) return;\n        const settingValue = this.settingsStore.getValue(this.settingName, null);\n        this.watchers.notifyUpdate(this.settingName, null, level, settingValue);\n    }\n\n    protected async initMatrixClient(): Promise<void> {\n        // Check for stable version support first\n        if (this.stableVersion && (await this.client!.isVersionSupported(this.stableVersion))) {\n            this.disabled = false;\n            return;\n        }\n\n        // Otherwise, only one of the unstable feature groups needs to be satisfied in\n        // order for this setting overall to be enabled\n        let isEnabled = false;\n        for (const featureGroup of this.unstableFeatureGroups) {\n            const featureSupportList = await Promise.all(\n                featureGroup.map(async (feature) => {\n                    const isFeatureSupported = await this.client!.doesServerSupportUnstableFeature(feature);\n                    return isFeatureSupported;\n                }),\n            );\n\n            // Every feature in a feature group is required in order\n            // for this setting overall to be enabled.\n            const isFeatureGroupSatisfied = featureSupportList.every((isFeatureSupported) => isFeatureSupported);\n            if (isFeatureGroupSatisfied) {\n                isEnabled = true;\n                break;\n            }\n        }\n\n        this.disabled = !isEnabled;\n    }\n\n    public getValueOverride(\n        level: SettingLevel,\n        roomId: string | null,\n        calculatedValue: any,\n        calculatedAtLevel: SettingLevel | null,\n    ): any {\n        if (this.settingDisabled) {\n            return this.forcedValue;\n        }\n        return null; // no override\n    }\n\n    public get settingDisabled(): boolean | string {\n        if (this.disabled) {\n            return this.disabledMessage ? _t(this.disabledMessage) : true;\n        }\n        return false;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2024 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingController from \"./SettingController\";\nimport { type SettingLevel } from \"../SettingLevel\";\nimport PosthogTrackers, { type InteractionName } from \"../../PosthogTrackers\";\n\n/**\n * Controller that sends events to analytics when a setting is changed.\n * Since it will only trigger events when the setting is changed,\n * (and the value isn't reported: only the fact that it's been toggled)\n * it won't be useful for tracking what percentage of a userbase has a given setting\n * enabled, but many of our settings can be set per device and Posthog only supports\n * per-user properties, so this isn't straightforward. This is only for seeing how\n * often people interact with the settings.\n */\nexport default class AnalyticsController extends SettingController {\n    /**\n     *\n     * @param interactionName The name of the event to send to analytics\n     */\n    public constructor(private interactionName: InteractionName) {\n        super();\n    }\n\n    public onChange(_level: SettingLevel, _roomId: string | null, _newValue: any): void {\n        PosthogTrackers.trackInteraction(this.interactionName);\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { ClientEvent, type IClientWellKnown, type MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\nimport { type SettingLevel } from \"../SettingLevel\";\nimport MatrixClientBackedController from \"./MatrixClientBackedController.ts\";\n\n/**\n * Settings controller for the fallback ICE server setting.\n * This setting may be forcibly disabled by well-known value [\"io.element.voip\"][\"disable_fallback_ice\"].\n * This controller will update the MatrixClient's knowledge when the setting is changed.\n */\nexport default class FallbackIceServerController extends MatrixClientBackedController {\n    private disabled = false;\n\n    public constructor() {\n        super();\n    }\n\n    private checkWellKnown = (wellKnown: IClientWellKnown): void => {\n        this.disabled = !!wellKnown[\"io.element.voip\"]?.[\"disable_fallback_ice\"];\n    };\n\n    protected async initMatrixClient(newClient: MatrixClient, oldClient?: MatrixClient): Promise<void> {\n        oldClient?.off(ClientEvent.ClientWellKnown, this.checkWellKnown);\n        newClient.on(ClientEvent.ClientWellKnown, this.checkWellKnown);\n        const wellKnown = newClient.getClientWellKnown();\n        if (wellKnown) this.checkWellKnown(wellKnown);\n    }\n\n    public getValueOverride(): any {\n        if (this.disabled) {\n            return false;\n        }\n\n        return null; // no override\n    }\n\n    public get settingDisabled(): boolean | string {\n        return this.disabled;\n    }\n\n    public onChange(_level: SettingLevel, _roomId: string | null, _newValue: any): void {\n        this.client?.setFallbackICEServerAllowed(!!this.settingsStore.getValue(\"fallbackICEServerAllowed\"));\n    }\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type IContent } from \"matrix-js-sdk/src/matrix\";\nimport { type AccountDataEvents } from \"matrix-js-sdk/src/types\";\n\nimport {\n    MEDIA_PREVIEW_ACCOUNT_DATA_TYPE,\n    type MediaPreviewConfig,\n    MediaPreviewValue,\n} from \"../../@types/media_preview.ts\";\nimport { type SettingLevel } from \"../SettingLevel.ts\";\nimport MatrixClientBackedController from \"./MatrixClientBackedController.ts\";\n\ndeclare module \"matrix-js-sdk/src/types\" {\n    interface RoomAccountDataEvents {\n        [MEDIA_PREVIEW_ACCOUNT_DATA_TYPE]: MediaPreviewConfig;\n    }\n}\n\n/**\n * Handles media preview settings provided by MSC4278.\n * This uses both account-level and room-level account data.\n */\nexport default class MediaPreviewConfigController extends MatrixClientBackedController {\n    public static readonly default: AccountDataEvents[typeof MEDIA_PREVIEW_ACCOUNT_DATA_TYPE] = {\n        media_previews: MediaPreviewValue.On,\n        invite_avatars: MediaPreviewValue.On,\n    };\n\n    private static getValidSettingData(content: IContent): Partial<MediaPreviewConfig> {\n        const mediaPreviews: MediaPreviewConfig[\"media_previews\"] = content.media_previews;\n        const inviteAvatars: MediaPreviewConfig[\"invite_avatars\"] = content.invite_avatars;\n        const validMediaPreviews = Object.values(MediaPreviewValue);\n        const validInviteAvatars = [MediaPreviewValue.Off, MediaPreviewValue.On];\n        return {\n            invite_avatars: validInviteAvatars.includes(inviteAvatars!) ? inviteAvatars : undefined,\n            media_previews: validMediaPreviews.includes(mediaPreviews!) ? mediaPreviews : undefined,\n        };\n    }\n\n    public constructor() {\n        super();\n    }\n\n    private getValue = (roomId?: string): MediaPreviewConfig => {\n        const source = roomId ? this.client?.getRoom(roomId) : this.client;\n        const accountData =\n            source?.getAccountData(MEDIA_PREVIEW_ACCOUNT_DATA_TYPE)?.getContent<MediaPreviewConfig>() ?? {};\n\n        const calculatedConfig = MediaPreviewConfigController.getValidSettingData(accountData);\n\n        // Save an account data fetch if we have all the values.\n        if (calculatedConfig.invite_avatars && calculatedConfig.media_previews) {\n            return calculatedConfig as MediaPreviewConfig;\n        }\n\n        // We're missing some keys.\n        if (roomId) {\n            const globalConfig = this.getValue();\n            return {\n                invite_avatars:\n                    calculatedConfig.invite_avatars ??\n                    globalConfig.invite_avatars ??\n                    MediaPreviewConfigController.default.invite_avatars,\n                media_previews:\n                    calculatedConfig.media_previews ??\n                    globalConfig.media_previews ??\n                    MediaPreviewConfigController.default.media_previews,\n            };\n        }\n        return {\n            invite_avatars: calculatedConfig.invite_avatars ?? MediaPreviewConfigController.default.invite_avatars,\n            media_previews: calculatedConfig.media_previews ?? MediaPreviewConfigController.default.media_previews,\n        };\n    };\n\n    public getValueOverride(_level: SettingLevel, roomId: string | null): MediaPreviewConfig {\n        return this.getValue(roomId ?? undefined);\n    }\n\n    public get settingDisabled(): false {\n        // No homeserver support is required for this MSC.\n        return false;\n    }\n\n    public async beforeChange(\n        _level: SettingLevel,\n        roomId: string | null,\n        newValue: MediaPreviewConfig,\n    ): Promise<boolean> {\n        if (!this.client) {\n            return false;\n        }\n        if (roomId) {\n            await this.client.setRoomAccountData(roomId, MEDIA_PREVIEW_ACCOUNT_DATA_TYPE, newValue);\n            return true;\n        }\n        await this.client.setAccountData(MEDIA_PREVIEW_ACCOUNT_DATA_TYPE, newValue);\n        return true;\n    }\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nexport const INVITE_RULES_ACCOUNT_DATA_TYPE = \"org.matrix.msc4155.invite_permission_config\";\n\nexport interface InviteConfigAccountData {\n    allowed_users?: string[];\n    blocked_users?: string[];\n    ignored_users?: string[];\n    allowed_servers?: string[];\n    blocked_servers?: string[];\n    ignored_servers?: string[];\n}\n\n/**\n * Computed values based on MSC4155. Currently Element Web only supports\n * blocking all invites.\n */\nexport interface ComputedInviteConfig extends Record<string, unknown> {\n    /**\n     * Are all invites blocked. This is only about blocking all invites,\n     * but this being false may still block invites through other rules.\n     */\n    allBlocked: boolean;\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type MatrixClient, type IContent } from \"matrix-js-sdk/src/matrix\";\n\nimport { type SettingLevel } from \"../SettingLevel.ts\";\nimport MatrixClientBackedController from \"./MatrixClientBackedController.ts\";\nimport {\n    type ComputedInviteConfig as ComputedInviteRules,\n    INVITE_RULES_ACCOUNT_DATA_TYPE,\n    type InviteConfigAccountData,\n} from \"../../@types/invite-rules.ts\";\nimport { _t } from \"../../languageHandler.tsx\";\n\n/**\n * Handles invite filtering rules provided by MSC4155.\n * This handler does not make use of the roomId parameter.\n */\nexport default class InviteRulesConfigController extends MatrixClientBackedController {\n    public static readonly default: ComputedInviteRules = {\n        allBlocked: false,\n    };\n\n    private static getValidSettingData(content: IContent): ComputedInviteRules {\n        const expectedConfig = content as InviteConfigAccountData;\n        return {\n            allBlocked: !!expectedConfig.blocked_users?.includes(\"*\"),\n        };\n    }\n\n    public initMatrixClient(newClient: MatrixClient): void {\n        newClient.doesServerSupportUnstableFeature(\"org.matrix.msc4155\").then((result) => {\n            this.featureSupported = result;\n        });\n    }\n\n    public featureSupported?: boolean;\n\n    public constructor() {\n        super();\n        this.featureSupported = false;\n    }\n\n    private getValue = (): ComputedInviteRules => {\n        const accountData =\n            this.client?.getAccountData(INVITE_RULES_ACCOUNT_DATA_TYPE)?.getContent<InviteConfigAccountData>() ?? {};\n        return InviteRulesConfigController.getValidSettingData(accountData);\n    };\n\n    public getValueOverride(_level: SettingLevel): ComputedInviteRules {\n        return this.getValue();\n    }\n\n    public get settingDisabled(): true | string {\n        return this.featureSupported ? true : _t(\"settings|not_supported\");\n    }\n\n    public async beforeChange(\n        _level: SettingLevel,\n        _roomId: string | null,\n        newValue: ComputedInviteRules,\n    ): Promise<boolean> {\n        if (!this.client) {\n            return false;\n        }\n        const existingContent = this.client\n            .getAccountData(INVITE_RULES_ACCOUNT_DATA_TYPE)\n            ?.getContent<InviteConfigAccountData>();\n        const newContent: InviteConfigAccountData = {\n            ...existingContent,\n            blocked_users: [...(existingContent?.blocked_users ?? [])],\n        };\n        if (newValue.allBlocked && !newContent.blocked_users!.includes(\"*\")) {\n            newContent.blocked_users!.push(\"*\");\n        } else if (!newValue.allBlocked && newContent.blocked_users?.includes(\"*\")) {\n            newContent.blocked_users = newContent.blocked_users.filter((u) => u !== \"*\");\n        } else {\n            // No changes required.\n            return false;\n        }\n        await this.client.setAccountData(INVITE_RULES_ACCOUNT_DATA_TYPE, newContent);\n        return true;\n    }\n}\n","/*\nCopyright 2026 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger as rootLogger } from \"matrix-js-sdk/src/logger\";\n\nimport type { Capabilities } from \"matrix-js-sdk/src/matrix\";\nimport type { BooleanSettingKey } from \"../Settings.tsx\";\nimport MatrixClientBackedController from \"./MatrixClientBackedController.ts\";\n\nconst logger = rootLogger.getChild(\"RequiresSettingsController\");\n/**\n * Disables a setting & forces it's value if one or more settings are not enabled\n * and/or a capability on the client check does not pass.\n */\nexport default class RequiresSettingsController extends MatrixClientBackedController {\n    public constructor(\n        public readonly settingNames: BooleanSettingKey[],\n        private readonly forcedValue = false,\n        /**\n         * Function to check the capabilites of the client.\n         * If defined this will be called when the MatrixClient is instantiated to check\n         * the returned capabilites.\n         * @returns `true` or a string if the feature is disabled by the feature, otherwise false.\n         */\n        private readonly isCapabilityDisabled?: (caps: Capabilities) => boolean | string,\n    ) {\n        super();\n    }\n\n    protected initMatrixClient(): void {\n        if (this.client && this.isCapabilityDisabled) {\n            // Ensure we fetch capabilies at least once.\n            this.client.getCapabilities().catch((ex) => {\n                logger.warn(\"Failed to fetch capabilities\", ex);\n            });\n        }\n    }\n\n    /**\n     * Checks if the `isCapabilityDisabled` function blocks the setting.\n     * @returns `true` or a string if the feature is disabled by the feature, otherwise false.\n     */\n    private get isBlockedByCapabilites(): boolean | string {\n        if (!this.isCapabilityDisabled) {\n            return false;\n        }\n        // This works because the cached caps are stored forever, and we have made\n        // at least one call to get capaibilies.\n        const cachedCaps = this.client?.getCachedCapabilities();\n        if (!cachedCaps) {\n            // If we do not have any capabilites yet, then assume the setting IS blocked.\n            return true;\n        }\n        return this.isCapabilityDisabled(cachedCaps);\n    }\n\n    public get settingDisabled(): boolean | string {\n        if (this.settingNames.some((s) => !this.settingsStore.getValue(s))) {\n            return true;\n        }\n        return this.isBlockedByCapabilites;\n    }\n\n    public getValueOverride(): any {\n        if (this.settingDisabled) {\n            // per the docs: we force a disabled state when the feature isn't active\n            return this.forcedValue;\n        }\n        if (this.isBlockedByCapabilites) {\n            return this.forcedValue;\n        }\n        return null; // no override\n    }\n}\n","/*\nCopyright 2026 Element Creations Ltd.\nCopyright 2024, 2025 New Vector Ltd.\nCopyright 2018-2024 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ReactNode } from \"react\";\nimport { STABLE_MSC4133_EXTENDED_PROFILES, UNSTABLE_MSC4133_EXTENDED_PROFILES } from \"matrix-js-sdk/src/matrix\";\nimport { type JsonDocument, type JsonValue } from \"shared-types\";\n// Import these directly from shared-components to avoid circular deps\nimport { _t, _td } from \"@element-hq/web-shared-components\";\n\nimport { type MediaPreviewConfig } from \"../@types/media_preview.ts\";\nimport DeviceIsolationModeController from \"./controllers/DeviceIsolationModeController.ts\";\nimport {\n    NotificationBodyEnabledController,\n    NotificationsEnabledController,\n} from \"./controllers/NotificationControllers\";\nimport ThemeController from \"./controllers/ThemeController\";\nimport ReloadOnChangeController from \"./controllers/ReloadOnChangeController\";\nimport FontSizeController from \"./controllers/FontSizeController\";\nimport SystemFontController from \"./controllers/SystemFontController\";\nimport { SettingLevel } from \"./SettingLevel\";\nimport type SettingController from \"./controllers/SettingController\";\nimport { IS_MAC } from \"../Keyboard\";\nimport UIFeatureController from \"./controllers/UIFeatureController\";\nimport { UIFeature } from \"./UIFeature\";\nimport { Layout } from \"./enums/Layout\";\nimport ReducedMotionController from \"./controllers/ReducedMotionController\";\nimport IncompatibleController from \"./controllers/IncompatibleController\";\nimport { ImageSize } from \"./enums/ImageSize\";\nimport { MetaSpace } from \"../stores/spaces\";\nimport SdkConfig from \"../SdkConfig\";\nimport SlidingSyncController from \"./controllers/SlidingSyncController\";\nimport { FontWatcher } from \"./watchers/FontWatcher\";\nimport ServerSupportUnstableFeatureController from \"./controllers/ServerSupportUnstableFeatureController\";\nimport { WatchManager } from \"./WatchManager\";\nimport { type CustomTheme } from \"../theme\";\nimport AnalyticsController from \"./controllers/AnalyticsController\";\nimport FallbackIceServerController from \"./controllers/FallbackIceServerController\";\nimport { type IRightPanelForRoomStored } from \"../stores/right-panel/RightPanelStoreIPanelState.ts\";\nimport { type ILayoutSettings } from \"../stores/widgets/WidgetLayoutStore.ts\";\nimport { type ReleaseAnnouncementData } from \"../stores/ReleaseAnnouncementStore.ts\";\nimport { type RecentEmojiData } from \"../emojipicker/recent.ts\";\nimport { type Assignable } from \"../@types/common.ts\";\nimport { SortingAlgorithm } from \"../stores/room-list-v3/skip-list/sorters/index.ts\";\nimport MediaPreviewConfigController from \"./controllers/MediaPreviewConfigController.ts\";\nimport InviteRulesConfigController from \"./controllers/InviteRulesConfigController.ts\";\nimport { type ComputedInviteConfig } from \"../@types/invite-rules.ts\";\nimport BlockInvitesConfigController from \"./controllers/BlockInvitesConfigController.ts\";\nimport RequiresSettingsController from \"./controllers/RequiresSettingsController.ts\";\nimport { type ReorderableSection, type CustomSectionsData } from \"../stores/room-list-v3/section.ts\";\nimport { type NotificationSound } from \"../Notifier.ts\";\nimport VideoRoomsBetaImage from \"../../res/img/betas/video_rooms.png\";\n\nexport const defaultWatchManager = new WatchManager();\n\n// These are just a bunch of helper arrays to avoid copy/pasting a bunch of times\nconst LEVELS_ROOM_SETTINGS = [\n    SettingLevel.DEVICE,\n    SettingLevel.ROOM_DEVICE,\n    SettingLevel.ROOM_ACCOUNT,\n    SettingLevel.ACCOUNT,\n    SettingLevel.CONFIG,\n];\nconst LEVELS_ROOM_OR_ACCOUNT = [SettingLevel.ROOM_ACCOUNT, SettingLevel.ACCOUNT];\nconst LEVELS_ROOM_SETTINGS_WITH_ROOM = [\n    SettingLevel.DEVICE,\n    SettingLevel.ROOM_DEVICE,\n    SettingLevel.ROOM_ACCOUNT,\n    SettingLevel.ACCOUNT,\n    SettingLevel.CONFIG,\n    SettingLevel.ROOM,\n];\nconst LEVELS_ACCOUNT_SETTINGS = [SettingLevel.DEVICE, SettingLevel.ACCOUNT, SettingLevel.CONFIG];\nconst LEVELS_DEVICE_ONLY_SETTINGS = [SettingLevel.DEVICE];\nconst LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG = [SettingLevel.DEVICE, SettingLevel.CONFIG];\nconst LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED = [SettingLevel.CONFIG, SettingLevel.DEVICE];\nconst LEVELS_UI_FEATURE = [\n    SettingLevel.CONFIG,\n    // in future we might have a .well-known level or something\n];\n\nexport enum LabGroup {\n    Messaging,\n    Profile,\n    Spaces,\n    Widgets,\n    Rooms,\n    Threads,\n    VoiceAndVideo,\n    Moderation,\n    Themes,\n    Encryption,\n    Experimental,\n    Developer,\n    Ui,\n}\n\nexport enum Features {\n    NotificationSettings2 = \"feature_notification_settings2\",\n}\n\nexport const labGroupNames: Record<LabGroup, TranslationKey> = {\n    [LabGroup.Messaging]: _td(\"labs|group_messaging\"),\n    [LabGroup.Profile]: _td(\"labs|group_profile\"),\n    [LabGroup.Spaces]: _td(\"labs|group_spaces\"),\n    [LabGroup.Widgets]: _td(\"labs|group_widgets\"),\n    [LabGroup.Rooms]: _td(\"labs|group_rooms\"),\n    [LabGroup.Threads]: _td(\"labs|group_threads\"),\n    [LabGroup.VoiceAndVideo]: _td(\"labs|group_voip\"),\n    [LabGroup.Moderation]: _td(\"labs|group_moderation\"),\n    [LabGroup.Themes]: _td(\"labs|group_themes\"),\n    [LabGroup.Encryption]: _td(\"labs|group_encryption\"),\n    [LabGroup.Experimental]: _td(\"labs|group_experimental\"),\n    [LabGroup.Developer]: _td(\"labs|group_developer\"),\n    [LabGroup.Ui]: _td(\"labs|group_ui\"),\n};\n\nexport type SettingValueType = JsonDocument | JsonValue | Record<string, unknown> | Record<string, unknown>[];\n\nexport interface IBaseSetting<T extends SettingValueType = SettingValueType> {\n    isFeature?: false | undefined;\n\n    // Display names are strongly recommended for clarity.\n    // Display name can also be an object for different levels.\n    displayName?:\n        | TranslationKey\n        | Partial<{\n              [level in SettingLevel]: TranslationKey;\n          }>;\n\n    // Optional description which will be shown as microCopy under SettingsFlags\n    description?: TranslationKey | (() => ReactNode);\n\n    // The supported levels are required. Preferably, use the preset arrays\n    // at the top of this file to define this rather than a custom array.\n    supportedLevels: SettingLevel[];\n\n    // Required. Can be any data type. The value specified here should match\n    // the data being stored (ie: if a boolean is used, the setting should\n    // represent a boolean).\n    default: T;\n\n    // Optional settings controller. See SettingsController for more information.\n    controller?: SettingController;\n\n    // Optional flag to make supportedLevels be respected as the order to handle\n    // settings. The first element is treated as \"most preferred\". The \"default\"\n    // level is always appended to the end.\n    supportedLevelsAreOrdered?: boolean;\n\n    // Optional value to invert a boolean setting's value. The string given will\n    // be read as the setting's ID instead of the one provided as the key for the\n    // setting definition. By setting this, the returned value will automatically\n    // be inverted, except for when the default value is returned. Inversion will\n    // occur after the controller is asked for an override. This should be used by\n    // historical settings which we don't want existing user's values be wiped. Do\n    // not use this for new settings.\n    invertedSettingName?: string;\n\n    // XXX: Keep this around for re-use in future Betas\n    betaInfo?: {\n        title: TranslationKey;\n        caption: () => ReactNode;\n        faq?: (enabled: boolean) => ReactNode;\n        image?: string; // require(...)\n        feedbackSubheading?: TranslationKey;\n        feedbackLabel?: string;\n        extraSettings?: BooleanSettingKey[];\n        requiresRefresh?: boolean;\n    };\n\n    // Whether the setting should have a warning sign in the microcopy\n    shouldWarn?: boolean;\n\n    /**\n     * Whether the setting should be exported in a rageshake report.\n     */\n    shouldExportToRageshake?: boolean;\n\n    /**\n     * Options array for a setting controlled by a dropdown.\n     */\n    options?: {\n        value: T;\n        label: TranslationKey;\n    }[];\n}\n\nexport interface IFeature extends Omit<IBaseSetting<boolean>, \"isFeature\"> {\n    // Must be set to true for features.\n    isFeature: true;\n    labsGroup: LabGroup;\n}\n\n// Type using I-identifier for backwards compatibility from before it became a discriminated union\nexport type ISetting = IBaseSetting | IFeature;\n\nexport interface Settings {\n    [settingName: `UIFeature.${string}`]: IBaseSetting<boolean>;\n\n    // We can't use the following type because of `feature_sliding_sync_proxy_url` & `feature_hidebold` being in the namespace incorrectly\n    // [settingName: `feature_${string}`]: IFeature;\n    \"feature_video_rooms\": IFeature;\n    [Features.NotificationSettings2]: IFeature;\n    \"feature_msc3531_hide_messages_pending_moderation\": IFeature;\n    \"feature_latex_maths\": IFeature;\n    \"feature_wysiwyg_composer\": IFeature;\n    \"feature_mjolnir\": IFeature;\n    \"feature_custom_themes\": IFeature;\n    \"feature_exclude_insecure_devices\": IFeature;\n    \"feature_bridge_state\": IFeature;\n    \"feature_jump_to_date\": IFeature;\n    \"feature_sliding_sync\": IBaseSetting<boolean>;\n    \"feature_simplified_sliding_sync\": IFeature;\n    \"feature_element_call_video_rooms\": IFeature;\n    \"feature_disable_call_per_sender_encryption\": IFeature;\n    \"feature_location_share_live\": IFeature;\n    \"feature_dynamic_room_predecessors\": IFeature;\n    \"feature_render_reaction_images\": IFeature;\n    \"feature_retention\": IFeature;\n    \"feature_ask_to_join\": IFeature;\n    \"feature_notifications\": IFeature;\n    \"feature_msc4362_encrypted_state_events\": IFeature;\n    \"feature_user_status\": IFeature;\n    \"feature_login_with_qr\": IFeature;\n    \"feature_msc4095_url_preview_bundle\": IFeature;\n    // These are in the feature namespace but aren't actually features\n    \"feature_hidebold\": IBaseSetting<boolean>;\n\n    \"useOnlyCurrentProfiles\": IBaseSetting<boolean>;\n    \"mjolnirRooms\": IBaseSetting<string[]>;\n    \"mjolnirPersonalRoom\": IBaseSetting<string | null>;\n    \"RoomList.backgroundImage\": IBaseSetting<string | null>;\n    \"sendReadReceipts\": IBaseSetting<boolean>;\n    \"baseFontSize\": IBaseSetting<\"\" | number>;\n    \"baseFontSizeV2\": IBaseSetting<\"\" | number>;\n    \"fontSizeDelta\": IBaseSetting<number>;\n    \"useCustomFontSize\": IBaseSetting<boolean>;\n    \"MessageComposerInput.suggestEmoji\": IBaseSetting<boolean>;\n    \"MessageComposerInput.showStickersButton\": IBaseSetting<boolean>;\n    \"MessageComposerInput.showPollsButton\": IBaseSetting<boolean>;\n    \"MessageComposerInput.insertTrailingColon\": IBaseSetting<boolean>;\n    \"Notifications.alwaysShowBadgeCounts\": IBaseSetting<boolean>;\n    \"Notifications.showbold\": IBaseSetting<boolean>;\n    \"Notifications.tac_only_notifications\": IBaseSetting<boolean>;\n    \"useCompactLayout\": IBaseSetting<boolean>;\n    \"showRedactions\": IBaseSetting<boolean>;\n    \"showJoinLeaves\": IBaseSetting<boolean>;\n    \"showAvatarChanges\": IBaseSetting<boolean>;\n    \"showDisplaynameChanges\": IBaseSetting<boolean>;\n    \"showReadReceipts\": IBaseSetting<boolean>;\n    \"showTwelveHourTimestamps\": IBaseSetting<boolean>;\n    \"alwaysShowTimestamps\": IBaseSetting<boolean>;\n    \"userTimezone\": IBaseSetting<string>;\n    \"userTimezonePublish\": IBaseSetting<boolean>;\n    \"autoplayGifs\": IBaseSetting<boolean>;\n    \"autoplayVideo\": IBaseSetting<boolean>;\n    \"enableSyntaxHighlightLanguageDetection\": IBaseSetting<boolean>;\n    \"expandCodeByDefault\": IBaseSetting<boolean>;\n    \"showCodeLineNumbers\": IBaseSetting<boolean>;\n    \"scrollToBottomOnMessageSent\": IBaseSetting<boolean>;\n    \"Pill.shouldShowPillAvatar\": IBaseSetting<boolean>;\n    \"TextualBody.enableBigEmoji\": IBaseSetting<boolean>;\n    \"sendTypingNotifications\": IBaseSetting<boolean>;\n    \"showTypingNotifications\": IBaseSetting<boolean>;\n    \"ctrlFForSearch\": IBaseSetting<boolean>;\n    \"MessageComposerInput.ctrlEnterToSend\": IBaseSetting<boolean>;\n    \"MessageComposerInput.surroundWith\": IBaseSetting<boolean>;\n    \"MessageComposerInput.autoReplaceEmoji\": IBaseSetting<boolean>;\n    \"MessageComposerInput.useMarkdown\": IBaseSetting<boolean>;\n    \"VideoView.flipVideoHorizontally\": IBaseSetting<boolean>;\n    \"theme\": IBaseSetting<string>;\n    \"custom_themes\": IBaseSetting<CustomTheme[]>;\n    \"use_system_theme\": IBaseSetting<boolean>;\n    \"useBundledEmojiFont\": IBaseSetting<boolean>;\n    \"useSystemFont\": IBaseSetting<boolean>;\n    \"systemFont\": IBaseSetting<string>;\n    \"webRtcAllowPeerToPeer\": IBaseSetting<boolean>;\n    \"enableLegacyCallsVoip\": IBaseSetting<boolean>;\n    \"webrtc_audiooutput\": IBaseSetting<string>;\n    \"webrtc_audioinput\": IBaseSetting<string>;\n    \"webrtc_videoinput\": IBaseSetting<string>;\n    \"webrtc_audio_autoGainControl\": IBaseSetting<boolean>;\n    \"webrtc_audio_echoCancellation\": IBaseSetting<boolean>;\n    \"webrtc_audio_noiseSuppression\": IBaseSetting<boolean>;\n    \"language\": IBaseSetting<string>;\n    \"breadcrumb_rooms\": IBaseSetting<string[]>;\n    \"recent_emoji\": IBaseSetting<RecentEmojiData>;\n    \"showMediaEventIds\": IBaseSetting<{ [eventId: string]: boolean }>;\n    \"SpotlightSearch.recentSearches\": IBaseSetting<string[]>;\n    \"SpotlightSearch.showNsfwPublicRooms\": IBaseSetting<boolean>;\n    \"room_directory_servers\": IBaseSetting<string[]>;\n    \"integrationProvisioning\": IBaseSetting<boolean>;\n    \"allowedWidgets\": IBaseSetting<{ [eventId: string]: boolean }>;\n    \"analyticsOptIn\": IBaseSetting<boolean>;\n    \"pseudonymousAnalyticsOptIn\": IBaseSetting<boolean | null>;\n    \"deviceClientInformationOptIn\": IBaseSetting<boolean>;\n    \"Registration.mobileRegistrationHelper\": IBaseSetting<boolean>;\n    \"autocompleteDelay\": IBaseSetting<number>;\n    \"readMarkerInViewThresholdMs\": IBaseSetting<number>;\n    \"readMarkerOutOfViewThresholdMs\": IBaseSetting<number>;\n    \"blacklistUnverifiedDevices\": IBaseSetting<boolean>;\n    \"urlPreviewsEnabled\": IBaseSetting<boolean>;\n    \"urlPreviewsEnabled_e2ee\": IBaseSetting<boolean>;\n    \"notificationsEnabled\": IBaseSetting<boolean>;\n    \"deviceNotificationsEnabled\": IBaseSetting<boolean>;\n    \"notificationSound\": IBaseSetting<NotificationSound | false>;\n    \"notificationBodyEnabled\": IBaseSetting<boolean>;\n    \"audioNotificationsEnabled\": IBaseSetting<boolean>;\n    \"enableWidgetScreenshots\": IBaseSetting<boolean>;\n    \"promptBeforeInviteUnknownUsers\": IBaseSetting<boolean>;\n    \"widgetOpenIDPermissions\": IBaseSetting<{\n        allow?: string[];\n        deny?: string[];\n    }>;\n    \"breadcrumbs\": IBaseSetting<boolean>;\n    \"showHiddenEventsInTimeline\": IBaseSetting<boolean>;\n    /**\n     * This is the 2019-era low bandwidth that deals with disabling features of the\n     * client. It does NOT make any API or spec changes.\n     */\n    \"lowBandwidth\": IBaseSetting<boolean>;\n    \"fallbackICEServerAllowed\": IBaseSetting<boolean | null>;\n    \"RoomList.preferredSorting\": IBaseSetting<SortingAlgorithm>;\n    \"RoomList.panelSize\": IBaseSetting<number | null>;\n    \"RoomList.isPanelCollapsed\": IBaseSetting<boolean>;\n    \"RoomList.showMessagePreview\": IBaseSetting<boolean>;\n    \"RightPanel.phasesGlobal\": IBaseSetting<IRightPanelForRoomStored | null>;\n    \"RightPanel.phases\": IBaseSetting<IRightPanelForRoomStored | null>;\n    \"enableEventIndexing\": IBaseSetting<boolean>;\n    \"crawlerSleepTime\": IBaseSetting<number>;\n    \"ircDisplayNameWidth\": IBaseSetting<number>;\n    \"layout\": IBaseSetting<Layout>;\n    \"Images.size\": IBaseSetting<ImageSize>;\n    \"showChatEffects\": IBaseSetting<boolean>;\n    \"Performance.addSendMessageTimingMetadata\": IBaseSetting<boolean>;\n    \"Widgets.pinned\": IBaseSetting<{ [widgetId: string]: boolean }>;\n    \"Widgets.layout\": IBaseSetting<ILayoutSettings | null>;\n    \"Spaces.allRoomsInHome\": IBaseSetting<boolean>;\n    \"Spaces.enabledMetaSpaces\": IBaseSetting<Partial<Record<MetaSpace, boolean>>>;\n    \"Spaces.showPeopleInSpace\": IBaseSetting<boolean>;\n    \"developerMode\": IBaseSetting<boolean>;\n    \"debug_scroll_panel\": IBaseSetting<boolean>;\n    \"debug_timeline_panel\": IBaseSetting<boolean>;\n    \"debug_registration\": IBaseSetting<boolean>;\n    \"debug_animation\": IBaseSetting<boolean>;\n    \"audioInputMuted\": IBaseSetting<boolean>;\n    \"videoInputMuted\": IBaseSetting<boolean>;\n    \"activeCallRoomIds\": IBaseSetting<string[]>;\n    \"releaseAnnouncementData\": IBaseSetting<ReleaseAnnouncementData>;\n    \"Electron.autoLaunch\": IBaseSetting<\"enabled\" | \"minimised\" | \"disabled\">;\n    \"Electron.warnBeforeExit\": IBaseSetting<boolean>;\n    \"Electron.alwaysShowMenuBar\": IBaseSetting<boolean>;\n    \"Electron.showTrayIcon\": IBaseSetting<boolean>;\n    \"Electron.enableHardwareAcceleration\": IBaseSetting<boolean>;\n    \"Electron.enableContentProtection\": IBaseSetting<boolean>;\n    \"mediaPreviewConfig\": IBaseSetting<MediaPreviewConfig>;\n    \"inviteRules\": IBaseSetting<ComputedInviteConfig>;\n    \"blockInvites\": IBaseSetting<boolean>;\n    \"Developer.elementCallUrl\": IBaseSetting<string>;\n    \"RoomList.CustomSectionData\": IBaseSetting<CustomSectionsData>;\n    \"RoomList.OrderedCustomSections\": IBaseSetting<ReorderableSection[]>;\n    \"RoomList.showSections\": IBaseSetting<boolean>;\n}\n\nexport type SettingKey = keyof Settings;\nexport type FeatureSettingKey = Assignable<Settings, IFeature>;\nexport type BooleanSettingKey = Assignable<Settings, IBaseSetting<boolean>> | FeatureSettingKey;\nexport type NullableBooleanSettingKey = Assignable<Settings, IBaseSetting<boolean | null>> | FeatureSettingKey;\nexport type StringSettingKey = Assignable<Settings, IBaseSetting<string>>;\n\nexport const SETTINGS: Settings = {\n    // Used in tests only\n    \"test_setting\": {\n        supportedLevels: [],\n        default: \"\",\n    },\n\n    \"feature_video_rooms\": {\n        isFeature: true,\n        labsGroup: LabGroup.VoiceAndVideo,\n        displayName: _td(\"labs|video_rooms\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        default: false,\n        // Reload to ensure that the left panel etc. get remounted\n        controller: new ReloadOnChangeController(),\n        betaInfo: {\n            title: _td(\"labs|video_rooms\"),\n            caption: () => (\n                <>\n                    <p>\n                        {_t(\"labs|video_rooms_a_new_way_to_chat\", {\n                            brand: SdkConfig.get().brand,\n                        })}\n                    </p>\n                    <p>\n                        {_t(\"labs|video_rooms_always_on_voip_channels\", {\n                            brand: SdkConfig.get().brand,\n                        })}\n                    </p>\n                </>\n            ),\n            faq: () => (\n                <>\n                    <h4>{_t(\"labs|video_rooms_faq1_question\")}</h4>\n                    <p>{_t(\"labs|video_rooms_faq1_answer\")}</p>\n                    <h4>{_t(\"labs|video_rooms_faq2_question\")}</h4>\n                    <p>{_t(\"labs|video_rooms_faq2_answer\")}</p>\n                </>\n            ),\n            feedbackLabel: \"video-room-feedback\",\n            feedbackSubheading: _td(\"labs|video_rooms_feedbackSubheading\"),\n            image: VideoRoomsBetaImage,\n            requiresRefresh: true,\n        },\n    },\n    [Features.NotificationSettings2]: {\n        isFeature: true,\n        labsGroup: LabGroup.Experimental,\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        displayName: _td(\"labs|notification_settings\"),\n        default: false,\n        betaInfo: {\n            title: _td(\"labs|notification_settings_beta_title\"),\n            caption: () => (\n                <p>\n                    {_t(\"labs|notification_settings_beta_caption\", {\n                        brand: SdkConfig.get().brand,\n                    })}\n                </p>\n            ),\n        },\n    },\n    \"feature_msc3531_hide_messages_pending_moderation\": {\n        isFeature: true,\n        labsGroup: LabGroup.Moderation,\n        // Requires a reload since this setting is cached in EventUtils\n        controller: new ReloadOnChangeController(),\n        displayName: _td(\"labs|msc3531_hide_messages_pending_moderation\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        default: false,\n    },\n    \"mediaPreviewConfig\": {\n        controller: new MediaPreviewConfigController(),\n        supportedLevels: LEVELS_ROOM_SETTINGS,\n        default: MediaPreviewConfigController.default,\n    },\n    \"inviteRules\": {\n        controller: new InviteRulesConfigController(),\n        supportedLevels: [SettingLevel.ACCOUNT],\n        default: InviteRulesConfigController.default,\n        // Contains server names\n        shouldExportToRageshake: false,\n    },\n    \"blockInvites\": {\n        controller: new BlockInvitesConfigController(\"blockInvites\", defaultWatchManager),\n        supportedLevels: [SettingLevel.ACCOUNT],\n        default: false,\n    },\n    \"feature_latex_maths\": {\n        isFeature: true,\n        labsGroup: LabGroup.Messaging,\n        displayName: _td(\"labs|latex_maths\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        default: false,\n    },\n    \"feature_wysiwyg_composer\": {\n        isFeature: true,\n        labsGroup: LabGroup.Messaging,\n        displayName: _td(\"labs|wysiwyg_composer\"),\n        description: _td(\"labs|feature_wysiwyg_composer_description\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        default: false,\n    },\n    \"feature_mjolnir\": {\n        isFeature: true,\n        labsGroup: LabGroup.Moderation,\n        displayName: _td(\"labs|mjolnir\"),\n        description: _td(\"labs|currently_experimental\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        default: false,\n    },\n    \"feature_custom_themes\": {\n        isFeature: true,\n        labsGroup: LabGroup.Themes,\n        displayName: _td(\"labs|custom_themes\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        default: false,\n    },\n    \"feature_exclude_insecure_devices\": {\n        isFeature: true,\n        labsGroup: LabGroup.Encryption,\n        controller: new DeviceIsolationModeController(),\n        displayName: _td(\"labs|exclude_insecure_devices\"),\n        description: _td(\"labs|exclude_insecure_devices_description\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        default: false,\n    },\n    // Defaulted to true Feb 26, intention is to remove entirely, all being well,\n    // as this fixes bugs where display name / avatar are missing and also makes\n    // Element Web consistent with Element X.\n    \"useOnlyCurrentProfiles\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|disable_historical_profile\"),\n        default: true,\n    },\n    \"mjolnirRooms\": {\n        supportedLevels: [SettingLevel.ACCOUNT],\n        default: [],\n        // Contains room IDs\n        shouldExportToRageshake: false,\n    },\n    \"mjolnirPersonalRoom\": {\n        supportedLevels: [SettingLevel.ACCOUNT],\n        default: null,\n        // Contains room ID\n        shouldExportToRageshake: false,\n    },\n    \"feature_bridge_state\": {\n        isFeature: true,\n        labsGroup: LabGroup.Rooms,\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        displayName: _td(\"labs|bridge_state\"),\n        default: false,\n    },\n    \"feature_jump_to_date\": {\n        isFeature: true,\n        labsGroup: LabGroup.Messaging,\n        displayName: _td(\"labs|jump_to_date\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        default: false,\n        controller: new ServerSupportUnstableFeatureController(\n            \"feature_jump_to_date\",\n            defaultWatchManager,\n            [[\"org.matrix.msc3030\"], [\"org.matrix.msc3030.stable\"]],\n            \"v1.6\",\n            _td(\"labs|jump_to_date_msc_support\"),\n        ),\n    },\n    \"RoomList.backgroundImage\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: null,\n    },\n    \"sendReadReceipts\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|send_read_receipts\"),\n        default: true,\n        controller: new ServerSupportUnstableFeatureController(\n            \"sendReadReceipts\",\n            defaultWatchManager,\n            [[\"org.matrix.msc2285.stable\"]],\n            \"v1.4\",\n            _td(\"settings|send_read_receipts_unsupported\"),\n            true,\n        ),\n    },\n    // legacy sliding sync flag: no longer works, will error for anyone who's still using it\n    \"feature_sliding_sync\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        shouldWarn: true,\n        default: false,\n    },\n    \"feature_simplified_sliding_sync\": {\n        isFeature: true,\n        labsGroup: LabGroup.Developer,\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        displayName: _td(\"labs|sliding_sync\"),\n        description: _td(\"labs|sliding_sync_description\"),\n        shouldWarn: true,\n        default: false,\n        controller: new SlidingSyncController(),\n    },\n    \"feature_element_call_video_rooms\": {\n        isFeature: true,\n        labsGroup: LabGroup.VoiceAndVideo,\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        displayName: _td(\"labs|element_call_video_rooms\"),\n        controller: new ReloadOnChangeController(),\n        default: false,\n    },\n    \"feature_disable_call_per_sender_encryption\": {\n        isFeature: true,\n        labsGroup: LabGroup.VoiceAndVideo,\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        displayName: _td(\"labs|feature_disable_call_per_sender_encryption\"),\n        default: false,\n    },\n    \"feature_location_share_live\": {\n        isFeature: true,\n        labsGroup: LabGroup.Messaging,\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        displayName: _td(\"labs|location_share_live\"),\n        description: _td(\"labs|location_share_live_description\"),\n        shouldWarn: true,\n        default: false,\n    },\n    \"feature_dynamic_room_predecessors\": {\n        isFeature: true,\n        labsGroup: LabGroup.Rooms,\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        displayName: _td(\"labs|dynamic_room_predecessors\"),\n        description: _td(\"labs|dynamic_room_predecessors_description\"),\n        shouldWarn: true,\n        default: false,\n    },\n    /**\n     * @deprecated in favor of {@link fontSizeDelta}\n     */\n    \"baseFontSize\": {\n        displayName: _td(\"settings|appearance|font_size\"),\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: \"\",\n        controller: new FontSizeController(),\n    },\n    \"feature_render_reaction_images\": {\n        isFeature: true,\n        labsGroup: LabGroup.Messaging,\n        displayName: _td(\"labs|render_reaction_images\"),\n        description: _td(\"labs|render_reaction_images_description\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        default: false,\n    },\n    \"feature_login_with_qr\": {\n        supportedLevels: [SettingLevel.CONFIG],\n        labsGroup: LabGroup.Ui,\n        displayName: _td(\"labs|login_with_qr\"),\n        description: _td(\"labs|config_only\"),\n        isFeature: true,\n        default: false,\n    },\n    \"feature_msc4095_url_preview_bundle\": {\n        labsGroup: LabGroup.Messaging,\n        displayName: _td(\"labs|url_preview_bundle\"),\n        description: _td(\"labs|url_preview_bundle_description\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        isFeature: true,\n        default: false,\n    },\n    /**\n     * With the transition to Compound we are moving to a base font size\n     * of 16px. We're taking the opportunity to move away from the `baseFontSize`\n     * setting that had a 5px offset.\n     * @deprecated in favor {@link fontSizeDelta}\n     */\n    \"baseFontSizeV2\": {\n        displayName: _td(\"settings|appearance|font_size\"),\n        supportedLevels: [SettingLevel.DEVICE],\n        default: \"\",\n        controller: new FontSizeController(),\n    },\n    /**\n     * This delta is added to the browser default font size\n     * Moving from `baseFontSizeV2` to `fontSizeDelta` to replace the default 16px to --cpd-font-size-root (browser default font size) + fontSizeDelta\n     */\n    \"fontSizeDelta\": {\n        displayName: _td(\"settings|appearance|font_size\"),\n        supportedLevels: [SettingLevel.DEVICE],\n        default: FontWatcher.DEFAULT_DELTA,\n        controller: new FontSizeController(),\n    },\n    \"useCustomFontSize\": {\n        displayName: _td(\"settings|appearance|custom_font_size\"),\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: false,\n    },\n    \"MessageComposerInput.suggestEmoji\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|emoji_autocomplete\"),\n        default: true,\n        invertedSettingName: \"MessageComposerInput.dontSuggestEmoji\",\n    },\n    \"MessageComposerInput.showStickersButton\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|show_stickers_button\"),\n        default: true,\n        controller: new UIFeatureController(UIFeature.Widgets, false),\n    },\n    \"MessageComposerInput.showPollsButton\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|preferences|show_polls_button\"),\n        default: true,\n    },\n    \"MessageComposerInput.insertTrailingColon\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|insert_trailing_colon_mentions\"),\n        default: true,\n    },\n    // TODO: Wire up appropriately to UI (FTUE notifications)\n    \"Notifications.alwaysShowBadgeCounts\": {\n        supportedLevels: LEVELS_ROOM_OR_ACCOUNT,\n        default: false,\n    },\n    // Used to be a feature, name kept for backwards compat\n    \"feature_hidebold\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        displayName: _td(\"labs|hidebold\"),\n        default: false,\n    },\n    \"Notifications.showbold\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        displayName: _td(\"settings|showbold\"),\n        default: false,\n        invertedSettingName: \"feature_hidebold\",\n        controller: new AnalyticsController(\"WebSettingsNotificationsShowBoldToggle\"),\n    },\n    \"Notifications.tac_only_notifications\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        displayName: _td(\"settings|tac_only_notifications\"),\n        default: true,\n        controller: new AnalyticsController(\"WebSettingsNotificationsTACOnlyNotificationsToggle\"),\n    },\n    \"feature_ask_to_join\": {\n        isFeature: true,\n        labsGroup: LabGroup.Rooms,\n        default: false,\n        displayName: _td(\"labs|ask_to_join\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n    },\n    \"feature_notifications\": {\n        isFeature: true,\n        labsGroup: LabGroup.Messaging,\n        displayName: _td(\"labs|notifications\"),\n        description: _td(\"labs|unrealiable_e2e\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        default: false,\n    },\n    \"feature_msc4362_encrypted_state_events\": {\n        isFeature: true,\n        labsGroup: LabGroup.Encryption,\n        displayName: _td(\"labs|encrypted_state_events\"),\n        description: _td(\"labs|encrypted_state_events_description\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        shouldWarn: true,\n        default: false,\n    },\n    \"feature_user_status\": {\n        isFeature: true,\n        labsGroup: LabGroup.Profile,\n        displayName: _td(\"labs|feature_user_status|display_name\"),\n        description: _td(\"labs|feature_user_status|description\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        controller: new ServerSupportUnstableFeatureController(\n            \"feature_user_status\",\n            defaultWatchManager,\n            [[\"org.matrix.msc4429\"], [\"org.matrix.msc4429.stable\"]],\n            undefined,\n            _td(\"labs|feature_user_status|required_msc_support\"),\n            false,\n            // We have to assume it's available during early startup because of a race:\n            // The feature is used to enable extra sync filters during MatrixClient setup\n            // and we can't check for serverside support until the client has finished setting up.\n            // Once the client has setup, (so by the time the user actually opens the labs menu) we can\n            // enforce proper checks.\n            true,\n            true,\n        ),\n        default: false,\n    },\n    \"feature_retention\": {\n        isFeature: true,\n        labsGroup: LabGroup.Messaging,\n        displayName: _td(\"labs|feature_retention|display_name\"),\n        description: _td(\"labs|feature_retention|description\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,\n        supportedLevelsAreOrdered: true,\n        controller: new IncompatibleController(\n            \"feature_sliding_sync\",\n            false,\n            true,\n            _td(\"labs|feature_retention|disabled_sliding_sync\"),\n            true,\n        ),\n        default: false,\n    },\n    \"useCompactLayout\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        displayName: _td(\"settings|preferences|compact_modern\"),\n        default: false,\n        controller: new IncompatibleController(\"layout\", false, (v: Layout) => v !== Layout.Group),\n    },\n    \"showRedactions\": {\n        supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,\n        displayName: _td(\"settings|show_redaction_placeholder\"),\n        default: true,\n        invertedSettingName: \"hideRedactions\",\n    },\n    \"showJoinLeaves\": {\n        supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,\n        displayName: _td(\"settings|show_join_leave\"),\n        default: true,\n        invertedSettingName: \"hideJoinLeaves\",\n    },\n    \"showAvatarChanges\": {\n        supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,\n        displayName: _td(\"settings|show_avatar_changes\"),\n        default: true,\n        invertedSettingName: \"hideAvatarChanges\",\n    },\n    \"showDisplaynameChanges\": {\n        supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,\n        displayName: _td(\"settings|show_displayname_changes\"),\n        default: true,\n        invertedSettingName: \"hideDisplaynameChanges\",\n    },\n    \"showReadReceipts\": {\n        supportedLevels: LEVELS_ROOM_SETTINGS,\n        displayName: _td(\"settings|show_read_receipts\"),\n        default: true,\n        invertedSettingName: \"hideReadReceipts\",\n    },\n    \"showTwelveHourTimestamps\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|use_12_hour_format\"),\n        default: false,\n    },\n    \"alwaysShowTimestamps\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|always_show_message_timestamps\"),\n        default: false,\n    },\n    \"userTimezone\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        displayName: _td(\"settings|preferences|user_timezone\"),\n        default: \"\",\n        // Location leak\n        shouldExportToRageshake: false,\n    },\n    \"userTimezonePublish\": {\n        // This is per-device so you can avoid having devices overwrite each other.\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        displayName: _td(\"settings|preferences|publish_timezone\"),\n        default: false,\n        controller: new ServerSupportUnstableFeatureController(\n            \"userTimezonePublish\",\n            defaultWatchManager,\n            [[UNSTABLE_MSC4133_EXTENDED_PROFILES], [STABLE_MSC4133_EXTENDED_PROFILES]],\n            undefined,\n            _td(\"labs|extended_profiles_msc_support\"),\n        ),\n    },\n    \"autoplayGifs\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|autoplay_gifs\"),\n        default: false,\n    },\n    \"autoplayVideo\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|autoplay_videos\"),\n        default: false,\n    },\n    \"enableSyntaxHighlightLanguageDetection\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|automatic_language_detection_syntax_highlight\"),\n        default: false,\n    },\n    \"expandCodeByDefault\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|code_block_expand_default\"),\n        default: false,\n    },\n    \"showCodeLineNumbers\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|code_block_line_numbers\"),\n        default: true,\n    },\n    \"scrollToBottomOnMessageSent\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|jump_to_bottom_on_send\"),\n        default: true,\n    },\n    \"Pill.shouldShowPillAvatar\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|preferences|show_avatars_pills\"),\n        default: true,\n        invertedSettingName: \"Pill.shouldHidePillAvatar\",\n    },\n    \"TextualBody.enableBigEmoji\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|big_emoji\"),\n        default: true,\n        invertedSettingName: \"TextualBody.disableBigEmoji\",\n    },\n    \"sendTypingNotifications\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|send_typing_notifications\"),\n        default: true,\n        invertedSettingName: \"dontSendTypingNotifications\",\n    },\n    \"showTypingNotifications\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|show_typing_notifications\"),\n        default: true,\n    },\n    \"ctrlFForSearch\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: IS_MAC ? _td(\"settings|use_command_f_search\") : _td(\"settings|use_control_f_search\"),\n        default: false,\n    },\n    \"MessageComposerInput.ctrlEnterToSend\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: IS_MAC\n            ? _td(\"settings|use_command_enter_send_message\")\n            : _td(\"settings|use_control_enter_send_message\"),\n        default: false,\n    },\n    \"MessageComposerInput.surroundWith\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|preferences|surround_text\"),\n        default: false,\n    },\n    \"MessageComposerInput.autoReplaceEmoji\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|replace_plain_emoji\"),\n        default: false,\n    },\n    \"MessageComposerInput.useMarkdown\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|enable_markdown\"),\n        description: () => _t(\"settings|enable_markdown_description\", {}, { code: (sub) => <code>{sub}</code> }),\n        default: true,\n    },\n    \"VideoView.flipVideoHorizontally\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|voip|mirror_local_feed\"),\n        default: true,\n    },\n    \"theme\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: \"light\",\n        controller: new ThemeController(),\n    },\n    \"custom_themes\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: [],\n        // Potential privacy leak via theme origin\n        shouldExportToRageshake: false,\n    },\n    \"use_system_theme\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: true,\n        displayName: _td(\"settings|appearance|match_system_theme\"),\n    },\n    \"useBundledEmojiFont\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: true,\n        displayName: _td(\"settings|appearance|bundled_emoji_font\"),\n        controller: new SystemFontController(),\n    },\n    \"useSystemFont\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: false,\n        displayName: _td(\"settings|appearance|custom_font\"),\n        controller: new SystemFontController(),\n        description: () =>\n            _t(\"settings|appearance|custom_font_description\", {\n                brand: SdkConfig.get().brand,\n            }),\n    },\n    \"systemFont\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: \"\",\n        displayName: _td(\"settings|appearance|custom_font_name\"),\n        controller: new SystemFontController(),\n    },\n    \"enableLegacyCallsVoip\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        displayName: _td(\"settings|voip|enable_legacy_calls\"),\n        description: _td(\"settings|voip|enable_legacy_calls_description\"),\n        default: true,\n    },\n    \"webRtcAllowPeerToPeer\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        displayName: _td(\"settings|voip|allow_p2p\"),\n        description: _td(\"settings|voip|allow_p2p_description\"),\n        default: true,\n        invertedSettingName: \"webRtcForceTURN\",\n    },\n    \"webrtc_audiooutput\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: \"default\",\n    },\n    \"webrtc_audioinput\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: \"default\",\n    },\n    \"webrtc_videoinput\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: \"default\",\n    },\n    \"webrtc_audio_autoGainControl\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        displayName: _td(\"settings|voip|auto_gain_control\"),\n        default: true,\n    },\n    \"webrtc_audio_echoCancellation\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        displayName: _td(\"settings|voip|echo_cancellation\"),\n        default: true,\n    },\n    \"webrtc_audio_noiseSuppression\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        displayName: _td(\"settings|voip|noise_suppression\"),\n        default: true,\n    },\n    \"language\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        default: \"en\",\n        // For privacy\n        shouldExportToRageshake: false,\n    },\n    \"breadcrumb_rooms\": {\n        // not really a setting\n        supportedLevels: [SettingLevel.ACCOUNT],\n        default: [],\n        // Contains joined rooms\n        shouldExportToRageshake: false,\n    },\n    \"recent_emoji\": {\n        // not really a setting\n        supportedLevels: [SettingLevel.ACCOUNT],\n        default: [],\n        // For privacy\n        shouldExportToRageshake: false,\n    },\n    \"SpotlightSearch.recentSearches\": {\n        // not really a setting\n        supportedLevels: [SettingLevel.ACCOUNT],\n        default: [], // list of room IDs, most recent first\n        // For privacy\n        shouldExportToRageshake: false,\n    },\n    \"showMediaEventIds\": {\n        // not really a setting\n        supportedLevels: [SettingLevel.DEVICE],\n        default: {}, // List of events => is visible\n        // Exports event IDs\n        shouldExportToRageshake: false,\n    },\n    \"SpotlightSearch.showNsfwPublicRooms\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|show_nsfw_content\"),\n        default: false,\n    },\n    \"room_directory_servers\": {\n        supportedLevels: [SettingLevel.ACCOUNT],\n        default: [],\n        // Contains connected servers for user\n        shouldExportToRageshake: false,\n    },\n    \"integrationProvisioning\": {\n        supportedLevels: [SettingLevel.ACCOUNT],\n        default: true,\n    },\n    \"allowedWidgets\": {\n        supportedLevels: [SettingLevel.ROOM_ACCOUNT, SettingLevel.ROOM_DEVICE],\n        supportedLevelsAreOrdered: true,\n        default: {}, // none allowed\n        shouldExportToRageshake: false,\n    },\n    // Legacy, kept around for transitionary purposes\n    \"analyticsOptIn\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        default: false,\n    },\n    \"pseudonymousAnalyticsOptIn\": {\n        supportedLevels: [SettingLevel.ACCOUNT],\n        displayName: _td(\"settings|security|send_analytics\"),\n        default: null,\n    },\n    \"deviceClientInformationOptIn\": {\n        supportedLevels: [SettingLevel.ACCOUNT],\n        displayName: _td(\"settings|security|record_session_details\"),\n        default: false,\n    },\n    \"Registration.mobileRegistrationHelper\": {\n        supportedLevels: [SettingLevel.CONFIG],\n        default: false,\n    },\n    \"autocompleteDelay\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        default: 200,\n    },\n    \"readMarkerInViewThresholdMs\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        default: 3000,\n    },\n    \"readMarkerOutOfViewThresholdMs\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        default: 30000,\n    },\n    \"blacklistUnverifiedDevices\": {\n        // We specifically want to have room-device > device so that users may set a device default\n        // with a per-room override.\n        supportedLevels: [SettingLevel.ROOM_DEVICE, SettingLevel.DEVICE],\n        supportedLevelsAreOrdered: true,\n        displayName: {\n            \"default\": _td(\"settings|security|strict_encryption\"),\n            \"room-device\": _td(\"room_settings|security|strict_encryption\"),\n        },\n        default: false,\n        controller: new UIFeatureController(UIFeature.AdvancedEncryption),\n    },\n    \"urlPreviewsEnabled\": {\n        // Enabled by default and client configurable as this setting only allows unencrypted\n        // messages to be previewed.\n        supportedLevels: [SettingLevel.ROOM_DEVICE, SettingLevel.DEVICE, SettingLevel.ACCOUNT, SettingLevel.CONFIG],\n        supportedLevelsAreOrdered: true,\n        displayName: _td(\"settings|inline_url_previews_default\"),\n        default: true,\n        controller: new RequiresSettingsController([UIFeature.URLPreviews], false, (c) => {\n            if (c[\"io.element.msc4452.preview_url\"]?.enabled !== false) {\n                // If the capability is not listed, or explicitly true then do not disable.\n                return false;\n            }\n            return _t(\"common|disabled_by_homeserver\");\n        }),\n    },\n    \"urlPreviewsEnabled_e2ee\": {\n        // Can only be enabled per-device to ensure neither the homeserver nor client config\n        // can impact the user's choices.\n        supportedLevels: [SettingLevel.DEVICE],\n        supportedLevelsAreOrdered: true,\n        displayName: _td(\"settings|inline_url_previews_encrypted\"),\n        default: false,\n        controller: new RequiresSettingsController([UIFeature.URLPreviews, \"urlPreviewsEnabled\"]),\n    },\n    \"notificationsEnabled\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: false,\n        controller: new NotificationsEnabledController(),\n        displayName: _td(\"settings|notifications|enable_desktop_notifications_session\"),\n    },\n    \"deviceNotificationsEnabled\": {\n        supportedLevels: [SettingLevel.DEVICE],\n        default: true,\n        displayName: _td(\"settings|notifications|enable_notifications_device\"),\n    },\n    \"notificationSound\": {\n        supportedLevels: LEVELS_ROOM_OR_ACCOUNT,\n        default: false,\n        // Contains personal information in file name\n        shouldExportToRageshake: false,\n    },\n    \"notificationBodyEnabled\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: true,\n        controller: new NotificationBodyEnabledController(),\n        displayName: _td(\"settings|notifications|show_message_desktop_notification\"),\n    },\n    \"audioNotificationsEnabled\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: true,\n        displayName: _td(\"settings|notifications|enable_audible_notifications_session\"),\n    },\n    \"enableWidgetScreenshots\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"devtools|widget_screenshots\"),\n        default: false,\n    },\n    \"promptBeforeInviteUnknownUsers\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|prompt_invite\"),\n        default: true,\n    },\n    \"widgetOpenIDPermissions\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: {\n            allow: [],\n            deny: [],\n        },\n        // Expses widget information\n        shouldExportToRageshake: false,\n    },\n    \"breadcrumbs\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        displayName: _td(\"settings|show_breadcrumbs\"),\n        default: true,\n    },\n    \"showHiddenEventsInTimeline\": {\n        displayName: _td(\"devtools|show_hidden_events\"),\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: false,\n    },\n    \"lowBandwidth\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        displayName: _td(\"devtools|low_bandwidth_mode\"),\n        description: _td(\"devtools|low_bandwidth_mode_description\"),\n        default: false,\n        controller: new ReloadOnChangeController(),\n        shouldWarn: true,\n    },\n    \"fallbackICEServerAllowed\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        description: _td(\"settings|voip|enable_fallback_ice_server_description\"),\n        // This is a tri-state value, where `null` means \"prompt the user\".\n        default: null,\n        controller: new FallbackIceServerController(),\n    },\n    \"RoomList.preferredSorting\": {\n        supportedLevels: [SettingLevel.DEVICE],\n        default: SortingAlgorithm.Recency,\n    },\n    \"RoomList.panelSize\": {\n        supportedLevels: [SettingLevel.DEVICE],\n        default: null,\n    },\n    \"RoomList.isPanelCollapsed\": {\n        supportedLevels: [SettingLevel.DEVICE],\n        default: false,\n    },\n    \"RoomList.showMessagePreview\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,\n        default: false,\n        displayName: _td(\"settings|show_message_previews\"),\n    },\n    \"RoomList.showSections\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: true,\n        displayName: _td(\"settings|show_sections\"),\n    },\n    \"RightPanel.phasesGlobal\": {\n        supportedLevels: [SettingLevel.DEVICE],\n        default: null,\n    },\n    \"RightPanel.phases\": {\n        supportedLevels: [SettingLevel.ROOM_DEVICE],\n        default: null,\n    },\n    \"enableEventIndexing\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        displayName: _td(\"settings|security|enable_message_search\"),\n        default: true,\n    },\n    \"crawlerSleepTime\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        displayName: _td(\"settings|security|message_search_sleep_time\"),\n        default: 3000,\n    },\n    \"ircDisplayNameWidth\": {\n        // We specifically want to have room-device > device so that users may set a device default\n        // with a per-room override.\n        supportedLevels: [SettingLevel.ROOM_DEVICE, SettingLevel.DEVICE],\n        supportedLevelsAreOrdered: true,\n        default: 80,\n    },\n    \"layout\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: Layout.Group,\n    },\n    \"Images.size\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: ImageSize.Normal,\n    },\n    \"showChatEffects\": {\n        supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,\n        displayName: _td(\"settings|show_chat_effects\"),\n        default: true,\n        controller: new ReducedMotionController(),\n    },\n    \"Performance.addSendMessageTimingMetadata\": {\n        supportedLevels: [SettingLevel.CONFIG],\n        default: false,\n    },\n    \"Widgets.pinned\": {\n        // deprecated\n        supportedLevels: LEVELS_ROOM_OR_ACCOUNT,\n        default: {},\n        // Sensitive information in widget ID\n        shouldExportToRageshake: false,\n    },\n    \"Widgets.layout\": {\n        supportedLevels: LEVELS_ROOM_OR_ACCOUNT,\n        default: {},\n    },\n    \"Spaces.allRoomsInHome\": {\n        displayName: _td(\"settings|all_rooms_home\"),\n        description: _td(\"settings|all_rooms_home_description\"),\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: false,\n    },\n    \"Spaces.enabledMetaSpaces\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: {\n            [MetaSpace.Home]: true,\n        },\n    },\n    \"Spaces.showPeopleInSpace\": {\n        supportedLevels: [SettingLevel.ROOM_ACCOUNT],\n        default: true,\n    },\n    \"developerMode\": {\n        displayName: _td(\"devtools|developer_mode\"),\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: false,\n    },\n    \"debug_scroll_panel\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: false,\n    },\n    \"debug_timeline_panel\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: false,\n    },\n    \"debug_registration\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: false,\n    },\n    \"debug_animation\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: false,\n    },\n    \"audioInputMuted\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: false,\n    },\n    \"videoInputMuted\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: false,\n    },\n    \"activeCallRoomIds\": {\n        supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,\n        default: [],\n        // Contains room IDs\n        shouldExportToRageshake: false,\n    },\n    /**\n     * Managed by the {@link ReleaseAnnouncementStore}\n     * Store the release announcement data\n     */\n    \"releaseAnnouncementData\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: {},\n    },\n    /**\n     * Managed by the {@link RoomListStoreV3}\n     * Store the custom section data for the room list\n     */\n    \"RoomList.CustomSectionData\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: {},\n    },\n    /**\n     * Managed by the {@link RoomListStoreV3}\n     * Store the ordering of the custom sections for the room list\n     */\n    \"RoomList.OrderedCustomSections\": {\n        supportedLevels: LEVELS_ACCOUNT_SETTINGS,\n        default: [],\n    },\n    [UIFeature.RoomHistorySettings]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.AdvancedEncryption]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.URLPreviews]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.Widgets]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.LocationSharing]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.Voip]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.Feedback]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.Registration]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.PasswordReset]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.Deactivate]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.ShareQRCode]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.ShareSocial]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.IdentityServer]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n        // Identity server (discovery) settings make no sense if 3PIDs in general are hidden\n        controller: new UIFeatureController(UIFeature.ThirdPartyID),\n    },\n    [UIFeature.ThirdPartyID]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.AdvancedSettings]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.TimelineEnableRelativeDates]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.AllowCreatingPublicSpaces]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n    [UIFeature.AllowCreatingPublicRooms]: {\n        supportedLevels: LEVELS_UI_FEATURE,\n        default: true,\n    },\n\n    // Electron-specific settings, they are stored by Electron and set/read over an IPC.\n    // We store them over there are they are necessary to know before the renderer process launches.\n    \"Electron.autoLaunch\": {\n        supportedLevels: [SettingLevel.PLATFORM],\n        displayName: _td(\"settings|start_automatically|label\"),\n        options: [\n            { value: \"enabled\", label: _td(\"settings|start_automatically|enabled\") },\n            { value: \"disabled\", label: _td(\"settings|start_automatically|disabled\") },\n            { value: \"minimised\", label: _td(\"settings|start_automatically|minimised\") },\n        ],\n        default: \"disabled\",\n    },\n    \"Electron.warnBeforeExit\": {\n        supportedLevels: [SettingLevel.PLATFORM],\n        displayName: _td(\"settings|warn_quit\"),\n        default: true,\n    },\n    \"Electron.alwaysShowMenuBar\": {\n        supportedLevels: [SettingLevel.PLATFORM],\n        displayName: _td(\"settings|preferences|always_show_menu_bar\"),\n        default: false,\n    },\n    \"Electron.showTrayIcon\": {\n        supportedLevels: [SettingLevel.PLATFORM],\n        displayName: _td(\"settings|preferences|enable_tray_icon\"),\n        default: true,\n    },\n    \"Electron.enableHardwareAcceleration\": {\n        supportedLevels: [SettingLevel.PLATFORM],\n        displayName: _td(\"settings|preferences|enable_hardware_acceleration\"),\n        default: true,\n    },\n    \"Electron.enableContentProtection\": {\n        supportedLevels: [SettingLevel.PLATFORM],\n        displayName: _td(\"settings|preferences|enable_content_protection\"),\n        default: false,\n    },\n    \"Developer.elementCallUrl\": {\n        supportedLevels: [SettingLevel.DEVICE],\n        displayName: _td(\"devtools|settings|elementCallUrl\"),\n        default: \"\",\n    },\n};\n","/*\nCopyright 2019-2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type SettingLevel } from \"./SettingLevel\";\n\nexport type CallbackFn = (changedInRoomId: string | null, atLevel: SettingLevel, newValAtLevel: any) => void;\n\nconst IRRELEVANT_ROOM: string | null = null;\n\n/**\n * Generalized management class for dealing with watchers on a per-handler (per-level)\n * basis without duplicating code. Handlers are expected to push updates through this\n * class, which are then proxied outwards to any applicable watchers.\n */\nexport class WatchManager {\n    private watchers = new Map<string, Map<string | null, CallbackFn[]>>(); // settingName -> roomId -> CallbackFn[]\n\n    // Proxy for handlers to delegate changes to this manager\n    public watchSetting(settingName: string, roomId: string | null, cb: CallbackFn): void {\n        if (!this.watchers.has(settingName)) this.watchers.set(settingName, new Map());\n        if (!this.watchers.get(settingName)!.has(roomId)) this.watchers.get(settingName)!.set(roomId, []);\n        this.watchers.get(settingName)!.get(roomId)!.push(cb);\n    }\n\n    // Proxy for handlers to delegate changes to this manager\n    public unwatchSetting(cb: CallbackFn): void {\n        this.watchers.forEach((map) => {\n            map.forEach((callbacks) => {\n                let idx: number;\n                while ((idx = callbacks.indexOf(cb)) !== -1) {\n                    callbacks.splice(idx, 1);\n                }\n            });\n        });\n    }\n\n    public notifyUpdate(\n        settingName: string,\n        inRoomId: string | null,\n        atLevel: SettingLevel,\n        newValueAtLevel: any,\n    ): void {\n        // Dev note: We could avoid raising changes for ultimately inconsequential changes, but\n        // we also don't have a reliable way to get the old value of a setting. Instead, we'll just\n        // let it fall through regardless and let the receiver dedupe if they want to.\n\n        if (!this.watchers.has(settingName)) return;\n\n        const roomWatchers = this.watchers.get(settingName)!;\n        const callbacks: CallbackFn[] = [];\n\n        if (inRoomId !== null && roomWatchers.has(inRoomId)) {\n            callbacks.push(...roomWatchers.get(inRoomId)!);\n        }\n\n        if (!inRoomId) {\n            // Fire updates to all the individual room watchers too, as they probably care about the change higher up.\n            callbacks.push(...Array.from(roomWatchers.values()).flat(1));\n        } else if (roomWatchers.has(IRRELEVANT_ROOM)) {\n            callbacks.push(...roomWatchers.get(IRRELEVANT_ROOM)!);\n        }\n\n        for (const callback of callbacks) {\n            callback(inRoomId, atLevel, newValueAtLevel);\n        }\n    }\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { EventType } from \"matrix-js-sdk/src/matrix\";\n\nimport { type SettingLevel } from \"../SettingLevel.ts\";\nimport { _td } from \"../../languageHandler.tsx\";\nimport ServerSupportUnstableFeatureController from \"./ServerSupportUnstableFeatureController.ts\";\nimport { type SettingKey } from \"../Settings.tsx\";\nimport type { WatchManager } from \"../WatchManager.ts\";\n\n/**\n * Handles invite filtering rules provided by MSC4380.\n * This handler does not make use of the roomId parameter.\n */\nexport default class BlockInvitesConfigController extends ServerSupportUnstableFeatureController {\n    public constructor(settingName: SettingKey, watchers: WatchManager) {\n        super(settingName, watchers, [[\"org.matrix.msc4380.stable\"]], \"v1.18\", _td(\"settings|not_supported\"));\n    }\n\n    public getValueOverride(_level: SettingLevel): boolean {\n        const accountData = this.client?.getAccountData(EventType.InvitePermissionConfig)?.getContent();\n        return accountData?.default_action == \"block\";\n    }\n\n    public async beforeChange(_level: SettingLevel, _roomId: string | null, newValue: boolean): Promise<boolean> {\n        if (!this.client) {\n            return false;\n        }\n\n        await this.client.setAccountData(EventType.InvitePermissionConfig, newValue ? { default_action: \"block\" } : {});\n        return true;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingsHandler from \"./SettingsHandler\";\n\n/**\n * Abstract settings handler wrapping around localStorage making getValue calls cheaper\n * by caching the values and listening for localStorage updates from other tabs.\n */\nexport default abstract class AbstractLocalStorageSettingsHandler extends SettingsHandler {\n    // Shared cache between all subclass instances\n    private static itemCache = new Map<string, string | null>();\n    private static objectCache = new Map<string, object>();\n    private static storageListenerBound = false;\n\n    private static onStorageEvent = (e: StorageEvent): void => {\n        if (e.key === null) {\n            AbstractLocalStorageSettingsHandler.clear();\n        } else {\n            AbstractLocalStorageSettingsHandler.itemCache.delete(e.key);\n            AbstractLocalStorageSettingsHandler.objectCache.delete(e.key);\n        }\n    };\n\n    private static clear(): void {\n        AbstractLocalStorageSettingsHandler.itemCache.clear();\n        AbstractLocalStorageSettingsHandler.objectCache.clear();\n    }\n\n    protected constructor() {\n        super();\n\n        if (!AbstractLocalStorageSettingsHandler.storageListenerBound) {\n            AbstractLocalStorageSettingsHandler.storageListenerBound = true;\n            // Listen for storage changes from other tabs to bust the cache\n            window.addEventListener(\"storage\", AbstractLocalStorageSettingsHandler.onStorageEvent);\n        }\n    }\n\n    protected getItem(key: string): string | null {\n        if (!AbstractLocalStorageSettingsHandler.itemCache.has(key)) {\n            const value = localStorage.getItem(key);\n            AbstractLocalStorageSettingsHandler.itemCache.set(key, value);\n            return value;\n        }\n\n        return AbstractLocalStorageSettingsHandler.itemCache.get(key)!;\n    }\n\n    protected getBoolean(key: string): boolean | null {\n        const item = this.getItem(key);\n        if (item === \"true\") return true;\n        if (item === \"false\") return false;\n        // Fall back to the next config level\n        return null;\n    }\n\n    protected getObject<T extends object>(key: string): T | null {\n        if (!AbstractLocalStorageSettingsHandler.objectCache.has(key)) {\n            try {\n                const value = JSON.parse(localStorage.getItem(key)!);\n                AbstractLocalStorageSettingsHandler.objectCache.set(key, value);\n                return value;\n            } catch (err) {\n                console.error(\"Failed to parse localStorage object\", err);\n                return null;\n            }\n        }\n\n        return AbstractLocalStorageSettingsHandler.objectCache.get(key) as T;\n    }\n\n    protected setItem(key: string, value: string): void {\n        AbstractLocalStorageSettingsHandler.itemCache.set(key, value);\n        localStorage.setItem(key, value);\n    }\n\n    protected setBoolean(key: string, value: boolean | null): void {\n        this.setItem(key, `${value}`);\n    }\n\n    protected setObject(key: string, value: object): void {\n        AbstractLocalStorageSettingsHandler.objectCache.set(key, value);\n        localStorage.setItem(key, JSON.stringify(value));\n    }\n\n    // handles both items and objects\n    protected removeItem(key: string): void {\n        localStorage.removeItem(key);\n        AbstractLocalStorageSettingsHandler.itemCache.delete(key);\n        AbstractLocalStorageSettingsHandler.objectCache.delete(key);\n    }\n\n    public isSupported(): boolean {\n        return localStorage !== undefined && localStorage !== null;\n    }\n\n    public reset(): void {\n        AbstractLocalStorageSettingsHandler.clear();\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingsHandler from \"./SettingsHandler\";\n\n/**\n * Gets settings at the \"default\" level. This handler does not support setting values.\n * This handler does not make use of the roomId parameter.\n */\nexport default class DefaultSettingsHandler extends SettingsHandler {\n    /**\n     * Creates a new default settings handler with the given defaults\n     * @param {object} defaults The default setting values, keyed by setting name.\n     * @param {object} invertedDefaults The default inverted setting values, keyed by setting name.\n     */\n    public constructor(\n        private defaults: Record<string, any>,\n        private invertedDefaults: Record<string, any>,\n    ) {\n        super();\n    }\n\n    public getValue(settingName: string, roomId: string): any {\n        let value = this.defaults[settingName];\n        if (value === undefined) {\n            value = this.invertedDefaults[settingName];\n        }\n        return value;\n    }\n\n    public async setValue(settingName: string, roomId: string, newValue: any): Promise<void> {\n        throw new Error(\"Cannot set values on the default level handler\");\n    }\n\n    public canSetValue(settingName: string, roomId: string): boolean {\n        return false;\n    }\n\n    public isSupported(): boolean {\n        return true;\n    }\n}\n","/*\nCopyright 2024, 2025 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    type RoomAccountDataEvents,\n    type MatrixClient,\n    type MatrixEvent,\n    type Room,\n    RoomEvent,\n} from \"matrix-js-sdk/src/matrix\";\n\nimport MatrixClientBackedSettingsHandler from \"./MatrixClientBackedSettingsHandler\";\nimport { objectClone, objectKeyChanges } from \"../../utils/objects\";\nimport { SettingLevel } from \"../SettingLevel\";\nimport { type WatchManager } from \"../WatchManager\";\nimport { MEDIA_PREVIEW_ACCOUNT_DATA_TYPE } from \"../../@types/media_preview\";\n\nconst ALLOWED_WIDGETS_EVENT_TYPE = \"im.vector.setting.allowed_widgets\";\nconst DEFAULT_SETTINGS_EVENT_TYPE = \"im.vector.web.settings\";\n\ndeclare module \"matrix-js-sdk/src/types\" {\n    interface RoomAccountDataEvents {\n        [ALLOWED_WIDGETS_EVENT_TYPE]: { [eventId: string]: boolean };\n        [DEFAULT_SETTINGS_EVENT_TYPE]: Record<string, any>;\n        \"org.matrix.room.preview_urls\": { disable: boolean };\n    }\n}\n\n/**\n * Gets and sets settings at the \"room-account\" level for the current user.\n */\nexport default class RoomAccountSettingsHandler extends MatrixClientBackedSettingsHandler {\n    public constructor(public readonly watchers: WatchManager) {\n        super();\n    }\n\n    protected initMatrixClient(oldClient: MatrixClient, newClient: MatrixClient): void {\n        if (oldClient) {\n            oldClient.removeListener(RoomEvent.AccountData, this.onAccountData);\n        }\n\n        newClient.on(RoomEvent.AccountData, this.onAccountData);\n    }\n\n    private onAccountData = (event: MatrixEvent, room: Room, prevEvent?: MatrixEvent): void => {\n        const roomId = room.roomId;\n\n        if (event.getType() === \"org.matrix.room.preview_urls\") {\n            let val = event.getContent()[\"disable\"];\n            if (typeof val !== \"boolean\") {\n                val = null;\n            } else {\n                val = !val;\n            }\n\n            this.watchers.notifyUpdate(\"urlPreviewsEnabled\", roomId, SettingLevel.ROOM_ACCOUNT, val);\n        } else if (event.getType() === DEFAULT_SETTINGS_EVENT_TYPE) {\n            // Figure out what changed and fire those updates\n            const prevContent = prevEvent?.getContent() ?? {};\n            const changedSettings = objectKeyChanges<Record<string, any>>(prevContent, event.getContent());\n            for (const settingName of changedSettings) {\n                const val = event.getContent()[settingName];\n                this.watchers.notifyUpdate(settingName, roomId, SettingLevel.ROOM_ACCOUNT, val);\n            }\n        } else if (event.getType() === ALLOWED_WIDGETS_EVENT_TYPE) {\n            this.watchers.notifyUpdate(\"allowedWidgets\", roomId, SettingLevel.ROOM_ACCOUNT, event.getContent());\n        } else if (event.getType() === MEDIA_PREVIEW_ACCOUNT_DATA_TYPE) {\n            this.watchers.notifyUpdate(\"mediaPreviewConfig\", roomId, SettingLevel.ROOM_ACCOUNT, event.getContent());\n        }\n    };\n\n    public getValue(settingName: string, roomId: string): any {\n        // Special case allowed widgets\n        if (settingName === \"allowedWidgets\") {\n            return this.getSettings(roomId, ALLOWED_WIDGETS_EVENT_TYPE);\n        }\n\n        const settings = this.getSettings(roomId) || {};\n        return settings[settingName];\n    }\n\n    // helper function to send room account data then await it being echoed back\n    private async setRoomAccountData<K extends keyof RoomAccountDataEvents, F extends keyof RoomAccountDataEvents[K]>(\n        roomId: string,\n        eventType: K,\n        field: F | null,\n        value: RoomAccountDataEvents[K][F],\n    ): Promise<void> {\n        let content: ReturnType<RoomAccountSettingsHandler[\"getSettings\"]>;\n\n        if (field === null) {\n            content = value;\n        } else {\n            content = this.getSettings(roomId, eventType) || {};\n            content[field] = value;\n        }\n\n        await this.client.setRoomAccountData(roomId, eventType, content);\n\n        const deferred = Promise.withResolvers<void>();\n        const handler = (event: MatrixEvent, room: Room): void => {\n            if (room.roomId !== roomId || event.getType() !== eventType) return;\n            if (field !== null && event.getContent<Record<F, RoomAccountDataEvents[K][F]>>()[field] !== value) return;\n            this.client.off(RoomEvent.AccountData, handler);\n            deferred.resolve();\n        };\n        this.client.on(RoomEvent.AccountData, handler);\n\n        await deferred.promise;\n    }\n\n    public async setValue(settingName: string, roomId: string, newValue: any): Promise<void> {\n        switch (settingName) {\n            // Special case URL previews\n            case \"urlPreviewsEnabled\":\n                return this.setRoomAccountData(roomId, \"org.matrix.room.preview_urls\", \"disable\", !newValue);\n\n            // Special case allowed widgets\n            case \"allowedWidgets\":\n                return this.setRoomAccountData(roomId, ALLOWED_WIDGETS_EVENT_TYPE, null, newValue);\n            case \"mediaPreviewConfig\":\n                // Handled in MediaPreviewConfigController.\n                return;\n            case \"inviteRules\":\n                // Handled in InviteRulesConfigController.\n                return;\n            default:\n                return this.setRoomAccountData(roomId, DEFAULT_SETTINGS_EVENT_TYPE, settingName, newValue);\n        }\n    }\n\n    public canSetValue(settingName: string, roomId: string): boolean {\n        // If they have the room, they can set their own account data\n        return !!this.client.getRoom(roomId);\n    }\n\n    public isSupported(): boolean {\n        return this.client && !this.client.isGuest();\n    }\n\n    private getSettings(roomId: string, eventType = DEFAULT_SETTINGS_EVENT_TYPE): any {\n        // TODO: [TS] Type return\n        const event = this.client.getRoom(roomId)?.getAccountData(eventType);\n        if (!event || !event.getContent()) return null;\n        return objectClone(event.getContent()); // clone to prevent mutation\n    }\n}\n","/*\nCopyright 2024, 2025 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type AccountDataEvents, ClientEvent, type MatrixClient, type MatrixEvent } from \"matrix-js-sdk/src/matrix\";\nimport { isEqual } from \"lodash\";\n\nimport MatrixClientBackedSettingsHandler from \"./MatrixClientBackedSettingsHandler\";\nimport { objectClone, objectKeyChanges } from \"../../utils/objects\";\nimport { SettingLevel } from \"../SettingLevel\";\nimport { type WatchManager } from \"../WatchManager\";\nimport { MEDIA_PREVIEW_ACCOUNT_DATA_TYPE } from \"../../@types/media_preview\";\nimport { type SettingKey, type Settings } from \"../Settings.tsx\";\nimport { mergeEmojiData, type RecentEmojiData, translateLegacyEmojiData } from \"../../emojipicker/recent.ts\";\n\nconst BREADCRUMBS_LEGACY_EVENT_TYPE = \"im.vector.riot.breadcrumb_rooms\";\nconst BREADCRUMBS_EVENT_TYPE = \"im.vector.setting.breadcrumbs\";\nconst BREADCRUMBS_EVENT_TYPES = [BREADCRUMBS_LEGACY_EVENT_TYPE, BREADCRUMBS_EVENT_TYPE];\nconst LEGACY_RECENT_EMOJI_EVENT_TYPE = \"io.element.recent_emoji\";\nconst RECENT_EMOJI_EVENT_TYPE = \"m.recent_emoji\";\nconst INTEG_PROVISIONING_EVENT_TYPE = \"im.vector.setting.integration_provisioning\";\nconst ANALYTICS_EVENT_TYPE = \"im.vector.analytics\";\nconst DEFAULT_SETTINGS_EVENT_TYPE = \"im.vector.web.settings\";\n\n/**\n * Gets and sets settings at the \"account\" level for the current user.\n * This handler does not make use of the roomId parameter.\n */\nexport default class AccountSettingsHandler extends MatrixClientBackedSettingsHandler {\n    public constructor(public readonly watchers: WatchManager) {\n        super();\n    }\n\n    public get level(): SettingLevel {\n        return SettingLevel.ACCOUNT;\n    }\n\n    public initMatrixClient(oldClient: MatrixClient, newClient: MatrixClient): void {\n        oldClient?.removeListener(ClientEvent.AccountData, this.onAccountData);\n        newClient.on(ClientEvent.AccountData, this.onAccountData);\n    }\n\n    private onAccountData = (event: MatrixEvent, prevEvent?: MatrixEvent): void => {\n        if (event.getType() === \"org.matrix.preview_urls\") {\n            let val = event.getContent()[\"disable\"];\n            if (typeof val !== \"boolean\") {\n                val = null;\n            } else {\n                val = !val;\n            }\n\n            this.watchers.notifyUpdate(\"urlPreviewsEnabled\", null, SettingLevel.ACCOUNT, val);\n        } else if (event.getType() === DEFAULT_SETTINGS_EVENT_TYPE || event.getType() === ANALYTICS_EVENT_TYPE) {\n            // Figure out what changed and fire those updates\n            const prevContent = prevEvent?.getContent() ?? {};\n            const changedSettings = objectKeyChanges<Record<string, any>>(prevContent, event.getContent());\n            for (const settingName of changedSettings) {\n                const val = event.getContent()[settingName];\n                this.watchers.notifyUpdate(settingName, null, SettingLevel.ACCOUNT, val);\n            }\n        } else if (BREADCRUMBS_EVENT_TYPES.includes(event.getType())) {\n            this.notifyBreadcrumbsUpdate(event);\n        } else if (event.getType() === INTEG_PROVISIONING_EVENT_TYPE) {\n            const val = event.getContent()[\"enabled\"];\n            this.watchers.notifyUpdate(\"integrationProvisioning\", null, SettingLevel.ACCOUNT, val);\n        } else if (event.getType() === RECENT_EMOJI_EVENT_TYPE || event.getType() === LEGACY_RECENT_EMOJI_EVENT_TYPE) {\n            const val = this.getRecentEmoji();\n            this.watchers.notifyUpdate(\"recent_emoji\", null, SettingLevel.ACCOUNT, val);\n        } else if (event.getType() === MEDIA_PREVIEW_ACCOUNT_DATA_TYPE) {\n            this.watchers.notifyUpdate(\"mediaPreviewConfig\", null, SettingLevel.ROOM_ACCOUNT, event.getContent());\n        }\n    };\n\n    public getValue(settingName: string, roomId: string): any {\n        // Special case URL previews\n        if (settingName === \"urlPreviewsEnabled\") {\n            const content = this.getSettings(\"org.matrix.preview_urls\");\n\n            // Check to make sure that we actually got a boolean\n            if (typeof content?.[\"disable\"] !== \"boolean\") return null;\n            return !content[\"disable\"];\n        }\n\n        // Special case for breadcrumbs\n        if (settingName === \"breadcrumb_rooms\") {\n            let content = this.getSettings(BREADCRUMBS_EVENT_TYPE);\n            if (!content?.[\"recent_rooms\"]) {\n                const legacyContent = this.getSettings(BREADCRUMBS_LEGACY_EVENT_TYPE);\n\n                if (legacyContent) {\n                    content = {\n                        recent_rooms: legacyContent[\"rooms\"],\n                    };\n                }\n            }\n\n            return content?.[\"recent_rooms\"] ?? [];\n        }\n\n        // Special case recent emoji\n        if (settingName === \"recent_emoji\") {\n            const val = this.getRecentEmoji();\n            return val ?? null;\n        }\n\n        // Special case integration manager provisioning\n        if (settingName === \"integrationProvisioning\") {\n            const content = this.getSettings(INTEG_PROVISIONING_EVENT_TYPE);\n            return content ? content[\"enabled\"] : null;\n        }\n\n        if (settingName === \"pseudonymousAnalyticsOptIn\") {\n            const content = this.getSettings(ANALYTICS_EVENT_TYPE);\n            // Check to make sure that we actually got a boolean\n            if (typeof content?.[settingName] !== \"boolean\") return null;\n            return content[settingName];\n        }\n\n        if (settingName === \"MessageComposerInput.insertTrailingColon\") {\n            const content = this.getSettings();\n            const value = content?.[settingName];\n            if (value === null || value === undefined) {\n                // Write true as it is the default. This will give us the option\n                // of making this opt-in in the future, without affecting old\n                // users\n                this.setValue(settingName, roomId, true);\n                return true;\n            }\n            return value;\n        }\n\n        const settings = this.getSettings();\n        let preferredValue = settings?.[settingName];\n\n        if (preferredValue === null || preferredValue === undefined) {\n            // Honour the old setting on read only\n            if (settingName === \"hideAvatarChanges\" || settingName === \"hideDisplaynameChanges\") {\n                preferredValue = settings?.[\"hideAvatarDisplaynameChanges\"];\n            }\n        }\n\n        return preferredValue;\n    }\n\n    // helper function to set account data then await it being echoed back\n    private async setAccountData<K extends keyof AccountDataEvents, F extends keyof AccountDataEvents[K]>(\n        eventType: K,\n        field: F,\n        value: AccountDataEvents[K][F],\n        legacyEventType?: keyof AccountDataEvents,\n    ): Promise<void> {\n        let content = this.getSettings(eventType);\n        if (legacyEventType && !content?.[field]) {\n            content = this.getSettings(legacyEventType) as AccountDataEvents[K];\n        }\n\n        if (!content) {\n            content = {} as AccountDataEvents[K];\n        }\n\n        content[field] = value;\n\n        // Attach a deferred *before* setting the account data to ensure we catch any requests\n        // which race between different lines.\n        const deferred = Promise.withResolvers<void>();\n        const handler = (event: MatrixEvent): void => {\n            if (event.getType() !== eventType || !isEqual(event.getContent<AccountDataEvents[K]>()[field], value))\n                return;\n            this.client.off(ClientEvent.AccountData, handler);\n            deferred.resolve();\n        };\n        this.client.on(ClientEvent.AccountData, handler);\n\n        await this.client.setAccountData(eventType, content);\n\n        await deferred.promise;\n    }\n\n    public async setValue<S extends SettingKey>(\n        settingName: S,\n        roomId: string | null,\n        newValue: Settings[S][\"default\"],\n    ): Promise<void> {\n        switch (settingName) {\n            // Special case URL previews\n            case \"urlPreviewsEnabled\":\n                return this.setAccountData(\"org.matrix.preview_urls\", \"disable\", !newValue);\n\n            // Special case for breadcrumbs\n            case \"breadcrumb_rooms\":\n                return this.setAccountData(\n                    BREADCRUMBS_EVENT_TYPE,\n                    \"recent_rooms\",\n                    <Settings[\"breadcrumb_rooms\"][\"default\"]>newValue,\n                    BREADCRUMBS_LEGACY_EVENT_TYPE,\n                );\n\n            // Special case recent emoji\n            case \"recent_emoji\":\n                return this.setAccountData(\n                    RECENT_EMOJI_EVENT_TYPE,\n                    \"recent_emoji\",\n                    <Settings[\"recent_emoji\"][\"default\"]>newValue,\n                );\n\n            // Special case integration manager provisioning\n            case \"integrationProvisioning\":\n                return this.setAccountData(\n                    INTEG_PROVISIONING_EVENT_TYPE,\n                    \"enabled\",\n                    <Settings[\"integrationProvisioning\"][\"default\"]>newValue,\n                );\n\n            // Special case analytics\n            case \"pseudonymousAnalyticsOptIn\":\n                return this.setAccountData(\n                    ANALYTICS_EVENT_TYPE,\n                    \"pseudonymousAnalyticsOptIn\",\n                    <Settings[\"pseudonymousAnalyticsOptIn\"][\"default\"]>newValue ?? undefined,\n                );\n            case \"mediaPreviewConfig\":\n                // Handled in MediaPreviewConfigController.\n                return;\n            case \"inviteRules\":\n                // Handled in InviteRulesConfigController.\n                return;\n            default:\n                return this.setAccountData(DEFAULT_SETTINGS_EVENT_TYPE, settingName, newValue);\n        }\n    }\n\n    public canSetValue(settingName: string, roomId: string): boolean {\n        return true; // It's their account, so they should be able to\n    }\n\n    public isSupported(): boolean {\n        return this.client && !this.client.isGuest();\n    }\n\n    private getSettings(): AccountDataEvents[\"im.vector.web.settings\"] | null;\n    private getSettings<E extends keyof AccountDataEvents>(eventType: E): AccountDataEvents[E] | null;\n    private getSettings<E extends keyof AccountDataEvents>(eventType?: E): AccountDataEvents[E] | null {\n        if (!this.client) return null;\n\n        const event = this.client.getAccountData(eventType ?? \"im.vector.web.settings\");\n        const content = event?.getContent<AccountDataEvents[E]>();\n        if (!content) return null;\n        return objectClone(content); // clone to prevent mutation\n    }\n\n    private notifyBreadcrumbsUpdate(event: MatrixEvent): void {\n        let val = [];\n        if (event.getType() === BREADCRUMBS_LEGACY_EVENT_TYPE) {\n            // This seems fishy - try and get the event for the new rooms\n            const newType = this.getSettings(BREADCRUMBS_EVENT_TYPE);\n            if (newType) val = newType[\"recent_rooms\"];\n            else val = event.getContent()[\"rooms\"];\n        } else if (event.getType() === BREADCRUMBS_EVENT_TYPE) {\n            val = event.getContent()[\"recent_rooms\"];\n        } else {\n            return; // for sanity, not because we expect to be here.\n        }\n        this.watchers.notifyUpdate(\"breadcrumb_rooms\", null, SettingLevel.ACCOUNT, val || []);\n    }\n\n    private getRecentEmoji(): RecentEmojiData {\n        let val = this.getSettings(RECENT_EMOJI_EVENT_TYPE)?.recent_emoji || [];\n\n        const legacyVal = this.getSettings(LEGACY_RECENT_EMOJI_EVENT_TYPE)?.recent_emoji;\n        if (legacyVal) {\n            val = mergeEmojiData(val, translateLegacyEmojiData(legacyVal));\n        }\n\n        return val;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    type MatrixClient,\n    type MatrixEvent,\n    type RoomState,\n    RoomStateEvent,\n    type StateEvents,\n} from \"matrix-js-sdk/src/matrix\";\n\nimport MatrixClientBackedSettingsHandler from \"./MatrixClientBackedSettingsHandler\";\nimport { objectClone, objectKeyChanges } from \"../../utils/objects\";\nimport { SettingLevel } from \"../SettingLevel\";\nimport { type WatchManager } from \"../WatchManager\";\n\nconst DEFAULT_SETTINGS_EVENT_TYPE = \"im.vector.web.settings\";\ntype RoomSettingsEventType = typeof DEFAULT_SETTINGS_EVENT_TYPE | \"org.matrix.room.preview_urls\";\n\n/**\n * Gets and sets settings at the \"room\" level.\n */\nexport default class RoomSettingsHandler extends MatrixClientBackedSettingsHandler {\n    public constructor(public readonly watchers: WatchManager) {\n        super();\n    }\n\n    protected initMatrixClient(oldClient: MatrixClient, newClient: MatrixClient): void {\n        if (oldClient) {\n            oldClient.removeListener(RoomStateEvent.Events, this.onEvent);\n        }\n\n        newClient.on(RoomStateEvent.Events, this.onEvent);\n    }\n\n    private onEvent = (event: MatrixEvent, state: RoomState, prevEvent: MatrixEvent | null): void => {\n        const roomId = event.getRoomId()!;\n        const room = this.client.getRoom(roomId);\n\n        // Note: in tests and during the encryption setup on initial load we might not have\n        // rooms in the store, so we just quietly ignore the problem. If we log it then we'll\n        // just end up spamming the logs a few thousand times. It is perfectly fine for us\n        // to ignore the problem as the app will not have loaded enough to care yet.\n        if (!room) return;\n\n        // ignore state updates which are not current\n        if (room && state !== room.currentState) return;\n\n        if (event.getType() === \"org.matrix.room.preview_urls\") {\n            let val = event.getContent()[\"disable\"];\n            if (typeof val !== \"boolean\") {\n                val = null;\n            } else {\n                val = !val;\n            }\n\n            this.watchers.notifyUpdate(\"urlPreviewsEnabled\", roomId, SettingLevel.ROOM, val);\n        } else if (event.getType() === DEFAULT_SETTINGS_EVENT_TYPE) {\n            // Figure out what changed and fire those updates\n            const prevContent = prevEvent?.getContent() ?? {};\n            const changedSettings = objectKeyChanges<Record<string, any>>(prevContent, event.getContent());\n            for (const settingName of changedSettings) {\n                this.watchers.notifyUpdate(settingName, roomId, SettingLevel.ROOM, event.getContent()[settingName]);\n            }\n        }\n    };\n\n    public getValue(settingName: string, roomId: string): any {\n        // Special case URL previews\n        if (settingName === \"urlPreviewsEnabled\") {\n            const content = this.getSettings(roomId, \"org.matrix.room.preview_urls\") || {};\n\n            // Check to make sure that we actually got a boolean\n            if (typeof content[\"disable\"] !== \"boolean\") return null;\n            return !content[\"disable\"];\n        }\n\n        const settings = this.getSettings(roomId) || {};\n        return settings[settingName];\n    }\n\n    // helper function to send state event then await it being echoed back\n    private async sendStateEvent<K extends RoomSettingsEventType, F extends keyof StateEvents[K]>(\n        roomId: string,\n        eventType: K,\n        field: F,\n        value: StateEvents[K][F],\n    ): Promise<void> {\n        const content = this.getSettings(roomId, eventType) || {};\n        content[field] = value;\n\n        const { event_id: eventId } = await this.client.sendStateEvent(roomId, eventType, content);\n\n        const deferred = Promise.withResolvers<void>();\n        const handler = (event: MatrixEvent): void => {\n            if (event.getId() !== eventId) return;\n            this.client.off(RoomStateEvent.Events, handler);\n            deferred.resolve();\n        };\n        this.client.on(RoomStateEvent.Events, handler);\n\n        await deferred.promise;\n    }\n\n    public setValue(settingName: string, roomId: string, newValue: any): Promise<void> {\n        switch (settingName) {\n            // Special case URL previews\n            case \"urlPreviewsEnabled\":\n                return this.sendStateEvent(roomId, \"org.matrix.room.preview_urls\", \"disable\", !newValue);\n\n            default:\n                return this.sendStateEvent(roomId, DEFAULT_SETTINGS_EVENT_TYPE, settingName, newValue);\n        }\n    }\n\n    public canSetValue(settingName: string, roomId: string): boolean {\n        const room = this.client.getRoom(roomId);\n\n        let eventType = DEFAULT_SETTINGS_EVENT_TYPE;\n        if (settingName === \"urlPreviewsEnabled\") eventType = \"org.matrix.room.preview_urls\";\n\n        return room?.currentState.maySendStateEvent(eventType, this.client.getUserId()!) ?? false;\n    }\n\n    public isSupported(): boolean {\n        return !!this.client;\n    }\n\n    private getSettings(roomId: string, eventType = DEFAULT_SETTINGS_EVENT_TYPE): any {\n        const event = this.client.getRoom(roomId)?.currentState.getStateEvents(eventType, \"\");\n        if (!event?.getContent()) return null;\n        return objectClone(event.getContent()); // clone to prevent mutation\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { isNullOrUndefined } from \"matrix-js-sdk/src/utils\";\n\nimport SettingsHandler from \"./SettingsHandler\";\nimport SdkConfig from \"../../SdkConfig\";\nimport { SnakedObject } from \"../../utils/SnakedObject\";\nimport { type IConfigOptions } from \"../../IConfigOptions\";\n\n/**\n * Gets and sets settings at the \"config\" level. This handler does not make use of the\n * roomId parameter.\n */\nexport default class ConfigSettingsHandler extends SettingsHandler {\n    public constructor(private featureNames: string[]) {\n        super();\n    }\n\n    public getValue(settingName: string, roomId: string): any {\n        const config = new SnakedObject<IConfigOptions>(SdkConfig.get());\n\n        if (this.featureNames.includes(settingName)) {\n            const labsConfig = config.get(\"features\") || {};\n            const val = labsConfig[settingName];\n            if (isNullOrUndefined(val)) return null; // no definition at this level\n            if (val === true || val === false) return val; // new style: mapped as a boolean\n            if (val === \"enable\") return true; // backwards compat\n            if (val === \"disable\") return false; // backwards compat\n            if (val === \"labs\") return null; // backwards compat, no override\n            return null; // fallback in the case of invalid input\n        }\n\n        // Special case themes\n        if (settingName === \"theme\") {\n            return config.get(\"default_theme\");\n        }\n\n        const settingsConfig = config.get(\"setting_defaults\");\n        if (!settingsConfig || isNullOrUndefined(settingsConfig[settingName])) return null;\n        return settingsConfig[settingName];\n    }\n\n    public async setValue(settingName: string, roomId: string, newValue: any): Promise<void> {\n        throw new Error(\"Cannot change settings at the config level\");\n    }\n\n    public canSetValue(settingName: string, roomId: string): boolean {\n        return false;\n    }\n\n    public isSupported(): boolean {\n        return true; // SdkConfig is always there\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingsHandler from \"./SettingsHandler\";\nimport { type SettingLevel } from \"../SettingLevel\";\n\n/**\n * A wrapper for a SettingsHandler that performs local echo on\n * changes to settings. This wrapper will use the underlying\n * handler as much as possible to ensure values are not stale.\n */\nexport default class LocalEchoWrapper extends SettingsHandler {\n    private cache: {\n        [settingName: string]: {\n            [roomId: string]: any;\n        };\n    } = {};\n\n    /**\n     * Creates a new local echo wrapper\n     * @param {SettingsHandler} handler The handler to wrap\n     * @param {SettingLevel} level The level to notify updates at\n     */\n    public constructor(\n        private readonly handler: SettingsHandler,\n        private readonly level: SettingLevel,\n    ) {\n        super();\n    }\n\n    public getValue(settingName: string, roomId: string): any {\n        const cacheRoomId = roomId ?? \"UNDEFINED\"; // avoid weird keys\n        const bySetting = this.cache[settingName];\n        if (bySetting?.hasOwnProperty(cacheRoomId)) {\n            return bySetting[cacheRoomId];\n        }\n\n        return this.handler.getValue(settingName, roomId);\n    }\n\n    public async setValue(settingName: string, roomId: string, newValue: any): Promise<void> {\n        if (!this.cache[settingName]) this.cache[settingName] = {};\n        const bySetting = this.cache[settingName];\n\n        const cacheRoomId = roomId ?? \"UNDEFINED\"; // avoid weird keys\n        bySetting[cacheRoomId] = newValue;\n\n        const currentValue = this.handler.getValue(settingName, roomId);\n        const handlerPromise = this.handler.setValue(settingName, roomId, newValue);\n        this.handler.watchers?.notifyUpdate(settingName, roomId, this.level, newValue);\n\n        try {\n            await handlerPromise;\n        } catch {\n            // notify of a rollback\n            this.handler.watchers?.notifyUpdate(settingName, roomId, this.level, currentValue);\n        } finally {\n            // only expire the cache if our value hasn't been overwritten yet\n            if (bySetting[cacheRoomId] === newValue) {\n                delete bySetting[cacheRoomId];\n            }\n        }\n    }\n\n    public canSetValue(settingName: string, roomId: string): boolean {\n        return this.handler.canSetValue(settingName, roomId);\n    }\n\n    public isSupported(): boolean {\n        return this.handler.isSupported();\n    }\n\n    public reset(): void {\n        this.cache = {};\n        this.handler.reset();\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingsHandler from \"./SettingsHandler\";\nimport PlatformPeg from \"../../PlatformPeg\";\nimport { SETTINGS } from \"../Settings\";\nimport { SettingLevel } from \"../SettingLevel\";\n\n/**\n * Gets and sets settings at the \"platform\" level for the current device.\n * This handler does not make use of the roomId parameter.\n */\nexport default class PlatformSettingsHandler extends SettingsHandler {\n    private store: { [settingName: string]: any } = {};\n\n    public constructor() {\n        super();\n\n        void this.setup();\n    }\n\n    private async setup(): Promise<void> {\n        const platform = await PlatformPeg.platformPromise;\n        await platform.initialised;\n\n        // Load setting values as they are async and `getValue` must be synchronous\n        Object.entries(SETTINGS).forEach(([key, setting]) => {\n            if (setting.supportedLevels?.includes(SettingLevel.PLATFORM) && platform.supportsSetting(key)) {\n                platform.getSettingValue(key).then((value: any) => {\n                    this.store[key] = value;\n                });\n            }\n        });\n    }\n\n    public canSetValue(settingName: string, roomId: string): boolean {\n        return PlatformPeg.get()?.supportsSetting(settingName) ?? false;\n    }\n\n    public getValue(settingName: string, roomId: string): any {\n        return this.store[settingName];\n    }\n\n    public async setValue(settingName: string, roomId: string, newValue: any): Promise<void> {\n        this.store[settingName] = newValue; // keep cache up to date for synchronous access\n        await PlatformPeg.get()?.setSettingValue(settingName, newValue);\n    }\n\n    public isSupported(): boolean {\n        return PlatformPeg.get()?.supportsSetting() ?? false;\n    }\n}\n","/*\nCopyright 2024, 2025 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { type ReactNode } from \"react\";\nimport { ClientEvent } from \"matrix-js-sdk/src/matrix\";\n// Imports directly from shared-components to avoid an import cycle\nimport { _t } from \"@element-hq/web-shared-components\";\n\nimport DeviceSettingsHandler from \"./handlers/DeviceSettingsHandler\";\nimport RoomDeviceSettingsHandler from \"./handlers/RoomDeviceSettingsHandler\";\nimport DefaultSettingsHandler from \"./handlers/DefaultSettingsHandler\";\nimport RoomAccountSettingsHandler from \"./handlers/RoomAccountSettingsHandler\";\nimport AccountSettingsHandler from \"./handlers/AccountSettingsHandler\";\nimport RoomSettingsHandler from \"./handlers/RoomSettingsHandler\";\nimport ConfigSettingsHandler from \"./handlers/ConfigSettingsHandler\";\nimport dis from \"../dispatcher/dispatcher\";\nimport {\n    type IFeature,\n    type ISetting,\n    type LabGroup,\n    SETTINGS,\n    defaultWatchManager,\n    type SettingKey,\n    type Settings,\n} from \"./Settings\";\nimport LocalEchoWrapper from \"./handlers/LocalEchoWrapper\";\nimport { type CallbackFn as WatchCallbackFn } from \"./WatchManager\";\nimport { SettingLevel } from \"./SettingLevel\";\nimport type SettingsHandler from \"./handlers/SettingsHandler\";\nimport { type SettingUpdatedPayload } from \"../dispatcher/payloads/SettingUpdatedPayload\";\nimport { Action } from \"../dispatcher/actions\";\nimport PlatformSettingsHandler from \"./handlers/PlatformSettingsHandler\";\nimport ReloadOnChangeController from \"./controllers/ReloadOnChangeController\";\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\nimport { MediaPreviewValue } from \"../@types/media_preview\";\nimport SettingController from \"./controllers/SettingController.ts\";\n\n// Convert the settings to easier to manage objects for the handlers\nconst defaultSettings: Record<string, any> = {};\nconst invertedDefaultSettings: Record<string, boolean> = {};\nconst featureNames: SettingKey[] = [];\nfor (const key in SETTINGS) {\n    const setting = SETTINGS[key as SettingKey];\n    defaultSettings[key] = setting.default;\n    if (setting.isFeature) featureNames.push(key as SettingKey);\n    if (setting.invertedSettingName) {\n        // Invert now so that the rest of the system will invert it back to what was intended.\n        invertedDefaultSettings[setting.invertedSettingName] = !setting.default;\n    }\n}\n\n// Only wrap the handlers with async setters in a local echo wrapper\nconst LEVEL_HANDLERS: Record<SettingLevel, SettingsHandler> = {\n    [SettingLevel.DEVICE]: new DeviceSettingsHandler(featureNames, defaultWatchManager),\n    [SettingLevel.ROOM_DEVICE]: new RoomDeviceSettingsHandler(defaultWatchManager),\n    [SettingLevel.ROOM_ACCOUNT]: new LocalEchoWrapper(\n        new RoomAccountSettingsHandler(defaultWatchManager),\n        SettingLevel.ROOM_ACCOUNT,\n    ),\n    [SettingLevel.ACCOUNT]: new LocalEchoWrapper(new AccountSettingsHandler(defaultWatchManager), SettingLevel.ACCOUNT),\n    [SettingLevel.ROOM]: new LocalEchoWrapper(new RoomSettingsHandler(defaultWatchManager), SettingLevel.ROOM),\n    [SettingLevel.PLATFORM]: new LocalEchoWrapper(new PlatformSettingsHandler(), SettingLevel.PLATFORM),\n    [SettingLevel.CONFIG]: new ConfigSettingsHandler(featureNames),\n    [SettingLevel.DEFAULT]: new DefaultSettingsHandler(defaultSettings, invertedDefaultSettings),\n};\n\nexport const LEVEL_ORDER = [\n    SettingLevel.DEVICE,\n    SettingLevel.ROOM_DEVICE,\n    SettingLevel.ROOM_ACCOUNT,\n    SettingLevel.ACCOUNT,\n    SettingLevel.ROOM,\n    SettingLevel.CONFIG,\n    SettingLevel.DEFAULT,\n];\n\nfunction getLevelOrder(setting: Settings[keyof Settings]): SettingLevel[] {\n    // Settings which support only a single setting level are inherently ordered\n    if (setting.supportedLevelsAreOrdered || setting.supportedLevels.length === 1) {\n        // return a copy to prevent callers from modifying the array\n        return [...setting.supportedLevels];\n    }\n    return LEVEL_ORDER;\n}\n\nexport type CallbackFn<S extends SettingKey> = (\n    settingName: S,\n    roomId: string | null,\n    atLevel: SettingLevel,\n    newValAtLevel: Settings[S][\"default\"] | null,\n    newVal: Settings[S][\"default\"] | null,\n) => void;\n\ntype HandlerMap = Partial<{\n    [level in SettingLevel]: SettingsHandler;\n}>;\n\n/**\n * Controls and manages application settings by providing varying levels at which the\n * setting value may be specified. The levels are then used to determine what the setting\n * value should be given a set of circumstances. The levels, in priority order, are:\n * - SettingLevel.DEVICE         - Values are determined by the current device\n * - SettingLevel.ROOM_DEVICE    - Values are determined by the current device for a particular room\n * - SettingLevel.ROOM_ACCOUNT   - Values are determined by the current account for a particular room\n * - SettingLevel.ACCOUNT        - Values are determined by the current account\n * - SettingLevel.ROOM           - Values are determined by a particular room (by the room admins)\n * - SettingLevel.CONFIG         - Values are determined by the config.json\n * - SettingLevel.DEFAULT        - Values are determined by the hardcoded defaults\n *\n * Each level has a different method to storing the setting value. For implementation\n * specific details, please see the handlers. The \"config\" and \"default\" levels are\n * both always supported on all platforms. All other settings should be guarded by\n * isLevelSupported() prior to attempting to set the value.\n *\n * Settings can also represent features. Features are significant portions of the\n * application that warrant a dedicated setting to toggle them on or off. Features are\n * special-cased to ensure that their values respect the configuration (for example, a\n * feature may be reported as disabled even though a user has specifically requested it\n * be enabled).\n */\nexport default class SettingsStore {\n    // We support watching settings for changes, and do this by tracking which callbacks have\n    // been given to us. We end up returning the callbackRef to the caller so they can unsubscribe\n    // at a later point.\n    //\n    // We also maintain a list of monitors which are special watchers: they cause dispatches\n    // when the setting changes. We track which rooms we're monitoring though to ensure we\n    // don't duplicate updates on the bus.\n    private static watchers = new Map<string, WatchCallbackFn>();\n    private static monitors = new Map<string, Map<string | null, string>>(); // { settingName => { roomId => callbackRef } }\n\n    // Counter used for generation of watcher IDs\n    private static watcherCount = 1;\n\n    public static reset(): void {\n        for (const handler of Object.values(LEVEL_HANDLERS)) {\n            handler.reset();\n        }\n    }\n\n    /**\n     * Gets all the feature-style setting names.\n     * @returns {string[]} The names of the feature settings.\n     */\n    public static getFeatureSettingNames(): SettingKey[] {\n        return (Object.keys(SETTINGS) as SettingKey[]).filter((n) => SettingsStore.isFeature(n));\n    }\n\n    /**\n     * Watches for changes in a particular setting. This is done without any local echo\n     * wrapping and fires whenever a change is detected in a setting's value, at any level.\n     * Watching is intended to be used in scenarios where the app needs to react to changes\n     * made by other devices. It is otherwise expected that callers will be able to use the\n     * Controller system or track their own changes to settings. Callers should retain the\n     * returned reference to later unsubscribe from updates.\n     * @param {string} settingName The setting name to watch\n     * @param {String} roomId The room ID to watch for changes in. May be null for 'all'.\n     * @param {function} callbackFn A function to be called when a setting change is\n     * detected. Five arguments can be expected: the setting name, the room ID (may be null),\n     * the level the change happened at, the new value at the given level, and finally the new\n     * value for the setting regardless of level. The callback is responsible for determining\n     * if the change in value is worthwhile enough to react upon.\n     * @returns {string} A reference to the watcher that was employed.\n     */\n    public static watchSetting<S extends SettingKey>(\n        settingName: S,\n        roomId: string | null,\n        callbackFn: CallbackFn<S>,\n    ): string {\n        const setting = SETTINGS[settingName];\n        if (!setting) throw new Error(`${settingName} is not a setting`);\n\n        const finalSettingName: string = setting.invertedSettingName ?? settingName;\n\n        const watcherId = `${new Date().getTime()}_${SettingsStore.watcherCount++}_${finalSettingName}_${roomId}`;\n\n        const localizedCallback = (\n            changedInRoomId: string | null,\n            atLevel: SettingLevel,\n            newValAtLevel: Settings[S][\"default\"],\n        ): void => {\n            if (!SettingsStore.doesSettingSupportLevel(settingName, atLevel)) {\n                logger.warn(\n                    `Setting handler notified for an update of an invalid setting level: ` +\n                        `${settingName}@${atLevel} - this likely means a weird setting value ` +\n                        `made it into the level's storage. The notification will be ignored.`,\n                );\n                return;\n            }\n            const newValue = SettingsStore.getValue(settingName);\n            const newValueAtLevel = SettingsStore.getValueAt(atLevel, settingName) ?? newValAtLevel;\n            callbackFn(settingName, changedInRoomId, atLevel, newValueAtLevel, newValue);\n        };\n\n        SettingsStore.watchers.set(watcherId, localizedCallback);\n        defaultWatchManager.watchSetting(finalSettingName, roomId, localizedCallback);\n\n        return watcherId;\n    }\n\n    /**\n     * Stops the SettingsStore from watching a setting. This is a no-op if the watcher\n     * provided is not found.\n     * @param watcherReference The watcher reference (received from #watchSetting) to cancel.\n     * Can be undefined to avoid needing an if around every caller.\n     */\n    public static unwatchSetting(watcherReference: string | undefined): void {\n        if (!watcherReference) return;\n        if (!SettingsStore.watchers.has(watcherReference)) {\n            logger.warn(`Ending non-existent watcher ID ${watcherReference}`);\n            return;\n        }\n\n        defaultWatchManager.unwatchSetting(SettingsStore.watchers.get(watcherReference)!);\n        SettingsStore.watchers.delete(watcherReference);\n    }\n\n    /**\n     * Sets up a monitor for a setting. This behaves similar to #watchSetting except instead\n     * of making a call to a callback, it forwards all changes to the dispatcher. Callers can\n     * expect to listen for the 'setting_updated' action with an object containing settingName,\n     * roomId, level, newValueAtLevel, and newValue.\n     * @param {string} settingName The setting name to monitor.\n     * @param {String} roomId The room ID to monitor for changes in. Use null for all rooms.\n     */\n    public static monitorSetting<S extends SettingKey>(settingName: S, roomId: string | null): void {\n        roomId = roomId || null; // the thing wants null specifically to work, so appease it.\n\n        if (!this.monitors.has(settingName)) this.monitors.set(settingName, new Map());\n\n        const registerWatcher = (): void => {\n            this.monitors.get(settingName)!.set(\n                roomId,\n                SettingsStore.watchSetting<S>(\n                    settingName,\n                    roomId,\n                    (settingName, inRoomId, level, newValueAtLevel, newValue) => {\n                        dis.dispatch<SettingUpdatedPayload>({\n                            action: Action.SettingUpdated,\n                            settingName,\n                            roomId: inRoomId,\n                            level,\n                            newValueAtLevel,\n                            newValue,\n                        });\n                    },\n                ),\n            );\n        };\n\n        const rooms = Array.from(this.monitors.get(settingName)!.keys());\n        const hasRoom = rooms.find((r) => r === roomId || r === null);\n        if (!hasRoom) {\n            registerWatcher();\n        } else {\n            if (roomId === null) {\n                // Unregister all existing watchers and register the new one\n                rooms.forEach((roomId) => {\n                    SettingsStore.unwatchSetting(this.monitors.get(settingName)!.get(roomId)!);\n                });\n                this.monitors.get(settingName)!.clear();\n                registerWatcher();\n            } // else a watcher is already registered for the room, so don't bother registering it again\n        }\n    }\n\n    /**\n     * Gets the translated display name for a given setting\n     * @param {string} settingName The setting to look up.\n     * @param {SettingLevel} atLevel\n     * The level to get the display name for; Defaults to 'default'.\n     * @returns {String} The display name for the setting, or null if not found.\n     */\n    public static getDisplayName(settingName: SettingKey, atLevel = SettingLevel.DEFAULT): string | null {\n        if (!SETTINGS[settingName] || !SETTINGS[settingName].displayName) return null;\n\n        const displayName = SETTINGS[settingName].displayName;\n\n        if (typeof displayName === \"string\") {\n            return _t(displayName);\n        }\n        if (displayName?.[atLevel]) {\n            return _t(displayName[atLevel]);\n        }\n        if (displayName?.[\"default\"]) {\n            return _t(displayName[\"default\"]);\n        }\n\n        return null;\n    }\n\n    /**\n     * Gets the translated description for a given setting\n     * @param {string} settingName The setting to look up.\n     * @returns {String} The description for the setting, or null if not found.\n     */\n    public static getDescription(settingName: SettingKey): string | ReactNode {\n        const description = SETTINGS[settingName]?.description;\n        if (!description) return null;\n        if (typeof description !== \"string\") return description();\n        return _t(description);\n    }\n\n    /**\n     * Determines if a setting is also a feature.\n     * @param {string} settingName The setting to look up.\n     * @returns {boolean} True if the setting is a feature.\n     */\n    public static isFeature(settingName: SettingKey): boolean {\n        if (!SETTINGS[settingName]) return false;\n        return !!SETTINGS[settingName].isFeature;\n    }\n\n    /**\n     * Determines if a setting should have a warning sign in the microcopy\n     * @param {string} settingName The setting to look up.\n     * @returns {boolean} True if the setting should have a warning sign.\n     */\n    public static shouldHaveWarning(settingName: SettingKey): boolean {\n        if (!SETTINGS[settingName]) return false;\n        return SETTINGS[settingName].shouldWarn ?? false;\n    }\n\n    public static getBetaInfo(settingName: SettingKey): ISetting[\"betaInfo\"] {\n        // consider a beta disabled if the config is explicitly set to false, in which case treat as normal Labs flag\n        if (\n            SettingsStore.isFeature(settingName) &&\n            SettingsStore.getValueAt(SettingLevel.CONFIG, settingName, null, true, true) !== false\n        ) {\n            const betaInfo = SETTINGS[settingName]!.betaInfo;\n            if (betaInfo) {\n                betaInfo.requiresRefresh =\n                    betaInfo.requiresRefresh ?? SETTINGS[settingName]!.controller instanceof ReloadOnChangeController;\n            }\n            return betaInfo;\n        }\n    }\n\n    public static getLabGroup(settingName: SettingKey): LabGroup | undefined {\n        if (SettingsStore.isFeature(settingName)) {\n            return (<IFeature>SETTINGS[settingName]).labsGroup;\n        }\n    }\n\n    /**\n     * Retrieves the internationalised reason a setting is disabled if one is assigned.\n     * If a setting is not disabled, or no reason is given by the `SettingController`,\n     * this will return undefined.\n     * @param {string} settingName The setting to look up.\n     * @returns {string} The reason the setting is disabled.\n     */\n    public static disabledMessage(settingName: SettingKey): string | undefined {\n        const disabled = SETTINGS[settingName].controller?.settingDisabled;\n        return typeof disabled === \"string\" ? disabled : undefined;\n    }\n\n    /**\n     * Gets the value of a setting. The room ID is optional if the setting is not to\n     * be applied to any particular room, otherwise it should be supplied.\n     * @param {string} settingName The name of the setting to read the value of.\n     * @param {String} roomId The room ID to read the setting value in, may be null.\n     * @param {boolean} excludeDefault True to disable using the default value.\n     * @returns {*} The value, or null if not found\n     */\n    public static getValue<S extends SettingKey>(\n        settingName: S,\n        roomId: string | null,\n        excludeDefault: true,\n    ): Settings[S][\"default\"] | undefined;\n    public static getValue<S extends SettingKey>(\n        settingName: S,\n        roomId?: string | null,\n        excludeDefault?: false,\n    ): Settings[S][\"default\"];\n    public static getValue<S extends SettingKey>(\n        settingName: S,\n        roomId: string | null = null,\n        excludeDefault = false,\n    ): Settings[S][\"default\"] | undefined {\n        // Verify that the setting is actually a setting\n        if (!SETTINGS[settingName]) {\n            throw new Error(\"Setting '\" + settingName + \"' does not appear to be a setting.\");\n        }\n\n        const setting = SETTINGS[settingName];\n        const levelOrder = getLevelOrder(setting);\n\n        return SettingsStore.getValueAt(levelOrder[0], settingName, roomId, false, excludeDefault);\n    }\n\n    /**\n     * Gets a setting's value at a particular level, ignoring all levels that are more specific.\n     * @param {SettingLevel|\"config\"|\"default\"} level The\n     * level to look at.\n     * @param {string} settingName The name of the setting to read.\n     * @param {String} roomId The room ID to read the setting value in, may be null.\n     * @param {boolean} explicit If true, this method will not consider other levels, just the one\n     * provided. Defaults to false.\n     * @param {boolean} excludeDefault True to disable using the default value.\n     * @returns {*} The value, or null if not found.\n     */\n    public static getValueAt<S extends SettingKey>(\n        level: SettingLevel,\n        settingName: S,\n        roomId: string | null = null,\n        explicit = false,\n        excludeDefault = false,\n    ): Settings[S][\"default\"] {\n        // Verify that the setting is actually a setting\n        const setting = SETTINGS[settingName];\n        if (!setting) {\n            throw new Error(\"Setting '\" + settingName + \"' does not appear to be a setting.\");\n        }\n\n        const levelOrder = getLevelOrder(setting);\n        if (!levelOrder.includes(SettingLevel.DEFAULT)) levelOrder.push(SettingLevel.DEFAULT); // always include default\n\n        const minIndex = levelOrder.indexOf(level);\n        if (minIndex === -1) throw new Error(`Level \"${level}\" for setting \"${settingName}\" is not prioritized`);\n\n        const handlers = SettingsStore.getHandlers(settingName);\n\n        // Check if we need to invert the setting at all. Do this after we get the setting\n        // handlers though, otherwise we'll fail to read the value.\n        let finalSettingName: string = settingName;\n        if (setting.invertedSettingName) {\n            //console.warn(`Inverting ${settingName} to be ${setting.invertedSettingName} - legacy setting`);\n            finalSettingName = setting.invertedSettingName;\n        }\n\n        if (explicit) {\n            const handler = handlers[level];\n            if (!handler) {\n                return SettingsStore.getFinalValue(setting, level, roomId, null, null);\n            }\n            const value = handler.getValue(finalSettingName, roomId);\n            return SettingsStore.getFinalValue(setting, level, roomId, value, level);\n        }\n\n        for (let i = minIndex; i < levelOrder.length; i++) {\n            const handler = handlers[levelOrder[i]];\n            if (!handler) continue;\n            if (excludeDefault && levelOrder[i] === \"default\") continue;\n\n            const value = handler.getValue(finalSettingName, roomId);\n            if (value === null || value === undefined) continue;\n            return SettingsStore.getFinalValue(setting, level, roomId, value, levelOrder[i]);\n        }\n\n        return SettingsStore.getFinalValue(setting, level, roomId, null, null);\n    }\n\n    /**\n     * Gets the default value of a setting.\n     * @param settingName The name of the setting to read the value of.\n     * @returns The default value\n     */\n    public static getDefaultValue<S extends SettingKey>(settingName: S): Settings[S][\"default\"] {\n        // Verify that the setting is actually a setting\n        if (!SETTINGS[settingName]) {\n            throw new Error(\"Setting '\" + settingName + \"' does not appear to be a setting.\");\n        }\n\n        return SETTINGS[settingName].default;\n    }\n\n    private static getFinalValue<S extends SettingKey>(\n        setting: Settings[S],\n        level: SettingLevel,\n        roomId: string | null,\n        calculatedValue: Settings[S][\"default\"],\n        calculatedAtLevel: SettingLevel | null,\n    ): Settings[S][\"default\"] {\n        let resultingValue = calculatedValue;\n\n        if (setting.controller) {\n            const actualValue = setting.controller.getValueOverride(level, roomId, calculatedValue, calculatedAtLevel);\n            if (actualValue !== undefined && actualValue !== null) resultingValue = actualValue;\n        }\n\n        if (setting.invertedSettingName) resultingValue = !resultingValue;\n        return resultingValue;\n    }\n\n    /**\n     * Sets the value for a setting. The room ID is optional if the setting is not being\n     * set for a particular room, otherwise it should be supplied. The value may be null\n     * to indicate that the level should no longer have an override.\n     * @param settingName The name of the setting to change.\n     * @param roomId The room ID to change the value in, may be null.\n     * @param level The level\n     * to change the value at.\n     * @param value The new value of the setting, may be null.\n     * @returns Resolves when the setting has been changed.\n     */\n    public static async setValue<S extends SettingKey>(\n        settingName: S,\n        roomId: string | null,\n        level: SettingLevel,\n        value: Settings[S][\"default\"] | null,\n    ): Promise<void> {\n        // Verify that the setting is actually a setting\n        const setting = SETTINGS[settingName];\n        if (!setting) {\n            throw new Error(\"Setting '\" + settingName + \"' does not appear to be a setting.\");\n        }\n\n        const handler = SettingsStore.getHandler(settingName, level);\n        if (!handler) {\n            throw new Error(\"Setting \" + settingName + \" does not have a handler for \" + level);\n        }\n\n        let finalSettingName: string = settingName;\n        if (setting.invertedSettingName) {\n            // Note: We can't do this when the `level` is \"default\", however we also\n            // know that the user can't possible change the default value through this\n            // function so we don't bother checking it.\n            //console.warn(`Inverting ${settingName} to be ${setting.invertedSettingName} - legacy setting`);\n            finalSettingName = setting.invertedSettingName;\n            value = !value;\n        }\n\n        if (!handler.canSetValue(finalSettingName, roomId)) {\n            throw new Error(\"User cannot set \" + finalSettingName + \" at \" + level + \" in \" + roomId);\n        }\n\n        if (setting.controller && !(await setting.controller.beforeChange(level, roomId, value))) {\n            return; // controller says no\n        }\n\n        await handler.setValue(finalSettingName, roomId, value);\n\n        setting.controller?.onChange(level, roomId, value);\n    }\n\n    /**\n     * Determines if the current user is permitted to set the given setting at the given\n     * level for a particular room. The room ID is optional if the setting is not being\n     * set for a particular room, otherwise it should be supplied.\n     *\n     * This takes into account both the value of {@link SettingController#settingDisabled} of the\n     * `SettingController`, if any; and, for settings where {@link IBaseSetting#supportedLevelsAreOrdered} is true,\n     * checks whether a level of higher precedence is set.\n     *\n     * Typically, if the user cannot set the setting, it should be hidden, to declutter the UI;\n     * however some settings (typically, the labs flags) are exposed but greyed out, to unveil\n     * what features are available with the right server support.\n     *\n     * @param {string} settingName The name of the setting to check.\n     * @param {String} roomId The room ID to check in, may be null.\n     * @param {SettingLevel} level The level to check at.\n     * @returns {boolean} True if the user may set the setting, false otherwise.\n     */\n    public static canSetValue(settingName: SettingKey, roomId: string | null, level: SettingLevel): boolean {\n        const setting = SETTINGS[settingName];\n        // Verify that the setting is actually a setting\n        if (!setting) {\n            throw new Error(\"Setting '\" + settingName + \"' does not appear to be a setting.\");\n        }\n\n        if (setting.controller?.settingDisabled) {\n            return false;\n        }\n\n        // For some config settings (mostly: non-beta features), a value in config.json overrides the local setting\n        // (ie: we force them as enabled or disabled). In this case we should not let the user change the setting.\n        if (\n            setting?.supportedLevelsAreOrdered &&\n            SettingsStore.settingIsOveriddenAtConfigLevel(settingName, roomId, level)\n        ) {\n            return false;\n        }\n\n        const handler = SettingsStore.getHandler(settingName, level);\n        if (!handler) return false;\n        return handler.canSetValue(settingName, roomId);\n    }\n\n    /**\n     * Determines if the setting at the specified level is overidden by one at a config level.\n     * @param settingName The name of the setting to check.\n     * @param roomId The room ID to check in, may be null.\n     * @param level The level to check at.\n     * @returns\n     */\n    public static settingIsOveriddenAtConfigLevel(\n        settingName: SettingKey,\n        roomId: string | null,\n        level: SettingLevel,\n    ): boolean {\n        const setting = SETTINGS[settingName];\n        const levelOrders = getLevelOrder(setting);\n        const configIndex = levelOrders.indexOf(SettingLevel.CONFIG);\n        const levelIndex = levelOrders.indexOf(level);\n        if (configIndex === -1 || levelIndex === -1 || configIndex >= levelIndex) {\n            return false;\n        }\n        const configVal = SettingsStore.getValueAt(SettingLevel.CONFIG, settingName, roomId, true, true);\n        return configVal === true || configVal === false;\n    }\n\n    /**\n     * Determines if the given level is supported on this device.\n     * @param {SettingLevel} level The level\n     * to check the feasibility of.\n     * @returns {boolean} True if the level is supported, false otherwise.\n     */\n    public static isLevelSupported(level: SettingLevel): boolean {\n        if (!LEVEL_HANDLERS[level]) return false;\n        return LEVEL_HANDLERS[level].isSupported();\n    }\n\n    /**\n     * Determines if a setting supports a particular level.\n     * @param settingName The setting name.\n     * @param level The level.\n     * @returns True if supported, false otherwise. Note that this will not check to see if\n     * the level itself can be supported by the runtime (ie: you will need to call #isLevelSupported()\n     * on your own).\n     */\n    public static doesSettingSupportLevel(settingName: SettingKey, level: SettingLevel): boolean {\n        const setting = SETTINGS[settingName];\n        if (!setting) {\n            throw new Error(\"Setting '\" + settingName + \"' does not appear to be a setting.\");\n        }\n\n        return level === SettingLevel.DEFAULT || !!setting.supportedLevels?.includes(level);\n    }\n\n    /**\n     * Determines the first supported level out of all the levels that can be used for a\n     * specific setting.\n     * @param {string} settingName The setting name.\n     * @returns {SettingLevel}\n     */\n    public static firstSupportedLevel(settingName: SettingKey): SettingLevel | null {\n        // Verify that the setting is actually a setting\n        const setting = SETTINGS[settingName];\n        if (!setting) {\n            throw new Error(\"Setting '\" + settingName + \"' does not appear to be a setting.\");\n        }\n\n        const levelOrder = getLevelOrder(setting);\n        if (!levelOrder.includes(SettingLevel.DEFAULT)) levelOrder.push(SettingLevel.DEFAULT); // always include default\n\n        const handlers = SettingsStore.getHandlers(settingName);\n\n        for (const level of levelOrder) {\n            const handler = handlers[level];\n            if (!handler) continue;\n            return level;\n        }\n        return null;\n    }\n\n    /**\n     * Migrate the setting for visible images to a setting.\n     */\n    private static migrateShowImagesToSettings(): void {\n        const MIGRATION_DONE_FLAG = \"mx_show_images_migration_done\";\n        if (localStorage.getItem(MIGRATION_DONE_FLAG)) return;\n\n        logger.info(\"Performing one-time settings migration of shown images to settings store\");\n        const newValue = Object.fromEntries(\n            Object.keys(localStorage)\n                .filter((k) => k.startsWith(\"mx_ShowImage_\"))\n                .map((k) => [k.slice(\"mx_ShowImage_\".length), true]),\n        );\n        this.setValue(\"showMediaEventIds\", null, SettingLevel.DEVICE, newValue);\n\n        localStorage.setItem(MIGRATION_DONE_FLAG, \"true\");\n    }\n\n    /**\n     * Migrate the setting for visible images to a setting.\n     *\n     * @param isFreshLogin True if the user has just logged in, false if a previous session is being restored.\n     */\n    private static async migrateMediaControlsToSetting(isFreshLogin: boolean): Promise<void> {\n        if (isFreshLogin) return;\n        const client = MatrixClientPeg.safeGet();\n\n        while (!client.isInitialSyncComplete()) {\n            await new Promise((r) => client.once(ClientEvent.Sync, r));\n        }\n        // Never migrate if the config already exists.\n        if (client.getAccountData(\"io.element.msc4278.media_preview_config\")) {\n            return;\n        }\n        logger.info(\"Performing one-time settings migration of show images and invite avatars to account data\");\n        const handler = LEVEL_HANDLERS[SettingLevel.ACCOUNT];\n        const showImages = handler.getValue(\"showImages\", null);\n        const showAvatarsOnInvites = handler.getValue(\"showAvatarsOnInvites\", null);\n\n        if (typeof showImages === \"boolean\" || typeof showAvatarsOnInvites === \"boolean\") {\n            this.setValue(\"mediaPreviewConfig\", null, SettingLevel.ACCOUNT, {\n                invite_avatars: showAvatarsOnInvites === false ? MediaPreviewValue.Off : MediaPreviewValue.On,\n                media_previews: showImages === false ? MediaPreviewValue.Off : MediaPreviewValue.On,\n            });\n        } // else, we don't set anything and use the server value\n    }\n\n    /**\n     * Runs or queues any setting migrations needed.\n     */\n    public static runMigrations(isFreshLogin: boolean): void {\n        // This can be removed once enough users have run a version of Element with\n        // this migration.\n        // The consequences of missing the migration are that previously shown images\n        // will now be hidden again, so this fails safely.\n        SettingsStore.migrateShowImagesToSettings();\n\n        // This can be removed once enough users have run a version of Element with\n        // this migration.\n        // The consequences of missing the migration are that the previously set\n        // media controls for this user will be missing\n        SettingsStore.migrateMediaControlsToSetting(isFreshLogin).catch((e) => {\n            logger.error(\"Failed to migrate media config settings\", e);\n        });\n        // Dev notes: to add your migration, just add a new `migrateMyFeature` function, call it, and\n        // add a comment to note when it can be removed.\n        return;\n    }\n\n    /**\n     * Debugging function for reading explicit setting values without going through the\n     * complicated/biased functions in the SettingsStore. This will print information to\n     * the console for analysis. Not intended to be used within the application.\n     * @param {string} realSettingName The setting name to try and read.\n     * @param {string} roomId Optional room ID to test the setting in.\n     */\n    public static debugSetting(realSettingName: SettingKey, roomId: string): void {\n        logger.log(`--- DEBUG ${realSettingName}`);\n\n        // Note: we intentionally use JSON.stringify here to avoid the console masking the\n        // problem if there's a type representation issue. Also, this way it is guaranteed\n        // to show up in a rageshake if required.\n\n        const def = SETTINGS[realSettingName];\n        logger.log(`--- definition: ${def ? JSON.stringify(def) : \"<NOT_FOUND>\"}`);\n        logger.log(`--- default level order: ${JSON.stringify(LEVEL_ORDER)}`);\n        logger.log(`--- registered handlers: ${JSON.stringify(Object.keys(LEVEL_HANDLERS))}`);\n\n        const doChecks = (settingName: SettingKey): void => {\n            for (const handlerName of Object.keys(LEVEL_HANDLERS)) {\n                const handler = LEVEL_HANDLERS[handlerName as SettingLevel];\n\n                try {\n                    const value = handler.getValue(settingName, roomId);\n                    logger.log(`---     ${handlerName}@${roomId || \"<no_room>\"} = ${JSON.stringify(value)}`);\n                } catch (e) {\n                    logger.log(\n                        `---     ${handler.constructor.name}@${roomId || \"<no_room>\"} THREW ERROR: ${\n                            e instanceof Error ? e.message : e\n                        }`,\n                    );\n                    logger.error(e);\n                }\n\n                if (roomId) {\n                    try {\n                        const value = handler.getValue(settingName, null);\n                        logger.log(`---     ${handlerName}@<no_room> = ${JSON.stringify(value)}`);\n                    } catch (e) {\n                        logger.log(\n                            `---     ${handler.constructor.name}@<no_room> THREW ERROR: ${\n                                e instanceof Error ? e.message : e\n                            }`,\n                        );\n                        logger.error(e);\n                    }\n                }\n            }\n\n            logger.log(`--- calculating as returned by SettingsStore`);\n            logger.log(`--- these might not match if the setting uses a controller - be warned!`);\n\n            try {\n                const value = SettingsStore.getValue(settingName, roomId);\n                logger.log(`---     SettingsStore#generic@${roomId || \"<no_room>\"}  = ${JSON.stringify(value)}`);\n            } catch (e) {\n                logger.log(\n                    `---     SettingsStore#generic@${roomId || \"<no_room>\"} THREW ERROR: ${\n                        e instanceof Error ? e.message : e\n                    }`,\n                );\n                logger.error(e);\n            }\n\n            if (roomId) {\n                try {\n                    const value = SettingsStore.getValue(settingName, null);\n                    logger.log(`---     SettingsStore#generic@<no_room>  = ${JSON.stringify(value)}`);\n                } catch (e) {\n                    logger.log(\n                        `---     SettingsStore#generic@$<no_room> THREW ERROR: ${e instanceof Error ? e.message : e}`,\n                    );\n                    logger.error(e);\n                }\n            }\n\n            for (const level of LEVEL_ORDER) {\n                try {\n                    const value = SettingsStore.getValueAt(level, settingName, roomId);\n                    logger.log(`---     SettingsStore#${level}@${roomId || \"<no_room>\"} = ${JSON.stringify(value)}`);\n                } catch (e) {\n                    logger.log(\n                        `---     SettingsStore#${level}@${roomId || \"<no_room>\"} THREW ERROR: ${\n                            e instanceof Error ? e.message : e\n                        }`,\n                    );\n                    logger.error(e);\n                }\n\n                if (roomId) {\n                    try {\n                        const value = SettingsStore.getValueAt(level, settingName, null);\n                        logger.log(`---     SettingsStore#${level}@<no_room> = ${JSON.stringify(value)}`);\n                    } catch (e) {\n                        logger.log(\n                            `---     SettingsStore#${level}@$<no_room> THREW ERROR: ${\n                                e instanceof Error ? e.message : e\n                            }`,\n                        );\n                        logger.error(e);\n                    }\n                }\n            }\n        };\n\n        doChecks(realSettingName);\n\n        if (def.invertedSettingName) {\n            logger.log(`--- TESTING INVERTED SETTING NAME`);\n            logger.log(`--- inverted: ${def.invertedSettingName}`);\n            doChecks(def.invertedSettingName as SettingKey);\n        }\n\n        logger.log(`--- END DEBUG`);\n    }\n\n    /**\n     * Export all settings as a JSON object, except for settings\n     * blocked from being exported by `shouldExportToRageshake`.\n     * @returns Settings as a JSON object string.\n     */\n    public static exportForRageshake(): string {\n        const settingMap: Record<string, unknown> = {};\n        for (const settingKey of (Object.keys(SETTINGS) as SettingKey[]).filter(\n            (s) => SETTINGS[s].shouldExportToRageshake !== false,\n        )) {\n            try {\n                settingMap[settingKey] = SettingsStore.getValue(settingKey);\n            } catch (e) {\n                logger.warn(\"Failed to read setting\", settingKey, e);\n                settingMap[settingKey] = \"Failed to read setting!\";\n            }\n        }\n        return JSON.stringify(settingMap);\n    }\n\n    private static getHandler(settingName: SettingKey, level: SettingLevel): SettingsHandler | null {\n        const handlers = SettingsStore.getHandlers(settingName);\n        if (!handlers[level]) return null;\n        return handlers[level]!;\n    }\n\n    private static getHandlers(settingName: SettingKey): HandlerMap {\n        if (!SETTINGS[settingName]) return {};\n\n        const handlers: Partial<Record<SettingLevel, SettingsHandler>> = {};\n        for (const level of SETTINGS[settingName].supportedLevels) {\n            if (!LEVEL_HANDLERS[level]) throw new Error(\"Unexpected level \" + level);\n            if (SettingsStore.isLevelSupported(level)) handlers[level] = LEVEL_HANDLERS[level];\n        }\n\n        // Always support 'default'\n        if (!handlers[\"default\"]) handlers[\"default\"] = LEVEL_HANDLERS[\"default\"];\n\n        return handlers;\n    }\n}\n\nSettingController.settingsStore = SettingsStore;\n// For debugging purposes\nwindow.mxSettingsStore = SettingsStore;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2022 The Matrix.org Foundation C.I.C.\nCopyright 2019 New Vector Ltd.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { SettingLevel } from \"../SettingLevel\";\nimport { type CallbackFn, type WatchManager } from \"../WatchManager\";\nimport AbstractLocalStorageSettingsHandler from \"./AbstractLocalStorageSettingsHandler\";\n\n/**\n * Gets and sets settings at the \"device\" level for the current device.\n * This handler does not make use of the roomId parameter. This handler\n * will special-case features to support legacy settings.\n */\nexport default class DeviceSettingsHandler extends AbstractLocalStorageSettingsHandler {\n    /**\n     * Creates a new device settings handler\n     * @param {string[]} featureNames The names of known features.\n     * @param {WatchManager} watchers The watch manager to notify updates to\n     */\n    public constructor(\n        private featureNames: string[],\n        public readonly watchers: WatchManager,\n    ) {\n        super();\n    }\n\n    public getValue(settingName: string, roomId: string): any {\n        if (this.featureNames.includes(settingName)) {\n            return this.readFeature(settingName);\n        }\n\n        // Special case notifications\n        if (settingName === \"notificationsEnabled\") {\n            return this.getBoolean(\"notifications_enabled\");\n        } else if (settingName === \"notificationBodyEnabled\") {\n            return this.getBoolean(\"notifications_body_enabled\");\n        } else if (settingName === \"audioNotificationsEnabled\") {\n            return this.getBoolean(\"audio_notifications_enabled\");\n        }\n\n        const settings = this.getSettings() || {};\n        return settings[settingName];\n    }\n\n    public setValue(settingName: string, roomId: string, newValue: any): Promise<void> {\n        if (this.featureNames.includes(settingName)) {\n            this.writeFeature(settingName, newValue);\n            return Promise.resolve();\n        }\n\n        // Special case notifications\n        if (settingName === \"notificationsEnabled\") {\n            this.setBoolean(\"notifications_enabled\", newValue);\n            this.watchers.notifyUpdate(settingName, null, SettingLevel.DEVICE, newValue);\n            return Promise.resolve();\n        } else if (settingName === \"notificationBodyEnabled\") {\n            this.setBoolean(\"notifications_body_enabled\", newValue);\n            this.watchers.notifyUpdate(settingName, null, SettingLevel.DEVICE, newValue);\n            return Promise.resolve();\n        } else if (settingName === \"audioNotificationsEnabled\") {\n            this.setBoolean(\"audio_notifications_enabled\", newValue);\n            this.watchers.notifyUpdate(settingName, null, SettingLevel.DEVICE, newValue);\n            return Promise.resolve();\n        }\n\n        // Special case for old useIRCLayout setting\n        if (settingName === \"layout\") {\n            const settings = this.getSettings() || {};\n\n            delete settings[\"useIRCLayout\"];\n            settings[\"layout\"] = newValue;\n            this.setObject(\"mx_local_settings\", settings);\n\n            this.watchers.notifyUpdate(settingName, null, SettingLevel.DEVICE, newValue);\n            return Promise.resolve();\n        }\n\n        const settings = this.getSettings() || {};\n        settings[settingName] = newValue;\n        this.setObject(\"mx_local_settings\", settings);\n        this.watchers.notifyUpdate(settingName, null, SettingLevel.DEVICE, newValue);\n\n        return Promise.resolve();\n    }\n\n    public canSetValue(settingName: string, roomId: string): boolean {\n        return true; // It's their device, so they should be able to\n    }\n\n    public watchSetting(settingName: string, roomId: string, cb: CallbackFn): void {\n        this.watchers.watchSetting(settingName, roomId, cb);\n    }\n\n    public unwatchSetting(cb: CallbackFn): void {\n        this.watchers.unwatchSetting(cb);\n    }\n\n    private getSettings(): any {\n        // TODO: [TS] Type return\n        return this.getObject(\"mx_local_settings\");\n    }\n\n    // Note: features intentionally don't use the same key as settings to avoid conflicts\n    // and to be backwards compatible.\n\n    // public for access to migrations - not exposed from the SettingsHandler interface\n    public readFeature(featureName: string): boolean | null {\n        // Previously, we disabled all features for guests, but since different\n        // installations can have site-specific config files which might set up\n        // different behaviour that is relevant to guests, we removed that\n        // special behaviour. See\n        // https://github.com/vector-im/element-web/issues/24513 for the\n        // discussion.\n\n        // XXX: This turns they key names into `mx_labs_feature_feature_x` (double feature).\n        // This is because all feature names start with `feature_` as a matter of policy.\n        // Oh well.\n        return this.getBoolean(\"mx_labs_feature_\" + featureName);\n    }\n\n    private writeFeature(featureName: string, enabled: boolean | null): void {\n        this.setBoolean(\"mx_labs_feature_\" + featureName, enabled);\n        this.watchers.notifyUpdate(featureName, null, SettingLevel.DEVICE, enabled);\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 - 2022 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { safeSet } from \"matrix-js-sdk/src/utils\";\n\nimport { SettingLevel } from \"../SettingLevel\";\nimport { type WatchManager } from \"../WatchManager\";\nimport AbstractLocalStorageSettingsHandler from \"./AbstractLocalStorageSettingsHandler\";\n\n/**\n * Gets and sets settings at the \"room-device\" level for the current device in a particular\n * room.\n */\nexport default class RoomDeviceSettingsHandler extends AbstractLocalStorageSettingsHandler {\n    public constructor(public readonly watchers: WatchManager) {\n        super();\n    }\n\n    public getValue(settingName: string, roomId: string): any {\n        // Special case blacklist setting to use legacy values\n        if (settingName === \"blacklistUnverifiedDevices\") {\n            const value = this.read(\"mx_local_settings\");\n            if (value?.[\"blacklistUnverifiedDevicesPerRoom\"]) {\n                return value[\"blacklistUnverifiedDevicesPerRoom\"][roomId];\n            }\n        }\n\n        const value = this.read(this.getKey(settingName, roomId));\n        if (value) return value.value;\n        return null;\n    }\n\n    public setValue(settingName: string, roomId: string, newValue: any): Promise<void> {\n        // Special case blacklist setting for legacy structure\n        if (settingName === \"blacklistUnverifiedDevices\") {\n            let value = this.read(\"mx_local_settings\");\n            if (!value) value = {};\n            if (!value[\"blacklistUnverifiedDevicesPerRoom\"]) value[\"blacklistUnverifiedDevicesPerRoom\"] = {};\n            safeSet(value[\"blacklistUnverifiedDevicesPerRoom\"], roomId, newValue);\n            this.setObject(\"mx_local_settings\", value);\n            this.watchers.notifyUpdate(settingName, roomId, SettingLevel.ROOM_DEVICE, newValue);\n            return Promise.resolve();\n        }\n\n        if (newValue === null) {\n            this.removeItem(this.getKey(settingName, roomId));\n        } else {\n            this.setObject(this.getKey(settingName, roomId), { value: newValue });\n        }\n\n        this.watchers.notifyUpdate(settingName, roomId, SettingLevel.ROOM_DEVICE, newValue);\n        return Promise.resolve();\n    }\n\n    public canSetValue(settingName: string, roomId: string): boolean {\n        return true; // It's their device, so they should be able to\n    }\n\n    private read(key: string): any {\n        return this.getObject(key);\n    }\n\n    private getKey(settingName: string, roomId: string): string {\n        return \"mx_setting_\" + settingName + \"_\" + roomId;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// see settings.md for documentation on conventions\nexport const enum UIFeature {\n    AdvancedEncryption = \"UIFeature.advancedEncryption\",\n    URLPreviews = \"UIFeature.urlPreviews\",\n    Widgets = \"UIFeature.widgets\",\n    LocationSharing = \"UIFeature.locationSharing\",\n    Voip = \"UIFeature.voip\",\n    Feedback = \"UIFeature.feedback\",\n    Registration = \"UIFeature.registration\",\n    PasswordReset = \"UIFeature.passwordReset\",\n    Deactivate = \"UIFeature.deactivate\",\n    ShareQRCode = \"UIFeature.shareQrCode\",\n    ShareSocial = \"UIFeature.shareSocial\",\n    IdentityServer = \"UIFeature.identityServer\",\n    ThirdPartyID = \"UIFeature.thirdPartyId\",\n    AdvancedSettings = \"UIFeature.advancedSettings\",\n    RoomHistorySettings = \"UIFeature.roomHistorySettings\",\n    TimelineEnableRelativeDates = \"UIFeature.timelineEnableRelativeDates\",\n    AllowCreatingPublicRooms = \"UIFeature.allowCreatingPublicRooms\",\n    AllowCreatingPublicSpaces = \"UIFeature.allowCreatingPublicSpaces\",\n}\n\nexport { UIComponent } from \"@element-hq/element-web-module-api\";\n","/*\nCopyright 2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { AllDevicesIsolationMode, OnlySignedDevicesIsolationMode } from \"matrix-js-sdk/src/crypto-api\";\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\nimport SettingController from \"./SettingController\";\nimport { MatrixClientPeg } from \"../../MatrixClientPeg\";\nimport { type SettingLevel } from \"../SettingLevel\";\n\n/**\n * A controller for the \"exclude_insecure_devices\" setting, which will\n * update the crypto stack's device isolation mode on change.\n */\nexport default class DeviceIsolationModeController extends SettingController {\n    public onChange(level: SettingLevel, roomId: string, newValue: any): void {\n        setDeviceIsolationMode(MatrixClientPeg.safeGet(), newValue);\n    }\n}\n\n/**\n * Set the crypto stack's device isolation mode based on the current value of the\n * \"exclude_insecure_devices\" setting.\n *\n * @param client - MatrixClient to update to the new setting.\n * @param settingValue - value of the \"exclude_insecure_devices\" setting.\n */\nexport function setDeviceIsolationMode(client: MatrixClient, settingValue: boolean): void {\n    client.getCrypto()?.setDeviceIsolationMode(\n        settingValue\n            ? new OnlySignedDevicesIsolationMode()\n            : // TODO: As part of https://github.com/element-hq/element-meta/issues/2492, we will change\n              //   `errorOnVerifiedUserProblems` to `true`, but we need to have better UI in place before we can do so.\n              new AllDevicesIsolationMode(false),\n    );\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2023 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\nimport SettingController from \"./SettingController\";\n\n// Dev note: This whole class exists in the event someone logs out and back in - we want\n// to make sure the right MatrixClient is listening for changes.\n\n/**\n * Represents the base class for settings controllers which need access to a MatrixClient.\n * This class performs no logic and should be overridden.\n */\nexport default abstract class MatrixClientBackedController extends SettingController {\n    private static _matrixClient?: MatrixClient;\n    private static instances: MatrixClientBackedController[] = [];\n\n    public static set matrixClient(client: MatrixClient) {\n        const oldClient = MatrixClientBackedController._matrixClient;\n        MatrixClientBackedController._matrixClient = client;\n\n        for (const instance of MatrixClientBackedController.instances) {\n            instance.initMatrixClient?.(client, oldClient);\n        }\n    }\n\n    protected constructor() {\n        super();\n\n        MatrixClientBackedController.instances.push(this);\n    }\n\n    public get client(): MatrixClient | undefined {\n        return MatrixClientBackedController._matrixClient;\n    }\n\n    protected initMatrixClient?(newClient: MatrixClient, oldClient?: MatrixClient): void;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { PushRuleActionName } from \"matrix-js-sdk/src/matrix\";\n\nimport SettingController from \"./SettingController\";\nimport { MatrixClientPeg } from \"../../MatrixClientPeg\";\nimport { type SettingLevel } from \"../SettingLevel\";\n\n// .m.rule.master being enabled means all events match that push rule\n// default action on this rule is dont_notify, but it could be something else\nexport function isPushNotifyDisabled(): boolean {\n    // Return the value of the master push rule as a default\n    const masterRule = MatrixClientPeg.get()?.pushProcessor.getPushRuleById(\".m.rule.master\");\n\n    if (!masterRule) {\n        logger.warn(\"No master push rule! Notifications are disabled for this user.\");\n        return true;\n    }\n\n    // If the rule is enabled then check it does not notify on everything\n    return masterRule.enabled && !masterRule.actions.includes(PushRuleActionName.Notify);\n}\n\nexport class NotificationsEnabledController extends SettingController {\n    public getValueOverride(\n        level: SettingLevel,\n        roomId: string,\n        calculatedValue: any,\n        calculatedAtLevel: SettingLevel | null,\n    ): any {\n        if (!this.sdkContext.notifier.isPossible()) return false;\n\n        if (calculatedValue === null || calculatedAtLevel === \"default\") {\n            return !isPushNotifyDisabled();\n        }\n\n        return calculatedValue;\n    }\n\n    public onChange(level: SettingLevel, roomId: string, newValue: any): void {\n        if (this.sdkContext.notifier.supportsDesktopNotifications()) {\n            this.sdkContext.notifier.setEnabled(newValue);\n        }\n    }\n}\n\nexport class NotificationBodyEnabledController extends SettingController {\n    public getValueOverride(level: SettingLevel, roomId: string, calculatedValue: any): any {\n        if (!this.sdkContext.notifier.isPossible()) return false;\n\n        if (calculatedValue === null) {\n            return !isPushNotifyDisabled();\n        }\n\n        return calculatedValue;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport SettingController from \"./SettingController\";\nimport PlatformPeg from \"../../PlatformPeg\";\nimport { type SettingLevel } from \"../SettingLevel\";\n\nexport default class ReloadOnChangeController extends SettingController {\n    public onChange(level: SettingLevel, roomId: string, newValue: any): void {\n        PlatformPeg.get()?.reload();\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type SettingLevel } from \"../SettingLevel\";\nimport type SettingsStore from \"../SettingsStore\";\nimport { type SDKContextClass } from \"../../contexts/SDKContextClass.ts\";\n\n/**\n * Represents a controller for individual settings to alter the reading behaviour\n * based upon environmental conditions, or to react to changes and therefore update\n * the working environment.\n *\n * This is not intended to replace the functionality of a SettingsHandler, it is only\n * intended to handle environmental factors for specific settings.\n */\nexport default abstract class SettingController {\n    public static sdkContext: SDKContextClass;\n    public static settingsStore: typeof SettingsStore;\n\n    /**\n     * Gets the overridden value for the setting, if any. This must return null if the\n     * value is not to be overridden, otherwise it must return the new value.\n     * @param {string} level The level at which the value was requested at.\n     * @param {String} roomId The room ID, may be null.\n     * @param {*} calculatedValue The value that the handlers think the setting should be,\n     * may be null.\n     * @param {SettingLevel} calculatedAtLevel The level for which the calculated value was\n     * calculated at. May be null.\n     * @returns {*} The value that should be used, or null if no override is applicable.\n     */\n    public getValueOverride(\n        level: SettingLevel,\n        roomId: string | null,\n        calculatedValue: any,\n        calculatedAtLevel: SettingLevel | null,\n    ): any {\n        return null; // no override\n    }\n\n    /**\n     * Called before the setting value has been changed, can abort the change.\n     * @param {string} level The level at which the setting has been modified.\n     * @param {String} roomId The room ID, may be null.\n     * @param {*} newValue The new value for the setting, may be null.\n     * @returns {boolean} Whether the settings change should be accepted.\n     */\n    public async beforeChange(level: SettingLevel, roomId: string | null, newValue: any): Promise<boolean> {\n        return true;\n    }\n\n    /**\n     * Called when the setting value has been changed.\n     * @param {string} level The level at which the setting has been modified.\n     * @param {String} roomId The room ID, may be null.\n     * @param {*} newValue The new value for the setting, may be null.\n     */\n    public onChange(level: SettingLevel, roomId: string | null, newValue: any): void {\n        // do nothing by default\n    }\n\n    /**\n     * Gets whether the setting has been disabled due to this controller.\n     * Can also return a string with the reason the setting is disabled.\n     */\n    public get settingDisabled(): boolean | string {\n        return false;\n    }\n\n    /**\n     * Accessor to the SettingsStore injected at runtime.\n     * Preferred to direct imports in order to avoid import cycles.\n     */\n    protected get settingsStore(): typeof SettingsStore {\n        return SettingController.settingsStore;\n    }\n\n    /**\n     * Accessor to the SDKContext injected at runtime.\n     * Preferred to direct imports in order to avoid import cycles.\n     */\n    protected get sdkContext(): SDKContextClass {\n        return SettingController.sdkContext;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// For Large the image gets drawn as big as possible.\n// constraint by: timeline width, manual height overrides, SIZE_LARGE.h\nconst SIZE_LARGE = { w: 800, h: 600 };\n// For Normal the image gets drawn to never exceed SIZE_NORMAL.w, SIZE_NORMAL.h\n// constraint by: timeline width, manual height overrides\nconst SIZE_NORMAL_LANDSCAPE = { w: 324, h: 324 }; // for w > h\nconst SIZE_NORMAL_PORTRAIT = { w: Math.ceil(324 * (9 / 16)), h: 324 }; // for h > w\n\ntype Dimensions = { w?: number; h?: number };\n\nexport enum ImageSize {\n    Normal = \"normal\",\n    Large = \"large\",\n}\n\n/**\n * @param {ImageSize} size The user's image size preference\n * @param {Dimensions} contentSize The natural dimensions of the content\n * @param {number} maxHeight Overrides the default height limit\n * @returns {Dimensions} The suggested maximum dimensions for the image\n */\nexport function suggestedSize(size: ImageSize, contentSize: Dimensions, maxHeight?: number): Required<Dimensions> {\n    const aspectRatio = contentSize.w! / contentSize.h!;\n    const portrait = aspectRatio < 1;\n\n    const maxSize = size === ImageSize.Large ? SIZE_LARGE : portrait ? SIZE_NORMAL_PORTRAIT : SIZE_NORMAL_LANDSCAPE;\n    if (!contentSize.w || !contentSize.h) {\n        return maxSize;\n    }\n\n    const constrainedSize = {\n        w: Math.min(maxSize.w, contentSize.w),\n        h: maxHeight ? Math.min(maxSize.h, contentSize.h, maxHeight) : Math.min(maxSize.h, contentSize.h),\n    };\n\n    if (constrainedSize.h * aspectRatio < constrainedSize.w) {\n        // Height dictates width\n        return { w: Math.floor(constrainedSize.h * aspectRatio), h: constrainedSize.h };\n    } else {\n        // Width dictates height\n        return { w: constrainedSize.w, h: Math.floor(constrainedSize.w / aspectRatio) };\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>\nCopyright 2021 Quirin Götz <codeworks@supercable.onl>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/* TODO: This should be later reworked into something more generic */\nexport enum Layout {\n    IRC = \"irc\",\n    Group = \"group\",\n    Bubble = \"bubble\",\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\nimport SettingsHandler from \"./SettingsHandler\";\n\n// Dev note: This whole class exists in the event someone logs out and back in - we want\n// to make sure the right MatrixClient is listening for changes.\n\n/**\n * Represents the base class for settings handlers which need access to a MatrixClient.\n * This class performs no logic and should be overridden.\n */\nexport default abstract class MatrixClientBackedSettingsHandler extends SettingsHandler {\n    private static _matrixClient: MatrixClient;\n    private static instances: MatrixClientBackedSettingsHandler[] = [];\n\n    public static set matrixClient(client: MatrixClient) {\n        const oldClient = MatrixClientBackedSettingsHandler._matrixClient;\n        MatrixClientBackedSettingsHandler._matrixClient = client;\n\n        for (const instance of MatrixClientBackedSettingsHandler.instances) {\n            instance.initMatrixClient(oldClient, client);\n        }\n    }\n\n    protected constructor() {\n        super();\n\n        MatrixClientBackedSettingsHandler.instances.push(this);\n    }\n\n    public get client(): MatrixClient {\n        return MatrixClientBackedSettingsHandler._matrixClient;\n    }\n\n    protected abstract initMatrixClient(oldClient: MatrixClient, newClient: MatrixClient): void;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2017 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type WatchManager } from \"../WatchManager\";\n\n/**\n * Represents the base class for all level handlers. This class performs no logic\n * and should be overridden.\n */\nexport default abstract class SettingsHandler {\n    public readonly watchers?: WatchManager;\n\n    /**\n     * Gets the value for a particular setting at this level for a particular room.\n     * If no room is applicable, the roomId may be null. The roomId may not be\n     * applicable to this level and may be ignored by the handler.\n     * @param {string} settingName The name of the setting.\n     * @param {String} roomId The room ID to read from, may be null.\n     * @returns {*} The setting value, or null if not found.\n     */\n    public abstract getValue(settingName: string, roomId: string | null): any;\n\n    /**\n     * Sets the value for a particular setting at this level for a particular room.\n     * If no room is applicable, the roomId may be null. The roomId may not be\n     * applicable to this level and may be ignored by the handler. Setting a value\n     * to null will cause the level to remove the value. The current user should be\n     * able to set the value prior to calling this.\n     * @param {string} settingName The name of the setting to change.\n     * @param {String} roomId The room ID to set the value in, may be null.\n     * @param {*} newValue The new value for the setting, may be null.\n     * @returns {Promise} Resolves when the setting has been saved.\n     */\n    public abstract setValue(settingName: string, roomId: string | null, newValue: any): Promise<void>;\n\n    /**\n     * Determines if the current user is able to set the value of the given setting\n     * in the given room at this level.\n     * @param {string} settingName The name of the setting to check.\n     * @param {String} roomId The room ID to check in, may be null\n     * @returns {boolean} True if the setting can be set by the user, false otherwise.\n     */\n    public abstract canSetValue(settingName: string, roomId: string | null): boolean;\n\n    /**\n     * Determines if this level is supported on this device.\n     * @returns {boolean} True if this level is supported on the current device.\n     */\n    public abstract isSupported(): boolean;\n\n    /**\n     * Resets the handler, clearing any caches or other stored data. Called on user logout.\n     */\n    public reset(): void {}\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020-2023 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport dis from \"../../dispatcher/dispatcher\";\nimport SettingsStore from \"../SettingsStore\";\nimport type IWatcher from \"./Watcher\";\nimport { toPx } from \"../../utils/units\";\nimport { Action } from \"../../dispatcher/actions\";\nimport { SettingLevel } from \"../SettingLevel\";\nimport { type UpdateSystemFontPayload } from \"../../dispatcher/payloads/UpdateSystemFontPayload\";\nimport { type ActionPayload } from \"../../dispatcher/payloads\";\n\nexport class FontWatcher implements IWatcher {\n    /**\n     * This Compound value is using `100%` of the default browser font size.\n     * It allows EW to use the browser's default font size instead of a fixed value.\n     * All the Compound font size are using `rem`, they are relative to the root font size\n     * and therefore of the browser font size.\n     */\n    private static readonly DEFAULT_SIZE = \"var(--cpd-font-size-root)\";\n    /**\n     * Default delta added to the ${@link DEFAULT_SIZE}\n     */\n    public static readonly DEFAULT_DELTA = 0;\n\n    private dispatcherRef?: string;\n\n    public async start(): Promise<void> {\n        this.updateFont();\n        this.dispatcherRef = dis.register(this.onAction);\n        /**\n         * baseFontSize is an account level setting which is loaded after the initial\n         * sync. Hence why we can't do that in the `constructor`\n         */\n        await this.migrateBaseFontSize();\n    }\n\n    /**\n     * Migrate the base font size from the V1 and V2 version to the V3 version\n     * @private\n     */\n    private async migrateBaseFontSize(): Promise<void> {\n        await this.migrateBaseFontV1toFontSizeDelta();\n        await this.migrateBaseFontV2toFontSizeDelta();\n    }\n\n    /**\n     * Migrating from the V1 version of the base font size to the new delta system.\n     * The delta system is using the default browser font size as a base\n     * Everything will become slightly larger, and getting rid of the `SIZE_DIFF`\n     * weirdness for locally persisted values\n     * @private\n     */\n    private async migrateBaseFontV1toFontSizeDelta(): Promise<void> {\n        const legacyBaseFontSize = SettingsStore.getValue(\"baseFontSize\");\n        // No baseFontV1 found, nothing to migrate\n        if (!legacyBaseFontSize) return;\n\n        console.log(\n            \"Migrating base font size -> base font size V2 -> font size delta for Compound, current value\",\n            legacyBaseFontSize,\n        );\n\n        // Compute the V1 to V2 version before migrating to fontSizeDelta\n        const baseFontSizeV2 = this.computeBaseFontSizeV1toV2(legacyBaseFontSize);\n\n        // Compute the difference between the V2 and the fontSizeDelta\n        const delta = this.computeFontSizeDeltaFromV2BaseFontSize(baseFontSizeV2);\n\n        await SettingsStore.setValue(\"fontSizeDelta\", null, SettingLevel.DEVICE, delta);\n        await SettingsStore.setValue(\"baseFontSize\", null, SettingLevel.DEVICE, 0);\n        console.log(\"Migration complete, deleting legacy `baseFontSize`\");\n    }\n\n    /**\n     * Migrating from the V2 version of the base font size to the new delta system\n     * @private\n     */\n    private async migrateBaseFontV2toFontSizeDelta(): Promise<void> {\n        const legacyBaseFontV2Size = SettingsStore.getValue(\"baseFontSizeV2\");\n        // No baseFontV2 found, nothing to migrate\n        if (!legacyBaseFontV2Size) return;\n\n        console.log(\"Migrating base font size V2 for Compound, current value\", legacyBaseFontV2Size);\n\n        // Compute the difference between the V2 and the fontSizeDelta\n        const delta = this.computeFontSizeDeltaFromV2BaseFontSize(legacyBaseFontV2Size);\n\n        await SettingsStore.setValue(\"fontSizeDelta\", null, SettingLevel.DEVICE, delta);\n        await SettingsStore.setValue(\"baseFontSizeV2\", null, SettingLevel.DEVICE, 0);\n        console.log(\"Migration complete, deleting legacy `baseFontSizeV2`\");\n    }\n\n    /**\n     * Compute the V2 font size from the V1 font size\n     * @param legacyBaseFontSize\n     * @private\n     */\n    private computeBaseFontSizeV1toV2(legacyBaseFontSize: number): number {\n        // For some odd reason, the persisted value in user storage has an offset\n        // of 5 pixels for all values stored under `baseFontSize`\n        const LEGACY_SIZE_DIFF = 5;\n\n        // Compound uses a base font size of `16px`, whereas the old Element\n        // styles based their calculations off a `15px` root font size.\n        const ROOT_FONT_SIZE_INCREASE = 1;\n\n        // Compute the font size of the V2 version before migrating to V3\n        return legacyBaseFontSize + ROOT_FONT_SIZE_INCREASE + LEGACY_SIZE_DIFF;\n    }\n\n    /**\n     * Compute the difference between the V2 font size and the default browser font size\n     * @param legacyBaseFontV2Size\n     * @private\n     */\n    private computeFontSizeDeltaFromV2BaseFontSize(legacyBaseFontV2Size: number): number {\n        const browserDefaultFontSize = FontWatcher.getRootFontSize();\n\n        // Compute the difference between the V2 font size and the default browser font size\n        return legacyBaseFontV2Size - browserDefaultFontSize;\n    }\n\n    /**\n     * Get the root font size of the document\n     * Fallback to 16px if the value is not found\n     * @returns {number}\n     */\n    public static getRootFontSize(): number {\n        return parseInt(window.getComputedStyle(document.documentElement).getPropertyValue(\"font-size\"), 10) || 16;\n    }\n\n    /**\n     * Get the browser default font size\n     * @returns {number} the default font size of the browser\n     */\n    public static getBrowserDefaultFontSize(): number {\n        return this.getRootFontSize() - SettingsStore.getValue(\"fontSizeDelta\");\n    }\n\n    public stop(): void {\n        dis.unregister(this.dispatcherRef);\n    }\n\n    private updateFont(): void {\n        this.setRootFontSize(SettingsStore.getValue(\"fontSizeDelta\"));\n        this.setSystemFont({\n            useBundledEmojiFont: SettingsStore.getValue(\"useBundledEmojiFont\"),\n            useSystemFont: SettingsStore.getValue(\"useSystemFont\"),\n            font: SettingsStore.getValue(\"systemFont\"),\n        });\n    }\n\n    private onAction = (payload: ActionPayload): void => {\n        if (payload.action === Action.MigrateBaseFontSize) {\n            this.migrateBaseFontSize();\n        } else if (payload.action === Action.UpdateFontSizeDelta) {\n            this.setRootFontSize(payload.delta);\n        } else if (payload.action === Action.UpdateSystemFont) {\n            this.setSystemFont(payload as UpdateSystemFontPayload);\n        } else if (payload.action === Action.OnLoggedOut) {\n            // Clear font overrides when logging out\n            this.setRootFontSize(FontWatcher.DEFAULT_DELTA);\n            this.setSystemFont({\n                useBundledEmojiFont: false,\n                useSystemFont: false,\n                font: \"\",\n            });\n        } else if (payload.action === Action.OnLoggedIn) {\n            // Font size can be saved on the account, so grab value when logging in\n            this.updateFont();\n        }\n    };\n\n    /**\n     * Set the root font size of the document\n     * @param delta {number} the delta to add to the default font size\n     */\n    private setRootFontSize = async (delta: number): Promise<void> => {\n        // Add the delta to the browser default font size\n        document.querySelector<HTMLElement>(\":root\")!.style.fontSize =\n            `calc(${FontWatcher.DEFAULT_SIZE} + ${toPx(delta)})`;\n    };\n\n    public static readonly FONT_FAMILY_CUSTOM_PROPERTY = \"--cpd-font-family-sans\";\n    public static readonly EMOJI_FONT_FAMILY_CUSTOM_PROPERTY = \"--emoji-font-family\";\n    public static readonly BUNDLED_EMOJI_FONT = \"Twemoji\";\n\n    private setSystemFont = ({\n        useBundledEmojiFont,\n        useSystemFont,\n        font,\n    }: Pick<UpdateSystemFontPayload, \"useBundledEmojiFont\" | \"useSystemFont\" | \"font\">): void => {\n        if (useSystemFont) {\n            let fontString = font\n                .split(\",\")\n                .map((font) => {\n                    font = font.trim();\n                    if (!font.startsWith('\"') && !font.endsWith('\"')) {\n                        font = `\"${font}\"`;\n                    }\n                    return font;\n                })\n                .join(\",\");\n\n            if (useBundledEmojiFont) {\n                fontString += \", \" + FontWatcher.BUNDLED_EMOJI_FONT;\n            }\n\n            /**\n             * Overrides the default font family from Compound\n             * Make sure that fonts with spaces in their names get interpreted properly\n             */\n            document.body.style.setProperty(FontWatcher.FONT_FAMILY_CUSTOM_PROPERTY, fontString);\n        } else {\n            document.body.style.removeProperty(FontWatcher.FONT_FAMILY_CUSTOM_PROPERTY);\n\n            if (useBundledEmojiFont) {\n                document.body.style.setProperty(\n                    FontWatcher.EMOJI_FONT_FAMILY_CUSTOM_PROPERTY,\n                    FontWatcher.BUNDLED_EMOJI_FONT,\n                );\n            } else {\n                document.body.style.removeProperty(FontWatcher.EMOJI_FONT_FAMILY_CUSTOM_PROPERTY);\n            }\n        }\n    };\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\nCopyright 2019 Michael Telatynski <7t3chguy@gmail.com>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { TypedEventEmitter } from \"matrix-js-sdk/src/matrix\";\n\nimport SettingsStore from \"../SettingsStore\";\nimport dis from \"../../dispatcher/dispatcher\";\nimport { Action } from \"../../dispatcher/actions\";\nimport { findHighContrastTheme, getCustomTheme } from \"../../theme\";\nimport { type ActionPayload } from \"../../dispatcher/payloads\";\nimport { SettingLevel } from \"../SettingLevel\";\n\nexport enum ThemeWatcherEvent {\n    Change = \"change\",\n}\n\ninterface ThemeWatcherEventHandlerMap {\n    [ThemeWatcherEvent.Change]: (theme: string) => void;\n}\n\nexport default class ThemeWatcher extends TypedEventEmitter<ThemeWatcherEvent, ThemeWatcherEventHandlerMap> {\n    private themeWatchRef?: string;\n    private systemThemeWatchRef?: string;\n    private dispatcherRef?: string;\n\n    private preferDark: MediaQueryList;\n    private preferLight: MediaQueryList;\n    private preferHighContrast: MediaQueryList;\n\n    private currentTheme: string;\n\n    public constructor() {\n        super();\n        // we have both here as each may either match or not match, so by having both\n        // we can get the tristate of dark/light/unsupported\n        this.preferDark = (<any>global).matchMedia(\"(prefers-color-scheme: dark)\");\n        this.preferLight = (<any>global).matchMedia(\"(prefers-color-scheme: light)\");\n        this.preferHighContrast = (<any>global).matchMedia(\"(prefers-contrast: more)\");\n\n        this.currentTheme = this.getEffectiveTheme();\n    }\n\n    public start(): void {\n        this.themeWatchRef = SettingsStore.watchSetting(\"theme\", null, this.onChange);\n        this.systemThemeWatchRef = SettingsStore.watchSetting(\"use_system_theme\", null, this.onChange);\n        this.preferDark.addEventListener(\"change\", this.onChange);\n        this.preferLight.addEventListener(\"change\", this.onChange);\n        this.preferHighContrast.addEventListener(\"change\", this.onChange);\n        this.dispatcherRef = dis.register(this.onAction);\n    }\n\n    public stop(): void {\n        this.preferDark.removeEventListener(\"change\", this.onChange);\n        this.preferLight.removeEventListener(\"change\", this.onChange);\n        this.preferHighContrast.removeEventListener(\"change\", this.onChange);\n        SettingsStore.unwatchSetting(this.systemThemeWatchRef);\n        SettingsStore.unwatchSetting(this.themeWatchRef);\n        dis.unregister(this.dispatcherRef);\n    }\n\n    private onChange = (): void => {\n        this.recheck();\n    };\n\n    private onAction = (payload: ActionPayload): void => {\n        if (payload.action === Action.RecheckTheme) {\n            // XXX forceTheme\n            this.recheck(payload.forceTheme);\n        }\n    };\n\n    // XXX: forceTheme param added here as local echo appears to be unreliable\n    // https://github.com/vector-im/element-web/issues/11443\n    public recheck(forceTheme?: string): void {\n        const oldTheme = this.currentTheme;\n        this.currentTheme = forceTheme === undefined ? this.getEffectiveTheme() : forceTheme;\n        if (oldTheme !== this.currentTheme) this.emit(ThemeWatcherEvent.Change, this.currentTheme);\n    }\n\n    public getEffectiveTheme(): string {\n        // Dev note: Much of this logic is replicated in the AppearanceUserSettingsTab\n\n        // If the user has specifically enabled the system matching option (excluding default),\n        // then use that over anything else. We pick the lowest possible level for the setting\n        // to ensure the ordering otherwise works.\n        const systemThemeExplicit = SettingsStore.getValueAt(\n            SettingLevel.DEVICE,\n            \"use_system_theme\",\n            null,\n            false,\n            true,\n        );\n        if (systemThemeExplicit) {\n            logger.log(\"returning explicit system theme\");\n            const theme = this.themeBasedOnSystem();\n            if (theme) {\n                return theme;\n            }\n        }\n\n        // If the user has specifically enabled the theme (without the system matching option being\n        // enabled specifically and excluding the default), use that theme. We pick the lowest possible\n        // level for the setting to ensure the ordering otherwise works.\n        const themeExplicit = SettingsStore.getValueAt(SettingLevel.DEVICE, \"theme\", null, false, true);\n        if (themeExplicit) {\n            logger.log(\"returning explicit theme: \" + themeExplicit);\n            return themeExplicit;\n        }\n\n        // If the user hasn't really made a preference in either direction, assume the defaults of the\n        // settings and use those.\n        if (SettingsStore.getValue(\"use_system_theme\")) {\n            const theme = this.themeBasedOnSystem();\n            if (theme) {\n                return theme;\n            }\n        }\n        return SettingsStore.getValue(\"theme\");\n    }\n\n    /**\n     * Returns true if user is on a dark theme, if false implies user is on a light theme\n     */\n    public isUserOnDarkTheme(): boolean {\n        const theme = this.currentTheme;\n        if (theme.startsWith(\"custom-\")) {\n            return !!getCustomTheme(theme.substring(\"custom-\".length)).is_dark;\n        }\n        return theme === \"dark\" || theme === \"dark-hc\";\n    }\n\n    private themeBasedOnSystem(): string | undefined {\n        let newTheme: string | undefined;\n        if (this.preferDark.matches) {\n            newTheme = \"dark\";\n        } else if (this.preferLight.matches) {\n            newTheme = \"light\";\n        }\n        if (newTheme && this.preferHighContrast.matches) {\n            const hcTheme = findHighContrastTheme(newTheme);\n            if (hcTheme) {\n                newTheme = hcTheme;\n            }\n        }\n        return newTheme;\n    }\n\n    public isSystemThemeSupported(): boolean {\n        return this.preferDark.matches || this.preferLight.matches;\n    }\n}\n","/*\nCopyright 2018-2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport EventEmitter from \"events\";\nimport { type MatrixEvent, RoomStateEvent, type RoomState } from \"matrix-js-sdk/src/matrix\";\n\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\nimport WidgetUtils from \"../utils/WidgetUtils\";\nimport { WidgetMessagingStore } from \"./widgets/WidgetMessagingStore\";\n\nexport enum ActiveWidgetStoreEvent {\n    // Indicates a change in the currently persistent widget\n    Persistence = \"persistence\",\n    // Indicate changes in the currently docked widgets\n    Dock = \"dock\",\n    Undock = \"undock\",\n}\n\n/**\n * Stores information about the widgets active in the app right now:\n *  * What widget is set to remain always-on-screen, if any\n *    Only one widget may be 'always on screen' at any one time.\n *  * Reference counts to keep track of whether a widget is kept docked or alive\n *    by any components\n */\nexport default class ActiveWidgetStore extends EventEmitter {\n    private static internalInstance: ActiveWidgetStore;\n    private persistentWidgetId: string | null = null;\n    private persistentRoomId: string | null = null;\n    private dockedWidgetsByUid = new Map<string, number>();\n\n    public static get instance(): ActiveWidgetStore {\n        if (!ActiveWidgetStore.internalInstance) {\n            ActiveWidgetStore.internalInstance = new ActiveWidgetStore();\n        }\n        return ActiveWidgetStore.internalInstance;\n    }\n\n    public start(): void {\n        MatrixClientPeg.safeGet().on(RoomStateEvent.Events, this.onRoomStateEvents);\n    }\n\n    public stop(): void {\n        MatrixClientPeg.get()?.removeListener(RoomStateEvent.Events, this.onRoomStateEvents);\n    }\n\n    private onRoomStateEvents = (ev: MatrixEvent, { roomId }: RoomState): void => {\n        // XXX: This listens for state events in order to remove the active widget.\n        // Everything else relies on views listening for events and calling setters\n        // on this class which is terrible. This store should just listen for events\n        // and keep itself up to date.\n        // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)\n        if (ev.getType() === \"im.vector.modular.widgets\") {\n            this.destroyPersistentWidget(ev.getStateKey()!, roomId);\n        }\n    };\n\n    public destroyPersistentWidget(widgetId: string, roomId: string | null): void {\n        if (!this.getWidgetPersistence(widgetId, roomId)) return;\n        // We first need to set the widget persistence to false\n        this.setWidgetPersistence(widgetId, roomId, false);\n        // Then we can stop the messaging. Stopping the messaging emits - we might move the widget out of sight.\n        // If we would do this before setting the persistence to false, it would stay in the DOM (hidden) because\n        // its still persistent. We need to avoid this.\n        WidgetMessagingStore.instance.stopMessagingByUid(WidgetUtils.calcWidgetUid(widgetId, roomId ?? undefined));\n    }\n\n    public setWidgetPersistence(widgetId: string, roomId: string | null, val: boolean): void {\n        const isPersisted = this.getWidgetPersistence(widgetId, roomId);\n\n        if (isPersisted && !val) {\n            this.persistentWidgetId = null;\n            this.persistentRoomId = null;\n        } else if (!isPersisted && val) {\n            this.persistentWidgetId = widgetId;\n            this.persistentRoomId = roomId;\n        }\n        this.emit(ActiveWidgetStoreEvent.Persistence);\n    }\n\n    public getWidgetPersistence(widgetId: string, roomId: string | null): boolean {\n        return this.persistentWidgetId === widgetId && this.persistentRoomId === roomId;\n    }\n\n    public getPersistentWidgetId(): string | null {\n        return this.persistentWidgetId;\n    }\n\n    public getPersistentRoomId(): string | null {\n        return this.persistentRoomId;\n    }\n\n    // Registers the given widget as being docked somewhere in the UI (not a PiP),\n    // to allow its lifecycle to be tracked.\n    public dockWidget(widgetId: string, roomId: string | null): void {\n        const uid = WidgetUtils.calcWidgetUid(widgetId, roomId ?? undefined);\n        const refs = this.dockedWidgetsByUid.get(uid) ?? 0;\n        this.dockedWidgetsByUid.set(uid, refs + 1);\n        if (refs === 0) this.emit(ActiveWidgetStoreEvent.Dock);\n    }\n\n    public undockWidget(widgetId: string, roomId: string | null): void {\n        const uid = WidgetUtils.calcWidgetUid(widgetId, roomId ?? undefined);\n        const refs = this.dockedWidgetsByUid.get(uid);\n        if (refs) this.dockedWidgetsByUid.set(uid, refs - 1);\n        if (refs === 1) this.emit(ActiveWidgetStoreEvent.Undock);\n    }\n\n    // Determines whether the given widget is docked anywhere in the UI (not a PiP)\n    public isDocked(widgetId: string, roomId: string | null): boolean {\n        const uid = WidgetUtils.calcWidgetUid(widgetId, roomId ?? undefined);\n        const refs = this.dockedWidgetsByUid.get(uid) ?? 0;\n        return refs > 0;\n    }\n\n    // Determines whether the given widget is being kept alive in the UI, including PiPs\n    public isLive(widgetId: string, roomId: string | null): boolean {\n        return this.isDocked(widgetId, roomId) || this.getWidgetPersistence(widgetId, roomId);\n    }\n}\n\nwindow.mxActiveWidgetStore = ActiveWidgetStore.instance;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { EventEmitter } from \"events\";\nimport AwaitLock from \"await-lock\";\n\nimport { type ActionPayload } from \"../dispatcher/payloads\";\nimport { type MatrixDispatcher } from \"../dispatcher/dispatcher\";\n\n/**\n * The event/channel to listen for in an AsyncStore.\n */\nexport const UPDATE_EVENT = \"update\";\n\n/**\n * Represents a minimal store which works similar to Flux stores. Instead\n * of everything needing to happen in a dispatch cycle, everything can\n * happen async to that cycle.\n *\n * The store operates by using Object.assign() to mutate state - it sends the\n * state objects (current and new) through the function onto a new empty\n * object. Because of this, it is recommended to break out your state to be as\n * safe as possible. The state mutations are also locked, preventing concurrent\n * writes.\n *\n * All updates to the store happen on the UPDATE_EVENT event channel with the\n * one argument being the instance of the store.\n *\n * To update the state, use updateState() and preferably await the result to\n * help prevent lock conflicts.\n */\nexport abstract class AsyncStore<T extends object> extends EventEmitter {\n    private storeState: Readonly<T>;\n    private lock = new AwaitLock();\n    private readonly dispatcherRef: string;\n\n    /**\n     * Creates a new AsyncStore using the given dispatcher.\n     * @param {Dispatcher<ActionPayload>} dispatcher The dispatcher to rely upon.\n     * @param {T} initialState The initial state for the store.\n     */\n    protected constructor(\n        protected dispatcher: MatrixDispatcher,\n        initialState: T = <T>{},\n    ) {\n        super();\n\n        this.dispatcherRef = dispatcher.register(this.onDispatch.bind(this));\n        this.storeState = initialState;\n    }\n\n    /**\n     * The current state of the store. Cannot be mutated.\n     */\n    protected get state(): T {\n        return this.storeState;\n    }\n\n    /**\n     * Stops the store's listening functions, such as the listener to the dispatcher.\n     */\n    protected stop(): void {\n        this.dispatcher.unregister(this.dispatcherRef);\n    }\n\n    /**\n     * Updates the state of the store.\n     * @param {T|*} newState The state to update in the store using Object.assign()\n     */\n    protected async updateState(newState: T | object): Promise<void> {\n        await this.lock.acquireAsync();\n        try {\n            this.storeState = Object.freeze(Object.assign(<T>{}, this.storeState, newState));\n            this.emit(UPDATE_EVENT, this);\n        } finally {\n            this.lock.release();\n        }\n    }\n\n    /**\n     * Resets the store's to the provided state or an empty object.\n     * @param {T|*} newState The new state of the store.\n     * @param {boolean} quiet If true, the function will not raise an UPDATE_EVENT.\n     */\n    protected async reset(newState: T | object | null = null, quiet = false): Promise<void> {\n        await this.lock.acquireAsync();\n        try {\n            this.storeState = Object.freeze(<T>(newState || {}));\n            if (!quiet) this.emit(UPDATE_EVENT, this);\n        } finally {\n            this.lock.release();\n        }\n    }\n\n    /**\n     * Called when the dispatcher broadcasts a dispatch event.\n     * @param {ActionPayload} payload The event being dispatched.\n     */\n    protected abstract onDispatch(payload: ActionPayload): void;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\nimport { AsyncStore } from \"./AsyncStore\";\nimport { type ActionPayload } from \"../dispatcher/payloads\";\nimport { ReadyWatchingStore } from \"./ReadyWatchingStore\";\nimport { type MatrixDispatcher } from \"../dispatcher/dispatcher\";\n\nexport abstract class AsyncStoreWithClient<T extends object> extends AsyncStore<T> {\n    protected readyStore: ReadyWatchingStore;\n\n    protected constructor(dispatcher: MatrixDispatcher, initialState: T = <T>{}) {\n        super(dispatcher, initialState);\n\n        // Create an anonymous class to avoid code duplication\n        const asyncStore = this; // eslint-disable-line @typescript-eslint/no-this-alias\n        this.readyStore = new (class extends ReadyWatchingStore {\n            public get mxClient(): MatrixClient | null {\n                return this.matrixClient ?? null;\n            }\n\n            protected async onReady(): Promise<any> {\n                return asyncStore.onReady();\n            }\n\n            protected async onNotReady(): Promise<any> {\n                return asyncStore.onNotReady();\n            }\n        })(dispatcher);\n    }\n\n    public async start(): Promise<void> {\n        await this.readyStore.start();\n    }\n\n    public get matrixClient(): MatrixClient | null {\n        return this.readyStore.mxClient;\n    }\n\n    protected async onReady(): Promise<void> {\n        // Default implementation is to do nothing.\n    }\n\n    protected async onNotReady(): Promise<void> {\n        // Default implementation is to do nothing.\n    }\n\n    protected abstract onAction(payload: ActionPayload): Promise<void>;\n\n    protected async onDispatch(payload: ActionPayload): Promise<void> {\n        await this.onAction(payload);\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020, 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type Room, ClientEvent } from \"matrix-js-sdk/src/matrix\";\nimport { KnownMembership } from \"matrix-js-sdk/src/types\";\n\nimport SettingsStore from \"../settings/SettingsStore\";\nimport { AsyncStoreWithClient } from \"./AsyncStoreWithClient\";\nimport defaultDispatcher from \"../dispatcher/dispatcher\";\nimport { arrayHasDiff, filterBoolean } from \"../utils/arrays\";\nimport { SettingLevel } from \"../settings/SettingLevel\";\nimport { Action } from \"../dispatcher/actions\";\nimport { type SettingUpdatedPayload } from \"../dispatcher/payloads/SettingUpdatedPayload\";\nimport { type ViewRoomPayload } from \"../dispatcher/payloads/ViewRoomPayload\";\nimport { type JoinRoomPayload } from \"../dispatcher/payloads/JoinRoomPayload\";\n\nconst MAX_ROOMS = 20; // arbitrary\nconst AUTOJOIN_WAIT_THRESHOLD_MS = 90000; // 90s, the time we wait for an autojoined room to show up\n\ninterface IState {\n    rooms?: Room[];\n}\n\nexport class BreadcrumbsStore extends AsyncStoreWithClient<IState> {\n    private static readonly internalInstance = (() => {\n        const instance = new BreadcrumbsStore();\n        instance.start();\n        return instance;\n    })();\n\n    private waitingRooms: { roomId: string; addedTs: number }[] = [];\n\n    private constructor() {\n        super(defaultDispatcher);\n\n        SettingsStore.monitorSetting(\"breadcrumb_rooms\", null);\n    }\n\n    public static get instance(): BreadcrumbsStore {\n        return BreadcrumbsStore.internalInstance;\n    }\n\n    public get rooms(): Room[] {\n        return this.state.rooms || [];\n    }\n\n    protected async onAction(payload: SettingUpdatedPayload | ViewRoomPayload | JoinRoomPayload): Promise<void> {\n        if (!this.matrixClient) return;\n        if (payload.action === Action.SettingUpdated && payload.settingName === \"breadcrumb_rooms\") {\n            await this.updateRooms();\n        } else if (payload.action === Action.ViewRoom) {\n            if (payload.auto_join && payload.room_id && !this.matrixClient.getRoom(payload.room_id)) {\n                // Queue the room instead of pushing it immediately. We're probably just\n                // waiting for a room join to complete.\n                this.waitingRooms.push({ roomId: payload.room_id, addedTs: Date.now() });\n            } else {\n                // The tests might not result in a valid room object.\n                const room = this.matrixClient.getRoom(payload.room_id);\n                const membership = room?.getMyMembership();\n                if (room && membership === KnownMembership.Join) await this.appendRoom(room);\n            }\n        } else if (payload.action === Action.JoinRoom) {\n            const room = this.matrixClient.getRoom(payload.roomId);\n            if (room) await this.appendRoom(room);\n        }\n    }\n\n    protected async onReady(): Promise<void> {\n        await this.updateRooms();\n\n        if (this.matrixClient) {\n            this.matrixClient.on(ClientEvent.Room, this.onRoom);\n        }\n    }\n\n    protected async onNotReady(): Promise<void> {\n        if (this.matrixClient) {\n            this.matrixClient.removeListener(ClientEvent.Room, this.onRoom);\n        }\n    }\n\n    private onRoom = async (room: Room): Promise<void> => {\n        const waitingRoom = this.waitingRooms.find((r) => r.roomId === room.roomId);\n        if (!waitingRoom) return;\n        this.waitingRooms.splice(this.waitingRooms.indexOf(waitingRoom), 1);\n\n        if (Date.now() - waitingRoom.addedTs > AUTOJOIN_WAIT_THRESHOLD_MS) return; // Too long ago.\n        await this.appendRoom(room);\n    };\n\n    private async updateRooms(): Promise<void> {\n        let roomIds = SettingsStore.getValue(\"breadcrumb_rooms\");\n        if (!roomIds || roomIds.length === 0) roomIds = [];\n\n        const rooms = filterBoolean(roomIds.map((r) => this.matrixClient?.getRoom(r)));\n        const currentRooms = this.state.rooms || [];\n        if (!arrayHasDiff(rooms, currentRooms)) return; // no change (probably echo)\n        await this.updateState({ rooms });\n    }\n\n    private async appendRoom(room: Room): Promise<void> {\n        let updated = false;\n        const rooms = (this.state.rooms || []).slice(); // cheap clone\n        const msc3946ProcessDynamicPredecessor = SettingsStore.getValue(\"feature_dynamic_room_predecessors\");\n\n        // If the room is upgraded, use that room instead. We'll also splice out\n        // any children of the room.\n        const history = this.matrixClient?.getRoomUpgradeHistory(room.roomId, true, msc3946ProcessDynamicPredecessor);\n        if (history && history.length > 1) {\n            room = history[history.length - 1]; // Last room is most recent in history\n\n            // Take out any room that isn't the most recent room\n            for (let i = 0; i < history.length - 1; i++) {\n                const idx = rooms.findIndex((r) => r.roomId === history[i].roomId);\n                if (idx !== -1) {\n                    rooms.splice(idx, 1);\n                    updated = true;\n                }\n            }\n        }\n\n        // Remove the existing room, if it is present\n        const existingIdx = rooms.findIndex((r) => r.roomId === room.roomId);\n\n        // If we're focusing on the first room no-op\n        if (existingIdx !== 0) {\n            if (existingIdx !== -1) {\n                rooms.splice(existingIdx, 1);\n            }\n\n            // Splice the room to the start of the list\n            rooms.splice(0, 0, room);\n            updated = true;\n        }\n\n        if (rooms.length > MAX_ROOMS) {\n            // This looks weird, but it's saying to start at the MAX_ROOMS point in the\n            // list and delete everything after it.\n            rooms.splice(MAX_ROOMS, rooms.length - MAX_ROOMS);\n            updated = true;\n        }\n\n        if (updated) {\n            // Update the breadcrumbs\n            await this.updateState({ rooms });\n            const roomIds = rooms.map((r) => r.roomId);\n            if (roomIds.length > 0) {\n                await SettingsStore.setValue(\"breadcrumb_rooms\", null, SettingLevel.ACCOUNT, roomIds);\n            }\n        }\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    type MatrixEvent,\n    RoomStateEvent,\n    MatrixError,\n    type User,\n    UserEvent,\n    EventType,\n    ClientEvent,\n} from \"matrix-js-sdk/src/matrix\";\nimport { throttle } from \"lodash\";\nimport { type UserStatus } from \"@element-hq/web-shared-components\";\n\nimport { type ActionPayload } from \"../dispatcher/payloads\";\nimport { AsyncStoreWithClient } from \"./AsyncStoreWithClient\";\nimport defaultDispatcher from \"../dispatcher/dispatcher\";\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\nimport { _t } from \"../languageHandler\";\nimport { mediaFromMxc } from \"../customisations/Media\";\nimport SettingsStore from \"../settings/SettingsStore\";\nimport { validateUserStatus } from \"../utils/userStatus\";\n\ninterface IState {\n    displayName?: string;\n    avatarUrl?: string;\n    fetchedAt?: number;\n    userStatus?: UserStatus;\n}\n\nconst KEY_DISPLAY_NAME = \"mx_profile_displayname\";\nconst KEY_AVATAR_URL = \"mx_profile_avatar_url\";\n\nexport class OwnProfileStore extends AsyncStoreWithClient<IState> {\n    private static readonly internalInstance = (() => {\n        const instance = new OwnProfileStore();\n        instance.start();\n        return instance;\n    })();\n\n    private monitoredUser: User | null = null;\n\n    public constructor() {\n        // seed from localstorage because otherwise we won't get these values until a whole network\n        // round-trip after the client is ready, and we often load widgets in that time, and we'd\n        // and up passing them an incorrect display name\n        super(defaultDispatcher, {\n            displayName: window.localStorage.getItem(KEY_DISPLAY_NAME) || undefined,\n            avatarUrl: window.localStorage.getItem(KEY_AVATAR_URL) || undefined,\n        });\n    }\n\n    public static get instance(): OwnProfileStore {\n        return OwnProfileStore.internalInstance;\n    }\n\n    /**\n     * Gets the display name for the user, or null if not present.\n     */\n    public get displayName(): string | null {\n        if (!this.matrixClient) return this.state.displayName || null;\n\n        if (this.matrixClient.isGuest()) {\n            return _t(\"common|guest\");\n        } else if (this.state.displayName) {\n            return this.state.displayName;\n        } else {\n            return this.matrixClient.getUserId();\n        }\n    }\n\n    public get isProfileInfoFetched(): boolean {\n        return !!this.state.fetchedAt;\n    }\n\n    /**\n     * Gets the MXC URI of the user's avatar, or null if not present.\n     */\n    public get avatarMxc(): string | null {\n        return this.state.avatarUrl || null;\n    }\n\n    public get userStatus(): UserStatus | undefined {\n        return this.state.userStatus;\n    }\n\n    /**\n     * Gets the user's avatar as an HTTP URL of the given size. If the user's\n     * avatar is not present, this returns null.\n     * @param size The size of the avatar. If zero, a full res copy of the avatar\n     * will be returned as an HTTP URL.\n     * @returns The HTTP URL of the user's avatar\n     */\n    public getHttpAvatarUrl(size = 0): string | null {\n        if (!this.avatarMxc) return null;\n        const media = mediaFromMxc(this.avatarMxc);\n        if (!size || size <= 0) {\n            return media.srcHttp;\n        } else {\n            return media.getSquareThumbnailHttp(size);\n        }\n    }\n\n    protected async onNotReady(): Promise<void> {\n        this.onProfileUpdate.cancel();\n        if (this.monitoredUser) {\n            this.monitoredUser.removeListener(UserEvent.DisplayName, this.onProfileUpdate);\n            this.monitoredUser.removeListener(UserEvent.AvatarUrl, this.onProfileUpdate);\n        }\n        this.matrixClient?.removeListener(RoomStateEvent.Events, this.onStateEvents);\n        if (SettingsStore.getValue(\"feature_user_status\")) {\n            this.matrixClient?.removeListener(ClientEvent.UserProfileUpdate, this.onExtendedProfileUpdate);\n        }\n        await this.reset({});\n    }\n\n    protected async onReady(): Promise<void> {\n        if (!this.matrixClient) return;\n        const myUserId = this.matrixClient.getSafeUserId();\n        this.monitoredUser = this.matrixClient.getUser(myUserId);\n        if (this.monitoredUser) {\n            this.monitoredUser.on(UserEvent.DisplayName, this.onProfileUpdate);\n            this.monitoredUser.on(UserEvent.AvatarUrl, this.onProfileUpdate);\n        }\n\n        if (SettingsStore.getValue(\"feature_user_status\")) {\n            this.matrixClient.on(ClientEvent.UserProfileUpdate, this.onExtendedProfileUpdate);\n        }\n\n        // We also have to listen for membership events for ourselves as the above User events\n        // are fired only with presence, which matrix.org (and many others) has disabled.\n        this.matrixClient.on(RoomStateEvent.Events, this.onStateEvents);\n\n        await this.onProfileUpdate(); // trigger an initial update\n        await this.refreshUserStatus(); // trigger an update for the user status\n    }\n\n    protected async onAction(payload: ActionPayload): Promise<void> {\n        // we don't actually do anything here\n    }\n\n    private onProfileUpdate = throttle(\n        async (): Promise<void> => {\n            if (!this.matrixClient) return;\n            // We specifically do not use the User object we stored for profile info as it\n            // could easily be wrong (such as per-room instead of global profile).\n\n            let profileInfo: { displayname?: string; avatar_url?: string } = {\n                displayname: undefined,\n                avatar_url: undefined,\n            };\n\n            try {\n                profileInfo = await this.matrixClient.getProfileInfo(this.matrixClient.getSafeUserId());\n            } catch (error: unknown) {\n                if (!(error instanceof MatrixError) || error.errcode !== \"M_NOT_FOUND\") {\n                    /**\n                     * Raise any other error than M_NOT_FOUND.\n                     * M_NOT_FOUND could occur if there is no user profile.\n                     * {@link https://spec.matrix.org/v1.7/client-server-api/#get_matrixclientv3profileuserid}\n                     * We should then assume an empty profile, emit UPDATE_EVENT etc..\n                     */\n                    throw error;\n                }\n            }\n\n            if (profileInfo.displayname) {\n                window.localStorage.setItem(KEY_DISPLAY_NAME, profileInfo.displayname);\n            } else {\n                window.localStorage.removeItem(KEY_DISPLAY_NAME);\n            }\n\n            if (profileInfo.avatar_url) {\n                window.localStorage.setItem(KEY_AVATAR_URL, profileInfo.avatar_url);\n            } else {\n                window.localStorage.removeItem(KEY_AVATAR_URL);\n            }\n\n            await this.updateState({\n                displayName: profileInfo.displayname,\n                avatarUrl: profileInfo.avatar_url,\n                fetchedAt: Date.now(),\n            });\n        },\n        200,\n        { trailing: true, leading: true },\n    );\n\n    private onExtendedProfileUpdate = async (syncedUserId: string): Promise<void> => {\n        if (syncedUserId === this.matrixClient?.getSafeUserId()) {\n            await this.refreshUserStatus();\n        }\n    };\n\n    private refreshUserStatus = async (): Promise<void> => {\n        if (!this.matrixClient) return;\n        if (!SettingsStore.getValue(\"feature_user_status\")) return;\n\n        const rawUserStatus = await this.matrixClient.getExtendedProfileProperty(\n            this.matrixClient.getSafeUserId(),\n            \"org.matrix.msc4426.status\",\n        );\n        await this.updateState({ userStatus: validateUserStatus(rawUserStatus) });\n    };\n\n    private onStateEvents = async (ev: MatrixEvent): Promise<void> => {\n        const myUserId = MatrixClientPeg.safeGet().getUserId();\n        if (ev.getType() === EventType.RoomMember && ev.getSender() === myUserId && ev.getStateKey() === myUserId) {\n            await this.onProfileUpdate();\n        }\n    };\n}\n","/*\n * Copyright 2024 New Vector Ltd.\n * Copyright 2021, 2022 The Matrix.org Foundation C.I.C.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { type MatrixClient, SyncState } from \"matrix-js-sdk/src/matrix\";\nimport { EventEmitter } from \"events\";\n\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\nimport { type ActionPayload } from \"../dispatcher/payloads\";\nimport { type IDestroyable } from \"../utils/IDestroyable\";\nimport { Action } from \"../dispatcher/actions\";\nimport { type MatrixDispatcher } from \"../dispatcher/dispatcher\";\n\nexport abstract class ReadyWatchingStore extends EventEmitter implements IDestroyable {\n    protected matrixClient?: MatrixClient;\n    private dispatcherRef?: string;\n\n    public constructor(protected readonly dispatcher: MatrixDispatcher) {\n        super();\n    }\n\n    public async start(): Promise<void> {\n        this.dispatcherRef = this.dispatcher.register(this.onAction);\n\n        // MatrixClientPeg can be undefined in tests because of circular dependencies with other stores\n        const matrixClient = MatrixClientPeg?.get();\n        if (matrixClient) {\n            this.matrixClient = matrixClient;\n            await this.onReady();\n        }\n    }\n\n    public get mxClient(): MatrixClient | null {\n        return this.matrixClient ?? null; // for external readonly access\n    }\n\n    public useUnitTestClient(cli: MatrixClient): void {\n        this.matrixClient = cli;\n    }\n\n    public destroy(): void {\n        this.dispatcher.unregister(this.dispatcherRef);\n    }\n\n    protected async onReady(): Promise<void> {\n        // Default implementation is to do nothing.\n    }\n\n    protected async onNotReady(): Promise<void> {\n        // Default implementation is to do nothing.\n    }\n\n    protected onDispatcherAction(payload: ActionPayload): void {\n        // Default implementation is to do nothing.\n    }\n\n    private onAction = async (payload: ActionPayload): Promise<void> => {\n        this.onDispatcherAction(payload);\n\n        if (payload.action === \"MatrixActions.sync\") {\n            // Only set the client on the transition into the PREPARED state.\n            // Everything after this is unnecessary (we only need to know once we have a client)\n            // and we intentionally don't set the client before this point to avoid stores\n            // updating for every event emitted during the cached sync.\n            if (\n                payload.prevState !== SyncState.Prepared &&\n                payload.state === SyncState.Prepared &&\n                this.matrixClient !== payload.matrixClient\n            ) {\n                if (this.matrixClient) {\n                    await this.onNotReady();\n                }\n                this.matrixClient = payload.matrixClient;\n                await this.onReady();\n            }\n        } else if (payload.action === Action.ClientNotViable || payload.action === Action.OnLoggedOut) {\n            if (this.matrixClient) {\n                await this.onNotReady();\n                this.matrixClient = undefined;\n            }\n        }\n    };\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport EventEmitter from \"events\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { type JSX } from \"react\";\n\nimport type React from \"react\";\nimport { type ComponentClass } from \"../@types/common\";\n\nexport interface IToast<C extends ComponentClass> {\n    key: string;\n    // higher priority number will be shown on top of lower priority\n    priority: number;\n    title?: string;\n    icon?: JSX.Element;\n    component: C;\n    className?: string;\n    bodyClassName?: string;\n\n    /**\n     * What to do if the user clicks the close button. If this is undefined, the\n     * close button is not displayed.\n     *\n     * Note: the close button is only displayed if the toast has a title (i.e. if {@link title} is truthy).\n     */\n    onCloseButtonClicked?: () => void;\n\n    props?: Omit<React.ComponentProps<C>, \"toastKey\">; // toastKey is injected by ToastContainer\n}\n\n/**\n * Holds the active toasts\n */\nexport default class ToastStore extends EventEmitter {\n    private toasts: IToast<any>[] = [];\n\n    public static sharedInstance(): ToastStore {\n        if (!window.mxToastStore) window.mxToastStore = new ToastStore();\n        return window.mxToastStore;\n    }\n\n    public reset(): void {\n        this.toasts = [];\n    }\n\n    /**\n     * Add or replace a toast\n     * If a toast with the same toastKey already exists, the given toast will replace it\n     * Toasts are always added underneath any toasts of the same priority, so existing\n     * toasts stay at the top unless a higher priority one arrives (better to not change the\n     * toast unless necessary).\n     *\n     * @param {object} newToast The new toast\n     */\n    public addOrReplaceToast<C extends ComponentClass>(newToast: IToast<C>): void {\n        const oldIndex = this.toasts.findIndex((t) => t.key === newToast.key);\n        if (oldIndex === -1) {\n            logger.info(`Opening toast with key '${newToast.key}': title '${newToast.title}'`);\n            let newIndex = this.toasts.length;\n            while (newIndex > 0 && this.toasts[newIndex - 1].priority < newToast.priority) --newIndex;\n            this.toasts.splice(newIndex, 0, newToast);\n        } else {\n            logger.info(`Replacing existing toast with key '${newToast.key}': title now '${newToast.title}'`);\n            this.toasts[oldIndex] = newToast;\n        }\n        this.emit(\"update\");\n    }\n\n    public dismissToast(key: string): void {\n        const length = this.toasts.length;\n        this.toasts = this.toasts.filter((t) => t.key !== key);\n        if (length !== this.toasts.length) {\n            logger.info(`Removed toast with key '${key}'`);\n            this.emit(\"update\");\n        }\n    }\n\n    /**\n     * Is a toast currently present on the store.\n     * @param key The toast key to look for.\n     */\n    public hasToast(key: string): boolean {\n        return this.toasts.some((toast) => toast.key === key);\n    }\n\n    public getToasts(): IToast<any>[] {\n        return this.toasts;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport EventEmitter from \"events\";\n\nexport enum UI_EVENTS {\n    Resize = \"resize\",\n}\n\nexport default class UIStore extends EventEmitter {\n    private static _instance: UIStore | null = null;\n\n    private resizeObserver: ResizeObserver;\n\n    private uiElementDimensions = new Map<string, DOMRectReadOnly>();\n    private trackedUiElements = new Map<Element, string>();\n\n    public windowWidth: number;\n    public windowHeight: number;\n\n    public constructor() {\n        super();\n\n        // eslint-disable-next-line no-restricted-properties\n        this.windowWidth = window.innerWidth;\n        // eslint-disable-next-line no-restricted-properties\n        this.windowHeight = window.innerHeight;\n\n        this.resizeObserver = new ResizeObserver(this.resizeObserverCallback);\n        this.resizeObserver.observe(document.body);\n    }\n\n    public static get instance(): UIStore {\n        if (!UIStore._instance) {\n            UIStore._instance = new UIStore();\n        }\n        return UIStore._instance;\n    }\n\n    public static destroy(): void {\n        if (UIStore._instance) {\n            UIStore._instance.resizeObserver.disconnect();\n            UIStore._instance.removeAllListeners();\n            UIStore._instance = null;\n        }\n    }\n\n    public getElementDimensions(name: string): DOMRectReadOnly | undefined {\n        return this.uiElementDimensions.get(name);\n    }\n\n    public trackElementDimensions(name: string, element: Element): void {\n        this.trackedUiElements.set(element, name);\n        this.resizeObserver.observe(element);\n    }\n\n    public stopTrackingElementDimensions(name: string): void {\n        let trackedElement: Element | undefined;\n        this.trackedUiElements.forEach((trackedElementName, element) => {\n            if (trackedElementName === name) {\n                trackedElement = element;\n            }\n        });\n        if (trackedElement) {\n            this.resizeObserver.unobserve(trackedElement);\n            this.uiElementDimensions.delete(name);\n            this.trackedUiElements.delete(trackedElement);\n        }\n    }\n\n    public isTrackingElementDimensions(name: string): boolean {\n        return this.uiElementDimensions.has(name);\n    }\n\n    private resizeObserverCallback = (entries: ResizeObserverEntry[]): void => {\n        const windowEntry = entries.find((entry) => entry.target === document.body);\n\n        if (windowEntry) {\n            this.windowWidth = windowEntry.contentRect.width;\n            this.windowHeight = windowEntry.contentRect.height;\n        }\n\n        entries.forEach((entry) => {\n            const trackedElementName = this.trackedUiElements.get(entry.target);\n            if (trackedElementName) {\n                this.uiElementDimensions.set(trackedElementName, entry.contentRect);\n                this.emit(trackedElementName, UI_EVENTS.Resize, entry);\n            }\n        });\n\n        this.emit(UI_EVENTS.Resize, entries);\n    };\n}\n\nwindow.mxUIStore = UIStore.instance;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2018-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport EventEmitter from \"events\";\nimport { type IWidget } from \"matrix-widget-api\";\nimport { type MatrixEvent } from \"matrix-js-sdk/src/matrix\";\n\nimport { type WidgetType } from \"../widgets/WidgetType\";\n\n/**\n * Acts as a place to get & set widget state, storing local echo state and\n * proxying through state from the js-sdk.\n */\nclass WidgetEchoStore extends EventEmitter {\n    private roomWidgetEcho: {\n        [roomId: string]: {\n            [widgetId: string]: IWidget;\n        };\n    };\n\n    public constructor() {\n        super();\n\n        this.roomWidgetEcho = {\n            // Map as below. Object is the content of the widget state event,\n            // so for widgets that have been deleted locally, the object is empty.\n            // roomId: {\n            //     widgetId: IWidget\n            // }\n        };\n    }\n\n    /**\n     * Gets the widgets for a room, subtracting those that are pending deletion.\n     * Widgets that are pending addition are not included, since widgets are\n     * represented as MatrixEvents, so to do this we'd have to create fake MatrixEvents,\n     * and we don't really need the actual widget events anyway since we just want to\n     * show a spinner / prevent widgets being added twice.\n     *\n     * @param {string} roomId The ID of the room to get widgets for\n     * @param {MatrixEvent[]} currentRoomWidgets Current widgets for the room\n     * @returns {MatrixEvent[]} List of widgets in the room, minus any pending removal\n     */\n    public getEchoedRoomWidgets(roomId: string, currentRoomWidgets: MatrixEvent[]): MatrixEvent[] {\n        const echoedWidgets: MatrixEvent[] = [];\n\n        const roomEchoState = Object.assign({}, this.roomWidgetEcho[roomId]);\n\n        for (const w of currentRoomWidgets) {\n            const widgetId = w.getStateKey()!;\n            // If there's no echo, or the echo still has a widget present, show the *old* widget\n            // we don't include widgets that have changed for the same reason we don't include new ones,\n            // ie. we'd need to fake matrix events to do so and there's currently no need.\n            if (!roomEchoState[widgetId] || Object.keys(roomEchoState[widgetId]).length !== 0) {\n                echoedWidgets.push(w);\n            }\n            delete roomEchoState[widgetId];\n        }\n\n        return echoedWidgets;\n    }\n\n    public roomHasPendingWidgetsOfType(roomId: string, currentRoomWidgets: MatrixEvent[], type?: WidgetType): boolean {\n        const roomEchoState = Object.assign({}, this.roomWidgetEcho[roomId]);\n\n        // any widget IDs that are already in the room are not pending, so\n        // echoes for them don't count as pending.\n        for (const w of currentRoomWidgets) {\n            const widgetId = w.getStateKey()!;\n            delete roomEchoState[widgetId];\n        }\n\n        // if there's anything left then there are pending widgets.\n        if (type === undefined) {\n            return Object.keys(roomEchoState).length > 0;\n        } else {\n            return Object.values(roomEchoState).some((widget) => {\n                return type.matches(widget.type);\n            });\n        }\n    }\n\n    public roomHasPendingWidgets(roomId: string, currentRoomWidgets: MatrixEvent[]): boolean {\n        return this.roomHasPendingWidgetsOfType(roomId, currentRoomWidgets);\n    }\n\n    public setRoomWidgetEcho(roomId: string, widgetId: string, state: IWidget): void {\n        if (this.roomWidgetEcho[roomId] === undefined) this.roomWidgetEcho[roomId] = {};\n\n        this.roomWidgetEcho[roomId][widgetId] = state;\n        this.emit(\"update\", roomId, widgetId);\n    }\n\n    public removeRoomWidgetEcho(roomId: string, widgetId: string): void {\n        delete this.roomWidgetEcho[roomId][widgetId];\n        if (Object.keys(this.roomWidgetEcho[roomId]).length === 0) delete this.roomWidgetEcho[roomId];\n        this.emit(\"update\", roomId, widgetId);\n    }\n}\n\nlet singletonWidgetEchoStore: WidgetEchoStore | null = null;\nif (!singletonWidgetEchoStore) {\n    singletonWidgetEchoStore = new WidgetEchoStore();\n}\nexport default singletonWidgetEchoStore!;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type Room, RoomStateEvent, type MatrixEvent, ClientEvent, type EmptyObject } from \"matrix-js-sdk/src/matrix\";\nimport { type IWidget } from \"matrix-widget-api\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport { type ActionPayload } from \"../dispatcher/payloads\";\nimport { AsyncStoreWithClient } from \"./AsyncStoreWithClient\";\nimport defaultDispatcher from \"../dispatcher/dispatcher\";\nimport WidgetEchoStore from \"../stores/WidgetEchoStore\";\nimport ActiveWidgetStore from \"../stores/ActiveWidgetStore\";\nimport WidgetUtils from \"../utils/WidgetUtils\";\nimport { UPDATE_EVENT } from \"./AsyncStore\";\nimport { type IApp } from \"../utils/WidgetUtils-types\";\n\nexport type { IApp };\n\nexport function isAppWidget(widget: IWidget | IApp): widget is IApp {\n    return \"roomId\" in widget && typeof widget.roomId === \"string\";\n}\nexport function isVirtualWidget(widget: IApp): boolean {\n    return widget.eventId === undefined;\n}\n\ninterface IRoomWidgets {\n    widgets: IApp[];\n}\n\n// TODO consolidate WidgetEchoStore into this\n// TODO consolidate ActiveWidgetStore into this\nexport default class WidgetStore extends AsyncStoreWithClient<EmptyObject> {\n    private static readonly internalInstance = (() => {\n        const instance = new WidgetStore();\n        instance.start();\n        return instance;\n    })();\n\n    private widgetMap = new Map<string, IApp>(); // Key is widget Unique ID (UID)\n    private roomMap = new Map<string, IRoomWidgets>(); // Key is room ID\n\n    private constructor() {\n        super(defaultDispatcher, {});\n\n        WidgetEchoStore.on(\"update\", this.onWidgetEchoStoreUpdate);\n    }\n\n    public static get instance(): WidgetStore {\n        return WidgetStore.internalInstance;\n    }\n\n    private initRoom(roomId: string): void {\n        if (!this.roomMap.has(roomId)) {\n            this.roomMap.set(roomId, {\n                widgets: [],\n            });\n        }\n    }\n\n    protected async onReady(): Promise<any> {\n        if (!this.matrixClient) return;\n        this.matrixClient.on(ClientEvent.Room, this.onRoom);\n        this.matrixClient.on(RoomStateEvent.Events, this.onRoomStateEvents);\n        this.matrixClient.getRooms().forEach((room: Room) => {\n            this.loadRoomWidgets(room);\n        });\n        this.emit(UPDATE_EVENT, null); // emit for all rooms\n    }\n\n    protected async onNotReady(): Promise<any> {\n        if (this.matrixClient) {\n            this.matrixClient.off(ClientEvent.Room, this.onRoom);\n            this.matrixClient.off(RoomStateEvent.Events, this.onRoomStateEvents);\n        }\n        this.widgetMap = new Map();\n        this.roomMap = new Map();\n        await this.reset({});\n    }\n\n    // We don't need this, but our contract says we do.\n    protected async onAction(payload: ActionPayload): Promise<void> {\n        return;\n    }\n\n    private onWidgetEchoStoreUpdate = (roomId: string): void => {\n        this.initRoom(roomId);\n        this.loadRoomWidgets(this.matrixClient?.getRoom(roomId) ?? null);\n        this.emit(UPDATE_EVENT, roomId);\n    };\n\n    private generateApps(room: Room): IApp[] {\n        return WidgetEchoStore.getEchoedRoomWidgets(room.roomId, WidgetUtils.getRoomWidgets(room)).map((ev) => {\n            return WidgetUtils.makeAppConfig(\n                ev.getStateKey()!,\n                ev.getContent(),\n                ev.getSender()!,\n                ev.getRoomId(),\n                ev.getId(),\n            );\n        });\n    }\n\n    private loadRoomWidgets(room: Room | null): void {\n        if (!room) return;\n        const roomInfo = this.roomMap.get(room.roomId) || <IRoomWidgets>{};\n        roomInfo.widgets = [];\n\n        // first clean out old widgets from the map which originate from this room\n        // otherwise we are out of sync with the rest of the app with stale widget events during removal\n        Array.from(this.widgetMap.values()).forEach((app) => {\n            if (app.roomId !== room.roomId) return; // skip - wrong room\n            if (isVirtualWidget(app)) {\n                // virtual widget - keep it\n                roomInfo.widgets.push(app);\n            } else {\n                this.widgetMap.delete(WidgetUtils.getWidgetUid(app));\n            }\n        });\n\n        let edited = false;\n        this.generateApps(room).forEach((app) => {\n            // Sanity check for https://github.com/vector-im/element-web/issues/15705\n            const existingApp = this.widgetMap.get(WidgetUtils.getWidgetUid(app));\n            if (existingApp) {\n                logger.warn(\n                    `Possible widget ID conflict for ${app.id} - wants to store in room ${app.roomId} ` +\n                        `but is currently stored as ${existingApp.roomId} - letting the want win`,\n                );\n            }\n\n            this.widgetMap.set(WidgetUtils.getWidgetUid(app), app);\n            roomInfo.widgets.push(app);\n            edited = true;\n        });\n        if (edited && !this.roomMap.has(room.roomId)) {\n            this.roomMap.set(room.roomId, roomInfo);\n        }\n\n        // If a persistent widget is active, check to see if it's just been removed.\n        // If it has, it needs to destroyed otherwise unmounting the node won't kill it\n        const persistentWidgetId = ActiveWidgetStore.instance.getPersistentWidgetId();\n        if (\n            persistentWidgetId &&\n            ActiveWidgetStore.instance.getPersistentRoomId() === room.roomId &&\n            !roomInfo.widgets.some((w) => w.id === persistentWidgetId)\n        ) {\n            logger.log(`Persistent widget ${persistentWidgetId} removed from room ${room.roomId}: destroying.`);\n            ActiveWidgetStore.instance.destroyPersistentWidget(persistentWidgetId, room.roomId);\n        }\n\n        this.emit(room.roomId);\n    }\n\n    private onRoom = (room: Room): void => {\n        this.initRoom(room.roomId);\n        this.loadRoomWidgets(room);\n        this.emit(UPDATE_EVENT, room.roomId);\n    };\n\n    private onRoomStateEvents = (ev: MatrixEvent): void => {\n        if (ev.getType() !== \"im.vector.modular.widgets\") return; // TODO: Support m.widget too\n        const roomId = ev.getRoomId()!;\n        this.initRoom(roomId);\n        this.loadRoomWidgets(this.matrixClient?.getRoom(roomId) ?? null);\n        this.emit(UPDATE_EVENT, roomId);\n    };\n\n    public get(widgetId: string, roomId: string | undefined): IApp | undefined {\n        return this.widgetMap.get(WidgetUtils.calcWidgetUid(widgetId, roomId));\n    }\n\n    public getRoom(roomId: string, initIfNeeded = false): IRoomWidgets {\n        if (initIfNeeded) this.initRoom(roomId); // internally handles \"if needed\"\n        return this.roomMap.get(roomId)!;\n    }\n\n    public getApps(roomId: string): IApp[] {\n        const roomInfo = this.getRoom(roomId);\n        return roomInfo?.widgets || [];\n    }\n\n    public addVirtualWidget(widget: IWidget, roomId: string): IApp {\n        this.initRoom(roomId);\n        const app = WidgetUtils.makeAppConfig(widget.id, widget, widget.creatorUserId, roomId, undefined);\n        this.widgetMap.set(WidgetUtils.getWidgetUid(app), app);\n        this.roomMap.get(roomId)!.widgets.push(app);\n        this.emit(UPDATE_EVENT, roomId);\n        return app;\n    }\n\n    public removeVirtualWidget(widgetId: string, roomId: string): void {\n        this.widgetMap.delete(WidgetUtils.calcWidgetUid(widgetId, roomId));\n        const roomApps = this.roomMap.get(roomId);\n        if (roomApps) {\n            roomApps.widgets = roomApps.widgets.filter((app) => !(app.id === widgetId && app.roomId === roomId));\n        }\n        this.emit(UPDATE_EVENT, roomId);\n    }\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { Room } from \"matrix-js-sdk/src/matrix\";\n\nexport interface Sorter {\n    /**\n     * Performs an initial sort of rooms and returns a new array containing\n     * the result.\n     * @param rooms An array of rooms.\n     */\n    sort(rooms: Room[]): Room[];\n    /**\n     * The comparator used for sorting.\n     * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#comparefn\n     * @param roomA Room\n     * @param roomB Room\n     */\n    comparator(roomA: Room, roomB: Room): number;\n    /**\n     * A string that uniquely identifies this given sorter.\n     */\n    type: SortingAlgorithm;\n}\n\n/**\n * All the available sorting algorithms.\n */\nexport const enum SortingAlgorithm {\n    Unread = \"Unread\",\n    Recency = \"Recency\",\n    Alphabetic = \"Alphabetic\",\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type HierarchyRoom } from \"matrix-js-sdk/src/matrix\";\n\nimport { _t } from \"../../languageHandler\";\n\n// The consts & types are moved out here to prevent cyclical imports\n\nexport const UPDATE_TOP_LEVEL_SPACES = Symbol(\"top-level-spaces\");\nexport const UPDATE_INVITED_SPACES = Symbol(\"invited-spaces\");\nexport const UPDATE_SELECTED_SPACE = Symbol(\"selected-space\");\nexport const UPDATE_HOME_BEHAVIOUR = Symbol(\"home-behaviour\");\nexport const UPDATE_SUGGESTED_ROOMS = Symbol(\"suggested-rooms\");\n// Space Key will be emitted when a Space's children change\n\nexport enum MetaSpace {\n    Home = \"home-space\",\n    Orphans = \"orphans-space\",\n    VideoRooms = \"video-rooms-space\",\n}\n\nexport const getMetaSpaceName = (spaceKey: MetaSpace, allRoomsInHome = false): string => {\n    switch (spaceKey) {\n        case MetaSpace.Home:\n            return allRoomsInHome ? _t(\"common|all_chats\") : _t(\"common|home\");\n        case MetaSpace.Orphans:\n            return _t(\"common|orphan_rooms\");\n        case MetaSpace.VideoRooms:\n            return _t(\"voip|metaspace_video_rooms|conference_room_section\");\n    }\n};\n\n/**\n * This can be:\n *  - a MetaSpace\n *  - space ID (ie. a room ID)\n *  - A 'custom' space from a module\n * Unfortunately we can't type the last set as we don't know what modules will define,\n * so we can't do better than string here.\n */\nexport type SpaceKey = string;\n\nexport interface ISuggestedRoom extends HierarchyRoom {\n    viaServers: string[];\n}\n\nexport function isMetaSpace(spaceKey?: SpaceKey): spaceKey is MetaSpace {\n    return spaceKey === MetaSpace.Home || spaceKey === MetaSpace.Orphans || spaceKey === MetaSpace.VideoRooms;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2024 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type Container } from \"@element-hq/element-web-module-api\";\n\nexport interface IStoredLayout {\n    // Where to store the widget. Required.\n    container: Container;\n\n    // The index (order) to position the widgets in. Only applies for\n    // ordered containers (like the top container). Smaller numbers first,\n    // and conflicts resolved by comparing widget IDs.\n    index?: number;\n\n    // Percentage (integer) for relative width of the container to consume.\n    // Clamped to 0-100 and may have minimums imposed upon it. Only applies\n    // to containers which support inner resizing (currently only the top\n    // container).\n    width?: number;\n\n    // Percentage (integer) for relative height of the container. Note that\n    // this only applies to the top container currently, and that container\n    // will take the highest value among widgets in the container. Clamped\n    // to 0-100 and may have minimums imposed on it.\n    height?: number | null;\n\n    // TODO: [Deferred] Maximizing (fullscreen) widgets by default.\n}\n\nexport interface IWidgetLayouts {\n    [widgetId: string]: IStoredLayout;\n}\n\nexport interface ILayoutStateEvent {\n    // TODO: [Deferred] Forced layout (fixed with no changes)\n\n    // The widget layouts.\n    widgets: IWidgetLayouts;\n}\n\nexport const WIDGET_LAYOUT_EVENT_TYPE = \"io.element.widgets.layout\";\n","/*\n * Copyright 2024 New Vector Ltd.\n * Copyright 2021, 2022 The Matrix.org Foundation C.I.C.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { type Room, RoomStateEvent, type MatrixEvent } from \"matrix-js-sdk/src/matrix\";\nimport { MapWithDefault, recursiveMapToObject } from \"matrix-js-sdk/src/utils\";\nimport { type IWidget } from \"matrix-widget-api\";\nimport { clamp, defaultNumber, sum } from \"@element-hq/web-shared-components\";\nimport { type Container } from \"@element-hq/element-web-module-api\";\n\nimport SettingsStore from \"../../settings/SettingsStore\";\nimport WidgetStore, { type IApp } from \"../WidgetStore\";\nimport { WidgetType } from \"../../widgets/WidgetType\";\nimport defaultDispatcher from \"../../dispatcher/dispatcher\";\nimport { ReadyWatchingStore } from \"../ReadyWatchingStore\";\nimport { SettingLevel } from \"../../settings/SettingLevel\";\nimport { arrayFastClone } from \"../../utils/arrays\";\nimport { UPDATE_EVENT } from \"../AsyncStore\";\nimport { type IStoredLayout, type ILayoutStateEvent, WIDGET_LAYOUT_EVENT_TYPE, type IWidgetLayouts } from \"./types\";\n\nexport type { IStoredLayout, ILayoutStateEvent };\nexport { type Container, WIDGET_LAYOUT_EVENT_TYPE };\n\nexport type ILayoutSettings = Partial<ILayoutStateEvent> & {\n    overrides?: string; // event ID for layout state event, if present\n};\n\n// Dev note: \"Pinned\" widgets are ones in the top container.\nexport const MAX_PINNED = 3;\n\n// These two are whole percentages and don't really mean anything. Later values will decide\n// minimum, but these help determine proportions during our calculations here. In fact, these\n// values should be *smaller* than the actual minimums imposed by later components.\nconst MIN_WIDGET_WIDTH_PCT = 10; // 10%\nconst MIN_WIDGET_HEIGHT_PCT = 2; // 2%\n\ninterface ContainerValue {\n    ordered: IApp[];\n    height?: number;\n    distributions?: number[];\n}\n\nexport class WidgetLayoutStore extends ReadyWatchingStore {\n    private static internalInstance: WidgetLayoutStore;\n\n    // Map: room Id → container → ContainerValue\n    private byRoom: MapWithDefault<string, Map<Container, ContainerValue>> = new MapWithDefault(() => new Map());\n    private pinnedRef: string | undefined;\n    private layoutRef: string | undefined;\n    private dynamicRef: string | undefined;\n\n    private constructor() {\n        super(defaultDispatcher);\n    }\n\n    public static get instance(): WidgetLayoutStore {\n        if (!this.internalInstance) {\n            this.internalInstance = new WidgetLayoutStore();\n            this.internalInstance.start();\n        }\n        return this.internalInstance;\n    }\n\n    public static emissionForRoom(room: Room): string {\n        return `update_${room.roomId}`;\n    }\n\n    private emitFor(room: Room): void {\n        this.emit(WidgetLayoutStore.emissionForRoom(room));\n    }\n\n    protected async onReady(): Promise<void> {\n        this.updateAllRooms();\n\n        this.matrixClient?.on(RoomStateEvent.Events, this.updateRoomFromState);\n        this.pinnedRef = SettingsStore.watchSetting(\"Widgets.pinned\", null, this.updateFromSettings);\n        this.layoutRef = SettingsStore.watchSetting(\"Widgets.layout\", null, this.updateFromSettings);\n        this.dynamicRef = SettingsStore.watchSetting(\n            \"feature_dynamic_room_predecessors\",\n            null,\n            this.updateFromSettings,\n        );\n        WidgetStore.instance.on(UPDATE_EVENT, this.updateFromWidgetStore);\n    }\n\n    protected async onNotReady(): Promise<void> {\n        this.byRoom = new MapWithDefault(() => new Map());\n\n        this.matrixClient?.off(RoomStateEvent.Events, this.updateRoomFromState);\n        SettingsStore.unwatchSetting(this.pinnedRef);\n        SettingsStore.unwatchSetting(this.layoutRef);\n        SettingsStore.unwatchSetting(this.dynamicRef);\n        WidgetStore.instance.off(UPDATE_EVENT, this.updateFromWidgetStore);\n    }\n\n    private updateAllRooms = (): void => {\n        const msc3946ProcessDynamicPredecessor = SettingsStore.getValue(\"feature_dynamic_room_predecessors\");\n        if (!this.matrixClient) return;\n        this.byRoom = new MapWithDefault(() => new Map());\n        for (const room of this.matrixClient.getVisibleRooms(msc3946ProcessDynamicPredecessor)) {\n            this.recalculateRoom(room);\n        }\n    };\n\n    private updateFromWidgetStore = (roomId?: string): void => {\n        if (roomId) {\n            const room = this.matrixClient?.getRoom(roomId);\n            if (room) this.recalculateRoom(room);\n        } else {\n            this.updateAllRooms();\n        }\n    };\n\n    private updateRoomFromState = (ev: MatrixEvent): void => {\n        if (ev.getType() !== WIDGET_LAYOUT_EVENT_TYPE) return;\n        const room = this.matrixClient?.getRoom(ev.getRoomId());\n        if (room) this.recalculateRoom(room);\n    };\n\n    private updateFromSettings = (\n        _settingName: string,\n        roomId: string | null,\n        _atLevel: SettingLevel,\n        _newValAtLevel: any,\n        _newVal: any,\n    ): void => {\n        if (roomId) {\n            const room = this.matrixClient?.getRoom(roomId);\n            if (room) this.recalculateRoom(room);\n        } else {\n            this.updateAllRooms();\n        }\n    };\n\n    public recalculateRoom(room: Room): void {\n        const widgets = WidgetStore.instance.getApps(room.roomId);\n        if (!widgets?.length) {\n            this.byRoom.set(room.roomId, new Map());\n            this.emitFor(room);\n            return;\n        }\n\n        const roomContainers = this.byRoom.getOrCreate(room.roomId);\n        const beforeChanges = JSON.stringify(recursiveMapToObject(roomContainers));\n\n        const layoutEv = room.currentState.getStateEvents(WIDGET_LAYOUT_EVENT_TYPE, \"\");\n        const legacyPinned = SettingsStore.getValue(\"Widgets.pinned\", room.roomId);\n        let userLayout = SettingsStore.getValue(\"Widgets.layout\", room.roomId);\n\n        if (layoutEv && userLayout && userLayout.overrides !== layoutEv.getId()) {\n            // For some other layout that we don't really care about. The user can reset this\n            // by updating their personal layout.\n            userLayout = null;\n        }\n\n        const roomLayout = layoutEv?.getContent<ILayoutStateEvent>() ?? null;\n        // We filter for the center container first.\n        // (An error is raised, if there are multiple widgets marked for the center container)\n        // For the right and top container multiple widgets are allowed.\n        const topWidgets: IApp[] = [];\n        const rightWidgets: IApp[] = [];\n        const centerWidgets: IApp[] = [];\n        for (const widget of widgets) {\n            const stateContainer = roomLayout?.widgets?.[widget.id]?.container;\n            const manualContainer = userLayout?.widgets?.[widget.id]?.container;\n            const isLegacyPinned = !!legacyPinned?.[widget.id];\n            const defaultContainer = WidgetType.JITSI.matches(widget.type) ? \"top\" : \"right\";\n            if (manualContainer ? manualContainer === \"center\" : stateContainer === \"center\") {\n                if (centerWidgets.length) {\n                    console.error(\"Tried to push a second widget into the center container\");\n                } else {\n                    centerWidgets.push(widget);\n                }\n                // The widget won't need to be put in any other container.\n                continue;\n            }\n            let targetContainer: Container = defaultContainer;\n            if (!!manualContainer || !!stateContainer) {\n                targetContainer = manualContainer ?? stateContainer!;\n            } else if (isLegacyPinned && !stateContainer) {\n                // Special legacy case\n                targetContainer = \"top\";\n            }\n            (targetContainer === \"top\" ? topWidgets : rightWidgets).push(widget);\n        }\n\n        // Trim to MAX_PINNED\n        const runoff = topWidgets.slice(MAX_PINNED);\n        rightWidgets.push(...runoff);\n\n        const collator = new Intl.Collator();\n\n        // Order the widgets in the top container, putting autopinned Jitsi widgets first\n        // unless they have a specific order in mind\n        topWidgets.sort((a, b) => {\n            const layoutA = roomLayout?.widgets?.[a.id];\n            const layoutB = roomLayout?.widgets?.[b.id];\n\n            const userLayoutA = userLayout?.widgets?.[a.id];\n            const userLayoutB = userLayout?.widgets?.[b.id];\n\n            // Jitsi widgets are defaulted to be the leftmost widget whereas other widgets\n            // default to the right side.\n            const defaultA = WidgetType.JITSI.matches(a.type) ? Number.MIN_SAFE_INTEGER : Number.MAX_SAFE_INTEGER;\n            const defaultB = WidgetType.JITSI.matches(b.type) ? Number.MIN_SAFE_INTEGER : Number.MAX_SAFE_INTEGER;\n\n            const orderA = defaultNumber(userLayoutA?.index, defaultNumber(layoutA?.index, defaultA));\n            const orderB = defaultNumber(userLayoutB?.index, defaultNumber(layoutB?.index, defaultB));\n\n            if (orderA === orderB) {\n                // We just need a tiebreak\n                return collator.compare(a.id, b.id);\n            }\n\n            return orderA - orderB;\n        });\n\n        // Determine width distribution and height of the top container now (the only relevant one)\n        const widths: number[] = [];\n        let maxHeight: number | null = null; // null == default\n        let doAutobalance = true;\n        for (let i = 0; i < topWidgets.length; i++) {\n            const widget = topWidgets[i];\n            const widgetLayout = roomLayout?.widgets?.[widget.id];\n            const userWidgetLayout = userLayout?.widgets?.[widget.id];\n\n            if (Number.isFinite(userWidgetLayout?.width) || Number.isFinite(widgetLayout?.width)) {\n                const val = (userWidgetLayout?.width || widgetLayout?.width)!;\n                const normalized = clamp(val, MIN_WIDGET_WIDTH_PCT, 100);\n                widths.push(normalized);\n                doAutobalance = false; // a manual width was specified\n            } else {\n                widths.push(100); // we'll figure this out later\n            }\n\n            if (widgetLayout?.height || userWidgetLayout?.height) {\n                const defRoomHeight = defaultNumber(widgetLayout?.height, MIN_WIDGET_HEIGHT_PCT);\n                const h = defaultNumber(userWidgetLayout?.height, defRoomHeight);\n                maxHeight = Math.max(maxHeight ?? 0, clamp(h, MIN_WIDGET_HEIGHT_PCT, 100));\n            }\n        }\n        if (doAutobalance) {\n            for (let i = 0; i < widths.length; i++) {\n                widths[i] = 100 / widths.length;\n            }\n        } else {\n            // If we're not autobalancing then it means that we're trying to make\n            // sure that widgets make up exactly 100% of space (not over, not under)\n            const difference = sum(...widths) - 100; // positive = over, negative = under\n            if (difference < 0) {\n                // For a deficit we just fill everything in equally\n                for (let i = 0; i < widths.length; i++) {\n                    widths[i] += Math.abs(difference) / widths.length;\n                }\n            } else if (difference > 0) {\n                // When we're over, we try to scale all the widgets within range first.\n                // We clamp values to try and keep ourselves sane and within range.\n                for (let i = 0; i < widths.length; i++) {\n                    widths[i] = clamp(widths[i] - difference / widths.length, MIN_WIDGET_WIDTH_PCT, 100);\n                }\n\n                // If we're still over, find the widgets which have more width than the minimum\n                // and balance them out until we're at 100%. This should keep us as close as possible\n                // to the intended distributions.\n                //\n                // Note: if we ever decide to set a minimum which is larger than 100%/MAX_WIDGETS then\n                // we probably have other issues - this code assumes we don't do that.\n                const toReclaim = sum(...widths) - 100;\n                if (toReclaim > 0) {\n                    const largeIndices = widths\n                        .map((v, i) => [i, v])\n                        .filter((p) => p[1] > MIN_WIDGET_WIDTH_PCT)\n                        .map((p) => p[0]);\n                    for (const idx of largeIndices) {\n                        widths[idx] -= toReclaim / largeIndices.length;\n                    }\n                }\n            }\n        }\n\n        // Finally, fill in our cache and update\n        const newRoomContainers = new Map();\n        this.byRoom.set(room.roomId, newRoomContainers);\n        if (topWidgets.length) {\n            newRoomContainers.set(\"top\", {\n                ordered: topWidgets,\n                distributions: widths,\n                height: maxHeight,\n            });\n        }\n        if (rightWidgets.length) {\n            newRoomContainers.set(\"right\", {\n                ordered: rightWidgets,\n            });\n        }\n        if (centerWidgets.length) {\n            newRoomContainers.set(\"center\", {\n                ordered: centerWidgets,\n            });\n        }\n\n        const afterChanges = JSON.stringify(recursiveMapToObject(newRoomContainers));\n\n        if (afterChanges !== beforeChanges) {\n            this.emitFor(room);\n        }\n    }\n\n    public getContainerWidgets(room: Room | null, container: Container): IWidget[] {\n        return (room && this.byRoom.get(room.roomId)?.get(container)?.ordered) || [];\n    }\n\n    public isInContainer(room: Room, widget: IWidget, container: Container): boolean {\n        return this.getContainerWidgets(room, container).some((w) => w.id === widget.id);\n    }\n\n    public canAddToContainer(room: Room, container: Container): boolean {\n        switch (container) {\n            case \"top\":\n                return this.getContainerWidgets(room, container).length < MAX_PINNED;\n            case \"right\":\n                return this.getContainerWidgets(room, container).length < MAX_PINNED;\n            case \"center\":\n                return this.getContainerWidgets(room, container).length < 1;\n        }\n    }\n\n    public getResizerDistributions(room: Room, container: Container): string[] {\n        // yes, string.\n        let distributions = this.byRoom.get(room.roomId)?.get(container)?.distributions;\n        if (!distributions || distributions.length < 2) return [];\n\n        // The distributor actually expects to be fed N-1 sizes and expands the middle section\n        // instead of the edges. Therefore, we need to return [0] when there's two widgets or\n        // [0, 2] when there's three (skipping [1] because it's irrelevant).\n\n        if (distributions.length === 2) distributions = [distributions[0]];\n        if (distributions.length === 3) distributions = [distributions[0], distributions[2]];\n        return distributions.map((d) => `${d.toFixed(1)}%`); // actual percents - these are decoded later\n    }\n\n    public setResizerDistributions(room: Room, container: Container, distributions: string[]): void {\n        if (container !== \"top\") return; // ignore - not relevant\n\n        const numbers = distributions.map((d) => Number(Number(d.substring(0, d.length - 1)).toFixed(1)));\n        const widgets = this.getContainerWidgets(room, container);\n\n        // From getResizerDistributions, we need to fill in the middle size if applicable.\n        const remaining = 100 - sum(...numbers);\n        if (numbers.length === 2) numbers.splice(1, 0, remaining);\n        if (numbers.length === 1) numbers.push(remaining);\n\n        const localLayout: Record<string, IStoredLayout> = {};\n        widgets.forEach((w, i) => {\n            localLayout[w.id] = {\n                container: container,\n                width: numbers[i],\n                index: i,\n                height: this.byRoom.get(room.roomId)?.get(container)?.height || MIN_WIDGET_HEIGHT_PCT,\n            };\n        });\n        this.updateUserLayout(room, localLayout);\n    }\n\n    public getContainerHeight(room: Room, container: Container): number | null {\n        return this.byRoom.get(room.roomId)?.get(container)?.height ?? null; // let the default get returned if needed\n    }\n\n    public setContainerHeight(room: Room, container: Container, height?: number | null): void {\n        const widgets = this.getContainerWidgets(room, container);\n        const widths = this.byRoom.get(room.roomId)?.get(container)?.distributions;\n        const localLayout: Record<string, IStoredLayout> = {};\n        widgets.forEach((w, i) => {\n            localLayout[w.id] = {\n                container: container,\n                width: widths?.[i],\n                index: i,\n                height: height,\n            };\n        });\n        this.updateUserLayout(room, localLayout);\n    }\n\n    public moveWithinContainer(room: Room, container: Container, widget: IWidget, delta: number): void {\n        const widgets = arrayFastClone(this.getContainerWidgets(room, container));\n        const currentIdx = widgets.findIndex((w) => w.id === widget.id);\n        if (currentIdx < 0) return; // no change needed\n\n        widgets.splice(currentIdx, 1); // remove existing widget\n        const newIdx = clamp(currentIdx + delta, 0, widgets.length);\n        widgets.splice(newIdx, 0, widget);\n\n        const widths = this.byRoom.get(room.roomId)?.get(container)?.distributions;\n        const height = this.byRoom.get(room.roomId)?.get(container)?.height;\n        const localLayout: Record<string, IStoredLayout> = {};\n        widgets.forEach((w, i) => {\n            localLayout[w.id] = {\n                container: container,\n                width: widths?.[i],\n                index: i,\n                height,\n            };\n        });\n        this.updateUserLayout(room, localLayout);\n    }\n\n    public moveToContainer(room: Room, widget: IWidget, toContainer: Container): void {\n        const allWidgets = this.getAllWidgets(room);\n        if (!allWidgets.some(([w]) => w.id === widget.id)) return; // invalid\n        // Prepare other containers (potentially move widgets to obey the following rules)\n        const newLayout: Record<string, IStoredLayout> = {};\n        switch (toContainer) {\n            case \"right\":\n                // new \"right\" widget\n                break;\n            case \"center\":\n                // new \"center\" widget => all other widgets go into \"right\"\n                for (const w of this.getContainerWidgets(room, \"top\")) {\n                    newLayout[w.id] = { container: \"right\" };\n                }\n                for (const w of this.getContainerWidgets(room, \"center\")) {\n                    newLayout[w.id] = { container: \"right\" };\n                }\n                break;\n            case \"top\":\n                // new \"top\" widget => the center widget moves into \"right\"\n                if (this.hasMaximisedWidget(room)) {\n                    const centerWidget = this.getContainerWidgets(room, \"center\")[0];\n                    newLayout[centerWidget.id] = { container: \"right\" };\n                }\n                break;\n        }\n\n        newLayout[widget.id] = { container: toContainer };\n\n        // move widgets into requested containers.\n        this.updateUserLayout(room, newLayout);\n    }\n\n    public hasMaximisedWidget(room: Room): boolean {\n        return this.getContainerWidgets(room, \"center\").length > 0;\n    }\n\n    public hasPinnedWidgets(room: Room): boolean {\n        return this.getContainerWidgets(room, \"top\").length > 0;\n    }\n\n    public canCopyLayoutToRoom(room: Room): boolean {\n        if (!this.matrixClient) return false; // not ready yet\n        return room.currentState.maySendStateEvent(WIDGET_LAYOUT_EVENT_TYPE, this.matrixClient.getUserId()!);\n    }\n\n    public copyLayoutToRoom(room: Room): void {\n        const allWidgets = this.getAllWidgets(room);\n        const evContent: ILayoutStateEvent = { widgets: {} };\n        for (const [widget, container] of allWidgets) {\n            evContent.widgets[widget.id] = { container };\n            if (container === \"top\") {\n                const containerWidgets = this.getContainerWidgets(room, container);\n                const idx = containerWidgets.findIndex((w) => w.id === widget.id);\n                const widths = this.byRoom.get(room.roomId)?.get(container)?.distributions;\n                const height = this.byRoom.get(room.roomId)?.get(container)?.height;\n                evContent.widgets[widget.id] = {\n                    ...evContent.widgets[widget.id],\n                    height: height ? Math.round(height) : undefined,\n                    width: widths?.[idx] ? Math.round(widths[idx]) : undefined,\n                    index: idx,\n                };\n            }\n        }\n        this.matrixClient?.sendStateEvent(room.roomId, WIDGET_LAYOUT_EVENT_TYPE, evContent, \"\");\n    }\n\n    private getAllWidgets(room: Room): [IApp, Container][] {\n        const containers = this.byRoom.get(room.roomId);\n        if (!containers) return [];\n\n        const ret: [IApp, Container][] = [];\n        for (const [container, containerValue] of containers) {\n            const widgets = containerValue.ordered;\n            for (const widget of widgets) {\n                ret.push([widget, container as Container]);\n            }\n        }\n        return ret;\n    }\n\n    private updateUserLayout(room: Room, newLayout: IWidgetLayouts): void {\n        // Polyfill any missing widgets\n        const allWidgets = this.getAllWidgets(room);\n        for (const [widget, container] of allWidgets) {\n            const containerWidgets = this.getContainerWidgets(room, container);\n            const idx = containerWidgets.findIndex((w) => w.id === widget.id);\n            const widths = this.byRoom.get(room.roomId)?.get(container)?.distributions;\n            if (!newLayout[widget.id]) {\n                newLayout[widget.id] = {\n                    container: container,\n                    index: idx,\n                    height: this.byRoom.get(room.roomId)?.get(container)?.height,\n                    width: widths?.[idx],\n                };\n            }\n        }\n\n        const layoutEv = room.currentState.getStateEvents(WIDGET_LAYOUT_EVENT_TYPE, \"\");\n        SettingsStore.setValue(\"Widgets.layout\", room.roomId, SettingLevel.ROOM_ACCOUNT, {\n            overrides: layoutEv?.getId(),\n            widgets: newLayout,\n        }).catch(() => this.recalculateRoom(room));\n        this.recalculateRoom(room); // call to try local echo on changes (the catch above undoes any errors)\n    }\n}\n","/*\n * Copyright 2024 New Vector Ltd.\n * Copyright 2020 The Matrix.org Foundation C.I.C.\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport { type Widget } from \"matrix-widget-api\";\nimport { type EmptyObject } from \"matrix-js-sdk/src/matrix\";\n\nimport { AsyncStoreWithClient } from \"../AsyncStoreWithClient\";\nimport defaultDispatcher from \"../../dispatcher/dispatcher\";\nimport { type ActionPayload } from \"../../dispatcher/payloads\";\nimport { EnhancedMap } from \"../../utils/maps\";\nimport WidgetUtils from \"../../utils/WidgetUtils\";\nimport { type WidgetMessaging } from \"./WidgetMessaging\";\n\nexport enum WidgetMessagingStoreEvent {\n    StoreMessaging = \"store_messaging\",\n    StopMessaging = \"stop_messaging\",\n}\n\n/**\n * Temporary holding store for widget messaging instances. This is eventually\n * going to be merged with a more complete WidgetStore, but for now it's\n * easiest to split this into a single place.\n */\nexport class WidgetMessagingStore extends AsyncStoreWithClient<EmptyObject> {\n    private static readonly internalInstance = (() => {\n        const instance = new WidgetMessagingStore();\n        instance.start();\n        return instance;\n    })();\n\n    private widgetMap = new EnhancedMap<string, WidgetMessaging>(); // <widget UID, messaging>\n\n    public constructor() {\n        super(defaultDispatcher);\n    }\n\n    public static get instance(): WidgetMessagingStore {\n        return WidgetMessagingStore.internalInstance;\n    }\n\n    protected async onAction(payload: ActionPayload): Promise<void> {\n        // nothing to do\n    }\n\n    protected async onReady(): Promise<any> {\n        // just in case\n        this.widgetMap.clear();\n    }\n\n    public storeMessaging(widget: Widget, roomId: string | undefined, messaging: WidgetMessaging): void {\n        this.stopMessaging(widget, roomId);\n        const uid = WidgetUtils.calcWidgetUid(widget.id, roomId);\n        this.widgetMap.set(uid, messaging);\n\n        this.emit(WidgetMessagingStoreEvent.StoreMessaging, uid, messaging);\n    }\n\n    public stopMessaging(widget: Widget, roomId: string | undefined): void {\n        this.stopMessagingByUid(WidgetUtils.calcWidgetUid(widget.id, roomId));\n    }\n\n    public getMessaging(widget: Widget, roomId: string | undefined): WidgetMessaging | undefined {\n        return this.widgetMap.get(WidgetUtils.calcWidgetUid(widget.id, roomId));\n    }\n\n    /**\n     * Stops the widget messaging instance for a given widget UID.\n     * @param {string} widgetUid The widget UID.\n     */\n    public stopMessagingByUid(widgetUid: string): void {\n        const messaging = this.widgetMap.remove(widgetUid);\n        if (messaging !== undefined) {\n            messaging.stop();\n            this.emit(WidgetMessagingStoreEvent.StopMessaging, widgetUid);\n        }\n    }\n\n    /**\n     * Gets the widget messaging class for a given widget UID.\n     * @param {string} widgetUid The widget UID.\n     * @returns {ClientWidgetApi} The widget API, or a falsy value if not found.\n     */\n    public getMessagingForUid(widgetUid: string): WidgetMessaging | undefined {\n        return this.widgetMap.get(widgetUid);\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 Michael Telatynski <7t3chguy@gmail.com>\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport \"@fontsource/inter/400.css\";\nimport \"@fontsource/inter/400-italic.css\";\nimport \"@fontsource/inter/500.css\";\nimport \"@fontsource/inter/500-italic.css\";\nimport \"@fontsource/inter/600.css\";\nimport \"@fontsource/inter/600-italic.css\";\nimport \"@fontsource/inter/700.css\";\nimport \"@fontsource/inter/700-italic.css\";\n\nimport \"@fontsource/fira-code/latin-ext-400.css\";\nimport \"@fontsource/fira-code/latin-400.css\";\nimport \"@fontsource/fira-code/latin-ext-700.css\";\nimport \"@fontsource/fira-code/latin-700.css\";\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport { _t } from \"./languageHandler\";\nimport SettingsStore from \"./settings/SettingsStore\";\nimport ThemeWatcher from \"./settings/watchers/ThemeWatcher\";\nimport { FontWatcher } from \"./settings/watchers/FontWatcher\";\n\nexport const DEFAULT_THEME = \"light\";\nconst HIGH_CONTRAST_THEMES: Record<string, string> = {\n    light: \"light-high-contrast\",\n};\n\ninterface IFontFaces extends Omit<Record<(typeof allowedFontFaceProps)[number], string>, \"src\"> {\n    src: {\n        format: string;\n        url: string;\n        local: string;\n    }[];\n}\n\ninterface CompoundTheme {\n    [token: string]: string;\n}\n\nexport type CustomTheme = {\n    name: string;\n    is_dark?: boolean; // eslint-disable-line camelcase\n    colors?: {\n        [key: string]: string;\n    };\n    fonts?: {\n        faces: IFontFaces[];\n        general: string;\n        monospace: string;\n    };\n    compound?: CompoundTheme;\n};\n\n/**\n * Given a non-high-contrast theme, find the corresponding high-contrast one\n * if it exists, or return undefined if not.\n */\nexport function findHighContrastTheme(theme: string): string | undefined {\n    return HIGH_CONTRAST_THEMES[theme];\n}\n\n/**\n * Given a high-contrast theme, find the corresponding non-high-contrast one\n * if it exists, or return undefined if not.\n */\nexport function findNonHighContrastTheme(hcTheme: string): string | undefined {\n    for (const theme in HIGH_CONTRAST_THEMES) {\n        if (HIGH_CONTRAST_THEMES[theme] === hcTheme) {\n            return theme;\n        }\n    }\n}\n\n/**\n * Decide whether the supplied theme is high contrast.\n */\nexport function isHighContrastTheme(theme: string): boolean {\n    return Object.values(HIGH_CONTRAST_THEMES).includes(theme);\n}\n\nexport function enumerateThemes(): { [key: string]: string } {\n    const BUILTIN_THEMES = {\n        \"light\": _t(\"common|light\"),\n        \"light-high-contrast\": _t(\"theme|light_high_contrast\"),\n        \"dark\": _t(\"common|dark\"),\n    };\n    const customThemes = SettingsStore.getValue(\"custom_themes\") || [];\n    const customThemeNames: Record<string, string> = {};\n\n    try {\n        for (const { name } of customThemes) {\n            customThemeNames[`custom-${name}`] = name;\n        }\n    } catch (err) {\n        logger.warn(\"Error loading custom themes\", {\n            err,\n            customThemes,\n        });\n    }\n\n    return Object.assign({}, customThemeNames, BUILTIN_THEMES);\n}\n\nexport interface ITheme {\n    id: string;\n    name: string;\n}\n\nexport function getOrderedThemes(): ITheme[] {\n    const themes = Object.entries(enumerateThemes())\n        .map((p) => ({ id: p[0], name: p[1] })) // convert pairs to objects for code readability\n        .filter((p) => !isHighContrastTheme(p.id));\n    const builtInThemes = themes.filter((p) => !p.id.startsWith(\"custom-\"));\n    const collator = new Intl.Collator();\n    const customThemes = themes\n        .filter((p) => !builtInThemes.includes(p))\n        .sort((a, b) => collator.compare(a.name, b.name));\n    return [...builtInThemes, ...customThemes];\n}\n\nfunction clearCustomTheme(): void {\n    // remove all css variables (except font and emoji variables), we assume these are there because of the custom theme\n    const inlineStyleProps = Object.values(document.body.style);\n    for (const prop of inlineStyleProps) {\n        if (\n            typeof prop === \"string\" &&\n            prop.startsWith(\"--\") &&\n            prop !== FontWatcher.FONT_FAMILY_CUSTOM_PROPERTY &&\n            prop !== FontWatcher.EMOJI_FONT_FAMILY_CUSTOM_PROPERTY\n        ) {\n            document.body.style.removeProperty(prop);\n        }\n    }\n\n    // remove the custom style sheets\n    document.querySelector(\"head > style[title='custom-theme-font-faces']\")?.remove();\n    document.querySelector(\"head > style[title='custom-theme-compound']\")?.remove();\n}\n\nconst allowedFontFaceProps = [\n    \"font-display\",\n    \"font-family\",\n    \"font-stretch\",\n    \"font-style\",\n    \"font-weight\",\n    \"font-variant\",\n    \"font-feature-settings\",\n    \"font-variation-settings\",\n    \"src\",\n    \"unicode-range\",\n] as const;\n\nfunction generateCustomFontFaceCSS(faces: IFontFaces[]): string {\n    return faces\n        .map((face) => {\n            const src = face.src\n                ?.map((srcElement) => {\n                    let format = \"\";\n                    if (srcElement.format) {\n                        format = `format(\"${srcElement.format}\")`;\n                    }\n                    if (srcElement.url) {\n                        return `url(\"${srcElement.url}\") ${format}`;\n                    } else if (srcElement.local) {\n                        return `local(\"${srcElement.local}\") ${format}`;\n                    }\n                    return \"\";\n                })\n                .join(\", \");\n            const props = Object.keys(face).filter((prop) =>\n                allowedFontFaceProps.includes(prop as (typeof allowedFontFaceProps)[number]),\n            ) as Array<(typeof allowedFontFaceProps)[number]>;\n            const body = props\n                .map((prop) => {\n                    let value: string;\n                    if (prop === \"src\") {\n                        value = src;\n                    } else if (prop === \"font-family\") {\n                        value = `\"${face[prop]}\"`;\n                    } else {\n                        value = face[prop];\n                    }\n                    return `${prop}: ${value}`;\n                })\n                .join(\";\");\n            return `@font-face {${body}}`;\n        })\n        .join(\"\\n\");\n}\n\nconst COMPOUND_TOKEN = /^--cpd-[a-z0-9-]+$/;\n\n/**\n * Generates a style sheet to override Compound design tokens as specified in\n * the given theme.\n */\nfunction generateCustomCompoundCSS(theme: CompoundTheme): string {\n    const properties: string[] = [];\n    for (const [token, value] of Object.entries(theme))\n        if (COMPOUND_TOKEN.test(token)) properties.push(`${token}: ${value};`);\n        else logger.warn(`'${token}' is not a valid Compound token`);\n    // Insert the design token overrides into the existing Compound tokens\n    // layer so custom themes win over the imported default tokens by source\n    // order without creating a lower-priority nested layer.\n    return `@layer compound-tokens { :root, [class*=\"cpd-theme-\"] { ${properties.join(\" \")} } }`;\n}\n\n/**\n * Normalizes the hex colour to 8 characters (including alpha)\n * @param hexColor the hex colour to normalize\n */\nfunction normalizeHexColour(hexColor: string): string {\n    switch (hexColor.length) {\n        case 4:\n        case 5:\n            // Short RGB or RGBA hex\n            return `#${hexColor\n                .slice(1)\n                .split(\"\")\n                .map((c) => c + c)\n                .join(\"\")}`;\n        case 7:\n            // Long RGB hex\n            return `${hexColor}ff`;\n        default:\n            return hexColor;\n    }\n}\n\nfunction setHexAlpha(normalizedHexColor: string, alpha: number): string {\n    return normalizeHexColour(normalizedHexColor).slice(0, 7) + Math.round(alpha).toString(16).padStart(2, \"0\");\n}\n\nfunction parseAlpha(normalizedHexColor: string): number {\n    return parseInt(normalizedHexColor.slice(7), 16);\n}\n\nfunction setCustomThemeVars(customTheme: CustomTheme): void {\n    const { style } = document.body;\n\n    function setCSSColorVariable(name: string, hexColor: string, doPct = true): void {\n        style.setProperty(`--${name}`, hexColor);\n        const normalizedHexColor = normalizeHexColour(hexColor);\n        const baseAlpha = parseAlpha(normalizedHexColor);\n\n        if (doPct) {\n            // uses #rrggbbaa to define the color with alpha values at 0%, 15% and 50% (relative to base alpha channel)\n            style.setProperty(`--${name}-0pct`, setHexAlpha(normalizedHexColor, 0));\n            style.setProperty(`--${name}-15pct`, setHexAlpha(normalizedHexColor, baseAlpha * 0.15));\n            style.setProperty(`--${name}-50pct`, setHexAlpha(normalizedHexColor, baseAlpha * 0.5));\n        }\n    }\n\n    if (customTheme.colors) {\n        for (const [name, value] of Object.entries(customTheme.colors)) {\n            if (Array.isArray(value)) {\n                for (let i = 0; i < value.length; i += 1) {\n                    setCSSColorVariable(`${name}_${i}`, value[i], false);\n                }\n            } else {\n                setCSSColorVariable(name, value);\n            }\n        }\n    }\n    if (customTheme.fonts) {\n        const { fonts } = customTheme;\n        if (fonts.faces) {\n            const css = generateCustomFontFaceCSS(fonts.faces);\n            const style = document.createElement(\"style\");\n            style.setAttribute(\"title\", \"custom-theme-font-faces\");\n            style.setAttribute(\"type\", \"text/css\");\n            style.appendChild(document.createTextNode(css));\n            document.head.appendChild(style);\n        }\n        if (fonts.general) {\n            style.setProperty(\"--font-family\", fonts.general);\n        }\n        if (fonts.monospace) {\n            style.setProperty(\"--font-family-monospace\", fonts.monospace);\n        }\n    }\n    if (customTheme.compound) {\n        const css = generateCustomCompoundCSS(customTheme.compound);\n        const style = document.createElement(\"style\");\n        style.setAttribute(\"title\", \"custom-theme-compound\");\n        style.setAttribute(\"type\", \"text/css\");\n        style.appendChild(document.createTextNode(css));\n        document.head.appendChild(style);\n    }\n}\n\nexport function getCustomTheme(themeName: string): CustomTheme {\n    // set css variables\n    const customThemes = SettingsStore.getValue(\"custom_themes\");\n    if (!customThemes) {\n        throw new Error(`No custom themes set, can't set custom theme \"${themeName}\"`);\n    }\n    const customTheme = customThemes.find((t: CustomTheme) => t.name === themeName);\n    if (!customTheme) {\n        const knownNames = customThemes.map((t: CustomTheme) => t.name).join(\", \");\n        throw new Error(`Can't find custom theme \"${themeName}\", only know ${knownNames}`);\n    }\n    return customTheme;\n}\n\n/**\n * Called whenever someone changes the theme\n * Async function that returns once the theme has been set\n * (ie. the CSS has been loaded)\n *\n * @param {string} theme new theme\n */\nexport async function setTheme(theme?: string): Promise<void> {\n    if (!theme) {\n        const themeWatcher = new ThemeWatcher();\n        theme = themeWatcher.getEffectiveTheme();\n    }\n    clearCustomTheme();\n    let stylesheetName = theme;\n    if (theme.startsWith(\"custom-\")) {\n        const customTheme = getCustomTheme(theme.slice(7));\n        stylesheetName = customTheme.is_dark ? \"dark-custom\" : \"light-custom\";\n        setCustomThemeVars(customTheme);\n    }\n\n    // look for the stylesheet elements.\n    // styleElements is a map from style name to HTMLLinkElement.\n    const styleElements = new Map<string, HTMLLinkElement>();\n    const themes = Array.from(document.querySelectorAll<HTMLLinkElement>(\"[data-mx-theme]\"));\n    themes.forEach((theme) => {\n        styleElements.set(theme.dataset.mxTheme!.toLowerCase(), theme);\n    });\n\n    if (!styleElements.has(stylesheetName)) {\n        throw new Error(\"Unknown theme \" + stylesheetName);\n    }\n\n    // disable all of them first, then enable the one we want. Chrome only\n    // bothers to do an update on a true->false transition, so this ensures\n    // that we get exactly one update, at the right time.\n    //\n    // ^ This comment was true when we used to use alternative stylesheets\n    // for the CSS.  Nowadays we just set them all as disabled in index.html\n    // and enable them as needed.  It might be cleaner to disable them all\n    // at the same time to prevent loading two themes simultaneously and\n    // having them interact badly... but this causes a flash of unstyled app\n    // which is even uglier.  So we don't.\n\n    const styleSheet = styleElements.get(stylesheetName)!;\n    styleSheet.disabled = false;\n\n    /**\n     * Adds the Compound theme class to the top-most element in the document\n     * This will automatically refresh the colour scales based on the OS or user\n     * preferences\n     */\n    document.body.classList.remove(\"cpd-theme-light\", \"cpd-theme-dark\", \"cpd-theme-light-hc\", \"cpd-theme-dark-hc\");\n\n    let compoundThemeClassName = `cpd-theme-` + (stylesheetName.includes(\"light\") ? \"light\" : \"dark\");\n    // Always respect user OS preference!\n    if (isHighContrastTheme(theme) || window.matchMedia(\"(prefers-contrast: more)\").matches) {\n        compoundThemeClassName += \"-hc\";\n    }\n\n    document.body.classList.add(compoundThemeClassName);\n\n    return new Promise((resolve, reject) => {\n        const switchTheme = function (): void {\n            // we re-enable our theme here just in case we raced with another\n            // theme set request as per https://github.com/vector-im/element-web/issues/5601.\n            // We could alternatively lock or similar to stop the race, but\n            // this is probably good enough for now.\n            styleSheet.disabled = false;\n            styleElements.forEach((a) => {\n                if (a == styleSheet) return;\n                a.disabled = true;\n            });\n            const bodyStyles = global.getComputedStyle(document.body);\n            if (bodyStyles.backgroundColor) {\n                const metaElement = document.querySelector<HTMLMetaElement>('meta[name=\"theme-color\"]')!;\n                metaElement.content = bodyStyles.backgroundColor;\n            }\n            resolve();\n        };\n\n        const isStyleSheetLoaded = (): boolean =>\n            Boolean([...document.styleSheets].find((_styleSheet) => _styleSheet?.href === styleSheet.href));\n\n        function waitForStyleSheetLoading(): void {\n            // turns out that Firefox preloads the CSS for link elements with\n            // the disabled attribute, but Chrome doesn't.\n            if (isStyleSheetLoaded()) {\n                switchTheme();\n                return;\n            }\n\n            let counter = 0;\n\n            // In case of theme toggling (white => black => white)\n            // Chrome doesn't fire the `load` event when the white theme is selected the second times\n            const intervalId = window.setInterval(() => {\n                if (isStyleSheetLoaded()) {\n                    clearInterval(intervalId);\n                    styleSheet.onload = null;\n                    styleSheet.onerror = null;\n                    switchTheme();\n                }\n\n                // Avoid to be stuck in an endless loop if there is an issue in the stylesheet loading\n                counter++;\n                if (counter === 10) {\n                    clearInterval(intervalId);\n                    reject();\n                }\n            }, 200);\n\n            styleSheet.onload = () => {\n                clearInterval(intervalId);\n                switchTheme();\n            };\n\n            styleSheet.onerror = (e) => {\n                clearInterval(intervalId);\n                reject(e);\n            };\n        }\n\n        waitForStyleSheetLoading();\n    });\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 Michael Telatynski <7t3chguy@gmail.com>\nCopyright 2016 Aviral Dasgupta\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n */\n\nimport React, { type JSX } from \"react\";\n\nimport { _t } from \"../../../languageHandler\";\nimport QuestionDialog from \"./QuestionDialog\";\nimport Spinner from \"../elements/Spinner\";\nimport Heading from \"../typography/Heading\";\n\ninterface IProps {\n    newVersion: DevelopVersionString;\n    version: DevelopVersionString;\n    onFinished: (success: boolean) => void;\n}\n\ntype State = Partial<Record<(typeof REPOS)[number], null | string | Commit[]>>;\n\ninterface Commit {\n    sha: string;\n    html_url: string;\n    commit: {\n        message: string;\n    };\n}\n\nconst REPOS = [\"element-hq/element-web\", \"matrix-org/matrix-js-sdk\"] as const;\n\nexport type DevelopVersionString = string & { _developVersionString: never };\n\n/*\n * Parse a version string is compatible with the Changelog dialog ([element-version]-js-[js-sdk-version])\n */\nexport function parseVersion(version: string): Record<(typeof REPOS)[number], string> | null {\n    const parts = version.split(\"-\");\n    if (parts.length === 3 && parts[1] === \"js\") {\n        const obj: Record<string, string> = {};\n        for (let i = 0; i < REPOS.length; i++) {\n            const commit = parts[2 * i];\n            obj[REPOS[i]] = commit;\n        }\n        return obj;\n    }\n    return null;\n}\n\nexport function checkVersion(version: string): version is DevelopVersionString {\n    return parseVersion(version) !== null;\n}\n\nexport default class ChangelogDialog extends React.Component<IProps, State> {\n    public constructor(props: IProps) {\n        super(props);\n\n        this.state = {};\n    }\n\n    private async fetchChanges(repo: (typeof REPOS)[number], oldVersion: string, newVersion: string): Promise<void> {\n        const url = `https://riot.im/github/repos/${repo}/compare/${oldVersion}...${newVersion}`;\n\n        try {\n            const res = await fetch(url);\n\n            if (!res.ok) {\n                this.setState({ [repo]: res.statusText });\n                return;\n            }\n\n            const body = await res.json();\n            this.setState({ [repo]: body.commits });\n        } catch (err) {\n            this.setState({ [repo]: err instanceof Error ? err.message : _t(\"error|unknown\") });\n        }\n    }\n\n    public componentDidMount(): void {\n        const commits = parseVersion(this.props.version)!;\n        const newCommits = parseVersion(this.props.newVersion)!;\n\n        for (const repo of REPOS) {\n            this.fetchChanges(repo, commits[repo], newCommits[repo]);\n        }\n    }\n\n    private elementsForCommit(this: void, commit: Commit): JSX.Element {\n        return (\n            <li key={commit.sha} className=\"mx_ChangelogDialog_li\">\n                <a href={commit.html_url} target=\"_blank\" rel=\"noreferrer noopener\">\n                    {commit.commit.message.split(\"\\n\")[0]}\n                </a>\n            </li>\n        );\n    }\n\n    public render(): React.ReactNode {\n        const logs = REPOS.map((repo) => {\n            let content;\n            if (this.state[repo] == null) {\n                content = <Spinner key={repo} />;\n            } else if (typeof this.state[repo] === \"string\") {\n                content = _t(\"update|error_unable_load_commit\", {\n                    msg: this.state[repo],\n                });\n            } else {\n                content = (this.state[repo] as Commit[]).map(this.elementsForCommit);\n            }\n            return (\n                <div key={repo}>\n                    <Heading as=\"h2\" size=\"4\">\n                        {repo}\n                    </Heading>\n                    <ul>{content}</ul>\n                </div>\n            );\n        });\n\n        const content = (\n            <div className=\"mx_ChangelogDialog_content\">\n                {this.props.version == null || this.props.newVersion == null ? (\n                    <h2>{_t(\"update|unavailable\")}</h2>\n                ) : (\n                    logs\n                )}\n            </div>\n        );\n\n        return (\n            <QuestionDialog\n                title={_t(\"update|changelog\")}\n                description={content}\n                button={_t(\"action|update\")}\n                onFinished={this.props.onFinished}\n            />\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\n\nimport { _t } from \"../languageHandler\";\nimport SdkConfig from \"../SdkConfig\";\nimport GenericToast from \"../components/views/toasts/GenericToast\";\nimport ToastStore from \"../stores/ToastStore\";\nimport QuestionDialog from \"../components/views/dialogs/QuestionDialog\";\nimport ChangelogDialog, { checkVersion } from \"../components/views/dialogs/ChangelogDialog\";\nimport PlatformPeg from \"../PlatformPeg\";\nimport Modal from \"../Modal\";\n\nconst TOAST_KEY = \"update\";\n\nfunction installUpdate(): void {\n    PlatformPeg.get()?.installUpdate();\n}\n\nexport const showToast = (version: string, newVersion: string, releaseNotes?: string): void => {\n    function onReject(): void {\n        PlatformPeg.get()?.deferUpdate(newVersion);\n    }\n\n    let onAccept;\n    let acceptLabel = _t(\"update|see_changes_button\");\n    if (releaseNotes) {\n        onAccept = () => {\n            const { finished } = Modal.createDialog(QuestionDialog, {\n                title: _t(\"update|release_notes_toast_title\"),\n                description: <pre>{releaseNotes}</pre>,\n                button: _t(\"action|update\"),\n            });\n            finished.then(([update]) => {\n                if (update && PlatformPeg.get()) {\n                    PlatformPeg.get()!.installUpdate();\n                }\n            });\n        };\n    } else if (checkVersion(version) && checkVersion(newVersion)) {\n        onAccept = () => {\n            const { finished } = Modal.createDialog(ChangelogDialog, {\n                version,\n                newVersion,\n            });\n            finished.then(([update]) => {\n                if (update && PlatformPeg.get()) {\n                    PlatformPeg.get()!.installUpdate();\n                }\n            });\n        };\n    } else {\n        onAccept = installUpdate;\n        acceptLabel = _t(\"action|update\");\n    }\n\n    const brand = SdkConfig.get().brand;\n    ToastStore.sharedInstance().addOrReplaceToast({\n        key: TOAST_KEY,\n        title: _t(\"update|toast_title\", { brand }),\n        props: {\n            description: _t(\"update|toast_description\", { brand }),\n            primaryLabel: acceptLabel,\n            onPrimaryClick: onAccept,\n            secondaryLabel: _t(\"action|dismiss\"),\n            onSecondaryClick: onReject,\n        },\n        component: GenericToast,\n        priority: 20,\n    });\n};\n\nexport const hideToast = (): void => {\n    ToastStore.sharedInstance().dismissToast(TOAST_KEY);\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2016-2019 , 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { uniq } from \"lodash\";\nimport { type Room, type MatrixEvent, EventType, ClientEvent, type MatrixClient } from \"matrix-js-sdk/src/matrix\";\nimport { KnownMembership } from \"matrix-js-sdk/src/types\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport { filterValidMDirect } from \"./dm/filterValidMDirect\";\n\n/**\n * Class that takes a Matrix Client and flips the m.direct map\n * so the operation of mapping a room ID to which user it's a DM\n * with can be performed efficiently.\n *\n * With 'start', this can also keep itself up to date over time.\n */\nexport default class DMRoomMap {\n    private static sharedInstance: DMRoomMap;\n\n    // TODO: convert these to maps\n    private roomToUser: { [key: string]: string } | null = null;\n    private userToRooms: { [key: string]: string[] } | null = null;\n    private hasSentOutPatchDirectAccountDataPatch: boolean;\n    private mDirectEvent!: { [key: string]: string[] };\n\n    public constructor(private readonly matrixClient: MatrixClient) {\n        // see onAccountData\n        this.hasSentOutPatchDirectAccountDataPatch = false;\n\n        const mDirectRawContent = matrixClient.getAccountData(EventType.Direct)?.getContent() ?? {};\n        this.setMDirectFromContent(mDirectRawContent);\n    }\n\n    /**\n     * Makes and returns a new shared instance that can then be accessed\n     * with shared(). This returned instance is not automatically started.\n     */\n    public static makeShared(matrixClient: MatrixClient): DMRoomMap {\n        DMRoomMap.sharedInstance = new DMRoomMap(matrixClient);\n        return DMRoomMap.sharedInstance;\n    }\n\n    /**\n     * Set the shared instance to the instance supplied\n     * Used by tests\n     * @param inst the new shared instance\n     */\n    public static setShared(inst: DMRoomMap): void {\n        DMRoomMap.sharedInstance = inst;\n    }\n\n    /**\n     * Returns a shared instance of the class\n     * that uses the singleton matrix client\n     * The shared instance must be started before use.\n     */\n    public static shared(): DMRoomMap {\n        return DMRoomMap.sharedInstance;\n    }\n\n    public start(): void {\n        this.populateRoomToUser();\n        this.matrixClient.on(ClientEvent.AccountData, this.onAccountData);\n    }\n\n    public stop(): void {\n        this.matrixClient.removeListener(ClientEvent.AccountData, this.onAccountData);\n    }\n\n    /**\n     * Filter m.direct content to contain only valid data and then sets it.\n     * Logs if invalid m.direct content occurs.\n     * {@link filterValidMDirect}\n     *\n     * @param content - Raw m.direct content\n     */\n    private setMDirectFromContent(content: unknown): void {\n        const { valid, filteredContent } = filterValidMDirect(content);\n\n        if (!valid) {\n            logger.warn(\"Invalid m.direct content occurred\", content);\n        }\n\n        this.mDirectEvent = filteredContent;\n    }\n\n    private onAccountData = (ev: MatrixEvent): void => {\n        if (ev.getType() == EventType.Direct) {\n            this.setMDirectFromContent(ev.getContent());\n            this.userToRooms = null;\n            this.roomToUser = null;\n        }\n    };\n\n    /**\n     * some client bug somewhere is causing some DMs to be marked\n     * with ourself, not the other user. Fix it by guessing the other user and\n     * modifying userToRooms\n     */\n    private patchUpSelfDMs(userToRooms: Record<string, string[]>): boolean {\n        const myUserId = this.matrixClient.getUserId()!;\n        const selfRoomIds = userToRooms[myUserId];\n        if (selfRoomIds) {\n            // any self-chats that should not be self-chats?\n            const guessedUserIdsThatChanged = selfRoomIds\n                .map((roomId) => {\n                    const room = this.matrixClient.getRoom(roomId);\n                    if (room) {\n                        const userId = room.guessDMUserId();\n                        if (userId && userId !== myUserId) {\n                            return { userId, roomId };\n                        }\n                    }\n                })\n                .filter((ids) => !!ids) as { userId: string; roomId: string }[]; //filter out\n            // these are actually all legit self-chats\n            // bail out\n            if (!guessedUserIdsThatChanged.length) {\n                return false;\n            }\n            userToRooms[myUserId] = selfRoomIds.filter((roomId) => {\n                return !guessedUserIdsThatChanged.some((ids) => ids.roomId === roomId);\n            });\n            guessedUserIdsThatChanged.forEach(({ userId, roomId }) => {\n                const roomIds = userToRooms[userId];\n                if (!roomIds) {\n                    userToRooms[userId] = [roomId];\n                } else {\n                    roomIds.push(roomId);\n                    userToRooms[userId] = uniq(roomIds);\n                }\n            });\n            return true;\n        }\n        return false;\n    }\n\n    public getDMRoomsForUserId(userId: string): string[] {\n        // Here, we return the empty list if there are no rooms,\n        // since the number of conversations you have with this user is zero.\n        return this.getUserToRooms()[userId] || [];\n    }\n\n    /**\n     * Gets the DM room which the given IDs share, if any.\n     * @param {string[]} ids The identifiers (user IDs and email addresses) to look for.\n     * @returns {Room} The DM room which all IDs given share, or falsy if no common room.\n     */\n    public getDMRoomForIdentifiers(ids: string[]): Room | null {\n        // TODO: [Canonical DMs] Handle lookups for email addresses.\n        // For now we'll pretend we only get user IDs and end up returning nothing for email addresses\n\n        let commonRooms = this.getDMRoomsForUserId(ids[0]);\n        for (let i = 1; i < ids.length; i++) {\n            const userRooms = this.getDMRoomsForUserId(ids[i]);\n            commonRooms = commonRooms.filter((r) => userRooms.includes(r));\n        }\n\n        return (\n            commonRooms\n                .map((r) => this.matrixClient.getRoom(r))\n                .find((r) => r && r.getMyMembership() === KnownMembership.Join) ?? null\n        );\n    }\n\n    public getUserIdForRoomId(roomId: string): string | undefined {\n        if (this.roomToUser == null) {\n            // we lazily populate roomToUser so you can use\n            // this class just to call getDMRoomsForUserId\n            // which doesn't do very much, but is a fairly\n            // convenient wrapper and there's no point\n            // iterating through the map if getUserIdForRoomId()\n            // is never called.\n            this.populateRoomToUser();\n        }\n        // Here, we return undefined if the room is not in the map:\n        // the room ID you gave is not a DM room for any user.\n        if (this.roomToUser![roomId] === undefined) {\n            // no entry? if the room is an invite, look for the is_direct hint.\n            const room = this.matrixClient.getRoom(roomId);\n            if (room) {\n                return room.getDMInviter();\n            }\n        }\n        return this.roomToUser![roomId];\n    }\n\n    public getUniqueRoomsWithIndividuals(): { [userId: string]: Room } {\n        if (!this.roomToUser) return {}; // No rooms means no map.\n        // map roomToUser to valid rooms with two participants\n        return Object.keys(this.roomToUser).reduce(\n            (acc, roomId: string) => {\n                const userId = this.getUserIdForRoomId(roomId);\n                const room = this.matrixClient.getRoom(roomId);\n                const hasTwoMembers = room?.getInvitedAndJoinedMemberCount() === 2;\n                if (userId && room && hasTwoMembers) {\n                    acc[userId] = room;\n                }\n                return acc;\n            },\n            {} as Record<string, Room>,\n        );\n    }\n\n    /**\n     * @returns all room Ids from m.direct\n     */\n    public getRoomIds(): Set<string> {\n        return Object.values(this.mDirectEvent).reduce((prevRoomIds: Set<string>, roomIds: string[]): Set<string> => {\n            roomIds.forEach((roomId) => prevRoomIds.add(roomId));\n            return prevRoomIds;\n        }, new Set<string>());\n    }\n\n    private getUserToRooms(): { [key: string]: string[] } {\n        if (!this.userToRooms) {\n            const userToRooms = this.mDirectEvent;\n            const myUserId = this.matrixClient.getUserId()!;\n            const selfDMs = userToRooms[myUserId];\n            if (selfDMs?.length) {\n                const neededPatching = this.patchUpSelfDMs(userToRooms);\n                // to avoid multiple devices fighting to correct\n                // the account data, only try to send the corrected\n                // version once.\n                logger.warn(`Invalid m.direct account data detected (self-chats that shouldn't be), patching it up.`);\n                if (neededPatching && !this.hasSentOutPatchDirectAccountDataPatch) {\n                    this.hasSentOutPatchDirectAccountDataPatch = true;\n                    this.matrixClient.setAccountData(EventType.Direct, userToRooms);\n                }\n            }\n            this.userToRooms = userToRooms;\n        }\n        return this.userToRooms;\n    }\n\n    private populateRoomToUser(): void {\n        this.roomToUser = {};\n        for (const user of Object.keys(this.getUserToRooms())) {\n            for (const roomId of this.userToRooms![user]) {\n                this.roomToUser[roomId] = user;\n            }\n        }\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2023 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\ninterface CacheItem<K, V> {\n    key: K;\n    value: V;\n    /** Next item in the list */\n    next: CacheItem<K, V> | null;\n    /** Previous item in the list */\n    prev: CacheItem<K, V> | null;\n}\n\n/**\n * Least Recently Used cache.\n * Can be initialised with a capacity and drops the least recently used items.\n * This cache should be error robust: Cache miss on error.\n *\n * Implemented via a key lookup map and a double linked list:\n *             head              tail\n *              a next → b next → c → next null\n *  null ← prev a ← prev b ← prev c\n *\n * @template K - Type of the key used to look up the values inside the cache\n * @template V - Type of the values inside the cache\n */\nexport class LruCache<K, V> {\n    /** Head of the list. */\n    private head: CacheItem<K, V> | null = null;\n    /** Tail of the list */\n    private tail: CacheItem<K, V> | null = null;\n    /** Key lookup map */\n    private map: Map<K, CacheItem<K, V>>;\n\n    /**\n     * @param capacity - Cache capcity.\n     * @throws {Error} - Raises an error if the cache capacity is less than 1.\n     */\n    public constructor(private capacity: number) {\n        if (this.capacity < 1) {\n            throw new Error(\"Cache capacity must be at least 1\");\n        }\n\n        this.map = new Map();\n    }\n\n    /**\n     * Whether the cache contains an item under this key.\n     * Marks the item as most recently used.\n     *\n     * @param key - Key of the item\n     * @returns true: item in cache, else false\n     */\n    public has(key: K): boolean {\n        try {\n            return this.getItem(key) !== undefined;\n        } catch (e) {\n            // Should not happen but makes it more robust to the unknown.\n            this.onError(e);\n            return false;\n        }\n    }\n\n    /**\n     * Returns an item from the cache.\n     * Marks the item as most recently used.\n     *\n     * @param key - Key of the item\n     * @returns The value if found, else undefined\n     */\n    public get(key: K): V | undefined {\n        try {\n            return this.getItem(key)?.value;\n        } catch (e) {\n            // Should not happen but makes it more robust to the unknown.\n            this.onError(e);\n            return undefined;\n        }\n    }\n\n    /**\n     * Adds an item to the cache.\n     * A newly added item will be the set as the most recently used.\n     *\n     * @param key - Key of the item\n     * @param value - Item value\n     */\n    public set(key: K, value: V): void {\n        try {\n            this.safeSet(key, value);\n        } catch (e) {\n            // Should not happen but makes it more robust to the unknown.\n            this.onError(e);\n        }\n    }\n\n    /**\n     * Deletes an item from the cache.\n     *\n     * @param key - Key of the item to be removed\n     */\n    public delete(key: K): void {\n        const item = this.map.get(key);\n\n        // Unknown item.\n        if (!item) return;\n\n        try {\n            this.removeItemFromList(item);\n            this.map.delete(key);\n        } catch (e) {\n            // Should not happen but makes it more robust to the unknown.\n            this.onError(e);\n        }\n    }\n\n    /**\n     * Clears the cache.\n     */\n    public clear(): void {\n        this.map = new Map();\n        this.head = null;\n        this.tail = null;\n    }\n\n    /**\n     * Returns an iterator over the cached values.\n     * @yields each value in the cache\n     */\n    public *values(): IterableIterator<V> {\n        for (const item of this.map.values()) {\n            yield item.value;\n        }\n    }\n\n    private safeSet(key: K, value: V): void {\n        const item = this.getItem(key);\n\n        if (item) {\n            // The item is already stored under this key. Update the value.\n            item.value = value;\n            return;\n        }\n\n        const newItem: CacheItem<K, V> = {\n            key,\n            value,\n            next: null,\n            prev: null,\n        };\n\n        if (this.head) {\n            // Put item in front of the list.\n            this.head.prev = newItem;\n            newItem.next = this.head;\n        }\n\n        this.setHeadTail(newItem);\n\n        // Store item in lookup map.\n        this.map.set(key, newItem);\n\n        if (this.tail && this.map.size > this.capacity) {\n            // Map size exceeded cache capcity. Drop tail item.\n            this.delete(this.tail.key);\n        }\n    }\n\n    private onError(e: unknown): void {\n        logger.warn(\"LruCache error\", e);\n        this.clear();\n    }\n\n    private getItem(key: K): CacheItem<K, V> | undefined {\n        const item = this.map.get(key);\n\n        // Not in cache.\n        if (!item) return undefined;\n\n        // Item is already at the head of the list.\n        // No update required.\n        if (item === this.head) return item;\n\n        this.removeItemFromList(item);\n\n        // Put item to the front.\n\n        if (this.head) {\n            this.head.prev = item;\n        }\n\n        item.prev = null;\n        item.next = this.head;\n\n        this.setHeadTail(item);\n\n        return item;\n    }\n\n    private setHeadTail(item: CacheItem<K, V>): void {\n        if (item.prev === null) {\n            // Item has no previous item → head\n            this.head = item;\n        }\n\n        if (item.next === null) {\n            // Item has no next item → tail\n            this.tail = item;\n        }\n    }\n\n    private removeItemFromList(item: CacheItem<K, V>): void {\n        if (item === this.head) {\n            this.head = item.next;\n        }\n\n        if (item === this.tail) {\n            this.tail = item.prev;\n        }\n\n        if (item.prev) {\n            item.prev.next = item.next;\n        }\n\n        if (item.next) {\n            item.next.prev = item.prev;\n        }\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nexport function snakeToCamel(s: string): string {\n    return s.replace(/._./g, (v) => `${v[0]}${v[2].toUpperCase()}`);\n}\n\nexport class SnakedObject<T = Record<string, any>> {\n    private fallbackWarnings = new Set<string>();\n\n    public constructor(private obj: T) {}\n\n    public get<K extends string & keyof T>(key: K, altCaseName?: string): T[K] {\n        const val = this.obj[key];\n        if (val !== undefined) return val;\n\n        const fallbackKey = altCaseName ?? snakeToCamel(key);\n        const fallback = this.obj[<K>fallbackKey];\n        if (!!fallback && !this.fallbackWarnings.has(fallbackKey)) {\n            this.fallbackWarnings.add(fallbackKey);\n            console.warn(`Using deprecated camelCase config ${fallbackKey}`);\n            console.warn(\n                \"See https://github.com/vector-im/element-web/blob/develop/docs/config.md#-deprecation-notice\",\n            );\n        }\n        return fallback;\n    }\n\n    // Make JSON.stringify() pretend that everything is fine\n    public toJSON(): T {\n        return this.obj;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2021 , 2024 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/**\n * Retrieves the IndexedDB factory object.\n *\n * @returns {IDBFactory | undefined} The IndexedDB factory object if available, or undefined if it is not supported.\n */\nexport function getIDBFactory(): IDBFactory | undefined {\n    // IndexedDB loading is lazy for easier testing.\n\n    // just *accessing* _indexedDB throws an exception in firefox with\n    // indexeddb disabled.\n    try {\n        // `self` is preferred for service workers, which access this file's functions.\n        // We check `self` first because `window` returns something which doesn't work for service workers.\n        // Note: `self?.indexedDB ?? window.indexedDB` breaks in service workers for unknown reasons.\n        return self?.indexedDB ? self.indexedDB : window.indexedDB;\n    } catch {}\n}\n\nlet idb: IDBDatabase | null = null;\n\nasync function idbInit(): Promise<void> {\n    if (!getIDBFactory()) {\n        throw new Error(\"IndexedDB not available\");\n    }\n    idb = await new Promise((resolve, reject) => {\n        const request = getIDBFactory()!.open(\"matrix-react-sdk\", 1);\n        request.onerror = reject;\n        request.onsuccess = (): void => {\n            resolve(request.result);\n        };\n        request.onupgradeneeded = (): void => {\n            const db = request.result;\n            db.createObjectStore(\"pickleKey\");\n            db.createObjectStore(\"account\");\n        };\n    });\n}\n\nasync function idbTransaction(\n    table: string,\n    mode: IDBTransactionMode,\n    fn: (objectStore: IDBObjectStore) => IDBRequest<any>,\n): Promise<any> {\n    if (!idb) {\n        await idbInit();\n    }\n    return new Promise((resolve, reject) => {\n        const txn = idb!.transaction([table], mode);\n        txn.onerror = reject;\n\n        const objectStore = txn.objectStore(table);\n        const request = fn(objectStore);\n        request.onerror = reject;\n        request.onsuccess = (): void => {\n            resolve(request.result);\n        };\n    });\n}\n\n/**\n * Loads an item from an IndexedDB table within the underlying `matrix-react-sdk` database.\n *\n * If IndexedDB access is not supported in the environment, an error is thrown.\n *\n * @param {string} table The name of the object store in IndexedDB.\n * @param {string | string[]} key The key where the data is stored.\n * @returns {Promise<any>} A promise that resolves with the retrieved item from the table.\n */\nexport async function idbLoad(table: string, key: string | string[]): Promise<any> {\n    if (!idb) {\n        await idbInit();\n    }\n    return idbTransaction(table, \"readonly\", (objectStore) => objectStore.get(key));\n}\n\n/**\n * Saves data to an IndexedDB table within the underlying `matrix-react-sdk` database.\n *\n * If IndexedDB access is not supported in the environment, an error is thrown.\n *\n * @param {string} table The name of the object store in the IndexedDB.\n * @param {string|string[]} key The key to use for storing the data.\n * @param {*} data The data to be saved.\n * @returns {Promise<void>} A promise that resolves when the data is saved successfully.\n */\nexport async function idbSave(table: string, key: string | string[], data: any): Promise<void> {\n    if (!idb) {\n        await idbInit();\n    }\n    return idbTransaction(table, \"readwrite\", (objectStore) => objectStore.put(data, key));\n}\n\n/**\n * Deletes a record from an IndexedDB table within the underlying `matrix-react-sdk` database.\n *\n * If IndexedDB access is not supported in the environment, an error is thrown.\n *\n * @param {string} table The name of the object store where the record is stored.\n * @param {string|string[]} key The key of the record to be deleted.\n * @returns {Promise<void>} A Promise that resolves when the record(s) have been successfully deleted.\n */\nexport async function idbDelete(table: string, key: string | string[]): Promise<void> {\n    if (!idb) {\n        await idbInit();\n    }\n    return idbTransaction(table, \"readwrite\", (objectStore) => objectStore.delete(key));\n}\n\n/**\n * Clears all records from an IndexedDB table within the underlying `matrix-react-sdk` database.\n *\n * If IndexedDB access is not supported in the environment, an error is thrown.\n *\n * @param {string} table The name of the object store where the records are stored.\n * @returns {Promise<void>} A Promise that resolves when the record(s) have been successfully deleted.\n */\nexport async function idbClear(table: string): Promise<void> {\n    if (!idb) {\n        await idbInit();\n    }\n    return idbTransaction(table, \"readwrite\", (objectStore) => objectStore.clear());\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { IndexedDBStore, IndexedDBCryptoStore } from \"matrix-js-sdk/src/matrix\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport { getIDBFactory } from \"./StorageAccess\";\n\nconst localStorage = window.localStorage;\n\n// The JS SDK will add a prefix of \"matrix-js-sdk:\" to the sync store name.\nconst SYNC_STORE_NAME = \"riot-web-sync\";\nconst LEGACY_CRYPTO_STORE_NAME = \"matrix-js-sdk:crypto\";\nconst RUST_CRYPTO_STORE_NAME = \"matrix-js-sdk::matrix-sdk-crypto\";\n\nfunction log(msg: string): void {\n    logger.log(`StorageManager: ${msg}`);\n}\n\nfunction error(msg: string, ...args: any[]): void {\n    logger.error(`StorageManager: ${msg}`, ...args);\n}\n\nexport function tryPersistStorage(): void {\n    if (navigator.storage && navigator.storage.persist) {\n        navigator.storage.persist().then((persistent) => {\n            logger.log(\"StorageManager: Persistent?\", persistent);\n        });\n    } else if (document.requestStorageAccess) {\n        // Safari\n        document.requestStorageAccess().then(\n            () => logger.log(\"StorageManager: Persistent?\", true),\n            () => logger.log(\"StorageManager: Persistent?\", false),\n        );\n    } else {\n        logger.log(\"StorageManager: Persistence unsupported\");\n    }\n}\n\nexport async function checkConsistency(): Promise<{\n    healthy: boolean;\n    cryptoInited: boolean;\n    dataInCryptoStore: boolean;\n    dataInLocalStorage: boolean;\n}> {\n    log(\"Checking storage consistency\");\n    log(`Local storage supported? ${!!localStorage}`);\n    log(`IndexedDB supported? ${!!getIDBFactory()}`);\n\n    let dataInLocalStorage = false;\n    let dataInCryptoStore = false;\n    let cryptoInited = false;\n    let healthy = true;\n\n    if (localStorage) {\n        dataInLocalStorage = localStorage.length > 0;\n        log(`Local storage contains data? ${dataInLocalStorage}`);\n\n        cryptoInited = !!localStorage.getItem(\"mx_crypto_initialised\");\n        log(`Crypto initialised? ${cryptoInited}`);\n    } else {\n        healthy = false;\n        error(\"Local storage cannot be used on this browser\");\n    }\n\n    if (getIDBFactory() && localStorage) {\n        const results = await checkSyncStore();\n        if (!results.healthy) {\n            healthy = false;\n        }\n    } else {\n        healthy = false;\n        error(\"Sync store cannot be used on this browser\");\n    }\n\n    if (getIDBFactory()) {\n        const results = await checkCryptoStore();\n        dataInCryptoStore = results.exists;\n        if (!results.healthy) {\n            healthy = false;\n        }\n    } else {\n        healthy = false;\n        error(\"Crypto store cannot be used on this browser\");\n    }\n\n    if (dataInLocalStorage && cryptoInited && !dataInCryptoStore) {\n        healthy = false;\n        error(\n            \"Data exists in local storage and crypto is marked as initialised but no data found in crypto store. \" +\n                \"IndexedDB storage has likely been evicted by the browser!\",\n        );\n    }\n\n    if (healthy) {\n        log(\"Storage consistency checks passed\");\n    } else {\n        error(\"Storage consistency checks failed\");\n    }\n\n    return {\n        dataInLocalStorage,\n        dataInCryptoStore,\n        cryptoInited,\n        healthy,\n    };\n}\n\ninterface StoreCheck {\n    exists: boolean;\n    healthy: boolean;\n}\n\nasync function checkSyncStore(): Promise<StoreCheck> {\n    let exists = false;\n    try {\n        exists = await IndexedDBStore.exists(getIDBFactory()!, SYNC_STORE_NAME);\n        log(`Sync store using IndexedDB contains data? ${exists}`);\n        return { exists, healthy: true };\n    } catch (e) {\n        error(\"Sync store using IndexedDB inaccessible\", e);\n    }\n    log(\"Sync store using memory only\");\n    return { exists, healthy: false };\n}\n\nasync function checkCryptoStore(): Promise<StoreCheck> {\n    // check first if there is a rust crypto store\n    try {\n        const rustDbExists = await IndexedDBCryptoStore.exists(getIDBFactory()!, RUST_CRYPTO_STORE_NAME);\n        log(`Rust Crypto store using IndexedDB contains data? ${rustDbExists}`);\n\n        if (rustDbExists) {\n            // There was an existing rust database, so consider it healthy.\n            return { exists: true, healthy: true };\n        } else {\n            // No rust store, so let's check if there is a legacy store not yet migrated.\n            try {\n                const legacyIdbExists = await IndexedDBCryptoStore.existsAndIsNotMigrated(\n                    getIDBFactory()!,\n                    LEGACY_CRYPTO_STORE_NAME,\n                );\n                log(`Legacy Crypto store using IndexedDB contains non migrated data? ${legacyIdbExists}`);\n                return { exists: legacyIdbExists, healthy: true };\n            } catch (e) {\n                error(\"Legacy crypto store using IndexedDB inaccessible\", e);\n            }\n\n            // No need to check local storage or memory as rust stack doesn't support them.\n            // Given that rust stack requires indexeddb, set healthy to false.\n            return { exists: false, healthy: false };\n        }\n    } catch (e) {\n        error(\"Rust crypto store using IndexedDB inaccessible\", e);\n        return { exists: false, healthy: false };\n    }\n}\n\n/**\n * Sets whether crypto has ever been successfully\n * initialised on this client.\n * StorageManager uses this to determine whether indexeddb\n * has been wiped by the browser: this flag is saved to localStorage\n * and if it is true and not crypto data is found, an error is\n * presented to the user.\n *\n * @param {boolean} cryptoInited True if crypto has been set up\n */\nexport function setCryptoInitialised(cryptoInited: boolean): void {\n    localStorage.setItem(\"mx_crypto_initialised\", String(cryptoInited));\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/**\n * If a url has no path component, etc. abbreviate it to just the hostname\n *\n * @param {string} u The url to be abbreviated\n * @returns {string} The abbreviated url\n */\nexport function abbreviateUrl(u?: string): string {\n    if (!u) return \"\";\n\n    let parsedUrl: URL;\n    try {\n        parsedUrl = parseUrl(u);\n    } catch (e) {\n        console.error(e);\n        // if it's something we can't parse as a url then just return it\n        return u;\n    }\n\n    if (parsedUrl.pathname === \"/\") {\n        // we ignore query / hash parts: these aren't relevant for IS server URLs\n        return parsedUrl.host || \"\";\n    }\n\n    return u;\n}\n\nexport function unabbreviateUrl(u?: string): string {\n    if (!u) return \"\";\n\n    let longUrl = u;\n    if (!u.startsWith(\"https://\")) longUrl = \"https://\" + u;\n    const parsed = parseUrl(longUrl);\n    if (!parsed.hostname) return u;\n\n    return longUrl;\n}\n\nexport function parseUrl(u: string): URL {\n    if (!u.includes(\":\")) {\n        u = window.location.protocol + u;\n    }\n    return new URL(u);\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2017-2020 The Matrix.org Foundation C.I.C.\nCopyright 2019 Travis Ralston\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { useCallback, useEffect, useState } from \"react\";\nimport { base32 } from \"rfc4648\";\nimport { capitalize } from \"lodash\";\nimport { type IWidget, type IWidgetData } from \"matrix-widget-api\";\nimport { type Room, ClientEvent, type MatrixClient, RoomStateEvent, type MatrixEvent } from \"matrix-js-sdk/src/matrix\";\nimport { KnownMembership } from \"matrix-js-sdk/src/types\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { CallType } from \"matrix-js-sdk/src/webrtc/call\";\nimport { LOWERCASE, secureRandomString, secureRandomStringFrom } from \"matrix-js-sdk/src/randomstring\";\n\nimport PlatformPeg from \"../PlatformPeg\";\nimport SdkConfig from \"../SdkConfig\";\nimport dis from \"../dispatcher/dispatcher\";\nimport WidgetEchoStore from \"../stores/WidgetEchoStore\";\nimport { IntegrationManagers } from \"../integrations/IntegrationManagers\";\nimport { WidgetType } from \"../widgets/WidgetType\";\nimport { Jitsi } from \"../widgets/Jitsi\";\nimport { objectClone } from \"./objects\";\nimport { _t } from \"../languageHandler\";\nimport WidgetStore, { type IApp, isAppWidget } from \"../stores/WidgetStore\";\nimport { parseUrl } from \"./UrlUtils\";\nimport { useEventEmitter } from \"../hooks/useEventEmitter\";\nimport { WidgetLayoutStore } from \"../stores/widgets/WidgetLayoutStore\";\nimport { type IWidgetEvent, type UserWidget } from \"./WidgetUtils-types\";\n\n// How long we wait for the state event echo to come back from the server\n// before waitFor[Room/User]Widget rejects its promise\nconst WIDGET_WAIT_TIME = 20000;\n\nexport type { IWidgetEvent, UserWidget };\n\nexport default class WidgetUtils {\n    /**\n     * Returns true if user is able to send state events to modify widgets in this room\n     * (Does not apply to non-room-based / user widgets)\n     * @param client The matrix client of the logged-in user\n     * @param roomId -- The ID of the room to check\n     * @returns Boolean -- true if the user can modify widgets in this room\n     * @throws Error -- specifies the error reason\n     */\n    public static canUserModifyWidgets(client: MatrixClient, roomId?: string): boolean {\n        if (!roomId) {\n            logger.warn(\"No room ID specified\");\n            return false;\n        }\n\n        if (!client) {\n            logger.warn(\"User must be be logged in\");\n            return false;\n        }\n\n        const room = client.getRoom(roomId);\n        if (!room) {\n            logger.warn(`Room ID ${roomId} is not recognised`);\n            return false;\n        }\n\n        const me = client.getUserId();\n        if (!me) {\n            logger.warn(\"Failed to get user ID\");\n            return false;\n        }\n\n        if (room.getMyMembership() !== KnownMembership.Join) {\n            logger.warn(`User ${me} is not in room ${roomId}`);\n            return false;\n        }\n\n        // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)\n        return room.currentState.maySendStateEvent(\"im.vector.modular.widgets\", me);\n    }\n\n    // TODO: Generify the name of this function. It's not just scalar.\n    /**\n     * Returns true if specified url is a scalar URL, typically https://scalar.vector.im/api\n     * @param matrixClient The matrix client of the logged-in user\n     * @param  {[type]}  testUrlString URL to check\n     * @returns {Boolean} True if specified URL is a scalar URL\n     */\n    public static isScalarUrl(testUrlString?: string): boolean {\n        if (!testUrlString) {\n            logger.error(\"Scalar URL check failed. No URL specified\");\n            return false;\n        }\n\n        const testUrl = parseUrl(testUrlString);\n        let scalarUrls = SdkConfig.get().integrations_widgets_urls;\n        if (!scalarUrls || scalarUrls.length === 0) {\n            const defaultManager = IntegrationManagers.sharedInstance().getPrimaryManager();\n            if (defaultManager) {\n                scalarUrls = [defaultManager.apiUrl];\n            } else {\n                scalarUrls = [];\n            }\n        }\n\n        for (let i = 0; i < scalarUrls.length; i++) {\n            const scalarUrl = parseUrl(scalarUrls[i]);\n            if (testUrl && scalarUrl) {\n                if (\n                    testUrl.protocol === scalarUrl.protocol &&\n                    testUrl.host === scalarUrl.host &&\n                    scalarUrl.pathname &&\n                    testUrl.pathname?.startsWith(scalarUrl.pathname)\n                ) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    }\n\n    /**\n     * Returns a promise that resolves when a widget with the given\n     * ID has been added as a user widget (ie. the accountData event\n     * arrives) or rejects after a timeout\n     *\n     * @param client The matrix client of the logged-in user\n     * @param widgetId The ID of the widget to wait for\n     * @param add True to wait for the widget to be added,\n     *     false to wait for it to be deleted.\n     * @returns {Promise} that resolves when the widget is in the\n     *     requested state according to the `add` param\n     */\n    public static waitForUserWidget(client: MatrixClient, widgetId: string, add: boolean): Promise<void> {\n        return new Promise((resolve, reject) => {\n            // Tests an account data event, returning true if it's in the state\n            // we're waiting for it to be in\n            function eventInIntendedState(ev?: MatrixEvent): boolean {\n                if (!ev) return false;\n                if (add) {\n                    return ev.getContent()[widgetId] !== undefined;\n                } else {\n                    return ev.getContent()[widgetId] === undefined;\n                }\n            }\n\n            const startingAccountDataEvent = client.getAccountData(\"m.widgets\");\n            if (eventInIntendedState(startingAccountDataEvent)) {\n                resolve();\n                return;\n            }\n\n            function onAccountData(ev: MatrixEvent): void {\n                const currentAccountDataEvent = client.getAccountData(\"m.widgets\");\n                if (eventInIntendedState(currentAccountDataEvent)) {\n                    client.removeListener(ClientEvent.AccountData, onAccountData);\n                    clearTimeout(timerId);\n                    resolve();\n                }\n            }\n            const timerId = window.setTimeout(() => {\n                client.removeListener(ClientEvent.AccountData, onAccountData);\n                reject(new Error(\"Timed out waiting for widget ID \" + widgetId + \" to appear\"));\n            }, WIDGET_WAIT_TIME);\n            client.on(ClientEvent.AccountData, onAccountData);\n        });\n    }\n\n    /**\n     * Returns a promise that resolves when a widget with the given\n     * ID has been added as a room widget in the given room (ie. the\n     * room state event arrives) or rejects after a timeout\n     *\n     * @param client The matrix client of the logged-in user\n     * @param {string} widgetId The ID of the widget to wait for\n     * @param {string} roomId The ID of the room to wait for the widget in\n     * @param {boolean} add True to wait for the widget to be added,\n     *     false to wait for it to be deleted.\n     * @returns {Promise} that resolves when the widget is in the\n     *     requested state according to the `add` param\n     */\n    public static waitForRoomWidget(\n        client: MatrixClient,\n        widgetId: string,\n        roomId: string,\n        add: boolean,\n    ): Promise<void> {\n        return new Promise((resolve, reject) => {\n            // Tests a list of state events, returning true if it's in the state\n            // we're waiting for it to be in\n            function eventsInIntendedState(evList?: MatrixEvent[]): boolean {\n                const widgetPresent = evList?.some((ev) => {\n                    return ev.getContent() && ev.getContent()[\"id\"] === widgetId;\n                });\n                if (add) {\n                    return !!widgetPresent;\n                } else {\n                    return !widgetPresent;\n                }\n            }\n\n            const room = client.getRoom(roomId);\n            // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)\n            const startingWidgetEvents = room?.currentState.getStateEvents(\"im.vector.modular.widgets\");\n            if (eventsInIntendedState(startingWidgetEvents)) {\n                resolve();\n                return;\n            }\n\n            function onRoomStateEvents(ev: MatrixEvent): void {\n                if (ev.getRoomId() !== roomId || ev.getType() !== \"im.vector.modular.widgets\") return;\n\n                // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)\n                const currentWidgetEvents = room?.currentState.getStateEvents(\"im.vector.modular.widgets\");\n\n                if (eventsInIntendedState(currentWidgetEvents)) {\n                    client.removeListener(RoomStateEvent.Events, onRoomStateEvents);\n                    clearTimeout(timerId);\n                    resolve();\n                }\n            }\n            const timerId = window.setTimeout(() => {\n                client.removeListener(RoomStateEvent.Events, onRoomStateEvents);\n                reject(new Error(\"Timed out waiting for widget ID \" + widgetId + \" to appear\"));\n            }, WIDGET_WAIT_TIME);\n            client.on(RoomStateEvent.Events, onRoomStateEvents);\n        });\n    }\n\n    public static setUserWidget(\n        client: MatrixClient,\n        widgetId: string,\n        widgetType: WidgetType,\n        widgetUrl: string,\n        widgetName: string,\n        widgetData: IWidgetData,\n    ): Promise<void> {\n        // Get the current widgets and clone them before we modify them, otherwise\n        // we'll modify the content of the old event.\n        const userWidgets = objectClone(WidgetUtils.getUserWidgets(client));\n\n        // Delete existing widget with ID\n        try {\n            delete userWidgets[widgetId];\n        } catch {\n            logger.error(`$widgetId is non-configurable`);\n        }\n\n        const addingWidget = Boolean(widgetUrl);\n\n        const userId = client.getSafeUserId();\n\n        const content = {\n            id: widgetId,\n            type: widgetType.preferred,\n            url: widgetUrl,\n            name: widgetName,\n            data: widgetData,\n            creatorUserId: userId,\n        };\n\n        // Add new widget / update\n        if (addingWidget) {\n            userWidgets[widgetId] = {\n                content: content,\n                sender: userId,\n                state_key: widgetId,\n                type: \"m.widget\",\n                id: widgetId,\n            };\n        }\n\n        // This starts listening for when the echo comes back from the server\n        // since the widget won't appear added until this happens. If we don't\n        // wait for this, the action will complete but if the user is fast enough,\n        // the widget still won't actually be there.\n        return client\n            .setAccountData(\"m.widgets\", userWidgets)\n            .then(() => {\n                return WidgetUtils.waitForUserWidget(client, widgetId, addingWidget);\n            })\n            .then(() => {\n                dis.dispatch({ action: \"user_widget_updated\" });\n            });\n    }\n\n    public static setRoomWidget(\n        client: MatrixClient,\n        roomId: string,\n        widgetId: string,\n        widgetType?: WidgetType,\n        widgetUrl?: string,\n        widgetName?: string,\n        widgetData?: IWidgetData,\n        widgetAvatarUrl?: string,\n    ): Promise<void> {\n        let content: Partial<IWidget> & { avatar_url?: string };\n\n        const addingWidget = Boolean(widgetUrl);\n\n        if (addingWidget) {\n            content = {\n                // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)\n                // For now we'll send the legacy event type for compatibility with older apps/elements\n                type: widgetType?.legacy,\n                url: widgetUrl,\n                name: widgetName,\n                data: widgetData,\n                avatar_url: widgetAvatarUrl,\n            };\n        } else {\n            content = {};\n        }\n\n        return WidgetUtils.setRoomWidgetContent(client, roomId, widgetId, content as IWidget);\n    }\n\n    public static setRoomWidgetContent(\n        client: MatrixClient,\n        roomId: string,\n        widgetId: string,\n        content: IWidget & Record<string, any>,\n    ): Promise<void> {\n        const addingWidget = !!content.url;\n\n        WidgetEchoStore.setRoomWidgetEcho(roomId, widgetId, content);\n\n        // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)\n        return client\n            .sendStateEvent(roomId, \"im.vector.modular.widgets\", content, widgetId)\n            .then(() => {\n                return WidgetUtils.waitForRoomWidget(client, widgetId, roomId, addingWidget);\n            })\n            .finally(() => {\n                WidgetEchoStore.removeRoomWidgetEcho(roomId, widgetId);\n            });\n    }\n\n    /**\n     * Get room specific widgets\n     * @param  {Room} room The room to get widgets force\n     * @returns {[object]} Array containing current / active room widgets\n     */\n    public static getRoomWidgets(room: Room): MatrixEvent[] {\n        // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)\n        const appsStateEvents = room.currentState.getStateEvents(\"im.vector.modular.widgets\");\n        if (!appsStateEvents) {\n            return [];\n        }\n\n        return appsStateEvents.filter((ev) => {\n            return ev.getContent().type && ev.getContent().url;\n        });\n    }\n\n    /**\n     * Get user specific widgets (not linked to a specific room)\n     * @param client The matrix client of the logged-in user\n     * @returns {object} Event content object containing current / active user widgets\n     */\n    public static getUserWidgets(client: MatrixClient | undefined): Record<string, UserWidget> {\n        if (!client) {\n            throw new Error(\"User not logged in\");\n        }\n        const userWidgets = client.getAccountData(\"m.widgets\");\n        if (userWidgets && userWidgets.getContent()) {\n            return userWidgets.getContent();\n        }\n        return {};\n    }\n\n    /**\n     * Get user specific widgets (not linked to a specific room) as an array\n     * @param client The matrix client of the logged-in user\n     * @returns {[object]} Array containing current / active user widgets\n     */\n    public static getUserWidgetsArray(client: MatrixClient | undefined): UserWidget[] {\n        return Object.values(WidgetUtils.getUserWidgets(client));\n    }\n\n    /**\n     * Get active stickerpicker widgets (stickerpickers are user widgets by nature)\n     * @param client The matrix client of the logged-in user\n     * @returns {[object]} Array containing current / active stickerpicker widgets\n     */\n    public static getStickerpickerWidgets(client: MatrixClient | undefined): UserWidget[] {\n        const widgets = WidgetUtils.getUserWidgetsArray(client);\n        return widgets.filter((widget) => widget.content?.type === \"m.stickerpicker\");\n    }\n\n    /**\n     * Get all integration manager widgets for this user.\n     * @param client The matrix client of the logged-in user\n     * @returns {Object[]} An array of integration manager user widgets.\n     */\n    public static getIntegrationManagerWidgets(client: MatrixClient | undefined): UserWidget[] {\n        const widgets = WidgetUtils.getUserWidgetsArray(client);\n        return widgets.filter((w) => w.content?.type === \"m.integration_manager\");\n    }\n\n    /**\n     * Remove all stickerpicker widgets (stickerpickers are user widgets by nature)\n     * @param client The matrix client of the logged-in user\n     * @returns {Promise} Resolves on account data updated\n     */\n    public static async removeStickerpickerWidgets(client: MatrixClient | undefined): Promise<void> {\n        if (!client) {\n            throw new Error(\"User not logged in\");\n        }\n        const widgets = client.getAccountData(\"m.widgets\");\n        if (!widgets) return;\n        const userWidgets: Record<string, IWidgetEvent> = widgets.getContent() || {};\n        Object.entries(userWidgets).forEach(([key, widget]) => {\n            if (widget.content && widget.content.type === \"m.stickerpicker\") {\n                delete userWidgets[key];\n            }\n        });\n        await client.setAccountData(\"m.widgets\", userWidgets);\n    }\n\n    public static async addJitsiWidget(\n        client: MatrixClient,\n        roomId: string,\n        type: CallType,\n        name: string,\n        isVideoChannel: boolean,\n        oobRoomName?: string,\n    ): Promise<void> {\n        const domain = Jitsi.getInstance().preferredDomain;\n        const auth = (await Jitsi.getInstance().getJitsiAuth()) ?? undefined;\n\n        // Must be globally unique, although predicatablity is not important, the js-sdk has functions to generate\n        // secure ranom strings, and speed is not important here.\n        const widgetId = secureRandomString(24);\n\n        let confId: string;\n        if (auth === \"openidtoken-jwt\") {\n            // Create conference ID from room ID\n            // For compatibility with Jitsi, use base32 without padding.\n            // More details here:\n            // https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification\n            confId = base32.stringify(new TextEncoder().encode(roomId), { pad: false });\n        } else {\n            // Create a random conference ID (capitalised so the name looks sensible in Jitsi)\n            confId = `Jitsi${capitalize(secureRandomStringFrom(24, LOWERCASE))}`;\n        }\n\n        // TODO: Remove URL hacks when the mobile clients eventually support v2 widgets\n        const widgetUrl = new URL(WidgetUtils.getLocalJitsiWrapperUrl({ auth }));\n        widgetUrl.search = \"\"; // Causes the URL class use searchParams instead\n        widgetUrl.searchParams.set(\"confId\", confId);\n\n        await WidgetUtils.setRoomWidget(client, roomId, widgetId, WidgetType.JITSI, widgetUrl.toString(), name, {\n            conferenceId: confId,\n            roomName: oobRoomName ?? client.getRoom(roomId)?.name,\n            isAudioOnly: type === CallType.Voice,\n            isVideoChannel,\n            domain,\n            auth,\n        });\n    }\n\n    public static makeAppConfig(\n        appId: string,\n        app: Partial<IApp>,\n        senderUserId: string,\n        roomId: string | undefined,\n        eventId: string | undefined,\n    ): IApp {\n        if (!senderUserId) {\n            throw new Error(\"Widgets must be created by someone - provide a senderUserId\");\n        }\n        app.creatorUserId = senderUserId;\n\n        app.id = appId;\n        app.roomId = roomId;\n        app.eventId = eventId;\n        app.name = app.name || app.type;\n\n        return app as IApp;\n    }\n\n    public static getLocalJitsiWrapperUrl(opts: { forLocalRender?: boolean; auth?: string } = {}): string {\n        // NB. we can't just encodeURIComponent all of these because the $ signs need to be there\n        const queryStringParts = [\n            \"conferenceDomain=$domain\",\n            \"conferenceId=$conferenceId\",\n            \"isAudioOnly=$isAudioOnly\",\n            \"startWithAudioMuted=$startWithAudioMuted\",\n            \"startWithVideoMuted=$startWithVideoMuted\",\n            \"isVideoChannel=$isVideoChannel\",\n            \"displayName=$matrix_display_name\",\n            \"avatarUrl=$matrix_avatar_url\",\n            \"userId=$matrix_user_id\",\n            \"roomId=$matrix_room_id\",\n            \"theme=$theme\",\n            \"roomName=$roomName\",\n            `supportsScreensharing=${PlatformPeg.get()?.supportsJitsiScreensharing()}`,\n            \"language=$org.matrix.msc2873.client_language\",\n        ];\n        if (opts.auth) {\n            queryStringParts.push(`auth=${opts.auth}`);\n        }\n        const queryString = queryStringParts.join(\"&\");\n\n        let baseUrl = window.location.href;\n        if (window.location.protocol !== \"https:\" && !opts.forLocalRender) {\n            // Use an external wrapper if we're not locally rendering the widget. This is usually\n            // the URL that will end up in the widget event, so we want to make sure it's relatively\n            // safe to send.\n            // We'll end up using a local render URL when we see a Jitsi widget anyways, so this is\n            // really just for backwards compatibility and to appease the spec.\n            baseUrl = PlatformPeg.get()!.baseUrl;\n        }\n        const url = new URL(\"jitsi.html#\" + queryString, baseUrl); // this strips hash fragment from baseUrl\n        return url.href;\n    }\n\n    public static getWidgetName(app?: IWidget): string {\n        return app?.name?.trim() || _t(\"widget|no_name\");\n    }\n\n    public static getWidgetDataTitle(app?: IWidget): string {\n        return app?.data?.title?.trim() || \"\";\n    }\n\n    public static getWidgetUid(app?: IApp | IWidget): string {\n        return app ? WidgetUtils.calcWidgetUid(app.id, isAppWidget(app) ? app.roomId : undefined) : \"\";\n    }\n\n    public static calcWidgetUid(widgetId: string, roomId?: string): string {\n        return roomId ? `room_${roomId}_${widgetId}` : `user_${widgetId}`;\n    }\n\n    public static editWidget(room: Room, app: IWidget): void {\n        // noinspection JSIgnoredPromiseFromCall\n        IntegrationManagers.sharedInstance()\n            .getPrimaryManager()\n            ?.open(room, \"type_\" + app.type, app.id);\n    }\n\n    public static isManagedByManager(app: IWidget): boolean {\n        if (WidgetUtils.isScalarUrl(app.url)) {\n            const managers = IntegrationManagers.sharedInstance();\n            if (managers.hasManager()) {\n                // TODO: Pick the right manager for the widget\n                const defaultManager = managers.getPrimaryManager();\n                return WidgetUtils.isScalarUrl(defaultManager?.apiUrl);\n            }\n        }\n        return false;\n    }\n}\n\n/**\n * Hook to get the widgets for a room and update when they change\n * @param room the room to get widgets for\n */\nexport const useWidgets = (room: Room): IApp[] => {\n    const [apps, setApps] = useState<IApp[]>(() => WidgetStore.instance.getApps(room.roomId));\n\n    const updateApps = useCallback(() => {\n        // Copy the array so that we always trigger a re-render, as some updates mutate the array of apps/settings\n        setApps([...WidgetStore.instance.getApps(room.roomId)]);\n    }, [room]);\n\n    useEffect(updateApps, [room, updateApps]);\n    useEventEmitter(WidgetStore.instance, room.roomId, updateApps);\n    useEventEmitter(WidgetLayoutStore.instance, WidgetLayoutStore.emissionForRoom(room), updateApps);\n\n    return apps;\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020, 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { percentageOf, percentageWithin } from \"@element-hq/web-shared-components/numbers\";\n\n/**\n * Quickly resample an array to have less/more data points. If an input which is larger\n * than the desired size is provided, it will be downsampled. Similarly, if the input\n * is smaller than the desired size then it will be upsampled.\n * @param {number[]} input The input array to resample.\n * @param {number} points The number of samples to end up with.\n * @returns {number[]} The resampled array.\n */\nexport function arrayFastResample(input: number[], points: number): number[] {\n    if (input.length === points) return input; // short-circuit a complicated call\n\n    // Heavily inspired by matrix-media-repo (used with permission)\n    // https://github.com/turt2live/matrix-media-repo/blob/abe72c87d2e29/util/util_audio/fastsample.go#L10\n    const samples: number[] = [];\n    if (input.length > points) {\n        // Danger: this loop can cause out of memory conditions if the input is too small.\n        const everyNth = Math.round(input.length / points);\n        for (let i = 0; i < input.length; i += everyNth) {\n            samples.push(input[i]);\n        }\n    } else {\n        // Smaller inputs mean we have to spread the values over the desired length. We\n        // end up overshooting the target length in doing this, but we're not looking to\n        // be super accurate so we'll let the sanity trims do their job.\n        const spreadFactor = Math.ceil(points / input.length);\n        for (const val of input) {\n            samples.push(...arraySeed(val, spreadFactor));\n        }\n    }\n\n    // Trim to size & return\n    return arrayTrimFill(samples, points, arraySeed(input[input.length - 1], points));\n}\n\n/**\n * Attempts a smooth resample of the given array. This is functionally similar to arrayFastResample\n * though can take longer due to the smoothing of data.\n * @param {number[]} input The input array to resample.\n * @param {number} points The number of samples to end up with.\n * @returns {number[]} The resampled array.\n */\nexport function arraySmoothingResample(input: number[], points: number): number[] {\n    if (input.length === points) return input; // short-circuit a complicated call\n\n    let samples: number[] = [];\n    if (input.length > points) {\n        // We're downsampling. To preserve the curve we'll actually reduce our sample\n        // selection and average some points between them.\n\n        // All we're doing here is repeatedly averaging the waveform down to near our\n        // target value. We don't average down to exactly our target as the loop might\n        // never end, and we can over-average the data. Instead, we'll get as far as\n        // we can and do a followup fast resample (the neighbouring points will be close\n        // to the actual waveform, so we can get away with this safely).\n        while (samples.length > points * 2 || samples.length === 0) {\n            samples = [];\n            for (let i = 1; i < input.length - 1; i += 2) {\n                const prevPoint = input[i - 1];\n                const nextPoint = input[i + 1];\n                const currPoint = input[i];\n                const average = (prevPoint + nextPoint + currPoint) / 3;\n                samples.push(average);\n            }\n            input = samples;\n        }\n\n        return arrayFastResample(samples, points);\n    } else {\n        // In practice there's not much purpose in burning CPU for short arrays only to\n        // end up with a result that can't possibly look much different than the fast\n        // resample, so just skip ahead to the fast resample.\n        return arrayFastResample(input, points);\n    }\n}\n\n/**\n * Rescales the input array to have values that are inclusively within the provided\n * minimum and maximum.\n * @param {number[]} input The array to rescale.\n * @param {number} newMin The minimum value to scale to.\n * @param {number} newMax The maximum value to scale to.\n * @returns {number[]} The rescaled array.\n */\nexport function arrayRescale(input: number[], newMin: number, newMax: number): number[] {\n    const min: number = Math.min(...input);\n    const max: number = Math.max(...input);\n    return input.map((v) => percentageWithin(percentageOf(v, min, max), newMin, newMax));\n}\n\n/**\n * Creates an array of the given length, seeded with the given value.\n * @param {T} val The value to seed the array with.\n * @param {number} length The length of the array to create.\n * @returns {T[]} The array.\n */\nexport function arraySeed<T>(val: T, length: number): T[] {\n    // Size the array up front for performance, and use `fill` to let the browser\n    // optimize the operation better than we can with a `for` loop, if it wants.\n    return new Array<T>(length).fill(val);\n}\n\n/**\n * Trims or fills the array to ensure it meets the desired length. The seed array\n * given is pulled from to fill any missing slots - it is recommended that this be\n * at least `len` long. The resulting array will be exactly `len` long, either\n * trimmed from the source or filled with the some/all of the seed array.\n * @param {T[]} a The array to trim/fill.\n * @param {number} len The length to trim or fill to, as needed.\n * @param {T[]} seed Values to pull from if the array needs filling.\n * @returns {T[]} The resulting array of `len` length.\n */\nexport function arrayTrimFill<T>(a: T[], len: number, seed: T[]): T[] {\n    // Dev note: we do length checks because the spread operator can result in some\n    // performance penalties in more critical code paths. As a utility, it should be\n    // as fast as possible to not cause a problem for the call stack, no matter how\n    // critical that stack is.\n    if (a.length === len) return a;\n    if (a.length > len) return a.slice(0, len);\n    return a.concat(seed.slice(0, len - a.length));\n}\n\n/**\n * Clones an array as fast as possible, retaining references of the array's values.\n * @param a The array to clone. Must be defined.\n * @returns A copy of the array.\n */\nexport function arrayFastClone<T>(a: T[]): T[] {\n    return a.slice(0, a.length);\n}\n\n/**\n * Determines if the two arrays are different either in length, contents,\n * or order of those contents.\n * @param a The first array. Must be defined.\n * @param b The second array. Must be defined.\n * @returns True if they are different, false otherwise.\n */\nexport function arrayHasOrderChange(a: any[], b: any[]): boolean {\n    if (a.length === b.length) {\n        for (let i = 0; i < a.length; i++) {\n            if (a[i] !== b[i]) return true;\n        }\n        return false;\n    } else {\n        return true; // like arrayHasDiff, a difference in length is a natural change\n    }\n}\n\n/**\n * Determines if two arrays are different through a shallow comparison.\n * @param a The first array. Must be defined.\n * @param b The second array. Must be defined.\n * @returns True if they are different, false otherwise.\n */\nexport function arrayHasDiff(a: any[], b: any[]): boolean {\n    if (a.length === b.length) {\n        // When the lengths are equal, check to see if either array is missing\n        // an element from the other.\n        if (b.some((i) => !a.includes(i))) return true;\n        if (a.some((i) => !b.includes(i))) return true;\n\n        // if all the keys are common, say so\n        return false;\n    } else {\n        return true; // different lengths means they are naturally diverged\n    }\n}\n\nexport type Diff<T> = { added: T[]; removed: T[] };\n\n/**\n * Performs a diff on two arrays. The result is what is different with the\n * first array (`added` in the returned object means objects in B that aren't\n * in A). Shallow comparisons are used to perform the diff.\n * @param a The first array. Must be defined.\n * @param b The second array. Must be defined.\n * @returns The diff between the arrays.\n */\nexport function arrayDiff<T>(a: T[], b: T[]): Diff<T> {\n    return {\n        added: b.filter((i) => !a.includes(i)),\n        removed: a.filter((i) => !b.includes(i)),\n    };\n}\n\n/**\n * Returns the intersection of two arrays.\n * @param a The first array. Must be defined.\n * @param b The second array. Must be defined.\n * @returns The intersection of the arrays.\n */\nexport function arrayIntersection<T>(a: T[], b: T[]): T[] {\n    return a.filter((i) => b.includes(i));\n}\n\n/**\n * Unions arrays, deduping contents using a Set.\n * @param a The arrays to merge.\n * @returns The union of all given arrays.\n */\nexport function arrayUnion<T>(...a: T[][]): T[] {\n    return Array.from(\n        a.reduce((c, v) => {\n            v.forEach((i) => c.add(i));\n            return c;\n        }, new Set<T>()),\n    );\n}\n\n/**\n * Moves a single element from fromIndex to toIndex.\n * @param {array} list the list from which to construct the new list.\n * @param {number} fromIndex the index of the element to move.\n * @param {number} toIndex the index of where to put the element.\n * @returns {array} A new array with the requested value moved.\n */\nexport function moveElement<T>(list: T[], fromIndex: number, toIndex: number): T[] {\n    const result = Array.from(list);\n    const [removed] = result.splice(fromIndex, 1);\n    result.splice(toIndex, 0, removed);\n\n    return result;\n}\n\n/**\n * Helper functions to perform LINQ-like queries on arrays.\n */\nexport class ArrayUtil<T> {\n    /**\n     * Create a new array helper.\n     * @param a The array to help. Can be modified in-place.\n     */\n    public constructor(private a: T[]) {}\n\n    /**\n     * The value of this array, after all appropriate alterations.\n     */\n    public get value(): T[] {\n        return this.a;\n    }\n\n    /**\n     * Groups an array by keys.\n     * @param fn The key-finding function.\n     * @returns This.\n     */\n    public groupBy<K>(fn: (a: T) => K): GroupedArray<K, T> {\n        const obj = this.a.reduce((rv: Map<K, T[]>, val: T) => {\n            const k = fn(val);\n            if (!rv.has(k)) rv.set(k, []);\n            rv.get(k)!.push(val);\n            return rv;\n        }, new Map<K, T[]>());\n        return new GroupedArray(obj);\n    }\n}\n\n/**\n * Helper functions to perform LINQ-like queries on groups (maps).\n */\nexport class GroupedArray<K, T> {\n    /**\n     * Creates a new group helper.\n     * @param val The group to help. Can be modified in-place.\n     */\n    public constructor(private val: Map<K, T[]>) {}\n\n    /**\n     * The value of this group, after all applicable alterations.\n     */\n    public get value(): Map<K, T[]> {\n        return this.val;\n    }\n\n    /**\n     * Orders the grouping into an array using the provided key order.\n     * @param keyOrder The key order.\n     * @returns An array helper of the result.\n     */\n    public orderBy(keyOrder: K[]): ArrayUtil<T> {\n        const a: T[] = [];\n        for (const k of keyOrder) {\n            if (!this.val.has(k)) continue;\n            a.push(...this.val.get(k)!);\n        }\n        return new ArrayUtil(a);\n    }\n}\n\nexport const concat = (...arrays: Uint8Array<ArrayBuffer>[]): Uint8Array<ArrayBuffer> => {\n    return arrays.reduce((concatenatedSoFar: Uint8Array<ArrayBuffer>, toBeConcatenated: Uint8Array<ArrayBuffer>) => {\n        const concatenated = new Uint8Array(concatenatedSoFar.length + toBeConcatenated.length);\n        concatenated.set(concatenatedSoFar, 0);\n        concatenated.set(toBeConcatenated, concatenatedSoFar.length);\n        return concatenated;\n    }, new Uint8Array(0));\n};\n\n/**\n * Async version of Array.every.\n */\nexport async function asyncEvery<T>(values: Iterable<T>, predicate: (value: T) => Promise<boolean>): Promise<boolean> {\n    for (const value of values) {\n        if (!(await predicate(value))) return false;\n    }\n    return true;\n}\n\n/**\n * Async version of Array.some.\n */\nexport async function asyncSome<T>(values: Iterable<T>, predicate: (value: T) => Promise<boolean>): Promise<boolean> {\n    for (const value of values) {\n        if (await predicate(value)) return true;\n    }\n    return false;\n}\n\n/**\n * Async version of Array.some that runs all promises in parallel.\n * @param values\n * @param predicate\n */\nexport async function asyncSomeParallel<T>(\n    values: Array<T>,\n    predicate: (value: T) => Promise<boolean>,\n): Promise<boolean> {\n    try {\n        return await Promise.any<boolean>(\n            values.map((value) =>\n                predicate(value).then((result) => (result ? Promise.resolve(true) : Promise.reject(false))),\n            ),\n        );\n    } catch (e) {\n        // If the array is empty or all the promises are false, Promise.any will reject an AggregateError\n        if (e instanceof AggregateError) return false;\n        throw e;\n    }\n}\n\n/**\n * Async version of Array.filter.\n * If one of the promises rejects, the whole operation will reject.\n * @param values\n * @param predicate\n */\nexport async function asyncFilter<T>(values: Array<T>, predicate: (value: T) => Promise<boolean>): Promise<Array<T>> {\n    const results = await Promise.all(values.map(predicate));\n    return values.filter((_, i) => results[i]);\n}\n\nexport function filterBoolean<T>(values: Array<T | null | undefined>): T[] {\n    return values.filter(Boolean) as T[];\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2024 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { type StartDehydrationOpts } from \"matrix-js-sdk/src/crypto-api\";\n\nimport type { MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\n/**\n * If dehydration is supported by the server, rehydrate a device (if available) and create\n * a new dehydrated device.\n *\n * @param client - MatrixClient to use for the operation\n * @param opts - options for the startDehydration operation, if one is performed.\n */\nexport async function initialiseDehydrationIfEnabled(\n    client: MatrixClient,\n    opts: StartDehydrationOpts = {},\n): Promise<void> {\n    const crypto = client.getCrypto();\n    if (crypto && (await crypto.isDehydrationSupported())) {\n        logger.debug(\"Starting device dehydration\");\n        await crypto.startDehydration(opts);\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport UAParser from \"ua-parser-js\";\n\nexport enum DeviceType {\n    Desktop = \"Desktop\",\n    Mobile = \"Mobile\",\n    Web = \"Web\",\n    Unknown = \"Unknown\",\n}\nexport type ExtendedDeviceInformation = {\n    deviceType: DeviceType;\n    // eg Google Pixel 6\n    deviceModel?: string;\n    // eg Android 11\n    deviceOperatingSystem?: string;\n    // eg Firefox 1.1.0\n    client?: string;\n};\n\n// Element/1.8.21 (iPhone XS Max; iOS 15.2; Scale/3.00)\nconst IOS_KEYWORD = \"; iOS \";\nconst BROWSER_KEYWORD = \"Mozilla/\";\n\nconst getDeviceType = (\n    userAgent: string,\n    device: UAParser.IDevice,\n    browser: UAParser.IBrowser,\n    operatingSystem: UAParser.IOS,\n): DeviceType => {\n    if (device.type === \"mobile\" || operatingSystem.name?.includes(\"Android\") || userAgent.indexOf(IOS_KEYWORD) > -1) {\n        return DeviceType.Mobile;\n    }\n    if (browser.name === \"Electron\") {\n        return DeviceType.Desktop;\n    }\n    if (!!browser.name) {\n        return DeviceType.Web;\n    }\n    return DeviceType.Unknown;\n};\n\ninterface CustomValues {\n    customDeviceModel?: string;\n    customDeviceOS?: string;\n}\n/**\n * Some mobile model and OS strings are not recognised\n * by the UA parsing library\n * check they exist by hand\n */\nconst checkForCustomValues = (userAgent: string): CustomValues => {\n    if (userAgent.includes(BROWSER_KEYWORD)) {\n        return {};\n    }\n\n    const mightHaveDevice = userAgent.includes(\"(\");\n    if (!mightHaveDevice) {\n        return {};\n    }\n    const deviceInfoSegments = userAgent.substring(userAgent.indexOf(\"(\") + 1).split(\"; \");\n    const customDeviceModel = deviceInfoSegments[0] || undefined;\n    const customDeviceOS = deviceInfoSegments[1] || undefined;\n    return { customDeviceModel, customDeviceOS };\n};\n\nconst concatenateNameAndVersion = (name?: string, version?: string): string | undefined =>\n    name && [name, version].filter(Boolean).join(\" \");\n\nexport const parseUserAgent = (userAgent?: string): ExtendedDeviceInformation => {\n    if (!userAgent) {\n        return {\n            deviceType: DeviceType.Unknown,\n        };\n    }\n\n    const parser = new UAParser(userAgent);\n\n    const browser = parser.getBrowser();\n    const device = parser.getDevice();\n    const operatingSystem = parser.getOS();\n\n    const deviceType = getDeviceType(userAgent, device, browser, operatingSystem);\n\n    // OSX versions are frozen at 10.15.17 in UA strings https://chromestatus.com/feature/5452592194781184\n    // ignore OS version in browser based sessions\n    const shouldIgnoreOSVersion = deviceType === DeviceType.Web || deviceType === DeviceType.Desktop;\n    const deviceOperatingSystem = concatenateNameAndVersion(\n        operatingSystem.name,\n        shouldIgnoreOSVersion ? undefined : operatingSystem.version,\n    );\n    const deviceModel = concatenateNameAndVersion(device.vendor, device.model);\n    const client = concatenateNameAndVersion(browser.name, browser.version);\n\n    // only try to parse custom model and OS when device type is known\n    const { customDeviceModel, customDeviceOS } =\n        deviceType !== DeviceType.Unknown ? checkForCustomValues(userAgent) : ({} as CustomValues);\n\n    return {\n        deviceType,\n        deviceModel: deviceModel || customDeviceModel,\n        deviceOperatingSystem: deviceOperatingSystem || customDeviceOS,\n        client,\n    };\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2023 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\ninterface FilterValidMDirectResult {\n    /** Whether the entire content is valid */\n    valid: boolean;\n    /** Filtered content with only the valid parts */\n    filteredContent: Record<string, string[]>;\n}\n\n/**\n * Filter m.direct content to be compliant to https://spec.matrix.org/v1.6/client-server-api/#mdirect.\n *\n * @param content - Raw event content to be filerted\n * @returns value as a flag whether to content was valid.\n *          filteredContent with only values from the content that are spec compliant.\n */\nexport const filterValidMDirect = (content: unknown): FilterValidMDirectResult => {\n    if (content === null || typeof content !== \"object\") {\n        return {\n            valid: false,\n            filteredContent: {},\n        };\n    }\n\n    const filteredContent = new Map();\n    let valid = true;\n\n    for (const [userId, roomIds] of Object.entries(content)) {\n        if (typeof userId !== \"string\") {\n            valid = false;\n            continue;\n        }\n\n        if (!Array.isArray(roomIds)) {\n            valid = false;\n            continue;\n        }\n\n        const filteredRoomIds: string[] = [];\n        filteredContent.set(userId, filteredRoomIds);\n\n        for (const roomId of roomIds) {\n            if (typeof roomId === \"string\") {\n                filteredRoomIds.push(roomId);\n            } else {\n                valid = false;\n            }\n        }\n    }\n\n    return {\n        valid,\n        filteredContent: Object.fromEntries(filteredContent.entries()),\n    };\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type Room } from \"matrix-js-sdk/src/matrix\";\n\nimport { LocalRoom, LOCAL_ROOM_ID_PREFIX } from \"../../models/LocalRoom\";\n\nexport function isLocalRoom(roomOrID?: Room | string | null): boolean {\n    if (typeof roomOrID === \"string\") {\n        return roomOrID.startsWith(LOCAL_ROOM_ID_PREFIX);\n    }\n    return roomOrID instanceof LocalRoom;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { arrayDiff, arrayIntersection } from \"./arrays\";\n\n/**\n * Determines the keys added, changed, and removed between two Maps.\n * For changes, simple triple equal comparisons are done, not in-depth tree checking.\n * @param a The first Map. Must be defined.\n * @param b The second Map. Must be defined.\n * @returns The difference between the keys of each Map.\n */\nexport function mapDiff<K, V>(a: Map<K, V>, b: Map<K, V>): { changed: K[]; added: K[]; removed: K[] } {\n    const aKeys = [...a.keys()];\n    const bKeys = [...b.keys()];\n    const keyDiff = arrayDiff(aKeys, bKeys);\n    const possibleChanges = arrayIntersection(aKeys, bKeys);\n    const changes = possibleChanges.filter((k) => a.get(k) !== b.get(k));\n\n    return { changed: changes, added: keyDiff.added, removed: keyDiff.removed };\n}\n\n/**\n * A Map<K, V> with added utility.\n */\nexport class EnhancedMap<K, V> extends Map<K, V> {\n    public constructor(entries?: Iterable<[K, V]>) {\n        super(entries);\n    }\n\n    public getOrCreate(key: K, def: V): V {\n        if (this.has(key)) {\n            return this.get(key)!;\n        }\n        this.set(key, def);\n        return def;\n    }\n\n    public remove(key: K): V | undefined {\n        const v = this.get(key);\n        this.delete(key);\n        return v;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020, 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { arrayDiff, arrayUnion, arrayIntersection } from \"./arrays\";\n\ntype ObjectExcluding<O extends object, P extends (keyof O)[]> = { [k in Exclude<keyof O, P[number]>]: O[k] };\n\n/**\n * Gets a new object which represents the provided object, excluding some properties.\n * @param a The object to strip properties of. Must be defined.\n * @param props The property names to remove.\n * @returns The new object without the provided properties.\n */\nexport function objectExcluding<O extends object, P extends Array<keyof O>>(a: O, props: P): ObjectExcluding<O, P> {\n    // We use a Map to avoid hammering the `delete` keyword, which is slow and painful.\n    const tempMap = new Map<keyof O, any>(Object.entries(a) as [keyof O, any][]);\n    for (const prop of props) {\n        tempMap.delete(prop);\n    }\n\n    // Convert the map to an object again\n    return Array.from(tempMap.entries()).reduce((c, [k, v]) => {\n        c[k] = v;\n        return c;\n    }, {} as O);\n}\n\n/**\n * Clones an object to a caller-controlled depth. When a propertyCloner is supplied, the\n * object's properties will be passed through it with the return value used as the new\n * object's type. This is intended to be used to deep clone a reference, but without\n * having to deep clone the entire object. This function is safe to call recursively within\n * the propertyCloner.\n * @param a The object to clone. Must be defined.\n * @param propertyCloner The function to clone the properties of the object with, optionally.\n * First argument is the property key with the second being the current value.\n * @returns A cloned object.\n */\nexport function objectShallowClone<O extends object>(a: O, propertyCloner?: (k: keyof O, v: O[keyof O]) => any): O {\n    const newObj = {} as O;\n    for (const [k, v] of Object.entries(a) as [keyof O, O[keyof O]][]) {\n        newObj[k] = v;\n        if (propertyCloner) {\n            newObj[k] = propertyCloner(k, v);\n        }\n    }\n    return newObj;\n}\n\n/**\n * Determines if any keys were added, removed, or changed between two objects.\n * For changes, simple triple equal comparisons are done, not in-depth\n * tree checking.\n * @param a The first object. Must be defined.\n * @param b The second object. Must be defined.\n * @returns True if there's a difference between the objects, false otherwise\n */\nexport function objectHasDiff<O extends object>(a: O, b: O): boolean {\n    if (a === b) return false;\n    const aKeys = Object.keys(a);\n    const bKeys = Object.keys(b);\n    if (aKeys.length !== bKeys.length) return true;\n    const possibleChanges = arrayIntersection(aKeys, bKeys) as Array<keyof O>;\n    // if the amalgamation of both sets of keys has the a different length to the inputs then there must be a change\n    if (possibleChanges.length !== aKeys.length) return true;\n\n    return possibleChanges.some((k) => a[k] !== b[k]);\n}\n\ntype Diff<K> = { changed: K[]; added: K[]; removed: K[] };\n\n/**\n * Determines the keys added, changed, and removed between two objects.\n * For changes, simple triple equal comparisons are done, not in-depth\n * tree checking.\n * @param a The first object. Must be defined.\n * @param b The second object. Must be defined.\n * @returns The difference between the keys of each object.\n */\nexport function objectDiff<O extends object>(a: O, b: O): Diff<keyof O> {\n    const aKeys = Object.keys(a) as (keyof O)[];\n    const bKeys = Object.keys(b) as (keyof O)[];\n    const keyDiff = arrayDiff(aKeys, bKeys);\n    const possibleChanges = arrayIntersection(aKeys, bKeys);\n    const changes = possibleChanges.filter((k) => a[k] !== b[k]);\n\n    return { changed: changes, added: keyDiff.added, removed: keyDiff.removed };\n}\n\n/**\n * Gets all the key changes (added, removed, or value difference) between\n * two objects. Triple equals is used to compare values, not in-depth tree\n * checking.\n * @param a The first object. Must be defined.\n * @param b The second object. Must be defined.\n * @returns The keys which have been added, removed, or changed between the\n * two objects.\n */\nexport function objectKeyChanges<O extends object>(a: O, b: O): (keyof O)[] {\n    const diff = objectDiff(a, b);\n    return arrayUnion(diff.removed, diff.added, diff.changed);\n}\n\n/**\n * Clones an object by running it through JSON parsing. Note that this\n * will destroy any complicated object types which do not translate to\n * JSON.\n * @param obj The object to clone.\n * @returns The cloned object\n */\nexport function objectClone<O extends object>(obj: O): O {\n    return JSON.parse(JSON.stringify(obj));\n}\n\n/**\n * Simple object check.\n * @param item\n * @returns {boolean}\n */\nexport function isObject(item: any): item is object {\n    return item && typeof item === \"object\" && !Array.isArray(item);\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport PermalinkConstructor, { PermalinkParts } from \"./PermalinkConstructor\";\n\nexport const host = \"matrix.to\";\nexport const baseUrl = `https://${host}`;\nexport const baseUrlPattern = `^(?:https?://)?${host.replace(\".\", \"\\\\.\")}/#/(.*)`;\n\n/**\n * Generates matrix.to permalinks\n */\nexport default class MatrixToPermalinkConstructor extends PermalinkConstructor {\n    public constructor() {\n        super();\n    }\n\n    public forEvent(roomId: string, eventId: string, serverCandidates: string[]): string {\n        return `${baseUrl}/#/${roomId}/${eventId}${this.encodeServerCandidates(serverCandidates)}`;\n    }\n\n    public forRoom(roomIdOrAlias: string, serverCandidates: string[]): string {\n        return `${baseUrl}/#/${roomIdOrAlias}${this.encodeServerCandidates(serverCandidates)}`;\n    }\n\n    public forUser(userId: string): string {\n        return `${baseUrl}/#/${userId}`;\n    }\n\n    public forEntity(entityId: string): string {\n        return `${baseUrl}/#/${entityId}`;\n    }\n\n    public isPermalinkHost(testHost: string): boolean {\n        return testHost === host;\n    }\n\n    public encodeServerCandidates(candidates: string[]): string {\n        if (!candidates || candidates.length === 0) return \"\";\n        return `?via=${candidates.map((c) => encodeURIComponent(c)).join(\"&via=\")}`;\n    }\n\n    // Heavily inspired by/borrowed from the matrix-bot-sdk (with permission):\n    // https://github.com/turt2live/matrix-js-bot-sdk/blob/7c4665c9a25c2c8e0fe4e509f2616505b5b66a1c/src/Permalinks.ts#L33-L61\n    public parsePermalink(fullUrl: string): PermalinkParts {\n        if (!fullUrl) {\n            throw new Error(\"Does not appear to be a permalink\");\n        }\n\n        const matches = [...fullUrl.matchAll(new RegExp(baseUrlPattern, \"gi\"))][0];\n\n        if (!matches || matches.length < 2) {\n            throw new Error(\"Does not appear to be a permalink\");\n        }\n\n        const parts = matches[1].split(\"/\");\n\n        const entity = parts[0];\n        if (entity[0] === \"@\") {\n            // Probably a user, no further parsing needed.\n            return PermalinkParts.forUser(matches[1]);\n        } else if (entity[0] === \"#\" || entity[0] === \"!\") {\n            if (parts.length === 1) {\n                // room without event permalink\n                const [roomId, query = \"\"] = entity.split(\"?\");\n                const via = query.split(/&?via=/g).filter((p) => !!p);\n                return PermalinkParts.forRoom(roomId, via);\n            }\n\n            // rejoin the rest because v3 events can have slashes (annoyingly)\n            const eventIdAndQuery = parts.length > 1 ? parts.slice(1).join(\"/\") : \"\";\n            const [eventId, query = \"\"] = eventIdAndQuery.split(\"?\");\n            const via = query.split(/&?via=/g).filter((p) => !!p);\n\n            return PermalinkParts.forEvent(entity, eventId, via);\n        } else {\n            throw new Error(\"Unknown entity type in permalink\");\n        }\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/**\n * Interface for classes that actually produce permalinks (strings).\n * TODO: Convert this to a real TypeScript interface\n */\nexport default class PermalinkConstructor {\n    public forEvent(roomId: string, eventId: string, serverCandidates: string[] = []): string {\n        throw new Error(\"Not implemented\");\n    }\n\n    public forRoom(roomIdOrAlias: string, serverCandidates: string[] = []): string {\n        throw new Error(\"Not implemented\");\n    }\n\n    public forUser(userId: string): string {\n        throw new Error(\"Not implemented\");\n    }\n\n    public forEntity(entityId: string): string {\n        throw new Error(\"Not implemented\");\n    }\n\n    public isPermalinkHost(host: string): boolean {\n        throw new Error(\"Not implemented\");\n    }\n\n    public parsePermalink(fullUrl: string): PermalinkParts {\n        throw new Error(\"Not implemented\");\n    }\n}\n\n// Inspired by/Borrowed with permission from the matrix-bot-sdk:\n// https://github.com/turt2live/matrix-js-bot-sdk/blob/7c4665c9a25c2c8e0fe4e509f2616505b5b66a1c/src/Permalinks.ts#L1-L6\nexport class PermalinkParts {\n    public constructor(\n        public readonly roomIdOrAlias: string | null,\n        public readonly eventId: string | null,\n        public readonly userId: string | null,\n        public readonly viaServers: string[] | null,\n    ) {}\n\n    public static forUser(userId: string): PermalinkParts {\n        return new PermalinkParts(null, null, userId, null);\n    }\n\n    public static forRoom(roomIdOrAlias: string, viaServers: string[] = []): PermalinkParts {\n        return new PermalinkParts(roomIdOrAlias, null, null, viaServers);\n    }\n\n    public static forEvent(roomId: string, eventId: string, viaServers: string[] = []): PermalinkParts {\n        return new PermalinkParts(roomId, eventId, null, viaServers);\n    }\n\n    public get primaryEntityId(): string | null {\n        return this.roomIdOrAlias || this.userId;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport PermalinkConstructor, { PermalinkParts } from \"./PermalinkConstructor\";\n\n/**\n * Generates permalinks that self-reference the running webapp\n */\nexport default class ElementPermalinkConstructor extends PermalinkConstructor {\n    private elementUrl: string;\n\n    public constructor(elementUrl: string) {\n        super();\n        this.elementUrl = elementUrl;\n\n        if (!this.elementUrl.startsWith(\"http:\") && !this.elementUrl.startsWith(\"https:\")) {\n            throw new Error(\"Element prefix URL does not appear to be an HTTP(S) URL\");\n        }\n    }\n\n    public forEvent(roomId: string, eventId: string, serverCandidates: string[]): string {\n        return `${this.elementUrl}/#/room/${roomId}/${eventId}${this.encodeServerCandidates(serverCandidates)}`;\n    }\n\n    public forRoom(roomIdOrAlias: string, serverCandidates?: string[]): string {\n        return `${this.elementUrl}/#/room/${roomIdOrAlias}${this.encodeServerCandidates(serverCandidates)}`;\n    }\n\n    public forUser(userId: string): string {\n        return `${this.elementUrl}/#/user/${userId}`;\n    }\n\n    public forEntity(entityId: string): string {\n        if (entityId[0] === \"!\" || entityId[0] === \"#\") {\n            return this.forRoom(entityId);\n        } else if (entityId[0] === \"@\") {\n            return this.forUser(entityId);\n        } else throw new Error(\"Unrecognized entity\");\n    }\n\n    public isPermalinkHost(testHost: string): boolean {\n        const parsedUrl = new URL(this.elementUrl);\n        return testHost === (parsedUrl.host || parsedUrl.hostname); // one of the hosts should match\n    }\n\n    public encodeServerCandidates(candidates?: string[]): string {\n        if (!candidates || candidates.length === 0) return \"\";\n        return `?via=${candidates.map((c) => encodeURIComponent(c)).join(\"&via=\")}`;\n    }\n\n    // Heavily inspired by/borrowed from the matrix-bot-sdk (with permission):\n    // https://github.com/turt2live/matrix-js-bot-sdk/blob/7c4665c9a25c2c8e0fe4e509f2616505b5b66a1c/src/Permalinks.ts#L33-L61\n    // Adapted for Element's URL format\n    public parsePermalink(fullUrl: string): PermalinkParts {\n        if (!fullUrl || !fullUrl.startsWith(this.elementUrl)) {\n            throw new Error(\"Does not appear to be a permalink\");\n        }\n\n        const parts = fullUrl.substring(`${this.elementUrl}/#/`.length);\n        return ElementPermalinkConstructor.parseAppRoute(parts);\n    }\n\n    /**\n     * Parses an app route (`(user|room)/identifier`) to a Matrix entity\n     * (room, user).\n     * @param {string} route The app route\n     * @returns {PermalinkParts}\n     */\n    public static parseAppRoute(route: string): PermalinkParts {\n        const parts = route.split(\"/\");\n\n        if (parts.length < 2) {\n            // we're expecting an entity and an ID of some kind at least\n            throw new Error(\"URL is missing parts\");\n        }\n\n        // Split optional query out of last part\n        const [lastPartMaybeWithQuery] = parts.splice(-1, 1);\n        const [lastPart, query = \"\"] = lastPartMaybeWithQuery.split(\"?\");\n        parts.push(lastPart);\n\n        const entityType = parts[0];\n        const entity = parts[1];\n        if (entityType === \"user\") {\n            // Probably a user, no further parsing needed.\n            return PermalinkParts.forUser(entity);\n        } else if (entityType === \"room\") {\n            // Rejoin the rest because v3 events can have slashes (annoyingly)\n            const eventId = parts.length > 2 ? parts.slice(2).join(\"/\") : \"\";\n            const via = query.split(/&?via=/).filter((p) => !!p);\n            return PermalinkParts.forEvent(entity, eventId, via);\n        } else {\n            throw new Error(\"Unknown entity type in permalink\");\n        }\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport PermalinkConstructor, { PermalinkParts } from \"./PermalinkConstructor\";\n\n/**\n * Generates matrix: scheme permalinks\n */\nexport default class MatrixSchemePermalinkConstructor extends PermalinkConstructor {\n    public constructor() {\n        super();\n    }\n\n    private encodeEntity(entity: string): string {\n        if (entity[0] === \"!\") {\n            return `roomid/${entity.slice(1)}`;\n        } else if (entity[0] === \"#\") {\n            return `r/${entity.slice(1)}`;\n        } else if (entity[0] === \"@\") {\n            return `u/${entity.slice(1)}`;\n        } else if (entity[0] === \"$\") {\n            return `e/${entity.slice(1)}`;\n        }\n\n        throw new Error(\"Cannot encode entity: \" + entity);\n    }\n\n    public forEvent(roomId: string, eventId: string, serverCandidates: string[]): string {\n        return (\n            `matrix:${this.encodeEntity(roomId)}` +\n            `/${this.encodeEntity(eventId)}${this.encodeServerCandidates(serverCandidates)}`\n        );\n    }\n\n    public forRoom(roomIdOrAlias: string, serverCandidates: string[]): string {\n        return `matrix:${this.encodeEntity(roomIdOrAlias)}${this.encodeServerCandidates(serverCandidates)}`;\n    }\n\n    public forUser(userId: string): string {\n        return `matrix:${this.encodeEntity(userId)}`;\n    }\n\n    public forEntity(entityId: string): string {\n        return `matrix:${this.encodeEntity(entityId)}`;\n    }\n\n    public isPermalinkHost(testHost: string): boolean {\n        // TODO: Change API signature to accept the URL for checking\n        return testHost === \"\";\n    }\n\n    public encodeServerCandidates(candidates: string[]): string {\n        if (!candidates || candidates.length === 0) return \"\";\n        return `?via=${candidates.map((c) => encodeURIComponent(c)).join(\"&via=\")}`;\n    }\n\n    public parsePermalink(fullUrl: string): PermalinkParts {\n        if (!fullUrl || !fullUrl.startsWith(\"matrix:\")) {\n            throw new Error(\"Does not appear to be a permalink\");\n        }\n\n        const url = new URL(fullUrl);\n        const parts = url.pathname.split(\"/\");\n\n        const identifier = parts[0];\n        const entityNoSigil = parts[1];\n        if (identifier === \"u\") {\n            // Probably a user, no further parsing needed.\n            return PermalinkParts.forUser(`@${entityNoSigil}`);\n        } else if (identifier === \"r\" || identifier === \"roomid\") {\n            const sigil = identifier === \"r\" ? \"#\" : \"!\";\n\n            if (parts.length === 2) {\n                // room without event permalink\n                const [roomId, query = \"\"] = entityNoSigil.split(\"?\");\n                const via = query.split(/&?via=/g).filter((p) => !!p);\n                return PermalinkParts.forRoom(`${sigil}${roomId}`, via);\n            }\n\n            if (parts[2] === \"e\") {\n                // event permalink\n                const eventIdAndQuery = parts.length > 3 ? parts.slice(3).join(\"/\") : \"\";\n                const [eventId, query = \"\"] = eventIdAndQuery.split(\"?\");\n                const via = query.split(/&?via=/g).filter((p) => !!p);\n                return PermalinkParts.forEvent(`${sigil}${entityNoSigil}`, `$${eventId}`, via);\n            }\n\n            throw new Error(\"Faulty room permalink\");\n        } else {\n            throw new Error(\"Unknown entity type in permalink\");\n        }\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { isIP } from \"is-ip\";\nimport * as utils from \"matrix-js-sdk/src/utils\";\nimport { type Room, type MatrixClient, RoomStateEvent, EventType } from \"matrix-js-sdk/src/matrix\";\nimport { KnownMembership } from \"matrix-js-sdk/src/types\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport MatrixToPermalinkConstructor, {\n    baseUrl as matrixtoBaseUrl,\n    baseUrlPattern as matrixToBaseUrlPattern,\n} from \"./MatrixToPermalinkConstructor\";\nimport { type PermalinkParts } from \"./PermalinkConstructor\";\nimport type PermalinkConstructor from \"./PermalinkConstructor\";\nimport ElementPermalinkConstructor from \"./ElementPermalinkConstructor\";\nimport SdkConfig from \"../../SdkConfig\";\nimport { ELEMENT_URL_PATTERN } from \"../../linkify-matrix\";\nimport MatrixSchemePermalinkConstructor from \"./MatrixSchemePermalinkConstructor\";\n\n// The maximum number of servers to pick when working out which servers\n// to add to permalinks. The servers are appended as ?via=example.org\nconst MAX_SERVER_CANDIDATES = 3;\n\nconst ANY_REGEX = /.*/;\n\n// Permalinks can have servers appended to them so that the user\n// receiving them can have a fighting chance at joining the room.\n// These servers are called \"candidates\" at this point because\n// it is unclear whether they are going to be useful to actually\n// join in the future.\n//\n// We pick 3 servers based on the following criteria:\n//\n//   Server 1: The highest power level user in the room, provided\n//   they are at least PL 50. We don't calculate \"what is a moderator\"\n//   here because it is less relevant for the vast majority of rooms.\n//   We also want to ensure that we get an admin or high-ranking mod\n//   as they are less likely to leave the room. If no user happens\n//   to meet this criteria, we'll pick the most popular server in the\n//   room.\n//\n//   Server 2: The next most popular server in the room (in user\n//   distribution). This cannot be the same as Server 1. If no other\n//   servers are available then we'll only return Server 1.\n//\n//   Server 3: The next most popular server by user distribution. This\n//   has the same rules as Server 2, with the added exception that it\n//   must be unique from Server 1 and 2.\n\n// Rationale for popular servers: It's hard to get rid of people when\n// they keep flocking in from a particular server. Sure, the server could\n// be ACL'd in the future or for some reason be evicted from the room\n// however an event like that is unlikely the larger the room gets. If\n// the server is ACL'd at the time of generating the link however, we\n// shouldn't pick them. We also don't pick IP addresses.\n\n// Note: we don't pick the server the room was created on because the\n// homeserver should already be using that server as a last ditch attempt\n// and there's less of a guarantee that the server is a resident server.\n// Instead, we actively figure out which servers are likely to be residents\n// in the future and try to use those.\n\n// Note: Users receiving permalinks that happen to have all 3 potential\n// servers fail them (in terms of joining) are somewhat expected to hunt\n// down the person who gave them the link to ask for a participating server.\n// The receiving user can then manually append the known-good server to\n// the list and magically have the link work.\n\nexport class RoomPermalinkCreator {\n    private roomId: string;\n    private highestPlUserId: string | null = null;\n    private populationMap: { [serverName: string]: number } = {};\n    private bannedHostsRegexps: RegExp[] = [];\n    private allowedHostsRegexps: RegExp[] = [];\n    private _serverCandidates?: string[];\n    private started = false;\n\n    // We support being given a roomId as a fallback in the event the `room` object\n    // doesn't exist or is not healthy for us to rely on. For example, loading a\n    // permalink to a room which the MatrixClient doesn't know about.\n    // Some of the tests done by this class are relatively expensive, so normally\n    // throttled to not happen on every update. Pass false as the shouldThrottle\n    // param to disable this behaviour, eg. for tests.\n    public constructor(\n        private room: Room | null,\n        roomId: string | null = null,\n        shouldThrottle = true,\n    ) {\n        this.roomId = room ? room.roomId : roomId!;\n\n        if (!this.roomId) {\n            throw new Error(\"Failed to resolve a roomId for the permalink creator to use\");\n        }\n    }\n\n    public load(): void {\n        if (!this.room || !this.room.currentState) {\n            // Under rare and unknown circumstances it is possible to have a room with no\n            // currentState, at least potentially at the early stages of joining a room.\n            // To avoid breaking everything, we'll just warn rather than throw as well as\n            // not bother updating the various aspects of the share link.\n            logger.warn(\"Tried to load a permalink creator with no room state\");\n            return;\n        }\n        this.fullUpdate();\n    }\n\n    public start(): void {\n        if (this.started) return;\n        this.load();\n        this.room?.currentState.on(RoomStateEvent.Update, this.onRoomStateUpdate);\n        this.started = true;\n    }\n\n    public stop(): void {\n        this.room?.currentState.removeListener(RoomStateEvent.Update, this.onRoomStateUpdate);\n        this.started = false;\n    }\n\n    public get serverCandidates(): string[] | undefined {\n        return this._serverCandidates;\n    }\n\n    public forEvent(eventId: string): string {\n        return getPermalinkConstructor().forEvent(this.roomId, eventId, this._serverCandidates);\n    }\n\n    public forShareableRoom(): string {\n        if (this.room) {\n            // Prefer to use canonical alias for permalink if possible\n            const alias = this.room.getCanonicalAlias();\n            if (alias) {\n                return getPermalinkConstructor().forRoom(alias);\n            }\n        }\n        return getPermalinkConstructor().forRoom(this.roomId, this._serverCandidates);\n    }\n\n    public forRoom(): string {\n        return getPermalinkConstructor().forRoom(this.roomId, this._serverCandidates);\n    }\n\n    private onRoomStateUpdate = (): void => {\n        this.fullUpdate();\n    };\n\n    private fullUpdate(): void {\n        // This updates the internal state of this object from the room state. It's broken\n        // down into separate functions, previously because we did some of these as incremental\n        // updates, but they were on member events which can be very numerous, so the incremental\n        // updates ended up being much slower than a full update. We now have the batch state update\n        // event, so we just update in full, but on each batch of updates.\n        this.updateAllowedServers();\n        this.updateHighestPlUser();\n        this.updatePopulationMap();\n        this.updateServerCandidates();\n    }\n\n    private updateHighestPlUser(): void {\n        const plEvent = this.room?.currentState.getStateEvents(\"m.room.power_levels\", \"\");\n        if (plEvent) {\n            const content = plEvent.getContent();\n            if (content) {\n                const users: Record<string, number> = content.users;\n                if (users) {\n                    const entries = Object.entries(users);\n                    const allowedEntries = entries.filter(([userId]) => {\n                        const member = this.room?.getMember(userId);\n                        if (!member || member.membership !== KnownMembership.Join) {\n                            return false;\n                        }\n                        const serverName = getServerName(userId);\n\n                        const domain = getHostnameFromMatrixServerName(serverName) ?? serverName;\n                        return (\n                            !isHostnameIpAddress(domain) &&\n                            !isHostInRegex(domain, this.bannedHostsRegexps) &&\n                            isHostInRegex(domain, this.allowedHostsRegexps)\n                        );\n                    });\n                    const maxEntry = allowedEntries.reduce<[string | null, number]>(\n                        (max, entry) => {\n                            return entry[1] > max[1] ? entry : max;\n                        },\n                        [null, 0],\n                    );\n                    const [userId, powerLevel] = maxEntry;\n                    // object wasn't empty, and max entry wasn't a demotion from the default\n                    if (userId !== null && powerLevel >= 50) {\n                        this.highestPlUserId = userId;\n                        return;\n                    }\n                }\n            }\n        }\n        this.highestPlUserId = null;\n    }\n\n    private updateAllowedServers(): void {\n        const bannedHostsRegexps: RegExp[] = [];\n        let allowedHostsRegexps = [ANY_REGEX]; // default allow everyone\n        if (this.room?.currentState) {\n            const aclEvent = this.room?.currentState.getStateEvents(EventType.RoomServerAcl, \"\");\n            if (aclEvent && aclEvent.getContent()) {\n                const getRegex = (hostname: string): RegExp => new RegExp(\"^\" + utils.globToRegexp(hostname) + \"$\");\n\n                const denied = aclEvent.getContent<{ deny: string[] }>().deny;\n                if (Array.isArray(denied)) {\n                    denied.forEach((h) => bannedHostsRegexps.push(getRegex(h)));\n                }\n\n                const allowed = aclEvent.getContent<{ allow: string[] }>().allow;\n                allowedHostsRegexps = []; // we don't want to use the default rule here\n                if (Array.isArray(allowed)) {\n                    allowed.forEach((h) => allowedHostsRegexps.push(getRegex(h)));\n                }\n            }\n        }\n        this.bannedHostsRegexps = bannedHostsRegexps;\n        this.allowedHostsRegexps = allowedHostsRegexps;\n    }\n\n    private updatePopulationMap(): void {\n        const populationMap: { [server: string]: number } = {};\n        if (this.room) {\n            for (const member of this.room.getJoinedMembers()) {\n                const serverName = getServerName(member.userId);\n                if (!populationMap[serverName]) {\n                    populationMap[serverName] = 0;\n                }\n                populationMap[serverName]++;\n            }\n        }\n        this.populationMap = populationMap;\n    }\n\n    private updateServerCandidates = (): void => {\n        const candidates = new Set<string>();\n        if (this.highestPlUserId) {\n            candidates.add(getServerName(this.highestPlUserId));\n        }\n\n        const serversByPopulation = Object.keys(this.populationMap).sort(\n            (a, b) => this.populationMap[b] - this.populationMap[a],\n        );\n\n        for (let i = 0; i < serversByPopulation.length && candidates.size < MAX_SERVER_CANDIDATES; i++) {\n            const serverName = serversByPopulation[i];\n            const domain = getHostnameFromMatrixServerName(serverName) ?? \"\";\n            if (\n                !candidates.has(serverName) &&\n                !isHostnameIpAddress(domain) &&\n                !isHostInRegex(domain, this.bannedHostsRegexps) &&\n                isHostInRegex(domain, this.allowedHostsRegexps)\n            ) {\n                candidates.add(serverName);\n            }\n        }\n\n        this._serverCandidates = [...candidates];\n    };\n}\n\n/**\n * Creates a permalink for an Entity. If isPill is set it uses a spec-compliant\n * prefix for the permalink, instead of permalink_prefix\n * @param {string} entityId The entity to link to.\n * @param {boolean} isPill Link should be pillifyable.\n * @returns {string|null} The transformed permalink or null if unable.\n */\nexport function makeGenericPermalink(entityId: string, isPill = false): string {\n    return getPermalinkConstructor(isPill).forEntity(entityId);\n}\n\n/**\n * Creates a permalink for a User. If isPill is set it uses a spec-compliant\n * prefix for the permalink, instead of permalink_prefix\n * @param {string} userId The user to link to.\n * @param {boolean} isPill Link should be pillifyable.\n * @returns {string|null} The transformed permalink or null if unable.\n */\nexport function makeUserPermalink(userId: string, isPill = false): string {\n    return getPermalinkConstructor(isPill).forUser(userId);\n}\n\n/**\n * Creates a permalink for a room. If isPill is set it uses a spec-compliant\n * prefix for the permalink, instead of permalink_prefix\n * @param {MatrixClient} matrixClient The MatrixClient to use\n * @param {string} roomId The user to link to.\n * @param {boolean} isPill Link should be pillifyable.\n * @returns {string|null} The transformed permalink or null if unable.\n */\nexport function makeRoomPermalink(matrixClient: MatrixClient, roomId: string, isPill = false): string {\n    if (!roomId) {\n        throw new Error(\"can't permalink a falsy roomId\");\n    }\n\n    // If the roomId isn't actually a room ID, don't try to list the servers.\n    // Aliases are already routable, and don't need extra information.\n    if (roomId[0] !== \"!\") return getPermalinkConstructor(isPill).forRoom(roomId, []);\n\n    const room = matrixClient.getRoom(roomId);\n    if (!room) {\n        return getPermalinkConstructor(isPill).forRoom(roomId, []);\n    }\n    const permalinkCreator = new RoomPermalinkCreator(room);\n    permalinkCreator.load();\n    return permalinkCreator.forShareableRoom();\n}\n\nexport function isPermalinkHost(host: string): boolean {\n    // Always check if the permalink is a spec permalink (callers are likely to call\n    // parsePermalink after this function).\n    if (new MatrixToPermalinkConstructor().isPermalinkHost(host)) return true;\n    return getPermalinkConstructor().isPermalinkHost(host);\n}\n\n/**\n * Transforms an entity (permalink, room alias, user ID, etc) into a local URL\n * if possible. If it is already a permalink (matrix.to) it gets returned\n * unchanged.\n * @param {string} entity The entity to transform.\n * @returns {string|null} The transformed permalink or null if unable.\n */\nexport function tryTransformEntityToPermalink(matrixClient: MatrixClient, entity: string): string | null {\n    if (!entity) return null;\n\n    // Check to see if it is a bare entity for starters\n    if (entity[0] === \"#\" || entity[0] === \"!\") return makeRoomPermalink(matrixClient, entity);\n    if (entity[0] === \"@\") return makeUserPermalink(entity);\n\n    if (entity.slice(0, 7) === \"matrix:\") {\n        try {\n            const permalinkParts = parsePermalink(entity);\n            if (permalinkParts) {\n                if (permalinkParts.roomIdOrAlias) {\n                    const eventIdPart = permalinkParts.eventId ? `/${permalinkParts.eventId}` : \"\";\n                    let pl = matrixtoBaseUrl + `/#/${permalinkParts.roomIdOrAlias}${eventIdPart}`;\n                    if (permalinkParts.viaServers?.length) {\n                        pl += new MatrixToPermalinkConstructor().encodeServerCandidates(permalinkParts.viaServers);\n                    }\n                    return pl;\n                } else if (permalinkParts.userId) {\n                    return matrixtoBaseUrl + `/#/${permalinkParts.userId}`;\n                }\n            }\n        } catch {}\n    }\n\n    return entity;\n}\n\n/**\n * Transforms a permalink (or possible permalink) into a local URL if possible. If\n * the given permalink is found to not be a permalink, it'll be returned unaltered.\n * @param {string} permalink The permalink to try and transform.\n * @returns {string} The transformed permalink or original URL if unable.\n */\nexport function tryTransformPermalinkToLocalHref(permalink: string): string {\n    if (\n        !permalink.startsWith(\"http:\") &&\n        !permalink.startsWith(\"https:\") &&\n        !permalink.startsWith(\"matrix:\") &&\n        !permalink.startsWith(\"vector:\") // Element Desktop\n    ) {\n        return permalink;\n    }\n\n    try {\n        const m = decodeURIComponent(permalink).match(ELEMENT_URL_PATTERN);\n        if (m) {\n            return m[1];\n        }\n    } catch {\n        // Not a valid URI\n        return permalink;\n    }\n\n    // A bit of a hack to convert permalinks of unknown origin to Element links\n    try {\n        const permalinkParts = parsePermalink(permalink);\n        if (permalinkParts) {\n            if (permalinkParts.roomIdOrAlias) {\n                const eventIdPart = permalinkParts.eventId ? `/${permalinkParts.eventId}` : \"\";\n                permalink = `#/room/${permalinkParts.roomIdOrAlias}${eventIdPart}`;\n                if (permalinkParts.viaServers?.length) {\n                    permalink += new MatrixToPermalinkConstructor().encodeServerCandidates(permalinkParts.viaServers);\n                }\n            } else if (permalinkParts.userId) {\n                permalink = `#/user/${permalinkParts.userId}`;\n            } // else not a valid permalink for our purposes - do not handle\n        }\n    } catch {\n        // Not an href we need to care about\n    }\n\n    return permalink;\n}\n\nexport function getPrimaryPermalinkEntity(permalink: string): string | null {\n    try {\n        let permalinkParts = parsePermalink(permalink);\n\n        // If not a permalink, try the vector patterns.\n        if (!permalinkParts) {\n            const m = permalink.match(ELEMENT_URL_PATTERN);\n            if (m) {\n                // A bit of a hack, but it gets the job done\n                const handler = new ElementPermalinkConstructor(\"http://localhost\");\n                const entityInfo = m[1].split(\"#\").slice(1).join(\"#\");\n                permalinkParts = handler.parsePermalink(`http://localhost/#${entityInfo}`);\n            }\n        }\n\n        if (!permalinkParts) return null; // not processable\n        if (permalinkParts.userId) return permalinkParts.userId;\n        if (permalinkParts.roomIdOrAlias) return permalinkParts.roomIdOrAlias;\n    } catch {\n        // no entity - not a permalink\n    }\n\n    return null;\n}\n\n/**\n * Returns the correct PermalinkConstructor based on permalink_prefix\n * and isPill\n * @param {boolean} isPill Should constructed links be pillifyable.\n * @returns {string|null} The transformed permalink or null if unable.\n */\nfunction getPermalinkConstructor(isPill = false): PermalinkConstructor {\n    const elementPrefix = SdkConfig.get(\"permalink_prefix\");\n    if (elementPrefix && elementPrefix !== matrixtoBaseUrl && !isPill) {\n        return new ElementPermalinkConstructor(elementPrefix);\n    }\n\n    return new MatrixToPermalinkConstructor();\n}\n\nexport function parsePermalink(fullUrl: string): PermalinkParts | null {\n    try {\n        const elementPrefix = SdkConfig.get(\"permalink_prefix\");\n        const decodedUrl = decodeURIComponent(fullUrl);\n        if (new RegExp(matrixToBaseUrlPattern, \"i\").test(decodedUrl)) {\n            return new MatrixToPermalinkConstructor().parsePermalink(decodedUrl);\n        } else if (fullUrl.startsWith(\"matrix:\")) {\n            return new MatrixSchemePermalinkConstructor().parsePermalink(fullUrl);\n        } else if (elementPrefix && fullUrl.startsWith(elementPrefix)) {\n            return new ElementPermalinkConstructor(elementPrefix).parsePermalink(fullUrl);\n        }\n    } catch (e) {\n        logger.error(\"Failed to parse permalink\", e);\n    }\n\n    return null; // not a permalink we can handle\n}\n\nexport function getServerName(userId: string): string {\n    return userId.split(\":\").splice(1).join(\":\");\n}\n\nexport function getHostnameFromMatrixServerName(serverName: string): string | null {\n    if (!serverName) return null;\n    try {\n        return new URL(`https://${serverName}`).hostname;\n    } catch (e) {\n        console.error(\"Error encountered while extracting hostname from server name\", e);\n        return null;\n    }\n}\n\nfunction isHostInRegex(hostname: string, regexps: RegExp[]): boolean {\n    if (!hostname) return true; // assumed\n    if (regexps.length > 0 && !regexps[0].test) throw new Error(regexps[0].toString());\n\n    return regexps.some((h) => h.test(hostname));\n}\n\nfunction isHostnameIpAddress(hostname: string): boolean {\n    if (!hostname) return false;\n\n    // is-ip doesn't want IPv6 addresses surrounded by brackets, so\n    // take them off.\n    if (hostname.startsWith(\"[\") && hostname.endsWith(\"]\")) {\n        hostname = hostname.substring(1, hostname.length - 1);\n    }\n\n    return isIP(hostname);\n}\n\nexport const calculateRoomVia = (room: Room): string[] => {\n    const permalinkCreator = new RoomPermalinkCreator(room);\n    permalinkCreator.load();\n    return permalinkCreator.serverCandidates ?? [];\n};\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { tryTransformPermalinkToLocalHref } from \"./Permalinks\";\n\n/**\n * Converts a permalink to a local HREF and navigates accordingly. Throws if the permalink\n * cannot be transformed.\n * @param uri The permalink to navigate to.\n */\nexport function navigateToPermalink(uri: string): void {\n    const localUri = tryTransformPermalinkToLocalHref(uri);\n    if (!localUri || localUri === uri) {\n        // parse failure can lead to an unmodified URL\n        throw new Error(\"Failed to transform URI\");\n    }\n    window.location.hash = localUri; // it'll just be a fragment\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019, 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// Returns a promise which resolves when the input promise resolves with its value\n// or when the timeout of ms is reached with the value of given timeoutValue\nexport async function timeout<T, Y>(promise: Promise<T>, timeoutValue: Y, ms: number): Promise<T | Y> {\n    const timeoutPromise = new Promise<T | Y>((resolve) => {\n        const timeoutId = window.setTimeout(resolve, ms, timeoutValue);\n        promise.then(() => {\n            clearTimeout(timeoutId);\n        });\n    });\n\n    return Promise.race([promise, timeoutPromise]);\n}\n\n// Helper method to retry a Promise a given number of times or until a predicate fails\nexport async function retry<T, E extends Error>(\n    fn: () => Promise<T>,\n    num: number,\n    predicate?: (e: E) => boolean,\n): Promise<T> {\n    let lastErr!: any;\n    for (let i = 0; i < num; i++) {\n        try {\n            const v = await fn();\n            // If `await fn()` throws then we won't reach here\n            return v;\n        } catch (err) {\n            if (predicate && !predicate(err as E)) {\n                throw err;\n            }\n            lastErr = err;\n        }\n    }\n    throw lastErr;\n}\n\n/**\n * Batch promises into groups of a given size.\n * Execute the promises in parallel, but wait for all promises in a batch to resolve before moving to the next batch.\n * @param funcs - The promises to batch\n * @param batchSize - The number of promises to execute in parallel\n */\nexport async function batch<T>(funcs: Array<() => Promise<T>>, batchSize: number): Promise<T[]> {\n    const results: T[] = [];\n    for (let i = 0; i < funcs.length; i += batchSize) {\n        const batch = funcs.slice(i, i + batchSize);\n        results.push(...(await Promise.all(batch.map((f) => f()))));\n    }\n    return results;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n/**\n * Copy plaintext to user's clipboard\n * It will overwrite user's selection range\n * In certain browsers it may only work if triggered by a user action or may ask user for permissions\n * Tries to use new async clipboard API if available\n * @param text the plaintext to put in the user's clipboard\n */\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nexport async function copyPlaintext(text: string): Promise<boolean> {\n    try {\n        if (navigator?.clipboard?.writeText) {\n            await navigator.clipboard.writeText(text);\n            return true;\n        } else {\n            const textArea = document.createElement(\"textarea\");\n            textArea.value = text;\n\n            // Avoid scrolling to bottom\n            textArea.style.top = \"0\";\n            textArea.style.left = \"0\";\n            textArea.style.position = \"fixed\";\n\n            document.body.appendChild(textArea);\n            const selection = document.getSelection()!;\n            const range = document.createRange();\n            // range.selectNodeContents(textArea);\n            range.selectNode(textArea);\n            selection.removeAllRanges();\n            selection.addRange(range);\n\n            const successful = document.execCommand(\"copy\");\n            selection.removeAllRanges();\n            document.body.removeChild(textArea);\n            return successful;\n        }\n    } catch (e) {\n        logger.error(\"copyPlaintext failed\", e);\n    }\n    return false;\n}\n\nexport function selectText(target: Element): void {\n    const range = document.createRange();\n    range.selectNodeContents(target);\n\n    const selection = window.getSelection()!;\n    selection.removeAllRanges();\n    selection.addRange(range);\n}\n\n/**\n * Copy rich text to user's clipboard\n * It will overwrite user's selection range\n * In certain browsers it may only work if triggered by a user action or may ask user for permissions\n * @param ref pointer to the node to copy\n */\nexport function copyNode(ref?: Element | null): boolean {\n    if (!ref) return false;\n    selectText(ref);\n    return document.execCommand(\"copy\");\n}\n\n/**\n * Returns text which has been selected by the user\n * @returns the selected text\n */\nexport function getSelectedText(): string {\n    return window.getSelection()!.toString();\n}\n\nexport const graphemeSegmenter = new Intl.Segmenter();\n\n/**\n * Returns the first grapheme in the given string,\n * especially useful for strings containing emoji, will not break compound emoji up.\n * @param str string to parse\n * @returns the first grapheme or an empty string if given an empty string\n */\nexport function getFirstGrapheme(str: string): string {\n    const result = graphemeSegmenter.segment(str)[Symbol.iterator]().next();\n    return result.done ? \"\" : result.value.segment;\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nexport function toPx(pixelValue: number): string {\n    return pixelValue + \"px\";\n}\n","/*\nCopyright 2026 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { type UserStatus } from \"@element-hq/web-shared-components\";\nimport { type MatrixClient, MatrixError } from \"matrix-js-sdk/src/matrix\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\n// MSC4426 defines the maximum length of a status to be 256 bytes of UTF-8,\n// so we truncate anything longer than that.\nconst MAX_STATUS_TEXT_BYTES = 256;\n\n// Static Intl.Segmenter for grabbing the first grapheme of a user status emoji.\n// We make one and keep it for performance.\nconst intlSegmenter = new Intl.Segmenter();\n\n/**\n * Checks if a given text is within the maximum allowed length for a user status.\n * @param text The text to check.\n * @returns True if the text is within the maximum length, false otherwise.\n */\nexport function userStatusTextWithinMaxLength(text: string): boolean {\n    const textEncoder = new TextEncoder();\n    return textEncoder.encode(text).length <= MAX_STATUS_TEXT_BYTES;\n}\n\n/**\n * Validates an object from a user profile and returns a UserStatus object if it contains a valid user status.\n * @param rawUserStatus The raw user status object to validate.\n * @returns A UserStatus object if valid, otherwise undefined.\n */\nexport function validateUserStatus(rawUserStatus: unknown): UserStatus | undefined {\n    if (typeof rawUserStatus !== \"object\" || rawUserStatus === null) {\n        return undefined;\n    }\n    if (\"emoji\" in rawUserStatus === false || typeof rawUserStatus.emoji !== \"string\" || !rawUserStatus.emoji) {\n        return undefined;\n    }\n    if (\"text\" in rawUserStatus === false || typeof rawUserStatus.text !== \"string\" || !rawUserStatus.text) {\n        return undefined;\n    }\n    return {\n        emoji: [...intlSegmenter.segment(rawUserStatus.emoji)][0]?.segment,\n        text: userStatusTextWithinMaxLength(rawUserStatus.text)\n            ? rawUserStatus.text\n            : `${rawUserStatus.text.slice(0, MAX_STATUS_TEXT_BYTES)}…`,\n    };\n}\n\n/**\n * Fetch the MSC4426 user status of the given user. Returns undefined if the server does not\n * support extended profiles, the user has no (valid) status, or the status could not be fetched.\n *\n * @param client The Matrix client to fetch the status with.\n * @param userId The ID of the user whose status is being fetched.\n */\nexport async function fetchUserStatus(client: MatrixClient, userId: string): Promise<UserStatus | undefined> {\n    if ((await client.doesServerSupportExtendedProfiles()) === false) {\n        return undefined;\n    }\n    try {\n        return validateUserStatus(await client.getExtendedProfileProperty(userId, \"org.matrix.msc4426.status\"));\n    } catch (ex) {\n        if (!(ex instanceof MatrixError && ex.errcode === \"M_NOT_FOUND\")) {\n            logger.warn(`Failed to get userStatus for ${userId}`, ex);\n        }\n        return undefined;\n    }\n}\n\n/**\n * Sets the MSC4426 user status for the given user.\n *\n * @param client The Matrix client to use.\n * @param userStatus The user status to set.\n */\nexport function setUserStatus(client: MatrixClient, userStatus: UserStatus): Promise<void> {\n    return client.setExtendedProfileProperty(\"org.matrix.msc4426.status\", {\n        emoji: userStatus.emoji,\n        text: userStatus.text,\n    });\n}\n\n/**\n * Clears the MSC4426 user status for the given user.\n *\n * @param client The Matrix client to use.\n */\nexport function clearUserStatus(client: MatrixClient): Promise<void> {\n    return client.setExtendedProfileProperty(\"org.matrix.msc4426.status\", null);\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\n\nimport ToastStore from \"../../../stores/ToastStore\";\nimport GenericToast, { type IProps as IGenericToastProps } from \"./GenericToast\";\nimport { useExpiringCounter } from \"../../../hooks/useTimeout\";\n\ninterface IProps extends IGenericToastProps {\n    toastKey: string;\n    numSeconds: number;\n    dismissLabel: string;\n    onDismiss?(this: void): void;\n}\n\nconst SECOND = 1000;\n\nconst GenericExpiringToast: React.FC<IProps> = ({\n    description,\n    primaryLabel,\n    dismissLabel,\n    onPrimaryClick,\n    onDismiss,\n    toastKey,\n    numSeconds,\n}) => {\n    const onReject = (): void => {\n        if (onDismiss) onDismiss();\n        ToastStore.sharedInstance().dismissToast(toastKey);\n    };\n    const counter = useExpiringCounter(onReject, SECOND, numSeconds);\n\n    let rejectLabel = dismissLabel;\n    if (counter > 0) {\n        rejectLabel += ` (${counter})`;\n    }\n\n    return (\n        <GenericToast\n            description={description}\n            primaryLabel={primaryLabel}\n            onPrimaryClick={onPrimaryClick}\n            secondaryLabel={rejectLabel}\n            onSecondaryClick={onReject}\n        />\n    );\n};\n\nexport default GenericExpiringToast;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\nimport classNames from \"classnames\";\n\nimport { _t, _td } from \"../../../languageHandler\";\nimport BaseDialog from \"..//dialogs/BaseDialog\";\nimport DialogButtons from \"./DialogButtons\";\nimport AccessibleButton from \"./AccessibleButton\";\nimport TabbedView, { Tab, TabLocation } from \"../../structures/TabbedView\";\nimport PlatformPeg from \"../../../PlatformPeg\";\nimport { type NonEmptyArray } from \"../../../@types/common\";\n\nexport function getDesktopCapturerSources(): Promise<Array<DesktopCapturerSource>> {\n    const options: GetSourcesOptions = {\n        thumbnailSize: {\n            height: 176,\n            width: 312,\n        },\n        types: [\"screen\", \"window\"],\n    };\n    const plaf = PlatformPeg.get();\n    return plaf ? plaf?.getDesktopCapturerSources(options) : Promise.resolve<DesktopCapturerSource[]>([]);\n}\n\nexport enum Tabs {\n    Screens = \"screen\",\n    Windows = \"window\",\n}\n\nexport interface ExistingSourceIProps {\n    source: DesktopCapturerSource;\n    onSelect(source: DesktopCapturerSource): void;\n    selected: boolean;\n}\n\nexport class ExistingSource extends React.Component<ExistingSourceIProps> {\n    private onClick = (): void => {\n        this.props.onSelect(this.props.source);\n    };\n\n    public render(): React.ReactNode {\n        const thumbnailClasses = classNames({\n            mx_desktopCapturerSourcePicker_source_thumbnail: true,\n            mx_desktopCapturerSourcePicker_source_thumbnail_selected: this.props.selected,\n        });\n\n        return (\n            <AccessibleButton\n                className=\"mx_desktopCapturerSourcePicker_source\"\n                title={this.props.source.name}\n                onClick={this.onClick}\n            >\n                <img alt={this.props.source.name} className={thumbnailClasses} src={this.props.source.thumbnailURL} />\n                <span className=\"mx_desktopCapturerSourcePicker_source_name\">{this.props.source.name}</span>\n            </AccessibleButton>\n        );\n    }\n}\n\nexport interface PickerIState {\n    selectedTab: Tabs;\n    sources: Array<DesktopCapturerSource>;\n    selectedSource?: DesktopCapturerSource;\n}\nexport interface PickerIProps {\n    onFinished(source?: DesktopCapturerSource): void;\n}\n\nexport default class DesktopCapturerSourcePicker extends React.Component<PickerIProps, PickerIState> {\n    public interval?: number;\n\n    public constructor(props: PickerIProps) {\n        super(props);\n\n        this.state = {\n            selectedTab: Tabs.Screens,\n            sources: [],\n        };\n    }\n\n    public async componentDidMount(): Promise<void> {\n        // window.setInterval() first waits and then executes, therefore\n        // we call getDesktopCapturerSources() here without any delay.\n        // Otherwise the dialog would be left empty for some time.\n        this.setState({\n            sources: await getDesktopCapturerSources(),\n        });\n\n        // We update the sources every 500ms to get newer thumbnails\n        this.interval = window.setInterval(async (): Promise<void> => {\n            this.setState({\n                sources: await getDesktopCapturerSources(),\n            });\n        }, 500);\n    }\n\n    public componentWillUnmount(): void {\n        clearInterval(this.interval);\n    }\n\n    private onSelect = (source: DesktopCapturerSource): void => {\n        this.setState({ selectedSource: source });\n    };\n\n    private onShare = (): void => {\n        this.props.onFinished(this.state.selectedSource);\n    };\n\n    private onTabChange = (tab: Tabs): void => {\n        this.setState({ selectedSource: undefined, selectedTab: tab });\n    };\n\n    private onCloseClick = (): void => {\n        this.props.onFinished();\n    };\n\n    private getTab(type: Tabs, label: TranslationKey): Tab<Tabs> {\n        const sources = this.state.sources\n            .filter((source) => source.id.startsWith(type))\n            .map((source) => {\n                return (\n                    <ExistingSource\n                        selected={this.state.selectedSource?.id === source.id}\n                        source={source}\n                        onSelect={this.onSelect}\n                        key={source.id}\n                    />\n                );\n            });\n\n        return new Tab(type, label, null, <div className=\"mx_desktopCapturerSourcePicker_tab\">{sources}</div>);\n    }\n\n    public render(): React.ReactNode {\n        const tabs: NonEmptyArray<Tab<Tabs>> = [\n            this.getTab(Tabs.Screens, _td(\"voip|screenshare_monitor\")),\n            this.getTab(Tabs.Windows, _td(\"voip|screenshare_window\")),\n        ];\n\n        return (\n            <BaseDialog\n                className=\"mx_desktopCapturerSourcePicker\"\n                onFinished={this.onCloseClick}\n                title={_t(\"voip|screenshare_title\")}\n            >\n                <TabbedView\n                    tabs={tabs}\n                    tabLocation={TabLocation.TOP}\n                    activeTabId={this.state.selectedTab}\n                    onChange={this.onTabChange}\n                />\n                <DialogButtons\n                    primaryButton={_t(\"action|share\")}\n                    hasCancel={true}\n                    onCancel={this.onCloseClick}\n                    onPrimaryButtonClick={this.onShare}\n                    primaryDisabled={!this.state.selectedSource}\n                />\n            </BaseDialog>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2019-2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    type IMatrixProfile,\n    type IEventWithRoomId as IMatrixEvent,\n    type IResultRoomEvents,\n    type Direction,\n} from \"matrix-js-sdk/src/matrix\";\n\n// The following interfaces take their names and member names from seshat and the spec\n/* eslint-disable camelcase */\n\n/** A record of a place to resume crawling events in a given room. */\nexport interface ICrawlerCheckpoint {\n    /** The room to be indexed */\n    roomId: string;\n\n    /** The pagination index to resume crawling from. */\n    token: string;\n\n    /**\n     * If `fullCrawl` is false (or absent) and we find that we have already indexed the events we find, then we stop crawling.\n     *\n     * If `fullCrawl` is true, then we keep going until we reach the end of the room history.\n     */\n    fullCrawl?: boolean;\n\n    /** Whether we should crawl in the forward or backward direction. */\n    direction: Direction;\n}\n\nexport interface ISearchArgs {\n    search_term: string;\n    before_limit: number;\n    after_limit: number;\n    order_by_recency: boolean;\n    room_id?: string;\n    limit: number;\n    next_batch?: string;\n}\n\nexport interface IEventAndProfile {\n    event: IMatrixEvent;\n    profile: IMatrixProfile;\n}\n\nexport interface ILoadArgs {\n    roomId: string;\n    limit: number;\n    fromEvent?: string;\n    direction?: string;\n}\n\nexport interface IIndexStats {\n    size: number;\n    eventCount: number;\n    roomCount: number;\n}\n\n/**\n * Base class for classes that provide platform-specific event indexing.\n *\n * Instances of this class are provided by the application.\n */\nexport default abstract class BaseEventIndexManager {\n    /**\n     * Does our EventIndexManager support event indexing.\n     *\n     * If an EventIndexManager implementor has runtime dependencies that\n     * optionally enable event indexing they may override this method to perform\n     * the necessary runtime checks here.\n     *\n     * @returns {Promise} A promise that will resolve to true if event indexing\n     * is supported, false otherwise.\n     */\n    public async supportsEventIndexing(): Promise<boolean> {\n        return true;\n    }\n    /**\n     * Initialize the event index for the given user.\n     *\n     * @param {string} userId The event that should be added to the index.\n     * @param {string} deviceId The profile of the event sender at the\n     *\n     * @returns {Promise} A promise that will resolve when the event index is\n     * initialized.\n     */\n    public async initEventIndex(userId: string, deviceId: string): Promise<void> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Queue up an event to be added to the index.\n     *\n     * @param {MatrixEvent} ev The event that should be added to the index.\n     * @param {IMatrixProfile} profile The profile of the event sender at the\n     * time the event was received.\n     *\n     * @returns {Promise} A promise that will resolve when the was queued up for\n     * addition.\n     */\n    public async addEventToIndex(ev: IMatrixEvent, profile: IMatrixProfile): Promise<void> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    public async deleteEvent(eventId: string): Promise<boolean> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    public async isEventIndexEmpty(): Promise<boolean> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Check if the room with the given id is already indexed.\n     *\n     * @param {string} roomId The ID of the room which we want to check if it\n     * has been already indexed.\n     *\n     * @returns {Promise<boolean>} Returns true if the index contains events for\n     * the given room, false otherwise.\n     */\n    public isRoomIndexed(roomId: string): Promise<boolean> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Get statistical information of the index.\n     *\n     * @returns {Promise<IIndexStats>} A promise that will resolve to the index\n     * statistics.\n     */\n    public async getStats(): Promise<IIndexStats> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Get the user version of the database.\n     * @returns {Promise<number>} A promise that will resolve to the user stored\n     * version number.\n     */\n    public async getUserVersion(): Promise<number> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Set the user stored version to the given version number.\n     *\n     * @param {number} version The new version that should be stored in the\n     * database.\n     *\n     * @returns {Promise<void>} A promise that will resolve once the new version\n     * is stored.\n     */\n    public async setUserVersion(version: number): Promise<void> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Commit the previously queued up events to the index.\n     *\n     * @returns {Promise} A promise that will resolve once the queued up events\n     * were added to the index.\n     */\n    public async commitLiveEvents(): Promise<void> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Search the event index using the given term for matching events.\n     *\n     * @param {ISearchArgs} searchArgs The search configuration for the search,\n     * sets the search term and determines the search result contents.\n     *\n     * @returns {Promise<IResultRoomEvents[]>} A promise that will resolve to an array\n     * of search results once the search is done.\n     */\n    public async searchEventIndex(searchArgs: ISearchArgs): Promise<IResultRoomEvents> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Add events from the room history to the event index.\n     *\n     * This is used to add a batch of events to the index.\n     *\n     * @param {[IEventAndProfile]} events The list of events and profiles that\n     * should be added to the event index.\n     * @param {[ICrawlerCheckpoint]} checkpoint A new crawler checkpoint that\n     * should be stored in the index which should be used to continue crawling\n     * the room.\n     * @param {[ICrawlerCheckpoint]} oldCheckpoint The checkpoint that was used\n     * to fetch the current batch of events. This checkpoint will be removed\n     * from the index.\n     *\n     * @returns {Promise} A promise that will resolve to true if all the events\n     * were already added to the index, false otherwise.\n     */\n    public async addHistoricEvents(\n        events: IEventAndProfile[],\n        checkpoint: ICrawlerCheckpoint | null,\n        oldCheckpoint: ICrawlerCheckpoint | null,\n    ): Promise<boolean> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Add a new crawler checkpoint to the index.\n     *\n     * @param {ICrawlerCheckpoint} checkpoint The checkpoint that should be added\n     * to the index.\n     *\n     * @returns {Promise} A promise that will resolve once the checkpoint has\n     * been stored.\n     */\n    public async addCrawlerCheckpoint(checkpoint: ICrawlerCheckpoint): Promise<void> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Add a new crawler checkpoint to the index.\n     *\n     * @param {ICrawlerCheckpoint} checkpoint The checkpoint that should be\n     * removed from the index.\n     *\n     * @returns {Promise} A promise that will resolve once the checkpoint has\n     * been removed.\n     */\n    public async removeCrawlerCheckpoint(checkpoint: ICrawlerCheckpoint): Promise<void> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Load the stored checkpoints from the index.\n     *\n     * @returns {Promise<[ICrawlerCheckpoint]>} A promise that will resolve to an\n     * array of crawler checkpoints once they have been loaded from the index.\n     */\n    public async loadCheckpoints(): Promise<ICrawlerCheckpoint[]> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /** Load events that contain an mxc URL to a file from the index.\n     *\n     * @param  {object} args Arguments object for the method.\n     * @param  {string} args.roomId The ID of the room for which the events\n     * should be loaded.\n     * @param  {number} args.limit The maximum number of events to return.\n     * @param  {string} args.fromEvent An event id of a previous event returned\n     * by this method. Passing this means that we are going to continue loading\n     * events from this point in the history.\n     * @param  {string} args.direction The direction to which we should continue\n     * loading events from. This is used only if fromEvent is used as well.\n     *\n     * @returns {Promise<[IEventAndProfile]>} A promise that will resolve to an\n     * array of Matrix events that contain mxc URLs accompanied with the\n     * historic profile of the sender.\n     */\n    public async loadFileEvents(args: ILoadArgs): Promise<IEventAndProfile[]> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * close our event index.\n     *\n     * @returns {Promise} A promise that will resolve once the event index has\n     * been closed.\n     */\n    public async closeEventIndex(): Promise<void> {\n        throw new Error(\"Unimplemented\");\n    }\n\n    /**\n     * Delete our current event index.\n     *\n     * @returns {Promise} A promise that will resolve once the event index has\n     * been deleted.\n     */\n    public async deleteEventIndex(): Promise<void> {\n        throw new Error(\"Unimplemented\");\n    }\n}\n","/*\nCopyright 2022-2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport { type ElectronChannel } from \"../../@types/global\";\n\ninterface IPCPayload {\n    id?: number;\n    error?: string | { message: string };\n    reply?: any;\n}\n\nexport class IPCManager {\n    private pendingIpcCalls: { [ipcCallId: number]: PromiseWithResolvers<any> } = {};\n    private nextIpcCallId = 0;\n\n    public constructor(\n        private readonly sendChannel: ElectronChannel = \"ipcCall\",\n        private readonly recvChannel: ElectronChannel = \"ipcReply\",\n    ) {\n        if (!window.electron) {\n            throw new Error(\"Cannot instantiate ElectronPlatform, window.electron is not set\");\n        }\n        window.electron.on(this.recvChannel, this.onIpcReply);\n    }\n\n    public async call(name: string, ...args: any[]): Promise<any> {\n        // TODO this should be moved into the preload.js file.\n        const ipcCallId = ++this.nextIpcCallId;\n        const deferred = Promise.withResolvers<any>();\n        this.pendingIpcCalls[ipcCallId] = deferred;\n        // Maybe add a timeout to these? Probably not necessary.\n        window.electron!.send(this.sendChannel, { id: ipcCallId, name, args });\n        return deferred.promise;\n    }\n\n    private onIpcReply = (_ev: Event, payload: IPCPayload): void => {\n        if (payload.id === undefined) {\n            logger.warn(\"Ignoring IPC reply with no ID\");\n            return;\n        }\n\n        if (this.pendingIpcCalls[payload.id] === undefined) {\n            logger.warn(\"Unknown IPC payload ID: \" + payload.id);\n            return;\n        }\n\n        const callbacks = this.pendingIpcCalls[payload.id];\n        delete this.pendingIpcCalls[payload.id];\n        if (payload.error) {\n            // `seshat.ts` sends a JavaScript object with a `message` property. Turn it into a proper Error.\n            let error = payload.error;\n            if (typeof error === \"object\" && error.message) {\n                error = new Error(error.message);\n            }\n            callbacks.reject(error);\n        } else {\n            callbacks.resolve(payload.reply);\n        }\n    };\n}\n","/*\nCopyright 2022-2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// eslint-disable-next-line no-restricted-imports\nimport {\n    type IMatrixProfile,\n    type IEventWithRoomId as IMatrixEvent,\n    type IResultRoomEvents,\n} from \"matrix-js-sdk/src/@types/search\";\n\nimport BaseEventIndexManager, {\n    type ICrawlerCheckpoint,\n    type IEventAndProfile,\n    type IIndexStats,\n    type ISearchArgs,\n    type ILoadArgs,\n} from \"../../indexing/BaseEventIndexManager\";\nimport { IPCManager } from \"./IPCManager\";\n\nexport class SeshatIndexManager extends BaseEventIndexManager {\n    private readonly ipc = new IPCManager(\"seshat\", \"seshatReply\");\n\n    public async supportsEventIndexing(): Promise<boolean> {\n        return this.ipc.call(\"supportsEventIndexing\");\n    }\n\n    public async initEventIndex(userId: string, deviceId: string): Promise<void> {\n        return this.ipc.call(\"initEventIndex\", userId, deviceId);\n    }\n\n    public async addEventToIndex(ev: IMatrixEvent, profile: IMatrixProfile): Promise<void> {\n        return this.ipc.call(\"addEventToIndex\", ev, profile);\n    }\n\n    public async deleteEvent(eventId: string): Promise<boolean> {\n        return this.ipc.call(\"deleteEvent\", eventId);\n    }\n\n    public async isEventIndexEmpty(): Promise<boolean> {\n        return this.ipc.call(\"isEventIndexEmpty\");\n    }\n\n    public async isRoomIndexed(roomId: string): Promise<boolean> {\n        return this.ipc.call(\"isRoomIndexed\", roomId);\n    }\n\n    public async commitLiveEvents(): Promise<void> {\n        return this.ipc.call(\"commitLiveEvents\");\n    }\n\n    public async searchEventIndex(searchConfig: ISearchArgs): Promise<IResultRoomEvents> {\n        return this.ipc.call(\"searchEventIndex\", searchConfig);\n    }\n\n    public async addHistoricEvents(\n        events: IEventAndProfile[],\n        checkpoint: ICrawlerCheckpoint | null,\n        oldCheckpoint: ICrawlerCheckpoint | null,\n    ): Promise<boolean> {\n        return this.ipc.call(\"addHistoricEvents\", events, checkpoint, oldCheckpoint);\n    }\n\n    public async addCrawlerCheckpoint(checkpoint: ICrawlerCheckpoint): Promise<void> {\n        return this.ipc.call(\"addCrawlerCheckpoint\", checkpoint);\n    }\n\n    public async removeCrawlerCheckpoint(checkpoint: ICrawlerCheckpoint): Promise<void> {\n        return this.ipc.call(\"removeCrawlerCheckpoint\", checkpoint);\n    }\n\n    public async loadFileEvents(args: ILoadArgs): Promise<IEventAndProfile[]> {\n        return this.ipc.call(\"loadFileEvents\", args);\n    }\n\n    public async loadCheckpoints(): Promise<ICrawlerCheckpoint[]> {\n        return this.ipc.call(\"loadCheckpoints\");\n    }\n\n    public async closeEventIndex(): Promise<void> {\n        return this.ipc.call(\"closeEventIndex\");\n    }\n\n    public async getStats(): Promise<IIndexStats> {\n        return this.ipc.call(\"getStats\");\n    }\n\n    public async getUserVersion(): Promise<number> {\n        return this.ipc.call(\"getUserVersion\");\n    }\n\n    public async setUserVersion(version: number): Promise<void> {\n        return this.ipc.call(\"setUserVersion\", version);\n    }\n\n    public async deleteEventIndex(): Promise<void> {\n        return this.ipc.call(\"deleteEventIndex\");\n    }\n}\n","/*\nCopyright 2024-2025 New Vector Ltd.\nCopyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>\nCopyright 2018-2021 New Vector Ltd\nCopyright 2019 Michael Telatynski <7t3chguy@gmail.com>\nCopyright 2016 Aviral Dasgupta\nCopyright 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport {\n    type MatrixClient,\n    type Room,\n    type MatrixEvent,\n    type OAuthRegistrationRequest,\n} from \"matrix-js-sdk/src/matrix\";\nimport React from \"react\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { uniqueId } from \"lodash\";\n\nimport BasePlatform, { UpdateCheckStatus, type UpdateStatus } from \"../../BasePlatform\";\nimport type BaseEventIndexManager from \"../../indexing/BaseEventIndexManager\";\nimport dis from \"../../dispatcher/dispatcher\";\nimport SdkConfig from \"../../SdkConfig\";\nimport { type IConfigOptions } from \"../../IConfigOptions\";\nimport * as rageshake from \"../../rageshake/rageshake\";\nimport Modal from \"../../Modal\";\nimport InfoDialog from \"../../components/views/dialogs/InfoDialog\";\nimport Spinner from \"../../components/views/elements/Spinner\";\nimport { Action } from \"../../dispatcher/actions\";\nimport { type ActionPayload } from \"../../dispatcher/payloads\";\nimport { showToast as showUpdateToast } from \"../../toasts/UpdateToast\";\nimport { type CheckUpdatesPayload } from \"../../dispatcher/payloads/CheckUpdatesPayload\";\nimport ToastStore from \"../../stores/ToastStore\";\nimport GenericExpiringToast from \"../../components/views/toasts/GenericExpiringToast\";\nimport { BreadcrumbsStore } from \"../../stores/BreadcrumbsStore\";\nimport { UPDATE_EVENT } from \"../../stores/AsyncStore\";\nimport { avatarUrlForRoom, getInitialLetter } from \"../../Avatar\";\nimport DesktopCapturerSourcePicker from \"../../components/views/elements/DesktopCapturerSourcePicker\";\nimport { MatrixClientPeg } from \"../../MatrixClientPeg\";\nimport { SeshatIndexManager } from \"./SeshatIndexManager\";\nimport { IPCManager } from \"./IPCManager\";\nimport { _t } from \"../../languageHandler\";\nimport { BadgeOverlayRenderer } from \"../../favicon\";\nimport GenericToast from \"../../components/views/toasts/GenericToast.tsx\";\n\ninterface SquirrelUpdate {\n    releaseNotes: string;\n    releaseName: string;\n    releaseDate: Date;\n    updateURL: string;\n}\n\nconst SSO_ID_KEY = \"element-desktop-ssoid\";\n\nfunction platformFriendlyName(): string {\n    // used to use window.process but the same info is available here\n    if (navigator.userAgent.includes(\"Macintosh\")) {\n        return \"macOS\";\n    } else if (navigator.userAgent.includes(\"FreeBSD\")) {\n        return \"FreeBSD\";\n    } else if (navigator.userAgent.includes(\"OpenBSD\")) {\n        return \"OpenBSD\";\n    } else if (navigator.userAgent.includes(\"SunOS\")) {\n        return \"SunOS\";\n    } else if (navigator.userAgent.includes(\"Windows\")) {\n        return \"Windows\";\n    } else if (navigator.userAgent.includes(\"Linux\")) {\n        return \"Linux\";\n    } else {\n        return \"Unknown\";\n    }\n}\n\nfunction getUpdateCheckStatus(status: boolean | string): UpdateStatus {\n    if (status === true) {\n        return { status: UpdateCheckStatus.Downloading };\n    } else if (status === false) {\n        return { status: UpdateCheckStatus.NotAvailable };\n    } else {\n        return {\n            status: UpdateCheckStatus.Error,\n            detail: status,\n        };\n    }\n}\n\nexport default class ElectronPlatform extends BasePlatform {\n    private readonly ipc = new IPCManager(\"ipcCall\", \"ipcReply\");\n    private readonly eventIndexManager: BaseEventIndexManager = new SeshatIndexManager();\n    public readonly initialised: Promise<void>;\n    private readonly electron: Electron;\n    private protocol!: string;\n    private sessionId!: string;\n    private badgeOverlayRenderer?: BadgeOverlayRenderer;\n    private config!: IConfigOptions;\n    private supportedSettings?: Record<string, boolean>;\n    private clientStartedPromiseWithResolvers = Promise.withResolvers<void>();\n\n    public constructor() {\n        super();\n\n        if (!window.electron) {\n            throw new Error(\"Cannot instantiate ElectronPlatform, window.electron is not set\");\n        }\n        this.electron = window.electron;\n\n        /*\n            IPC Call `check_updates` returns:\n            true if there is an update available\n            false if there is not\n            or the error if one is encountered\n         */\n        this.electron.on(\"check_updates\", (event, status) => {\n            dis.dispatch<CheckUpdatesPayload>({\n                action: Action.CheckUpdates,\n                ...getUpdateCheckStatus(status),\n            });\n        });\n\n        // `userAccessToken` (IPC) is requested by the main process when appending authentication\n        // to media downloads. A reply is sent over the same channel.\n        this.electron.on(\"userAccessToken\", () => {\n            this.electron.send(\"userAccessToken\", MatrixClientPeg.get()?.getAccessToken());\n        });\n\n        // `homeserverUrl` (IPC) is requested by the main process. A reply is sent over the same channel.\n        this.electron.on(\"homeserverUrl\", () => {\n            this.electron.send(\"homeserverUrl\", MatrixClientPeg.get()?.getHomeserverUrl());\n        });\n\n        // `serverSupportedVersions` is requested by the main process when it needs to know if the\n        // server supports a particular version. This is primarily used to detect authenticated media\n        // support. A reply is sent over the same channel.\n        this.electron.on(\"serverSupportedVersions\", async () => {\n            this.electron.send(\"serverSupportedVersions\", await MatrixClientPeg.get()?.getVersions());\n        });\n\n        // try to flush the rageshake logs to indexeddb before quit.\n        this.electron.on(\"before-quit\", function () {\n            logger.log(\"element-desktop closing\");\n            rageshake.flush();\n        });\n\n        this.electron.on(\"update-downloaded\", this.onUpdateDownloaded);\n\n        this.electron.on(\"preferences\", () => {\n            dis.fire(Action.ViewUserSettings);\n        });\n\n        this.electron.on(\"userDownloadCompleted\", (ev, { id, name }) => {\n            const key = `DOWNLOAD_TOAST_${id}`;\n\n            const onAccept = (): void => {\n                this.electron.send(\"userDownloadAction\", { id, open: true });\n                ToastStore.sharedInstance().dismissToast(key);\n            };\n\n            const onDismiss = (): void => {\n                this.electron.send(\"userDownloadAction\", { id });\n            };\n\n            ToastStore.sharedInstance().addOrReplaceToast({\n                key,\n                title: _t(\"download_completed\"),\n                props: {\n                    description: name,\n                    primaryLabel: _t(\"action|open\"),\n                    onPrimaryClick: onAccept,\n                    dismissLabel: _t(\"action|dismiss\"),\n                    onDismiss,\n                    numSeconds: 10,\n                },\n                component: GenericExpiringToast,\n                priority: 99,\n            });\n        });\n\n        this.electron.on(\"openDesktopCapturerSourcePicker\", async () => {\n            const { finished } = Modal.createDialog(DesktopCapturerSourcePicker);\n            const [source] = await finished;\n            // getDisplayMedia promise does not return if no dummy is passed here as source\n            await this.ipc.call(\"callDisplayMediaCallback\", source ?? { id: \"\", name: \"\", thumbnailURL: \"\" });\n        });\n\n        this.electron.on(\"showToast\", async (ev, { title, description, priority = 40 }) => {\n            await this.clientStartedPromiseWithResolvers.promise;\n\n            const key = uniqueId(\"electron_showToast_\");\n            const onPrimaryClick = (): void => {\n                ToastStore.sharedInstance().dismissToast(key);\n            };\n\n            ToastStore.sharedInstance().addOrReplaceToast({\n                key,\n                title,\n                props: {\n                    description,\n                    primaryLabel: _t(\"action|dismiss\"),\n                    onPrimaryClick,\n                },\n                component: GenericToast,\n                priority,\n            });\n        });\n\n        BreadcrumbsStore.instance.on(UPDATE_EVENT, this.onBreadcrumbsUpdate);\n\n        this.initialised = this.initialise();\n    }\n\n    protected onAction(payload: ActionPayload): void {\n        super.onAction(payload);\n        // Whitelist payload actions, no point sending most across\n        if ([\"call_state\"].includes(payload.action)) {\n            this.electron.send(\"app_onAction\", payload);\n        }\n\n        if (payload.action === Action.ClientStarted) {\n            this.clientStartedPromiseWithResolvers.resolve();\n        }\n    }\n\n    private async initialise(): Promise<void> {\n        const { protocol, sessionId, config, supportedSettings, supportsBadgeOverlay } =\n            await this.electron.initialise();\n        this.protocol = protocol;\n        this.sessionId = sessionId;\n        this.config = config;\n        this.supportedSettings = supportedSettings;\n        if (supportsBadgeOverlay) {\n            this.badgeOverlayRenderer = new BadgeOverlayRenderer();\n        }\n    }\n\n    public async getConfig(): Promise<IConfigOptions | undefined> {\n        await this.initialised;\n        return this.config;\n    }\n\n    private onBreadcrumbsUpdate = (): void => {\n        const rooms = BreadcrumbsStore.instance.rooms.slice(0, 7).map((r) => ({\n            roomId: r.roomId,\n            avatarUrl: avatarUrlForRoom(\n                r,\n                Math.floor(60 * window.devicePixelRatio),\n                Math.floor(60 * window.devicePixelRatio),\n                \"crop\",\n            ),\n            initial: getInitialLetter(r.name),\n        }));\n        void this.ipc.call(\"breadcrumbs\", rooms);\n    };\n\n    private onUpdateDownloaded = async (ev: Event, { releaseNotes, releaseName }: SquirrelUpdate): Promise<void> => {\n        dis.dispatch<CheckUpdatesPayload>({\n            action: Action.CheckUpdates,\n            status: UpdateCheckStatus.Ready,\n        });\n        if (this.shouldShowUpdate(releaseName)) {\n            showUpdateToast(await this.getAppVersion(), releaseName, releaseNotes);\n        }\n    };\n\n    public getHumanReadableName(): string {\n        return \"Electron Platform\"; // no translation required: only used for analytics\n    }\n\n    /**\n     * Return true if platform supports multi-language\n     * spell-checking, otherwise false.\n     */\n    public supportsSpellCheckSettings(): boolean {\n        return true;\n    }\n\n    public allowOverridingNativeContextMenus(): boolean {\n        return true;\n    }\n\n    public setNotificationCount(count: number): void {\n        if (this.notificationCount === count) return;\n        super.setNotificationCount(count);\n        if (this.badgeOverlayRenderer) {\n            this.badgeOverlayRenderer\n                .render(count)\n                .then((buffer) => {\n                    this.electron.send(\"setBadgeCount\", count, buffer);\n                })\n                .catch((ex) => {\n                    logger.warn(\"Unable to generate badge overlay\", ex);\n                });\n        } else {\n            this.electron.send(\"setBadgeCount\", count);\n        }\n    }\n\n    public setErrorStatus(errorDidOccur: boolean): void {\n        if (!this.badgeOverlayRenderer) {\n            super.setErrorStatus(errorDidOccur);\n            return;\n        }\n        // Check before calling super so we don't override the previous state.\n        if (this.errorDidOccur !== errorDidOccur) {\n            super.setErrorStatus(errorDidOccur);\n            let promise: Promise<ArrayBuffer | null>;\n            if (errorDidOccur) {\n                promise = this.badgeOverlayRenderer.render(this.notificationCount || \"×\", \"#f00\");\n            } else {\n                promise = this.badgeOverlayRenderer.render(this.notificationCount);\n            }\n            promise\n                .then((buffer) => {\n                    this.electron.send(\"setBadgeCount\", this.notificationCount, buffer, errorDidOccur);\n                })\n                .catch((ex) => {\n                    logger.warn(\"Unable to generate badge overlay\", ex);\n                });\n        }\n    }\n\n    public supportsNotifications(): boolean {\n        return true;\n    }\n\n    public maySendNotifications(): boolean {\n        return true;\n    }\n\n    public displayNotification(\n        title: string,\n        msg: string,\n        avatarUrl: string,\n        room: Room,\n        ev?: MatrixEvent,\n    ): Notification {\n        // GNOME notification spec parses HTML tags for styling...\n        // Electron Docs state all supported linux notification systems follow this markup spec\n        // https://github.com/electron/electron/blob/master/docs/tutorial/desktop-environment-integration.md#linux\n        // maybe we should pass basic styling (italics, bold, underline) through from MD\n        // we only have to strip out < and > as the spec doesn't include anything about things like &amp;\n        // so we shouldn't assume that all implementations will treat those properly. Very basic tag parsing is done.\n        if (navigator.userAgent.includes(\"Linux\")) {\n            msg = msg.replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n        }\n\n        const notification = super.displayNotification(title, msg, avatarUrl, room, ev);\n\n        const handler = notification.onclick as () => void;\n        notification.onclick = (): void => {\n            handler?.();\n            void this.ipc.call(\"focusWindow\");\n        };\n\n        return notification;\n    }\n\n    public loudNotification(ev: MatrixEvent, room: Room): void {\n        this.electron.send(\"loudNotification\");\n    }\n\n    public needsUrlTooltips(): boolean {\n        return true;\n    }\n\n    public async getAppVersion(): Promise<string> {\n        return this.ipc.call(\"getAppVersion\");\n    }\n\n    public supportsSetting(settingName?: string): boolean {\n        if (settingName === undefined) return true;\n        return this.supportedSettings?.[settingName] === true;\n    }\n\n    public async getSettingValue(settingName: string): Promise<any> {\n        await this.initialised;\n        return this.electron.getSettingValue(settingName);\n    }\n\n    public async setSettingValue(settingName: string, value: any): Promise<void> {\n        await this.initialised;\n        return this.electron.setSettingValue(settingName, value);\n    }\n\n    public async canSelfUpdate(): Promise<boolean> {\n        const feedUrl = await this.ipc.call(\"getUpdateFeedUrl\");\n        return Boolean(feedUrl);\n    }\n\n    public startUpdateCheck(): void {\n        super.startUpdateCheck();\n        this.electron.send(\"check_updates\");\n    }\n\n    public installUpdate(): void {\n        // IPC to the main process to install the update, since quitAndInstall\n        // doesn't fire the before-quit event so the main process needs to know\n        // it should exit.\n        this.electron.send(\"install_update\");\n    }\n\n    public getDefaultDeviceDisplayName(): string {\n        const brand = SdkConfig.get().brand;\n        return _t(\"desktop_default_device_name\", {\n            brand,\n            platformName: platformFriendlyName(),\n        });\n    }\n\n    public requestNotificationPermission(): Promise<string> {\n        return Promise.resolve(\"granted\");\n    }\n\n    public reload(): void {\n        window.location.reload();\n    }\n\n    public getEventIndexingManager(): BaseEventIndexManager | null {\n        return this.eventIndexManager;\n    }\n\n    public async setLanguage(preferredLangs: string[]): Promise<any> {\n        return this.ipc.call(\"setLanguage\", preferredLangs);\n    }\n\n    public setSpellCheckEnabled(enabled: boolean): void {\n        this.ipc.call(\"setSpellCheckEnabled\", enabled).catch((error) => {\n            logger.log(\"Failed to send setSpellCheckEnabled IPC to Electron\");\n            logger.error(error);\n        });\n    }\n\n    public async getSpellCheckEnabled(): Promise<boolean> {\n        return this.ipc.call(\"getSpellCheckEnabled\");\n    }\n\n    public setSpellCheckLanguages(preferredLangs: string[]): void {\n        this.ipc.call(\"setSpellCheckLanguages\", preferredLangs).catch((error) => {\n            logger.log(\"Failed to send setSpellCheckLanguages IPC to Electron\");\n            logger.error(error);\n        });\n    }\n\n    public async getSpellCheckLanguages(): Promise<string[]> {\n        return this.ipc.call(\"getSpellCheckLanguages\");\n    }\n\n    public async getDesktopCapturerSources(options: GetSourcesOptions): Promise<Array<DesktopCapturerSource>> {\n        return this.ipc.call(\"getDesktopCapturerSources\", options);\n    }\n\n    public supportsDesktopCapturer(): boolean {\n        return true;\n    }\n\n    public supportsJitsiScreensharing(): boolean {\n        // See https://github.com/element-hq/element-web/issues/4880\n        return false;\n    }\n\n    public async getAvailableSpellCheckLanguages(): Promise<string[]> {\n        return this.ipc.call(\"getAvailableSpellCheckLanguages\");\n    }\n\n    public getSSOCallbackUrl(fragmentAfterLogin?: string): URL {\n        const url = super.getSSOCallbackUrl(fragmentAfterLogin);\n        url.protocol = \"element\";\n        url.searchParams.set(SSO_ID_KEY, this.sessionId);\n        return url;\n    }\n\n    public startSingleSignOn(\n        mxClient: MatrixClient,\n        loginType: \"sso\" | \"cas\",\n        fragmentAfterLogin: string,\n        idpId?: string,\n    ): void {\n        // this will get intercepted by electron-main will-navigate\n        super.startSingleSignOn(mxClient, loginType, fragmentAfterLogin, idpId);\n        Modal.createDialog(InfoDialog, {\n            title: _t(\"auth|sso_complete_in_browser_dialog_title\"),\n            description: <Spinner />,\n        });\n    }\n\n    public navigateForwardBack(back: boolean): void {\n        void this.ipc.call(back ? \"navigateBack\" : \"navigateForward\");\n    }\n\n    public overrideBrowserShortcuts(): boolean {\n        return true;\n    }\n\n    public async getPickleKey(userId: string, deviceId: string): Promise<string | null> {\n        try {\n            return await this.ipc.call(\"getPickleKey\", userId, deviceId);\n        } catch {\n            // if we can't connect to the password storage, assume there's no\n            // pickle key\n            return null;\n        }\n    }\n\n    public async createPickleKey(userId: string, deviceId: string): Promise<string | null> {\n        try {\n            return await this.ipc.call(\"createPickleKey\", userId, deviceId);\n        } catch {\n            // if we can't connect to the password storage, assume there's no\n            // pickle key\n            return null;\n        }\n    }\n\n    public async destroyPickleKey(userId: string, deviceId: string): Promise<void> {\n        try {\n            await this.ipc.call(\"destroyPickleKey\", userId, deviceId);\n        } catch {}\n    }\n\n    public async clearStorage(): Promise<void> {\n        try {\n            await super.clearStorage();\n            await this.ipc.call(\"clearStorage\");\n        } catch {}\n    }\n\n    public get baseUrl(): string {\n        // This configuration is element-desktop specific so the types here do not know about it\n        return (SdkConfig.get() as unknown as Record<string, string>)[\"web_base_url\"] ?? \"https://app.element.io\";\n    }\n\n    public get defaultOAuthClientUri(): string {\n        // Default to element.io as our scheme `io.element.desktop` is within its scope on default MAS policies\n        return \"https://element.io\";\n    }\n\n    public async getOAuthClientMetadata(): Promise<OAuthRegistrationRequest> {\n        const baseMetadata = await super.getOAuthClientMetadata();\n        return {\n            ...baseMetadata,\n            application_type: \"native\",\n        };\n    }\n\n    public getOAuthClientState(): string {\n        return `:${SSO_ID_KEY}:${this.sessionId}`;\n    }\n\n    /**\n     * The URL to return to after a successful OIDC authentication\n     */\n    public getOAuthCallbackUrl(): URL {\n        const url = super.getOAuthCallbackUrl();\n        url.protocol = this.protocol;\n        // Trim the double slash into a single slash to comply with https://datatracker.ietf.org/doc/html/rfc8252#section-7.1\n        if (url.href.startsWith(`${url.protocol}//`)) {\n            url.href = url.href.replace(\"://\", \":/\");\n        }\n        return url;\n    }\n\n    public checkSessionLockFree(): boolean {\n        return true;\n    }\n\n    public async getSessionLock(_onNewInstance: () => Promise<void>): Promise<boolean> {\n        return true;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2023 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\n/*\n * Functionality for checking that only one instance is running at once\n *\n * The algorithm here is twofold.\n *\n * First, we \"claim\" a lock by periodically writing to `STORAGE_ITEM_PING`. On shutdown, we clear that item. So,\n * a new instance starting up can check if the lock is free by inspecting `STORAGE_ITEM_PING`. If it is unset,\n * or is stale, the new instance can assume the lock is free and claim it for itself. Otherwise, the new instance\n * has to wait for the ping to be stale, or the item to be cleared.\n *\n * Secondly, we need a mechanism for proactively telling existing instances to shut down. We do this by writing a\n * unique value to `STORAGE_ITEM_CLAIMANT`. Other instances of the app are supposed to monitor for writes to\n * `STORAGE_ITEM_CLAIMANT` and initiate shutdown when it happens.\n *\n * There is slight complexity in `STORAGE_ITEM_CLAIMANT` in that we need to watch out for yet another instance\n * starting up and staking a claim before we even get a chance to take the lock. When that happens we just bail out\n * and let the newer instance get the lock.\n *\n * `STORAGE_ITEM_OWNER` has no functional role in the lock mechanism; it exists solely as a diagnostic indicator\n * of which instance is writing to `STORAGE_ITEM_PING`.\n */\n\nexport const SESSION_LOCK_CONSTANTS = {\n    /**\n     * LocalStorage key for an item which indicates we have the lock.\n     *\n     * The instance which holds the lock writes the current time to this key every few seconds, to indicate it is still\n     * alive and holds the lock.\n     */\n    STORAGE_ITEM_PING: \"react_sdk_session_lock_ping\",\n\n    /**\n     * LocalStorage key for an item which holds the unique \"session ID\" of the instance which currently holds the lock.\n     *\n     * This property doesn't actually form a functional part of the locking algorithm; it is purely diagnostic.\n     */\n    STORAGE_ITEM_OWNER: \"react_sdk_session_lock_owner\",\n\n    /**\n     * LocalStorage key for the session ID of the most recent claimant to the lock.\n     *\n     * Each instance writes to this key on startup, so existing instances can detect new ones starting up.\n     */\n    STORAGE_ITEM_CLAIMANT: \"react_sdk_session_lock_claimant\",\n\n    /**\n     * The number of milliseconds after which we consider a lock claim stale\n     */\n    LOCK_EXPIRY_TIME_MS: 15000,\n};\n\n/**\n * See if any instances are currently running\n *\n * @returns true if any instance is currently active\n */\nexport function checkSessionLockFree(): boolean {\n    const prefixedLogger = logger.getChild(`checkSessionLockFree`);\n\n    const lastPingTime = window.localStorage.getItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_PING);\n    if (lastPingTime === null) {\n        // no other holder\n        prefixedLogger.info(\"No other session has the lock\");\n        return true;\n    }\n\n    const lockHolder = window.localStorage.getItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_OWNER);\n\n    // see if it has expired\n    const timeAgo = Date.now() - parseInt(lastPingTime);\n\n    const remaining = SESSION_LOCK_CONSTANTS.LOCK_EXPIRY_TIME_MS - timeAgo;\n    if (remaining <= 0) {\n        // another session claimed the lock, but it is stale.\n        prefixedLogger.info(`Last ping (from ${lockHolder}) was ${timeAgo}ms ago: lock is free`);\n        return true;\n    }\n\n    prefixedLogger.info(`Last ping (from ${lockHolder}) was ${timeAgo}ms ago: lock is taken`);\n    return false;\n}\n\n/**\n * Ensure that only one instance of the application is running at once.\n *\n * If there are any other running instances, tells them to stop, and waits for them to do so.\n *\n * Once we are the sole instance, sets a background job going to service a lock. Then, if another instance starts up,\n * `onNewInstance` is called: it should shut the app down to make sure we aren't doing any more work.\n *\n * @param onNewInstance - callback to handle another instance starting up. NOTE: this may be called before\n *     `getSessionLock` returns if the lock is stolen before we get a chance to start.\n *\n * @returns true if we successfully claimed the lock; false if another instance stole it from under our nose\n *     (in which `onNewInstance` will have been called)\n */\nexport async function getSessionLock(onNewInstance: () => Promise<void>): Promise<boolean> {\n    /** unique ID for this session */\n    const sessionIdentifier = window.crypto.randomUUID();\n\n    const prefixedLogger = logger.getChild(`getSessionLock[${sessionIdentifier}]`);\n\n    /** The ID of our regular task to service the lock.\n     *\n     * Non-null while we hold the lock; null if we have not yet claimed it, or have released it. */\n    let lockServicer: number | null = null;\n\n    /**\n     * See if the lock is free.\n     *\n     * @returns\n     *  - `>0`: the number of milliseconds before the current claim on the lock can be considered stale.\n     *  - `0`: the lock is free for the taking\n     *  - `<0`: someone else has staked a claim for the lock, so we are no longer in line for it.\n     */\n    function checkLock(): number {\n        // first of all, check that we are still the active claimant (ie, another instance hasn't come along while we were waiting.\n        const claimant = window.localStorage.getItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_CLAIMANT);\n        if (claimant !== sessionIdentifier) {\n            prefixedLogger.warn(`Lock was claimed by ${claimant} while we were waiting for it: aborting startup`);\n            return -1;\n        }\n\n        const lastPingTime = window.localStorage.getItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_PING);\n        const lockHolder = window.localStorage.getItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_OWNER);\n        if (lastPingTime === null) {\n            prefixedLogger.info(\"No other session has the lock: proceeding with startup\");\n            return 0;\n        }\n\n        const timeAgo = Date.now() - parseInt(lastPingTime);\n        // If the last ping time is in the future (i.e., timeAgo is negative), the chances are that the system clock has\n        // been wound back since the ping. Rather than waiting hours/days/millenia for us to get there, treat a future\n        // ping as \"just now\" by clipping to 0.\n        const remaining = SESSION_LOCK_CONSTANTS.LOCK_EXPIRY_TIME_MS - Math.max(timeAgo, 0);\n        if (remaining <= 0) {\n            // another session claimed the lock, but it is stale.\n            prefixedLogger.info(`Last ping (from ${lockHolder}) was ${timeAgo}ms ago: proceeding with startup`);\n            return 0;\n        }\n\n        prefixedLogger.info(`Last ping (from ${lockHolder}) was ${timeAgo}ms ago, waiting ${remaining}ms`);\n        return remaining;\n    }\n\n    function serviceLock(): void {\n        window.localStorage.setItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_OWNER, sessionIdentifier);\n        window.localStorage.setItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_PING, Date.now().toString());\n    }\n\n    // handler for storage events, used later\n    function onStorageEvent(event: StorageEvent): void {\n        if (event.key === SESSION_LOCK_CONSTANTS.STORAGE_ITEM_CLAIMANT) {\n            // It's possible that the event was delayed, and this update actually predates our claim on the lock.\n            // (In particular: suppose tab A and tab B start concurrently and both attempt to set STORAGE_ITEM_CLAIMANT.\n            // Each write queues up a `storage` event for all other tabs. So both tabs see the `storage` event from the\n            // other, even though by the time it arrives we may have overwritten it.)\n            //\n            // To resolve any doubt, we check the *actual* state of the storage.\n            const claimingSession = window.localStorage.getItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_CLAIMANT);\n            if (claimingSession === sessionIdentifier) {\n                return;\n            }\n            prefixedLogger.info(`Session ${claimingSession} is waiting for the lock`);\n            window.removeEventListener(\"storage\", onStorageEvent);\n            releaseLock().catch((err) => {\n                prefixedLogger.error(\"Error releasing session lock\", err);\n            });\n        }\n    }\n\n    // handler for pagehide and unload events, used later\n    function onPagehideEvent(): void {\n        // only remove the ping if we still think we're the owner. Otherwise we could be removing someone else's claim!\n        if (lockServicer !== null) {\n            prefixedLogger.debug(\"page hide: clearing our claim\");\n            window.clearInterval(lockServicer);\n            window.localStorage.removeItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_PING);\n            window.localStorage.removeItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_OWNER);\n            lockServicer = null;\n        }\n\n        // It's worth noting that, according to the spec, the page might come back to life again after a pagehide.\n        //\n        // In practice that's unlikely because Element is unlikely to qualify for the bfcache, but if it does,\n        // this is probably the best we can do: we certainly don't want to stop the user loading any new tabs because\n        // Element happens to be in a bfcache somewhere.\n        //\n        // So, we just hope that we aren't in the middle of any crypto operations, and rely on `onStorageEvent` kicking\n        // in soon enough after we resume to tell us if another tab woke up while we were asleep.\n    }\n\n    async function releaseLock(): Promise<void> {\n        // tell the app to shut down\n        await onNewInstance();\n\n        // and, once it has done so, stop pinging the lock.\n        if (lockServicer !== null) {\n            window.clearInterval(lockServicer);\n        }\n        window.localStorage.removeItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_PING);\n        window.localStorage.removeItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_OWNER);\n        lockServicer = null;\n    }\n\n    // first of all, stake a claim for the lock. This tells anyone else holding the lock that we want it.\n    window.localStorage.setItem(SESSION_LOCK_CONSTANTS.STORAGE_ITEM_CLAIMANT, sessionIdentifier);\n\n    // now, wait for the lock to be free.\n    // eslint-disable-next-line no-constant-condition\n    while (true) {\n        const remaining = checkLock();\n\n        if (remaining == 0) {\n            // ok, the lock is free, and nobody else has staked a more recent claim.\n            break;\n        } else if (remaining < 0) {\n            // someone else staked a claim for the lock; we bail out.\n            await onNewInstance();\n            return false;\n        }\n\n        // someone else has the lock.\n        // wait for either the ping to expire, or a storage event.\n        let onStorageUpdate: (event: StorageEvent) => void;\n\n        const storageUpdatePromise = new Promise((resolve) => {\n            onStorageUpdate = (event: StorageEvent) => {\n                if (\n                    event.key === SESSION_LOCK_CONSTANTS.STORAGE_ITEM_PING ||\n                    event.key === SESSION_LOCK_CONSTANTS.STORAGE_ITEM_CLAIMANT\n                )\n                    resolve(event);\n            };\n        });\n\n        // We construct our own promise here rather than using the `sleep` utility, to make it easier to test the\n        // SessionLock in a separate Window.\n        const sleepPromise = new Promise((resolve) => {\n            setTimeout(resolve, remaining, undefined);\n        });\n\n        window.addEventListener(\"storage\", onStorageUpdate!);\n        const winner = await Promise.race([sleepPromise, storageUpdatePromise]);\n        window.removeEventListener(\"storage\", onStorageUpdate!);\n\n        // If we got through the whole of the sleep without any writes to the store, we know that the\n        // ping is now stale. There's no point in going round and calling `checkLock` again: we know that\n        // nothing has changed since last time.\n        if (!(winner instanceof StorageEvent)) {\n            prefixedLogger.info(\"Existing claim went stale: proceeding with startup\");\n            break;\n        }\n    }\n\n    // If we get here, we know the lock is ours for the taking.\n\n    // CRITICAL SECTION\n    //\n    // The following code, up to the end of the function, must all be synchronous (ie, no `await` calls), to ensure that\n    // we get our listeners in place and all the writes to localStorage done before other tabs run again.\n\n    // claim the lock, and kick off a background process to service it every 5 seconds\n    serviceLock();\n    lockServicer = window.setInterval(serviceLock, 5000);\n\n    // Now add a listener for other claimants to the lock.\n    window.addEventListener(\"storage\", onStorageEvent);\n\n    // also add a listener to clear our claims when our tab closes or navigates away\n    window.addEventListener(\"pagehide\", onPagehideEvent);\n\n    // The pagehide event is called unreliably on Firefox, so additionally add an unload handler.\n    // https://bugzilla.mozilla.org/show_bug.cgi?id=1854492\n    window.addEventListener(\"unload\", onPagehideEvent);\n\n    return true;\n}\n","/*\nCopyright 2017-2024 New Vector Ltd.\nCopyright 2016 Aviral Dasgupta\nCopyright 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport UAParser from \"ua-parser-js\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport { MatrixClientPeg } from \"../../MatrixClientPeg\";\nimport BasePlatform, { UpdateCheckStatus, type UpdateStatus } from \"../../BasePlatform\";\nimport dis from \"../../dispatcher/dispatcher\";\nimport { hideToast as hideUpdateToast, showToast as showUpdateToast } from \"../../toasts/UpdateToast\";\nimport { Action } from \"../../dispatcher/actions\";\nimport { type CheckUpdatesPayload } from \"../../dispatcher/payloads/CheckUpdatesPayload\";\nimport { _t } from \"../../languageHandler\";\nimport ToastStore from \"../../stores/ToastStore.ts\";\nimport GenericToast from \"../../components/views/toasts/GenericToast.tsx\";\nimport SdkConfig from \"../../SdkConfig.ts\";\nimport type { ActionPayload } from \"../../dispatcher/payloads.ts\";\nimport * as SessionLock from \"../../utils/SessionLock.ts\";\n\nconst POKE_RATE_MS = 10 * 60 * 1000; // 10 min\n\nfunction getNormalizedAppVersion(version: string): string {\n    // if version looks like semver with leading v, strip it (matches scripts/normalize-version.sh)\n    const semVerRegex = /^v\\d+.\\d+.\\d+(-.+)?$/;\n    if (semVerRegex.test(version)) {\n        return version.substring(1);\n    }\n    return version;\n}\n\nexport default class WebPlatform extends BasePlatform {\n    private static readonly VERSION = process.env.VERSION!; // baked in by Webpack\n    private readonly registerServiceWorkerPromise: Promise<void>;\n\n    public constructor() {\n        super();\n\n        // Register the service worker in the background\n        this.registerServiceWorkerPromise = this.registerServiceWorker();\n        this.registerServiceWorkerPromise.catch((e) => {\n            console.error(\"Error registering/updating service worker:\", e);\n        });\n    }\n\n    protected onAction(payload: ActionPayload): void {\n        super.onAction(payload);\n\n        switch (payload.action) {\n            case Action.ClientStarted:\n                // Defer drawing the toast until the client is started as the lifecycle methods reset the ToastStore right before\n                this.registerServiceWorkerPromise.catch(this.handleServiceWorkerRegistrationError);\n                break;\n        }\n    }\n\n    private async registerServiceWorker(): Promise<void> {\n        // sw.js is exported by webpack, sourced from `/src/serviceworker/index.ts`\n        const registration = await navigator.serviceWorker.register(\"sw.js\");\n        if (!registration) {\n            throw new Error(\"Service worker registration failed\");\n        }\n\n        navigator.serviceWorker.addEventListener(\"message\", this.onServiceWorkerPostMessage);\n        await registration.update();\n    }\n\n    private handleServiceWorkerRegistrationError = (): void => {\n        const key = \"service_worker_error\";\n        const brand = SdkConfig.get().brand;\n        ToastStore.sharedInstance().addOrReplaceToast({\n            key,\n            title: _t(\"service_worker_error|title\"),\n            props: {\n                description: _t(\"service_worker_error|description\", { brand }),\n                primaryLabel: _t(\"action|ok\"),\n                onPrimaryClick: () => {\n                    ToastStore.sharedInstance().dismissToast(key);\n                },\n            },\n            component: GenericToast,\n            priority: 95,\n        });\n    };\n\n    private onServiceWorkerPostMessage = (event: MessageEvent): void => {\n        try {\n            if (event.data?.[\"type\"] === \"userinfo\" && event.data?.[\"responseKey\"]) {\n                const userId = localStorage.getItem(\"mx_user_id\");\n                const deviceId = localStorage.getItem(\"mx_device_id\");\n                const homeserver = MatrixClientPeg.get()?.getHomeserverUrl();\n                event.source!.postMessage({\n                    responseKey: event.data[\"responseKey\"],\n                    userId,\n                    deviceId,\n                    homeserver,\n                });\n            }\n        } catch (e) {\n            console.error(\"Error responding to service worker: \", e);\n        }\n    };\n\n    public getHumanReadableName(): string {\n        return \"Web Platform\"; // no translation required: only used for analytics\n    }\n\n    /**\n     * Returns true if the platform supports displaying\n     * notifications, otherwise false.\n     */\n    public supportsNotifications(): boolean {\n        return Boolean(window.Notification);\n    }\n\n    /**\n     * Returns true if the application currently has permission\n     * to display notifications. Otherwise false.\n     */\n    public maySendNotifications(): boolean {\n        return window.Notification.permission === \"granted\";\n    }\n\n    /**\n     * Requests permission to send notifications. Returns\n     * a promise that is resolved when the user has responded\n     * to the request. The promise has a single string argument\n     * that is 'granted' if the user allowed the request or\n     * 'denied' otherwise.\n     */\n    public requestNotificationPermission(): Promise<string> {\n        // annoyingly, the latest spec says this returns a\n        // promise, but this is only supported in Chrome 46\n        // and Firefox 47, so adapt the callback API.\n        return new Promise(function (resolve, reject) {\n            window.Notification.requestPermission((result) => {\n                resolve(result);\n            }).catch(reject);\n        });\n    }\n\n    private async getMostRecentVersion(): Promise<string> {\n        const res = await fetch(\"version\", {\n            method: \"GET\",\n            cache: \"no-cache\",\n        });\n\n        if (res.ok) {\n            const text = await res.text();\n            return getNormalizedAppVersion(text.trim());\n        }\n\n        return Promise.reject({ status: res.status });\n    }\n\n    public getAppVersion(): Promise<string> {\n        return Promise.resolve(getNormalizedAppVersion(WebPlatform.VERSION));\n    }\n\n    public startUpdater(): void {\n        // Poll for an update immediately, and reload the page now if we're out of date\n        // already as we've just initialised an old version of the app somehow.\n        //\n        // Forcibly reloading the page aims to avoid users interacting at all with the old\n        // and potentially broken version of the app.\n        //\n        // Ideally, loading an old copy would be impossible with the\n        // cache-control: nocache HTTP header set, but Firefox doesn't always obey it :/\n        console.log(\"startUpdater, current version is \" + getNormalizedAppVersion(WebPlatform.VERSION));\n        void this.pollForUpdate((version: string, newVersion: string) => {\n            const url = new URL(window.location.href);\n            if (url.searchParams.has(\"updated\")) {\n                console.log(\"Update reloaded but still on an old version, stopping\");\n                // We just reloaded already and are still on the old version!\n                // Show the toast rather than reload in a loop.\n                showUpdateToast(version, newVersion);\n                return;\n            }\n\n            // Set updated as a cachebusting query param and reload the page.\n            url.searchParams.set(\"updated\", newVersion);\n            console.log(\"Update reloading to \" + url.toString());\n            window.location.href = url.toString();\n        });\n        setInterval(() => this.pollForUpdate(showUpdateToast, hideUpdateToast), POKE_RATE_MS);\n    }\n\n    public async canSelfUpdate(): Promise<boolean> {\n        return true;\n    }\n\n    // Exported for tests\n    public pollForUpdate = (\n        showUpdate: (currentVersion: string, mostRecentVersion: string) => void,\n        showNoUpdate?: () => void,\n    ): Promise<UpdateStatus> => {\n        return this.getMostRecentVersion().then(\n            (mostRecentVersion) => {\n                const currentVersion = getNormalizedAppVersion(WebPlatform.VERSION);\n\n                if (currentVersion !== mostRecentVersion) {\n                    if (this.shouldShowUpdate(mostRecentVersion)) {\n                        console.log(\"Update available to \" + mostRecentVersion + \", will notify user\");\n                        showUpdate(currentVersion, mostRecentVersion);\n                    } else {\n                        console.log(\"Update available to \" + mostRecentVersion + \" but won't be shown\");\n                    }\n                    return { status: UpdateCheckStatus.Ready };\n                } else {\n                    console.log(\"No update available, already on \" + mostRecentVersion);\n                    showNoUpdate?.();\n                }\n\n                return { status: UpdateCheckStatus.NotAvailable };\n            },\n            (err) => {\n                logger.error(\"Failed to poll for update\", err);\n                return {\n                    status: UpdateCheckStatus.Error,\n                    detail: err.message || (err.status ? err.status.toString() : \"Unknown Error\"),\n                };\n            },\n        );\n    };\n\n    public startUpdateCheck(): void {\n        super.startUpdateCheck();\n        void this.pollForUpdate(showUpdateToast, hideUpdateToast).then((updateState) => {\n            dis.dispatch<CheckUpdatesPayload>({\n                action: Action.CheckUpdates,\n                ...updateState,\n            });\n        });\n    }\n\n    public installUpdate(): void {\n        window.location.reload();\n    }\n\n    public getDefaultDeviceDisplayName(): string {\n        // strip query-string and fragment from uri\n        const url = new URL(window.location.href);\n\n        // `appName` in the format `develop.element.io/abc/xyz`\n        const appName = [\n            url.host,\n            url.pathname.replace(/\\/$/, \"\"), // Remove trailing slash if present\n        ].join(\"\");\n\n        const ua = new UAParser();\n        const browserName = ua.getBrowser().name || \"unknown browser\";\n        let osName = ua.getOS().name || \"unknown OS\";\n        // Stylise the value from the parser to match Apple's current branding.\n        if (osName === \"Mac OS\") osName = \"macOS\";\n        return _t(\"web_default_device_name\", {\n            appName,\n            browserName,\n            osName,\n        });\n    }\n\n    public reload(): void {\n        window.location.reload();\n    }\n\n    public checkSessionLockFree(): boolean {\n        return SessionLock.checkSessionLockFree();\n    }\n\n    public async getSessionLock(onNewInstance: () => Promise<void>): Promise<boolean> {\n        return SessionLock.getSessionLock(onNewInstance);\n    }\n}\n","/*\nCopyright 2020-2024 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport WebPlatform from \"./WebPlatform\";\n\nexport default class PWAPlatform extends WebPlatform {\n    public setNotificationCount(count: number): void {\n        if (!navigator.setAppBadge) return super.setNotificationCount(count);\n        if (this.notificationCount === count) return;\n        this.notificationCount = count;\n\n        navigator.setAppBadge(count).catch((e) => {\n            logger.error(\"Failed to update PWA app badge\", e);\n        });\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\nCopyright 2018 New Vector Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/*\n * Separate file that sets up rageshake logging when imported.\n * This is necessary so that rageshake logging is set up before\n * anything else. Webpack puts all import statements at the top\n * of the file before any code, so imports will always be\n * evaluated first. Other imports can cause other code to be\n * evaluated (eg. the loglevel library in js-sdk, which if set\n * up before rageshake causes some js-sdk logging to be missing\n * from the rageshake.)\n */\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport * as rageshake from \"../rageshake/rageshake\";\nimport SdkConfig from \"../SdkConfig\";\nimport sendBugReport, { loadBugReport } from \"../rageshake/submit-rageshake\";\nimport { BugReportEndpointURLLocal } from \"../IConfigOptions\";\n\nexport function initRageshake(): Promise<void> {\n    // we manually check persistence for rageshakes ourselves\n    const prom = rageshake.init(/*setUpPersistence=*/ false);\n    prom.then(\n        async () => {\n            logger.log(\"Initialised rageshake.\");\n            logger.log(\n                \"To fix line numbers in Chrome: \" +\n                    \"Meatball menu → Settings → Ignore list → Add /rageshake\\\\.ts & /logger\\\\.ts$\",\n            );\n\n            window.addEventListener(\"beforeunload\", () => {\n                logger.log(\"element-web closing\");\n                // try to flush the logs to indexeddb\n                rageshake.flush();\n            });\n\n            await rageshake.cleanup();\n        },\n        (err) => {\n            logger.error(\"Failed to initialise rageshake: \" + err);\n        },\n    );\n    return prom;\n}\n\nexport function initRageshakeStore(): Promise<void> {\n    return rageshake.tryInitStorage();\n}\n\nwindow.mxSendRageshake = async function (text: string, withLogs = true): Promise<void> {\n    const url = SdkConfig.get().bug_report_endpoint_url;\n    if (!url) {\n        logger.error(\"Cannot send a rageshake - no bug_report_endpoint_url configured\");\n        return;\n    }\n\n    if (!text || !text.trim()) {\n        logger.error(\"Cannot send a rageshake without a message - please tell us what went wrong\");\n        return;\n    }\n    if (url === BugReportEndpointURLLocal) {\n        try {\n            const tape = await loadBugReport({\n                userText: text,\n                sendLogs: withLogs,\n                progressCallback: logger.log.bind(console),\n            });\n            const blob = new Blob([new Uint8Array(tape.out)], { type: \"application/gzip\" });\n            const url = URL.createObjectURL(blob);\n            logger.log(`Your logs are available at ${url}`);\n        } catch (err) {\n            logger.error(\"Failed to load bug report\", err);\n        }\n    } else {\n        try {\n            await sendBugReport(url, {\n                userText: text,\n                sendLogs: withLogs,\n                progressCallback: logger.log.bind(console),\n            });\n            logger.log(\"Bug report sent!\");\n        } catch (err) {\n            logger.error(\"Failed to send bug report\", err);\n        }\n    }\n};\n","/*\nCopyright 2018-2024 New Vector Ltd.\nCopyright 2019 Michael Telatynski <7t3chguy@gmail.com>\nCopyright 2017 Vector Creations Ltd\nCopyright 2015, 2016 OpenMarket Ltd\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { createRoot } from \"react-dom/client\";\nimport React, { StrictMode } from \"react\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { ModuleLoader } from \"@element-hq/element-web-module-api\";\nimport { getNormalizedLanguageKeys } from \"@element-hq/web-shared-components\";\n\nimport { getLanguagesFromBrowser } from \"../i18n/browser\";\nimport { setLanguage } from \"../i18n/settings\";\nimport { getCurrentLanguage } from \"../i18n\";\nimport SettingsStore from \"../settings/SettingsStore\";\nimport PlatformPeg from \"../PlatformPeg\";\nimport SdkConfig from \"../SdkConfig\";\nimport { setTheme } from \"../theme\";\nimport { ModuleRunner } from \"../modules/ModuleRunner\";\nimport type MatrixChat from \"../components/structures/MatrixChat\";\nimport ElectronPlatform from \"./platform/ElectronPlatform\";\nimport PWAPlatform from \"./platform/PWAPlatform\";\nimport WebPlatform from \"./platform/WebPlatform\";\nimport { initRageshake, initRageshakeStore } from \"./rageshakesetup\";\nimport { ModuleApi } from \"../modules/Api.ts\";\nimport { type URLParams } from \"./url_utils.ts\";\n\nexport const rageshakePromise = initRageshake();\n\nexport function preparePlatform(): void {\n    if (window.electron) {\n        logger.log(\"Using Electron platform\");\n        PlatformPeg.set(new ElectronPlatform());\n    } else if (window.matchMedia(\"(display-mode: standalone)\").matches) {\n        logger.log(\"Using PWA platform\");\n        PlatformPeg.set(new PWAPlatform());\n    } else {\n        logger.log(\"Using Web platform\");\n        PlatformPeg.set(new WebPlatform());\n    }\n}\n\nexport function setupLogStorage(): Promise<void> {\n    if (SdkConfig.get().bug_report_endpoint_url) {\n        return initRageshakeStore();\n    }\n    logger.warn(\"No bug report endpoint set - logs will not be persisted\");\n    return Promise.resolve();\n}\n\nexport async function loadConfig(): Promise<void> {\n    // XXX: We call this twice, once here and once in MatrixChat as a prop. We call it here to ensure\n    // granular settings are loaded correctly and to avoid duplicating the override logic for the theme.\n    //\n    // Note: this isn't called twice for some wrappers, like the Jitsi wrapper.\n    const platformConfig = await PlatformPeg.get()?.getConfig();\n    if (platformConfig) {\n        SdkConfig.put(platformConfig);\n    } else {\n        SdkConfig.reset();\n    }\n}\n\nexport async function loadLanguage(): Promise<void> {\n    const prefLang = SettingsStore.getValue(\"language\", null, /*excludeDefault=*/ true);\n    let langs: string[] = [];\n\n    if (!prefLang) {\n        langs = getLanguagesFromBrowser().flatMap(getNormalizedLanguageKeys);\n    } else {\n        langs = [prefLang];\n    }\n    try {\n        await setLanguage(...langs);\n        document.documentElement.setAttribute(\"lang\", getCurrentLanguage());\n    } catch (e) {\n        logger.error(\"Unable to set language\", e);\n    }\n}\n\nexport async function loadTheme(): Promise<void> {\n    return setTheme();\n}\n\nexport async function loadApp(urlParams: URLParams): Promise<void> {\n    // load app.js async so that its code is not executed immediately and we can catch any exceptions\n    const module = await import(\n        /* webpackChunkName: \"element-web-app\" */\n        /* webpackPreload: true */\n        \"./app\"\n    );\n    function setWindowMatrixChat(matrixChat: MatrixChat): void {\n        window.matrixChat = matrixChat;\n    }\n    const app = await module.loadApp(urlParams, setWindowMatrixChat);\n    const root = createRoot(document.getElementById(\"matrixchat\")!);\n    root.render(app);\n}\n\nexport async function showError(title: string, messages?: string[]): Promise<void> {\n    const { ErrorView } = await import(\n        /* webpackChunkName: \"error-view\" */\n        \"../async-components/structures/ErrorView\"\n    );\n    const root = createRoot(document.getElementById(\"matrixchat\")!);\n    root.render(\n        <StrictMode>\n            <ErrorView title={title} messages={messages} />\n        </StrictMode>,\n    );\n}\n\nexport async function showIncompatibleBrowser(onAccept: () => void): Promise<void> {\n    const { UnsupportedBrowserView } = await import(\n        /* webpackChunkName: \"error-view\" */\n        \"../async-components/structures/ErrorView\"\n    );\n    const root = createRoot(document.getElementById(\"matrixchat\")!);\n    root.render(\n        <StrictMode>\n            <UnsupportedBrowserView onAccept={onAccept} />\n        </StrictMode>,\n    );\n}\n\n/**\n * @deprecated in favour of the plugin system\n */\nexport async function loadModules(): Promise<void> {\n    const { INSTALLED_MODULES } = await import(\"../modules.js\");\n    for (const InstalledModule of INSTALLED_MODULES) {\n        ModuleRunner.instance.registerModule((api) => new InstalledModule(api));\n    }\n}\n\nexport async function loadPlugins(): Promise<void> {\n    // Add React to the global namespace, this is part of the new Module API contract to avoid needing\n    // every single module to ship its own copy of React. This also makes it easier to access via the console\n    // and incidentally means we can forget our React imports in JSX files without penalty.\n    window.React = React;\n\n    const modules = SdkConfig.get(\"modules\");\n    if (!modules?.length) return;\n    const moduleLoader = new ModuleLoader(ModuleApi.instance);\n    window.mxModuleLoader = moduleLoader;\n    for (const src of modules) {\n        // We need to instruct webpack to not mangle this import as it is not available at compile time\n        const module = await import(/* webpackIgnore: true */ src);\n        await moduleLoader.load(module);\n    }\n    await moduleLoader.start();\n}\n\nexport { _t } from \"../languageHandler\";\n\nexport { extractErrorMessageFromError } from \"../components/views/dialogs/ErrorDialog\";\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport { ClientEvent, type IClientWellKnown } from \"matrix-js-sdk/src/matrix\";\n\nimport SdkConfig from \"../SdkConfig\";\nimport { MatrixClientPeg } from \"../MatrixClientPeg\";\n\nconst JITSI_WK_PROPERTY_LEGACY = \"im.vector.riot.jitsi\";\nconst JITSI_WK_PROPERTY = \"io.element.jitsi\";\n\nexport interface JitsiWidgetData {\n    conferenceId: string;\n    isAudioOnly: boolean;\n    domain: string;\n}\n\nexport class Jitsi {\n    private static instance: Jitsi;\n\n    private domain?: string;\n    private _useFor1To1Calls = false;\n\n    public get preferredDomain(): string {\n        return this.domain || \"meet.element.io\";\n    }\n\n    public get useFor1To1Calls(): boolean {\n        return this._useFor1To1Calls;\n    }\n\n    /**\n     * Checks for auth needed by looking up a well-known file\n     *\n     * If the file does not exist, we assume no auth.\n     *\n     * See https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification\n     */\n    public async getJitsiAuth(): Promise<string | null> {\n        if (!this.preferredDomain) {\n            return null;\n        }\n        let data;\n        try {\n            const response = await fetch(`https://${this.preferredDomain}/.well-known/element/jitsi`);\n            data = await response.json();\n        } catch {\n            return null;\n        }\n        if (data.auth) {\n            return data.auth;\n        }\n        return null;\n    }\n\n    public start(): void {\n        const cli = MatrixClientPeg.safeGet();\n        cli.on(ClientEvent.ClientWellKnown, this.update);\n        // call update initially in case we missed the first WellKnown.client event and for if no well-known present\n        this.update(cli.getClientWellKnown());\n    }\n\n    private update = async (discoveryResponse?: IClientWellKnown): Promise<any> => {\n        // Start with a default of the config's domain\n        let domain = SdkConfig.getObject(\"jitsi\")?.get(\"preferred_domain\") || \"meet.element.io\";\n\n        logger.log(\"Attempting to get Jitsi conference information from homeserver\");\n        const wkJitsiConfig = discoveryResponse?.[JITSI_WK_PROPERTY] ?? discoveryResponse?.[JITSI_WK_PROPERTY_LEGACY];\n\n        const wkPreferredDomain = wkJitsiConfig?.[\"preferredDomain\"];\n        if (wkPreferredDomain) domain = wkPreferredDomain;\n\n        // Put the result into memory for us to use later\n        this.domain = domain;\n        logger.log(\"Jitsi conference domain:\", this.preferredDomain);\n        this._useFor1To1Calls = wkJitsiConfig?.[\"useFor1To1Calls\"] || false;\n        logger.log(\"Jitsi use for 1:1 calls:\", this.useFor1To1Calls);\n    };\n\n    /**\n     * Parses the given URL into the data needed for a Jitsi widget, if the widget\n     * URL matches the preferredDomain for the app.\n     * @param {string} url The URL to parse.\n     * @returns {JitsiWidgetData} The widget data if eligible, otherwise null.\n     */\n    public parsePreferredConferenceUrl(url: string): JitsiWidgetData | null {\n        const parsed = new URL(url);\n        if (parsed.hostname !== this.preferredDomain) return null; // invalid\n        return {\n            // URL pathnames always contain a leading slash.\n            // Remove it to be left with just the conference name.\n            conferenceId: parsed.pathname.substring(1),\n            domain: parsed.hostname,\n            isAudioOnly: false,\n        };\n    }\n\n    public static getInstance(): Jitsi {\n        if (!Jitsi.instance) {\n            Jitsi.instance = new Jitsi();\n        }\n        return Jitsi.instance;\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2020 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// TODO: Move to matrix-widget-api\nexport class WidgetType {\n    public static readonly JITSI = new WidgetType(\"m.jitsi\", \"jitsi\");\n    public static readonly STICKERPICKER = new WidgetType(\"m.stickerpicker\", \"m.stickerpicker\");\n    public static readonly INTEGRATION_MANAGER = new WidgetType(\"m.integration_manager\", \"m.integration_manager\");\n    public static readonly CUSTOM = new WidgetType(\"m.custom\", \"m.custom\");\n    public static readonly CALL = new WidgetType(\"m.call\", \"m.call\");\n\n    public constructor(\n        public readonly preferred: string,\n        public readonly legacy: string,\n    ) {}\n\n    public matches(type: string): boolean {\n        return type === this.preferred || type === this.legacy;\n    }\n\n    public static fromString(type: string): WidgetType {\n        // First try and match it against something we're already aware of\n        const known = Object.values(WidgetType).filter((v) => v instanceof WidgetType);\n        const knownMatch = known.find((w) => w.matches(type));\n        if (knownMatch) return knownMatch;\n\n        // If that fails, invent a new widget type\n        return new WidgetType(type, type);\n    }\n}\n","module.exports = \"img/betas/video_rooms.7fada3d.png\";","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n  'major',\n  'premajor',\n  'minor',\n  'preminor',\n  'patch',\n  'prepatch',\n  'prerelease',\n]\n\nmodule.exports = {\n  MAX_LENGTH,\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_SAFE_INTEGER,\n  RELEASE_TYPES,\n  SEMVER_SPEC_VERSION,\n  FLAG_INCLUDE_PRERELEASE: 0b001,\n  FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst debug = (\n  typeof process === 'object' &&\n  process.env &&\n  process.env.NODE_DEBUG &&\n  /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n  : () => {}\n\nmodule.exports = debug\n","'use strict'\n\nconst {\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n  ['\\\\s', 1],\n  ['\\\\d', MAX_LENGTH],\n  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n  for (const [token, max] of safeRegexReplacements) {\n    value = value\n      .split(`${token}*`).join(`${token}{0,${max}}`)\n      .split(`${token}+`).join(`${token}{1,${max}}`)\n  }\n  return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n  const safe = makeSafeRegex(value)\n  const index = R++\n  debug(name, index, value)\n  t[name] = index\n  src[index] = value\n  safeSrc[index] = safe\n  re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n  safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups.  The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifier, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:${src[t.PRERELEASE]})?${\n                     src[t.BUILD]}?` +\n                   `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:${src[t.PRERELEASELOOSE]})?${\n                          src[t.BUILD]}?` +\n                        `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n              '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n              `(?:${src[t.PRERELEASE]})?` +\n              `(?:${src[t.BUILD]})?` +\n              `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s+-\\\\s+` +\n                   `(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s+-\\\\s+` +\n                        `(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n  if (!options) {\n    return emptyOpts\n  }\n\n  if (typeof options !== 'object') {\n    return looseOption\n  }\n\n  return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n  if (typeof a === 'number' && typeof b === 'number') {\n    return a === b ? 0 : a < b ? -1 : 1\n  }\n\n  const anum = numeric.test(a)\n  const bnum = numeric.test(b)\n\n  if (anum && bnum) {\n    a = +a\n    b = +b\n  }\n\n  return a === b ? 0\n    : (anum && !bnum) ? -1\n    : (bnum && !anum) ? 1\n    : a < b ? -1\n    : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n  compareIdentifiers,\n  rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\n\nconst isPrereleaseIdentifier = (prerelease, identifier) => {\n  const identifiers = identifier.split('.')\n  if (identifiers.length > prerelease.length) {\n    return false\n  }\n\n  for (let i = 0; i < identifiers.length; i++) {\n    if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) {\n      return false\n    }\n  }\n\n  return true\n}\n\nclass SemVer {\n  constructor (version, options) {\n    options = parseOptions(options)\n\n    if (version instanceof SemVer) {\n      if (version.loose === !!options.loose &&\n        version.includePrerelease === !!options.includePrerelease) {\n        return version\n      } else {\n        version = version.version\n      }\n    } else if (typeof version !== 'string') {\n      throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n    }\n\n    if (version.length > MAX_LENGTH) {\n      throw new TypeError(\n        `version is longer than ${MAX_LENGTH} characters`\n      )\n    }\n\n    debug('SemVer', version, options)\n    this.options = options\n    this.loose = !!options.loose\n    // this isn't actually relevant for versions, but keep it so that we\n    // don't run into trouble passing this.options around.\n    this.includePrerelease = !!options.includePrerelease\n\n    const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n    if (!m) {\n      throw new TypeError(`Invalid Version: ${version}`)\n    }\n\n    this.raw = version\n\n    // these are actually numbers\n    this.major = +m[1]\n    this.minor = +m[2]\n    this.patch = +m[3]\n\n    if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n      throw new TypeError('Invalid major version')\n    }\n\n    if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n      throw new TypeError('Invalid minor version')\n    }\n\n    if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n      throw new TypeError('Invalid patch version')\n    }\n\n    // numberify any prerelease numeric ids\n    if (!m[4]) {\n      this.prerelease = []\n    } else {\n      this.prerelease = m[4].split('.').map((id) => {\n        if (/^[0-9]+$/.test(id)) {\n          const num = +id\n          if (num >= 0 && num < MAX_SAFE_INTEGER) {\n            return num\n          }\n        }\n        return id\n      })\n    }\n\n    this.build = m[5] ? m[5].split('.') : []\n    this.format()\n  }\n\n  format () {\n    this.version = `${this.major}.${this.minor}.${this.patch}`\n    if (this.prerelease.length) {\n      this.version += `-${this.prerelease.join('.')}`\n    }\n    return this.version\n  }\n\n  toString () {\n    return this.version\n  }\n\n  compare (other) {\n    debug('SemVer.compare', this.version, this.options, other)\n    if (!(other instanceof SemVer)) {\n      if (typeof other === 'string' && other === this.version) {\n        return 0\n      }\n      other = new SemVer(other, this.options)\n    }\n\n    if (other.version === this.version) {\n      return 0\n    }\n\n    return this.compareMain(other) || this.comparePre(other)\n  }\n\n  compareMain (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    if (this.major < other.major) {\n      return -1\n    }\n    if (this.major > other.major) {\n      return 1\n    }\n    if (this.minor < other.minor) {\n      return -1\n    }\n    if (this.minor > other.minor) {\n      return 1\n    }\n    if (this.patch < other.patch) {\n      return -1\n    }\n    if (this.patch > other.patch) {\n      return 1\n    }\n    return 0\n  }\n\n  comparePre (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    // NOT having a prerelease is > having one\n    if (this.prerelease.length && !other.prerelease.length) {\n      return -1\n    } else if (!this.prerelease.length && other.prerelease.length) {\n      return 1\n    } else if (!this.prerelease.length && !other.prerelease.length) {\n      return 0\n    }\n\n    let i = 0\n    do {\n      const a = this.prerelease[i]\n      const b = other.prerelease[i]\n      debug('prerelease compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  compareBuild (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    let i = 0\n    do {\n      const a = this.build[i]\n      const b = other.build[i]\n      debug('build compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  // preminor will bump the version up to the next minor release, and immediately\n  // down to pre-release. premajor and prepatch work the same way.\n  inc (release, identifier, identifierBase) {\n    if (release.startsWith('pre')) {\n      if (!identifier && identifierBase === false) {\n        throw new Error('invalid increment argument: identifier is empty')\n      }\n      // Avoid an invalid semver results\n      if (identifier) {\n        const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n        if (!match || match[1] !== identifier) {\n          throw new Error(`invalid identifier: ${identifier}`)\n        }\n      }\n    }\n\n    switch (release) {\n      case 'premajor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor = 0\n        this.major++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'preminor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'prepatch':\n        // If this is already a prerelease, it will bump to the next version\n        // drop any prereleases that might already exist, since they are not\n        // relevant at this point.\n        this.prerelease.length = 0\n        this.inc('patch', identifier, identifierBase)\n        this.inc('pre', identifier, identifierBase)\n        break\n      // If the input is a non-prerelease version, this acts the same as\n      // prepatch.\n      case 'prerelease':\n        if (this.prerelease.length === 0) {\n          this.inc('patch', identifier, identifierBase)\n        }\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'release':\n        if (this.prerelease.length === 0) {\n          throw new Error(`version ${this.raw} is not a prerelease`)\n        }\n        this.prerelease.length = 0\n        break\n\n      case 'major':\n        // If this is a pre-major version, bump up to the same major version.\n        // Otherwise increment major.\n        // 1.0.0-5 bumps to 1.0.0\n        // 1.1.0 bumps to 2.0.0\n        if (\n          this.minor !== 0 ||\n          this.patch !== 0 ||\n          this.prerelease.length === 0\n        ) {\n          this.major++\n        }\n        this.minor = 0\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'minor':\n        // If this is a pre-minor version, bump up to the same minor version.\n        // Otherwise increment minor.\n        // 1.2.0-5 bumps to 1.2.0\n        // 1.2.1 bumps to 1.3.0\n        if (this.patch !== 0 || this.prerelease.length === 0) {\n          this.minor++\n        }\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'patch':\n        // If this is not a pre-release version, it will increment the patch.\n        // If it is a pre-release it will bump up to the same patch version.\n        // 1.2.0-5 patches to 1.2.0\n        // 1.2.0 patches to 1.2.1\n        if (this.prerelease.length === 0) {\n          this.patch++\n        }\n        this.prerelease = []\n        break\n      // This probably shouldn't be used publicly.\n      // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n      case 'pre': {\n        const base = Number(identifierBase) ? 1 : 0\n\n        if (this.prerelease.length === 0) {\n          this.prerelease = [base]\n        } else {\n          let i = this.prerelease.length\n          while (--i >= 0) {\n            if (typeof this.prerelease[i] === 'number') {\n              this.prerelease[i]++\n              i = -2\n            }\n          }\n          if (i === -1) {\n            // didn't increment anything\n            if (identifier === this.prerelease.join('.') && identifierBase === false) {\n              throw new Error('invalid increment argument: identifier already exists')\n            }\n            this.prerelease.push(base)\n          }\n        }\n        if (identifier) {\n          // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n          // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n          let prerelease = [identifier, base]\n          if (identifierBase === false) {\n            prerelease = [identifier]\n          }\n          if (isPrereleaseIdentifier(this.prerelease, identifier)) {\n            const prereleaseBase = this.prerelease[identifier.split('.').length]\n            if (isNaN(prereleaseBase)) {\n              this.prerelease = prerelease\n            }\n          } else {\n            this.prerelease = prerelease\n          }\n        }\n        break\n      }\n      default:\n        throw new Error(`invalid increment argument: ${release}`)\n    }\n    this.raw = this.format()\n    if (this.build.length) {\n      this.raw += `+${this.build.join('.')}`\n    }\n    return this\n  }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n  if (version instanceof SemVer) {\n    return version\n  }\n  try {\n    return new SemVer(version, options)\n  } catch (er) {\n    if (!throwErrors) {\n      return null\n    }\n    throw er\n  }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n  const v = parse(version, options)\n  return v ? v.version : null\n}\nmodule.exports = valid\n","'use strict'\n\nconst parse = require('./parse')\nconst clean = (version, options) => {\n  const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n  return s ? s.version : null\n}\nmodule.exports = clean\n","'use strict'\n\nconst SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n  if (typeof (options) === 'string') {\n    identifierBase = identifier\n    identifier = options\n    options = undefined\n  }\n\n  try {\n    return new SemVer(\n      version instanceof SemVer ? version.version : version,\n      options\n    ).inc(release, identifier, identifierBase).version\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = inc\n","'use strict'\n\nconst parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n  const v1 = parse(version1, null, true)\n  const v2 = parse(version2, null, true)\n  const comparison = v1.compare(v2)\n\n  if (comparison === 0) {\n    return null\n  }\n\n  const v1Higher = comparison > 0\n  const highVersion = v1Higher ? v1 : v2\n  const lowVersion = v1Higher ? v2 : v1\n  const highHasPre = !!highVersion.prerelease.length\n  const lowHasPre = !!lowVersion.prerelease.length\n\n  if (lowHasPre && !highHasPre) {\n    // Going from prerelease -> no prerelease requires some special casing\n\n    // If the low version has only a major, then it will always be a major\n    // Some examples:\n    // 1.0.0-1 -> 1.0.0\n    // 1.0.0-1 -> 1.1.1\n    // 1.0.0-1 -> 2.0.0\n    if (!lowVersion.patch && !lowVersion.minor) {\n      return 'major'\n    }\n\n    // If the main part has no difference\n    if (lowVersion.compareMain(highVersion) === 0) {\n      if (lowVersion.minor && !lowVersion.patch) {\n        return 'minor'\n      }\n      return 'patch'\n    }\n  }\n\n  // add the `pre` prefix if we are going to a prerelease version\n  const prefix = highHasPre ? 'pre' : ''\n\n  if (v1.major !== v2.major) {\n    return prefix + 'major'\n  }\n\n  if (v1.minor !== v2.minor) {\n    return prefix + 'minor'\n  }\n\n  if (v1.patch !== v2.patch) {\n    return prefix + 'patch'\n  }\n\n  // high and low are prereleases\n  return 'prerelease'\n}\n\nmodule.exports = diff\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","'use strict'\n\nconst parse = require('./parse')\nconst prerelease = (version, options) => {\n  const parsed = parse(version, options)\n  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n  new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","'use strict'\n\nconst compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","'use strict'\n\nconst compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n  const versionA = new SemVer(a, loose)\n  const versionB = new SemVer(b, loose)\n  return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","'use strict'\n\nconst compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","'use strict'\n\nconst compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","'use strict'\n\nconst compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","'use strict'\n\nconst compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","'use strict'\n\nconst compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","'use strict'\n\nconst compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","'use strict'\n\nconst compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","'use strict'\n\nconst eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n  switch (op) {\n    case '===':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a === b\n\n    case '!==':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a !== b\n\n    case '':\n    case '=':\n    case '==':\n      return eq(a, b, loose)\n\n    case '!=':\n      return neq(a, b, loose)\n\n    case '>':\n      return gt(a, b, loose)\n\n    case '>=':\n      return gte(a, b, loose)\n\n    case '<':\n      return lt(a, b, loose)\n\n    case '<=':\n      return lte(a, b, loose)\n\n    default:\n      throw new TypeError(`Invalid operator: ${op}`)\n  }\n}\nmodule.exports = cmp\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version === 'number') {\n    version = String(version)\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  options = options || {}\n\n  let match = null\n  if (!options.rtl) {\n    match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n  } else {\n    // Find the right-most coercible string that does not share\n    // a terminus with a more left-ward coercible string.\n    // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n    // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n    //\n    // Walk through the string checking with a /g regexp\n    // Manually set the index so as to pick up overlapping matches.\n    // Stop when we get a match that ends at the string end, since no\n    // coercible string can be more right-ward without the same terminus.\n    const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n    let next\n    while ((next = coerceRtlRegex.exec(version)) &&\n        (!match || match.index + match[0].length !== version.length)\n    ) {\n      if (!match ||\n            next.index + next[0].length !== match.index + match[0].length) {\n        match = next\n      }\n      coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n    }\n    // leave it in a clean state\n    coerceRtlRegex.lastIndex = -1\n  }\n\n  if (match === null) {\n    return null\n  }\n\n  const major = match[2]\n  const minor = match[3] || '0'\n  const patch = match[4] || '0'\n  const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n  const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n  return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","'use strict'\n\nconst parse = require('./parse')\nconst constants = require('../internal/constants')\nconst SemVer = require('../classes/semver')\n\nconst truncate = (version, truncation, options) => {\n  if (!constants.RELEASE_TYPES.includes(truncation)) {\n    return null\n  }\n\n  const clonedVersion = cloneInputVersion(version, options)\n  return clonedVersion && doTruncation(clonedVersion, truncation)\n}\n\nconst cloneInputVersion = (version, options) => {\n  const versionStringToParse = (\n    version instanceof SemVer ? version.version : version\n  )\n\n  return parse(versionStringToParse, options)\n}\n\nconst doTruncation = (version, truncation) => {\n  if (isPrerelease(truncation)) {\n    return version.version\n  }\n\n  version.prerelease = []\n\n  switch (truncation) {\n    case 'major':\n      version.minor = 0\n      version.patch = 0\n      break\n    case 'minor':\n      version.patch = 0\n      break\n  }\n\n  return version.format()\n}\n\nconst isPrerelease = (type) => {\n  return type.startsWith('pre')\n}\n\nmodule.exports = truncate\n","'use strict'\n\nclass LRUCache {\n  constructor () {\n    this.max = 1000\n    this.map = new Map()\n  }\n\n  get (key) {\n    const value = this.map.get(key)\n    if (value === undefined) {\n      return undefined\n    } else {\n      // Remove the key from the map and add it to the end\n      this.map.delete(key)\n      this.map.set(key, value)\n      return value\n    }\n  }\n\n  delete (key) {\n    return this.map.delete(key)\n  }\n\n  set (key, value) {\n    const deleted = this.delete(key)\n\n    if (!deleted && value !== undefined) {\n      // If cache is full, delete the least recently used item\n      if (this.map.size >= this.max) {\n        const firstKey = this.map.keys().next().value\n        this.delete(firstKey)\n      }\n\n      this.map.set(key, value)\n    }\n\n    return this\n  }\n}\n\nmodule.exports = LRUCache\n","'use strict'\n\nconst SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n  constructor (range, options) {\n    options = parseOptions(options)\n\n    if (range instanceof Range) {\n      if (\n        range.loose === !!options.loose &&\n        range.includePrerelease === !!options.includePrerelease\n      ) {\n        return range\n      } else {\n        return new Range(range.raw, options)\n      }\n    }\n\n    if (range instanceof Comparator) {\n      // just put it in the set and return\n      this.raw = range.value\n      this.set = [[range]]\n      this.formatted = undefined\n      return this\n    }\n\n    this.options = options\n    this.loose = !!options.loose\n    this.includePrerelease = !!options.includePrerelease\n\n    // First reduce all whitespace as much as possible so we do not have to rely\n    // on potentially slow regexes like \\s*. This is then stored and used for\n    // future error messages as well.\n    this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n    // First, split on ||\n    this.set = this.raw\n      .split('||')\n      // map the range to a 2d array of comparators\n      .map(r => this.parseRange(r.trim()))\n      // throw out any comparator lists that are empty\n      // this generally means that it was not a valid range, which is allowed\n      // in loose mode, but will still throw if the WHOLE range is invalid.\n      .filter(c => c.length)\n\n    if (!this.set.length) {\n      throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n    }\n\n    // if we have any that are not the null set, throw out null sets.\n    if (this.set.length > 1) {\n      // keep the first one, in case they're all null sets\n      const first = this.set[0]\n      this.set = this.set.filter(c => !isNullSet(c[0]))\n      if (this.set.length === 0) {\n        this.set = [first]\n      } else if (this.set.length > 1) {\n        // if we have any that are *, then the range is just *\n        for (const c of this.set) {\n          if (c.length === 1 && isAny(c[0])) {\n            this.set = [c]\n            break\n          }\n        }\n      }\n    }\n\n    this.formatted = undefined\n  }\n\n  get range () {\n    if (this.formatted === undefined) {\n      this.formatted = ''\n      for (let i = 0; i < this.set.length; i++) {\n        if (i > 0) {\n          this.formatted += '||'\n        }\n        const comps = this.set[i]\n        for (let k = 0; k < comps.length; k++) {\n          if (k > 0) {\n            this.formatted += ' '\n          }\n          this.formatted += comps[k].toString().trim()\n        }\n      }\n    }\n    return this.formatted\n  }\n\n  format () {\n    return this.range\n  }\n\n  toString () {\n    return this.range\n  }\n\n  parseRange (range) {\n    // strip build metadata so it can't bleed into the version\n    range = range.replace(BUILDSTRIPRE, '')\n\n    // memoize range parsing for performance.\n    // this is a very hot path, and fully deterministic.\n    const memoOpts =\n      (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n      (this.options.loose && FLAG_LOOSE)\n    const memoKey = memoOpts + ':' + range\n    const cached = cache.get(memoKey)\n    if (cached) {\n      return cached\n    }\n\n    const loose = this.options.loose\n    // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n    const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n    range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n    debug('hyphen replace', range)\n\n    // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n    range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n    debug('comparator trim', range)\n\n    // `~ 1.2.3` => `~1.2.3`\n    range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n    debug('tilde trim', range)\n\n    // `^ 1.2.3` => `^1.2.3`\n    range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n    debug('caret trim', range)\n\n    // At this point, the range is completely trimmed and\n    // ready to be split into comparators.\n\n    let rangeList = range\n      .split(' ')\n      .map(comp => parseComparator(comp, this.options))\n      .join(' ')\n      .split(/\\s+/)\n      // >=0.0.0 is equivalent to *\n      .map(comp => replaceGTE0(comp, this.options))\n\n    if (loose) {\n      // in loose mode, throw out any that are not valid comparators\n      rangeList = rangeList.filter(comp => {\n        debug('loose invalid filter', comp, this.options)\n        return !!comp.match(re[t.COMPARATORLOOSE])\n      })\n    }\n    debug('range list', rangeList)\n\n    // if any comparators are the null set, then replace with JUST null set\n    // if more than one comparator, remove any * comparators\n    // also, don't include the same comparator more than once\n    const rangeMap = new Map()\n    const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n    for (const comp of comparators) {\n      if (isNullSet(comp)) {\n        return [comp]\n      }\n      rangeMap.set(comp.value, comp)\n    }\n    if (rangeMap.size > 1 && rangeMap.has('')) {\n      rangeMap.delete('')\n    }\n\n    const result = [...rangeMap.values()]\n    cache.set(memoKey, result)\n    return result\n  }\n\n  intersects (range, options) {\n    if (!(range instanceof Range)) {\n      throw new TypeError('a Range is required')\n    }\n\n    return this.set.some((thisComparators) => {\n      return (\n        isSatisfiable(thisComparators, options) &&\n        range.set.some((rangeComparators) => {\n          return (\n            isSatisfiable(rangeComparators, options) &&\n            thisComparators.every((thisComparator) => {\n              return rangeComparators.every((rangeComparator) => {\n                return thisComparator.intersects(rangeComparator, options)\n              })\n            })\n          )\n        })\n      )\n    })\n  }\n\n  // if ANY of the sets match ALL of its comparators, then pass\n  test (version) {\n    if (!version) {\n      return false\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    for (let i = 0; i < this.set.length; i++) {\n      if (testSet(this.set[i], version, this.options)) {\n        return true\n      }\n    }\n    return false\n  }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n  safeRe: re,\n  src,\n  t,\n  comparatorTrimReplace,\n  tildeTrimReplace,\n  caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\n// unbounded global build-metadata stripper used by parseRange\nconst BUILDSTRIPRE = new RegExp(src[t.BUILD], 'g')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n  let result = true\n  const remainingComparators = comparators.slice()\n  let testComparator = remainingComparators.pop()\n\n  while (result && remainingComparators.length) {\n    result = remainingComparators.every((otherComparator) => {\n      return testComparator.intersects(otherComparator, options)\n    })\n\n    testComparator = remainingComparators.pop()\n  }\n\n  return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n  comp = comp.replace(re[t.BUILD], '')\n  debug('comp', comp, options)\n  comp = replaceCarets(comp, options)\n  debug('caret', comp)\n  comp = replaceTildes(comp, options)\n  debug('tildes', comp)\n  comp = replaceXRanges(comp, options)\n  debug('xrange', comp)\n  comp = replaceStars(comp, options)\n  debug('stars', comp)\n  return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\nconst invalidXRangeOrder = (M, m, p) => (\n  (isX(M) && !isX(m)) ||\n  (isX(m) && p && !isX(p))\n)\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceTilde(c, options))\n    .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n  // if we're including prereleases in the match, then the lower bound is\n  // -0, the lowest possible prerelease value, just like x-ranges and carets.\n  // this keeps `~1.2` equivalent to the `1.2.x` x-range it's documented as.\n  const z = options.includePrerelease ? '-0' : ''\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('tilde', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      // ~1.2 == >=1.2.0 <1.3.0-0\n      ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n    } else if (pr) {\n      debug('replaceTilde pr', pr)\n      ret = `>=${M}.${m}.${p}-${pr\n      } <${M}.${+m + 1}.0-0`\n    } else {\n      // ~1.2.3 == >=1.2.3 <1.3.0-0\n      ret = `>=${M}.${m}.${p\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('tilde return', ret)\n    return ret\n  })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceCaret(c, options))\n    .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n  debug('caret', comp, options)\n  const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n  const z = options.includePrerelease ? '-0' : ''\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('caret', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      if (M === '0') {\n        ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n      } else {\n        ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n      }\n    } else if (pr) {\n      debug('replaceCaret pr', pr)\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p}-${pr\n        } <${+M + 1}.0.0-0`\n      }\n    } else {\n      debug('no pr')\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p\n          } <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p\n          } <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p\n        } <${+M + 1}.0.0-0`\n      }\n    }\n\n    debug('caret return', ret)\n    return ret\n  })\n}\n\nconst replaceXRanges = (comp, options) => {\n  debug('replaceXRanges', comp, options)\n  return comp\n    .split(/\\s+/)\n    .map((c) => replaceXRange(c, options))\n    .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n  comp = comp.trim()\n  const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n    debug('xRange', comp, ret, gtlt, M, m, p, pr)\n    if (invalidXRangeOrder(M, m, p)) {\n      return comp\n    }\n\n    const xM = isX(M)\n    const xm = xM || isX(m)\n    const xp = xm || isX(p)\n    const anyX = xp\n\n    if (gtlt === '=' && anyX) {\n      gtlt = ''\n    }\n\n    // if we're including prereleases in the match, then we need\n    // to fix this to -0, the lowest possible prerelease value\n    pr = options.includePrerelease ? '-0' : ''\n\n    if (xM) {\n      if (gtlt === '>' || gtlt === '<') {\n        // nothing is allowed\n        ret = '<0.0.0-0'\n      } else {\n        // nothing is forbidden\n        ret = '*'\n      }\n    } else if (gtlt && anyX) {\n      // we know patch is an x, because we have any x at all.\n      // replace X with 0\n      if (xm) {\n        m = 0\n      }\n      p = 0\n\n      if (gtlt === '>') {\n        // >1 => >=2.0.0\n        // >1.2 => >=1.3.0\n        gtlt = '>='\n        if (xm) {\n          M = +M + 1\n          m = 0\n          p = 0\n        } else {\n          m = +m + 1\n          p = 0\n        }\n      } else if (gtlt === '<=') {\n        // <=0.7.x is actually <0.8.0, since any 0.7.x should\n        // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n        gtlt = '<'\n        if (xm) {\n          M = +M + 1\n        } else {\n          m = +m + 1\n        }\n      }\n\n      if (gtlt === '<') {\n        pr = '-0'\n      }\n\n      ret = `${gtlt + M}.${m}.${p}${pr}`\n    } else if (xm) {\n      ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n    } else if (xp) {\n      ret = `>=${M}.${m}.0${pr\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('xRange return', ret)\n\n    return ret\n  })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n  debug('replaceStars', comp, options)\n  // Looseness is ignored here.  star is always as loose as it gets!\n  return comp\n    .trim()\n    .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n  debug('replaceGTE0', comp, options)\n  return comp\n    .trim()\n    .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n  from, fM, fm, fp, fpr, fb,\n  to, tM, tm, tp, tpr) => {\n  if (isX(fM)) {\n    from = ''\n  } else if (isX(fm)) {\n    from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n  } else if (isX(fp)) {\n    from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n  } else if (fpr) {\n    from = `>=${from}`\n  } else {\n    from = `>=${from}${incPr ? '-0' : ''}`\n  }\n\n  if (isX(tM)) {\n    to = ''\n  } else if (isX(tm)) {\n    to = `<${+tM + 1}.0.0-0`\n  } else if (isX(tp)) {\n    to = `<${tM}.${+tm + 1}.0-0`\n  } else if (tpr) {\n    to = `<=${tM}.${tm}.${tp}-${tpr}`\n  } else if (incPr) {\n    to = `<${tM}.${tm}.${+tp + 1}-0`\n  } else {\n    to = `<=${to}`\n  }\n\n  return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n  for (let i = 0; i < set.length; i++) {\n    if (!set[i].test(version)) {\n      return false\n    }\n  }\n\n  if (version.prerelease.length && !options.includePrerelease) {\n    // Find the set of versions that are allowed to have prereleases\n    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n    // That should allow `1.2.3-pr.2` to pass.\n    // However, `1.2.4-alpha.notready` should NOT be allowed,\n    // even though it's within the range set by the comparators.\n    for (let i = 0; i < set.length; i++) {\n      debug(set[i].semver)\n      if (set[i].semver === Comparator.ANY) {\n        continue\n      }\n\n      if (set[i].semver.prerelease.length > 0) {\n        const allowed = set[i].semver\n        if (allowed.major === version.major &&\n            allowed.minor === version.minor &&\n            allowed.patch === version.patch) {\n          return true\n        }\n      }\n    }\n\n    // Version has a -pre, but it's not one of the ones we like.\n    return false\n  }\n\n  return true\n}\n","'use strict'\n\nconst ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n  static get ANY () {\n    return ANY\n  }\n\n  constructor (comp, options) {\n    options = parseOptions(options)\n\n    if (comp instanceof Comparator) {\n      if (comp.loose === !!options.loose) {\n        return comp\n      } else {\n        comp = comp.value\n      }\n    }\n\n    comp = comp.trim().split(/\\s+/).join(' ')\n    debug('comparator', comp, options)\n    this.options = options\n    this.loose = !!options.loose\n    this.parse(comp)\n\n    if (this.semver === ANY) {\n      this.value = ''\n    } else {\n      this.value = this.operator + this.semver.version\n    }\n\n    debug('comp', this)\n  }\n\n  parse (comp) {\n    const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n    const m = comp.match(r)\n\n    if (!m) {\n      throw new TypeError(`Invalid comparator: ${comp}`)\n    }\n\n    this.operator = m[1] !== undefined ? m[1] : ''\n    if (this.operator === '=') {\n      this.operator = ''\n    }\n\n    // if it literally is just '>' or '' then allow anything.\n    if (!m[2]) {\n      this.semver = ANY\n    } else {\n      this.semver = new SemVer(m[2], this.options.loose)\n    }\n  }\n\n  toString () {\n    return this.value\n  }\n\n  test (version) {\n    debug('Comparator.test', version, this.options.loose)\n\n    if (this.semver === ANY || version === ANY) {\n      return true\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    return cmp(version, this.operator, this.semver, this.options)\n  }\n\n  intersects (comp, options) {\n    if (!(comp instanceof Comparator)) {\n      throw new TypeError('a Comparator is required')\n    }\n\n    if (this.operator === '') {\n      if (this.value === '') {\n        return true\n      }\n      return new Range(comp.value, options).test(this.value)\n    } else if (comp.operator === '') {\n      if (comp.value === '') {\n        return true\n      }\n      return new Range(this.value, options).test(comp.semver)\n    }\n\n    options = parseOptions(options)\n\n    // Special cases where nothing can possibly be lower\n    if (options.includePrerelease &&\n      (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n      return false\n    }\n    if (!options.includePrerelease &&\n      (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n      return false\n    }\n\n    // Same direction increasing (> or >=)\n    if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n      return true\n    }\n    // Same direction decreasing (< or <=)\n    if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // same SemVer and both sides are inclusive (<= or >=)\n    if (\n      (this.semver.version === comp.semver.version) &&\n      this.operator.includes('=') && comp.operator.includes('=')) {\n      return true\n    }\n    // opposite directions less than\n    if (cmp(this.semver, '<', comp.semver, options) &&\n      this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // opposite directions greater than\n    if (cmp(this.semver, '>', comp.semver, options) &&\n      this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n      return true\n    }\n    return false\n  }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","'use strict'\n\nconst Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n  try {\n    range = new Range(range, options)\n  } catch (er) {\n    return false\n  }\n  return range.test(version)\n}\nmodule.exports = satisfies\n","'use strict'\n\nconst Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n  new Range(range, options).set\n    .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n  let max = null\n  let maxSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!max || maxSV.compare(v) === -1) {\n        // compare(max, v, true)\n        max = v\n        maxSV = new SemVer(max, options)\n      }\n    }\n  })\n  return max\n}\nmodule.exports = maxSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n  let min = null\n  let minSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!min || minSV.compare(v) === 1) {\n        // compare(min, v, true)\n        min = v\n        minSV = new SemVer(min, options)\n      }\n    }\n  })\n  return min\n}\nmodule.exports = minSatisfying\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n  range = new Range(range, loose)\n\n  let minver = new SemVer('0.0.0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = new SemVer('0.0.0-0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = null\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    let setMin = null\n    comparators.forEach((comparator) => {\n      // Clone to avoid manipulating the comparator's semver object.\n      const compver = new SemVer(comparator.semver.version)\n      switch (comparator.operator) {\n        case '>':\n          if (compver.prerelease.length === 0) {\n            compver.patch++\n          } else {\n            compver.prerelease.push(0)\n          }\n          compver.raw = compver.format()\n          /* fallthrough */\n        case '':\n        case '>=':\n          if (!setMin || gt(compver, setMin)) {\n            setMin = compver\n          }\n          break\n        case '<':\n        case '<=':\n          /* Ignore maximum versions */\n          break\n        /* istanbul ignore next */\n        default:\n          throw new Error(`Unexpected operation: ${comparator.operator}`)\n      }\n    })\n    if (setMin && (!minver || gt(minver, setMin))) {\n      minver = setMin\n    }\n  }\n\n  if (minver && range.test(minver)) {\n    return minver\n  }\n\n  return null\n}\nmodule.exports = minVersion\n","'use strict'\n\nconst Range = require('../classes/range')\nconst validRange = (range, options) => {\n  try {\n    // Return '*' instead of '' so that truthiness works.\n    // This will throw if it's invalid anyway\n    return new Range(range, options).range || '*'\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = validRange\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n  version = new SemVer(version, options)\n  range = new Range(range, options)\n\n  let gtfn, ltefn, ltfn, comp, ecomp\n  switch (hilo) {\n    case '>':\n      gtfn = gt\n      ltefn = lte\n      ltfn = lt\n      comp = '>'\n      ecomp = '>='\n      break\n    case '<':\n      gtfn = lt\n      ltefn = gte\n      ltfn = gt\n      comp = '<'\n      ecomp = '<='\n      break\n    default:\n      throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n  }\n\n  // If it satisfies the range it is not outside\n  if (satisfies(version, range, options)) {\n    return false\n  }\n\n  // From now on, variable terms are as if we're in \"gtr\" mode.\n  // but note that everything is flipped for the \"ltr\" function.\n\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    let high = null\n    let low = null\n\n    comparators.forEach((comparator) => {\n      if (comparator.semver === ANY) {\n        comparator = new Comparator('>=0.0.0')\n      }\n      high = high || comparator\n      low = low || comparator\n      if (gtfn(comparator.semver, high.semver, options)) {\n        high = comparator\n      } else if (ltfn(comparator.semver, low.semver, options)) {\n        low = comparator\n      }\n    })\n\n    // If the edge version comparator has a operator then our version\n    // isn't outside it\n    if (high.operator === comp || high.operator === ecomp) {\n      return false\n    }\n\n    // If the lowest version comparator has an operator and our version\n    // is less than it then it isn't higher than the range\n    if ((!low.operator || low.operator === comp) &&\n        ltefn(version, low.semver)) {\n      return false\n    } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n      return false\n    }\n  }\n  return true\n}\n\nmodule.exports = outside\n","'use strict'\n\n// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","'use strict'\n\nconst outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","'use strict'\n\nconst Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n  r1 = new Range(r1, options)\n  r2 = new Range(r2, options)\n  return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","'use strict'\n\n// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n  const set = []\n  let first = null\n  let prev = null\n  const v = versions.sort((a, b) => compare(a, b, options))\n  for (const version of v) {\n    const included = satisfies(version, range, options)\n    if (included) {\n      prev = version\n      if (!first) {\n        first = version\n      }\n    } else {\n      if (prev) {\n        set.push([first, prev])\n      }\n      prev = null\n      first = null\n    }\n  }\n  if (first) {\n    set.push([first, null])\n  }\n\n  const ranges = []\n  for (const [min, max] of set) {\n    if (min === max) {\n      ranges.push(min)\n    } else if (!max && min === v[0]) {\n      ranges.push('*')\n    } else if (!max) {\n      ranges.push(`>=${min}`)\n    } else if (min === v[0]) {\n      ranges.push(`<=${max}`)\n    } else {\n      ranges.push(`${min} - ${max}`)\n    }\n  }\n  const simplified = ranges.join(' || ')\n  const original = typeof range.raw === 'string' ? range.raw : String(range)\n  return simplified.length < original.length ? simplified : range\n}\n","'use strict'\n\nconst Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n//   some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n//   - If C is only the ANY comparator, return true\n//   - Else if in prerelease mode, return false\n//   - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n//   - if in prerelease mode, return true\n//   - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n//   - If GT, and EQ does not satisfy GT, return true (null set)\n//   - If LT, and EQ does not satisfy LT, return true (null set)\n//   - If EQ satisfies every C, return true\n//   - Else return false\n// - If GT\n//   - If GT.semver is lower than any > or >= comp in C, return false\n//   - If GT is >=, and GT.semver does not satisfy every C, return false\n//   - If GT.semver has a prerelease, and not in prerelease mode\n//     - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n//   - If LT.semver is greater than any < or <= comp in C, return false\n//   - If LT is <=, and LT.semver does not satisfy every C, return false\n//   - If LT.semver has a prerelease, and not in prerelease mode\n//     - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n  if (sub === dom) {\n    return true\n  }\n\n  sub = new Range(sub, options)\n  dom = new Range(dom, options)\n  let sawNonNull = false\n\n  OUTER: for (const simpleSub of sub.set) {\n    for (const simpleDom of dom.set) {\n      const isSub = simpleSubset(simpleSub, simpleDom, options)\n      sawNonNull = sawNonNull || isSub !== null\n      if (isSub) {\n        continue OUTER\n      }\n    }\n    // the null set is a subset of everything, but null simple ranges in\n    // a complex range should be ignored.  so if we saw a non-null range,\n    // then we know this isn't a subset, but if EVERY simple range was null,\n    // then it is a subset.\n    if (sawNonNull) {\n      return false\n    }\n  }\n  return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n  if (sub === dom) {\n    return true\n  }\n\n  if (sub.length === 1 && sub[0].semver === ANY) {\n    if (dom.length === 1 && dom[0].semver === ANY) {\n      return true\n    } else if (options.includePrerelease) {\n      sub = minimumVersionWithPreRelease\n    } else {\n      sub = minimumVersion\n    }\n  }\n\n  if (dom.length === 1 && dom[0].semver === ANY) {\n    if (options.includePrerelease) {\n      return true\n    } else {\n      dom = minimumVersion\n    }\n  }\n\n  const eqSet = new Set()\n  let gt, lt\n  for (const c of sub) {\n    if (c.operator === '>' || c.operator === '>=') {\n      gt = higherGT(gt, c, options)\n    } else if (c.operator === '<' || c.operator === '<=') {\n      lt = lowerLT(lt, c, options)\n    } else {\n      eqSet.add(c.semver)\n    }\n  }\n\n  if (eqSet.size > 1) {\n    return null\n  }\n\n  let gtltComp\n  if (gt && lt) {\n    gtltComp = compare(gt.semver, lt.semver, options)\n    if (gtltComp > 0) {\n      return null\n    } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n      return null\n    }\n  }\n\n  // will iterate one or zero times\n  for (const eq of eqSet) {\n    if (gt && !satisfies(eq, String(gt), options)) {\n      return null\n    }\n\n    if (lt && !satisfies(eq, String(lt), options)) {\n      return null\n    }\n\n    for (const c of dom) {\n      if (!satisfies(eq, String(c), options)) {\n        return false\n      }\n    }\n\n    return true\n  }\n\n  let higher, lower\n  let hasDomLT, hasDomGT\n  // if the subset has a prerelease, we need a comparator in the superset\n  // with the same tuple and a prerelease, or it's not a subset\n  let needDomLTPre = lt &&\n    !options.includePrerelease &&\n    lt.semver.prerelease.length ? lt.semver : false\n  let needDomGTPre = gt &&\n    !options.includePrerelease &&\n    gt.semver.prerelease.length ? gt.semver : false\n  // exception: <1.2.3-0 is the same as <1.2.3\n  if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n      lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n    needDomLTPre = false\n  }\n\n  for (const c of dom) {\n    hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n    hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n    if (gt) {\n      if (needDomGTPre) {\n        if (c.semver.prerelease && c.semver.prerelease.length &&\n            c.semver.major === needDomGTPre.major &&\n            c.semver.minor === needDomGTPre.minor &&\n            c.semver.patch === needDomGTPre.patch) {\n          needDomGTPre = false\n        }\n      }\n      if (c.operator === '>' || c.operator === '>=') {\n        higher = higherGT(gt, c, options)\n        if (higher === c && higher !== gt) {\n          return false\n        }\n      } else if (gt.operator === '>=' && !c.test(gt.semver)) {\n        return false\n      }\n    }\n    if (lt) {\n      if (needDomLTPre) {\n        if (c.semver.prerelease && c.semver.prerelease.length &&\n            c.semver.major === needDomLTPre.major &&\n            c.semver.minor === needDomLTPre.minor &&\n            c.semver.patch === needDomLTPre.patch) {\n          needDomLTPre = false\n        }\n      }\n      if (c.operator === '<' || c.operator === '<=') {\n        lower = lowerLT(lt, c, options)\n        if (lower === c && lower !== lt) {\n          return false\n        }\n      } else if (lt.operator === '<=' && !c.test(lt.semver)) {\n        return false\n      }\n    }\n    if (!c.operator && (lt || gt) && gtltComp !== 0) {\n      return false\n    }\n  }\n\n  // if there was a < or >, and nothing in the dom, then must be false\n  // UNLESS it was limited by another range in the other direction.\n  // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n  if (gt && hasDomLT && !lt && gtltComp !== 0) {\n    return false\n  }\n\n  if (lt && hasDomGT && !gt && gtltComp !== 0) {\n    return false\n  }\n\n  // we needed a prerelease range in a specific tuple, but didn't get one\n  // then this isn't a subset.  eg >=1.2.3-pre is not a subset of >=1.0.0,\n  // because it includes prereleases in the 1.2.3 tuple\n  if (needDomGTPre || needDomLTPre) {\n    return false\n  }\n\n  return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n  if (!a) {\n    return b\n  }\n  const comp = compare(a.semver, b.semver, options)\n  return comp > 0 ? a\n    : comp < 0 ? b\n    : b.operator === '>' && a.operator === '>=' ? b\n    : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n  if (!a) {\n    return b\n  }\n  const comp = compare(a.semver, b.semver, options)\n  return comp < 0 ? a\n    : comp > 0 ? b\n    : b.operator === '<' && a.operator === '<=' ? b\n    : a\n}\n\nmodule.exports = subset\n","'use strict'\n\n// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst truncate = require('./functions/truncate')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n  parse,\n  valid,\n  clean,\n  inc,\n  diff,\n  major,\n  minor,\n  patch,\n  prerelease,\n  compare,\n  rcompare,\n  compareLoose,\n  compareBuild,\n  sort,\n  rsort,\n  gt,\n  lt,\n  eq,\n  neq,\n  gte,\n  lte,\n  cmp,\n  coerce,\n  truncate,\n  Comparator,\n  Range,\n  satisfies,\n  toComparators,\n  maxSatisfying,\n  minSatisfying,\n  minVersion,\n  validRange,\n  outside,\n  gtr,\n  ltr,\n  intersects,\n  simplifyRange,\n  subset,\n  SemVer,\n  re: internalRe.re,\n  src: internalRe.src,\n  tokens: internalRe.t,\n  SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n  RELEASE_TYPES: constants.RELEASE_TYPES,\n  compareIdentifiers: identifiers.compareIdentifiers,\n  rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","/*\nCopyright 2025 New Vector Ltd.\nCopyright 2026 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport type { Root } from \"react-dom/client\";\nimport { type LegacyModuleApiExtension } from \"./legacy-modules\";\nimport { type LegacyCustomisationsApiExtension } from \"./legacy-customisations\";\nimport { type ConfigApi } from \"./config\";\nimport { type I18nApi } from \"./i18n\";\nimport { type CustomComponentsApi } from \"./custom-components\";\nimport { type NavigationApi } from \"./navigation.ts\";\nimport { type DialogApiExtension } from \"./dialog.ts\";\nimport { type AccountAuthApiExtension } from \"./auth.ts\";\nimport { type ProfileApiExtension } from \"./profile.ts\";\nimport { type ExtrasApi } from \"./extras.ts\";\nimport { type BuiltinsApi } from \"./builtins.ts\";\nimport { type StoresApi } from \"./stores.ts\";\nimport { type ClientApi } from \"./client.ts\";\nimport { type WidgetLifecycleApi } from \"./widget-lifecycle.ts\";\nimport { type WidgetApi } from \"./widget.ts\";\nimport { type CustomisationsApi } from \"./customisations.ts\";\nimport { type ComposerApi } from \"./composer.ts\";\n\n/**\n * Module interface for modules to implement.\n * @public\n */\nexport interface Module {\n    load(): Promise<void>;\n}\n\nconst moduleSignature: Record<keyof Module, Type> = {\n    load: \"function\",\n};\n\n/**\n * Module interface for modules to export as the default export.\n * @public\n */\nexport interface ModuleFactory {\n    readonly moduleApiVersion: string;\n    new (api: Api): Module;\n    readonly prototype: Module;\n}\n\nconst moduleFactorySignature: Record<keyof ModuleFactory, Type> = {\n    moduleApiVersion: \"string\",\n    prototype: \"object\",\n};\n\nexport interface ModuleExport {\n    default: ModuleFactory;\n}\n\nconst moduleExportSignature: Record<keyof ModuleExport, Type> = {\n    default: \"function\",\n};\n\ntype Type = \"function\" | \"string\" | \"number\" | \"boolean\" | \"object\";\n\nfunction isInterface<T>(obj: unknown, type: \"object\" | \"function\", keys: Record<keyof T, Type>): obj is T {\n    if (obj === null || typeof obj !== type) return false;\n    for (const key in keys) {\n        if (typeof (obj as Record<keyof T, unknown>)[key] !== keys[key]) return false;\n    }\n    return true;\n}\n\nexport function isModule(module: unknown): module is ModuleExport {\n    return (\n        isInterface(module, \"object\", moduleExportSignature) &&\n        isInterface(module.default, \"function\", moduleFactorySignature) &&\n        isInterface(module.default.prototype, \"object\", moduleSignature)\n    );\n}\n\n/**\n * The API for modules to interact with the application.\n * @public\n */\nexport interface Api\n    extends\n        LegacyModuleApiExtension,\n        LegacyCustomisationsApiExtension,\n        DialogApiExtension,\n        AccountAuthApiExtension,\n        ProfileApiExtension {\n    /**\n     * The API to read config.json values.\n     * Keys should be scoped to the module in reverse domain name notation.\n     * @public\n     */\n    readonly config: ConfigApi;\n    /**\n     * The internationalisation API.\n     * @public\n     */\n    readonly i18n: I18nApi;\n    /**\n     * The root node the main application is rendered to.\n     * Intended for rendering sibling React trees.\n     * @public\n     */\n    readonly rootNode: HTMLElement;\n\n    /**\n     * The custom message component API.\n     * @alpha\n     */\n    readonly customComponents: CustomComponentsApi;\n\n    /**\n     * Allows modules to render components that are part of Element Web.\n     * @alpha\n     */\n    readonly builtins: BuiltinsApi;\n\n    /**\n     * API to navigate the application.\n     * @public\n     */\n    readonly navigation: NavigationApi;\n\n    /**\n     * Allows modules to insert extra UI into Element Web.\n     * @alpha\n     */\n    readonly extras: ExtrasApi;\n\n    /**\n     * Allows modules to access a limited functionality of certain stores from Element Web.\n     */\n    readonly stores: StoresApi;\n\n    /**\n     * Access some very specific functionality from the client.\n     */\n    readonly client: ClientApi;\n\n    /**\n     * API for modules to auto-approve widget preloading, identity token requests, and capability requests.\n     * @alpha Subject to change.\n     */\n    readonly widgetLifecycle: WidgetLifecycleApi;\n\n    /**\n     * API for modules to interact with widgets in Element Web, including getting what widgets\n     * are active in a given room.\n     * @alpha Subject to change.\n     */\n    readonly widget: WidgetApi;\n\n    /**\n     * Allows modules to customise behaviour of app's components.\n     * @alpha Subject to change.\n     */\n    readonly customisations: CustomisationsApi;\n\n    /**\n     * Allows modules to customise the message composer.\n     * @alpha Subject to change.\n     */\n    readonly composer: ComposerApi;\n\n    /**\n     * Create a ReactDOM root for rendering React components.\n     * Exposed to allow modules to avoid needing to bundle their own ReactDOM.\n     * @param element - the element to render use as the root.\n     * @public\n     */\n    createRoot(element: Element): Root;\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { satisfies } from \"semver\";\n\nimport { type Api, isModule, type Module, type ModuleExport } from \"./api\";\n\n/**\n * Error thrown when a module is incompatible with the engine version.\n * @public\n */\nexport class ModuleIncompatibleError extends Error {\n    public constructor(pluginVersion: string) {\n        super(`Plugin version ${pluginVersion} is incompatible with engine version ${__VERSION__}`);\n    }\n}\n\n/**\n * A module loader for loading and starting modules.\n * @public\n */\nexport class ModuleLoader {\n    private modules: Module[] = [];\n    private started = false;\n\n    public constructor(private api: Api) {}\n\n    public async load(moduleExport: ModuleExport): Promise<void> {\n        if (this.started) {\n            throw new Error(\"PluginEngine.start() has already been called\");\n        }\n\n        if (!isModule(moduleExport)) {\n            throw new Error(\"Invalid plugin\");\n        }\n        if (!satisfies(__VERSION__, moduleExport.default.moduleApiVersion)) {\n            throw new ModuleIncompatibleError(moduleExport.default.moduleApiVersion);\n        }\n        const { default: Module } = moduleExport;\n        this.modules.push(new Module(this.api));\n    }\n\n    public async start(): Promise<void> {\n        if (this.started) {\n            throw new Error(\"PluginEngine.start() has already been called\");\n        }\n        this.started = true;\n\n        await Promise.all(this.modules.map((plugin) => plugin.load()));\n    }\n}\n","/*\nCopyright 2026 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n/**\n * Enum of UI components which can have their behaviour tweaked\n * @alpha\n */\nexport const enum UIComponent {\n    /**\n     * Components that lead to a user being invited.\n     */\n    InviteUsers = \"UIComponent.sendInvites\",\n\n    /**\n     * Components that lead to a room being created that aren't already\n     * guarded by some other condition (ie: \"only if you can edit this\n     * space\" is *not* guarded by this component, but \"start DM\" is).\n     */\n    CreateRooms = \"UIComponent.roomCreation\",\n\n    /**\n     * Components that lead to a Space being created that aren't already\n     * guarded by some other condition (ie: \"only if you can add subspaces\"\n     * is *not* guarded by this component, but \"create new space\" is).\n     */\n    CreateSpaces = \"UIComponent.spaceCreation\",\n\n    /**\n     * Components that lead to the public room directory.\n     */\n    ExploreRooms = \"UIComponent.exploreRooms\",\n\n    /**\n     * Components that lead to the user being able to easily add widgets\n     * and integrations to the room, such as from the room information card.\n     */\n    AddIntegrations = \"UIComponent.addIntegrations\",\n\n    /**\n     * Component that lead to the user being able to search, dial, explore rooms\n     */\n    FilterContainer = \"UIComponent.filterContainer\",\n\n    /**\n     * Components that lead the user to room options menu.\n     */\n    RoomOptionsMenu = \"UIComponent.roomOptionsMenu\",\n}\n\n/**\n * API for customising Element Web's components\n * @alpha Subject to change.\n */\nexport interface CustomisationsApi {\n    /**\n     * Method to register a callback which can affect whether a given component is drawn or not.\n     * @param fn - the callback, if it returns true the component will be rendered, if false it will not be.\n     *   If undefined will defer to next callback, ultimately falling through to `true` if none return false.\n     */\n    registerShouldShowComponent(fn: (this: void, component: UIComponent) => boolean | void): void;\n}\n","/*\nCopyright 2025 New Vector Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport { useEffect, useState } from \"react\";\n\ntype WatchFn<T> = (value: T) => void;\n\nfunction shallowCompare<T extends object>(obj1: T, obj2: T): boolean {\n    return (\n        Object.keys(obj1).length === Object.keys(obj2).length &&\n        Object.keys(obj1).every((key) => obj1[key as keyof T] === obj2[key as keyof T])\n    );\n}\n\nfunction isObject(value: unknown): value is object {\n    return value !== null && typeof value === \"object\";\n}\n\n/**\n * Utility class to wrap a value and allow listeners to be notified when the value changes.\n * If T is an object, it will use a shallow comparison to determine if the value has changed.\n * @public\n */\nexport class Watchable<T> {\n    protected readonly listeners = new Set<WatchFn<T>>();\n\n    public constructor(private currentValue: T) {}\n\n    /**\n     * The value stored in this watchable.\n     * Warning: Could potentially return stale data if you haven't called {@link Watchable#watch}.\n     */\n    public get value(): T {\n        return this.currentValue;\n    }\n\n    public set value(value: T) {\n        // If the value hasn't changed, do nothing.\n        if (value === this.currentValue) {\n            return;\n        }\n        if (isObject(value) && isObject(this.currentValue) && shallowCompare(this.currentValue as object, value)) {\n            return;\n        }\n\n        this.currentValue = value;\n        for (const listener of this.listeners) {\n            listener(this.currentValue);\n        }\n    }\n\n    public watch(listener: (value: T) => void): void {\n        // Call onFirstWatch if there was no listener before.\n        if (this.listeners.size === 0) {\n            this.onFirstWatch();\n        }\n        this.listeners.add(listener);\n    }\n\n    public unwatch(listener: (value: T) => void): void {\n        const hasDeleted = this.listeners.delete(listener);\n        // Call onLastWatch if every listener has been removed.\n        if (hasDeleted && this.listeners.size === 0) {\n            this.onLastWatch();\n        }\n    }\n\n    /**\n     * This is called when the number of listeners go from zero to one.\n     * Could be used to add external event listeners.\n     */\n    protected onFirstWatch(): void {}\n\n    /**\n     * This is called when the number of listeners go from one to zero.\n     * Could be used to remove external event listeners.\n     */\n    protected onLastWatch(): void {}\n}\n\n/**\n * A React hook to use an updated Watchable value.\n * @param watchable - The Watchable instance to watch.\n * @returns The live value of the Watchable.\n * @public\n */\nexport function useWatchable<T>(watchable: Watchable<T>): T {\n    const [value, setValue] = useState<T>(watchable.value);\n    useEffect(() => {\n        setValue(watchable.value);\n        watchable.watch(setValue);\n        return (): void => {\n            watchable.unwatch(setValue);\n        };\n    }, [watchable]);\n    return value;\n}\n","//#region src/core/utils/numbers.ts\nfunction e(e, t) {\n\treturn Number.isFinite(e) ? Number(e) : t;\n}\nfunction t(e, t, n) {\n\treturn Math.min(Math.max(e, t), n);\n}\nfunction n(...e) {\n\treturn [...e].reduce((e, t) => t + e, 0);\n}\nfunction r(e, t, n) {\n\treturn e * (n - t) + t;\n}\nfunction i(e, t, n) {\n\tlet r = (e - t) / (n - t);\n\treturn Number.isNaN(r) ? 0 : r;\n}\n//#endregion\nexport { t as clamp, e as defaultNumber, i as percentageOf, r as percentageWithin, n as sum };\n","import { clamp as e, defaultNumber as t, percentageOf as n, percentageWithin as r, sum as i } from \"./numbers.js\";\nimport * as a from \"react\";\nimport o, { Children as s, cloneElement as c, createContext as l, createElement as u, forwardRef as d, isValidElement as f, memo as p, startTransition as m, useCallback as h, useContext as g, useEffect as _, useId as v, useImperativeHandle as y, useInsertionEffect as b, useLayoutEffect as x, useMemo as S, useReducer as C, useRef as w, useState as T, useSyncExternalStore as ee, version as te } from \"react\";\nimport { Avatar as E, AvatarStack as ne, Badge as D, Button as O, ChatFilter as k, CheckboxMenuItem as re, ContextMenu as ie, Dropdown as A, Field as j, H1 as ae, Heading as oe, IconButton as M, IndicatorIcon as se, InlineSpinner as ce, Link as le, Menu as ue, MenuItem as N, MenuTitle as de, RadioMenuItem as fe, ReleaseAnnouncement as pe, Root as me, Separator as he, SubMenu as ge, Submit as _e, Text as P, TextControl as ve, Toast as ye, ToggleMenuItem as be, Tooltip as xe, Unread as Se, UnreadCounter as Ce } from \"@vector-im/compound-web\";\nimport { flushSync as we } from \"react-dom\";\nimport { Virtuoso as Te, VirtuosoMockContext as Ee } from \"react-virtuoso\";\nimport { Group as De, Group as Oe, Panel as ke, Panel as Ae, Separator as je, Separator as Me, usePanelCallbackRef as Ne } from \"react-resizable-panels\";\n//#region \\0rolldown/runtime.js\nvar Pe = Object.create, Fe = Object.defineProperty, Ie = Object.getOwnPropertyDescriptor, Le = Object.getOwnPropertyNames, Re = Object.getPrototypeOf, ze = Object.prototype.hasOwnProperty, Be = (e, t, n) => () => {\n\tif (n) throw n[0];\n\ttry {\n\t\treturn e && (t = e(e = 0)), t;\n\t} catch (e) {\n\t\tthrow n = [e], e;\n\t}\n}, F = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), Ve = (e, t) => {\n\tlet n = {};\n\tfor (var r in e) Fe(n, r, {\n\t\tget: e[r],\n\t\tenumerable: !0\n\t});\n\treturn t || Fe(n, Symbol.toStringTag, { value: \"Module\" }), n;\n}, He = (e, t, n, r) => {\n\tif (t && typeof t == \"object\" || typeof t == \"function\") for (var i = Le(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !ze.call(e, s) && s !== n && Fe(e, s, {\n\t\tget: ((e) => t[e]).bind(null, s),\n\t\tenumerable: !(r = Ie(t, s)) || r.enumerable\n\t});\n\treturn e;\n}, Ue = (e, t, n) => (n = e == null ? {} : Pe(Re(e)), He(t || !e || !e.__esModule ? Fe(n, \"default\", {\n\tvalue: e,\n\tenumerable: !0\n}) : n, e)), We = (e) => ze.call(e, \"module.exports\") ? e[\"module.exports\"] : He(Fe({}, \"__esModule\", { value: !0 }), e), Ge = globalThis.Temporal, Ke = (e, t) => `Non-positive ${e}: ${t}`, qe = (e, t) => `Non-finite ${e}: ${t}`, Je = (e) => `Cannot convert bigint to ${e}`, Ye = \"Invalid object\", Xe = (e, t, n, r) => Ze(e, t) + `; must be between ${n}-${r}`, Ze = (e, t) => `Invalid ${e}: ${t}`, Qe = 1e3, $e = 1e6, et = 1e9, tt = 6e10, nt = 36e11;\nfunction rt(e) {\n\treturn e === void 0 ? Object.create(null) : ut(e);\n}\nfunction it(e, t = \"number\") {\n\tif (typeof e == \"bigint\") throw TypeError(Je(t));\n\tif (e = Number(e), !Number.isFinite(e)) throw RangeError(qe(t, e));\n\treturn e;\n}\nfunction at(e, t) {\n\treturn Math.trunc(it(e, t)) || 0;\n}\nfunction ot(e, t) {\n\treturn st(at(e, t), t);\n}\nfunction st(e, t = \"number\") {\n\tif (e <= 0) throw RangeError(Ke(t, e));\n\treturn e;\n}\nfunction ct(e, t, n) {\n\treturn Math.min(Math.max(e, t), n);\n}\nfunction lt(e) {\n\treturn e !== null && (typeof e == \"object\" || typeof e == \"function\");\n}\nfunction ut(e) {\n\tif (!lt(e)) throw TypeError(Ye);\n\treturn e;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/temporal-polyfill@1.0.1/node_modules/temporal-polyfill/chunks/internal.js\nvar dt = Ze, ft = (e) => `Missing ${e}`, pt = (e) => \"No valid fields: \" + e.join(), mt = (e, t, n) => Ze(e, t) + \"; must be \" + Object.keys(n).join(), ht = \"Cannot use valueOf\", gt = \"Invalid calling context\", _t = (e) => \"Missing year\" + (e ? \"/era/eraYear\" : \"\"), vt = \"Invalid leap month\", yt = (e) => Ze(\"Calendar\", e), bt = (e, t) => `Unknown calendar ${e}; might need ${t}`, xt = (e) => Ze(\"TimeZone\", e), St = (e) => `Cannot parse: ${e}`, Ct = (e) => `Invalid substring: ${e}`, wt = ct, Tt = lt;\nfunction I(e) {\n\tthrow RangeError(e);\n}\nfunction Et(e) {\n\tthrow TypeError(e);\n}\nfunction Dt(e, t, n, r, i) {\n\treturn Ot(t, ((e, t) => {\n\t\tlet n = e[t];\n\t\treturn n === void 0 && Et(ft(t)), n;\n\t})(e, t), n, r, i);\n}\nfunction Ot(e, t, n, r, i, a) {\n\tlet o = wt(t, n, r);\n\treturn i && t !== o && I(((e, t, n, r, i) => i ? Xe(e, i[t], i[n], i[r]) : Xe(e, t, n, r))(e, t, n, r, a)), o;\n}\nfunction kt(e, t = Map) {\n\tlet n = new t();\n\treturn (t, ...r) => {\n\t\tif (n.has(t)) return n.get(t);\n\t\tlet i = e(t, ...r);\n\t\treturn n.set(t, i), i;\n\t};\n}\nvar At = (e) => jt({ name: e }, 1), jt = (e, t) => Nt((e) => ({\n\tvalue: e,\n\tconfigurable: 1,\n\twritable: !t\n}), e), Mt = (e) => ({ [Symbol.toStringTag]: {\n\tvalue: e,\n\tconfigurable: 1\n} });\nfunction Nt(e, t) {\n\tlet n = {};\n\tfor (let r in t) n[r] = e(t[r], r);\n\treturn n;\n}\nfunction Pt(e, t) {\n\tlet n = {};\n\tfor (let r of e) n[r] = t;\n\treturn n;\n}\nfunction Ft(e) {\n\tlet t = {};\n\tfor (let n of e) t[n] = (e) => e[n];\n\treturn t;\n}\nfunction It(e, t, n = Object.create(null)) {\n\tfor (let r of e) n[r] = t[r];\n\treturn n;\n}\nfunction Lt(e, t, n) {\n\tfor (let r of e) if (t[r] !== n[r]) return 0;\n\treturn 1;\n}\nfunction Rt(e, t, n) {\n\tlet r = { ...n };\n\tfor (let n = 0; n < t; n++) r[e[n]] = 0;\n\treturn r;\n}\nfunction zt(e, ...t) {\n\treturn (...n) => e(...t, ...n);\n}\nfunction Bt() {}\nfunction Vt(e) {\n\treturn e[0].toUpperCase() + e.substring(1);\n}\nfunction Ht(...e) {\n\treturn [].concat(...e).sort();\n}\nfunction Ut(e) {\n\treturn RegExp(`^${e}$`, \"i\");\n}\nfunction Wt(e) {\n\treturn parseInt(e.padEnd(9, \"0\"));\n}\nfunction Gt(e) {\n\treturn e && e !== \"+\" ? -1 : 1;\n}\nfunction Kt(e) {\n\treturn e === void 0 ? 0 : parseInt(e);\n}\nfunction qt(e, t) {\n\treturn String(t).padStart(e, \"0\");\n}\nvar Jt = /*@__PURE__*/ zt(qt, 2);\nfunction Yt(e, t) {\n\treturn Math.sign(e - t);\n}\nfunction Xt(e, t) {\n\treturn e < t ? -1 : +(e > t);\n}\nfunction Zt(e, t) {\n\tlet n = e / t;\n\treturn e % t < 0n ? n - 1n : n;\n}\nfunction Qt(e, t) {\n\tlet n = Zt(e, t);\n\treturn [n, e - n * t];\n}\nfunction $t(e, t) {\n\treturn [Math.floor(e / t), en(e, t)];\n}\nfunction en(e, t) {\n\treturn (e % t + t) % t;\n}\nfunction tn(e, t) {\n\treturn Math.trunc(e / t) || 0;\n}\nfunction nn(e, t) {\n\treturn e % t || 0;\n}\nfunction rn(e, t = 1) {\n\treturn t * (.5 + e / 5);\n}\nfunction an(e) {\n\treturn Math.abs(e % 1) === .5;\n}\nvar on = \"iso8601\", sn = {\n\tbce: -1,\n\tce: 0\n};\nfunction cn(e) {\n\tlet t = e.normalize(\"NFD\").toLowerCase().replace(/[^a-z0-9]/g, \"\");\n\treturn t === \"bc\" || t === \"b\" ? \"bce\" : t === \"ad\" || t === \"a\" ? \"ce\" : t;\n}\nfunction ln(e) {\n\treturn e === void 0 ? \"iso8601\" : e === 0 ? \"gregory\" : e.id;\n}\nvar un = /^M(\\d{2})(L?)$/;\nfunction dn(e) {\n\tlet t = un.exec(e);\n\treturn t || I(((e) => `Invalid monthCode: ${e}`)(e)), [parseInt(t[1]), !!t[2]];\n}\nfunction fn(e, t) {\n\treturn \"M\" + Jt(e) + (t ? \"L\" : \"\");\n}\nfunction pn(e, t, n) {\n\treturn e + (t || n && e >= n ? 1 : 0);\n}\nvar mn = {\n\tnanosecond: 0,\n\tmicrosecond: 1,\n\tmillisecond: 2,\n\tsecond: 3,\n\tminute: 4,\n\thour: 5,\n\tday: 6,\n\tweek: 7,\n\tmonth: 8,\n\tyear: 9\n}, hn = /*@__PURE__*/ Object.keys(mn), gn = Qe, _n = $e, vn = et, yn = tt, bn = nt, xn = 864e11, Sn = [\n\t1,\n\tgn,\n\t_n,\n\tvn,\n\tyn,\n\tbn,\n\txn\n], Cn = /*@__PURE__*/ BigInt(gn), wn = /*@__PURE__*/ BigInt(_n), Tn = /*@__PURE__*/ BigInt(vn), En = /*@__PURE__*/ BigInt(yn), Dn = /*@__PURE__*/ BigInt(bn), On = /*@__PURE__*/ BigInt(xn);\nfunction kn(e, t) {\n\tlet n = Number(e / On), r = Number(e % On);\n\treturn xn / t * n + (Math.trunc(r / t) + r % t / t);\n}\nvar An = /*@__PURE__*/ hn.slice(0, 6), jn = /*@__PURE__*/ Ft(An), Mn = [\"year\"], Nn = [\"day\"], Pn = [\n\t\"day\",\n\t\"month\",\n\t\"year\"\n], Fn = [\"offset\"], In = [\"timeZone\"], Ln = [\"era\", \"eraYear\"], Rn = [\n\t\"era\",\n\t\"eraYear\",\n\t\"year\"\n], zn = [\"month\", \"monthCode\"], Bn = [\n\t\"day\",\n\t\"month\",\n\t\"monthCode\"\n], Vn = /*@__PURE__*/ Ht(An), Hn = /*@__PURE__*/ Ht(Ln, Mn), Un = /*@__PURE__*/ Ht(zn, Mn), Wn = /*@__PURE__*/ Ht(Ln, Un), Gn = /*@__PURE__*/ Ht([\"monthCode\"], Mn), Kn = /*@__PURE__*/ Ht(Ln, Gn), qn = /*@__PURE__*/ Ht(Nn, [\"monthCode\"]), Jn = /*@__PURE__*/ Ht(Nn, Un), Yn = /*@__PURE__*/ Ht(Nn, Ln, Un), Xn = /*@__PURE__*/ Ht(Jn, An), Zn = /*@__PURE__*/ Ht(Yn, An), Qn = /*@__PURE__*/ Ht(Jn, An, Fn), $n = /*@__PURE__*/ Ht(Yn, An, Fn), er = /*@__PURE__*/ Ht(Jn, An, Fn, In), tr = /*@__PURE__*/ Ht(Yn, An, Fn, In), nr = /*@__PURE__*/ Ht(Nn, Gn), rr = /*@__PURE__*/ Ht(Nn, Ln, Gn), ir = /*@__PURE__*/ Pt(An, 0);\nfunction ar(e) {\n\treturn sr(e, 1), e;\n}\nvar or = {\n\thour: 23,\n\tminute: 59,\n\tsecond: 59\n};\nfunction sr(e, t) {\n\tlet n = {};\n\tfor (let r of An) n[r] = Ot(r, e[r], 0, or[r] || 999, t);\n\treturn n;\n}\nfunction cr(e) {\n\treturn ur(e) * vn + dr(e);\n}\nfunction lr(e) {\n\treturn 1e3 * ur(e) + e.millisecond;\n}\nfunction ur(e) {\n\treturn 3600 * e.hour + 60 * e.minute + e.second;\n}\nfunction dr(e) {\n\treturn e.millisecond * _n + e.microsecond * gn + e.nanosecond;\n}\nfunction fr(e) {\n\tlet [t, n] = $t(e, xn);\n\treturn [pr(n), t];\n}\nfunction pr(e) {\n\tlet [t, n] = $t(e, _n), [r, i] = $t(n, gn);\n\treturn mr(t, r, i);\n}\nfunction mr(e, t = 0, n = 0) {\n\tlet [r, i] = $t(e, 36e5), [a, o] = $t(i, 6e4), [s, c] = $t(o, 1e3);\n\treturn {\n\t\thour: r,\n\t\tminute: a,\n\t\tsecond: s,\n\t\tmillisecond: c,\n\t\tmicrosecond: t,\n\t\tnanosecond: n\n\t};\n}\nfunction hr(e) {\n\tlet [t, n] = Qt(e, Tn);\n\treturn [Number(t), Number(n)];\n}\nfunction gr(e) {\n\treturn vr(e) + BigInt(cr(e));\n}\nfunction _r(e) {\n\treturn yr(e) + lr(e);\n}\nfunction vr(e) {\n\treturn BigInt(br(e)) * On;\n}\nfunction yr(e) {\n\treturn 864e5 * br(e);\n}\nfunction br(e) {\n\treturn xr(e.year, e.month, e.day);\n}\nfunction xr(e, t = 1, n = 1) {\n\tlet r = t - 1;\n\treturn e += Math.floor(r / 12), t = en(r, 12), Date.UTC(e % 400 - 400, t, 0) / 864e5 + 146097 * (tn(e, 400) + 1) + n;\n}\nfunction Sr(e) {\n\tlet [t, n] = Qt(e, On);\n\treturn {\n\t\t...Cr(Number(t)),\n\t\t...pr(Number(n))\n\t};\n}\nfunction Cr(e) {\n\tlet t = /* @__PURE__ */ new Date(864e5 * en(e, 146097));\n\treturn {\n\t\tyear: t.getUTCFullYear() + 400 * Math.floor(e / 146097),\n\t\tmonth: t.getUTCMonth() + 1,\n\t\tday: t.getUTCDate()\n\t};\n}\nfunction wr(e) {\n\treturn [e, 0];\n}\nfunction Tr(e, t) {\n\tif (!t) return {\n\t\tyear: 1972,\n\t\tmonth: e\n\t};\n}\nfunction Er(e, t, n) {\n\treturn {\n\t\tyear: e,\n\t\tmonth: t,\n\t\tday: n\n\t};\n}\nfunction Dr(e, t) {\n\tswitch (t) {\n\t\tcase 2: return kr(e) ? 29 : 28;\n\t\tcase 4:\n\t\tcase 6:\n\t\tcase 9:\n\t\tcase 11: return 30;\n\t}\n\treturn 31;\n}\nfunction Or(e) {\n\treturn kr(e) ? 366 : 365;\n}\nfunction kr(e) {\n\treturn e % 4 == 0 && (e % 100 != 0 || e % 400 == 0);\n}\nfunction Ar(e, t, n) {\n\treturn e += tn(n, 12), (t += nn(n, 12)) < 1 ? (e--, t += 12) : t > 12 && (e++, t -= 12), {\n\t\tyear: e,\n\t\tmonth: t\n\t};\n}\nfunction jr(e, t, n, r) {\n\treturn 12 * (n - e) + r - t;\n}\nfunction Mr(e) {\n\treturn en(xr(e.year, e.month, e.day) + 4, 7) || 7;\n}\nfunction Nr(e) {\n\treturn xr(e.year, e.month, e.day) - xr(e.year) + 1;\n}\nfunction Pr(e) {\n\tlet t = e.year, n = Math.floor((Nr(e) - Mr(e) + 10) / 7), r = Fr(t);\n\treturn n < 1 ? n = r = Fr(--t) : n > r && (n = 1, r = Fr(++t)), {\n\t\tweekOfYear: n,\n\t\tyearOfWeek: t,\n\t\tIe: r\n\t};\n}\nfunction Fr(e) {\n\tlet t = Mr({\n\t\tyear: e,\n\t\tmonth: 1,\n\t\tday: 1\n\t});\n\treturn t === 4 || t === 3 && kr(e) ? 53 : 52;\n}\nfunction Ir({ year: e }) {\n\treturn e < 1 ? {\n\t\tera: \"bce\",\n\t\teraYear: 1 - e\n\t} : {\n\t\tera: \"ce\",\n\t\teraYear: e\n\t};\n}\nfunction Lr(e) {\n\treturn Rr(e), ar(e);\n}\nfunction Rr(e) {\n\treturn Br(e, 1), e;\n}\nfunction zr(e) {\n\treturn Lt(Pn, e, Br(e));\n}\nfunction Br(e, t) {\n\tlet { year: n } = e, r = Dt(e, \"month\", 1, 12, t);\n\treturn {\n\t\tyear: n,\n\t\tmonth: r,\n\t\tday: Dt(e, \"day\", 1, Dr(n, r), t)\n\t};\n}\nfunction Vr(e, t) {\n\treturn e ? e.ie(t) : t;\n}\nfunction Hr(e, t, n) {\n\treturn e ? e.O(t, n) : wr(n);\n}\nfunction Ur(e, t) {\n\treturn e === 0 ? Ir(t) : e ? e.h(t) : {};\n}\nfunction Wr(e, t, n, r) {\n\treturn e ? e.je(t, n, r) : Er(t, n, r);\n}\nfunction Gr(e, t) {\n\treturn e ? e.k(t) : 12;\n}\nfunction Kr(e, t, n) {\n\treturn e ? e.p(t, n) : Dr(t, n);\n}\nfunction qr(e, t) {\n\tlet { year: n, month: r } = Vr(e, t), [i, a] = Hr(e, n, r);\n\treturn fn(i, a);\n}\nfunction Jr(e, t) {\n\tlet { year: n } = Vr(e, t);\n\treturn e ? e.u(n) : kr(n);\n}\nfunction Yr(e, t) {\n\tlet { year: n } = Vr(e, t);\n\treturn Gr(e, n);\n}\nfunction Xr(e, t) {\n\tlet { year: n, month: r } = Vr(e, t);\n\treturn Kr(e, n, r);\n}\nfunction Zr(e, t) {\n\tlet { year: n } = Vr(e, t);\n\treturn e ? e.j(n) : Or(n);\n}\nfunction Qr(e, t) {\n\tif (!e) return Nr(t);\n\tlet { year: n } = Vr(e, t), r = Wr(e, n, 1, 1);\n\treturn br(t) - br(r) + 1;\n}\nfunction $r(e, t) {\n\treturn e === void 0 ? Pr(t).weekOfYear : void 0;\n}\nfunction ei(e, t) {\n\treturn e === void 0 ? Pr(t).yearOfWeek : void 0;\n}\nvar ti = /*@__PURE__*/ hn.map((e) => e + \"s\"), ni = /*@__PURE__*/ Ft(ti), ri = /*@__PURE__*/ Ht(ti), ii = /*@__PURE__*/ ti.slice(0, 6), ai = /*@__PURE__*/ ti.slice(6), oi = /*@__PURE__*/ ai.slice(1), si = /*@__PURE__*/ ti.reduce((e, t, n) => (e[t] = n, e), {}), ci = /*@__PURE__*/ Pt(ti, 0), li = /*@__PURE__*/ Pt(ii, 0), ui = /*@__PURE__*/ zt(Rt, ti);\nfunction di(e, t) {\n\treturn t ?? I(ft(e)), t;\n}\nvar fi = /*@__PURE__*/ zt(pi, \"string\");\nfunction pi(e, t, n = e) {\n\treturn typeof t !== e && Et(dt(n, t)), t;\n}\nfunction mi(e, t = \"number\") {\n\treturn Number.isInteger(e) || I(((e, t) => `Non-integer ${e}: ${t}`)(t, e)), e || 0;\n}\nfunction hi(e) {\n\treturn typeof e == \"symbol\" && Et(\"Cannot convert Symbol to string\"), String(e);\n}\nfunction gi(e, t) {\n\treturn lt(e) ? String(e) : fi(e, t);\n}\nfunction _i(e) {\n\treturn typeof e == \"boolean\" ? BigInt(+!!e) : typeof e == \"string\" ? BigInt(e) : (typeof e != \"bigint\" && Et(`Invalid bigint: ${e}`), e);\n}\nfunction vi(e, t) {\n\treturn mi(it(e, t), t);\n}\nfunction yi(e, t) {\n\treturn typeof e == \"string\" ? ((e, t) => {\n\t\tlet n = Object.create(null);\n\t\treturn n[e] = t, n;\n\t})(t, e) : ut(e);\n}\nvar bi = \"smallestUnit\", xi = {\n\tconstrain: 0,\n\treject: 1\n}, Si = {\n\tcompatible: 0,\n\treject: 1,\n\tearlier: 2,\n\tlater: 3\n}, Ci = {\n\treject: 0,\n\tuse: 1,\n\tprefer: 2,\n\tignore: 3\n}, wi = {\n\tauto: 0,\n\tnever: 1,\n\tcritical: 2,\n\talways: 3\n}, Ti = {\n\tauto: 0,\n\tnever: 1,\n\tcritical: 2\n}, Ei = {\n\tauto: 0,\n\tnever: 1\n}, Di = {\n\tfloor: 0,\n\thalfFloor: 1,\n\tceil: 2,\n\thalfCeil: 3,\n\ttrunc: 4,\n\thalfTrunc: 5,\n\texpand: 6,\n\thalfExpand: 7,\n\thalfEven: 8\n}, Oi = [\n\tMath.floor,\n\t(e) => an(e) ? Math.floor(e) : Math.round(e),\n\tMath.ceil,\n\t(e) => an(e) ? Math.ceil(e) : Math.round(e),\n\tMath.trunc,\n\t(e) => an(e) ? Math.trunc(e) || 0 : Math.round(e),\n\t(e) => e < 0 ? Math.floor(e) : Math.ceil(e),\n\t(e) => Math.sign(e) * Math.round(Math.abs(e)) || 0,\n\t(e) => an(e) ? (e = Math.trunc(e) || 0) + e % 2 : Math.round(e)\n], ki = {\n\tprevious: -1,\n\tnext: 1\n};\nfunction Ai(e) {\n\tlet t = e.roundingIncrement;\n\treturn t === void 0 ? 1 : at(t, \"roundingIncrement\");\n}\nfunction ji(e) {\n\tlet t = e.fractionalSecondDigits;\n\tif (t !== void 0) {\n\t\tif (typeof t != \"number\") {\n\t\t\tif (hi(t) === \"auto\") return;\n\t\t\tI(dt(\"fractionalSecondDigits\", t));\n\t\t}\n\t\tt = Ot(\"fractionalSecondDigits\", Math.floor(t), 0, 9, 1);\n\t}\n\treturn t;\n}\nfunction Mi(e, t, n = 0, r) {\n\tlet i = t[e];\n\tif (i === void 0) return r ? n : void 0;\n\tif (i = hi(i), i === \"auto\") return r ? n : null;\n\tlet a = mn[i];\n\treturn a === void 0 && (a = si[i]), a === void 0 && I(mt(e, i, mn)), a;\n}\nfunction Ni(e, t, n, r = 0) {\n\tlet i = n[e];\n\tif (i === void 0) return r;\n\tlet a = hi(i), o = t[a];\n\treturn o === void 0 && I(mt(e, a, t)), o;\n}\nvar Pi = /*@__PURE__*/ zt(Mi, bi), Fi = /*@__PURE__*/ zt(Mi, \"largestUnit\"), Ii = /*@__PURE__*/ zt(Mi, \"unit\"), Li = /*@__PURE__*/ zt(Ni, \"overflow\", xi), Ri = /*@__PURE__*/ zt(Ni, \"disambiguation\", Si), zi = /*@__PURE__*/ zt(Ni, \"offset\", Ci), Bi = /*@__PURE__*/ zt(Ni, \"calendarName\", wi), Vi = /*@__PURE__*/ zt(Ni, \"timeZoneName\", Ti), Hi = /*@__PURE__*/ zt(Ni, \"offset\", Ei), Ui = /*@__PURE__*/ zt(Ni, \"roundingMode\", Di), Wi = /*@__PURE__*/ zt(Ni, \"direction\", ki);\nfunction Gi(e, t, n, r) {\n\tlet i = r ? xn : Sn[t + 1];\n\tif (i) {\n\t\tlet n = Sn[t];\n\t\ti % ((e = Ot(\"roundingIncrement\", e, 1, i / n - +!r, 1)) * n) && I(dt(\"roundingIncrement\", e));\n\t} else e = Ot(\"roundingIncrement\", e, 1, n ? 10 ** 9 : 1, 1);\n\treturn e;\n}\nfunction Ki(e, t, n, r) {\n\treturn t != null && Ot(e, t, n, r, 1, hn), t;\n}\nfunction qi(e, t) {\n\tt > e && I(\"smallestUnit > largestUnit\");\n}\nfunction Ji(e, t, n, r = 9, i = 0, a = 4) {\n\tt = rt(t);\n\tlet o = Fi(t, i), s = Ai(t), c = Ui(t, a), l = Pi(t, i, 1);\n\treturn o = Ki(\"largestUnit\", o, i, r), l = Ki(bi, l, i, r), o == null ? o = Math.max(n, l) : qi(o, l), s = Gi(s, l, 1), e && (c = ((e) => e < 4 ? (e + 2) % 4 : e)(c)), [\n\t\to,\n\t\tl,\n\t\ts,\n\t\tc\n\t];\n}\nfunction Yi(e, t = 6, n) {\n\tlet r = Ai(e = yi(e, bi)), i = Ui(e, 7), a = Pi(e);\n\treturn a = di(bi, a), a = Ki(bi, a, 0, t), r = Gi(r, a, void 0, n), [\n\t\ta,\n\t\tr,\n\t\ti\n\t];\n}\nfunction Xi(e, t) {\n\treturn It(Pn, e, It(An, t));\n}\nfunction L(e) {\n\treturn e === void 0 ? 0 : Li(ut(e));\n}\nfunction Zi(e, t = 0) {\n\te = rt(e);\n\tlet n = Ri(e), r = zi(e, t);\n\treturn [\n\t\tLi(e),\n\t\tr,\n\t\tn\n\t];\n}\nvar Qi = /*@__PURE__*/ BigInt(1e8) * On, $i = /*@__PURE__*/ BigInt(-1e8) * On, ea = $i - On, ta = -3261848;\nfunction na(e) {\n\tlet t = 12 * e.year + e.month;\n\treturn (t < ta || t > 3309129) && I(\"Out-of-bounds date\"), e;\n}\nfunction ra(e, t = 1) {\n\treturn aa(vr(e), t), e;\n}\nfunction ia(e) {\n\tlet t = vr(e);\n\treturn aa(t), t !== ea || cr(e) || I(\"Out-of-bounds date\"), e;\n}\nfunction aa(e, t = 1) {\n\t(e < (t ? ea : $i) || e > Qi) && I(\"Out-of-bounds date\");\n}\nfunction oa(e) {\n\treturn (e < $i || e > Qi) && I(\"Out-of-bounds date\"), e;\n}\nfunction sa(e, t) {\n\treturn oa(vr(e) + BigInt(cr(e) - t));\n}\nfunction ca(e) {\n\treturn { epochNanoseconds: e };\n}\nfunction la(e, t, n) {\n\treturn {\n\t\tcalendar: n,\n\t\ttimeZone: t,\n\t\tepochNanoseconds: e\n\t};\n}\nfunction ua(e, t) {\n\treturn It(An, e, da(e, t));\n}\nfunction da(e, t) {\n\treturn It(Pn, e, { calendar: t });\n}\nfunction fa(e) {\n\treturn It(An, e);\n}\nfunction pa(e) {\n\treturn It(ti, e, { sign: Ro(e) });\n}\nfunction ma(e) {\n\treturn t = e.epochNanoseconds, Number(Zt(t, wn));\n\tvar t;\n}\nfunction ha(e) {\n\treturn e.epochNanoseconds;\n}\nfunction ga(e, t, n) {\n\tlet r = qo(t), [i, a] = ((e, t) => {\n\t\tlet n = t((e = yi(e, \"unit\")).relativeTo), r = Ii(e);\n\t\treturn r = di(\"unit\", r), [r, n];\n\t})(n, e);\n\tif (!a && ko(Math.max(i, r), a)) return va(t, i);\n\tif (a || I(\"Missing relativeTo\"), !t.sign && ko(i, a)) return 0;\n\tlet o = Co(a), s = o.G(o.i, t);\n\tEo(o, s);\n\tlet c = o.re(o.i, s, i);\n\treturn ko(i, a) ? va(c, i) : _a(c, o.V(s), i, o);\n}\nfunction _a(e, t, n, r) {\n\tlet i = Ro(e) || 1, a = ya(ui(n, e), n, i, r, t), o = a.ae, s = a.de, c = Number(s - o), l = Number(t - o);\n\treturn a.ye[ti[n]] + l / c * i;\n}\nfunction va(e, t) {\n\treturn kn(Vo(e), Sn[t]);\n}\nfunction ya(e, t, n, r, i) {\n\tlet a = ti[t], o = e, s = 0, c = ba(o, a, n, r);\n\treturn i && !((e, t, n, r) => r > 0 ? Xt(t, e) <= 0 && Xt(e, n) <= 0 : Xt(n, e) <= 0 && Xt(e, t) <= 0)(i, c.ae, c.de, Math.sign(n)) && (o = {\n\t\t...e,\n\t\t[a]: e[a] + n\n\t}, s = 1, c = ba(o, a, n, r)), {\n\t\t...c,\n\t\tye: o,\n\t\tHe: s\n\t};\n}\nfunction ba(e, t, n, r) {\n\tlet i = {\n\t\t...e,\n\t\t[t]: e[t] + n\n\t};\n\treturn {\n\t\tae: wo(r, e),\n\t\tde: wo(r, i),\n\t\tAe: i\n\t};\n}\nfunction xa(e, t, n) {\n\tlet r = n - t, i = e - t;\n\tif (!i) return 0;\n\tlet a = i < 0n ? -i : i, o = r < 0n ? -r : r, s = Xt(i, 0n) === Xt(r, 0n) ? 1 : -1;\n\treturn Xt(a, o) <= 0 ? a === o ? s : rn(Xt(2n * a, o), s) : Number(i) / Number(r);\n}\nfunction Sa(e, t, n, r) {\n\tlet { epochNanoseconds: i } = e, { timeZone: a, calendar: o } = e;\n\tif (t === 0 && n === 1) return {\n\t\tepochNanoseconds: i,\n\t\ttimeZone: a,\n\t\tcalendar: o\n\t};\n\tif (t === 6) {\n\t\tlet t = Xi(Va(e), ir), n = Xi($a(t, 1), ir), o = Ga(a, t), s = Ga(a, n);\n\t\ti = Ia(xa(i, o, s), r) ? s : o;\n\t} else {\n\t\tlet o = Va(e), s = o.offsetNanoseconds;\n\t\ti = Ua(a, Ta(o, Oa(t, n), r), s, 2, 0, 1);\n\t}\n\treturn {\n\t\tepochNanoseconds: i,\n\t\ttimeZone: a,\n\t\tcalendar: o\n\t};\n}\nfunction Ca(e) {\n\tlet { timeZone: t } = e, n = Xi(Va(e), ir), r = Xi($a(n, 1), ir), i = Ga(t, n);\n\treturn kn(Ga(t, r) - i, bn);\n}\nfunction wa(e) {\n\tlet { timeZone: t, calendar: n } = e;\n\treturn la(Ga(t, Xi(Va(e), ir)), t, n);\n}\nfunction Ta(e, t, n) {\n\tlet [r, i] = Ea(e, t, n), a = Xi($a(e, i), r);\n\treturn ia(a), a;\n}\nfunction Ea(e, t, n) {\n\treturn fr(Fa(cr(e), t, n));\n}\nfunction Da(e) {\n\treturn Fa(e, yn, 7);\n}\nfunction Oa(e, t) {\n\treturn Sn[e] * t;\n}\nfunction ka(e, t) {\n\treturn BigInt(Sn[e]) * BigInt(t);\n}\nfunction Aa(e, t, n) {\n\tlet r = Math.min(qo(e), 6);\n\treturn Wo(Ma(Vo(e), BigInt(t), n), r);\n}\nfunction ja(e, t, n, r, i, a, o) {\n\tif (r === 0 && i === 1) return e;\n\tlet s = Ro(e) || 1, [c, l, u] = (ko(r, o.i) ? To(o.i) && r < 6 && n >= 6 ? Ra : La : za)(s, e, t, n, r, i, a, o);\n\treturn u && r !== 7 && (c = ((e, t, n, r, i, a) => {\n\t\tfor (let o = r + 1; o <= n; o++) {\n\t\t\tif (o === 7 && n !== 7) continue;\n\t\t\tlet r = ui(o, e);\n\t\t\tr[ti[o]] += i;\n\t\t\tlet s = Xt(t, wo(a, r));\n\t\t\tif (s && s !== i) break;\n\t\t\te = r;\n\t\t}\n\t\treturn e;\n\t})(c, l, n, Math.max(6, r), s, o)), c;\n}\nfunction Ma(e, t, n) {\n\treturn Pa(e, t, n, e / t % 2n);\n}\nfunction Na(e, t, n) {\n\tlet [r, i] = Qt(e, On), a = r * On;\n\treturn a + Pa(i, t, n, (a / t + i / t) % 2n);\n}\nfunction Pa(e, t, n, r) {\n\tlet i = e / t, a = e % t, o = 0;\n\ta && (o = rn(Xt(2n * (a < 0n ? -a : a), t), Math.sign(Number(a))));\n\tlet s = Ia(Number(r) + o, n);\n\treturn (i - r + BigInt(s)) * t;\n}\nfunction Fa(e, t, n) {\n\treturn Ia(e / t, n) * t;\n}\nfunction Ia(e, t) {\n\treturn Oi[t](e);\n}\nfunction La(e, t, n, r, i, a, o) {\n\tlet s = Vo(t), c = Ma(s, ka(i, a), o), l = c - s, u = Math.sign(Number(c / On) - Number(s / On)) === e, d = Wo(c, Math.min(r, 6));\n\treturn [\n\t\t{\n\t\t\t...t,\n\t\t\t...d\n\t\t},\n\t\tn + l,\n\t\tu\n\t];\n}\nfunction Ra(e, t, n, r, i, a, o, s) {\n\tlet c = Number(Ho(t)), l = Oa(i, a), u = Fa(c, l, o), d = ya({\n\t\t...t,\n\t\t...li\n\t}, 6, e, s, n), f = d.ae, p = d.de, m = u - Number(p - f), h = 0;\n\tm && Math.sign(m) !== e ? n = f + BigInt(u) : (h += e, u = Fa(m, l, o), n = p + BigInt(u));\n\tlet g = Go(u);\n\treturn [\n\t\t{\n\t\t\t...t,\n\t\t\t...g,\n\t\t\tdays: t.days + h\n\t\t},\n\t\tn,\n\t\t!!h\n\t];\n}\nfunction za(e, t, n, r, i, a, o, s) {\n\tlet c = ti[i], l = ui(i, t);\n\ti === 7 && (t = {\n\t\t...t,\n\t\tweeks: t.weeks + Math.trunc(t.days / 7)\n\t}), l[c] = tn(t[c], a) * a;\n\tlet u = ya(l, i, a * e, s, n), d = u.ae, f = u.de, p = xa(n, d, f), m = u.ye[c], h = u.Ae[c], g = Fa(m + p * e * a, a, o), _ = g === h;\n\treturn l[c] = g, [\n\t\tl,\n\t\t_ ? f : d,\n\t\tu.He || _\n\t];\n}\nfunction Ba(e, t) {\n\treturn e.timeZone.U(e.epochNanoseconds, ((e) => {\n\t\tlet t = Wi(yi(e, \"direction\"), 0);\n\t\treturn t || I(dt(\"direction\", t)), t;\n\t})(t));\n}\nvar Va = /*@__PURE__*/ kt(Ha, WeakMap);\nfunction Ha(e) {\n\tlet { epochNanoseconds: t, timeZone: n } = e, r = n.C(t);\n\treturn {\n\t\t...Sr(t + BigInt(r)),\n\t\toffsetNanoseconds: r\n\t};\n}\nfunction Ua(e, t, n, r = 0, i = 0, a, o) {\n\tif (n !== void 0 && r === 1 && (r === 1 || o)) return sa(t, n);\n\tr !== 2 && r !== 0 || ra(t, 0);\n\tlet s = e.R(t);\n\tif (n !== void 0 && r !== 3) {\n\t\tlet e = ((e, t, n, r) => {\n\t\t\tlet i = gr(t);\n\t\t\tr && (n = Da(n));\n\t\t\tfor (let t of e) {\n\t\t\t\tlet e = Number(i - t);\n\t\t\t\tif (r && (e = Da(e)), e === n) return t;\n\t\t\t}\n\t\t})(s, t, n, a);\n\t\tif (e !== void 0) return e;\n\t\tr === 0 && I(\"Invalid TimeZone offset\");\n\t}\n\treturn o ? gr(t) : Wa(e, t, i, s);\n}\nfunction Wa(e, t, n = 0, r = e.R(t)) {\n\tif (r.length === 1) return r[0];\n\tif (n === 1 && I(\"Ambiguous offset\"), r.length) return r[+(n === 3)];\n\tlet i = gr(t), a = ((e, t) => {\n\t\tlet n = e.C(t - On);\n\t\treturn ((e) => (e > 864e11 && I(\"Out-of-bounds TimeZone gap\"), e))(e.C(t + On) - n);\n\t})(e, i), o = Sr(i + BigInt(a * (n === 2 ? -1 : 1)));\n\treturn (r = e.R(o))[n === 2 ? 0 : r.length - 1];\n}\nfunction Ga(e, t) {\n\tlet n = e.R(t);\n\tif (n.length) return n[0];\n\tlet r = gr(t) - On;\n\treturn e.U(r, 1);\n}\nfunction Ka(e, t, n, r, i) {\n\tlet a = L(i);\n\treturn r.sign && qo(r) < 8 && I(\"Cannot use small units\"), Za(t, eo(t, ra(Za(t, n)), e ? Lo(r) : r, a));\n}\nfunction qa(e, t) {\n\treturn oa(e + (Ko(n = t) && I(\"Cannot use large units\"), Ho(n)));\n\tvar n;\n}\nfunction Ja(e, t, n) {\n\tlet { calendar: r, epochNanoseconds: i, timeZone: a } = e, o = Ho(t), s = i;\n\tif (Ko(t)) {\n\t\tlet i = Va(e);\n\t\ts = Wa(a, Xi(Xa(r, i, {\n\t\t\t...t,\n\t\t\t...li\n\t\t}, n), i)) + o;\n\t} else s += o, L(n);\n\treturn {\n\t\t...e,\n\t\tepochNanoseconds: oa(s)\n\t};\n}\nfunction Ya(e, t, n, r) {\n\tlet [i, a] = Qa(t, n), o = Xi(Xa(e, t, {\n\t\t...n,\n\t\t...li,\n\t\tdays: n.days + a\n\t}, r), i);\n\treturn ia(o), o;\n}\nfunction Xa(e, t, n, r) {\n\tif (n.years || n.months || n.weeks) return eo(e, t, n, L(r));\n\tL(r);\n\tlet i = n.days + Number(Ho(n) / On);\n\treturn i ? ra($a(t, i)) : t;\n}\nfunction Za(e, t) {\n\treturn $a(t, 1 - Vr(e, t).day);\n}\nfunction Qa(e, t) {\n\tlet n = Ho(t), r = Number(n / On), i = Number(n % On), [a, o] = fr(cr(e) + i);\n\treturn [a, r + o];\n}\nfunction $a(e, t) {\n\treturn t ? Cr(br(e) + t) : e;\n}\nfunction eo(e, t, n, r) {\n\tlet { years: i, months: a, weeks: o, days: s } = n, c;\n\tif (s += Number(Ho(n) / On), i || a) c = to(e, t, i, a, r);\n\telse {\n\t\tif (!o && !s) return t;\n\t\tc = t;\n\t}\n\treturn (o || s) && (c = $a(c, 7 * o + s)), ra(c);\n}\nfunction to(e, t, n, r, i) {\n\tlet { year: a, month: o, day: s } = Vr(e, t);\n\tif (n) {\n\t\tlet [t, r] = Hr(e, a, o);\n\t\ta += n, o = no(e, t, r, e ? e.q(a) : void 0, i), o = Ot(\"month\", o, 1, Gr(e, a), i);\n\t}\n\tif (r) {\n\t\tlet t = e ? e.N(a, o, r) : Ar(a, o, r);\n\t\t({year: a, month: o} = t);\n\t}\n\treturn s = Ot(\"day\", s, 1, Kr(e, a, o), i), Wr(e, a, o, s);\n}\nfunction no(e, t, n, r, i) {\n\tif (n) {\n\t\tlet n = e ? e.m : void 0;\n\t\treturn r !== void 0 && (n < 0 || r === t + 1) ? r : (i === 1 && I(vt), n < 0 ? -n : t);\n\t}\n\treturn pn(t, 0, r);\n}\nfunction ro(e, t) {\n\treturn ln(e) !== ln(t) && I(\"Mismatching Calendars\"), e;\n}\nfunction io(e, t) {\n\treturn e.o !== t.o && I(\"Mismatching TimeZones\"), e;\n}\nfunction ao(e) {\n\treturn e.timeZone.id;\n}\nfunction oo(e, t, n, r) {\n\tlet [i, a, o, s] = Ji(e, r, 3, 5), c = bo(t.epochNanoseconds, n.epochNanoseconds, i, a, o, s);\n\treturn pa(e ? Lo(c) : c);\n}\nfunction so(e, t, n, r, i) {\n\tlet [a, o, s, c] = Ji(e, i, 5), l = n.epochNanoseconds, u = r.epochNanoseconds, d;\n\treturn Xt(u, l) ? a < 6 ? d = bo(l, u, a, o, s, c) : (d = mo(io(n.timeZone, r.timeZone), t, n, r, a), d = ja(d, u, a, o, s, c, So(n, ha, Ja))) : d = ci, pa(e ? Lo(d) : d);\n}\nfunction co(e, t, n, r, i) {\n\tlet [a, o, s, c] = Ji(e, i, 6), l = gr(n), u = gr(r), d = Xt(u, l), f;\n\treturn d ? a <= 6 ? f = bo(l, u, a, o, s, c) : (f = go(t, n, r, d, a), f = ja(f, u, a, o, s, c, So(n, gr, zt(Ya, t)))) : f = ci, pa(e ? Lo(f) : f);\n}\nfunction lo(e, t, n, r, i) {\n\tlet [a, o, s, c] = Ji(e, i, 6, 9, 6);\n\treturn fo(e, t, n, r, a, o, s, c);\n}\nfunction uo(e, t, n, r, i) {\n\tlet [a, o, s, c] = Ji(e, i, 9, 9, 8), l = Za(t, n), u = Za(t, r);\n\treturn vo(l, u) ? fo(e, t, ra(l), ra(u), a, o, s, c, 8) : pa(ci);\n}\nfunction fo(e, t, n, r, i, a, o, s, c = 6) {\n\tlet l = vr(n), u = vr(r), d;\n\treturn Xt(u, l) ? i === 6 ? d = bo(l, u, i, a, o, s) : (d = _o(t, n, r, i), a === c && o === 1 || (d = ja(d, u, i, a, o, s, So(n, vr, zt(Xa, t))))) : d = ci, pa(e ? Lo(d) : d);\n}\nfunction po(e, t, n, r) {\n\tlet [i, a, o, s] = Ji(e, r, 5, 5), c = Fa(cr(n) - cr(t), Oa(a, o), s), l = {\n\t\t...ci,\n\t\t...Go(c, i)\n\t};\n\treturn pa(e ? Lo(l) : l);\n}\nfunction mo(e, t, n, r, i) {\n\tlet a = Xt(r.epochNanoseconds, n.epochNanoseconds);\n\tif (!a) return ci;\n\tif (i < 6) return {\n\t\t...ci,\n\t\t...Wo(r.epochNanoseconds - n.epochNanoseconds, i)\n\t};\n\tif (!vo(Va(n), Va(r))) return {\n\t\t...ci,\n\t\t...Wo(r.epochNanoseconds - n.epochNanoseconds, 5)\n\t};\n\tlet [o, s, c] = yo(e, n, r, a);\n\treturn {\n\t\t...i === 6 ? {\n\t\t\t...ci,\n\t\t\tdays: xo(o, s)\n\t\t} : _o(t, o, s, i),\n\t\t...Go(c)\n\t};\n}\nfunction ho(e, t, n, r) {\n\tlet i = gr(t), a = gr(n), o = Xt(a, i);\n\treturn o ? r <= 6 ? {\n\t\t...ci,\n\t\t...Wo(a - i, r)\n\t} : go(e, t, n, o, r) : ci;\n}\nfunction go(e, t, n, r, i) {\n\tlet a = n, o = cr(n) - cr(t);\n\treturn Math.sign(o) === -r && (a = $a(n, -r), o += 864e11 * r), {\n\t\t..._o(e, t, a, i),\n\t\t...Go(o)\n\t};\n}\nfunction _o(e, t, n, r) {\n\tif (r <= 7) {\n\t\tlet e = xo(t, n);\n\t\treturn r === 7 ? {\n\t\t\t...ci,\n\t\t\tweeks: tn(e, 7),\n\t\t\tdays: nn(e, 7)\n\t\t} : {\n\t\t\t...ci,\n\t\t\tdays: e\n\t\t};\n\t}\n\tlet i = Vr(e, t), a = Vr(e, n);\n\tif (r === 8) {\n\t\tlet { year: r, month: o, day: s } = i, { year: c, month: l, day: u } = a, d = Math.sign(Yt(c, r) || Yt(l, o) || xo(t, n)), f = 0, p = 0;\n\t\tif (d) {\n\t\t\tf = e ? e.ne(r, o, c, l) : jr(r, o, c, l);\n\t\t\tlet i = to(e, t, 0, f, 0);\n\t\t\td * Yt(s, u) > 0 && (f -= d, i = to(e, t, 0, f, 0)), p = xo(i, n);\n\t\t}\n\t\treturn {\n\t\t\t...ci,\n\t\t\tmonths: f,\n\t\t\tdays: p\n\t\t};\n\t}\n\tlet { year: o, month: s, day: c } = i, { year: l, month: u, day: d } = a, f = l - o, p = u - s, m = d - c;\n\tif (f || p) {\n\t\tlet t = Math.sign(f || p), n = Kr(e, l, u), r = 0;\n\t\tif (Math.sign(d - c) === -t) {\n\t\t\tlet i = n, a = e ? e.N(l, u, -t) : Ar(l, u, -t);\n\t\t\t({year: l, month: u} = a), f = l - o, p = u - s, n = Kr(e, l, u), r = t < 0 ? -i : n;\n\t\t}\n\t\tif (m = d - Math.min(c, n) + r, f) {\n\t\t\tlet [n, r] = Hr(e, o, s), [i, a] = Hr(e, l, u), c = e ? e.m : void 0;\n\t\t\tif (p = c !== void 0 && r && !a && (c < 0 ? t > 0 && i === -c : t < 0 && i === n) ? 0 : i - n || Number(a) - Number(r), Math.sign(p) === -t) {\n\t\t\t\tlet i = t < 0 && -Gr(e, l);\n\t\t\t\tl -= t, f = l - o, p = u - no(e, n, r, e ? e.q(l) : void 0, 0) + (i || Gr(e, l));\n\t\t\t} else if (e) {\n\t\t\t\tlet t = no(e, n, r, e.q(l), 0);\n\t\t\t\tp = e.ne(l, t, l, u);\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\t...ci,\n\t\tyears: f,\n\t\tmonths: p,\n\t\tdays: m\n\t};\n}\nfunction vo(e, t) {\n\treturn Yt(e.year, t.year) || Yt(e.month, t.month) || Yt(e.day, t.day);\n}\nfunction yo(e, t, n, r) {\n\tlet i = Va(t), a = Va(n), o = n.epochNanoseconds, s = 0, c = cr(a) - cr(i);\n\tMath.sign(c) === -r && s++;\n\tlet l = s + +(r > 0);\n\tfor (; s <= l; s++) {\n\t\tlet t = $a(a, s * -r), n = Wa(e, Xi(t, i));\n\t\tif (Xt(o, n) !== -r) return [\n\t\t\ti,\n\t\t\tt,\n\t\t\tNumber(o - n)\n\t\t];\n\t}\n}\nfunction bo(e, t, n, r, i, a) {\n\treturn {\n\t\t...ci,\n\t\t...Wo(Ma(t - e, ka(r, i), a), n)\n\t};\n}\nfunction xo(e, t) {\n\treturn br(t) - br(e);\n}\nfunction So(e, t, n) {\n\treturn {\n\t\ti: e,\n\t\tV: t,\n\t\tG: n\n\t};\n}\nfunction Co(e) {\n\tlet { calendar: t } = e;\n\tif (To(e)) {\n\t\tlet { timeZone: n } = e;\n\t\treturn {\n\t\t\ti: e,\n\t\t\tV: ha,\n\t\t\tG: Ja,\n\t\t\tre: zt(mo, n, t)\n\t\t};\n\t}\n\treturn {\n\t\ti: Do(e),\n\t\tV: gr,\n\t\tG: zt(Ya, t),\n\t\tre: zt(ho, t)\n\t};\n}\nfunction wo(e, t) {\n\treturn e.V(e.G(e.i, t));\n}\nfunction To(e) {\n\treturn \"timeZone\" in e;\n}\nfunction Eo(e, t) {\n\tTo(e.i) || (Oo(e.i), Oo(t));\n}\nfunction Do(e) {\n\treturn Xi(e, \"hour\" in e ? e : ir);\n}\nfunction Oo(e) {\n\tia(Do(e));\n}\nfunction ko(e, t) {\n\treturn e <= 6 - (t && To(t) ? 1 : 0);\n}\nfunction Ao(e, t, n) {\n\tlet r = {};\n\tfor (let i = t; i >= 0; i--) {\n\t\tlet t = Sn[i];\n\t\tr[n[i]] = tn(e, t), e = nn(e, t);\n\t}\n\treturn r;\n}\nvar jo = 2 ** 53;\nfunction Mo(e, t, n, r, i) {\n\tlet a = e(rt(i).relativeTo), o = Math.max(qo(n), qo(r));\n\tif (ko(o, a)) return No(t, n, r, o);\n\ta || I(\"Missing relativeTo\"), t && (r = Lo(r));\n\tlet s = Co(a), c = s.G(s.i, n), l = s.G(c, r);\n\treturn pa(s.re(s.i, l, o));\n}\nfunction No(e, t, n, r) {\n\treturn pa(zo(((e, t, n, r) => {\n\t\tlet i = Vo(e) + Vo(t) * BigInt(r ? -1 : 1);\n\t\treturn Number.isFinite(Number(i / On)) || I(\"Out-of-bounds date\"), {\n\t\t\t...ci,\n\t\t\t...Wo(i, n)\n\t\t};\n\t})(t, n, r, e)));\n}\nfunction Po(e, t, n) {\n\tlet r = qo(t), [i, a, o, s, c] = ((e, t, n) => {\n\t\te = yi(e, bi);\n\t\tlet r = Fi(e), i = n(e.relativeTo), a = Ai(e), o = Ui(e, 7), s = Pi(e);\n\t\treturn r === void 0 && s === void 0 && I(\"Required smallestUnit or largestUnit\"), s ??= 0, r ??= Math.max(s, t), qi(r, s), a = Gi(a, s, 1), a > 1 && s > 5 && r !== s && I(\"For calendar units with roundingIncrement > 1, use largestUnit = smallestUnit\"), [\n\t\t\tr,\n\t\t\ts,\n\t\t\ta,\n\t\t\to,\n\t\t\ti\n\t\t];\n\t})(n, r, e);\n\tif (!c && Math.max(r, i) <= 6) return pa(zo(((e, t, n, r, i) => {\n\t\tlet a = Ma(Vo(e), ka(n, r), i);\n\t\treturn {\n\t\t\t...ci,\n\t\t\t...Wo(a, t)\n\t\t};\n\t})(t, i, a, o, s)));\n\tlet l = c && To(c) && i >= 6 && a < 6;\n\tif (!t.sign && !l) return t;\n\tc || I(\"Missing relativeTo\");\n\tlet u = Co(c), d = u.G(u.i, t);\n\tEo(u, d);\n\tlet f = u.re(u.i, d, i);\n\treturn f = ja(f, u.V(d), i, a, o, s, u), pa(f);\n}\nfunction Fo(e) {\n\treturn e.sign === -1 ? Io(e) : e;\n}\nfunction Io(e) {\n\treturn pa(Lo(e));\n}\nfunction Lo(e) {\n\tlet t = {};\n\tfor (let n of ti) t[n] = -1 * e[n] || 0;\n\treturn t;\n}\nfunction Ro(e, t = ti) {\n\tlet n = 0;\n\tfor (let r of t) {\n\t\tlet t = Math.sign(e[r]);\n\t\tt && (n && n !== t && I(\"Cannot mix duration signs\"), n = t);\n\t}\n\treturn n;\n}\nfunction zo(e) {\n\tfor (let t of oi) Ot(t, e[t], -4294967295, 4294967295, 1);\n\tlet t = Vo(e);\n\treturn Bo(Number(t / Tn)), e;\n}\nfunction Bo(e) {\n\tNumber.isSafeInteger(e) || I(\"Out-of-bounds duration\");\n}\nfunction Vo(e) {\n\treturn BigInt(e.days) * On + Ho(e);\n}\nfunction Ho(e) {\n\treturn BigInt(e.hours) * Dn + BigInt(e.minutes) * En + Uo(e);\n}\nfunction Uo(e) {\n\treturn BigInt(e.seconds) * Tn + BigInt(e.milliseconds) * wn + BigInt(e.microseconds) * Cn + BigInt(e.nanoseconds);\n}\nfunction Wo(e, t = 6) {\n\tlet n = Number(e / On), r = Number(e % On), i = Sn[t], a = t <= 3 ? Number(e / BigInt(i)) : xn / i * n + tn(r, i);\n\tNumber.isFinite(a) || I(\"Out-of-bounds date\"), t <= 3 && Math.abs(a) / (vn / Sn[t]) >= jo && I(\"Out-of-bounds date\");\n\tlet o = Ao(r, t, ti);\n\treturn o[ti[t]] = a, o;\n}\nfunction Go(e, t = 5) {\n\treturn Ao(e, t, ti);\n}\nfunction Ko(e) {\n\treturn !!Ro(e, ai);\n}\nfunction qo(e) {\n\tlet t = 9;\n\tfor (; t > 0 && !e[ti[t]]; t--);\n\treturn t;\n}\nfunction Jo(e, t) {\n\treturn Xt(e.epochNanoseconds, t.epochNanoseconds);\n}\nfunction Yo(e, t) {\n\treturn Xt(e.epochNanoseconds, t.epochNanoseconds);\n}\nfunction Xo(e, t, n, r) {\n\tlet i = e(rt(r).relativeTo), a = Math.max(qo(t), qo(n));\n\tif (Lt(ti, t, n)) return 0;\n\tif (ko(a, i)) return Xt(Vo(t), Vo(n));\n\ti || I(\"Missing relativeTo\");\n\tlet o = Co(i);\n\treturn Xt(wo(o, t), wo(o, n));\n}\nfunction Zo(e, t) {\n\treturn Qo(e, t) || $o(e, t);\n}\nfunction Qo(e, t) {\n\treturn Yt(br(e), br(t));\n}\nfunction $o(e, t) {\n\treturn Yt(cr(e), cr(t));\n}\nfunction es(e, t) {\n\treturn !Jo(e, t);\n}\nfunction ts(e, t) {\n\treturn !Yo(e, t) && e.timeZone.o === t.timeZone.o && e.calendar === t.calendar;\n}\nfunction ns(e, t) {\n\treturn !Zo(e, t) && e.calendar === t.calendar;\n}\nfunction rs(e, t) {\n\treturn !Qo(e, t) && e.calendar === t.calendar;\n}\nfunction is(e, t) {\n\treturn !Qo(e, t) && e.calendar === t.calendar;\n}\nfunction as(e, t) {\n\treturn !Qo(e, t) && e.calendar === t.calendar;\n}\nfunction os(e, t) {\n\treturn !$o(e, t);\n}\nfunction ss(e) {\n\treturn e === 0 ? sn : e ? e.l : void 0;\n}\nfunction cs(e, t, n = t) {\n\treturn ss(e) ? n : t;\n}\nfunction ls(e, t) {\n\tlet n = e || void 0, r = ss(e), { era: i, eraYear: a, year: o } = t;\n\tif (o !== void 0 && (o = at(o, \"year\")), a !== void 0 && (a = at(a, \"eraYear\")), i !== void 0 || a !== void 0) {\n\t\ti !== void 0 && a !== void 0 || Et(\"Mismatching era/eraYear\"), r || I(\"Forbidden era/eraYear\");\n\t\tlet e = cn(i), t = r[e];\n\t\tt === void 0 && I(((e) => `Invalid era: ${e}`)(i));\n\t\tlet s = n?.te ? n.te(a, e, t) : fs(a, t);\n\t\to !== void 0 && o !== s && I(\"Mismatching year/eraYear\"), o = s;\n\t} else o === void 0 && Et(_t(r));\n\treturn o;\n}\nfunction us(e, t, n, r, i) {\n\tlet { month: a, monthCode: o } = t;\n\tif (o !== void 0) {\n\t\tlet t = ((e, t, n, r, i = dn(t)) => {\n\t\t\tlet a = e ? e.q(n) : void 0, [o, s] = i, c = pn(o, s, a);\n\t\t\tif (s) {\n\t\t\t\tlet t = e ? e.m : void 0;\n\t\t\t\tt === void 0 && I(vt), t > 0 ? (c > t && I(vt), a !== c && (r === 1 && I(vt), c = pn(o, 0, a))) : (c !== -t && I(vt), a === void 0 && r === 1 && I(vt));\n\t\t\t}\n\t\t\treturn c;\n\t\t})(e, o, n, r, i);\n\t\ta !== void 0 && a !== t && I(\"Mismatching month/monthCode\"), a = t, r = 1;\n\t} else a === void 0 && Et(\"Missing month/monthCode\");\n\treturn Ot(\"month\", a, 1, Gr(e, n), r);\n}\nfunction ds(e, t, n, r, i) {\n\treturn Dt(t, \"day\", 1, Kr(e, r, n), i);\n}\nfunction fs(e, t) {\n\treturn (t + e) * (Math.sign(t) || 1) || 0;\n}\nfunction ps(e, t) {\n\treturn sr(It(An, {\n\t\t...ir,\n\t\t...e\n\t}), t);\n}\nvar ms = /*@__PURE__*/ Ut(\"([+-])(\\\\d{2})(?::?(\\\\d{2})(?::?(\\\\d{2})(?:[.,](\\\\d{1,9}))?)?)?\");\nfunction hs(e) {\n\tlet t = gs(e);\n\treturn t === void 0 && I(St(e)), t;\n}\nfunction gs(e, t) {\n\tlet n = ms.exec(e);\n\tif (n && ((e) => ((e) => {\n\t\te[0] !== \"T\" && e[0] !== \"t\" || (e = e.slice(1));\n\t\tlet t = e.search(/[.,]/), n = t < 0 ? e : e.slice(0, t), r = n.split(\":\");\n\t\treturn r.length === 1 ? /^(?:\\d{2}|\\d{4}|\\d{6})$/i.test(n) : (r.length === 2 || r.length === 3) && r.every((e) => e.length === 2 && /^\\d{2}$/i.test(e));\n\t})(e.slice(1)))(n[0])) return ((e, t) => {\n\t\tlet n = e[4] || e[5];\n\t\treturn t && n && I(Ct(n)), r = (Kt(e[2]) * bn + Kt(e[3]) * yn + Kt(e[4]) * vn + Wt(e[5] || \"\")) * Gt(e[1]), Math.abs(r) >= 864e11 && I(\"Out-of-bounds offset\"), r;\n\t\tvar r;\n\t})(n, t);\n}\nvar _s = {\n\tera: gi,\n\tmonth: ot,\n\tmonthCode(e, t = \"monthCode\") {\n\t\treturn ((e, t) => {\n\t\t\tif (typeof e == \"string\") return e;\n\t\t\tif (e && typeof e == \"object\") {\n\t\t\t\tlet n = e.toString;\n\t\t\t\tif (typeof n == \"function\") return fi(n.call(e), t);\n\t\t\t}\n\t\t\treturn fi(e, t);\n\t\t})(e, t);\n\t},\n\tday: ot\n}, vs = /*@__PURE__*/ Pt(An, at), ys = /*@__PURE__*/ Pt(ti, vi), bs = { offset(e) {\n\treturn hs(gi(e));\n} }, xs = /*@__PURE__*/ Object.assign({}, _s, vs), Ss = /*@__PURE__*/ Object.assign({}, xs, bs);\nfunction Cs(e, t, n, r, i = !r) {\n\tlet a = {}, o = 0;\n\tfor (let i of t) {\n\t\tlet t = e[i];\n\t\tif (t !== void 0) {\n\t\t\to = 1;\n\t\t\tlet e = n[i];\n\t\t\te && (t = e(t, i)), a[i] = t;\n\t\t} else r && r.includes(i) && Et(ft(i));\n\t}\n\treturn i && !o && Et(pt(t)), a;\n}\nfunction ws(e, t = ir, n) {\n\tlet r = Xi(e, t);\n\treturn ia(r), ua(r, n);\n}\nfunction Ts(e, t, n) {\n\treturn Ds(e, t, ks(e, t), L(n));\n}\nfunction Es(e, t, n) {\n\tlet r = ks(e, t), i = n();\n\treturn [Ds(e, t, r, i[0]), ...i];\n}\nfunction Ds(e, t, n, r) {\n\tlet i = n[1], a = us(e, t, i, r, n[0]);\n\treturn da(ra(Wr(e, i, a, ds(e, t, a, i, r))), e);\n}\nfunction Os(e) {\n\tif (e.monthCode !== void 0) return dn(e.monthCode);\n}\nfunction ks(e, t) {\n\tlet n = ss(e);\n\treturn t.year !== void 0 || t.era !== void 0 && t.eraYear !== void 0 || Et(_t(n)), t.monthCode === void 0 && t.month === void 0 && Et(\"Missing month/monthCode\"), t.day === void 0 && Et(ft(\"day\")), [Os(t), ls(e, t)];\n}\nfunction As(e, t, n) {\n\tlet r = ss(e);\n\tt.year !== void 0 || t.era !== void 0 && t.eraYear !== void 0 || Et(_t(r)), t.monthCode === void 0 && t.month === void 0 && Et(\"Missing month/monthCode\");\n\tlet i = Os(t), a = ls(e, t);\n\treturn da(na(Wr(e, a, us(e, t, a, L(n), i), 1)), e);\n}\nfunction js(e, t, n) {\n\tlet r = e === void 0, i = ss(e);\n\tt.day === void 0 && Et(ft(\"day\")), r || t.month === void 0 || t.year !== void 0 || t.era !== void 0 && t.eraYear !== void 0 || Et(_t(i));\n\tlet a = Os(t), o = t.eraYear !== void 0 || t.year !== void 0 ? ls(e, t) : void 0, s = L(n), c, l, u;\n\tif (o === void 0 && r && (o = 1972), o !== void 0) {\n\t\tr || ra(Wr(e, o, 1, 1));\n\t\tlet n = us(e, t, o, s, a);\n\t\tc = ds(e, t, n, o, s), [l, u] = Hr(e, o, n);\n\t} else {\n\t\tt.monthCode === void 0 && Et(\"Missing month/monthCode\"), [l, u] = a;\n\t\tlet n = e ? e.ge : 1972;\n\t\tif (n !== void 0) c = ds(e, t, us(e, t, n, s, a), n, s);\n\t\telse {\n\t\t\tlet n = s === 0 && e ? e.ke?.(l, u, t.day) : void 0;\n\t\t\tc = n === void 0 ? t.day : n;\n\t\t}\n\t}\n\tu && ((e && e.Z?.[l]) ?? Infinity) < t.day && (s === 1 && I(vt), u = 0, c = wt(t.day, 1, (e && e.X) ?? Infinity));\n\tlet d = e ? e.v(l, !!u, c) : Tr(l, !!u);\n\tfor (; !d && s === 0 && c > 1;) c--, d = e ? e.v(l, !!u, c) : Tr(l, !!u);\n\td || I(\"Cannot guess year\");\n\tlet { year: f, month: p } = d;\n\treturn da(ra(Wr(e, f, p, c)), e);\n}\nvar Ms = Intl.DateTimeFormat;\nfunction Ns(e, t) {\n\tt < -864e13 && I(\"Out-of-bounds date\");\n\tlet n = e.formatToParts(t), r = {};\n\tfor (let e of n) r[e.type] = e.value;\n\treturn r;\n}\nvar Ps = {\n\tEl_Aaiun: 17,\n\tTucuman: 12,\n\tTirane: 11,\n\tRiga: 10,\n\tSimferopol: 9,\n\tVienna: 9,\n\tTunis: 8,\n\tBoa_Vista: 6,\n\tFortaleza: 6,\n\tMaceio: 6,\n\tNoronha: 6,\n\tRecife: 6,\n\tGaza: 6,\n\tHebron: 6,\n\tDeNoronha: 6\n}, Fs = -388152e4;\nfunction Is(e, t = 4) {\n\tlet n = ji(e);\n\treturn [Ui(e, 4), ...zs(Ki(bi, Pi(e), 0, t), n)];\n}\nfunction Ls(e) {\n\treturn Bi(rt(e));\n}\nfunction Rs(e, t) {\n\treturn Is(rt(e), t);\n}\nfunction zs(e, t) {\n\treturn e == null ? [t === void 0 ? 1 : 10 ** (9 - t), t] : [Sn[e], e < 4 ? 9 - 3 * e : -1];\n}\nfunction Bs(e, t, n) {\n\tlet [r, i, a, o] = ((e) => {\n\t\tlet t = ji(e = rt(e)), n = Ui(e, 4), r = Pi(e);\n\t\treturn [\n\t\t\te.timeZone,\n\t\t\tn,\n\t\t\t...zs(Ki(bi, r, 0, 4), t)\n\t\t];\n\t})(n), s = r !== void 0;\n\treturn ((e, t, n, r, i, a) => {\n\t\tn = Na(n, BigInt(i), r);\n\t\tlet o = t.C(n);\n\t\treturn Qs(Sr(n + BigInt(o)), a) + (e ? rc(Da(o)) : \"Z\");\n\t})(s, _c(s ? e(r) : \"UTC\"), t.epochNanoseconds, i, a, o);\n}\nfunction Vs(e, t) {\n\tlet n = ((e) => {\n\t\te = rt(e);\n\t\tlet t = Bi(e), n = ji(e), r = Hi(e), i = Ui(e, 4), a = Pi(e);\n\t\treturn [\n\t\t\tt,\n\t\t\tVi(e),\n\t\t\tr,\n\t\t\ti,\n\t\t\t...zs(Ki(bi, a, 0, 4), n)\n\t\t];\n\t})(t);\n\treturn ((e, t, n, r, i, a, o, s, c, l) => {\n\t\tr = Na(r, BigInt(c), s);\n\t\tlet u = n.C(r);\n\t\treturn Qs(Sr(r + BigInt(u)), l) + rc(Da(u), o) + ic(t, a) + ac(e, i);\n\t})(e.calendar, e.timeZone.id, e.timeZone, e.epochNanoseconds, ...n);\n}\nfunction Hs(e, t) {\n\tlet n = ((e) => (e = rt(e), [Bi(e), ...Is(e)]))(t);\n\treturn ((e, t, n, r, i, a) => Qs(Ta(t, i, r), a) + ac(e, n))(e.calendar, e, ...n);\n}\nfunction Us(e, t) {\n\treturn n = e.calendar, r = e, i = Ls(t), $s(r) + ac(n, i);\n\tvar n, r, i;\n}\nfunction Ws(e, t) {\n\treturn Ks(e.calendar, ec, e, Ls(t));\n}\nfunction Gs(e, t) {\n\treturn Ks(e.calendar, tc, e, Ls(t));\n}\nfunction Ks(e, t, n, r) {\n\treturn r === 1 ? e === void 0 ? t(n) : $s(n) : r > 1 || r === 0 && e !== void 0 ? $s(n) + oc(ln(e), r === 2) : t(n);\n}\nfunction qs(e, t) {\n\treturn ((e, t, n, r) => nc(Ea(e, n, t)[0], r))(e, ...Rs(t));\n}\nfunction Js(e, t) {\n\tlet [n, r, i] = Rs(t, 3);\n\treturn r > 1 && zo(e = {\n\t\t...e,\n\t\t...Aa(e, r, n)\n\t}), Ys(e, i);\n}\nfunction Ys(e, t) {\n\tlet { sign: n } = e, r = n === -1 ? Lo(e) : e, { hours: i, minutes: a } = r, o = Uo(r), s = Number(o / Tn), c = Number(o % Tn);\n\tBo(s);\n\tlet l = cc(c, t), u = t >= 0 || !n || l;\n\treturn (n < 0 ? \"-\" : \"\") + \"P\" + Xs({\n\t\tY: Zs(r.years),\n\t\tM: Zs(r.months),\n\t\tW: Zs(r.weeks),\n\t\tD: Zs(r.days)\n\t}) + (i || a || s || u ? \"T\" + Xs({\n\t\tH: Zs(i),\n\t\tM: Zs(a),\n\t\tS: Zs(s, u) + l\n\t}) : \"\");\n}\nfunction Xs(e) {\n\tlet t = [];\n\tfor (let n in e) {\n\t\tlet r = e[n];\n\t\tr && t.push(r, n);\n\t}\n\treturn t.join(\"\");\n}\nfunction Zs(e, t) {\n\tif (!e && !t) return \"\";\n\tlet n = Object.create(null);\n\treturn n.useGrouping = 0, e.toLocaleString(\"fullwide\", n);\n}\nfunction Qs(e, t) {\n\treturn $s(e) + \"T\" + nc(e, t);\n}\nfunction $s(e) {\n\treturn ec(e) + \"-\" + Jt(e.day);\n}\nfunction ec(e) {\n\tlet { year: t } = e;\n\treturn (t < 0 || t > 9999 ? lc(t) + qt(6, Math.abs(t)) : qt(4, t)) + \"-\" + Jt(e.month);\n}\nfunction tc(e) {\n\treturn Jt(e.month) + \"-\" + Jt(e.day);\n}\nfunction nc(e, t) {\n\tlet n = [Jt(e.hour), Jt(e.minute)];\n\treturn t !== -1 && n.push(Jt(e.second) + ((e, t, n, r) => cc(e * _n + t * gn + n, r))(e.millisecond, e.microsecond, e.nanosecond, t)), n.join(\":\");\n}\nfunction rc(e, t = 0) {\n\tif (t === 1) return \"\";\n\tlet [n, r] = $t(Math.abs(e), bn), [i, a] = $t(r, yn), [o, s] = $t(a, vn);\n\treturn lc(e) + Jt(n) + \":\" + Jt(i) + (o || s ? \":\" + Jt(o) + cc(s) : \"\");\n}\nfunction ic(e, t) {\n\treturn t === 1 ? \"\" : \"[\" + (t === 2 ? \"!\" : \"\") + e + \"]\";\n}\nfunction ac(e, t) {\n\treturn t > 1 || t === 0 && e !== void 0 ? oc(ln(e), t === 2) : \"\";\n}\nfunction oc(e, t) {\n\treturn \"[\" + (t ? \"!\" : \"\") + \"u-ca=\" + e + \"]\";\n}\nvar sc = /0+$/;\nfunction cc(e, t) {\n\tlet n = qt(9, e);\n\treturn n = t === void 0 ? n.replace(sc, \"\") : n.slice(0, t), n ? \".\" + n : \"\";\n}\nfunction lc(e) {\n\treturn e < 0 ? \"-\" : \"+\";\n}\nvar uc = /^(AC|AE|AG|AR|AS|BE|BS|CA|CN|CS|CT|EA|EC|IE|IS|JS|MI|NE|NS|PL|PN|PR|PS|SS|VS)T$/, dc = /[^\\w\\/:+-]+/;\nfunction fc(e) {\n\treturn pc(fi(e));\n}\nfunction pc(e) {\n\treturn mc(e).id;\n}\nfunction mc(e) {\n\tlet t = e.toUpperCase(), n = ((e) => {\n\t\tlet t = gs(e, 1);\n\t\tif (t !== void 0) return {\n\t\t\tid: rc(t),\n\t\t\t_: t,\n\t\t\to: t\n\t\t};\n\t})(t);\n\treturn n ? {\n\t\tkind: \"fixed\",\n\t\t...n\n\t} : hc(t === \"UTC\" ? \"UTC\" : ((e) => (dc.test(e) && I(xt(e)), uc.test(e) && I(\"Forbidden ICU TimeZone\"), e.toLowerCase().split(\"/\").map((e, t) => (e.length <= 3 || /\\d/.test(e)) && !/etc|yap/.test(e) ? e.toUpperCase() : e.replace(/baja|dumont|[a-z]+/g, (e, n) => e.length <= 2 && !t || e === \"in\" || e === \"chat\" ? e.toUpperCase() : e.length > 2 || !n ? Vt(e).replace(/island|noronha|murdo|rivadavia|urville/, Vt) : e)).join(\"/\")))(e));\n}\nvar hc = /*@__PURE__*/ kt((e) => {\n\tif (e === \"UTC\") return {\n\t\tkind: \"utc\",\n\t\tid: e,\n\t\to: e\n\t};\n\tlet t = gc(e.toUpperCase());\n\treturn {\n\t\tkind: \"named\",\n\t\tid: e,\n\t\tformat: t,\n\t\to: t.resolvedOptions().timeZone\n\t};\n}), gc = /*@__PURE__*/ kt((e) => new Ms(\"en-u-hc-h23\", {\n\tcalendar: \"iso8601\",\n\ttimeZone: e,\n\tera: \"short\",\n\tyear: \"numeric\",\n\tmonth: \"numeric\",\n\tday: \"numeric\",\n\thour: \"numeric\",\n\tminute: \"numeric\",\n\tsecond: \"numeric\"\n}));\nfunction _c(e) {\n\tlet t = mc(e);\n\treturn vc(t.id, t);\n}\nvar vc = /*@__PURE__*/ kt((e, t) => t.kind === \"named\" ? new bc(e, t.o, t.format) : new yc(e, t.o, t.kind === \"fixed\" ? t._ : 0)), yc = class {\n\tconstructor(e, t, n) {\n\t\tthis.id = e, this.o = t, this._ = n;\n\t}\n\tC() {\n\t\treturn this._;\n\t}\n\tR(e) {\n\t\treturn [sa(e, this._)];\n\t}\n\tU() {}\n}, bc = class {\n\tconstructor(e, t, n) {\n\t\tthis.id = e, this.o = t, this.qe = ((e, t) => {\n\t\t\tlet n = kt(e), r = kt(Sc), i = 86400 * t;\n\t\t\tfunction a(e) {\n\t\t\t\tlet [t, a] = Cc(e, i), s = wc(t), c = wc(a), l = n(s), u = n(c);\n\t\t\t\treturn l === u ? l : o(r(s, c), l, u, e);\n\t\t\t}\n\t\t\tfunction o(t, n, r, i) {\n\t\t\t\tlet a, o;\n\t\t\t\tfor (; (i === void 0 || (a = i < t[0] ? n : i >= t[1] ? r : void 0) === void 0) && (o = t[1] - t[0]);) {\n\t\t\t\t\tlet n = t[0] + Math.floor(o / 2);\n\t\t\t\t\te(n) === r ? t[1] = n : t[0] = n + 1;\n\t\t\t\t}\n\t\t\t\treturn a;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tEe(e) {\n\t\t\t\t\tlet t = a(e - 86400), n = a(e + 86400), r = e - t, i = e - n;\n\t\t\t\t\tif (t === n) return [r];\n\t\t\t\t\tlet o = a(r);\n\t\t\t\t\treturn o === a(i) ? [e - o] : t > n ? [r, i] : [];\n\t\t\t\t},\n\t\t\t\tDe: a,\n\t\t\t\tU: function e(t, a) {\n\t\t\t\t\tif (a > 0 && t >= 864e10) return;\n\t\t\t\t\tif (a < 0) {\n\t\t\t\t\t\tif (t <= Fs) return;\n\t\t\t\t\t\tlet n = xc() + 94867200;\n\t\t\t\t\t\tif (t > n) return e(n, -1);\n\t\t\t\t\t}\n\t\t\t\t\tlet [s, c] = Cc(a > 0 ? Math.max(t, Fs) : t, i), l = i * a, u = a > 0 ? Math.max(t, xc()) + 94867200 : Fs, d = () => a < 0 ? c > u : s < u;\n\t\t\t\t\tfor (; d();) {\n\t\t\t\t\t\tlet e = wc(s), i = wc(c), u = n(e), d = n(i);\n\t\t\t\t\t\tif (u !== d) {\n\t\t\t\t\t\t\tlet n = r(e, i);\n\t\t\t\t\t\t\to(n, u, d);\n\t\t\t\t\t\t\tlet s = n[0];\n\t\t\t\t\t\t\tif ((Yt(s, t) || 1) === a) return s;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += l, c += l;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t})(((e) => (t) => {\n\t\t\tlet n = Ns(e, 1e3 * t);\n\t\t\treturn 86400 * xr(((e) => {\n\t\t\t\tlet t = e.relatedYear;\n\t\t\t\tif (t !== void 0) return parseInt(t);\n\t\t\t\tlet n = parseInt(e.year);\n\t\t\t\treturn e.era !== void 0 && cn(e.era) === \"bce\" ? 1 - n : n;\n\t\t\t})(n), parseInt(n.month), parseInt(n.day)) + 3600 * parseInt(n.hour) + 60 * parseInt(n.minute) + parseInt(n.second) - t;\n\t\t})(n), ((e) => Ps[e.split(\"/\").pop()] || 60)(e));\n\t}\n\tC(e) {\n\t\treturn this.qe.De(((e) => hr(e)[0])(e)) * vn;\n\t}\n\tR(e) {\n\t\tlet t = 86400 * br(e) + ur(e), n = dr(e);\n\t\treturn this.qe.Ee(t).map((e) => oa(BigInt(e) * Tn + BigInt(n)));\n\t}\n\tU(e, t) {\n\t\tlet [n, r] = hr(e), i = this.qe.U(n + (t > 0 || r ? 1 : 0), t);\n\t\tif (i !== void 0) return BigInt(i) * Tn;\n\t}\n};\nfunction xc() {\n\treturn Math.floor(Date.now() / 1e3);\n}\nfunction Sc(e, t) {\n\treturn [e, t];\n}\nfunction Cc(e, t) {\n\tlet n = Math.floor(e / t) * t;\n\treturn [n, n + t];\n}\nfunction wc(e) {\n\treturn wt(e, -1e10, 864e10);\n}\nfunction Tc(e, t, n) {\n\tlet r = Cs(n, cs(t, er, tr), Ss, [], 0);\n\tif (r.timeZone !== void 0) {\n\t\tlet n = Ts(t, r), i = ps(r), a = _c(e(r.timeZone));\n\t\treturn {\n\t\t\tepochNanoseconds: Ua(a, Xi(n, i), r.offset),\n\t\t\ttimeZone: a,\n\t\t\tcalendar: t\n\t\t};\n\t}\n\treturn Ts(t, r);\n}\nfunction Ec(e, t, n, r) {\n\tlet i = Cs(n, cs(t, er, tr), Ss, In, 0), a = e(i.timeZone), [o, s, c, l] = Es(t, i, () => Zi(r)), u = ps(i, s), d = _c(a);\n\treturn la(Ua(d, Xi(o, u), i.offset, c, l), d, t);\n}\nfunction Dc(e, t, n) {\n\tlet r = Cs(t, cs(e, Xn, Zn), xs, [], 0), [i, a] = Es(e, r, () => [L(n)]);\n\treturn ws(i, ps(r, a), e);\n}\nfunction Oc(e, t, n, r = []) {\n\treturn Ts(e, Cs(t, cs(e, Jn, Yn), _s, r), n);\n}\nfunction kc(e, t, n, r) {\n\treturn As(e, Cs(t, cs(e, Un, Wn), _s, r), n);\n}\nfunction Ac(e, t, n, r) {\n\tlet i = Cs(n, cs(e, Jn, Yn), _s, Nn, 0);\n\treturn t && i.month !== void 0 && i.monthCode === void 0 && i.year === void 0 && (i.year = 1972), js(e, i, r);\n}\nfunction jc(e, t) {\n\treturn ps(Cs(e, Vn, vs, [], 1), L(t));\n}\nfunction Mc(e) {\n\tlet t = Cs(e, ri, ys);\n\treturn pa(zo({\n\t\t...ci,\n\t\t...t\n\t}));\n}\nfunction Nc(e) {\n\tI(St(e));\n}\nfunction Pc(e) {\n\tlet t = cl(e = gi(e)), n;\n\treturn t || Nc(e), t.F ? n = 0 : t.offset ? n = hs(t.offset) : Nc(e), t.timeZoneId && gs(t.timeZoneId, 1), Lr(t), ca(sa(t, n));\n}\nfunction Fc(e, t) {\n\tlet n = cl(fi(e));\n\treturn n || Nc(e), n.timeZoneId ? Xc(n, t, void 0) : (n.F && Nc(e), Qc(n, t));\n}\nfunction Ic(e, t, n) {\n\tlet r = cl(fi(e));\n\treturn r && r.timeZoneId || Nc(e), Xc(r, t, n);\n}\nfunction Lc(e, t) {\n\tlet n = cl(fi(e));\n\treturn n && !n.F || Nc(e), Zc(n, t);\n}\nfunction Rc(e, t) {\n\tlet n = qc(Kc(fi(e)), void 0, t);\n\treturn da(n, n.calendar);\n}\nfunction zc(e, t) {\n\tlet n = ll(fi(e));\n\tif (n) return Bc(n), da(na(Rr(n)), t(n.calendarId));\n\tlet r = qc(Kc(e), Jc, t), { calendar: i } = r;\n\treturn da(Za(i, r), i);\n}\nfunction Bc(e) {\n\te.calendarId !== \"iso8601\" && I(Ct(e.calendarId));\n}\nfunction Vc(e, t) {\n\tlet n = ul(fi(e));\n\tif (n) return Bc(n), da(Rr(n), t(n.calendarId));\n\tlet r = qc(Kc(e), Yc, t), { calendar: i } = r, { year: a, month: o, day: s } = Vr(i, r), [c, l] = Hr(i, a, o), { year: u, month: d } = ((e, t, n, r) => {\n\t\tlet i = e ? e.v(t, n, r) : Tr(t, n);\n\t\treturn i || I(\"Cannot guess year\"), i;\n\t})(i, c, l, s);\n\treturn da(ra(Wr(i, u, d, s)), i);\n}\nfunction Hc(e) {\n\tlet t = ((e) => {\n\t\tlet t = dl(e);\n\t\treturn t ? (ml(t[13]), fl(t, 1)) : void 0;\n\t})(e = fi(e)), n;\n\treturn t || (t = cl(e), t ? (t.fe || Nc(e), t.F && I(Ct(\"Z\")), Bc(t)) : Nc(e)), (n = ll(e)) && zr(n) && Nc(e), (n = ul(e)) && zr(n) && Nc(e), fa(ar(t));\n}\nfunction Uc(e) {\n\tlet t = ((e) => {\n\t\tlet t = sl.exec(e);\n\t\treturn t ? ((e) => {\n\t\t\tlet t = 0, n = 0, r = 0, i = {\n\t\t\t\tyears: a(e[2]),\n\t\t\t\tmonths: a(e[3]),\n\t\t\t\tweeks: a(e[4]),\n\t\t\t\tdays: a(e[5]),\n\t\t\t\thours: a(e[6], e[7], 5),\n\t\t\t\tminutes: a(e[8], e[9], 4),\n\t\t\t\tseconds: a(e[10], e[11], 3),\n\t\t\t\t...Ao(r, 2, ti)\n\t\t\t};\n\t\t\treturn t || I(pt(ti)), Gt(e[1]) < 0 && (i = Lo(i)), i;\n\t\t\tfunction a(e, i, a) {\n\t\t\t\tlet o = 0, s = 0;\n\t\t\t\treturn a && ([o, r] = $t(r, Sn[a])), e !== void 0 && (n && I(Ct(e)), s = ((e) => {\n\t\t\t\t\tlet t = parseInt(e);\n\t\t\t\t\treturn Number.isFinite(t) || I(Ct(e)), t;\n\t\t\t\t})(e), t = 1, i && (r = Wt(i) * (Sn[a] / vn), n = 1)), o + s;\n\t\t\t}\n\t\t})(t) : void 0;\n\t})(fi(e));\n\treturn t || Nc(e), pa(zo(t));\n}\nfunction Wc(e) {\n\tlet t = cl(e) || ll(e) || ul(e);\n\tif (t) return t.calendarId;\n\tlet n = dl(e);\n\treturn n ? ml(n[13]).calendarId : e;\n}\nfunction Gc(e) {\n\tlet t = cl(e);\n\treturn t && (t.timeZoneId || t.F && \"UTC\" || t.offset) || e;\n}\nfunction Kc(e) {\n\tlet t = cl(e);\n\treturn t && !t.F || Nc(e), t;\n}\nfunction qc(e, t, n) {\n\treturn t && e.calendarId === \"iso8601\" ? (Rr(e), e.fe && ar(e), Qc(t(e), n)) : e.fe ? Zc(e, n) : Qc(e, n);\n}\nfunction Jc(e) {\n\tlet t = 12 * e.year + e.month === ta ? 20 : 1;\n\treturn {\n\t\t...e,\n\t\tday: t\n\t};\n}\nfunction Yc(e) {\n\treturn {\n\t\t...e,\n\t\tyear: 1972\n\t};\n}\nfunction Xc(e, t, n) {\n\tlet r = _c(pc(e.timeZoneId)), i;\n\tif (Lr(e), e.fe) {\n\t\tlet t = e.offset ? hs(e.offset) : void 0, [, o, s] = Zi(n);\n\t\ti = Ua(r, e, t, o, s, !(r._ || e.offset === void 0 || (a = e.offset, a.replace(/\\D/g, \"\").length > 4)), e.F);\n\t} else Zi(n), i = Ga(r, e);\n\tvar a;\n\treturn oa(i), la(i, r, t(e.calendarId));\n}\nfunction Zc(e, t) {\n\treturn Lr(e), ia(e), {\n\t\t...Xi(e, e),\n\t\tcalendar: t(e.calendarId)\n\t};\n}\nfunction Qc(e, t) {\n\treturn Rr(e), ra(e), {\n\t\tcalendar: t(e.calendarId),\n\t\tyear: e.year,\n\t\tmonth: e.month,\n\t\tday: e.day\n\t};\n}\nfunction $c(e) {\n\treturn `(\\\\d{2})(?:(:?)(\\\\d{2})(?:\\\\${e}(\\\\d{2})(?:[.,](\\\\d{1,9}))?)?)?`;\n}\nfunction el(e) {\n\treturn \"([+-])\" + $c(e);\n}\nvar tl = \"(?:(?:([+-])(\\\\d{6}))|(\\\\d{4}))(-?)(\\\\d{2})\\\\4(\\\\d{2})(?:[T ]\" + $c(8) + \"(Z|\" + el(15) + \")?)?\", nl = /*@__PURE__*/ Ut(\"(?:(?:([+-])(\\\\d{6}))|(\\\\d{4}))-?(\\\\d{2})((?:\\\\[(!?)([^\\\\]]*)\\\\]){0,9})\"), rl = /*@__PURE__*/ Ut(\"(?:--)?(\\\\d{2})-?(\\\\d{2})((?:\\\\[(!?)([^\\\\]]*)\\\\]){0,9})\"), il = /*@__PURE__*/ Ut(tl + \"((?:\\\\[(!?)([^\\\\]]*)\\\\]){0,9})\"), al = /*@__PURE__*/ Ut(\"T?\" + $c(2) + `(${el(9)})?((?:\\\\[(!?)([^\\\\]]*)\\\\]){0,9})`), ol = /*@__PURE__*/ RegExp(\"\\\\[(!?)([^\\\\]]*)\\\\]\", \"g\"), sl = /*@__PURE__*/ Ut(\"([+-])?P(\\\\d+Y)?(\\\\d+M)?(\\\\d+W)?(\\\\d+D)?(?:T(?:(\\\\d+)(?:[.,](\\\\d{1,9}))?H)?(?:(\\\\d+)(?:[.,](\\\\d{1,9}))?M)?(?:(\\\\d+)(?:[.,](\\\\d{1,9}))?S)?)?\");\nfunction cl(e) {\n\tlet t = il.exec(e);\n\treturn t ? ((e) => {\n\t\tlet t = e[12], n = (t || \"\").toUpperCase() === \"Z\";\n\t\treturn {\n\t\t\tyear: pl(e),\n\t\t\tmonth: parseInt(e[5]),\n\t\t\tday: parseInt(e[6]),\n\t\t\t...fl(e, 7),\n\t\t\t...ml(e[19]),\n\t\t\tfe: !!e[7],\n\t\t\tF: n,\n\t\t\toffset: n ? void 0 : t\n\t\t};\n\t})(t) : void 0;\n}\nfunction ll(e) {\n\tlet t = nl.exec(e);\n\tif (t) return ((e) => ({\n\t\tyear: pl(e),\n\t\tmonth: parseInt(e[4]),\n\t\tday: 1,\n\t\t...ml(e[5])\n\t}))(t);\n}\nfunction ul(e) {\n\tlet t = rl.exec(e);\n\treturn t ? ((e) => ({\n\t\tyear: 1972,\n\t\tmonth: parseInt(e[1]),\n\t\tday: parseInt(e[2]),\n\t\t...ml(e[3])\n\t}))(t) : void 0;\n}\nfunction dl(e) {\n\tlet t = al.exec(e);\n\tif (t) return t[6] && hs(t[6]), t;\n}\nfunction fl(e, t) {\n\tlet n = Kt(e[t + 3]);\n\treturn {\n\t\t...fr(Wt(e[t + 4] || \"\"))[0],\n\t\thour: Kt(e[t]),\n\t\tminute: Kt(e[t + 2]),\n\t\tsecond: n === 60 ? 59 : n\n\t};\n}\nfunction pl(e) {\n\tlet t = Gt(e[1]), n = parseInt(e[2] || e[3]);\n\treturn t < 0 && !n && I(Ct(-0)), t * n;\n}\nfunction ml(e) {\n\tlet t, n, r = [];\n\treturn e.replace(ol, (e, i, a) => {\n\t\tlet o = !!i, [s, c] = a.split(\"=\").reverse();\n\t\treturn c ? c === \"u-ca\" ? (r.push(s.toLowerCase()), t ||= o) : (o || /[A-Z]/.test(c)) && I(Ct(e)) : (n && I(Ct(e)), n = s), \"\";\n\t}), r.length > 1 && t && I(Ct(e)), {\n\t\ttimeZoneId: n,\n\t\tcalendarId: r[0] || \"iso8601\"\n\t};\n}\nfunction hl(e, t, n) {\n\tlet r = Object.assign(Object.create(null), t);\n\treturn gl(r, n, zn), ss(e) && (gl(r, n, Rn), e && e.le && gl(r, n, Bn, Ln)), r;\n}\nfunction gl(e, t, n, r) {\n\tlet i = 0, a = [];\n\tfor (let e of n) t[e] === void 0 ? a.push(e) : i = 1;\n\tif (Object.assign(e, t), i) for (let t of r || a) delete e[t];\n}\nfunction _l(e, t, n) {\n\tlet { calendar: r, timeZone: i } = e, a = cs(r, Qn, $n), o = Va(e), { year: s, month: c, day: l } = Vr(r, o), u = {\n\t\tyear: s,\n\t\tmonthCode: wl(r, s, c),\n\t\tday: l,\n\t\thour: o.hour,\n\t\tminute: o.minute,\n\t\tsecond: o.second,\n\t\tmillisecond: o.millisecond,\n\t\tmicrosecond: o.microsecond,\n\t\tnanosecond: o.nanosecond,\n\t\toffset: o.offsetNanoseconds\n\t}, d = Cs(t, a, Ss), f = hl(r, u, d), p = {\n\t\t...u,\n\t\t...d\n\t}, [m, h, g, _] = Es(r, f, () => Zi(n, 2));\n\treturn la(Ua(i, Xi(m, sr(p, h)), p.offset, g, _), i, r);\n}\nfunction vl(e, t, n) {\n\tlet { calendar: r } = e, i = cs(r, Xn, Zn), { year: a, month: o, day: s } = Vr(r, e), c = {\n\t\tyear: a,\n\t\tmonthCode: wl(r, a, o),\n\t\tday: s,\n\t\thour: e.hour,\n\t\tminute: e.minute,\n\t\tsecond: e.second,\n\t\tmillisecond: e.millisecond,\n\t\tmicrosecond: e.microsecond,\n\t\tnanosecond: e.nanosecond\n\t}, l = Cs(t, i, xs), u = hl(r, c, l), d = {\n\t\t...c,\n\t\t...l\n\t}, [f, p] = Es(r, u, () => [L(n)]);\n\treturn ws(f, sr(d, p), r);\n}\nfunction yl(e, t, n) {\n\tlet { calendar: r } = e, i = cs(r, Jn, Yn), { year: a, month: o, day: s } = Vr(r, e);\n\treturn Ts(r, hl(r, {\n\t\tyear: a,\n\t\tmonthCode: wl(r, a, o),\n\t\tday: s\n\t}, Cs(t, i, _s)), n);\n}\nfunction bl(e, t, n) {\n\tlet { calendar: r } = e, i = cs(r, Un, Wn), { year: a, month: o } = Vr(r, e);\n\treturn As(r, hl(r, {\n\t\tyear: a,\n\t\tmonthCode: wl(r, a, o)\n\t}, Cs(t, i, _s)), n);\n}\nfunction xl(e, t, n) {\n\tlet { calendar: r } = e, i = cs(r, Jn, Yn), { year: a, month: o, day: s } = Vr(r, e);\n\treturn js(r, hl(r, {\n\t\tmonthCode: wl(r, a, o),\n\t\tday: s\n\t}, Cs(t, i, _s)), n);\n}\nfunction Sl(e, t, n) {\n\treturn ((e, t, n) => ps({\n\t\t...It(Vn, e),\n\t\t...Cs(t, Vn, vs)\n\t}, L(n)))(e, t, n);\n}\nfunction Cl(e, t) {\n\treturn pa((n = e, r = t, zo({\n\t\t...n,\n\t\t...Cs(r, ri, ys)\n\t})));\n\tvar n, r;\n}\nfunction wl(e, t, n) {\n\tlet [r, i] = Hr(e, t, n);\n\treturn fn(r, i);\n}\nfunction Tl(e, t, n) {\n\treturn la(e.epochNanoseconds, t, n);\n}\nfunction El(e) {\n\treturn ca(e.epochNanoseconds);\n}\nfunction Dl(e) {\n\treturn ua(Va(e), e.calendar);\n}\nfunction Ol(e) {\n\treturn da(Va(e), e.calendar);\n}\nfunction kl(e) {\n\treturn fa(Va(e));\n}\nfunction Al(e, t, n) {\n\treturn la(oa(((e, t, n) => Wa(e, t, ((e) => Ri(rt(e)))(n)))(t, e, n)), t, e.calendar);\n}\nfunction jl(e, t, n, r) {\n\tlet i = e(r.timeZone), a = r.plainTime, o = a === void 0 ? void 0 : t(a), s = _c(i), c;\n\treturn c = o ? Wa(s, Xi(n, o)) : Ga(s, Xi(n, ir)), la(c, s, n.calendar);\n}\nfunction Ml(e, t, n) {\n\treturn Il(e, It(cs(e, Gn, Kn), t), Cs(ut(n), Nn, _s, []));\n}\nfunction Nl(e, t, n) {\n\tlet r = cs(e, Mn, Hn);\n\treturn Il(e, It(qn, t), Cs(ut(n), r, _s, []));\n}\nfunction Pl(e, t) {\n\treturn js(e, Cs(t, qn, _s));\n}\nfunction Fl(e, t, n) {\n\treturn As(e, Cs(t, cs(e, Gn, Kn), _s), n);\n}\nfunction Il(e, t, n) {\n\tlet r = cs(e, nr, rr), i = hl(e, t, n);\n\treturn i = Cs(i, r, _s, []), Ts(e, i);\n}\nfunction Ll(e) {\n\treturn ca(oa(BigInt(vi(e)) * wn));\n}\nfunction Rl(e) {\n\treturn ca(oa(_i(e)));\n}\nfunction zl(e) {\n\treturn e.timeZone = \"UTC\", [\"full\", \"long\"].includes(e.timeStyle) && (e.timeStyle = \"medium\"), e;\n}\nfunction Bl(e, t) {\n\treturn e.timeZone !== void 0 && Et(\"Cannot specify TimeZone\"), e.timeZone = t, e;\n}\nfunction Vl(e, t, n) {\n\tlet r = e.resolvedOptions().calendar;\n\t!n && t.calendar === void 0 || ln(t.calendar) === r || I(\"Mismatching Calendars\");\n}\nfunction Hl(e, t, n, r, i) {\n\tlet a = new Set(e), o = new Set(t), s = new Set(n);\n\treturn (e, t) => {\n\t\tlet n = ((e, t, n, r) => {\n\t\t\tlet i = {\n\t\t\t\tdateStyle: void 0,\n\t\t\t\ttimeStyle: void 0,\n\t\t\t\tme: {},\n\t\t\t\tpe: {},\n\t\t\t\txe: {},\n\t\t\t\toe: 0,\n\t\t\t\tue: 0\n\t\t\t};\n\t\t\tfor (let a of Object.keys(e)) {\n\t\t\t\tlet o = e[a];\n\t\t\t\to === void 0 || r.has(a) || (t.has(a) ? a === \"dateStyle\" ? i.dateStyle = o : a === \"timeStyle\" ? i.timeStyle = o : i.me[a] = o : a === \"era\" ? i.pe[a] = o : n.has(a) ? a === \"dateStyle\" || a === \"timeStyle\" ? i.ue = 1 : i.oe = 1 : i.xe[a] = o);\n\t\t\t}\n\t\t\treturn i;\n\t\t})(e, a, o, s), c = n.dateStyle !== void 0, l = n.timeStyle !== void 0, u = c || l, d = Object.keys(n.me).length > 0, f = n.oe || n.ue, p = d || c || l, m = Object.keys(n.pe).length > 0, h = d || m || n.oe;\n\t\t(!t && f || t && f && !p || u && h) && Et(\"Invalid formatting options\");\n\t\tlet g = {};\n\t\treturn u || p || Object.assign(g, r), Object.assign(g, n.me, n.pe, n.xe), c && (i ? Object.assign(g, i[n.dateStyle]) : g.dateStyle = n.dateStyle), l && (g.timeStyle = n.timeStyle), g;\n\t};\n}\nvar Ul = {\n\tyear: \"numeric\",\n\tmonth: \"numeric\",\n\tday: \"numeric\"\n}, Wl = {\n\thour: \"numeric\",\n\tminute: \"numeric\",\n\tsecond: \"numeric\"\n}, Gl = /*@__PURE__*/ Object.assign({}, Ul, Wl), Kl = /*@__PURE__*/ Object.assign({}, Gl, { timeZoneName: \"short\" }), ql = {\n\tyear: \"numeric\",\n\tmonth: \"numeric\"\n}, Jl = {\n\tmonth: \"numeric\",\n\tday: \"numeric\"\n}, Yl = [\n\t\"weekday\",\n\t\"year\",\n\t\"month\",\n\t\"day\",\n\t\"dateStyle\"\n], Xl = [\n\t\"dayPeriod\",\n\t\"hour\",\n\t\"minute\",\n\t\"second\",\n\t\"fractionalSecondDigits\",\n\t\"timeStyle\"\n], Zl = /*@__PURE__*/ Yl.concat(Xl), Ql = /*@__PURE__*/ [\"weekday\", \"day\"].concat(Xl), $l = /*@__PURE__*/ [\"weekday\", \"year\"].concat(Xl), eu = /*@__PURE__*/ Hl(Zl, [], [], Gl), tu = /*@__PURE__*/ Hl(Zl, [], [], Kl), nu = /*@__PURE__*/ Hl(Zl, [], [\"timeZoneName\"], Gl), ru = /*@__PURE__*/ Hl(Yl, Xl, [\"timeZoneName\"], Ul), iu = /*@__PURE__*/ Hl(Xl, Yl, [\"timeZoneName\", \"era\"], Wl), au = /*@__PURE__*/ Hl([\n\t\"year\",\n\t\"month\",\n\t\"dateStyle\"\n], Ql, [\"timeZoneName\"], ql, {\n\tfull: {\n\t\tyear: \"numeric\",\n\t\tmonth: \"long\"\n\t},\n\tlong: {\n\t\tyear: \"numeric\",\n\t\tmonth: \"long\"\n\t},\n\tmedium: {\n\t\tyear: \"numeric\",\n\t\tmonth: \"short\"\n\t},\n\tshort: {\n\t\tyear: \"2-digit\",\n\t\tmonth: \"numeric\"\n\t}\n}), ou = /*@__PURE__*/ Hl([\n\t\"month\",\n\t\"day\",\n\t\"dateStyle\"\n], $l, [\"timeZoneName\", \"era\"], Jl, {\n\tfull: {\n\t\tmonth: \"long\",\n\t\tday: \"numeric\"\n\t},\n\tlong: {\n\t\tmonth: \"long\",\n\t\tday: \"numeric\"\n\t},\n\tmedium: {\n\t\tmonth: \"short\",\n\t\tday: \"numeric\"\n\t},\n\tshort: {\n\t\tmonth: \"numeric\",\n\t\tday: \"numeric\"\n\t}\n});\nfunction su(e, t) {\n\tlet { timeZone: n } = e, r = Va(e), { offsetNanoseconds: i } = r, a = t || ir, o;\n\treturn o = t ? Ua(n, Xi(r, a), i, 2) : Ga(n, Xi(r, a)), la(o, n, e.calendar);\n}\nfunction cu(e) {\n\tlet t = lu(), n = e.C(t);\n\treturn Sr(t + BigInt(n));\n}\nfunction lu() {\n\treturn BigInt(Date.now()) * wn;\n}\nfunction uu() {\n\treturn new Ms().resolvedOptions().timeZone;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/temporal-polyfill@1.0.1/node_modules/temporal-polyfill/chunks/apiHelpers.js\nvar du = \"PlainYearMonth\", fu = \"PlainMonthDay\", pu = \"PlainDate\", mu = \"PlainDateTime\", hu = \"PlainTime\", gu = \"ZonedDateTime\", _u = \"Instant\", vu = \"Duration\";\nfunction yu(e, t, n, ...r) {\n\tObject.defineProperties(t, At(e)), Object.defineProperties(t.prototype, Mt(\"Temporal.\" + e));\n\tfor (let e of r) bu(t.prototype, n, e);\n\treturn t;\n}\nfunction bu(e, t, n) {\n\tObject.defineProperties(e, Nt((e) => ({\n\t\tget() {\n\t\t\treturn e(t(this));\n\t\t},\n\t\tconfigurable: 1\n\t}), n));\n}\nvar xu = Bt.name === \"noop\" ? (e) => {\n\tObject.defineProperty(e, \"_str_\", { value: e.toJSON() });\n} : Bt;\nfunction Su() {\n\tEt(gt);\n}\nfunction Cu() {\n\tEt(ht);\n}\nvar wu = {\n\tera(e) {\n\t\treturn Ur(e.calendar, e).era;\n\t},\n\teraYear(e) {\n\t\treturn Ur(e.calendar, e).eraYear;\n\t},\n\tyear(e) {\n\t\treturn Vr(e.calendar, e).year;\n\t},\n\tmonth(e) {\n\t\treturn Vr(e.calendar, e).month;\n\t},\n\tmonthCode(e) {\n\t\treturn qr(e.calendar, e);\n\t}\n}, Tu = {\n\tera(e) {\n\t\treturn Ur(e.calendar, e).era;\n\t},\n\teraYear(e) {\n\t\treturn Ur(e.calendar, e).eraYear;\n\t},\n\tyear(e) {\n\t\treturn Vr(e.calendar, e).year;\n\t},\n\tmonth(e) {\n\t\treturn Vr(e.calendar, e).month;\n\t},\n\tmonthCode(e) {\n\t\treturn qr(e.calendar, e);\n\t},\n\tday(e) {\n\t\treturn Vr(e.calendar, e).day;\n\t}\n}, Eu = {\n\tmonthCode(e) {\n\t\treturn qr(e.calendar, e);\n\t},\n\tday(e) {\n\t\treturn Vr(e.calendar, e).day;\n\t}\n}, Du = {\n\tdaysInMonth(e) {\n\t\treturn Xr(e.calendar, e);\n\t},\n\tdaysInYear(e) {\n\t\treturn Zr(e.calendar, e);\n\t},\n\tmonthsInYear(e) {\n\t\treturn Yr(e.calendar, e);\n\t},\n\tinLeapYear(e) {\n\t\treturn Jr(e.calendar, e);\n\t}\n}, Ou = {\n\tdayOfWeek(e) {\n\t\treturn Mr(e);\n\t},\n\tdayOfYear(e) {\n\t\treturn Qr(e.calendar, e);\n\t},\n\tweekOfYear(e) {\n\t\treturn $r(e.calendar, e);\n\t},\n\tyearOfWeek(e) {\n\t\treturn ei(e.calendar, e);\n\t},\n\tdaysInWeek() {\n\t\treturn 7;\n\t},\n\tdaysInMonth(e) {\n\t\treturn Xr(e.calendar, e);\n\t},\n\tdaysInYear(e) {\n\t\treturn Zr(e.calendar, e);\n\t},\n\tmonthsInYear(e) {\n\t\treturn Yr(e.calendar, e);\n\t},\n\tinLeapYear(e) {\n\t\treturn Jr(e.calendar, e);\n\t}\n};\nfunction ku(e) {\n\treturn Ft(Object.keys(e));\n}\nku(Du), ku(Ou);\n//#endregion\n//#region ../../node_modules/.pnpm/temporal-polyfill@1.0.1/node_modules/temporal-polyfill/chunks/classApi-basic.js\nfunction Au(e) {\n\tlet t = fi(e).toLowerCase();\n\treturn t === \"iso8601\" ? void 0 : t === \"gregory\" ? 0 : void I(bt(e, \"temporal-polyfill/full\"));\n}\nfunction ju(e = on) {\n\treturn Au(e);\n}\nvar Mu = /*@__PURE__*/ new WeakMap(), Nu = /*@__PURE__*/ yu(gu, class {\n\tconstructor(e, t, n = void 0) {\n\t\tlet r = oa(_i(e)), i = _c(fc(t)), a = ju(n);\n\t\tRu(this, la(r, i, a));\n\t}\n\tstatic from(e, t = void 0) {\n\t\treturn Pu(Lu(e, t));\n\t}\n\tstatic compare(e, t) {\n\t\treturn Yo(Lu(e), Lu(t));\n\t}\n\tget calendarId() {\n\t\treturn ln(R(this).calendar);\n\t}\n\tget timeZoneId() {\n\t\treturn R(this).timeZone.id;\n\t}\n\tget epochMilliseconds() {\n\t\treturn ma(R(this));\n\t}\n\tget epochNanoseconds() {\n\t\treturn ha(R(this));\n\t}\n\tget offset() {\n\t\treturn rc(Va(R(this)).offsetNanoseconds);\n\t}\n\tget offsetNanoseconds() {\n\t\treturn Va(R(this)).offsetNanoseconds;\n\t}\n\tget hoursInDay() {\n\t\treturn Ca(R(this));\n\t}\n\twith(e, t = void 0) {\n\t\treturn Pu(_l(R(this), ld(e), t));\n\t}\n\twithCalendar(e) {\n\t\treturn Pu({\n\t\t\t...R(this),\n\t\t\tcalendar: Pd(e)\n\t\t});\n\t}\n\twithTimeZone(e) {\n\t\treturn Pu({\n\t\t\t...R(this),\n\t\t\ttimeZone: _c(zu(e))\n\t\t});\n\t}\n\twithPlainTime(e = void 0) {\n\t\treturn Pu(su(R(this), gd(e)));\n\t}\n\tadd(e, t = void 0) {\n\t\treturn Pu(Ja(R(this), Bd(e), t));\n\t}\n\tsubtract(e, t = void 0) {\n\t\treturn Pu(Ja(R(this), Lo(Bd(e)), t));\n\t}\n\tuntil(e, t = void 0) {\n\t\tlet n = R(this), r = Lu(e);\n\t\treturn Ld(pa(so(0, ro(n.calendar, r.calendar), n, r, t)));\n\t}\n\tsince(e, t = void 0) {\n\t\tlet n = R(this), r = Lu(e);\n\t\treturn Ld(pa(so(1, ro(n.calendar, r.calendar), n, r, t)));\n\t}\n\tround(e) {\n\t\tlet t = R(this), [n, r, i] = Yi(e);\n\t\treturn Pu(Sa(t, n, r, i));\n\t}\n\tstartOfDay() {\n\t\treturn Pu(wa(R(this)));\n\t}\n\tequals(e) {\n\t\treturn ts(R(this), Lu(e));\n\t}\n\ttoInstant() {\n\t\treturn Hu(El(R(this)));\n\t}\n\ttoPlainDateTime() {\n\t\treturn bd(Dl(R(this)));\n\t}\n\ttoPlainDate() {\n\t\treturn Dd(Ol(R(this)));\n\t}\n\ttoPlainTime() {\n\t\treturn fd(kl(R(this)));\n\t}\n\ttoLocaleString(e = void 0, t = {}) {\n\t\tlet n = R(this), r = new Ms(e, Bl(tu(t), ao(n)));\n\t\treturn Vl(r, n), r.format(ma(n));\n\t}\n\ttoString(e = void 0) {\n\t\treturn Vs(R(this), e);\n\t}\n\ttoJSON() {\n\t\treturn Vs(R(this));\n\t}\n\tgetTimeZoneTransition(e) {\n\t\tlet t = R(this), n = Ba(t, e);\n\t\treturn n ? Pu({\n\t\t\t...t,\n\t\t\tepochNanoseconds: n\n\t\t}) : null;\n\t}\n\tvalueOf() {\n\t\treturn Cu();\n\t}\n}, Fu, Tu, Ou, jn);\nfunction Pu(e) {\n\treturn Ru(Object.create(Nu.prototype), e);\n}\nfunction R(e) {\n\treturn Iu(e) || Su();\n}\nfunction Fu(e) {\n\tlet t = R(e);\n\treturn {\n\t\t...Va(t),\n\t\tcalendar: t.calendar\n\t};\n}\nfunction Iu(e) {\n\treturn Mu.get(e);\n}\nfunction Lu(e, t) {\n\tif (Tt(e)) {\n\t\tlet n = Iu(e);\n\t\treturn n ? (Zi(t), n) : Ec(zu, Md(e), e, t);\n\t}\n\treturn Ic(e, Au, t);\n}\nfunction Ru(e, t) {\n\treturn Mu.set(e, t), xu(e), e;\n}\nfunction zu(e) {\n\tif (Tt(e)) {\n\t\tlet t = Iu(e);\n\t\treturn t || Et(xt(e)), t.timeZone.id;\n\t}\n\treturn ((e) => pc(Gc(fi(e))))(e);\n}\nvar Bu = /*@__PURE__*/ new WeakMap(), Vu = /*@__PURE__*/ yu(_u, class {\n\tconstructor(e) {\n\t\tlet t = oa(_i(e));\n\t\tqu(this, ca(t));\n\t}\n\tstatic from(e) {\n\t\treturn Hu(Gu(e));\n\t}\n\tstatic fromEpochMilliseconds(e) {\n\t\treturn Hu(Ll(e));\n\t}\n\tstatic fromEpochNanoseconds(e) {\n\t\treturn Hu(Rl(e));\n\t}\n\tstatic compare(e, t) {\n\t\treturn Jo(Gu(e), Gu(t));\n\t}\n\tget epochMilliseconds() {\n\t\treturn ma(Uu(this));\n\t}\n\tget epochNanoseconds() {\n\t\treturn ha(Uu(this));\n\t}\n\tadd(e) {\n\t\treturn Hu(ca(qa(Uu(this).epochNanoseconds, Bd(e))));\n\t}\n\tsubtract(e) {\n\t\treturn Hu(ca(qa(Uu(this).epochNanoseconds, Lo(Bd(e)))));\n\t}\n\tuntil(e, t = void 0) {\n\t\treturn Ld(oo(0, Uu(this), Gu(e), t));\n\t}\n\tsince(e, t = void 0) {\n\t\treturn Ld(oo(1, Uu(this), Gu(e), t));\n\t}\n\tround(e) {\n\t\tlet t = Uu(this), [n, r, i] = Yi(e, 5, 1);\n\t\treturn Hu(ca(Na(t.epochNanoseconds, ka(n, r), i)));\n\t}\n\tequals(e) {\n\t\treturn es(Uu(this), Gu(e));\n\t}\n\ttoZonedDateTimeISO(e) {\n\t\treturn Pu(Tl(Uu(this), _c(zu(e))));\n\t}\n\ttoLocaleString(e = void 0, t = {}) {\n\t\tlet n = Uu(this);\n\t\treturn new Ms(e, eu(t)).format(ma(n));\n\t}\n\ttoString(e = void 0) {\n\t\treturn Bs(zu, Uu(this), e);\n\t}\n\ttoJSON() {\n\t\treturn Bs(zu, Uu(this));\n\t}\n\tvalueOf() {\n\t\treturn Cu();\n\t}\n});\nfunction Hu(e) {\n\treturn qu(Object.create(Vu.prototype), e);\n}\nfunction Uu(e) {\n\treturn Wu(e) || Su();\n}\nfunction Wu(e) {\n\treturn Bu.get(e);\n}\nfunction Gu(e) {\n\tif (Tt(e)) {\n\t\tlet t = Wu(e);\n\t\tif (t) return t;\n\t\tlet n = Iu(e);\n\t\tif (n) return ca(n.epochNanoseconds);\n\t}\n\treturn Pc(e);\n}\nvar { toTemporalInstant: Ku } = { toTemporalInstant() {\n\tlet e = Date.prototype.valueOf.call(this);\n\treturn Hu(ca(BigInt(mi(e)) * wn));\n} };\nfunction qu(e, t) {\n\treturn Bu.set(e, t), xu(e), e;\n}\nvar Ju = /*@__PURE__*/ new WeakMap(), Yu = /*@__PURE__*/ yu(fu, class {\n\tconstructor(e, t, n = void 0, r) {\n\t\tlet i = at(e), a = at(t), o = ju(n), s = ra(Rr({\n\t\t\tyear: at(r ?? 1972),\n\t\t\tmonth: i,\n\t\t\tday: a\n\t\t}));\n\t\ted(this, da(s, o));\n\t}\n\tstatic from(e, t = void 0) {\n\t\treturn Xu($u(e, t));\n\t}\n\tget calendarId() {\n\t\treturn ln(Zu(this).calendar);\n\t}\n\twith(e, t = void 0) {\n\t\treturn Xu(xl(Zu(this), ld(e), t));\n\t}\n\tequals(e) {\n\t\treturn as(Zu(this), $u(e));\n\t}\n\ttoPlainDate(e) {\n\t\treturn Dd(Nl(Zu(this).calendar, this, e));\n\t}\n\ttoLocaleString(e = void 0, t = {}) {\n\t\tlet n = Zu(this), r = new Ms(e, zl(ou(t)));\n\t\treturn Vl(r, n, 1), r.format(yr(n));\n\t}\n\ttoString(e = void 0) {\n\t\treturn Gs(Zu(this), e);\n\t}\n\ttoJSON() {\n\t\treturn Gs(Zu(this));\n\t}\n\tvalueOf() {\n\t\treturn Cu();\n\t}\n}, Zu, Eu);\nfunction Xu(e) {\n\treturn ed(Object.create(Yu.prototype), e);\n}\nfunction Zu(e) {\n\treturn Qu(e) || Su();\n}\nfunction Qu(e) {\n\treturn Ju.get(e);\n}\nfunction $u(e, t) {\n\tif (Tt(e)) {\n\t\tlet n = Qu(e);\n\t\tif (n) return L(t), n;\n\t\tlet r = Nd(e);\n\t\treturn Ac(r === void 0 ? void 0 : r, r === void 0, e, t);\n\t}\n\tlet n = Vc(e, Au);\n\treturn L(t), n;\n}\nfunction ed(e, t) {\n\treturn Ju.set(e, t), xu(e), e;\n}\nvar td = /*@__PURE__*/ new WeakMap(), nd = /*@__PURE__*/ yu(du, class {\n\tconstructor(e, t, n = void 0, r) {\n\t\tlet i = at(e), a = at(t), o = ju(n), s = na(Rr({\n\t\t\tyear: i,\n\t\t\tmonth: a,\n\t\t\tday: at(r ?? 1)\n\t\t}));\n\t\tsd(this, da(s, o));\n\t}\n\tstatic from(e, t = void 0) {\n\t\treturn rd(od(e, t));\n\t}\n\tstatic compare(e, t) {\n\t\treturn Qo(od(e), od(t));\n\t}\n\tget calendarId() {\n\t\treturn ln(id(this).calendar);\n\t}\n\twith(e, t = void 0) {\n\t\treturn rd(bl(id(this), ld(e), t));\n\t}\n\tadd(e, t = void 0) {\n\t\tlet n = id(this);\n\t\treturn rd(da(Ka(0, n.calendar, n, Bd(e), t), n.calendar));\n\t}\n\tsubtract(e, t = void 0) {\n\t\tlet n = id(this);\n\t\treturn rd(da(Ka(1, n.calendar, n, Bd(e), t), n.calendar));\n\t}\n\tuntil(e, t = void 0) {\n\t\tlet n = id(this), r = od(e);\n\t\treturn Ld(uo(0, ro(n.calendar, r.calendar), n, r, t));\n\t}\n\tsince(e, t = void 0) {\n\t\tlet n = id(this), r = od(e);\n\t\treturn Ld(uo(1, ro(n.calendar, r.calendar), n, r, t));\n\t}\n\tequals(e) {\n\t\treturn is(id(this), od(e));\n\t}\n\ttoPlainDate(e) {\n\t\treturn Dd(Ml(id(this).calendar, this, e));\n\t}\n\ttoLocaleString(e = void 0, t = {}) {\n\t\tlet n = id(this), r = new Ms(e, zl(au(t)));\n\t\treturn Vl(r, n, 1), r.format(yr(n));\n\t}\n\ttoString(e = void 0) {\n\t\treturn Ws(id(this), e);\n\t}\n\ttoJSON() {\n\t\treturn Ws(id(this));\n\t}\n\tvalueOf() {\n\t\treturn Cu();\n\t}\n}, id, wu, Du);\nfunction rd(e) {\n\treturn sd(Object.create(nd.prototype), e);\n}\nfunction id(e) {\n\treturn ad(e) || Su();\n}\nfunction ad(e) {\n\treturn td.get(e);\n}\nfunction od(e, t) {\n\tif (Tt(e)) {\n\t\tlet n = ad(e);\n\t\treturn n ? (L(t), n) : kc(Md(e), e, t);\n\t}\n\tlet n = zc(e, Au);\n\treturn L(t), n;\n}\nfunction sd(e, t) {\n\treturn td.set(e, t), xu(e), e;\n}\nfunction cd(e) {\n\tif (!Tt(e)) return;\n\tlet t = Wu(e);\n\treturn t ? [_u, t] : (t = Iu(e), t ? [gu, t] : (t = Sd(e), t ? [mu, t] : (t = kd(e), t ? [pu, t] : (t = md(e), t ? [hu, t] : (t = ad(e), t ? [du, t] : (t = Qu(e), t ? [fu, t] : (t = zd(e), t ? [vu, t] : void 0)))))));\n}\nfunction ld(e) {\n\treturn (cd(e) || e.calendar !== void 0 || e.timeZone !== void 0) && Et(\"Invalid bag\"), e;\n}\nvar ud = /*@__PURE__*/ new WeakMap(), dd = /*@__PURE__*/ yu(hu, class {\n\tconstructor(e = 0, t = 0, n = 0, r = 0, i = 0, a = 0) {\n\t\tlet o = ar(Nt(at, {\n\t\t\thour: e,\n\t\t\tminute: t,\n\t\t\tsecond: n,\n\t\t\tmillisecond: r,\n\t\t\tmicrosecond: i,\n\t\t\tnanosecond: a\n\t\t}));\n\t\t_d(this, fa(o));\n\t}\n\tstatic from(e, t = void 0) {\n\t\treturn fd(hd(e, t));\n\t}\n\tstatic compare(e, t) {\n\t\treturn $o(hd(e), hd(t));\n\t}\n\twith(e, t = void 0) {\n\t\treturn fd(Sl(pd(this), ld(e), t));\n\t}\n\tadd(e) {\n\t\treturn fd(Qa(pd(this), Bd(e))[0]);\n\t}\n\tsubtract(e) {\n\t\treturn fd(Qa(pd(this), Lo(Bd(e)))[0]);\n\t}\n\tuntil(e, t = void 0) {\n\t\treturn Ld(po(0, pd(this), hd(e), t));\n\t}\n\tsince(e, t = void 0) {\n\t\treturn Ld(po(1, pd(this), hd(e), t));\n\t}\n\tround(e) {\n\t\tlet t = pd(this), [n, r, i] = Yi(e, 5);\n\t\treturn fd(Ea(t, Oa(n, r), i)[0]);\n\t}\n\tequals(e) {\n\t\treturn os(pd(this), hd(e));\n\t}\n\ttoLocaleString(e = void 0, t = {}) {\n\t\tlet n = pd(this);\n\t\treturn new Ms(e, zl(iu(t))).format(lr(n));\n\t}\n\ttoString(e = void 0) {\n\t\treturn qs(pd(this), e);\n\t}\n\ttoJSON() {\n\t\treturn qs(pd(this));\n\t}\n\tvalueOf() {\n\t\treturn Cu();\n\t}\n}, pd, jn);\nfunction fd(e) {\n\treturn _d(Object.create(dd.prototype), e);\n}\nfunction pd(e) {\n\treturn md(e) || Su();\n}\nfunction md(e) {\n\treturn ud.get(e);\n}\nfunction hd(e, t) {\n\tif (Tt(e)) {\n\t\tlet n = md(e);\n\t\tif (n) return L(t), n;\n\t\tlet r = Sd(e);\n\t\tif (r) return L(t), fa(r);\n\t\tlet i = Iu(e);\n\t\treturn i ? (L(t), kl(i)) : jc(e, t);\n\t}\n\tlet n = Hc(e);\n\treturn L(t), n;\n}\nfunction gd(e) {\n\treturn e === void 0 ? void 0 : hd(e);\n}\nfunction _d(e, t) {\n\treturn ud.set(e, t), xu(e), e;\n}\nvar vd = /*@__PURE__*/ new WeakMap(), yd = /*@__PURE__*/ yu(mu, class {\n\tconstructor(e, t, n, r = 0, i = 0, a = 0, o = 0, s = 0, c = 0, l = void 0) {\n\t\tlet u = ia(Lr(Nt(at, {\n\t\t\tyear: e,\n\t\t\tmonth: t,\n\t\t\tday: n,\n\t\t\thour: r,\n\t\t\tminute: i,\n\t\t\tsecond: a,\n\t\t\tmillisecond: o,\n\t\t\tmicrosecond: s,\n\t\t\tnanosecond: c\n\t\t}))), d = ju(l);\n\t\twd(this, ua(u, d));\n\t}\n\tstatic from(e, t = void 0) {\n\t\treturn bd(Cd(e, t));\n\t}\n\tstatic compare(e, t) {\n\t\treturn Zo(Cd(e), Cd(t));\n\t}\n\tget calendarId() {\n\t\treturn ln(xd(this).calendar);\n\t}\n\twith(e, t = void 0) {\n\t\treturn bd(vl(xd(this), ld(e), t));\n\t}\n\twithCalendar(e) {\n\t\treturn bd(ua(xd(this), Pd(e)));\n\t}\n\twithPlainTime(e = void 0) {\n\t\tlet t = xd(this);\n\t\treturn bd(ws(t, gd(e), t.calendar));\n\t}\n\tadd(e, t = void 0) {\n\t\tlet n = xd(this);\n\t\treturn bd(ua(Ya(n.calendar, n, Bd(e), t), n.calendar));\n\t}\n\tsubtract(e, t = void 0) {\n\t\tlet n = xd(this);\n\t\treturn bd(ua(Ya(n.calendar, n, Lo(Bd(e)), t), n.calendar));\n\t}\n\tuntil(e, t = void 0) {\n\t\tlet n = xd(this), r = Cd(e);\n\t\treturn Ld(co(0, ro(n.calendar, r.calendar), n, r, t));\n\t}\n\tsince(e, t = void 0) {\n\t\tlet n = xd(this), r = Cd(e);\n\t\treturn Ld(co(1, ro(n.calendar, r.calendar), n, r, t));\n\t}\n\tround(e) {\n\t\tlet t = xd(this), [n, r, i] = Yi(e);\n\t\treturn bd(ua(Ta(t, Oa(n, r), i), t.calendar));\n\t}\n\tequals(e) {\n\t\treturn ns(xd(this), Cd(e));\n\t}\n\ttoZonedDateTime(e, t = void 0) {\n\t\treturn Pu(Al(xd(this), _c(zu(e)), t));\n\t}\n\ttoPlainDate() {\n\t\tlet e = xd(this);\n\t\treturn Dd(da(e, e.calendar));\n\t}\n\ttoPlainTime() {\n\t\treturn fd(fa(xd(this)));\n\t}\n\ttoLocaleString(e = void 0, t = {}) {\n\t\tlet n = xd(this), r = new Ms(e, zl(nu(t)));\n\t\treturn Vl(r, n), r.format(_r(n));\n\t}\n\ttoString(e = void 0) {\n\t\treturn Hs(xd(this), e);\n\t}\n\ttoJSON() {\n\t\treturn Hs(xd(this));\n\t}\n\tvalueOf() {\n\t\treturn Cu();\n\t}\n}, xd, Tu, Ou, jn);\nfunction bd(e) {\n\treturn wd(Object.create(yd.prototype), e);\n}\nfunction xd(e) {\n\treturn Sd(e) || Su();\n}\nfunction Sd(e) {\n\treturn vd.get(e);\n}\nfunction Cd(e, t) {\n\tif (Tt(e)) {\n\t\tlet n = Sd(e);\n\t\tif (n) return L(t), n;\n\t\tlet r = kd(e);\n\t\tif (r) return L(t), ua(Xi(r, ir), r.calendar);\n\t\tlet i = Iu(e);\n\t\treturn i ? (L(t), Dl(i)) : Dc(Md(e), e, t);\n\t}\n\tlet n = Lc(e, Au);\n\treturn L(t), n;\n}\nfunction wd(e, t) {\n\treturn vd.set(e, t), xu(e), e;\n}\nvar Td = /*@__PURE__*/ new WeakMap(), Ed = /*@__PURE__*/ yu(pu, class {\n\tconstructor(e, t, n, r = void 0) {\n\t\tlet i = ra(Rr(Nt(at, {\n\t\t\tyear: e,\n\t\t\tmonth: t,\n\t\t\tday: n\n\t\t}))), a = ju(r);\n\t\tjd(this, da(i, a));\n\t}\n\tstatic from(e, t = void 0) {\n\t\treturn Dd(Ad(e, t));\n\t}\n\tstatic compare(e, t) {\n\t\treturn Qo(Ad(e), Ad(t));\n\t}\n\tget calendarId() {\n\t\treturn ln(Od(this).calendar);\n\t}\n\twith(e, t = void 0) {\n\t\treturn Dd(yl(Od(this), ld(e), t));\n\t}\n\twithCalendar(e) {\n\t\treturn Dd(da(Od(this), Pd(e)));\n\t}\n\tadd(e, t = void 0) {\n\t\tlet n = Od(this);\n\t\treturn Dd(da(Xa(n.calendar, n, Bd(e), t), n.calendar));\n\t}\n\tsubtract(e, t = void 0) {\n\t\tlet n = Od(this);\n\t\treturn Dd(da(Xa(n.calendar, n, Lo(Bd(e)), t), n.calendar));\n\t}\n\tuntil(e, t = void 0) {\n\t\tlet n = Od(this), r = Ad(e);\n\t\treturn Ld(lo(0, ro(n.calendar, r.calendar), n, r, t));\n\t}\n\tsince(e, t = void 0) {\n\t\tlet n = Od(this), r = Ad(e);\n\t\treturn Ld(lo(1, ro(n.calendar, r.calendar), n, r, t));\n\t}\n\tequals(e) {\n\t\treturn rs(Od(this), Ad(e));\n\t}\n\ttoZonedDateTime(e) {\n\t\tlet t = Tt(e) ? {\n\t\t\ttimeZone: e.timeZone,\n\t\t\tplainTime: e.plainTime\n\t\t} : { timeZone: e };\n\t\treturn Pu(jl(zu, hd, Od(this), t));\n\t}\n\ttoPlainDateTime(e = void 0) {\n\t\tlet t = Od(this);\n\t\treturn bd(ws(t, gd(e), t.calendar));\n\t}\n\ttoPlainYearMonth() {\n\t\treturn rd(Fl(Od(this).calendar, this));\n\t}\n\ttoPlainMonthDay() {\n\t\treturn Xu(Pl(Od(this).calendar, this));\n\t}\n\ttoLocaleString(e = void 0, t = {}) {\n\t\tlet n = Od(this), r = new Ms(e, zl(ru(t)));\n\t\treturn Vl(r, n), r.format(yr(n));\n\t}\n\ttoString(e = void 0) {\n\t\treturn Us(Od(this), e);\n\t}\n\ttoJSON() {\n\t\treturn Us(Od(this));\n\t}\n\tvalueOf() {\n\t\treturn Cu();\n\t}\n}, Od, Tu, Ou);\nfunction Dd(e) {\n\treturn jd(Object.create(Ed.prototype), e);\n}\nfunction Od(e) {\n\treturn kd(e) || Su();\n}\nfunction kd(e) {\n\treturn Td.get(e);\n}\nfunction Ad(e, t) {\n\tif (Tt(e)) {\n\t\tlet n = kd(e);\n\t\tif (n) return L(t), n;\n\t\tlet r = Sd(e);\n\t\tif (r) return L(t), da(r, r.calendar);\n\t\tlet i = Iu(e);\n\t\treturn i ? (L(t), Ol(i)) : Oc(Md(e), e, t);\n\t}\n\tlet n = Rc(e, Au);\n\treturn L(t), n;\n}\nfunction jd(e, t) {\n\treturn Td.set(e, t), xu(e), e;\n}\nfunction Md(e) {\n\tlet t = Nd(e);\n\treturn t === void 0 ? void 0 : t;\n}\nfunction Nd(e) {\n\tlet { calendar: t } = e;\n\tif (t !== void 0) return Pd(t);\n}\nfunction Pd(e) {\n\tif (Tt(e)) {\n\t\tlet t = kd(e) || Sd(e) || Iu(e) || Qu(e) || ad(e);\n\t\treturn t || Et(yt(e)), t.calendar;\n\t}\n\treturn ((e) => Au(Wc(fi(e))))(e);\n}\nvar Fd = /*@__PURE__*/ new WeakMap(), Id = /*@__PURE__*/ yu(vu, class {\n\tconstructor(e = 0, t = 0, n = 0, r = 0, i = 0, a = 0, o = 0, s = 0, c = 0, l = 0) {\n\t\tlet u = zo(Nt(vi, {\n\t\t\tyears: e,\n\t\t\tmonths: t,\n\t\t\tweeks: n,\n\t\t\tdays: r,\n\t\t\thours: i,\n\t\t\tminutes: a,\n\t\t\tseconds: o,\n\t\t\tmilliseconds: s,\n\t\t\tmicroseconds: c,\n\t\t\tnanoseconds: l\n\t\t}));\n\t\tHd(this, pa(u));\n\t}\n\tstatic from(e) {\n\t\treturn Ld(Bd(e));\n\t}\n\tstatic compare(e, t, n = void 0) {\n\t\treturn Xo(Vd, Bd(e), Bd(t), n);\n\t}\n\tget sign() {\n\t\treturn Rd(this).sign;\n\t}\n\tget blank() {\n\t\treturn !Rd(this).sign;\n\t}\n\twith(e) {\n\t\treturn Ld(Cl(Rd(this), e));\n\t}\n\tnegated() {\n\t\treturn Ld(Io(Rd(this)));\n\t}\n\tabs() {\n\t\treturn Ld(Fo(Rd(this)));\n\t}\n\tadd(e, t = void 0) {\n\t\treturn Ld(Mo(Vd, 0, Rd(this), Bd(e), t));\n\t}\n\tsubtract(e, t = void 0) {\n\t\treturn Ld(Mo(Vd, 1, Rd(this), Bd(e), t));\n\t}\n\tround(e) {\n\t\treturn Ld(Po(Vd, Rd(this), e));\n\t}\n\ttotal(e) {\n\t\treturn ga(Vd, Rd(this), e);\n\t}\n\ttoLocaleString(e = void 0, t) {\n\t\tlet n = Rd(this);\n\t\treturn Intl.DurationFormat ? new Intl.DurationFormat(e, t).format(n) : Js(n, t);\n\t}\n\ttoString(e = void 0) {\n\t\treturn Js(Rd(this), e);\n\t}\n\ttoJSON() {\n\t\treturn Js(Rd(this));\n\t}\n\tvalueOf() {\n\t\treturn Cu();\n\t}\n}, Rd, ni);\nfunction Ld(e) {\n\treturn Hd(Object.create(Id.prototype), e);\n}\nfunction Rd(e) {\n\treturn zd(e) || Su();\n}\nfunction zd(e) {\n\treturn Fd.get(e);\n}\nfunction Bd(e) {\n\treturn Tt(e) ? zd(e) || Mc(e) : Uc(e);\n}\nfunction Vd(e) {\n\tif (e !== void 0) {\n\t\tif (Tt(e)) {\n\t\t\tlet t = Iu(e);\n\t\t\tif (t) return t;\n\t\t\tlet n = kd(e);\n\t\t\tif (n) return n;\n\t\t\tlet r = Sd(e);\n\t\t\treturn r ? da(r, r.calendar) : Tc(zu, Md(e), e);\n\t\t}\n\t\treturn Fc(e, Au);\n\t}\n}\nfunction Hd(e, t) {\n\treturn Fd.set(e, t), xu(e), e;\n}\nvar Ud = /*@__PURE__*/ Object.defineProperties({}, {\n\t...Mt(\"Temporal.Now\"),\n\t...jt({\n\t\ttimeZoneId() {\n\t\t\treturn uu();\n\t\t},\n\t\tinstant() {\n\t\t\treturn Hu(ca(lu()));\n\t\t},\n\t\tzonedDateTimeISO(e = uu()) {\n\t\t\tlet t = _c(zu(e));\n\t\t\treturn Pu(la(lu(), t));\n\t\t},\n\t\tplainDateTimeISO(e = uu()) {\n\t\t\treturn bd(ua(cu(_c(zu(e)))));\n\t\t},\n\t\tplainDateISO(e = uu()) {\n\t\t\treturn Dd(da(cu(_c(zu(e)))));\n\t\t},\n\t\tplainTimeISO(e = uu()) {\n\t\t\treturn fd(fa(cu(_c(zu(e)))));\n\t\t}\n\t})\n}), Wd = /*@__PURE__*/ Object.defineProperties({}, {\n\t...Mt(\"Temporal\"),\n\t...jt({\n\t\tPlainYearMonth: nd,\n\t\tPlainMonthDay: Yu,\n\t\tPlainDate: Ed,\n\t\tPlainTime: dd,\n\t\tPlainDateTime: yd,\n\t\tZonedDateTime: Nu,\n\t\tInstant: Vu,\n\t\tDuration: Id,\n\t\tNow: Ud\n\t})\n}), Gd = Ge || Wd;\nGe && Date.prototype.toTemporalInstant;\n//#endregion\n//#region src/core/utils/DateUtils.ts\nvar z = /* @__PURE__ */ Ue((/* @__PURE__ */ F(((e, t) => {\n\t(function() {\n\t\tvar e = {}.hasOwnProperty;\n\t\tfunction n() {\n\t\t\tfor (var e = \"\", t = 0; t < arguments.length; t++) {\n\t\t\t\tvar n = arguments[t];\n\t\t\t\tn && (e = i(e, r(n)));\n\t\t\t}\n\t\t\treturn e;\n\t\t}\n\t\tfunction r(t) {\n\t\t\tif (typeof t == \"string\" || typeof t == \"number\") return t;\n\t\t\tif (typeof t != \"object\") return \"\";\n\t\t\tif (Array.isArray(t)) return n.apply(null, t);\n\t\t\tif (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\")) return t.toString();\n\t\t\tvar r = \"\";\n\t\t\tfor (var a in t) e.call(t, a) && t[a] && (r = i(r, a));\n\t\t\treturn r;\n\t\t}\n\t\tfunction i(e, t) {\n\t\t\treturn t ? e ? e + \" \" + t : e + t : e;\n\t\t}\n\t\tt !== void 0 && t.exports ? (n.default = n, t.exports = n) : typeof define == \"function\" && typeof define.amd == \"object\" && define.amd ? define(\"classnames\", [], function() {\n\t\t\treturn n;\n\t\t}) : window.classNames = n;\n\t})();\n})))(), 1);\nfunction Kd(e, t) {\n\tlet n = e < 0;\n\te = Math.abs(e);\n\tlet r = Math.floor(e / 3600).toFixed(0).padStart(t?.hoursMaxLength ?? 2, \"0\"), i = Math.floor(e % 3600 / 60).toFixed(0).padStart(t?.minutesMaxLength ?? 2, \"0\"), a = Math.floor(e % 3600 % 60).toFixed(0).padStart(2, \"0\"), o = \"\";\n\treturn r !== \"00\" && (o += `${r}:`), o += `${i}:${a}`, n && (o = \"-\" + o), o;\n}\nfunction qd(e) {\n\treturn `${`${e.getFullYear()}`.padStart(4, \"0\")}-${`${e.getMonth() + 1}`.padStart(2, \"0\")}-${`${e.getDate()}`.padStart(2, \"0\")}`;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/react@19.2.7/node_modules/react/cjs/react-jsx-runtime.production.js\nvar Jd = /* @__PURE__ */ F(((e) => {\n\tvar t = Symbol.for(\"react.transitional.element\"), n = Symbol.for(\"react.fragment\");\n\tfunction r(e, n, r) {\n\t\tvar i = null;\n\t\tif (r !== void 0 && (i = \"\" + r), n.key !== void 0 && (i = \"\" + n.key), \"key\" in n) for (var a in r = {}, n) a !== \"key\" && (r[a] = n[a]);\n\t\telse r = n;\n\t\treturn n = r.ref, {\n\t\t\t$$typeof: t,\n\t\t\ttype: e,\n\t\t\tkey: i,\n\t\t\tref: n === void 0 ? null : n,\n\t\t\tprops: r\n\t\t};\n\t}\n\te.Fragment = n, e.jsx = r, e.jsxs = r;\n})), Yd = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = { ...a };\n})), Xd = /* @__PURE__ */ F(((e) => {\n\tprocess.env.NODE_ENV !== \"production\" && (function() {\n\t\tfunction t(e) {\n\t\t\tif (e == null) return null;\n\t\t\tif (typeof e == \"function\") return e.$$typeof === E ? null : e.displayName || e.name || null;\n\t\t\tif (typeof e == \"string\") return e;\n\t\t\tswitch (e) {\n\t\t\t\tcase _: return \"Fragment\";\n\t\t\t\tcase y: return \"Profiler\";\n\t\t\t\tcase v: return \"StrictMode\";\n\t\t\t\tcase C: return \"Suspense\";\n\t\t\t\tcase w: return \"SuspenseList\";\n\t\t\t\tcase te: return \"Activity\";\n\t\t\t}\n\t\t\tif (typeof e == \"object\") switch (typeof e.tag == \"number\" && console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"), e.$$typeof) {\n\t\t\t\tcase g: return \"Portal\";\n\t\t\t\tcase x: return e.displayName || \"Context\";\n\t\t\t\tcase b: return (e._context.displayName || \"Context\") + \".Consumer\";\n\t\t\t\tcase S:\n\t\t\t\t\tvar n = e.render;\n\t\t\t\t\treturn e = e.displayName, e ||= (e = n.displayName || n.name || \"\", e === \"\" ? \"ForwardRef\" : \"ForwardRef(\" + e + \")\"), e;\n\t\t\t\tcase T: return n = e.displayName || null, n === null ? t(e.type) || \"Memo\" : n;\n\t\t\t\tcase ee:\n\t\t\t\t\tn = e._payload, e = e._init;\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn t(e(n));\n\t\t\t\t\t} catch {}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tfunction n(e) {\n\t\t\treturn \"\" + e;\n\t\t}\n\t\tfunction r(e) {\n\t\t\ttry {\n\t\t\t\tn(e);\n\t\t\t\tvar t = !1;\n\t\t\t} catch {\n\t\t\t\tt = !0;\n\t\t\t}\n\t\t\tif (t) {\n\t\t\t\tt = console;\n\t\t\t\tvar r = t.error, i = typeof Symbol == \"function\" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || \"Object\";\n\t\t\t\treturn r.call(t, \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\", i), n(e);\n\t\t\t}\n\t\t}\n\t\tfunction i(e) {\n\t\t\tif (e === _) return \"<>\";\n\t\t\tif (typeof e == \"object\" && e && e.$$typeof === ee) return \"<...>\";\n\t\t\ttry {\n\t\t\t\tvar n = t(e);\n\t\t\t\treturn n ? \"<\" + n + \">\" : \"<...>\";\n\t\t\t} catch {\n\t\t\t\treturn \"<...>\";\n\t\t\t}\n\t\t}\n\t\tfunction a() {\n\t\t\tvar e = ne.A;\n\t\t\treturn e === null ? null : e.getOwner();\n\t\t}\n\t\tfunction o() {\n\t\t\treturn Error(\"react-stack-top-frame\");\n\t\t}\n\t\tfunction s(e) {\n\t\t\tif (D.call(e, \"key\")) {\n\t\t\t\tvar t = Object.getOwnPropertyDescriptor(e, \"key\").get;\n\t\t\t\tif (t && t.isReactWarning) return !1;\n\t\t\t}\n\t\t\treturn e.key !== void 0;\n\t\t}\n\t\tfunction c(e, t) {\n\t\t\tfunction n() {\n\t\t\t\tre || (re = !0, console.error(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\", t));\n\t\t\t}\n\t\t\tn.isReactWarning = !0, Object.defineProperty(e, \"key\", {\n\t\t\t\tget: n,\n\t\t\t\tconfigurable: !0\n\t\t\t});\n\t\t}\n\t\tfunction l() {\n\t\t\tvar e = t(this.type);\n\t\t\treturn ie[e] || (ie[e] = !0, console.error(\"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\")), e = this.props.ref, e === void 0 ? null : e;\n\t\t}\n\t\tfunction u(e, t, n, r, i, a) {\n\t\t\tvar o = n.ref;\n\t\t\treturn e = {\n\t\t\t\t$$typeof: h,\n\t\t\t\ttype: e,\n\t\t\t\tkey: t,\n\t\t\t\tprops: n,\n\t\t\t\t_owner: r\n\t\t\t}, (o === void 0 ? null : o) === null ? Object.defineProperty(e, \"ref\", {\n\t\t\t\tenumerable: !1,\n\t\t\t\tvalue: null\n\t\t\t}) : Object.defineProperty(e, \"ref\", {\n\t\t\t\tenumerable: !1,\n\t\t\t\tget: l\n\t\t\t}), e._store = {}, Object.defineProperty(e._store, \"validated\", {\n\t\t\t\tconfigurable: !1,\n\t\t\t\tenumerable: !1,\n\t\t\t\twritable: !0,\n\t\t\t\tvalue: 0\n\t\t\t}), Object.defineProperty(e, \"_debugInfo\", {\n\t\t\t\tconfigurable: !1,\n\t\t\t\tenumerable: !1,\n\t\t\t\twritable: !0,\n\t\t\t\tvalue: null\n\t\t\t}), Object.defineProperty(e, \"_debugStack\", {\n\t\t\t\tconfigurable: !1,\n\t\t\t\tenumerable: !1,\n\t\t\t\twritable: !0,\n\t\t\t\tvalue: i\n\t\t\t}), Object.defineProperty(e, \"_debugTask\", {\n\t\t\t\tconfigurable: !1,\n\t\t\t\tenumerable: !1,\n\t\t\t\twritable: !0,\n\t\t\t\tvalue: a\n\t\t\t}), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;\n\t\t}\n\t\tfunction d(e, n, i, o, l, d) {\n\t\t\tvar p = n.children;\n\t\t\tif (p !== void 0) if (o) if (O(p)) {\n\t\t\t\tfor (o = 0; o < p.length; o++) f(p[o]);\n\t\t\t\tObject.freeze && Object.freeze(p);\n\t\t\t} else console.error(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");\n\t\t\telse f(p);\n\t\t\tif (D.call(n, \"key\")) {\n\t\t\t\tp = t(e);\n\t\t\t\tvar m = Object.keys(n).filter(function(e) {\n\t\t\t\t\treturn e !== \"key\";\n\t\t\t\t});\n\t\t\t\to = 0 < m.length ? \"{key: someKey, \" + m.join(\": ..., \") + \": ...}\" : \"{key: someKey}\", ae[p + o] || (m = 0 < m.length ? \"{\" + m.join(\": ..., \") + \": ...}\" : \"{}\", console.error(\"A props object containing a \\\"key\\\" prop is being spread into JSX:\\n  let props = %s;\\n  <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n  let props = %s;\\n  <%s key={someKey} {...props} />\", o, p, m, p), ae[p + o] = !0);\n\t\t\t}\n\t\t\tif (p = null, i !== void 0 && (r(i), p = \"\" + i), s(n) && (r(n.key), p = \"\" + n.key), \"key\" in n) for (var h in i = {}, n) h !== \"key\" && (i[h] = n[h]);\n\t\t\telse i = n;\n\t\t\treturn p && c(i, typeof e == \"function\" ? e.displayName || e.name || \"Unknown\" : e), u(e, p, i, a(), l, d);\n\t\t}\n\t\tfunction f(e) {\n\t\t\tp(e) ? e._store && (e._store.validated = 1) : typeof e == \"object\" && e && e.$$typeof === ee && (e._payload.status === \"fulfilled\" ? p(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));\n\t\t}\n\t\tfunction p(e) {\n\t\t\treturn typeof e == \"object\" && !!e && e.$$typeof === h;\n\t\t}\n\t\tvar m = Yd(), h = Symbol.for(\"react.transitional.element\"), g = Symbol.for(\"react.portal\"), _ = Symbol.for(\"react.fragment\"), v = Symbol.for(\"react.strict_mode\"), y = Symbol.for(\"react.profiler\"), b = Symbol.for(\"react.consumer\"), x = Symbol.for(\"react.context\"), S = Symbol.for(\"react.forward_ref\"), C = Symbol.for(\"react.suspense\"), w = Symbol.for(\"react.suspense_list\"), T = Symbol.for(\"react.memo\"), ee = Symbol.for(\"react.lazy\"), te = Symbol.for(\"react.activity\"), E = Symbol.for(\"react.client.reference\"), ne = m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, D = Object.prototype.hasOwnProperty, O = Array.isArray, k = console.createTask ? console.createTask : function() {\n\t\t\treturn null;\n\t\t};\n\t\tm = { react_stack_bottom_frame: function(e) {\n\t\t\treturn e();\n\t\t} };\n\t\tvar re, ie = {}, A = m.react_stack_bottom_frame.bind(m, o)(), j = k(i(o)), ae = {};\n\t\te.Fragment = _, e.jsx = function(e, t, n) {\n\t\t\tvar r = 1e4 > ne.recentlyCreatedOwnerStacks++;\n\t\t\treturn d(e, t, n, !1, r ? Error(\"react-stack-top-frame\") : A, r ? k(i(e)) : j);\n\t\t}, e.jsxs = function(e, t, n) {\n\t\t\tvar r = 1e4 > ne.recentlyCreatedOwnerStacks++;\n\t\t\treturn d(e, t, n, !0, r ? Error(\"react-stack-top-frame\") : A, r ? k(i(e)) : j);\n\t\t};\n\t})();\n})), B = (/* @__PURE__ */ F(((e, t) => {\n\tprocess.env.NODE_ENV === \"production\" ? t.exports = Jd() : t.exports = Xd();\n})))();\nfunction Zd({ seconds: e, className: t, minutesMaxLength: n, hoursMaxLength: r, ...i }) {\n\tlet a = S(() => Math.floor(e), [e]);\n\treturn /* @__PURE__ */ (0, B.jsx)(\"time\", {\n\t\tdateTime: S(() => Qd(a), [a]),\n\t\tclassName: (0, z.default)(\"mx_Clock\", t),\n\t\t...i,\n\t\tchildren: Kd(e, {\n\t\t\tminutesMaxLength: n,\n\t\t\thoursMaxLength: r\n\t\t})\n\t});\n}\nfunction Qd(e) {\n\tif (!isNaN(e)) return new Gd.Duration(0, 0, 0, 0, 0, 0, Math.round(e)).round({\n\t\tsmallestUnit: \"seconds\",\n\t\tlargestUnit: \"hours\"\n\t}).toString();\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/play-solid.js\nfunction $d(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m8.98 4.677 9.921 5.58c1.36.764 1.36 2.722 0 3.486l-9.92 5.58C7.647 20.073 6 19.11 6 17.58V6.42c0-1.53 1.647-2.493 2.98-1.743\" })\n\t});\n}\n$d.displayName = \"PlaySolidIcon\";\nvar ef = d($d);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/pause-solid.js\nfunction tf(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M8 4a2 2 0 0 0-2 2v12a2 2 0 1 0 4 0V6a2 2 0 0 0-2-2m8 0a2 2 0 0 0-2 2v12a2 2 0 1 0 4 0V6a2 2 0 0 0-2-2\" })\n\t});\n}\ntf.displayName = \"PauseSolidIcon\";\nvar nf = d(tf), rf = { button: \"_button_13syj_8\" }, af = l(null);\naf.displayName = \"I18nContext\";\nfunction V() {\n\tlet e = g(af);\n\tif (!e) throw Error(\"useI18n must be used within an I18nContext.Provider\");\n\treturn e;\n}\n//#endregion\n//#region src/audio/PlayPauseButton/PlayPauseButton.tsx\nfunction of({ disabled: e = !1, playing: t = !1, togglePlay: n, className: r, ...i }) {\n\tlet { translate: a } = V(), o = a(t ? \"action|pause\" : \"action|play\");\n\treturn /* @__PURE__ */ (0, B.jsx)(M, {\n\t\tsize: \"32px\",\n\t\t\"aria-label\": o,\n\t\ttooltip: o,\n\t\tonClick: n,\n\t\tclassName: (0, z.default)(rf.button, r),\n\t\tdisabled: e,\n\t\t...i,\n\t\tchildren: t ? /* @__PURE__ */ (0, B.jsx)(nf, {}) : /* @__PURE__ */ (0, B.jsx)(ef, {})\n\t});\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js\nvar sf = typeof global == \"object\" && global && global.Object === Object && global, cf = typeof self == \"object\" && self && self.Object === Object && self, lf = sf || cf || Function(\"return this\")(), uf = lf.Symbol, df = Object.prototype, ff = df.hasOwnProperty, pf = df.toString, mf = uf ? uf.toStringTag : void 0;\nfunction hf(e) {\n\tvar t = ff.call(e, mf), n = e[mf];\n\ttry {\n\t\te[mf] = void 0;\n\t\tvar r = !0;\n\t} catch {}\n\tvar i = pf.call(e);\n\treturn r && (t ? e[mf] = n : delete e[mf]), i;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js\nvar gf = Object.prototype.toString;\nfunction _f(e) {\n\treturn gf.call(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js\nvar vf = \"[object Null]\", yf = \"[object Undefined]\", bf = uf ? uf.toStringTag : void 0;\nfunction xf(e) {\n\treturn e == null ? e === void 0 ? yf : vf : bf && bf in Object(e) ? hf(e) : _f(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js\nfunction Sf(e) {\n\treturn typeof e == \"object\" && !!e;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isSymbol.js\nvar Cf = \"[object Symbol]\";\nfunction wf(e) {\n\treturn typeof e == \"symbol\" || Sf(e) && xf(e) == Cf;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayMap.js\nfunction Tf(e, t) {\n\tfor (var n = -1, r = e == null ? 0 : e.length, i = Array(r); ++n < r;) i[n] = t(e[n], n, e);\n\treturn i;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArray.js\nvar Ef = Array.isArray, Df = Infinity, Of = uf ? uf.prototype : void 0, kf = Of ? Of.toString : void 0;\nfunction Af(e) {\n\tif (typeof e == \"string\") return e;\n\tif (Ef(e)) return Tf(e, Af) + \"\";\n\tif (wf(e)) return kf ? kf.call(e) : \"\";\n\tvar t = e + \"\";\n\treturn t == \"0\" && 1 / e == -Df ? \"-0\" : t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_trimmedEndIndex.js\nvar jf = /\\s/;\nfunction Mf(e) {\n\tfor (var t = e.length; t-- && jf.test(e.charAt(t)););\n\treturn t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseTrim.js\nvar Nf = /^\\s+/;\nfunction Pf(e) {\n\treturn e && e.slice(0, Mf(e) + 1).replace(Nf, \"\");\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isObject.js\nfunction Ff(e) {\n\tvar t = typeof e;\n\treturn e != null && (t == \"object\" || t == \"function\");\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toNumber.js\nvar If = NaN, Lf = /^[-+]0x[0-9a-f]+$/i, Rf = /^0b[01]+$/i, zf = /^0o[0-7]+$/i, Bf = parseInt;\nfunction Vf(e) {\n\tif (typeof e == \"number\") return e;\n\tif (wf(e)) return If;\n\tif (Ff(e)) {\n\t\tvar t = typeof e.valueOf == \"function\" ? e.valueOf() : e;\n\t\te = Ff(t) ? t + \"\" : t;\n\t}\n\tif (typeof e != \"string\") return e === 0 ? e : +e;\n\te = Pf(e);\n\tvar n = Rf.test(e);\n\treturn n || zf.test(e) ? Bf(e.slice(2), n ? 2 : 8) : Lf.test(e) ? If : +e;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/identity.js\nfunction Hf(e) {\n\treturn e;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js\nvar Uf = \"[object AsyncFunction]\", Wf = \"[object Function]\", Gf = \"[object GeneratorFunction]\", Kf = \"[object Proxy]\";\nfunction qf(e) {\n\tif (!Ff(e)) return !1;\n\tvar t = xf(e);\n\treturn t == Wf || t == Gf || t == Uf || t == Kf;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js\nvar Jf = lf[\"__core-js_shared__\"], Yf = function() {\n\tvar e = /[^.]+$/.exec(Jf && Jf.keys && Jf.keys.IE_PROTO || \"\");\n\treturn e ? \"Symbol(src)_1.\" + e : \"\";\n}();\nfunction Xf(e) {\n\treturn !!Yf && Yf in e;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js\nvar Zf = Function.prototype.toString;\nfunction Qf(e) {\n\tif (e != null) {\n\t\ttry {\n\t\t\treturn Zf.call(e);\n\t\t} catch {}\n\t\ttry {\n\t\t\treturn e + \"\";\n\t\t} catch {}\n\t}\n\treturn \"\";\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js\nvar $f = /[\\\\^$.*+?()[\\]{}|]/g, ep = /^\\[object .+?Constructor\\]$/, tp = Function.prototype, np = Object.prototype, rp = tp.toString, ip = np.hasOwnProperty, ap = RegExp(\"^\" + rp.call(ip).replace($f, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\");\nfunction op(e) {\n\treturn !Ff(e) || Xf(e) ? !1 : (qf(e) ? ap : ep).test(Qf(e));\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js\nfunction sp(e, t) {\n\treturn e?.[t];\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js\nfunction cp(e, t) {\n\tvar n = sp(e, t);\n\treturn op(n) ? n : void 0;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js\nvar lp = cp(lf, \"WeakMap\"), up = Object.create, dp = function() {\n\tfunction e() {}\n\treturn function(t) {\n\t\tif (!Ff(t)) return {};\n\t\tif (up) return up(t);\n\t\te.prototype = t;\n\t\tvar n = new e();\n\t\treturn e.prototype = void 0, n;\n\t};\n}();\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_apply.js\nfunction fp(e, t, n) {\n\tswitch (n.length) {\n\t\tcase 0: return e.call(t);\n\t\tcase 1: return e.call(t, n[0]);\n\t\tcase 2: return e.call(t, n[0], n[1]);\n\t\tcase 3: return e.call(t, n[0], n[1], n[2]);\n\t}\n\treturn e.apply(t, n);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js\nfunction pp(e, t) {\n\tvar n = -1, r = e.length;\n\tfor (t ||= Array(r); ++n < r;) t[n] = e[n];\n\treturn t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_shortOut.js\nvar mp = 800, hp = 16, gp = Date.now;\nfunction _p(e) {\n\tvar t = 0, n = 0;\n\treturn function() {\n\t\tvar r = gp(), i = hp - (r - n);\n\t\tif (n = r, i > 0) {\n\t\t\tif (++t >= mp) return arguments[0];\n\t\t} else t = 0;\n\t\treturn e.apply(void 0, arguments);\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/constant.js\nfunction vp(e) {\n\treturn function() {\n\t\treturn e;\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js\nvar yp = function() {\n\ttry {\n\t\tvar e = cp(Object, \"defineProperty\");\n\t\treturn e({}, \"\", {}), e;\n\t} catch {}\n}(), bp = _p(yp ? function(e, t) {\n\treturn yp(e, \"toString\", {\n\t\tconfigurable: !0,\n\t\tenumerable: !1,\n\t\tvalue: vp(t),\n\t\twritable: !0\n\t});\n} : Hf);\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js\nfunction xp(e, t) {\n\tfor (var n = -1, r = e == null ? 0 : e.length; ++n < r && t(e[n], n, e) !== !1;);\n\treturn e;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js\nvar Sp = 9007199254740991, Cp = /^(?:0|[1-9]\\d*)$/;\nfunction wp(e, t) {\n\tvar n = typeof e;\n\treturn t ??= Sp, !!t && (n == \"number\" || n != \"symbol\" && Cp.test(e)) && e > -1 && e % 1 == 0 && e < t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js\nfunction Tp(e, t, n) {\n\tt == \"__proto__\" && yp ? yp(e, t, {\n\t\tconfigurable: !0,\n\t\tenumerable: !0,\n\t\tvalue: n,\n\t\twritable: !0\n\t}) : e[t] = n;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/eq.js\nfunction Ep(e, t) {\n\treturn e === t || e !== e && t !== t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js\nvar Dp = Object.prototype.hasOwnProperty;\nfunction Op(e, t, n) {\n\tvar r = e[t];\n\t(!(Dp.call(e, t) && Ep(r, n)) || n === void 0 && !(t in e)) && Tp(e, t, n);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js\nfunction kp(e, t, n, r) {\n\tvar i = !n;\n\tn ||= {};\n\tfor (var a = -1, o = t.length; ++a < o;) {\n\t\tvar s = t[a], c = r ? r(n[s], e[s], s, n, e) : void 0;\n\t\tc === void 0 && (c = e[s]), i ? Tp(n, s, c) : Op(n, s, c);\n\t}\n\treturn n;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_overRest.js\nvar Ap = Math.max;\nfunction jp(e, t, n) {\n\treturn t = Ap(t === void 0 ? e.length - 1 : t, 0), function() {\n\t\tfor (var r = arguments, i = -1, a = Ap(r.length - t, 0), o = Array(a); ++i < a;) o[i] = r[t + i];\n\t\ti = -1;\n\t\tfor (var s = Array(t + 1); ++i < t;) s[i] = r[i];\n\t\treturn s[t] = n(o), fp(e, this, s);\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isLength.js\nvar Mp = 9007199254740991;\nfunction Np(e) {\n\treturn typeof e == \"number\" && e > -1 && e % 1 == 0 && e <= Mp;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js\nfunction Pp(e) {\n\treturn e != null && Np(e.length) && !qf(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js\nvar Fp = Object.prototype;\nfunction Ip(e) {\n\tvar t = e && e.constructor;\n\treturn e === (typeof t == \"function\" && t.prototype || Fp);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js\nfunction Lp(e, t) {\n\tfor (var n = -1, r = Array(e); ++n < e;) r[n] = t(n);\n\treturn r;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js\nvar Rp = \"[object Arguments]\";\nfunction zp(e) {\n\treturn Sf(e) && xf(e) == Rp;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js\nvar Bp = Object.prototype, Vp = Bp.hasOwnProperty, Hp = Bp.propertyIsEnumerable, Up = zp(function() {\n\treturn arguments;\n}()) ? zp : function(e) {\n\treturn Sf(e) && Vp.call(e, \"callee\") && !Hp.call(e, \"callee\");\n};\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js\nfunction Wp() {\n\treturn !1;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js\nvar Gp = typeof exports == \"object\" && exports && !exports.nodeType && exports, Kp = Gp && typeof module == \"object\" && module && !module.nodeType && module, qp = Kp && Kp.exports === Gp ? lf.Buffer : void 0, Jp = (qp ? qp.isBuffer : void 0) || Wp, Yp = \"[object Arguments]\", Xp = \"[object Array]\", Zp = \"[object Boolean]\", Qp = \"[object Date]\", $p = \"[object Error]\", em = \"[object Function]\", tm = \"[object Map]\", nm = \"[object Number]\", rm = \"[object Object]\", im = \"[object RegExp]\", am = \"[object Set]\", om = \"[object String]\", sm = \"[object WeakMap]\", cm = \"[object ArrayBuffer]\", lm = \"[object DataView]\", um = \"[object Float32Array]\", dm = \"[object Float64Array]\", fm = \"[object Int8Array]\", pm = \"[object Int16Array]\", mm = \"[object Int32Array]\", hm = \"[object Uint8Array]\", gm = \"[object Uint8ClampedArray]\", _m = \"[object Uint16Array]\", vm = \"[object Uint32Array]\", ym = {};\nym[um] = ym[dm] = ym[fm] = ym[pm] = ym[mm] = ym[hm] = ym[gm] = ym[_m] = ym[vm] = !0, ym[Yp] = ym[Xp] = ym[cm] = ym[Zp] = ym[lm] = ym[Qp] = ym[$p] = ym[em] = ym[tm] = ym[nm] = ym[rm] = ym[im] = ym[am] = ym[om] = ym[sm] = !1;\nfunction bm(e) {\n\treturn Sf(e) && Np(e.length) && !!ym[xf(e)];\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js\nfunction xm(e) {\n\treturn function(t) {\n\t\treturn e(t);\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js\nvar Sm = typeof exports == \"object\" && exports && !exports.nodeType && exports, Cm = Sm && typeof module == \"object\" && module && !module.nodeType && module, wm = Cm && Cm.exports === Sm && sf.process, Tm = function() {\n\ttry {\n\t\treturn Cm && Cm.require && Cm.require(\"util\").types || wm && wm.binding && wm.binding(\"util\");\n\t} catch {}\n}(), Em = Tm && Tm.isTypedArray, Dm = Em ? xm(Em) : bm, Om = Object.prototype.hasOwnProperty;\nfunction km(e, t) {\n\tvar n = Ef(e), r = !n && Up(e), i = !n && !r && Jp(e), a = !n && !r && !i && Dm(e), o = n || r || i || a, s = o ? Lp(e.length, String) : [], c = s.length;\n\tfor (var l in e) (t || Om.call(e, l)) && !(o && (l == \"length\" || i && (l == \"offset\" || l == \"parent\") || a && (l == \"buffer\" || l == \"byteLength\" || l == \"byteOffset\") || wp(l, c))) && s.push(l);\n\treturn s;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js\nfunction Am(e, t) {\n\treturn function(n) {\n\t\treturn e(t(n));\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js\nvar jm = Am(Object.keys, Object), Mm = Object.prototype.hasOwnProperty;\nfunction Nm(e) {\n\tif (!Ip(e)) return jm(e);\n\tvar t = [];\n\tfor (var n in Object(e)) Mm.call(e, n) && n != \"constructor\" && t.push(n);\n\treturn t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/keys.js\nfunction Pm(e) {\n\treturn Pp(e) ? km(e) : Nm(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js\nfunction Fm(e) {\n\tvar t = [];\n\tif (e != null) for (var n in Object(e)) t.push(n);\n\treturn t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js\nvar Im = Object.prototype.hasOwnProperty;\nfunction Lm(e) {\n\tif (!Ff(e)) return Fm(e);\n\tvar t = Ip(e), n = [];\n\tfor (var r in e) r == \"constructor\" && (t || !Im.call(e, r)) || n.push(r);\n\treturn n;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js\nfunction Rm(e) {\n\treturn Pp(e) ? km(e, !0) : Lm(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isKey.js\nvar zm = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, Bm = /^\\w*$/;\nfunction Vm(e, t) {\n\tif (Ef(e)) return !1;\n\tvar n = typeof e;\n\treturn n == \"number\" || n == \"symbol\" || n == \"boolean\" || e == null || wf(e) ? !0 : Bm.test(e) || !zm.test(e) || t != null && e in Object(t);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js\nvar Hm = cp(Object, \"create\");\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js\nfunction Um() {\n\tthis.__data__ = Hm ? Hm(null) : {}, this.size = 0;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js\nfunction Wm(e) {\n\tvar t = this.has(e) && delete this.__data__[e];\n\treturn this.size -= +!!t, t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js\nvar Gm = \"__lodash_hash_undefined__\", Km = Object.prototype.hasOwnProperty;\nfunction qm(e) {\n\tvar t = this.__data__;\n\tif (Hm) {\n\t\tvar n = t[e];\n\t\treturn n === Gm ? void 0 : n;\n\t}\n\treturn Km.call(t, e) ? t[e] : void 0;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js\nvar Jm = Object.prototype.hasOwnProperty;\nfunction Ym(e) {\n\tvar t = this.__data__;\n\treturn Hm ? t[e] !== void 0 : Jm.call(t, e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js\nvar Xm = \"__lodash_hash_undefined__\";\nfunction Zm(e, t) {\n\tvar n = this.__data__;\n\treturn this.size += +!this.has(e), n[e] = Hm && t === void 0 ? Xm : t, this;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js\nfunction Qm(e) {\n\tvar t = -1, n = e == null ? 0 : e.length;\n\tfor (this.clear(); ++t < n;) {\n\t\tvar r = e[t];\n\t\tthis.set(r[0], r[1]);\n\t}\n}\nQm.prototype.clear = Um, Qm.prototype.delete = Wm, Qm.prototype.get = qm, Qm.prototype.has = Ym, Qm.prototype.set = Zm;\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js\nfunction $m() {\n\tthis.__data__ = [], this.size = 0;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js\nfunction eh(e, t) {\n\tfor (var n = e.length; n--;) if (Ep(e[n][0], t)) return n;\n\treturn -1;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js\nvar th = Array.prototype.splice;\nfunction nh(e) {\n\tvar t = this.__data__, n = eh(t, e);\n\treturn n < 0 ? !1 : (n == t.length - 1 ? t.pop() : th.call(t, n, 1), --this.size, !0);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js\nfunction rh(e) {\n\tvar t = this.__data__, n = eh(t, e);\n\treturn n < 0 ? void 0 : t[n][1];\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js\nfunction ih(e) {\n\treturn eh(this.__data__, e) > -1;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js\nfunction ah(e, t) {\n\tvar n = this.__data__, r = eh(n, e);\n\treturn r < 0 ? (++this.size, n.push([e, t])) : n[r][1] = t, this;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js\nfunction oh(e) {\n\tvar t = -1, n = e == null ? 0 : e.length;\n\tfor (this.clear(); ++t < n;) {\n\t\tvar r = e[t];\n\t\tthis.set(r[0], r[1]);\n\t}\n}\noh.prototype.clear = $m, oh.prototype.delete = nh, oh.prototype.get = rh, oh.prototype.has = ih, oh.prototype.set = ah;\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Map.js\nvar sh = cp(lf, \"Map\");\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js\nfunction ch() {\n\tthis.size = 0, this.__data__ = {\n\t\thash: new Qm(),\n\t\tmap: new (sh || oh)(),\n\t\tstring: new Qm()\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js\nfunction lh(e) {\n\tvar t = typeof e;\n\treturn t == \"string\" || t == \"number\" || t == \"symbol\" || t == \"boolean\" ? e !== \"__proto__\" : e === null;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js\nfunction uh(e, t) {\n\tvar n = e.__data__;\n\treturn lh(t) ? n[typeof t == \"string\" ? \"string\" : \"hash\"] : n.map;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js\nfunction dh(e) {\n\tvar t = uh(this, e).delete(e);\n\treturn this.size -= +!!t, t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js\nfunction fh(e) {\n\treturn uh(this, e).get(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js\nfunction ph(e) {\n\treturn uh(this, e).has(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js\nfunction mh(e, t) {\n\tvar n = uh(this, e), r = n.size;\n\treturn n.set(e, t), this.size += n.size == r ? 0 : 1, this;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js\nfunction hh(e) {\n\tvar t = -1, n = e == null ? 0 : e.length;\n\tfor (this.clear(); ++t < n;) {\n\t\tvar r = e[t];\n\t\tthis.set(r[0], r[1]);\n\t}\n}\nhh.prototype.clear = ch, hh.prototype.delete = dh, hh.prototype.get = fh, hh.prototype.has = ph, hh.prototype.set = mh;\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/memoize.js\nvar gh = \"Expected a function\";\nfunction _h(e, t) {\n\tif (typeof e != \"function\" || t != null && typeof t != \"function\") throw TypeError(gh);\n\tvar n = function() {\n\t\tvar r = arguments, i = t ? t.apply(this, r) : r[0], a = n.cache;\n\t\tif (a.has(i)) return a.get(i);\n\t\tvar o = e.apply(this, r);\n\t\treturn n.cache = a.set(i, o) || a, o;\n\t};\n\treturn n.cache = new (_h.Cache || hh)(), n;\n}\n_h.Cache = hh;\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_memoizeCapped.js\nvar vh = 500;\nfunction yh(e) {\n\tvar t = _h(e, function(e) {\n\t\treturn n.size === vh && n.clear(), e;\n\t}), n = t.cache;\n\treturn t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stringToPath.js\nvar bh = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g, xh = /\\\\(\\\\)?/g, Sh = yh(function(e) {\n\tvar t = [];\n\treturn e.charCodeAt(0) === 46 && t.push(\"\"), e.replace(bh, function(e, n, r, i) {\n\t\tt.push(r ? i.replace(xh, \"$1\") : n || e);\n\t}), t;\n});\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toString.js\nfunction Ch(e) {\n\treturn e == null ? \"\" : Af(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_castPath.js\nfunction wh(e, t) {\n\treturn Ef(e) ? e : Vm(e, t) ? [e] : Sh(Ch(e));\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_toKey.js\nvar Th = Infinity;\nfunction Eh(e) {\n\tif (typeof e == \"string\" || wf(e)) return e;\n\tvar t = e + \"\";\n\treturn t == \"0\" && 1 / e == -Th ? \"-0\" : t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGet.js\nfunction Dh(e, t) {\n\tt = wh(t, e);\n\tfor (var n = 0, r = t.length; e != null && n < r;) e = e[Eh(t[n++])];\n\treturn n && n == r ? e : void 0;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js\nfunction Oh(e, t) {\n\tfor (var n = -1, r = t.length, i = e.length; ++n < r;) e[i + n] = t[n];\n\treturn e;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isFlattenable.js\nvar kh = uf ? uf.isConcatSpreadable : void 0;\nfunction Ah(e) {\n\treturn Ef(e) || Up(e) || !!(kh && e && e[kh]);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseFlatten.js\nfunction jh(e, t, n, r, i) {\n\tvar a = -1, o = e.length;\n\tfor (n ||= Ah, i ||= []; ++a < o;) {\n\t\tvar s = e[a];\n\t\tt > 0 && n(s) ? t > 1 ? jh(s, t - 1, n, r, i) : Oh(i, s) : r || (i[i.length] = s);\n\t}\n\treturn i;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/flatten.js\nfunction Mh(e) {\n\treturn e != null && e.length ? jh(e, 1) : [];\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_flatRest.js\nfunction Nh(e) {\n\treturn bp(jp(e, void 0, Mh), e + \"\");\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js\nvar Ph = Am(Object.getPrototypeOf, Object), Fh = \"[object Object]\", Ih = Function.prototype, Lh = Object.prototype, Rh = Ih.toString, zh = Lh.hasOwnProperty, Bh = Rh.call(Object);\nfunction Vh(e) {\n\tif (!Sf(e) || xf(e) != Fh) return !1;\n\tvar t = Ph(e);\n\tif (t === null) return !0;\n\tvar n = zh.call(t, \"constructor\") && t.constructor;\n\treturn typeof n == \"function\" && n instanceof n && Rh.call(n) == Bh;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseSlice.js\nfunction Hh(e, t, n) {\n\tvar r = -1, i = e.length;\n\tt < 0 && (t = -t > i ? 0 : i + t), n = n > i ? i : n, n < 0 && (n += i), i = t > n ? 0 : n - t >>> 0, t >>>= 0;\n\tfor (var a = Array(i); ++r < i;) a[r] = e[r + t];\n\treturn a;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_castSlice.js\nfunction Uh(e, t, n) {\n\tvar r = e.length;\n\treturn n = n === void 0 ? r : n, !t && n >= r ? e : Hh(e, t, n);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hasUnicode.js\nvar Wh = RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\");\nfunction Gh(e) {\n\treturn Wh.test(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_asciiToArray.js\nfunction Kh(e) {\n\treturn e.split(\"\");\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_unicodeToArray.js\nvar qh = \"\\\\ud800-\\\\udfff\", Jh = \"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\", Yh = \"\\\\ufe0e\\\\ufe0f\", Xh = \"[\" + qh + \"]\", Zh = \"[\" + Jh + \"]\", Qh = \"\\\\ud83c[\\\\udffb-\\\\udfff]\", $h = \"(?:\" + Zh + \"|\" + Qh + \")\", eg = \"[^\" + qh + \"]\", tg = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\", ng = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\", rg = \"\\\\u200d\", ig = $h + \"?\", ag = \"[\" + Yh + \"]?\", og = \"(?:\" + rg + \"(?:\" + [\n\teg,\n\ttg,\n\tng\n].join(\"|\") + \")\" + ag + ig + \")*\", sg = ag + ig + og, cg = \"(?:\" + [\n\teg + Zh + \"?\",\n\tZh,\n\ttg,\n\tng,\n\tXh\n].join(\"|\") + \")\", lg = RegExp(Qh + \"(?=\" + Qh + \")|\" + cg + sg, \"g\");\nfunction ug(e) {\n\treturn e.match(lg) || [];\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stringToArray.js\nfunction dg(e) {\n\treturn Gh(e) ? ug(e) : Kh(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createCaseFirst.js\nfunction fg(e) {\n\treturn function(t) {\n\t\tt = Ch(t);\n\t\tvar n = Gh(t) ? dg(t) : void 0, r = n ? n[0] : t.charAt(0), i = n ? Uh(n, 1).join(\"\") : t.slice(1);\n\t\treturn r[e]() + i;\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/upperFirst.js\nvar pg = fg(\"toUpperCase\");\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/capitalize.js\nfunction mg(e) {\n\treturn pg(Ch(e).toLowerCase());\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js\nfunction hg() {\n\tthis.__data__ = new oh(), this.size = 0;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js\nfunction gg(e) {\n\tvar t = this.__data__, n = t.delete(e);\n\treturn this.size = t.size, n;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js\nfunction _g(e) {\n\treturn this.__data__.get(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js\nfunction vg(e) {\n\treturn this.__data__.has(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js\nvar yg = 200;\nfunction bg(e, t) {\n\tvar n = this.__data__;\n\tif (n instanceof oh) {\n\t\tvar r = n.__data__;\n\t\tif (!sh || r.length < yg - 1) return r.push([e, t]), this.size = ++n.size, this;\n\t\tn = this.__data__ = new hh(r);\n\t}\n\treturn n.set(e, t), this.size = n.size, this;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js\nfunction xg(e) {\n\tvar t = this.__data__ = new oh(e);\n\tthis.size = t.size;\n}\nxg.prototype.clear = hg, xg.prototype.delete = gg, xg.prototype.get = _g, xg.prototype.has = vg, xg.prototype.set = bg;\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js\nfunction Sg(e, t) {\n\treturn e && kp(t, Pm(t), e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js\nfunction Cg(e, t) {\n\treturn e && kp(t, Rm(t), e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js\nvar wg = typeof exports == \"object\" && exports && !exports.nodeType && exports, Tg = wg && typeof module == \"object\" && module && !module.nodeType && module, Eg = Tg && Tg.exports === wg ? lf.Buffer : void 0, Dg = Eg ? Eg.allocUnsafe : void 0;\nfunction Og(e, t) {\n\tif (t) return e.slice();\n\tvar n = e.length, r = Dg ? Dg(n) : new e.constructor(n);\n\treturn e.copy(r), r;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js\nfunction kg(e, t) {\n\tfor (var n = -1, r = e == null ? 0 : e.length, i = 0, a = []; ++n < r;) {\n\t\tvar o = e[n];\n\t\tt(o, n, e) && (a[i++] = o);\n\t}\n\treturn a;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js\nfunction Ag() {\n\treturn [];\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js\nvar jg = Object.prototype.propertyIsEnumerable, Mg = Object.getOwnPropertySymbols, Ng = Mg ? function(e) {\n\treturn e == null ? [] : (e = Object(e), kg(Mg(e), function(t) {\n\t\treturn jg.call(e, t);\n\t}));\n} : Ag;\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js\nfunction Pg(e, t) {\n\treturn kp(e, Ng(e), t);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js\nvar Fg = Object.getOwnPropertySymbols ? function(e) {\n\tfor (var t = []; e;) Oh(t, Ng(e)), e = Ph(e);\n\treturn t;\n} : Ag;\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js\nfunction Ig(e, t) {\n\treturn kp(e, Fg(e), t);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js\nfunction Lg(e, t, n) {\n\tvar r = t(e);\n\treturn Ef(e) ? r : Oh(r, n(e));\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js\nfunction Rg(e) {\n\treturn Lg(e, Pm, Ng);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js\nfunction zg(e) {\n\treturn Lg(e, Rm, Fg);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js\nvar Bg = cp(lf, \"DataView\"), Vg = cp(lf, \"Promise\"), Hg = cp(lf, \"Set\"), Ug = \"[object Map]\", Wg = \"[object Object]\", Gg = \"[object Promise]\", Kg = \"[object Set]\", qg = \"[object WeakMap]\", Jg = \"[object DataView]\", Yg = Qf(Bg), Xg = Qf(sh), Zg = Qf(Vg), Qg = Qf(Hg), $g = Qf(lp), e_ = xf;\n(Bg && e_(new Bg(/* @__PURE__ */ new ArrayBuffer(1))) != Jg || sh && e_(new sh()) != Ug || Vg && e_(Vg.resolve()) != Gg || Hg && e_(new Hg()) != Kg || lp && e_(new lp()) != qg) && (e_ = function(e) {\n\tvar t = xf(e), n = t == Wg ? e.constructor : void 0, r = n ? Qf(n) : \"\";\n\tif (r) switch (r) {\n\t\tcase Yg: return Jg;\n\t\tcase Xg: return Ug;\n\t\tcase Zg: return Gg;\n\t\tcase Qg: return Kg;\n\t\tcase $g: return qg;\n\t}\n\treturn t;\n});\nvar t_ = e_, n_ = Object.prototype.hasOwnProperty;\nfunction r_(e) {\n\tvar t = e.length, n = new e.constructor(t);\n\treturn t && typeof e[0] == \"string\" && n_.call(e, \"index\") && (n.index = e.index, n.input = e.input), n;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js\nvar i_ = lf.Uint8Array;\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js\nfunction a_(e) {\n\tvar t = new e.constructor(e.byteLength);\n\treturn new i_(t).set(new i_(e)), t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js\nfunction o_(e, t) {\n\tvar n = t ? a_(e.buffer) : e.buffer;\n\treturn new e.constructor(n, e.byteOffset, e.byteLength);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js\nvar s_ = /\\w*$/;\nfunction c_(e) {\n\tvar t = new e.constructor(e.source, s_.exec(e));\n\treturn t.lastIndex = e.lastIndex, t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js\nvar l_ = uf ? uf.prototype : void 0, u_ = l_ ? l_.valueOf : void 0;\nfunction d_(e) {\n\treturn u_ ? Object(u_.call(e)) : {};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js\nfunction f_(e, t) {\n\tvar n = t ? a_(e.buffer) : e.buffer;\n\treturn new e.constructor(n, e.byteOffset, e.length);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js\nvar p_ = \"[object Boolean]\", m_ = \"[object Date]\", h_ = \"[object Map]\", g_ = \"[object Number]\", __ = \"[object RegExp]\", v_ = \"[object Set]\", y_ = \"[object String]\", b_ = \"[object Symbol]\", x_ = \"[object ArrayBuffer]\", S_ = \"[object DataView]\", C_ = \"[object Float32Array]\", w_ = \"[object Float64Array]\", T_ = \"[object Int8Array]\", E_ = \"[object Int16Array]\", D_ = \"[object Int32Array]\", O_ = \"[object Uint8Array]\", k_ = \"[object Uint8ClampedArray]\", A_ = \"[object Uint16Array]\", j_ = \"[object Uint32Array]\";\nfunction M_(e, t, n) {\n\tvar r = e.constructor;\n\tswitch (t) {\n\t\tcase x_: return a_(e);\n\t\tcase p_:\n\t\tcase m_: return new r(+e);\n\t\tcase S_: return o_(e, n);\n\t\tcase C_:\n\t\tcase w_:\n\t\tcase T_:\n\t\tcase E_:\n\t\tcase D_:\n\t\tcase O_:\n\t\tcase k_:\n\t\tcase A_:\n\t\tcase j_: return f_(e, n);\n\t\tcase h_: return new r();\n\t\tcase g_:\n\t\tcase y_: return new r(e);\n\t\tcase __: return c_(e);\n\t\tcase v_: return new r();\n\t\tcase b_: return d_(e);\n\t}\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js\nfunction N_(e) {\n\treturn typeof e.constructor == \"function\" && !Ip(e) ? dp(Ph(e)) : {};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js\nvar P_ = \"[object Map]\";\nfunction F_(e) {\n\treturn Sf(e) && t_(e) == P_;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isMap.js\nvar I_ = Tm && Tm.isMap, L_ = I_ ? xm(I_) : F_, R_ = \"[object Set]\";\nfunction z_(e) {\n\treturn Sf(e) && t_(e) == R_;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isSet.js\nvar B_ = Tm && Tm.isSet, V_ = B_ ? xm(B_) : z_, H_ = 1, U_ = 2, W_ = 4, G_ = \"[object Arguments]\", K_ = \"[object Array]\", q_ = \"[object Boolean]\", J_ = \"[object Date]\", Y_ = \"[object Error]\", X_ = \"[object Function]\", Z_ = \"[object GeneratorFunction]\", Q_ = \"[object Map]\", $_ = \"[object Number]\", ev = \"[object Object]\", tv = \"[object RegExp]\", nv = \"[object Set]\", rv = \"[object String]\", iv = \"[object Symbol]\", av = \"[object WeakMap]\", ov = \"[object ArrayBuffer]\", sv = \"[object DataView]\", cv = \"[object Float32Array]\", lv = \"[object Float64Array]\", uv = \"[object Int8Array]\", dv = \"[object Int16Array]\", fv = \"[object Int32Array]\", pv = \"[object Uint8Array]\", mv = \"[object Uint8ClampedArray]\", hv = \"[object Uint16Array]\", gv = \"[object Uint32Array]\", _v = {};\n_v[G_] = _v[K_] = _v[ov] = _v[sv] = _v[q_] = _v[J_] = _v[cv] = _v[lv] = _v[uv] = _v[dv] = _v[fv] = _v[Q_] = _v[$_] = _v[ev] = _v[tv] = _v[nv] = _v[rv] = _v[iv] = _v[pv] = _v[mv] = _v[hv] = _v[gv] = !0, _v[Y_] = _v[X_] = _v[av] = !1;\nfunction vv(e, t, n, r, i, a) {\n\tvar o, s = t & H_, c = t & U_, l = t & W_;\n\tif (n && (o = i ? n(e, r, i, a) : n(e)), o !== void 0) return o;\n\tif (!Ff(e)) return e;\n\tvar u = Ef(e);\n\tif (u) {\n\t\tif (o = r_(e), !s) return pp(e, o);\n\t} else {\n\t\tvar d = t_(e), f = d == X_ || d == Z_;\n\t\tif (Jp(e)) return Og(e, s);\n\t\tif (d == ev || d == G_ || f && !i) {\n\t\t\tif (o = c || f ? {} : N_(e), !s) return c ? Ig(e, Cg(o, e)) : Pg(e, Sg(o, e));\n\t\t} else {\n\t\t\tif (!_v[d]) return i ? e : {};\n\t\t\to = M_(e, d, s);\n\t\t}\n\t}\n\ta ||= new xg();\n\tvar p = a.get(e);\n\tif (p) return p;\n\ta.set(e, o), V_(e) ? e.forEach(function(r) {\n\t\to.add(vv(r, t, n, r, e, a));\n\t}) : L_(e) && e.forEach(function(r, i) {\n\t\to.set(i, vv(r, t, n, i, e, a));\n\t});\n\tvar m = u ? void 0 : (l ? c ? zg : Rg : c ? Rm : Pm)(e);\n\treturn xp(m || e, function(r, i) {\n\t\tm && (i = r, r = e[i]), Op(o, i, vv(r, t, n, i, e, a));\n\t}), o;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js\nvar yv = \"__lodash_hash_undefined__\";\nfunction bv(e) {\n\treturn this.__data__.set(e, yv), this;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js\nfunction xv(e) {\n\treturn this.__data__.has(e);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js\nfunction Sv(e) {\n\tvar t = -1, n = e == null ? 0 : e.length;\n\tfor (this.__data__ = new hh(); ++t < n;) this.add(e[t]);\n}\nSv.prototype.add = Sv.prototype.push = bv, Sv.prototype.has = xv;\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js\nfunction Cv(e, t) {\n\tfor (var n = -1, r = e == null ? 0 : e.length; ++n < r;) if (t(e[n], n, e)) return !0;\n\treturn !1;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js\nfunction wv(e, t) {\n\treturn e.has(t);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js\nvar Tv = 1, Ev = 2;\nfunction Dv(e, t, n, r, i, a) {\n\tvar o = n & Tv, s = e.length, c = t.length;\n\tif (s != c && !(o && c > s)) return !1;\n\tvar l = a.get(e), u = a.get(t);\n\tif (l && u) return l == t && u == e;\n\tvar d = -1, f = !0, p = n & Ev ? new Sv() : void 0;\n\tfor (a.set(e, t), a.set(t, e); ++d < s;) {\n\t\tvar m = e[d], h = t[d];\n\t\tif (r) var g = o ? r(h, m, d, t, e, a) : r(m, h, d, e, t, a);\n\t\tif (g !== void 0) {\n\t\t\tif (g) continue;\n\t\t\tf = !1;\n\t\t\tbreak;\n\t\t}\n\t\tif (p) {\n\t\t\tif (!Cv(t, function(e, t) {\n\t\t\t\tif (!wv(p, t) && (m === e || i(m, e, n, r, a))) return p.push(t);\n\t\t\t})) {\n\t\t\t\tf = !1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} else if (!(m === h || i(m, h, n, r, a))) {\n\t\t\tf = !1;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn a.delete(e), a.delete(t), f;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js\nfunction Ov(e) {\n\tvar t = -1, n = Array(e.size);\n\treturn e.forEach(function(e, r) {\n\t\tn[++t] = [r, e];\n\t}), n;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js\nfunction kv(e) {\n\tvar t = -1, n = Array(e.size);\n\treturn e.forEach(function(e) {\n\t\tn[++t] = e;\n\t}), n;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js\nvar Av = 1, jv = 2, Mv = \"[object Boolean]\", Nv = \"[object Date]\", Pv = \"[object Error]\", Fv = \"[object Map]\", Iv = \"[object Number]\", Lv = \"[object RegExp]\", Rv = \"[object Set]\", zv = \"[object String]\", Bv = \"[object Symbol]\", Vv = \"[object ArrayBuffer]\", Hv = \"[object DataView]\", Uv = uf ? uf.prototype : void 0, Wv = Uv ? Uv.valueOf : void 0;\nfunction Gv(e, t, n, r, i, a, o) {\n\tswitch (n) {\n\t\tcase Hv:\n\t\t\tif (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1;\n\t\t\te = e.buffer, t = t.buffer;\n\t\tcase Vv: return !(e.byteLength != t.byteLength || !a(new i_(e), new i_(t)));\n\t\tcase Mv:\n\t\tcase Nv:\n\t\tcase Iv: return Ep(+e, +t);\n\t\tcase Pv: return e.name == t.name && e.message == t.message;\n\t\tcase Lv:\n\t\tcase zv: return e == t + \"\";\n\t\tcase Fv: var s = Ov;\n\t\tcase Rv:\n\t\t\tvar c = r & Av;\n\t\t\tif (s ||= kv, e.size != t.size && !c) return !1;\n\t\t\tvar l = o.get(e);\n\t\t\tif (l) return l == t;\n\t\t\tr |= jv, o.set(e, t);\n\t\t\tvar u = Dv(s(e), s(t), r, i, a, o);\n\t\t\treturn o.delete(e), u;\n\t\tcase Bv: if (Wv) return Wv.call(e) == Wv.call(t);\n\t}\n\treturn !1;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js\nvar Kv = 1, qv = Object.prototype.hasOwnProperty;\nfunction Jv(e, t, n, r, i, a) {\n\tvar o = n & Kv, s = Rg(e), c = s.length;\n\tif (c != Rg(t).length && !o) return !1;\n\tfor (var l = c; l--;) {\n\t\tvar u = s[l];\n\t\tif (!(o ? u in t : qv.call(t, u))) return !1;\n\t}\n\tvar d = a.get(e), f = a.get(t);\n\tif (d && f) return d == t && f == e;\n\tvar p = !0;\n\ta.set(e, t), a.set(t, e);\n\tfor (var m = o; ++l < c;) {\n\t\tu = s[l];\n\t\tvar h = e[u], g = t[u];\n\t\tif (r) var _ = o ? r(g, h, u, t, e, a) : r(h, g, u, e, t, a);\n\t\tif (!(_ === void 0 ? h === g || i(h, g, n, r, a) : _)) {\n\t\t\tp = !1;\n\t\t\tbreak;\n\t\t}\n\t\tm ||= u == \"constructor\";\n\t}\n\tif (p && !m) {\n\t\tvar v = e.constructor, y = t.constructor;\n\t\tv != y && \"constructor\" in e && \"constructor\" in t && !(typeof v == \"function\" && v instanceof v && typeof y == \"function\" && y instanceof y) && (p = !1);\n\t}\n\treturn a.delete(e), a.delete(t), p;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js\nvar Yv = 1, Xv = \"[object Arguments]\", Zv = \"[object Array]\", Qv = \"[object Object]\", $v = Object.prototype.hasOwnProperty;\nfunction ey(e, t, n, r, i, a) {\n\tvar o = Ef(e), s = Ef(t), c = o ? Zv : t_(e), l = s ? Zv : t_(t);\n\tc = c == Xv ? Qv : c, l = l == Xv ? Qv : l;\n\tvar u = c == Qv, d = l == Qv, f = c == l;\n\tif (f && Jp(e)) {\n\t\tif (!Jp(t)) return !1;\n\t\to = !0, u = !1;\n\t}\n\tif (f && !u) return a ||= new xg(), o || Dm(e) ? Dv(e, t, n, r, i, a) : Gv(e, t, c, n, r, i, a);\n\tif (!(n & Yv)) {\n\t\tvar p = u && $v.call(e, \"__wrapped__\"), m = d && $v.call(t, \"__wrapped__\");\n\t\tif (p || m) {\n\t\t\tvar h = p ? e.value() : e, g = m ? t.value() : t;\n\t\t\treturn a ||= new xg(), i(h, g, n, r, a);\n\t\t}\n\t}\n\treturn f ? (a ||= new xg(), Jv(e, t, n, r, i, a)) : !1;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js\nfunction ty(e, t, n, r, i) {\n\treturn e === t ? !0 : e == null || t == null || !Sf(e) && !Sf(t) ? e !== e && t !== t : ey(e, t, n, r, ty, i);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/now.js\nvar ny = function() {\n\treturn lf.Date.now();\n}, ry = \"Expected a function\", iy = Math.max, ay = Math.min;\nfunction oy(e, t, n) {\n\tvar r, i, a, o, s, c, l = 0, u = !1, d = !1, f = !0;\n\tif (typeof e != \"function\") throw TypeError(ry);\n\tt = Vf(t) || 0, Ff(n) && (u = !!n.leading, d = \"maxWait\" in n, a = d ? iy(Vf(n.maxWait) || 0, t) : a, f = \"trailing\" in n ? !!n.trailing : f);\n\tfunction p(t) {\n\t\tvar n = r, a = i;\n\t\treturn r = i = void 0, l = t, o = e.apply(a, n), o;\n\t}\n\tfunction m(e) {\n\t\treturn l = e, s = setTimeout(_, t), u ? p(e) : o;\n\t}\n\tfunction h(e) {\n\t\tvar n = e - c, r = e - l, i = t - n;\n\t\treturn d ? ay(i, a - r) : i;\n\t}\n\tfunction g(e) {\n\t\tvar n = e - c, r = e - l;\n\t\treturn c === void 0 || n >= t || n < 0 || d && r >= a;\n\t}\n\tfunction _() {\n\t\tvar e = ny();\n\t\tif (g(e)) return v(e);\n\t\ts = setTimeout(_, h(e));\n\t}\n\tfunction v(e) {\n\t\treturn s = void 0, f && r ? p(e) : (r = i = void 0, o);\n\t}\n\tfunction y() {\n\t\ts !== void 0 && clearTimeout(s), l = 0, r = c = i = s = void 0;\n\t}\n\tfunction b() {\n\t\treturn s === void 0 ? o : v(ny());\n\t}\n\tfunction x() {\n\t\tvar e = ny(), n = g(e);\n\t\tif (r = arguments, i = this, c = e, n) {\n\t\t\tif (s === void 0) return m(c);\n\t\t\tif (d) return clearTimeout(s), s = setTimeout(_, t), p(c);\n\t\t}\n\t\treturn s === void 0 && (s = setTimeout(_, t)), o;\n\t}\n\treturn x.cancel = y, x.flush = b, x;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/last.js\nfunction sy(e) {\n\tvar t = e == null ? 0 : e.length;\n\treturn t ? e[t - 1] : void 0;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_parent.js\nfunction cy(e, t) {\n\treturn t.length < 2 ? e : Dh(e, Hh(t, 0, -1));\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isEqual.js\nfunction ly(e, t) {\n\treturn ty(e, t);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseUnset.js\nvar uy = Object.prototype.hasOwnProperty;\nfunction dy(e, t) {\n\tt = wh(t, e);\n\tvar n = -1, r = t.length;\n\tif (!r) return !0;\n\tfor (; ++n < r;) {\n\t\tvar i = Eh(t[n]);\n\t\tif (i === \"__proto__\" && !uy.call(e, \"__proto__\") || (i === \"constructor\" || i === \"prototype\") && n < r - 1) return !1;\n\t}\n\tvar a = cy(e, t);\n\treturn a == null || delete a[Eh(sy(t))];\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_customOmitClone.js\nfunction fy(e) {\n\treturn Vh(e) ? void 0 : e;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/omit.js\nvar py = 1, my = 2, hy = 4, gy = Nh(function(e, t) {\n\tvar n = {};\n\tif (e == null) return n;\n\tvar r = !1;\n\tt = Tf(t, function(t) {\n\t\treturn t = wh(t, e), r ||= t.length > 1, t;\n\t}), kp(e, zg(e), n), r && (n = vv(n, py | my | hy, fy));\n\tfor (var i = t.length; i--;) dy(n, t[i]);\n\treturn n;\n}), _y = \"Expected a function\";\nfunction vy(e, t, n) {\n\tvar r = !0, i = !0;\n\tif (typeof e != \"function\") throw TypeError(_y);\n\treturn Ff(n) && (r = \"leading\" in n ? !!n.leading : r, i = \"trailing\" in n ? !!n.trailing : i), oy(e, t, {\n\t\tleading: r,\n\t\tmaxWait: t,\n\t\ttrailing: i\n\t});\n}\nvar yy = { seekBar: \"_seekBar_16dv7_14\" };\n//#endregion\n//#region src/audio/SeekBar/SeekBar.tsx\nfunction by({ value: e = 0, className: t, ...n }) {\n\tlet { translate: r } = V(), [i, a] = T(e), o = S(() => vy(a, 10), []);\n\treturn _(() => {\n\t\to(e);\n\t}, [e, o]), /* @__PURE__ */ (0, B.jsx)(\"input\", {\n\t\ttype: \"range\",\n\t\tclassName: (0, z.default)(yy.seekBar, t),\n\t\tonMouseDown: (e) => e.stopPropagation(),\n\t\tmin: 0,\n\t\tmax: 100,\n\t\tvalue: i,\n\t\tstep: 1,\n\t\tstyle: { \"--fillTo\": i / 100 },\n\t\t\"aria-label\": r(\"a11y|seek_bar_label\"),\n\t\t...n\n\t});\n}\nvar xy = {\n\tavatarWithDetails: \"_avatarWithDetails_10imw_8\",\n\ttitle: \"_title_10imw_17\",\n\tdetails: \"_details_10imw_28\"\n}, Sy = { flex: \"_flex_4dswl_9\" };\n//#endregion\n//#region src/core/utils/Flex/Flex.tsx\nfunction H({ as: e = \"div\", display: t = \"flex\", direction: n = \"row\", align: r = \"start\", justify: i = \"start\", gap: a = \"0\", wrap: s = \"nowrap\", className: c, children: l, ...u }) {\n\tlet d = S(() => ({\n\t\t\"--mx-flex-display\": t,\n\t\t\"--mx-flex-direction\": n,\n\t\t\"--mx-flex-align\": r,\n\t\t\"--mx-flex-justify\": i,\n\t\t\"--mx-flex-gap\": a,\n\t\t\"--mx-flex-wrap\": s\n\t}), [\n\t\tr,\n\t\tn,\n\t\tt,\n\t\ta,\n\t\ti,\n\t\ts\n\t]);\n\treturn o.createElement(e, {\n\t\t...u,\n\t\tclassName: (0, z.default)(Sy.flex, c),\n\t\tstyle: d\n\t}, l);\n}\n//#endregion\n//#region src/core/AvatarWithDetails/AvatarWithDetails.tsx\nfunction Cy({ as: e, className: t, details: n, avatar: r, title: i, ...a }) {\n\treturn /* @__PURE__ */ (0, B.jsxs)(e || \"div\", {\n\t\tclassName: (0, z.default)(xy.avatarWithDetails, t),\n\t\t...a,\n\t\tchildren: [r, /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\tdirection: \"column\",\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: xy.title,\n\t\t\t\tchildren: i\n\t\t\t}), /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: xy.details,\n\t\t\t\tchildren: n\n\t\t\t})]\n\t\t})]\n\t});\n}\n//#endregion\n//#region src/core/viewmodel/Disposables.ts\nvar wy = class {\n\tdisposables = [];\n\t_isDisposed = !1;\n\tdispose() {\n\t\tif (!this.isDisposed) {\n\t\t\tthis._isDisposed = !0;\n\t\t\tfor (let e of this.disposables) typeof e == \"function\" ? e() : e.dispose();\n\t\t}\n\t}\n\ttrack(e) {\n\t\treturn this.throwIfDisposed(), this.disposables.push(e), e;\n\t}\n\ttrackListener(e, t, n) {\n\t\tthis.throwIfDisposed(), e.on(t, n), this.track(() => {\n\t\t\te.off(t, n);\n\t\t});\n\t}\n\tthrowIfDisposed() {\n\t\tif (this.isDisposed) throw Error(\"Disposable is already disposed\");\n\t}\n\tget isDisposed() {\n\t\treturn this._isDisposed;\n\t}\n}, Ty = class {\n\tsnapshot;\n\temit;\n\tconstructor(e, t) {\n\t\tthis.snapshot = e, this.emit = t;\n\t}\n\tset(e) {\n\t\tthis.snapshot = e, this.emit();\n\t}\n\tmerge(e) {\n\t\tObject.keys(e).some((t) => !Object.is(e[t], this.snapshot[t])) && (this.snapshot = {\n\t\t\t...this.snapshot,\n\t\t\t...e\n\t\t}, this.emit());\n\t}\n\tget current() {\n\t\treturn this.snapshot;\n\t}\n}, Ey = class {\n\tlisteners = /* @__PURE__ */ new Set();\n\tadd = (e) => (this.listeners.add(e), () => {\n\t\tthis.listeners.delete(e);\n\t});\n\temit = () => {\n\t\tfor (let e of this.listeners) e();\n\t};\n}, Dy = class {\n\tsubs;\n\tsnapshot;\n\tprops;\n\tdisposables = new wy();\n\tconstructor(e, t) {\n\t\tthis.props = e, this.subs = new Ey(), this.snapshot = new Ty(t, () => {\n\t\t\tthis.subs.emit();\n\t\t});\n\t}\n\tsubscribe = (e) => this.subs.add(e);\n\tgetSnapshot = () => this.snapshot.current;\n\tdispose() {\n\t\tthis.disposables.dispose();\n\t}\n\tget isDisposed() {\n\t\treturn this.disposables.isDisposed;\n\t}\n}, Oy = class {\n\tsnapshot;\n\tconstructor(e) {\n\t\tthis.snapshot = e;\n\t}\n\tgetSnapshot = () => this.snapshot;\n\tsubscribe(e) {\n\t\treturn () => void 0;\n\t}\n};\n//#endregion\n//#region src/core/viewmodel/useCreateAutoDisposedViewModel.ts\nfunction ky(e) {\n\tlet [t, n] = T(e);\n\treturn _(() => {\n\t\tlet r = t;\n\t\tif (t.isDisposed) {\n\t\t\tlet t = e();\n\t\t\tr = t, n(t);\n\t\t}\n\t\treturn () => {\n\t\t\tr.dispose();\n\t\t};\n\t}, []), t;\n}\n//#endregion\n//#region src/core/viewmodel/useMockedViewModel.ts\nfunction Ay(e, t) {\n\treturn S(() => {\n\t\tlet n = new Oy(e);\n\t\treturn Object.assign(n, t), n;\n\t}, [e, t]);\n}\n//#endregion\n//#region src/core/viewmodel/useViewModel.ts\nfunction U(e) {\n\treturn ee(e.subscribe, e.getSnapshot, e.getSnapshot);\n}\n//#endregion\n//#region src/core/MemberAvatar/MemberAvatarView.tsx\nfunction jy(e) {\n\tlet { name: t, id: n, url: r, size: i } = U(e.vm);\n\treturn /* @__PURE__ */ (0, B.jsx)(E, {\n\t\tclassName: e.classNames,\n\t\tname: t,\n\t\tid: n,\n\t\tsrc: r,\n\t\tsize: i\n\t});\n}\n//#endregion\n//#region src/core/FacePile/FacePileView.tsx\nfunction My(e) {\n\tlet { memberAvatarViewModels: t } = U(e.vm);\n\treturn t.length === 0 ? null : /* @__PURE__ */ (0, B.jsx)(ne, {\n\t\tclassName: e.classNames,\n\t\tchildren: t.map((e) => /* @__PURE__ */ (0, B.jsx)(jy, { vm: e }, e.getSnapshot().id))\n\t});\n}\n//#endregion\n//#region src/core/roving/RovingTabIndex.tsx\nfunction Ny(e) {\n\treturn e.matches(\"input:not([type=\\\"radio\\\"]):not([type=\\\"checkbox\\\"]), textarea, select, [contenteditable=true]\");\n}\nvar Py = l({\n\tstate: { nodes: [] },\n\tdispatch: () => {}\n});\nPy.displayName = \"RovingTabIndexContext\";\nvar Fy = /* @__PURE__ */ function(e) {\n\treturn e.Register = \"REGISTER\", e.Unregister = \"UNREGISTER\", e.SetFocus = \"SET_FOCUS\", e.Update = \"UPDATE\", e;\n}({}), Iy = /* @__PURE__ */ function(e) {\n\treturn e.Home = \"HOME\", e.End = \"END\", e.ArrowLeft = \"ARROW_LEFT\", e.ArrowUp = \"ARROW_UP\", e.ArrowRight = \"ARROW_RIGHT\", e.ArrowDown = \"ARROW_DOWN\", e.Tab = \"TAB\", e;\n}({}), Ly = (e, t) => {\n\tif (e === t) return 0;\n\tlet n = e.compareDocumentPosition(t);\n\treturn n & Node.DOCUMENT_POSITION_FOLLOWING || n & Node.DOCUMENT_POSITION_CONTAINED_BY ? -1 : n & Node.DOCUMENT_POSITION_PRECEDING || n & Node.DOCUMENT_POSITION_CONTAINS ? 1 : 0;\n}, Ry = (e, t) => t >= e.length ? Uy(e, e.length - 1) : Hy(e, t) || Uy(e, t), zy = (e, t) => {\n\te.activeNode = Ry(e.nodes, t), document.activeElement === document.body && setTimeout(() => e.activeNode?.focus(), 0);\n}, By = (e, t) => {\n\tswitch (t.type) {\n\t\tcase \"REGISTER\": return e.activeNode ??= t.payload.node, e.nodes.includes(t.payload.node) ? e : (e.nodes.push(t.payload.node), e.nodes.sort(Ly), { ...e });\n\t\tcase \"UNREGISTER\": {\n\t\t\tlet n = e.nodes.indexOf(t.payload.node);\n\t\t\treturn n === -1 ? e : (e.nodes.splice(n, 1)[0] === e.activeNode && zy(e, n), { ...e });\n\t\t}\n\t\tcase \"SET_FOCUS\": return e.activeNode === t.payload.node ? e : (e.activeNode = t.payload.node, { ...e });\n\t\tcase \"UPDATE\": return e.nodes.sort(Ly), { ...e };\n\t\tdefault: return e;\n\t}\n}, Vy = (e, t, n, r) => {\n\tif (r === 1) {\n\t\tfor (let i = t; i < n; i += r) if (e[i]?.offsetParent !== null) return e[i];\n\t} else for (let i = t; i > n; i += r) if (e[i]?.offsetParent !== null) return e[i];\n}, Hy = (e, t, n = !1) => {\n\tlet r = Vy(e, t, e.length, 1);\n\treturn r || !n ? r : Vy(e.slice(0, t), 0, t, 1);\n}, Uy = (e, t, n = !1) => {\n\tlet r = Vy(e, t, -1, -1);\n\tif (r || !n) return r;\n\tlet i = e.slice(t + 1);\n\treturn Vy(i, i.length - 1, -1, -1);\n}, Wy = (e) => {\n\tswitch (e.key) {\n\t\tcase \"Home\": return \"HOME\";\n\t\tcase \"End\": return \"END\";\n\t\tcase \"ArrowLeft\": return \"ARROW_LEFT\";\n\t\tcase \"ArrowUp\": return \"ARROW_UP\";\n\t\tcase \"ArrowRight\": return \"ARROW_RIGHT\";\n\t\tcase \"ArrowDown\": return \"ARROW_DOWN\";\n\t\tcase \"Tab\": return \"TAB\";\n\t\tdefault: return;\n\t}\n}, Gy = (e, t, n, r = !1) => {\n\tif (e.length === 0 || !t) return;\n\tlet i = e.indexOf(t) + (n ? -1 : 1);\n\treturn n ? Uy(e, i, r) : Hy(e, i, r);\n}, Ky = (e, t, n, r) => e === \"TAB\" ? {\n\thandled: !0,\n\tfocusNode: Gy(t, n, r)\n} : { handled: !1 }, qy = (e, t, n, r, i) => ({\n\tHOME: {\n\t\tenabled: t,\n\t\tgetFocusNode: (e) => Hy(e.nodes, 0)\n\t},\n\tEND: {\n\t\tenabled: t,\n\t\tgetFocusNode: (e) => Uy(e.nodes, e.nodes.length - 1)\n\t},\n\tARROW_DOWN: {\n\t\tenabled: n,\n\t\tgetFocusNode: (e) => Gy(e.nodes, e.activeNode, !1, i)\n\t},\n\tARROW_RIGHT: {\n\t\tenabled: r,\n\t\tgetFocusNode: (e) => Gy(e.nodes, e.activeNode, !1, i)\n\t},\n\tARROW_UP: {\n\t\tenabled: n,\n\t\tgetFocusNode: (e) => Gy(e.nodes, e.activeNode, !0, i)\n\t},\n\tARROW_LEFT: {\n\t\tenabled: r,\n\t\tgetFocusNode: (e) => Gy(e.nodes, e.activeNode, !0, i)\n\t},\n\tTAB: {\n\t\tenabled: !1,\n\t\tgetFocusNode: () => void 0\n\t}\n}), Jy = (e, t, n, r, i, a) => {\n\tif (!e) return { handled: !1 };\n\tlet o = qy(t, n, r, i, a)[e];\n\treturn o?.enabled ? {\n\t\thandled: !0,\n\t\tfocusNode: o.getFocusNode(t)\n\t} : { handled: !1 };\n}, Yy = ({ children: e, handleHomeEnd: t, handleUpDown: n, handleLeftRight: r, handleLoop: i, handleInputFields: a, scrollIntoView: o, onKeyDown: s, getAction: c = Wy }) => {\n\tlet [l, u] = C(By, { nodes: [] }), d = S(() => ({\n\t\tstate: l,\n\t\tdispatch: u\n\t}), [l]), f = h((e) => {\n\t\tif (s && (s(e, d.state, d.dispatch), e.defaultPrevented)) return;\n\t\tlet l = c(e), { handled: f, focusNode: p } = !a && Ny(e.target) ? Ky(l, d.state.nodes, d.state.activeNode, e.shiftKey) : Jy(l, d.state, t ?? !1, n ?? !1, r ?? !1, i ?? !1);\n\t\tf && (e.preventDefault(), e.stopPropagation()), p && (p.focus(), u({\n\t\t\ttype: \"SET_FOCUS\",\n\t\t\tpayload: { node: p }\n\t\t}), o && p.scrollIntoView(o));\n\t}, [\n\t\td,\n\t\tc,\n\t\ts,\n\t\tt,\n\t\tn,\n\t\tr,\n\t\ti,\n\t\ta,\n\t\to\n\t]), p = h(() => {\n\t\tu({ type: \"UPDATE\" });\n\t}, []);\n\treturn /* @__PURE__ */ (0, B.jsx)(Py.Provider, {\n\t\tvalue: d,\n\t\tchildren: e({\n\t\t\tonKeyDownHandler: f,\n\t\t\tonDragEndHandler: p\n\t\t})\n\t});\n}, Xy = (e) => {\n\tlet t = g(Py), n = w(null);\n\te && (n = e);\n\tlet r = h((e) => {\n\t\te ? (n.current = e, t.dispatch({\n\t\t\ttype: \"REGISTER\",\n\t\t\tpayload: { node: e }\n\t\t})) : (t.dispatch({\n\t\t\ttype: \"UNREGISTER\",\n\t\t\tpayload: { node: n.current }\n\t\t}), n.current = null);\n\t}, []);\n\treturn [\n\t\th(() => {\n\t\t\tif (!n.current) {\n\t\t\t\tconsole.warn(\"useRovingTabIndex.onFocus called but the react ref does not point to any DOM element!\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tt.dispatch({\n\t\t\t\ttype: \"SET_FOCUS\",\n\t\t\t\tpayload: { node: n.current }\n\t\t\t});\n\t\t}, []),\n\t\tt.state.activeNode === n.current,\n\t\tr,\n\t\tn\n\t];\n}, Zy = (e) => e.parentElement ?? void 0, Qy = (e) => {\n\tlet t = e.children[0];\n\treturn t instanceof HTMLElement ? t : void 0;\n}, $y = (e) => e === Iy.ArrowLeft || e === Iy.ArrowRight || e === Iy.ArrowUp || e === Iy.ArrowDown, eb = (e, t, n) => {\n\tif (!t.activeNode) return;\n\tlet r = t.nodes.indexOf(t.activeNode);\n\tif (r !== -1) {\n\t\tif (e === Iy.ArrowLeft) return Uy(t.nodes, r - 1, n);\n\t\tif (e === Iy.ArrowRight) return Hy(t.nodes, r + 1, n);\n\t}\n}, tb = (e, t, n, r, i) => {\n\tif (!t.activeNode) return;\n\tlet a = r(t.activeNode), o = n(t.activeNode);\n\tif (!a || !o) return;\n\tlet s = Array.from(a.children).indexOf(o), c = t.nodes.indexOf(t.activeNode);\n\tif (s === -1 || c === -1) return;\n\tlet l = e === Iy.ArrowUp ? c - s - 1 : c - s + a.children.length, u = r(t.nodes[l]);\n\tif (u) {\n\t\tif (!(u instanceof HTMLElement) || u.offsetParent === null || u.children.length === 0) return;\n\t\tlet e = Math.min(s, u.children.length - 1), n = i(u.children[e]);\n\t\tif (n?.offsetParent && t.nodes.includes(n)) return n;\n\t}\n}, nb = (e, t, n, r) => typeof e == \"function\" ? e(t, n, r) : e ?? !0, rb = ({ children: e, getAction: t, getGridCell: n = Zy, getRow: r, getRovingNode: i = Qy, handleInputFields: a, handleLoop: o, moveFocus: s, onGridNavigation: c, onKeyDown: l, scrollIntoView: u, ...d }) => {\n\tlet f = h((e) => r?.(e) ?? n(e)?.parentElement ?? void 0, [n, r]), p = h((e, r, d) => {\n\t\tif (l?.(e, r, d), e.defaultPrevented) return;\n\t\tlet p = t?.(e) ?? ib(e);\n\t\tif (!$y(p) || !r.activeNode || !a && e.target instanceof HTMLElement && Ny(e.target)) return;\n\t\tlet m = p === Iy.ArrowUp || p === Iy.ArrowDown ? tb(p, r, n, f, i) : eb(p, r, o);\n\t\te.preventDefault(), e.stopPropagation(), m && (nb(s, m, e, r) && m.focus(), d({\n\t\t\ttype: Fy.SetFocus,\n\t\t\tpayload: { node: m }\n\t\t}), u && m.scrollIntoView(u), c?.(e, m, r, d));\n\t}, [\n\t\tt,\n\t\tn,\n\t\ti,\n\t\ta,\n\t\to,\n\t\ts,\n\t\tc,\n\t\tl,\n\t\tf,\n\t\tu\n\t]);\n\treturn /* @__PURE__ */ (0, B.jsx)(Yy, {\n\t\t...d,\n\t\tgetAction: t,\n\t\thandleInputFields: a,\n\t\thandleLoop: o,\n\t\tonKeyDown: p,\n\t\tscrollIntoView: u,\n\t\tchildren: e\n\t});\n}, ib = (e) => {\n\tswitch (e.key) {\n\t\tcase \"ArrowLeft\": return Iy.ArrowLeft;\n\t\tcase \"ArrowUp\": return Iy.ArrowUp;\n\t\tcase \"ArrowRight\": return Iy.ArrowRight;\n\t\tcase \"ArrowDown\": return Iy.ArrowDown;\n\t\tdefault: return;\n\t}\n}, ab = ({ children: e, inputRef: t }) => {\n\tlet [n, r, i] = Xy(t);\n\treturn e({\n\t\tonFocus: n,\n\t\tisActive: r,\n\t\tref: i\n\t});\n};\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/check-circle.js\nfunction ob(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m10.6 13.8-2.15-2.15a.95.95 0 0 0-.7-.275.95.95 0 0 0-.7.275.95.95 0 0 0-.275.7q0 .425.275.7L9.9 15.9q.3.3.7.3t.7-.3l5.65-5.65a.95.95 0 0 0 .275-.7.95.95 0 0 0-.275-.7.95.95 0 0 0-.7-.275.95.95 0 0 0-.7.275zM12 22a9.7 9.7 0 0 1-3.9-.788 10.1 10.1 0 0 1-3.175-2.137q-1.35-1.35-2.137-3.175A9.7 9.7 0 0 1 2 12q0-2.075.788-3.9a10.1 10.1 0 0 1 2.137-3.175q1.35-1.35 3.175-2.137A9.7 9.7 0 0 1 12 2q2.075 0 3.9.788a10.1 10.1 0 0 1 3.175 2.137q1.35 1.35 2.137 3.175A9.7 9.7 0 0 1 22 12a9.7 9.7 0 0 1-.788 3.9 10.1 10.1 0 0 1-2.137 3.175q-1.35 1.35-3.175 2.137A9.7 9.7 0 0 1 12 22m0-2q3.35 0 5.675-2.325T20 12t-2.325-5.675T12 4 6.325 6.325 4 12t2.325 5.675T12 20\" })\n\t});\n}\nob.displayName = \"CheckCircleIcon\";\nvar sb = d(ob);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/error.js\nfunction cb(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 17q.424 0 .713-.288A.97.97 0 0 0 13 16a.97.97 0 0 0-.287-.713A.97.97 0 0 0 12 15a.97.97 0 0 0-.713.287A.97.97 0 0 0 11 16q0 .424.287.712.288.288.713.288m0-4q.424 0 .713-.287A.97.97 0 0 0 13 12V8a.97.97 0 0 0-.287-.713A.97.97 0 0 0 12 7a.97.97 0 0 0-.713.287A.97.97 0 0 0 11 8v4q0 .424.287.713.288.287.713.287m0 9a9.7 9.7 0 0 1-3.9-.788 10.1 10.1 0 0 1-3.175-2.137q-1.35-1.35-2.137-3.175A9.7 9.7 0 0 1 2 12q0-2.075.788-3.9a10.1 10.1 0 0 1 2.137-3.175q1.35-1.35 3.175-2.137A9.7 9.7 0 0 1 12 2q2.075 0 3.9.788a10.1 10.1 0 0 1 3.175 2.137q1.35 1.35 2.137 3.175A9.7 9.7 0 0 1 22 12a9.7 9.7 0 0 1-.788 3.9 10.1 10.1 0 0 1-2.137 3.175q-1.35 1.35-3.175 2.137A9.7 9.7 0 0 1 12 22m0-2q3.35 0 5.675-2.325T20 12t-2.325-5.675T12 4 6.325 6.325 4 12t2.325 5.675T12 20\" })\n\t});\n}\ncb.displayName = \"ErrorIcon\";\nvar lb = d(cb);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/info.js\nfunction ub(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M11.288 7.288A.97.97 0 0 1 12 7q.424 0 .713.287Q13 7.576 13 8t-.287.713A.97.97 0 0 1 12 9a.97.97 0 0 1-.713-.287A.97.97 0 0 1 11 8q0-.424.287-.713m.001 4.001A.97.97 0 0 1 12 11q.424 0 .713.287.287.288.287.713v4q0 .424-.287.712A.97.97 0 0 1 12 17a.97.97 0 0 1-.713-.288A.97.97 0 0 1 11 16v-4q0-.424.287-.713\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", {\n\t\t\tfillRule: \"evenodd\",\n\t\t\td: \"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10m-2 0a8 8 0 1 1-16 0 8 8 0 0 1 16 0\",\n\t\t\tclipRule: \"evenodd\"\n\t\t})]\n\t});\n}\nub.displayName = \"InfoIcon\";\nvar db = d(ub), fb = {\n\tbanner: \"_banner_n7ud0_8\",\n\tcontent: \"_content_n7ud0_38\",\n\ticon: \"_icon_n7ud0_50\",\n\tactions: \"_actions_n7ud0_61\"\n};\n//#endregion\n//#region ../../node_modules/.pnpm/matrix-web-i18n@3.6.0/node_modules/matrix-web-i18n/lib/utils.js\nfunction pb(e) {\n\treturn e.toLowerCase().replace(\"_\", \"-\");\n}\nfunction mb(e) {\n\tlet t = [], n = pb(e), r = n.split(\"-\");\n\treturn r.length === 2 && r[0] === r[1] ? t.push(r[0]) : (t.push(n), r.length === 2 && t.push(r[0])), t;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/matrix-web-i18n@3.6.0/node_modules/matrix-web-i18n/lib/index.js\nvar hb = \"|\", gb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Object.prototype.hasOwnProperty, r = Object.prototype.toString, i = Object.defineProperty, a = Object.getOwnPropertyDescriptor, o = function(e) {\n\t\treturn typeof Array.isArray == \"function\" ? Array.isArray(e) : r.call(e) === \"[object Array]\";\n\t}, s = function(e) {\n\t\tif (!e || r.call(e) !== \"[object Object]\") return !1;\n\t\tvar t = n.call(e, \"constructor\"), i = e.constructor && e.constructor.prototype && n.call(e.constructor.prototype, \"isPrototypeOf\");\n\t\tif (e.constructor && !t && !i) return !1;\n\t\tfor (var a in e);\n\t\treturn a === void 0 || n.call(e, a);\n\t}, c = function(e, t) {\n\t\ti && t.name === \"__proto__\" ? i(e, t.name, {\n\t\t\tenumerable: !0,\n\t\t\tconfigurable: !0,\n\t\t\tvalue: t.newValue,\n\t\t\twritable: !0\n\t\t}) : e[t.name] = t.newValue;\n\t}, l = function(e, t) {\n\t\tif (t === \"__proto__\") {\n\t\t\tif (!n.call(e, t)) return;\n\t\t\tif (a) return a(e, t).value;\n\t\t}\n\t\treturn e[t];\n\t};\n\tt.exports = function e() {\n\t\tvar t, n, r, i, a, u, d = arguments[0], f = 1, p = arguments.length, m = !1;\n\t\tfor (typeof d == \"boolean\" && (m = d, d = arguments[1] || {}, f = 2), (d == null || typeof d != \"object\" && typeof d != \"function\") && (d = {}); f < p; ++f) if (t = arguments[f], t != null) for (n in t) r = l(d, n), i = l(t, n), d !== i && (m && i && (s(i) || (a = o(i))) ? (a ? (a = !1, u = r && o(r) ? r : []) : u = r && s(r) ? r : {}, c(d, {\n\t\t\tname: n,\n\t\t\tnewValue: e(m, u, i)\n\t\t})) : i !== void 0 && c(d, {\n\t\t\tname: n,\n\t\t\tnewValue: i\n\t\t}));\n\t\treturn d;\n\t};\n})), _b = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = function() {\n\t\tif (typeof Symbol != \"function\" || typeof Object.getOwnPropertySymbols != \"function\") return !1;\n\t\tif (typeof Symbol.iterator == \"symbol\") return !0;\n\t\tvar e = {}, t = Symbol(\"test\"), n = Object(t);\n\t\tif (typeof t == \"string\" || Object.prototype.toString.call(t) !== \"[object Symbol]\" || Object.prototype.toString.call(n) !== \"[object Symbol]\") return !1;\n\t\tvar r = 42;\n\t\tfor (var i in e[t] = r, e) return !1;\n\t\tif (typeof Object.keys == \"function\" && Object.keys(e).length !== 0 || typeof Object.getOwnPropertyNames == \"function\" && Object.getOwnPropertyNames(e).length !== 0) return !1;\n\t\tvar a = Object.getOwnPropertySymbols(e);\n\t\tif (a.length !== 1 || a[0] !== t || !Object.prototype.propertyIsEnumerable.call(e, t)) return !1;\n\t\tif (typeof Object.getOwnPropertyDescriptor == \"function\") {\n\t\t\tvar o = Object.getOwnPropertyDescriptor(e, t);\n\t\t\tif (o.value !== r || o.enumerable !== !0) return !1;\n\t\t}\n\t\treturn !0;\n\t};\n})), vb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = _b();\n\tt.exports = function() {\n\t\treturn n() && !!Symbol.toStringTag;\n\t};\n})), yb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Object;\n})), bb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Error;\n})), xb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = EvalError;\n})), Sb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = RangeError;\n})), Cb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = ReferenceError;\n})), wb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = SyntaxError;\n})), Tb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = TypeError;\n})), Eb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = URIError;\n})), Db = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Math.abs;\n})), Ob = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Math.floor;\n})), kb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Math.max;\n})), Ab = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Math.min;\n})), jb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Math.pow;\n})), Mb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Math.round;\n})), Nb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Number.isNaN || function(e) {\n\t\treturn e !== e;\n\t};\n})), Pb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Nb();\n\tt.exports = function(e) {\n\t\treturn n(e) || e === 0 ? e : e < 0 ? -1 : 1;\n\t};\n})), Fb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Object.getOwnPropertyDescriptor;\n})), Ib = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Fb();\n\tif (n) try {\n\t\tn([], \"length\");\n\t} catch {\n\t\tn = null;\n\t}\n\tt.exports = n;\n})), Lb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Object.defineProperty || !1;\n\tif (n) try {\n\t\tn({}, \"a\", { value: 1 });\n\t} catch {\n\t\tn = !1;\n\t}\n\tt.exports = n;\n})), Rb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = typeof Symbol < \"u\" && Symbol, r = _b();\n\tt.exports = function() {\n\t\treturn typeof n != \"function\" || typeof Symbol != \"function\" || typeof n(\"foo\") != \"symbol\" || typeof Symbol(\"bar\") != \"symbol\" ? !1 : r();\n\t};\n})), zb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = typeof Reflect < \"u\" && Reflect.getPrototypeOf || null;\n})), Bb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = yb().getPrototypeOf || null;\n})), Vb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Object.prototype.toString, r = Math.max, i = \"[object Function]\", a = function(e, t) {\n\t\tfor (var n = [], r = 0; r < e.length; r += 1) n[r] = e[r];\n\t\tfor (var i = 0; i < t.length; i += 1) n[i + e.length] = t[i];\n\t\treturn n;\n\t}, o = function(e, t) {\n\t\tfor (var n = [], r = t || 0, i = 0; r < e.length; r += 1, i += 1) n[i] = e[r];\n\t\treturn n;\n\t}, s = function(e, t) {\n\t\tfor (var n = \"\", r = 0; r < e.length; r += 1) n += e[r], r + 1 < e.length && (n += t);\n\t\treturn n;\n\t};\n\tt.exports = function(e) {\n\t\tvar t = this;\n\t\tif (typeof t != \"function\" || n.apply(t) !== i) throw TypeError(\"Function.prototype.bind called on incompatible \" + t);\n\t\tfor (var c = o(arguments, 1), l, u = function() {\n\t\t\tif (this instanceof l) {\n\t\t\t\tvar n = t.apply(this, a(c, arguments));\n\t\t\t\treturn Object(n) === n ? n : this;\n\t\t\t}\n\t\t\treturn t.apply(e, a(c, arguments));\n\t\t}, d = r(0, t.length - c.length), f = [], p = 0; p < d; p++) f[p] = \"$\" + p;\n\t\tif (l = Function(\"binder\", \"return function (\" + s(f, \",\") + \"){ return binder.apply(this,arguments); }\")(u), t.prototype) {\n\t\t\tvar m = function() {};\n\t\t\tm.prototype = t.prototype, l.prototype = new m(), m.prototype = null;\n\t\t}\n\t\treturn l;\n\t};\n})), Hb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Vb();\n\tt.exports = Function.prototype.bind || n;\n})), Ub = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Function.prototype.call;\n})), Wb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Function.prototype.apply;\n})), Gb = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = typeof Reflect < \"u\" && Reflect && Reflect.apply;\n})), Kb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Hb(), r = Wb(), i = Ub();\n\tt.exports = Gb() || n.call(i, r);\n})), qb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Hb(), r = Tb(), i = Ub(), a = Kb();\n\tt.exports = function(e) {\n\t\tif (e.length < 1 || typeof e[0] != \"function\") throw new r(\"a function is required\");\n\t\treturn a(n, i, e);\n\t};\n})), Jb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = qb(), r = Ib(), i;\n\ttry {\n\t\ti = [].__proto__ === Array.prototype;\n\t} catch (e) {\n\t\tif (!e || typeof e != \"object\" || !(\"code\" in e) || e.code !== \"ERR_PROTO_ACCESS\") throw e;\n\t}\n\tvar a = !!i && r && r(Object.prototype, \"__proto__\"), o = Object, s = o.getPrototypeOf;\n\tt.exports = a && typeof a.get == \"function\" ? n([a.get]) : typeof s == \"function\" ? function(e) {\n\t\treturn s(e == null ? e : o(e));\n\t} : !1;\n})), Yb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = zb(), r = Bb(), i = Jb();\n\tt.exports = n ? function(e) {\n\t\treturn n(e);\n\t} : r ? function(e) {\n\t\tif (!e || typeof e != \"object\" && typeof e != \"function\") throw TypeError(\"getProto: not an object\");\n\t\treturn r(e);\n\t} : i ? function(e) {\n\t\treturn i(e);\n\t} : null;\n})), Xb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Function.prototype.call, r = Object.prototype.hasOwnProperty;\n\tt.exports = Hb().call(n, r);\n})), Zb = /* @__PURE__ */ F(((e, t) => {\n\tvar n, r = yb(), i = bb(), a = xb(), o = Sb(), s = Cb(), c = wb(), l = Tb(), u = Eb(), d = Db(), f = Ob(), p = kb(), m = Ab(), h = jb(), g = Mb(), _ = Pb(), v = Function, y = function(e) {\n\t\ttry {\n\t\t\treturn v(\"\\\"use strict\\\"; return (\" + e + \").constructor;\")();\n\t\t} catch {}\n\t}, b = Ib(), x = Lb(), S = function() {\n\t\tthrow new l();\n\t}, C = b ? function() {\n\t\ttry {\n\t\t\treturn arguments.callee, S;\n\t\t} catch {\n\t\t\ttry {\n\t\t\t\treturn b(arguments, \"callee\").get;\n\t\t\t} catch {\n\t\t\t\treturn S;\n\t\t\t}\n\t\t}\n\t}() : S, w = Rb()(), T = Yb(), ee = Bb(), te = zb(), E = Wb(), ne = Ub(), D = {}, O = typeof Uint8Array > \"u\" || !T ? n : T(Uint8Array), k = {\n\t\t__proto__: null,\n\t\t\"%AggregateError%\": typeof AggregateError > \"u\" ? n : AggregateError,\n\t\t\"%Array%\": Array,\n\t\t\"%ArrayBuffer%\": typeof ArrayBuffer > \"u\" ? n : ArrayBuffer,\n\t\t\"%ArrayIteratorPrototype%\": w && T ? T([][Symbol.iterator]()) : n,\n\t\t\"%AsyncFromSyncIteratorPrototype%\": n,\n\t\t\"%AsyncFunction%\": D,\n\t\t\"%AsyncGenerator%\": D,\n\t\t\"%AsyncGeneratorFunction%\": D,\n\t\t\"%AsyncIteratorPrototype%\": D,\n\t\t\"%Atomics%\": typeof Atomics > \"u\" ? n : Atomics,\n\t\t\"%BigInt%\": typeof BigInt > \"u\" ? n : BigInt,\n\t\t\"%BigInt64Array%\": typeof BigInt64Array > \"u\" ? n : BigInt64Array,\n\t\t\"%BigUint64Array%\": typeof BigUint64Array > \"u\" ? n : BigUint64Array,\n\t\t\"%Boolean%\": Boolean,\n\t\t\"%DataView%\": typeof DataView > \"u\" ? n : DataView,\n\t\t\"%Date%\": Date,\n\t\t\"%decodeURI%\": decodeURI,\n\t\t\"%decodeURIComponent%\": decodeURIComponent,\n\t\t\"%encodeURI%\": encodeURI,\n\t\t\"%encodeURIComponent%\": encodeURIComponent,\n\t\t\"%Error%\": i,\n\t\t\"%eval%\": eval,\n\t\t\"%EvalError%\": a,\n\t\t\"%Float16Array%\": typeof Float16Array > \"u\" ? n : Float16Array,\n\t\t\"%Float32Array%\": typeof Float32Array > \"u\" ? n : Float32Array,\n\t\t\"%Float64Array%\": typeof Float64Array > \"u\" ? n : Float64Array,\n\t\t\"%FinalizationRegistry%\": typeof FinalizationRegistry > \"u\" ? n : FinalizationRegistry,\n\t\t\"%Function%\": v,\n\t\t\"%GeneratorFunction%\": D,\n\t\t\"%Int8Array%\": typeof Int8Array > \"u\" ? n : Int8Array,\n\t\t\"%Int16Array%\": typeof Int16Array > \"u\" ? n : Int16Array,\n\t\t\"%Int32Array%\": typeof Int32Array > \"u\" ? n : Int32Array,\n\t\t\"%isFinite%\": isFinite,\n\t\t\"%isNaN%\": isNaN,\n\t\t\"%IteratorPrototype%\": w && T ? T(T([][Symbol.iterator]())) : n,\n\t\t\"%JSON%\": typeof JSON == \"object\" ? JSON : n,\n\t\t\"%Map%\": typeof Map > \"u\" ? n : Map,\n\t\t\"%MapIteratorPrototype%\": typeof Map > \"u\" || !w || !T ? n : T((/* @__PURE__ */ new Map())[Symbol.iterator]()),\n\t\t\"%Math%\": Math,\n\t\t\"%Number%\": Number,\n\t\t\"%Object%\": r,\n\t\t\"%Object.getOwnPropertyDescriptor%\": b,\n\t\t\"%parseFloat%\": parseFloat,\n\t\t\"%parseInt%\": parseInt,\n\t\t\"%Promise%\": typeof Promise > \"u\" ? n : Promise,\n\t\t\"%Proxy%\": typeof Proxy > \"u\" ? n : Proxy,\n\t\t\"%RangeError%\": o,\n\t\t\"%ReferenceError%\": s,\n\t\t\"%Reflect%\": typeof Reflect > \"u\" ? n : Reflect,\n\t\t\"%RegExp%\": RegExp,\n\t\t\"%Set%\": typeof Set > \"u\" ? n : Set,\n\t\t\"%SetIteratorPrototype%\": typeof Set > \"u\" || !w || !T ? n : T((/* @__PURE__ */ new Set())[Symbol.iterator]()),\n\t\t\"%SharedArrayBuffer%\": typeof SharedArrayBuffer > \"u\" ? n : SharedArrayBuffer,\n\t\t\"%String%\": String,\n\t\t\"%StringIteratorPrototype%\": w && T ? T(\"\"[Symbol.iterator]()) : n,\n\t\t\"%Symbol%\": w ? Symbol : n,\n\t\t\"%SyntaxError%\": c,\n\t\t\"%ThrowTypeError%\": C,\n\t\t\"%TypedArray%\": O,\n\t\t\"%TypeError%\": l,\n\t\t\"%Uint8Array%\": typeof Uint8Array > \"u\" ? n : Uint8Array,\n\t\t\"%Uint8ClampedArray%\": typeof Uint8ClampedArray > \"u\" ? n : Uint8ClampedArray,\n\t\t\"%Uint16Array%\": typeof Uint16Array > \"u\" ? n : Uint16Array,\n\t\t\"%Uint32Array%\": typeof Uint32Array > \"u\" ? n : Uint32Array,\n\t\t\"%URIError%\": u,\n\t\t\"%WeakMap%\": typeof WeakMap > \"u\" ? n : WeakMap,\n\t\t\"%WeakRef%\": typeof WeakRef > \"u\" ? n : WeakRef,\n\t\t\"%WeakSet%\": typeof WeakSet > \"u\" ? n : WeakSet,\n\t\t\"%Function.prototype.call%\": ne,\n\t\t\"%Function.prototype.apply%\": E,\n\t\t\"%Object.defineProperty%\": x,\n\t\t\"%Object.getPrototypeOf%\": ee,\n\t\t\"%Math.abs%\": d,\n\t\t\"%Math.floor%\": f,\n\t\t\"%Math.max%\": p,\n\t\t\"%Math.min%\": m,\n\t\t\"%Math.pow%\": h,\n\t\t\"%Math.round%\": g,\n\t\t\"%Math.sign%\": _,\n\t\t\"%Reflect.getPrototypeOf%\": te\n\t};\n\tif (T) try {\n\t\tnull.error;\n\t} catch (e) {\n\t\tk[\"%Error.prototype%\"] = T(T(e));\n\t}\n\tvar re = function e(t) {\n\t\tvar n;\n\t\tif (t === \"%AsyncFunction%\") n = y(\"async function () {}\");\n\t\telse if (t === \"%GeneratorFunction%\") n = y(\"function* () {}\");\n\t\telse if (t === \"%AsyncGeneratorFunction%\") n = y(\"async function* () {}\");\n\t\telse if (t === \"%AsyncGenerator%\") {\n\t\t\tvar r = e(\"%AsyncGeneratorFunction%\");\n\t\t\tr && (n = r.prototype);\n\t\t} else if (t === \"%AsyncIteratorPrototype%\") {\n\t\t\tvar i = e(\"%AsyncGenerator%\");\n\t\t\ti && T && (n = T(i.prototype));\n\t\t}\n\t\treturn k[t] = n, n;\n\t}, ie = {\n\t\t__proto__: null,\n\t\t\"%ArrayBufferPrototype%\": [\"ArrayBuffer\", \"prototype\"],\n\t\t\"%ArrayPrototype%\": [\"Array\", \"prototype\"],\n\t\t\"%ArrayProto_entries%\": [\n\t\t\t\"Array\",\n\t\t\t\"prototype\",\n\t\t\t\"entries\"\n\t\t],\n\t\t\"%ArrayProto_forEach%\": [\n\t\t\t\"Array\",\n\t\t\t\"prototype\",\n\t\t\t\"forEach\"\n\t\t],\n\t\t\"%ArrayProto_keys%\": [\n\t\t\t\"Array\",\n\t\t\t\"prototype\",\n\t\t\t\"keys\"\n\t\t],\n\t\t\"%ArrayProto_values%\": [\n\t\t\t\"Array\",\n\t\t\t\"prototype\",\n\t\t\t\"values\"\n\t\t],\n\t\t\"%AsyncFunctionPrototype%\": [\"AsyncFunction\", \"prototype\"],\n\t\t\"%AsyncGenerator%\": [\"AsyncGeneratorFunction\", \"prototype\"],\n\t\t\"%AsyncGeneratorPrototype%\": [\n\t\t\t\"AsyncGeneratorFunction\",\n\t\t\t\"prototype\",\n\t\t\t\"prototype\"\n\t\t],\n\t\t\"%BooleanPrototype%\": [\"Boolean\", \"prototype\"],\n\t\t\"%DataViewPrototype%\": [\"DataView\", \"prototype\"],\n\t\t\"%DatePrototype%\": [\"Date\", \"prototype\"],\n\t\t\"%ErrorPrototype%\": [\"Error\", \"prototype\"],\n\t\t\"%EvalErrorPrototype%\": [\"EvalError\", \"prototype\"],\n\t\t\"%Float32ArrayPrototype%\": [\"Float32Array\", \"prototype\"],\n\t\t\"%Float64ArrayPrototype%\": [\"Float64Array\", \"prototype\"],\n\t\t\"%FunctionPrototype%\": [\"Function\", \"prototype\"],\n\t\t\"%Generator%\": [\"GeneratorFunction\", \"prototype\"],\n\t\t\"%GeneratorPrototype%\": [\n\t\t\t\"GeneratorFunction\",\n\t\t\t\"prototype\",\n\t\t\t\"prototype\"\n\t\t],\n\t\t\"%Int8ArrayPrototype%\": [\"Int8Array\", \"prototype\"],\n\t\t\"%Int16ArrayPrototype%\": [\"Int16Array\", \"prototype\"],\n\t\t\"%Int32ArrayPrototype%\": [\"Int32Array\", \"prototype\"],\n\t\t\"%JSONParse%\": [\"JSON\", \"parse\"],\n\t\t\"%JSONStringify%\": [\"JSON\", \"stringify\"],\n\t\t\"%MapPrototype%\": [\"Map\", \"prototype\"],\n\t\t\"%NumberPrototype%\": [\"Number\", \"prototype\"],\n\t\t\"%ObjectPrototype%\": [\"Object\", \"prototype\"],\n\t\t\"%ObjProto_toString%\": [\n\t\t\t\"Object\",\n\t\t\t\"prototype\",\n\t\t\t\"toString\"\n\t\t],\n\t\t\"%ObjProto_valueOf%\": [\n\t\t\t\"Object\",\n\t\t\t\"prototype\",\n\t\t\t\"valueOf\"\n\t\t],\n\t\t\"%PromisePrototype%\": [\"Promise\", \"prototype\"],\n\t\t\"%PromiseProto_then%\": [\n\t\t\t\"Promise\",\n\t\t\t\"prototype\",\n\t\t\t\"then\"\n\t\t],\n\t\t\"%Promise_all%\": [\"Promise\", \"all\"],\n\t\t\"%Promise_reject%\": [\"Promise\", \"reject\"],\n\t\t\"%Promise_resolve%\": [\"Promise\", \"resolve\"],\n\t\t\"%RangeErrorPrototype%\": [\"RangeError\", \"prototype\"],\n\t\t\"%ReferenceErrorPrototype%\": [\"ReferenceError\", \"prototype\"],\n\t\t\"%RegExpPrototype%\": [\"RegExp\", \"prototype\"],\n\t\t\"%SetPrototype%\": [\"Set\", \"prototype\"],\n\t\t\"%SharedArrayBufferPrototype%\": [\"SharedArrayBuffer\", \"prototype\"],\n\t\t\"%StringPrototype%\": [\"String\", \"prototype\"],\n\t\t\"%SymbolPrototype%\": [\"Symbol\", \"prototype\"],\n\t\t\"%SyntaxErrorPrototype%\": [\"SyntaxError\", \"prototype\"],\n\t\t\"%TypedArrayPrototype%\": [\"TypedArray\", \"prototype\"],\n\t\t\"%TypeErrorPrototype%\": [\"TypeError\", \"prototype\"],\n\t\t\"%Uint8ArrayPrototype%\": [\"Uint8Array\", \"prototype\"],\n\t\t\"%Uint8ClampedArrayPrototype%\": [\"Uint8ClampedArray\", \"prototype\"],\n\t\t\"%Uint16ArrayPrototype%\": [\"Uint16Array\", \"prototype\"],\n\t\t\"%Uint32ArrayPrototype%\": [\"Uint32Array\", \"prototype\"],\n\t\t\"%URIErrorPrototype%\": [\"URIError\", \"prototype\"],\n\t\t\"%WeakMapPrototype%\": [\"WeakMap\", \"prototype\"],\n\t\t\"%WeakSetPrototype%\": [\"WeakSet\", \"prototype\"]\n\t}, A = Hb(), j = Xb(), ae = A.call(ne, Array.prototype.concat), oe = A.call(E, Array.prototype.splice), M = A.call(ne, String.prototype.replace), se = A.call(ne, String.prototype.slice), ce = A.call(ne, RegExp.prototype.exec), le = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g, ue = /\\\\(\\\\)?/g, N = function(e) {\n\t\tvar t = se(e, 0, 1), n = se(e, -1);\n\t\tif (t === \"%\" && n !== \"%\") throw new c(\"invalid intrinsic syntax, expected closing `%`\");\n\t\tif (n === \"%\" && t !== \"%\") throw new c(\"invalid intrinsic syntax, expected opening `%`\");\n\t\tvar r = [];\n\t\treturn M(e, le, function(e, t, n, i) {\n\t\t\tr[r.length] = n ? M(i, ue, \"$1\") : t || e;\n\t\t}), r;\n\t}, de = function(e, t) {\n\t\tvar n = e, r;\n\t\tif (j(ie, n) && (r = ie[n], n = \"%\" + r[0] + \"%\"), j(k, n)) {\n\t\t\tvar i = k[n];\n\t\t\tif (i === D && (i = re(n)), i === void 0 && !t) throw new l(\"intrinsic \" + e + \" exists, but is not available. Please file an issue!\");\n\t\t\treturn {\n\t\t\t\talias: r,\n\t\t\t\tname: n,\n\t\t\t\tvalue: i\n\t\t\t};\n\t\t}\n\t\tthrow new c(\"intrinsic \" + e + \" does not exist!\");\n\t};\n\tt.exports = function(e, t) {\n\t\tif (typeof e != \"string\" || e.length === 0) throw new l(\"intrinsic name must be a non-empty string\");\n\t\tif (arguments.length > 1 && typeof t != \"boolean\") throw new l(\"\\\"allowMissing\\\" argument must be a boolean\");\n\t\tif (ce(/^%?[^%]*%?$/, e) === null) throw new c(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");\n\t\tvar n = N(e), r = n.length > 0 ? n[0] : \"\", i = de(\"%\" + r + \"%\", t), a = i.name, o = i.value, s = !1, u = i.alias;\n\t\tu && (r = u[0], oe(n, ae([0, 1], u)));\n\t\tfor (var d = 1, f = !0; d < n.length; d += 1) {\n\t\t\tvar p = n[d], m = se(p, 0, 1), h = se(p, -1);\n\t\t\tif ((m === \"\\\"\" || m === \"'\" || m === \"`\" || h === \"\\\"\" || h === \"'\" || h === \"`\") && m !== h) throw new c(\"property names with quotes must have matching quotes\");\n\t\t\tif ((p === \"constructor\" || !f) && (s = !0), r += \".\" + p, a = \"%\" + r + \"%\", j(k, a)) o = k[a];\n\t\t\telse if (o != null) {\n\t\t\t\tif (!(p in o)) {\n\t\t\t\t\tif (!t) throw new l(\"base intrinsic for \" + e + \" exists, but the property is not available.\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (b && d + 1 >= n.length) {\n\t\t\t\t\tvar g = b(o, p);\n\t\t\t\t\tf = !!g, o = f && \"get\" in g && !(\"originalValue\" in g.get) ? g.get : o[p];\n\t\t\t\t} else f = j(o, p), o = o[p];\n\t\t\t\tf && !s && (k[a] = o);\n\t\t\t}\n\t\t}\n\t\treturn o;\n\t};\n})), Qb = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Zb(), r = qb(), i = r([n(\"%String.prototype.indexOf%\")]);\n\tt.exports = function(e, t) {\n\t\tvar a = n(e, !!t);\n\t\treturn typeof a == \"function\" && i(e, \".prototype.\") > -1 ? r([a]) : a;\n\t};\n})), $b = /* @__PURE__ */ F(((e, t) => {\n\tvar n = vb()(), r = Qb()(\"Object.prototype.toString\"), i = function(e) {\n\t\treturn n && e && typeof e == \"object\" && Symbol.toStringTag in e ? !1 : r(e) === \"[object Arguments]\";\n\t}, a = function(e) {\n\t\treturn i(e) ? !0 : typeof e == \"object\" && !!e && \"length\" in e && typeof e.length == \"number\" && e.length >= 0 && r(e) !== \"[object Array]\" && \"callee\" in e && r(e.callee) === \"[object Function]\";\n\t}, o = function() {\n\t\treturn i(arguments);\n\t}();\n\ti.isLegacyArguments = a, t.exports = o ? i : a;\n})), ex = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Qb(), r = vb()(), i = Xb(), a = Ib(), o;\n\tif (r) {\n\t\tvar s = n(\"RegExp.prototype.exec\"), c = {}, l = function() {\n\t\t\tthrow c;\n\t\t}, u = {\n\t\t\ttoString: l,\n\t\t\tvalueOf: l\n\t\t};\n\t\ttypeof Symbol.toPrimitive == \"symbol\" && (u[Symbol.toPrimitive] = l), o = function(e) {\n\t\t\tif (!e || typeof e != \"object\") return !1;\n\t\t\tvar t = a(e, \"lastIndex\");\n\t\t\tif (!(t && i(t, \"value\"))) return !1;\n\t\t\ttry {\n\t\t\t\ts(e, u);\n\t\t\t} catch (e) {\n\t\t\t\treturn e === c;\n\t\t\t}\n\t\t};\n\t} else {\n\t\tvar d = n(\"Object.prototype.toString\"), f = \"[object RegExp]\";\n\t\to = function(e) {\n\t\t\treturn !e || typeof e != \"object\" && typeof e != \"function\" ? !1 : d(e) === f;\n\t\t};\n\t}\n\tt.exports = o;\n})), tx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Qb(), r = ex(), i = n(\"RegExp.prototype.exec\"), a = Tb();\n\tt.exports = function(e) {\n\t\tif (!r(e)) throw new a(\"`regex` must be a RegExp\");\n\t\treturn function(t) {\n\t\t\treturn i(e, t) !== null;\n\t\t};\n\t};\n})), nx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = function* () {}.constructor;\n\tt.exports = () => n;\n})), rx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Qb(), r = tx()(/^\\s*(?:function)?\\*/), i = vb()(), a = Yb(), o = n(\"Object.prototype.toString\"), s = n(\"Function.prototype.toString\"), c = nx();\n\tt.exports = function(e) {\n\t\tif (typeof e != \"function\") return !1;\n\t\tif (r(s(e))) return !0;\n\t\tif (!i) return o(e) === \"[object GeneratorFunction]\";\n\t\tif (!a) return !1;\n\t\tvar t = c();\n\t\treturn t && a(e) === t.prototype;\n\t};\n})), ix = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Function.prototype.toString, r = typeof Reflect == \"object\" && Reflect !== null && Reflect.apply, i, a;\n\tif (typeof r == \"function\" && typeof Object.defineProperty == \"function\") try {\n\t\ti = Object.defineProperty({}, \"length\", { get: function() {\n\t\t\tthrow a;\n\t\t} }), a = {}, r(function() {\n\t\t\tthrow 42;\n\t\t}, null, i);\n\t} catch (e) {\n\t\te !== a && (r = null);\n\t}\n\telse r = null;\n\tvar o = /^\\s*class\\b/, s = function(e) {\n\t\ttry {\n\t\t\tvar t = n.call(e);\n\t\t\treturn o.test(t);\n\t\t} catch {\n\t\t\treturn !1;\n\t\t}\n\t}, c = function(e) {\n\t\ttry {\n\t\t\treturn s(e) ? !1 : (n.call(e), !0);\n\t\t} catch {\n\t\t\treturn !1;\n\t\t}\n\t}, l = Object.prototype.toString, u = \"[object Object]\", d = \"[object Function]\", f = \"[object GeneratorFunction]\", p = \"[object HTMLAllCollection]\", m = \"[object HTML document.all class]\", h = \"[object HTMLCollection]\", g = typeof Symbol == \"function\" && !!Symbol.toStringTag, _ = !(0 in [,]), v = function() {\n\t\treturn !1;\n\t};\n\tif (typeof document == \"object\") {\n\t\tvar y = document.all;\n\t\tl.call(y) === l.call(document.all) && (v = function(e) {\n\t\t\tif ((_ || !e) && (e === void 0 || typeof e == \"object\")) try {\n\t\t\t\tvar t = l.call(e);\n\t\t\t\treturn (t === p || t === m || t === h || t === u) && e(\"\") == null;\n\t\t\t} catch {}\n\t\t\treturn !1;\n\t\t});\n\t}\n\tt.exports = r ? function(e) {\n\t\tif (v(e)) return !0;\n\t\tif (!e || typeof e != \"function\" && typeof e != \"object\") return !1;\n\t\ttry {\n\t\t\tr(e, null, i);\n\t\t} catch (e) {\n\t\t\tif (e !== a) return !1;\n\t\t}\n\t\treturn !s(e) && c(e);\n\t} : function(e) {\n\t\tif (v(e)) return !0;\n\t\tif (!e || typeof e != \"function\" && typeof e != \"object\") return !1;\n\t\tif (g) return c(e);\n\t\tif (s(e)) return !1;\n\t\tvar t = l.call(e);\n\t\treturn t !== d && t !== f && !/^\\[object HTML/.test(t) ? !1 : c(e);\n\t};\n})), ax = /* @__PURE__ */ F(((e, t) => {\n\tvar n = ix(), r = Object.prototype.toString, i = Object.prototype.hasOwnProperty, a = function(e, t, n) {\n\t\tfor (var r = 0, a = e.length; r < a; r++) i.call(e, r) && (n == null ? t(e[r], r, e) : t.call(n, e[r], r, e));\n\t}, o = function(e, t, n) {\n\t\tfor (var r = 0, i = e.length; r < i; r++) n == null ? t(e.charAt(r), r, e) : t.call(n, e.charAt(r), r, e);\n\t}, s = function(e, t, n) {\n\t\tfor (var r in e) i.call(e, r) && (n == null ? t(e[r], r, e) : t.call(n, e[r], r, e));\n\t};\n\tfunction c(e) {\n\t\treturn r.call(e) === \"[object Array]\";\n\t}\n\tt.exports = function(e, t, r) {\n\t\tif (!n(t)) throw TypeError(\"iterator must be a function\");\n\t\tvar i;\n\t\targuments.length >= 3 && (i = r), c(e) ? a(e, t, i) : typeof e == \"string\" ? o(e, t, i) : s(e, t, i);\n\t};\n})), ox = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = [\n\t\t\"Float16Array\",\n\t\t\"Float32Array\",\n\t\t\"Float64Array\",\n\t\t\"Int8Array\",\n\t\t\"Int16Array\",\n\t\t\"Int32Array\",\n\t\t\"Uint8Array\",\n\t\t\"Uint8ClampedArray\",\n\t\t\"Uint16Array\",\n\t\t\"Uint32Array\",\n\t\t\"BigInt64Array\",\n\t\t\"BigUint64Array\"\n\t];\n})), sx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = ox(), r = typeof globalThis > \"u\" ? global : globalThis;\n\tt.exports = function() {\n\t\tfor (var e = [], t = 0; t < n.length; t++) typeof r[n[t]] == \"function\" && (e[e.length] = n[t]);\n\t\treturn e;\n\t};\n})), cx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Lb(), r = wb(), i = Tb(), a = Ib();\n\tt.exports = function(e, t, o) {\n\t\tif (!e || typeof e != \"object\" && typeof e != \"function\") throw new i(\"`obj` must be an object or a function`\");\n\t\tif (typeof t != \"string\" && typeof t != \"symbol\") throw new i(\"`property` must be a string or a symbol`\");\n\t\tif (arguments.length > 3 && typeof arguments[3] != \"boolean\" && arguments[3] !== null) throw new i(\"`nonEnumerable`, if provided, must be a boolean or null\");\n\t\tif (arguments.length > 4 && typeof arguments[4] != \"boolean\" && arguments[4] !== null) throw new i(\"`nonWritable`, if provided, must be a boolean or null\");\n\t\tif (arguments.length > 5 && typeof arguments[5] != \"boolean\" && arguments[5] !== null) throw new i(\"`nonConfigurable`, if provided, must be a boolean or null\");\n\t\tif (arguments.length > 6 && typeof arguments[6] != \"boolean\") throw new i(\"`loose`, if provided, must be a boolean\");\n\t\tvar s = arguments.length > 3 ? arguments[3] : null, c = arguments.length > 4 ? arguments[4] : null, l = arguments.length > 5 ? arguments[5] : null, u = arguments.length > 6 ? arguments[6] : !1, d = !!a && a(e, t);\n\t\tif (n) n(e, t, {\n\t\t\tconfigurable: l === null && d ? d.configurable : !l,\n\t\t\tenumerable: s === null && d ? d.enumerable : !s,\n\t\t\tvalue: o,\n\t\t\twritable: c === null && d ? d.writable : !c\n\t\t});\n\t\telse if (u || !s && !c && !l) e[t] = o;\n\t\telse throw new r(\"This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.\");\n\t};\n})), lx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Lb(), r = function() {\n\t\treturn !!n;\n\t};\n\tr.hasArrayLengthDefineBug = function() {\n\t\tif (!n) return null;\n\t\ttry {\n\t\t\treturn n([], \"length\", { value: 1 }).length !== 1;\n\t\t} catch {\n\t\t\treturn !0;\n\t\t}\n\t}, t.exports = r;\n})), ux = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Zb(), r = cx(), i = lx()(), a = Ib(), o = Tb(), s = n(\"%Math.floor%\");\n\tt.exports = function(e, t) {\n\t\tif (typeof e != \"function\") throw new o(\"`fn` is not a function\");\n\t\tif (typeof t != \"number\" || t < 0 || t > 4294967295 || s(t) !== t) throw new o(\"`length` must be a positive 32-bit integer\");\n\t\tvar n = arguments.length > 2 && !!arguments[2], c = !0, l = !0;\n\t\tif (\"length\" in e && a) {\n\t\t\tvar u = a(e, \"length\");\n\t\t\tu && !u.configurable && (c = !1), u && !u.writable && (l = !1);\n\t\t}\n\t\treturn (c || l || !n) && (i ? r(e, \"length\", t, !0, !0) : r(e, \"length\", t)), e;\n\t};\n})), dx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Hb(), r = Wb(), i = Kb();\n\tt.exports = function() {\n\t\treturn i(n, r, arguments);\n\t};\n})), fx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = ux(), r = Lb(), i = qb(), a = dx();\n\tt.exports = function(e) {\n\t\tvar t = i(arguments), r = e.length - (arguments.length - 1);\n\t\treturn n(t, 1 + (r > 0 ? r : 0), !0);\n\t}, r ? r(t.exports, \"apply\", { value: a }) : t.exports.apply = a;\n})), px = /* @__PURE__ */ F(((e, t) => {\n\tvar n = ax(), r = sx(), i = fx(), a = Qb(), o = Ib(), s = Yb(), c = a(\"Object.prototype.toString\"), l = vb()(), u = typeof globalThis > \"u\" ? global : globalThis, d = r(), f = a(\"String.prototype.slice\"), p = a(\"Array.prototype.indexOf\", !0) || function(e, t) {\n\t\tfor (var n = 0; n < e.length; n += 1) if (e[n] === t) return n;\n\t\treturn -1;\n\t}, m = { __proto__: null };\n\tl && o && s ? n(d, function(e) {\n\t\tvar t = new u[e]();\n\t\tif (Symbol.toStringTag in t && s) {\n\t\t\tvar n = s(t), r = o(n, Symbol.toStringTag);\n\t\t\tif (!r && n && (r = o(s(n), Symbol.toStringTag)), r && r.get) {\n\t\t\t\tvar a = i(r.get);\n\t\t\t\tm[\"$\" + e] = a;\n\t\t\t}\n\t\t}\n\t}) : n(d, function(e) {\n\t\tvar t = new u[e](), n = t.slice || t.set;\n\t\tif (n) {\n\t\t\tvar r = i(n);\n\t\t\tm[\"$\" + e] = r;\n\t\t}\n\t});\n\tvar h = function(e) {\n\t\tvar t = !1;\n\t\treturn n(m, function(n, r) {\n\t\t\tif (!t) try {\n\t\t\t\t\"$\" + n(e) === r && (t = f(r, 1));\n\t\t\t} catch {}\n\t\t}), t;\n\t}, g = function(e) {\n\t\tvar t = !1;\n\t\treturn n(m, function(n, r) {\n\t\t\tif (!t) try {\n\t\t\t\tn(e), t = f(r, 1);\n\t\t\t} catch {}\n\t\t}), t;\n\t};\n\tt.exports = function(e) {\n\t\tif (!e || typeof e != \"object\") return !1;\n\t\tif (!l) {\n\t\t\tvar t = f(c(e), 8, -1);\n\t\t\treturn p(d, t) > -1 ? t : t === \"Object\" ? g(e) : !1;\n\t\t}\n\t\treturn o ? h(e) : null;\n\t};\n})), mx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = px();\n\tt.exports = function(e) {\n\t\treturn !!n(e);\n\t};\n})), hx = /* @__PURE__ */ F(((e) => {\n\tvar t = $b(), n = rx(), r = px(), i = mx();\n\tfunction a(e) {\n\t\treturn e.call.bind(e);\n\t}\n\tvar o = typeof BigInt < \"u\", s = typeof Symbol < \"u\", c = a(Object.prototype.toString), l = a(Number.prototype.valueOf), u = a(String.prototype.valueOf), d = a(Boolean.prototype.valueOf);\n\tif (o) var f = a(BigInt.prototype.valueOf);\n\tif (s) var p = a(Symbol.prototype.valueOf);\n\tfunction m(e, t) {\n\t\tif (typeof e != \"object\") return !1;\n\t\ttry {\n\t\t\treturn t(e), !0;\n\t\t} catch {\n\t\t\treturn !1;\n\t\t}\n\t}\n\te.isArgumentsObject = t, e.isGeneratorFunction = n, e.isTypedArray = i;\n\tfunction h(e) {\n\t\treturn typeof Promise < \"u\" && e instanceof Promise || typeof e == \"object\" && !!e && typeof e.then == \"function\" && typeof e.catch == \"function\";\n\t}\n\te.isPromise = h;\n\tfunction g(e) {\n\t\treturn typeof ArrayBuffer < \"u\" && ArrayBuffer.isView ? ArrayBuffer.isView(e) : i(e) || M(e);\n\t}\n\te.isArrayBufferView = g;\n\tfunction _(e) {\n\t\treturn r(e) === \"Uint8Array\";\n\t}\n\te.isUint8Array = _;\n\tfunction v(e) {\n\t\treturn r(e) === \"Uint8ClampedArray\";\n\t}\n\te.isUint8ClampedArray = v;\n\tfunction y(e) {\n\t\treturn r(e) === \"Uint16Array\";\n\t}\n\te.isUint16Array = y;\n\tfunction b(e) {\n\t\treturn r(e) === \"Uint32Array\";\n\t}\n\te.isUint32Array = b;\n\tfunction x(e) {\n\t\treturn r(e) === \"Int8Array\";\n\t}\n\te.isInt8Array = x;\n\tfunction S(e) {\n\t\treturn r(e) === \"Int16Array\";\n\t}\n\te.isInt16Array = S;\n\tfunction C(e) {\n\t\treturn r(e) === \"Int32Array\";\n\t}\n\te.isInt32Array = C;\n\tfunction w(e) {\n\t\treturn r(e) === \"Float32Array\";\n\t}\n\te.isFloat32Array = w;\n\tfunction T(e) {\n\t\treturn r(e) === \"Float64Array\";\n\t}\n\te.isFloat64Array = T;\n\tfunction ee(e) {\n\t\treturn r(e) === \"BigInt64Array\";\n\t}\n\te.isBigInt64Array = ee;\n\tfunction te(e) {\n\t\treturn r(e) === \"BigUint64Array\";\n\t}\n\te.isBigUint64Array = te;\n\tfunction E(e) {\n\t\treturn c(e) === \"[object Map]\";\n\t}\n\tE.working = typeof Map < \"u\" && E(/* @__PURE__ */ new Map());\n\tfunction ne(e) {\n\t\treturn typeof Map > \"u\" ? !1 : E.working ? E(e) : e instanceof Map;\n\t}\n\te.isMap = ne;\n\tfunction D(e) {\n\t\treturn c(e) === \"[object Set]\";\n\t}\n\tD.working = typeof Set < \"u\" && D(/* @__PURE__ */ new Set());\n\tfunction O(e) {\n\t\treturn typeof Set > \"u\" ? !1 : D.working ? D(e) : e instanceof Set;\n\t}\n\te.isSet = O;\n\tfunction k(e) {\n\t\treturn c(e) === \"[object WeakMap]\";\n\t}\n\tk.working = typeof WeakMap < \"u\" && k(/* @__PURE__ */ new WeakMap());\n\tfunction re(e) {\n\t\treturn typeof WeakMap > \"u\" ? !1 : k.working ? k(e) : e instanceof WeakMap;\n\t}\n\te.isWeakMap = re;\n\tfunction ie(e) {\n\t\treturn c(e) === \"[object WeakSet]\";\n\t}\n\tie.working = typeof WeakSet < \"u\" && ie(/* @__PURE__ */ new WeakSet());\n\tfunction A(e) {\n\t\treturn ie(e);\n\t}\n\te.isWeakSet = A;\n\tfunction j(e) {\n\t\treturn c(e) === \"[object ArrayBuffer]\";\n\t}\n\tj.working = typeof ArrayBuffer < \"u\" && j(/* @__PURE__ */ new ArrayBuffer());\n\tfunction ae(e) {\n\t\treturn typeof ArrayBuffer > \"u\" ? !1 : j.working ? j(e) : e instanceof ArrayBuffer;\n\t}\n\te.isArrayBuffer = ae;\n\tfunction oe(e) {\n\t\treturn c(e) === \"[object DataView]\";\n\t}\n\toe.working = typeof ArrayBuffer < \"u\" && typeof DataView < \"u\" && oe(new DataView(/* @__PURE__ */ new ArrayBuffer(1), 0, 1));\n\tfunction M(e) {\n\t\treturn typeof DataView > \"u\" ? !1 : oe.working ? oe(e) : e instanceof DataView;\n\t}\n\te.isDataView = M;\n\tvar se = typeof SharedArrayBuffer < \"u\" ? SharedArrayBuffer : void 0;\n\tfunction ce(e) {\n\t\treturn c(e) === \"[object SharedArrayBuffer]\";\n\t}\n\tfunction le(e) {\n\t\treturn se === void 0 ? !1 : (ce.working === void 0 && (ce.working = ce(new se())), ce.working ? ce(e) : e instanceof se);\n\t}\n\te.isSharedArrayBuffer = le;\n\tfunction ue(e) {\n\t\treturn c(e) === \"[object AsyncFunction]\";\n\t}\n\te.isAsyncFunction = ue;\n\tfunction N(e) {\n\t\treturn c(e) === \"[object Map Iterator]\";\n\t}\n\te.isMapIterator = N;\n\tfunction de(e) {\n\t\treturn c(e) === \"[object Set Iterator]\";\n\t}\n\te.isSetIterator = de;\n\tfunction fe(e) {\n\t\treturn c(e) === \"[object Generator]\";\n\t}\n\te.isGeneratorObject = fe;\n\tfunction pe(e) {\n\t\treturn c(e) === \"[object WebAssembly.Module]\";\n\t}\n\te.isWebAssemblyCompiledModule = pe;\n\tfunction me(e) {\n\t\treturn m(e, l);\n\t}\n\te.isNumberObject = me;\n\tfunction he(e) {\n\t\treturn m(e, u);\n\t}\n\te.isStringObject = he;\n\tfunction ge(e) {\n\t\treturn m(e, d);\n\t}\n\te.isBooleanObject = ge;\n\tfunction _e(e) {\n\t\treturn o && m(e, f);\n\t}\n\te.isBigIntObject = _e;\n\tfunction P(e) {\n\t\treturn s && m(e, p);\n\t}\n\te.isSymbolObject = P;\n\tfunction ve(e) {\n\t\treturn me(e) || he(e) || ge(e) || _e(e) || P(e);\n\t}\n\te.isBoxedPrimitive = ve;\n\tfunction ye(e) {\n\t\treturn typeof Uint8Array < \"u\" && (ae(e) || le(e));\n\t}\n\te.isAnyArrayBuffer = ye, [\n\t\t\"isProxy\",\n\t\t\"isExternal\",\n\t\t\"isModuleNamespaceObject\"\n\t].forEach(function(t) {\n\t\tObject.defineProperty(e, t, {\n\t\t\tenumerable: !1,\n\t\t\tvalue: function() {\n\t\t\t\tthrow Error(t + \" is not supported in userland\");\n\t\t\t}\n\t\t});\n\t});\n})), gx = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = function(e) {\n\t\treturn e && typeof e == \"object\" && typeof e.copy == \"function\" && typeof e.fill == \"function\" && typeof e.readUInt8 == \"function\";\n\t};\n})), _x = /* @__PURE__ */ F(((e, t) => {\n\ttypeof Object.create == \"function\" ? t.exports = function(e, t) {\n\t\tt && (e.super_ = t, e.prototype = Object.create(t.prototype, { constructor: {\n\t\t\tvalue: e,\n\t\t\tenumerable: !1,\n\t\t\twritable: !0,\n\t\t\tconfigurable: !0\n\t\t} }));\n\t} : t.exports = function(e, t) {\n\t\tif (t) {\n\t\t\te.super_ = t;\n\t\t\tvar n = function() {};\n\t\t\tn.prototype = t.prototype, e.prototype = new n(), e.prototype.constructor = e;\n\t\t}\n\t};\n})), vx = /* @__PURE__ */ F(((e) => {\n\tvar t = Object.getOwnPropertyDescriptors || function(e) {\n\t\tfor (var t = Object.keys(e), n = {}, r = 0; r < t.length; r++) n[t[r]] = Object.getOwnPropertyDescriptor(e, t[r]);\n\t\treturn n;\n\t}, n = /%[sdj%]/g;\n\te.format = function(e) {\n\t\tif (!x(e)) {\n\t\t\tfor (var t = [], r = 0; r < arguments.length; r++) t.push(o(arguments[r]));\n\t\t\treturn t.join(\" \");\n\t\t}\n\t\tfor (var r = 1, i = arguments, a = i.length, s = String(e).replace(n, function(e) {\n\t\t\tif (e === \"%%\") return \"%\";\n\t\t\tif (r >= a) return e;\n\t\t\tswitch (e) {\n\t\t\t\tcase \"%s\": return String(i[r++]);\n\t\t\t\tcase \"%d\": return Number(i[r++]);\n\t\t\t\tcase \"%j\": try {\n\t\t\t\t\treturn JSON.stringify(i[r++]);\n\t\t\t\t} catch {\n\t\t\t\t\treturn \"[Circular]\";\n\t\t\t\t}\n\t\t\t\tdefault: return e;\n\t\t\t}\n\t\t}), c = i[r]; r < a; c = i[++r]) v(c) || !T(c) ? s += \" \" + c : s += \" \" + o(c);\n\t\treturn s;\n\t}, e.deprecate = function(t, n) {\n\t\tif (typeof process < \"u\" && process.noDeprecation === !0) return t;\n\t\tif (typeof process > \"u\") return function() {\n\t\t\treturn e.deprecate(t, n).apply(this, arguments);\n\t\t};\n\t\tvar r = !1;\n\t\tfunction i() {\n\t\t\tif (!r) {\n\t\t\t\tif (process.throwDeprecation) throw Error(n);\n\t\t\t\tprocess.traceDeprecation ? console.trace(n) : console.error(n), r = !0;\n\t\t\t}\n\t\t\treturn t.apply(this, arguments);\n\t\t}\n\t\treturn i;\n\t};\n\tvar r = {}, i = /^$/;\n\tif (process.env.NODE_DEBUG) {\n\t\tvar a = process.env.NODE_DEBUG;\n\t\ta = a.replace(/[|\\\\{}()[\\]^$+?.]/g, \"\\\\$&\").replace(/\\*/g, \".*\").replace(/,/g, \"$|^\").toUpperCase(), i = RegExp(\"^\" + a + \"$\", \"i\");\n\t}\n\te.debuglog = function(t) {\n\t\tif (t = t.toUpperCase(), !r[t]) if (i.test(t)) {\n\t\t\tvar n = process.pid;\n\t\t\tr[t] = function() {\n\t\t\t\tvar r = e.format.apply(e, arguments);\n\t\t\t\tconsole.error(\"%s %d: %s\", t, n, r);\n\t\t\t};\n\t\t} else r[t] = function() {};\n\t\treturn r[t];\n\t};\n\tfunction o(t, n) {\n\t\tvar r = {\n\t\t\tseen: [],\n\t\t\tstylize: c\n\t\t};\n\t\treturn arguments.length >= 3 && (r.depth = arguments[2]), arguments.length >= 4 && (r.colors = arguments[3]), _(n) ? r.showHidden = n : n && e._extend(r, n), C(r.showHidden) && (r.showHidden = !1), C(r.depth) && (r.depth = 2), C(r.colors) && (r.colors = !1), C(r.customInspect) && (r.customInspect = !0), r.colors && (r.stylize = s), u(r, t, r.depth);\n\t}\n\te.inspect = o, o.colors = {\n\t\tbold: [1, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\tinverse: [7, 27],\n\t\twhite: [37, 39],\n\t\tgrey: [90, 39],\n\t\tblack: [30, 39],\n\t\tblue: [34, 39],\n\t\tcyan: [36, 39],\n\t\tgreen: [32, 39],\n\t\tmagenta: [35, 39],\n\t\tred: [31, 39],\n\t\tyellow: [33, 39]\n\t}, o.styles = {\n\t\tspecial: \"cyan\",\n\t\tnumber: \"yellow\",\n\t\tboolean: \"yellow\",\n\t\tundefined: \"grey\",\n\t\tnull: \"bold\",\n\t\tstring: \"green\",\n\t\tdate: \"magenta\",\n\t\tregexp: \"red\"\n\t};\n\tfunction s(e, t) {\n\t\tvar n = o.styles[t];\n\t\treturn n ? \"\\x1B[\" + o.colors[n][0] + \"m\" + e + \"\\x1B[\" + o.colors[n][1] + \"m\" : e;\n\t}\n\tfunction c(e, t) {\n\t\treturn e;\n\t}\n\tfunction l(e) {\n\t\tvar t = {};\n\t\treturn e.forEach(function(e, n) {\n\t\t\tt[e] = !0;\n\t\t}), t;\n\t}\n\tfunction u(t, n, r) {\n\t\tif (t.customInspect && n && E(n.inspect) && n.inspect !== e.inspect && !(n.constructor && n.constructor.prototype === n)) {\n\t\t\tvar i = n.inspect(r, t);\n\t\t\treturn x(i) || (i = u(t, i, r)), i;\n\t\t}\n\t\tvar a = d(t, n);\n\t\tif (a) return a;\n\t\tvar o = Object.keys(n), s = l(o);\n\t\tif (t.showHidden && (o = Object.getOwnPropertyNames(n)), te(n) && (o.indexOf(\"message\") >= 0 || o.indexOf(\"description\") >= 0)) return f(n);\n\t\tif (o.length === 0) {\n\t\t\tif (E(n)) {\n\t\t\t\tvar c = n.name ? \": \" + n.name : \"\";\n\t\t\t\treturn t.stylize(\"[Function\" + c + \"]\", \"special\");\n\t\t\t}\n\t\t\tif (w(n)) return t.stylize(RegExp.prototype.toString.call(n), \"regexp\");\n\t\t\tif (ee(n)) return t.stylize(Date.prototype.toString.call(n), \"date\");\n\t\t\tif (te(n)) return f(n);\n\t\t}\n\t\tvar _ = \"\", v = !1, y = [\"{\", \"}\"];\n\t\tif (g(n) && (v = !0, y = [\"[\", \"]\"]), E(n) && (_ = \" [Function\" + (n.name ? \": \" + n.name : \"\") + \"]\"), w(n) && (_ = \" \" + RegExp.prototype.toString.call(n)), ee(n) && (_ = \" \" + Date.prototype.toUTCString.call(n)), te(n) && (_ = \" \" + f(n)), o.length === 0 && (!v || n.length == 0)) return y[0] + _ + y[1];\n\t\tif (r < 0) return w(n) ? t.stylize(RegExp.prototype.toString.call(n), \"regexp\") : t.stylize(\"[Object]\", \"special\");\n\t\tt.seen.push(n);\n\t\tvar b = v ? p(t, n, r, s, o) : o.map(function(e) {\n\t\t\treturn m(t, n, r, s, e, v);\n\t\t});\n\t\treturn t.seen.pop(), h(b, _, y);\n\t}\n\tfunction d(e, t) {\n\t\tif (C(t)) return e.stylize(\"undefined\", \"undefined\");\n\t\tif (x(t)) {\n\t\t\tvar n = \"'\" + JSON.stringify(t).replace(/^\"|\"$/g, \"\").replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, \"\\\"\") + \"'\";\n\t\t\treturn e.stylize(n, \"string\");\n\t\t}\n\t\tif (b(t)) return e.stylize(\"\" + t, \"number\");\n\t\tif (_(t)) return e.stylize(\"\" + t, \"boolean\");\n\t\tif (v(t)) return e.stylize(\"null\", \"null\");\n\t}\n\tfunction f(e) {\n\t\treturn \"[\" + Error.prototype.toString.call(e) + \"]\";\n\t}\n\tfunction p(e, t, n, r, i) {\n\t\tfor (var a = [], o = 0, s = t.length; o < s; ++o) ie(t, String(o)) ? a.push(m(e, t, n, r, String(o), !0)) : a.push(\"\");\n\t\treturn i.forEach(function(i) {\n\t\t\ti.match(/^\\d+$/) || a.push(m(e, t, n, r, i, !0));\n\t\t}), a;\n\t}\n\tfunction m(e, t, n, r, i, a) {\n\t\tvar o, s, c = Object.getOwnPropertyDescriptor(t, i) || { value: t[i] };\n\t\tif (c.get ? s = c.set ? e.stylize(\"[Getter/Setter]\", \"special\") : e.stylize(\"[Getter]\", \"special\") : c.set && (s = e.stylize(\"[Setter]\", \"special\")), ie(r, i) || (o = \"[\" + i + \"]\"), s || (e.seen.indexOf(c.value) < 0 ? (s = v(n) ? u(e, c.value, null) : u(e, c.value, n - 1), s.indexOf(\"\\n\") > -1 && (s = a ? s.split(\"\\n\").map(function(e) {\n\t\t\treturn \"  \" + e;\n\t\t}).join(\"\\n\").slice(2) : \"\\n\" + s.split(\"\\n\").map(function(e) {\n\t\t\treturn \"   \" + e;\n\t\t}).join(\"\\n\"))) : s = e.stylize(\"[Circular]\", \"special\")), C(o)) {\n\t\t\tif (a && i.match(/^\\d+$/)) return s;\n\t\t\to = JSON.stringify(\"\" + i), o.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/) ? (o = o.slice(1, -1), o = e.stylize(o, \"name\")) : (o = o.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, \"\\\"\").replace(/(^\"|\"$)/g, \"'\"), o = e.stylize(o, \"string\"));\n\t\t}\n\t\treturn o + \": \" + s;\n\t}\n\tfunction h(e, t, n) {\n\t\tvar r = 0;\n\t\treturn e.reduce(function(e, t) {\n\t\t\treturn r++, t.indexOf(\"\\n\") >= 0 && r++, e + t.replace(/\\u001b\\[\\d\\d?m/g, \"\").length + 1;\n\t\t}, 0) > 60 ? n[0] + (t === \"\" ? \"\" : t + \"\\n \") + \" \" + e.join(\",\\n  \") + \" \" + n[1] : n[0] + t + \" \" + e.join(\", \") + \" \" + n[1];\n\t}\n\te.types = hx();\n\tfunction g(e) {\n\t\treturn Array.isArray(e);\n\t}\n\te.isArray = g;\n\tfunction _(e) {\n\t\treturn typeof e == \"boolean\";\n\t}\n\te.isBoolean = _;\n\tfunction v(e) {\n\t\treturn e === null;\n\t}\n\te.isNull = v;\n\tfunction y(e) {\n\t\treturn e == null;\n\t}\n\te.isNullOrUndefined = y;\n\tfunction b(e) {\n\t\treturn typeof e == \"number\";\n\t}\n\te.isNumber = b;\n\tfunction x(e) {\n\t\treturn typeof e == \"string\";\n\t}\n\te.isString = x;\n\tfunction S(e) {\n\t\treturn typeof e == \"symbol\";\n\t}\n\te.isSymbol = S;\n\tfunction C(e) {\n\t\treturn e === void 0;\n\t}\n\te.isUndefined = C;\n\tfunction w(e) {\n\t\treturn T(e) && D(e) === \"[object RegExp]\";\n\t}\n\te.isRegExp = w, e.types.isRegExp = w;\n\tfunction T(e) {\n\t\treturn typeof e == \"object\" && !!e;\n\t}\n\te.isObject = T;\n\tfunction ee(e) {\n\t\treturn T(e) && D(e) === \"[object Date]\";\n\t}\n\te.isDate = ee, e.types.isDate = ee;\n\tfunction te(e) {\n\t\treturn T(e) && (D(e) === \"[object Error]\" || e instanceof Error);\n\t}\n\te.isError = te, e.types.isNativeError = te;\n\tfunction E(e) {\n\t\treturn typeof e == \"function\";\n\t}\n\te.isFunction = E;\n\tfunction ne(e) {\n\t\treturn e === null || typeof e == \"boolean\" || typeof e == \"number\" || typeof e == \"string\" || typeof e == \"symbol\" || e === void 0;\n\t}\n\te.isPrimitive = ne, e.isBuffer = gx();\n\tfunction D(e) {\n\t\treturn Object.prototype.toString.call(e);\n\t}\n\tfunction O(e) {\n\t\treturn e < 10 ? \"0\" + e.toString(10) : e.toString(10);\n\t}\n\tvar k = [\n\t\t\"Jan\",\n\t\t\"Feb\",\n\t\t\"Mar\",\n\t\t\"Apr\",\n\t\t\"May\",\n\t\t\"Jun\",\n\t\t\"Jul\",\n\t\t\"Aug\",\n\t\t\"Sep\",\n\t\t\"Oct\",\n\t\t\"Nov\",\n\t\t\"Dec\"\n\t];\n\tfunction re() {\n\t\tvar e = /* @__PURE__ */ new Date(), t = [\n\t\t\tO(e.getHours()),\n\t\t\tO(e.getMinutes()),\n\t\t\tO(e.getSeconds())\n\t\t].join(\":\");\n\t\treturn [\n\t\t\te.getDate(),\n\t\t\tk[e.getMonth()],\n\t\t\tt\n\t\t].join(\" \");\n\t}\n\te.log = function() {\n\t\tconsole.log(\"%s - %s\", re(), e.format.apply(e, arguments));\n\t}, e.inherits = _x(), e._extend = function(e, t) {\n\t\tif (!t || !T(t)) return e;\n\t\tfor (var n = Object.keys(t), r = n.length; r--;) e[n[r]] = t[n[r]];\n\t\treturn e;\n\t};\n\tfunction ie(e, t) {\n\t\treturn Object.prototype.hasOwnProperty.call(e, t);\n\t}\n\tvar A = typeof Symbol < \"u\" ? Symbol(\"util.promisify.custom\") : void 0;\n\te.promisify = function(e) {\n\t\tif (typeof e != \"function\") throw TypeError(\"The \\\"original\\\" argument must be of type Function\");\n\t\tif (A && e[A]) {\n\t\t\tvar n = e[A];\n\t\t\tif (typeof n != \"function\") throw TypeError(\"The \\\"util.promisify.custom\\\" argument must be of type Function\");\n\t\t\treturn Object.defineProperty(n, A, {\n\t\t\t\tvalue: n,\n\t\t\t\tenumerable: !1,\n\t\t\t\twritable: !1,\n\t\t\t\tconfigurable: !0\n\t\t\t}), n;\n\t\t}\n\t\tfunction n() {\n\t\t\tfor (var t, n, r = new Promise(function(e, r) {\n\t\t\t\tt = e, n = r;\n\t\t\t}), i = [], a = 0; a < arguments.length; a++) i.push(arguments[a]);\n\t\t\ti.push(function(e, r) {\n\t\t\t\te ? n(e) : t(r);\n\t\t\t});\n\t\t\ttry {\n\t\t\t\te.apply(this, i);\n\t\t\t} catch (e) {\n\t\t\t\tn(e);\n\t\t\t}\n\t\t\treturn r;\n\t\t}\n\t\treturn Object.setPrototypeOf(n, Object.getPrototypeOf(e)), A && Object.defineProperty(n, A, {\n\t\t\tvalue: n,\n\t\t\tenumerable: !1,\n\t\t\twritable: !1,\n\t\t\tconfigurable: !0\n\t\t}), Object.defineProperties(n, t(e));\n\t}, e.promisify.custom = A;\n\tfunction j(e, t) {\n\t\tif (!e) {\n\t\t\tvar n = /* @__PURE__ */ Error(\"Promise was rejected with a falsy value\");\n\t\t\tn.reason = e, e = n;\n\t\t}\n\t\treturn t(e);\n\t}\n\tfunction ae(e) {\n\t\tif (typeof e != \"function\") throw TypeError(\"The \\\"original\\\" argument must be of type Function\");\n\t\tfunction n() {\n\t\t\tfor (var t = [], n = 0; n < arguments.length; n++) t.push(arguments[n]);\n\t\t\tvar r = t.pop();\n\t\t\tif (typeof r != \"function\") throw TypeError(\"The last argument must be of type Function\");\n\t\t\tvar i = this, a = function() {\n\t\t\t\treturn r.apply(i, arguments);\n\t\t\t};\n\t\t\te.apply(this, t).then(function(e) {\n\t\t\t\tprocess.nextTick(a.bind(null, null, e));\n\t\t\t}, function(e) {\n\t\t\t\tprocess.nextTick(j.bind(null, e, a));\n\t\t\t});\n\t\t}\n\t\treturn Object.setPrototypeOf(n, Object.getPrototypeOf(e)), Object.defineProperties(n, t(e)), n;\n\t}\n\te.callbackify = ae;\n})), yx = /* @__PURE__ */ F(((e) => {\n\t(function() {\n\t\tvar t = {\n\t\t\tnot_string: /[^s]/,\n\t\t\tnot_bool: /[^t]/,\n\t\t\tnot_type: /[^T]/,\n\t\t\tnot_primitive: /[^v]/,\n\t\t\tnumber: /[diefg]/,\n\t\t\tnumeric_arg: /[bcdiefguxX]/,\n\t\t\tjson: /[j]/,\n\t\t\tnot_json: /[^j]/,\n\t\t\ttext: /^[^\\x25]+/,\n\t\t\tmodulo: /^\\x25{2}/,\n\t\t\tplaceholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n\t\t\tkey: /^([a-z_][a-z_\\d]*)/i,\n\t\t\tkey_access: /^\\.([a-z_][a-z_\\d]*)/i,\n\t\t\tindex_access: /^\\[(\\d+)\\]/,\n\t\t\tsign: /^[+-]/\n\t\t};\n\t\tfunction n(e) {\n\t\t\treturn i(o(e), arguments);\n\t\t}\n\t\tfunction r(e, t) {\n\t\t\treturn n.apply(null, [e].concat(t || []));\n\t\t}\n\t\tfunction i(e, r) {\n\t\t\tvar i = 1, a = e.length, o, s = \"\", c, l, u, d, f, p, m, h;\n\t\t\tfor (c = 0; c < a; c++) if (typeof e[c] == \"string\") s += e[c];\n\t\t\telse if (typeof e[c] == \"object\") {\n\t\t\t\tif (u = e[c], u.keys) for (o = r[i], l = 0; l < u.keys.length; l++) {\n\t\t\t\t\tif (o == null) throw Error(n(\"[sprintf] Cannot access property \\\"%s\\\" of undefined value \\\"%s\\\"\", u.keys[l], u.keys[l - 1]));\n\t\t\t\t\to = o[u.keys[l]];\n\t\t\t\t}\n\t\t\t\telse o = u.param_no ? r[u.param_no] : r[i++];\n\t\t\t\tif (t.not_type.test(u.type) && t.not_primitive.test(u.type) && o instanceof Function && (o = o()), t.numeric_arg.test(u.type) && typeof o != \"number\" && isNaN(o)) throw TypeError(n(\"[sprintf] expecting number but found %T\", o));\n\t\t\t\tswitch (t.number.test(u.type) && (m = o >= 0), u.type) {\n\t\t\t\t\tcase \"b\":\n\t\t\t\t\t\to = parseInt(o, 10).toString(2);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"c\":\n\t\t\t\t\t\to = String.fromCharCode(parseInt(o, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"d\":\n\t\t\t\t\tcase \"i\":\n\t\t\t\t\t\to = parseInt(o, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"j\":\n\t\t\t\t\t\to = JSON.stringify(o, null, u.width ? parseInt(u.width) : 0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"e\":\n\t\t\t\t\t\to = u.precision ? parseFloat(o).toExponential(u.precision) : parseFloat(o).toExponential();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"f\":\n\t\t\t\t\t\to = u.precision ? parseFloat(o).toFixed(u.precision) : parseFloat(o);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"g\":\n\t\t\t\t\t\to = u.precision ? String(Number(o.toPrecision(u.precision))) : parseFloat(o);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"o\":\n\t\t\t\t\t\to = (parseInt(o, 10) >>> 0).toString(8);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"s\":\n\t\t\t\t\t\to = String(o), o = u.precision ? o.substring(0, u.precision) : o;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"t\":\n\t\t\t\t\t\to = String(!!o), o = u.precision ? o.substring(0, u.precision) : o;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"T\":\n\t\t\t\t\t\to = Object.prototype.toString.call(o).slice(8, -1).toLowerCase(), o = u.precision ? o.substring(0, u.precision) : o;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"u\":\n\t\t\t\t\t\to = parseInt(o, 10) >>> 0;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"v\":\n\t\t\t\t\t\to = o.valueOf(), o = u.precision ? o.substring(0, u.precision) : o;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"x\":\n\t\t\t\t\t\to = (parseInt(o, 10) >>> 0).toString(16);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"X\":\n\t\t\t\t\t\to = (parseInt(o, 10) >>> 0).toString(16).toUpperCase();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tt.json.test(u.type) ? s += o : (t.number.test(u.type) && (!m || u.sign) ? (h = m ? \"+\" : \"-\", o = o.toString().replace(t.sign, \"\")) : h = \"\", f = u.pad_char ? u.pad_char === \"0\" ? \"0\" : u.pad_char.charAt(1) : \" \", p = u.width - (h + o).length, d = u.width && p > 0 ? f.repeat(p) : \"\", s += u.align ? h + o + d : f === \"0\" ? h + d + o : d + h + o);\n\t\t\t}\n\t\t\treturn s;\n\t\t}\n\t\tvar a = Object.create(null);\n\t\tfunction o(e) {\n\t\t\tif (a[e]) return a[e];\n\t\t\tfor (var n = e, r, i = [], o = 0; n;) {\n\t\t\t\tif ((r = t.text.exec(n)) !== null) i.push(r[0]);\n\t\t\t\telse if ((r = t.modulo.exec(n)) !== null) i.push(\"%\");\n\t\t\t\telse if ((r = t.placeholder.exec(n)) !== null) {\n\t\t\t\t\tif (r[2]) {\n\t\t\t\t\t\to |= 1;\n\t\t\t\t\t\tvar s = [], c = r[2], l = [];\n\t\t\t\t\t\tif ((l = t.key.exec(c)) !== null) for (s.push(l[1]); (c = c.substring(l[0].length)) !== \"\";) if ((l = t.key_access.exec(c)) !== null) s.push(l[1]);\n\t\t\t\t\t\telse if ((l = t.index_access.exec(c)) !== null) s.push(l[1]);\n\t\t\t\t\t\telse throw SyntaxError(\"[sprintf] failed to parse named argument key\");\n\t\t\t\t\t\telse throw SyntaxError(\"[sprintf] failed to parse named argument key\");\n\t\t\t\t\t\tr[2] = s;\n\t\t\t\t\t} else o |= 2;\n\t\t\t\t\tif (o === 3) throw Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\");\n\t\t\t\t\ti.push({\n\t\t\t\t\t\tplaceholder: r[0],\n\t\t\t\t\t\tparam_no: r[1],\n\t\t\t\t\t\tkeys: r[2],\n\t\t\t\t\t\tsign: r[3],\n\t\t\t\t\t\tpad_char: r[4],\n\t\t\t\t\t\talign: r[5],\n\t\t\t\t\t\twidth: r[6],\n\t\t\t\t\t\tprecision: r[7],\n\t\t\t\t\t\ttype: r[8]\n\t\t\t\t\t});\n\t\t\t\t} else throw SyntaxError(\"[sprintf] unexpected placeholder\");\n\t\t\t\tn = n.substring(r[0].length);\n\t\t\t}\n\t\t\treturn a[e] = i;\n\t\t}\n\t\te !== void 0 && (e.sprintf = n, e.vsprintf = r), typeof window < \"u\" && (window.sprintf = n, window.vsprintf = r, typeof define == \"function\" && define.amd && define(function() {\n\t\t\treturn {\n\t\t\t\tsprintf: n,\n\t\t\t\tvsprintf: r\n\t\t\t};\n\t\t}));\n\t})();\n})), bx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = typeof Reflect == \"object\" ? Reflect : null, r = n && typeof n.apply == \"function\" ? n.apply : function(e, t, n) {\n\t\treturn Function.prototype.apply.call(e, t, n);\n\t}, i = n && typeof n.ownKeys == \"function\" ? n.ownKeys : Object.getOwnPropertySymbols ? function(e) {\n\t\treturn Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e));\n\t} : function(e) {\n\t\treturn Object.getOwnPropertyNames(e);\n\t};\n\tfunction a(e) {\n\t\tconsole && console.warn && console.warn(e);\n\t}\n\tvar o = Number.isNaN || function(e) {\n\t\treturn e !== e;\n\t};\n\tfunction s() {\n\t\ts.init.call(this);\n\t}\n\tt.exports = s, t.exports.once = y, s.EventEmitter = s, s.prototype._events = void 0, s.prototype._eventsCount = 0, s.prototype._maxListeners = void 0;\n\tvar c = 10;\n\tfunction l(e) {\n\t\tif (typeof e != \"function\") throw TypeError(\"The \\\"listener\\\" argument must be of type Function. Received type \" + typeof e);\n\t}\n\tObject.defineProperty(s, \"defaultMaxListeners\", {\n\t\tenumerable: !0,\n\t\tget: function() {\n\t\t\treturn c;\n\t\t},\n\t\tset: function(e) {\n\t\t\tif (typeof e != \"number\" || e < 0 || o(e)) throw RangeError(\"The value of \\\"defaultMaxListeners\\\" is out of range. It must be a non-negative number. Received \" + e + \".\");\n\t\t\tc = e;\n\t\t}\n\t}), s.init = function() {\n\t\t(this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) && (this._events = Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;\n\t}, s.prototype.setMaxListeners = function(e) {\n\t\tif (typeof e != \"number\" || e < 0 || o(e)) throw RangeError(\"The value of \\\"n\\\" is out of range. It must be a non-negative number. Received \" + e + \".\");\n\t\treturn this._maxListeners = e, this;\n\t};\n\tfunction u(e) {\n\t\treturn e._maxListeners === void 0 ? s.defaultMaxListeners : e._maxListeners;\n\t}\n\ts.prototype.getMaxListeners = function() {\n\t\treturn u(this);\n\t}, s.prototype.emit = function(e) {\n\t\tfor (var t = [], n = 1; n < arguments.length; n++) t.push(arguments[n]);\n\t\tvar i = e === \"error\", a = this._events;\n\t\tif (a !== void 0) i &&= a.error === void 0;\n\t\telse if (!i) return !1;\n\t\tif (i) {\n\t\t\tvar o;\n\t\t\tif (t.length > 0 && (o = t[0]), o instanceof Error) throw o;\n\t\t\tvar s = /* @__PURE__ */ Error(\"Unhandled error.\" + (o ? \" (\" + o.message + \")\" : \"\"));\n\t\t\tthrow s.context = o, s;\n\t\t}\n\t\tvar c = a[e];\n\t\tif (c === void 0) return !1;\n\t\tif (typeof c == \"function\") r(c, this, t);\n\t\telse for (var l = c.length, u = g(c, l), n = 0; n < l; ++n) r(u[n], this, t);\n\t\treturn !0;\n\t};\n\tfunction d(e, t, n, r) {\n\t\tvar i, o, s;\n\t\tif (l(n), o = e._events, o === void 0 ? (o = e._events = Object.create(null), e._eventsCount = 0) : (o.newListener !== void 0 && (e.emit(\"newListener\", t, n.listener ? n.listener : n), o = e._events), s = o[t]), s === void 0) s = o[t] = n, ++e._eventsCount;\n\t\telse if (typeof s == \"function\" ? s = o[t] = r ? [n, s] : [s, n] : r ? s.unshift(n) : s.push(n), i = u(e), i > 0 && s.length > i && !s.warned) {\n\t\t\ts.warned = !0;\n\t\t\tvar c = /* @__PURE__ */ Error(\"Possible EventEmitter memory leak detected. \" + s.length + \" \" + String(t) + \" listeners added. Use emitter.setMaxListeners() to increase limit\");\n\t\t\tc.name = \"MaxListenersExceededWarning\", c.emitter = e, c.type = t, c.count = s.length, a(c);\n\t\t}\n\t\treturn e;\n\t}\n\ts.prototype.addListener = function(e, t) {\n\t\treturn d(this, e, t, !1);\n\t}, s.prototype.on = s.prototype.addListener, s.prototype.prependListener = function(e, t) {\n\t\treturn d(this, e, t, !0);\n\t};\n\tfunction f() {\n\t\tif (!this.fired) return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, arguments.length === 0 ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);\n\t}\n\tfunction p(e, t, n) {\n\t\tvar r = {\n\t\t\tfired: !1,\n\t\t\twrapFn: void 0,\n\t\t\ttarget: e,\n\t\t\ttype: t,\n\t\t\tlistener: n\n\t\t}, i = f.bind(r);\n\t\treturn i.listener = n, r.wrapFn = i, i;\n\t}\n\ts.prototype.once = function(e, t) {\n\t\treturn l(t), this.on(e, p(this, e, t)), this;\n\t}, s.prototype.prependOnceListener = function(e, t) {\n\t\treturn l(t), this.prependListener(e, p(this, e, t)), this;\n\t}, s.prototype.removeListener = function(e, t) {\n\t\tvar n, r, i, a, o;\n\t\tif (l(t), r = this._events, r === void 0 || (n = r[e], n === void 0)) return this;\n\t\tif (n === t || n.listener === t) --this._eventsCount === 0 ? this._events = Object.create(null) : (delete r[e], r.removeListener && this.emit(\"removeListener\", e, n.listener || t));\n\t\telse if (typeof n != \"function\") {\n\t\t\tfor (i = -1, a = n.length - 1; a >= 0; a--) if (n[a] === t || n[a].listener === t) {\n\t\t\t\to = n[a].listener, i = a;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (i < 0) return this;\n\t\t\ti === 0 ? n.shift() : _(n, i), n.length === 1 && (r[e] = n[0]), r.removeListener !== void 0 && this.emit(\"removeListener\", e, o || t);\n\t\t}\n\t\treturn this;\n\t}, s.prototype.off = s.prototype.removeListener, s.prototype.removeAllListeners = function(e) {\n\t\tvar t, n = this._events, r;\n\t\tif (n === void 0) return this;\n\t\tif (n.removeListener === void 0) return arguments.length === 0 ? (this._events = Object.create(null), this._eventsCount = 0) : n[e] !== void 0 && (--this._eventsCount === 0 ? this._events = Object.create(null) : delete n[e]), this;\n\t\tif (arguments.length === 0) {\n\t\t\tvar i = Object.keys(n), a;\n\t\t\tfor (r = 0; r < i.length; ++r) a = i[r], a !== \"removeListener\" && this.removeAllListeners(a);\n\t\t\treturn this.removeAllListeners(\"removeListener\"), this._events = Object.create(null), this._eventsCount = 0, this;\n\t\t}\n\t\tif (t = n[e], typeof t == \"function\") this.removeListener(e, t);\n\t\telse if (t !== void 0) for (r = t.length - 1; r >= 0; r--) this.removeListener(e, t[r]);\n\t\treturn this;\n\t};\n\tfunction m(e, t, n) {\n\t\tvar r = e._events;\n\t\tif (r === void 0) return [];\n\t\tvar i = r[t];\n\t\treturn i === void 0 ? [] : typeof i == \"function\" ? n ? [i.listener || i] : [i] : n ? v(i) : g(i, i.length);\n\t}\n\ts.prototype.listeners = function(e) {\n\t\treturn m(this, e, !0);\n\t}, s.prototype.rawListeners = function(e) {\n\t\treturn m(this, e, !1);\n\t}, s.listenerCount = function(e, t) {\n\t\treturn typeof e.listenerCount == \"function\" ? e.listenerCount(t) : h.call(e, t);\n\t}, s.prototype.listenerCount = h;\n\tfunction h(e) {\n\t\tvar t = this._events;\n\t\tif (t !== void 0) {\n\t\t\tvar n = t[e];\n\t\t\tif (typeof n == \"function\") return 1;\n\t\t\tif (n !== void 0) return n.length;\n\t\t}\n\t\treturn 0;\n\t}\n\ts.prototype.eventNames = function() {\n\t\treturn this._eventsCount > 0 ? i(this._events) : [];\n\t};\n\tfunction g(e, t) {\n\t\tfor (var n = Array(t), r = 0; r < t; ++r) n[r] = e[r];\n\t\treturn n;\n\t}\n\tfunction _(e, t) {\n\t\tfor (; t + 1 < e.length; t++) e[t] = e[t + 1];\n\t\te.pop();\n\t}\n\tfunction v(e) {\n\t\tfor (var t = Array(e.length), n = 0; n < t.length; ++n) t[n] = e[n].listener || e[n];\n\t\treturn t;\n\t}\n\tfunction y(e, t) {\n\t\treturn new Promise(function(n, r) {\n\t\t\tfunction i(n) {\n\t\t\t\te.removeListener(t, a), r(n);\n\t\t\t}\n\t\t\tfunction a() {\n\t\t\t\ttypeof e.removeListener == \"function\" && e.removeListener(\"error\", i), n([].slice.call(arguments));\n\t\t\t}\n\t\t\tx(e, t, a, { once: !0 }), t !== \"error\" && b(e, i, { once: !0 });\n\t\t});\n\t}\n\tfunction b(e, t, n) {\n\t\ttypeof e.on == \"function\" && x(e, \"error\", t, n);\n\t}\n\tfunction x(e, t, n, r) {\n\t\tif (typeof e.on == \"function\") r.once ? e.once(t, n) : e.on(t, n);\n\t\telse if (typeof e.addEventListener == \"function\") e.addEventListener(t, function i(a) {\n\t\t\tr.once && e.removeEventListener(t, i), n(a);\n\t\t});\n\t\telse throw TypeError(\"The \\\"emitter\\\" argument must be of type EventEmitter. Received type \" + typeof e);\n\t}\n})), xx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = [].indexOf;\n\tt.exports = function(e, t) {\n\t\tif (n) return e.indexOf(t);\n\t\tfor (var r = 0; r < e.length; ++r) if (e[r] === t) return r;\n\t\treturn -1;\n\t};\n})), Sx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = Array.prototype, r = n.concat, i = n.slice, a = xx();\n\tfunction o(e) {\n\t\tvar t = {}, o = r.apply(n, i.call(arguments, 1));\n\t\tfor (var s in e) a(o, s) === -1 && (t[s] = e[s]);\n\t\treturn t;\n\t}\n\tt.exports = o;\n})), Cx = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = {\n\t\t__locale: \"en\",\n\t\tdays: [\n\t\t\t\"Sunday\",\n\t\t\t\"Monday\",\n\t\t\t\"Tuesday\",\n\t\t\t\"Wednesday\",\n\t\t\t\"Thursday\",\n\t\t\t\"Friday\",\n\t\t\t\"Saturday\"\n\t\t],\n\t\tabbreviated_days: [\n\t\t\t\"Sun\",\n\t\t\t\"Mon\",\n\t\t\t\"Tue\",\n\t\t\t\"Wed\",\n\t\t\t\"Thu\",\n\t\t\t\"Fri\",\n\t\t\t\"Sat\"\n\t\t],\n\t\tmonths: [\n\t\t\t\"January\",\n\t\t\t\"February\",\n\t\t\t\"March\",\n\t\t\t\"April\",\n\t\t\t\"May\",\n\t\t\t\"June\",\n\t\t\t\"July\",\n\t\t\t\"August\",\n\t\t\t\"September\",\n\t\t\t\"October\",\n\t\t\t\"November\",\n\t\t\t\"December\"\n\t\t],\n\t\tabbreviated_months: [\n\t\t\t\"Jan\",\n\t\t\t\"Feb\",\n\t\t\t\"Mar\",\n\t\t\t\"Apr\",\n\t\t\t\"May\",\n\t\t\t\"Jun\",\n\t\t\t\"Jul\",\n\t\t\t\"Aug\",\n\t\t\t\"Sep\",\n\t\t\t\"Oct\",\n\t\t\t\"Nov\",\n\t\t\t\"Dec\"\n\t\t],\n\t\tam: \"AM\",\n\t\tpm: \"PM\"\n\t};\n})), wx = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = Cx();\n})), Tx = /* @__PURE__ */ F(((e, t) => {\n\tvar n = wx();\n\tfunction r(e, t, c) {\n\t\tvar l = e.getTime();\n\t\treturn c ||= n, t.replace(/%([-_0]?.)/g, function(t, n) {\n\t\t\tvar u = null;\n\t\t\tif (n.length == 2) {\n\t\t\t\tswitch (n[0]) {\n\t\t\t\t\tcase \"-\":\n\t\t\t\t\t\tu = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"_\":\n\t\t\t\t\t\tu = \" \";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"0\":\n\t\t\t\t\t\tu = \"0\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: return t;\n\t\t\t\t}\n\t\t\t\tn = n[1];\n\t\t\t}\n\t\t\tswitch (n) {\n\t\t\t\tcase \"A\": return c.days[e.getDay()];\n\t\t\t\tcase \"a\": return c.abbreviated_days[e.getDay()];\n\t\t\t\tcase \"B\": return c.months[e.getMonth()];\n\t\t\t\tcase \"b\": return c.abbreviated_months[e.getMonth()];\n\t\t\t\tcase \"C\": return i(Math.floor(e.getFullYear() / 100), u);\n\t\t\t\tcase \"D\": return r(e, \"%m/%d/%y\");\n\t\t\t\tcase \"d\": return i(e.getDate(), u);\n\t\t\t\tcase \"e\": return e.getDate();\n\t\t\t\tcase \"F\": return r(e, \"%Y-%m-%d\");\n\t\t\t\tcase \"H\": return i(e.getHours(), u);\n\t\t\t\tcase \"h\": return c.abbreviated_months[e.getMonth()];\n\t\t\t\tcase \"I\": return i(a(e), u);\n\t\t\t\tcase \"j\": return i(Math.ceil((e.getTime() - new Date(e.getFullYear(), 0, 1).getTime()) / (1e3 * 60 * 60 * 24)), 3);\n\t\t\t\tcase \"k\": return i(e.getHours(), u === null ? \" \" : u);\n\t\t\t\tcase \"L\": return i(Math.floor(l % 1e3), 3);\n\t\t\t\tcase \"l\": return i(a(e), u === null ? \" \" : u);\n\t\t\t\tcase \"M\": return i(e.getMinutes(), u);\n\t\t\t\tcase \"m\": return i(e.getMonth() + 1, u);\n\t\t\t\tcase \"n\": return \"\\n\";\n\t\t\t\tcase \"o\": return String(e.getDate()) + o(e.getDate());\n\t\t\t\tcase \"P\": return e.getHours() < 12 ? c.am.toLowerCase() : c.pm.toLowerCase();\n\t\t\t\tcase \"p\": return e.getHours() < 12 ? c.am.toUpperCase() : c.pm.toUpperCase();\n\t\t\t\tcase \"R\": return r(e, \"%H:%M\");\n\t\t\t\tcase \"r\": return r(e, \"%I:%M:%S %p\");\n\t\t\t\tcase \"S\": return i(e.getSeconds(), u);\n\t\t\t\tcase \"s\": return Math.floor(l / 1e3);\n\t\t\t\tcase \"T\": return r(e, \"%H:%M:%S\");\n\t\t\t\tcase \"t\": return \"\t\";\n\t\t\t\tcase \"U\": return i(s(e, \"sunday\"), u);\n\t\t\t\tcase \"u\": return e.getDay() === 0 ? 7 : e.getDay();\n\t\t\t\tcase \"v\": return r(e, \"%e-%b-%Y\");\n\t\t\t\tcase \"W\": return i(s(e, \"monday\"), u);\n\t\t\t\tcase \"w\": return e.getDay();\n\t\t\t\tcase \"Y\": return e.getFullYear();\n\t\t\t\tcase \"y\":\n\t\t\t\t\tvar d = String(e.getFullYear());\n\t\t\t\t\treturn d.slice(d.length - 2);\n\t\t\t\tcase \"Z\":\n\t\t\t\t\tvar f = e.toString().match(/\\((\\w+)\\)/);\n\t\t\t\t\treturn f && f[1] || \"\";\n\t\t\t\tcase \"z\":\n\t\t\t\t\tvar p = e.getTimezoneOffset();\n\t\t\t\t\treturn (p > 0 ? \"-\" : \"+\") + i(Math.round(Math.abs(p / 60)), 2) + \":\" + i(p % 60, 2);\n\t\t\t\tdefault: return n;\n\t\t\t}\n\t\t});\n\t}\n\tfunction i(e, t, n) {\n\t\ttypeof t == \"number\" && (n = t, t = \"0\"), t === null && (t = \"0\"), n ||= 2;\n\t\tvar r = String(e);\n\t\tif (t) for (; r.length < n;) r = t + r;\n\t\treturn r;\n\t}\n\tfunction a(e) {\n\t\tvar t = e.getHours();\n\t\treturn t === 0 ? t = 12 : t > 12 && (t -= 12), t;\n\t}\n\tfunction o(e) {\n\t\tvar t = e % 10, n = e % 100;\n\t\tif (n >= 11 && n <= 13 || t === 0 || t >= 4) return \"th\";\n\t\tswitch (t) {\n\t\t\tcase 1: return \"st\";\n\t\t\tcase 2: return \"nd\";\n\t\t\tcase 3: return \"rd\";\n\t\t}\n\t}\n\tfunction s(e, t) {\n\t\tt ||= \"sunday\";\n\t\tvar n = e.getDay();\n\t\tt == \"monday\" && (n === 0 ? n = 6 : n--);\n\t\tvar r = ((e - new Date(e.getFullYear(), 0, 1)) / 864e5 + 7 - n) / 7;\n\t\treturn Math.floor(r);\n\t}\n\tt.exports = r;\n})), Ex = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = function(e, t) {\n\t\tvar n;\n\t\treturn t === 0 && \"zero\" in e && (n = \"zero\"), n ||= t === 1 ? \"one\" : \"other\", e[n];\n\t};\n})), Dx = /* @__PURE__ */ F(((e, t) => {\n\tt.exports = { counterpart: {\n\t\tnames: Cx(),\n\t\tpluralize: Ex(),\n\t\tformats: {\n\t\t\tdate: {\n\t\t\t\tdefault: \"%a, %e %b %Y\",\n\t\t\t\tlong: \"%A, %B %o, %Y\",\n\t\t\t\tshort: \"%b %e\"\n\t\t\t},\n\t\t\ttime: {\n\t\t\t\tdefault: \"%H:%M\",\n\t\t\t\tlong: \"%H:%M:%S %z\",\n\t\t\t\tshort: \"%H:%M\"\n\t\t\t},\n\t\t\tdatetime: {\n\t\t\t\tdefault: \"%a, %e %b %Y %H:%M\",\n\t\t\t\tlong: \"%A, %B %o, %Y %H:%M:%S %z\",\n\t\t\t\tshort: \"%e %b %H:%M\"\n\t\t\t}\n\t\t}\n\t} };\n})), Ox = /* @__PURE__ */ Ue((/* @__PURE__ */ F(((e, t) => {\n\tvar n = gb(), r = vx().isArray, i = vx().isDate, a = yx().sprintf, o = bx(), s = Sx(), c = Tx(), l = \"counterpart\";\n\tfunction u(e) {\n\t\treturn typeof e == \"string\" || Object.prototype.toString.call(e) === \"[object String]\";\n\t}\n\tfunction d(e) {\n\t\treturn typeof e == \"function\" || Object.prototype.toString.call(e) === \"[object Function]\";\n\t}\n\tfunction f(e) {\n\t\treturn e === null ? !1 : Object.prototype.toString.call(e) === \"[object Object]\";\n\t}\n\tfunction p(e) {\n\t\treturn u(e) && e[0] === \":\";\n\t}\n\tfunction m(e, t) {\n\t\treturn Object.prototype.hasOwnProperty.call(e, t);\n\t}\n\tfunction h(e, t) {\n\t\treturn t.reduce(function(e, t) {\n\t\t\treturn f(e) && m(e, t) ? e[t] : null;\n\t\t}, e);\n\t}\n\tfunction g() {\n\t\to.EventEmitter.apply(this), this._registry = {\n\t\t\tlocale: \"en\",\n\t\t\tinterpolate: !0,\n\t\t\tfallbackLocales: [],\n\t\t\tscope: null,\n\t\t\ttranslations: {},\n\t\t\tinterpolations: {},\n\t\t\tnormalizedKeys: {},\n\t\t\tseparator: \".\",\n\t\t\tkeepTrailingDot: !1,\n\t\t\tkeyTransformer: function(e) {\n\t\t\t\treturn e;\n\t\t\t},\n\t\t\tgenerateMissingEntry: function(e) {\n\t\t\t\treturn \"missing translation: \" + e;\n\t\t\t}\n\t\t}, this.registerTranslations(\"en\", Dx()), this.setMaxListeners(0);\n\t}\n\tg.prototype = o.EventEmitter.prototype, g.prototype.constructor = o.EventEmitter, g.prototype.getLocale = function() {\n\t\treturn this._registry.locale;\n\t}, g.prototype.setLocale = function(e) {\n\t\tvar t = this._registry.locale;\n\t\treturn t != e && (this._registry.locale = e, this.emit(\"localechange\", e, t)), t;\n\t}, g.prototype.getFallbackLocale = function() {\n\t\treturn this._registry.fallbackLocales;\n\t}, g.prototype.setFallbackLocale = function(e) {\n\t\tvar t = this._registry.fallbackLocales;\n\t\treturn this._registry.fallbackLocales = [].concat(e || []), t;\n\t}, g.prototype.getAvailableLocales = function() {\n\t\treturn this._registry.availableLocales || Object.keys(this._registry.translations);\n\t}, g.prototype.setAvailableLocales = function(e) {\n\t\tvar t = this.getAvailableLocales();\n\t\treturn this._registry.availableLocales = e, t;\n\t}, g.prototype.getSeparator = function() {\n\t\treturn this._registry.separator;\n\t}, g.prototype.setSeparator = function(e) {\n\t\tvar t = this._registry.separator;\n\t\treturn this._registry.separator = e, t;\n\t}, g.prototype.setInterpolate = function(e) {\n\t\tvar t = this._registry.interpolate;\n\t\treturn this._registry.interpolate = e, t;\n\t}, g.prototype.getInterpolate = function() {\n\t\treturn this._registry.interpolate;\n\t}, g.prototype.setKeyTransformer = function(e) {\n\t\tvar t = this._registry.keyTransformer;\n\t\treturn this._registry.keyTransformer = e, t;\n\t}, g.prototype.getKeyTransformer = function() {\n\t\treturn this._registry.keyTransformer;\n\t}, g.prototype.setMissingEntryGenerator = function(e) {\n\t\tvar t = this._registry.generateMissingEntry;\n\t\treturn this._registry.generateMissingEntry = e, t;\n\t}, g.prototype.getMissingEntryGenerator = function() {\n\t\treturn this._registry.generateMissingEntry;\n\t}, g.prototype.registerTranslations = function(e, t) {\n\t\tvar r = {};\n\t\treturn r[e] = t, n(!0, this._registry.translations, r), r;\n\t}, g.prototype.registerInterpolations = function(e) {\n\t\treturn n(!0, this._registry.interpolations, e);\n\t}, g.prototype.onLocaleChange = g.prototype.addLocaleChangeListener = function(e) {\n\t\tthis.addListener(\"localechange\", e);\n\t}, g.prototype.offLocaleChange = g.prototype.removeLocaleChangeListener = function(e) {\n\t\tthis.removeListener(\"localechange\", e);\n\t}, g.prototype.onTranslationNotFound = g.prototype.addTranslationNotFoundListener = function(e) {\n\t\tthis.addListener(\"translationnotfound\", e);\n\t}, g.prototype.offTranslationNotFound = g.prototype.removeTranslationNotFoundListener = function(e) {\n\t\tthis.removeListener(\"translationnotfound\", e);\n\t}, g.prototype.onError = g.prototype.addErrorListener = function(e) {\n\t\tthis.addListener(\"error\", e);\n\t}, g.prototype.offError = g.prototype.removeErrorListener = function(e) {\n\t\tthis.removeListener(\"error\", e);\n\t}, g.prototype.translate = function(e, t) {\n\t\tif (!r(e) && !u(e) || !e.length) throw Error(\"invalid argument: key\");\n\t\tp(e) && (e = e.substr(1)), e = this._registry.keyTransformer(e, t), t = n(!0, {}, t);\n\t\tvar i = t.locale || this._registry.locale;\n\t\tdelete t.locale;\n\t\tvar a = t.scope || this._registry.scope;\n\t\tdelete t.scope;\n\t\tvar o = t.separator || this._registry.separator;\n\t\tdelete t.separator;\n\t\tvar s = [].concat(t.fallbackLocale || this._registry.fallbackLocales);\n\t\tdelete t.fallbackLocale;\n\t\tvar c = this._normalizeKeys(i, a, e, o), l = h(this._registry.translations, c);\n\t\tif (l === null && (this.emit(\"translationnotfound\", i, e, t.fallback, a), t.fallback && (l = this._fallback(i, a, e, t.fallback, t))), l === null && s.length > 0 && s.indexOf(i) === -1) for (var d = 0, f = s.length; d < f; d++) {\n\t\t\tvar m = s[d], g = this._normalizeKeys(m, a, e, o);\n\t\t\tif (l = h(this._registry.translations, g), l) {\n\t\t\t\ti = m;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn l === null && (l = this._registry.generateMissingEntry(c.join(o))), l = this._pluralize(i, l, t.count), this._registry.interpolate !== !1 && t.interpolate !== !1 && (l = this._interpolate(l, t)), l;\n\t}, g.prototype.localize = function(e, t) {\n\t\tif (!i(e)) throw Error(\"invalid argument: object must be a date\");\n\t\tt = n(!0, {}, t);\n\t\tvar r = t.locale || this._registry.locale, a = t.scope || l, o = t.type || \"datetime\", s = t.format || \"default\";\n\t\treturn t = {\n\t\t\tlocale: r,\n\t\t\tscope: a,\n\t\t\tinterpolate: !1\n\t\t}, s = this.translate([\n\t\t\t\"formats\",\n\t\t\to,\n\t\t\ts\n\t\t], n(!0, {}, t)), c(e, s, this.translate(\"names\", t));\n\t}, g.prototype._pluralize = function(e, t, n) {\n\t\tif (typeof t != \"object\" || !t || typeof n != \"number\") return t;\n\t\tvar r = this.translate(\"pluralize\", {\n\t\t\tlocale: e,\n\t\t\tscope: l\n\t\t});\n\t\treturn Object.prototype.toString.call(r) === \"[object Function]\" ? r(t, n) : r;\n\t}, g.prototype.withLocale = function(e, t, n) {\n\t\tvar r = this._registry.locale;\n\t\tthis._registry.locale = e;\n\t\tvar i = t.call(n);\n\t\treturn this._registry.locale = r, i;\n\t}, g.prototype.withScope = function(e, t, n) {\n\t\tvar r = this._registry.scope;\n\t\tthis._registry.scope = e;\n\t\tvar i = t.call(n);\n\t\treturn this._registry.scope = r, i;\n\t}, g.prototype.withSeparator = function(e, t, n) {\n\t\tvar r = this.setSeparator(e), i = t.call(n);\n\t\treturn this.setSeparator(r), i;\n\t}, g.prototype._normalizeKeys = function(e, t, n, r) {\n\t\tvar i = [];\n\t\treturn i = i.concat(this._normalizeKey(e, r)), i = i.concat(this._normalizeKey(t, r)), i = i.concat(this._normalizeKey(n, r)), i;\n\t}, g.prototype._normalizeKey = function(e, t) {\n\t\treturn this._registry.normalizedKeys[t] = this._registry.normalizedKeys[t] || {}, this._registry.normalizedKeys[t][e] = this._registry.normalizedKeys[t][e] || function(e) {\n\t\t\tif (r(e)) {\n\t\t\t\tvar n = e.map(function(e) {\n\t\t\t\t\treturn this._normalizeKey(e, t);\n\t\t\t\t}.bind(this));\n\t\t\t\treturn [].concat.apply([], n);\n\t\t\t} else {\n\t\t\t\tif (e == null) return [];\n\t\t\t\tfor (var i = e.split(t), a = i.length - 1; a >= 0; a--) i[a] === \"\" && (i.splice(a, 1), this._registry.keepTrailingDot === !0 && a == i.length && (i[i.length - 1] += \"\" + t));\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}.bind(this)(e), this._registry.normalizedKeys[t][e];\n\t}, g.prototype._interpolate = function(e, t) {\n\t\tif (typeof e != \"string\") return e;\n\t\ttry {\n\t\t\treturn a(e, n({}, this._registry.interpolations, t));\n\t\t} catch (n) {\n\t\t\tif (this.listenerCount(\"error\") > 0) this.emit(\"error\", n, e, t);\n\t\t\telse throw n;\n\t\t\treturn null;\n\t\t}\n\t}, g.prototype._resolve = function(e, t, r, i, a) {\n\t\tif (a ||= {}, a.resolve === !1) return i;\n\t\tvar o;\n\t\tif (p(i)) o = this.translate(i, n({}, a, {\n\t\t\tlocale: e,\n\t\t\tscope: t\n\t\t}));\n\t\telse if (d(i)) {\n\t\t\tvar s;\n\t\t\ta.object ? (s = a.object, delete a.object) : s = r, o = this._resolve(e, t, r, i(s, a));\n\t\t} else o = i;\n\t\treturn /^missing translation:/.test(o) ? null : o;\n\t}, g.prototype._fallback = function(e, t, n, i, a) {\n\t\tif (a = s(a, \"fallback\"), r(i)) {\n\t\t\tfor (var o = 0, c = i.length; o < c; o++) {\n\t\t\t\tvar l = this._resolve(e, t, n, i[o], a);\n\t\t\t\tif (l) return l;\n\t\t\t}\n\t\t\treturn null;\n\t\t} else return this._resolve(e, t, n, i, a);\n\t};\n\tvar _ = new g();\n\tfunction v() {\n\t\treturn _.translate.apply(_, arguments);\n\t}\n\tn(v, _, {\n\t\tInstance: g,\n\t\tTranslator: g\n\t}), t.exports = v;\n})))(), 1), kx = \"i18n/\";\nOx.default.setSeparator(\"|\");\nvar Ax = \"en\";\nOx.default.setFallbackLocale(Ax);\nfunction jx(e, t) {\n\tOx.default.registerTranslations(e, t);\n}\nfunction Mx(e) {\n\tOx.default.setMissingEntryGenerator(e);\n}\nfunction Nx() {\n\treturn Ox.default.getLocale();\n}\nfunction Px(e) {\n\treturn Ox.default.setLocale(e);\n}\nfunction Fx(e) {\n\treturn e;\n}\nfunction Ix(e) {\n\treturn typeof e == \"string\" && !e.startsWith(\"missing translation:\");\n}\nvar Lx = (e, t) => {\n\tlet n = Ox.default.translate(e, {\n\t\t...t,\n\t\tfallbackLocale: Ox.default.getLocale()\n\t});\n\tif (Ix(n)) return { translated: n };\n\tlet r = Ox.default.translate(e, {\n\t\t...t,\n\t\tlocale: Ax\n\t});\n\treturn Ix(r) ? {\n\t\ttranslated: r,\n\t\tisFallback: !0\n\t} : {\n\t\ttranslated: e,\n\t\tisFallback: !0\n\t};\n};\nfunction Rx(e, t) {\n\tlet n = {\n\t\t...t,\n\t\tinterpolate: !1\n\t};\n\treturn n && typeof n == \"object\" && Object.keys(n).forEach((e) => {\n\t\tn[e] === void 0 && (console.warn(\"safeCounterpartTranslate called with undefined interpolation name: \" + e), n[e] = \"undefined\"), n[e] === null && (console.warn(\"safeCounterpartTranslate called with null interpolation name: \" + e), n[e] = \"null\");\n\t}), Lx(e, n);\n}\nvar zx = (e, t) => e;\nfunction W(e, t, n) {\n\tlet { translated: r } = Rx(e, t);\n\treturn zx(Ux(r, t, n), e);\n}\nfunction Bx(e) {\n\treturn Rx(e, {}).translated;\n}\nfunction Vx(e, t, n) {\n\tlet { translated: r, isFallback: i } = Rx(e, t), a = Ux(r, t, n);\n\treturn zx(i ? /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tlang: \"en\",\n\t\tchildren: a\n\t}) : a, e);\n}\nfunction Hx(e) {\n\treturn e.replace(/%\\(([^)]*)\\)/g, \"%\\xA0($1)\");\n}\nfunction Ux(e, t, n) {\n\tlet r = e;\n\tif (t !== void 0) {\n\t\tlet e = {};\n\t\tfor (let n in t) e[`%\\\\(${n}\\\\)s`] = t[n];\n\t\tr = Wx(r, e);\n\t}\n\tif (n !== void 0) {\n\t\tlet e = {};\n\t\tfor (let t in n) e[`(<${t}>(.*?)<\\\\/${t}>|<${t}>|<${t}\\\\s*\\\\/>)`] = n[t];\n\t\tr = Wx(r, e);\n\t}\n\treturn r;\n}\nfunction Wx(e, t) {\n\tlet n = [e], r = !1;\n\tfor (let i in t) {\n\t\tlet a = new RegExp(i, \"g\"), o = !1;\n\t\tfor (let e = 0; e < n.length; e++) {\n\t\t\tlet s = n[e];\n\t\t\tif (typeof s != \"string\") continue;\n\t\t\tlet c = a.exec(s);\n\t\t\tif (!c) continue;\n\t\t\to = !0;\n\t\t\tlet l = s.slice(0, c.index), u = [], d;\n\t\t\tfor (; c;) {\n\t\t\t\td = c;\n\t\t\t\tlet e = c.slice(2), n;\n\t\t\t\tn = t[i] instanceof Function ? t[i](...e) : t[i], typeof n == \"object\" && (r = !0), (typeof n != \"string\" || n !== \"\") && u.push(n), c = a.exec(s);\n\t\t\t\tlet o;\n\t\t\t\tif (c) {\n\t\t\t\t\tlet e = d.index + d[0].length;\n\t\t\t\t\to = s.slice(e, c.index);\n\t\t\t\t} else o = s.slice(d.index + d[0].length);\n\t\t\t\to && u.push(o);\n\t\t\t}\n\t\t\tn.splice(e, 1, ...u), l !== \"\" && n.splice(e, 0, l);\n\t\t}\n\t\to || i !== \"%\\\\(count\\\\)s\" && i !== \"%\\\\(locale\\\\)s\" && console.log(`Could not find ${a} in ${e}`);\n\t}\n\treturn r ? o.createElement(\"span\", null, ...n) : n.join(\"\");\n}\nasync function Gx(e) {\n\tlet t = await qx(), n = e in t ? e : \"en\", r = await Kx(kx + t[n]);\n\tOx.default.registerTranslations(n, r), Ox.default.setLocale(n);\n}\nasync function Kx(e) {\n\tconsole.log(\"Loading language from\", e);\n\tlet t = await fetch(e, { method: \"GET\" });\n\tif (!t.ok) throw Error(`Failed to load ${e}, got ${t.status}`);\n\treturn t.json();\n}\nasync function qx() {\n\tlet e = \"i18n/languages.json\", t = await fetch(e, { method: \"GET\" });\n\tif (!t.ok) throw Error(`Failed to load ${e}, got ${t.status}`);\n\treturn t.json();\n}\n//#endregion\n//#region src/room/composer/Banner/Banner.tsx\nfunction Jx({ type: e, children: t, avatar: n, className: r, actions: i, onClose: a, ...o }) {\n\tlet s = (0, z.default)(fb.banner, r), c = S(() => {\n\t\tswitch (e) {\n\t\t\tcase \"critical\": return /* @__PURE__ */ (0, B.jsx)(lb, { fontSize: 24 });\n\t\t\tcase \"info\": return /* @__PURE__ */ (0, B.jsx)(db, { fontSize: 24 });\n\t\t\tcase \"success\": return /* @__PURE__ */ (0, B.jsx)(sb, { fontSize: 24 });\n\t\t\tdefault: return /* @__PURE__ */ (0, B.jsx)(db, { fontSize: 24 });\n\t\t}\n\t}, [e]);\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t...o,\n\t\tclassName: s,\n\t\t\"data-type\": e,\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: fb.icon,\n\t\t\t\tchildren: n ?? c\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: fb.content,\n\t\t\t\tchildren: t\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\tclassName: fb.actions,\n\t\t\t\tchildren: [i, a && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\t\tkind: \"secondary\",\n\t\t\t\t\tsize: \"md\",\n\t\t\t\t\tonClick: a,\n\t\t\t\t\tchildren: W(\"action|dismiss\")\n\t\t\t\t})]\n\t\t\t})\n\t\t]\n\t});\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/arrow-down.js\nfunction Yx(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 4.5a1 1 0 0 1 1 1v10.586l4.293-4.293a1 1 0 0 1 1.414 1.414l-6 6a1 1 0 0 1-1.414 0l-6-6a1 1 0 1 1 1.414-1.414L11 16.086V5.5a1 1 0 0 1 1-1\" })\n\t});\n}\nYx.displayName = \"ArrowDownIcon\";\nvar Xx = d(Yx);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/arrow-right.js\nfunction Zx(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M11.793 5.293a1 1 0 0 1 1.414 0l6 6a1 1 0 0 1 0 1.414l-6 6a1 1 0 0 1-1.414-1.414L16.086 13H5.5a1 1 0 1 1 0-2h10.586l-4.293-4.293a1 1 0 0 1 0-1.414\" })\n\t});\n}\nZx.displayName = \"ArrowRightIcon\";\nvar Qx = d(Zx);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/ask-to-join.js\nfunction $x(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 18.156q.478 0 .802-.323.323-.324.323-.802h-2.25q0 .478.323.802.324.323.802.323M8.063 16.47h7.874a.54.54 0 0 0 .394-.169.54.54 0 0 0 0-.788.54.54 0 0 0-.393-.168h-.563V12.7q0-1.237-.675-2.25a3 3 0 0 0-1.856-1.294v-.281a.82.82 0 0 0-.24-.605.82.82 0 0 0-.604-.239.82.82 0 0 0-.844.844v.281A3 3 0 0 0 9.3 10.45a3.97 3.97 0 0 0-.675 2.25v2.644h-.562a.54.54 0 0 0-.394.168.54.54 0 0 0 0 .788.54.54 0 0 0 .394.169M3 19.844V9.719q0-.534.24-1.013.238-.478.66-.787l6.75-5.063q.31-.225.647-.337.338-.113.703-.113.366 0 .703.113.337.112.647.337L20.1 7.92q.422.309.66.787.24.479.24 1.013v10.125q0 .927-.66 1.589-.662.66-1.59.66H5.25q-.928 0-1.59-.66-.66-.66-.66-1.59m2.25 0h13.5V9.719L12 4.656 5.25 9.72z\" })\n\t});\n}\n$x.displayName = \"AskToJoinIcon\";\nvar eS = d($x);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/attachment.js\nfunction tS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M11.5 22q-2.3 0-3.9-1.6T6 16.5V6q0-1.65 1.175-2.825T10 2t2.825 1.175T14 6v9.5q0 1.05-.725 1.775T11.5 18t-1.775-.725T9 15.5V6.75A.73.73 0 0 1 9.75 6a.73.73 0 0 1 .75.75v8.75q0 .424.287.712.288.288.713.288.424 0 .713-.288a.97.97 0 0 0 .287-.712V6q0-1.05-.725-1.775T10 3.5t-1.775.725T7.5 6v10.5q0 1.65 1.175 2.825T11.5 20.5t2.825-1.175T15.5 16.5V6.75a.73.73 0 0 1 .75-.75.73.73 0 0 1 .75.75v9.75q0 2.3-1.6 3.9T11.5 22\" })\n\t});\n}\ntS.displayName = \"AttachmentIcon\";\nvar nS = d(tS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/block.js\nfunction rS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 22a9.7 9.7 0 0 1-3.9-.788 10.1 10.1 0 0 1-3.175-2.137q-1.35-1.35-2.137-3.175A9.7 9.7 0 0 1 2 12q0-2.075.788-3.9a10.1 10.1 0 0 1 2.137-3.175q1.35-1.35 3.175-2.137A9.7 9.7 0 0 1 12 2q2.075 0 3.9.788a10.1 10.1 0 0 1 3.175 2.137q1.35 1.35 2.137 3.175A9.7 9.7 0 0 1 22 12a9.7 9.7 0 0 1-.788 3.9 10.1 10.1 0 0 1-2.137 3.175q-1.35 1.35-3.175 2.137A9.7 9.7 0 0 1 12 22m0-2q3.35 0 5.675-2.325T20 12q0-1.35-.437-2.6A8 8 0 0 0 18.3 7.1L7.1 18.3q1.05.825 2.3 1.262T12 20m-6.3-3.1L16.9 5.7a8 8 0 0 0-2.3-1.263A7.8 7.8 0 0 0 12 4Q8.65 4 6.325 6.325T4 12q0 1.35.438 2.6A8 8 0 0 0 5.7 16.9\" })\n\t});\n}\nrS.displayName = \"BlockIcon\";\nvar iS = d(rS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chat-problem.js\nfunction aS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12.713 16.713A.97.97 0 0 1 12 17a.97.97 0 0 1-.713-.288A.97.97 0 0 1 11 16q0-.424.287-.713A.97.97 0 0 1 12 15q.424 0 .713.287.287.288.287.713 0 .424-.287.712m0-3.999A.97.97 0 0 1 12 13a.97.97 0 0 1-.713-.287A.97.97 0 0 1 11 12V8q0-.424.287-.713A.97.97 0 0 1 12 7q.424 0 .713.287Q13 7.576 13 8v4q0 .424-.287.713\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M2.95 16.3a10.2 10.2 0 0 1-.712-2.1A10.2 10.2 0 0 1 2 12q0-2.075.788-3.9a10.1 10.1 0 0 1 2.137-3.175q1.35-1.35 3.175-2.137A9.7 9.7 0 0 1 12 2q2.075 0 3.9.788a10.1 10.1 0 0 1 3.175 2.137q1.35 1.35 2.137 3.175A9.7 9.7 0 0 1 22 12a9.7 9.7 0 0 1-.788 3.9 10.1 10.1 0 0 1-2.137 3.175q-1.35 1.35-3.175 2.137A9.7 9.7 0 0 1 12 22q-1.125 0-2.2-.238a10.2 10.2 0 0 1-2.1-.712L2.75 22.5a.94.94 0 0 1-1-.25.94.94 0 0 1-.25-1zm4.2 2.8a1 1 0 0 1 .275-.062q.15-.013.275-.013.225 0 .438.038.212.036.412.137a7.4 7.4 0 0 0 1.675.6Q11.1 20 12 20q3.35 0 5.675-2.325T20 12t-2.325-5.675T12 4 6.325 6.325 4 12q0 .9.2 1.775t.6 1.675q.176.325.188.688t-.088.712l-.95 3.2z\" })]\n\t});\n}\naS.displayName = \"ChatProblemIcon\";\nvar oS = d(aS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chat.js\nfunction sS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m1.5 21.25 1.45-4.95a10.2 10.2 0 0 1-.712-2.1A10.2 10.2 0 0 1 2 12q0-2.075.788-3.9a10.1 10.1 0 0 1 2.137-3.175q1.35-1.35 3.175-2.137A9.7 9.7 0 0 1 12 2q2.075 0 3.9.788a10.1 10.1 0 0 1 3.175 2.137q1.35 1.35 2.137 3.175A9.7 9.7 0 0 1 22 12a9.7 9.7 0 0 1-.788 3.9 10.1 10.1 0 0 1-2.137 3.175q-1.35 1.35-3.175 2.137A9.7 9.7 0 0 1 12 22q-1.125 0-2.2-.238a10.2 10.2 0 0 1-2.1-.712L2.75 22.5a.94.94 0 0 1-1-.25.94.94 0 0 1-.25-1m2.45-1.2 3.2-.95a1 1 0 0 1 .275-.062q.15-.013.275-.013.225 0 .438.038.212.036.412.137a7.4 7.4 0 0 0 1.675.6Q11.1 20 12 20q3.35 0 5.675-2.325T20 12t-2.325-5.675T12 4 6.325 6.325 4 12q0 .9.2 1.775t.6 1.675q.176.325.188.688t-.088.712z\" })\n\t});\n}\nsS.displayName = \"ChatIcon\";\nvar cS = d(sS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/check.js\nfunction lS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M9.55 17.575q-.2 0-.375-.062a.9.9 0 0 1-.325-.213L4.55 13q-.274-.274-.262-.713.012-.437.287-.712a.95.95 0 0 1 .7-.275q.425 0 .7.275L9.55 15.15l8.475-8.475q.274-.275.713-.275.437 0 .712.275.275.274.275.713 0 .437-.275.712l-9.2 9.2q-.15.15-.325.212a1.1 1.1 0 0 1-.375.063\" })\n\t});\n}\nlS.displayName = \"CheckIcon\";\nvar uS = d(lS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chevron-down.js\nfunction dS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 14.95q-.2 0-.375-.062a.9.9 0 0 1-.325-.213l-4.6-4.6a.95.95 0 0 1-.275-.7q0-.425.275-.7a.95.95 0 0 1 .7-.275q.425 0 .7.275l3.9 3.9 3.9-3.9a.95.95 0 0 1 .7-.275q.425 0 .7.275a.95.95 0 0 1 .275.7.95.95 0 0 1-.275.7l-4.6 4.6q-.15.15-.325.212a1.1 1.1 0 0 1-.375.063\" })\n\t});\n}\ndS.displayName = \"ChevronDownIcon\";\nvar fS = d(dS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chevron-left.js\nfunction pS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m13.3 17.3-4.6-4.6a.9.9 0 0 1-.213-.325A1.1 1.1 0 0 1 8.425 12q0-.2.062-.375A.9.9 0 0 1 8.7 11.3l4.6-4.6a.95.95 0 0 1 .7-.275q.425 0 .7.275a.95.95 0 0 1 .275.7.95.95 0 0 1-.275.7L10.8 12l3.9 3.9a.95.95 0 0 1 .275.7.95.95 0 0 1-.275.7.95.95 0 0 1-.7.275.95.95 0 0 1-.7-.275\" })\n\t});\n}\npS.displayName = \"ChevronLeftIcon\";\nvar mS = d(pS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chevron-right.js\nfunction hS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M8.7 17.3a.95.95 0 0 1-.275-.7q0-.425.275-.7l3.9-3.9-3.9-3.9a.95.95 0 0 1-.275-.7q0-.425.275-.7a.95.95 0 0 1 .7-.275q.425 0 .7.275l4.6 4.6q.15.15.213.325.062.175.062.375t-.062.375a.9.9 0 0 1-.213.325l-4.6 4.6a.95.95 0 0 1-.7.275.95.95 0 0 1-.7-.275\" })\n\t});\n}\nhS.displayName = \"ChevronRightIcon\";\nvar gS = d(hS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/close.js\nfunction _S(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M6.293 6.293a1 1 0 0 1 1.414 0L12 10.586l4.293-4.293a1 1 0 1 1 1.414 1.414L13.414 12l4.293 4.293a1 1 0 0 1-1.414 1.414L12 13.414l-4.293 4.293a1 1 0 0 1-1.414-1.414L10.586 12 6.293 7.707a1 1 0 0 1 0-1.414\" })\n\t});\n}\n_S.displayName = \"CloseIcon\";\nvar vS = d(_S);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/collapse-all.js\nfunction yS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m12 16.975-3.9 3.9a.95.95 0 0 1-.7.275.95.95 0 0 1-.7-.275.95.95 0 0 1-.275-.7q0-.425.275-.7l3.875-3.875q.575-.575 1.425-.575t1.425.575l3.875 3.875a.95.95 0 0 1 .275.7.95.95 0 0 1-.275.7.95.95 0 0 1-.7.275.95.95 0 0 1-.7-.275zm0-9.8 3.9-3.9A.95.95 0 0 1 16.6 3q.425 0 .7.275a.95.95 0 0 1 .275.7.95.95 0 0 1-.275.7L13.425 8.55q-.575.575-1.425.575t-1.425-.575L6.7 4.675a.95.95 0 0 1-.275-.7q0-.425.275-.7A.95.95 0 0 1 7.4 3q.425 0 .7.275z\" })\n\t});\n}\nyS.displayName = \"CollapseAllIcon\";\nvar bS = d(yS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/collapse.js\nfunction xS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 11.034a1 1 0 0 0 .29.702l.005.005c.18.18.43.29.705.29h8a1 1 0 0 0 0-2h-5.586L22 3.445a1 1 0 0 0-1.414-1.414L14 8.617V3.031a1 1 0 1 0-2 0zm0 1.963a1 1 0 0 0-.29-.702l-.005-.004A1 1 0 0 0 11 12H3a1 1 0 1 0 0 2h5.586L2 20.586A1 1 0 1 0 3.414 22L10 15.414V21a1 1 0 0 0 2 0z\" })\n\t});\n}\nxS.displayName = \"CollapseIcon\";\nvar SS = d(xS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/delete.js\nfunction CS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M7 21q-.824 0-1.412-.587A1.93 1.93 0 0 1 5 19V6a.97.97 0 0 1-.713-.287A.97.97 0 0 1 4 5q0-.424.287-.713A.97.97 0 0 1 5 4h4q0-.424.287-.712A.97.97 0 0 1 10 3h4q.424 0 .713.288Q15 3.575 15 4h4q.424 0 .712.287Q20 4.576 20 5t-.288.713A.97.97 0 0 1 19 6v13q0 .824-.587 1.413A1.93 1.93 0 0 1 17 21zM7 6v13h10V6zm2 10q0 .424.287.712Q9.576 17 10 17t.713-.288A.97.97 0 0 0 11 16V9a.97.97 0 0 0-.287-.713A.97.97 0 0 0 10 8a.97.97 0 0 0-.713.287A.97.97 0 0 0 9 9zm4 0q0 .424.287.712.288.288.713.288.424 0 .713-.288A.97.97 0 0 0 15 16V9a.97.97 0 0 0-.287-.713A.97.97 0 0 0 14 8a.97.97 0 0 0-.713.287A.97.97 0 0 0 13 9z\" })\n\t});\n}\nCS.displayName = \"DeleteIcon\";\nvar wS = d(CS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/devices.js\nfunction TS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M3.5 20q-.625 0-1.062-.437A1.45 1.45 0 0 1 2 18.5q0-.625.438-1.062A1.45 1.45 0 0 1 3.5 17H4V6q0-.824.588-1.412A1.93 1.93 0 0 1 6 4h14q.424 0 .712.287Q21 4.576 21 5t-.288.713A.97.97 0 0 1 20 6H6v11h4.5q.624 0 1.063.438.437.437.437 1.062t-.437 1.063A1.45 1.45 0 0 1 10.5 20zM15 20a.97.97 0 0 1-.713-.288A.97.97 0 0 1 14 19V9q0-.424.287-.713A.97.97 0 0 1 15 8h6q.424 0 .712.287Q22 8.576 22 9v10q0 .424-.288.712A.97.97 0 0 1 21 20zm1-3h4v-7h-4z\" })\n\t});\n}\nTS.displayName = \"DevicesIcon\";\nvar ES = d(TS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/dial-pad.js\nfunction DS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 18.6c-.99 0-1.8.81-1.8 1.8s.81 1.8 1.8 1.8 1.8-.81 1.8-1.8-.81-1.8-1.8-1.8M6.6 2.4c-.99 0-1.8.81-1.8 1.8S5.61 6 6.6 6s1.8-.81 1.8-1.8-.81-1.8-1.8-1.8m0 5.4c-.99 0-1.8.81-1.8 1.8s.81 1.8 1.8 1.8 1.8-.81 1.8-1.8-.81-1.8-1.8-1.8m0 5.4c-.99 0-1.8.81-1.8 1.8s.81 1.8 1.8 1.8 1.8-.81 1.8-1.8-.81-1.8-1.8-1.8M17.4 6c.99 0 1.8-.81 1.8-1.8s-.81-1.8-1.8-1.8-1.8.81-1.8 1.8.81 1.8 1.8 1.8M12 13.2c-.99 0-1.8.81-1.8 1.8s.81 1.8 1.8 1.8 1.8-.81 1.8-1.8-.81-1.8-1.8-1.8m5.4 0c-.99 0-1.8.81-1.8 1.8s.81 1.8 1.8 1.8 1.8-.81 1.8-1.8-.81-1.8-1.8-1.8m0-5.4c-.99 0-1.8.81-1.8 1.8s.81 1.8 1.8 1.8 1.8-.81 1.8-1.8-.81-1.8-1.8-1.8m-5.4 0c-.99 0-1.8.81-1.8 1.8s.81 1.8 1.8 1.8 1.8-.81 1.8-1.8-.81-1.8-1.8-1.8m0-5.4c-.99 0-1.8.81-1.8 1.8S11.01 6 12 6s1.8-.81 1.8-1.8-.81-1.8-1.8-1.8\" })\n\t});\n}\nDS.displayName = \"DialPadIcon\";\nvar OS = d(DS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/download.js\nfunction kS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 15.575q-.2 0-.375-.062a.9.9 0 0 1-.325-.213l-3.6-3.6a.95.95 0 0 1-.275-.7q0-.425.275-.7.274-.275.712-.288t.713.263L11 12.15V5q0-.424.287-.713A.97.97 0 0 1 12 4q.424 0 .713.287Q13 4.576 13 5v7.15l1.875-1.875q.274-.274.713-.263.437.014.712.288a.95.95 0 0 1 .275.7.95.95 0 0 1-.275.7l-3.6 3.6q-.15.15-.325.212a1.1 1.1 0 0 1-.375.063M6 20q-.824 0-1.412-.587A1.93 1.93 0 0 1 4 18v-2q0-.424.287-.713A.97.97 0 0 1 5 15q.424 0 .713.287Q6 15.576 6 16v2h12v-2q0-.424.288-.713A.97.97 0 0 1 19 15q.424 0 .712.287.288.288.288.713v2q0 .824-.587 1.413A1.93 1.93 0 0 1 18 20z\" })\n\t});\n}\nkS.displayName = \"DownloadIcon\";\nvar AS = d(kS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/drag-list.js\nfunction jS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M5 15a.97.97 0 0 1-.713-.287A.97.97 0 0 1 4 14q0-.424.287-.713A.97.97 0 0 1 5 13h14q.424 0 .712.287.288.288.288.713 0 .424-.288.713A.97.97 0 0 1 19 15zm0-4a.97.97 0 0 1-.713-.287A.97.97 0 0 1 4 10q0-.424.287-.713A.97.97 0 0 1 5 9h14q.424 0 .712.287Q20 9.576 20 10t-.288.713A.97.97 0 0 1 19 11z\" })\n\t});\n}\njS.displayName = \"DragListIcon\";\nvar MS = d(jS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/edit.js\nfunction NS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", {\n\t\t\tfillRule: \"evenodd\",\n\t\t\td: \"M15.706 2.637a2 2 0 0 1 2.829 0l2.828 2.828a2 2 0 0 1 0 2.829L9.605 20.052a1 1 0 0 1-.465.263L3.483 21.73a1 1 0 0 1-1.212-1.213l1.414-5.657a1 1 0 0 1 .263-.465zm1.224 7.262L14.102 7.07l-8.544 8.544-.943 3.771 3.771-.943z\",\n\t\t\tclipRule: \"evenodd\"\n\t\t})\n\t});\n}\nNS.displayName = \"EditIcon\";\nvar PS = d(NS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/email-solid.js\nfunction FS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2m0 5.111a1 1 0 0 0 .514.874l7 3.89a1 1 0 0 0 .972 0l7-3.89a1 1 0 1 0-.972-1.748L12 11.856 5.486 8.237A1 1 0 0 0 4 9.111\" })\n\t});\n}\nFS.displayName = \"EmailSolidIcon\";\nvar IS = d(FS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/error-solid.js\nfunction LS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 17q.424 0 .713-.288A.97.97 0 0 0 13 16a.97.97 0 0 0-.287-.713A.97.97 0 0 0 12 15a.97.97 0 0 0-.713.287A.97.97 0 0 0 11 16q0 .424.287.712.288.288.713.288m0-4q.424 0 .713-.287A.97.97 0 0 0 13 12V8a.97.97 0 0 0-.287-.713A.97.97 0 0 0 12 7a.97.97 0 0 0-.713.287A.97.97 0 0 0 11 8v4q0 .424.287.713.288.287.713.287m0 9a9.7 9.7 0 0 1-3.9-.788 10.1 10.1 0 0 1-3.175-2.137q-1.35-1.35-2.137-3.175A9.7 9.7 0 0 1 2 12q0-2.075.788-3.9a10.1 10.1 0 0 1 2.137-3.175q1.35-1.35 3.175-2.137A9.7 9.7 0 0 1 12 2q2.075 0 3.9.788a10.1 10.1 0 0 1 3.175 2.137q1.35 1.35 2.137 3.175A9.7 9.7 0 0 1 22 12a9.7 9.7 0 0 1-.788 3.9 10.1 10.1 0 0 1-2.137 3.175q-1.35 1.35-3.175 2.137A9.7 9.7 0 0 1 12 22\" })\n\t});\n}\nLS.displayName = \"ErrorSolidIcon\";\nvar RS = d(LS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/expand-all.js\nfunction zS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m12 19.2 3.9-3.9a.95.95 0 0 1 .7-.275q.425 0 .7.275a.95.95 0 0 1 .275.7.95.95 0 0 1-.275.7l-3.875 3.875q-.575.575-1.425.575t-1.425-.575L6.7 16.7a.95.95 0 0 1-.275-.7q0-.425.275-.7a.95.95 0 0 1 .7-.275q.425 0 .7.275zm0-14.25-3.9 3.9a.95.95 0 0 1-.7.275.95.95 0 0 1-.7-.275.95.95 0 0 1-.275-.7q0-.425.275-.7l3.875-3.875Q11.15 3 12 3t1.425.575L17.3 7.45a.95.95 0 0 1 .275.7.95.95 0 0 1-.275.7.95.95 0 0 1-.7.275.95.95 0 0 1-.7-.275z\" })\n\t});\n}\nzS.displayName = \"ExpandAllIcon\";\nvar BS = d(zS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/expand.js\nfunction VS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M21 3.997a1 1 0 0 0-.29-.702l-.005-.004A1 1 0 0 0 20 3h-8a1 1 0 1 0 0 2h5.586L5 17.586V12a1 1 0 1 0-2 0v8.003a1 1 0 0 0 .29.702l.005.004c.18.18.43.291.705.291h8a1 1 0 1 0 0-2H6.414L19 6.414V12a1 1 0 1 0 2 0z\" })\n\t});\n}\nVS.displayName = \"ExpandIcon\";\nvar HS = d(VS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/explore.js\nfunction US(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 13a.97.97 0 0 1-.713-.287A.97.97 0 0 1 11 12q0-.424.287-.713A.97.97 0 0 1 12 11q.424 0 .713.287.287.288.287.713 0 .424-.287.713A.97.97 0 0 1 12 13m0 9a9.7 9.7 0 0 1-3.9-.788 10.1 10.1 0 0 1-3.175-2.137q-1.35-1.35-2.137-3.175A9.7 9.7 0 0 1 2 12q0-2.075.788-3.9a10.1 10.1 0 0 1 2.137-3.175q1.35-1.35 3.175-2.137A9.7 9.7 0 0 1 12 2q2.075 0 3.9.788a10.1 10.1 0 0 1 3.175 2.137q1.35 1.35 2.137 3.175A9.7 9.7 0 0 1 22 12a9.7 9.7 0 0 1-.788 3.9 10.1 10.1 0 0 1-2.137 3.175q-1.35 1.35-3.175 2.137A9.7 9.7 0 0 1 12 22m0-2q3.35 0 5.675-2.325T20 12t-2.325-5.675T12 4 6.325 6.325 4 12t2.325 5.675T12 20m0 0q-3.35 0-5.675-2.325T4 12t2.325-5.675T12 4t5.675 2.325T20 12t-2.325 5.675T12 20m1.675-5.85q.15-.075.275-.2t.2-.275l2.925-6.25q.125-.25-.062-.437-.188-.188-.438-.063l-6.25 2.925q-.15.075-.275.2t-.2.275l-2.925 6.25q-.125.25.063.438.186.186.437.062z\" })\n\t});\n}\nUS.displayName = \"ExploreIcon\";\nvar WS = d(US);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/favourite.js\nfunction GS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M13.905 9.378 12 5.52l-1.905 3.86-4.259.618 3.082 3.004-.727 4.242L12 15.24l3.81 2.003-.728-4.242 3.082-3.004zM8.767 7.55l2.336-4.733a1 1 0 0 1 1.794 0l2.336 4.733 5.223.76a1 1 0 0 1 .555 1.705L17.23 13.7l.892 5.202a1 1 0 0 1-1.45 1.054L12 17.5l-4.672 2.456a1 1 0 0 1-1.451-1.054l.892-5.202-3.78-3.685a1 1 0 0 1 .555-1.706z\" })\n\t});\n}\nGS.displayName = \"FavouriteIcon\";\nvar KS = d(GS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/file-error.js\nfunction qS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M6 22q-.824 0-1.412-.587A1.93 1.93 0 0 1 4 20V4q0-.824.588-1.412A1.93 1.93 0 0 1 6 2h7.175a1.98 1.98 0 0 1 1.4.575l4.85 4.85q.275.275.425.638.15.361.15.762v3.516A6 6 0 0 0 18 12V9h-4a.97.97 0 0 1-.713-.287A.97.97 0 0 1 13 8V4H6v16h6.341c.264.745.67 1.423 1.187 2z\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M18 14a1 1 0 0 1 1 1v3a1 1 0 1 1-2 0v-3a1 1 0 0 1 1-1m-1 7a1 1 0 1 1 2 0 1 1 0 0 1-2 0\" })]\n\t});\n}\nqS.displayName = \"FileErrorIcon\";\nvar JS = d(qS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/history.js\nfunction YS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M18.93 8A8 8 0 1 1 4 12a1 1 0 1 0-2 0c0 5.523 4.477 10 10 10s10-4.477 10-10a10 10 0 0 0-.832-4A10 10 0 0 0 12 2a9.99 9.99 0 0 0-8 3.999V4a1 1 0 0 0-2 0v4a1 1 0 0 0 1 1h4a1 1 0 0 0 0-2H5.755A7.99 7.99 0 0 1 12 4a8 8 0 0 1 6.93 4\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M13 8a1 1 0 1 0-2 0v4a1 1 0 0 0 .293.707l2.83 2.83a1 1 0 0 0 1.414-1.414L13 11.586z\" })]\n\t});\n}\nYS.displayName = \"HistoryIcon\";\nvar XS = d(YS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/home.js\nfunction ZS(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", {\n\t\t\tfillRule: \"evenodd\",\n\t\t\td: \"M16 11v8h3V9.177l-7-3.889-7 3.889V19h3v-8zm-6 10H5a2 2 0 0 1-2-2V9.177a2 2 0 0 1 1.029-1.748l7-3.89a2 2 0 0 1 1.942 0l7 3.89A2 2 0 0 1 21 9.177V19a2 2 0 0 1-2 2h-5v-8h-4z\",\n\t\t\tclipRule: \"evenodd\"\n\t\t})\n\t});\n}\nZS.displayName = \"HomeIcon\";\nvar QS = d(ZS);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/image-error.js\nfunction $S(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M5 3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.803a6 6 0 0 1-.72-2H5v-3.172l4-4 3.585 3.585a6 6 0 0 1 1.172-1.656l-3.343-3.343a2 2 0 0 0-2.828 0L5 13V5h14v7.083c.718.12 1.393.368 2 .72V5a2 2 0 0 0-2-2z\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M17 9a2 2 0 1 1-4 0 2 2 0 0 1 4 0m1 5a1 1 0 0 1 1 1v3a1 1 0 1 1-2 0v-3a1 1 0 0 1 1-1m-1 7a1 1 0 1 1 2 0 1 1 0 0 1-2 0\" })]\n\t});\n}\n$S.displayName = \"ImageErrorIcon\";\nvar eC = d($S);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/inline-code.js\nfunction tC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M14.958 5.62a1 1 0 0 0-1.916-.574l-4 13.333a1 1 0 0 0 1.916.575zM5.974 7.232a1 1 0 0 0-1.409.128l-3.333 4a1 1 0 0 0 0 1.28l3.333 4a1 1 0 1 0 1.537-1.28L3.302 12l2.8-3.36a1 1 0 0 0-.128-1.408m12.053 0a1 1 0 0 1 1.408.128l3.333 4a1 1 0 0 1 0 1.28l-3.333 4a1 1 0 1 1-1.537-1.28l2.8-3.36-2.8-3.36a1 1 0 0 1 .128-1.408\" })\n\t});\n}\ntC.displayName = \"InlineCodeIcon\";\nvar nC = d(tC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/leave.js\nfunction rC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M14 13q.424 0 .713-.287A.97.97 0 0 0 15 12a.97.97 0 0 0-.287-.713A.97.97 0 0 0 14 11a.97.97 0 0 0-.713.287A.97.97 0 0 0 13 12q0 .424.287.713.288.287.713.287\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M10.385 21.788A1 1 0 0 1 10 21V3a1.003 1.003 0 0 1 1.242-.97l8 2A1 1 0 0 1 20 5v14a1 1 0 0 1-.758.97l-8 2a1 1 0 0 1-.857-.182M18 5.781l-6-1.5v15.438l6-1.5zM9 6H7v12h2v2H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2z\" })]\n\t});\n}\nrC.displayName = \"LeaveIcon\";\nvar iC = d(rC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/link.js\nfunction aC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 19.071q-1.467 1.467-3.536 1.467-2.067 0-3.535-1.467t-1.467-3.535q0-2.07 1.467-3.536L7.05 9.879q.3-.3.707-.3t.707.3.301.707-.3.707l-2.122 2.121a2.9 2.9 0 0 0-.884 2.122q0 1.237.884 2.12.884.885 2.121.885t2.122-.884l2.121-2.121q.3-.3.707-.3t.707.3.3.707q0 .405-.3.707zm-1.414-4.243q-.3.3-.707.301a.97.97 0 0 1-.707-.3q-.3-.3-.301-.708 0-.405.3-.707l4.243-4.242q.3-.3.707-.3t.707.3.3.707-.3.707zm6.364-.707q-.3.3-.707.3a.97.97 0 0 1-.707-.3q-.3-.3-.301-.707 0-.405.3-.707l2.122-2.121q.884-.885.884-2.121 0-1.238-.884-2.122a2.9 2.9 0 0 0-2.121-.884q-1.237 0-2.122.884l-2.121 2.122q-.3.3-.707.3a.97.97 0 0 1-.707-.3q-.3-.3-.3-.708 0-.405.3-.707L12 4.93q1.467-1.467 3.536-1.467t3.535 1.467 1.467 3.536T19.071 12z\" })\n\t});\n}\naC.displayName = \"LinkIcon\";\nvar oC = d(aC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/lock-solid.js\nfunction sC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M6 22q-.824 0-1.412-.587A1.93 1.93 0 0 1 4 20V10q0-.825.588-1.412A1.93 1.93 0 0 1 6 8h1V6q0-2.075 1.463-3.537Q9.926 1 12 1q2.075 0 3.537 1.463Q17 3.925 17 6v2h1q.824 0 1.413.588Q20 9.175 20 10v10q0 .824-.587 1.413A1.93 1.93 0 0 1 18 22zM9 8h6V6q0-1.25-.875-2.125A2.9 2.9 0 0 0 12 3q-1.25 0-2.125.875A2.9 2.9 0 0 0 9 6z\" })\n\t});\n}\nsC.displayName = \"LockSolidIcon\";\nvar cC = d(sC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/lock.js\nfunction lC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M6 22q-.824 0-1.412-.587A1.93 1.93 0 0 1 4 20V10q0-.825.588-1.412A1.93 1.93 0 0 1 6 8h1V6q0-2.075 1.463-3.537Q9.926 1 12 1q2.075 0 3.537 1.463Q17 3.925 17 6v2h1q.824 0 1.413.588Q20 9.175 20 10v10q0 .824-.587 1.413A1.93 1.93 0 0 1 18 22zm0-2h12V10H6zM9 8h6V6q0-1.25-.875-2.125A2.9 2.9 0 0 0 12 3q-1.25 0-2.125.875A2.9 2.9 0 0 0 9 6z\" })\n\t});\n}\nlC.displayName = \"LockIcon\";\nvar uC = d(lC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mark-as-read.js\nfunction dC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M21.324 9.13c0-.66-.339-1.237-.862-1.558l-7.37-4.318a1.81 1.81 0 0 0-1.851 0L3.87 7.572C3.348 7.892 3 8.47 3 9.13v9.167c0 1.008.825 1.833 1.833 1.833H19.5a1.84 1.84 0 0 0 1.833-1.833zm-10.129 3.978-6.6-4.124 6.646-3.896a1.81 1.81 0 0 1 1.851 0l6.646 3.896-6.6 4.124a1.85 1.85 0 0 1-1.943 0\" })\n\t});\n}\ndC.displayName = \"MarkAsReadIcon\";\nvar fC = d(dC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mark-as-unread.js\nfunction pC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M20 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", {\n\t\t\tfillRule: \"evenodd\",\n\t\t\td: \"M17 5H5a2 2 0 0 0-2 2v10.4a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V7.83a3 3 0 0 1-2 0q-.316-.113-.595-.288L12 11.89 5 7.138V7h12.764A3 3 0 0 1 17 5m-4.438 8.927L19 9.555V17.4H5V9.555l6.438 4.372a1 1 0 0 0 1.124 0\",\n\t\t\tclipRule: \"evenodd\"\n\t\t})]\n\t});\n}\npC.displayName = \"MarkAsUnreadIcon\";\nvar mC = d(pC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mention.js\nfunction hC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 4a8 8 0 1 0 0 16 1 1 0 1 1 0 2C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10v1.5a3.5 3.5 0 0 1-6.396 1.966A5 5 0 1 1 17 12v1.5a1.5 1.5 0 0 0 3 0V12a8 8 0 0 0-8-8m3 8a3 3 0 1 0-6 0 3 3 0 0 0 6 0\" })\n\t});\n}\nhC.displayName = \"MentionIcon\";\nvar gC = d(hC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/minus.js\nfunction _C(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M6 13a.97.97 0 0 1-.713-.287A.97.97 0 0 1 5 12q0-.424.287-.713A.97.97 0 0 1 6 11h12q.424 0 .712.287.288.288.288.713 0 .424-.288.713A.97.97 0 0 1 18 13z\" })\n\t});\n}\n_C.displayName = \"MinusIcon\";\nvar vC = d(_C);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/notifications-off-solid.js\nfunction yC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m4.917 2.083 17 17a1 1 0 0 1-1.414 1.414L19.006 19H4.414c-.89 0-1.337-1.077-.707-1.707L5 16v-6s0-2.034 1.096-3.91L3.504 3.498a1 1 0 0 1 1.414-1.414M19 13.35 9.136 3.484C9.93 3.181 10.874 3 12 3c7 0 7 7 7 7z\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M10 20h4a2 2 0 0 1-4 0\" })]\n\t});\n}\nyC.displayName = \"NotificationsOffSolidIcon\";\nvar bC = d(yC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/notifications-solid.js\nfunction xC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M20.293 17.293c.63.63.184 1.707-.707 1.707H4.414c-.89 0-1.337-1.077-.707-1.707L5 16v-6s0-7 7-7 7 7 7 7v6zM12 22a2 2 0 0 1-2-2h4a2 2 0 0 1-2 2\" })\n\t});\n}\nxC.displayName = \"NotificationsSolidIcon\";\nvar SC = d(xC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/overflow-horizontal.js\nfunction CC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M6 14q-.824 0-1.412-.588A1.93 1.93 0 0 1 4 12q0-.825.588-1.412A1.93 1.93 0 0 1 6 10q.824 0 1.412.588Q8 11.175 8 12t-.588 1.412A1.93 1.93 0 0 1 6 14m6 0q-.825 0-1.412-.588A1.93 1.93 0 0 1 10 12q0-.825.588-1.412A1.93 1.93 0 0 1 12 10q.825 0 1.412.588Q14 11.175 14 12t-.588 1.412A1.93 1.93 0 0 1 12 14m6 0q-.824 0-1.413-.588A1.93 1.93 0 0 1 16 12q0-.825.587-1.412A1.93 1.93 0 0 1 18 10q.824 0 1.413.588Q20 11.175 20 12t-.587 1.412A1.93 1.93 0 0 1 18 14\" })\n\t});\n}\nCC.displayName = \"OverflowHorizontalIcon\";\nvar wC = d(CC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/pin-solid.js\nfunction TC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M5.769 2.857A.5.5 0 0 1 6.119 2h11.762a.5.5 0 0 1 .35.857L16.15 4.9a.5.5 0 0 0-.15.357v4.487a.5.5 0 0 0 .15.356l3.7 3.644a.5.5 0 0 1 .15.356v1.4a.5.5 0 0 1-.5.5H13v6a1 1 0 1 1-2 0v-6H4.5a.5.5 0 0 1-.5-.5v-1.4a.5.5 0 0 1 .15-.356l3.7-3.644A.5.5 0 0 0 8 9.744V5.257a.5.5 0 0 0-.15-.357z\" })\n\t});\n}\nTC.displayName = \"PinSolidIcon\";\nvar EC = d(TC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/pin.js\nfunction DC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", {\n\t\t\tfillRule: \"evenodd\",\n\t\t\td: \"M6.119 2a.5.5 0 0 0-.35.857L7.85 4.9a.5.5 0 0 1 .15.357v4.487a.5.5 0 0 1-.15.356l-3.7 3.644A.5.5 0 0 0 4 14.1v1.4a.5.5 0 0 0 .5.5H11v6a1 1 0 1 0 2 0v-6h6.5a.5.5 0 0 0 .5-.5v-1.4a.5.5 0 0 0-.15-.356l-3.7-3.644a.5.5 0 0 1-.15-.356V5.257a.5.5 0 0 1 .15-.357l2.081-2.043a.5.5 0 0 0-.35-.857zM10 4h4v5.744a2.5 2.5 0 0 0 .746 1.781L17.26 14H6.74l2.514-2.475A2.5 2.5 0 0 0 10 9.744z\",\n\t\t\tclipRule: \"evenodd\"\n\t\t})\n\t});\n}\nDC.displayName = \"PinIcon\";\nvar OC = d(DC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/plus.js\nfunction kC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M11 13H6a.97.97 0 0 1-.713-.287A.97.97 0 0 1 5 12q0-.424.287-.713A.97.97 0 0 1 6 11h5V6q0-.424.287-.713A.97.97 0 0 1 12 5q.424 0 .713.287Q13 5.576 13 6v5h5q.424 0 .712.287.288.288.288.713 0 .424-.288.713A.97.97 0 0 1 18 13h-5v5q0 .424-.287.712A.97.97 0 0 1 12 19a.97.97 0 0 1-.713-.288A.97.97 0 0 1 11 18z\" })\n\t});\n}\nkC.displayName = \"PlusIcon\";\nvar AC = d(kC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/pop-out.js\nfunction jC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M5 3h6a1 1 0 1 1 0 2H5v14h14v-6a1 1 0 1 1 2 0v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M15 3h5a1 1 0 0 1 1 1v5a1 1 0 1 1-2 0V6.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L17.586 5H15a1 1 0 1 1 0-2\" })]\n\t});\n}\njC.displayName = \"PopOutIcon\";\nvar MC = d(jC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/preferences.js\nfunction NC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", {\n\t\t\tfillRule: \"evenodd\",\n\t\t\td: \"M6.5 2h11a4.5 4.5 0 1 1 0 9h-11a4.5 4.5 0 0 1 0-9m0 2h7.258A4.5 4.5 0 0 0 13 6.5c0 .925.28 1.785.758 2.5H6.5a2.5 2.5 0 0 1 0-5M15 6.5a2.5 2.5 0 1 1 5 0 2.5 2.5 0 0 1-5 0m-13 11A4.5 4.5 0 0 1 6.5 13h11a4.5 4.5 0 1 1 0 9h-11q-.233 0-.46-.023A4.5 4.5 0 0 1 2 17.5m8.242-2.5H17.5a2.5 2.5 0 0 1 0 5h-7.258A4.5 4.5 0 0 0 11 17.5c0-.925-.28-1.785-.758-2.5M6.5 15a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5\",\n\t\t\tclipRule: \"evenodd\"\n\t\t})\n\t});\n}\nNC.displayName = \"PreferencesIcon\";\nvar PC = d(NC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/reaction-add.js\nfunction FC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M14.74 2.38C13.87 2.133 12.95 2 12 2 6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10c0-.95-.133-1.87-.38-2.74a5 5 0 0 1-1.886.687 8 8 0 1 1-5.68-5.68c.1-.684.339-1.323.687-1.887\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M15.536 14.121a1 1 0 0 1 0 1.415A5 5 0 0 1 12 17c-1.38 0-2.632-.56-3.535-1.464a1 1 0 1 1 1.414-1.415A3 3 0 0 0 12 15c.829 0 1.577-.335 2.121-.879a1 1 0 0 1 1.415 0M8.5 12a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3m8.5-1.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0M18 6h-1a.97.97 0 0 1-.712-.287A.97.97 0 0 1 16 5q0-.424.288-.713A.97.97 0 0 1 17 4h1V3q0-.424.288-.712A.97.97 0 0 1 19 2q.424 0 .712.288Q20 2.575 20 3v1h1q.424 0 .712.287Q22 4.576 22 5t-.288.713A.97.97 0 0 1 21 6h-1v1q0 .424-.288.713A.97.97 0 0 1 19 8a.97.97 0 0 1-.712-.287A.97.97 0 0 1 18 7z\" })]\n\t});\n}\nFC.displayName = \"ReactionAddIcon\";\nvar IC = d(FC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/reaction.js\nfunction LC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M15.536 15.536a1 1 0 0 0-1.415-1.415 3 3 0 0 1-2.12.879 3 3 0 0 1-2.122-.879 1 1 0 1 0-1.414 1.415A5 5 0 0 0 12 17c1.38 0 2.632-.56 3.536-1.464M10 10.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0m5.5 1.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10m-2 0a8 8 0 1 0-16 0 8 8 0 0 0 16 0\" })]\n\t});\n}\nLC.displayName = \"ReactionIcon\";\nvar RC = d(LC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/reply.js\nfunction zC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M9.405 5.708c.39-.39.39-1.025 0-1.416a.996.996 0 0 0-1.412 0L3.294 9.006a1.004 1.004 0 0 0 0 1.416l4.699 4.714a.996.996 0 0 0 1.412 0c.39-.39.39-1.025 0-1.416l-3.043-3.053h9.153c1.887 0 3.485 1.604 3.485 3.666C19 16.396 17.402 18 15.515 18h-2.093a1 1 0 1 0 0 2h2.093C18.58 20 21 17.425 21 14.333s-2.419-5.666-5.485-5.666H6.456z\" })\n\t});\n}\nzC.displayName = \"ReplyIcon\";\nvar BC = d(zC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/restart.js\nfunction VC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M18.93 8A8 8 0 1 1 4 12a1 1 0 1 0-2 0c0 5.523 4.477 10 10 10s10-4.477 10-10a10 10 0 0 0-.832-4A10 10 0 0 0 12 2a9.99 9.99 0 0 0-8 3.999V4a1 1 0 0 0-2 0v4a1 1 0 0 0 1 1h4a1 1 0 0 0 0-2H5.755A7.99 7.99 0 0 1 12 4a8 8 0 0 1 6.93 4\" })\n\t});\n}\nVC.displayName = \"RestartIcon\";\nvar HC = d(VC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/room.js\nfunction UC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m8.566 17-.944 4.094q-.086.406-.372.656t-.687.25q-.543 0-.887-.469a1.18 1.18 0 0 1-.2-1.031l.801-3.5H3.158q-.572 0-.916-.484a1.27 1.27 0 0 1-.2-1.078 1.12 1.12 0 0 1 1.116-.938H6.85l1.145-5h-3.12q-.57 0-.915-.484a1.27 1.27 0 0 1-.2-1.078A1.12 1.12 0 0 1 4.875 7h3.691l.945-4.094q.085-.406.372-.656.286-.25.686-.25.544 0 .887.469.345.468.2 1.031l-.8 3.5h4.578l.944-4.094q.085-.406.372-.656.286-.25.687-.25.543 0 .887.469t.2 1.031L17.723 7h3.119q.573 0 .916.484.343.485.2 1.079a1.12 1.12 0 0 1-1.116.937H17.15l-1.145 5h3.12q.57 0 .915.484.343.485.2 1.079a1.12 1.12 0 0 1-1.116.937h-3.691l-.944 4.094q-.087.406-.373.656t-.686.25q-.544 0-.887-.469a1.18 1.18 0 0 1-.2-1.031l.8-3.5zm.573-2.5h4.578l1.144-5h-4.578z\" })\n\t});\n}\nUC.displayName = \"RoomIcon\";\nvar WC = d(UC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/search.js\nfunction GC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M15.05 16.463a7.5 7.5 0 1 1 1.414-1.414l3.243 3.244a1 1 0 0 1-1.414 1.414zM16 10.5a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0\" })\n\t});\n}\nGC.displayName = \"SearchIcon\";\nvar KC = d(GC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/section.js\nfunction qC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M16 7a.97.97 0 0 0-.713.287A.97.97 0 0 0 15 8q0 .424.287.713Q15.576 9 16 9t.712-.287A.97.97 0 0 0 17 8a.97.97 0 0 0-.288-.713A.97.97 0 0 0 16 7m0 4a.97.97 0 0 0-.713.287A.97.97 0 0 0 15 12q0 .424.287.713.288.287.713.287.424 0 .712-.287A.97.97 0 0 0 17 12a.97.97 0 0 0-.288-.713A.97.97 0 0 0 16 11m0 4a.97.97 0 0 0-.713.287A.97.97 0 0 0 15 16q0 .424.287.712.288.288.713.288.424 0 .712-.288A.97.97 0 0 0 17 16a.97.97 0 0 0-.288-.713A.97.97 0 0 0 16 15m-4-8H8a.97.97 0 0 0-.713.287A.97.97 0 0 0 7 8q0 .424.287.713Q7.576 9 8 9h4q.424 0 .713-.287A.97.97 0 0 0 13 8a.97.97 0 0 0-.287-.713A.97.97 0 0 0 12 7m0 4H8a.97.97 0 0 0-.713.287A.97.97 0 0 0 7 12q0 .424.287.713Q7.576 13 8 13h4q.424 0 .713-.287A.97.97 0 0 0 13 12a.97.97 0 0 0-.287-.713A.97.97 0 0 0 12 11m0 4H8a.97.97 0 0 0-.713.287A.97.97 0 0 0 7 16q0 .424.287.712Q7.576 17 8 17h4q.424 0 .713-.288A.97.97 0 0 0 13 16a.97.97 0 0 0-.287-.713A.97.97 0 0 0 12 15m7-12q.824 0 1.413.587Q21 4.176 21 5v14q0 .824-.587 1.413A1.93 1.93 0 0 1 19 21H5q-.824 0-1.412-.587A1.93 1.93 0 0 1 3 19V5q0-.824.587-1.412A1.93 1.93 0 0 1 5 3zm0 2H5v14h14z\" })\n\t});\n}\nqC.displayName = \"SectionIcon\";\nvar JC = d(qC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/settings.js\nfunction YC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0m-2 0a2 2 0 1 0-4 0 2 2 0 0 0 4 0\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M11.312 2h1.376A2.31 2.31 0 0 1 15 4.312v.247l.002.003c.01.014.031.033.064.047.03.013.056.013.07.01h.002l.177-.177a2.31 2.31 0 0 1 3.27 0l.973.974a2.31 2.31 0 0 1 0 3.269l-.177.177v.003a.13.13 0 0 0 .01.07.15.15 0 0 0 .047.063l.003.002h.247A2.31 2.31 0 0 1 22 11.312v1.376A2.31 2.31 0 0 1 19.688 15h-.247l-.003.002a.15.15 0 0 0-.047.064.13.13 0 0 0-.01.07v.002l.177.177a2.31 2.31 0 0 1 0 3.27l-.974.973a2.31 2.31 0 0 1-3.269 0l-.177-.177h-.003a.13.13 0 0 0-.07.01.15.15 0 0 0-.063.047l-.002.003v.247A2.31 2.31 0 0 1 12.688 22h-1.376A2.31 2.31 0 0 1 9 19.688v-.247l-.002-.003a.15.15 0 0 0-.064-.047.13.13 0 0 0-.07-.01h-.002l-.177.177a2.31 2.31 0 0 1-3.27 0l-.973-.974a2.31 2.31 0 0 1 0-3.269l.177-.177v-.003a.14.14 0 0 0-.01-.07.15.15 0 0 0-.047-.063L4.559 15h-.247A2.31 2.31 0 0 1 2 12.688v-1.376A2.31 2.31 0 0 1 4.312 9h.247l.003-.002a.15.15 0 0 0 .047-.064.14.14 0 0 0 .01-.07v-.002l-.177-.177a2.31 2.31 0 0 1 0-3.27l.974-.973a2.31 2.31 0 0 1 3.269 0l.177.177h.003a.14.14 0 0 0 .07-.01.15.15 0 0 0 .063-.047L9 4.559v-.247A2.31 2.31 0 0 1 11.312 2M11 4.312v.257c0 .893-.59 1.593-1.299 1.887-.716.297-1.622.21-2.248-.418l-.182-.182a.31.31 0 0 0-.441 0l-.974.974a.31.31 0 0 0 0 .44l.182.183c.627.626.715 1.531.418 2.248C6.162 10.41 5.462 11 4.569 11h-.257a.31.31 0 0 0-.312.312v1.376c0 .172.14.312.312.312h.257c.893 0 1.593.59 1.887 1.299.297.716.21 1.622-.418 2.248l-.182.182a.31.31 0 0 0 0 .441l.974.973a.31.31 0 0 0 .44 0l.183-.181c.626-.627 1.532-.715 2.248-.418.709.294 1.299.994 1.299 1.887v.257c0 .172.14.312.312.312h1.376c.172 0 .312-.14.312-.312v-.257c0-.893.59-1.593 1.299-1.887.716-.297 1.622-.21 2.249.418l.181.181c.122.122.32.122.441 0l.973-.973a.31.31 0 0 0 0-.44l-.181-.183c-.627-.626-.715-1.532-.418-2.248.294-.709.994-1.299 1.887-1.299h.257c.172 0 .312-.14.312-.312v-1.376a.31.31 0 0 0-.312-.312h-.257c-.893 0-1.593-.59-1.887-1.299-.297-.717-.21-1.622.418-2.248l.181-.182a.31.31 0 0 0 0-.441l-.973-.974a.31.31 0 0 0-.44 0l-.183.182c-.626.627-1.532.715-2.248.418C13.59 6.162 13 5.462 13 4.569v-.257A.31.31 0 0 0 12.688 4h-1.376a.31.31 0 0 0-.312.312\" })]\n\t});\n}\nYC.displayName = \"SettingsIcon\";\nvar XC = d(YC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/threads-solid.js\nfunction ZC(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M4 3h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6l-2.293 2.293c-.63.63-1.707.184-1.707-.707V5a2 2 0 0 1 2-2m3 7h10q.424 0 .712-.287A.97.97 0 0 0 18 9a.97.97 0 0 0-.288-.713A.97.97 0 0 0 17 8H7a.97.97 0 0 0-.713.287A.97.97 0 0 0 6 9q0 .424.287.713Q6.576 10 7 10m0 4h6q.424 0 .713-.287A.97.97 0 0 0 14 13a.97.97 0 0 0-.287-.713A.97.97 0 0 0 13 12H7a.97.97 0 0 0-.713.287A.97.97 0 0 0 6 13q0 .424.287.713Q6.576 14 7 14\" })\n\t});\n}\nZC.displayName = \"ThreadsSolidIcon\";\nvar QC = d(ZC);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/threads.js\nfunction $C(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M7 10a.97.97 0 0 1-.713-.287A.97.97 0 0 1 6 9q0-.424.287-.713A.97.97 0 0 1 7 8h10q.424 0 .712.287Q18 8.576 18 9t-.288.713A.97.97 0 0 1 17 10zm0 4a.97.97 0 0 1-.713-.287A.97.97 0 0 1 6 13q0-.424.287-.713A.97.97 0 0 1 7 12h6q.424 0 .713.287.287.288.287.713 0 .424-.287.713A.97.97 0 0 1 13 14z\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M3.707 21.293c-.63.63-1.707.184-1.707-.707V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6zM6 17h14V5H4v13.172l.586-.586A2 2 0 0 1 6 17\" })]\n\t});\n}\n$C.displayName = \"ThreadsIcon\";\nvar ew = d($C);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/unpin.js\nfunction tw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", {\n\t\t\tfillRule: \"evenodd\",\n\t\t\td: \"M5.457 2.083a1 1 0 0 0-1.414 1.414L8.04 7.494v2.25a.5.5 0 0 1-.15.356l-3.7 3.644a.5.5 0 0 0-.15.356v1.4a.5.5 0 0 0 .5.5h6.5v6a1 1 0 0 0 2 0v-6h3.506l4.497 4.497a1 1 0 0 0 1.414-1.414zM14.546 14 10.04 9.494v.25a2.5 2.5 0 0 1-.746 1.781L6.78 14z\",\n\t\t\tclipRule: \"evenodd\"\n\t\t}), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M14.04 4v3.85l2.015 2.015a.5.5 0 0 1-.015-.12V5.257a.5.5 0 0 1 .15-.357l2.081-2.043a.5.5 0 0 0-.35-.857h-9.73l2 2z\" })]\n\t});\n}\ntw.displayName = \"UnpinIcon\";\nvar nw = d(tw);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/user-add.js\nfunction rw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M10 12q-1.65 0-2.825-1.175T6 8t1.175-2.825T10 4t2.825 1.175T14 8t-1.175 2.825T10 12m-8 6v-.8q0-.85.438-1.562.437-.713 1.162-1.088a14.8 14.8 0 0 1 3.15-1.163A13.8 13.8 0 0 1 10 13q1.65 0 3.25.387 1.6.388 3.15 1.163.724.375 1.163 1.087Q18 16.35 18 17.2v.8q0 .824-.587 1.413A1.93 1.93 0 0 1 16 20H4q-.824 0-1.412-.587A1.93 1.93 0 0 1 2 18m2 0h12v-.8a.97.97 0 0 0-.5-.85q-1.35-.675-2.725-1.012a11.6 11.6 0 0 0-5.55 0Q5.85 15.675 4.5 16.35a.97.97 0 0 0-.5.85zm6-8q.825 0 1.412-.588Q12 8.826 12 8q0-.824-.588-1.412A1.93 1.93 0 0 0 10 6q-.825 0-1.412.588A1.93 1.93 0 0 0 8 8q0 .825.588 1.412Q9.175 10 10 10m7 1h2v2q0 .424.288.713.287.287.712.287.424 0 .712-.287A.97.97 0 0 0 21 13v-2h2q.424 0 .712-.287A.97.97 0 0 0 24 10a.97.97 0 0 0-.288-.713A.97.97 0 0 0 23 9h-2V7a.97.97 0 0 0-.288-.713A.97.97 0 0 0 20 6a.97.97 0 0 0-.712.287A.97.97 0 0 0 19 7v2h-2a.97.97 0 0 0-.712.287A.97.97 0 0 0 16 10q0 .424.288.713.287.287.712.287\" })\n\t});\n}\nrw.displayName = \"UserAddIcon\";\nvar iw = d(rw);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/user-profile-solid.js\nfunction aw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 15q-1.65 0-2.825-1.175T8 11t1.175-2.825T12 7t2.825 1.175T16 11t-1.175 2.825T12 15\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M19.528 18.583A9.96 9.96 0 0 0 22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 2.52.933 4.824 2.472 6.583A9.98 9.98 0 0 0 12 22a9.98 9.98 0 0 0 7.528-3.417M8.75 16.388q-1.373.332-2.709.95a8 8 0 1 1 11.918 0 14.7 14.7 0 0 0-2.709-.95A13.8 13.8 0 0 0 12 16q-1.65 0-3.25.387\" })]\n\t});\n}\naw.displayName = \"UserProfileSolidIcon\";\nvar ow = d(aw);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/video-call-declined-solid.js\nfunction sw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M2 8a4 4 0 0 1 4-4h10a2 2 0 0 1 2 2v4.286l3.35-2.871a1 1 0 0 1 1.65.76v7.65a1 1 0 0 1-1.65.76L18 13.715V18a2 2 0 0 1-2 2H6a4 4 0 0 1-4-4zm10.828 6.828q.3-.3.3-.707 0-.405-.3-.707L11.414 12l1.414-1.414q.3-.3.3-.707t-.3-.707-.707-.301q-.405 0-.707.3L10 10.587 8.586 9.172q-.3-.3-.707-.301-.407 0-.707.3t-.3.708q0 .405.3.707L8.586 12l-1.414 1.414q-.3.3-.3.707t.3.707.707.3q.405 0 .707-.3L10 13.414l1.414 1.414q.3.3.707.3t.707-.3\" })\n\t});\n}\nsw.displayName = \"VideoCallDeclinedSolidIcon\";\nvar cw = d(sw);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/video-call-solid.js\nfunction lw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M6 4h10a2 2 0 0 1 2 2v4.286l3.35-2.871a1 1 0 0 1 1.65.76v7.65a1 1 0 0 1-1.65.76L18 13.715V18a2 2 0 0 1-2 2H6a4 4 0 0 1-4-4V8a4 4 0 0 1 4-4\" })\n\t});\n}\nlw.displayName = \"VideoCallSolidIcon\";\nvar uw = d(lw);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/video-call.js\nfunction dw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M2 8a4 4 0 0 1 4-4h10a2 2 0 0 1 2 2v4.286l3.35-2.871a1 1 0 0 1 1.65.76v7.65a1 1 0 0 1-1.65.76L18 13.715V18a2 2 0 0 1-2 2H6a4 4 0 0 1-4-4zm4-2a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h10V6zm15 7.652v-3.303L19.073 12z\" })\n\t});\n}\ndw.displayName = \"VideoCallIcon\";\nvar fw = d(dw);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/visibility-off.js\nfunction pw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m16.1 13.3-1.45-1.45q.225-1.175-.675-2.2t-2.325-.8L10.2 7.4q.424-.2.863-.3A4.2 4.2 0 0 1 12 7q1.875 0 3.188 1.312Q16.5 9.625 16.5 11.5q0 .5-.1.938t-.3.862m3.2 3.15-1.45-1.4a11 11 0 0 0 1.688-1.588A9 9 0 0 0 20.8 11.5q-1.25-2.524-3.588-4.013Q14.875 6 12 6q-.724 0-1.425.1a10 10 0 0 0-1.375.3L7.65 4.85A11.1 11.1 0 0 1 12 4q3.575 0 6.425 1.887T22.7 10.8a.8.8 0 0 1 .1.313q.025.188.025.387a2 2 0 0 1-.125.7 10.9 10.9 0 0 1-3.4 4.25m-.2 5.45-3.5-3.45q-.874.274-1.762.413Q12.95 19 12 19q-3.575 0-6.425-1.887T1.3 12.2a.8.8 0 0 1-.1-.312 3 3 0 0 1 0-.763.8.8 0 0 1 .1-.3Q1.825 9.7 2.55 8.75A13.3 13.3 0 0 1 4.15 7L2.075 4.9a.93.93 0 0 1-.275-.688q0-.412.3-.712a.95.95 0 0 1 .7-.275q.425 0 .7.275l17 17q.275.275.288.688a.93.93 0 0 1-.288.712.95.95 0 0 1-.7.275.95.95 0 0 1-.7-.275M5.55 8.4q-.725.65-1.325 1.425A9 9 0 0 0 3.2 11.5q1.25 2.524 3.588 4.012T12 17q.5 0 .975-.062.475-.063.975-.138l-.9-.95q-.274.075-.525.113A3.5 3.5 0 0 1 12 16q-1.875 0-3.187-1.312Q7.5 13.375 7.5 11.5q0-.274.038-.525.037-.25.112-.525z\" })\n\t});\n}\npw.displayName = \"VisibilityOffIcon\";\nvar mw = d(pw);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/visibility-on.js\nfunction hw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M12 16q1.875 0 3.188-1.312Q16.5 13.375 16.5 11.5t-1.312-3.187T12 7 8.813 8.313 7.5 11.5t1.313 3.188T12 16m0-1.8q-1.125 0-1.912-.787A2.6 2.6 0 0 1 9.3 11.5q0-1.125.787-1.912A2.6 2.6 0 0 1 12 8.8q1.125 0 1.912.787.788.788.788 1.913t-.787 1.912A2.6 2.6 0 0 1 12 14.2m0 4.8q-3.475 0-6.35-1.837Q2.775 15.324 1.3 12.2a.8.8 0 0 1-.1-.312 3 3 0 0 1 0-.775.8.8 0 0 1 .1-.313q1.475-3.125 4.35-4.962Q8.525 4 12 4t6.35 1.838T22.7 10.8a.8.8 0 0 1 .1.313 3 3 0 0 1 0 .774.8.8 0 0 1-.1.313q-1.475 3.125-4.35 4.963Q15.475 19 12 19m0-2a9.54 9.54 0 0 0 5.188-1.488A9.77 9.77 0 0 0 20.8 11.5a9.77 9.77 0 0 0-3.613-4.012A9.54 9.54 0 0 0 12 6a9.55 9.55 0 0 0-5.187 1.487A9.77 9.77 0 0 0 3.2 11.5a9.77 9.77 0 0 0 3.613 4.012A9.54 9.54 0 0 0 12 17\" })\n\t});\n}\nhw.displayName = \"VisibilityOnIcon\";\nvar gw = d(hw);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/voice-call-declined-solid.js\nfunction _w(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M7.623 3.04a1.07 1.07 0 0 1 1.086.929l.542 3.954q.039.27-.038.504a1.1 1.1 0 0 1-.272.427l-1.64 1.64Q7.806 11.5 8.456 12.4c.433.601 1.444 1.697 1.444 1.697.013.012 1.098 1.014 1.696 1.444q.9.65 1.909 1.153l1.64-1.64q.194-.194.426-.27a1.1 1.1 0 0 1 .504-.04l3.953.543q.407.058.67.358.26.301.26.728l.04 3.527q0 .427-.33.756-.33.33-.756.33a16 16 0 0 1-6.57-1.105 16.2 16.2 0 0 1-5.563-3.663 16.1 16.1 0 0 1-3.653-5.573 16.3 16.3 0 0 1-1.116-6.56q0-.426.329-.756Q3.67 3 4.095 3zM20.25 3q.405 0 .707.3.3.301.3.708t-.3.707l-1.414 1.414 1.414 1.414q.3.3.3.707t-.3.707-.707.3-.707-.3l-1.414-1.414-1.414 1.414q-.3.3-.707.3t-.707-.3T15 8.25q0-.406.3-.707l1.415-1.414L15.3 4.715q-.3-.3-.301-.707 0-.407.3-.707t.71-.301q.405 0 .707.3l1.414 1.415L19.543 3.3q.3-.3.707-.301\" })\n\t});\n}\n_w.displayName = \"VoiceCallDeclinedSolidIcon\";\nvar vw = d(_w);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/voice-call-solid.js\nfunction yw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsx)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"m20.958 16.374.039 3.527q0 .427-.33.756-.33.33-.756.33a16 16 0 0 1-6.57-1.105 16.2 16.2 0 0 1-5.563-3.663 16.1 16.1 0 0 1-3.653-5.573 16.3 16.3 0 0 1-1.115-6.56q0-.427.33-.757T4.095 3l3.528.039a1.07 1.07 0 0 1 1.085.93l.543 3.954q.039.271-.039.504a1.1 1.1 0 0 1-.271.426l-1.64 1.64q.505 1.008 1.154 1.909c.433.6 1.444 1.696 1.444 1.696s1.095 1.01 1.696 1.444q.9.65 1.909 1.153l1.64-1.64q.193-.193.426-.27t.504-.04l3.954.543q.406.059.668.359t.262.727\" })\n\t});\n}\nyw.displayName = \"VoiceCallSolidIcon\";\nvar bw = d(yw);\n//#endregion\n//#region ../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/volume-on-solid.js\nfunction xw(e, t) {\n\treturn /*#__PURE__*/ (0, B.jsxs)(\"svg\", {\n\t\txmlns: \"http://www.w3.org/2000/svg\",\n\t\twidth: \"1em\",\n\t\theight: \"1em\",\n\t\tfill: \"currentColor\",\n\t\tviewBox: \"0 0 24 24\",\n\t\tref: t,\n\t\t...e,\n\t\tchildren: [/*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M3 14v-4a2 2 0 0 1 2-2h2l3.293-3.293c.63-.63 1.707-.184 1.707.707v13.172c0 .89-1.077 1.337-1.707.707L7 16H5a2 2 0 0 1-2-2m11.122-5.536a1 1 0 0 1 1.414 0A5 5 0 0 1 17 12c0 1.38-.56 2.632-1.464 3.536a1 1 0 0 1-1.415-1.415 3 3 0 0 0 .88-2.121c0-.829-.335-1.577-.88-2.121a1 1 0 0 1 0-1.415\" }), /*#__PURE__*/ (0, B.jsx)(\"path\", { d: \"M16.95 5.636a1 1 0 0 1 1.414 0A8.98 8.98 0 0 1 21 12a8.98 8.98 0 0 1-2.636 6.364 1 1 0 0 1-1.414-1.414A6.98 6.98 0 0 0 19 12a6.98 6.98 0 0 0-2.05-4.95 1 1 0 0 1 0-1.414\" })]\n\t});\n}\nxw.displayName = \"VolumeOnSolidIcon\";\nvar Sw = d(xw);\n//#endregion\n//#region src/room/composer/UploadButton/UploadButton.tsx\nfunction Cw({ vm: e, defaultOpen: t = !1, ...n }) {\n\tlet r = V(), [i, a] = T(t), { options: o } = U(e), s = h((t) => {\n\t\tt.ctrlKey && (t.preventDefault(), t.stopPropagation(), e.onUploadOptionSelected(o[0].type));\n\t}, [o, e]);\n\tif (o.length === 1) {\n\t\tlet { label: t, icon: r } = o[0];\n\t\treturn /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\tsize: \"26px\",\n\t\t\t...n,\n\t\t\ttooltip: t,\n\t\t\t\"aria-label\": t,\n\t\t\tonClick: () => e.onUploadOptionSelected(o[0].type),\n\t\t\tchildren: r ? /* @__PURE__ */ (0, B.jsx)(r, {}) : /* @__PURE__ */ (0, B.jsx)(nS, {})\n\t\t});\n\t}\n\tlet c = /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t...n,\n\t\tsize: \"26px\",\n\t\ttooltip: r.translate(\"common|attachment\"),\n\t\tonClick: s,\n\t\ttitle: r.translate(\"common|attachment\"),\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(nS, {})\n\t});\n\treturn /* @__PURE__ */ (0, B.jsx)(ue, {\n\t\tside: \"top\",\n\t\ttitle: r.translate(\"common|attachment\"),\n\t\tshowTitle: !1,\n\t\ttrigger: c,\n\t\topen: i,\n\t\tonOpenChange: (e) => a(e),\n\t\tchildren: o.map((t) => /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\tlabel: t.label,\n\t\t\tIcon: t.icon,\n\t\t\tonSelect: () => e.onUploadOptionSelected(t.type)\n\t\t}, t.label))\n\t});\n}\nvar ww = {\n\tcontainer: \"_container_1j8rk_8\",\n\ttext: \"_text_1j8rk_24\",\n\tdescription: \"_description_1j8rk_32\",\n\timage: \"_image_1j8rk_45\"\n}, Tw = \"aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2\", Ew = \"ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2\", Dw = \"numeric\", Ow = \"ascii\", kw = \"alpha\", Aw = \"asciinumeric\", jw = \"alphanumeric\", Mw = \"domain\", Nw = \"emoji\", Pw = \"scheme\", Fw = \"slashscheme\", Iw = \"whitespace\";\nfunction Lw(e, t) {\n\treturn e in t || (t[e] = []), t[e];\n}\nfunction Rw(e, t, n) {\n\tt[Dw] && (t[Aw] = !0, t[jw] = !0), t[Ow] && (t[Aw] = !0, t[kw] = !0), t[Aw] && (t[jw] = !0), t[kw] && (t[jw] = !0), t[jw] && (t[Mw] = !0), t[Nw] && (t[Mw] = !0);\n\tfor (let r in t) {\n\t\tlet t = Lw(r, n);\n\t\tt.indexOf(e) < 0 && t.push(e);\n\t}\n}\nfunction zw(e, t) {\n\tlet n = {};\n\tfor (let r in t) t[r].indexOf(e) >= 0 && (n[r] = !0);\n\treturn n;\n}\nfunction Bw(e = null) {\n\tthis.j = {}, this.jr = [], this.jd = null, this.t = e;\n}\nBw.groups = {}, Bw.prototype = {\n\taccepts() {\n\t\treturn !!this.t;\n\t},\n\tgo(e) {\n\t\tlet t = this, n = t.j[e];\n\t\tif (n) return n;\n\t\tfor (let n = 0; n < t.jr.length; n++) {\n\t\t\tlet r = t.jr[n][0], i = t.jr[n][1];\n\t\t\tif (i && r.test(e)) return i;\n\t\t}\n\t\treturn t.jd;\n\t},\n\thas(e, t = !1) {\n\t\treturn t ? e in this.j : !!this.go(e);\n\t},\n\tta(e, t, n, r) {\n\t\tfor (let i = 0; i < e.length; i++) this.tt(e[i], t, n, r);\n\t},\n\ttr(e, t, n, r) {\n\t\tr ||= Bw.groups;\n\t\tlet i;\n\t\treturn t && t.j ? i = t : (i = new Bw(t), n && r && Rw(t, n, r)), this.jr.push([e, i]), i;\n\t},\n\tts(e, t, n, r) {\n\t\tlet i = this, a = e.length;\n\t\tif (!a) return i;\n\t\tfor (let t = 0; t < a - 1; t++) i = i.tt(e[t]);\n\t\treturn i.tt(e[a - 1], t, n, r);\n\t},\n\ttt(e, t, n, r) {\n\t\tr ||= Bw.groups;\n\t\tlet i = this;\n\t\tif (t && t.j) return i.j[e] = t, t;\n\t\tlet a = t, o, s = i.go(e);\n\t\treturn s ? (o = new Bw(), Object.assign(o.j, s.j), o.jr.push.apply(o.jr, s.jr), o.jd = s.jd, o.t = s.t) : o = new Bw(), a && (r && (o.t && typeof o.t == \"string\" ? Rw(a, Object.assign(zw(o.t, r), n), r) : n && Rw(a, n, r)), o.t = a), i.j[e] = o, o;\n\t}\n};\nvar G = (e, t, n, r, i) => e.ta(t, n, r, i), Vw = (e, t, n, r, i) => e.tr(t, n, r, i), Hw = (e, t, n, r, i) => e.ts(t, n, r, i), K = (e, t, n, r, i) => e.tt(t, n, r, i), Uw = \"WORD\", Ww = \"UWORD\", Gw = \"ASCIINUMERICAL\", Kw = \"ALPHANUMERICAL\", qw = \"LOCALHOST\", Jw = \"TLD\", Yw = \"UTLD\", Xw = \"SCHEME\", Zw = \"SLASH_SCHEME\", Qw = \"NUM\", $w = \"WS\", eT = \"NL\", tT = \"OPENBRACE\", nT = \"CLOSEBRACE\", rT = \"OPENBRACKET\", iT = \"CLOSEBRACKET\", aT = \"OPENPAREN\", oT = \"CLOSEPAREN\", sT = \"OPENANGLEBRACKET\", cT = \"CLOSEANGLEBRACKET\", lT = \"FULLWIDTHLEFTPAREN\", uT = \"FULLWIDTHRIGHTPAREN\", dT = \"LEFTCORNERBRACKET\", fT = \"RIGHTCORNERBRACKET\", pT = \"LEFTWHITECORNERBRACKET\", mT = \"RIGHTWHITECORNERBRACKET\", hT = \"FULLWIDTHLESSTHAN\", gT = \"FULLWIDTHGREATERTHAN\", _T = \"AMPERSAND\", vT = \"APOSTROPHE\", yT = \"ASTERISK\", bT = \"AT\", xT = \"BACKSLASH\", ST = \"BACKTICK\", CT = \"CARET\", wT = \"COLON\", TT = \"COMMA\", ET = \"DOLLAR\", DT = \"DOT\", OT = \"EQUALS\", kT = \"EXCLAMATION\", AT = \"HYPHEN\", jT = \"PERCENT\", MT = \"PIPE\", NT = \"PLUS\", PT = \"POUND\", FT = \"QUERY\", IT = \"QUOTE\", LT = \"FULLWIDTHMIDDLEDOT\", RT = \"SEMI\", zT = \"SLASH\", BT = \"TILDE\", VT = \"UNDERSCORE\", HT = \"EMOJI\", UT = \"SYM\", WT = /*#__PURE__*/ Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: Kw,\n\tAMPERSAND: _T,\n\tAPOSTROPHE: vT,\n\tASCIINUMERICAL: Gw,\n\tASTERISK: yT,\n\tAT: bT,\n\tBACKSLASH: xT,\n\tBACKTICK: ST,\n\tCARET: CT,\n\tCLOSEANGLEBRACKET: cT,\n\tCLOSEBRACE: nT,\n\tCLOSEBRACKET: iT,\n\tCLOSEPAREN: oT,\n\tCOLON: wT,\n\tCOMMA: TT,\n\tDOLLAR: ET,\n\tDOT: DT,\n\tEMOJI: HT,\n\tEQUALS: OT,\n\tEXCLAMATION: kT,\n\tFULLWIDTHGREATERTHAN: gT,\n\tFULLWIDTHLEFTPAREN: lT,\n\tFULLWIDTHLESSTHAN: hT,\n\tFULLWIDTHMIDDLEDOT: LT,\n\tFULLWIDTHRIGHTPAREN: uT,\n\tHYPHEN: AT,\n\tLEFTCORNERBRACKET: dT,\n\tLEFTWHITECORNERBRACKET: pT,\n\tLOCALHOST: qw,\n\tNL: eT,\n\tNUM: Qw,\n\tOPENANGLEBRACKET: sT,\n\tOPENBRACE: tT,\n\tOPENBRACKET: rT,\n\tOPENPAREN: aT,\n\tPERCENT: jT,\n\tPIPE: MT,\n\tPLUS: NT,\n\tPOUND: PT,\n\tQUERY: FT,\n\tQUOTE: IT,\n\tRIGHTCORNERBRACKET: fT,\n\tRIGHTWHITECORNERBRACKET: mT,\n\tSCHEME: Xw,\n\tSEMI: RT,\n\tSLASH: zT,\n\tSLASH_SCHEME: Zw,\n\tSYM: UT,\n\tTILDE: BT,\n\tTLD: Jw,\n\tUNDERSCORE: VT,\n\tUTLD: Yw,\n\tUWORD: Ww,\n\tWORD: Uw,\n\tWS: $w\n}), GT = /[a-z]/, KT = /\\p{L}/u, qT = /\\p{Emoji}/u, JT = /\\d/, YT = /\\s/, XT = \"\\r\", ZT = \"\\n\", QT = \"️\", $T = \"‍\", eE = \"\", tE = null, nE = null;\nfunction rE(e = []) {\n\tlet t = {};\n\tBw.groups = t;\n\tlet n = new Bw();\n\ttE ??= sE(Tw), nE ??= sE(Ew), K(n, \"'\", vT), K(n, \"{\", tT), K(n, \"}\", nT), K(n, \"[\", rT), K(n, \"]\", iT), K(n, \"(\", aT), K(n, \")\", oT), K(n, \"<\", sT), K(n, \">\", cT), K(n, \"(\", lT), K(n, \")\", uT), K(n, \"「\", dT), K(n, \"」\", fT), K(n, \"『\", pT), K(n, \"』\", mT), K(n, \"<\", hT), K(n, \">\", gT), K(n, \"&\", _T), K(n, \"*\", yT), K(n, \"@\", bT), K(n, \"`\", ST), K(n, \"^\", CT), K(n, \":\", wT), K(n, \",\", TT), K(n, \"$\", ET), K(n, \".\", DT), K(n, \"=\", OT), K(n, \"!\", kT), K(n, \"-\", AT), K(n, \"%\", jT), K(n, \"|\", MT), K(n, \"+\", NT), K(n, \"#\", PT), K(n, \"?\", FT), K(n, \"\\\"\", IT), K(n, \"/\", zT), K(n, \";\", RT), K(n, \"~\", BT), K(n, \"_\", VT), K(n, \"\\\\\", xT), K(n, \"・\", LT);\n\tlet r = Vw(n, JT, Qw, { [Dw]: !0 });\n\tVw(r, JT, r);\n\tlet i = Vw(r, GT, Gw, { [Aw]: !0 }), a = Vw(r, KT, Kw, { [jw]: !0 }), o = Vw(n, GT, Uw, { [Ow]: !0 });\n\tVw(o, JT, i), Vw(o, GT, o), Vw(i, JT, i), Vw(i, GT, i);\n\tlet s = Vw(n, KT, Ww, { [kw]: !0 });\n\tVw(s, GT), Vw(s, JT, a), Vw(s, KT, s), Vw(a, JT, a), Vw(a, GT), Vw(a, KT, a);\n\tlet c = K(n, ZT, eT, { [Iw]: !0 }), l = K(n, XT, $w, { [Iw]: !0 }), u = Vw(n, YT, $w, { [Iw]: !0 });\n\tK(n, eE, u), K(l, ZT, c), K(l, eE, u), Vw(l, YT, u), K(u, XT), K(u, ZT), Vw(u, YT, u), K(u, eE, u);\n\tlet d = Vw(n, qT, HT, { [Nw]: !0 });\n\tK(d, \"#\"), Vw(d, qT, d), K(d, QT, d);\n\tlet f = K(d, $T);\n\tK(f, \"#\"), Vw(f, qT, d);\n\tlet p = [[GT, o], [JT, i]], m = [\n\t\t[GT, null],\n\t\t[KT, s],\n\t\t[JT, a]\n\t];\n\tfor (let e = 0; e < tE.length; e++) oE(n, tE[e], Jw, Uw, p);\n\tfor (let e = 0; e < nE.length; e++) oE(n, nE[e], Yw, Ww, m);\n\tRw(Jw, {\n\t\ttld: !0,\n\t\tascii: !0\n\t}, t), Rw(Yw, {\n\t\tutld: !0,\n\t\talpha: !0\n\t}, t), oE(n, \"file\", Xw, Uw, p), oE(n, \"mailto\", Xw, Uw, p), oE(n, \"http\", Zw, Uw, p), oE(n, \"https\", Zw, Uw, p), oE(n, \"ftp\", Zw, Uw, p), oE(n, \"ftps\", Zw, Uw, p), Rw(Xw, {\n\t\tscheme: !0,\n\t\tascii: !0\n\t}, t), Rw(Zw, {\n\t\tslashscheme: !0,\n\t\tascii: !0\n\t}, t), e = e.sort((e, t) => e[0] > t[0] ? 1 : -1);\n\tfor (let t = 0; t < e.length; t++) {\n\t\tlet r = e[t][0], i = e[t][1] ? { [Pw]: !0 } : { [Fw]: !0 };\n\t\tr.indexOf(\"-\") >= 0 ? i[Mw] = !0 : GT.test(r) ? JT.test(r) ? i[Aw] = !0 : i[Ow] = !0 : i[Dw] = !0, Hw(n, r, r, i);\n\t}\n\treturn Hw(n, \"localhost\", qw, { ascii: !0 }), n.jd = new Bw(UT), {\n\t\tstart: n,\n\t\ttokens: Object.assign({ groups: t }, WT)\n\t};\n}\nfunction iE(e, t) {\n\tlet n = aE(t.replace(/[A-Z]/g, (e) => e.toLowerCase())), r = n.length, i = [], a = 0, o = 0;\n\tfor (; o < r;) {\n\t\tlet s = e, c = null, l = 0, u = null, d = -1, f = -1;\n\t\tfor (; o < r && (c = s.go(n[o]));) s = c, s.accepts() ? (d = 0, f = 0, u = s) : d >= 0 && (d += n[o].length, f++), l += n[o].length, a += n[o].length, o++;\n\t\ta -= d, o -= f, l -= d, i.push({\n\t\t\tt: u.t,\n\t\t\tv: t.slice(a - l, a),\n\t\t\ts: a - l,\n\t\t\te: a\n\t\t});\n\t}\n\treturn i;\n}\nfunction aE(e) {\n\tlet t = [], n = e.length, r = 0;\n\tfor (; r < n;) {\n\t\tlet i = e.charCodeAt(r), a, o = i < 55296 || i > 56319 || r + 1 === n || (a = e.charCodeAt(r + 1)) < 56320 || a > 57343 ? e[r] : e.slice(r, r + 2);\n\t\tt.push(o), r += o.length;\n\t}\n\treturn t;\n}\nfunction oE(e, t, n, r, i) {\n\tlet a, o = t.length;\n\tfor (let n = 0; n < o - 1; n++) {\n\t\tlet o = t[n];\n\t\te.j[o] ? a = e.j[o] : (a = new Bw(r), a.jr = i.slice(), e.j[o] = a), e = a;\n\t}\n\treturn a = new Bw(n), a.jr = i.slice(), e.j[t[o - 1]] = a, a;\n}\nfunction sE(e) {\n\tlet t = [], n = [], r = 0;\n\tfor (; r < e.length;) {\n\t\tlet i = 0;\n\t\tfor (; \"0123456789\".indexOf(e[r + i]) >= 0;) i++;\n\t\tif (i > 0) {\n\t\t\tt.push(n.join(\"\"));\n\t\t\tfor (let t = parseInt(e.substring(r, r + i), 10); t > 0; t--) n.pop();\n\t\t\tr += i;\n\t\t} else n.push(e[r]), r++;\n\t}\n\treturn t;\n}\nvar cE = {\n\tdefaultProtocol: \"http\",\n\tevents: null,\n\tformat: uE,\n\tformatHref: uE,\n\tnl2br: !1,\n\ttagName: \"a\",\n\ttarget: null,\n\trel: null,\n\tvalidate: !0,\n\ttruncate: Infinity,\n\tclassName: null,\n\tattributes: null,\n\tignoreTags: [],\n\trender: null\n};\nfunction lE(e, t = null) {\n\tlet n = Object.assign({}, cE);\n\te && (n = Object.assign(n, e instanceof lE ? e.o : e));\n\tlet r = n.ignoreTags, i = [];\n\tfor (let e = 0; e < r.length; e++) i.push(r[e].toUpperCase());\n\tthis.o = n, t && (this.defaultRender = t), this.ignoreTags = i;\n}\nlE.prototype = {\n\to: cE,\n\tignoreTags: [],\n\tdefaultRender(e) {\n\t\treturn e;\n\t},\n\tcheck(e) {\n\t\treturn this.get(\"validate\", e.toString(), e);\n\t},\n\tget(e, t, n) {\n\t\tlet r = t != null, i = this.o[e];\n\t\treturn i && (typeof i == \"object\" ? (i = n.t in i ? i[n.t] : cE[e], typeof i == \"function\" && r && (i = i(t, n))) : typeof i == \"function\" && r && (i = i(t, n.t, n)), i);\n\t},\n\tgetObj(e, t, n) {\n\t\tlet r = this.o[e];\n\t\treturn typeof r == \"function\" && t != null && (r = r(t, n.t, n)), r;\n\t},\n\trender(e) {\n\t\tlet t = e.render(this);\n\t\treturn (this.get(\"render\", null, e) || this.defaultRender)(t, e.t, e);\n\t}\n};\nfunction uE(e) {\n\treturn e;\n}\nfunction dE(e, t) {\n\tthis.t = \"token\", this.v = e, this.tk = t;\n}\ndE.prototype = {\n\tisLink: !1,\n\ttoString() {\n\t\treturn this.v;\n\t},\n\ttoHref(e) {\n\t\treturn this.toString();\n\t},\n\ttoFormattedString(e) {\n\t\tlet t = this.toString(), n = e.get(\"truncate\", t, this), r = e.get(\"format\", t, this);\n\t\treturn n && r.length > n ? r.substring(0, n) + \"…\" : r;\n\t},\n\ttoFormattedHref(e) {\n\t\treturn e.get(\"formatHref\", this.toHref(e.get(\"defaultProtocol\")), this);\n\t},\n\tstartIndex() {\n\t\treturn this.tk[0].s;\n\t},\n\tendIndex() {\n\t\treturn this.tk[this.tk.length - 1].e;\n\t},\n\ttoObject(e = cE.defaultProtocol) {\n\t\treturn {\n\t\t\ttype: this.t,\n\t\t\tvalue: this.toString(),\n\t\t\tisLink: this.isLink,\n\t\t\thref: this.toHref(e),\n\t\t\tstart: this.startIndex(),\n\t\t\tend: this.endIndex()\n\t\t};\n\t},\n\ttoFormattedObject(e) {\n\t\treturn {\n\t\t\ttype: this.t,\n\t\t\tvalue: this.toFormattedString(e),\n\t\t\tisLink: this.isLink,\n\t\t\thref: this.toFormattedHref(e),\n\t\t\tstart: this.startIndex(),\n\t\t\tend: this.endIndex()\n\t\t};\n\t},\n\tvalidate(e) {\n\t\treturn e.get(\"validate\", this.toString(), this);\n\t},\n\trender(e) {\n\t\tlet t = this, n = this.toHref(e.get(\"defaultProtocol\")), r = e.get(\"formatHref\", n, this), i = e.get(\"tagName\", n, t), a = this.toFormattedString(e), o = {}, s = e.get(\"className\", n, t), c = e.get(\"target\", n, t), l = e.get(\"rel\", n, t), u = e.getObj(\"attributes\", n, t), d = e.getObj(\"events\", n, t);\n\t\treturn o.href = r, s && (o.class = s), c && (o.target = c), l && (o.rel = l), u && Object.assign(o, u), {\n\t\t\ttagName: i,\n\t\t\tattributes: o,\n\t\t\tcontent: a,\n\t\t\teventListeners: d\n\t\t};\n\t}\n};\nfunction fE(e, t) {\n\tclass n extends dE {\n\t\tconstructor(t, n) {\n\t\t\tsuper(t, n), this.t = e;\n\t\t}\n\t}\n\tfor (let e in t) n.prototype[e] = t[e];\n\treturn n.t = e, n;\n}\nvar pE = fE(\"email\", {\n\tisLink: !0,\n\ttoHref() {\n\t\treturn \"mailto:\" + this.toString();\n\t}\n}), mE = fE(\"text\"), hE = fE(\"nl\"), gE = fE(\"url\", {\n\tisLink: !0,\n\ttoHref(e = cE.defaultProtocol) {\n\t\treturn this.hasProtocol() ? this.v : `${e}://${this.v}`;\n\t},\n\thasProtocol() {\n\t\tlet e = this.tk;\n\t\treturn e.length >= 2 && e[0].t !== qw && e[1].t === wT;\n\t}\n}), _E = (e) => new Bw(e);\nfunction vE({ groups: e }) {\n\tlet t = e.domain.concat([\n\t\t_T,\n\t\tyT,\n\t\tbT,\n\t\txT,\n\t\tST,\n\t\tCT,\n\t\tET,\n\t\tOT,\n\t\tAT,\n\t\tQw,\n\t\tjT,\n\t\tMT,\n\t\tNT,\n\t\tPT,\n\t\tzT,\n\t\tUT,\n\t\tBT,\n\t\tVT\n\t]), n = [\n\t\tvT,\n\t\twT,\n\t\tTT,\n\t\tDT,\n\t\tkT,\n\t\tjT,\n\t\tFT,\n\t\tIT,\n\t\tRT,\n\t\tsT,\n\t\tcT,\n\t\ttT,\n\t\tnT,\n\t\tiT,\n\t\trT,\n\t\taT,\n\t\toT,\n\t\tlT,\n\t\tuT,\n\t\tdT,\n\t\tfT,\n\t\tpT,\n\t\tmT,\n\t\thT,\n\t\tgT\n\t], r = [\n\t\t_T,\n\t\tvT,\n\t\tyT,\n\t\txT,\n\t\tST,\n\t\tCT,\n\t\tET,\n\t\tOT,\n\t\tAT,\n\t\ttT,\n\t\tnT,\n\t\tjT,\n\t\tMT,\n\t\tNT,\n\t\tPT,\n\t\tFT,\n\t\tzT,\n\t\tUT,\n\t\tBT,\n\t\tVT\n\t], i = _E(), a = K(i, BT);\n\tG(a, r, a), G(a, e.domain, a);\n\tlet o = _E(), s = _E(), c = _E();\n\tG(i, e.domain, o), G(i, e.scheme, s), G(i, e.slashscheme, c), G(o, r, a), G(o, e.domain, o);\n\tlet l = K(o, bT);\n\tK(a, bT, l), K(s, bT, l), K(c, bT, l);\n\tlet u = K(a, DT);\n\tG(u, r, a), G(u, e.domain, a);\n\tlet d = _E();\n\tG(l, e.domain, d), G(d, e.domain, d);\n\tlet f = K(d, DT);\n\tG(f, e.domain, d);\n\tlet p = _E(pE);\n\tG(f, e.tld, p), G(f, e.utld, p), K(l, qw, p);\n\tlet m = K(d, AT);\n\tK(m, AT, m), G(m, e.domain, d), G(p, e.domain, d), K(p, DT, f), K(p, AT, m);\n\tlet h = K(o, AT), g = K(o, DT);\n\tK(h, AT, h), G(h, e.domain, o), G(g, r, a), G(g, e.domain, o);\n\tlet _ = _E(gE);\n\tG(g, e.tld, _), G(g, e.utld, _), G(_, e.domain, o), G(_, r, a), K(_, DT, g), K(_, AT, h), K(_, bT, l);\n\tlet v = K(_, wT), y = _E(gE);\n\tG(v, e.numeric, y);\n\tlet b = _E(gE), x = _E();\n\tG(b, t, b), G(b, n, x), G(x, t, b), G(x, n, x), K(_, zT, b), K(y, zT, b);\n\tlet S = K(s, wT), C = K(K(K(c, wT), zT), zT);\n\tG(s, e.domain, o), K(s, DT, g), K(s, AT, h), G(c, e.domain, o), K(c, DT, g), K(c, AT, h), G(S, e.domain, b), K(S, zT, b), K(S, FT, b), G(C, e.domain, b), G(C, t, b), K(C, zT, b);\n\tlet w = [\n\t\t[tT, nT],\n\t\t[rT, iT],\n\t\t[aT, oT],\n\t\t[sT, cT],\n\t\t[lT, uT],\n\t\t[dT, fT],\n\t\t[pT, mT],\n\t\t[hT, gT]\n\t];\n\tfor (let e = 0; e < w.length; e++) {\n\t\tlet [r, i] = w[e], a = K(b, r);\n\t\tK(x, r, a);\n\t\tlet o = _E(gE);\n\t\tG(a, t, o);\n\t\tlet s = _E();\n\t\tG(a, n, s), K(a, i, b), G(o, t, o), G(o, n, s), G(s, t, o), G(s, n, s), K(o, i, b), K(s, i, b);\n\t}\n\treturn K(i, qw, _), K(i, eT, hE), {\n\t\tstart: i,\n\t\ttokens: WT\n\t};\n}\nfunction yE(e, t, n) {\n\tlet r = n.length, i = 0, a = [], o = [];\n\tfor (; i < r;) {\n\t\tlet s = e, c = null, l = null, u = 0, d = null, f = -1;\n\t\tfor (; i < r && !(c = s.go(n[i].t));) o.push(n[i++]);\n\t\tfor (; i < r && (l = c || s.go(n[i].t));) c = null, s = l, s.accepts() ? (f = 0, d = s) : f >= 0 && f++, i++, u++;\n\t\tif (f < 0) i -= u, i < r && (o.push(n[i]), i++);\n\t\telse {\n\t\t\to.length > 0 && (a.push(bE(mE, t, o)), o = []), i -= f, u -= f;\n\t\t\tlet e = d.t, r = n.slice(i - u, i);\n\t\t\ta.push(bE(e, t, r));\n\t\t}\n\t}\n\treturn o.length > 0 && a.push(bE(mE, t, o)), a;\n}\nfunction bE(e, t, n) {\n\tlet r = n[0].s, i = n[n.length - 1].e;\n\treturn new e(t.slice(r, i), n);\n}\nvar xE = typeof console < \"u\" && console && console.warn || (() => {}), SE = \"until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.\", CE = {\n\tscanner: null,\n\tparser: null,\n\ttokenQueue: [],\n\tpluginQueue: [],\n\tcustomSchemes: [],\n\tinitialized: !1\n};\nfunction wE(e, t) {\n\tif (typeof t != \"function\") throw Error(`linkifyjs: Invalid plugin ${t} (expects function)`);\n\tfor (let n = 0; n < CE.pluginQueue.length; n++) if (e === CE.pluginQueue[n][0]) {\n\t\txE(`linkifyjs: plugin \"${e}\" already registered - will be overwritten`), CE.pluginQueue[n] = [e, t];\n\t\treturn;\n\t}\n\tCE.pluginQueue.push([e, t]), CE.initialized && xE(`linkifyjs: already initialized - will not register plugin \"${e}\" ${SE}`);\n}\nfunction TE(e, t = !1) {\n\tif (CE.initialized && xE(`linkifyjs: already initialized - will not register custom scheme \"${e}\" ${SE}`), !/^[0-9a-z]+(-[0-9a-z]+)*$/.test(e)) throw Error(\"linkifyjs: incorrect scheme format.\\n1. Must only contain digits, lowercase ASCII letters or \\\"-\\\"\\n2. Cannot start or end with \\\"-\\\"\\n3. \\\"-\\\" cannot repeat\");\n\tCE.customSchemes.push([e, t]);\n}\nfunction EE() {\n\tCE.scanner = rE(CE.customSchemes);\n\tfor (let e = 0; e < CE.tokenQueue.length; e++) CE.tokenQueue[e][1]({ scanner: CE.scanner });\n\tCE.parser = vE(CE.scanner.tokens);\n\tfor (let e = 0; e < CE.pluginQueue.length; e++) CE.pluginQueue[e][1]({\n\t\tscanner: CE.scanner,\n\t\tparser: CE.parser\n\t});\n\treturn CE.initialized = !0, CE;\n}\nfunction DE(e) {\n\treturn CE.initialized || EE(), yE(CE.parser.start, e, iE(CE.scanner.start, e));\n}\nDE.scan = iE;\nfunction OE(e, t = null, n = null) {\n\tif (t && typeof t == \"object\") {\n\t\tif (n) throw Error(`linkifyjs: Invalid link type ${t}; must be a string`);\n\t\tn = t, t = null;\n\t}\n\tlet r = new lE(n), i = DE(e), a = [];\n\tfor (let e = 0; e < i.length; e++) {\n\t\tlet n = i[e];\n\t\tn.isLink && (!t || n.t === t) && r.check(n) && a.push(n.toFormattedObject(r));\n\t}\n\treturn a;\n}\nfunction kE(e, t = null) {\n\tlet n = DE(e);\n\treturn n.length === 1 && n[0].isLink && (!t || n[0].t === t);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/linkify-react@4.3.3_linkifyjs@4.3.3_react@19.2.7/node_modules/linkify-react/dist/linkify-react.mjs\nfunction AE(e, t, n) {\n\tlet r = DE(e), i = [];\n\tfor (let e = 0; e < r.length; e++) {\n\t\tlet o = r[e];\n\t\tif (o.t === \"nl\" && t.get(\"nl2br\")) {\n\t\t\tlet e = `__linkify-el-${n.elementId++}`;\n\t\t\ti.push(a.createElement(\"br\", { key: e }));\n\t\t} else if (!o.isLink || !t.check(o)) i.push(o.toString());\n\t\telse {\n\t\t\tlet e = t.render(o);\n\t\t\tif (!(\"key\" in e.props)) {\n\t\t\t\tlet t = `__linkify-el-${n.elementId++}`, r = Object.assign({ key: t }, e.props);\n\t\t\t\te = a.cloneElement(e, r);\n\t\t\t}\n\t\t\ti.push(e);\n\t\t}\n\t}\n\treturn i;\n}\nfunction jE(e, t, n) {\n\tif (a.Children.count(e.props.children) === 0) return e;\n\tlet r = [];\n\ta.Children.forEach(e.props.children, (e) => {\n\t\ttypeof e == \"string\" ? r.push.apply(r, AE(e, t, n)) : a.isValidElement(e) ? typeof e.type == \"string\" && t.ignoreTags.indexOf(e.type.toUpperCase()) >= 0 ? r.push(e) : r.push(jE(e, t, n)) : r.push(e);\n\t});\n\tlet i = `__linkify-el-${n.elementId++}`, o = Object.assign({ key: i }, e.props);\n\treturn a.cloneElement(e, o, r);\n}\nvar ME = (e) => {\n\tlet t = 0, n = ({ tagName: e, attributes: n, content: r }) => (n.key = `__linkify-lnk-${t++}`, n.class && (n.className = n.class, delete n.class), a.createElement(e, n, r)), r = { key: \"__linkify-wrapper\" };\n\tfor (let t in e) t !== \"options\" && t !== \"as\" && t !== \"tagName\" && t !== \"children\" && (r[t] = e[t]);\n\tlet i = new lE(e.options, n), o = e.as || e.tagName || a.Fragment || \"span\", s = e.children;\n\treturn jE(a.createElement(o, r, s), i, { elementId: 0 });\n}, NE = { container: \"_container_15awj_8\" };\n//#endregion\n//#region ../../node_modules/.pnpm/linkify-string@4.3.3_linkifyjs@4.3.3/node_modules/linkify-string/dist/linkify-string.mjs\nfunction PE(e) {\n\treturn e.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n}\nfunction FE(e) {\n\treturn e.replace(/\"/g, \"&quot;\");\n}\nfunction IE(e) {\n\tlet t = [];\n\tfor (let n in e) {\n\t\tlet r = e[n] + \"\";\n\t\tt.push(`${n}=\"${FE(r)}\"`);\n\t}\n\treturn t.join(\" \");\n}\nfunction LE({ tagName: e, attributes: t, content: n }) {\n\treturn `<${e} ${IE(t)}>${PE(n)}</${e}>`;\n}\nfunction RE(e, t = {}) {\n\tt = new lE(t, LE);\n\tlet n = DE(e), r = [];\n\tfor (let e = 0; e < n.length; e++) {\n\t\tlet i = n[e];\n\t\ti.t === \"nl\" && t.get(\"nl2br\") ? r.push(\"<br>\\n\") : !i.isLink || !t.check(i) ? r.push(PE(i.toString())) : r.push(t.render(i));\n\t}\n\treturn r.join(\"\");\n}\nString.prototype.linkify || Object.defineProperty(String.prototype, \"linkify\", {\n\twritable: !1,\n\tvalue: function(e) {\n\t\treturn RE(this, e);\n\t}\n});\n//#endregion\n//#region ../../node_modules/.pnpm/linkify-html@4.3.3_patch_hash=1761c1eabe25d9fae83f74f27a20b3d24515840a4a8747bb04828df46bcfdea2_linkifyjs@4.3.3/node_modules/linkify-html/dist/linkify-html.mjs\nvar zE = {\n\tamp: \"&\",\n\tgt: \">\",\n\tlt: \"<\",\n\tnbsp: \"\\xA0\",\n\tquot: \"\\\"\"\n}, BE = /^#[xX]([A-Fa-f0-9]+)$/, VE = /^#([0-9]+)$/, HE = /^([A-Za-z0-9]+)$/, UE = function() {\n\tfunction e(e) {\n\t\tthis.named = e;\n\t}\n\treturn e.prototype.parse = function(e) {\n\t\tif (e) {\n\t\t\tvar t = e.match(BE);\n\t\t\tif (t) return String.fromCharCode(parseInt(t[1], 16));\n\t\t\tif (t = e.match(VE), t) return String.fromCharCode(parseInt(t[1], 10));\n\t\t\tif (t = e.match(HE), t) return this.named[t[1]] || \"&\" + t[1] + \";\";\n\t\t}\n\t}, e;\n}(), WE = /[\\t\\n\\f ]/, GE = /[A-Za-z]/, KE = /\\r\\n?/g;\nfunction qE(e) {\n\treturn WE.test(e);\n}\nfunction JE(e) {\n\treturn GE.test(e);\n}\nfunction YE(e) {\n\treturn e.replace(KE, \"\\n\");\n}\nvar XE = function() {\n\tfunction e(e, t, n) {\n\t\tn === void 0 && (n = \"precompile\"), this.delegate = e, this.entityParser = t, this.mode = n, this.state = \"beforeData\", this.line = -1, this.column = -1, this.input = \"\", this.index = -1, this.tagNameBuffer = \"\", this.states = {\n\t\t\tbeforeData: function() {\n\t\t\t\tvar e = this.peek();\n\t\t\t\tif (e === \"<\" && !this.isIgnoredEndTag()) this.transitionTo(\"tagOpen\"), this.markTagStart(), this.consume();\n\t\t\t\telse {\n\t\t\t\t\tif (this.mode === \"precompile\" && e === \"\\n\") {\n\t\t\t\t\t\tvar t = this.tagNameBuffer.toLowerCase();\n\t\t\t\t\t\t(t === \"pre\" || t === \"textarea\") && this.consume();\n\t\t\t\t\t}\n\t\t\t\t\tthis.transitionTo(\"data\"), this.delegate.beginData();\n\t\t\t\t}\n\t\t\t},\n\t\t\tdata: function() {\n\t\t\t\tvar e = this.peek(), t = this.tagNameBuffer;\n\t\t\t\te === \"<\" && !this.isIgnoredEndTag() ? (this.delegate.finishData(), this.transitionTo(\"tagOpen\"), this.markTagStart(), this.consume()) : e === \"&\" && t !== \"script\" && t !== \"style\" ? (this.consume(), this.delegate.appendToData(this.consumeCharRef() || \"&\")) : (this.consume(), this.delegate.appendToData(e));\n\t\t\t},\n\t\t\ttagOpen: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"!\" ? this.transitionTo(\"markupDeclarationOpen\") : e === \"/\" ? this.transitionTo(\"endTagOpen\") : (e === \"@\" || e === \":\" || JE(e)) && (this.transitionTo(\"tagName\"), this.tagNameBuffer = \"\", this.delegate.beginStartTag(), this.appendToTagName(e));\n\t\t\t},\n\t\t\tmarkupDeclarationOpen: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"-\" && this.peek() === \"-\" ? (this.consume(), this.transitionTo(\"commentStart\"), this.delegate.beginComment()) : e.toUpperCase() + this.input.substring(this.index, this.index + 6).toUpperCase() === \"DOCTYPE\" && (this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.transitionTo(\"doctype\"), this.delegate.beginDoctype && this.delegate.beginDoctype());\n\t\t\t},\n\t\t\tdoctype: function() {\n\t\t\t\tqE(this.consume()) && this.transitionTo(\"beforeDoctypeName\");\n\t\t\t},\n\t\t\tbeforeDoctypeName: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\tqE(e) || (this.transitionTo(\"doctypeName\"), this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(e.toLowerCase()));\n\t\t\t},\n\t\t\tdoctypeName: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\tqE(e) ? this.transitionTo(\"afterDoctypeName\") : e === \">\" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\")) : this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(e.toLowerCase());\n\t\t\t},\n\t\t\tafterDoctypeName: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\tif (!qE(e)) if (e === \">\") this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\");\n\t\t\t\telse {\n\t\t\t\t\tvar t = e.toUpperCase() + this.input.substring(this.index, this.index + 5).toUpperCase(), n = t.toUpperCase() === \"PUBLIC\", r = t.toUpperCase() === \"SYSTEM\";\n\t\t\t\t\t(n || r) && (this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.consume()), n ? this.transitionTo(\"afterDoctypePublicKeyword\") : r && this.transitionTo(\"afterDoctypeSystemKeyword\");\n\t\t\t\t}\n\t\t\t},\n\t\t\tafterDoctypePublicKeyword: function() {\n\t\t\t\tvar e = this.peek();\n\t\t\t\tif (qE(e)) this.transitionTo(\"beforeDoctypePublicIdentifier\"), this.consume();\n\t\t\t\telse if (e === \"\\\"\") this.transitionTo(\"doctypePublicIdentifierDoubleQuoted\"), this.consume();\n\t\t\t\telse if (e === \"'\") this.transitionTo(\"doctypePublicIdentifierSingleQuoted\"), this.consume();\n\t\t\t\telse if (e === \">\") this.consume(), this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\");\n\t\t\t\telse throw Error(\"Unexpected token\");\n\t\t\t},\n\t\t\tdoctypePublicIdentifierDoubleQuoted: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"\\\"\" ? this.transitionTo(\"afterDoctypePublicIdentifier\") : e === \">\" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\")) : this.delegate.appendToDoctypePublicIdentifier && this.delegate.appendToDoctypePublicIdentifier(e);\n\t\t\t},\n\t\t\tdoctypePublicIdentifierSingleQuoted: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"'\" ? this.transitionTo(\"afterDoctypePublicIdentifier\") : e === \">\" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\")) : this.delegate.appendToDoctypePublicIdentifier && this.delegate.appendToDoctypePublicIdentifier(e);\n\t\t\t},\n\t\t\tafterDoctypePublicIdentifier: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\tqE(e) ? this.transitionTo(\"betweenDoctypePublicAndSystemIdentifiers\") : e === \">\" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\")) : e === \"\\\"\" ? this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\") : e === \"'\" && this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\");\n\t\t\t},\n\t\t\tbetweenDoctypePublicAndSystemIdentifiers: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\tqE(e) || (e === \">\" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\")) : e === \"\\\"\" ? this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\") : e === \"'\" && this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"));\n\t\t\t},\n\t\t\tdoctypeSystemIdentifierDoubleQuoted: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"\\\"\" ? this.transitionTo(\"afterDoctypeSystemIdentifier\") : e === \">\" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\")) : this.delegate.appendToDoctypeSystemIdentifier && this.delegate.appendToDoctypeSystemIdentifier(e);\n\t\t\t},\n\t\t\tdoctypeSystemIdentifierSingleQuoted: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"'\" ? this.transitionTo(\"afterDoctypeSystemIdentifier\") : e === \">\" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\")) : this.delegate.appendToDoctypeSystemIdentifier && this.delegate.appendToDoctypeSystemIdentifier(e);\n\t\t\t},\n\t\t\tafterDoctypeSystemIdentifier: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\tqE(e) || e === \">\" && (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo(\"beforeData\"));\n\t\t\t},\n\t\t\tcommentStart: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"-\" && this.peek() === \"-\" ? this.transitionTo(\"commentStartDash\") : e === \">\" ? (this.delegate.finishComment(), this.transitionTo(\"beforeData\")) : (this.delegate.appendToCommentData(e), this.transitionTo(\"comment\"));\n\t\t\t},\n\t\t\tcommentStartDash: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"-\" ? this.transitionTo(\"commentEnd\") : e === \">\" ? (this.delegate.finishComment(), this.transitionTo(\"beforeData\")) : (this.delegate.appendToCommentData(\"-\"), this.transitionTo(\"comment\"));\n\t\t\t},\n\t\t\tcomment: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"-\" ? this.transitionTo(\"commentEndDash\") : this.delegate.appendToCommentData(e);\n\t\t\t},\n\t\t\tcommentEndDash: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"-\" && this.peek() === \"-\" ? this.delegate.appendToCommentData(e) : e === \"-\" ? this.transitionTo(\"commentEnd\") : (this.delegate.appendToCommentData(\"-\" + e), this.transitionTo(\"comment\"));\n\t\t\t},\n\t\t\tcommentEnd: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \">\" ? (this.delegate.finishComment(), this.transitionTo(\"beforeData\")) : (this.delegate.appendToCommentData(\"--\" + e), this.transitionTo(\"comment\"));\n\t\t\t},\n\t\t\ttagName: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\tqE(e) ? this.transitionTo(\"beforeAttributeName\") : e === \"/\" ? this.transitionTo(\"selfClosingStartTag\") : e === \">\" ? (this.delegate.finishTag(), this.transitionTo(\"beforeData\")) : this.appendToTagName(e);\n\t\t\t},\n\t\t\tendTagName: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\tqE(e) ? (this.transitionTo(\"beforeAttributeName\"), this.tagNameBuffer = \"\") : e === \"/\" ? (this.transitionTo(\"selfClosingStartTag\"), this.tagNameBuffer = \"\") : e === \">\" ? (this.delegate.finishTag(), this.transitionTo(\"beforeData\"), this.tagNameBuffer = \"\") : this.appendToTagName(e);\n\t\t\t},\n\t\t\tbeforeAttributeName: function() {\n\t\t\t\tvar e = this.peek();\n\t\t\t\tif (qE(e)) {\n\t\t\t\t\tthis.consume();\n\t\t\t\t\treturn;\n\t\t\t\t} else e === \"/\" ? (this.transitionTo(\"selfClosingStartTag\"), this.consume()) : e === \">\" ? (this.consume(), this.delegate.finishTag(), this.transitionTo(\"beforeData\")) : e === \"=\" ? (this.delegate.reportSyntaxError(\"attribute name cannot start with equals sign\"), this.transitionTo(\"attributeName\"), this.delegate.beginAttribute(), this.consume(), this.delegate.appendToAttributeName(e)) : (this.transitionTo(\"attributeName\"), this.delegate.beginAttribute());\n\t\t\t},\n\t\t\tattributeName: function() {\n\t\t\t\tvar e = this.peek();\n\t\t\t\tqE(e) ? (this.transitionTo(\"afterAttributeName\"), this.consume()) : e === \"/\" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.transitionTo(\"selfClosingStartTag\")) : e === \"=\" ? (this.transitionTo(\"beforeAttributeValue\"), this.consume()) : e === \">\" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo(\"beforeData\")) : e === \"\\\"\" || e === \"'\" || e === \"<\" ? (this.delegate.reportSyntaxError(e + \" is not a valid character within attribute names\"), this.consume(), this.delegate.appendToAttributeName(e)) : (this.consume(), this.delegate.appendToAttributeName(e));\n\t\t\t},\n\t\t\tafterAttributeName: function() {\n\t\t\t\tvar e = this.peek();\n\t\t\t\tif (qE(e)) {\n\t\t\t\t\tthis.consume();\n\t\t\t\t\treturn;\n\t\t\t\t} else e === \"/\" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.transitionTo(\"selfClosingStartTag\")) : e === \"=\" ? (this.consume(), this.transitionTo(\"beforeAttributeValue\")) : e === \">\" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo(\"beforeData\")) : (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.transitionTo(\"attributeName\"), this.delegate.beginAttribute(), this.consume(), this.delegate.appendToAttributeName(e));\n\t\t\t},\n\t\t\tbeforeAttributeValue: function() {\n\t\t\t\tvar e = this.peek();\n\t\t\t\tqE(e) ? this.consume() : e === \"\\\"\" ? (this.transitionTo(\"attributeValueDoubleQuoted\"), this.delegate.beginAttributeValue(!0), this.consume()) : e === \"'\" ? (this.transitionTo(\"attributeValueSingleQuoted\"), this.delegate.beginAttributeValue(!0), this.consume()) : e === \">\" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo(\"beforeData\")) : (this.transitionTo(\"attributeValueUnquoted\"), this.delegate.beginAttributeValue(!1), this.consume(), this.delegate.appendToAttributeValue(e));\n\t\t\t},\n\t\t\tattributeValueDoubleQuoted: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"\\\"\" ? (this.delegate.finishAttributeValue(), this.transitionTo(\"afterAttributeValueQuoted\")) : e === \"&\" ? this.delegate.appendToAttributeValue(this.consumeCharRef() || \"&\") : this.delegate.appendToAttributeValue(e);\n\t\t\t},\n\t\t\tattributeValueSingleQuoted: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\te === \"'\" ? (this.delegate.finishAttributeValue(), this.transitionTo(\"afterAttributeValueQuoted\")) : e === \"&\" ? this.delegate.appendToAttributeValue(this.consumeCharRef() || \"&\") : this.delegate.appendToAttributeValue(e);\n\t\t\t},\n\t\t\tattributeValueUnquoted: function() {\n\t\t\t\tvar e = this.peek();\n\t\t\t\tqE(e) ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo(\"beforeAttributeName\")) : e === \"/\" ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo(\"selfClosingStartTag\")) : e === \"&\" ? (this.consume(), this.delegate.appendToAttributeValue(this.consumeCharRef() || \"&\")) : e === \">\" ? (this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo(\"beforeData\")) : (this.consume(), this.delegate.appendToAttributeValue(e));\n\t\t\t},\n\t\t\tafterAttributeValueQuoted: function() {\n\t\t\t\tvar e = this.peek();\n\t\t\t\tqE(e) ? (this.consume(), this.transitionTo(\"beforeAttributeName\")) : e === \"/\" ? (this.consume(), this.transitionTo(\"selfClosingStartTag\")) : e === \">\" ? (this.consume(), this.delegate.finishTag(), this.transitionTo(\"beforeData\")) : this.transitionTo(\"beforeAttributeName\");\n\t\t\t},\n\t\t\tselfClosingStartTag: function() {\n\t\t\t\tthis.peek() === \">\" ? (this.consume(), this.delegate.markTagAsSelfClosing(), this.delegate.finishTag(), this.transitionTo(\"beforeData\")) : this.transitionTo(\"beforeAttributeName\");\n\t\t\t},\n\t\t\tendTagOpen: function() {\n\t\t\t\tvar e = this.consume();\n\t\t\t\t(e === \"@\" || e === \":\" || JE(e)) && (this.transitionTo(\"endTagName\"), this.tagNameBuffer = \"\", this.delegate.beginEndTag(), this.appendToTagName(e));\n\t\t\t}\n\t\t}, this.reset();\n\t}\n\treturn e.prototype.reset = function() {\n\t\tthis.transitionTo(\"beforeData\"), this.input = \"\", this.tagNameBuffer = \"\", this.index = 0, this.line = 1, this.column = 0, this.delegate.reset();\n\t}, e.prototype.transitionTo = function(e) {\n\t\tthis.state = e;\n\t}, e.prototype.tokenize = function(e) {\n\t\tthis.reset(), this.tokenizePart(e), this.tokenizeEOF();\n\t}, e.prototype.tokenizePart = function(e) {\n\t\tfor (this.input += YE(e); this.index < this.input.length;) {\n\t\t\tvar t = this.states[this.state];\n\t\t\tif (t !== void 0) t.call(this);\n\t\t\telse throw Error(\"unhandled state \" + this.state);\n\t\t}\n\t}, e.prototype.tokenizeEOF = function() {\n\t\tthis.flushData();\n\t}, e.prototype.flushData = function() {\n\t\tthis.state === \"data\" && (this.delegate.finishData(), this.transitionTo(\"beforeData\"));\n\t}, e.prototype.peek = function() {\n\t\treturn this.input.charAt(this.index);\n\t}, e.prototype.consume = function() {\n\t\tvar e = this.peek();\n\t\treturn this.index++, e === \"\\n\" ? (this.line++, this.column = 0) : this.column++, e;\n\t}, e.prototype.consumeCharRef = function() {\n\t\tvar e = this.input.indexOf(\";\", this.index);\n\t\tif (e !== -1) {\n\t\t\tvar t = this.input.slice(this.index, e), n = this.entityParser.parse(t);\n\t\t\tif (n) {\n\t\t\t\tfor (var r = t.length; r;) this.consume(), r--;\n\t\t\t\treturn this.consume(), n;\n\t\t\t}\n\t\t}\n\t}, e.prototype.markTagStart = function() {\n\t\tthis.delegate.tagOpen();\n\t}, e.prototype.appendToTagName = function(e) {\n\t\tthis.tagNameBuffer += e, this.delegate.appendToTagName(e);\n\t}, e.prototype.isIgnoredEndTag = function() {\n\t\tvar e = this.tagNameBuffer;\n\t\treturn e === \"title\" && this.input.substring(this.index, this.index + 8) !== \"</title>\" || e === \"style\" && this.input.substring(this.index, this.index + 8) !== \"</style>\" || e === \"script\" && this.input.substring(this.index, this.index + 9) !== \"<\\/script>\";\n\t}, e;\n}(), ZE = function() {\n\tfunction e(e, t) {\n\t\tt === void 0 && (t = {}), this.options = t, this.token = null, this.startLine = 1, this.startColumn = 0, this.tokens = [], this.tokenizer = new XE(this, e, t.mode), this._currentAttribute = void 0;\n\t}\n\treturn e.prototype.tokenize = function(e) {\n\t\treturn this.tokens = [], this.tokenizer.tokenize(e), this.tokens;\n\t}, e.prototype.tokenizePart = function(e) {\n\t\treturn this.tokens = [], this.tokenizer.tokenizePart(e), this.tokens;\n\t}, e.prototype.tokenizeEOF = function() {\n\t\treturn this.tokens = [], this.tokenizer.tokenizeEOF(), this.tokens[0];\n\t}, e.prototype.reset = function() {\n\t\tthis.token = null, this.startLine = 1, this.startColumn = 0;\n\t}, e.prototype.current = function() {\n\t\tvar e = this.token;\n\t\tif (e === null) throw Error(\"token was unexpectedly null\");\n\t\tif (arguments.length === 0) return e;\n\t\tfor (var t = 0; t < arguments.length; t++) if (e.type === arguments[t]) return e;\n\t\tthrow Error(\"token type was unexpectedly \" + e.type);\n\t}, e.prototype.push = function(e) {\n\t\tthis.token = e, this.tokens.push(e);\n\t}, e.prototype.currentAttribute = function() {\n\t\treturn this._currentAttribute;\n\t}, e.prototype.addLocInfo = function() {\n\t\tthis.options.loc && (this.current().loc = {\n\t\t\tstart: {\n\t\t\t\tline: this.startLine,\n\t\t\t\tcolumn: this.startColumn\n\t\t\t},\n\t\t\tend: {\n\t\t\t\tline: this.tokenizer.line,\n\t\t\t\tcolumn: this.tokenizer.column\n\t\t\t}\n\t\t}), this.startLine = this.tokenizer.line, this.startColumn = this.tokenizer.column;\n\t}, e.prototype.beginDoctype = function() {\n\t\tthis.push({\n\t\t\ttype: \"Doctype\",\n\t\t\tname: \"\"\n\t\t});\n\t}, e.prototype.appendToDoctypeName = function(e) {\n\t\tthis.current(\"Doctype\").name += e;\n\t}, e.prototype.appendToDoctypePublicIdentifier = function(e) {\n\t\tvar t = this.current(\"Doctype\");\n\t\tt.publicIdentifier === void 0 ? t.publicIdentifier = e : t.publicIdentifier += e;\n\t}, e.prototype.appendToDoctypeSystemIdentifier = function(e) {\n\t\tvar t = this.current(\"Doctype\");\n\t\tt.systemIdentifier === void 0 ? t.systemIdentifier = e : t.systemIdentifier += e;\n\t}, e.prototype.endDoctype = function() {\n\t\tthis.addLocInfo();\n\t}, e.prototype.beginData = function() {\n\t\tthis.push({\n\t\t\ttype: \"Chars\",\n\t\t\tchars: \"\"\n\t\t});\n\t}, e.prototype.appendToData = function(e) {\n\t\tthis.current(\"Chars\").chars += e;\n\t}, e.prototype.finishData = function() {\n\t\tthis.addLocInfo();\n\t}, e.prototype.beginComment = function() {\n\t\tthis.push({\n\t\t\ttype: \"Comment\",\n\t\t\tchars: \"\"\n\t\t});\n\t}, e.prototype.appendToCommentData = function(e) {\n\t\tthis.current(\"Comment\").chars += e;\n\t}, e.prototype.finishComment = function() {\n\t\tthis.addLocInfo();\n\t}, e.prototype.tagOpen = function() {}, e.prototype.beginStartTag = function() {\n\t\tthis.push({\n\t\t\ttype: \"StartTag\",\n\t\t\ttagName: \"\",\n\t\t\tattributes: [],\n\t\t\tselfClosing: !1\n\t\t});\n\t}, e.prototype.beginEndTag = function() {\n\t\tthis.push({\n\t\t\ttype: \"EndTag\",\n\t\t\ttagName: \"\"\n\t\t});\n\t}, e.prototype.finishTag = function() {\n\t\tthis.addLocInfo();\n\t}, e.prototype.markTagAsSelfClosing = function() {\n\t\tthis.current(\"StartTag\").selfClosing = !0;\n\t}, e.prototype.appendToTagName = function(e) {\n\t\tthis.current(\"StartTag\", \"EndTag\").tagName += e;\n\t}, e.prototype.beginAttribute = function() {\n\t\tthis._currentAttribute = [\n\t\t\t\"\",\n\t\t\t\"\",\n\t\t\t!1\n\t\t];\n\t}, e.prototype.appendToAttributeName = function(e) {\n\t\tthis.currentAttribute()[0] += e;\n\t}, e.prototype.beginAttributeValue = function(e) {\n\t\tthis.currentAttribute()[2] = e;\n\t}, e.prototype.appendToAttributeValue = function(e) {\n\t\tthis.currentAttribute()[1] += e;\n\t}, e.prototype.finishAttributeValue = function() {\n\t\tthis.current(\"StartTag\").attributes.push(this._currentAttribute);\n\t}, e.prototype.reportSyntaxError = function(e) {\n\t\tthis.current().syntaxError = e;\n\t}, e;\n}();\nfunction QE(e, t) {\n\treturn new ZE(new UE(zE), t).tokenize(e);\n}\nvar $E = \"LinkifyResult\", eD = \"StartTag\", tD = \"EndTag\", nD = \"Chars\", rD = \"Comment\", iD = \"Doctype\";\nfunction aD(e, t = {}) {\n\tlet n = QE(e), r = [], i = [], a = new lE(t, cD);\n\tfor (let e = 0; e < n.length; e++) {\n\t\tlet t = n[e];\n\t\tif (t.type === eD) {\n\t\t\tr.push(t);\n\t\t\tlet i = t.tagName.toUpperCase();\n\t\t\tif (!(i === \"A\" || a.ignoreTags.indexOf(i) >= 0)) continue;\n\t\t\tlet o = r.length;\n\t\t\tsD(i, n, ++e, r), e += r.length - o - 1;\n\t\t} else if (t.type !== nD) r.push(t);\n\t\telse {\n\t\t\tlet e = oD(t.chars, a);\n\t\t\tr.push.apply(r, e);\n\t\t}\n\t}\n\tfor (let e = 0; e < r.length; e++) {\n\t\tlet t = r[e];\n\t\tswitch (t.type) {\n\t\t\tcase $E:\n\t\t\t\ti.push(t.rendered);\n\t\t\t\tbreak;\n\t\t\tcase eD: {\n\t\t\t\tlet e = \"<\" + t.tagName;\n\t\t\t\tt.attributes.length > 0 && (e += \" \" + fD(t.attributes).join(\" \")), t.selfClosing && (e += \" /\"), e += \">\", i.push(e);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase tD:\n\t\t\t\ti.push(`</${t.tagName}>`);\n\t\t\t\tbreak;\n\t\t\tcase nD:\n\t\t\t\ti.push(lD(t.chars));\n\t\t\t\tbreak;\n\t\t\tcase rD:\n\t\t\t\ti.push(`<!--${lD(t.chars)}-->`);\n\t\t\t\tbreak;\n\t\t\tcase iD: {\n\t\t\t\tlet e = `<!DOCTYPE ${t.name}`;\n\t\t\t\tt.publicIdentifier && (e += ` PUBLIC \"${t.publicIdentifier}\"`), t.systemIdentifier && (e += ` \"${t.systemIdentifier}\"`), e += \">\", i.push(e);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn i.join(\"\");\n}\nfunction oD(e, t) {\n\tlet n = DE(e), r = [];\n\tfor (let e = 0; e < n.length; e++) {\n\t\tlet i = n[e];\n\t\ti.t === \"nl\" && t.get(\"nl2br\") ? r.push({\n\t\t\ttype: eD,\n\t\t\ttagName: \"br\",\n\t\t\tattributes: [],\n\t\t\tselfClosing: !0\n\t\t}) : !i.isLink || !t.check(i) ? r.push({\n\t\t\ttype: nD,\n\t\t\tchars: i.toString()\n\t\t}) : r.push({\n\t\t\ttype: $E,\n\t\t\trendered: t.render(i)\n\t\t});\n\t}\n\treturn r;\n}\nfunction sD(e, t, n, r) {\n\tlet i = 1;\n\tfor (; n < t.length && i > 0;) {\n\t\tlet a = t[n];\n\t\ta.type === eD && a.tagName.toUpperCase() === e ? i++ : a.type === tD && a.tagName.toUpperCase() === e && i--, r.push(a), n++;\n\t}\n\treturn r;\n}\nfunction cD({ tagName: e, attributes: t, content: n }) {\n\treturn `<${e} ${dD(t)}>${lD(n)}</${e}>`;\n}\nfunction lD(e) {\n\treturn e.replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n}\nfunction uD(e) {\n\treturn e.replace(/\"/g, \"&quot;\");\n}\nfunction dD(e) {\n\tlet t = [];\n\tfor (let n in e) {\n\t\tlet r = e[n] + \"\";\n\t\tt.push(`${n}=\"${uD(r)}\"`);\n\t}\n\treturn t.join(\" \");\n}\nfunction fD(e) {\n\tlet t = [];\n\tfor (let n = 0; n < e.length; n++) {\n\t\tlet r = e[n][0], i = e[n][1] + \"\";\n\t\tt.push(`${r}=\"${uD(i)}\"`);\n\t}\n\treturn t;\n}\n//#endregion\n//#region src/core/utils/linkify.ts\nvar pD = [\n\t\"file\",\n\t\"mailto\",\n\t\"http\",\n\t\"https\",\n\t\"ftp\",\n\t\"ftps\"\n], mD = [\n\t\"bitcoin\",\n\t\"geo\",\n\t\"im\",\n\t\"magnet\",\n\t\"mailto\",\n\t\"matrix\",\n\t\"news\",\n\t\"openpgp4fpr\",\n\t\"sip\",\n\t\"sms\",\n\t\"smsto\",\n\t\"tel\",\n\t\"urn\",\n\t\"xmpp\"\n], hD = [...pD, ...mD], gD = /* @__PURE__ */ function(e) {\n\treturn e.URL = \"url\", e.UserId = \"userid\", e.RoomAlias = \"roomalias\", e;\n}({});\nfunction _D({ scanner: e, parser: t, token: n, name: r }) {\n\tlet { DOT: i, NUM: a, COLON: o, SYM: s, SLASH: c, EQUALS: l, HYPHEN: u, UNDERSCORE: d } = e.tokens, { domain: f } = e.tokens.groups, p = [\n\t\ti,\n\t\ts,\n\t\tc,\n\t\tl,\n\t\td,\n\t\tu\n\t], m = [u], h = new Bw(fE(r, { isLink: !0 })), g = new Bw(fE(r, { isLink: !0 })), _ = t.start.tt(n), v = new Bw();\n\t_.ta(f, v), _.ta(p, v), v.ta(f, v), v.ta(p, v);\n\tlet y = v.tt(o);\n\ty.ta(f, h), y.ta(m, h), h.ta(f, h), h.ta(m, h), h.tt(i, y), h.tt(o).tt(a, g);\n}\nfunction vD({ urlListener: e, roomAliasListener: t, userIdListener: n, urlTargetTransformer: r, hrefTransformer: i, onLinkClick: a }) {\n\tlet o = (r, i) => {\n\t\tswitch (i) {\n\t\t\tcase \"url\":\n\t\t\t\tif (e) return e(r);\n\t\t\t\tbreak;\n\t\t\tcase \"userid\":\n\t\t\t\tif (n) return n(r);\n\t\t\t\tbreak;\n\t\t\tcase \"roomalias\":\n\t\t\t\tif (t) return t(r);\n\t\t\t\tbreak;\n\t\t}\n\t\treturn {};\n\t};\n\treturn {\n\t\trel: \"noreferrer noopener\",\n\t\tignoreTags: [\n\t\t\t\"a\",\n\t\t\t\"pre\",\n\t\t\t\"code\"\n\t\t],\n\t\tdefaultProtocol: \"https\",\n\t\tevents: o,\n\t\tattributes: (e, t) => {\n\t\t\tlet n = { [`data-${xD}`]: \"true\" }, r = o(e, t);\n\t\t\treturn r?.click && (n.onClick = r.click), a && (n.onClick = (e) => {\n\t\t\t\ta(e), r?.click?.(e);\n\t\t\t}), n;\n\t\t},\n\t\ttarget(e, t) {\n\t\t\treturn t === \"url\" && r ? r(e) : \"_blank\";\n\t\t},\n\t\t...i ? { formatHref: (e, t) => i(e, t) } : void 0,\n\t\tvalidate: (e, r) => !!(r === \"userid\" && n) || !!(r === \"roomalias\" && t) || !!(r === \"url\" && URL.canParse(e))\n\t};\n}\nfunction yD(e) {\n\treturn OE(e);\n}\nfunction bD(e) {\n\treturn kE(e);\n}\nvar xD = \"linkified\", SD = !1;\nfunction CD() {\n\tSD ||= (wE(\"roomalias\", ({ scanner: e, parser: t }) => {\n\t\tlet n = e.tokens.POUND;\n\t\t_D({\n\t\t\tscanner: e,\n\t\t\tparser: t,\n\t\t\ttoken: n,\n\t\t\tname: \"roomalias\"\n\t\t});\n\t}), wE(\"userid\", ({ scanner: e, parser: t }) => {\n\t\tlet n = e.tokens.AT;\n\t\t_D({\n\t\t\tscanner: e,\n\t\t\tparser: t,\n\t\t\ttoken: n,\n\t\t\tname: \"userid\"\n\t\t});\n\t}), TE(\"mxc\", !1), hD.forEach((e) => {\n\t\tpD.includes(e) || TE(e, mD.includes(e));\n\t}), !0);\n}\nCD();\n//#endregion\n//#region src/core/utils/LinkedText/LinkedTextContext.tsx\nvar wD = l(null);\nwD.displayName = \"LinkedTextContext\";\nfunction TD() {\n\tlet e = g(wD);\n\tif (!e) throw Error(\"useLinkedTextContextOpts must be used within an LinkedTextContext.Provider\");\n\treturn e;\n}\n//#endregion\n//#region src/core/utils/LinkedText/LinkedText.tsx\nfunction ED({ children: e, className: t, onLinkClick: n, ...r }) {\n\tlet i = vD({\n\t\t...TD(),\n\t\tonLinkClick: n\n\t});\n\treturn /* @__PURE__ */ (0, B.jsx)(ME, {\n\t\tclassName: (0, z.default)(NE.container, t),\n\t\tas: P,\n\t\toptions: {\n\t\t\t...i,\n\t\t\trender: le\n\t\t},\n\t\t...r,\n\t\tchildren: e\n\t});\n}\nvar DD = {\n\tpreview: \"_preview_116w7_8\",\n\tplayButton: \"_playButton_116w7_23\",\n\tcontainer: \"_container_116w7_37\",\n\tinline: \"_inline_116w7_50\",\n\ttitle: \"_title_116w7_55\",\n\tsiteAvatar: \"_siteAvatar_116w7_59\",\n\tsiteName: \"_siteName_116w7_63\",\n\ttextContent: \"_textContent_116w7_68\",\n\tcaption: \"_caption_116w7_78\",\n\tdescription: \"_description_116w7_101\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.tsx\nfunction OD({ title: e, showTooltipOnLink: t, link: n }) {\n\tlet r = new URL(n).toString(), i = /* @__PURE__ */ (0, B.jsx)(P, {\n\t\tas: \"a\",\n\t\ttype: \"body\",\n\t\tweight: \"semibold\",\n\t\tsize: \"md\",\n\t\tclassName: DD.title,\n\t\thref: n,\n\t\ttarget: \"_blank\",\n\t\trel: \"noreferrer noopener\",\n\t\tchildren: e\n\t});\n\treturn t ? /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tlabel: r,\n\t\tchildren: i\n\t}) : i;\n}\nfunction kD({ siteIcon: e, siteName: t }) {\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: DD.siteName,\n\t\tchildren: [e && /* @__PURE__ */ (0, B.jsx)(E, {\n\t\t\tsize: \"16px\",\n\t\t\tname: t,\n\t\t\tid: t,\n\t\t\tsrc: e\n\t\t}), /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\tas: \"span\",\n\t\t\tsize: \"sm\",\n\t\t\tweight: \"regular\",\n\t\t\tchildren: t\n\t\t})]\n\t});\n}\nfunction AD({ title: e, showTooltipOnLink: t, siteIcon: n, siteName: r, link: i }) {\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: (0, z.default)(DD.container, DD.inline),\n\t\tchildren: [n && /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: DD.siteAvatar,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(E, {\n\t\t\t\ttype: \"square\",\n\t\t\t\tsize: \"48px\",\n\t\t\t\tname: e,\n\t\t\t\tid: e,\n\t\t\t\tsrc: n\n\t\t\t})\n\t\t}), /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tclassName: (0, z.default)(DD.textContent, DD.inline),\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(OD, {\n\t\t\t\ttitle: e,\n\t\t\t\tshowTooltipOnLink: t,\n\t\t\t\tlink: i\n\t\t\t}), r && /* @__PURE__ */ (0, B.jsx)(kD, { siteName: r })]\n\t\t})]\n\t});\n}\nfunction jD({ onImageClick: e, ...t }) {\n\tlet { translate: n } = V(), r = h((n) => {\n\t\tn.button != 0 || n.metaKey || (n.preventDefault(), t.image?.imageFull && e());\n\t}, [t.image?.imageFull, e]);\n\tif (!t.image && !t.author && !t.description) return /* @__PURE__ */ (0, B.jsx)(AD, { ...t });\n\tlet i;\n\treturn t.image && (i = t.image.playable ? /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tstyle: { backgroundImage: `url('${t.image.imageThumb}')` },\n\t\tclassName: DD.preview,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\tas: \"a\",\n\t\t\thref: t.link,\n\t\t\t\"aria-label\": n(\"timeline|url_preview|open_link\"),\n\t\t\tclassName: DD.playButton,\n\t\t\ttarget: \"_blank\",\n\t\t\trel: \"noreferrer noopener\",\n\t\t\tkind: \"primary\",\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(ef, {\n\t\t\t\twidth: \"24px\",\n\t\t\t\theight: \"24px\"\n\t\t\t})\n\t\t})\n\t}) : /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\tstyle: { backgroundImage: `url('${t.image.imageThumb}')` },\n\t\tclassName: DD.preview,\n\t\tonClick: r,\n\t\t\"aria-label\": n(\"timeline|url_preview|view_image\")\n\t})), /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: DD.container,\n\t\tchildren: [i, /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tclassName: DD.textContent,\n\t\t\tchildren: [\n\t\t\t\tt.author && /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tas: \"span\",\n\t\t\t\t\tsize: \"md\",\n\t\t\t\t\tweight: \"semibold\",\n\t\t\t\t\tchildren: t.author\n\t\t\t\t}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(OD, {\n\t\t\t\t\ttitle: t.title,\n\t\t\t\t\tshowTooltipOnLink: t.showTooltipOnLink,\n\t\t\t\t\tlink: t.link\n\t\t\t\t}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(ED, {\n\t\t\t\t\ttype: \"body\",\n\t\t\t\t\tsize: \"md\",\n\t\t\t\t\tclassName: DD.description,\n\t\t\t\t\tchildren: t.description\n\t\t\t\t}),\n\t\t\t\tt.siteName && /* @__PURE__ */ (0, B.jsx)(kD, {\n\t\t\t\t\tsiteName: t.siteName,\n\t\t\t\t\tsiteIcon: t.siteIcon\n\t\t\t\t})\n\t\t\t]\n\t\t})]\n\t});\n}\n//#endregion\n//#region src/room/composer/MessageComposerUrlPreview/MessageComposerUrlPreview.tsx\nfunction MD({ vm: e, className: t }) {\n\tlet { previews: n } = U(e);\n\treturn n.length === 0 ? null : /* @__PURE__ */ (0, B.jsx)(B.Fragment, { children: n.slice(0, 1).map((e) => /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: (0, z.default)(t, ww.container),\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", { children: [e?.image?.imageThumb && /* @__PURE__ */ (0, B.jsx)(\"img\", {\n\t\t\tclassName: ww.image,\n\t\t\tsrc: e.image?.imageThumb,\n\t\t\talt: e.image.alt\n\t\t}), /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tclassName: ww.text,\n\t\t\tchildren: [\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(kD, { ...e }),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(OD, { ...e }),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tclassName: ww.description,\n\t\t\t\t\tchildren: e?.description\n\t\t\t\t})\n\t\t\t]\n\t\t})] })\n\t}, e.link)) });\n}\n//#endregion\n//#region src/crypto/SasEmoji/SasEmojiTranslate.ts\nvar ND = new Map((/* @__PURE__ */ JSON.parse(\"[{\\\"number\\\":0,\\\"emoji\\\":\\\"🐶\\\",\\\"description\\\":\\\"Dog\\\",\\\"unicode\\\":\\\"U+1F436\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"كلب\\\",\\\"bg\\\":\\\"Куче\\\",\\\"ca\\\":\\\"Gos\\\",\\\"cs\\\":\\\"Pes\\\",\\\"de\\\":\\\"Hund\\\",\\\"eo\\\":\\\"Hundo\\\",\\\"es\\\":\\\"Perro\\\",\\\"et\\\":\\\"Koer\\\",\\\"fa\\\":\\\"سگ\\\",\\\"fi\\\":\\\"Koira\\\",\\\"fr\\\":\\\"Chien\\\",\\\"hr\\\":\\\"pas\\\",\\\"hu\\\":\\\"Kutya\\\",\\\"id\\\":\\\"Anjing\\\",\\\"it\\\":\\\"Cane\\\",\\\"ja\\\":\\\"犬\\\",\\\"nb_NO\\\":\\\"Hund\\\",\\\"nl\\\":\\\"Hond\\\",\\\"pt\\\":\\\"Cão\\\",\\\"pt_BR\\\":\\\"Cachorro\\\",\\\"ru\\\":\\\"Собака\\\",\\\"si\\\":\\\"බල්ලා\\\",\\\"sk\\\":\\\"Pes\\\",\\\"sq\\\":\\\"Qen\\\",\\\"sr\\\":\\\"пас\\\",\\\"sv\\\":\\\"Hund\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Aydi\\\",\\\"uk\\\":\\\"Пес\\\",\\\"vi\\\":\\\"Chó\\\",\\\"zh_Hans\\\":\\\"狗\\\",\\\"zh_Hant\\\":\\\"狗\\\"}},{\\\"number\\\":1,\\\"emoji\\\":\\\"🐱\\\",\\\"description\\\":\\\"Cat\\\",\\\"unicode\\\":\\\"U+1F431\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"هِرَّة\\\",\\\"bg\\\":\\\"Котка\\\",\\\"ca\\\":\\\"Gat\\\",\\\"cs\\\":\\\"Kočka\\\",\\\"de\\\":\\\"Katze\\\",\\\"eo\\\":\\\"Kato\\\",\\\"es\\\":\\\"Gato\\\",\\\"et\\\":\\\"Kass\\\",\\\"fa\\\":\\\"گربه\\\",\\\"fi\\\":\\\"Kissa\\\",\\\"fr\\\":\\\"Chat\\\",\\\"hr\\\":\\\"mačka\\\",\\\"hu\\\":\\\"Macska\\\",\\\"id\\\":\\\"Kucing\\\",\\\"it\\\":\\\"Gatto\\\",\\\"ja\\\":\\\"猫\\\",\\\"nb_NO\\\":\\\"Katt\\\",\\\"nl\\\":\\\"Kat\\\",\\\"pt\\\":\\\"Gato\\\",\\\"pt_BR\\\":\\\"Gato\\\",\\\"ru\\\":\\\"Кошка\\\",\\\"si\\\":\\\"පූසා\\\",\\\"sk\\\":\\\"Mačka\\\",\\\"sq\\\":\\\"Mace\\\",\\\"sr\\\":\\\"мачка\\\",\\\"sv\\\":\\\"Katt\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Amuc\\\",\\\"uk\\\":\\\"Кіт\\\",\\\"vi\\\":\\\"Mèo\\\",\\\"zh_Hans\\\":\\\"猫\\\",\\\"zh_Hant\\\":\\\"貓\\\"}},{\\\"number\\\":2,\\\"emoji\\\":\\\"🦁\\\",\\\"description\\\":\\\"Lion\\\",\\\"unicode\\\":\\\"U+1F981\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"أَسَد\\\",\\\"bg\\\":\\\"Лъв\\\",\\\"ca\\\":\\\"Lleó\\\",\\\"cs\\\":\\\"Lev\\\",\\\"de\\\":\\\"Löwe\\\",\\\"eo\\\":\\\"Leono\\\",\\\"es\\\":\\\"León\\\",\\\"et\\\":\\\"Lõvi\\\",\\\"fa\\\":\\\"شیر\\\",\\\"fi\\\":\\\"Leijona\\\",\\\"fr\\\":\\\"Lion\\\",\\\"hr\\\":\\\"lav\\\",\\\"hu\\\":\\\"Oroszlán\\\",\\\"id\\\":\\\"Singa\\\",\\\"it\\\":\\\"Leone\\\",\\\"ja\\\":\\\"ライオン\\\",\\\"nb_NO\\\":\\\"Løve\\\",\\\"nl\\\":\\\"Leeuw\\\",\\\"pt\\\":\\\"Leão\\\",\\\"pt_BR\\\":\\\"Leão\\\",\\\"ru\\\":\\\"Лев\\\",\\\"si\\\":\\\"සිංහයා\\\",\\\"sk\\\":\\\"Lev\\\",\\\"sq\\\":\\\"Luan\\\",\\\"sr\\\":\\\"лав\\\",\\\"sv\\\":\\\"Lejon\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Izem\\\",\\\"uk\\\":\\\"Лев\\\",\\\"vi\\\":\\\"Sư tử\\\",\\\"zh_Hans\\\":\\\"狮子\\\",\\\"zh_Hant\\\":\\\"獅子\\\"}},{\\\"number\\\":3,\\\"emoji\\\":\\\"🐎\\\",\\\"description\\\":\\\"Horse\\\",\\\"unicode\\\":\\\"U+1F40E\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"حِصَان\\\",\\\"bg\\\":\\\"Кон\\\",\\\"ca\\\":\\\"Cavall\\\",\\\"cs\\\":\\\"Kůň\\\",\\\"de\\\":\\\"Pferd\\\",\\\"eo\\\":\\\"Ĉevalo\\\",\\\"es\\\":\\\"Caballo\\\",\\\"et\\\":\\\"Hobune\\\",\\\"fa\\\":\\\"اسب\\\",\\\"fi\\\":\\\"Hevonen\\\",\\\"fr\\\":\\\"Cheval\\\",\\\"hr\\\":\\\"konj\\\",\\\"hu\\\":\\\"Ló\\\",\\\"id\\\":\\\"Kuda\\\",\\\"it\\\":\\\"Cavallo\\\",\\\"ja\\\":\\\"馬\\\",\\\"nb_NO\\\":\\\"Hest\\\",\\\"nl\\\":\\\"Paard\\\",\\\"pt\\\":\\\"Cavalo\\\",\\\"pt_BR\\\":\\\"Cavalo\\\",\\\"ru\\\":\\\"Лошадь\\\",\\\"si\\\":\\\"අශ්වයා\\\",\\\"sk\\\":\\\"Kôň\\\",\\\"sq\\\":\\\"Kalë\\\",\\\"sr\\\":\\\"коњ\\\",\\\"sv\\\":\\\"Häst\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Ayyis\\\",\\\"uk\\\":\\\"Кінь\\\",\\\"vi\\\":\\\"Ngựa\\\",\\\"zh_Hans\\\":\\\"马\\\",\\\"zh_Hant\\\":\\\"馬\\\"}},{\\\"number\\\":4,\\\"emoji\\\":\\\"🦄\\\",\\\"description\\\":\\\"Unicorn\\\",\\\"unicode\\\":\\\"U+1F984\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"حصان وحيد القرن\\\",\\\"bg\\\":\\\"Еднорог\\\",\\\"ca\\\":\\\"Unicorn\\\",\\\"cs\\\":\\\"Jednorožec\\\",\\\"de\\\":\\\"Einhorn\\\",\\\"eo\\\":\\\"Unukorno\\\",\\\"es\\\":\\\"Unicornio\\\",\\\"et\\\":\\\"Ükssarvik\\\",\\\"fa\\\":\\\"تک شاخ\\\",\\\"fi\\\":\\\"Yksisarvinen\\\",\\\"fr\\\":\\\"Licorne\\\",\\\"hr\\\":\\\"jednorog\\\",\\\"hu\\\":\\\"Egyszarvú\\\",\\\"id\\\":\\\"Unicorn\\\",\\\"it\\\":\\\"Unicorno\\\",\\\"ja\\\":\\\"ユニコーン\\\",\\\"nb_NO\\\":\\\"Enhjørning\\\",\\\"nl\\\":\\\"Eenhoorn\\\",\\\"pt\\\":\\\"Unicórnio\\\",\\\"pt_BR\\\":\\\"Unicórnio\\\",\\\"ru\\\":\\\"Единорог\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Jednorožec\\\",\\\"sq\\\":\\\"Njëbrirësh\\\",\\\"sr\\\":\\\"једнорог\\\",\\\"sv\\\":\\\"Enhörning\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Єдиноріг\\\",\\\"vi\\\":\\\"Kỳ lân\\\",\\\"zh_Hans\\\":\\\"独角兽\\\",\\\"zh_Hant\\\":\\\"獨角獸\\\"}},{\\\"number\\\":5,\\\"emoji\\\":\\\"🐷\\\",\\\"description\\\":\\\"Pig\\\",\\\"unicode\\\":\\\"U+1F437\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"خِنزِير\\\",\\\"bg\\\":\\\"Прасе\\\",\\\"ca\\\":\\\"Porc\\\",\\\"cs\\\":\\\"Prase\\\",\\\"de\\\":\\\"Schwein\\\",\\\"eo\\\":\\\"Porko\\\",\\\"es\\\":\\\"Cerdo\\\",\\\"et\\\":\\\"Siga\\\",\\\"fa\\\":\\\"خوک\\\",\\\"fi\\\":\\\"Sika\\\",\\\"fr\\\":\\\"Cochon\\\",\\\"hr\\\":\\\"svinja\\\",\\\"hu\\\":\\\"Malac\\\",\\\"id\\\":\\\"Babi\\\",\\\"it\\\":\\\"Maiale\\\",\\\"ja\\\":\\\"ブタ\\\",\\\"nb_NO\\\":\\\"Gris\\\",\\\"nl\\\":\\\"Varken\\\",\\\"pt\\\":\\\"Porco\\\",\\\"pt_BR\\\":\\\"Porco\\\",\\\"ru\\\":\\\"Свинья\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Prasa\\\",\\\"sq\\\":\\\"Derr\\\",\\\"sr\\\":\\\"прасе\\\",\\\"sv\\\":\\\"Gris\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Ilef\\\",\\\"uk\\\":\\\"Свиня\\\",\\\"vi\\\":\\\"Heo\\\",\\\"zh_Hans\\\":\\\"猪\\\",\\\"zh_Hant\\\":\\\"豬\\\"}},{\\\"number\\\":6,\\\"emoji\\\":\\\"🐘\\\",\\\"description\\\":\\\"Elephant\\\",\\\"unicode\\\":\\\"U+1F418\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"فِيل\\\",\\\"bg\\\":\\\"Слон\\\",\\\"ca\\\":\\\"Elefant\\\",\\\"cs\\\":\\\"Slon\\\",\\\"de\\\":\\\"Elefant\\\",\\\"eo\\\":\\\"Elefanto\\\",\\\"es\\\":\\\"Elefante\\\",\\\"et\\\":\\\"Elevant\\\",\\\"fa\\\":\\\"فیل\\\",\\\"fi\\\":\\\"Norsu\\\",\\\"fr\\\":\\\"Éléphant\\\",\\\"hr\\\":\\\"slon\\\",\\\"hu\\\":\\\"Elefánt\\\",\\\"id\\\":\\\"Gajah\\\",\\\"it\\\":\\\"Elefante\\\",\\\"ja\\\":\\\"ゾウ\\\",\\\"nb_NO\\\":\\\"Elefant\\\",\\\"nl\\\":\\\"Olifant\\\",\\\"pt\\\":\\\"Elefante\\\",\\\"pt_BR\\\":\\\"Elefante\\\",\\\"ru\\\":\\\"Слон\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Slon\\\",\\\"sq\\\":\\\"Elefant\\\",\\\"sr\\\":\\\"слон\\\",\\\"sv\\\":\\\"Elefant\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Ilu\\\",\\\"uk\\\":\\\"Слон\\\",\\\"vi\\\":\\\"Voi\\\",\\\"zh_Hans\\\":\\\"大象\\\",\\\"zh_Hant\\\":\\\"大象\\\"}},{\\\"number\\\":7,\\\"emoji\\\":\\\"🐰\\\",\\\"description\\\":\\\"Rabbit\\\",\\\"unicode\\\":\\\"U+1F430\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"أَرنَب\\\",\\\"bg\\\":\\\"Заек\\\",\\\"ca\\\":\\\"Conill\\\",\\\"cs\\\":\\\"Králík\\\",\\\"de\\\":\\\"Hase\\\",\\\"eo\\\":\\\"Kuniklo\\\",\\\"es\\\":\\\"Conejo\\\",\\\"et\\\":\\\"Jänes\\\",\\\"fa\\\":\\\"خرگوش\\\",\\\"fi\\\":\\\"Kani\\\",\\\"fr\\\":\\\"Lapin\\\",\\\"hr\\\":\\\"zec\\\",\\\"hu\\\":\\\"Nyúl\\\",\\\"id\\\":\\\"Kelinci\\\",\\\"it\\\":\\\"Coniglio\\\",\\\"ja\\\":\\\"うさぎ\\\",\\\"nb_NO\\\":\\\"Kanin\\\",\\\"nl\\\":\\\"Konijn\\\",\\\"pt\\\":\\\"Coelho\\\",\\\"pt_BR\\\":\\\"Coelho\\\",\\\"ru\\\":\\\"Кролик\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Zajac\\\",\\\"sq\\\":\\\"Lepur\\\",\\\"sr\\\":\\\"зец\\\",\\\"sv\\\":\\\"Kanin\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Agnin\\\",\\\"uk\\\":\\\"Кріль\\\",\\\"vi\\\":\\\"Thỏ\\\",\\\"zh_Hans\\\":\\\"兔子\\\",\\\"zh_Hant\\\":\\\"兔子\\\"}},{\\\"number\\\":8,\\\"emoji\\\":\\\"🐼\\\",\\\"description\\\":\\\"Panda\\\",\\\"unicode\\\":\\\"U+1F43C\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"باندَا\\\",\\\"bg\\\":\\\"Панда\\\",\\\"ca\\\":\\\"Panda\\\",\\\"cs\\\":\\\"Panda\\\",\\\"de\\\":\\\"Panda\\\",\\\"eo\\\":\\\"Pando\\\",\\\"es\\\":\\\"Panda\\\",\\\"et\\\":\\\"Panda\\\",\\\"fa\\\":\\\"پاندا\\\",\\\"fi\\\":\\\"Panda\\\",\\\"fr\\\":\\\"Panda\\\",\\\"hr\\\":\\\"panda\\\",\\\"hu\\\":\\\"Panda\\\",\\\"id\\\":\\\"Panda\\\",\\\"it\\\":\\\"Panda\\\",\\\"ja\\\":\\\"パンダ\\\",\\\"nb_NO\\\":\\\"Panda\\\",\\\"nl\\\":\\\"Panda\\\",\\\"pt\\\":\\\"Panda\\\",\\\"pt_BR\\\":\\\"Panda\\\",\\\"ru\\\":\\\"Панда\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Panda\\\",\\\"sq\\\":\\\"Panda\\\",\\\"sr\\\":\\\"панда\\\",\\\"sv\\\":\\\"Panda\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Панда\\\",\\\"vi\\\":\\\"Gấu trúc\\\",\\\"zh_Hans\\\":\\\"熊猫\\\",\\\"zh_Hant\\\":\\\"熊貓\\\"}},{\\\"number\\\":9,\\\"emoji\\\":\\\"🐓\\\",\\\"description\\\":\\\"Rooster\\\",\\\"unicode\\\":\\\"U+1F413\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"دِيك\\\",\\\"bg\\\":\\\"Петел\\\",\\\"ca\\\":\\\"Gall\\\",\\\"cs\\\":\\\"Kohout\\\",\\\"de\\\":\\\"Hahn\\\",\\\"eo\\\":\\\"Virkoko\\\",\\\"es\\\":\\\"Gallo\\\",\\\"et\\\":\\\"Kukk\\\",\\\"fa\\\":\\\"خروس\\\",\\\"fi\\\":\\\"Kukko\\\",\\\"fr\\\":\\\"Coq\\\",\\\"hr\\\":\\\"kokot\\\",\\\"hu\\\":\\\"Kakas\\\",\\\"id\\\":\\\"Ayam\\\",\\\"it\\\":\\\"Gallo\\\",\\\"ja\\\":\\\"ニワトリ\\\",\\\"nb_NO\\\":\\\"Hane\\\",\\\"nl\\\":\\\"Haan\\\",\\\"pt\\\":\\\"Galo\\\",\\\"pt_BR\\\":\\\"Galo\\\",\\\"ru\\\":\\\"Петух\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Kohút\\\",\\\"sq\\\":\\\"Këndes\\\",\\\"sr\\\":\\\"петао\\\",\\\"sv\\\":\\\"Tupp\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Ayaẓiḍ\\\",\\\"uk\\\":\\\"Когут\\\",\\\"vi\\\":\\\"Gà trống\\\",\\\"zh_Hans\\\":\\\"公鸡\\\",\\\"zh_Hant\\\":\\\"公雞\\\"}},{\\\"number\\\":10,\\\"emoji\\\":\\\"🐧\\\",\\\"description\\\":\\\"Penguin\\\",\\\"unicode\\\":\\\"U+1F427\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"بطريق\\\",\\\"bg\\\":\\\"Пингвин\\\",\\\"ca\\\":\\\"Pingüí\\\",\\\"cs\\\":\\\"Tučňák\\\",\\\"de\\\":\\\"Pinguin\\\",\\\"eo\\\":\\\"Pingveno\\\",\\\"es\\\":\\\"Pingüino\\\",\\\"et\\\":\\\"Pingviin\\\",\\\"fa\\\":\\\"پنگوئن\\\",\\\"fi\\\":\\\"Pingviini\\\",\\\"fr\\\":\\\"Manchot\\\",\\\"hr\\\":\\\"pingvin\\\",\\\"hu\\\":\\\"Pingvin\\\",\\\"id\\\":\\\"Penguin\\\",\\\"it\\\":\\\"Pinguino\\\",\\\"ja\\\":\\\"ペンギン\\\",\\\"nb_NO\\\":\\\"Pingvin\\\",\\\"nl\\\":\\\"Pinguïn\\\",\\\"pt\\\":\\\"Pinguim\\\",\\\"pt_BR\\\":\\\"Pinguim\\\",\\\"ru\\\":\\\"Пингвин\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Tučniak\\\",\\\"sq\\\":\\\"Pinguin\\\",\\\"sr\\\":\\\"пингвин\\\",\\\"sv\\\":\\\"Pingvin\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Пінгвін\\\",\\\"vi\\\":\\\"Chim cánh cụt\\\",\\\"zh_Hans\\\":\\\"企鹅\\\",\\\"zh_Hant\\\":\\\"企鵝\\\"}},{\\\"number\\\":11,\\\"emoji\\\":\\\"🐢\\\",\\\"description\\\":\\\"Turtle\\\",\\\"unicode\\\":\\\"U+1F422\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"سُلحفاة\\\",\\\"bg\\\":\\\"Костенурка\\\",\\\"ca\\\":\\\"Tortuga\\\",\\\"cs\\\":\\\"Želva\\\",\\\"de\\\":\\\"Schildkröte\\\",\\\"eo\\\":\\\"Testudo\\\",\\\"es\\\":\\\"Tortuga\\\",\\\"et\\\":\\\"Kilpkonn\\\",\\\"fa\\\":\\\"لاک‌پشت\\\",\\\"fi\\\":\\\"Kilpikonna\\\",\\\"fr\\\":\\\"Tortue\\\",\\\"hr\\\":\\\"kornjača\\\",\\\"hu\\\":\\\"Teknős\\\",\\\"id\\\":\\\"Kura-Kura\\\",\\\"it\\\":\\\"Tartaruga\\\",\\\"ja\\\":\\\"亀\\\",\\\"nb_NO\\\":\\\"Skilpadde\\\",\\\"nl\\\":\\\"Schildpad\\\",\\\"pt\\\":\\\"Tartaruga\\\",\\\"pt_BR\\\":\\\"Tartaruga\\\",\\\"ru\\\":\\\"Черепаха\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Korytnačka\\\",\\\"sq\\\":\\\"Breshkë\\\",\\\"sr\\\":\\\"корњача\\\",\\\"sv\\\":\\\"Sköldpadda\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Ifker\\\",\\\"uk\\\":\\\"Черепаха\\\",\\\"vi\\\":\\\"Rùa\\\",\\\"zh_Hans\\\":\\\"乌龟\\\",\\\"zh_Hant\\\":\\\"烏龜\\\"}},{\\\"number\\\":12,\\\"emoji\\\":\\\"🐟\\\",\\\"description\\\":\\\"Fish\\\",\\\"unicode\\\":\\\"U+1F41F\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"سَمَكة\\\",\\\"bg\\\":\\\"Риба\\\",\\\"ca\\\":\\\"Peix\\\",\\\"cs\\\":\\\"Ryba\\\",\\\"de\\\":\\\"Fisch\\\",\\\"eo\\\":\\\"Fiŝo\\\",\\\"es\\\":\\\"Pez\\\",\\\"et\\\":\\\"Kala\\\",\\\"fa\\\":\\\"ماهی\\\",\\\"fi\\\":\\\"Kala\\\",\\\"fr\\\":\\\"Poisson\\\",\\\"hr\\\":\\\"riba\\\",\\\"hu\\\":\\\"Hal\\\",\\\"id\\\":\\\"Ikan\\\",\\\"it\\\":\\\"Pesce\\\",\\\"ja\\\":\\\"魚\\\",\\\"nb_NO\\\":\\\"Fisk\\\",\\\"nl\\\":\\\"Vis\\\",\\\"pt\\\":\\\"Peixe\\\",\\\"pt_BR\\\":\\\"Peixe\\\",\\\"ru\\\":\\\"Рыба\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Ryba\\\",\\\"sq\\\":\\\"Peshk\\\",\\\"sr\\\":\\\"риба\\\",\\\"sv\\\":\\\"Fisk\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Aselm\\\",\\\"uk\\\":\\\"Риба\\\",\\\"vi\\\":\\\"Cá\\\",\\\"zh_Hans\\\":\\\"鱼\\\",\\\"zh_Hant\\\":\\\"魚\\\"}},{\\\"number\\\":13,\\\"emoji\\\":\\\"🐙\\\",\\\"description\\\":\\\"Octopus\\\",\\\"unicode\\\":\\\"U+1F419\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"أُخطُبُوط\\\",\\\"bg\\\":\\\"Октопод\\\",\\\"ca\\\":\\\"Pop\\\",\\\"cs\\\":\\\"Chobotnice\\\",\\\"de\\\":\\\"Oktopus\\\",\\\"eo\\\":\\\"Polpo\\\",\\\"es\\\":\\\"Pulpo\\\",\\\"et\\\":\\\"Kaheksajalg\\\",\\\"fa\\\":\\\"اختاپوس\\\",\\\"fi\\\":\\\"Tursas\\\",\\\"fr\\\":\\\"Poulpe\\\",\\\"hr\\\":\\\"hobotnica\\\",\\\"hu\\\":\\\"Polip\\\",\\\"id\\\":\\\"Gurita\\\",\\\"it\\\":\\\"Polpo\\\",\\\"ja\\\":\\\"たこ\\\",\\\"nb_NO\\\":\\\"Blekksprut\\\",\\\"nl\\\":\\\"Octopus\\\",\\\"pt\\\":\\\"Polvo\\\",\\\"pt_BR\\\":\\\"Polvo\\\",\\\"ru\\\":\\\"Осьминог\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Chobotnica\\\",\\\"sq\\\":\\\"Oktapod\\\",\\\"sr\\\":\\\"октопод\\\",\\\"sv\\\":\\\"Bläckfisk\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Восьминіг\\\",\\\"vi\\\":\\\"Bạch tuộc\\\",\\\"zh_Hans\\\":\\\"章鱼\\\",\\\"zh_Hant\\\":\\\"章魚\\\"}},{\\\"number\\\":14,\\\"emoji\\\":\\\"🦋\\\",\\\"description\\\":\\\"Butterfly\\\",\\\"unicode\\\":\\\"U+1F98B\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"فَرَاشَة\\\",\\\"bg\\\":\\\"Пеперуда\\\",\\\"ca\\\":\\\"Papallona\\\",\\\"cs\\\":\\\"Motýl\\\",\\\"de\\\":\\\"Schmetterling\\\",\\\"eo\\\":\\\"Papilio\\\",\\\"es\\\":\\\"Mariposa\\\",\\\"et\\\":\\\"Liblikas\\\",\\\"fa\\\":\\\"پروانه\\\",\\\"fi\\\":\\\"Perhonen\\\",\\\"fr\\\":\\\"Papillon\\\",\\\"hr\\\":\\\"leptir\\\",\\\"hu\\\":\\\"Pillangó\\\",\\\"id\\\":\\\"Kupu-Kupu\\\",\\\"it\\\":\\\"Farfalla\\\",\\\"ja\\\":\\\"ちょうちょ\\\",\\\"nb_NO\\\":\\\"Sommerfugl\\\",\\\"nl\\\":\\\"Vlinder\\\",\\\"pt\\\":\\\"Borboleta\\\",\\\"pt_BR\\\":\\\"Borboleta\\\",\\\"ru\\\":\\\"Бабочка\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Motýľ\\\",\\\"sq\\\":\\\"Flutur\\\",\\\"sr\\\":\\\"лептир\\\",\\\"sv\\\":\\\"Fjäril\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Метелик\\\",\\\"vi\\\":\\\"Bướm\\\",\\\"zh_Hans\\\":\\\"蝴蝶\\\",\\\"zh_Hant\\\":\\\"蝴蝶\\\"}},{\\\"number\\\":15,\\\"emoji\\\":\\\"🌷\\\",\\\"description\\\":\\\"Flower\\\",\\\"unicode\\\":\\\"U+1F337\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"زَهرَة\\\",\\\"bg\\\":\\\"Цвете\\\",\\\"ca\\\":\\\"Flor\\\",\\\"cs\\\":\\\"Květina\\\",\\\"de\\\":\\\"Blume\\\",\\\"eo\\\":\\\"Floro\\\",\\\"es\\\":\\\"Flor\\\",\\\"et\\\":\\\"Lill\\\",\\\"fa\\\":\\\"گل\\\",\\\"fi\\\":\\\"Kukka\\\",\\\"fr\\\":\\\"Fleur\\\",\\\"hr\\\":\\\"svijet\\\",\\\"hu\\\":\\\"Virág\\\",\\\"id\\\":\\\"Bunga\\\",\\\"it\\\":\\\"Fiore\\\",\\\"ja\\\":\\\"花\\\",\\\"nb_NO\\\":\\\"Blomst\\\",\\\"nl\\\":\\\"Bloem\\\",\\\"pt\\\":\\\"Flor\\\",\\\"pt_BR\\\":\\\"Flor\\\",\\\"ru\\\":\\\"Цветок\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Kvet\\\",\\\"sq\\\":\\\"Lule\\\",\\\"sr\\\":\\\"цвет\\\",\\\"sv\\\":\\\"Blomma\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Квітка\\\",\\\"vi\\\":\\\"Hoa\\\",\\\"zh_Hans\\\":\\\"花\\\",\\\"zh_Hant\\\":\\\"花\\\"}},{\\\"number\\\":16,\\\"emoji\\\":\\\"🌳\\\",\\\"description\\\":\\\"Tree\\\",\\\"unicode\\\":\\\"U+1F333\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"شَجَرَة\\\",\\\"bg\\\":\\\"Дърво\\\",\\\"ca\\\":\\\"Arbre\\\",\\\"cs\\\":\\\"Strom\\\",\\\"de\\\":\\\"Baum\\\",\\\"eo\\\":\\\"Arbo\\\",\\\"es\\\":\\\"Árbol\\\",\\\"et\\\":\\\"Puu\\\",\\\"fa\\\":\\\"درخت\\\",\\\"fi\\\":\\\"Puu\\\",\\\"fr\\\":\\\"Arbre\\\",\\\"hr\\\":\\\"drvo\\\",\\\"hu\\\":\\\"Fa\\\",\\\"id\\\":\\\"Pohon\\\",\\\"it\\\":\\\"Albero\\\",\\\"ja\\\":\\\"木\\\",\\\"nb_NO\\\":\\\"Tre\\\",\\\"nl\\\":\\\"Boom\\\",\\\"pt\\\":\\\"Árvore\\\",\\\"pt_BR\\\":\\\"Árvore\\\",\\\"ru\\\":\\\"Дерево\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Strom\\\",\\\"sq\\\":\\\"Pemë\\\",\\\"sr\\\":\\\"дрво\\\",\\\"sv\\\":\\\"Träd\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Aseklu\\\",\\\"uk\\\":\\\"Дерево\\\",\\\"vi\\\":\\\"Cây\\\",\\\"zh_Hans\\\":\\\"树\\\",\\\"zh_Hant\\\":\\\"樹\\\"}},{\\\"number\\\":17,\\\"emoji\\\":\\\"🌵\\\",\\\"description\\\":\\\"Cactus\\\",\\\"unicode\\\":\\\"U+1F335\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"صبار\\\",\\\"bg\\\":\\\"Кактус\\\",\\\"ca\\\":\\\"Cactus\\\",\\\"cs\\\":\\\"Kaktus\\\",\\\"de\\\":\\\"Kaktus\\\",\\\"eo\\\":\\\"Kakto\\\",\\\"es\\\":\\\"Cactus\\\",\\\"et\\\":\\\"Kaktus\\\",\\\"fa\\\":\\\"کاکتوس\\\",\\\"fi\\\":\\\"Kaktus\\\",\\\"fr\\\":\\\"Cactus\\\",\\\"hr\\\":\\\"kaktus\\\",\\\"hu\\\":\\\"Kaktusz\\\",\\\"id\\\":\\\"Kaktus\\\",\\\"it\\\":\\\"Cactus\\\",\\\"ja\\\":\\\"サボテン\\\",\\\"nb_NO\\\":\\\"Kaktus\\\",\\\"nl\\\":\\\"Cactus\\\",\\\"pt\\\":\\\"Cato\\\",\\\"pt_BR\\\":\\\"Cacto\\\",\\\"ru\\\":\\\"Кактус\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Kaktus\\\",\\\"sq\\\":\\\"Kaktus\\\",\\\"sr\\\":\\\"кактус\\\",\\\"sv\\\":\\\"Kaktus\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Кактус\\\",\\\"vi\\\":\\\"Xương rồng\\\",\\\"zh_Hans\\\":\\\"仙人掌\\\",\\\"zh_Hant\\\":\\\"仙人掌\\\"}},{\\\"number\\\":18,\\\"emoji\\\":\\\"🍄\\\",\\\"description\\\":\\\"Mushroom\\\",\\\"unicode\\\":\\\"U+1F344\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"فُطر\\\",\\\"bg\\\":\\\"Гъба\\\",\\\"ca\\\":\\\"Bolet\\\",\\\"cs\\\":\\\"Houba\\\",\\\"de\\\":\\\"Pilz\\\",\\\"eo\\\":\\\"Fungo\\\",\\\"es\\\":\\\"Seta\\\",\\\"et\\\":\\\"Seen\\\",\\\"fa\\\":\\\"قارچ\\\",\\\"fi\\\":\\\"Sieni\\\",\\\"fr\\\":\\\"Champignon\\\",\\\"hr\\\":\\\"gljiva\\\",\\\"hu\\\":\\\"Gomba\\\",\\\"id\\\":\\\"Jamur\\\",\\\"it\\\":\\\"Fungo\\\",\\\"ja\\\":\\\"きのこ\\\",\\\"nb_NO\\\":\\\"Sopp\\\",\\\"nl\\\":\\\"Paddenstoel\\\",\\\"pt\\\":\\\"Cogumelo\\\",\\\"pt_BR\\\":\\\"Cogumelo\\\",\\\"ru\\\":\\\"Гриб\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Huba\\\",\\\"sq\\\":\\\"Kërpudhë\\\",\\\"sr\\\":\\\"печурка\\\",\\\"sv\\\":\\\"Svamp\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Agursel\\\",\\\"uk\\\":\\\"Гриб\\\",\\\"vi\\\":\\\"Nấm\\\",\\\"zh_Hans\\\":\\\"蘑菇\\\",\\\"zh_Hant\\\":\\\"蘑菇\\\"}},{\\\"number\\\":19,\\\"emoji\\\":\\\"🌏\\\",\\\"description\\\":\\\"Globe\\\",\\\"unicode\\\":\\\"U+1F30F\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"كُرَةٌ أرضِيَّة\\\",\\\"bg\\\":\\\"Глобус\\\",\\\"ca\\\":\\\"Globus terraqüi\\\",\\\"cs\\\":\\\"Zeměkoule\\\",\\\"de\\\":\\\"Globus\\\",\\\"eo\\\":\\\"Globo\\\",\\\"es\\\":\\\"Globo\\\",\\\"et\\\":\\\"Maakera\\\",\\\"fa\\\":\\\"زمین\\\",\\\"fi\\\":\\\"Maapallo\\\",\\\"fr\\\":\\\"Globe\\\",\\\"hr\\\":\\\"Globus\\\",\\\"hu\\\":\\\"Földgömb\\\",\\\"id\\\":\\\"Bola Dunia\\\",\\\"it\\\":\\\"Globo\\\",\\\"ja\\\":\\\"地球\\\",\\\"nb_NO\\\":\\\"Globus\\\",\\\"nl\\\":\\\"Wereldbol\\\",\\\"pt\\\":\\\"Globo\\\",\\\"pt_BR\\\":\\\"Globo\\\",\\\"ru\\\":\\\"Глобус\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Zemeguľa\\\",\\\"sq\\\":\\\"Rruzull\\\",\\\"sr\\\":\\\"глобус\\\",\\\"sv\\\":\\\"Jordklot\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Глобус\\\",\\\"vi\\\":\\\"Địa cầu\\\",\\\"zh_Hans\\\":\\\"地球\\\",\\\"zh_Hant\\\":\\\"地球\\\"}},{\\\"number\\\":20,\\\"emoji\\\":\\\"🌙\\\",\\\"description\\\":\\\"Moon\\\",\\\"unicode\\\":\\\"U+1F319\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"قَمَر\\\",\\\"bg\\\":\\\"Луна\\\",\\\"ca\\\":\\\"Lluna\\\",\\\"cs\\\":\\\"Měsíc\\\",\\\"de\\\":\\\"Mond\\\",\\\"eo\\\":\\\"Luno\\\",\\\"es\\\":\\\"Luna\\\",\\\"et\\\":\\\"Kuu\\\",\\\"fa\\\":\\\"ماه\\\",\\\"fi\\\":\\\"Kuu\\\",\\\"fr\\\":\\\"Lune\\\",\\\"hr\\\":\\\"mjesec\\\",\\\"hu\\\":\\\"Hold\\\",\\\"id\\\":\\\"Bulan\\\",\\\"it\\\":\\\"Luna\\\",\\\"ja\\\":\\\"月\\\",\\\"nb_NO\\\":\\\"Måne\\\",\\\"nl\\\":\\\"Maan\\\",\\\"pt\\\":\\\"Lua\\\",\\\"pt_BR\\\":\\\"Lua\\\",\\\"ru\\\":\\\"Луна\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Mesiac\\\",\\\"sq\\\":\\\"Hënë\\\",\\\"sr\\\":\\\"месец\\\",\\\"sv\\\":\\\"Måne\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Ayyur\\\",\\\"uk\\\":\\\"Місяць\\\",\\\"vi\\\":\\\"Mặt trăng\\\",\\\"zh_Hans\\\":\\\"月亮\\\",\\\"zh_Hant\\\":\\\"月亮\\\"}},{\\\"number\\\":21,\\\"emoji\\\":\\\"☁️\\\",\\\"description\\\":\\\"Cloud\\\",\\\"unicode\\\":\\\"U+2601U+FE0F\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"سَحابَة\\\",\\\"bg\\\":\\\"Облак\\\",\\\"ca\\\":\\\"Núvol\\\",\\\"cs\\\":\\\"Mrak\\\",\\\"de\\\":\\\"Wolke\\\",\\\"eo\\\":\\\"Nubo\\\",\\\"es\\\":\\\"Nube\\\",\\\"et\\\":\\\"Pilv\\\",\\\"fa\\\":\\\"ابر\\\",\\\"fi\\\":\\\"Pilvi\\\",\\\"fr\\\":\\\"Nuage\\\",\\\"hr\\\":\\\"oblak\\\",\\\"hu\\\":\\\"Felhő\\\",\\\"id\\\":\\\"Awan\\\",\\\"it\\\":\\\"Nuvola\\\",\\\"ja\\\":\\\"雲\\\",\\\"nb_NO\\\":\\\"Sky\\\",\\\"nl\\\":\\\"Wolk\\\",\\\"pt\\\":\\\"Nuvem\\\",\\\"pt_BR\\\":\\\"Nuvem\\\",\\\"ru\\\":\\\"Облако\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Oblak\\\",\\\"sq\\\":\\\"Re\\\",\\\"sr\\\":\\\"облак\\\",\\\"sv\\\":\\\"Moln\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Хмара\\\",\\\"vi\\\":\\\"Mây\\\",\\\"zh_Hans\\\":\\\"云\\\",\\\"zh_Hant\\\":\\\"雲朵\\\"}},{\\\"number\\\":22,\\\"emoji\\\":\\\"🔥\\\",\\\"description\\\":\\\"Fire\\\",\\\"unicode\\\":\\\"U+1F525\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"نار\\\",\\\"bg\\\":\\\"Огън\\\",\\\"ca\\\":\\\"Foc\\\",\\\"cs\\\":\\\"Oheň\\\",\\\"de\\\":\\\"Feuer\\\",\\\"eo\\\":\\\"Fajro\\\",\\\"es\\\":\\\"Fuego\\\",\\\"et\\\":\\\"Tuli\\\",\\\"fa\\\":\\\"آتش\\\",\\\"fi\\\":\\\"Tuli\\\",\\\"fr\\\":\\\"Feu\\\",\\\"hr\\\":\\\"vatra\\\",\\\"hu\\\":\\\"Tűz\\\",\\\"id\\\":\\\"Api\\\",\\\"it\\\":\\\"Fuoco\\\",\\\"ja\\\":\\\"炎\\\",\\\"nb_NO\\\":\\\"Flamme\\\",\\\"nl\\\":\\\"Vuur\\\",\\\"pt\\\":\\\"Fogo\\\",\\\"pt_BR\\\":\\\"Fogo\\\",\\\"ru\\\":\\\"Огонь\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Oheň\\\",\\\"sq\\\":\\\"Zjarr\\\",\\\"sr\\\":\\\"ватра\\\",\\\"sv\\\":\\\"Eld\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Timessi\\\",\\\"uk\\\":\\\"Вогонь\\\",\\\"vi\\\":\\\"Lửa\\\",\\\"zh_Hans\\\":\\\"火\\\",\\\"zh_Hant\\\":\\\"火\\\"}},{\\\"number\\\":23,\\\"emoji\\\":\\\"🍌\\\",\\\"description\\\":\\\"Banana\\\",\\\"unicode\\\":\\\"U+1F34C\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مَوزَة\\\",\\\"bg\\\":\\\"Банан\\\",\\\"ca\\\":\\\"Plàtan\\\",\\\"cs\\\":\\\"Banán\\\",\\\"de\\\":\\\"Banane\\\",\\\"eo\\\":\\\"Banano\\\",\\\"es\\\":\\\"Plátano\\\",\\\"et\\\":\\\"Banaan\\\",\\\"fa\\\":\\\"موز\\\",\\\"fi\\\":\\\"Banaani\\\",\\\"fr\\\":\\\"Banane\\\",\\\"hr\\\":\\\"banana\\\",\\\"hu\\\":\\\"Banán\\\",\\\"id\\\":\\\"Pisang\\\",\\\"it\\\":\\\"Banana\\\",\\\"ja\\\":\\\"バナナ\\\",\\\"nb_NO\\\":\\\"Banan\\\",\\\"nl\\\":\\\"Banaan\\\",\\\"pt\\\":\\\"Banana\\\",\\\"pt_BR\\\":\\\"Banana\\\",\\\"ru\\\":\\\"Банан\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Banán\\\",\\\"sq\\\":\\\"Banane\\\",\\\"sr\\\":\\\"банана\\\",\\\"sv\\\":\\\"Banan\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Tabanant\\\",\\\"uk\\\":\\\"Банан\\\",\\\"vi\\\":\\\"Chuối\\\",\\\"zh_Hans\\\":\\\"香蕉\\\",\\\"zh_Hant\\\":\\\"香蕉\\\"}},{\\\"number\\\":24,\\\"emoji\\\":\\\"🍎\\\",\\\"description\\\":\\\"Apple\\\",\\\"unicode\\\":\\\"U+1F34E\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"تُفَّاحَة\\\",\\\"bg\\\":\\\"Ябълка\\\",\\\"ca\\\":\\\"Poma\\\",\\\"cs\\\":\\\"Jablko\\\",\\\"de\\\":\\\"Apfel\\\",\\\"eo\\\":\\\"Pomo\\\",\\\"es\\\":\\\"Manzana\\\",\\\"et\\\":\\\"Õun\\\",\\\"fa\\\":\\\"سیب\\\",\\\"fi\\\":\\\"Omena\\\",\\\"fr\\\":\\\"Pomme\\\",\\\"hr\\\":\\\"jabuka\\\",\\\"hu\\\":\\\"Alma\\\",\\\"id\\\":\\\"Apel\\\",\\\"it\\\":\\\"Mela\\\",\\\"ja\\\":\\\"リンゴ\\\",\\\"nb_NO\\\":\\\"Eple\\\",\\\"nl\\\":\\\"Appel\\\",\\\"pt\\\":\\\"Maçã\\\",\\\"pt_BR\\\":\\\"Maçã\\\",\\\"ru\\\":\\\"Яблоко\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Jablko\\\",\\\"sq\\\":\\\"Mollë\\\",\\\"sr\\\":\\\"јабука\\\",\\\"sv\\\":\\\"Äpple\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Tadeffuyt\\\",\\\"uk\\\":\\\"Яблуко\\\",\\\"vi\\\":\\\"Táo\\\",\\\"zh_Hans\\\":\\\"苹果\\\",\\\"zh_Hant\\\":\\\"蘋果\\\"}},{\\\"number\\\":25,\\\"emoji\\\":\\\"🍓\\\",\\\"description\\\":\\\"Strawberry\\\",\\\"unicode\\\":\\\"U+1F353\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"فَراوِلَة\\\",\\\"bg\\\":\\\"Ягода\\\",\\\"ca\\\":\\\"Maduixa\\\",\\\"cs\\\":\\\"Jahoda\\\",\\\"de\\\":\\\"Erdbeere\\\",\\\"eo\\\":\\\"Frago\\\",\\\"es\\\":\\\"Fresa\\\",\\\"et\\\":\\\"Maasikas\\\",\\\"fa\\\":\\\"توت فرنگی\\\",\\\"fi\\\":\\\"Mansikka\\\",\\\"fr\\\":\\\"Fraise\\\",\\\"hr\\\":\\\"jagoda\\\",\\\"hu\\\":\\\"Eper\\\",\\\"id\\\":\\\"Stroberi\\\",\\\"it\\\":\\\"Fragola\\\",\\\"ja\\\":\\\"いちご\\\",\\\"nb_NO\\\":\\\"Jordbær\\\",\\\"nl\\\":\\\"Aardbei\\\",\\\"pt\\\":\\\"Morango\\\",\\\"pt_BR\\\":\\\"Morango\\\",\\\"ru\\\":\\\"Клубника\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Jahoda\\\",\\\"sq\\\":\\\"Luleshtrydhe\\\",\\\"sr\\\":\\\"јагода\\\",\\\"sv\\\":\\\"Jordgubbe\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Полуниця\\\",\\\"vi\\\":\\\"Dâu tây\\\",\\\"zh_Hans\\\":\\\"草莓\\\",\\\"zh_Hant\\\":\\\"草莓\\\"}},{\\\"number\\\":26,\\\"emoji\\\":\\\"🌽\\\",\\\"description\\\":\\\"Corn\\\",\\\"unicode\\\":\\\"U+1F33D\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"ذُرَة\\\",\\\"bg\\\":\\\"Царевица\\\",\\\"ca\\\":\\\"Blat de moro\\\",\\\"cs\\\":\\\"Kukuřice\\\",\\\"de\\\":\\\"Mais\\\",\\\"eo\\\":\\\"Maizo\\\",\\\"es\\\":\\\"Maíz\\\",\\\"et\\\":\\\"Mais\\\",\\\"fa\\\":\\\"ذرت\\\",\\\"fi\\\":\\\"Maissi\\\",\\\"fr\\\":\\\"Maïs\\\",\\\"hr\\\":\\\"kukuruza\\\",\\\"hu\\\":\\\"Kukorica\\\",\\\"id\\\":\\\"Jagung\\\",\\\"it\\\":\\\"Mais\\\",\\\"ja\\\":\\\"とうもろこし\\\",\\\"nb_NO\\\":\\\"Mais\\\",\\\"nl\\\":\\\"Maïs\\\",\\\"pt\\\":\\\"Milho\\\",\\\"pt_BR\\\":\\\"Milho\\\",\\\"ru\\\":\\\"Кукуруза\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Kukurica\\\",\\\"sq\\\":\\\"Misër\\\",\\\"sr\\\":\\\"кукуруз\\\",\\\"sv\\\":\\\"Majs\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Кукурудза\\\",\\\"vi\\\":\\\"Bắp\\\",\\\"zh_Hans\\\":\\\"玉米\\\",\\\"zh_Hant\\\":\\\"玉米\\\"}},{\\\"number\\\":27,\\\"emoji\\\":\\\"🍕\\\",\\\"description\\\":\\\"Pizza\\\",\\\"unicode\\\":\\\"U+1F355\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"بِيتزا\\\",\\\"bg\\\":\\\"Пица\\\",\\\"ca\\\":\\\"Pizza\\\",\\\"cs\\\":\\\"Pizza\\\",\\\"de\\\":\\\"Pizza\\\",\\\"eo\\\":\\\"Pico\\\",\\\"es\\\":\\\"Pizza\\\",\\\"et\\\":\\\"Pitsa\\\",\\\"fa\\\":\\\"پیتزا\\\",\\\"fi\\\":\\\"Pizza\\\",\\\"fr\\\":\\\"Pizza\\\",\\\"hr\\\":\\\"pizza\\\",\\\"hu\\\":\\\"Pizza\\\",\\\"id\\\":\\\"Pizza\\\",\\\"it\\\":\\\"Pizza\\\",\\\"ja\\\":\\\"ピザ\\\",\\\"nb_NO\\\":\\\"Pizza\\\",\\\"nl\\\":\\\"Pizza\\\",\\\"pt\\\":\\\"Piza\\\",\\\"pt_BR\\\":\\\"Pizza\\\",\\\"ru\\\":\\\"Пицца\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Pizza\\\",\\\"sq\\\":\\\"Picë\\\",\\\"sr\\\":\\\"пица\\\",\\\"sv\\\":\\\"Pizza\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Піца\\\",\\\"vi\\\":\\\"Pizza\\\",\\\"zh_Hans\\\":\\\"披萨\\\",\\\"zh_Hant\\\":\\\"披薩\\\"}},{\\\"number\\\":28,\\\"emoji\\\":\\\"🎂\\\",\\\"description\\\":\\\"Cake\\\",\\\"unicode\\\":\\\"U+1F382\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"كَعكَة\\\",\\\"bg\\\":\\\"Торта\\\",\\\"ca\\\":\\\"Pastís\\\",\\\"cs\\\":\\\"Dort\\\",\\\"de\\\":\\\"Kuchen\\\",\\\"eo\\\":\\\"Torto\\\",\\\"es\\\":\\\"Tarta\\\",\\\"et\\\":\\\"Kook\\\",\\\"fa\\\":\\\"کیک\\\",\\\"fi\\\":\\\"Kakku\\\",\\\"fr\\\":\\\"Gâteau\\\",\\\"hr\\\":\\\"torta\\\",\\\"hu\\\":\\\"Süti\\\",\\\"id\\\":\\\"Kue\\\",\\\"it\\\":\\\"Torta\\\",\\\"ja\\\":\\\"ケーキ\\\",\\\"nb_NO\\\":\\\"Kake\\\",\\\"nl\\\":\\\"Taart\\\",\\\"pt\\\":\\\"Bolo\\\",\\\"pt_BR\\\":\\\"Bolo\\\",\\\"ru\\\":\\\"Торт\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Torta\\\",\\\"sq\\\":\\\"Tortë\\\",\\\"sr\\\":\\\"торта\\\",\\\"sv\\\":\\\"Tårta\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Пиріг\\\",\\\"vi\\\":\\\"Bánh\\\",\\\"zh_Hans\\\":\\\"蛋糕\\\",\\\"zh_Hant\\\":\\\"蛋糕\\\"}},{\\\"number\\\":29,\\\"emoji\\\":\\\"❤️\\\",\\\"description\\\":\\\"Heart\\\",\\\"unicode\\\":\\\"U+2764U+FE0F\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"قَلب\\\",\\\"bg\\\":\\\"Сърце\\\",\\\"ca\\\":\\\"Cor\\\",\\\"cs\\\":\\\"Srdce\\\",\\\"de\\\":\\\"Herz\\\",\\\"eo\\\":\\\"Koro\\\",\\\"es\\\":\\\"Corazón\\\",\\\"et\\\":\\\"Süda\\\",\\\"fa\\\":\\\"قلب\\\",\\\"fi\\\":\\\"Sydän\\\",\\\"fr\\\":\\\"Cœur\\\",\\\"hr\\\":\\\"srca\\\",\\\"hu\\\":\\\"Szív\\\",\\\"id\\\":\\\"Hati\\\",\\\"it\\\":\\\"Cuore\\\",\\\"ja\\\":\\\"ハート\\\",\\\"nb_NO\\\":\\\"Hjerte\\\",\\\"nl\\\":\\\"Hart\\\",\\\"pt\\\":\\\"Coração\\\",\\\"pt_BR\\\":\\\"Coração\\\",\\\"ru\\\":\\\"Сердце\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Srdce\\\",\\\"sq\\\":\\\"Zemër\\\",\\\"sr\\\":\\\"срце\\\",\\\"sv\\\":\\\"Hjärta\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Ul\\\",\\\"uk\\\":\\\"Серце\\\",\\\"vi\\\":\\\"Tim\\\",\\\"zh_Hans\\\":\\\"心\\\",\\\"zh_Hant\\\":\\\"愛心\\\"}},{\\\"number\\\":30,\\\"emoji\\\":\\\"😀\\\",\\\"description\\\":\\\"Smiley\\\",\\\"unicode\\\":\\\"U+1F600\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"اِبتِسَامَة\\\",\\\"bg\\\":\\\"Усмивка\\\",\\\"ca\\\":\\\"Somrient\\\",\\\"cs\\\":\\\"Smajlík\\\",\\\"de\\\":\\\"Lächeln\\\",\\\"eo\\\":\\\"Rideto\\\",\\\"es\\\":\\\"Emoticono\\\",\\\"et\\\":\\\"Smaili\\\",\\\"fa\\\":\\\"خنده\\\",\\\"fi\\\":\\\"Hymynaama\\\",\\\"fr\\\":\\\"Sourire\\\",\\\"hr\\\":\\\"smajlića\\\",\\\"hu\\\":\\\"Mosoly\\\",\\\"id\\\":\\\"Senyuman\\\",\\\"it\\\":\\\"Faccina sorridente\\\",\\\"ja\\\":\\\"スマイル\\\",\\\"nb_NO\\\":\\\"Smilefjes\\\",\\\"nl\\\":\\\"Smiley\\\",\\\"pt\\\":\\\"Sorriso\\\",\\\"pt_BR\\\":\\\"Sorriso\\\",\\\"ru\\\":\\\"Улыбка\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Smajlík\\\",\\\"sq\\\":\\\"Emotikon\\\",\\\"sr\\\":\\\"смајли\\\",\\\"sv\\\":\\\"Smiley\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Посмішка\\\",\\\"vi\\\":\\\"Mặt cười\\\",\\\"zh_Hans\\\":\\\"笑脸\\\",\\\"zh_Hant\\\":\\\"笑臉\\\"}},{\\\"number\\\":31,\\\"emoji\\\":\\\"🤖\\\",\\\"description\\\":\\\"Robot\\\",\\\"unicode\\\":\\\"U+1F916\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"رُوبُوت\\\",\\\"bg\\\":\\\"Робот\\\",\\\"ca\\\":\\\"Robot\\\",\\\"cs\\\":\\\"Robot\\\",\\\"de\\\":\\\"Roboter\\\",\\\"eo\\\":\\\"Roboto\\\",\\\"es\\\":\\\"Robot\\\",\\\"et\\\":\\\"Robot\\\",\\\"fa\\\":\\\"ربات\\\",\\\"fi\\\":\\\"Robotti\\\",\\\"fr\\\":\\\"Robot\\\",\\\"hr\\\":\\\"robot\\\",\\\"hu\\\":\\\"Robot\\\",\\\"id\\\":\\\"Robot\\\",\\\"it\\\":\\\"Robot\\\",\\\"ja\\\":\\\"ロボット\\\",\\\"nb_NO\\\":\\\"Robot\\\",\\\"nl\\\":\\\"Robot\\\",\\\"pt\\\":\\\"Robô\\\",\\\"pt_BR\\\":\\\"Robô\\\",\\\"ru\\\":\\\"Робот\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Robot\\\",\\\"sq\\\":\\\"Robot\\\",\\\"sr\\\":\\\"робот\\\",\\\"sv\\\":\\\"Robot\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Aṛubu\\\",\\\"uk\\\":\\\"Робот\\\",\\\"vi\\\":\\\"Rô-bô\\\",\\\"zh_Hans\\\":\\\"机器人\\\",\\\"zh_Hant\\\":\\\"機器人\\\"}},{\\\"number\\\":32,\\\"emoji\\\":\\\"🎩\\\",\\\"description\\\":\\\"Hat\\\",\\\"unicode\\\":\\\"U+1F3A9\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"قُبَّعَة\\\",\\\"bg\\\":\\\"Шапка\\\",\\\"ca\\\":\\\"Barret\\\",\\\"cs\\\":\\\"Klobouk\\\",\\\"de\\\":\\\"Hut\\\",\\\"eo\\\":\\\"Ĉapelo\\\",\\\"es\\\":\\\"Sombrero\\\",\\\"et\\\":\\\"Kübar\\\",\\\"fa\\\":\\\"کلاه\\\",\\\"fi\\\":\\\"Hattu\\\",\\\"fr\\\":\\\"Chapeau\\\",\\\"hr\\\":\\\"kapa\\\",\\\"hu\\\":\\\"Kalap\\\",\\\"id\\\":\\\"Topi\\\",\\\"it\\\":\\\"Cappello\\\",\\\"ja\\\":\\\"帽子\\\",\\\"nb_NO\\\":\\\"Hatt\\\",\\\"nl\\\":\\\"Hoed\\\",\\\"pt\\\":\\\"Chapéu\\\",\\\"pt_BR\\\":\\\"Chapéu\\\",\\\"ru\\\":\\\"Шляпа\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Klobúk\\\",\\\"sq\\\":\\\"Kapë\\\",\\\"sr\\\":\\\"шешир\\\",\\\"sv\\\":\\\"Hatt\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Taraza\\\",\\\"uk\\\":\\\"Капелюх\\\",\\\"vi\\\":\\\"Mũ\\\",\\\"zh_Hans\\\":\\\"帽子\\\",\\\"zh_Hant\\\":\\\"帽子\\\"}},{\\\"number\\\":33,\\\"emoji\\\":\\\"👓\\\",\\\"description\\\":\\\"Glasses\\\",\\\"unicode\\\":\\\"U+1F453\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"نَظَّارَة\\\",\\\"bg\\\":\\\"Очила\\\",\\\"ca\\\":\\\"Ulleres\\\",\\\"cs\\\":\\\"Brýle\\\",\\\"de\\\":\\\"Brille\\\",\\\"eo\\\":\\\"Okulvitroj\\\",\\\"es\\\":\\\"Gafas\\\",\\\"et\\\":\\\"Prillid\\\",\\\"fa\\\":\\\"عینک\\\",\\\"fi\\\":\\\"Silmälasit\\\",\\\"fr\\\":\\\"Lunettes\\\",\\\"hr\\\":\\\"naočale\\\",\\\"hu\\\":\\\"Szemüveg\\\",\\\"id\\\":\\\"Kacamata\\\",\\\"it\\\":\\\"Occhiali\\\",\\\"ja\\\":\\\"めがね\\\",\\\"nb_NO\\\":\\\"Briller\\\",\\\"nl\\\":\\\"Bril\\\",\\\"pt\\\":\\\"Óculos\\\",\\\"pt_BR\\\":\\\"Óculos\\\",\\\"ru\\\":\\\"Очки\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Okuliare\\\",\\\"sq\\\":\\\"Syze\\\",\\\"sr\\\":\\\"наочаре\\\",\\\"sv\\\":\\\"Glasögon\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Окуляри\\\",\\\"vi\\\":\\\"Kính mắt\\\",\\\"zh_Hans\\\":\\\"眼镜\\\",\\\"zh_Hant\\\":\\\"眼鏡\\\"}},{\\\"number\\\":34,\\\"emoji\\\":\\\"🔧\\\",\\\"description\\\":\\\"Spanner\\\",\\\"unicode\\\":\\\"U+1F527\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مِفتَاحُ رَبط\\\",\\\"bg\\\":\\\"Гаечен ключ\\\",\\\"ca\\\":\\\"Clau anglesa\\\",\\\"cs\\\":\\\"Klíč\\\",\\\"de\\\":\\\"Schraubenschlüssel\\\",\\\"eo\\\":\\\"Ŝraŭbŝlosilo\\\",\\\"es\\\":\\\"Llave inglesa\\\",\\\"et\\\":\\\"Mutrivõti\\\",\\\"fa\\\":\\\"آچار\\\",\\\"fi\\\":\\\"Kiintoavain\\\",\\\"fr\\\":\\\"Clé à molette\\\",\\\"hr\\\":\\\"ključ\\\",\\\"hu\\\":\\\"Csavarkulcs\\\",\\\"id\\\":\\\"Kunci Bengkel\\\",\\\"it\\\":\\\"Chiave inglese\\\",\\\"ja\\\":\\\"スパナ\\\",\\\"nb_NO\\\":\\\"Fastnøkkel\\\",\\\"nl\\\":\\\"Moersleutel\\\",\\\"pt\\\":\\\"Chave inglesa\\\",\\\"pt_BR\\\":\\\"Chave inglesa\\\",\\\"ru\\\":\\\"Ключ\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Vidlicový kľúč\\\",\\\"sq\\\":\\\"Çelës\\\",\\\"sr\\\":\\\"кључ\\\",\\\"sv\\\":\\\"Skruvnyckel\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Гайковий ключ\\\",\\\"vi\\\":\\\"Cờ-lê\\\",\\\"zh_Hans\\\":\\\"扳手\\\",\\\"zh_Hant\\\":\\\"扳手\\\"}},{\\\"number\\\":35,\\\"emoji\\\":\\\"🎅\\\",\\\"description\\\":\\\"Santa\\\",\\\"unicode\\\":\\\"U+1F385\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"سانتا\\\",\\\"bg\\\":\\\"Дядо Коледа\\\",\\\"ca\\\":\\\"Pare Noél\\\",\\\"cs\\\":\\\"Mikuláš\\\",\\\"de\\\":\\\"Weihnachtsmann\\\",\\\"eo\\\":\\\"Kristnaska viro\\\",\\\"es\\\":\\\"Papá Noel\\\",\\\"et\\\":\\\"Jõuluvana\\\",\\\"fa\\\":\\\"بابا نوئل\\\",\\\"fi\\\":\\\"Joulupukki\\\",\\\"fr\\\":\\\"Père Noël\\\",\\\"hr\\\":\\\"deda Mraz\\\",\\\"hu\\\":\\\"Télapó\\\",\\\"id\\\":\\\"Santa\\\",\\\"it\\\":\\\"Babbo Natale\\\",\\\"ja\\\":\\\"サンタ\\\",\\\"nb_NO\\\":\\\"Julenisse\\\",\\\"nl\\\":\\\"Kerstman\\\",\\\"pt\\\":\\\"Pai Natal\\\",\\\"pt_BR\\\":\\\"Papai-noel\\\",\\\"ru\\\":\\\"Санта\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Mikuláš\\\",\\\"sq\\\":\\\"Babagjyshi i Vitit të Ri\\\",\\\"sr\\\":\\\"деда Мраз\\\",\\\"sv\\\":\\\"Tomte\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Санта Клаус\\\",\\\"vi\\\":\\\"ông già Nô-en\\\",\\\"zh_Hans\\\":\\\"圣诞老人\\\",\\\"zh_Hant\\\":\\\"聖誕老人\\\"}},{\\\"number\\\":36,\\\"emoji\\\":\\\"👍\\\",\\\"description\\\":\\\"Thumbs Up\\\",\\\"unicode\\\":\\\"U+1F44D\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"رَفعُ إِبهَام\\\",\\\"bg\\\":\\\"Палец нагоре\\\",\\\"ca\\\":\\\"Polzes amunt\\\",\\\"cs\\\":\\\"Palec nahoru\\\",\\\"de\\\":\\\"Daumen Hoch\\\",\\\"eo\\\":\\\"Dikfingro supren\\\",\\\"es\\\":\\\"Pulgar arriba\\\",\\\"et\\\":\\\"Pöidlad püsti\\\",\\\"fa\\\":\\\"لایک\\\",\\\"fi\\\":\\\"Peukalo ylös\\\",\\\"fr\\\":\\\"Pouce en l’air\\\",\\\"hr\\\":\\\"palac gore\\\",\\\"hu\\\":\\\"Hüvelykujj fel\\\",\\\"id\\\":\\\"Jempol\\\",\\\"it\\\":\\\"Pollice alzato\\\",\\\"ja\\\":\\\"いいね\\\",\\\"nb_NO\\\":\\\"Tommel Opp\\\",\\\"nl\\\":\\\"Duim omhoog\\\",\\\"pt\\\":\\\"Polegar para cima\\\",\\\"pt_BR\\\":\\\"Joinha\\\",\\\"ru\\\":\\\"Большой палец вверх\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Palec nahor\\\",\\\"sq\\\":null,\\\"sr\\\":\\\"палчић горе\\\",\\\"sv\\\":\\\"Tummen upp\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Великий палець вгору\\\",\\\"vi\\\":\\\"Thích\\\",\\\"zh_Hans\\\":\\\"赞\\\",\\\"zh_Hant\\\":\\\"讚\\\"}},{\\\"number\\\":37,\\\"emoji\\\":\\\"☂️\\\",\\\"description\\\":\\\"Umbrella\\\",\\\"unicode\\\":\\\"U+2602U+FE0F\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مِظَلَّة\\\",\\\"bg\\\":\\\"Чадър\\\",\\\"ca\\\":\\\"Paraigües\\\",\\\"cs\\\":\\\"Deštník\\\",\\\"de\\\":\\\"Regenschirm\\\",\\\"eo\\\":\\\"Ombrelo\\\",\\\"es\\\":\\\"Paraguas\\\",\\\"et\\\":\\\"Vihmavari\\\",\\\"fa\\\":\\\"چتر\\\",\\\"fi\\\":\\\"Sateenvarjo\\\",\\\"fr\\\":\\\"Parapluie\\\",\\\"hr\\\":\\\"kišobran\\\",\\\"hu\\\":\\\"Esernyő\\\",\\\"id\\\":\\\"Payung\\\",\\\"it\\\":\\\"Ombrello\\\",\\\"ja\\\":\\\"傘\\\",\\\"nb_NO\\\":\\\"Paraply\\\",\\\"nl\\\":\\\"Paraplu\\\",\\\"pt\\\":\\\"Guarda-chuva\\\",\\\"pt_BR\\\":\\\"Guarda-chuva\\\",\\\"ru\\\":\\\"Зонт\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Dáždnik\\\",\\\"sq\\\":\\\"Ombrellë\\\",\\\"sr\\\":\\\"кишобран\\\",\\\"sv\\\":\\\"Paraply\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Парасолька\\\",\\\"vi\\\":\\\"Cái ô\\\",\\\"zh_Hans\\\":\\\"伞\\\",\\\"zh_Hant\\\":\\\"雨傘\\\"}},{\\\"number\\\":38,\\\"emoji\\\":\\\"⌛\\\",\\\"description\\\":\\\"Hourglass\\\",\\\"unicode\\\":\\\"U+231B\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"سَاعَةٌ رَملِيَّة\\\",\\\"bg\\\":\\\"Пясъчен часовник\\\",\\\"ca\\\":\\\"Rellotge de sorra\\\",\\\"cs\\\":\\\"Přesýpací hodiny\\\",\\\"de\\\":\\\"Sanduhr\\\",\\\"eo\\\":\\\"Sablohorloĝo\\\",\\\"es\\\":\\\"Reloj de arena\\\",\\\"et\\\":\\\"Liivakell\\\",\\\"fa\\\":\\\"ساعت شنی\\\",\\\"fi\\\":\\\"Tiimalasi\\\",\\\"fr\\\":\\\"Sablier\\\",\\\"hr\\\":\\\"pješčani sat\\\",\\\"hu\\\":\\\"Homokóra\\\",\\\"id\\\":\\\"Jam Pasir\\\",\\\"it\\\":\\\"Clessidra\\\",\\\"ja\\\":\\\"砂時計\\\",\\\"nb_NO\\\":\\\"Timeglass\\\",\\\"nl\\\":\\\"Zandloper\\\",\\\"pt\\\":\\\"Ampulheta\\\",\\\"pt_BR\\\":\\\"Ampulheta\\\",\\\"ru\\\":\\\"Песочные часы\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Presýpacie hodiny\\\",\\\"sq\\\":\\\"Klepsidër\\\",\\\"sr\\\":\\\"пешчаник\\\",\\\"sv\\\":\\\"Timglas\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Пісковий годинник\\\",\\\"vi\\\":\\\"Đồng hồ cát\\\",\\\"zh_Hans\\\":\\\"沙漏\\\",\\\"zh_Hant\\\":\\\"沙漏\\\"}},{\\\"number\\\":39,\\\"emoji\\\":\\\"⏰\\\",\\\"description\\\":\\\"Clock\\\",\\\"unicode\\\":\\\"U+23F0\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"سَاعَة\\\",\\\"bg\\\":\\\"Часовник\\\",\\\"ca\\\":\\\"Rellotge\\\",\\\"cs\\\":\\\"Hodiny\\\",\\\"de\\\":\\\"Uhr\\\",\\\"eo\\\":\\\"Horloĝo\\\",\\\"es\\\":\\\"Reloj\\\",\\\"et\\\":\\\"Kell\\\",\\\"fa\\\":\\\"ساعت\\\",\\\"fi\\\":\\\"Pöytäkello\\\",\\\"fr\\\":\\\"Réveil\\\",\\\"hr\\\":\\\"sat\\\",\\\"hu\\\":\\\"Óra\\\",\\\"id\\\":\\\"Jam\\\",\\\"it\\\":\\\"Orologio\\\",\\\"ja\\\":\\\"時計\\\",\\\"nb_NO\\\":\\\"Klokke\\\",\\\"nl\\\":\\\"Wekker\\\",\\\"pt\\\":\\\"Relógio\\\",\\\"pt_BR\\\":\\\"Relógio\\\",\\\"ru\\\":\\\"Часы\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Budík\\\",\\\"sq\\\":\\\"Sahat\\\",\\\"sr\\\":\\\"сат\\\",\\\"sv\\\":\\\"Klocka\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Годинник\\\",\\\"vi\\\":\\\"Đồng hồ\\\",\\\"zh_Hans\\\":\\\"时钟\\\",\\\"zh_Hant\\\":\\\"時鐘\\\"}},{\\\"number\\\":40,\\\"emoji\\\":\\\"🎁\\\",\\\"description\\\":\\\"Gift\\\",\\\"unicode\\\":\\\"U+1F381\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"هَدِيَّة\\\",\\\"bg\\\":\\\"Подарък\\\",\\\"ca\\\":\\\"Regal\\\",\\\"cs\\\":\\\"Dárek\\\",\\\"de\\\":\\\"Geschenk\\\",\\\"eo\\\":\\\"Donaco\\\",\\\"es\\\":\\\"Regalo\\\",\\\"et\\\":\\\"Kingitus\\\",\\\"fa\\\":\\\"هدیه\\\",\\\"fi\\\":\\\"Lahja\\\",\\\"fr\\\":\\\"Cadeau\\\",\\\"hr\\\":\\\"poklon\\\",\\\"hu\\\":\\\"Ajándék\\\",\\\"id\\\":\\\"Kado\\\",\\\"it\\\":\\\"Regalo\\\",\\\"ja\\\":\\\"ギフト\\\",\\\"nb_NO\\\":\\\"Gave\\\",\\\"nl\\\":\\\"Geschenk\\\",\\\"pt\\\":\\\"Presente\\\",\\\"pt_BR\\\":\\\"Presente\\\",\\\"ru\\\":\\\"Подарок\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Darček\\\",\\\"sq\\\":\\\"Dhuratë\\\",\\\"sr\\\":\\\"поклон\\\",\\\"sv\\\":\\\"Present\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Подарунок\\\",\\\"vi\\\":\\\"Quà tặng\\\",\\\"zh_Hans\\\":\\\"礼物\\\",\\\"zh_Hant\\\":\\\"禮物\\\"}},{\\\"number\\\":41,\\\"emoji\\\":\\\"💡\\\",\\\"description\\\":\\\"Light Bulb\\\",\\\"unicode\\\":\\\"U+1F4A1\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مِصبَاح\\\",\\\"bg\\\":\\\"Лампа\\\",\\\"ca\\\":\\\"Bombeta\\\",\\\"cs\\\":\\\"Žárovka\\\",\\\"de\\\":\\\"Glühbirne\\\",\\\"eo\\\":\\\"Lampo\\\",\\\"es\\\":\\\"Bombilla\\\",\\\"et\\\":\\\"Lambipirn\\\",\\\"fa\\\":\\\"لامپ\\\",\\\"fi\\\":\\\"Hehkulamppu\\\",\\\"fr\\\":\\\"Ampoule\\\",\\\"hr\\\":\\\"žarulja\\\",\\\"hu\\\":\\\"Égő\\\",\\\"id\\\":\\\"Bohlam Lampu\\\",\\\"it\\\":\\\"Lampadina\\\",\\\"ja\\\":\\\"電球\\\",\\\"nb_NO\\\":\\\"Lyspære\\\",\\\"nl\\\":\\\"Gloeilamp\\\",\\\"pt\\\":\\\"Lâmpada\\\",\\\"pt_BR\\\":\\\"Lâmpada\\\",\\\"ru\\\":\\\"Лампочка\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Žiarovka\\\",\\\"sq\\\":\\\"Llambë\\\",\\\"sr\\\":\\\"сијалица\\\",\\\"sv\\\":\\\"Lampa\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Лампочка\\\",\\\"vi\\\":\\\"Bóng đèn tròn\\\",\\\"zh_Hans\\\":\\\"灯泡\\\",\\\"zh_Hant\\\":\\\"燈泡\\\"}},{\\\"number\\\":42,\\\"emoji\\\":\\\"📕\\\",\\\"description\\\":\\\"Book\\\",\\\"unicode\\\":\\\"U+1F4D5\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"كِتَاب\\\",\\\"bg\\\":\\\"Книга\\\",\\\"ca\\\":\\\"Llibre\\\",\\\"cs\\\":\\\"Kniha\\\",\\\"de\\\":\\\"Buch\\\",\\\"eo\\\":\\\"Libro\\\",\\\"es\\\":\\\"Libro\\\",\\\"et\\\":\\\"Raamat\\\",\\\"fa\\\":\\\"کتاب\\\",\\\"fi\\\":\\\"Kirja\\\",\\\"fr\\\":\\\"Livre\\\",\\\"hr\\\":\\\"knjiga\\\",\\\"hu\\\":\\\"Könyv\\\",\\\"id\\\":\\\"Buku\\\",\\\"it\\\":\\\"Libro\\\",\\\"ja\\\":\\\"本\\\",\\\"nb_NO\\\":\\\"Bok\\\",\\\"nl\\\":\\\"Boek\\\",\\\"pt\\\":\\\"Livro\\\",\\\"pt_BR\\\":\\\"Livro\\\",\\\"ru\\\":\\\"Книга\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Kniha\\\",\\\"sq\\\":\\\"Libër\\\",\\\"sr\\\":\\\"књига\\\",\\\"sv\\\":\\\"Bok\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Adlis\\\",\\\"uk\\\":\\\"Книга\\\",\\\"vi\\\":\\\"Sách\\\",\\\"zh_Hans\\\":\\\"书\\\",\\\"zh_Hant\\\":\\\"書\\\"}},{\\\"number\\\":43,\\\"emoji\\\":\\\"✏️\\\",\\\"description\\\":\\\"Pencil\\\",\\\"unicode\\\":\\\"U+270FU+FE0F\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"قَلَمُ رَصاص\\\",\\\"bg\\\":\\\"Молив\\\",\\\"ca\\\":\\\"Llapis\\\",\\\"cs\\\":\\\"Tužka\\\",\\\"de\\\":\\\"Bleistift\\\",\\\"eo\\\":\\\"Krajono\\\",\\\"es\\\":\\\"Lápiz\\\",\\\"et\\\":\\\"Pliiats\\\",\\\"fa\\\":\\\"مداد\\\",\\\"fi\\\":\\\"Lyijykynä\\\",\\\"fr\\\":\\\"Crayon\\\",\\\"hr\\\":\\\"olovka\\\",\\\"hu\\\":\\\"Ceruza\\\",\\\"id\\\":\\\"Pensil\\\",\\\"it\\\":\\\"Matita\\\",\\\"ja\\\":\\\"鉛筆\\\",\\\"nb_NO\\\":\\\"Blyant\\\",\\\"nl\\\":\\\"Potlood\\\",\\\"pt\\\":\\\"Lápis\\\",\\\"pt_BR\\\":\\\"Lápis\\\",\\\"ru\\\":\\\"Карандаш\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Ceruzka\\\",\\\"sq\\\":\\\"Laps\\\",\\\"sr\\\":\\\"оловка\\\",\\\"sv\\\":\\\"Penna\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Олівець\\\",\\\"vi\\\":\\\"Viết chì\\\",\\\"zh_Hans\\\":\\\"铅笔\\\",\\\"zh_Hant\\\":\\\"鉛筆\\\"}},{\\\"number\\\":44,\\\"emoji\\\":\\\"📎\\\",\\\"description\\\":\\\"Paperclip\\\",\\\"unicode\\\":\\\"U+1F4CE\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مِشبَكُ وَرَق\\\",\\\"bg\\\":\\\"Кламер\\\",\\\"ca\\\":\\\"Clip\\\",\\\"cs\\\":\\\"Sponka\\\",\\\"de\\\":\\\"Büroklammer\\\",\\\"eo\\\":\\\"Paperkuntenilo\\\",\\\"es\\\":\\\"Clip\\\",\\\"et\\\":\\\"Kirjaklamber\\\",\\\"fa\\\":\\\"گیره کاغذ\\\",\\\"fi\\\":\\\"Paperiliitin\\\",\\\"fr\\\":\\\"Trombone\\\",\\\"hr\\\":\\\"spajalica\\\",\\\"hu\\\":\\\"Gémkapocs\\\",\\\"id\\\":\\\"Klip Kertas\\\",\\\"it\\\":\\\"Graffetta\\\",\\\"ja\\\":\\\"クリップ\\\",\\\"nb_NO\\\":\\\"BInders\\\",\\\"nl\\\":\\\"Papierklemmetje\\\",\\\"pt\\\":\\\"Clipe\\\",\\\"pt_BR\\\":\\\"Clipe de papel\\\",\\\"ru\\\":\\\"Скрепка\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Kancelárska sponka\\\",\\\"sq\\\":\\\"Kapëse\\\",\\\"sr\\\":\\\"спајалица\\\",\\\"sv\\\":\\\"Gem\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Спиначка\\\",\\\"vi\\\":\\\"Kẹp giấy\\\",\\\"zh_Hans\\\":\\\"回形针\\\",\\\"zh_Hant\\\":\\\"迴紋針\\\"}},{\\\"number\\\":45,\\\"emoji\\\":\\\"✂️\\\",\\\"description\\\":\\\"Scissors\\\",\\\"unicode\\\":\\\"U+2702U+FE0F\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مِقَصّ\\\",\\\"bg\\\":\\\"Ножици\\\",\\\"ca\\\":\\\"Tisores\\\",\\\"cs\\\":\\\"Nůžky\\\",\\\"de\\\":\\\"Schere\\\",\\\"eo\\\":\\\"Tondilo\\\",\\\"es\\\":\\\"Tijeras\\\",\\\"et\\\":\\\"Käärid\\\",\\\"fa\\\":\\\"قیچی\\\",\\\"fi\\\":\\\"Sakset\\\",\\\"fr\\\":\\\"Ciseaux\\\",\\\"hr\\\":\\\"škare\\\",\\\"hu\\\":\\\"Olló\\\",\\\"id\\\":\\\"Gunting\\\",\\\"it\\\":\\\"Forbici\\\",\\\"ja\\\":\\\"はさみ\\\",\\\"nb_NO\\\":\\\"Saks\\\",\\\"nl\\\":\\\"Schaar\\\",\\\"pt\\\":\\\"Tesoura\\\",\\\"pt_BR\\\":\\\"Tesoura\\\",\\\"ru\\\":\\\"Ножницы\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Nožnice\\\",\\\"sq\\\":\\\"Gërshërë\\\",\\\"sr\\\":\\\"маказе\\\",\\\"sv\\\":\\\"Sax\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Ножиці\\\",\\\"vi\\\":\\\"Cái kéo\\\",\\\"zh_Hans\\\":\\\"剪刀\\\",\\\"zh_Hant\\\":\\\"剪刀\\\"}},{\\\"number\\\":46,\\\"emoji\\\":\\\"🔒\\\",\\\"description\\\":\\\"Lock\\\",\\\"unicode\\\":\\\"U+1F512\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"قُفل\\\",\\\"bg\\\":\\\"Катинар\\\",\\\"ca\\\":\\\"Cadenat\\\",\\\"cs\\\":\\\"Zámek\\\",\\\"de\\\":\\\"Schloss\\\",\\\"eo\\\":\\\"Seruro\\\",\\\"es\\\":\\\"Candado\\\",\\\"et\\\":\\\"Lukk\\\",\\\"fa\\\":\\\"قفل\\\",\\\"fi\\\":\\\"Lukko\\\",\\\"fr\\\":\\\"Cadenas\\\",\\\"hr\\\":\\\"zaključati\\\",\\\"hu\\\":\\\"Lakat\\\",\\\"id\\\":\\\"Gembok\\\",\\\"it\\\":\\\"Lucchetto\\\",\\\"ja\\\":\\\"錠前\\\",\\\"nb_NO\\\":\\\"Lås\\\",\\\"nl\\\":\\\"Slot\\\",\\\"pt\\\":\\\"Cadeado\\\",\\\"pt_BR\\\":\\\"Cadeado\\\",\\\"ru\\\":\\\"Замок\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Zámka\\\",\\\"sq\\\":\\\"Dry\\\",\\\"sr\\\":\\\"катанац\\\",\\\"sv\\\":\\\"Lås\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Замок\\\",\\\"vi\\\":\\\"Ổ khóa\\\",\\\"zh_Hans\\\":\\\"锁\\\",\\\"zh_Hant\\\":\\\"鎖頭\\\"}},{\\\"number\\\":47,\\\"emoji\\\":\\\"🔑\\\",\\\"description\\\":\\\"Key\\\",\\\"unicode\\\":\\\"U+1F511\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مِفتَاح\\\",\\\"bg\\\":\\\"Ключ\\\",\\\"ca\\\":\\\"Clau\\\",\\\"cs\\\":\\\"Klíč ke dveřím\\\",\\\"de\\\":\\\"Schlüssel\\\",\\\"eo\\\":\\\"Ŝlosilo\\\",\\\"es\\\":\\\"Llave\\\",\\\"et\\\":\\\"Võti\\\",\\\"fa\\\":\\\"کلید\\\",\\\"fi\\\":\\\"Avain\\\",\\\"fr\\\":\\\"Clé\\\",\\\"hr\\\":\\\"ključ\\\",\\\"hu\\\":\\\"Kulcs\\\",\\\"id\\\":\\\"Kunci\\\",\\\"it\\\":\\\"Chiave\\\",\\\"ja\\\":\\\"鍵\\\",\\\"nb_NO\\\":\\\"Nøkkel\\\",\\\"nl\\\":\\\"Sleutel\\\",\\\"pt\\\":\\\"Chave\\\",\\\"pt_BR\\\":\\\"Chave\\\",\\\"ru\\\":\\\"Ключ\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Kľúč\\\",\\\"sq\\\":\\\"Çelës\\\",\\\"sr\\\":\\\"кључ\\\",\\\"sv\\\":\\\"Nyckel\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Tasarut\\\",\\\"uk\\\":\\\"Ключ\\\",\\\"vi\\\":\\\"Chìa khóa\\\",\\\"zh_Hans\\\":\\\"钥匙\\\",\\\"zh_Hant\\\":\\\"鑰匙\\\"}},{\\\"number\\\":48,\\\"emoji\\\":\\\"🔨\\\",\\\"description\\\":\\\"Hammer\\\",\\\"unicode\\\":\\\"U+1F528\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مِطرَقَة\\\",\\\"bg\\\":\\\"Чук\\\",\\\"ca\\\":\\\"Martell\\\",\\\"cs\\\":\\\"Kladivo\\\",\\\"de\\\":\\\"Hammer\\\",\\\"eo\\\":\\\"Martelo\\\",\\\"es\\\":\\\"Martillo\\\",\\\"et\\\":\\\"Haamer\\\",\\\"fa\\\":\\\"چکش\\\",\\\"fi\\\":\\\"Vasara\\\",\\\"fr\\\":\\\"Marteau\\\",\\\"hr\\\":\\\"čekić\\\",\\\"hu\\\":\\\"Kalapács\\\",\\\"id\\\":\\\"Palu\\\",\\\"it\\\":\\\"Martello\\\",\\\"ja\\\":\\\"金槌\\\",\\\"nb_NO\\\":\\\"Hammer\\\",\\\"nl\\\":\\\"Hamer\\\",\\\"pt\\\":\\\"Martelo\\\",\\\"pt_BR\\\":\\\"Martelo\\\",\\\"ru\\\":\\\"Молоток\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Kladivo\\\",\\\"sq\\\":\\\"Çekiç\\\",\\\"sr\\\":\\\"чекић\\\",\\\"sv\\\":\\\"Hammare\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Молоток\\\",\\\"vi\\\":\\\"Búa\\\",\\\"zh_Hans\\\":\\\"锤子\\\",\\\"zh_Hant\\\":\\\"鎚子\\\"}},{\\\"number\\\":49,\\\"emoji\\\":\\\"☎️\\\",\\\"description\\\":\\\"Telephone\\\",\\\"unicode\\\":\\\"U+260EU+FE0F\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"تِلِفُون\\\",\\\"bg\\\":\\\"Телефон\\\",\\\"ca\\\":\\\"Telèfon\\\",\\\"cs\\\":\\\"Telefon\\\",\\\"de\\\":\\\"Telefon\\\",\\\"eo\\\":\\\"Telefono\\\",\\\"es\\\":\\\"Teléfono\\\",\\\"et\\\":\\\"Telefon\\\",\\\"fa\\\":\\\"تلفن\\\",\\\"fi\\\":\\\"Puhelin\\\",\\\"fr\\\":\\\"Téléphone\\\",\\\"hr\\\":\\\"telefon\\\",\\\"hu\\\":\\\"Telefon\\\",\\\"id\\\":\\\"Telepon\\\",\\\"it\\\":\\\"Telefono\\\",\\\"ja\\\":\\\"電話機\\\",\\\"nb_NO\\\":\\\"Telefon\\\",\\\"nl\\\":\\\"Telefoon\\\",\\\"pt\\\":\\\"Telefone\\\",\\\"pt_BR\\\":\\\"Telefone\\\",\\\"ru\\\":\\\"Телефон\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Telefón\\\",\\\"sq\\\":\\\"Telefon\\\",\\\"sr\\\":\\\"телефон\\\",\\\"sv\\\":\\\"Telefon\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Atilifun\\\",\\\"uk\\\":\\\"Телефон\\\",\\\"vi\\\":\\\"Điện thoại\\\",\\\"zh_Hans\\\":\\\"电话\\\",\\\"zh_Hant\\\":\\\"電話\\\"}},{\\\"number\\\":50,\\\"emoji\\\":\\\"🏁\\\",\\\"description\\\":\\\"Flag\\\",\\\"unicode\\\":\\\"U+1F3C1\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"عَلَم\\\",\\\"bg\\\":\\\"Флаг\\\",\\\"ca\\\":\\\"Bandera\\\",\\\"cs\\\":\\\"Vlajka\\\",\\\"de\\\":\\\"Flagge\\\",\\\"eo\\\":\\\"Flago\\\",\\\"es\\\":\\\"Bandera\\\",\\\"et\\\":\\\"Lipp\\\",\\\"fa\\\":\\\"پرچم\\\",\\\"fi\\\":\\\"Lippu\\\",\\\"fr\\\":\\\"Drapeau\\\",\\\"hr\\\":\\\"zastava\\\",\\\"hu\\\":\\\"Zászló\\\",\\\"id\\\":\\\"Bendera\\\",\\\"it\\\":\\\"Bandiera\\\",\\\"ja\\\":\\\"旗\\\",\\\"nb_NO\\\":\\\"Flagg\\\",\\\"nl\\\":\\\"Vlag\\\",\\\"pt\\\":\\\"Bandeira\\\",\\\"pt_BR\\\":\\\"Bandeira\\\",\\\"ru\\\":\\\"Флаг\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Zástava\\\",\\\"sq\\\":\\\"Flamur\\\",\\\"sr\\\":\\\"застава\\\",\\\"sv\\\":\\\"Flagga\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Acenyal\\\",\\\"uk\\\":\\\"Прапор\\\",\\\"vi\\\":\\\"Lá cờ\\\",\\\"zh_Hans\\\":\\\"旗帜\\\",\\\"zh_Hant\\\":\\\"旗幟\\\"}},{\\\"number\\\":51,\\\"emoji\\\":\\\"🚂\\\",\\\"description\\\":\\\"Train\\\",\\\"unicode\\\":\\\"U+1F682\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"قِطَار\\\",\\\"bg\\\":\\\"Влак\\\",\\\"ca\\\":\\\"Tren\\\",\\\"cs\\\":\\\"Vlak\\\",\\\"de\\\":\\\"Zug\\\",\\\"eo\\\":\\\"Vagonaro\\\",\\\"es\\\":\\\"Tren\\\",\\\"et\\\":\\\"Rong\\\",\\\"fa\\\":\\\"قطار\\\",\\\"fi\\\":\\\"Juna\\\",\\\"fr\\\":\\\"Train\\\",\\\"hr\\\":\\\"vlak\\\",\\\"hu\\\":\\\"Vonat\\\",\\\"id\\\":\\\"Kereta Api\\\",\\\"it\\\":\\\"Treno\\\",\\\"ja\\\":\\\"電車\\\",\\\"nb_NO\\\":\\\"Tog\\\",\\\"nl\\\":\\\"Trein\\\",\\\"pt\\\":\\\"Comboio\\\",\\\"pt_BR\\\":\\\"Trem\\\",\\\"ru\\\":\\\"Поезд\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Vlak\\\",\\\"sq\\\":\\\"Tren\\\",\\\"sr\\\":\\\"воз\\\",\\\"sv\\\":\\\"Tåg\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Потяг\\\",\\\"vi\\\":\\\"Xe lửa\\\",\\\"zh_Hans\\\":\\\"火车\\\",\\\"zh_Hant\\\":\\\"火車\\\"}},{\\\"number\\\":52,\\\"emoji\\\":\\\"🚲\\\",\\\"description\\\":\\\"Bicycle\\\",\\\"unicode\\\":\\\"U+1F6B2\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"دَرّاجَة\\\",\\\"bg\\\":\\\"Колело\\\",\\\"ca\\\":\\\"Bicicleta\\\",\\\"cs\\\":\\\"Kolo\\\",\\\"de\\\":\\\"Fahrrad\\\",\\\"eo\\\":\\\"Biciklo\\\",\\\"es\\\":\\\"Bicicleta\\\",\\\"et\\\":\\\"Jalgratas\\\",\\\"fa\\\":\\\"دوچرخه\\\",\\\"fi\\\":\\\"Polkupyörä\\\",\\\"fr\\\":\\\"Vélo\\\",\\\"hr\\\":\\\"bicikl\\\",\\\"hu\\\":\\\"Kerékpár\\\",\\\"id\\\":\\\"Sepeda\\\",\\\"it\\\":\\\"Bicicletta\\\",\\\"ja\\\":\\\"自転車\\\",\\\"nb_NO\\\":\\\"Sykkel\\\",\\\"nl\\\":\\\"Fiets\\\",\\\"pt\\\":\\\"Bicicleta\\\",\\\"pt_BR\\\":\\\"Bicicleta\\\",\\\"ru\\\":\\\"Велосипед\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Bicykel\\\",\\\"sq\\\":\\\"Biçikletë\\\",\\\"sr\\\":\\\"бицикл\\\",\\\"sv\\\":\\\"Cykel\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Велосипед\\\",\\\"vi\\\":\\\"Xe đạp\\\",\\\"zh_Hans\\\":\\\"自行车\\\",\\\"zh_Hant\\\":\\\"腳踏車\\\"}},{\\\"number\\\":53,\\\"emoji\\\":\\\"✈️\\\",\\\"description\\\":\\\"Aeroplane\\\",\\\"unicode\\\":\\\"U+2708U+FE0F\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"طَائِرة\\\",\\\"bg\\\":\\\"Самолет\\\",\\\"ca\\\":\\\"Avió\\\",\\\"cs\\\":\\\"Letadlo\\\",\\\"de\\\":\\\"Flugzeug\\\",\\\"eo\\\":\\\"Aviadilo\\\",\\\"es\\\":\\\"Avión\\\",\\\"et\\\":\\\"Lennuk\\\",\\\"fa\\\":\\\"هواپیما\\\",\\\"fi\\\":\\\"Lentokone\\\",\\\"fr\\\":\\\"Avion\\\",\\\"hr\\\":\\\"avion\\\",\\\"hu\\\":\\\"Repülő\\\",\\\"id\\\":\\\"Pesawat\\\",\\\"it\\\":\\\"Aeroplano\\\",\\\"ja\\\":\\\"飛行機\\\",\\\"nb_NO\\\":\\\"Fly\\\",\\\"nl\\\":\\\"Vliegtuig\\\",\\\"pt\\\":\\\"Avião\\\",\\\"pt_BR\\\":\\\"Avião\\\",\\\"ru\\\":\\\"Самолет\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Lietadlo\\\",\\\"sq\\\":\\\"Avion\\\",\\\"sr\\\":\\\"авион\\\",\\\"sv\\\":\\\"Flygplan\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Літак\\\",\\\"vi\\\":\\\"Máy bay\\\",\\\"zh_Hans\\\":\\\"飞机\\\",\\\"zh_Hant\\\":\\\"飛機\\\"}},{\\\"number\\\":54,\\\"emoji\\\":\\\"🚀\\\",\\\"description\\\":\\\"Rocket\\\",\\\"unicode\\\":\\\"U+1F680\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"صَارُوخ\\\",\\\"bg\\\":\\\"Ракета\\\",\\\"ca\\\":\\\"Coet\\\",\\\"cs\\\":\\\"Raketa\\\",\\\"de\\\":\\\"Rakete\\\",\\\"eo\\\":\\\"Raketo\\\",\\\"es\\\":\\\"Cohete\\\",\\\"et\\\":\\\"Rakett\\\",\\\"fa\\\":\\\"موشک\\\",\\\"fi\\\":\\\"Raketti\\\",\\\"fr\\\":\\\"Fusée\\\",\\\"hr\\\":\\\"raketa\\\",\\\"hu\\\":\\\"Rakáta\\\",\\\"id\\\":\\\"Roket\\\",\\\"it\\\":\\\"Razzo\\\",\\\"ja\\\":\\\"ロケット\\\",\\\"nb_NO\\\":\\\"Rakett\\\",\\\"nl\\\":\\\"Raket\\\",\\\"pt\\\":\\\"Foguetão\\\",\\\"pt_BR\\\":\\\"Foguete\\\",\\\"ru\\\":\\\"Ракета\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Raketa\\\",\\\"sq\\\":\\\"Raketë\\\",\\\"sr\\\":\\\"ракета\\\",\\\"sv\\\":\\\"Raket\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Ракета\\\",\\\"vi\\\":\\\"Tên lửa\\\",\\\"zh_Hans\\\":\\\"火箭\\\",\\\"zh_Hant\\\":\\\"火箭\\\"}},{\\\"number\\\":55,\\\"emoji\\\":\\\"🏆\\\",\\\"description\\\":\\\"Trophy\\\",\\\"unicode\\\":\\\"U+1F3C6\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"كَأسُ النَّصر\\\",\\\"bg\\\":\\\"Трофей\\\",\\\"ca\\\":\\\"Trofeu\\\",\\\"cs\\\":\\\"Pohár\\\",\\\"de\\\":\\\"Pokal\\\",\\\"eo\\\":\\\"Trofeo\\\",\\\"es\\\":\\\"Trofeo\\\",\\\"et\\\":\\\"Auhind\\\",\\\"fa\\\":\\\"جام\\\",\\\"fi\\\":\\\"Palkinto\\\",\\\"fr\\\":\\\"Trophée\\\",\\\"hr\\\":\\\"trofej\\\",\\\"hu\\\":\\\"Trófea\\\",\\\"id\\\":\\\"Piala\\\",\\\"it\\\":\\\"Trofeo\\\",\\\"ja\\\":\\\"トロフィー\\\",\\\"nb_NO\\\":\\\"Pokal\\\",\\\"nl\\\":\\\"Trofee\\\",\\\"pt\\\":\\\"Troféu\\\",\\\"pt_BR\\\":\\\"Troféu\\\",\\\"ru\\\":\\\"Кубок\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Trofej\\\",\\\"sq\\\":\\\"Trofe\\\",\\\"sr\\\":\\\"пехар\\\",\\\"sv\\\":\\\"Trofé\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Приз\\\",\\\"vi\\\":\\\"Cúp\\\",\\\"zh_Hans\\\":\\\"奖杯\\\",\\\"zh_Hant\\\":\\\"獎盃\\\"}},{\\\"number\\\":56,\\\"emoji\\\":\\\"⚽\\\",\\\"description\\\":\\\"Ball\\\",\\\"unicode\\\":\\\"U+26BD\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"كُرَة\\\",\\\"bg\\\":\\\"Топка\\\",\\\"ca\\\":\\\"Pilota\\\",\\\"cs\\\":\\\"Míč\\\",\\\"de\\\":\\\"Ball\\\",\\\"eo\\\":\\\"Pilko\\\",\\\"es\\\":\\\"Bola\\\",\\\"et\\\":\\\"Pall\\\",\\\"fa\\\":\\\"توپ\\\",\\\"fi\\\":\\\"Pallo\\\",\\\"fr\\\":\\\"Ballon\\\",\\\"hr\\\":\\\"lopta\\\",\\\"hu\\\":\\\"Labda\\\",\\\"id\\\":\\\"Bola\\\",\\\"it\\\":\\\"Palla\\\",\\\"ja\\\":\\\"ボール\\\",\\\"nb_NO\\\":\\\"Ball\\\",\\\"nl\\\":\\\"Bal\\\",\\\"pt\\\":\\\"Bola\\\",\\\"pt_BR\\\":\\\"Bola\\\",\\\"ru\\\":\\\"Мяч\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Lopta\\\",\\\"sq\\\":\\\"Top\\\",\\\"sr\\\":\\\"лопта\\\",\\\"sv\\\":\\\"Boll\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Tcama\\\",\\\"uk\\\":\\\"М'яч\\\",\\\"vi\\\":\\\"Banh\\\",\\\"zh_Hans\\\":\\\"球\\\",\\\"zh_Hant\\\":\\\"足球\\\"}},{\\\"number\\\":57,\\\"emoji\\\":\\\"🎸\\\",\\\"description\\\":\\\"Guitar\\\",\\\"unicode\\\":\\\"U+1F3B8\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"غيتار\\\",\\\"bg\\\":\\\"Китара\\\",\\\"ca\\\":\\\"Guitarra\\\",\\\"cs\\\":\\\"Kytara\\\",\\\"de\\\":\\\"Gitarre\\\",\\\"eo\\\":\\\"Gitaro\\\",\\\"es\\\":\\\"Guitarra\\\",\\\"et\\\":\\\"Kitarr\\\",\\\"fa\\\":\\\"گیتار\\\",\\\"fi\\\":\\\"Kitara\\\",\\\"fr\\\":\\\"Guitare\\\",\\\"hr\\\":\\\"gitara\\\",\\\"hu\\\":\\\"Gitár\\\",\\\"id\\\":\\\"Gitar\\\",\\\"it\\\":\\\"Chitarra\\\",\\\"ja\\\":\\\"ギター\\\",\\\"nb_NO\\\":\\\"Gitar\\\",\\\"nl\\\":\\\"Gitaar\\\",\\\"pt\\\":\\\"Guitarra\\\",\\\"pt_BR\\\":\\\"Guitarra\\\",\\\"ru\\\":\\\"Гитара\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Gitara\\\",\\\"sq\\\":\\\"Kitarë\\\",\\\"sr\\\":\\\"гитара\\\",\\\"sv\\\":\\\"Gitarr\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Agiṭaṛ\\\",\\\"uk\\\":\\\"Гітара\\\",\\\"vi\\\":\\\"Ghi-ta\\\",\\\"zh_Hans\\\":\\\"吉他\\\",\\\"zh_Hant\\\":\\\"吉他\\\"}},{\\\"number\\\":58,\\\"emoji\\\":\\\"🎺\\\",\\\"description\\\":\\\"Trumpet\\\",\\\"unicode\\\":\\\"U+1F3BA\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"بُوق\\\",\\\"bg\\\":\\\"Тромпет\\\",\\\"ca\\\":\\\"Trompeta\\\",\\\"cs\\\":\\\"Trumpeta\\\",\\\"de\\\":\\\"Trompete\\\",\\\"eo\\\":\\\"Trumpeto\\\",\\\"es\\\":\\\"Trompeta\\\",\\\"et\\\":\\\"Trompet\\\",\\\"fa\\\":\\\"شیپور\\\",\\\"fi\\\":\\\"Trumpetti\\\",\\\"fr\\\":\\\"Trompette\\\",\\\"hr\\\":\\\"truba\\\",\\\"hu\\\":\\\"Trombita\\\",\\\"id\\\":\\\"Terompet\\\",\\\"it\\\":\\\"Trombetta\\\",\\\"ja\\\":\\\"トランペット\\\",\\\"nb_NO\\\":\\\"Trompet\\\",\\\"nl\\\":\\\"Trompet\\\",\\\"pt\\\":\\\"Trompete\\\",\\\"pt_BR\\\":\\\"Trombeta\\\",\\\"ru\\\":\\\"Труба\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Trúbka\\\",\\\"sq\\\":\\\"Trombë\\\",\\\"sr\\\":\\\"труба\\\",\\\"sv\\\":\\\"Trumpet\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Труба\\\",\\\"vi\\\":\\\"Kèn\\\",\\\"zh_Hans\\\":\\\"喇叭\\\",\\\"zh_Hant\\\":\\\"喇叭\\\"}},{\\\"number\\\":59,\\\"emoji\\\":\\\"🔔\\\",\\\"description\\\":\\\"Bell\\\",\\\"unicode\\\":\\\"U+1F514\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"جَرَس\\\",\\\"bg\\\":\\\"Звънец\\\",\\\"ca\\\":\\\"Campana\\\",\\\"cs\\\":\\\"Zvonek\\\",\\\"de\\\":\\\"Glocke\\\",\\\"eo\\\":\\\"Sonorilo\\\",\\\"es\\\":\\\"Campana\\\",\\\"et\\\":\\\"Kelluke\\\",\\\"fa\\\":\\\"زنگ\\\",\\\"fi\\\":\\\"Soittokello\\\",\\\"fr\\\":\\\"Cloche\\\",\\\"hr\\\":\\\"zvono\\\",\\\"hu\\\":\\\"Harang\\\",\\\"id\\\":\\\"Lonceng\\\",\\\"it\\\":\\\"Campana\\\",\\\"ja\\\":\\\"ベル\\\",\\\"nb_NO\\\":\\\"Bjelle\\\",\\\"nl\\\":\\\"Bel\\\",\\\"pt\\\":\\\"Sino\\\",\\\"pt_BR\\\":\\\"Sino\\\",\\\"ru\\\":\\\"Колокол\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Zvonec\\\",\\\"sq\\\":\\\"Kambanë\\\",\\\"sr\\\":\\\"звоно\\\",\\\"sv\\\":\\\"Bjällra\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Дзвін\\\",\\\"vi\\\":\\\"Chuông\\\",\\\"zh_Hans\\\":\\\"铃铛\\\",\\\"zh_Hant\\\":\\\"鈴鐺\\\"}},{\\\"number\\\":60,\\\"emoji\\\":\\\"⚓\\\",\\\"description\\\":\\\"Anchor\\\",\\\"unicode\\\":\\\"U+2693\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مِرسَاة\\\",\\\"bg\\\":\\\"Котва\\\",\\\"ca\\\":\\\"Àncora\\\",\\\"cs\\\":\\\"Kotva\\\",\\\"de\\\":\\\"Anker\\\",\\\"eo\\\":\\\"Ankro\\\",\\\"es\\\":\\\"Ancla\\\",\\\"et\\\":\\\"Ankur\\\",\\\"fa\\\":\\\"لنگر\\\",\\\"fi\\\":\\\"Ankkuri\\\",\\\"fr\\\":\\\"Ancre\\\",\\\"hr\\\":\\\"sidro\\\",\\\"hu\\\":\\\"Horgony\\\",\\\"id\\\":\\\"Jangkar\\\",\\\"it\\\":\\\"Ancora\\\",\\\"ja\\\":\\\"いかり\\\",\\\"nb_NO\\\":\\\"Anker\\\",\\\"nl\\\":\\\"Anker\\\",\\\"pt\\\":\\\"Âncora\\\",\\\"pt_BR\\\":\\\"Âncora\\\",\\\"ru\\\":\\\"Якорь\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Kotva\\\",\\\"sq\\\":\\\"Spirancë\\\",\\\"sr\\\":\\\"сидро\\\",\\\"sv\\\":\\\"Ankare\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Якір\\\",\\\"vi\\\":\\\"Mỏ neo\\\",\\\"zh_Hans\\\":\\\"锚\\\",\\\"zh_Hant\\\":\\\"船錨\\\"}},{\\\"number\\\":61,\\\"emoji\\\":\\\"🎧\\\",\\\"description\\\":\\\"Headphones\\\",\\\"unicode\\\":\\\"U+1F3A7\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"سَمّاعَة رَأس\\\",\\\"bg\\\":\\\"Слушалки\\\",\\\"ca\\\":\\\"Auriculars\\\",\\\"cs\\\":\\\"Sluchátka\\\",\\\"de\\\":\\\"Kopfhörer\\\",\\\"eo\\\":\\\"Kapaŭdilo\\\",\\\"es\\\":\\\"Cascos\\\",\\\"et\\\":\\\"Kõrvaklapid\\\",\\\"fa\\\":\\\"هدفون\\\",\\\"fi\\\":\\\"Kuulokkeet\\\",\\\"fr\\\":\\\"Casque audio\\\",\\\"hr\\\":\\\"slušalice\\\",\\\"hu\\\":\\\"Fejhallgató\\\",\\\"id\\\":\\\"Headphone\\\",\\\"it\\\":\\\"Cuffie\\\",\\\"ja\\\":\\\"ヘッドホン\\\",\\\"nb_NO\\\":\\\"Hodetelefoner\\\",\\\"nl\\\":\\\"Koptelefoon\\\",\\\"pt\\\":\\\"Fones\\\",\\\"pt_BR\\\":\\\"Fones de ouvido\\\",\\\"ru\\\":\\\"Наушники\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Slúchadlá\\\",\\\"sq\\\":\\\"Kufje\\\",\\\"sr\\\":\\\"слушалице\\\",\\\"sv\\\":\\\"Hörlurar\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Навушники\\\",\\\"vi\\\":\\\"Tai nghe\\\",\\\"zh_Hans\\\":\\\"耳机\\\",\\\"zh_Hant\\\":\\\"耳機\\\"}},{\\\"number\\\":62,\\\"emoji\\\":\\\"📁\\\",\\\"description\\\":\\\"Folder\\\",\\\"unicode\\\":\\\"U+1F4C1\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"مُجَلَّد\\\",\\\"bg\\\":\\\"Папка\\\",\\\"ca\\\":\\\"Carpeta\\\",\\\"cs\\\":\\\"Složka\\\",\\\"de\\\":\\\"Ordner\\\",\\\"eo\\\":\\\"Dosierujo\\\",\\\"es\\\":\\\"Carpeta\\\",\\\"et\\\":\\\"Kaust\\\",\\\"fa\\\":\\\"پوشه\\\",\\\"fi\\\":\\\"Kansio\\\",\\\"fr\\\":\\\"Dossier\\\",\\\"hr\\\":\\\"mapu\\\",\\\"hu\\\":\\\"Mappa\\\",\\\"id\\\":\\\"Map\\\",\\\"it\\\":\\\"Cartella\\\",\\\"ja\\\":\\\"フォルダー\\\",\\\"nb_NO\\\":\\\"Mappe\\\",\\\"nl\\\":\\\"Map\\\",\\\"pt\\\":\\\"Pasta\\\",\\\"pt_BR\\\":\\\"Pasta\\\",\\\"ru\\\":\\\"Папка\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Fascikel\\\",\\\"sq\\\":\\\"Dosje\\\",\\\"sr\\\":\\\"фасцикла\\\",\\\"sv\\\":\\\"Mapp\\\",\\\"szl\\\":null,\\\"tzm\\\":\\\"Asdaw\\\",\\\"uk\\\":\\\"Тека\\\",\\\"vi\\\":\\\"Thư mục\\\",\\\"zh_Hans\\\":\\\"文件夹\\\",\\\"zh_Hant\\\":\\\"資料夾\\\"}},{\\\"number\\\":63,\\\"emoji\\\":\\\"📌\\\",\\\"description\\\":\\\"Pin\\\",\\\"unicode\\\":\\\"U+1F4CC\\\",\\\"translated_descriptions\\\":{\\\"ar\\\":\\\"دَبُّوس\\\",\\\"bg\\\":\\\"Кабърче\\\",\\\"ca\\\":\\\"Xinxeta\\\",\\\"cs\\\":\\\"Špendlík\\\",\\\"de\\\":\\\"Stecknadel\\\",\\\"eo\\\":\\\"Pinglo\\\",\\\"es\\\":\\\"Alfiler\\\",\\\"et\\\":\\\"Nööpnõel\\\",\\\"fa\\\":\\\"سنجاق\\\",\\\"fi\\\":\\\"Nuppineula\\\",\\\"fr\\\":\\\"Punaise\\\",\\\"hr\\\":\\\"pribadača\\\",\\\"hu\\\":\\\"Rajszeg\\\",\\\"id\\\":\\\"Pin\\\",\\\"it\\\":\\\"Puntina\\\",\\\"ja\\\":\\\"ピン\\\",\\\"nb_NO\\\":\\\"Tegnestift\\\",\\\"nl\\\":\\\"Duimspijker\\\",\\\"pt\\\":\\\"Pionés\\\",\\\"pt_BR\\\":\\\"Alfinete\\\",\\\"ru\\\":\\\"Булавка\\\",\\\"si\\\":null,\\\"sk\\\":\\\"Špendlík\\\",\\\"sq\\\":\\\"Karficë\\\",\\\"sr\\\":\\\"чиода\\\",\\\"sv\\\":\\\"Häftstift\\\",\\\"szl\\\":null,\\\"tzm\\\":null,\\\"uk\\\":\\\"Кнопка\\\",\\\"vi\\\":\\\"Ghim\\\",\\\"zh_Hans\\\":\\\"图钉\\\",\\\"zh_Hant\\\":\\\"圖釘\\\"}}]\")).map(({ emoji: e, description: t, translated_descriptions: n }) => [e, [t, Object.keys(n).reduce((e, t) => {\n\tfor (let r of mb(t)) e[r] = n[t];\n\treturn e;\n}, {})]]));\nfunction PD(e, t) {\n\tlet n = ND.get(e);\n\tif (!n) throw Error(`Emoji mapping not found for emoji ${e}`);\n\tlet [r, i] = n;\n\tfor (let e of mb(t)) if (i[e]) return i[e];\n\treturn r;\n}\nvar FD = {\n\tcontainer: \"_container_1lqqy_8\",\n\tsegment: \"_segment_1lqqy_15\",\n\temoji: \"_emoji_1lqqy_23\",\n\tlabel: \"_label_1lqqy_29\"\n};\n//#endregion\n//#region src/crypto/SasEmoji/SasEmoji.tsx\nfunction ID({ emoji: e, className: t }) {\n\tlet { language: n } = V(), r = e.map((e, t) => /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: FD.segment,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: FD.emoji,\n\t\t\t\"aria-hidden\": !0,\n\t\t\tchildren: e\n\t\t}), /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: FD.label,\n\t\t\tchildren: PD(e, n)\n\t\t})]\n\t}, t));\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: (0, z.default)(FD.container, t),\n\t\tchildren: r\n\t});\n}\nvar LD = {\n\twrapper: \"_wrapper_dt4lj_8\",\n\tcontainer: \"_container_dt4lj_15\",\n\tprofile: \"_profile_dt4lj_23\",\n\tdisplayname: \"_displayname_dt4lj_37\",\n\tuserId: \"_userId_dt4lj_42\",\n\tcreateAccount: \"_createAccount_dt4lj_47\",\n\tprofilePrimary: \"_profilePrimary_dt4lj_52\",\n\tprofileSecondary: \"_profileSecondary_dt4lj_56\",\n\tactions: \"_actions_dt4lj_59\",\n\tavatarWrapper: \"_avatarWrapper_dt4lj_73\",\n\ticonStatusEmoji: \"_iconStatusEmoji_dt4lj_79\",\n\ttriggerButton: \"_triggerButton_dt4lj_96\",\n\tdisplayName: \"_displayName_dt4lj_118\"\n}, RD = {\n\tstatusPill: \"_statusPill_1uwxs_8\",\n\tmenuStatusEmoji: \"_menuStatusEmoji_1uwxs_21\",\n\tmenuStatusText: \"_menuStatusText_1uwxs_25\"\n}, zD = o.forwardRef(function({ status: e, clearStatus: t, ...n }, r) {\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tref: r,\n\t\t...n,\n\t\tclassName: RD.statusPill,\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\tas: \"span\",\n\t\t\t\tclassName: RD.menuStatusEmoji,\n\t\t\t\tchildren: e.emoji\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\tas: \"span\",\n\t\t\t\tclassName: RD.menuStatusText,\n\t\t\t\tchildren: e.text\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\t\tonClick: t,\n\t\t\t\t\"aria-label\": W(\"menus|user_menu|clear_status\"),\n\t\t\t\ttooltip: W(\"menus|user_menu|clear_status\"),\n\t\t\t\tsize: \"28px\",\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(vS, {})\n\t\t\t})\n\t\t]\n\t});\n}), BD = {\n\tsetStatusContainer: \"_setStatusContainer_1ywgk_8\",\n\tsetStatusTrigger: \"_setStatusTrigger_1ywgk_13\",\n\tmenuItem: \"_menuItem_1ywgk_26\"\n}, VD = [\n\t{\n\t\temoji: \"💬\",\n\t\ttextKey: Fx(\"status|set_status|in_a_meeting\")\n\t},\n\t{\n\t\temoji: \"💡\",\n\t\ttextKey: Fx(\"status|set_status|focus_time\")\n\t},\n\t{\n\t\temoji: \"🚙\",\n\t\ttextKey: Fx(\"status|set_status|on_the_road\")\n\t},\n\t{\n\t\temoji: \"☕️\",\n\t\ttextKey: Fx(\"status|set_status|be_right_back\")\n\t},\n\t{\n\t\temoji: \"🌴\",\n\t\ttextKey: Fx(\"status|set_status|away\")\n\t}\n];\nfunction HD({ vm: e }) {\n\tlet { userStatus: t } = U(e);\n\tif (t) return /* @__PURE__ */ (0, B.jsx)(zD, {\n\t\tstatus: t,\n\t\tclearStatus: e.clearStatus\n\t});\n\tlet n = (e) => /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: BD.setStatusContainer,\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(le, {\n\t\t\tclassName: BD.setStatusTrigger,\n\t\t\t\"aria-label\": W(\"status|set_status|set_status_prompt\"),\n\t\t\t...e,\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(RC, {}), /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\tas: \"span\",\n\t\t\t\ttype: \"body\",\n\t\t\t\tsize: \"md\",\n\t\t\t\tweight: \"medium\",\n\t\t\t\tchildren: W(\"status|set_status|set_status_prompt\")\n\t\t\t})]\n\t\t})\n\t});\n\treturn e.onSetStatusClick ? n({ onClick: e.onSetStatusClick }) : /* @__PURE__ */ (0, B.jsx)(A, {\n\t\tvalues: VD.map((e) => [e.textKey, `${e.emoji} ${W(e.textKey)}`]),\n\t\tlabel: null,\n\t\tplaceholder: null,\n\t\ttrigger: n,\n\t\tonValueChange: (t) => {\n\t\t\tlet n = VD.find((e) => e.textKey === t);\n\t\t\tn && e.setStatus({\n\t\t\t\temoji: n.emoji,\n\t\t\t\ttext: W(n.textKey)\n\t\t\t});\n\t\t}\n\t});\n}\n//#endregion\n//#region src/menus/UserMenu/UserMenu.tsx\nfunction UD({ vm: e, className: t }) {\n\tlet { userId: n, displayName: r, avatarUrl: i, expanded: a, open: o, manageAccountHref: s, actions: c, showAvatar: l, userStatus: u, setStatusViewModel: d, showUserStatus: f = !0 } = U(e), { translate: p } = V(), m = /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\tclassName: LD.triggerButton,\n\t\t\"aria-label\": p(\"menus|user_menu|title\"),\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tclassName: LD.avatarWrapper,\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(E, {\n\t\t\t\tid: n,\n\t\t\t\tname: r,\n\t\t\t\ttype: \"round\",\n\t\t\t\tsize: \"36px\",\n\t\t\t\tsrc: i\n\t\t\t}), u && /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\tas: \"div\",\n\t\t\t\tclassName: LD.iconStatusEmoji,\n\t\t\t\tchildren: u.emoji\n\t\t\t})]\n\t\t})\n\t});\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: (0, z.default)(LD.wrapper, t),\n\t\tchildren: [/* @__PURE__ */ (0, B.jsxs)(ue, {\n\t\t\topen: o,\n\t\t\tshowTitle: !1,\n\t\t\ttitle: p(\"menus|user_menu|title\"),\n\t\t\ttrigger: m,\n\t\t\tonOpenChange: e.setOpen,\n\t\t\talign: \"start\",\n\t\t\tside: \"right\",\n\t\t\tclassName: LD.container,\n\t\t\tchildren: [\n\t\t\t\t/* @__PURE__ */ (0, B.jsxs)(\"section\", {\n\t\t\t\t\tclassName: (0, z.default)(LD.profile, LD.profilePrimary),\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tl && /* @__PURE__ */ (0, B.jsx)(E, {\n\t\t\t\t\t\t\tid: n,\n\t\t\t\t\t\t\tname: r,\n\t\t\t\t\t\t\ttype: \"round\",\n\t\t\t\t\t\t\tsize: \"64px\",\n\t\t\t\t\t\t\tsrc: i\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t/* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\t\t\tclassName: LD.displayname,\n\t\t\t\t\t\t\ttype: \"body\",\n\t\t\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\t\t\tweight: \"semibold\",\n\t\t\t\t\t\t\tas: \"span\",\n\t\t\t\t\t\t\tchildren: r\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tf && /* @__PURE__ */ (0, B.jsx)(HD, { vm: d })\n\t\t\t\t\t]\n\t\t\t\t}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsxs)(\"section\", {\n\t\t\t\t\tclassName: (0, z.default)(LD.profile, LD.profileSecondary),\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t/* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\t\t\t\"data-testid\": \"userId\",\n\t\t\t\t\t\t\tsize: \"md\",\n\t\t\t\t\t\t\tas: \"span\",\n\t\t\t\t\t\t\ttype: \"body\",\n\t\t\t\t\t\t\tclassName: LD.userId,\n\t\t\t\t\t\t\tchildren: n\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ts && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\t\t\t\tas: \"a\",\n\t\t\t\t\t\t\tsize: \"md\",\n\t\t\t\t\t\t\tkind: \"tertiary\",\n\t\t\t\t\t\t\thref: s,\n\t\t\t\t\t\t\tIcon: MC,\n\t\t\t\t\t\t\tchildren: p(\"menus|user_menu|manage_account\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tc.createAccount && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\t\t\t\tclassName: LD.createAccount,\n\t\t\t\t\t\t\tsize: \"md\",\n\t\t\t\t\t\t\tas: \"button\",\n\t\t\t\t\t\t\tkind: \"primary\",\n\t\t\t\t\t\t\tonClick: e.createAccount,\n\t\t\t\t\t\t\tchildren: p(\"menus|user_menu|create_an_account\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tc.signIn && /* @__PURE__ */ (0, B.jsxs)(P, {\n\t\t\t\t\t\t\tas: \"span\",\n\t\t\t\t\t\t\tweight: \"medium\",\n\t\t\t\t\t\t\tchildren: [p(\"menus|user_menu|got_an_account\"), /* @__PURE__ */ (0, B.jsx)(le, {\n\t\t\t\t\t\t\t\tas: \"button\",\n\t\t\t\t\t\t\t\tonClick: e.signIn,\n\t\t\t\t\t\t\t\tchildren: p(\"menus|user_menu|sign_in\")\n\t\t\t\t\t\t\t})]\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(he, {}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsxs)(\"section\", {\n\t\t\t\t\tclassName: LD.actions,\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tc.openHomePage && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\t\tIcon: QS,\n\t\t\t\t\t\t\tlabel: p(\"user_menu|open_home\"),\n\t\t\t\t\t\t\tonSelect: e.openHomePage\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tc.linkNewDevice && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\t\tIcon: ES,\n\t\t\t\t\t\t\tlabel: p(\"user_menu|link_new_device\"),\n\t\t\t\t\t\t\tonSelect: e.linkNewDevice\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tc.openSecurity && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\t\tIcon: uC,\n\t\t\t\t\t\t\tlabel: p(\"user_menu|open_security\"),\n\t\t\t\t\t\t\tonSelect: e.openSecurity\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tc.openFeedback && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\t\tIcon: oS,\n\t\t\t\t\t\t\tlabel: p(\"user_menu|open_feedback\"),\n\t\t\t\t\t\t\tonSelect: e.openFeedback\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tc.openSettings && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\t\tIcon: XC,\n\t\t\t\t\t\t\tlabel: p(\"user_menu|open_settings\"),\n\t\t\t\t\t\t\tonSelect: e.openSettings\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t]\n\t\t}), a && /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\ttype: \"heading\",\n\t\t\tsize: \"sm\",\n\t\t\tas: \"span\",\n\t\t\tweight: \"semibold\",\n\t\t\tclassName: LD.displayName,\n\t\t\tchildren: r\n\t\t})]\n\t});\n}\nvar WD = {\n\tnotificationBadge: \"_notificationBadge_10dt2_8\",\n\tvisible: \"_visible_10dt2_8\",\n\tdot: \"_dot_10dt2_21\",\n\tcount: \"_count_10dt2_28\",\n\tnotification: \"_notification_10dt2_8\",\n\thighlight: \"_highlight_10dt2_36\",\n\tbadge2Char: \"_badge2Char_10dt2_45\",\n\tbadge3Char: \"_badge3Char_10dt2_51\"\n};\n//#endregion\n//#region src/notifications/NotificationBadgeView/NotificationBadgeView.tsx\nfunction GD({ vm: e }) {\n\tlet { shouldRender: t, isVisible: n, isNotification: r, isHighlight: i, isKnocked: a, badgeType: o, symbol: s, knockLabel: c } = U(e);\n\tif (!t) return /* @__PURE__ */ (0, B.jsx)(B.Fragment, {});\n\tlet l = (0, z.default)(WD.notificationBadge, {\n\t\t[WD.visible]: n,\n\t\t[WD.notification]: r,\n\t\t[WD.highlight]: i,\n\t\t[WD.dot]: o === \"dot\",\n\t\t[WD.badge2Char]: o === \"badge_2char\",\n\t\t[WD.badge3Char]: o === \"badge_3char\",\n\t\t\"cpd-theme-light\": o !== \"dot\"\n\t});\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\"data-testid\": \"notification-badge\",\n\t\t\"data-badge-type\": o,\n\t\t\"data-notification-level\": i ? \"highlight\" : r ? \"notification\" : void 0,\n\t\tclassName: l,\n\t\tchildren: a && c ? /* @__PURE__ */ (0, B.jsx)(eS, { \"aria-label\": c }) : /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\tclassName: WD.count,\n\t\t\tchildren: s\n\t\t})\n\t});\n}\nvar KD = {\n\treadMarker: \"_readMarker_1rvym_8\",\n\tline: \"_line_1rvym_15\"\n};\n//#endregion\n//#region src/room/timeline/ReadMarker/ReadMarker.tsx\nfunction qD({ eventId: e, kind: t, showLine: n = !0, onCurrentMarkerRef: r, onGhostLineRef: i, onGhostTransitionEnd: a, className: o }) {\n\tlet s = null;\n\treturn t === \"ghost\" ? s = /* @__PURE__ */ (0, B.jsx)(\"hr\", {\n\t\tclassName: KD.line,\n\t\tref: i,\n\t\tonTransitionEnd: a,\n\t\t\"data-eventid\": e\n\t}) : n && (s = /* @__PURE__ */ (0, B.jsx)(\"hr\", { className: KD.line })), /* @__PURE__ */ (0, B.jsx)(\"li\", {\n\t\tclassName: (0, z.default)(o, KD.readMarker),\n\t\tref: t === \"current\" ? r : void 0,\n\t\t\"data-scroll-tokens\": t === \"current\" ? e : void 0,\n\t\tchildren: s\n\t});\n}\n//#endregion\n//#region src/room/timeline/EventPresentation/EventPresentationContext.tsx\nvar JD = {\n\tlayout: \"group\",\n\tdensity: \"default\"\n}, YD = l(JD);\nYD.displayName = \"EventPresentationContext\";\nvar XD = YD.Provider;\nfunction ZD() {\n\treturn g(YD);\n}\nfunction QD() {\n\tlet { layout: e, density: t } = ZD();\n\treturn {\n\t\t\"data-event-layout\": e,\n\t\t\"data-event-density\": t\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/html-dom-parser@7.0.1/node_modules/html-dom-parser/lib/client/html-to-dom.js\nvar $D = /* @__PURE__ */ F(((e) => {\n\tObject.defineProperty(e, \"__esModule\", { value: !0 });\n\tvar t;\n\t(function(e) {\n\t\te.Root = \"root\", e.Text = \"text\", e.Directive = \"directive\", e.Comment = \"comment\", e.Script = \"script\", e.Style = \"style\", e.Tag = \"tag\", e.CDATA = \"cdata\", e.Doctype = \"doctype\";\n\t})(t ||= {});\n\tfunction n(e) {\n\t\treturn e.type === t.Tag || e.type === t.Script || e.type === t.Style;\n\t}\n\tt.Root, t.Text, t.Directive, t.Comment, t.Script, t.Style, t.Tag, t.CDATA, t.Doctype;\n\tvar r = class {\n\t\tparent = null;\n\t\tprev = null;\n\t\tnext = null;\n\t\tstartIndex = null;\n\t\tendIndex = null;\n\t\tget parentNode() {\n\t\t\treturn this.parent;\n\t\t}\n\t\tset parentNode(e) {\n\t\t\tthis.parent = e;\n\t\t}\n\t\tget previousSibling() {\n\t\t\treturn this.prev;\n\t\t}\n\t\tset previousSibling(e) {\n\t\t\tthis.prev = e;\n\t\t}\n\t\tget nextSibling() {\n\t\t\treturn this.next;\n\t\t}\n\t\tset nextSibling(e) {\n\t\t\tthis.next = e;\n\t\t}\n\t\tcloneNode(e = !1) {\n\t\t\treturn v(this, e);\n\t\t}\n\t}, i = class extends r {\n\t\tdata;\n\t\tconstructor(e) {\n\t\t\tsuper(), this.data = e;\n\t\t}\n\t\tget nodeValue() {\n\t\t\treturn this.data;\n\t\t}\n\t\tset nodeValue(e) {\n\t\t\tthis.data = e;\n\t\t}\n\t}, a = class extends i {\n\t\ttype = t.Text;\n\t\tget nodeType() {\n\t\t\treturn 3;\n\t\t}\n\t}, o = class extends i {\n\t\ttype = t.Comment;\n\t\tget nodeType() {\n\t\t\treturn 8;\n\t\t}\n\t}, s = class extends i {\n\t\ttype = t.Directive;\n\t\tname;\n\t\tconstructor(e, t) {\n\t\t\tsuper(t), this.name = e;\n\t\t}\n\t\tget nodeType() {\n\t\t\treturn 1;\n\t\t}\n\t\t\"x-name\";\n\t\t\"x-publicId\";\n\t\t\"x-systemId\";\n\t}, c = class extends r {\n\t\tchildren;\n\t\tconstructor(e) {\n\t\t\tsuper(), this.children = e;\n\t\t}\n\t\tget firstChild() {\n\t\t\treturn this.children[0] ?? null;\n\t\t}\n\t\tget lastChild() {\n\t\t\treturn this.children.length > 0 ? this.children[this.children.length - 1] : null;\n\t\t}\n\t\tget childNodes() {\n\t\t\treturn this.children;\n\t\t}\n\t\tset childNodes(e) {\n\t\t\tthis.children = e;\n\t\t}\n\t}, l = class extends c {\n\t\ttype = t.CDATA;\n\t\tget nodeType() {\n\t\t\treturn 4;\n\t\t}\n\t}, u = class extends c {\n\t\ttype = t.Root;\n\t\tget nodeType() {\n\t\t\treturn 9;\n\t\t}\n\t}, d = class extends c {\n\t\tname;\n\t\tattribs;\n\t\ttype;\n\t\tconstructor(e, n, r = [], i = e === \"script\" ? t.Script : e === \"style\" ? t.Style : t.Tag) {\n\t\t\tsuper(r), this.name = e, this.attribs = n, this.type = i;\n\t\t}\n\t\tget nodeType() {\n\t\t\treturn 1;\n\t\t}\n\t\tget tagName() {\n\t\t\treturn this.name;\n\t\t}\n\t\tset tagName(e) {\n\t\t\tthis.name = e;\n\t\t}\n\t\tget attributes() {\n\t\t\treturn Object.keys(this.attribs).map((e) => ({\n\t\t\t\tname: e,\n\t\t\t\tvalue: this.attribs[e],\n\t\t\t\tnamespace: this[\"x-attribsNamespace\"]?.[e],\n\t\t\t\tprefix: this[\"x-attribsPrefix\"]?.[e]\n\t\t\t}));\n\t\t}\n\t\tnamespace;\n\t\t\"x-attribsNamespace\";\n\t\t\"x-attribsPrefix\";\n\t};\n\tfunction f(e) {\n\t\treturn n(e);\n\t}\n\tfunction p(e) {\n\t\treturn e.type === t.CDATA;\n\t}\n\tfunction m(e) {\n\t\treturn e.type === t.Text;\n\t}\n\tfunction h(e) {\n\t\treturn e.type === t.Comment;\n\t}\n\tfunction g(e) {\n\t\treturn e.type === t.Directive;\n\t}\n\tfunction _(e) {\n\t\treturn e.type === t.Root;\n\t}\n\tfunction v(e, t = !1) {\n\t\tlet n;\n\t\tif (m(e)) n = new a(e.data);\n\t\telse if (h(e)) n = new o(e.data);\n\t\telse if (f(e)) {\n\t\t\tlet r = t ? y(e.children) : [], i = new d(e.name, { ...e.attribs }, r);\n\t\t\tfor (let e of r) e.parent = i;\n\t\t\te.namespace != null && (i.namespace = e.namespace), e[\"x-attribsNamespace\"] && (i[\"x-attribsNamespace\"] = { ...e[\"x-attribsNamespace\"] }), e[\"x-attribsPrefix\"] && (i[\"x-attribsPrefix\"] = { ...e[\"x-attribsPrefix\"] }), n = i;\n\t\t} else if (p(e)) {\n\t\t\tlet r = t ? y(e.children) : [], i = new l(r);\n\t\t\tfor (let e of r) e.parent = i;\n\t\t\tn = i;\n\t\t} else if (_(e)) {\n\t\t\tlet r = t ? y(e.children) : [], i = new u(r);\n\t\t\tfor (let e of r) e.parent = i;\n\t\t\te[\"x-mode\"] && (i[\"x-mode\"] = e[\"x-mode\"]), n = i;\n\t\t} else if (g(e)) {\n\t\t\tlet t = new s(e.name, e.data);\n\t\t\te[\"x-name\"] != null && (t[\"x-name\"] = e[\"x-name\"], t[\"x-publicId\"] = e[\"x-publicId\"], t[\"x-systemId\"] = e[\"x-systemId\"]), n = t;\n\t\t} else throw Error(`Not implemented yet: ${e.type}`);\n\t\treturn n.startIndex = e.startIndex, n.endIndex = e.endIndex, e.sourceCodeLocation != null && (n.sourceCodeLocation = e.sourceCodeLocation), n;\n\t}\n\tfunction y(e) {\n\t\tlet t = e.map((e) => v(e, !0));\n\t\tfor (let e = 1; e < t.length; e++) t[e].prev = t[e - 1], t[e - 1].next = t[e];\n\t\treturn t;\n\t}\n\tvar b = (/* @__PURE__ */ \"animateMotion.animateTransform.clipPath.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feDropShadow.feFlood.feFuncA.feFuncB.feFuncG.feFuncR.feGaussianBlur.feImage.feMerge.feMergeNode.feMorphology.feOffset.fePointLight.feSpecularLighting.feSpotLight.feTile.feTurbulence.foreignObject.linearGradient.radialGradient.textPath\".split(\".\")).reduce(function(e, t) {\n\t\treturn e[t.toLowerCase()] = t, e;\n\t}, {}), x = \"\\r\", S = new RegExp(x, \"g\"), C = `__HTML_DOM_PARSER_CARRIAGE_RETURN_PLACEHOLDER_${Date.now().toString()}__`, w = new RegExp(C, \"g\");\n\tfunction T(e) {\n\t\treturn b[e];\n\t}\n\tfunction ee(e) {\n\t\tfor (var t = {}, n = 0, r = e.length; n < r; n++) {\n\t\t\tvar i = e[n];\n\t\t\tt[i.name] = i.value;\n\t\t}\n\t\treturn t;\n\t}\n\tfunction te(e) {\n\t\treturn e = e.toLowerCase(), T(e) || e;\n\t}\n\tfunction E(e, t) {\n\t\tvar n = \"<\" + t, r = e.toLowerCase().indexOf(n);\n\t\tif (r === -1) return !1;\n\t\tvar i = e[r + n.length];\n\t\treturn i === \">\" || i === \" \" || i === \"\t\" || i === \"\\n\" || i === \"\\r\" || i === \"/\";\n\t}\n\tfunction ne(e) {\n\t\treturn e.replace(S, C);\n\t}\n\tfunction D(e) {\n\t\treturn e.replace(w, x);\n\t}\n\tfunction O(e, t, n) {\n\t\tt === void 0 && (t = null);\n\t\tfor (var r = [], i, c = 0, l = e.length; c < l; c++) {\n\t\t\tvar u = e[c];\n\t\t\tswitch (u.nodeType) {\n\t\t\t\tcase 1:\n\t\t\t\t\tvar f = te(u.nodeName);\n\t\t\t\t\ti = new d(f, ee(u.attributes)), i.children = O(f === \"template\" ? u.content.childNodes : u.childNodes, i);\n\t\t\t\t\tbreak;\n\t\t\t\t/* v8 ignore start */\n\t\t\t\tcase 3:\n\t\t\t\t\ti = new a(D(u.nodeValue ?? \"\"));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 8:\n\t\t\t\t\ti = new o(u.nodeValue ?? \"\");\n\t\t\t\t\tbreak;\n\t\t\t\t/* v8 ignore stop */\n\t\t\t\tdefault: continue;\n\t\t\t}\n\t\t\tvar p = r[c - 1] ?? null;\n\t\t\tp && (p.next = i), i.parent = t, i.prev = p, i.next = null, r.push(i);\n\t\t}\n\t\treturn n && (i = new s(n.substring(0, n.indexOf(\" \")).toLowerCase(), n), i.next = r[0] ?? null, i.parent = t, r.unshift(i), r[1] && (r[1].prev = r[0])), r;\n\t}\n\tvar k = \"html\", re = \"head\", ie = \"body\", A = /<([a-zA-Z]+[0-9]?)/, j = function(e, t) {\n\t\tthrow Error(\"This browser does not support `document.implementation.createHTMLDocument`\");\n\t}, ae = function(e, t) {\n\t\tthrow Error(\"This browser does not support `DOMParser.prototype.parseFromString`\");\n\t}, oe = typeof window == \"object\" && window.DOMParser;\n\tif (typeof oe == \"function\") {\n\t\tvar M = new oe(), se = \"text/html\";\n\t\tae = function(e, t) {\n\t\t\treturn t && (e = `<${t}>${e}</${t}>`), M.parseFromString(e, se);\n\t\t}, j = ae;\n\t}\n\tif (typeof document == \"object\" && document.implementation) {\n\t\tvar ce = document.implementation.createHTMLDocument();\n\t\tj = function(e, t) {\n\t\t\tif (t) {\n\t\t\t\tvar n = ce.documentElement.querySelector(t);\n\t\t\t\treturn n && (n.innerHTML = e), ce;\n\t\t\t}\n\t\t\treturn ce.documentElement.innerHTML = e, ce;\n\t\t};\n\t}\n\tvar le = typeof document == \"object\" && document.createElement(\"template\"), ue;\n\tle && le.content && (ue = function(e) {\n\t\treturn le.innerHTML = e, le.content.childNodes;\n\t});\n\tvar N = function() {\n\t\treturn document.createDocumentFragment().childNodes;\n\t};\n\t/* v8 ignore stop */\n\tfunction de(e) {\n\t\tvar t, n;\n\t\te = ne(e);\n\t\tvar r = (A.exec(e)?.[1])?.toLowerCase();\n\t\tswitch (r) {\n\t\t\tcase k:\n\t\t\t\tvar i = ae(e);\n\t\t\t\tif (!E(e, re)) {\n\t\t\t\t\tvar a = i.querySelector(re);\n\t\t\t\t\t(t = a?.parentNode) == null || t.removeChild(a);\n\t\t\t\t}\n\t\t\t\tif (!E(e, ie)) {\n\t\t\t\t\tvar a = i.querySelector(ie);\n\t\t\t\t\t(n = a?.parentNode) == null || n.removeChild(a);\n\t\t\t\t}\n\t\t\t\treturn i.querySelectorAll(k);\n\t\t\tcase re:\n\t\t\tcase ie:\n\t\t\t\tvar o = j(e).querySelectorAll(r);\n\t\t\t\treturn E(e, ie) && E(e, re) ? o[0].parentNode?.childNodes ?? N() : o;\n\t\t\t/* v8 ignore start */\n\t\t\tdefault:\n\t\t\t\tif (ue) return ue(e);\n\t\t\t\tvar a = j(e, ie).querySelector(ie);\n\t\t\t\treturn a?.childNodes ?? N();\n\t\t}\n\t}\n\tvar fe = /<(![a-zA-Z\\s]+)>/;\n\tfunction pe(e) {\n\t\tif (typeof e != \"string\") throw TypeError(\"First argument must be a string\");\n\t\tif (!e) return [];\n\t\tvar t = fe.exec(e), n = t ? t[1] : void 0;\n\t\treturn O(de(e), null, n);\n\t}\n\te.default = pe;\n})), eO = /* @__PURE__ */ F(((e) => {\n\te.SAME = 0, e.CAMELCASE = 1, e.possibleStandardNames = {\n\t\taccept: 0,\n\t\tacceptCharset: 1,\n\t\t\"accept-charset\": \"acceptCharset\",\n\t\taccessKey: 1,\n\t\taction: 0,\n\t\tallowFullScreen: 1,\n\t\talt: 0,\n\t\tas: 0,\n\t\tasync: 0,\n\t\tautoCapitalize: 1,\n\t\tautoComplete: 1,\n\t\tautoCorrect: 1,\n\t\tautoFocus: 1,\n\t\tautoPlay: 1,\n\t\tautoSave: 1,\n\t\tcapture: 0,\n\t\tcellPadding: 1,\n\t\tcellSpacing: 1,\n\t\tchallenge: 0,\n\t\tcharSet: 1,\n\t\tchecked: 0,\n\t\tchildren: 0,\n\t\tcite: 0,\n\t\tclass: \"className\",\n\t\tclassID: 1,\n\t\tclassName: 1,\n\t\tcols: 0,\n\t\tcolSpan: 1,\n\t\tcontent: 0,\n\t\tcontentEditable: 1,\n\t\tcontextMenu: 1,\n\t\tcontrols: 0,\n\t\tcontrolsList: 1,\n\t\tcoords: 0,\n\t\tcrossOrigin: 1,\n\t\tdangerouslySetInnerHTML: 1,\n\t\tdata: 0,\n\t\tdateTime: 1,\n\t\tdefault: 0,\n\t\tdefaultChecked: 1,\n\t\tdefaultValue: 1,\n\t\tdefer: 0,\n\t\tdir: 0,\n\t\tdisabled: 0,\n\t\tdisablePictureInPicture: 1,\n\t\tdisableRemotePlayback: 1,\n\t\tdownload: 0,\n\t\tdraggable: 0,\n\t\tencType: 1,\n\t\tenterKeyHint: 1,\n\t\tfor: \"htmlFor\",\n\t\tform: 0,\n\t\tformMethod: 1,\n\t\tformAction: 1,\n\t\tformEncType: 1,\n\t\tformNoValidate: 1,\n\t\tformTarget: 1,\n\t\tframeBorder: 1,\n\t\theaders: 0,\n\t\theight: 0,\n\t\thidden: 0,\n\t\thigh: 0,\n\t\thref: 0,\n\t\threfLang: 1,\n\t\thtmlFor: 1,\n\t\thttpEquiv: 1,\n\t\t\"http-equiv\": \"httpEquiv\",\n\t\ticon: 0,\n\t\tid: 0,\n\t\tinnerHTML: 1,\n\t\tinputMode: 1,\n\t\tintegrity: 0,\n\t\tis: 0,\n\t\titemID: 1,\n\t\titemProp: 1,\n\t\titemRef: 1,\n\t\titemScope: 1,\n\t\titemType: 1,\n\t\tkeyParams: 1,\n\t\tkeyType: 1,\n\t\tkind: 0,\n\t\tlabel: 0,\n\t\tlang: 0,\n\t\tlist: 0,\n\t\tloop: 0,\n\t\tlow: 0,\n\t\tmanifest: 0,\n\t\tmarginWidth: 1,\n\t\tmarginHeight: 1,\n\t\tmax: 0,\n\t\tmaxLength: 1,\n\t\tmedia: 0,\n\t\tmediaGroup: 1,\n\t\tmethod: 0,\n\t\tmin: 0,\n\t\tminLength: 1,\n\t\tmultiple: 0,\n\t\tmuted: 0,\n\t\tname: 0,\n\t\tnoModule: 1,\n\t\tnonce: 0,\n\t\tnoValidate: 1,\n\t\topen: 0,\n\t\toptimum: 0,\n\t\tpattern: 0,\n\t\tplaceholder: 0,\n\t\tplaysInline: 1,\n\t\tposter: 0,\n\t\tpreload: 0,\n\t\tprofile: 0,\n\t\tradioGroup: 1,\n\t\treadOnly: 1,\n\t\treferrerPolicy: 1,\n\t\trel: 0,\n\t\trequired: 0,\n\t\treversed: 0,\n\t\trole: 0,\n\t\trows: 0,\n\t\trowSpan: 1,\n\t\tsandbox: 0,\n\t\tscope: 0,\n\t\tscoped: 0,\n\t\tscrolling: 0,\n\t\tseamless: 0,\n\t\tselected: 0,\n\t\tshape: 0,\n\t\tsize: 0,\n\t\tsizes: 0,\n\t\tspan: 0,\n\t\tspellCheck: 1,\n\t\tsrc: 0,\n\t\tsrcDoc: 1,\n\t\tsrcLang: 1,\n\t\tsrcSet: 1,\n\t\tstart: 0,\n\t\tstep: 0,\n\t\tstyle: 0,\n\t\tsummary: 0,\n\t\ttabIndex: 1,\n\t\ttarget: 0,\n\t\ttitle: 0,\n\t\ttype: 0,\n\t\tuseMap: 1,\n\t\tvalue: 0,\n\t\twidth: 0,\n\t\twmode: 0,\n\t\twrap: 0,\n\t\tabout: 0,\n\t\taccentHeight: 1,\n\t\t\"accent-height\": \"accentHeight\",\n\t\taccumulate: 0,\n\t\tadditive: 0,\n\t\talignmentBaseline: 1,\n\t\t\"alignment-baseline\": \"alignmentBaseline\",\n\t\tallowReorder: 1,\n\t\talphabetic: 0,\n\t\tamplitude: 0,\n\t\tarabicForm: 1,\n\t\t\"arabic-form\": \"arabicForm\",\n\t\tascent: 0,\n\t\tattributeName: 1,\n\t\tattributeType: 1,\n\t\tautoReverse: 1,\n\t\tazimuth: 0,\n\t\tbaseFrequency: 1,\n\t\tbaselineShift: 1,\n\t\t\"baseline-shift\": \"baselineShift\",\n\t\tbaseProfile: 1,\n\t\tbbox: 0,\n\t\tbegin: 0,\n\t\tbias: 0,\n\t\tby: 0,\n\t\tcalcMode: 1,\n\t\tcapHeight: 1,\n\t\t\"cap-height\": \"capHeight\",\n\t\tclip: 0,\n\t\tclipPath: 1,\n\t\t\"clip-path\": \"clipPath\",\n\t\tclipPathUnits: 1,\n\t\tclipRule: 1,\n\t\t\"clip-rule\": \"clipRule\",\n\t\tcolor: 0,\n\t\tcolorInterpolation: 1,\n\t\t\"color-interpolation\": \"colorInterpolation\",\n\t\tcolorInterpolationFilters: 1,\n\t\t\"color-interpolation-filters\": \"colorInterpolationFilters\",\n\t\tcolorProfile: 1,\n\t\t\"color-profile\": \"colorProfile\",\n\t\tcolorRendering: 1,\n\t\t\"color-rendering\": \"colorRendering\",\n\t\tcontentScriptType: 1,\n\t\tcontentStyleType: 1,\n\t\tcursor: 0,\n\t\tcx: 0,\n\t\tcy: 0,\n\t\td: 0,\n\t\tdatatype: 0,\n\t\tdecelerate: 0,\n\t\tdescent: 0,\n\t\tdiffuseConstant: 1,\n\t\tdirection: 0,\n\t\tdisplay: 0,\n\t\tdivisor: 0,\n\t\tdominantBaseline: 1,\n\t\t\"dominant-baseline\": \"dominantBaseline\",\n\t\tdur: 0,\n\t\tdx: 0,\n\t\tdy: 0,\n\t\tedgeMode: 1,\n\t\televation: 0,\n\t\tenableBackground: 1,\n\t\t\"enable-background\": \"enableBackground\",\n\t\tend: 0,\n\t\texponent: 0,\n\t\texternalResourcesRequired: 1,\n\t\tfill: 0,\n\t\tfillOpacity: 1,\n\t\t\"fill-opacity\": \"fillOpacity\",\n\t\tfillRule: 1,\n\t\t\"fill-rule\": \"fillRule\",\n\t\tfilter: 0,\n\t\tfilterRes: 1,\n\t\tfilterUnits: 1,\n\t\tfloodOpacity: 1,\n\t\t\"flood-opacity\": \"floodOpacity\",\n\t\tfloodColor: 1,\n\t\t\"flood-color\": \"floodColor\",\n\t\tfocusable: 0,\n\t\tfontFamily: 1,\n\t\t\"font-family\": \"fontFamily\",\n\t\tfontSize: 1,\n\t\t\"font-size\": \"fontSize\",\n\t\tfontSizeAdjust: 1,\n\t\t\"font-size-adjust\": \"fontSizeAdjust\",\n\t\tfontStretch: 1,\n\t\t\"font-stretch\": \"fontStretch\",\n\t\tfontStyle: 1,\n\t\t\"font-style\": \"fontStyle\",\n\t\tfontVariant: 1,\n\t\t\"font-variant\": \"fontVariant\",\n\t\tfontWeight: 1,\n\t\t\"font-weight\": \"fontWeight\",\n\t\tformat: 0,\n\t\tfrom: 0,\n\t\tfx: 0,\n\t\tfy: 0,\n\t\tg1: 0,\n\t\tg2: 0,\n\t\tglyphName: 1,\n\t\t\"glyph-name\": \"glyphName\",\n\t\tglyphOrientationHorizontal: 1,\n\t\t\"glyph-orientation-horizontal\": \"glyphOrientationHorizontal\",\n\t\tglyphOrientationVertical: 1,\n\t\t\"glyph-orientation-vertical\": \"glyphOrientationVertical\",\n\t\tglyphRef: 1,\n\t\tgradientTransform: 1,\n\t\tgradientUnits: 1,\n\t\thanging: 0,\n\t\thorizAdvX: 1,\n\t\t\"horiz-adv-x\": \"horizAdvX\",\n\t\thorizOriginX: 1,\n\t\t\"horiz-origin-x\": \"horizOriginX\",\n\t\tideographic: 0,\n\t\timageRendering: 1,\n\t\t\"image-rendering\": \"imageRendering\",\n\t\tin2: 0,\n\t\tin: 0,\n\t\tinlist: 0,\n\t\tintercept: 0,\n\t\tk1: 0,\n\t\tk2: 0,\n\t\tk3: 0,\n\t\tk4: 0,\n\t\tk: 0,\n\t\tkernelMatrix: 1,\n\t\tkernelUnitLength: 1,\n\t\tkerning: 0,\n\t\tkeyPoints: 1,\n\t\tkeySplines: 1,\n\t\tkeyTimes: 1,\n\t\tlengthAdjust: 1,\n\t\tletterSpacing: 1,\n\t\t\"letter-spacing\": \"letterSpacing\",\n\t\tlightingColor: 1,\n\t\t\"lighting-color\": \"lightingColor\",\n\t\tlimitingConeAngle: 1,\n\t\tlocal: 0,\n\t\tmarkerEnd: 1,\n\t\t\"marker-end\": \"markerEnd\",\n\t\tmarkerHeight: 1,\n\t\tmarkerMid: 1,\n\t\t\"marker-mid\": \"markerMid\",\n\t\tmarkerStart: 1,\n\t\t\"marker-start\": \"markerStart\",\n\t\tmarkerUnits: 1,\n\t\tmarkerWidth: 1,\n\t\tmask: 0,\n\t\tmaskContentUnits: 1,\n\t\tmaskUnits: 1,\n\t\tmathematical: 0,\n\t\tmode: 0,\n\t\tnumOctaves: 1,\n\t\toffset: 0,\n\t\topacity: 0,\n\t\toperator: 0,\n\t\torder: 0,\n\t\torient: 0,\n\t\torientation: 0,\n\t\torigin: 0,\n\t\toverflow: 0,\n\t\toverlinePosition: 1,\n\t\t\"overline-position\": \"overlinePosition\",\n\t\toverlineThickness: 1,\n\t\t\"overline-thickness\": \"overlineThickness\",\n\t\tpaintOrder: 1,\n\t\t\"paint-order\": \"paintOrder\",\n\t\tpanose1: 0,\n\t\t\"panose-1\": \"panose1\",\n\t\tpathLength: 1,\n\t\tpatternContentUnits: 1,\n\t\tpatternTransform: 1,\n\t\tpatternUnits: 1,\n\t\tpointerEvents: 1,\n\t\t\"pointer-events\": \"pointerEvents\",\n\t\tpoints: 0,\n\t\tpointsAtX: 1,\n\t\tpointsAtY: 1,\n\t\tpointsAtZ: 1,\n\t\tprefix: 0,\n\t\tpreserveAlpha: 1,\n\t\tpreserveAspectRatio: 1,\n\t\tprimitiveUnits: 1,\n\t\tproperty: 0,\n\t\tr: 0,\n\t\tradius: 0,\n\t\trefX: 1,\n\t\trefY: 1,\n\t\trenderingIntent: 1,\n\t\t\"rendering-intent\": \"renderingIntent\",\n\t\trepeatCount: 1,\n\t\trepeatDur: 1,\n\t\trequiredExtensions: 1,\n\t\trequiredFeatures: 1,\n\t\tresource: 0,\n\t\trestart: 0,\n\t\tresult: 0,\n\t\tresults: 0,\n\t\trotate: 0,\n\t\trx: 0,\n\t\try: 0,\n\t\tscale: 0,\n\t\tsecurity: 0,\n\t\tseed: 0,\n\t\tshapeRendering: 1,\n\t\t\"shape-rendering\": \"shapeRendering\",\n\t\tslope: 0,\n\t\tspacing: 0,\n\t\tspecularConstant: 1,\n\t\tspecularExponent: 1,\n\t\tspeed: 0,\n\t\tspreadMethod: 1,\n\t\tstartOffset: 1,\n\t\tstdDeviation: 1,\n\t\tstemh: 0,\n\t\tstemv: 0,\n\t\tstitchTiles: 1,\n\t\tstopColor: 1,\n\t\t\"stop-color\": \"stopColor\",\n\t\tstopOpacity: 1,\n\t\t\"stop-opacity\": \"stopOpacity\",\n\t\tstrikethroughPosition: 1,\n\t\t\"strikethrough-position\": \"strikethroughPosition\",\n\t\tstrikethroughThickness: 1,\n\t\t\"strikethrough-thickness\": \"strikethroughThickness\",\n\t\tstring: 0,\n\t\tstroke: 0,\n\t\tstrokeDasharray: 1,\n\t\t\"stroke-dasharray\": \"strokeDasharray\",\n\t\tstrokeDashoffset: 1,\n\t\t\"stroke-dashoffset\": \"strokeDashoffset\",\n\t\tstrokeLinecap: 1,\n\t\t\"stroke-linecap\": \"strokeLinecap\",\n\t\tstrokeLinejoin: 1,\n\t\t\"stroke-linejoin\": \"strokeLinejoin\",\n\t\tstrokeMiterlimit: 1,\n\t\t\"stroke-miterlimit\": \"strokeMiterlimit\",\n\t\tstrokeWidth: 1,\n\t\t\"stroke-width\": \"strokeWidth\",\n\t\tstrokeOpacity: 1,\n\t\t\"stroke-opacity\": \"strokeOpacity\",\n\t\tsuppressContentEditableWarning: 1,\n\t\tsuppressHydrationWarning: 1,\n\t\tsurfaceScale: 1,\n\t\tsystemLanguage: 1,\n\t\ttableValues: 1,\n\t\ttargetX: 1,\n\t\ttargetY: 1,\n\t\ttextAnchor: 1,\n\t\t\"text-anchor\": \"textAnchor\",\n\t\ttextDecoration: 1,\n\t\t\"text-decoration\": \"textDecoration\",\n\t\ttextLength: 1,\n\t\ttextRendering: 1,\n\t\t\"text-rendering\": \"textRendering\",\n\t\tto: 0,\n\t\ttransform: 0,\n\t\ttypeof: 0,\n\t\tu1: 0,\n\t\tu2: 0,\n\t\tunderlinePosition: 1,\n\t\t\"underline-position\": \"underlinePosition\",\n\t\tunderlineThickness: 1,\n\t\t\"underline-thickness\": \"underlineThickness\",\n\t\tunicode: 0,\n\t\tunicodeBidi: 1,\n\t\t\"unicode-bidi\": \"unicodeBidi\",\n\t\tunicodeRange: 1,\n\t\t\"unicode-range\": \"unicodeRange\",\n\t\tunitsPerEm: 1,\n\t\t\"units-per-em\": \"unitsPerEm\",\n\t\tunselectable: 0,\n\t\tvAlphabetic: 1,\n\t\t\"v-alphabetic\": \"vAlphabetic\",\n\t\tvalues: 0,\n\t\tvectorEffect: 1,\n\t\t\"vector-effect\": \"vectorEffect\",\n\t\tversion: 0,\n\t\tvertAdvY: 1,\n\t\t\"vert-adv-y\": \"vertAdvY\",\n\t\tvertOriginX: 1,\n\t\t\"vert-origin-x\": \"vertOriginX\",\n\t\tvertOriginY: 1,\n\t\t\"vert-origin-y\": \"vertOriginY\",\n\t\tvHanging: 1,\n\t\t\"v-hanging\": \"vHanging\",\n\t\tvIdeographic: 1,\n\t\t\"v-ideographic\": \"vIdeographic\",\n\t\tviewBox: 1,\n\t\tviewTarget: 1,\n\t\tvisibility: 0,\n\t\tvMathematical: 1,\n\t\t\"v-mathematical\": \"vMathematical\",\n\t\tvocab: 0,\n\t\twidths: 0,\n\t\twordSpacing: 1,\n\t\t\"word-spacing\": \"wordSpacing\",\n\t\twritingMode: 1,\n\t\t\"writing-mode\": \"writingMode\",\n\t\tx1: 0,\n\t\tx2: 0,\n\t\tx: 0,\n\t\txChannelSelector: 1,\n\t\txHeight: 1,\n\t\t\"x-height\": \"xHeight\",\n\t\txlinkActuate: 1,\n\t\t\"xlink:actuate\": \"xlinkActuate\",\n\t\txlinkArcrole: 1,\n\t\t\"xlink:arcrole\": \"xlinkArcrole\",\n\t\txlinkHref: 1,\n\t\t\"xlink:href\": \"xlinkHref\",\n\t\txlinkRole: 1,\n\t\t\"xlink:role\": \"xlinkRole\",\n\t\txlinkShow: 1,\n\t\t\"xlink:show\": \"xlinkShow\",\n\t\txlinkTitle: 1,\n\t\t\"xlink:title\": \"xlinkTitle\",\n\t\txlinkType: 1,\n\t\t\"xlink:type\": \"xlinkType\",\n\t\txmlBase: 1,\n\t\t\"xml:base\": \"xmlBase\",\n\t\txmlLang: 1,\n\t\t\"xml:lang\": \"xmlLang\",\n\t\txmlns: 0,\n\t\t\"xml:space\": \"xmlSpace\",\n\t\txmlnsXlink: 1,\n\t\t\"xmlns:xlink\": \"xmlnsXlink\",\n\t\txmlSpace: 1,\n\t\ty1: 0,\n\t\ty2: 0,\n\t\ty: 0,\n\t\tyChannelSelector: 1,\n\t\tz: 0,\n\t\tzoomAndPan: 1\n\t};\n})), tO = /* @__PURE__ */ F(((e) => {\n\tvar t = 0, n = 1, r = 2, i = 3, a = 4, o = 5, s = 6;\n\tfunction c(e) {\n\t\treturn u.hasOwnProperty(e) ? u[e] : null;\n\t}\n\tfunction l(e, t, n, o, s, c, l) {\n\t\tthis.acceptsBooleans = t === r || t === i || t === a, this.attributeName = o, this.attributeNamespace = s, this.mustUseProperty = n, this.propertyName = e, this.type = t, this.sanitizeURL = c, this.removeEmptyString = l;\n\t}\n\tvar u = {};\n\t[\n\t\t\"children\",\n\t\t\"dangerouslySetInnerHTML\",\n\t\t\"defaultValue\",\n\t\t\"defaultChecked\",\n\t\t\"innerHTML\",\n\t\t\"suppressContentEditableWarning\",\n\t\t\"suppressHydrationWarning\",\n\t\t\"style\"\n\t].forEach((e) => {\n\t\tu[e] = new l(e, t, !1, e, null, !1, !1);\n\t}), [\n\t\t[\"acceptCharset\", \"accept-charset\"],\n\t\t[\"className\", \"class\"],\n\t\t[\"htmlFor\", \"for\"],\n\t\t[\"httpEquiv\", \"http-equiv\"]\n\t].forEach(([e, t]) => {\n\t\tu[e] = new l(e, n, !1, t, null, !1, !1);\n\t}), [\n\t\t\"contentEditable\",\n\t\t\"draggable\",\n\t\t\"spellCheck\",\n\t\t\"value\"\n\t].forEach((e) => {\n\t\tu[e] = new l(e, r, !1, e.toLowerCase(), null, !1, !1);\n\t}), [\n\t\t\"autoReverse\",\n\t\t\"externalResourcesRequired\",\n\t\t\"focusable\",\n\t\t\"preserveAlpha\"\n\t].forEach((e) => {\n\t\tu[e] = new l(e, r, !1, e, null, !1, !1);\n\t}), [\n\t\t\"allowFullScreen\",\n\t\t\"async\",\n\t\t\"autoFocus\",\n\t\t\"autoPlay\",\n\t\t\"controls\",\n\t\t\"default\",\n\t\t\"defer\",\n\t\t\"disabled\",\n\t\t\"disablePictureInPicture\",\n\t\t\"disableRemotePlayback\",\n\t\t\"formNoValidate\",\n\t\t\"hidden\",\n\t\t\"loop\",\n\t\t\"noModule\",\n\t\t\"noValidate\",\n\t\t\"open\",\n\t\t\"playsInline\",\n\t\t\"readOnly\",\n\t\t\"required\",\n\t\t\"reversed\",\n\t\t\"scoped\",\n\t\t\"seamless\",\n\t\t\"itemScope\"\n\t].forEach((e) => {\n\t\tu[e] = new l(e, i, !1, e.toLowerCase(), null, !1, !1);\n\t}), [\n\t\t\"checked\",\n\t\t\"multiple\",\n\t\t\"muted\",\n\t\t\"selected\"\n\t].forEach((e) => {\n\t\tu[e] = new l(e, i, !0, e, null, !1, !1);\n\t}), [\"capture\", \"download\"].forEach((e) => {\n\t\tu[e] = new l(e, a, !1, e, null, !1, !1);\n\t}), [\n\t\t\"cols\",\n\t\t\"rows\",\n\t\t\"size\",\n\t\t\"span\"\n\t].forEach((e) => {\n\t\tu[e] = new l(e, s, !1, e, null, !1, !1);\n\t}), [\"rowSpan\", \"start\"].forEach((e) => {\n\t\tu[e] = new l(e, o, !1, e.toLowerCase(), null, !1, !1);\n\t});\n\tvar d = /[\\-\\:]([a-z])/g, f = (e) => e[1].toUpperCase();\n\t(/* @__PURE__ */ \"accent-height.alignment-baseline.arabic-form.baseline-shift.cap-height.clip-path.clip-rule.color-interpolation.color-interpolation-filters.color-profile.color-rendering.dominant-baseline.enable-background.fill-opacity.fill-rule.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.glyph-name.glyph-orientation-horizontal.glyph-orientation-vertical.horiz-adv-x.horiz-origin-x.image-rendering.letter-spacing.lighting-color.marker-end.marker-mid.marker-start.overline-position.overline-thickness.paint-order.panose-1.pointer-events.rendering-intent.shape-rendering.stop-color.stop-opacity.strikethrough-position.strikethrough-thickness.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.text-anchor.text-decoration.text-rendering.underline-position.underline-thickness.unicode-bidi.unicode-range.units-per-em.v-alphabetic.v-hanging.v-ideographic.v-mathematical.vector-effect.vert-adv-y.vert-origin-x.vert-origin-y.word-spacing.writing-mode.xmlns:xlink.x-height\".split(\".\")).forEach((e) => {\n\t\tlet t = e.replace(d, f);\n\t\tu[t] = new l(t, n, !1, e, null, !1, !1);\n\t}), [\n\t\t\"xlink:actuate\",\n\t\t\"xlink:arcrole\",\n\t\t\"xlink:role\",\n\t\t\"xlink:show\",\n\t\t\"xlink:title\",\n\t\t\"xlink:type\"\n\t].forEach((e) => {\n\t\tlet t = e.replace(d, f);\n\t\tu[t] = new l(t, n, !1, e, \"http://www.w3.org/1999/xlink\", !1, !1);\n\t}), [\n\t\t\"xml:base\",\n\t\t\"xml:lang\",\n\t\t\"xml:space\"\n\t].forEach((e) => {\n\t\tlet t = e.replace(d, f);\n\t\tu[t] = new l(t, n, !1, e, \"http://www.w3.org/XML/1998/namespace\", !1, !1);\n\t}), [\"tabIndex\", \"crossOrigin\"].forEach((e) => {\n\t\tu[e] = new l(e, n, !1, e.toLowerCase(), null, !1, !1);\n\t});\n\tvar p = \"xlinkHref\";\n\tu[p] = new l(\"xlinkHref\", n, !1, \"xlink:href\", \"http://www.w3.org/1999/xlink\", !0, !1), [\n\t\t\"src\",\n\t\t\"href\",\n\t\t\"action\",\n\t\t\"formAction\"\n\t].forEach((e) => {\n\t\tu[e] = new l(e, n, !1, e.toLowerCase(), null, !0, !0);\n\t});\n\tvar { CAMELCASE: m, SAME: h, possibleStandardNames: g } = eO(), _ = RegExp.prototype.test.bind(/* @__PURE__ */ RegExp(\"^(data|aria)-[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\")), v = Object.keys(g).reduce((e, t) => {\n\t\tlet n = g[t];\n\t\treturn n === h ? e[t] = t : n === m ? e[t.toLowerCase()] = t : e[t] = n, e;\n\t}, {});\n\te.BOOLEAN = i, e.BOOLEANISH_STRING = r, e.NUMERIC = o, e.OVERLOADED_BOOLEAN = a, e.POSITIVE_NUMERIC = s, e.RESERVED = t, e.STRING = n, e.getPropertyInfo = c, e.isCustomAttribute = _, e.possibleStandardNames = v;\n})), nO = /* @__PURE__ */ F(((e, t) => {\n\tvar n = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g, r = /\\n/g, i = /^\\s*/, a = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/, o = /^:\\s*/, s = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/, c = /^[;\\s]*/, l = /^\\s+|\\s+$/g;\n\tfunction u(e, t) {\n\t\tif (typeof e != \"string\") throw TypeError(\"First argument must be a string\");\n\t\tif (!e) return [];\n\t\tt ||= {};\n\t\tvar l = 1, u = 1;\n\t\tfunction f(e) {\n\t\t\tvar t = e.match(r);\n\t\t\tt && (l += t.length);\n\t\t\tvar n = e.lastIndexOf(\"\\n\");\n\t\t\tu = ~n ? e.length - n : u + e.length;\n\t\t}\n\t\tfunction p() {\n\t\t\tvar e = {\n\t\t\t\tline: l,\n\t\t\t\tcolumn: u\n\t\t\t};\n\t\t\treturn function(t) {\n\t\t\t\treturn t.position = new m(e), _(), t;\n\t\t\t};\n\t\t}\n\t\tfunction m(e) {\n\t\t\tthis.start = e, this.end = {\n\t\t\t\tline: l,\n\t\t\t\tcolumn: u\n\t\t\t}, this.source = t.source;\n\t\t}\n\t\tm.prototype.content = e;\n\t\tfunction h(n) {\n\t\t\tvar r = /* @__PURE__ */ Error(t.source + \":\" + l + \":\" + u + \": \" + n);\n\t\t\tif (r.reason = n, r.filename = t.source, r.line = l, r.column = u, r.source = e, !t.silent) throw r;\n\t\t}\n\t\tfunction g(t) {\n\t\t\tvar n = t.exec(e);\n\t\t\tif (n) {\n\t\t\t\tvar r = n[0];\n\t\t\t\treturn f(r), e = e.slice(r.length), n;\n\t\t\t}\n\t\t}\n\t\tfunction _() {\n\t\t\tg(i);\n\t\t}\n\t\tfunction v(e) {\n\t\t\tvar t;\n\t\t\tfor (e ||= []; t = y();) t !== !1 && e.push(t);\n\t\t\treturn e;\n\t\t}\n\t\tfunction y() {\n\t\t\tvar t = p();\n\t\t\tif (!(e.charAt(0) != \"/\" || e.charAt(1) != \"*\")) {\n\t\t\t\tfor (var n = 2; e.charAt(n) != \"\" && (e.charAt(n) != \"*\" || e.charAt(n + 1) != \"/\");) ++n;\n\t\t\t\tif (n += 2, e.charAt(n - 1) === \"\") return h(\"End of comment missing\");\n\t\t\t\tvar r = e.slice(2, n - 2);\n\t\t\t\treturn u += 2, f(r), e = e.slice(n), u += 2, t({\n\t\t\t\t\ttype: \"comment\",\n\t\t\t\t\tcomment: r\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tfunction b() {\n\t\t\tvar e = p(), t = g(a);\n\t\t\tif (t) {\n\t\t\t\tif (y(), !g(o)) return h(\"property missing ':'\");\n\t\t\t\tvar r = g(s), i = e({\n\t\t\t\t\ttype: \"declaration\",\n\t\t\t\t\tproperty: d(t[0].replace(n, \"\")),\n\t\t\t\t\tvalue: r ? d(r[0].replace(n, \"\")) : \"\"\n\t\t\t\t});\n\t\t\t\treturn g(c), i;\n\t\t\t}\n\t\t}\n\t\tfunction x() {\n\t\t\tvar e = [];\n\t\t\tv(e);\n\t\t\tfor (var t; t = b();) t !== !1 && (e.push(t), v(e));\n\t\t\treturn e;\n\t\t}\n\t\treturn _(), x();\n\t}\n\tfunction d(e) {\n\t\treturn e ? e.replace(l, \"\") : \"\";\n\t}\n\tt.exports = u;\n})), rO = /* @__PURE__ */ F(((e) => {\n\tvar t = e && e.__importDefault || function(e) {\n\t\treturn e && e.__esModule ? e : { default: e };\n\t};\n\tObject.defineProperty(e, \"__esModule\", { value: !0 }), e.default = r;\n\tvar n = t(nO());\n\tfunction r(e, t) {\n\t\tlet r = null;\n\t\tif (!e || typeof e != \"string\") return r;\n\t\tlet i = (0, n.default)(e), a = typeof t == \"function\";\n\t\treturn i.forEach((e) => {\n\t\t\tif (e.type !== \"declaration\") return;\n\t\t\tlet { property: n, value: i } = e;\n\t\t\ta ? t(n, i, e) : i && (r ||= {}, r[n] = i);\n\t\t}), r;\n\t}\n})), iO = /* @__PURE__ */ F(((e) => {\n\tObject.defineProperty(e, \"__esModule\", { value: !0 }), e.camelCase = void 0;\n\tvar t = /^--[a-zA-Z0-9_-]+$/, n = /-([a-z])/g, r = /^[^-]+$/, i = /^-(webkit|moz|ms|o|khtml)-/, a = /^-(ms)-/, o = function(e) {\n\t\treturn !e || r.test(e) || t.test(e);\n\t}, s = function(e, t) {\n\t\treturn t.toUpperCase();\n\t}, c = function(e, t) {\n\t\treturn `${t}-`;\n\t};\n\te.camelCase = function(e, t) {\n\t\treturn t === void 0 && (t = {}), o(e) ? e : (e = e.toLowerCase(), e = t.reactCompat ? e.replace(a, c) : e.replace(i, c), e.replace(n, s));\n\t};\n})), aO = /* @__PURE__ */ F(((e, t) => {\n\tvar n = (e && e.__importDefault || function(e) {\n\t\treturn e && e.__esModule ? e : { default: e };\n\t})(rO()), r = iO();\n\tfunction i(e, t) {\n\t\tvar i = {};\n\t\treturn !e || typeof e != \"string\" || (0, n.default)(e, function(e, n) {\n\t\t\te && n && (i[(0, r.camelCase)(e, t)] = n);\n\t\t}), i;\n\t}\n\ti.default = i, t.exports = i;\n})), oO = /* @__PURE__ */ F(((e) => {\n\tvar t = e && e.__importDefault || function(e) {\n\t\treturn e && e.__esModule ? e : { default: e };\n\t};\n\tObject.defineProperty(e, \"__esModule\", { value: !0 }), e.returnFirstArg = e.canTextBeChildOfNode = e.ELEMENTS_WITH_NO_TEXT_CHILDREN = e.PRESERVE_CUSTOM_ATTRIBUTES = void 0, e.isCustomComponent = a, e.setStyleProp = s;\n\tvar n = Yd(), r = t(aO()), i = /* @__PURE__ */ new Set([\n\t\t\"annotation-xml\",\n\t\t\"color-profile\",\n\t\t\"font-face\",\n\t\t\"font-face-src\",\n\t\t\"font-face-uri\",\n\t\t\"font-face-format\",\n\t\t\"font-face-name\",\n\t\t\"missing-glyph\"\n\t]);\n\tfunction a(e, t) {\n\t\treturn e.includes(\"-\") ? !i.has(e) : !!(t && typeof t.is == \"string\");\n\t}\n\tvar o = { reactCompat: !0 };\n\tfunction s(e, t) {\n\t\tif (typeof e == \"string\") {\n\t\t\tif (!e.trim()) {\n\t\t\t\tt.style = {};\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tt.style = (0, r.default)(e, o);\n\t\t\t} catch {\n\t\t\t\tt.style = {};\n\t\t\t}\n\t\t}\n\t}\n\te.PRESERVE_CUSTOM_ATTRIBUTES = Number(n.version.split(\".\")[0]) >= 16, e.ELEMENTS_WITH_NO_TEXT_CHILDREN = /* @__PURE__ */ new Set([\n\t\t\"tr\",\n\t\t\"tbody\",\n\t\t\"thead\",\n\t\t\"tfoot\",\n\t\t\"colgroup\",\n\t\t\"table\",\n\t\t\"head\",\n\t\t\"html\",\n\t\t\"frameset\"\n\t]), e.canTextBeChildOfNode = (t) => !e.ELEMENTS_WITH_NO_TEXT_CHILDREN.has(t.name), e.returnFirstArg = (e) => e;\n})), sO = /* @__PURE__ */ F(((e) => {\n\tObject.defineProperty(e, \"__esModule\", { value: !0 }), e.default = o;\n\tvar t = tO(), n = oO(), r = [\"checked\", \"value\"], i = [\n\t\t\"input\",\n\t\t\"select\",\n\t\t\"textarea\"\n\t], a = {\n\t\treset: !0,\n\t\tsubmit: !0\n\t};\n\tfunction o(e = {}, o) {\n\t\tlet c = {}, l = !!(e.type && a[e.type]);\n\t\tfor (let a in e) {\n\t\t\tlet u = e[a];\n\t\t\tif ((0, t.isCustomAttribute)(a)) {\n\t\t\t\tc[a] = u;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet d = a.toLowerCase(), f = s(d);\n\t\t\tif (f) {\n\t\t\t\tlet e = (0, t.getPropertyInfo)(f);\n\t\t\t\tswitch (r.includes(f) && i.includes(o) && !l && (f = s(\"default\" + d)), c[f] = u, e?.type) {\n\t\t\t\t\tcase t.BOOLEAN:\n\t\t\t\t\t\tc[f] = !0;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase t.OVERLOADED_BOOLEAN:\n\t\t\t\t\t\tu === \"\" && (c[f] = !0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tn.PRESERVE_CUSTOM_ATTRIBUTES && (c[a] = u);\n\t\t}\n\t\treturn (0, n.setStyleProp)(e.style, c), c;\n\t}\n\tfunction s(e) {\n\t\treturn t.possibleStandardNames[e];\n\t}\n})), cO = /* @__PURE__ */ F(((e) => {\n\tvar t = e && e.__importDefault || function(e) {\n\t\treturn e && e.__esModule ? e : { default: e };\n\t};\n\tObject.defineProperty(e, \"__esModule\", { value: !0 }), e.default = o;\n\tvar n = Yd(), r = t(sO()), i = oO(), a = {\n\t\tcloneElement: n.cloneElement,\n\t\tcreateElement: n.createElement,\n\t\tisValidElement: n.isValidElement\n\t};\n\tfunction o(e, t = {}) {\n\t\tlet n = [], c = typeof t.replace == \"function\", l = t.transform ?? i.returnFirstArg, { cloneElement: u, createElement: d, isValidElement: f } = t.library ?? a, p = e.length;\n\t\tfor (let a = 0; a < p; a++) {\n\t\t\tlet m = e[a];\n\t\t\tif (c) {\n\t\t\t\tlet e = t.replace?.call(t, m, a);\n\t\t\t\tif (f(e)) {\n\t\t\t\t\tp > 1 && (e = u(e, { key: e.key ?? a })), n.push(l(e, m, a));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (m.type === \"text\") {\n\t\t\t\tlet e = !m.data.trim().length;\n\t\t\t\tif (e && m.parent && !(0, i.canTextBeChildOfNode)(m.parent) || t.trim && e) continue;\n\t\t\t\tn.push(l(m.data, m, a));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet h = m, g = {};\n\t\t\ts(h) ? ((0, i.setStyleProp)(h.attribs.style, h.attribs), g = h.attribs) : h.attribs && (g = (0, r.default)(h.attribs, h.name));\n\t\t\tlet _;\n\t\t\tswitch (m.type) {\n\t\t\t\tcase \"script\":\n\t\t\t\tcase \"style\":\n\t\t\t\t\tm.children[0] && (g.dangerouslySetInnerHTML = { __html: m.children[0].data });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"tag\":\n\t\t\t\t\tm.name === \"textarea\" && m.children[0] ? g.defaultValue = m.children[0].data : m.children?.length && (_ = o(m.children, t));\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: continue;\n\t\t\t}\n\t\t\tp > 1 && (g.key = a), n.push(l(d(m.name, g, _), m, a));\n\t\t}\n\t\treturn n.length === 1 ? n[0] : n;\n\t}\n\tfunction s(e) {\n\t\treturn i.PRESERVE_CUSTOM_ATTRIBUTES && e.type === \"tag\" && (0, i.isCustomComponent)(e.name, e.attribs);\n\t}\n}));\n//#endregion\n//#region ../../node_modules/.pnpm/domelementtype@3.0.0/node_modules/domelementtype/dist/index.js\nfunction lO(e) {\n\treturn e.type === q.Tag || e.type === q.Script || e.type === q.Style;\n}\nvar q, uO = Be((() => {\n\t(function(e) {\n\t\te.Root = \"root\", e.Text = \"text\", e.Directive = \"directive\", e.Comment = \"comment\", e.Script = \"script\", e.Style = \"style\", e.Tag = \"tag\", e.CDATA = \"cdata\", e.Doctype = \"doctype\";\n\t})(q ||= {}), q.Root, q.Text, q.Directive, q.Comment, q.Script, q.Style, q.Tag, q.CDATA, q.Doctype;\n}));\n//#endregion\n//#region ../../node_modules/.pnpm/domhandler@6.0.1/node_modules/domhandler/dist/node.js\nfunction dO(e) {\n\treturn lO(e);\n}\nfunction fO(e) {\n\treturn e.type === q.CDATA;\n}\nfunction pO(e) {\n\treturn e.type === q.Text;\n}\nfunction mO(e) {\n\treturn e.type === q.Comment;\n}\nfunction hO(e) {\n\treturn e.type === q.Directive;\n}\nfunction gO(e) {\n\treturn e.type === q.Root;\n}\nfunction _O(e) {\n\treturn Object.hasOwn(e, \"children\");\n}\nfunction vO(e, t = !1) {\n\tlet n;\n\tif (pO(e)) n = new SO(e.data);\n\telse if (mO(e)) n = new CO(e.data);\n\telse if (dO(e)) {\n\t\tlet r = t ? yO(e.children) : [], i = new OO(e.name, { ...e.attribs }, r);\n\t\tfor (let e of r) e.parent = i;\n\t\te.namespace != null && (i.namespace = e.namespace), e[\"x-attribsNamespace\"] && (i[\"x-attribsNamespace\"] = { ...e[\"x-attribsNamespace\"] }), e[\"x-attribsPrefix\"] && (i[\"x-attribsPrefix\"] = { ...e[\"x-attribsPrefix\"] }), n = i;\n\t} else if (fO(e)) {\n\t\tlet r = t ? yO(e.children) : [], i = new EO(r);\n\t\tfor (let e of r) e.parent = i;\n\t\tn = i;\n\t} else if (gO(e)) {\n\t\tlet r = t ? yO(e.children) : [], i = new DO(r);\n\t\tfor (let e of r) e.parent = i;\n\t\te[\"x-mode\"] && (i[\"x-mode\"] = e[\"x-mode\"]), n = i;\n\t} else if (hO(e)) {\n\t\tlet t = new wO(e.name, e.data);\n\t\te[\"x-name\"] != null && (t[\"x-name\"] = e[\"x-name\"], t[\"x-publicId\"] = e[\"x-publicId\"], t[\"x-systemId\"] = e[\"x-systemId\"]), n = t;\n\t} else throw Error(`Not implemented yet: ${e.type}`);\n\treturn n.startIndex = e.startIndex, n.endIndex = e.endIndex, e.sourceCodeLocation != null && (n.sourceCodeLocation = e.sourceCodeLocation), n;\n}\nfunction yO(e) {\n\tlet t = e.map((e) => vO(e, !0));\n\tfor (let e = 1; e < t.length; e++) t[e].prev = t[e - 1], t[e - 1].next = t[e];\n\treturn t;\n}\nvar bO, xO, SO, CO, wO, TO, EO, DO, OO, kO = Be((() => {\n\tuO(), bO = class {\n\t\tparent = null;\n\t\tprev = null;\n\t\tnext = null;\n\t\tstartIndex = null;\n\t\tendIndex = null;\n\t\tget parentNode() {\n\t\t\treturn this.parent;\n\t\t}\n\t\tset parentNode(e) {\n\t\t\tthis.parent = e;\n\t\t}\n\t\tget previousSibling() {\n\t\t\treturn this.prev;\n\t\t}\n\t\tset previousSibling(e) {\n\t\t\tthis.prev = e;\n\t\t}\n\t\tget nextSibling() {\n\t\t\treturn this.next;\n\t\t}\n\t\tset nextSibling(e) {\n\t\t\tthis.next = e;\n\t\t}\n\t\tcloneNode(e = !1) {\n\t\t\treturn vO(this, e);\n\t\t}\n\t}, xO = class extends bO {\n\t\tdata;\n\t\tconstructor(e) {\n\t\t\tsuper(), this.data = e;\n\t\t}\n\t\tget nodeValue() {\n\t\t\treturn this.data;\n\t\t}\n\t\tset nodeValue(e) {\n\t\t\tthis.data = e;\n\t\t}\n\t}, SO = class extends xO {\n\t\ttype = q.Text;\n\t\tget nodeType() {\n\t\t\treturn 3;\n\t\t}\n\t}, CO = class extends xO {\n\t\ttype = q.Comment;\n\t\tget nodeType() {\n\t\t\treturn 8;\n\t\t}\n\t}, wO = class extends xO {\n\t\ttype = q.Directive;\n\t\tname;\n\t\tconstructor(e, t) {\n\t\t\tsuper(t), this.name = e;\n\t\t}\n\t\tget nodeType() {\n\t\t\treturn 1;\n\t\t}\n\t\t\"x-name\";\n\t\t\"x-publicId\";\n\t\t\"x-systemId\";\n\t}, TO = class extends bO {\n\t\tchildren;\n\t\tconstructor(e) {\n\t\t\tsuper(), this.children = e;\n\t\t}\n\t\tget firstChild() {\n\t\t\treturn this.children[0] ?? null;\n\t\t}\n\t\tget lastChild() {\n\t\t\treturn this.children.length > 0 ? this.children[this.children.length - 1] : null;\n\t\t}\n\t\tget childNodes() {\n\t\t\treturn this.children;\n\t\t}\n\t\tset childNodes(e) {\n\t\t\tthis.children = e;\n\t\t}\n\t}, EO = class extends TO {\n\t\ttype = q.CDATA;\n\t\tget nodeType() {\n\t\t\treturn 4;\n\t\t}\n\t}, DO = class extends TO {\n\t\ttype = q.Root;\n\t\tget nodeType() {\n\t\t\treturn 9;\n\t\t}\n\t}, OO = class extends TO {\n\t\tname;\n\t\tattribs;\n\t\ttype;\n\t\tconstructor(e, t, n = [], r = e === \"script\" ? q.Script : e === \"style\" ? q.Style : q.Tag) {\n\t\t\tsuper(n), this.name = e, this.attribs = t, this.type = r;\n\t\t}\n\t\tget nodeType() {\n\t\t\treturn 1;\n\t\t}\n\t\tget tagName() {\n\t\t\treturn this.name;\n\t\t}\n\t\tset tagName(e) {\n\t\t\tthis.name = e;\n\t\t}\n\t\tget attributes() {\n\t\t\treturn Object.keys(this.attribs).map((e) => ({\n\t\t\t\tname: e,\n\t\t\t\tvalue: this.attribs[e],\n\t\t\t\tnamespace: this[\"x-attribsNamespace\"]?.[e],\n\t\t\t\tprefix: this[\"x-attribsPrefix\"]?.[e]\n\t\t\t}));\n\t\t}\n\t\tnamespace;\n\t\t\"x-attribsNamespace\";\n\t\t\"x-attribsPrefix\";\n\t};\n})), AO = /* @__PURE__ */ Ve({\n\tCDATA: () => EO,\n\tComment: () => CO,\n\tDataNode: () => xO,\n\tDocument: () => DO,\n\tDomHandler: () => MO,\n\tElement: () => OO,\n\tNode: () => bO,\n\tNodeWithChildren: () => TO,\n\tProcessingInstruction: () => wO,\n\tText: () => SO,\n\tcloneNode: () => vO,\n\tdefault: () => MO,\n\thasChildren: () => _O,\n\tisCDATA: () => fO,\n\tisComment: () => mO,\n\tisDirective: () => hO,\n\tisDocument: () => gO,\n\tisTag: () => dO,\n\tisText: () => pO\n}), jO, MO, NO = Be((() => {\n\tuO(), kO(), kO(), jO = {\n\t\twithStartIndices: !1,\n\t\twithEndIndices: !1,\n\t\txmlMode: !1\n\t}, MO = class {\n\t\tdom = [];\n\t\troot = new DO(this.dom);\n\t\tcallback;\n\t\toptions;\n\t\telementCB;\n\t\tdone = !1;\n\t\ttagStack = [this.root];\n\t\tlastNode = null;\n\t\tparser = null;\n\t\tconstructor(e, t, n) {\n\t\t\ttypeof t == \"function\" && (n = t, t = jO), typeof e == \"object\" && (t = e, e = void 0), this.callback = e ?? null, this.options = t ?? jO, this.elementCB = n ?? null;\n\t\t}\n\t\tonparserinit(e) {\n\t\t\tthis.parser = e;\n\t\t}\n\t\tonreset() {\n\t\t\tthis.dom = [], this.root = new DO(this.dom), this.done = !1, this.tagStack = [this.root], this.lastNode = null, this.parser = null;\n\t\t}\n\t\tonend() {\n\t\t\tthis.done || (this.done = !0, this.parser = null, this.handleCallback(null));\n\t\t}\n\t\tonerror(e) {\n\t\t\tthis.handleCallback(e);\n\t\t}\n\t\tonclosetag() {\n\t\t\tthis.lastNode = null;\n\t\t\tlet e = this.tagStack.pop();\n\t\t\tthis.options.withEndIndices && this.parser && (e.endIndex = this.parser.endIndex), this.elementCB && this.elementCB(e);\n\t\t}\n\t\tonopentag(e, t) {\n\t\t\tlet n = new OO(e, t, void 0, this.options.xmlMode ? q.Tag : void 0);\n\t\t\tthis.addNode(n), this.tagStack.push(n);\n\t\t}\n\t\tontext(e) {\n\t\t\tlet { lastNode: t } = this;\n\t\t\tif (t && t.type === q.Text) t.data += e, this.options.withEndIndices && this.parser && (t.endIndex = this.parser.endIndex);\n\t\t\telse {\n\t\t\t\tlet t = new SO(e);\n\t\t\t\tthis.addNode(t), this.lastNode = t;\n\t\t\t}\n\t\t}\n\t\toncomment(e) {\n\t\t\tif (this.lastNode && this.lastNode.type === q.Comment) {\n\t\t\t\tthis.lastNode.data += e;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet t = new CO(e);\n\t\t\tthis.addNode(t), this.lastNode = t;\n\t\t}\n\t\toncommentend() {\n\t\t\tthis.lastNode = null;\n\t\t}\n\t\toncdatastart() {\n\t\t\tlet e = new SO(\"\"), t = new EO([e]);\n\t\t\tthis.addNode(t), e.parent = t, this.lastNode = e;\n\t\t}\n\t\toncdataend() {\n\t\t\tthis.lastNode = null;\n\t\t}\n\t\tonprocessinginstruction(e, t) {\n\t\t\tlet n = new wO(e, t);\n\t\t\tthis.addNode(n);\n\t\t}\n\t\thandleCallback(e) {\n\t\t\tif (typeof this.callback == \"function\") this.callback(e, this.dom);\n\t\t\telse if (e) throw e;\n\t\t}\n\t\taddNode(e) {\n\t\t\tlet t = this.tagStack[this.tagStack.length - 1], n = t.children[t.children.length - 1];\n\t\t\tthis.options.withStartIndices && this.parser && (e.startIndex = this.parser.startIndex), this.options.withEndIndices && this.parser && (e.endIndex = this.parser.endIndex), t.children.push(e), n && (e.prev = n, n.next = e), e.parent = t, this.lastNode = null;\n\t\t}\n\t};\n})), PO = /* @__PURE__ */ Ue((/* @__PURE__ */ F(((e) => {\n\tvar t = e && e.__importDefault || function(e) {\n\t\treturn e && e.__esModule ? e : { default: e };\n\t};\n\tObject.defineProperty(e, \"__esModule\", { value: !0 }), e.htmlToDOM = e.domToReact = e.attributesToProps = e.Text = e.ProcessingInstruction = e.Element = e.Comment = void 0, e.default = o;\n\tvar n = t($D());\n\te.htmlToDOM = n.default, e.attributesToProps = t(sO()).default;\n\tvar r = t(cO());\n\te.domToReact = r.default;\n\tvar i = (NO(), We(AO));\n\tObject.defineProperty(e, \"Comment\", {\n\t\tenumerable: !0,\n\t\tget: function() {\n\t\t\treturn i.Comment;\n\t\t}\n\t}), Object.defineProperty(e, \"Element\", {\n\t\tenumerable: !0,\n\t\tget: function() {\n\t\t\treturn i.Element;\n\t\t}\n\t}), Object.defineProperty(e, \"ProcessingInstruction\", {\n\t\tenumerable: !0,\n\t\tget: function() {\n\t\t\treturn i.ProcessingInstruction;\n\t\t}\n\t}), Object.defineProperty(e, \"Text\", {\n\t\tenumerable: !0,\n\t\tget: function() {\n\t\t\treturn i.Text;\n\t\t}\n\t});\n\tvar a = { lowerCaseAttributeNames: !1 };\n\tfunction o(e, t) {\n\t\tif (typeof e != \"string\") throw TypeError(\"First argument must be a string\");\n\t\treturn e ? (0, r.default)((0, n.default)(e, t?.htmlparser2 ?? a), t) : [];\n\t}\n})))(), 1), FO = PO.default.default || PO.default;\n//#endregion\n//#region src/core/utils/applyReplacerOnString.tsx\nfunction IO(e, t) {\n\treturn t ? (Array.isArray(e) ? e : [e]).map((e, n) => typeof e == \"string\" ? /* @__PURE__ */ (0, B.jsx)(o.Fragment, { children: t(new PO.Text(e), 0) || e }, n) : e) : e;\n}\n//#endregion\n//#region src/room/timeline/event-tile/body/EventContentBodyView/EventContentBodyView.tsx\nvar LO = p(function({ vm: e, as: t, ref: n }) {\n\tlet { body: r, formattedBody: i, replacer: a, className: o, dir: s, parseFormattedBody: c } = U(e), l = i ? (c ?? ((e, t) => FO(e, t ? { replace: t } : void 0)))(i, a) : IO(r, a);\n\treturn t === \"span\" ? /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tref: n,\n\t\tclassName: o,\n\t\tdir: s,\n\t\tchildren: l\n\t}) : /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tref: n,\n\t\tclassName: o,\n\t\tdir: s,\n\t\tchildren: l\n\t});\n}), RO = {\n\tcontent: \"_content_1wtpw_8\",\n\ticon: \"_icon_1wtpw_17\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/body/HiddenBodyView/HiddenBodyView.tsx\nfunction zO({ vm: e, className: t, ref: n }) {\n\tlet { reason: r } = U(e), i = V().translate, a = r ? i(\"timeline|pending_moderation_reason\", { reason: r }) : i(\"timeline|pending_moderation\");\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\tclassName: (0, z.default)(RO.content, t),\n\t\tref: n,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(mw, {\n\t\t\tclassName: RO.icon,\n\t\t\t\"aria-hidden\": \"true\"\n\t\t}), /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\tas: \"span\",\n\t\t\tchildren: a\n\t\t})]\n\t});\n}\nvar BO = {\n\tbutton: \"_button_1ync4_8\",\n\tcontent: \"_content_1ync4_27\",\n\ticon: \"_icon_1ync4_34\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/body/HiddenMediaPlaceholder/HiddenMediaPlaceholder.tsx\nfunction VO({ className: e, onClick: t, children: n }) {\n\treturn /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\ttype: \"button\",\n\t\tonClick: t,\n\t\tclassName: (0, z.default)(BO.button, e),\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\t\tclassName: BO.content,\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(gw, {\n\t\t\t\tclassName: BO.icon,\n\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t}), /* @__PURE__ */ (0, B.jsx)(\"span\", { children: n })]\n\t\t})\n\t});\n}\nvar HO = {\n\tcontent: \"_content_1xhpr_8\",\n\ticon: \"_icon_1xhpr_17\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/body/RedactedBodyView/RedactedBodyView.tsx\nfunction UO({ vm: e, className: t, ref: n }) {\n\tlet { text: r, tooltip: i } = U(e), a = /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\tclassName: (0, z.default)(HO.content, t),\n\t\tref: n,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(wS, {\n\t\t\tclassName: HO.icon,\n\t\t\t\"aria-hidden\": \"true\"\n\t\t}), /* @__PURE__ */ (0, B.jsx)(\"span\", { children: r })]\n\t});\n\treturn i ? /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: i,\n\t\tchildren: a\n\t}) : a;\n}\nvar WO = {\n\tcontent: \"_content_bibip_8\",\n\tinvalid: \"_invalid_bibip_73\"\n}, GO = { mediaBody: \"_mediaBody_14jys_8\" };\n//#endregion\n//#region src/room/timeline/event-tile/body/MediaBody/MediaBody.tsx\nfunction KO({ as: e, className: t, children: n, ...r }) {\n\treturn /* @__PURE__ */ (0, B.jsx)(e || \"div\", {\n\t\tclassName: (0, z.default)(\"mx_MediaBody\", GO.mediaBody, t),\n\t\t...r,\n\t\tchildren: n\n\t});\n}\n//#endregion\n//#region src/room/timeline/event-tile/body/MFileBodyView/FileBodyView.tsx\nvar qO = /* @__PURE__ */ function(e) {\n\treturn e.EXPORT = \"EXPORT\", e.DECRYPTION_PENDING = \"DECRYPTION_PENDING\", e.ENCRYPTED = \"ENCRYPTED\", e.UNENCRYPTED = \"UNENCRYPTED\", e.INVALID = \"INVALID\", e;\n}({}), JO = /* @__PURE__ */ function(e) {\n\treturn e.ATTACHMENT = \"ATTACHMENT\", e.AUDIO = \"AUDIO\", e.DOWNLOAD = \"DOWNLOAD\", e.VIDEO = \"VIDEO\", e;\n}({});\nfunction YO(e) {\n\treturn e === \"AUDIO\" ? Sw : e === \"DOWNLOAD\" ? AS : e === \"VIDEO\" ? uw : nS;\n}\nfunction XO({ vm: e, refIFrame: t, refLink: n, className: r }) {\n\tlet { translate: i } = V(), { state: a, showInfo: o, infoLabel: s, infoTooltip: c, infoIcon: l, infoHref: u, showDownload: d, downloadLabel: f, downloadTitle: p, downloadHref: m } = U(e), h = s ?? i(\"common|attachment\"), g = c ?? h, _ = YO(l), v = o ? /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: g,\n\t\tplacement: \"right\",\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(KO, {\n\t\t\t\"data-type\": \"info\",\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tas: \"button\",\n\t\t\t\tsize: \"md\",\n\t\t\t\tkind: \"secondary\",\n\t\t\t\t\"aria-label\": h,\n\t\t\t\tIcon: _,\n\t\t\t\tonClick: e.onInfoClick,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"span\", { children: h })\n\t\t\t})\n\t\t})\n\t}) : null, y = (0, z.default)(WO.content, r), b = f ?? i(\"action|download\"), x = p ?? b;\n\tswitch (a) {\n\t\tcase \"EXPORT\": return /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\tclassName: y,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"a\", {\n\t\t\t\thref: u,\n\t\t\t\tchildren: v\n\t\t\t})\n\t\t});\n\t\tcase \"DECRYPTION_PENDING\": return /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\t\tclassName: y,\n\t\t\tchildren: [v, d && /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\t\"data-type\": \"download\",\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\t\tsize: \"md\",\n\t\t\t\t\tkind: \"secondary\",\n\t\t\t\t\tIcon: AS,\n\t\t\t\t\tonClick: e.onDownloadClick,\n\t\t\t\t\tchildren: b\n\t\t\t\t})\n\t\t\t})]\n\t\t});\n\t\tcase \"ENCRYPTED\": return /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\t\tclassName: y,\n\t\t\tchildren: [v, d && /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\t\"data-type\": \"download\",\n\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\t\t\"aria-hidden\": !0,\n\t\t\t\t\tstyle: { display: \"none\" },\n\t\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\t\t\tsize: \"md\",\n\t\t\t\t\t\tkind: \"secondary\",\n\t\t\t\t\t\tIcon: AS,\n\t\t\t\t\t\tas: \"a\",\n\t\t\t\t\t\tref: n\n\t\t\t\t\t})\n\t\t\t\t}), /* @__PURE__ */ (0, B.jsx)(\"iframe\", {\n\t\t\t\t\t\"aria-hidden\": !0,\n\t\t\t\t\ttitle: x,\n\t\t\t\t\tsrc: \"usercontent/\",\n\t\t\t\t\tonLoad: e.onDownloadIframeLoad,\n\t\t\t\t\tref: t,\n\t\t\t\t\tsandbox: \"allow-scripts allow-downloads\"\n\t\t\t\t})]\n\t\t\t})]\n\t\t});\n\t\tcase \"UNENCRYPTED\": return /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\t\tclassName: y,\n\t\t\tchildren: [v, d && /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\t\"data-type\": \"download\",\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\t\tsize: \"md\",\n\t\t\t\t\tkind: \"secondary\",\n\t\t\t\t\tIcon: AS,\n\t\t\t\t\tas: \"a\",\n\t\t\t\t\thref: m,\n\t\t\t\t\ttarget: \"_blank\",\n\t\t\t\t\trel: \"noreferrer noopener\",\n\t\t\t\t\tonClick: e.onDownloadLinkClick,\n\t\t\t\t\tchildren: b\n\t\t\t\t})\n\t\t\t})]\n\t\t});\n\t\tdefault: return /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\tclassName: y,\n\t\t\tchildren: v\n\t\t}), /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\tclassName: (0, z.default)(y, WO.invalid),\n\t\t\tchildren: i(\"timeline|m.file|error_invalid\")\n\t\t})] });\n\t}\n}\n//#endregion\n//#region ../../node_modules/.pnpm/blurhash@2.0.5/node_modules/blurhash/dist/esm/index.js\nvar ZO = /* @__PURE__ */ \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$%*+,-.:;=?@[]^_{|}~\".split(\"\"), QO = (e) => {\n\tlet t = 0;\n\tfor (let n = 0; n < e.length; n++) {\n\t\tlet r = e[n], i = ZO.indexOf(r);\n\t\tt = t * 83 + i;\n\t}\n\treturn t;\n}, $O = (e) => {\n\tlet t = e / 255;\n\treturn t <= .04045 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;\n}, ek = (e) => {\n\tlet t = Math.max(0, Math.min(1, e));\n\treturn Math.trunc(t <= .0031308 ? t * 12.92 * 255 + .5 : (1.055 * t ** .4166666666666667 - .055) * 255 + .5);\n}, tk = (e) => e < 0 ? -1 : 1, nk = (e, t) => tk(e) * Math.abs(e) ** +t, rk = class extends Error {\n\tconstructor(e) {\n\t\tsuper(e), this.name = \"ValidationError\", this.message = e;\n\t}\n}, ik = (e) => {\n\tif (!e || e.length < 6) throw new rk(\"The blurhash string must be at least 6 characters\");\n\tlet t = QO(e[0]), n = Math.floor(t / 9) + 1, r = t % 9 + 1;\n\tif (e.length !== 4 + 2 * r * n) throw new rk(`blurhash length mismatch: length is ${e.length} but it should be ${4 + 2 * r * n}`);\n}, ak = (e) => {\n\tlet t = e >> 16, n = e >> 8 & 255, r = e & 255;\n\treturn [\n\t\t$O(t),\n\t\t$O(n),\n\t\t$O(r)\n\t];\n}, ok = (e, t) => {\n\tlet n = Math.floor(e / 361), r = Math.floor(e / 19) % 19, i = e % 19;\n\treturn [\n\t\tnk((n - 9) / 9, 2) * t,\n\t\tnk((r - 9) / 9, 2) * t,\n\t\tnk((i - 9) / 9, 2) * t\n\t];\n}, sk = (e, t, n, r) => {\n\tik(e), r |= 1;\n\tlet i = QO(e[0]), a = Math.floor(i / 9) + 1, o = i % 9 + 1, s = (QO(e[1]) + 1) / 166, c = Array(o * a);\n\tfor (let t = 0; t < c.length; t++) t === 0 ? c[t] = ak(QO(e.substring(2, 6))) : c[t] = ok(QO(e.substring(4 + t * 2, 6 + t * 2)), s * r);\n\tlet l = t * 4, u = new Uint8ClampedArray(l * n);\n\tfor (let e = 0; e < n; e++) for (let r = 0; r < t; r++) {\n\t\tlet i = 0, s = 0, d = 0;\n\t\tfor (let l = 0; l < a; l++) for (let a = 0; a < o; a++) {\n\t\t\tlet u = Math.cos(Math.PI * r * a / t) * Math.cos(Math.PI * e * l / n), f = c[a + l * o];\n\t\t\ti += f[0] * u, s += f[1] * u, d += f[2] * u;\n\t\t}\n\t\tlet f = ek(i), p = ek(s), m = ek(d);\n\t\tu[4 * r + 0 + e * l] = f, u[4 * r + 1 + e * l] = p, u[4 * r + 2 + e * l] = m, u[4 * r + 3 + e * l] = 255;\n\t}\n\treturn u;\n}, ck = Object.defineProperty, lk = Object.defineProperties, uk = Object.getOwnPropertyDescriptors, dk = Object.getOwnPropertySymbols, fk = Object.prototype.hasOwnProperty, pk = Object.prototype.propertyIsEnumerable, mk = (e, t, n) => t in e ? ck(e, t, {\n\tenumerable: !0,\n\tconfigurable: !0,\n\twritable: !0,\n\tvalue: n\n}) : e[t] = n, hk = (e, t) => {\n\tfor (var n in t ||= {}) fk.call(t, n) && mk(e, n, t[n]);\n\tif (dk) for (var n of dk(t)) pk.call(t, n) && mk(e, n, t[n]);\n\treturn e;\n}, gk = (e, t) => lk(e, uk(t)), _k = (e, t) => {\n\tvar n = {};\n\tfor (var r in e) fk.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);\n\tif (e != null && dk) for (var r of dk(e)) t.indexOf(r) < 0 && pk.call(e, r) && (n[r] = e[r]);\n\treturn n;\n}, vk = class extends a.PureComponent {\n\tconstructor() {\n\t\tsuper(...arguments), this.canvas = null, this.handleRef = (e) => {\n\t\t\tthis.canvas = e, this.draw();\n\t\t}, this.draw = () => {\n\t\t\tlet { hash: e, height: t, punch: n, width: r } = this.props;\n\t\t\tif (this.canvas) {\n\t\t\t\tlet i = sk(e, r, t, n), a = this.canvas.getContext(\"2d\"), o = a.createImageData(r, t);\n\t\t\t\to.data.set(i), a.putImageData(o, 0, 0);\n\t\t\t}\n\t\t};\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.draw();\n\t}\n\trender() {\n\t\tlet e = this.props, { hash: t, height: n, width: r } = e, i = _k(e, [\n\t\t\t\"hash\",\n\t\t\t\"height\",\n\t\t\t\"width\"\n\t\t]);\n\t\treturn a.createElement(\"canvas\", gk(hk({}, i), {\n\t\t\theight: n,\n\t\t\twidth: r,\n\t\t\tref: this.handleRef\n\t\t}));\n\t}\n};\nvk.defaultProps = {\n\theight: 128,\n\twidth: 128\n};\nvar yk = {\n\tposition: \"absolute\",\n\ttop: 0,\n\tbottom: 0,\n\tleft: 0,\n\tright: 0,\n\twidth: \"100%\",\n\theight: \"100%\"\n}, bk = class extends a.PureComponent {\n\tcomponentDidUpdate() {\n\t\tif (this.props.resolutionX <= 0) throw Error(\"resolutionX must be larger than zero\");\n\t\tif (this.props.resolutionY <= 0) throw Error(\"resolutionY must be larger than zero\");\n\t}\n\trender() {\n\t\tlet e = this.props, { hash: t, height: n, width: r, punch: i, resolutionX: o, resolutionY: s, style: c } = e, l = _k(e, [\n\t\t\t\"hash\",\n\t\t\t\"height\",\n\t\t\t\"width\",\n\t\t\t\"punch\",\n\t\t\t\"resolutionX\",\n\t\t\t\"resolutionY\",\n\t\t\t\"style\"\n\t\t]);\n\t\treturn a.createElement(\"div\", gk(hk({}, l), { style: gk(hk({\n\t\t\tdisplay: \"inline-block\",\n\t\t\theight: n,\n\t\t\twidth: r\n\t\t}, c), { position: \"relative\" }) }), a.createElement(vk, {\n\t\t\thash: t,\n\t\t\theight: s,\n\t\t\twidth: o,\n\t\t\tpunch: i,\n\t\t\tstyle: yk\n\t\t}));\n\t}\n};\nbk.defaultProps = {\n\theight: 128,\n\twidth: 128,\n\tresolutionX: 32,\n\tresolutionY: 32\n};\nvar xk = {\n\troot: \"_root_fcacc_8\",\n\tlink: \"_link_fcacc_15\",\n\tthumbnailContainer: \"_thumbnailContainer_fcacc_22\",\n\tplaceholder: \"_placeholder_fcacc_29\",\n\tplaceholderBlurhash: \"_placeholderBlurhash_fcacc_39\",\n\tblurhash: \"_blurhash_fcacc_43\",\n\tblurhashPulse: \"_blurhashPulse_fcacc_1\",\n\tmediaContent: \"_mediaContent_fcacc_54\",\n\timage: \"_image_fcacc_60\",\n\tbanner: \"_banner_fcacc_66\",\n\tgifLabel: \"_gifLabel_fcacc_83\",\n\thiddenButton: \"_hiddenButton_fcacc_96\",\n\thiddenButtonContent: \"_hiddenButtonContent_fcacc_115\",\n\terror: \"_error_fcacc_125\",\n\terrorIcon: \"_errorIcon_fcacc_130\"\n}, Sk = /* @__PURE__ */ function(e) {\n\treturn e.ERROR = \"ERROR\", e.HIDDEN = \"HIDDEN\", e.READY = \"READY\", e;\n}({}), Ck = /* @__PURE__ */ function(e) {\n\treturn e.NONE = \"NONE\", e.SPINNER = \"SPINNER\", e.BLURHASH = \"BLURHASH\", e;\n}({});\nfunction wk({ placeholder: e, blurhash: t, maxWidth: n, maxHeight: r, loadingLabel: i }) {\n\tswitch (e) {\n\t\tcase \"BLURHASH\": return t ? /* @__PURE__ */ (0, B.jsx)(bk, {\n\t\t\tclassName: xk.blurhash,\n\t\t\thash: t,\n\t\t\twidth: n ?? 320,\n\t\t\theight: r ?? 240\n\t\t}) : /* @__PURE__ */ (0, B.jsx)(ce, {\n\t\t\t\"aria-label\": i,\n\t\t\trole: \"progressbar\"\n\t\t});\n\t\tcase \"SPINNER\": return /* @__PURE__ */ (0, B.jsx)(ce, {\n\t\t\t\"aria-label\": i,\n\t\t\trole: \"progressbar\"\n\t\t});\n\t\tdefault: return null;\n\t}\n}\nfunction Tk({ vm: e, className: t, containerClassName: n, imageClassName: r, imageRef: i, children: a }) {\n\tlet { translate: o } = V(), { state: s, alt: c, errorLabel: l, hiddenButtonLabel: u, src: d, thumbnailSrc: f, showAnimatedContentOnHover: p, placeholder: m = \"NONE\", blurhash: h, maxWidth: g, maxHeight: _, aspectRatio: v, isSvg: y, gifLabel: b, bannerLabel: x, tooltipLabel: S, linkUrl: C, linkTarget: w } = U(e), [ee, te] = T(!1), [E, ne] = T(!1), D = ee || E, O = (0, z.default)(t, xk.root), k = (0, z.default)(n, xk.thumbnailContainer), re = (0, z.default)(r, xk.image);\n\tif (s === \"ERROR\") return /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\tclassName: (0, z.default)(O, xk.error),\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(eC, {\n\t\t\tclassName: xk.errorIcon,\n\t\t\twidth: \"16\",\n\t\t\theight: \"16\"\n\t\t}), l]\n\t});\n\tlet ie = D && p && d ? d : f ?? d, A = g === void 0 ? void 0 : `min(100%, ${g}px)`, j = {\n\t\twidth: A,\n\t\tmaxWidth: g,\n\t\tmaxHeight: _,\n\t\taspectRatio: v\n\t}, ae = y ? {\n\t\twidth: A,\n\t\tmaxWidth: g,\n\t\tmaxHeight: _\n\t} : void 0, oe = wk({\n\t\tplaceholder: m,\n\t\tblurhash: h,\n\t\tmaxWidth: g,\n\t\tmaxHeight: _,\n\t\tloadingLabel: o(\"common|loading\")\n\t}), M = oe !== null, se = s === \"HIDDEN\" ? /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tstyle: {\n\t\t\twidth: g,\n\t\t\theight: _\n\t\t},\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\ttype: \"button\",\n\t\t\tclassName: xk.hiddenButton,\n\t\t\tonClick: e.onHiddenButtonClick,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\tclassName: xk.hiddenButtonContent,\n\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(gw, {}), /* @__PURE__ */ (0, B.jsx)(\"span\", { children: u })]\n\t\t\t})\n\t\t})\n\t}) : ie ? /* @__PURE__ */ (0, B.jsx)(\"img\", {\n\t\tclassName: re,\n\t\tsrc: ie,\n\t\talt: c,\n\t\tref: i,\n\t\tonError: e.onImageError,\n\t\tonLoad: e.onImageLoad,\n\t\tonMouseEnter: () => te(!0),\n\t\tonMouseLeave: () => te(!1)\n\t}) : null, ce = s === \"READY\" && x && D ? /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tclassName: xk.banner,\n\t\tchildren: x\n\t}) : null, le = s === \"READY\" && b && !D ? /* @__PURE__ */ (0, B.jsx)(\"p\", {\n\t\tclassName: xk.gifLabel,\n\t\tchildren: b\n\t}) : null, ue = /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: k,\n\t\tstyle: j,\n\t\tchildren: [M && /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: (0, z.default)(xk.placeholder, { [xk.placeholderBlurhash]: m === \"BLURHASH\" && !!h }),\n\t\t\tchildren: oe\n\t\t}), /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tclassName: xk.mediaContent,\n\t\t\tstyle: ae,\n\t\t\tchildren: [\n\t\t\t\tse,\n\t\t\t\tle,\n\t\t\t\tce\n\t\t\t]\n\t\t})]\n\t});\n\treturn S && (ue = /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: S,\n\t\tplacement: \"right\",\n\t\tisTriggerInteractive: !0,\n\t\tchildren: ue\n\t})), s === \"READY\" && C && (ue = /* @__PURE__ */ (0, B.jsx)(\"a\", {\n\t\thref: C,\n\t\ttarget: w,\n\t\trel: w === \"_blank\" ? \"noreferrer noopener\" : void 0,\n\t\tclassName: xk.link,\n\t\tonClick: e.onLinkClick,\n\t\tonFocus: () => ne(!0),\n\t\tonBlur: () => ne(!1),\n\t\tchildren: ue\n\t})), /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: O,\n\t\tchildren: [ue, a]\n\t});\n}\nvar Ek = {\n\troot: \"_root_1rkau_8\",\n\tmeasureImage: \"_measureImage_1rkau_13\",\n\tthumbnailContainer: \"_thumbnailContainer_1rkau_17\",\n\tplaceholder: \"_placeholder_1rkau_26\",\n\tspinner: \"_spinner_1rkau_35\",\n\tblurhash: \"_blurhash_1rkau_44\",\n\tblurhashPulse: \"_blurhashPulse_1rkau_1\",\n\tmediaContent: \"_mediaContent_1rkau_48\",\n\timage: \"_image_1rkau_53\",\n\tbanner: \"_banner_1rkau_59\",\n\tgifLabel: \"_gifLabel_1rkau_76\"\n}, Dk = /* @__PURE__ */ function(e) {\n\treturn e.NONE = \"NONE\", e.SPINNER = \"SPINNER\", e.BLURHASH = \"BLURHASH\", e;\n}({});\nfunction Ok({ placeholder: e, blurhash: t, maxWidth: n, maxHeight: r, loadingLabel: i }) {\n\tswitch (e) {\n\t\tcase \"BLURHASH\": return t ? /* @__PURE__ */ (0, B.jsx)(bk, {\n\t\t\tclassName: Ek.blurhash,\n\t\t\thash: t,\n\t\t\twidth: n ?? 58,\n\t\t\theight: r ?? 44\n\t\t}) : /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: Ek.spinner,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(ce, {\n\t\t\t\tsize: 32,\n\t\t\t\t\"aria-label\": i,\n\t\t\t\trole: \"progressbar\"\n\t\t\t})\n\t\t});\n\t\tcase \"SPINNER\": return /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: Ek.spinner,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(ce, {\n\t\t\t\tsize: 32,\n\t\t\t\t\"aria-label\": i,\n\t\t\t\trole: \"progressbar\"\n\t\t\t})\n\t\t});\n\t\tdefault: return null;\n\t}\n}\nfunction kk({ className: e, imageRef: t, src: n, thumbnailSrc: r, alt: i, maxWidth: a, maxHeight: o, aspectRatio: s, isSvg: c, placeholder: l = \"NONE\", blurhash: u, showAnimatedContentOnHover: d, showImage: f = !0, gifLabel: p, bannerLabel: m, onImageLoad: h, onImageError: g }) {\n\tlet { translate: _ } = V(), [v, y] = T(!1), b = v && d && n ? n : r ?? n;\n\tif (!b) return /* @__PURE__ */ (0, B.jsx)(\"div\", { className: (0, z.default)(Ek.root, e) });\n\tif (a === void 0 || o === void 0 || s === void 0) return f ? /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: (0, z.default)(Ek.root, e),\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"img\", {\n\t\t\tclassName: Ek.measureImage,\n\t\t\tsrc: b,\n\t\t\tref: t,\n\t\t\talt: i,\n\t\t\tonError: g,\n\t\t\tonLoad: h\n\t\t})\n\t}) : /* @__PURE__ */ (0, B.jsx)(\"div\", { className: (0, z.default)(Ek.root, e) });\n\tlet x = {\n\t\tmaxWidth: a,\n\t\tmaxHeight: o,\n\t\taspectRatio: s\n\t}, S = c ? {\n\t\twidth: a,\n\t\tmaxWidth: a,\n\t\tmaxHeight: o\n\t} : {\n\t\twidth: \"100%\",\n\t\theight: \"100%\",\n\t\tmaxWidth: a,\n\t\tmaxHeight: o\n\t}, C = Ok({\n\t\tplaceholder: l,\n\t\tblurhash: u,\n\t\tmaxWidth: a,\n\t\tmaxHeight: o,\n\t\tloadingLabel: _(\"common|loading\")\n\t});\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: (0, z.default)(Ek.root, e),\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tclassName: Ek.thumbnailContainer,\n\t\t\tstyle: x,\n\t\t\tchildren: [C && /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: Ek.placeholder,\n\t\t\t\tchildren: C\n\t\t\t}), /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\tclassName: Ek.mediaContent,\n\t\t\t\tstyle: S,\n\t\t\t\tchildren: [\n\t\t\t\t\tf ? /* @__PURE__ */ (0, B.jsx)(\"img\", {\n\t\t\t\t\t\tclassName: Ek.image,\n\t\t\t\t\t\tsrc: b,\n\t\t\t\t\t\tref: t,\n\t\t\t\t\t\talt: i,\n\t\t\t\t\t\tonError: g,\n\t\t\t\t\t\tonLoad: h,\n\t\t\t\t\t\tonMouseEnter: () => y(!0),\n\t\t\t\t\t\tonMouseLeave: () => y(!1)\n\t\t\t\t\t}) : null,\n\t\t\t\t\tp && !v ? /* @__PURE__ */ (0, B.jsx)(\"p\", {\n\t\t\t\t\t\tclassName: Ek.gifLabel,\n\t\t\t\t\t\tchildren: p\n\t\t\t\t\t}) : null,\n\t\t\t\t\tm && v ? /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\t\t\tclassName: Ek.banner,\n\t\t\t\t\t\tchildren: m\n\t\t\t\t\t}) : null\n\t\t\t\t]\n\t\t\t})]\n\t\t})\n\t});\n}\nvar Ak = {\n\tcontent: \"_content_1sgf8_8\",\n\tallowButton: \"_allowButton_1sgf8_13\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/body/MjolnirBodyView/MjolnirBodyView.tsx\nfunction jk({ vm: e, className: t, ref: n }) {\n\tU(e);\n\tlet r = V().translate;\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: (0, z.default)(Ak.content, t),\n\t\tref: n,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"i\", { children: r(\"timeline|mjolnir|message_hidden\", {}, { a: (t) => /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\ttype: \"button\",\n\t\t\tclassName: Ak.allowButton,\n\t\t\tonClick: e.onAllowClick,\n\t\t\tchildren: t\n\t\t}) }) })\n\t});\n}\nvar Mk = {\n\troot: \"_root_acuv8_1\",\n\tcontainer: \"_container_acuv8_5\",\n\tvideo: \"_video_acuv8_10\",\n\thiddenButton: \"_hiddenButton_acuv8_17\",\n\thiddenButtonContent: \"_hiddenButtonContent_acuv8_30\",\n\tloadingContainer: \"_loadingContainer_acuv8_40\",\n\terror: \"_error_acuv8_48\"\n}, Nk = {\n\tERROR: \"ERROR\",\n\tHIDDEN: \"HIDDEN\",\n\tLOADING: \"LOADING\",\n\tREADY: \"READY\"\n};\nfunction Pk({ vm: e, className: t, containerClassName: n, videoRef: r, children: i }) {\n\tlet { state: a, videoLabel: o, videoTitle: s, hiddenButtonLabel: c, errorLabel: l, maxWidth: u, maxHeight: d, aspectRatio: f, src: p, poster: m, preload: h, controls: g, muted: _, autoPlay: v } = U(e), y = (0, z.default)(t, Mk.root), b = (0, z.default)(n, Mk.container), x = {\n\t\twidth: u === void 0 ? void 0 : `min(100%, ${u}px)`,\n\t\tmaxWidth: u,\n\t\tmaxHeight: d,\n\t\taspectRatio: f\n\t};\n\treturn a === Nk.ERROR ? /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\tclassName: (0, z.default)(y, Mk.error),\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(JS, {\n\t\t\twidth: \"16\",\n\t\t\theight: \"16\"\n\t\t}), l]\n\t}) : a === Nk.HIDDEN ? /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tclassName: y,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: b,\n\t\t\tstyle: x,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\t\ttype: \"button\",\n\t\t\t\tonClick: e.onPreviewClick,\n\t\t\t\tclassName: Mk.hiddenButton,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\t\tclassName: Mk.hiddenButtonContent,\n\t\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(gw, {}), /* @__PURE__ */ (0, B.jsx)(\"span\", { children: c })]\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}) : a === Nk.LOADING ? /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tclassName: y,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: b,\n\t\t\tstyle: x,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: Mk.loadingContainer,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(ce, {\n\t\t\t\t\t\"aria-label\": \"Loading...\",\n\t\t\t\t\trole: \"progressbar\"\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}) : /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\tclassName: y,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: b,\n\t\t\tstyle: x,\n\t\t\t\"data-video-body-mask-target\": \"\",\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"video\", {\n\t\t\t\tclassName: Mk.video,\n\t\t\t\tref: r,\n\t\t\t\tsrc: p,\n\t\t\t\t\"aria-label\": o,\n\t\t\t\ttitle: s,\n\t\t\t\tcontrols: g,\n\t\t\t\tcontrolsList: \"nodownload\",\n\t\t\t\tcrossOrigin: \"anonymous\",\n\t\t\t\tpreload: h,\n\t\t\t\tmuted: _,\n\t\t\t\tautoPlay: v,\n\t\t\t\tposter: m,\n\t\t\t\tonPlay: e.onPlay\n\t\t\t})\n\t\t}), i]\n\t});\n}\nvar Fk = {\n\troot: \"_root_dlp6w_8\",\n\ttext: \"_text_dlp6w_13\",\n\tcaption: \"_caption_dlp6w_14\",\n\tnotice: \"_notice_dlp6w_18\",\n\temote: \"_emote_dlp6w_23\",\n\tannotated: \"_annotated_dlp6w_28\",\n\tannotatedInline: \"_annotatedInline_dlp6w_32\",\n\tannotation: \"_annotation_dlp6w_36\",\n\teditedMarker: \"_editedMarker_dlp6w_44\",\n\tbodyLink: \"_bodyLink_dlp6w_58\",\n\tbodyAction: \"_bodyAction_dlp6w_59\",\n\temoteSender: \"_emoteSender_dlp6w_74\"\n}, Ik = /* @__PURE__ */ function(e) {\n\treturn e.TEXT = \"TEXT\", e.NOTICE = \"NOTICE\", e.EMOTE = \"EMOTE\", e.CAPTION = \"CAPTION\", e;\n}({}), Lk = /* @__PURE__ */ function(e) {\n\treturn e.NONE = \"NONE\", e.LINK = \"LINK\", e.ACTION = \"ACTION\", e;\n}({});\nfunction Rk(e, t) {\n\treturn !t || !f(e) ? e : c(e, { ref: t });\n}\nfunction zk({ vm: e, body: t, bodyRef: n, urlPreviews: r, className: i }) {\n\tlet { id: a, kind: s, bodyWrapper: c = \"NONE\", bodyLinkHref: l, bodyActionAriaLabel: u, showEditedMarker: d, editedMarkerText: f, editedMarkerAriaLabel: p, editedMarkerTooltip: m, editedMarkerCaption: h, showPendingModerationMarker: g, pendingModerationText: _, emoteSenderName: v } = U(e), y = (0, z.default)(i, Fk.root, {\n\t\t[Fk.text]: s === \"TEXT\",\n\t\t[Fk.notice]: s === \"NOTICE\",\n\t\t[Fk.emote]: s === \"EMOTE\",\n\t\t[Fk.caption]: s === \"CAPTION\"\n\t}), b = Rk(t, n), x = e.onEditedMarkerClick ? (t) => {\n\t\tt.preventDefault(), t.stopPropagation(), e.onEditedMarkerClick?.(t);\n\t} : void 0, S = [];\n\tif (d) {\n\t\tlet e = /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\ttype: \"button\",\n\t\t\tclassName: (0, z.default)(Fk.annotation, Fk.editedMarker),\n\t\t\tonClick: x,\n\t\t\t\"aria-label\": p,\n\t\t\t\"data-textual-body-edited-marker\": \"\",\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"span\", { children: f })\n\t\t});\n\t\tS.push(m ? /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\t\tdescription: m,\n\t\t\tcaption: h,\n\t\t\tisTriggerInteractive: !0,\n\t\t\tchildren: e\n\t\t}, \"edited-marker\") : o.cloneElement(e, { key: \"edited-marker\" }));\n\t}\n\tif (g && S.push(/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tclassName: Fk.annotation,\n\t\t\"data-textual-body-pending-moderation\": \"\",\n\t\tchildren: _\n\t}, \"pending-moderation-marker\")), c === \"LINK\" && l ? b = /* @__PURE__ */ (0, B.jsx)(\"a\", {\n\t\thref: l,\n\t\tclassName: Fk.bodyLink,\n\t\tchildren: b\n\t}) : c === \"ACTION\" && (b = /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\ttype: \"button\",\n\t\t\"aria-label\": u,\n\t\tclassName: Fk.bodyAction,\n\t\tonClick: e.onBodyActionClick,\n\t\tchildren: b\n\t})), S.length > 0) {\n\t\tlet e = (0, z.default)(Fk.annotated, { [Fk.annotatedInline]: s === \"EMOTE\" });\n\t\tb = s === \"EMOTE\" ? /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\t\tdir: \"auto\",\n\t\t\tclassName: e,\n\t\t\t\"data-textual-body-annotation-wrapper\": \"\",\n\t\t\tchildren: [b, S]\n\t\t}) : /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tdir: \"auto\",\n\t\t\tclassName: e,\n\t\t\t\"data-textual-body-annotation-wrapper\": \"\",\n\t\t\tchildren: [b, S]\n\t\t});\n\t}\n\treturn s === \"EMOTE\" ? /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tid: a,\n\t\tclassName: y,\n\t\tonClickCapture: e.onRootClick,\n\t\tdir: \"auto\",\n\t\tchildren: [\n\t\t\t\"*\\xA0\",\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\t\ttype: \"button\",\n\t\t\t\tclassName: Fk.emoteSender,\n\t\t\t\tonClick: e.onEmoteSenderClick,\n\t\t\t\tchildren: v\n\t\t\t}),\n\t\t\t\"\\xA0\",\n\t\t\tb,\n\t\t\tr\n\t\t]\n\t}) : /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tid: a,\n\t\tclassName: y,\n\t\tonClickCapture: e.onRootClick,\n\t\tchildren: [b, r]\n\t});\n}\nvar Bk = { content: \"_content_6gcu5_8\" };\n//#endregion\n//#region src/room/timeline/event-tile/body/UnknownBodyView/UnknownBodyView.tsx\nfunction Vk({ text: e, className: t, ref: n }) {\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: (0, z.default)(Bk.content, t),\n\t\tref: n,\n\t\tchildren: e\n\t});\n}\nvar Hk = {\n\tcontent: \"_content_1jysn_10\",\n\tsource: \"_source_1jysn_18\",\n\ttoggle: \"_toggle_1jysn_28\",\n\texpanded: \"_expanded_1jysn_62\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/body/ViewSourceEventView/ViewSourceEventView.tsx\nfunction Uk({ vm: e, className: t, expandedClassName: n, ref: r }) {\n\tlet { expanded: i, preview: a, source: o } = U(e), s = V().translate, c = s(\"devtools|toggle_event\");\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\tclassName: (0, z.default)(Hk.content, t, { [Hk.expanded]: i }, i && n),\n\t\tref: r,\n\t\tchildren: [i ? /* @__PURE__ */ (0, B.jsx)(\"pre\", {\n\t\t\tclassName: Hk.source,\n\t\t\tchildren: o\n\t\t}) : /* @__PURE__ */ (0, B.jsx)(\"code\", {\n\t\t\tclassName: Hk.source,\n\t\t\tchildren: a\n\t\t}), /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\t\tdescription: c,\n\t\t\tplacement: \"top\",\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\t\ttype: \"button\",\n\t\t\t\t\"aria-label\": c,\n\t\t\t\tclassName: Hk.toggle,\n\t\t\t\tonClick: e.onToggle,\n\t\t\t\tchildren: i ? /* @__PURE__ */ (0, B.jsx)(SS, {}) : /* @__PURE__ */ (0, B.jsx)(HS, {})\n\t\t\t})\n\t\t})]\n\t});\n}\nvar Wk = {\n\ttileErrorView: \"_tileErrorView_1nx8u_1\",\n\tline: \"_line_1nx8u_8\",\n\tmessage: \"_message_1nx8u_16\",\n\tviewSourceButton: \"_viewSourceButton_1nx8u_20\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/TileErrorView/TileErrorView.tsx\nfunction Gk({ vm: e, className: t }) {\n\tlet n = QD(), { message: r, eventType: i, bugReportCtaLabel: a, viewSourceCtaLabel: o } = U(e);\n\treturn /* @__PURE__ */ (0, B.jsx)(\"li\", {\n\t\tclassName: (0, z.default)(Wk.tileErrorView, t),\n\t\t...n,\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tclassName: Wk.line,\n\t\t\trole: \"status\",\n\t\t\tchildren: [\n\t\t\t\t/* @__PURE__ */ (0, B.jsxs)(\"span\", {\n\t\t\t\t\tclassName: Wk.message,\n\t\t\t\t\tchildren: [r, i && ` (${i})`]\n\t\t\t\t}),\n\t\t\t\ta && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\t\tkind: \"secondary\",\n\t\t\t\t\tsize: \"md\",\n\t\t\t\t\tonClick: e.onBugReportClick,\n\t\t\t\t\tchildren: a\n\t\t\t\t}),\n\t\t\t\to && /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\t\t\ttype: \"button\",\n\t\t\t\t\tclassName: Wk.viewSourceButton,\n\t\t\t\t\tonClick: e.onViewSourceClick,\n\t\t\t\t\tchildren: o\n\t\t\t\t})\n\t\t\t]\n\t\t})\n\t});\n}\nvar Kk = {\n\tpill: \"_pill_1i8jm_8\",\n\tlabel: \"_label_1i8jm_14\"\n};\n//#endregion\n//#region src/core/pill-input/Pill/Pill.tsx\nfunction qk({ className: e, children: t, label: n, onClick: r, ...i }) {\n\tlet a = v(), { translate: o } = V();\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\tdisplay: \"inline-flex\",\n\t\tgap: \"var(--cpd-space-1-5x)\",\n\t\talign: \"center\",\n\t\tclassName: (0, z.default)(Kk.pill, e),\n\t\t...i,\n\t\tchildren: [\n\t\t\tt,\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tid: a,\n\t\t\t\tclassName: Kk.label,\n\t\t\t\tchildren: n\n\t\t\t}),\n\t\t\tr && /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\t\t\"aria-describedby\": a,\n\t\t\t\tsize: \"16px\",\n\t\t\t\tonClick: r,\n\t\t\t\t\"aria-label\": o(\"action|delete\"),\n\t\t\t\tclassName: \"mx_Dialog_nonDialogButton\",\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(vS, {})\n\t\t\t})\n\t\t]\n\t});\n}\n//#endregion\n//#region ../../node_modules/.pnpm/react-merge-refs@3.0.2_react@19.2.7/node_modules/react-merge-refs/dist/index.js\nfunction Jk(e) {\n\treturn (t) => {\n\t\tfor (let n of e) Xk(n, t);\n\t};\n}\nfunction Yk(e) {\n\treturn (t) => {\n\t\tlet n = [];\n\t\tfor (let r of e) {\n\t\t\tlet e = Xk(r, t), i = typeof e == \"function\";\n\t\t\tn.push(i ? e : () => Xk(r, null));\n\t\t}\n\t\treturn () => {\n\t\t\tfor (let e of n) e();\n\t\t};\n\t};\n}\nfunction Xk(e, t) {\n\tif (typeof e == \"function\") return e(t);\n\te && (e.current = t);\n}\nvar Zk = parseInt(te.split(\".\")[0], 10) >= 19 ? Yk : Jk;\nfunction Qk(e) {\n\treturn S(() => Zk(e), e);\n}\nvar $k = {\n\tpillInput: \"_pillInput_1yam9_8\",\n\tinput: \"_input_1yam9_16\",\n\tlargerInput: \"_largerInput_1yam9_32\"\n};\n//#endregion\n//#region src/core/pill-input/PillInput/PillInput.tsx\nfunction eA({ className: e, children: t, onRemoveChildren: n, inputProps: r, ...i }) {\n\tlet a = w(null), o = gy(r, [\"onKeyDown\", \"ref\"]), c = Qk([a, r?.ref]), l = s.toArray(t).length > 0;\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t...i,\n\t\tgap: \"var(--cpd-space-1x)\",\n\t\tdirection: \"column\",\n\t\tclassName: (0, z.default)($k.pillInput, e),\n\t\tonClick: (e) => {\n\t\t\te.preventDefault(), e.stopPropagation(), a.current?.focus();\n\t\t},\n\t\tchildren: [l && /* @__PURE__ */ (0, B.jsx)(H, {\n\t\t\tgap: \"var(--cpd-space-1x)\",\n\t\t\twrap: \"wrap\",\n\t\t\talign: \"center\",\n\t\t\tchildren: t\n\t\t}), /* @__PURE__ */ (0, B.jsx)(\"input\", {\n\t\t\tref: c,\n\t\t\tautoComplete: \"off\",\n\t\t\tclassName: (0, z.default)($k.input, { [$k.largerInput]: l }),\n\t\t\tonKeyDown: (e) => {\n\t\t\t\tlet t = e.currentTarget.value.trim();\n\t\t\t\tif (e.key === \"Backspace\" && !t) {\n\t\t\t\t\te.preventDefault(), n?.(e);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tr?.onKeyDown?.(e);\n\t\t\t},\n\t\t\t...o\n\t\t})]\n\t});\n}\nvar tA = {\n\tcontainer: \"_container_mcq5y_8\",\n\tsecondaryAction: \"_secondaryAction_mcq5y_16\",\n\tprimaryAction: \"_primaryAction_mcq5y_20\",\n\ttitle: \"_title_mcq5y_24\",\n\tdescription: \"_description_mcq5y_28\"\n}, nA = {\n\tConnectionLost: \"ConnectionLost\",\n\tNeedsConsent: \"NeedsConsent\",\n\tResourceLimited: \"ResourceLimited\",\n\tUnsentMessages: \"UnsentMessages\",\n\tLocalRoomFailed: \"LocalRoomFailed\"\n};\nfunction rA({ vm: e }) {\n\tlet { translate: t } = V(), n = U(e), r = v(), i = h((t) => {\n\t\tt.preventDefault(), e.onDeleteAllClick?.();\n\t}, [e]), a = h((t) => {\n\t\tt.preventDefault(), e.onResendAllClick?.();\n\t}, [e]), o = h((t) => {\n\t\tt.preventDefault(), e.onRetryRoomCreationClick?.();\n\t}, [e]), s = h(() => {\n\t\te.onTermsAndConditionsClicked?.();\n\t}, [e]);\n\tif (n.state === null) return null;\n\tswitch (n.state) {\n\t\tcase nA.ConnectionLost: return /* @__PURE__ */ (0, B.jsx)(Jx, {\n\t\t\ttype: \"critical\",\n\t\t\trole: \"status\",\n\t\t\t\"aria-labelledby\": r,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\tclassName: tA.container,\n\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tclassName: tA.title,\n\t\t\t\t\tid: r,\n\t\t\t\t\tweight: \"medium\",\n\t\t\t\t\tchildren: t(\"room|status_bar|server_connectivity_lost_title\")\n\t\t\t\t}), /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tclassName: tA.description,\n\t\t\t\t\tchildren: t(\"room|status_bar|server_connectivity_lost_description\")\n\t\t\t\t})]\n\t\t\t})\n\t\t});\n\t\tcase nA.NeedsConsent: return /* @__PURE__ */ (0, B.jsx)(Jx, {\n\t\t\ttype: \"critical\",\n\t\t\trole: \"status\",\n\t\t\t\"aria-labelledby\": r,\n\t\t\tactions: /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tonClick: s,\n\t\t\t\tclassName: tA.primaryAction,\n\t\t\t\tkind: \"primary\",\n\t\t\t\tsize: \"md\",\n\t\t\t\tas: \"a\",\n\t\t\t\thref: n.consentUri,\n\t\t\t\ttarget: \"_blank\",\n\t\t\t\trel: \"noreferrer noopener\",\n\t\t\t\tchildren: t(\"terms|tac_button\")\n\t\t\t}),\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: tA.container,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tclassName: tA.title,\n\t\t\t\t\tid: r,\n\t\t\t\t\tweight: \"medium\",\n\t\t\t\t\tchildren: t(\"room|status_bar|requires_consent_agreement_title\")\n\t\t\t\t})\n\t\t\t})\n\t\t});\n\t\tcase nA.ResourceLimited: return /* @__PURE__ */ (0, B.jsx)(Jx, {\n\t\t\ttype: \"critical\",\n\t\t\trole: \"status\",\n\t\t\t\"aria-labelledby\": r,\n\t\t\tactions: n.adminContactHref && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tkind: \"secondary\",\n\t\t\t\tsize: \"md\",\n\t\t\t\tas: \"a\",\n\t\t\t\thref: n.adminContactHref,\n\t\t\t\ttarget: \"_blank\",\n\t\t\t\trel: \"noreferrer noopener\",\n\t\t\t\tchildren: \"Contact admin\"\n\t\t\t}),\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\tclassName: tA.container,\n\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tclassName: tA.title,\n\t\t\t\t\tid: r,\n\t\t\t\t\tweight: \"medium\",\n\t\t\t\t\tchildren: {\n\t\t\t\t\t\tmonthly_active_user: t(\"room|status_bar|monthly_user_limit_reached_title\"),\n\t\t\t\t\t\ths_disabled: t(\"room|status_bar|homeserver_blocked_title\")\n\t\t\t\t\t}[n.resourceLimit] || t(\"room|status_bar|exceeded_resource_limit_title\")\n\t\t\t\t}), /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tclassName: tA.description,\n\t\t\t\t\tchildren: t(\"room|status_bar|exceeded_resource_limit_description\")\n\t\t\t\t})]\n\t\t\t})\n\t\t});\n\t\tcase nA.LocalRoomFailed: return /* @__PURE__ */ (0, B.jsx)(Jx, {\n\t\t\trole: \"status\",\n\t\t\ttype: \"critical\",\n\t\t\t\"aria-labelledby\": r,\n\t\t\tactions: /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tsize: \"md\",\n\t\t\t\tkind: \"primary\",\n\t\t\t\tclassName: tA.primaryAction,\n\t\t\t\tIcon: HC,\n\t\t\t\tonClick: o,\n\t\t\t\tchildren: t(\"action|retry\")\n\t\t\t}),\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\tclassName: tA.title,\n\t\t\t\tid: r,\n\t\t\t\tweight: \"medium\",\n\t\t\t\tchildren: t(\"room|status_bar|failed_to_create_room_title\")\n\t\t\t})\n\t\t});\n\t\tcase nA.UnsentMessages: return /* @__PURE__ */ (0, B.jsx)(Jx, {\n\t\t\trole: \"status\",\n\t\t\ttype: \"critical\",\n\t\t\tactions: n.isResending ? /* @__PURE__ */ (0, B.jsx)(ce, {}) : /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [e.onDeleteAllClick && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tsize: \"md\",\n\t\t\t\tkind: \"secondary\",\n\t\t\t\tIcon: wS,\n\t\t\t\tclassName: tA.secondaryAction,\n\t\t\t\tonClick: i,\n\t\t\t\tchildren: t(\"room|status_bar|delete_all\")\n\t\t\t}), e.onResendAllClick && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tsize: \"md\",\n\t\t\t\tkind: \"primary\",\n\t\t\t\tIcon: HC,\n\t\t\t\tonClick: a,\n\t\t\t\tclassName: tA.primaryAction,\n\t\t\t\tchildren: t(\"room|status_bar|retry_all\")\n\t\t\t})] }),\n\t\t\t\"aria-labelledby\": r,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\tclassName: tA.container,\n\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tclassName: tA.title,\n\t\t\t\t\tid: r,\n\t\t\t\t\tweight: \"medium\",\n\t\t\t\t\tchildren: t(\"room|status_bar|some_messages_not_sent\")\n\t\t\t\t}), /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tclassName: tA.description,\n\t\t\t\t\tchildren: t(\"room|status_bar|select_messages_to_retry\")\n\t\t\t\t})]\n\t\t\t})\n\t\t});\n\t\tdefault: return null;\n\t}\n}\nvar iA = {\n\tcontainer: \"_container_19tks_8\",\n\theader: \"_header_19tks_22\",\n\troundedCornerContainer: \"_roundedCornerContainer_19tks_30\"\n}, aA = ({ vm: e, RoomAvatar: t }) => {\n\tlet n = U(e), { translate: r } = V();\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\"data-testid\": \"widget-pip-container\",\n\t\tclassName: iA.container,\n\t\tonMouseDown: e.onStartMoving,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tclassName: iA.header,\n\t\t\tchildren: [\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\t\t\tsize: \"28px\",\n\t\t\t\t\t\"data-testid\": \"base-card-back-button\",\n\t\t\t\t\tonClick: (t) => e.onBackClick(t),\n\t\t\t\t\ttooltip: r(\"action|back\"),\n\t\t\t\t\tkind: \"secondary\",\n\t\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(mS, {})\n\t\t\t\t}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(t, { size: \"20px\" }),\n\t\t\t\tn.roomName\n\t\t\t]\n\t\t}), /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: iA.roundedCornerContainer,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(e.persistentAppComponent, {\n\t\t\t\tpersistentWidgetId: n.widgetId,\n\t\t\t\tpersistentRoomId: n.roomId\n\t\t\t})\n\t\t})]\n\t});\n};\n//#endregion\n//#region src/room/HistoryVisibilityBadge/HistoryVisibilityBadge.tsx\nfunction oA({ historyVisibility: e }) {\n\tlet t = {\n\t\tcolor: \"var(--cpd-color-icon-info-primary)\",\n\t\twidth: \"1rem\",\n\t\theight: \"1rem\"\n\t};\n\tswitch (e) {\n\t\tcase \"invited\":\n\t\tcase \"joined\": return /* @__PURE__ */ (0, B.jsxs)(D, {\n\t\t\tkind: \"blue\",\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(mw, { ...t }), W(\"room|history_visibility_badge|private\")]\n\t\t});\n\t\tcase \"shared\": return /* @__PURE__ */ (0, B.jsxs)(D, {\n\t\t\tkind: \"blue\",\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(XS, { ...t }), W(\"room|history_visibility_badge|shared\")]\n\t\t});\n\t\tcase \"world_readable\": return /* @__PURE__ */ (0, B.jsxs)(D, {\n\t\t\tkind: \"blue\",\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(ow, { ...t }), W(\"room|history_visibility_badge|world_readable\")]\n\t\t});\n\t\tdefault: return null;\n\t}\n}\n//#endregion\n//#region src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.tsx\nvar sA = ({ vm: e }) => {\n\tlet { translate: t } = V(), { showStreamAudioStreamButton: n, showEditButton: r, showSnapshotButton: i, showDeleteButton: a, showRevokeButton: s, showMoveButtons: c, isMenuOpened: l, userWidget: u, trigger: d } = U(e), f;\n\tn && (f = /* @__PURE__ */ (0, B.jsx)(N, {\n\t\tonSelect: e.onStreamAudioClick,\n\t\tlabel: t(\"widget|context_menu|start_audio_stream\")\n\t}));\n\tlet p;\n\tr && (p = /* @__PURE__ */ (0, B.jsx)(N, {\n\t\tonSelect: e.onEditClick,\n\t\tlabel: t(\"action|edit\")\n\t}));\n\tlet m;\n\ti && (m = /* @__PURE__ */ (0, B.jsx)(N, {\n\t\tonSelect: e.onSnapshotClick,\n\t\tlabel: t(\"widget|context_menu|screenshot\")\n\t}));\n\tlet h;\n\ta && (h = /* @__PURE__ */ (0, B.jsx)(N, {\n\t\tonSelect: e.onDeleteClick,\n\t\tlabel: t(u ? \"action|remove\" : \"widget|context_menu|remove\")\n\t}));\n\tlet g;\n\ts && (g = /* @__PURE__ */ (0, B.jsx)(N, {\n\t\tonSelect: e.onRevokeClick,\n\t\tlabel: t(\"widget|context_menu|revoke\")\n\t}));\n\tlet [_, v] = c, y;\n\t_ && (y = /* @__PURE__ */ (0, B.jsx)(N, {\n\t\tonSelect: () => e.onMoveButton(-1),\n\t\tlabel: t(\"widget|context_menu|move_left\")\n\t}));\n\tlet b;\n\treturn v && (b = /* @__PURE__ */ (0, B.jsx)(N, {\n\t\tonSelect: () => e.onMoveButton(1),\n\t\tlabel: t(\"widget|context_menu|move_right\")\n\t})), /* @__PURE__ */ (0, B.jsx)(ue, {\n\t\ttitle: \"Widget context menu\",\n\t\topen: l,\n\t\tshowTitle: !1,\n\t\tside: \"right\",\n\t\talign: \"start\",\n\t\ttrigger: o.isValidElement(d) ? d : /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\tsize: \"24px\",\n\t\t\t\"aria-label\": \"context menu trigger button\",\n\t\t\tinert: !0,\n\t\t\ttabIndex: -1,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(wC, {})\n\t\t}),\n\t\tonOpenChange: e.onFinished,\n\t\tchildren: l ? /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [\n\t\t\tf,\n\t\t\tp,\n\t\t\tg,\n\t\t\th,\n\t\t\tm,\n\t\t\ty,\n\t\t\tb\n\t\t] }) : null\n\t});\n}, cA = { content: \"_content_u6fft_8\" }, lA = { timelineSeparator: \"_timelineSeparator_yq5ye_8\" }, uA = ({ label: e, className: t, children: n, role: r = \"separator\" }) => /* @__PURE__ */ (0, B.jsxs)(H, {\n\tclassName: (0, z.default)(t, lA.timelineSeparator),\n\trole: r,\n\t\"aria-label\": r === \"separator\" ? e : void 0,\n\talign: \"center\",\n\tchildren: [\n\t\t/* @__PURE__ */ (0, B.jsx)(\"hr\", { role: \"none\" }),\n\t\tn,\n\t\t/* @__PURE__ */ (0, B.jsx)(\"hr\", { role: \"none\" })\n\t]\n}), dA = 15e3, fA = 75e3, pA = 45, mA = 75, hA = 23, gA = 26;\nfunction _A(e, t) {\n\tlet n = Date.now() - e, r = Math.abs(Math.ceil(n / 6e4)), i = Math.ceil(r / 60), a = Math.ceil(i / 24), o = t?.translate ?? W;\n\treturn n >= 0 ? n <= dA ? o(\"time|few_seconds_ago\") : n <= fA ? o(\"time|about_minute_ago\") : r <= pA ? o(\"time|n_minutes_ago\", { num: r }) : r <= mA ? o(\"time|about_hour_ago\") : i <= hA ? o(\"time|n_hours_ago\", { num: i }) : i <= gA ? o(\"time|about_day_ago\") : o(\"time|n_days_ago\", { num: a }) : (n = Math.abs(n), n <= dA ? o(\"time|in_few_seconds\") : n <= fA ? o(\"time|in_about_minute\") : r <= pA ? o(\"time|in_n_minutes\", { num: r }) : r <= mA ? o(\"time|in_about_hour\") : i <= hA ? o(\"time|in_n_hours\", { num: i }) : i <= gA ? o(\"time|in_about_day\") : o(\"time|in_n_days\", { num: a }));\n}\nfunction vA(e) {\n\treturn new Intl.RelativeTimeFormat(e?.language, {\n\t\tstyle: \"long\",\n\t\tnumeric: \"auto\"\n\t});\n}\nvar yA = {\n\tpicker_menu_item: \"_picker_menu_item_1kc2b_8\",\n\tpicker_form: \"_picker_form_1kc2b_12\",\n\tpicker_input: \"_picker_input_1kc2b_22\",\n\tpicker_input_date: \"_picker_input_date_1kc2b_28\"\n}, bA = ({ vm: e, inputRef: t, onSubmitted: n, onDismissed: r }) => {\n\tlet i = U(e), a = qd(i.jumpFromDate ? new Date(i.jumpFromDate) : /* @__PURE__ */ new Date()), { translate: o } = V(), s = v(), [c, l] = T(a), u = w(null), d = t ?? u, f = w(null), p = (e) => {\n\t\te.key === \"Tab\" && (e.shiftKey ? r?.() : (e.preventDefault(), f.current?.focus()));\n\t}, m = (e) => {\n\t\tl(e.currentTarget.value);\n\t}, h = () => {\n\t\te.onDatePicked?.(c), n?.();\n\t};\n\treturn /* @__PURE__ */ (0, B.jsx)(N, {\n\t\tas: \"div\",\n\t\t\"data-testid\": \"jump-to-date-picker\",\n\t\tlabel: o(\"room|jump_to_date\"),\n\t\tonSelect: (e) => {\n\t\t\te.preventDefault();\n\t\t},\n\t\thideChevron: !0,\n\t\tclassName: yA.picker_menu_item,\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(me, {\n\t\t\tclassName: yA.picker_form,\n\t\t\tonSubmit: (e) => {\n\t\t\t\te.preventDefault(), h();\n\t\t\t},\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(j, {\n\t\t\t\tname: \"jump-to-date-field\",\n\t\t\t\tclassName: yA.picker_input,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(ve, {\n\t\t\t\t\tref: d,\n\t\t\t\t\tid: s,\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\t\"aria-label\": o(\"room|jump_to_date_prompt\"),\n\t\t\t\t\tonInput: m,\n\t\t\t\t\tonKeyDown: p,\n\t\t\t\t\tvalue: c,\n\t\t\t\t\tmax: qd(/* @__PURE__ */ new Date()),\n\t\t\t\t\tclassName: yA.picker_input_date\n\t\t\t\t})\n\t\t\t}), /* @__PURE__ */ (0, B.jsx)(_e, {\n\t\t\t\tref: f,\n\t\t\t\tclassName: yA.picker_button,\n\t\t\t\ttype: \"submit\",\n\t\t\t\tkind: \"primary\",\n\t\t\t\tsize: \"md\",\n\t\t\t\tonKeyDown: (e) => {\n\t\t\t\t\te.key === \"Tab\" && (e.shiftKey ? (e.preventDefault(), d.current?.focus()) : r?.()), (e.key == \"Enter\" || e.key == \" \" || e.key == \"Spacebar\") && (e.preventDefault(), h());\n\t\t\t\t},\n\t\t\t\tchildren: o(\"action|go\")\n\t\t\t})]\n\t\t})\n\t});\n}, xA = {\n\tpicker_menu: \"_picker_menu_14xuw_8\",\n\tpicker_menu_item: \"_picker_menu_item_14xuw_14\",\n\tpicker_separator: \"_picker_separator_14xuw_18\"\n}, SA = ({ vm: e, open: t, trigger: n, onOpenChange: r }) => {\n\tlet i = V(), { translate: a } = V(), o = w(null);\n\treturn /* @__PURE__ */ (0, B.jsxs)(ue, {\n\t\topen: t,\n\t\tonOpenChange: (e) => {\n\t\t\tr?.(e);\n\t\t},\n\t\ttitle: a(\"room|jump_to_date\"),\n\t\tshowTitle: !1,\n\t\ttrigger: n,\n\t\talign: \"start\",\n\t\tclassName: xA.picker_menu,\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tlabel: mg(vA(i).format(-1, \"week\")),\n\t\t\t\tonSelect: () => e.onLastWeekPicked?.(),\n\t\t\t\t\"data-testid\": \"jump-to-date-last-week\",\n\t\t\t\thideChevron: !0,\n\t\t\t\tclassName: xA.picker_menu_item\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tlabel: mg(vA(i).format(-1, \"month\")),\n\t\t\t\tonSelect: () => e.onLastMonthPicked?.(),\n\t\t\t\t\"data-testid\": \"jump-to-date-last-month\",\n\t\t\t\thideChevron: !0,\n\t\t\t\tclassName: xA.picker_menu_item\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tlabel: a(\"room|jump_to_date_beginning\"),\n\t\t\t\tonSelect: () => e.onBeginningPicked?.(),\n\t\t\t\t\"data-testid\": \"jump-to-date-beginning\",\n\t\t\t\thideChevron: !0,\n\t\t\t\tclassName: xA.picker_menu_item,\n\t\t\t\tonKeyDown: (e) => {\n\t\t\t\t\te.key === \"ArrowDown\" && (e.preventDefault(), o.current?.focus());\n\t\t\t\t}\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(he, {\n\t\t\t\tdecorative: !0,\n\t\t\t\tclassName: xA.picker_separator\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(bA, {\n\t\t\t\tvm: e,\n\t\t\t\tinputRef: o,\n\t\t\t\tonSubmitted: () => r?.(!1),\n\t\t\t\tonDismissed: () => r?.(!1)\n\t\t\t})\n\t\t]\n\t});\n}, CA = d(function({ label: e, tooltipOpen: t, className: n, ...r }, i) {\n\tlet { translate: a } = V();\n\treturn /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: a(\"room|jump_to_date\"),\n\t\tplacement: \"right\",\n\t\topen: t,\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\tref: i,\n\t\t\t\"data-testid\": \"jump-to-date-separator-button\",\n\t\t\tclassName: n,\n\t\t\t\"aria-live\": \"off\",\n\t\t\t\"aria-label\": a(\"room|jump_to_date\"),\n\t\t\trole: \"button\",\n\t\t\ttabIndex: 0,\n\t\t\t...r,\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(oe, {\n\t\t\t\tas: \"h2\",\n\t\t\t\tsize: \"lg\",\n\t\t\t\t\"aria-hidden\": \"true\",\n\t\t\t\tchildren: e\n\t\t\t}), /* @__PURE__ */ (0, B.jsx)(fS, {})]\n\t\t})\n\t});\n});\n//#endregion\n//#region src/room/timeline/DateSeparatorView/DateSeparatorView.tsx\nfunction wA({ vm: e, className: t }) {\n\tlet { label: n, jumpToEnabled: r } = U(e), [i, a] = T(!1), [o, s] = T(!1), [c, l] = T(!1);\n\treturn r ? /* @__PURE__ */ (0, B.jsx)(uA, {\n\t\tlabel: n,\n\t\tclassName: (0, z.default)(t),\n\t\trole: \"none\",\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(SA, {\n\t\t\tvm: e,\n\t\t\topen: i,\n\t\t\tonOpenChange: (e) => {\n\t\t\t\ta(e), e && (s(!1), l(!1));\n\t\t\t},\n\t\t\ttrigger: /* @__PURE__ */ (0, B.jsx)(CA, {\n\t\t\t\tlabel: n,\n\t\t\t\ttooltipOpen: !i && (o || c),\n\t\t\t\tclassName: cA.content,\n\t\t\t\tonMouseEnter: () => s(!0),\n\t\t\t\tonMouseLeave: () => s(!1),\n\t\t\t\tonFocus: (e) => l(e.currentTarget.matches(\":focus-visible\")),\n\t\t\t\tonBlur: () => l(!1)\n\t\t\t})\n\t\t})\n\t}) : /* @__PURE__ */ (0, B.jsx)(uA, {\n\t\tlabel: n,\n\t\tclassName: (0, z.default)(t),\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(H, {\n\t\t\tclassName: cA.content,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(oe, {\n\t\t\t\tas: \"h2\",\n\t\t\t\tsize: \"lg\",\n\t\t\t\t\"aria-hidden\": \"true\",\n\t\t\t\tchildren: n\n\t\t\t})\n\t\t})\n\t});\n}\nvar TA = {\n\ttoolbar: \"_toolbar_1ksun_8\",\n\ttoolbar_item: \"_toolbar_item_1ksun_14\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/actions/ActionBarView/ActionBarButton.tsx\nfunction EA({ presentation: e, buttonRef: t, label: n, onActivate: r, icon: i, disabled: a, ariaPressed: o, ariaExpanded: s, tooltipDescription: c, tooltipCaption: l }) {\n\tlet u = e === \"icon\", [d, f, p] = Xy(), m = w(null), h = Qk([\n\t\tt,\n\t\tm,\n\t\ta ? null : p\n\t]), g = a || !f ? -1 : 0;\n\treturn x(() => {\n\t\tm.current && (m.current.tabIndex = g);\n\t}, [g]), /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: c ?? n,\n\t\tcaption: l,\n\t\tplacement: \"top\",\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\"data-presentation\": e,\n\t\t\tref: h,\n\t\t\tkind: \"tertiary\",\n\t\t\tsize: \"md\",\n\t\t\ticonOnly: u,\n\t\t\t\"aria-label\": n,\n\t\t\t\"aria-pressed\": o,\n\t\t\t\"aria-expanded\": s,\n\t\t\tdisabled: a,\n\t\t\tonClick: (e) => r?.(e.currentTarget),\n\t\t\tonContextMenu: (e) => {\n\t\t\t\te.preventDefault(), e.stopPropagation(), r?.(e.currentTarget);\n\t\t\t},\n\t\t\tonFocus: a ? void 0 : d,\n\t\t\tclassName: TA.toolbar_item,\n\t\t\tIcon: u ? i : void 0,\n\t\t\tchildren: u ? void 0 : n\n\t\t})\n\t});\n}\n//#endregion\n//#region src/room/timeline/event-tile/actions/ActionBarView/ActionBarView.tsx\nvar DA = /* @__PURE__ */ function(e) {\n\treturn e.Cancel = \"cancel\", e.CopyLink = \"copyLink\", e.Download = \"download\", e.Edit = \"edit\", e.Expand = \"expand\", e.Hide = \"hide\", e.Options = \"options\", e.Pin = \"pin\", e.React = \"react\", e.Remove = \"remove\", e.Reply = \"reply\", e.ReplyInThread = \"replyInThread\", e.Resend = \"resend\", e.ViewInRoom = \"viewInRoom\", e.ViewSource = \"viewSource\", e;\n}({});\nfunction OA({ vm: e, className: t }) {\n\tlet { translate: n } = V(), { actions: r, presentation: i = \"icon\", isThreadReplyAllowed: a, isDownloadEncrypted: o, isDownloadLoading: s, isPinned: c, isQuoteExpanded: l } = U(e), u = w({}), d = S(() => Object.fromEntries(Object.values(DA).map((e) => [e, (t) => {\n\t\tu.current[e] = t;\n\t}])), []), f = {};\n\tf.edit = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.edit,\n\t\tlabel: n(\"action|edit\"),\n\t\tonActivate: e.onEditClick,\n\t\ticon: PS\n\t}, \"edit\");\n\tlet p = n(c ? \"action|unpin\" : \"action|pin\");\n\tf.pin = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.pin,\n\t\tlabel: p,\n\t\tonActivate: e.onPinClick,\n\t\ticon: c ? nw : OC,\n\t\tariaPressed: c\n\t}, \"pin\"), f.cancel = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.cancel,\n\t\tlabel: n(\"action|delete\"),\n\t\tonActivate: e.onCancelClick,\n\t\ticon: wS\n\t}, \"cancel\"), f.copyLink = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.copyLink,\n\t\tlabel: n(\"timeline|mab|copy_link_thread\"),\n\t\tonActivate: e.onCopyLinkClick,\n\t\ticon: oC\n\t}, \"copyLink\"), f.reply = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.reply,\n\t\tlabel: n(\"action|reply\"),\n\t\tonActivate: e.onReplyClick,\n\t\ticon: BC\n\t}, \"reply\"), f.react = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.react,\n\t\tlabel: n(\"action|react\"),\n\t\tonActivate: e.onReactionsClick,\n\t\ticon: IC\n\t}, \"react\");\n\tlet m = n(\"action|download\");\n\ts && (m = n(o ? \"timeline|download_action_decrypting\" : \"timeline|download_action_downloading\")), f.download = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.download,\n\t\tlabel: m,\n\t\tonActivate: e.onDownloadClick,\n\t\ticon: s ? ce : AS,\n\t\tdisabled: s\n\t}, \"download\"), f.hide = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.hide,\n\t\tlabel: n(\"action|hide\"),\n\t\tonActivate: e.onHideClick,\n\t\ticon: mw\n\t}, \"hide\");\n\tlet g = n(a ? \"action|reply_in_thread\" : \"threads|error_start_thread_existing_relation\");\n\tf.replyInThread = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.replyInThread,\n\t\tlabel: n(\"action|reply_in_thread\"),\n\t\ttooltipDescription: g,\n\t\tonActivate: e.onReplyInThreadClick,\n\t\ticon: ew,\n\t\tdisabled: !a\n\t}, \"replyInThread\"), f.resend = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.resend,\n\t\tlabel: n(\"action|retry\"),\n\t\tonActivate: e.onResendClick,\n\t\ticon: HC\n\t}, \"resend\");\n\tlet _ = n(l ? \"timeline|mab|collapse_reply_chain\" : \"timeline|mab|expand_reply_chain\");\n\tf.expand = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.expand,\n\t\tlabel: _,\n\t\ttooltipCaption: `${n(\"keyboard|shift\")} + ${n(\"action|click\")}`,\n\t\tonActivate: e.onToggleThreadExpanded,\n\t\ticon: l ? SS : HS,\n\t\tariaExpanded: l\n\t}, \"expand\"), f.options = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.options,\n\t\tlabel: n(\"common|options\"),\n\t\tonActivate: e.onOptionsClick,\n\t\ticon: wC\n\t}, \"options\"), f.remove = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.remove,\n\t\tlabel: n(\"action|remove\"),\n\t\tonActivate: e.onRemoveClick,\n\t\ticon: wS\n\t}, \"remove\"), f.viewInRoom = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.viewInRoom,\n\t\tlabel: n(\"timeline|mab|view_in_room\"),\n\t\tonActivate: e.onViewInRoomClick,\n\t\ticon: gw\n\t}, \"viewInRoom\"), f.viewSource = /* @__PURE__ */ (0, B.jsx)(EA, {\n\t\tpresentation: i,\n\t\tbuttonRef: d.viewSource,\n\t\tlabel: n(\"action|view_source\"),\n\t\tonActivate: e.onViewSourceClick,\n\t\ticon: nC\n\t}, \"viewSource\");\n\tlet v = h((e) => {\n\t\tswitch (e) {\n\t\t\tcase \"download\": return s;\n\t\t\tcase \"replyInThread\": return !a;\n\t\t\tdefault: return !1;\n\t\t}\n\t}, [s, a]), y = S(() => r.map((e) => ({\n\t\taction: e,\n\t\tdisabled: v(e)\n\t})), [r, v]), b = y.map(({ action: e, disabled: t }) => `${e}:${t ? \"1\" : \"0\"}`).join(\"|\");\n\treturn y.length === 0 ? null : /* @__PURE__ */ (0, B.jsx)(Yy, {\n\t\thandleLeftRight: !0,\n\t\thandleHomeEnd: !0,\n\t\thandleLoop: !0,\n\t\tchildren: ({ onKeyDownHandler: e }) => /* @__PURE__ */ (0, B.jsx)(H, {\n\t\t\tdisplay: \"inline-flex\",\n\t\t\tdirection: \"row\",\n\t\t\trole: \"toolbar\",\n\t\t\t\"aria-label\": n(\"timeline|mab|label\"),\n\t\t\t\"aria-live\": \"off\",\n\t\t\tonKeyDown: e,\n\t\t\tclassName: (0, z.default)(t, TA.toolbar),\n\t\t\tchildren: y.map((e) => f[e.action])\n\t\t})\n\t}, b);\n}\nvar kA = {\n\tdisambiguatedProfile: \"_disambiguatedProfile_4jooo_8\",\n\tdisambiguatedProfile_displayName: \"_disambiguatedProfile_displayName_4jooo_14\",\n\tdisambiguatedProfile_mxid: \"_disambiguatedProfile_mxid_4jooo_22\",\n\tuserStatus: \"_userStatus_4jooo_28\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/DisambiguatedProfile/DisambiguatedProfileView.tsx\nfunction AA({ vm: e, className: t }) {\n\tlet { displayName: n, colorClass: r, displayIdentifier: i, title: a, emphasizeDisplayName: o, userStatus: s } = U(e), c = s && s.emoji, l = (0, z.default)(r, {\n\t\t[kA.disambiguatedProfile_displayName]: o,\n\t\tmx_DisambiguatedProfile_displayName: o\n\t}), u = e.onClick ? (t) => {\n\t\t(t.key === \"Enter\" || t.key === \" \") && (t.preventDefault(), e.onClick?.(t));\n\t} : void 0;\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: (0, z.default)(t, kA.disambiguatedProfile),\n\t\ttitle: a,\n\t\tonClick: e.onClick,\n\t\tonKeyDown: u,\n\t\trole: e.onClick ? \"button\" : void 0,\n\t\ttabIndex: e.onClick ? 0 : void 0,\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: l,\n\t\t\t\tdir: \"auto\",\n\t\t\t\tchildren: n\n\t\t\t}),\n\t\t\ts && /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\t\t\tdescription: s.text,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\tas: \"span\",\n\t\t\t\t\tsize: \"md\",\n\t\t\t\t\tclassName: (0, z.default)(\"mx_DisambiguatedProfile_userStatus\", kA.userStatus),\n\t\t\t\t\tchildren: c\n\t\t\t\t})\n\t\t\t}),\n\t\t\ti && /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: (0, z.default)(\"mx_DisambiguatedProfile_mxid\", kA.disambiguatedProfile_mxid),\n\t\t\t\tchildren: i\n\t\t\t})\n\t\t]\n\t});\n}\nvar jA = {\n\te2ePadlock: \"_e2ePadlock_1hynz_8\",\n\tnormal: \"_normal_1hynz_21\",\n\tdecryptionFailure: \"_decryptionFailure_1hynz_22\",\n\twarning: \"_warning_1hynz_26\"\n}, MA = /* @__PURE__ */ function(e) {\n\treturn e.Normal = \"normal\", e.Warning = \"warning\", e.DecryptionFailure = \"decryption_failure\", e;\n}({}), NA = {\n\tnormal: /* @__PURE__ */ (0, B.jsx)(db, {}),\n\twarning: /* @__PURE__ */ (0, B.jsx)(RS, {}),\n\tdecryption_failure: /* @__PURE__ */ (0, B.jsx)(RS, {})\n}, PA = {\n\tnormal: jA.normal,\n\twarning: jA.warning,\n\tdecryption_failure: jA.decryptionFailure\n};\nfunction FA({ icon: e, title: t, className: n }) {\n\treturn /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tlabel: t,\n\t\tisTriggerInteractive: !0,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\"data-testid\": \"e2e-padlock\",\n\t\t\tclassName: (0, z.default)(jA.e2ePadlock, PA[e], n),\n\t\t\trole: \"img\",\n\t\t\ttabIndex: 0,\n\t\t\t\"aria-label\": W(\"timeline|e2e_state\"),\n\t\t\tchildren: NA[e]\n\t\t})\n\t});\n}\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/E2eMessageSharedIcon/E2eMessageSharedIconView.tsx\nfunction IA({ vm: e, className: t }) {\n\tlet { displayName: n, userId: r } = U(e), i = W(\"timeline|message_shared_by\", {\n\t\tdisplayName: n,\n\t\tuserId: r\n\t});\n\treturn /* @__PURE__ */ (0, B.jsx)(FA, {\n\t\tclassName: t,\n\t\ticon: MA.Normal,\n\t\ttitle: i\n\t});\n}\nvar LA = { content: \"_content_ufv8a_8\" }, RA = {\n\tcontainer: \"_container_sq5fu_8\",\n\ttitle: \"_title_sq5fu_34\",\n\tsubtitle: \"_subtitle_sq5fu_35\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/EventTileBubble/EventTileBubble.tsx\nfunction zA({ icon: e, title: t, subtitle: n, className: r, children: i, ref: a }) {\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: (0, z.default)(RA.container, r),\n\t\tref: a,\n\t\tchildren: [\n\t\t\te,\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: RA.title,\n\t\t\t\tchildren: t\n\t\t\t}),\n\t\t\tn && /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: RA.subtitle,\n\t\t\t\tchildren: n\n\t\t\t}),\n\t\t\ti\n\t\t]\n\t});\n}\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/EncryptionEventView/EncryptionEventView.tsx\nvar BA = /* @__PURE__ */ function(e) {\n\treturn e.CHANGED = \"CHANGED\", e.DISABLE_ATTEMPT = \"DISABLE_ATTEMPT\", e.ENABLED = \"ENABLED\", e.ENABLED_DM = \"ENABLED_DM\", e.ENABLED_LOCAL = \"ENABLED_LOCAL\", e.UNSUPPORTED = \"UNSUPPORTED\", e;\n}({});\nfunction VA({ vm: e, ref: t, className: n }) {\n\tlet { translate: r } = V(), { state: i, encryptedStateEvents: a, userName: o, timestamp: s } = U(e), c = /* @__PURE__ */ (0, B.jsx)(cC, { \"data-state\": \"supported\" }), l = r(a ? \"common|state_encryption_enabled\" : \"common|encryption_enabled\"), u = \"\";\n\tswitch (i) {\n\t\tcase \"CHANGED\":\n\t\t\tu = r(\"timeline|m.room.encryption|parameters_changed\");\n\t\t\tbreak;\n\t\tcase \"DISABLE_ATTEMPT\":\n\t\t\tl = r(\"common|encryption_enabled\"), u = r(\"timeline|m.room.encryption|disable_attempt\");\n\t\t\tbreak;\n\t\tcase \"ENABLED\":\n\t\t\tu = r(a ? \"timeline|m.room.encryption|state_enabled\" : \"timeline|m.room.encryption|enabled\");\n\t\t\tbreak;\n\t\tcase \"ENABLED_DM\":\n\t\t\tu = r(\"timeline|m.room.encryption|enabled_dm\", { displayName: o });\n\t\t\tbreak;\n\t\tcase \"ENABLED_LOCAL\":\n\t\t\tu = r(\"timeline|m.room.encryption|enabled_local\");\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tc = /* @__PURE__ */ (0, B.jsx)(RS, { \"data-state\": \"unsupported\" }), l = r(\"timeline|m.room.encryption|disabled\"), u = r(\"timeline|m.room.encryption|unsupported\");\n\t\t\tbreak;\n\t}\n\treturn /* @__PURE__ */ (0, B.jsx)(zA, {\n\t\ticon: c,\n\t\tclassName: (0, z.default)(n, LA.content),\n\t\ttitle: l,\n\t\tsubtitle: u,\n\t\tref: t,\n\t\tchildren: s\n\t});\n}\nvar HA = { eventPreview: \"_eventPreview_w0s50_8\" };\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/EventPreviewView/EventPreviewView.tsx\nfunction UA({ vm: e, className: t, ...n }) {\n\tlet { isVisible: r, previewContent: i, previewTooltip: a } = U(e);\n\tif (!r || !i) return /* @__PURE__ */ (0, B.jsx)(B.Fragment, {});\n\tlet o = /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t...n,\n\t\tclassName: (0, z.default)(\"mx_EventPreview\", HA.eventPreview, t),\n\t\tchildren: i\n\t});\n\treturn a ? /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: a,\n\t\tchildren: o\n\t}) : o;\n}\nvar WA = {\n\tcontainer: \"_container_1opqj_8\",\n\ttitle: \"_title_1opqj_20\",\n\ttime: \"_time_1opqj_25\",\n\ticon: \"_icon_1opqj_30\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/call/tombstone/room/RoomTombstoneCallTileView.tsx\nfunction GA({ vm: e, className: t }) {\n\tlet { translate: n } = V(), { timestamp: r } = U(e);\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\tclassName: (0, z.default)(t, WA.container),\n\t\talign: \"center\",\n\t\tgap: \"var(--cpd-space-2x)\",\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(cw, {\n\t\t\t\tclassName: WA.icon,\n\t\t\t\twidth: 20,\n\t\t\t\theight: 20\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: WA.title,\n\t\t\t\tchildren: n(\"timeline|call_tile|tombstone|room|title\")\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: WA.time,\n\t\t\t\tchildren: r\n\t\t\t})\n\t\t]\n\t});\n}\n//#endregion\n//#region src/room/timeline/event-tile/call/common.ts\nvar KA = /* @__PURE__ */ function(e) {\n\treturn e.Voice = \"voice\", e.Video = \"video\", e;\n}({}), qA = /* @__PURE__ */ function(e) {\n\treturn e.Incoming = \"Incoming\", e.Outgoing = \"Outgoing\", e;\n}({});\n//#endregion\n//#region src/room/timeline/event-tile/call/tombstone/dm/DmTombstoneCallTileView.tsx\nfunction JA(e, t) {\n\tlet n = t ? cw : uw, r = t ? vw : bw;\n\tswitch (e) {\n\t\tcase KA.Video: return /* @__PURE__ */ (0, B.jsx)(n, {\n\t\t\tclassName: WA.icon,\n\t\t\twidth: 20,\n\t\t\theight: 20\n\t\t});\n\t\tcase KA.Voice: return /* @__PURE__ */ (0, B.jsx)(r, {\n\t\t\tclassName: WA.icon,\n\t\t\twidth: 20,\n\t\t\theight: 20\n\t\t});\n\t}\n}\nfunction YA({ vm: e, className: t }) {\n\tlet n = U(e), { type: r, timestamp: i, isCallDeclined: a } = n;\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\tclassName: (0, z.default)(t, WA.container),\n\t\talign: \"center\",\n\t\tgap: \"var(--cpd-space-2x)\",\n\t\tchildren: [\n\t\t\tJA(r, a),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: WA.title,\n\t\t\t\tchildren: a ? /* @__PURE__ */ (0, B.jsx)(ZA, { snapshot: n }) : /* @__PURE__ */ (0, B.jsx)(XA, { snapshot: n })\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: WA.time,\n\t\t\t\tchildren: i\n\t\t\t})\n\t\t]\n\t});\n}\nfunction XA(e) {\n\tlet { type: t } = e.snapshot, { translate: n } = V();\n\treturn t === KA.Voice ? n(\"timeline|call_tile|voice_call_title\") : n(\"timeline|call_tile|video_call_title\");\n}\nfunction ZA(e) {\n\tlet { callDirection: t } = e.snapshot, { translate: n } = V();\n\treturn t === qA.Incoming ? n(\"timeline|call_tile|declined|call_declined_by_us\") : n(\"timeline|call_tile|declined|call_declined\");\n}\nvar QA = { container: \"_container_122d2_8\" };\n//#endregion\n//#region src/room/timeline/event-tile/call/ongoing/components/TileContainer/TileContainer.tsx\nfunction $A({ children: e }) {\n\treturn /* @__PURE__ */ (0, B.jsx)(H, {\n\t\tdirection: \"row\",\n\t\talign: \"center\",\n\t\tclassName: QA.container,\n\t\tchildren: e\n\t});\n}\nvar ej = {\n\tcontainer: \"_container_ghpy6_8\",\n\ticon: \"_icon_ghpy6_15\"\n}, tj = ({ callType: e, classNames: t, height: n, width: r, ...i }) => {\n\tswitch (e) {\n\t\tcase KA.Video: return /* @__PURE__ */ (0, B.jsx)(uw, {\n\t\t\tclassName: t,\n\t\t\twidth: r,\n\t\t\theight: n,\n\t\t\t...i\n\t\t});\n\t\tcase KA.Voice: return /* @__PURE__ */ (0, B.jsx)(bw, {\n\t\t\tclassName: t,\n\t\t\twidth: r,\n\t\t\theight: n,\n\t\t\t...i\n\t\t});\n\t}\n};\n//#endregion\n//#region src/room/timeline/event-tile/call/ongoing/components/CallIcon/CallIcon.tsx\nfunction nj(e) {\n\treturn /* @__PURE__ */ (0, B.jsx)(H, {\n\t\talign: \"center\",\n\t\tjustify: \"center\",\n\t\tclassName: ej.container,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(tj, {\n\t\t\tclassNames: ej.icon,\n\t\t\tcallType: e.callType,\n\t\t\theight: 20,\n\t\t\twidth: 20\n\t\t})\n\t});\n}\nvar rj = {\n\ttitle: \"_title_11tya_8\",\n\tcontent: \"_content_11tya_19\",\n\tavatar: \"_avatar_11tya_26\",\n\tfacepile: \"_facepile_11tya_30\"\n}, ij = {\n\tsubContainer: \"_subContainer_lhkzi_8\",\n\tstartedTextContainer: \"_startedTextContainer_lhkzi_16\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/call/ongoing/components/JoinButton/JoinButton.tsx\nfunction aj(e) {\n\treturn function(t) {\n\t\treturn /* @__PURE__ */ (0, B.jsx)(tj, {\n\t\t\tcallType: e,\n\t\t\t...t,\n\t\t\theight: 20,\n\t\t\twidth: 20\n\t\t});\n\t};\n}\nfunction oj({ join: e, callType: t, ...n }) {\n\tlet { translate: r } = V();\n\treturn /* @__PURE__ */ (0, B.jsx)(O, {\n\t\tonClick: e,\n\t\tIcon: aj(t),\n\t\tsize: \"md\",\n\t\t...n,\n\t\tchildren: r(\"timeline|call_tile|ongoing|common|join_button\")\n\t});\n}\nvar sj = { container: \"_container_q8hft_8\" };\n//#endregion\n//#region src/room/timeline/event-tile/call/ongoing/components/Duration/DurationView.tsx\nfunction cj(e) {\n\tlet { duration: t } = U(e.vm), n = (0, z.default)(sj.container, e.classNames);\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: n,\n\t\tchildren: [\n\t\t\t\"(\",\n\t\t\t/* @__PURE__ */ (0, B.jsx)(Zd, {\n\t\t\t\tseconds: t,\n\t\t\t\tminutesMaxLength: 1,\n\t\t\t\tclassName: n\n\t\t\t}),\n\t\t\t\")\"\n\t\t]\n\t});\n}\n//#endregion\n//#region src/room/timeline/event-tile/call/ongoing/room/RoomOngoingCallTileView.tsx\nfunction lj(e) {\n\tlet t = U(e.vm), { isJoinable: n, isJoined: r, isCallIgnored: i, callHasOtherParticipants: a, durationViewModel: o } = t, { translate: s } = V();\n\treturn /* @__PURE__ */ (0, B.jsx)($A, { children: /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\talign: \"center\",\n\t\tgap: \"var(--cpd-space-3x)\",\n\t\tclassName: rj.content,\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(nj, { callType: KA.Video }),\n\t\t\t/* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\t\tdirection: \"column\",\n\t\t\t\tclassName: rj.content,\n\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\t\tclassName: rj.title,\n\t\t\t\t\tchildren: s(\"timeline|call_tile|ongoing|room|title\")\n\t\t\t\t}), a || i ? /* @__PURE__ */ (0, B.jsx)(uj, { snapshot: t }) : /* @__PURE__ */ (0, B.jsx)(dj, { snapshot: t })]\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\t\talign: \"center\",\n\t\t\t\tgap: \"var(--cpd-space-3x)\",\n\t\t\t\twrap: \"wrap-reverse\",\n\t\t\t\tchildren: [o && /* @__PURE__ */ (0, B.jsx)(cj, {\n\t\t\t\t\tclassNames: \"duration\",\n\t\t\t\t\tvm: o\n\t\t\t\t}), !r && /* @__PURE__ */ (0, B.jsx)(oj, {\n\t\t\t\t\tcallType: KA.Video,\n\t\t\t\t\tdisabled: !n,\n\t\t\t\t\tjoin: (t) => {\n\t\t\t\t\t\te.vm.join(t);\n\t\t\t\t\t}\n\t\t\t\t})]\n\t\t\t})\n\t\t]\n\t}) });\n}\nfunction uj({ snapshot: e }) {\n\tlet { facePileViewModel: t, totalParticipants: n } = e, { translate: r } = V(), i = n;\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\tclassName: ij.subContainer,\n\t\tgap: \"6px\",\n\t\talign: \"center\",\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(My, {\n\t\t\tclassNames: rj.facepile,\n\t\t\tvm: t\n\t\t}), r(\"timeline|call_tile|ongoing|room|join_count\", { joinedCount: i })]\n\t});\n}\nfunction dj({ snapshot: e }) {\n\tlet { memberAvatarViewModel: t, startedByDisplayName: n } = e, { translate: r } = V();\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\tclassName: ij.subContainer,\n\t\tgap: \"6px\",\n\t\talign: \"center\",\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(jy, {\n\t\t\tclassNames: rj.avatar,\n\t\t\tvm: t\n\t\t}), /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: ij.startedTextContainer,\n\t\t\tchildren: r(\"timeline|call_tile|ongoing|common|call_started_by\", { startedByDisplayName: n })\n\t\t})]\n\t});\n}\n//#endregion\n//#region src/room/timeline/event-tile/call/ongoing/dm/DmOngoingCallTileView.tsx\nfunction fj(e) {\n\tlet t = U(e.vm), { callType: n, callDirection: r, isJoinable: i, isJoined: a, durationViewModel: o } = t, s;\n\treturn s = t.callHasOtherParticipants ? /* @__PURE__ */ (0, B.jsx)(hj, { snapshot: t }) : r === qA.Incoming ? /* @__PURE__ */ (0, B.jsx)(pj, { snapshot: t }) : /* @__PURE__ */ (0, B.jsx)(mj, { snapshot: t }), /* @__PURE__ */ (0, B.jsx)($A, { children: /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\talign: \"center\",\n\t\tgap: \"var(--cpd-space-3x)\",\n\t\tclassName: rj.content,\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(nj, { callType: n }),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(H, {\n\t\t\t\tgap: \"6px\",\n\t\t\t\talign: \"center\",\n\t\t\t\tclassName: rj.content,\n\t\t\t\tchildren: s\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\t\talign: \"center\",\n\t\t\t\tgap: \"var(--cpd-space-3x)\",\n\t\t\t\twrap: \"wrap-reverse\",\n\t\t\t\tchildren: [o && /* @__PURE__ */ (0, B.jsx)(cj, {\n\t\t\t\t\tclassNames: \"duration\",\n\t\t\t\t\tvm: o\n\t\t\t\t}), !a && /* @__PURE__ */ (0, B.jsx)(oj, {\n\t\t\t\t\tdisabled: !i,\n\t\t\t\t\tcallType: n,\n\t\t\t\t\tjoin: (t) => e.vm.join(t)\n\t\t\t\t})]\n\t\t\t})\n\t\t]\n\t}) });\n}\nfunction pj({ snapshot: e }) {\n\tlet { translate: t } = V();\n\treturn /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [/* @__PURE__ */ (0, B.jsx)(jy, {\n\t\tclassNames: rj.avatar,\n\t\tvm: e.memberAvatarViewModel\n\t}), /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: rj.title,\n\t\tchildren: t(\"timeline|call_tile|ongoing|common|call_started_by\", { startedByDisplayName: e.startedByDisplayName })\n\t})] });\n}\nfunction mj({ snapshot: e }) {\n\tlet { translate: t } = V();\n\treturn /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [/* @__PURE__ */ (0, B.jsx)(jy, {\n\t\tclassNames: rj.avatar,\n\t\tvm: e.memberAvatarViewModel\n\t}), /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: rj.title,\n\t\tchildren: t(\"timeline|call_tile|ongoing|dm|call_started\")\n\t})] });\n}\nfunction hj({ snapshot: e }) {\n\tlet { translate: t } = V();\n\treturn /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [/* @__PURE__ */ (0, B.jsx)(My, {\n\t\tclassNames: rj.facepile,\n\t\tvm: e.facePileViewModel\n\t}), /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: rj.title,\n\t\tchildren: t(\"timeline|call_tile|ongoing|dm|title\")\n\t})] });\n}\n//#endregion\n//#region src/room/timeline/event-tile/call/RootCallTileView.tsx\nfunction gj({ vm: e }) {\n\tlet { tileType: t, tileViewModel: n } = U(e);\n\tswitch (t) {\n\t\tcase \"ongoing-call-room\": return /* @__PURE__ */ (0, B.jsx)(lj, { vm: n });\n\t\tcase \"ongoing-call-dm\": return /* @__PURE__ */ (0, B.jsx)(fj, { vm: n });\n\t\tcase \"tombstone-call-room\": return /* @__PURE__ */ (0, B.jsx)(GA, { vm: n });\n\t\tcase \"tombstone-call-dm\": return /* @__PURE__ */ (0, B.jsx)(YA, { vm: n });\n\t}\n}\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/MJitsiWidgetEventView/MJitsiWidgetEventView.tsx\nfunction _j({ vm: e, className: t, ref: n }) {\n\tlet { isVisible: r, title: i, subtitle: a, timestamp: o } = U(e);\n\treturn r ? /* @__PURE__ */ (0, B.jsx)(zA, {\n\t\ticon: /* @__PURE__ */ (0, B.jsx)(uw, { color: \"var(--cpd-color-icon-primary)\" }),\n\t\tclassName: t,\n\t\ttitle: i,\n\t\tsubtitle: a || void 0,\n\t\tref: n,\n\t\tchildren: o\n\t}) : null;\n}\nvar vj = { content: \"_content_1o649_8\" };\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/MKeyVerificationRequestView/MKeyVerificationRequestView.tsx\nfunction yj({ vm: e, className: t, ref: n }) {\n\tlet { title: r, subtitle: i, timestamp: a } = U(e);\n\treturn /* @__PURE__ */ (0, B.jsx)(zA, {\n\t\ticon: /* @__PURE__ */ (0, B.jsx)(cC, {}),\n\t\tclassName: (0, z.default)(vj.content, t),\n\t\ttitle: r,\n\t\tsubtitle: i,\n\t\tref: n,\n\t\tchildren: a\n\t});\n}\nvar bj = { pinnedMessageBadge: \"_pinnedMessageBadge_10mi2_8\" };\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/PinnedMessageBadge/PinnedMessageBadge.tsx\nfunction xj({ className: e, children: t, ...n }) {\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t...n,\n\t\tclassName: (0, z.default)(bj.pinnedMessageBadge, e),\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(EC, {\n\t\t\twidth: \"16px\",\n\t\t\theight: \"16px\"\n\t\t}), t ?? W(\"room|pinned_message_badge\")]\n\t});\n}\nvar Sj = {\n\ttextualEvent: \"_textualEvent_1iwcb_8\",\n\tavatarButton: \"_avatarButton_1iwcb_21\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/RoomAvatarEventView/RoomAvatarEventView.tsx\nfunction Cj({ vm: e, renderAvatar: t, className: n, ref: r }) {\n\tlet i = U(e), a = V().translate, o = QD(), s = (0, z.default)(Sj.textualEvent, n);\n\treturn i.isRemoved ? /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: s,\n\t\tref: r,\n\t\t...o,\n\t\tchildren: a(\"timeline|m.room.avatar|removed\", { senderDisplayName: i.senderDisplayName })\n\t}) : /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tclassName: s,\n\t\tref: r,\n\t\t...o,\n\t\tchildren: a(\"timeline|m.room.avatar|changed_img\", { senderDisplayName: i.senderDisplayName }, { img: () => /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\ttype: \"button\",\n\t\t\tclassName: Sj.avatarButton,\n\t\t\tonClick: e.onAvatarClick,\n\t\t\t\"aria-label\": i.lightboxLabel,\n\t\t\tchildren: t(i)\n\t\t}) })\n\t});\n}\nvar wj = { textualEvent: \"_textualEvent_1rbqb_8\" };\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/TextualEventView/TextualEventView.tsx\nfunction Tj({ vm: e, className: t }) {\n\tlet n = QD(), r = U(e);\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: (0, z.default)(wj.textualEvent, t),\n\t\t...n,\n\t\tchildren: r.content\n\t});\n}\nvar Ej = {\n\taudioPlayer: \"_audioPlayer_etpvh_8\",\n\tmediaInfo: \"_mediaInfo_etpvh_12\",\n\tmediaName: \"_mediaName_etpvh_17\",\n\tbyline: \"_byline_etpvh_26\",\n\tclock: \"_clock_etpvh_30\",\n\terror: \"_error_etpvh_34\"\n};\n//#endregion\n//#region src/core/utils/FormattingUtils.ts\nfunction Dj(e, t = 2) {\n\tif (e === 0) return \"0 Bytes\";\n\tlet n = 1024, r = t < 0 ? 0 : t, i = [\n\t\t\"Bytes\",\n\t\t\"KB\",\n\t\t\"MB\",\n\t\t\"GB\",\n\t\t\"TB\",\n\t\t\"PB\",\n\t\t\"EB\",\n\t\t\"ZB\",\n\t\t\"YB\"\n\t], a = Math.floor(Math.log(e) / Math.log(n));\n\treturn parseFloat((e / n ** a).toFixed(r)) + \" \" + i[a];\n}\n//#endregion\n//#region src/room/timeline/event-tile/body/AudioPlayerView/AudioPlayerView.tsx\nfunction Oj({ vm: e }) {\n\tlet { translate: t } = V(), { playbackState: n, mediaName: r = t(\"timeline|m.audio|unnamed_audio\"), sizeBytes: i, durationSeconds: a, playedSeconds: o, percentComplete: s, error: c } = U(e), l = i ? `(${Dj(i)})` : null, u = n === \"decoding\";\n\treturn /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [/* @__PURE__ */ (0, B.jsxs)(KO, {\n\t\tclassName: Ej.audioPlayer,\n\t\ttabIndex: 0,\n\t\tonKeyDown: e.onKeyDown,\n\t\t\"aria-label\": t(\"timeline|m.audio|audio_player\"),\n\t\trole: \"region\",\n\t\tchildren: [/* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\tgap: \"var(--cpd-space-2x)\",\n\t\t\talign: \"center\",\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(of, {\n\t\t\t\ttabIndex: -1,\n\t\t\t\tdisabled: u,\n\t\t\t\tplaying: n === \"playing\",\n\t\t\t\ttogglePlay: e.togglePlay\n\t\t\t}), /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\t\tdirection: \"column\",\n\t\t\t\tclassName: Ej.mediaInfo,\n\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\t\tclassName: Ej.mediaName,\n\t\t\t\t\t\"data-testid\": \"audio-player-name\",\n\t\t\t\t\tchildren: r\n\t\t\t\t}), /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\t\t\tclassName: Ej.byline,\n\t\t\t\t\tgap: \"var(--cpd-space-1-5x)\",\n\t\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(Zd, { seconds: a }), l]\n\t\t\t\t})]\n\t\t\t})]\n\t\t}), /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\talign: \"center\",\n\t\t\tgap: \"var(--cpd-space-1x)\",\n\t\t\t\"data-testid\": \"audio-player-seek\",\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(by, {\n\t\t\t\ttabIndex: -1,\n\t\t\t\tdisabled: u,\n\t\t\t\tvalue: s,\n\t\t\t\tonChange: e.onSeekbarChange\n\t\t\t}), /* @__PURE__ */ (0, B.jsx)(Zd, {\n\t\t\t\tclassName: Ej.clock,\n\t\t\t\tseconds: o,\n\t\t\t\trole: \"timer\"\n\t\t\t})]\n\t\t})]\n\t}), c && /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tclassName: Ej.error,\n\t\tchildren: t(\"timeline|m.audio|error_downloading_audio\")\n\t})] });\n}\nvar kj = {\n\tcontent: \"_content_1uqu1_8\",\n\terror: \"_error_1uqu1_14\",\n\ticon: \"_icon_1uqu1_23\"\n}, Aj = /* @__PURE__ */ function(e) {\n\treturn e.MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE = \"MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE\", e.HISTORICAL_MESSAGE_NO_KEY_BACKUP = \"HISTORICAL_MESSAGE_NO_KEY_BACKUP\", e.HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED = \"HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED\", e.HISTORICAL_MESSAGE_USER_NOT_JOINED = \"HISTORICAL_MESSAGE_USER_NOT_JOINED\", e.SENDER_IDENTITY_PREVIOUSLY_VERIFIED = \"SENDER_IDENTITY_PREVIOUSLY_VERIFIED\", e.UNSIGNED_SENDER_DEVICE = \"UNSIGNED_SENDER_DEVICE\", e.UNABLE_TO_DECRYPT = \"UNABLE_TO_DECRYPT\", e;\n}({});\nfunction jj(e, t, n) {\n\tlet r = e.translate;\n\tswitch (t) {\n\t\tcase \"MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE\": return r(\"timeline|decryption_failure|blocked\");\n\t\tcase \"HISTORICAL_MESSAGE_NO_KEY_BACKUP\": return r(\"timeline|decryption_failure|historical_event_no_key_backup\");\n\t\tcase \"HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED\":\n\t\t\tif (n === !1) return r(\"timeline|decryption_failure|historical_event_unverified_device\");\n\t\t\tbreak;\n\t\tcase \"HISTORICAL_MESSAGE_USER_NOT_JOINED\": return r(\"timeline|decryption_failure|historical_event_user_not_joined\");\n\t\tcase \"SENDER_IDENTITY_PREVIOUSLY_VERIFIED\": return /* @__PURE__ */ (0, B.jsxs)(\"span\", { children: [/* @__PURE__ */ (0, B.jsx)(iS, {\n\t\t\tclassName: kj.icon,\n\t\t\twidth: \"16px\",\n\t\t\theight: \"16px\"\n\t\t}), r(\"timeline|decryption_failure|sender_identity_previously_verified\")] });\n\t\tcase \"UNSIGNED_SENDER_DEVICE\": return /* @__PURE__ */ (0, B.jsxs)(\"span\", { children: [/* @__PURE__ */ (0, B.jsx)(iS, {\n\t\t\tclassName: kj.icon,\n\t\t\twidth: \"16px\",\n\t\t\theight: \"16px\"\n\t\t}), r(\"timeline|decryption_failure|sender_unsigned_device\")] });\n\t}\n\treturn r(\"timeline|decryption_failure|unable_to_decrypt\");\n}\nfunction Mj(e) {\n\tswitch (e) {\n\t\tcase \"SENDER_IDENTITY_PREVIOUSLY_VERIFIED\":\n\t\tcase \"UNSIGNED_SENDER_DEVICE\": return kj.error;\n\t}\n\treturn null;\n}\nfunction Nj({ vm: e, ref: t, className: n }) {\n\tlet r = V(), { decryptionFailureReason: i, isLocalDeviceVerified: a } = U(e);\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: (0, z.default)(kj.content, Mj(i), n),\n\t\tref: t,\n\t\tchildren: jj(r, i, a)\n\t});\n}\nvar Pj = {\n\tthreadSummary: \"_threadSummary_6afbq_8\",\n\tcontent: \"_content_6afbq_9\",\n\tchevron: \"_chevron_6afbq_41\",\n\tsender: \"_sender_6afbq_47\",\n\trepliesAmount: \"_repliesAmount_6afbq_66\",\n\tavatar: \"_avatar_6afbq_85\",\n\tthreadIcon: \"_threadIcon_6afbq_90\",\n\tnarrow: \"_narrow_6afbq_117\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/EventTileView/ThreadSummary/ThreadSummaryView.tsx\nfunction Fj({ vm: e }) {\n\tlet { isVisible: t, avatar: n, showDisplayName: r, senderName: i, previewContent: a, previewTooltip: o } = U(e);\n\tif (!t || !a) return /* @__PURE__ */ (0, B.jsx)(B.Fragment, {});\n\tlet s = /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tclassName: Pj.content,\n\t\tchildren: a\n\t}), c = n?.className ? `${Pj.avatar} ${n.className}` : Pj.avatar;\n\treturn /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [\n\t\tn && /* @__PURE__ */ (0, B.jsx)(E, {\n\t\t\tid: n.id,\n\t\t\tname: n.name,\n\t\t\tsrc: n.src,\n\t\t\ttitle: n.title,\n\t\t\t\"aria-label\": n.label,\n\t\t\ttype: \"round\",\n\t\t\tsize: \"24px\",\n\t\t\tclassName: c\n\t\t}),\n\t\tr && i && /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: Pj.sender,\n\t\t\tchildren: i\n\t\t}),\n\t\to ? /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\t\tdescription: o,\n\t\t\tchildren: s\n\t\t}) : s\n\t] });\n}\nfunction Ij({ vm: e, className: t, type: n = \"button\", ...r }) {\n\tlet { isVisible: i, replyCountLabel: a, openThreadLabel: o, notificationIndicator: s, narrow: c, previewVm: l } = U(e);\n\tif (!i) return /* @__PURE__ */ (0, B.jsx)(B.Fragment, {});\n\tlet u = [\n\t\tPj.threadSummary,\n\t\tt,\n\t\tc ? Pj.narrow : void 0\n\t].filter(Boolean).join(\" \");\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"button\", {\n\t\t...r,\n\t\ttype: n,\n\t\tclassName: u,\n\t\tonClick: e.onClick,\n\t\t\"aria-label\": o,\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(se, {\n\t\t\t\tsize: \"24px\",\n\t\t\t\tindicator: s,\n\t\t\t\tclassName: Pj.threadIcon,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(QC, {})\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: Pj.repliesAmount,\n\t\t\t\tchildren: a\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(Fj, { vm: l }),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: Pj.chevron,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(gS, {})\n\t\t\t})\n\t\t]\n\t});\n}\nvar Lj = {\n\treactionsRow: \"_reactionsRow_1lcz2_8\",\n\tshowAllButton: \"_showAllButton_1lcz2_16\",\n\taddReactionButton: \"_addReactionButton_1lcz2_29\",\n\taddReactionButtonVisible: \"_addReactionButtonVisible_1lcz2_48\",\n\taddReactionButtonActive: \"_addReactionButtonActive_1lcz2_52\",\n\taddReactionButtonDisabled: \"_addReactionButtonDisabled_1lcz2_56\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/reactions/ReactionsRow/ReactionsRowView.tsx\nfunction Rj({ vm: e, className: t, children: n }) {\n\tlet { ariaLabel: r, isVisible: i, showAllButtonVisible: a, showAllButtonLabel: o, showAddReactionButton: s, addReactionButtonLabel: c, addReactionButtonVisible: l, addReactionButtonActive: u, addReactionButtonDisabled: d } = U(e);\n\tif (!i) return /* @__PURE__ */ (0, B.jsx)(B.Fragment, {});\n\tlet f = (0, z.default)(Lj.addReactionButton, {\n\t\t[Lj.addReactionButtonVisible]: l,\n\t\t[Lj.addReactionButtonActive]: u,\n\t\t[Lj.addReactionButtonDisabled]: d\n\t}), p = e.onAddReactionContextMenu ? (t) => {\n\t\tt.preventDefault(), e.onAddReactionContextMenu?.(t);\n\t} : void 0, m = /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\ttype: \"button\",\n\t\tclassName: f,\n\t\t\"aria-label\": c,\n\t\tdisabled: d,\n\t\tonClick: e.onAddReactionClick,\n\t\tonContextMenu: p,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(IC, {})\n\t});\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: (0, z.default)(t, Lj.reactionsRow),\n\t\trole: \"toolbar\",\n\t\t\"aria-label\": r,\n\t\tchildren: [\n\t\t\tn,\n\t\t\ta && /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\t\ttype: \"button\",\n\t\t\t\tclassName: Lj.showAllButton,\n\t\t\t\tonClick: e.onShowAllClick,\n\t\t\t\tchildren: o\n\t\t\t}),\n\t\t\ts && /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\t\t\tdescription: c,\n\t\t\t\tplacement: \"right\",\n\t\t\t\tchildren: m\n\t\t\t})\n\t\t]\n\t});\n}\n//#endregion\n//#region src/room/timeline/event-tile/reactions/ReactionsRowButtonTooltip/ReactionsRowButtonTooltipView.tsx\nfunction zj({ vm: e, children: t }) {\n\tlet { formattedSenders: n, caption: r, tooltipOpen: i } = U(e);\n\treturn n ? /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: n,\n\t\tcaption: r,\n\t\tplacement: \"right\",\n\t\topen: i,\n\t\tchildren: t\n\t}) : /* @__PURE__ */ (0, B.jsx)(B.Fragment, { children: t });\n}\nvar Bj = {\n\treactionsRowButton: \"_reactionsRowButton_5v4c1_8\",\n\treactionsRowButtonSelected: \"_reactionsRowButtonSelected_5v4c1_21\",\n\treactionsRowButtonDisabled: \"_reactionsRowButtonDisabled_5v4c1_26\",\n\treactionsRowButtonContent: \"_reactionsRowButtonContent_5v4c1_30\",\n\treactionsRowButtonCount: \"_reactionsRowButtonCount_5v4c1_38\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/reactions/ReactionsRowButton/ReactionsRowButtonView.tsx\nfunction Vj({ vm: e }) {\n\tlet t = U(e), { content: n, count: r, className: i, isSelected: a, isDisabled: o, imageSrc: s, imageAlt: c, tooltipVm: l } = t, u = t[\"aria-label\"] ?? t.ariaLabel, d = o ? !0 : void 0, f = (0, z.default)(i, Bj.reactionsRowButton, {\n\t\t[Bj.reactionsRowButtonSelected]: a,\n\t\t[Bj.reactionsRowButtonDisabled]: o\n\t}), p = s ? /* @__PURE__ */ (0, B.jsx)(\"img\", {\n\t\tclassName: Bj.reactionsRowButtonContent,\n\t\talt: c ?? \"\",\n\t\tsrc: s,\n\t\twidth: \"16\",\n\t\theight: \"16\"\n\t}) : /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tclassName: Bj.reactionsRowButtonContent,\n\t\t\"aria-hidden\": \"true\",\n\t\tchildren: n ?? \"\"\n\t});\n\treturn /* @__PURE__ */ (0, B.jsx)(zj, {\n\t\tvm: l,\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"button\", {\n\t\t\ttype: \"button\",\n\t\t\tclassName: f,\n\t\t\ttabIndex: 0,\n\t\t\t\"aria-label\": u,\n\t\t\t\"aria-disabled\": d,\n\t\t\tonClick: o ? void 0 : e.onClick,\n\t\t\tchildren: [p, /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: Bj.reactionsRowButtonCount,\n\t\t\t\t\"aria-hidden\": \"true\",\n\t\t\t\tchildren: r\n\t\t\t})]\n\t\t})\n\t});\n}\nvar Hj = { content: \"_content_1jaux_8\" };\n//#endregion\n//#region src/room/timeline/event-tile/timestamp/MessageTimestampView/MessageTimestampView.tsx\nfunction Uj({ vm: e, className: t }) {\n\tlet { translate: n } = V(), { ts: r, tsSentAt: i, tsReceivedAt: a, inhibitTooltip: o, href: s } = U(e), c = (t) => {\n\t\te.onClick && (t.key === \"Enter\" || t.key === \" \") && (t.preventDefault(), e.onClick?.(t));\n\t}, l = i, u;\n\ta && a?.length > 0 && (l = n(\"timeline|message_timestamp_sent_at\", { dateTime: l }), u = n(\"timeline|message_timestamp_received_at\", { dateTime: a }));\n\tlet d;\n\treturn d = s ? /* @__PURE__ */ (0, B.jsx)(\"a\", {\n\t\thref: s,\n\t\tonClick: e.onClick,\n\t\tonKeyDown: c,\n\t\tonContextMenu: e.onContextMenu,\n\t\tclassName: (0, z.default)(t, Hj.content),\n\t\t\"aria-live\": \"off\",\n\t\tchildren: r\n\t}) : /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\tonClick: e.onClick,\n\t\tonKeyDown: c,\n\t\tonContextMenu: e.onContextMenu,\n\t\tclassName: (0, z.default)(t, Hj.content),\n\t\trole: e.onClick ? \"link\" : void 0,\n\t\t\"aria-live\": \"off\",\n\t\ttabIndex: e.onClick || !o ? 0 : void 0,\n\t\tchildren: r\n\t}), o ? d : /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: l,\n\t\tcaption: u,\n\t\tchildren: d\n\t});\n}\nvar Wj = {\n\thideButton: \"_hideButton_14osa_8\",\n\twrapper: \"_wrapper_14osa_15\",\n\tpreviewGroup: \"_previewGroup_14osa_21\",\n\ttoggleButton: \"_toggleButton_14osa_27\"\n};\n//#endregion\n//#region src/room/timeline/event-tile/UrlPreviewGroupView/UrlPreviewGroupView.tsx\nfunction Gj({ onHideClick: e }) {\n\tlet { translate: t } = V();\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: Wj.hideButton,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\tkind: \"secondary\",\n\t\t\tsize: \"28px\",\n\t\t\tonClick: e,\n\t\t\t\"aria-label\": t(\"timeline|url_preview|close\"),\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(vS, {})\n\t\t})\n\t});\n}\nfunction Kj({ vm: e, className: t }) {\n\tlet { translate: n } = V(), r = QD(), { previews: i, totalPreviewCount: a, previewsLimited: o, overPreviewLimit: s } = U(e);\n\tif (i.length === 0) return null;\n\tlet c;\n\treturn s && (c = /* @__PURE__ */ (0, B.jsx)(O, {\n\t\tclassName: Wj.toggleButton,\n\t\tkind: \"tertiary\",\n\t\tsize: \"md\",\n\t\tonClick: e.onTogglePreviewLimit,\n\t\tchildren: o ? n(\"timeline|url_preview|show_n_more\", { count: a - i.length }) : n(\"action|collapse\")\n\t})), /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: (0, z.default)(t, Wj.wrapper),\n\t\t...r,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(Gj, { onHideClick: e.onHideClick }), /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tclassName: Wj.previewGroup,\n\t\t\tchildren: [i.map((t) => /* @__PURE__ */ (0, B.jsx)(jD, {\n\t\t\t\tonImageClick: () => e.onImageClick(t),\n\t\t\t\t...t,\n\t\t\t\timage: t.image\n\t\t\t}, t.link)), c]\n\t\t})]\n\t});\n}\nvar qj = {\n\trichItem: \"_richItem_1c0uo_8\",\n\tavatar: \"_avatar_1c0uo_36\",\n\ttitle: \"_title_1c0uo_41\",\n\tdescription: \"_description_1c0uo_47\",\n\ttimestamp: \"_timestamp_1c0uo_51\",\n\tcheckmark: \"_checkmark_1c0uo_69\"\n}, Jj = p(function({ avatar: e, title: t, description: n, timestamp: r, selected: i, ...a }) {\n\tlet o = V();\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"li\", {\n\t\tclassName: qj.richItem,\n\t\trole: \"option\",\n\t\ttabIndex: -1,\n\t\t\"aria-selected\": i,\n\t\t\"aria-label\": t,\n\t\t...a,\n\t\tchildren: [\n\t\t\ti ? /* @__PURE__ */ (0, B.jsx)(Yj, {}) : /* @__PURE__ */ (0, B.jsx)(H, {\n\t\t\t\tclassName: qj.avatar,\n\t\t\t\tchildren: e\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: qj.title,\n\t\t\t\tchildren: t\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: qj.description,\n\t\t\t\tchildren: n\n\t\t\t}),\n\t\t\tr && /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\trole: \"timer\",\n\t\t\t\tclassName: qj.timestamp,\n\t\t\t\tchildren: o.humanizeTime(r)\n\t\t\t})\n\t\t]\n\t});\n});\nfunction Yj() {\n\treturn /* @__PURE__ */ (0, B.jsx)(H, {\n\t\talign: \"center\",\n\t\tjustify: \"center\",\n\t\t\"aria-hidden\": \"true\",\n\t\tclassName: qj.checkmark,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(uS, {\n\t\t\twidth: \"24px\",\n\t\t\theight: \"24px\",\n\t\t\tcolor: \"var(--cpd-color-icon-on-solid-primary)\"\n\t\t})\n\t});\n}\nvar Xj = {\n\trichList: \"_richList_1mcas_8\",\n\ttitle: \"_title_1mcas_12\",\n\tcontent: \"_content_1mcas_18\",\n\tempty: \"_empty_1mcas_26\"\n};\n//#endregion\n//#region src/core/hooks/useListKeyboardNavigation.ts\nfunction Zj() {\n\tlet e = w(null), t = h((t) => {\n\t\tif (e.current && t.target === e.current) {\n\t\t\tlet t = e.current?.firstElementChild;\n\t\t\tfor (let n of e.current.children) if (n.getAttribute(\"aria-selected\") === \"true\") {\n\t\t\t\tt = n;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tt?.focus();\n\t\t}\n\t}, []);\n\treturn {\n\t\tlistRef: e,\n\t\tonKeyDown: h((t) => {\n\t\t\tlet { key: n } = t, r = !1;\n\t\t\tswitch (n) {\n\t\t\t\tcase \"Enter\":\n\t\t\t\tcase \" \":\n\t\t\t\t\tr = !0, document.activeElement.click();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ArrowDown\": {\n\t\t\t\t\tr = !0;\n\t\t\t\t\tlet t = document.activeElement;\n\t\t\t\t\te.current?.contains(t) && t && t.nextElementSibling?.focus();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"ArrowUp\": {\n\t\t\t\t\tr = !0;\n\t\t\t\t\tlet t = document.activeElement;\n\t\t\t\t\te.current?.contains(t) && t && t.previousElementSibling?.focus();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"Home\":\n\t\t\t\t\tr = !0, (e.current?.firstElementChild)?.focus();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"End\":\n\t\t\t\t\tr = !0, (e.current?.lastElementChild)?.focus();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tr && t.preventDefault();\n\t\t}, []),\n\t\tonFocus: t\n\t};\n}\n//#endregion\n//#region src/core/rich-list/RichList/RichList.tsx\nfunction Qj({ children: e, title: t, className: n, titleAttributes: r, isEmpty: i = !1, ...a }) {\n\tlet o = v(), { listRef: s, onKeyDown: c, onFocus: l } = Zj();\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\tclassName: (0, z.default)(Xj.richList, n),\n\t\tdirection: \"column\",\n\t\t...a,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\tid: o,\n\t\t\tclassName: Xj.title,\n\t\t\t...r,\n\t\t\tchildren: t\n\t\t}), i ? /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\tclassName: Xj.empty,\n\t\t\tchildren: e\n\t\t}) : /* @__PURE__ */ (0, B.jsx)(\"ul\", {\n\t\t\tref: s,\n\t\t\trole: \"listbox\",\n\t\t\tclassName: Xj.content,\n\t\t\t\"aria-labelledby\": o,\n\t\t\ttabIndex: 0,\n\t\t\tonKeyDown: c,\n\t\t\tonFocus: l,\n\t\t\tchildren: e\n\t\t})]\n\t});\n}\nvar $j = { title: \"_title_s91uo_8\" };\n//#endregion\n//#region src/room-list/RoomListHeaderView/menu/OptionMenuView.tsx\nfunction eM({ vm: e }) {\n\tlet { translate: t } = V(), [n, r] = T(!1), { activeSortOption: i, isMessagePreviewEnabled: a } = U(e);\n\treturn /* @__PURE__ */ (0, B.jsxs)(ue, {\n\t\topen: n,\n\t\tonOpenChange: r,\n\t\ttitle: t(\"room_list|room_options\"),\n\t\tshowTitle: !1,\n\t\talign: \"start\",\n\t\ttrigger: /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\ttooltip: t(\"room_list|room_options\"),\n\t\t\t\"aria-label\": t(\"room_list|room_options\"),\n\t\t\tsize: \"28px\",\n\t\t\tstyle: { padding: \"4px\" },\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(wC, {})\n\t\t}),\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(de, {\n\t\t\t\ttitle: t(\"room_list|sort\"),\n\t\t\t\tclassName: $j.title\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(fe, {\n\t\t\t\tlabel: t(\"room_list|sort_type|activity\"),\n\t\t\t\tchecked: i === \"recent\",\n\t\t\t\tonSelect: () => e.sort(\"recent\")\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(fe, {\n\t\t\t\tlabel: t(\"room_list|sort_type|unread_first\"),\n\t\t\t\tchecked: i === \"unread-first\",\n\t\t\t\tonSelect: () => e.sort(\"unread-first\")\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(fe, {\n\t\t\t\tlabel: t(\"room_list|sort_type|atoz\"),\n\t\t\t\tchecked: i === \"alphabetical\",\n\t\t\t\tonSelect: () => e.sort(\"alphabetical\")\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(de, { title: t(\"room_list|appearance\") }),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(re, {\n\t\t\t\tlabel: t(\"room_list|show_message_previews\"),\n\t\t\t\tonSelect: e.toggleMessagePreview,\n\t\t\t\tchecked: a\n\t\t\t})\n\t\t]\n\t});\n}\nvar tM = { button: \"_button_1veqf_8\" };\n//#endregion\n//#region src/room-list/RoomListHeaderView/menu/SpaceMenuView.tsx\nfunction nM({ vm: e }) {\n\tlet { translate: t } = V(), { canInviteInSpace: n, canAccessSpaceSettings: r, title: i } = U(e), [a, o] = T(!1);\n\treturn /* @__PURE__ */ (0, B.jsxs)(ue, {\n\t\topen: a,\n\t\tonOpenChange: o,\n\t\ttitle: i,\n\t\talign: \"start\",\n\t\ttrigger: /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\tclassName: tM.button,\n\t\t\t\"aria-label\": t(\"room_list|open_space_menu\"),\n\t\t\tsize: \"24px\",\n\t\t\tstyle: { padding: \"2px\" },\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(fS, {})\n\t\t}),\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: QS,\n\t\t\t\tlabel: t(\"room_list|space_menu|home\"),\n\t\t\t\tonSelect: e.openSpaceHome,\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\tn && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: iw,\n\t\t\t\tlabel: t(\"action|invite\"),\n\t\t\t\tonSelect: e.inviteInSpace,\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: PC,\n\t\t\t\tlabel: t(\"common|preferences\"),\n\t\t\t\tonSelect: e.openSpacePreferences,\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\tr && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: XC,\n\t\t\t\tlabel: t(\"room_list|space_menu|space_settings\"),\n\t\t\t\tonSelect: e.openSpaceSettings,\n\t\t\t\thideChevron: !0\n\t\t\t})\n\t\t]\n\t});\n}\n//#endregion\n//#region src/room-list/RoomListHeaderView/menu/ComposeMenuView.tsx\nfunction rM({ vm: e }) {\n\tlet { translate: t } = V(), [n, r] = T(!1), { canCreateRoom: i, canCreateVideoRoom: a, displaySectionReleaseAnnouncement: o, areSectionsEnabled: s } = U(e), c = /* @__PURE__ */ (0, B.jsx)(M, {\n\t\tsize: \"28px\",\n\t\tstyle: { padding: \"4px\" },\n\t\ttooltip: t(\"action|new_conversation\"),\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(AC, {\n\t\t\tcolor: \"var(--cpd-color-icon-secondary)\",\n\t\t\t\"aria-hidden\": !0\n\t\t})\n\t});\n\treturn o ? /* @__PURE__ */ (0, B.jsx)(pe, {\n\t\topen: o,\n\t\tonClick: e.closeSectionReleaseAnnouncement,\n\t\theader: t(\"release_announcement|room_list_section_title\"),\n\t\tdescription: t(\"release_announcement|room_list_section_description\"),\n\t\tcloseLabel: t(\"release_announcement|room_list_section_close\"),\n\t\tchildren: c\n\t}) : /* @__PURE__ */ (0, B.jsxs)(ue, {\n\t\topen: n,\n\t\tonOpenChange: r,\n\t\tshowTitle: !1,\n\t\ttitle: t(\"action|open_menu\"),\n\t\talign: \"start\",\n\t\ttrigger: c,\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: cS,\n\t\t\t\tlabel: t(\"action|start_chat\"),\n\t\t\t\tonSelect: e.createChatRoom,\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\ti && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: WC,\n\t\t\t\tlabel: t(\"action|new_room\"),\n\t\t\t\tonSelect: e.createRoom,\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\ta && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: fw,\n\t\t\t\tlabel: t(\"action|new_video_room\"),\n\t\t\t\tonSelect: e.createVideoRoom,\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\ts && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: JC,\n\t\t\t\tlabel: t(\"action|new_section\"),\n\t\t\t\tonSelect: e.createSection,\n\t\t\t\thideChevron: !0\n\t\t\t})\n\t\t]\n\t});\n}\nvar iM = {\n\theader: \"_header_1b9rm_8\",\n\tcontainer: \"_container_1b9rm_13\",\n\ttitle: \"_title_1b9rm_19\"\n};\n//#endregion\n//#region src/room-list/RoomListHeaderView/RoomListHeaderView.tsx\nfunction aM({ vm: e }) {\n\tlet { translate: t } = V(), { title: n, displaySpaceMenu: r, collapseSections: i, areSectionsEnabled: a, canCreateRoom: o, canCreateVideoRoom: s } = U(e), c = !a && !o && !s;\n\treturn /* @__PURE__ */ (0, B.jsx)(H, {\n\t\tas: \"header\",\n\t\tclassName: iM.header,\n\t\t\"aria-label\": t(\"room|context_menu|title\"),\n\t\talign: \"end\",\n\t\t\"data-testid\": \"room-list-header\",\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\tclassName: iM.container,\n\t\t\tjustify: \"space-between\",\n\t\t\talign: \"center\",\n\t\t\tgap: \"var(--cpd-space-3x)\",\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\t\tclassName: iM.title,\n\t\t\t\talign: \"center\",\n\t\t\t\tgap: \"var(--cpd-space-1x)\",\n\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(ae, {\n\t\t\t\t\tsize: \"sm\",\n\t\t\t\t\ttitle: n,\n\t\t\t\t\tchildren: n\n\t\t\t\t}), r && /* @__PURE__ */ (0, B.jsx)(nM, { vm: e })]\n\t\t\t}), /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\t\talign: \"center\",\n\t\t\t\tgap: \"var(--cpd-space-2x)\",\n\t\t\t\tchildren: [\n\t\t\t\t\t/* @__PURE__ */ (0, B.jsx)(eM, { vm: e }),\n\t\t\t\t\ta && i && /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\t\t\t\tsize: \"28px\",\n\t\t\t\t\t\tstyle: { padding: \"4px\" },\n\t\t\t\t\t\tonClick: () => e.collapseOrExpandSections(),\n\t\t\t\t\t\ttooltip: t(i === \"collapse\" ? \"room_list|collapse_all_sections\" : \"room_list|expand_all_sections\"),\n\t\t\t\t\t\tchildren: i === \"collapse\" ? /* @__PURE__ */ (0, B.jsx)(bS, {\n\t\t\t\t\t\t\tcolor: \"var(--cpd-color-icon-secondary)\",\n\t\t\t\t\t\t\t\"aria-hidden\": !0\n\t\t\t\t\t\t}) : /* @__PURE__ */ (0, B.jsx)(BS, {\n\t\t\t\t\t\t\tcolor: \"var(--cpd-color-icon-secondary)\",\n\t\t\t\t\t\t\t\"aria-hidden\": !0\n\t\t\t\t\t\t})\n\t\t\t\t\t}),\n\t\t\t\t\tc ? /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\t\t\t\tsize: \"28px\",\n\t\t\t\t\t\tstyle: { padding: \"4px\" },\n\t\t\t\t\t\tonClick: (t) => e.createChatRoom(t.nativeEvent),\n\t\t\t\t\t\ttooltip: t(\"action|start_chat\"),\n\t\t\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(cS, {\n\t\t\t\t\t\t\tcolor: \"var(--cpd-color-icon-secondary)\",\n\t\t\t\t\t\t\t\"aria-hidden\": !0\n\t\t\t\t\t\t})\n\t\t\t\t\t}) : /* @__PURE__ */ (0, B.jsx)(rM, { vm: e })\n\t\t\t\t]\n\t\t\t})]\n\t\t})\n\t});\n}\nvar oM = {\n\tview: \"_view_zk0ja_8\",\n\tsearch: \"_search_zk0ja_16\",\n\tsearch_container: \"_search_container_zk0ja_28\",\n\tsearch_text: \"_search_text_zk0ja_40\"\n};\n//#endregion\n//#region src/room-list/RoomListSearchView/RoomListSearchView.tsx\nfunction sM({ vm: e }) {\n\tlet { translate: t } = V(), { displayExploreButton: n, displayDialButton: r, searchShortcut: i } = U(e);\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\"data-testid\": \"room-list-search\",\n\t\tclassName: oM.view,\n\t\trole: \"search\",\n\t\tgap: \"var(--cpd-space-2x)\",\n\t\talign: \"center\",\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tid: \"room-list-search-button\",\n\t\t\t\tclassName: oM.search,\n\t\t\t\tkind: \"secondary\",\n\t\t\t\tsize: \"md\",\n\t\t\t\tIcon: KC,\n\t\t\t\tonClick: e.onSearchClick,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\t\t\tclassName: oM.search_container,\n\t\t\t\t\tas: \"span\",\n\t\t\t\t\tjustify: \"space-between\",\n\t\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\t\t\tclassName: oM.search_text,\n\t\t\t\t\t\tchildren: t(\"action|search\")\n\t\t\t\t\t}), /* @__PURE__ */ (0, B.jsx)(\"kbd\", { children: i })]\n\t\t\t\t})\n\t\t\t}),\n\t\t\tr && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tkind: \"secondary\",\n\t\t\t\tsize: \"md\",\n\t\t\t\tIcon: OS,\n\t\t\t\ticonOnly: !0,\n\t\t\t\t\"aria-label\": t(\"left_panel|open_dial_pad\"),\n\t\t\t\tonClick: e.onDialPadClick\n\t\t\t}),\n\t\t\tn && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tkind: \"secondary\",\n\t\t\t\tsize: \"md\",\n\t\t\t\tIcon: WS,\n\t\t\t\ticonOnly: !0,\n\t\t\t\t\"aria-label\": t(\"action|explore_rooms\"),\n\t\t\t\tonClick: e.onExploreClick\n\t\t\t})\n\t\t]\n\t});\n}\n//#endregion\n//#region src/room-list/RoomListPrimaryFilters/useCollapseFilters.ts\nfunction cM(e, t) {\n\tlet n = w(null), [r, i] = T(!1), [a, o] = T(-1);\n\treturn _(() => {\n\t\tif (!n.current) return;\n\t\tlet r = (n) => {\n\t\t\tlet r = !1;\n\t\t\tArray.from(n.children).forEach((n, i) => {\n\t\t\t\tlet a = n;\n\t\t\t\tif (a.setAttribute(\"aria-hidden\", \"false\"), a.classList.remove(t), e) return;\n\t\t\t\tlet s = a.previousElementSibling;\n\t\t\t\ts && a.offsetLeft <= s.offsetLeft && (r || o(i), r = !0), a.classList.toggle(t, r), a.setAttribute(\"aria-hidden\", r.toString());\n\t\t\t}), r || o(-1), i(e || r);\n\t\t};\n\t\tr(n.current);\n\t\tlet a = new ResizeObserver((e) => e.forEach((e) => r(e.target)));\n\t\treturn a.observe(n.current), () => {\n\t\t\ta.disconnect();\n\t\t};\n\t}, [e, t]), {\n\t\tref: n,\n\t\tisWrapping: r,\n\t\twrappingIndex: a\n\t};\n}\n//#endregion\n//#region src/room-list/RoomListPrimaryFilters/useVisibleFilters.ts\nfunction lM(e, t, n) {\n\tlet [r, i] = T(e);\n\treturn _(() => {\n\t\tif (!((t ? e.indexOf(t) : -1) >= n) || n === -1) {\n\t\t\ti(e);\n\t\t\treturn;\n\t\t}\n\t\ti(e.slice().sort((e, n) => e === t && n !== t ? -1 : +(e !== t && n === t)));\n\t}, [\n\t\te,\n\t\tt,\n\t\tn\n\t]), r;\n}\nvar uM = {\n\troomListPrimaryFilters: \"_roomListPrimaryFilters_kikqh_8\",\n\tlist: \"_list_kikqh_17\",\n\ticonButton: \"_iconButton_kikqh_27\"\n}, dM = (e) => {\n\tswitch (e) {\n\t\tcase \"unread\": return W(\"room_list|filters|unread\");\n\t\tcase \"people\": return W(\"room_list|filters|people\");\n\t\tcase \"rooms\": return W(\"room_list|filters|rooms\");\n\t\tcase \"favourite\": return W(\"room_list|filters|favourite\");\n\t\tcase \"mentions\": return W(\"room_list|filters|mentions\");\n\t\tcase \"invites\": return W(\"room_list|filters|invites\");\n\t\tcase \"low_priority\": return W(\"room_list|filters|low_priority\");\n\t}\n}, fM = p(function({ filterIds: e, activeFilterId: t, onToggleFilter: n }) {\n\tlet r = v(), [i, a] = T(!1), { ref: o, isWrapping: s, wrappingIndex: c } = cM(i, \"wrapping\"), l = lM(e, t, c);\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\tclassName: uM.roomListPrimaryFilters,\n\t\t\"data-testid\": \"primary-filters\",\n\t\tgap: \"var(--cpd-space-3x)\",\n\t\tdirection: \"row-reverse\",\n\t\tjustify: \"space-between\",\n\t\tchildren: [s && /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\tkind: \"secondary\",\n\t\t\t\"aria-expanded\": i,\n\t\t\t\"aria-controls\": r,\n\t\t\tclassName: uM.iconButton,\n\t\t\t\"aria-label\": W(i ? \"room_list|collapse_filters\" : \"room_list|expand_filters\"),\n\t\t\tsize: \"28px\",\n\t\t\tonClick: () => a((e) => !e),\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(fS, {})\n\t\t}), /* @__PURE__ */ (0, B.jsx)(H, {\n\t\t\tid: r,\n\t\t\tas: \"div\",\n\t\t\trole: \"listbox\",\n\t\t\t\"aria-label\": W(\"room_list|primary_filters\"),\n\t\t\talign: \"center\",\n\t\t\tgap: \"var(--cpd-space-2x)\",\n\t\t\twrap: \"wrap\",\n\t\t\tclassName: uM.list,\n\t\t\tref: o,\n\t\t\tchildren: l.map((e, r) => /* @__PURE__ */ (0, B.jsx)(k, {\n\t\t\t\trole: \"option\",\n\t\t\t\tselected: e === t,\n\t\t\t\tonClick: () => n(e),\n\t\t\t\tchildren: dM(e)\n\t\t\t}, `${e}-${r}`))\n\t\t})]\n\t});\n}), pM = { skeleton: \"_skeleton_1h0mx_8\" }, mM = () => /* @__PURE__ */ (0, B.jsx)(\"div\", { className: pM.skeleton }), hM = {\n\tgenericPlaceholder: \"_genericPlaceholder_1sxid_8\",\n\ttitle: \"_title_1sxid_16\",\n\tdescription: \"_description_1sxid_21\",\n\tdefaultPlaceholder: \"_defaultPlaceholder_1sxid_27\"\n}, gM = ({ vm: e }) => {\n\tlet t = U(e);\n\tif (!t.activeFilterId) return /* @__PURE__ */ (0, B.jsx)(_M, {\n\t\ttitle: W(\"room_list|empty|no_chats\"),\n\t\tdescription: t.canCreateRoom ? W(\"room_list|empty|no_chats_description\") : W(\"room_list|empty|no_chats_description_no_room_rights\"),\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\tclassName: hM.defaultPlaceholder,\n\t\t\talign: \"center\",\n\t\t\tjustify: \"center\",\n\t\t\tdirection: \"column\",\n\t\t\tgap: \"var(--cpd-space-4x)\",\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tsize: \"md\",\n\t\t\t\tkind: \"secondary\",\n\t\t\t\tIcon: cS,\n\t\t\t\tonClick: e.createChatRoom,\n\t\t\t\tchildren: W(\"action|start_chat\")\n\t\t\t}), t.canCreateRoom && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\t\tsize: \"md\",\n\t\t\t\tkind: \"secondary\",\n\t\t\t\tIcon: WC,\n\t\t\t\tonClick: e.createRoom,\n\t\t\t\tchildren: W(\"action|new_room\")\n\t\t\t})]\n\t\t})\n\t});\n\tswitch (t.activeFilterId) {\n\t\tcase \"people\": return /* @__PURE__ */ (0, B.jsx)(_M, {\n\t\t\ttitle: W(\"room_list|empty|no_people\"),\n\t\t\tdescription: W(\"room_list|empty|no_people_description\")\n\t\t});\n\t\tcase \"rooms\": return /* @__PURE__ */ (0, B.jsx)(_M, {\n\t\t\ttitle: W(\"room_list|empty|no_rooms\"),\n\t\t\tdescription: W(\"room_list|empty|no_rooms_description\")\n\t\t});\n\t\tcase \"unread\": return /* @__PURE__ */ (0, B.jsx)(vM, {\n\t\t\ttitle: W(\"room_list|empty|no_unread\"),\n\t\t\taction: W(\"room_list|empty|show_chats\"),\n\t\t\tonAction: () => e.onToggleFilter(t.activeFilterId)\n\t\t});\n\t\tcase \"invites\": return /* @__PURE__ */ (0, B.jsx)(vM, {\n\t\t\ttitle: W(\"room_list|empty|no_invites\"),\n\t\t\taction: W(\"room_list|empty|show_activity\"),\n\t\t\tonAction: () => e.onToggleFilter(t.activeFilterId)\n\t\t});\n\t\tcase \"mentions\": return /* @__PURE__ */ (0, B.jsx)(vM, {\n\t\t\ttitle: W(\"room_list|empty|no_mentions\"),\n\t\t\taction: W(\"room_list|empty|show_activity\"),\n\t\t\tonAction: () => e.onToggleFilter(t.activeFilterId)\n\t\t});\n\t\tdefault: return /* @__PURE__ */ (0, B.jsx)(_M, {\n\t\t\ttitle: W(\"room_list|empty|no_chats\"),\n\t\t\tdescription: W(\"room_list|empty|no_chats_description\")\n\t\t});\n\t}\n};\nfunction _M({ title: e, description: t, children: n }) {\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\"data-testid\": \"empty-room-list\",\n\t\tclassName: hM.genericPlaceholder,\n\t\tdirection: \"column\",\n\t\talign: \"stretch\",\n\t\tjustify: \"center\",\n\t\tgap: \"var(--cpd-space-2x)\",\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: hM.title,\n\t\t\t\tchildren: e\n\t\t\t}),\n\t\t\tt && /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\tclassName: hM.description,\n\t\t\t\tchildren: t\n\t\t\t}),\n\t\t\tn\n\t\t]\n\t});\n}\nfunction vM({ title: e, action: t, onAction: n }) {\n\treturn /* @__PURE__ */ (0, B.jsx)(_M, {\n\t\ttitle: e,\n\t\tchildren: n && /* @__PURE__ */ (0, B.jsx)(O, {\n\t\t\tkind: \"tertiary\",\n\t\t\tonClick: n,\n\t\t\tchildren: t\n\t\t})\n\t});\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@preact+signals-core@1.14.2/node_modules/@preact/signals-core/dist/signals-core.module.js\nvar yM = Symbol.for(\"preact-signals\");\nfunction bM() {\n\tif (TM > 1) TM--;\n\telse {\n\t\tvar e, t = !1;\n\t\tfor ((function() {\n\t\t\tvar e = kM;\n\t\t\tfor (kM = void 0; e !== void 0;) e.S.v === e.v && (e.S.i = e.i), e = e.o;\n\t\t})(); wM !== void 0;) {\n\t\t\tvar n = wM;\n\t\t\tfor (wM = void 0, EM++; n !== void 0;) {\n\t\t\t\tvar r = n.u;\n\t\t\t\tif (n.u = void 0, n.f &= -3, !(8 & n.f) && PM(n)) try {\n\t\t\t\t\tn.c();\n\t\t\t\t} catch (n) {\n\t\t\t\t\tt ||= (e = n, !0);\n\t\t\t\t}\n\t\t\t\tn = r;\n\t\t\t}\n\t\t}\n\t\tif (EM = 0, TM--, t) throw e;\n\t}\n}\nfunction xM(e) {\n\tif (TM > 0) return e();\n\tOM = ++DM, TM++;\n\ttry {\n\t\treturn e();\n\t} finally {\n\t\tbM();\n\t}\n}\nvar SM = void 0;\nfunction J(e) {\n\tvar t = SM;\n\tSM = void 0;\n\ttry {\n\t\treturn e();\n\t} finally {\n\t\tSM = t;\n\t}\n}\nvar CM, wM = void 0, TM = 0, EM = 0, DM = 0, OM = 0, kM = void 0, AM = 0;\nfunction jM(e) {\n\tif (SM !== void 0) {\n\t\tvar t = e.n;\n\t\tif (t === void 0 || t.t !== SM) return t = {\n\t\t\ti: 0,\n\t\t\tS: e,\n\t\t\tp: SM.s,\n\t\t\tn: void 0,\n\t\t\tt: SM,\n\t\t\te: void 0,\n\t\t\tx: void 0,\n\t\t\tr: t\n\t\t}, SM.s !== void 0 && (SM.s.n = t), SM.s = t, e.n = t, 32 & SM.f && e.S(t), t;\n\t\tif (t.i === -1) return t.i = 0, t.n !== void 0 && (t.n.p = t.p, t.p !== void 0 && (t.p.n = t.n), t.p = SM.s, t.n = void 0, SM.s.n = t, SM.s = t), t;\n\t}\n}\nfunction MM(e, t) {\n\tthis.v = e, this.i = 0, this.n = void 0, this.t = void 0, this.l = 0, this.W = t?.watched, this.Z = t?.unwatched, this.name = t?.name;\n}\nMM.prototype.brand = yM, MM.prototype.h = function() {\n\treturn !0;\n}, MM.prototype.S = function(e) {\n\tvar t = this, n = this.t;\n\tn !== e && e.e === void 0 && (e.x = n, this.t = e, n === void 0 ? J(function() {\n\t\tvar e;\n\t\t(e = t.W) == null || e.call(t);\n\t}) : n.e = e);\n}, MM.prototype.U = function(e) {\n\tvar t = this;\n\tif (this.t !== void 0) {\n\t\tvar n = e.e, r = e.x;\n\t\tn !== void 0 && (n.x = r, e.e = void 0), r !== void 0 && (r.e = n, e.x = void 0), e === this.t && (this.t = r, r === void 0 && J(function() {\n\t\t\tvar e;\n\t\t\t(e = t.Z) == null || e.call(t);\n\t\t}));\n\t}\n}, MM.prototype.subscribe = function(e) {\n\tvar t = this;\n\treturn UM(function() {\n\t\tvar n = t.value, r = SM;\n\t\tSM = void 0;\n\t\ttry {\n\t\t\te(n);\n\t\t} finally {\n\t\t\tSM = r;\n\t\t}\n\t}, { name: \"sub\" });\n}, MM.prototype.valueOf = function() {\n\treturn this.value;\n}, MM.prototype.toString = function() {\n\treturn this.value + \"\";\n}, MM.prototype.toJSON = function() {\n\treturn this.value;\n}, MM.prototype.peek = function() {\n\tvar e = this;\n\treturn J(function() {\n\t\treturn e.value;\n\t});\n}, Object.defineProperty(MM.prototype, \"value\", {\n\tget: function() {\n\t\tvar e = jM(this);\n\t\treturn e !== void 0 && (e.i = this.i), this.v;\n\t},\n\tset: function(e) {\n\t\tif (e !== this.v) {\n\t\t\tif (EM > 100) throw Error(\"Cycle detected\");\n\t\t\t(function(e) {\n\t\t\t\tTM !== 0 && EM === 0 && e.l !== OM && (e.l = OM, kM = {\n\t\t\t\t\tS: e,\n\t\t\t\t\tv: e.v,\n\t\t\t\t\ti: e.i,\n\t\t\t\t\to: kM\n\t\t\t\t});\n\t\t\t})(this), this.v = e, this.i++, AM++, TM++;\n\t\t\ttry {\n\t\t\t\tfor (var t = this.t; t !== void 0; t = t.x) t.t.N();\n\t\t\t} finally {\n\t\t\t\tbM();\n\t\t\t}\n\t\t}\n\t}\n});\nfunction NM(e, t) {\n\treturn new MM(e, t);\n}\nfunction PM(e) {\n\tfor (var t = e.s; t !== void 0; t = t.n) if (t.S.i !== t.i || !t.S.h() || t.S.i !== t.i) return !0;\n\treturn !1;\n}\nfunction FM(e) {\n\tfor (var t = e.s; t !== void 0; t = t.n) {\n\t\tvar n = t.S.n;\n\t\tif (n !== void 0 && (t.r = n), t.S.n = t, t.i = -1, t.n === void 0) {\n\t\t\te.s = t;\n\t\t\tbreak;\n\t\t}\n\t}\n}\nfunction IM(e) {\n\tfor (var t = e.s, n = void 0; t !== void 0;) {\n\t\tvar r = t.p;\n\t\tt.i === -1 ? (t.S.U(t), r !== void 0 && (r.n = t.n), t.n !== void 0 && (t.n.p = r)) : n = t, t.S.n = t.r, t.r !== void 0 && (t.r = void 0), t = r;\n\t}\n\te.s = n;\n}\nfunction LM(e, t) {\n\tMM.call(this, void 0), this.x = e, this.s = void 0, this.g = AM - 1, this.f = 4, this.W = t?.watched, this.Z = t?.unwatched, this.name = t?.name;\n}\nLM.prototype = new MM(), LM.prototype.h = function() {\n\tif (this.f &= -3, 1 & this.f) return !1;\n\tif ((36 & this.f) == 32 || (this.f &= -5, this.g === AM)) return !0;\n\tif (this.g = AM, this.f |= 1, this.i > 0 && !PM(this)) return this.f &= -2, !0;\n\tvar e = SM;\n\ttry {\n\t\tFM(this), SM = this;\n\t\tvar t = this.x();\n\t\t(16 & this.f || this.v !== t || this.i === 0) && (this.v = t, this.f &= -17, this.i++);\n\t} catch (e) {\n\t\tthis.v = e, this.f |= 16, this.i++;\n\t}\n\treturn SM = e, IM(this), this.f &= -2, !0;\n}, LM.prototype.S = function(e) {\n\tif (this.t === void 0) {\n\t\tthis.f |= 36;\n\t\tfor (var t = this.s; t !== void 0; t = t.n) t.S.S(t);\n\t}\n\tMM.prototype.S.call(this, e);\n}, LM.prototype.U = function(e) {\n\tif (this.t !== void 0 && (MM.prototype.U.call(this, e), this.t === void 0)) {\n\t\tthis.f &= -33;\n\t\tfor (var t = this.s; t !== void 0; t = t.n) t.S.U(t);\n\t}\n}, LM.prototype.N = function() {\n\tif (!(2 & this.f)) {\n\t\tthis.f |= 6;\n\t\tfor (var e = this.t; e !== void 0; e = e.x) e.t.N();\n\t}\n}, Object.defineProperty(LM.prototype, \"value\", { get: function() {\n\tif (1 & this.f) throw Error(\"Cycle detected\");\n\tvar e = jM(this);\n\tif (this.h(), e !== void 0 && (e.i = this.i), 16 & this.f) throw this.v;\n\treturn this.v;\n} });\nfunction RM(e, t) {\n\treturn new LM(e, t);\n}\nfunction zM(e) {\n\tvar t = e.m;\n\tif (e.m = void 0, typeof t == \"function\") {\n\t\tTM++;\n\t\tvar n = SM;\n\t\tSM = void 0;\n\t\ttry {\n\t\t\tt();\n\t\t} catch (t) {\n\t\t\tthrow e.f &= -2, e.f |= 8, BM(e), t;\n\t\t} finally {\n\t\t\tSM = n, bM();\n\t\t}\n\t}\n}\nfunction BM(e) {\n\tfor (var t = e.s; t !== void 0; t = t.n) t.S.U(t);\n\te.x = void 0, e.s = void 0, zM(e);\n}\nfunction VM(e) {\n\tif (SM !== this) throw Error(\"Out-of-order effect\");\n\tIM(this), SM = e, this.f &= -2, 8 & this.f && BM(this), bM();\n}\nfunction HM(e, t) {\n\tthis.x = e, this.m = void 0, this.s = void 0, this.u = void 0, this.f = 32, this.name = t?.name, CM && CM.push(this);\n}\nHM.prototype.c = function() {\n\tvar e = this.S();\n\ttry {\n\t\tif (8 & this.f || this.x === void 0) return;\n\t\tvar t = this.x();\n\t\ttypeof t == \"function\" && (this.m = t);\n\t} finally {\n\t\te();\n\t}\n}, HM.prototype.S = function() {\n\tif (1 & this.f) throw Error(\"Cycle detected\");\n\tthis.f |= 1, this.f &= -9, zM(this), FM(this), TM++;\n\tvar e = SM;\n\treturn SM = this, VM.bind(this, e);\n}, HM.prototype.N = function() {\n\t2 & this.f || (this.f |= 2, this.u = wM, wM = this);\n}, HM.prototype.d = function() {\n\tthis.f |= 8, 1 & this.f || BM(this);\n}, HM.prototype.dispose = function() {\n\tthis.d();\n};\nfunction UM(e, t) {\n\tvar n = new HM(e, t);\n\ttry {\n\t\tn.c();\n\t} catch (e) {\n\t\tthrow n.d(), e;\n\t}\n\tvar r = n.d.bind(n);\n\treturn r[Symbol.dispose] = r, r;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@dnd-kit+state@0.5.0/node_modules/@dnd-kit/state/dist/index.mjs\nvar WM = Object.create, GM = Object.defineProperty, KM = Object.defineProperties, qM = Object.getOwnPropertyDescriptor, JM = Object.getOwnPropertyDescriptors, YM = Object.getOwnPropertySymbols, XM = Object.prototype.hasOwnProperty, ZM = Object.prototype.propertyIsEnumerable, QM = (e, t) => (t = Symbol[e]) ? t : Symbol.for(\"Symbol.\" + e), $M = (e) => {\n\tthrow TypeError(e);\n}, eN = (e, t, n) => t in e ? GM(e, t, {\n\tenumerable: !0,\n\tconfigurable: !0,\n\twritable: !0,\n\tvalue: n\n}) : e[t] = n, tN = (e, t) => {\n\tfor (var n in t ||= {}) XM.call(t, n) && eN(e, n, t[n]);\n\tif (YM) for (var n of YM(t)) ZM.call(t, n) && eN(e, n, t[n]);\n\treturn e;\n}, nN = (e, t) => KM(e, JM(t)), rN = (e, t) => GM(e, \"name\", {\n\tvalue: t,\n\tconfigurable: !0\n}), iN = (e) => [\n\t,\n\t,\n\t,\n\tWM(e?.[QM(\"metadata\")] ?? null)\n], aN = [\n\t\"class\",\n\t\"method\",\n\t\"getter\",\n\t\"setter\",\n\t\"accessor\",\n\t\"field\",\n\t\"value\",\n\t\"get\",\n\t\"set\"\n], oN = (e) => e !== void 0 && typeof e != \"function\" ? $M(\"Function expected\") : e, sN = (e, t, n, r, i) => ({\n\tkind: aN[e],\n\tname: t,\n\tmetadata: r,\n\taddInitializer: (e) => n._ ? $M(\"Already initialized\") : i.push(oN(e || null))\n}), cN = (e, t) => eN(t, QM(\"metadata\"), e[3]), lN = (e, t, n, r) => {\n\tfor (var i = 0, a = e[t >> 1], o = a && a.length; i < o; i++) t & 1 ? a[i].call(n) : r = a[i].call(n, r);\n\treturn r;\n}, uN = (e, t, n, r, i, a) => {\n\tvar o, s, c, l, u, d = t & 7, f = !!(t & 8), p = !!(t & 16), m = d > 3 ? e.length + 1 : d ? f ? 1 : 2 : 0, h = aN[d + 5], g = d > 3 && (e[m - 1] = []), _ = e[m] || (e[m] = []), v = d && (!p && !f && (i = i.prototype), d < 5 && (d > 3 || !p) && qM(d < 4 ? i : {\n\t\tget [n]() {\n\t\t\treturn pN(this, a);\n\t\t},\n\t\tset [n](e) {\n\t\t\treturn hN(this, a, e);\n\t\t}\n\t}, n));\n\td ? p && d < 4 && rN(a, (d > 2 ? \"set \" : d > 1 ? \"get \" : \"\") + n) : rN(i, n);\n\tfor (var y = r.length - 1; y >= 0; y--) l = sN(d, n, c = {}, e[3], _), d && (l.static = f, l.private = p, u = l.access = { has: p ? (e) => fN(i, e) : (e) => n in e }, d ^ 3 && (u.get = p ? (e) => (d ^ 1 ? pN : gN)(e, i, d ^ 4 ? a : v.get) : (e) => e[n]), d > 2 && (u.set = p ? (e, t) => hN(e, i, t, d ^ 4 ? a : v.set) : (e, t) => e[n] = t)), s = (0, r[y])(d ? d < 4 ? p ? a : v[h] : d > 4 ? void 0 : {\n\t\tget: v.get,\n\t\tset: v.set\n\t} : i, l), c._ = 1, d ^ 4 || s === void 0 ? oN(s) && (d > 4 ? g.unshift(s) : d ? p ? a = s : v[h] = s : i = s) : typeof s != \"object\" || !s ? $M(\"Object expected\") : (oN(o = s.get) && (v.get = o), oN(o = s.set) && (v.set = o), oN(o = s.init) && g.unshift(o));\n\treturn d || cN(e, i), v && GM(i, n, v), p ? d ^ 4 ? a : v : i;\n}, dN = (e, t, n) => t.has(e) || $M(\"Cannot \" + n), fN = (e, t) => Object(t) === t ? e.has(t) : $M(\"Cannot use the \\\"in\\\" operator on this value\"), pN = (e, t, n) => (dN(e, t, \"read from private field\"), n ? n.call(e) : t.get(e)), mN = (e, t, n) => t.has(e) ? $M(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, n), hN = (e, t, n, r) => (dN(e, t, \"write to private field\"), r ? r.call(e, n) : t.set(e, n), n), gN = (e, t, n) => (dN(e, t, \"access private method\"), n);\nfunction _N(e, t) {\n\tif (t) {\n\t\tlet n;\n\t\treturn RM(() => {\n\t\t\tlet r = e();\n\t\t\treturn r && n && t(n, r) ? n : (n = r, r);\n\t\t});\n\t}\n\treturn RM(e);\n}\nfunction vN(e, t) {\n\tif (Object.is(e, t)) return !0;\n\tif (e === null || t === null) return !1;\n\tif (typeof e == \"function\" && typeof t == \"function\") return e === t;\n\tif (e instanceof Set && t instanceof Set) {\n\t\tif (e.size !== t.size) return !1;\n\t\tfor (let n of e) if (!t.has(n)) return !1;\n\t\treturn !0;\n\t}\n\tif (Array.isArray(e)) return !Array.isArray(t) || e.length !== t.length ? !1 : !e.some((e, n) => !vN(e, t[n]));\n\tif (typeof e == \"object\" && typeof t == \"object\") {\n\t\tlet n = Object.keys(e), r = Object.keys(t);\n\t\treturn n.length === r.length ? !n.some((n) => !vN(e[n], t[n])) : !1;\n\t}\n\treturn !1;\n}\nfunction Y({ get: e }, t) {\n\treturn {\n\t\tinit(e) {\n\t\t\treturn NM(e);\n\t\t},\n\t\tget() {\n\t\t\treturn e.call(this).value;\n\t\t},\n\t\tset(t) {\n\t\t\tlet n = e.call(this);\n\t\t\tn.peek() !== t && (n.value = t);\n\t\t}\n\t};\n}\nfunction yN(e, t) {\n\tlet n = /* @__PURE__ */ new WeakMap();\n\treturn function() {\n\t\tlet t = n.get(this);\n\t\treturn t || (t = _N(e.bind(this)), n.set(this, t)), t.value;\n\t};\n}\nfunction bN(e = !0) {\n\treturn function(t, n) {\n\t\tn.addInitializer(function() {\n\t\t\tlet t = n.kind === \"field\" || n.static ? this : Object.getPrototypeOf(this), r = Object.getOwnPropertyDescriptor(t, n.name);\n\t\t\tr && Object.defineProperty(t, n.name, nN(tN({}, r), { enumerable: e }));\n\t\t});\n\t};\n}\nfunction xN(...e) {\n\tlet t = e.map((e) => UM(e));\n\treturn () => t.forEach((e) => e());\n}\nvar SN, CN, wN, TN, EN, DN = [Y], ON, kN, AN, jN, MN, NN, PN, FN, IN, LN, RN, zN, BN, VN;\nEN = [Y], TN = [Y], wN = [bN()], CN = [bN()], SN = [bN()];\nvar HN = class {\n\tconstructor(e, t = Object.is) {\n\t\tthis.defaultValue = e, this.equals = t, lN(ON, 5, this), mN(this, NN), mN(this, kN, lN(ON, 8, this)), lN(ON, 11, this), mN(this, PN, lN(ON, 12, this)), lN(ON, 15, this), mN(this, RN, lN(ON, 16, this)), lN(ON, 19, this), this.reset = this.reset.bind(this), this.reset();\n\t}\n\tget current() {\n\t\treturn pN(this, NN, BN);\n\t}\n\tget initial() {\n\t\treturn pN(this, NN, jN);\n\t}\n\tget previous() {\n\t\treturn pN(this, NN, IN);\n\t}\n\tset current(e) {\n\t\tlet t = J(() => pN(this, NN, BN));\n\t\te && t && this.equals(t, e) || xM(() => {\n\t\t\tpN(this, NN, jN) || hN(this, NN, e, MN), hN(this, NN, t, LN), hN(this, NN, e, VN);\n\t\t});\n\t}\n\treset(e = this.defaultValue) {\n\t\txM(() => {\n\t\t\thN(this, NN, void 0, LN), hN(this, NN, e, MN), hN(this, NN, e, VN);\n\t\t});\n\t}\n};\nON = iN(null), kN = /* @__PURE__ */ new WeakMap(), NN = /* @__PURE__ */ new WeakSet(), PN = /* @__PURE__ */ new WeakMap(), RN = /* @__PURE__ */ new WeakMap(), AN = uN(ON, 20, \"#initial\", DN, NN, kN), jN = AN.get, MN = AN.set, FN = uN(ON, 20, \"#previous\", EN, NN, PN), IN = FN.get, LN = FN.set, zN = uN(ON, 20, \"#current\", TN, NN, RN), BN = zN.get, VN = zN.set, uN(ON, 2, \"current\", wN, HN), uN(ON, 2, \"initial\", CN, HN), uN(ON, 2, \"previous\", SN, HN), cN(ON, HN);\nfunction UN(e) {\n\treturn J(() => {\n\t\tlet t = {};\n\t\tfor (let n in e) t[n] = e[n];\n\t\treturn t;\n\t});\n}\nvar WN = Object.create, GN = Object.defineProperty, KN = Object.getOwnPropertyDescriptor, qN = Object.getOwnPropertySymbols, JN = Object.prototype.hasOwnProperty, YN = Object.prototype.propertyIsEnumerable, XN = (e, t) => (t = Symbol[e]) ? t : Symbol.for(\"Symbol.\" + e), ZN = (e) => {\n\tthrow TypeError(e);\n}, QN = Math.pow, $N = (e, t, n) => t in e ? GN(e, t, {\n\tenumerable: !0,\n\tconfigurable: !0,\n\twritable: !0,\n\tvalue: n\n}) : e[t] = n, eP = (e, t) => {\n\tfor (var n in t ||= {}) JN.call(t, n) && $N(e, n, t[n]);\n\tif (qN) for (var n of qN(t)) YN.call(t, n) && $N(e, n, t[n]);\n\treturn e;\n}, tP = (e, t) => GN(e, \"name\", {\n\tvalue: t,\n\tconfigurable: !0\n}), nP = (e) => [\n\t,\n\t,\n\t,\n\tWN(e?.[XN(\"metadata\")] ?? null)\n], rP = [\n\t\"class\",\n\t\"method\",\n\t\"getter\",\n\t\"setter\",\n\t\"accessor\",\n\t\"field\",\n\t\"value\",\n\t\"get\",\n\t\"set\"\n], iP = (e) => e !== void 0 && typeof e != \"function\" ? ZN(\"Function expected\") : e, aP = (e, t, n, r, i) => ({\n\tkind: rP[e],\n\tname: t,\n\tmetadata: r,\n\taddInitializer: (e) => n._ ? ZN(\"Already initialized\") : i.push(iP(e || null))\n}), oP = (e, t) => $N(t, XN(\"metadata\"), e[3]), sP = (e, t, n, r) => {\n\tfor (var i = 0, a = e[t >> 1], o = a && a.length; i < o; i++) t & 1 ? a[i].call(n) : r = a[i].call(n, r);\n\treturn r;\n}, cP = (e, t, n, r, i, a) => {\n\tvar o, s, c, l, u, d = t & 7, f = !!(t & 8), p = !!(t & 16), m = d > 3 ? e.length + 1 : d ? f ? 1 : 2 : 0, h = rP[d + 5], g = d > 3 && (e[m - 1] = []), _ = e[m] || (e[m] = []), v = d && (!p && !f && (i = i.prototype), d < 5 && (d > 3 || !p) && KN(d < 4 ? i : {\n\t\tget [n]() {\n\t\t\treturn dP(this, a);\n\t\t},\n\t\tset [n](e) {\n\t\t\treturn pP(this, a, e);\n\t\t}\n\t}, n));\n\td ? p && d < 4 && tP(a, (d > 2 ? \"set \" : d > 1 ? \"get \" : \"\") + n) : tP(i, n);\n\tfor (var y = r.length - 1; y >= 0; y--) l = aP(d, n, c = {}, e[3], _), d && (l.static = f, l.private = p, u = l.access = { has: p ? (e) => uP(i, e) : (e) => n in e }, d ^ 3 && (u.get = p ? (e) => (d ^ 1 ? dP : mP)(e, i, d ^ 4 ? a : v.get) : (e) => e[n]), d > 2 && (u.set = p ? (e, t) => pP(e, i, t, d ^ 4 ? a : v.set) : (e, t) => e[n] = t)), s = (0, r[y])(d ? d < 4 ? p ? a : v[h] : d > 4 ? void 0 : {\n\t\tget: v.get,\n\t\tset: v.set\n\t} : i, l), c._ = 1, d ^ 4 || s === void 0 ? iP(s) && (d > 4 ? g.unshift(s) : d ? p ? a = s : v[h] = s : i = s) : typeof s != \"object\" || !s ? ZN(\"Object expected\") : (iP(o = s.get) && (v.get = o), iP(o = s.set) && (v.set = o), iP(o = s.init) && g.unshift(o));\n\treturn d || oP(e, i), v && GN(i, n, v), p ? d ^ 4 ? a : v : i;\n}, lP = (e, t, n) => t.has(e) || ZN(\"Cannot \" + n), uP = (e, t) => Object(t) === t ? e.has(t) : ZN(\"Cannot use the \\\"in\\\" operator on this value\"), dP = (e, t, n) => (lP(e, t, \"read from private field\"), n ? n.call(e) : t.get(e)), fP = (e, t, n) => t.has(e) ? ZN(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, n), pP = (e, t, n, r) => (lP(e, t, \"write to private field\"), r ? r.call(e, n) : t.set(e, n), n), mP = (e, t, n) => (lP(e, t, \"access private method\"), n), hP = class e {\n\tconstructor(e, t) {\n\t\tthis.x = e, this.y = t;\n\t}\n\tstatic delta(t, n) {\n\t\treturn new e(t.x - n.x, t.y - n.y);\n\t}\n\tstatic distance(e, t) {\n\t\treturn Math.hypot(e.x - t.x, e.y - t.y);\n\t}\n\tstatic equals(e, t) {\n\t\treturn e.x === t.x && e.y === t.y;\n\t}\n\tstatic from({ x: t, y: n }) {\n\t\treturn new e(t, n);\n\t}\n}, gP = class e {\n\tconstructor(e, t, n, r) {\n\t\tthis.left = e, this.top = t, this.width = n, this.height = r, this.scale = {\n\t\t\tx: 1,\n\t\t\ty: 1\n\t\t};\n\t}\n\tget inverseScale() {\n\t\treturn {\n\t\t\tx: 1 / this.scale.x,\n\t\t\ty: 1 / this.scale.y\n\t\t};\n\t}\n\ttranslate(t, n) {\n\t\tlet { top: r, left: i, width: a, height: o, scale: s } = this, c = new e(i + t, r + n, a, o);\n\t\treturn c.scale = eP({}, s), c;\n\t}\n\tget boundingRectangle() {\n\t\tlet { width: e, height: t, left: n, top: r, right: i, bottom: a } = this;\n\t\treturn {\n\t\t\twidth: e,\n\t\t\theight: t,\n\t\t\tleft: n,\n\t\t\ttop: r,\n\t\t\tright: i,\n\t\t\tbottom: a\n\t\t};\n\t}\n\tget center() {\n\t\tlet { left: e, top: t, right: n, bottom: r } = this;\n\t\treturn new hP((e + n) / 2, (t + r) / 2);\n\t}\n\tget area() {\n\t\tlet { width: e, height: t } = this;\n\t\treturn e * t;\n\t}\n\tequals(t) {\n\t\tif (!(t instanceof e)) return !1;\n\t\tlet { left: n, top: r, width: i, height: a } = this;\n\t\treturn n === t.left && r === t.top && i === t.width && a === t.height;\n\t}\n\tcontainsPoint(e) {\n\t\tlet { top: t, left: n, bottom: r, right: i } = this;\n\t\treturn t <= e.y && e.y <= r && n <= e.x && e.x <= i;\n\t}\n\tintersectionArea(t) {\n\t\treturn t instanceof e ? _P(this, t) : 0;\n\t}\n\tintersectionRatio(e) {\n\t\tlet { area: t } = this, n = this.intersectionArea(e);\n\t\treturn n / (e.area + t - n);\n\t}\n\tget bottom() {\n\t\tlet { top: e, height: t } = this;\n\t\treturn e + t;\n\t}\n\tget right() {\n\t\tlet { left: e, width: t } = this;\n\t\treturn e + t;\n\t}\n\tget aspectRatio() {\n\t\tlet { width: e, height: t } = this;\n\t\treturn e / t;\n\t}\n\tget corners() {\n\t\treturn [\n\t\t\t{\n\t\t\t\tx: this.left,\n\t\t\t\ty: this.top\n\t\t\t},\n\t\t\t{\n\t\t\t\tx: this.right,\n\t\t\t\ty: this.top\n\t\t\t},\n\t\t\t{\n\t\t\t\tx: this.left,\n\t\t\t\ty: this.bottom\n\t\t\t},\n\t\t\t{\n\t\t\t\tx: this.right,\n\t\t\t\ty: this.bottom\n\t\t\t}\n\t\t];\n\t}\n\tstatic from({ top: t, left: n, width: r, height: i }) {\n\t\treturn new e(n, t, r, i);\n\t}\n\tstatic delta(e, t, n = {\n\t\tx: \"center\",\n\t\ty: \"center\"\n\t}) {\n\t\tlet r = (e, t) => {\n\t\t\tlet r = n[t], i = t === \"x\" ? e.left : e.top, a = t === \"x\" ? e.width : e.height;\n\t\t\treturn r == \"start\" ? i : r == \"end\" ? i + a : i + a / 2;\n\t\t};\n\t\treturn hP.delta({\n\t\t\tx: r(e, \"x\"),\n\t\t\ty: r(e, \"y\")\n\t\t}, {\n\t\t\tx: r(t, \"x\"),\n\t\t\ty: r(t, \"y\")\n\t\t});\n\t}\n\tstatic intersectionRatio(t, n) {\n\t\treturn e.from(t).intersectionRatio(e.from(n));\n\t}\n};\nfunction _P(e, t) {\n\tlet n = Math.max(t.top, e.top), r = Math.max(t.left, e.left), i = Math.min(t.left + t.width, e.left + e.width), a = Math.min(t.top + t.height, e.top + e.height), o = i - r, s = a - n;\n\treturn r < i && n < a ? o * s : 0;\n}\nvar vP, yP, bP, xP, SP, CP = class extends (bP = HN, yP = [yN], vP = [yN], bP) {\n\tconstructor(e) {\n\t\tlet t = hP.from(e);\n\t\tsuper(t, (e, t) => hP.equals(e, t)), sP(SP, 5, this), fP(this, xP, 0), this.velocity = {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t};\n\t}\n\tget delta() {\n\t\treturn hP.delta(this.current, this.initial);\n\t}\n\tget direction() {\n\t\tlet { current: e, previous: t } = this;\n\t\tif (!t) return null;\n\t\tlet n = {\n\t\t\tx: e.x - t.x,\n\t\t\ty: e.y - t.y\n\t\t};\n\t\treturn !n.x && !n.y ? null : Math.abs(n.x) > Math.abs(n.y) ? n.x > 0 ? \"right\" : \"left\" : n.y > 0 ? \"down\" : \"up\";\n\t}\n\tget current() {\n\t\treturn super.current;\n\t}\n\tset current(e) {\n\t\tlet { current: t } = this, n = hP.from(e), r = {\n\t\t\tx: n.x - t.x,\n\t\t\ty: n.y - t.y\n\t\t}, i = Date.now(), a = i - dP(this, xP), o = (e) => Math.round(e / a * 100);\n\t\txM(() => {\n\t\t\tpP(this, xP, i), this.velocity = {\n\t\t\t\tx: o(r.x),\n\t\t\t\ty: o(r.y)\n\t\t\t}, super.current = n;\n\t\t});\n\t}\n\treset(e = this.defaultValue) {\n\t\tsuper.reset(hP.from(e)), this.velocity = {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t};\n\t}\n};\nSP = nP(bP), xP = /* @__PURE__ */ new WeakMap(), cP(SP, 2, \"delta\", yP, CP), cP(SP, 2, \"direction\", vP, CP), oP(SP, CP);\nfunction wP({ x: e, y: t }, n) {\n\tlet r = Math.abs(e), i = Math.abs(t);\n\treturn typeof n == \"number\" ? Math.sqrt(QN(r, 2) + QN(i, 2)) > n : \"x\" in n && \"y\" in n ? r > n.x && i > n.y : \"x\" in n ? r > n.x : \"y\" in n ? i > n.y : !1;\n}\nvar TP = /* @__PURE__ */ ((e) => (e.Horizontal = \"x\", e.Vertical = \"y\", e))(TP || {}), EP = Object.values(TP), DP = Object.create, OP = Object.defineProperty, kP = Object.defineProperties, AP = Object.getOwnPropertyDescriptor, jP = Object.getOwnPropertyDescriptors, MP = Object.getOwnPropertySymbols, NP = Object.prototype.hasOwnProperty, PP = Object.prototype.propertyIsEnumerable, FP = (e, t) => (t = Symbol[e]) ? t : Symbol.for(\"Symbol.\" + e), IP = (e) => {\n\tthrow TypeError(e);\n}, LP = (e, t, n) => t in e ? OP(e, t, {\n\tenumerable: !0,\n\tconfigurable: !0,\n\twritable: !0,\n\tvalue: n\n}) : e[t] = n, RP = (e, t) => {\n\tfor (var n in t ||= {}) NP.call(t, n) && LP(e, n, t[n]);\n\tif (MP) for (var n of MP(t)) PP.call(t, n) && LP(e, n, t[n]);\n\treturn e;\n}, zP = (e, t) => kP(e, jP(t)), BP = (e, t) => OP(e, \"name\", {\n\tvalue: t,\n\tconfigurable: !0\n}), VP = (e, t) => {\n\tvar n = {};\n\tfor (var r in e) NP.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);\n\tif (e != null && MP) for (var r of MP(e)) t.indexOf(r) < 0 && PP.call(e, r) && (n[r] = e[r]);\n\treturn n;\n}, HP = (e) => [\n\t,\n\t,\n\t,\n\tDP(e?.[FP(\"metadata\")] ?? null)\n], UP = [\n\t\"class\",\n\t\"method\",\n\t\"getter\",\n\t\"setter\",\n\t\"accessor\",\n\t\"field\",\n\t\"value\",\n\t\"get\",\n\t\"set\"\n], WP = (e) => e !== void 0 && typeof e != \"function\" ? IP(\"Function expected\") : e, GP = (e, t, n, r, i) => ({\n\tkind: UP[e],\n\tname: t,\n\tmetadata: r,\n\taddInitializer: (e) => n._ ? IP(\"Already initialized\") : i.push(WP(e || null))\n}), KP = (e, t) => LP(t, FP(\"metadata\"), e[3]), X = (e, t, n, r) => {\n\tfor (var i = 0, a = e[t >> 1], o = a && a.length; i < o; i++) t & 1 ? a[i].call(n) : r = a[i].call(n, r);\n\treturn r;\n}, Z = (e, t, n, r, i, a) => {\n\tvar o, s, c, l, u, d = t & 7, f = !!(t & 8), p = !!(t & 16), m = d > 3 ? e.length + 1 : d ? f ? 1 : 2 : 0, h = UP[d + 5], g = d > 3 && (e[m - 1] = []), _ = e[m] || (e[m] = []), v = d && (!p && !f && (i = i.prototype), d < 5 && (d > 3 || !p) && AP(d < 4 ? i : {\n\t\tget [n]() {\n\t\t\treturn YP(this, a);\n\t\t},\n\t\tset [n](e) {\n\t\t\treturn XP(this, a, e);\n\t\t}\n\t}, n));\n\td ? p && d < 4 && BP(a, (d > 2 ? \"set \" : d > 1 ? \"get \" : \"\") + n) : BP(i, n);\n\tfor (var y = r.length - 1; y >= 0; y--) l = GP(d, n, c = {}, e[3], _), d && (l.static = f, l.private = p, u = l.access = { has: p ? (e) => JP(i, e) : (e) => n in e }, d ^ 3 && (u.get = p ? (e) => (d ^ 1 ? YP : ZP)(e, i, d ^ 4 ? a : v.get) : (e) => e[n]), d > 2 && (u.set = p ? (e, t) => XP(e, i, t, d ^ 4 ? a : v.set) : (e, t) => e[n] = t)), s = (0, r[y])(d ? d < 4 ? p ? a : v[h] : d > 4 ? void 0 : {\n\t\tget: v.get,\n\t\tset: v.set\n\t} : i, l), c._ = 1, d ^ 4 || s === void 0 ? WP(s) && (d > 4 ? g.unshift(s) : d ? p ? a = s : v[h] = s : i = s) : typeof s != \"object\" || !s ? IP(\"Object expected\") : (WP(o = s.get) && (v.get = o), WP(o = s.set) && (v.set = o), WP(o = s.init) && g.unshift(o));\n\treturn d || KP(e, i), v && OP(i, n, v), p ? d ^ 4 ? a : v : i;\n}, qP = (e, t, n) => t.has(e) || IP(\"Cannot \" + n), JP = (e, t) => Object(t) === t ? e.has(t) : IP(\"Cannot use the \\\"in\\\" operator on this value\"), YP = (e, t, n) => (qP(e, t, \"read from private field\"), n ? n.call(e) : t.get(e)), Q = (e, t, n) => t.has(e) ? IP(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, n), XP = (e, t, n, r) => (qP(e, t, \"write to private field\"), r ? r.call(e, n) : t.set(e, n), n), ZP = (e, t, n) => (qP(e, t, \"access private method\"), n);\nfunction QP(e, t) {\n\treturn {\n\t\tplugin: e,\n\t\toptions: t\n\t};\n}\nfunction $P(e) {\n\treturn (t) => QP(e, t);\n}\nfunction eF(e) {\n\treturn typeof e == \"function\" ? {\n\t\tplugin: e,\n\t\toptions: void 0\n\t} : e;\n}\nvar tF = [Y], nF, rF, iF, aF = class {\n\tconstructor(e, t) {\n\t\tthis.manager = e, this.options = t, Q(this, rF, X(nF, 8, this, !1)), X(nF, 11, this), Q(this, iF, /* @__PURE__ */ new Set());\n\t}\n\tenable() {\n\t\tthis.disabled = !1;\n\t}\n\tdisable() {\n\t\tthis.disabled = !0;\n\t}\n\tisDisabled() {\n\t\treturn J(() => this.disabled);\n\t}\n\tconfigure(e) {\n\t\tthis.options = e;\n\t}\n\tregisterEffect(e) {\n\t\tlet t = UM(e.bind(this));\n\t\treturn YP(this, iF).add(t), t;\n\t}\n\tdestroy() {\n\t\tYP(this, iF).forEach((e) => e());\n\t}\n\tstatic configure(e) {\n\t\treturn QP(this, e);\n\t}\n};\nnF = HP(null), rF = /* @__PURE__ */ new WeakMap(), iF = /* @__PURE__ */ new WeakMap(), Z(nF, 4, \"disabled\", tF, aF, rF), KP(nF, aF);\nvar oF = class extends aF {}, sF, cF = class {\n\tconstructor(e) {\n\t\tthis.manager = e, this.instances = /* @__PURE__ */ new Map(), Q(this, sF, []);\n\t}\n\tget values() {\n\t\treturn Array.from(this.instances.values());\n\t}\n\tset values(e) {\n\t\tlet t = e.map(eF).reduce((e, t) => {\n\t\t\tlet n = e.find(({ plugin: e }) => e === t.plugin);\n\t\t\treturn n ? (n.options = t.options, e) : [...e, t];\n\t\t}, []), n = t.map(({ plugin: e }) => e);\n\t\tfor (let e of YP(this, sF)) if (!n.includes(e)) {\n\t\t\tif (e.prototype instanceof oF) continue;\n\t\t\tthis.unregister(e);\n\t\t}\n\t\tfor (let { plugin: e, options: n } of t) this.register(e, n);\n\t\tXP(this, sF, n);\n\t}\n\tget(e) {\n\t\treturn this.instances.get(e);\n\t}\n\tregister(e, t) {\n\t\tlet n = this.instances.get(e);\n\t\tif (n) return n.options !== t && (n.options = t), n;\n\t\tlet r = new e(this.manager, t);\n\t\treturn this.instances.set(e, r), r;\n\t}\n\tunregister(e) {\n\t\tlet t = this.instances.get(e);\n\t\tt && (t.destroy(), this.instances.delete(e));\n\t}\n\tdestroy() {\n\t\tfor (let e of this.instances.values()) e.destroy();\n\t\tthis.instances.clear();\n\t}\n};\nsF = /* @__PURE__ */ new WeakMap();\nfunction lF(e, t) {\n\treturn e.priority === t.priority ? e.type === t.type ? t.value - e.value : t.type - e.type : t.priority - e.priority;\n}\nvar uF = [], dF, fF, pF = class extends aF {\n\tconstructor(e) {\n\t\tsuper(e), Q(this, dF), Q(this, fF), this.computeCollisions = this.computeCollisions.bind(this), XP(this, fF, NM(uF)), this.destroy = xN(() => {\n\t\t\tlet e = this.computeCollisions(), t = J(() => this.manager.dragOperation.position.current);\n\t\t\tif (e !== uF) {\n\t\t\t\tlet e = YP(this, dF);\n\t\t\t\tif (XP(this, dF, t), e && t.x == e.x && t.y == e.y) return;\n\t\t\t} else XP(this, dF, void 0);\n\t\t\tYP(this, fF).value = e;\n\t\t}, () => {\n\t\t\tlet { dragOperation: e } = this.manager;\n\t\t\te.status.initialized && this.forceUpdate();\n\t\t});\n\t}\n\tforceUpdate(e = !0) {\n\t\tJ(() => {\n\t\t\te ? YP(this, fF).value = this.computeCollisions() : XP(this, dF, void 0);\n\t\t});\n\t}\n\tcomputeCollisions(e, t) {\n\t\tlet { registry: n, dragOperation: r } = this.manager, { source: i, shape: a, status: o } = r;\n\t\tif (!o.initialized || !a) return uF;\n\t\tlet s = [], c = [];\n\t\tfor (let a of e ?? n.droppables) {\n\t\t\tif (a.disabled || i && !a.accepts(i)) continue;\n\t\t\tlet e = t ?? a.collisionDetector;\n\t\t\tif (!e) continue;\n\t\t\tc.push(a), a.shape;\n\t\t\tlet n = J(() => e({\n\t\t\t\tdroppable: a,\n\t\t\t\tdragOperation: r\n\t\t\t}));\n\t\t\tn && (a.collisionPriority != null && (n.priority = a.collisionPriority), s.push(n));\n\t\t}\n\t\treturn c.length === 0 ? uF : (s.sort(lF), s);\n\t}\n\tget collisions() {\n\t\treturn YP(this, fF).value;\n\t}\n};\ndF = /* @__PURE__ */ new WeakMap(), fF = /* @__PURE__ */ new WeakMap();\nvar mF, hF, gF = [Y], _F, vF, yF, bF, xF, SF, CF;\nhF = [Y], mF = [Y];\nvar wF = class e {\n\tconstructor(e, t) {\n\t\tQ(this, bF, X(yF, 8, this)), X(yF, 11, this), Q(this, xF), Q(this, SF, X(yF, 12, this)), X(yF, 15, this), Q(this, CF, X(yF, 16, this)), X(yF, 19, this);\n\t\tlet { effects: n, id: r, data: i = {}, disabled: a = !1, register: o = !0 } = e, s = r;\n\t\tXP(this, xF, NM(r)), this.manager = t, this.data = i, this.disabled = a, this.effects = () => [() => {\n\t\t\tlet { id: e, manager: t } = this;\n\t\t\tif (e !== s) return s = e, t?.registry.register(this), () => t?.registry.unregister(this);\n\t\t}, ...n?.() ?? []], this.register = this.register.bind(this), this.unregister = this.unregister.bind(this), this.destroy = this.destroy.bind(this), t && o && queueMicrotask(this.register);\n\t}\n\tget id() {\n\t\tlet t = YP(this, xF).value;\n\t\treturn e.pendingIdChanges?.get(this) ?? t;\n\t}\n\tset id(t) {\n\t\tt !== (e.pendingIdChanges?.get(this) ?? YP(this, xF).peek()) && (e.pendingIdChanges || (e.pendingIdChanges = /* @__PURE__ */ new Map(), queueMicrotask(() => {\n\t\t\tvar t;\n\t\t\treturn ZP(t = e, _F, vF).call(t);\n\t\t})), e.pendingIdChanges.set(this, t));\n\t}\n\tregister() {\n\t\treturn this.manager?.registry.register(this);\n\t}\n\tunregister() {\n\t\tvar e;\n\t\t(e = this.manager) == null || e.registry.unregister(this);\n\t}\n\tdestroy() {\n\t\tvar e;\n\t\t(e = this.manager) == null || e.registry.unregister(this);\n\t}\n};\nyF = HP(null), _F = /* @__PURE__ */ new WeakSet(), vF = function() {\n\tlet e = wF.pendingIdChanges;\n\twF.pendingIdChanges = null, e && xM(() => {\n\t\tfor (let [t, n] of e) YP(t, xF).value = n;\n\t});\n}, bF = /* @__PURE__ */ new WeakMap(), xF = /* @__PURE__ */ new WeakMap(), SF = /* @__PURE__ */ new WeakMap(), CF = /* @__PURE__ */ new WeakMap(), Z(yF, 4, \"manager\", gF, wF, bF), Z(yF, 4, \"data\", hF, wF, SF), Z(yF, 4, \"disabled\", mF, wF, CF), Q(wF, _F), KP(yF, wF), wF.pendingIdChanges = null;\nvar TF = wF, EF = class {\n\tconstructor() {\n\t\tthis.map = NM(/* @__PURE__ */ new Map()), this.cleanupFunctions = /* @__PURE__ */ new WeakMap(), this.register = (e, t) => {\n\t\t\tlet n = this.map.peek(), r = n.get(e), i = () => this.unregister(e, t);\n\t\t\tif (r === t) return i;\n\t\t\tr && r.id === e && (this.cleanupFunctions.get(r)?.(), this.cleanupFunctions.delete(r));\n\t\t\tlet a = new Map(n);\n\t\t\tfor (let [r, i] of n) if (i === t && r !== e) {\n\t\t\t\ta.delete(r);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ta.set(e, t), this.map.value = a;\n\t\t\tlet o = xN(...t.effects());\n\t\t\treturn this.cleanupFunctions.set(t, o), i;\n\t\t}, this.unregister = (e, t) => {\n\t\t\tlet n = this.map.peek();\n\t\t\tif (n.get(e) !== t) return;\n\t\t\tthis.cleanupFunctions.get(t)?.(), this.cleanupFunctions.delete(t);\n\t\t\tlet r = new Map(n);\n\t\t\tr.delete(e), this.map.value = r;\n\t\t};\n\t}\n\t[Symbol.iterator]() {\n\t\treturn this.map.peek().values();\n\t}\n\tget value() {\n\t\treturn this.map.value.values();\n\t}\n\thas(e) {\n\t\treturn this.map.value.has(e);\n\t}\n\tget(e) {\n\t\treturn this.map.value.get(e);\n\t}\n\tdestroy() {\n\t\tfor (let e of this) this.cleanupFunctions.get(e)?.(), e.destroy();\n\t\tthis.map.value = /* @__PURE__ */ new Map();\n\t}\n}, DF, OF, kF, AF, jF, MF, NF, PF, FF, IF, LF, RF = class extends (NF = TF, MF = [Y], jF = [Y], AF = [Y], kF = [yN], OF = [yN], DF = [yN], NF) {\n\tconstructor(e, t) {\n\t\tvar n = e, { modifiers: r, type: i, sensors: a, plugins: o, effects: s } = n, c = VP(n, [\n\t\t\t\"modifiers\",\n\t\t\t\"type\",\n\t\t\t\"sensors\",\n\t\t\t\"plugins\",\n\t\t\t\"effects\"\n\t\t]);\n\t\tsuper(zP(RP({}, c), { effects: () => [...s?.() ?? [], () => {\n\t\t\tlet { manager: e, plugins: t } = this;\n\t\t\tif (!(!e || !t)) for (let n of t) {\n\t\t\t\tlet { plugin: t } = eF(n);\n\t\t\t\te.registry.plugins.register(t);\n\t\t\t}\n\t\t}] }), t), X(PF, 5, this), Q(this, FF, X(PF, 8, this)), X(PF, 11, this), Q(this, IF, X(PF, 12, this)), X(PF, 15, this), Q(this, LF, X(PF, 16, this, this.isDragSource ? \"dragging\" : \"idle\")), X(PF, 19, this), this.type = i, this.sensors = a, this.modifiers = r, this.alignment = c.alignment, this.plugins = o;\n\t}\n\tpluginConfig(e) {\n\t\tif (this.plugins) for (let t of this.plugins) {\n\t\t\tlet n = eF(t);\n\t\t\tif (n.plugin === e) return n.options;\n\t\t}\n\t}\n\tget isDropping() {\n\t\treturn this.status === \"dropping\" && this.isDragSource;\n\t}\n\tget isDragging() {\n\t\treturn this.status === \"dragging\" && this.isDragSource;\n\t}\n\tget isDragSource() {\n\t\treturn this.manager?.dragOperation.source?.id === this.id;\n\t}\n};\nPF = HP(NF), FF = /* @__PURE__ */ new WeakMap(), IF = /* @__PURE__ */ new WeakMap(), LF = /* @__PURE__ */ new WeakMap(), Z(PF, 4, \"type\", MF, RF, FF), Z(PF, 4, \"modifiers\", jF, RF, IF), Z(PF, 4, \"status\", AF, RF, LF), Z(PF, 2, \"isDropping\", kF, RF), Z(PF, 2, \"isDragging\", OF, RF), Z(PF, 2, \"isDragSource\", DF, RF), KP(PF, RF);\nvar zF, BF, VF, HF, UF, WF, GF, KF, qF, JF, YF, XF, ZF, QF = class extends (GF = TF, WF = [Y], UF = [Y], HF = [Y], VF = [Y], BF = [Y], zF = [yN], GF) {\n\tconstructor(e, t) {\n\t\tvar n = e, { accept: r, collisionDetector: i, collisionPriority: a, type: o } = n, s = VP(n, [\n\t\t\t\"accept\",\n\t\t\t\"collisionDetector\",\n\t\t\t\"collisionPriority\",\n\t\t\t\"type\"\n\t\t]);\n\t\tsuper(s, t), X(KF, 5, this), Q(this, qF, X(KF, 8, this)), X(KF, 11, this), Q(this, JF, X(KF, 12, this)), X(KF, 15, this), Q(this, YF, X(KF, 16, this)), X(KF, 19, this), Q(this, XF, X(KF, 20, this)), X(KF, 23, this), Q(this, ZF, X(KF, 24, this)), X(KF, 27, this), this.accept = r, this.collisionDetector = i, this.collisionPriority = a, this.type = o;\n\t}\n\taccepts(e) {\n\t\tlet { accept: t } = this;\n\t\treturn t ? typeof t == \"function\" ? t(e) : e.type ? Array.isArray(t) ? t.includes(e.type) : e.type === t : !1 : !0;\n\t}\n\tget isDropTarget() {\n\t\treturn this.manager?.dragOperation.target?.id === this.id;\n\t}\n};\nKF = HP(GF), qF = /* @__PURE__ */ new WeakMap(), JF = /* @__PURE__ */ new WeakMap(), YF = /* @__PURE__ */ new WeakMap(), XF = /* @__PURE__ */ new WeakMap(), ZF = /* @__PURE__ */ new WeakMap(), Z(KF, 4, \"accept\", WF, QF, qF), Z(KF, 4, \"type\", UF, QF, JF), Z(KF, 4, \"collisionDetector\", HF, QF, YF), Z(KF, 4, \"collisionPriority\", VF, QF, XF), Z(KF, 4, \"shape\", BF, QF, ZF), Z(KF, 2, \"isDropTarget\", zF, QF), KP(KF, QF);\nvar $F = class {\n\tconstructor() {\n\t\tthis.registry = /* @__PURE__ */ new Map();\n\t}\n\taddEventListener(e, t) {\n\t\tlet { registry: n } = this, r = new Set(n.get(e));\n\t\treturn r.add(t), n.set(e, r), () => this.removeEventListener(e, t);\n\t}\n\tremoveEventListener(e, t) {\n\t\tlet { registry: n } = this, r = new Set(n.get(e));\n\t\tr.delete(t), n.set(e, r);\n\t}\n\tdispatch(e, ...t) {\n\t\tlet { registry: n } = this, r = n.get(e);\n\t\tif (r) for (let e of r) e(...t);\n\t}\n}, eI = class extends $F {\n\tconstructor(e) {\n\t\tsuper(), this.manager = e;\n\t}\n\tdispatch(e, t) {\n\t\tlet n = [t, this.manager];\n\t\tsuper.dispatch(e, ...n);\n\t}\n};\nfunction tI(e, t = !0) {\n\tlet n = !1;\n\treturn zP(RP({}, e), {\n\t\tcancelable: t,\n\t\tget defaultPrevented() {\n\t\t\treturn n;\n\t\t},\n\t\tpreventDefault() {\n\t\t\tt && (n = !0);\n\t\t}\n\t});\n}\nvar nI = class extends oF {\n\tconstructor(e) {\n\t\tsuper(e);\n\t\tlet t = (e, t) => e.map(({ id: e }) => e).join(\"\") === t.map(({ id: e }) => e).join(\"\"), n = [];\n\t\tthis.destroy = xN(() => {\n\t\t\tlet { dragOperation: t, collisionObserver: r } = e;\n\t\t\tt.status.initializing && (n = [], r.enable());\n\t\t}, () => {\n\t\t\tlet { collisionObserver: r, monitor: i } = e, { collisions: a } = r;\n\t\t\tif (r.isDisabled() || TF.pendingIdChanges) return;\n\t\t\tlet o = tI({ collisions: a });\n\t\t\tif (i.dispatch(\"collision\", o), o.defaultPrevented || t(a, n)) return;\n\t\t\tn = a;\n\t\t\tlet [s] = a;\n\t\t\tJ(() => {\n\t\t\t\ts?.id !== e.dragOperation.target?.id && (r.disable(), e.actions.setDropTarget(s?.id).then(() => {\n\t\t\t\t\tr.enable();\n\t\t\t\t}));\n\t\t\t});\n\t\t});\n\t}\n}, rI = /* @__PURE__ */ ((e) => (e[e.Lowest = 0] = \"Lowest\", e[e.Low = 1] = \"Low\", e[e.Normal = 2] = \"Normal\", e[e.High = 3] = \"High\", e[e.Highest = 4] = \"Highest\", e))(rI || {}), iI = /* @__PURE__ */ ((e) => (e[e.Collision = 0] = \"Collision\", e[e.ShapeIntersection = 1] = \"ShapeIntersection\", e[e.PointerIntersection = 2] = \"PointerIntersection\", e))(iI || {}), aI, oI, sI, cI, lI, uI, dI = [Y], fI, pI;\nuI = [yN], lI = [yN], cI = [yN], sI = [yN], oI = [yN], aI = [yN];\nvar mI = class {\n\tconstructor() {\n\t\tX(fI, 5, this), Q(this, pI, X(fI, 8, this, \"idle\")), X(fI, 11, this);\n\t}\n\tget current() {\n\t\treturn this.value;\n\t}\n\tget idle() {\n\t\treturn this.value === \"idle\";\n\t}\n\tget initializing() {\n\t\treturn this.value === \"initializing\";\n\t}\n\tget initialized() {\n\t\tlet { value: e } = this;\n\t\treturn e !== \"idle\" && e !== \"initialization-pending\";\n\t}\n\tget dragging() {\n\t\treturn this.value === \"dragging\";\n\t}\n\tget dropped() {\n\t\treturn this.value === \"dropped\";\n\t}\n\tset(e) {\n\t\tthis.value = e;\n\t}\n};\nfI = HP(null), pI = /* @__PURE__ */ new WeakMap(), Z(fI, 4, \"value\", dI, mI, pI), Z(fI, 2, \"current\", uI, mI), Z(fI, 2, \"idle\", lI, mI), Z(fI, 2, \"initializing\", cI, mI), Z(fI, 2, \"initialized\", sI, mI), Z(fI, 2, \"dragging\", oI, mI), Z(fI, 2, \"dropped\", aI, mI), KP(fI, mI);\nvar hI = class {\n\tconstructor(e) {\n\t\tthis.manager = e;\n\t}\n\tsetDragSource(e) {\n\t\tlet { dragOperation: t } = this.manager;\n\t\tt.sourceIdentifier = typeof e == \"string\" || typeof e == \"number\" ? e : e.id;\n\t}\n\tsetDropTarget(e) {\n\t\treturn J(() => {\n\t\t\tlet { dragOperation: t } = this.manager, n = e ?? null;\n\t\t\tif (t.targetIdentifier === n) return Promise.resolve(!1);\n\t\t\tt.targetIdentifier = n;\n\t\t\tlet r = tI({ operation: t.snapshot() });\n\t\t\treturn t.status.dragging && this.manager.monitor.dispatch(\"dragover\", r), this.manager.renderer.rendering.then(() => r.defaultPrevented);\n\t\t});\n\t}\n\tstart(e) {\n\t\treturn J(() => {\n\t\t\tlet { dragOperation: t } = this.manager;\n\t\t\tif (e.source != null && this.setDragSource(e.source), !t.source) throw Error(\"Cannot start a drag operation without a drag source\");\n\t\t\tif (!t.status.idle) throw Error(\"Cannot start a drag operation while another is active\");\n\t\t\tlet n = new AbortController(), { event: r, coordinates: i } = e;\n\t\t\txM(() => {\n\t\t\t\tt.status.set(\"initialization-pending\"), t.shape = null, t.canceled = !1, t.activatorEvent = r ?? null, t.position.reset(i);\n\t\t\t});\n\t\t\tlet a = tI({ operation: t.snapshot() });\n\t\t\treturn this.manager.monitor.dispatch(\"beforedragstart\", a), a.defaultPrevented ? (t.reset(), n.abort(), n) : (t.status.set(\"initializing\"), t.controller = n, this.manager.renderer.rendering.then(() => {\n\t\t\t\tif (n.signal.aborted) return;\n\t\t\t\tlet { status: e } = t;\n\t\t\t\te.current === \"initializing\" && xM(() => {\n\t\t\t\t\tt.status.set(\"dragging\"), this.manager.monitor.dispatch(\"dragstart\", {\n\t\t\t\t\t\tnativeEvent: r,\n\t\t\t\t\t\toperation: t.snapshot(),\n\t\t\t\t\t\tcancelable: !1\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}), n);\n\t\t});\n\t}\n\tmove(e) {\n\t\treturn J(() => {\n\t\t\tlet { dragOperation: t } = this.manager, { status: n, controller: r } = t;\n\t\t\tif (!n.dragging || !r || r.signal.aborted) return;\n\t\t\tlet i = tI({\n\t\t\t\tnativeEvent: e.event,\n\t\t\t\toperation: t.snapshot(),\n\t\t\t\tby: e.by,\n\t\t\t\tto: e.to\n\t\t\t}, e.cancelable ?? !0);\n\t\t\t(e.propagate ?? !0) && this.manager.monitor.dispatch(\"dragmove\", i), queueMicrotask(() => {\n\t\t\t\tif (i.defaultPrevented) return;\n\t\t\t\tlet n = e.to ?? {\n\t\t\t\t\tx: t.position.current.x + (e.by?.x ?? 0),\n\t\t\t\t\ty: t.position.current.y + (e.by?.y ?? 0)\n\t\t\t\t};\n\t\t\t\tt.position.current = n;\n\t\t\t});\n\t\t});\n\t}\n\tstop(e = {}) {\n\t\treturn J(() => {\n\t\t\tlet { dragOperation: t } = this.manager, { controller: n } = t;\n\t\t\tif (!n || n.signal.aborted) return;\n\t\t\tlet r, i = () => {\n\t\t\t\tlet e = {\n\t\t\t\t\tresume: () => {},\n\t\t\t\t\tabort: () => {}\n\t\t\t\t};\n\t\t\t\treturn r = new Promise((t, n) => {\n\t\t\t\t\te.resume = t, e.abort = n;\n\t\t\t\t}), e;\n\t\t\t};\n\t\t\tn.abort();\n\t\t\tlet a = () => {\n\t\t\t\tthis.manager.renderer.rendering.then(() => {\n\t\t\t\t\tt.status.set(\"dropped\");\n\t\t\t\t\tlet e = J(() => t.source?.status === \"dropping\"), r = () => {\n\t\t\t\t\t\tt.controller === n && (t.controller = void 0), t.reset();\n\t\t\t\t\t};\n\t\t\t\t\tif (e) {\n\t\t\t\t\t\tlet { source: e } = t, n = UM(() => {\n\t\t\t\t\t\t\te?.status === \"idle\" && (n(), r());\n\t\t\t\t\t\t});\n\t\t\t\t\t} else this.manager.renderer.rendering.then(r);\n\t\t\t\t});\n\t\t\t};\n\t\t\tt.canceled = e.canceled ?? !1, this.manager.monitor.dispatch(\"dragend\", {\n\t\t\t\tnativeEvent: e.event,\n\t\t\t\toperation: t.snapshot(),\n\t\t\t\tcanceled: e.canceled ?? !1,\n\t\t\t\tsuspend: i\n\t\t\t}), r ? r.then(a).catch(() => t.reset()) : a();\n\t\t});\n\t}\n}, gI = class extends aF {\n\tconstructor(e, t) {\n\t\tsuper(e, t), this.manager = e, this.options = t;\n\t}\n}, _I = class extends AbortController {\n\tconstructor(e, t) {\n\t\tsuper(), this.constraints = e, this.onActivate = t, this.activated = !1;\n\t\tfor (let t of e ?? []) t.controller = this;\n\t}\n\tonEvent(e) {\n\t\tif (!this.activated) if (this.constraints?.length) for (let t of this.constraints) t.onEvent(e);\n\t\telse this.activate(e);\n\t}\n\tactivate(e) {\n\t\tthis.activated || (this.activated = !0, this.onActivate(e));\n\t}\n\tabort(e) {\n\t\tthis.activated = !1, super.abort(e);\n\t}\n}, vI, yI = class {\n\tconstructor(e) {\n\t\tthis.options = e, Q(this, vI);\n\t}\n\tset controller(e) {\n\t\tXP(this, vI, e), e.signal.addEventListener(\"abort\", () => this.abort());\n\t}\n\tactivate(e) {\n\t\tvar t;\n\t\t(t = YP(this, vI)) == null || t.activate(e);\n\t}\n};\nvI = /* @__PURE__ */ new WeakMap();\nvar bI = class extends aF {\n\tconstructor(e, t) {\n\t\tsuper(e, t), this.manager = e, this.options = t;\n\t}\n\tapply(e) {\n\t\treturn e.transform;\n\t}\n}, xI = class {\n\tconstructor(e) {\n\t\tthis.draggables = new EF(), this.droppables = new EF(), this.plugins = new cF(e), this.sensors = new cF(e), this.modifiers = new cF(e);\n\t}\n\tregister(e, t) {\n\t\tif (e instanceof RF) return this.draggables.register(e.id, e);\n\t\tif (e instanceof QF) return this.droppables.register(e.id, e);\n\t\tif (e.prototype instanceof bI) return this.modifiers.register(e, t);\n\t\tif (e.prototype instanceof gI) return this.sensors.register(e, t);\n\t\tif (e.prototype instanceof aF) return this.plugins.register(e, t);\n\t\tthrow Error(\"Invalid instance type\");\n\t}\n\tunregister(e) {\n\t\tif (e instanceof TF) return e instanceof RF ? this.draggables.unregister(e.id, e) : e instanceof QF ? this.droppables.unregister(e.id, e) : () => {};\n\t\tif (e.prototype instanceof bI) return this.modifiers.unregister(e);\n\t\tif (e.prototype instanceof gI) return this.sensors.unregister(e);\n\t\tif (e.prototype instanceof aF) return this.plugins.unregister(e);\n\t\tthrow Error(\"Invalid instance type\");\n\t}\n\tdestroy() {\n\t\tthis.draggables.destroy(), this.droppables.destroy(), this.plugins.destroy(), this.sensors.destroy(), this.modifiers.destroy();\n\t}\n}, SI, CI, wI, TI, EI, DI, OI, kI, AI = [yN], jI, MI, NI, PI, FI, II, LI, RI, zI, BI;\nkI = [Y], OI = [Y], DI = [Y], EI = [Y], TI = [Y], wI = [yN], CI = [yN], SI = [yN];\nvar VI = class {\n\tconstructor(e) {\n\t\tX(PI, 5, this), Q(this, jI), Q(this, MI), Q(this, NI, new HN(void 0, (e, t) => e && t ? e.equals(t) : e === t)), this.status = new mI(), Q(this, FI, X(PI, 8, this, !1)), X(PI, 11, this), Q(this, II, X(PI, 12, this, null)), X(PI, 15, this), Q(this, LI, X(PI, 16, this, null)), X(PI, 19, this), Q(this, RI, X(PI, 20, this, null)), X(PI, 23, this), Q(this, zI, X(PI, 24, this, [])), X(PI, 27, this), this.position = new CP({\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t}), Q(this, BI, {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t}), XP(this, jI, e);\n\t}\n\tget shape() {\n\t\tlet { current: e, initial: t, previous: n } = YP(this, NI);\n\t\treturn !e || !t ? null : {\n\t\t\tcurrent: e,\n\t\t\tinitial: t,\n\t\t\tprevious: n\n\t\t};\n\t}\n\tset shape(e) {\n\t\te ? YP(this, NI).current = e : YP(this, NI).reset();\n\t}\n\tget source() {\n\t\tlet e = this.sourceIdentifier;\n\t\tif (e == null) return null;\n\t\tlet t = YP(this, jI).registry.draggables.get(e);\n\t\treturn t && XP(this, MI, t), t ?? YP(this, MI) ?? null;\n\t}\n\tget target() {\n\t\tlet e = this.targetIdentifier;\n\t\treturn e == null ? null : YP(this, jI).registry.droppables.get(e) ?? null;\n\t}\n\tget transform() {\n\t\tlet { x: e, y: t } = this.position.delta, n = {\n\t\t\tx: e,\n\t\t\ty: t\n\t\t};\n\t\tfor (let e of this.modifiers) n = e.apply(zP(RP({}, this.snapshot()), { transform: n }));\n\t\treturn XP(this, BI, n), n;\n\t}\n\tsnapshot() {\n\t\treturn J(() => ({\n\t\t\tsource: this.source,\n\t\t\ttarget: this.target,\n\t\t\tactivatorEvent: this.activatorEvent,\n\t\t\ttransform: YP(this, BI),\n\t\t\tshape: this.shape ? UN(this.shape) : null,\n\t\t\tposition: UN(this.position),\n\t\t\tstatus: UN(this.status),\n\t\t\tcanceled: this.canceled\n\t\t}));\n\t}\n\treset() {\n\t\txM(() => {\n\t\t\tthis.status.set(\"idle\"), this.sourceIdentifier = null, this.targetIdentifier = null, YP(this, NI).reset(), this.position.reset({\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t}), XP(this, BI, {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t}), this.modifiers = [];\n\t\t});\n\t}\n};\nPI = HP(null), jI = /* @__PURE__ */ new WeakMap(), MI = /* @__PURE__ */ new WeakMap(), NI = /* @__PURE__ */ new WeakMap(), FI = /* @__PURE__ */ new WeakMap(), II = /* @__PURE__ */ new WeakMap(), LI = /* @__PURE__ */ new WeakMap(), RI = /* @__PURE__ */ new WeakMap(), zI = /* @__PURE__ */ new WeakMap(), BI = /* @__PURE__ */ new WeakMap(), Z(PI, 2, \"shape\", AI, VI), Z(PI, 4, \"canceled\", kI, VI, FI), Z(PI, 4, \"activatorEvent\", OI, VI, II), Z(PI, 4, \"sourceIdentifier\", DI, VI, LI), Z(PI, 4, \"targetIdentifier\", EI, VI, RI), Z(PI, 4, \"modifiers\", TI, VI, zI), Z(PI, 2, \"source\", wI, VI), Z(PI, 2, \"target\", CI, VI), Z(PI, 2, \"transform\", SI, VI), KP(PI, VI);\nvar HI = { get rendering() {\n\treturn Promise.resolve();\n} };\nfunction UI(e, t) {\n\treturn typeof e == \"function\" ? e(t) : e ?? t;\n}\nvar WI = class {\n\tconstructor(e) {\n\t\tthis.destroy = () => {\n\t\t\tthis.dragOperation.status.idle || this.actions.stop({ canceled: !0 }), this.dragOperation.modifiers.forEach((e) => e.destroy()), this.registry.destroy(), this.collisionObserver.destroy();\n\t\t};\n\t\tlet t = e ?? {}, n = UI(t.plugins, []), r = UI(t.sensors, []), i = UI(t.modifiers, []), a = t.renderer ?? HI, o = new eI(this), s = new xI(this);\n\t\tthis.registry = s, this.monitor = o, this.renderer = a, this.actions = new hI(this), this.dragOperation = new VI(this), this.collisionObserver = new pF(this), this.plugins = [nI, ...n], this.modifiers = i, this.sensors = r;\n\t\tlet { destroy: c } = this, l = xN(() => {\n\t\t\tlet e = J(() => this.dragOperation.modifiers), t = this.modifiers;\n\t\t\tfor (let n of e) t.includes(n) || n.destroy();\n\t\t\tthis.dragOperation.modifiers = (this.dragOperation.source?.modifiers)?.map((e) => {\n\t\t\t\tlet { plugin: t, options: n } = eF(e);\n\t\t\t\treturn new t(this, n);\n\t\t\t}) ?? t;\n\t\t});\n\t\tthis.destroy = () => {\n\t\t\tl(), c();\n\t\t};\n\t}\n\tget plugins() {\n\t\treturn this.registry.plugins.values;\n\t}\n\tset plugins(e) {\n\t\tthis.registry.plugins.values = e;\n\t}\n\tget modifiers() {\n\t\treturn this.registry.modifiers.values;\n\t}\n\tset modifiers(e) {\n\t\tthis.registry.modifiers.values = e;\n\t}\n\tget sensors() {\n\t\treturn this.registry.sensors.values;\n\t}\n\tset sensors(e) {\n\t\tthis.registry.sensors.values = e;\n\t}\n}, GI = (e) => {\n\tthrow TypeError(e);\n}, KI = (e, t, n) => t.has(e) || GI(\"Cannot \" + n), $ = (e, t, n) => (KI(e, t, \"read from private field\"), t.get(e)), qI = (e, t, n) => t.has(e) ? GI(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, n), JI = (e, t, n, r) => (KI(e, t, \"write to private field\"), t.set(e, n), n), YI = (e, t, n) => (KI(e, t, \"access private method\"), n);\nfunction XI(e) {\n\treturn e ? e instanceof KeyframeEffect ? !0 : \"getKeyframes\" in e && typeof e.getKeyframes == \"function\" : !1;\n}\nfunction ZI(e, t) {\n\tlet n = e.getAnimations(), r = null;\n\tfor (let e of n) {\n\t\tif (e.playState !== \"running\") continue;\n\t\tlet { effect: n } = e, i = (XI(n) ? n.getKeyframes() : []).filter(t);\n\t\ti.length > 0 && (r = [i[i.length - 1], e]);\n\t}\n\treturn r;\n}\nfunction QI(e) {\n\tlet { width: t, height: n, top: r, left: i, bottom: a, right: o } = e.getBoundingClientRect();\n\treturn {\n\t\twidth: t,\n\t\theight: n,\n\t\ttop: r,\n\t\tleft: i,\n\t\tbottom: a,\n\t\tright: o\n\t};\n}\nfunction $I(e) {\n\tlet t = Object.prototype.toString.call(e);\n\treturn t === \"[object Window]\" || t === \"[object global]\";\n}\nfunction eL(e) {\n\treturn \"nodeType\" in e;\n}\nfunction tL(e) {\n\treturn e ? $I(e) ? e : eL(e) ? \"defaultView\" in e ? e.defaultView ?? window : e.ownerDocument?.defaultView ?? window : window : window;\n}\nfunction nL(e) {\n\tlet { Document: t } = tL(e);\n\treturn e instanceof t || \"nodeType\" in e && e.nodeType === Node.DOCUMENT_NODE;\n}\nfunction rL(e) {\n\treturn !e || $I(e) ? !1 : e instanceof tL(e).HTMLElement || \"namespaceURI\" in e && typeof e.namespaceURI == \"string\" && e.namespaceURI.endsWith(\"html\");\n}\nfunction iL(e) {\n\treturn e instanceof tL(e).SVGElement || \"namespaceURI\" in e && typeof e.namespaceURI == \"string\" && e.namespaceURI.endsWith(\"svg\");\n}\nfunction aL(e) {\n\treturn e ? $I(e) ? e.document : eL(e) ? nL(e) ? e : rL(e) || iL(e) ? e.ownerDocument : document : document : document;\n}\nfunction oL(e) {\n\tlet { documentElement: t } = aL(e), n = tL(e).visualViewport, r = n?.width ?? t.clientWidth, i = n?.height ?? t.clientHeight, a = n?.offsetTop ?? 0, o = n?.offsetLeft ?? 0;\n\treturn {\n\t\ttop: a,\n\t\tleft: o,\n\t\tright: o + r,\n\t\tbottom: a + i,\n\t\twidth: r,\n\t\theight: i\n\t};\n}\nfunction sL(e, t) {\n\tif (cL(e) && e.open === !1) return !1;\n\tlet { overflow: n, overflowX: r, overflowY: i } = getComputedStyle(e);\n\treturn n === \"visible\" && r === \"visible\" && i === \"visible\";\n}\nfunction cL(e) {\n\treturn e.tagName === \"DETAILS\";\n}\nfunction lL(e, t = e.getBoundingClientRect(), n = 0) {\n\tlet r = t, { ownerDocument: i } = e, a = i.defaultView ?? window, o = e.parentElement;\n\tfor (; o && o !== i.documentElement;) {\n\t\tif (!sL(o)) {\n\t\t\tlet e = o.getBoundingClientRect(), t = n * (e.bottom - e.top), i = n * (e.right - e.left), a = n * (e.bottom - e.top), s = n * (e.right - e.left);\n\t\t\tr = {\n\t\t\t\ttop: Math.max(r.top, e.top - t),\n\t\t\t\tright: Math.min(r.right, e.right + i),\n\t\t\t\tbottom: Math.min(r.bottom, e.bottom + a),\n\t\t\t\tleft: Math.max(r.left, e.left - s),\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0\n\t\t\t}, r.width = r.right - r.left, r.height = r.bottom - r.top;\n\t\t}\n\t\to = o.parentElement;\n\t}\n\tlet s = a.visualViewport, c = s?.offsetTop ?? 0, l = s?.offsetLeft ?? 0, u = s?.width ?? a.innerWidth, d = s?.height ?? a.innerHeight, f = n * d, p = n * u;\n\treturn r = {\n\t\ttop: Math.max(r.top, c - f),\n\t\tright: Math.min(r.right, l + u + p),\n\t\tbottom: Math.min(r.bottom, c + d + f),\n\t\tleft: Math.max(r.left, l - p),\n\t\twidth: 0,\n\t\theight: 0\n\t}, r.width = r.right - r.left, r.height = r.bottom - r.top, r.width < 0 && (r.width = 0), r.height < 0 && (r.height = 0), r;\n}\nfunction uL(e) {\n\treturn {\n\t\tx: e.clientX,\n\t\ty: e.clientY\n\t};\n}\nvar dL = typeof window < \"u\" && window.document !== void 0 && window.document.createElement !== void 0;\nfunction fL(e = document, t = /* @__PURE__ */ new Set()) {\n\tif (t.has(e)) return [];\n\tt.add(e);\n\tlet n = [e];\n\tfor (let r of Array.from(e.querySelectorAll(\"iframe, frame\"))) try {\n\t\tlet e = r.contentDocument;\n\t\te && !t.has(e) && n.push(...fL(e, t));\n\t} catch {}\n\ttry {\n\t\tlet r = e.defaultView;\n\t\tif (r && r !== window.top) {\n\t\t\tlet i = r.parent;\n\t\t\ti && i.document && i.document !== e && n.push(...fL(i.document, t));\n\t\t}\n\t} catch {}\n\treturn n;\n}\nfunction pL() {\n\treturn /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n}\nfunction mL() {\n\tlet e = pL() ? window.visualViewport : null;\n\treturn {\n\t\tx: e?.offsetLeft ?? 0,\n\t\ty: e?.offsetTop ?? 0\n\t};\n}\nfunction hL(e) {\n\treturn !e || !eL(e) ? !1 : e instanceof tL(e).ShadowRoot;\n}\nfunction gL(e) {\n\tif (e && eL(e)) {\n\t\tlet t = e.getRootNode();\n\t\tif (hL(t) || t instanceof Document) return t;\n\t}\n\treturn aL(e);\n}\nfunction _L(e) {\n\treturn e.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n}\nfunction vL(e) {\n\tlet t = \"input, textarea, select, canvas, [contenteditable]\", n = e.cloneNode(!0), r = Array.from(e.querySelectorAll(t));\n\treturn Array.from(n.querySelectorAll(t)).forEach((e, t) => {\n\t\tlet n = r[t];\n\t\tyL(e) && yL(n) && (e.type !== \"file\" && (e.value = n.value), e.type === \"radio\" && e.name && (e.name = `Cloned__${e.name}`)), bL(e) && bL(n) && n.width > 0 && n.height > 0 && e.getContext(\"2d\")?.drawImage(n, 0, 0);\n\t}), n;\n}\nfunction yL(e) {\n\treturn \"value\" in e;\n}\nfunction bL(e) {\n\treturn e.tagName === \"CANVAS\";\n}\nfunction xL(e, { x: t, y: n }) {\n\tlet r = e.elementFromPoint(t, n);\n\tif (SL(r)) {\n\t\tlet { contentDocument: e } = r;\n\t\tif (e) {\n\t\t\tlet { left: i, top: a } = r.getBoundingClientRect();\n\t\t\treturn xL(e, {\n\t\t\t\tx: t - i,\n\t\t\t\ty: n - a\n\t\t\t});\n\t\t}\n\t}\n\treturn r;\n}\nfunction SL(e) {\n\treturn e?.tagName === \"IFRAME\";\n}\nvar CL = /* @__PURE__ */ new WeakMap();\nfunction wL(e) {\n\treturn e.closest(\"\\n    input:not([disabled]),\\n    select:not([disabled]),\\n    textarea:not([disabled]),\\n    button:not([disabled]),\\n    a[href],\\n    [contenteditable]:not([contenteditable=\\\"false\\\"])\\n  \");\n}\nvar TL = class {\n\tconstructor() {\n\t\tthis.entries = /* @__PURE__ */ new Set(), this.clear = () => {\n\t\t\tfor (let e of this.entries) {\n\t\t\t\tlet [t, { type: n, listener: r, options: i }] = e;\n\t\t\t\tt.removeEventListener(n, r, i);\n\t\t\t}\n\t\t\tthis.entries.clear();\n\t\t};\n\t}\n\tbind(e, t) {\n\t\tlet n = Array.isArray(e) ? e : [e], r = Array.isArray(t) ? t : [t], i = [];\n\t\tfor (let e of n) for (let t of r) {\n\t\t\tlet { type: n, listener: r, options: a } = t, o = [e, t];\n\t\t\te.addEventListener(n, r, a), this.entries.add(o), i.push(o);\n\t\t}\n\t\tlet a = this.entries;\n\t\treturn function() {\n\t\t\tfor (let e of i) {\n\t\t\t\tlet [t, { type: n, listener: r, options: i }] = e;\n\t\t\t\tt.removeEventListener(n, r, i), a.delete(e);\n\t\t\t}\n\t\t};\n\t}\n};\nfunction EL(e) {\n\tlet t = e?.ownerDocument.defaultView;\n\tif (t && t.self !== t.parent) return t.frameElement;\n}\nfunction DL(e) {\n\tlet t = /* @__PURE__ */ new Set(), n = EL(e);\n\tfor (; n;) t.add(n), n = EL(n);\n\treturn t;\n}\nfunction OL(e, t) {\n\tlet n = setTimeout(e, t);\n\treturn () => clearTimeout(n);\n}\nfunction kL(e, t) {\n\tlet n = () => performance.now(), r, i;\n\treturn function(...a) {\n\t\tlet o = this;\n\t\ti ? (r?.(), r = OL(() => {\n\t\t\te.apply(o, a), i = n();\n\t\t}, t - (n() - i))) : (e.apply(o, a), i = n());\n\t};\n}\nfunction AL(e, t) {\n\treturn e === t ? !0 : !e || !t ? !1 : e.top == t.top && e.left == t.left && e.right == t.right && e.bottom == t.bottom;\n}\nfunction jL(e, t = e.getBoundingClientRect()) {\n\tlet { width: n, height: r } = lL(e, t);\n\treturn n > 0 && r > 0;\n}\nvar ML = dL ? ResizeObserver : class {\n\tobserve() {}\n\tunobserve() {}\n\tdisconnect() {}\n}, NL, PL = class extends ML {\n\tconstructor(e) {\n\t\tsuper((t) => {\n\t\t\tif (!$(this, NL)) {\n\t\t\t\tJI(this, NL, !0);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\te(t, this);\n\t\t}), qI(this, NL, !1);\n\t}\n};\nNL = /* @__PURE__ */ new WeakMap();\nvar FL = Array.from({ length: 100 }, (e, t) => t / 100), IL = 75, LL, RL, zL, BL, VL, HL, UL, WL, GL, KL, qL, JL = class {\n\tconstructor(e, t, n = {\n\t\tdebug: !1,\n\t\tskipInitial: !1\n\t}) {\n\t\tthis.element = e, this.callback = t, qI(this, GL), this.disconnect = () => {\n\t\t\tvar e, t, n;\n\t\t\tJI(this, UL, !0), (e = $(this, zL)) == null || e.disconnect(), (t = $(this, BL)) == null || t.disconnect(), $(this, VL).disconnect(), (n = $(this, HL)) == null || n.remove();\n\t\t}, qI(this, LL, !0), qI(this, RL), qI(this, zL), qI(this, BL), qI(this, VL), qI(this, HL), qI(this, UL, !1), qI(this, WL, kL(() => {\n\t\t\tvar e;\n\t\t\tlet { element: t } = this;\n\t\t\tif ((e = $(this, BL)) == null || e.disconnect(), $(this, UL) || !$(this, LL) || !t.isConnected) return;\n\t\t\tlet n = t.ownerDocument ?? document, { innerHeight: r, innerWidth: i } = n.defaultView ?? window, a = t.getBoundingClientRect(), { top: o, left: s, bottom: c, right: l } = lL(t, a), u = -Math.floor(o), d = -Math.floor(s), f = `${u}px ${-Math.floor(i - l)}px ${-Math.floor(r - c)}px ${d}px`;\n\t\t\tthis.boundingClientRect = a, JI(this, BL, new IntersectionObserver((e) => {\n\t\t\t\tlet [n] = e, { intersectionRect: r } = n;\n\t\t\t\t(n.intersectionRatio === 1 ? gP.intersectionRatio(r, lL(t)) : n.intersectionRatio) !== 1 && $(this, WL).call(this);\n\t\t\t}, {\n\t\t\t\tthreshold: FL,\n\t\t\t\trootMargin: f,\n\t\t\t\troot: n\n\t\t\t})), $(this, BL).observe(t), YI(this, GL, KL).call(this);\n\t\t}, IL)), this.boundingClientRect = e.getBoundingClientRect(), JI(this, LL, jL(e, this.boundingClientRect));\n\t\tlet r = !0;\n\t\tthis.callback = (e) => {\n\t\t\tr && (r = !1, n.skipInitial) || t(e);\n\t\t};\n\t\tlet i = e.ownerDocument;\n\t\tn?.debug && (JI(this, HL, document.createElement(\"div\")), $(this, HL).style.background = \"rgba(0,0,0,0.15)\", $(this, HL).style.position = \"fixed\", $(this, HL).style.pointerEvents = \"none\", i.body.appendChild($(this, HL))), JI(this, VL, new IntersectionObserver((t) => {\n\t\t\tvar n, r;\n\t\t\tlet { boundingClientRect: i, isIntersecting: a } = t[t.length - 1], { width: o, height: s } = i, c = $(this, LL);\n\t\t\tJI(this, LL, a), !(!o && !s) && (c && !a ? ((n = $(this, BL)) == null || n.disconnect(), this.callback(null), (r = $(this, zL)) == null || r.disconnect(), JI(this, zL, void 0), $(this, HL) && ($(this, HL).style.visibility = \"hidden\")) : $(this, WL).call(this), a && !$(this, zL) && (JI(this, zL, new PL($(this, WL))), $(this, zL).observe(e)));\n\t\t}, {\n\t\t\tthreshold: FL,\n\t\t\troot: i\n\t\t})), $(this, LL) && !n.skipInitial && this.callback(this.boundingClientRect), $(this, VL).observe(e);\n\t}\n};\nLL = /* @__PURE__ */ new WeakMap(), RL = /* @__PURE__ */ new WeakMap(), zL = /* @__PURE__ */ new WeakMap(), BL = /* @__PURE__ */ new WeakMap(), VL = /* @__PURE__ */ new WeakMap(), HL = /* @__PURE__ */ new WeakMap(), UL = /* @__PURE__ */ new WeakMap(), WL = /* @__PURE__ */ new WeakMap(), GL = /* @__PURE__ */ new WeakSet(), KL = function() {\n\t$(this, UL) || (YI(this, GL, qL).call(this), !AL(this.boundingClientRect, $(this, RL)) && (this.callback(this.boundingClientRect), JI(this, RL, this.boundingClientRect)));\n}, qL = function() {\n\tif ($(this, HL)) {\n\t\tlet { top: e, left: t, width: n, height: r } = lL(this.element);\n\t\t$(this, HL).style.overflow = \"hidden\", $(this, HL).style.visibility = \"visible\", $(this, HL).style.top = `${Math.floor(e)}px`, $(this, HL).style.left = `${Math.floor(t)}px`, $(this, HL).style.width = `${Math.floor(n)}px`, $(this, HL).style.height = `${Math.floor(r)}px`;\n\t}\n};\nvar YL = /* @__PURE__ */ new WeakMap(), XL = /* @__PURE__ */ new WeakMap();\nfunction ZL(e, t) {\n\tlet n = YL.get(e);\n\treturn n ||= {\n\t\tdisconnect: new JL(e, (t) => {\n\t\t\tlet n = YL.get(e);\n\t\t\tn && n.callbacks.forEach((e) => e(t));\n\t\t}, { skipInitial: !0 }).disconnect,\n\t\tcallbacks: /* @__PURE__ */ new Set()\n\t}, n.callbacks.add(t), YL.set(e, n), () => {\n\t\tn.callbacks.delete(t), n.callbacks.size === 0 && (YL.delete(e), n.disconnect());\n\t};\n}\nfunction QL(e, t) {\n\tlet n = /* @__PURE__ */ new Set();\n\tfor (let r of e) {\n\t\tlet e = ZL(r, t);\n\t\tn.add(e);\n\t}\n\treturn () => n.forEach((e) => e());\n}\nfunction $L(e, t) {\n\tlet n = e.ownerDocument;\n\tif (!XL.has(n)) {\n\t\tlet e = new AbortController(), t = /* @__PURE__ */ new Set();\n\t\tdocument.addEventListener(\"scroll\", (e) => t.forEach((t) => t(e)), {\n\t\t\tcapture: !0,\n\t\t\tpassive: !0,\n\t\t\tsignal: e.signal\n\t\t}), XL.set(n, {\n\t\t\tdisconnect: () => e.abort(),\n\t\t\tlisteners: t\n\t\t});\n\t}\n\tlet { listeners: r, disconnect: i } = XL.get(n) ?? {};\n\treturn !r || !i ? () => {} : (r.add(t), () => {\n\t\tr.delete(t), r.size === 0 && (i(), XL.delete(n));\n\t});\n}\nvar eR, tR, nR, rR, iR = class {\n\tconstructor(e, t, n) {\n\t\tthis.callback = t, qI(this, eR), qI(this, tR, !1), qI(this, nR), qI(this, rR, kL((e) => {\n\t\t\tif (!$(this, tR) && e.target && \"contains\" in e.target && typeof e.target.contains == \"function\") {\n\t\t\t\tfor (let t of $(this, nR)) if (e.target.contains(t)) {\n\t\t\t\t\tthis.callback($(this, eR).boundingClientRect);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}, IL));\n\t\tlet r = DL(e), i = QL(r, t), a = $L(e, $(this, rR));\n\t\tJI(this, nR, r), JI(this, eR, new JL(e, t, n)), this.disconnect = () => {\n\t\t\t$(this, tR) || (JI(this, tR, !0), i(), a(), $(this, eR).disconnect());\n\t\t};\n\t}\n};\neR = /* @__PURE__ */ new WeakMap(), tR = /* @__PURE__ */ new WeakMap(), nR = /* @__PURE__ */ new WeakMap(), rR = /* @__PURE__ */ new WeakMap();\nfunction aR(e) {\n\treturn \"showPopover\" in e && \"hidePopover\" in e && typeof e.showPopover == \"function\" && typeof e.hidePopover == \"function\";\n}\nfunction oR(e) {\n\ttry {\n\t\taR(e) && e.isConnected && e.hasAttribute(\"popover\") && !e.matches(\":popover-open\") && e.showPopover();\n\t} catch {}\n}\nfunction sR(e) {\n\treturn !dL || !e ? !1 : e === aL(e).scrollingElement;\n}\nfunction cR(e) {\n\tlet t = tL(e), n = sR(e) ? oL(e) : QI(e), r = t.visualViewport, i = sR(e) ? {\n\t\theight: r?.height ?? t.innerHeight,\n\t\twidth: r?.width ?? t.innerWidth\n\t} : {\n\t\theight: e.clientHeight,\n\t\twidth: e.clientWidth\n\t}, a = {\n\t\tcurrent: {\n\t\t\tx: e.scrollLeft,\n\t\t\ty: e.scrollTop\n\t\t},\n\t\tmax: {\n\t\t\tx: e.scrollWidth - i.width,\n\t\t\ty: e.scrollHeight - i.height\n\t\t}\n\t};\n\treturn {\n\t\trect: n,\n\t\tposition: a,\n\t\tisTop: a.current.y <= 0,\n\t\tisLeft: a.current.x <= 0,\n\t\tisBottom: a.current.y >= a.max.y,\n\t\tisRight: a.current.x >= a.max.x\n\t};\n}\nfunction lR(e, t) {\n\tlet { isTop: n, isBottom: r, isLeft: i, isRight: a, position: o } = cR(e), { x: s, y: c } = t ?? {\n\t\tx: 0,\n\t\ty: 0\n\t}, l = !n && o.current.y + c > 0, u = !r && o.current.y + c < o.max.y, d = !i && o.current.x + s > 0, f = !a && o.current.x + s < o.max.x;\n\treturn {\n\t\ttop: l,\n\t\tbottom: u,\n\t\tleft: d,\n\t\tright: f,\n\t\tx: d || f,\n\t\ty: l || u\n\t};\n}\nvar uR = class {\n\tconstructor(e) {\n\t\tthis.scheduler = e, this.pending = !1, this.tasks = /* @__PURE__ */ new Set(), this.resolvers = /* @__PURE__ */ new Set(), this.flush = () => {\n\t\t\tlet { tasks: e, resolvers: t } = this;\n\t\t\tthis.pending = !1, this.tasks = /* @__PURE__ */ new Set(), this.resolvers = /* @__PURE__ */ new Set();\n\t\t\tfor (let t of e) t();\n\t\t\tfor (let e of t) e();\n\t\t};\n\t}\n\tschedule(e) {\n\t\treturn this.tasks.add(e), this.pending || (this.pending = !0, this.scheduler(this.flush)), new Promise((e) => this.resolvers.add(e));\n\t}\n}, dR = new uR((e) => {\n\ttypeof requestAnimationFrame == \"function\" ? requestAnimationFrame(e) : e();\n}), fR = new uR((e) => setTimeout(e, 50)), pR = /* @__PURE__ */ new Map(), mR = pR.clear.bind(pR);\nfunction hR(e, t = !1) {\n\tif (!t) return gR(e);\n\tlet n = pR.get(e);\n\treturn n || (n = gR(e), pR.set(e, n), fR.schedule(mR), n);\n}\nfunction gR(e) {\n\treturn tL(e).getComputedStyle(e);\n}\nfunction _R(e, t = hR(e, !0)) {\n\treturn t.position === \"fixed\" || t.position === \"sticky\";\n}\nfunction vR(e, t = hR(e, !0)) {\n\tlet n = /(auto|scroll|overlay)/;\n\treturn [\n\t\t\"overflow\",\n\t\t\"overflowX\",\n\t\t\"overflowY\"\n\t].some((e) => {\n\t\tlet r = t[e];\n\t\treturn typeof r == \"string\" ? n.test(r) : !1;\n\t});\n}\nvar yR = {\n\texcludeElement: !0,\n\tescapeShadowDOM: !0\n};\nfunction bR(e, t = yR) {\n\tlet { limit: n, excludeElement: r, escapeShadowDOM: i } = t, a = /* @__PURE__ */ new Set();\n\tfunction o(t) {\n\t\tif (n != null && a.size >= n || !t) return a;\n\t\tif (nL(t) && t.scrollingElement != null && !a.has(t.scrollingElement)) return a.add(t.scrollingElement), a;\n\t\tif (i && hL(t)) return o(t.host);\n\t\tif (!rL(t)) return iL(t) ? o(t.parentElement) : a;\n\t\tif (a.has(t)) return a;\n\t\tlet s = hR(t, !0);\n\t\tif (r && t === e || vR(t, s) && a.add(t), _R(t, s)) {\n\t\t\tlet { scrollingElement: e } = t.ownerDocument;\n\t\t\treturn e && a.add(e), a;\n\t\t}\n\t\treturn o(t.parentNode);\n\t}\n\treturn e ? o(e) : a;\n}\nfunction xR(e, t = window.frameElement) {\n\tlet n = {\n\t\tx: 0,\n\t\ty: 0,\n\t\tscaleX: 1,\n\t\tscaleY: 1\n\t};\n\tif (!e) return n;\n\tlet r = EL(e);\n\tfor (; r;) {\n\t\tif (r === t) return n;\n\t\tlet e = QI(r), { x: i, y: a } = SR(r, e);\n\t\tn.x += e.left, n.y += e.top, n.scaleX *= i, n.scaleY *= a, r = EL(r);\n\t}\n\treturn n;\n}\nfunction SR(e, t = QI(e)) {\n\tlet n = Math.round(t.width), r = Math.round(t.height);\n\tif (rL(e)) return {\n\t\tx: n / e.offsetWidth,\n\t\ty: r / e.offsetHeight\n\t};\n\tlet i = hR(e, !0);\n\treturn {\n\t\tx: (parseFloat(i.width) || n) / n,\n\t\ty: (parseFloat(i.height) || r) / r\n\t};\n}\nfunction CR(e) {\n\tif (!e || e === \"none\") return null;\n\tlet t = e.split(\" \"), n = parseFloat(t[0]), r = parseFloat(t[1]);\n\treturn isNaN(n) && isNaN(r) ? null : {\n\t\tx: isNaN(n) ? r : n,\n\t\ty: isNaN(r) ? n : r\n\t};\n}\nfunction wR(e) {\n\tif (!e || e === \"none\") return null;\n\tlet [t, n, r = \"0\"] = e.split(\" \"), i = {\n\t\tx: parseFloat(t),\n\t\ty: parseFloat(n),\n\t\tz: parseInt(r, 10)\n\t};\n\treturn isNaN(i.x) && isNaN(i.y) ? null : {\n\t\tx: isNaN(i.x) ? 0 : i.x,\n\t\ty: isNaN(i.y) ? 0 : i.y,\n\t\tz: isNaN(i.z) ? 0 : i.z\n\t};\n}\nfunction TR(e) {\n\tlet { scale: t, transform: n, translate: r } = e, i = CR(t), a = wR(r), o = ER(n);\n\tif (!o && !i && !a) return null;\n\tlet s = {\n\t\tx: i?.x ?? 1,\n\t\ty: i?.y ?? 1\n\t}, c = {\n\t\tx: a?.x ?? 0,\n\t\ty: a?.y ?? 0\n\t}, l = {\n\t\tx: o?.x ?? 0,\n\t\ty: o?.y ?? 0,\n\t\tscaleX: o?.scaleX ?? 1,\n\t\tscaleY: o?.scaleY ?? 1\n\t};\n\treturn {\n\t\tx: c.x + l.x,\n\t\ty: c.y + l.y,\n\t\tz: a?.z ?? 0,\n\t\tscaleX: s.x * l.scaleX,\n\t\tscaleY: s.y * l.scaleY\n\t};\n}\nfunction ER(e) {\n\tif (e.startsWith(\"matrix3d(\")) {\n\t\tlet t = e.slice(9, -1).split(/, /);\n\t\treturn {\n\t\t\tx: +t[12],\n\t\t\ty: +t[13],\n\t\t\tscaleX: +t[0],\n\t\t\tscaleY: +t[5]\n\t\t};\n\t} else if (e.startsWith(\"matrix(\")) {\n\t\tlet t = e.slice(7, -1).split(/, /);\n\t\treturn {\n\t\t\tx: +t[4],\n\t\t\ty: +t[5],\n\t\t\tscaleX: +t[0],\n\t\t\tscaleY: +t[3]\n\t\t};\n\t}\n\treturn null;\n}\nvar DR = /* @__PURE__ */ ((e) => (e[e.Idle = 0] = \"Idle\", e[e.Forward = 1] = \"Forward\", e[e.Reverse = -1] = \"Reverse\", e))(DR || {}), OR = {\n\tx: .2,\n\ty: .2\n}, kR = {\n\tx: 10,\n\ty: 10\n};\nfunction AR(e, t, n, r = 25, i = OR, a = kR) {\n\tlet { x: o, y: s } = t, { rect: c, isTop: l, isBottom: u, isLeft: d, isRight: f } = cR(e), p = xR(e), m = TR(hR(e, !0)), h = m === null ? !1 : m?.scaleX < 0, g = m === null ? !1 : m?.scaleY < 0, _ = new gP(c.left * p.scaleX + p.x, c.top * p.scaleY + p.y, c.width * p.scaleX, c.height * p.scaleY), v = {\n\t\tx: 0,\n\t\ty: 0\n\t}, y = {\n\t\tx: 0,\n\t\ty: 0\n\t}, b = {\n\t\theight: _.height * i.y,\n\t\twidth: _.width * i.x\n\t};\n\treturn b.height > 0 && (!l || g && !u) && s <= _.top + b.height && n?.y !== 1 && o >= _.left - a.x && o <= _.right + a.x ? (v.y = g ? 1 : -1, y.y = r * Math.abs((_.top + b.height - s) / b.height)) : b.height > 0 && (!u || g && !l) && s >= _.bottom - b.height && n?.y !== -1 && o >= _.left - a.x && o <= _.right + a.x && (v.y = g ? -1 : 1, y.y = r * Math.abs((_.bottom - b.height - s) / b.height)), b.width > 0 && (!f || h && !d) && o >= _.right - b.width && n?.x !== -1 && s >= _.top - a.y && s <= _.bottom + a.y ? (v.x = h ? -1 : 1, y.x = r * Math.abs((_.right - b.width - o) / b.width)) : b.width > 0 && (!d || h && !f) && o <= _.left + b.width && n?.x !== 1 && s >= _.top - a.y && s <= _.bottom + a.y && (v.x = h ? 1 : -1, y.x = r * Math.abs((_.left + b.width - o) / b.width)), {\n\t\tdirection: v,\n\t\tspeed: y\n\t};\n}\nfunction jR(e, { block: t = \"nearest\", inline: n = \"nearest\" } = {}) {\n\tif (!rL(e)) return;\n\tlet r = bR(e), i = [];\n\tfor (let a of r) {\n\t\tif (!rL(a)) continue;\n\t\tlet { top: r, left: o } = NR(e, a), s = r, c = o;\n\t\tfor (let e of i) s -= e.scrollTop, c -= e.scrollLeft;\n\t\tif (t !== \"none\") {\n\t\t\tlet n = s < a.scrollTop;\n\t\t\tn !== s + e.offsetHeight > a.scrollTop + a.clientHeight && (t === \"center\" ? a.scrollTop = s - a.clientHeight / 2 + e.offsetHeight / 2 : n ? a.scrollTop = s : a.scrollTop = s + e.offsetHeight - a.clientHeight);\n\t\t}\n\t\tif (n !== \"none\") {\n\t\t\tlet t = c < a.scrollLeft;\n\t\t\tt !== c + e.offsetWidth > a.scrollLeft + a.clientWidth && (n === \"center\" ? a.scrollLeft = c - a.clientWidth / 2 + e.offsetWidth / 2 : t ? a.scrollLeft = c : a.scrollLeft = c + e.offsetWidth - a.clientWidth);\n\t\t}\n\t\ti.push(a);\n\t}\n}\nfunction MR(e) {\n\tlet t = 0, n = 0, r = e;\n\tfor (; r;) {\n\t\tt += r.offsetTop, n += r.offsetLeft;\n\t\tlet e = r.offsetParent;\n\t\tif (!rL(e)) break;\n\t\tt += e.clientTop, n += e.clientLeft, r = e;\n\t}\n\treturn {\n\t\ttop: t,\n\t\tleft: n\n\t};\n}\nfunction NR(e, t) {\n\tlet n = MR(e), r = MR(t);\n\treturn {\n\t\ttop: n.top - r.top - t.clientTop,\n\t\tleft: n.left - r.left - t.clientLeft\n\t};\n}\nfunction PR(e, t, n) {\n\tlet { scaleX: r, scaleY: i, x: a, y: o } = t, s = e.left + a + (1 - r) * parseFloat(n), c = e.top + o + (1 - i) * parseFloat(n.slice(n.indexOf(\" \") + 1)), l = r ? e.width * r : e.width, u = i ? e.height * i : e.height;\n\treturn {\n\t\twidth: l,\n\t\theight: u,\n\t\ttop: c,\n\t\tright: s + l,\n\t\tbottom: c + u,\n\t\tleft: s\n\t};\n}\nfunction FR(e, t, n) {\n\tlet { scaleX: r, scaleY: i, x: a, y: o } = t, s = e.left - a - (1 - r) * parseFloat(n), c = e.top - o - (1 - i) * parseFloat(n.slice(n.indexOf(\" \") + 1)), l = r ? e.width / r : e.width, u = i ? e.height / i : e.height;\n\treturn {\n\t\twidth: l,\n\t\theight: u,\n\t\ttop: c,\n\t\tright: s + l,\n\t\tbottom: c + u,\n\t\tleft: s\n\t};\n}\nfunction IR({ element: e, keyframes: t, options: n }) {\n\treturn e.animate(t, n).finished;\n}\nvar LR = new uR((e) => setTimeout(e, 0)), RR = /* @__PURE__ */ new Map(), zR = RR.clear.bind(RR);\nfunction BR(e) {\n\tlet t = e.ownerDocument, n = RR.get(t);\n\tif (n) return n;\n\tn = t.getAnimations(), RR.set(t, n), LR.schedule(zR);\n\tlet r = n.filter((t) => XI(t.effect) && t.effect.target === e);\n\treturn RR.set(e, r), n;\n}\nfunction VR(e, t) {\n\tlet n = BR(e).filter((e) => {\n\t\tif (XI(e.effect)) {\n\t\t\tlet { target: n } = e.effect;\n\t\t\tif ((n && t.isValidTarget?.call(t, n)) ?? !0) return e.effect.getKeyframes().some((e) => {\n\t\t\t\tfor (let n of t.properties) if (e[n]) return !0;\n\t\t\t});\n\t\t}\n\t}).map((e) => {\n\t\tlet { effect: t, currentTime: n } = e, r = t?.getComputedTiming().duration;\n\t\tif (!(e.pending || e.playState === \"finished\") && typeof r == \"number\" && typeof n == \"number\" && n < r) return e.currentTime = r, () => {\n\t\t\te.currentTime = n;\n\t\t};\n\t});\n\tif (n.length > 0) return () => n.forEach((e) => e?.());\n}\nvar HR = class extends gP {\n\tconstructor(e, t = {}) {\n\t\tlet { frameTransform: n = xR(e), ignoreTransforms: r, getBoundingClientRect: i = QI } = t, a = VR(e, {\n\t\t\tproperties: [\n\t\t\t\t\"transform\",\n\t\t\t\t\"translate\",\n\t\t\t\t\"scale\",\n\t\t\t\t\"width\",\n\t\t\t\t\"height\"\n\t\t\t],\n\t\t\tisValidTarget: (t) => (t !== e || pL()) && t.contains(e)\n\t\t}), o = i(e), { top: s, left: c, width: l, height: u } = o, d, f = hR(e), p = TR(f), m = {\n\t\t\tx: p?.scaleX ?? 1,\n\t\t\ty: p?.scaleY ?? 1\n\t\t}, h = UR(e, f);\n\t\ta?.(), p && (d = FR(o, p, f.transformOrigin), (r || h) && (s = d.top, c = d.left, l = d.width, u = d.height));\n\t\tlet g = {\n\t\t\twidth: d?.width ?? l,\n\t\t\theight: d?.height ?? u\n\t\t};\n\t\tif (h && !r && d) {\n\t\t\tlet e = PR(d, h, f.transformOrigin);\n\t\t\ts = e.top, c = e.left, l = e.width, u = e.height, m.x = h.scaleX, m.y = h.scaleY;\n\t\t}\n\t\tn && (r || (c *= n.scaleX, l *= n.scaleX, s *= n.scaleY, u *= n.scaleY), c += n.x, s += n.y), super(c, s, l, u), this.scale = m, this.intrinsicWidth = g.width, this.intrinsicHeight = g.height;\n\t}\n};\nfunction UR(e, t) {\n\tlet n = e.getAnimations();\n\tif (!n.length) return null;\n\tlet r, i, a, o = !1;\n\tfor (let e of n) {\n\t\tif (e.playState !== \"running\") continue;\n\t\tlet t = XI(e.effect) ? e.effect.getKeyframes() : [], n = t[t.length - 1];\n\t\tif (!n) continue;\n\t\tlet { transform: s, translate: c, scale: l } = n;\n\t\ttypeof s == \"string\" && s && (r = s, o = !0), typeof c == \"string\" && c && (i = c, o = !0), typeof l == \"string\" && l && (a = l, o = !0);\n\t}\n\treturn o ? TR({\n\t\ttransform: r ?? t.transform,\n\t\ttranslate: i ?? t.translate,\n\t\tscale: a ?? t.scale\n\t}) : null;\n}\nfunction WR(e) {\n\treturn \"style\" in e && typeof e.style == \"object\" && e.style !== null && \"setProperty\" in e.style && \"removeProperty\" in e.style && typeof e.style.setProperty == \"function\" && typeof e.style.removeProperty == \"function\";\n}\nvar GR = class {\n\tconstructor(e) {\n\t\tthis.element = e, this.initial = /* @__PURE__ */ new Map();\n\t}\n\tset(e, t = \"\") {\n\t\tlet { element: n } = this;\n\t\tif (WR(n)) for (let [r, i] of Object.entries(e)) {\n\t\t\tlet e = `${t}${r}`;\n\t\t\tthis.initial.has(e) || this.initial.set(e, n.style.getPropertyValue(e)), n.style.setProperty(e, typeof i == \"string\" ? i : `${i}px`);\n\t\t}\n\t}\n\tremove(e, t = \"\") {\n\t\tlet { element: n } = this;\n\t\tif (WR(n)) for (let r of e) {\n\t\t\tlet e = `${t}${r}`;\n\t\t\tn.style.removeProperty(e);\n\t\t}\n\t}\n\treset() {\n\t\tlet { element: e } = this;\n\t\tif (WR(e)) {\n\t\t\tfor (let [t, n] of this.initial) e.style.setProperty(t, n);\n\t\t\te.getAttribute(\"style\") === \"\" && e.removeAttribute(\"style\");\n\t\t}\n\t}\n};\nfunction KR(e) {\n\treturn e ? e instanceof tL(e).Element || eL(e) && e.nodeType === Node.ELEMENT_NODE : !1;\n}\nfunction qR(e) {\n\tif (!e) return !1;\n\tlet { KeyboardEvent: t } = tL(e.target);\n\treturn e instanceof t;\n}\nfunction JR(e) {\n\tif (!e) return !1;\n\tlet { PointerEvent: t } = tL(e.target);\n\treturn e instanceof t;\n}\nfunction YR(e) {\n\tif (!KR(e)) return !1;\n\tlet { tagName: t } = e;\n\treturn t === \"INPUT\" || t === \"TEXTAREA\" || XR(e);\n}\nfunction XR(e) {\n\treturn e.hasAttribute(\"contenteditable\") && e.getAttribute(\"contenteditable\") !== \"false\";\n}\nvar ZR = {};\nfunction QR(e) {\n\tlet t = ZR[e] == null ? 0 : ZR[e] + 1;\n\treturn ZR[e] = t, `${e}-${t}`;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@dnd-kit+collision@0.5.0/node_modules/@dnd-kit/collision/dist/index.js\nvar $R = ({ dragOperation: e, droppable: t }) => {\n\tlet n = e.position.current;\n\tif (!n) return null;\n\tlet { id: r } = t;\n\treturn t.shape && t.shape.containsPoint(n) ? {\n\t\tid: r,\n\t\tvalue: 1 / hP.distance(t.shape.center, n),\n\t\ttype: iI.PointerIntersection,\n\t\tpriority: rI.High\n\t} : null;\n}, ez = ({ dragOperation: e, droppable: t }) => {\n\tlet { shape: n } = e;\n\tif (!t.shape || !n?.current) return null;\n\tlet r = n.current.intersectionArea(t.shape);\n\tif (r) {\n\t\tlet { position: i } = e, a = hP.distance(t.shape.center, i.current), o = r / (n.current.area + t.shape.area - r) / a;\n\t\treturn {\n\t\t\tid: t.id,\n\t\t\tvalue: o,\n\t\t\ttype: iI.ShapeIntersection,\n\t\t\tpriority: rI.Normal\n\t\t};\n\t}\n\treturn null;\n}, tz = (e) => $R(e) ?? ez(e), nz = Object.create, rz = Object.defineProperty, iz = Object.defineProperties, az = Object.getOwnPropertyDescriptor, oz = Object.getOwnPropertyDescriptors, sz = Object.getOwnPropertySymbols, cz = Object.prototype.hasOwnProperty, lz = Object.prototype.propertyIsEnumerable, uz = (e, t) => (t = Symbol[e]) ? t : Symbol.for(\"Symbol.\" + e), dz = (e) => {\n\tthrow TypeError(e);\n}, fz = (e, t, n) => t in e ? rz(e, t, {\n\tenumerable: !0,\n\tconfigurable: !0,\n\twritable: !0,\n\tvalue: n\n}) : e[t] = n, pz = (e, t) => {\n\tfor (var n in t ||= {}) cz.call(t, n) && fz(e, n, t[n]);\n\tif (sz) for (var n of sz(t)) lz.call(t, n) && fz(e, n, t[n]);\n\treturn e;\n}, mz = (e, t) => iz(e, oz(t)), hz = (e, t) => rz(e, \"name\", {\n\tvalue: t,\n\tconfigurable: !0\n}), gz = (e, t) => {\n\tvar n = {};\n\tfor (var r in e) cz.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);\n\tif (e != null && sz) for (var r of sz(e)) t.indexOf(r) < 0 && lz.call(e, r) && (n[r] = e[r]);\n\treturn n;\n}, _z = (e) => [\n\t,\n\t,\n\t,\n\tnz(e?.[uz(\"metadata\")] ?? null)\n], vz = [\n\t\"class\",\n\t\"method\",\n\t\"getter\",\n\t\"setter\",\n\t\"accessor\",\n\t\"field\",\n\t\"value\",\n\t\"get\",\n\t\"set\"\n], yz = (e) => e !== void 0 && typeof e != \"function\" ? dz(\"Function expected\") : e, bz = (e, t, n, r, i) => ({\n\tkind: vz[e],\n\tname: t,\n\tmetadata: r,\n\taddInitializer: (e) => n._ ? dz(\"Already initialized\") : i.push(yz(e || null))\n}), xz = (e, t) => fz(t, uz(\"metadata\"), e[3]), Sz = (e, t, n, r) => {\n\tfor (var i = 0, a = e[t >> 1], o = a && a.length; i < o; i++) t & 1 ? a[i].call(n) : r = a[i].call(n, r);\n\treturn r;\n}, Cz = (e, t, n, r, i, a) => {\n\tvar o, s, c, l, u, d = t & 7, f = !!(t & 8), p = !!(t & 16), m = d > 3 ? e.length + 1 : d ? f ? 1 : 2 : 0, h = vz[d + 5], g = d > 3 && (e[m - 1] = []), _ = e[m] || (e[m] = []), v = d && (!p && !f && (i = i.prototype), d < 5 && (d > 3 || !p) && az(d < 4 ? i : {\n\t\tget [n]() {\n\t\t\treturn Ez(this, a);\n\t\t},\n\t\tset [n](e) {\n\t\t\treturn Oz(this, a, e);\n\t\t}\n\t}, n));\n\td ? p && d < 4 && hz(a, (d > 2 ? \"set \" : d > 1 ? \"get \" : \"\") + n) : hz(i, n);\n\tfor (var y = r.length - 1; y >= 0; y--) l = bz(d, n, c = {}, e[3], _), d && (l.static = f, l.private = p, u = l.access = { has: p ? (e) => Tz(i, e) : (e) => n in e }, d ^ 3 && (u.get = p ? (e) => (d ^ 1 ? Ez : kz)(e, i, d ^ 4 ? a : v.get) : (e) => e[n]), d > 2 && (u.set = p ? (e, t) => Oz(e, i, t, d ^ 4 ? a : v.set) : (e, t) => e[n] = t)), s = (0, r[y])(d ? d < 4 ? p ? a : v[h] : d > 4 ? void 0 : {\n\t\tget: v.get,\n\t\tset: v.set\n\t} : i, l), c._ = 1, d ^ 4 || s === void 0 ? yz(s) && (d > 4 ? g.unshift(s) : d ? p ? a = s : v[h] = s : i = s) : typeof s != \"object\" || !s ? dz(\"Object expected\") : (yz(o = s.get) && (v.get = o), yz(o = s.set) && (v.set = o), yz(o = s.init) && g.unshift(o));\n\treturn d || xz(e, i), v && rz(i, n, v), p ? d ^ 4 ? a : v : i;\n}, wz = (e, t, n) => t.has(e) || dz(\"Cannot \" + n), Tz = (e, t) => Object(t) === t ? e.has(t) : dz(\"Cannot use the \\\"in\\\" operator on this value\"), Ez = (e, t, n) => (wz(e, t, \"read from private field\"), n ? n.call(e) : t.get(e)), Dz = (e, t, n) => t.has(e) ? dz(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, n), Oz = (e, t, n, r) => (wz(e, t, \"write to private field\"), r ? r.call(e, n) : t.set(e, n), n), kz = (e, t, n) => (wz(e, t, \"access private method\"), n), Az = {\n\trole: \"button\",\n\troleDescription: \"draggable\"\n}, jz = \"dnd-kit-description\", Mz = \"dnd-kit-announcement\", Nz = { draggable: \"To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item in a given direction. Press space again to drop the item in its new position, or press escape to cancel.\" }, Pz = {\n\tdragstart({ operation: { source: e } }) {\n\t\tif (e) return `Picked up draggable item ${e.id}.`;\n\t},\n\tdragover({ operation: { source: e, target: t } }) {\n\t\tif (!(!e || e.id === t?.id)) return t ? `Draggable item ${e.id} was moved over droppable target ${t.id}.` : `Draggable item ${e.id} is no longer over a droppable target.`;\n\t},\n\tdragend({ operation: { source: e, target: t }, canceled: n }) {\n\t\tif (e) return n ? `Dragging was cancelled. Draggable item ${e.id} was dropped.` : t ? `Draggable item ${e.id} was dropped over droppable target ${t.id}` : `Draggable item ${e.id} was dropped.`;\n\t}\n};\nfunction Fz(e) {\n\tlet t = e.tagName.toLowerCase();\n\treturn [\n\t\t\"input\",\n\t\t\"select\",\n\t\t\"textarea\",\n\t\t\"a\",\n\t\t\"button\"\n\t].includes(t);\n}\nfunction Iz(e, t) {\n\tlet n = document.createElement(\"div\");\n\treturn n.id = e, n.style.setProperty(\"display\", \"none\"), n.textContent = t, n;\n}\nfunction Lz(e) {\n\tlet t = document.createElement(\"div\");\n\treturn t.id = e, t.setAttribute(\"role\", \"status\"), t.setAttribute(\"aria-live\", \"polite\"), t.setAttribute(\"aria-atomic\", \"true\"), t.style.setProperty(\"position\", \"fixed\"), t.style.setProperty(\"width\", \"1px\"), t.style.setProperty(\"height\", \"1px\"), t.style.setProperty(\"margin\", \"-1px\"), t.style.setProperty(\"border\", \"0\"), t.style.setProperty(\"padding\", \"0\"), t.style.setProperty(\"overflow\", \"hidden\"), t.style.setProperty(\"clip\", \"rect(0 0 0 0)\"), t.style.setProperty(\"clip-path\", \"inset(100%)\"), t.style.setProperty(\"white-space\", \"nowrap\"), t;\n}\nvar Rz = [\"dragover\", \"dragmove\"], zz = class extends aF {\n\tconstructor(e, t) {\n\t\tsuper(e);\n\t\tlet { id: n, idPrefix: { description: r = jz, announcement: i = Mz } = {}, announcements: a = Pz, screenReaderInstructions: o = Nz, debounce: s = 500 } = t ?? {}, c = n ? `${r}-${n}` : QR(r), l = n ? `${i}-${n}` : QR(i), u, d, f, p, m = (e = p) => {\n\t\t\t!f || !e || f?.nodeValue !== e && (f.nodeValue = e);\n\t\t}, h = () => dR.schedule(m), g = Bz(h, s), _ = Object.entries(a).map(([e, t]) => this.manager.monitor.addEventListener(e, (n, r) => {\n\t\t\tlet i = f;\n\t\t\tif (!i) return;\n\t\t\tlet a = t?.(n, r);\n\t\t\ta && i.nodeValue !== a && (p = a, Rz.includes(e) ? g() : (h(), g.cancel()));\n\t\t})), v = () => {\n\t\t\tlet e = [];\n\t\t\tu?.isConnected || (u = Iz(c, o.draggable), e.push(u)), d?.isConnected || (d = Lz(l), f = document.createTextNode(\"\"), d.appendChild(f), e.push(d)), e.length > 0 && document.body.append(...e);\n\t\t}, y = /* @__PURE__ */ new Set();\n\t\tfunction b() {\n\t\t\tfor (let e of y) e();\n\t\t}\n\t\tthis.registerEffect(() => {\n\t\t\ty.clear();\n\t\t\tfor (let e of this.manager.registry.draggables.value) {\n\t\t\t\tlet t = e.handle ?? e.element;\n\t\t\t\tif (t) {\n\t\t\t\t\t(!u || !d) && y.add(v), (!Fz(t) || pL()) && !t.hasAttribute(\"tabindex\") && y.add(() => t.setAttribute(\"tabindex\", \"0\")), !t.hasAttribute(\"role\") && t.tagName.toLowerCase() !== \"button\" && y.add(() => t.setAttribute(\"role\", Az.role)), t.hasAttribute(\"aria-roledescription\") || y.add(() => t.setAttribute(\"aria-roledescription\", Az.roleDescription)), t.hasAttribute(\"aria-describedby\") || y.add(() => t.setAttribute(\"aria-describedby\", c));\n\t\t\t\t\tfor (let n of [\"aria-pressed\", \"aria-grabbed\"]) {\n\t\t\t\t\t\tlet r = String(e.isDragging);\n\t\t\t\t\t\tt.getAttribute(n) !== r && y.add(() => t.setAttribute(n, r));\n\t\t\t\t\t}\n\t\t\t\t\tlet n = String(e.disabled);\n\t\t\t\t\tt.getAttribute(\"aria-disabled\") !== n && y.add(() => t.setAttribute(\"aria-disabled\", n));\n\t\t\t\t}\n\t\t\t}\n\t\t\ty.size > 0 && dR.schedule(b);\n\t\t}), this.destroy = () => {\n\t\t\tsuper.destroy(), u?.remove(), d?.remove(), _.forEach((e) => e());\n\t\t};\n\t}\n};\nfunction Bz(e, t) {\n\tlet n, r = () => {\n\t\tclearTimeout(n), n = setTimeout(e, t);\n\t};\n\treturn r.cancel = () => clearTimeout(n), r;\n}\nvar Vz = /* @__PURE__ */ new Map(), Hz, Uz, Wz, Gz, Kz, qz, Jz, Yz, Xz, Zz, Qz, $z, eB, tB = class extends (Kz = oF, Gz = [Y], Wz = [yN], Uz = [yN], Hz = [yN], Kz) {\n\tconstructor(e, t) {\n\t\tsuper(e, t), Sz(Jz, 5, this), Dz(this, Xz), Dz(this, qz, /* @__PURE__ */ new Set()), Dz(this, Yz, Sz(Jz, 8, this, /* @__PURE__ */ new Set())), Sz(Jz, 11, this), this.registerEffect(kz(this, Xz, Zz));\n\t}\n\tregister(e) {\n\t\treturn Ez(this, qz).add(e), () => {\n\t\t\tEz(this, qz).delete(e);\n\t\t};\n\t}\n\taddRoot(e) {\n\t\treturn J(() => {\n\t\t\tlet t = new Set(this.additionalRoots);\n\t\t\tt.add(e), this.additionalRoots = t;\n\t\t}), () => {\n\t\t\tJ(() => {\n\t\t\t\tlet t = new Set(this.additionalRoots);\n\t\t\t\tt.delete(e), this.additionalRoots = t;\n\t\t\t});\n\t\t};\n\t}\n\tget sourceRoot() {\n\t\tlet { source: e } = this.manager.dragOperation;\n\t\treturn gL(e?.element ?? null);\n\t}\n\tget targetRoot() {\n\t\tlet { target: e } = this.manager.dragOperation;\n\t\treturn gL(e?.element ?? null);\n\t}\n\tget roots() {\n\t\tlet { status: e } = this.manager.dragOperation;\n\t\tif (e.initializing || e.initialized) {\n\t\t\tlet e = [this.sourceRoot, this.targetRoot].filter((e) => e != null);\n\t\t\treturn /* @__PURE__ */ new Set([...e, ...this.additionalRoots]);\n\t\t}\n\t\treturn /* @__PURE__ */ new Set();\n\t}\n};\nJz = _z(Kz), qz = /* @__PURE__ */ new WeakMap(), Yz = /* @__PURE__ */ new WeakMap(), Xz = /* @__PURE__ */ new WeakSet(), Zz = function() {\n\tlet { roots: e } = this, t = [];\n\tfor (let n of e) for (let e of Ez(this, qz)) t.push(kz(this, Xz, Qz).call(this, n, e));\n\treturn () => {\n\t\tfor (let e of t) e();\n\t};\n}, Qz = function(e, t) {\n\tlet n = Vz.get(e);\n\tn || (n = /* @__PURE__ */ new Map(), Vz.set(e, n));\n\tlet r = n.get(t);\n\tif (!r) {\n\t\tlet i = nL(e) ? kz(this, Xz, $z).call(this, e, n, t) : kz(this, Xz, eB).call(this, e, n, t);\n\t\tif (!i) return () => {};\n\t\tr = i, n.set(t, r);\n\t}\n\tr.refCount++;\n\tlet i = !1;\n\treturn () => {\n\t\ti || (i = !0, r.refCount--, r.refCount === 0 && r.cleanup());\n\t};\n}, $z = function(e, t, n) {\n\tlet r = e.createElement(\"style\"), { nonce: i } = this.options ?? {};\n\ti && r.setAttribute(\"nonce\", i), r.textContent = n, e.head.prepend(r);\n\tlet a = new MutationObserver((t) => {\n\t\tfor (let n of t) for (let t of Array.from(n.removedNodes)) if (t === r) {\n\t\t\te.head.prepend(r);\n\t\t\treturn;\n\t\t}\n\t});\n\treturn a.observe(e.head, { childList: !0 }), {\n\t\trefCount: 0,\n\t\tcleanup: () => {\n\t\t\ta.disconnect(), r.remove(), t.delete(n), t.size === 0 && Vz.delete(e);\n\t\t}\n\t};\n}, eB = function(e, t, n) {\n\t!(\"adoptedStyleSheets\" in e && Array.isArray(e.adoptedStyleSheets)) && process.env.NODE_ENV !== \"production\" && console.error(\"Cannot inject styles: This browser doesn't support adoptedStyleSheets\");\n\tlet { CSSStyleSheet: r } = e.ownerDocument.defaultView ?? {};\n\tif (!r) return process.env.NODE_ENV !== \"production\" && console.error(\"Cannot inject styles: CSSStyleSheet constructor not available\"), null;\n\tlet i = new r();\n\treturn i.replaceSync(n), e.adoptedStyleSheets.push(i), {\n\t\trefCount: 0,\n\t\tcleanup: () => {\n\t\t\tif (hL(e) && e.host?.isConnected) {\n\t\t\t\tlet t = e.adoptedStyleSheets.indexOf(i);\n\t\t\t\tt !== -1 && e.adoptedStyleSheets.splice(t, 1);\n\t\t\t}\n\t\t\tt.delete(n), t.size === 0 && Vz.delete(e);\n\t\t}\n\t};\n}, Cz(Jz, 4, \"additionalRoots\", Gz, tB, Yz), Cz(Jz, 2, \"sourceRoot\", Wz, tB), Cz(Jz, 2, \"targetRoot\", Uz, tB), Cz(Jz, 2, \"roots\", Hz, tB), xz(Jz, tB), tB.configure = $P(tB);\nvar nB = tB, rB = class extends aF {\n\tconstructor(e, t) {\n\t\tsuper(e, t), this.manager = e;\n\t\tlet { cursor: n = \"grabbing\" } = t ?? {}, r = e.registry.plugins.get(nB)?.register(`* { cursor: ${n} !important; }`);\n\t\tif (r) {\n\t\t\tlet e = this.destroy.bind(this);\n\t\t\tthis.destroy = () => {\n\t\t\t\tr(), e();\n\t\t\t};\n\t\t}\n\t}\n}, iB = \"data-dnd-\", aB = `${iB}dropping`, oB = \"--dnd-\", sB = `${iB}dragging`, cB = `${iB}placeholder`, lB = [\n\tsB,\n\tcB,\n\t\"popover\",\n\t\"aria-pressed\",\n\t\"aria-grabbing\"\n], uB = [\"view-transition-name\"], dB = `\n  :is(:root,:host) [${sB}] {\n    position: fixed !important;\n    pointer-events: none !important;\n    touch-action: none;\n    z-index: calc(infinity);\n    will-change: translate;\n    top: var(${oB}top, 0px) !important;\n    left: var(${oB}left, 0px) !important;\n    right: unset !important;\n    bottom: unset !important;\n    width: var(${oB}width, auto);\n    max-width: var(${oB}width, auto);\n    height: var(${oB}height, auto);\n    max-height: var(${oB}height, auto);\n    transform: var(${oB}transform, none) !important;\n    transition: var(${oB}transition) !important;\n  }\n\n  :is(:root,:host) [${cB}] {\n    transition: none;\n  }\n\n  :is(:root,:host) [${cB}='hidden'] {\n    visibility: hidden;\n  }\n\n  [${sB}] * {\n    pointer-events: none !important;\n  }\n\n  [${sB}]:not([${aB}]) {\n    translate: var(${oB}translate) !important;\n  }\n\n  [${sB}][style*='${oB}scale'] {\n    scale: var(${oB}scale) !important;\n    transform-origin: var(${oB}transform-origin) !important;\n  }\n\n  @layer dnd-kit {\n    :where([${sB}][popover]) {\n      overflow: visible;\n      background: unset;\n      border: unset;\n      margin: unset;\n      padding: unset;\n      color: inherit;\n\n      &:is(input, button) {\n        border: revert;\n        background: revert;\n      }\n    }\n  }\n  [${sB}]::backdrop, [${iB}overlay]:not([${sB}]) {\n    display: none;\n    visibility: hidden;\n  }\n`.replace(/\\n+/g, \" \").replace(/\\s+/g, \" \").trim();\nfunction fB(e, t = \"hidden\") {\n\treturn J(() => {\n\t\tlet { element: n, manager: r } = e;\n\t\tif (!n || !r) return;\n\t\tlet i = pB(n, r.registry.droppables), a = [], o = vL(n), { remove: s } = o;\n\t\treturn mB(i, o, a), hB(o, t), o.remove = () => {\n\t\t\ta.forEach((e) => e()), s.call(o);\n\t\t}, o;\n\t});\n}\nfunction pB(e, t) {\n\tlet n = /* @__PURE__ */ new Map();\n\tfor (let r of t) if (r.element && (e === r.element || e.contains(r.element))) {\n\t\tlet e = `${iB}${QR(\"dom-id\")}`;\n\t\tr.element.setAttribute(e, \"\"), n.set(r, e);\n\t}\n\treturn n;\n}\nfunction mB(e, t, n) {\n\tfor (let [r, i] of e) {\n\t\tif (!r.element) continue;\n\t\tlet e = `[${i}]`, a = t.matches(e) ? t : t.querySelector(e);\n\t\tif (r.element.removeAttribute(i), !a) continue;\n\t\tlet o = r.element;\n\t\tr.proxy = a, a.removeAttribute(i), CL.set(o, a), n.push(() => {\n\t\t\tCL.delete(o), r.proxy = void 0;\n\t\t});\n\t}\n}\nfunction hB(e, t = \"hidden\") {\n\te.setAttribute(\"inert\", \"true\"), e.setAttribute(\"tab-index\", \"-1\"), e.setAttribute(\"aria-hidden\", \"true\"), e.setAttribute(cB, t);\n}\nfunction gB(e, t) {\n\treturn e === t ? !0 : EL(e) === EL(t);\n}\nfunction _B(e) {\n\tlet { target: t } = e;\n\t\"newState\" in e && e.newState === \"closed\" && KR(t) && t.hasAttribute(\"popover\") && requestAnimationFrame(() => oR(t));\n}\nfunction vB(e) {\n\treturn e.tagName === \"TR\";\n}\nfunction yB(e, t, n) {\n\tlet r = new MutationObserver((r) => {\n\t\tlet i = !1;\n\t\tfor (let n of r) {\n\t\t\tif (n.target !== e) {\n\t\t\t\ti = !0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (n.type !== \"attributes\") continue;\n\t\t\tlet r = n.attributeName;\n\t\t\tif (r.startsWith(\"aria-\") || lB.includes(r)) continue;\n\t\t\tlet a = e.getAttribute(r);\n\t\t\tif (r === \"style\") {\n\t\t\t\tif (WR(e) && WR(t)) {\n\t\t\t\t\tlet n = e.style;\n\t\t\t\t\tfor (let e of Array.from(t.style)) n.getPropertyValue(e) === \"\" && t.style.removeProperty(e);\n\t\t\t\t\tfor (let e of Array.from(n)) {\n\t\t\t\t\t\tif (uB.includes(e) || e.startsWith(oB)) continue;\n\t\t\t\t\t\tlet r = n.getPropertyValue(e);\n\t\t\t\t\t\tt.style.setProperty(e, r);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else a === null ? t.removeAttribute(r) : t.setAttribute(r, a);\n\t\t}\n\t\ti && n && t.replaceChildren(...e.cloneNode(!0).childNodes);\n\t});\n\treturn r.observe(e, {\n\t\tattributes: !0,\n\t\tsubtree: !0,\n\t\tchildList: !0\n\t}), r;\n}\nfunction bB(e, t, n) {\n\tlet r = new MutationObserver((r) => {\n\t\tfor (let i of r) if (i.addedNodes.length !== 0) for (let r of Array.from(i.addedNodes)) {\n\t\t\tif (r.contains(e) && e.nextElementSibling !== t) {\n\t\t\t\te.insertAdjacentElement(\"afterend\", t), oR(n);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (r.contains(t) && t.previousElementSibling !== e) {\n\t\t\t\tt.insertAdjacentElement(\"beforebegin\", e), oR(n);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\te.isConnected && t.isConnected && e.nextElementSibling !== t && (e.insertAdjacentElement(\"afterend\", t), oR(n));\n\t});\n\treturn r.observe(e.ownerDocument.body, {\n\t\tchildList: !0,\n\t\tsubtree: !0\n\t}), r;\n}\nfunction xB(e) {\n\treturn new ResizeObserver(() => {\n\t\tvar t;\n\t\tlet n = new HR(e.placeholder, {\n\t\t\tframeTransform: e.frameTransform,\n\t\t\tignoreTransforms: !0\n\t\t}), r = e.transformOrigin ?? {\n\t\t\tx: 1,\n\t\t\ty: 1\n\t\t}, i = (e.width - n.width) * r.x + e.delta.x, a = (e.height - n.height) * r.y + e.delta.y, o = mL();\n\t\tif (e.styles.set({\n\t\t\twidth: n.width - e.widthOffset,\n\t\t\theight: n.height - e.heightOffset,\n\t\t\ttop: e.top + a + o.y,\n\t\t\tleft: e.left + i + o.x\n\t\t}, oB), (t = e.getElementMutationObserver()) == null || t.takeRecords(), vB(e.element) && vB(e.placeholder)) {\n\t\t\tlet t = Array.from(e.element.cells), n = Array.from(e.placeholder.cells);\n\t\t\te.getSavedCellWidths() || e.setSavedCellWidths(t.map((e) => e.style.width));\n\t\t\tfor (let [e, r] of t.entries()) {\n\t\t\t\tlet t = n[e];\n\t\t\t\tr.style.width = `${t.getBoundingClientRect().width}px`;\n\t\t\t}\n\t\t}\n\t\tlet s = e.getTranslate() ?? {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t}, c = e.left + i + o.x + s.x, l = e.top + a + o.y + s.y, u = n.width - e.widthOffset, d = n.height - e.heightOffset, f = e.frameTransform;\n\t\te.dragOperation.shape = new gP(c * f.scaleX + f.x, l * f.scaleY + f.y, u * f.scaleX, d * f.scaleY);\n\t});\n}\nvar SB = 250, CB = \"ease\";\nfunction wB(e) {\n\tvar t;\n\tlet { animation: n } = e;\n\tif (typeof n == \"function\") {\n\t\tlet t = n({\n\t\t\tsource: e.source,\n\t\t\telement: e.element,\n\t\t\tfeedbackElement: e.feedbackElement,\n\t\t\tplaceholder: e.placeholder,\n\t\t\ttranslate: e.translate,\n\t\t\tmoved: e.moved\n\t\t});\n\t\tPromise.resolve(t).then(() => {\n\t\t\te.cleanup(), requestAnimationFrame(e.restoreFocus);\n\t\t});\n\t\treturn;\n\t}\n\tlet { duration: r = SB, easing: i = CB } = n ?? {};\n\toR(e.feedbackElement);\n\tlet [, a] = ZI(e.feedbackElement, (e) => \"translate\" in e) ?? [];\n\ta?.pause();\n\tlet o = e.placeholder ?? e.element, s = { frameTransform: gB(e.feedbackElement, o) ? null : void 0 }, c = new HR(e.feedbackElement, s), l = wR(hR(e.feedbackElement).translate) ?? e.translate, u = new HR(o, s), d = gP.delta(c, u, e.alignment), f = {\n\t\tx: l.x - d.x,\n\t\ty: l.y - d.y\n\t}, p = Math.round(c.intrinsicHeight) === Math.round(u.intrinsicHeight) ? {} : {\n\t\tminHeight: [`${c.intrinsicHeight}px`, `${u.intrinsicHeight}px`],\n\t\tmaxHeight: [`${c.intrinsicHeight}px`, `${u.intrinsicHeight}px`]\n\t}, m = Math.round(c.intrinsicWidth) === Math.round(u.intrinsicWidth) ? {} : {\n\t\tminWidth: [`${c.intrinsicWidth}px`, `${u.intrinsicWidth}px`],\n\t\tmaxWidth: [`${c.intrinsicWidth}px`, `${u.intrinsicWidth}px`]\n\t};\n\te.styles.set({ transition: e.transition }, oB), e.feedbackElement.setAttribute(aB, \"\"), (t = e.getElementMutationObserver()) == null || t.takeRecords(), IR({\n\t\telement: e.feedbackElement,\n\t\tkeyframes: mz(pz(pz({}, p), m), { translate: [`${l.x}px ${l.y}px 0`, `${f.x}px ${f.y}px 0`] }),\n\t\toptions: {\n\t\t\tduration: _L(tL(e.feedbackElement)) ? 0 : e.moved || e.feedbackElement !== e.element ? r : 0,\n\t\t\teasing: i\n\t\t}\n\t}).then(() => {\n\t\te.feedbackElement.removeAttribute(aB), a?.finish(), e.cleanup(), requestAnimationFrame(e.restoreFocus);\n\t});\n}\nvar TB, EB, DB, OB, kB, AB, jB, MB = class extends (EB = aF, TB = [Y], EB) {\n\tconstructor(e, t) {\n\t\tsuper(e, t), Dz(this, kB), Dz(this, OB, Sz(DB, 8, this)), Sz(DB, 11, this), this.state = {\n\t\t\tinitial: {},\n\t\t\tcurrent: {}\n\t\t};\n\t\tlet n = e.registry.plugins.get(nB), r = n?.register(dB);\n\t\tif (r) {\n\t\t\tlet e = this.destroy.bind(this);\n\t\t\tthis.destroy = () => {\n\t\t\t\tr(), e();\n\t\t\t};\n\t\t}\n\t\tthis.registerEffect(kz(this, kB, AB).bind(this, n)), this.registerEffect(kz(this, kB, jB));\n\t}\n};\nDB = _z(EB), OB = /* @__PURE__ */ new WeakMap(), kB = /* @__PURE__ */ new WeakSet(), AB = function(e) {\n\tlet { overlay: t } = this;\n\tif (!t || !e) return;\n\tlet n = gL(t);\n\tif (n) return e.addRoot(n);\n}, jB = function() {\n\tlet { state: e, manager: t, options: n } = this, { dragOperation: r } = t, { position: i, source: a, status: o } = r;\n\tif (o.idle) {\n\t\te.current = {}, e.initial = {};\n\t\treturn;\n\t}\n\tif (!a) return;\n\tlet { element: s } = a, c = a.pluginConfig(MB), l = c?.feedback ?? n?.feedback ?? \"default\", u = typeof l == \"function\" ? l(a, t) : l;\n\tif (!s || u === \"none\" || !o.initialized || o.initializing) return;\n\tlet { initial: d } = e, f = this.overlay ?? s, p = xR(f), m = xR(s), h = !gB(s, f), g = new HR(s, {\n\t\tframeTransform: h ? m : null,\n\t\tignoreTransforms: !h\n\t}), _ = {\n\t\tx: m.scaleX / p.scaleX,\n\t\ty: m.scaleY / p.scaleY\n\t}, { width: v, height: y, top: b, left: x } = g;\n\th && (v /= _.x, y /= _.y);\n\tlet S = new GR(f), C = hR(s), { transition: w, translate: T, boxSizing: ee, paddingBlockStart: te, paddingBlockEnd: E, paddingInlineStart: ne, paddingInlineEnd: D, borderInlineStartWidth: O, borderInlineEndWidth: k, borderBlockStartWidth: re, borderBlockEndWidth: ie } = C, A = w.split(\",\").filter((e) => !/^\\s*(transform|translate|scale)\\b/.test(e)).join(\",\"), j = TR(C), ae = C.transform, oe = u === \"clone\", M = ee === \"content-box\", se = M ? parseInt(ne) + parseInt(D) + parseInt(O) + parseInt(k) : 0, ce = M ? parseInt(te) + parseInt(E) + parseInt(re) + parseInt(ie) : 0, le = u !== \"move\" && !this.overlay ? fB(a, oe ? \"clone\" : \"hidden\") : null, ue = J(() => qR(t.dragOperation.activatorEvent));\n\tif (!d.translate) {\n\t\tif (this.overlay && j) d.translate = {\n\t\t\tx: j.x,\n\t\t\ty: j.y\n\t\t};\n\t\telse if (T !== \"none\") {\n\t\t\tlet e = wR(T);\n\t\t\te && (d.translate = e);\n\t\t}\n\t}\n\tif (!d.transformOrigin) {\n\t\tlet e = J(() => i.current), t = x + (j?.x ?? 0), n = b + (j?.y ?? 0);\n\t\td.transformOrigin = {\n\t\t\tx: (e.x - t * p.scaleX - p.x) / (v * p.scaleX),\n\t\t\ty: (e.y - n * p.scaleY - p.y) / (y * p.scaleY)\n\t\t};\n\t}\n\tlet { transformOrigin: N } = d, de = b * p.scaleY + p.y, fe = x * p.scaleX + p.x;\n\tif (!d.coordinates && (d.coordinates = {\n\t\tx: fe,\n\t\ty: de\n\t}, _.x !== 1 || _.y !== 1)) {\n\t\tlet { scaleX: e, scaleY: t } = m, { x: n, y: r } = N;\n\t\td.coordinates.x += (v * e - v) * n, d.coordinates.y += (y * t - y) * r;\n\t}\n\td.dimensions ||= {\n\t\twidth: v,\n\t\theight: y\n\t}, d.frameTransform ||= p;\n\tlet pe = {\n\t\tx: d.coordinates.x - fe,\n\t\ty: d.coordinates.y - de\n\t}, me = {\n\t\twidth: (d.dimensions.width * d.frameTransform.scaleX - v * p.scaleX) * N.x,\n\t\theight: (d.dimensions.height * d.frameTransform.scaleY - y * p.scaleY) * N.y\n\t}, he = {\n\t\tx: pe.x / p.scaleX + me.width,\n\t\ty: pe.y / p.scaleY + me.height\n\t}, ge = {\n\t\tleft: x + he.x,\n\t\ttop: b + he.y\n\t};\n\tf.setAttribute(sB, \"true\");\n\tlet _e = J(() => r.transform), P = d.translate ?? {\n\t\tx: 0,\n\t\ty: 0\n\t}, ve = _e.x * p.scaleX + P.x, ye = _e.y * p.scaleY + P.y, be = mL();\n\tS.set({\n\t\twidth: v - se,\n\t\theight: y - ce,\n\t\ttop: ge.top + be.y,\n\t\tleft: ge.left + be.x,\n\t\ttranslate: `${ve}px ${ye}px 0`,\n\t\ttransform: this.overlay ? \"none\" : ae,\n\t\ttransition: A ? `${A}, translate 0ms linear` : \"translate 0ms linear\",\n\t\tscale: h ? `${_.x} ${_.y}` : \"\",\n\t\t\"transform-origin\": `${N.x * 100}% ${N.y * 100}%`\n\t}, oB), le && (s.insertAdjacentElement(\"afterend\", le), n?.rootElement && (typeof n.rootElement == \"function\" ? n.rootElement(a) : n.rootElement).appendChild(s)), aR(f) && (f.hasAttribute(\"popover\") || f.setAttribute(\"popover\", \"manual\"), oR(f), f.addEventListener(\"beforetoggle\", _B));\n\tlet xe, Se, Ce, we = xB({\n\t\tplaceholder: le,\n\t\telement: s,\n\t\tfeedbackElement: f,\n\t\tframeTransform: p,\n\t\ttransformOrigin: N,\n\t\twidth: v,\n\t\theight: y,\n\t\ttop: b,\n\t\tleft: x,\n\t\twidthOffset: se,\n\t\theightOffset: ce,\n\t\tdelta: he,\n\t\tstyles: S,\n\t\tdragOperation: r,\n\t\tgetTranslate: () => e.current.translate,\n\t\tgetElementMutationObserver: () => xe,\n\t\tgetSavedCellWidths: () => Ce,\n\t\tsetSavedCellWidths: (e) => {\n\t\t\tCe = e;\n\t\t}\n\t}), Te = new HR(f);\n\tJ(() => r.shape = Te);\n\tlet Ee = tL(f), De = (e) => {\n\t\tthis.manager.actions.stop({ event: e });\n\t}, Oe = _L(Ee);\n\tue && Ee.addEventListener(\"resize\", De), J(() => a.status) === \"idle\" && requestAnimationFrame(() => a.status = \"dragging\"), le && (we.observe(le), xe = yB(s, le, oe), Se = bB(s, le, f));\n\tlet ke = t.dragOperation.source?.id, Ae = () => {\n\t\tif (!ue || ke == null) return;\n\t\tlet e = t.registry.draggables.get(ke), n = e?.handle ?? e?.element;\n\t\trL(n) && n.focus();\n\t}, je = () => {\n\t\txe?.disconnect(), Se?.disconnect(), we.disconnect(), Ee.removeEventListener(\"resize\", De), aR(f) && (f.removeEventListener(\"beforetoggle\", _B), f.removeAttribute(\"popover\")), f.removeAttribute(sB), S.reset();\n\t\tlet t = () => {\n\t\t\tif (Ce && vB(s)) {\n\t\t\t\tlet e = Array.from(s.cells);\n\t\t\t\tfor (let [t, n] of e.entries()) n.style.width = Ce[t] ?? \"\";\n\t\t\t}\n\t\t\ta.status = \"idle\";\n\t\t\tlet t = e.current.translate != null, n = r.status.dragging;\n\t\t\tle && (!n && t || le.parentElement !== f.parentElement) && f.isConnected && le.replaceWith(f), le?.remove();\n\t\t};\n\t\tf === this.overlay ? setTimeout(t, 0) : t();\n\t}, Me = n?.dropAnimation, Ne = this, Pe = xN(() => {\n\t\tlet { transform: t, status: i } = r;\n\t\tif (!(!t.x && !t.y && !e.current.translate) && i.dragging) {\n\t\t\tlet i = d.translate ?? {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t}, a = {\n\t\t\t\tx: t.x / p.scaleX + i.x,\n\t\t\t\ty: t.y / p.scaleY + i.y\n\t\t\t}, o = e.current.translate, s = J(() => r.modifiers), c = J(() => r.shape?.current), l = n?.keyboardTransition, u = ue && !Oe && l !== null ? `${l?.duration ?? 250}ms ${l?.easing ?? \"cubic-bezier(0.25, 1, 0.5, 1)\"}` : \"0ms linear\";\n\t\t\tif (S.set({\n\t\t\t\ttransition: A ? `${A}, translate ${u}` : `translate ${u}`,\n\t\t\t\ttranslate: `${a.x}px ${a.y}px 0`\n\t\t\t}, oB), xe?.takeRecords(), c && c !== Te && o && !s.length) {\n\t\t\t\tlet e = hP.delta(a, o);\n\t\t\t\tr.shape = gP.from(c.boundingRectangle).translate(e.x * p.scaleX, e.y * p.scaleY);\n\t\t\t} else r.shape = new HR(f);\n\t\t\te.current.translate = a;\n\t\t}\n\t}, function() {\n\t\tif (r.status.dropped) {\n\t\t\tthis.dispose(), a.status = \"dropping\";\n\t\t\tlet n = c?.dropAnimation === void 0 ? Ne.dropAnimation === void 0 ? Me : Ne.dropAnimation : c.dropAnimation, r = e.current.translate, i = r != null;\n\t\t\tif (!r && s !== f && (r = {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t}), !r || n === null) {\n\t\t\t\tje();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tt.renderer.rendering.then(() => {\n\t\t\t\twB({\n\t\t\t\t\tsource: a,\n\t\t\t\t\telement: s,\n\t\t\t\t\tfeedbackElement: f,\n\t\t\t\t\tplaceholder: le,\n\t\t\t\t\ttranslate: r,\n\t\t\t\t\tmoved: i,\n\t\t\t\t\ttransition: w,\n\t\t\t\t\talignment: a.alignment,\n\t\t\t\t\tstyles: S,\n\t\t\t\t\tanimation: n ?? void 0,\n\t\t\t\t\tgetElementMutationObserver: () => xe,\n\t\t\t\t\tcleanup: je,\n\t\t\t\t\trestoreFocus: Ae\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t});\n\treturn () => {\n\t\tje(), Pe();\n\t};\n}, Cz(DB, 4, \"overlay\", TB, MB, OB), xz(DB, MB), MB.configure = $P(MB);\nvar NB = MB, PB = !0, FB = !1, IB, LB, RB, zB = (RB = [Y], DR.Forward), BB, VB, HB;\nLB = (IB = [Y], DR.Reverse);\nvar UB = class {\n\tconstructor() {\n\t\tDz(this, VB, Sz(BB, 8, this, PB)), Sz(BB, 11, this), Dz(this, HB, Sz(BB, 12, this, PB)), Sz(BB, 15, this);\n\t}\n\tisLocked(e) {\n\t\treturn e === DR.Idle ? !1 : e == null ? this[DR.Forward] === PB && this[DR.Reverse] === PB : this[e] === PB;\n\t}\n\tunlock(e) {\n\t\te !== DR.Idle && (this[e] = FB);\n\t}\n};\nBB = _z(null), VB = /* @__PURE__ */ new WeakMap(), HB = /* @__PURE__ */ new WeakMap(), Cz(BB, 4, zB, RB, UB, VB), Cz(BB, 4, LB, IB, UB, HB), xz(BB, UB);\nvar WB = [DR.Forward, DR.Reverse], GB = class {\n\tconstructor() {\n\t\tthis.x = new UB(), this.y = new UB();\n\t}\n\tisLocked() {\n\t\treturn this.x.isLocked() && this.y.isLocked();\n\t}\n}, KB = class extends aF {\n\tconstructor(e) {\n\t\tsuper(e);\n\t\tlet t = NM(new GB()), n = null;\n\t\tthis.signal = t, UM(() => {\n\t\t\tlet { status: r } = e.dragOperation;\n\t\t\tif (!r.initialized) {\n\t\t\t\tn = null, t.value = new GB();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet { delta: i } = e.dragOperation.position;\n\t\t\tif (n) {\n\t\t\t\tlet e = {\n\t\t\t\t\tx: qB(i.x, n.x),\n\t\t\t\t\ty: qB(i.y, n.y)\n\t\t\t\t}, r = t.peek();\n\t\t\t\txM(() => {\n\t\t\t\t\tfor (let t of EP) for (let n of WB) e[t] === n && r[t].unlock(n);\n\t\t\t\t\tt.value = r;\n\t\t\t\t});\n\t\t\t}\n\t\t\tn = i;\n\t\t});\n\t}\n\tget current() {\n\t\treturn this.signal.peek();\n\t}\n};\nfunction qB(e, t) {\n\treturn Math.sign(e - t);\n}\nvar JB, YB, XB, ZB, QB, $B, eV = class extends (YB = oF, JB = [Y], YB) {\n\tconstructor(e) {\n\t\tsuper(e), Dz(this, ZB, Sz(XB, 8, this, !1)), Sz(XB, 11, this), Dz(this, QB), Dz(this, $B, () => {\n\t\t\tif (!Ez(this, QB)) return;\n\t\t\tlet { element: e, by: t } = Ez(this, QB);\n\t\t\tt.y && (e.scrollTop += t.y), t.x && (e.scrollLeft += t.x);\n\t\t}), this.scroll = (e, t) => {\n\t\t\tif (this.disabled) return !1;\n\t\t\tlet n = this.getScrollableElements();\n\t\t\tif (!n) return Oz(this, QB, void 0), !1;\n\t\t\tlet { position: r } = this.manager.dragOperation, i = r?.current;\n\t\t\tif (i) {\n\t\t\t\tlet { by: r } = e ?? {}, a = r ? {\n\t\t\t\t\tx: tV(r.x),\n\t\t\t\t\ty: tV(r.y)\n\t\t\t\t} : void 0, o = a ? void 0 : this.scrollIntentTracker.current;\n\t\t\t\tif (o?.isLocked()) return !1;\n\t\t\t\tfor (let e of n) {\n\t\t\t\t\tlet n = lR(e, r);\n\t\t\t\t\tif (n.x || n.y) {\n\t\t\t\t\t\tlet { speed: n, direction: s } = AR(e, i, a, t?.acceleration, t?.threshold);\n\t\t\t\t\t\tif (o) for (let e of EP) o[e].isLocked(s[e]) && (n[e] = 0, s[e] = 0);\n\t\t\t\t\t\tif (s.x || s.y) {\n\t\t\t\t\t\t\tlet { x: t, y: i } = r ?? s, a = t * n.x, o = i * n.y;\n\t\t\t\t\t\t\tif (a || o) {\n\t\t\t\t\t\t\t\tlet t = Ez(this, QB)?.by;\n\t\t\t\t\t\t\t\tif (this.autoScrolling && t && (t.x && !a || t.y && !o)) continue;\n\t\t\t\t\t\t\t\treturn Oz(this, QB, {\n\t\t\t\t\t\t\t\t\telement: e,\n\t\t\t\t\t\t\t\t\tby: {\n\t\t\t\t\t\t\t\t\t\tx: a,\n\t\t\t\t\t\t\t\t\t\ty: o\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}), dR.schedule(Ez(this, $B)), !0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Oz(this, QB, void 0), !1;\n\t\t};\n\t\tlet t = null, n = null, r = _N(() => {\n\t\t\tlet { position: n, source: r } = e.dragOperation;\n\t\t\tif (!n) return null;\n\t\t\tlet i = xL(gL(r?.element), n.current);\n\t\t\treturn i && (t = i), i ?? t;\n\t\t}), i = _N(() => {\n\t\t\tlet t = r.value, { documentElement: i } = aL(t);\n\t\t\tif (!t || t === i) {\n\t\t\t\tlet { target: t } = e.dragOperation, r = t?.element;\n\t\t\t\tif (r) {\n\t\t\t\t\tlet e = bR(r, { excludeElement: !1 });\n\t\t\t\t\treturn n = e, e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (t) {\n\t\t\t\tlet e = bR(t, { excludeElement: !1 });\n\t\t\t\treturn this.autoScrolling && n && e.size < n?.size ? n : (n = e, e);\n\t\t\t}\n\t\t\treturn n = null, null;\n\t\t}, vN);\n\t\tthis.getScrollableElements = () => i.value, this.scrollIntentTracker = new KB(e), this.destroy = e.monitor.addEventListener(\"dragmove\", (t) => {\n\t\t\tthis.disabled || t.defaultPrevented || !qR(e.dragOperation.activatorEvent) || !t.by || this.scroll({ by: t.by }) && t.preventDefault();\n\t\t});\n\t}\n};\nXB = _z(YB), ZB = /* @__PURE__ */ new WeakMap(), QB = /* @__PURE__ */ new WeakMap(), $B = /* @__PURE__ */ new WeakMap(), Cz(XB, 4, \"autoScrolling\", JB, eV, ZB), xz(XB, eV);\nfunction tV(e) {\n\treturn e > 0 ? DR.Forward : e < 0 ? DR.Reverse : DR.Idle;\n}\nvar nV = new class {\n\tconstructor(e) {\n\t\tthis.scheduler = e, this.pending = !1, this.tasks = /* @__PURE__ */ new Set(), this.resolvers = /* @__PURE__ */ new Set(), this.flush = () => {\n\t\t\tlet { tasks: e, resolvers: t } = this;\n\t\t\tthis.pending = !1, this.tasks = /* @__PURE__ */ new Set(), this.resolvers = /* @__PURE__ */ new Set();\n\t\t\tfor (let t of e) t();\n\t\t\tfor (let e of t) e();\n\t\t};\n\t}\n\tschedule(e) {\n\t\treturn this.tasks.add(e), this.pending || (this.pending = !0, this.scheduler(this.flush)), new Promise((e) => this.resolvers.add(e));\n\t}\n}((e) => {\n\ttypeof requestAnimationFrame == \"function\" ? requestAnimationFrame(e) : e();\n}), rV = 10, iV = class extends aF {\n\tconstructor(e, t) {\n\t\tsuper(e, t);\n\t\tlet n = e.registry.plugins.get(eV);\n\t\tif (!n) throw Error(\"AutoScroller plugin depends on Scroller plugin\");\n\t\tthis.destroy = UM(() => {\n\t\t\tif (this.disabled) return;\n\t\t\tlet { position: t, status: r } = e.dragOperation;\n\t\t\tif (r.dragging) {\n\t\t\t\tlet e = {\n\t\t\t\t\tacceleration: this.options?.acceleration,\n\t\t\t\t\tthreshold: typeof this.options?.threshold == \"number\" ? {\n\t\t\t\t\t\tx: this.options.threshold,\n\t\t\t\t\t\ty: this.options.threshold\n\t\t\t\t\t} : this.options?.threshold\n\t\t\t\t};\n\t\t\t\tif (n.scroll(void 0, e)) {\n\t\t\t\t\tn.autoScrolling = !0;\n\t\t\t\t\tlet t = setInterval(() => nV.schedule(() => n.scroll(void 0, e)), rV);\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tclearInterval(t);\n\t\t\t\t\t};\n\t\t\t\t} else n.autoScrolling = !1;\n\t\t\t}\n\t\t});\n\t}\n};\niV.configure = $P(iV);\nvar aV = iV, oV = {\n\tcapture: !0,\n\tpassive: !0\n}, sV, cV = class extends oF {\n\tconstructor(e) {\n\t\tsuper(e), Dz(this, sV), this.handleScroll = () => {\n\t\t\tEz(this, sV) ?? Oz(this, sV, setTimeout(() => {\n\t\t\t\tthis.manager.collisionObserver.forceUpdate(!1), Oz(this, sV, void 0);\n\t\t\t}, 50));\n\t\t};\n\t\tlet { dragOperation: t } = this.manager;\n\t\tthis.destroy = UM(() => {\n\t\t\tif (t.status.dragging) {\n\t\t\t\tlet e = t.source?.element?.ownerDocument ?? document;\n\t\t\t\treturn e.addEventListener(\"scroll\", this.handleScroll, oV), () => {\n\t\t\t\t\te.removeEventListener(\"scroll\", this.handleScroll, oV);\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t}\n};\nsV = /* @__PURE__ */ new WeakMap();\nvar lV = \"* { user-select: none !important; -webkit-user-select: none !important; }\", uV = class extends aF {\n\tconstructor(e) {\n\t\tsuper(e), this.manager = e;\n\t\tlet t = e.registry.plugins.get(nB)?.register(lV);\n\t\tif (this.destroy = UM(() => {\n\t\t\tlet { dragOperation: e } = this.manager;\n\t\t\tif (e.status.initialized) return dV(), document.addEventListener(\"selectionchange\", dV, { capture: !0 }), () => {\n\t\t\t\tdocument.removeEventListener(\"selectionchange\", dV, { capture: !0 });\n\t\t\t};\n\t\t}), t) {\n\t\t\tlet e = this.destroy.bind(this);\n\t\t\tthis.destroy = () => {\n\t\t\t\tt(), e();\n\t\t\t};\n\t\t}\n\t}\n};\nfunction dV() {\n\tvar e;\n\t(e = document.getSelection()) == null || e.removeAllRanges();\n}\nvar fV = Object.freeze({\n\toffset: 10,\n\tkeyboardCodes: {\n\t\tstart: [\"Space\", \"Enter\"],\n\t\tcancel: [\"Escape\"],\n\t\tend: [\n\t\t\t\"Space\",\n\t\t\t\"Enter\",\n\t\t\t\"Tab\"\n\t\t],\n\t\tup: [\"ArrowUp\"],\n\t\tdown: [\"ArrowDown\"],\n\t\tleft: [\"ArrowLeft\"],\n\t\tright: [\"ArrowRight\"]\n\t},\n\tpreventActivation(e, t) {\n\t\tlet n = t.handle ?? t.element;\n\t\treturn e.target !== n;\n\t}\n}), pV, mV = class extends gI {\n\tconstructor(e, t) {\n\t\tsuper(e), this.manager = e, this.options = t, Dz(this, pV, []), this.listeners = new TL(), this.handleSourceKeyDown = (e, t, n) => {\n\t\t\tif (this.disabled || e.defaultPrevented || !KR(e.target) || t.disabled) return;\n\t\t\tlet { keyboardCodes: r = fV.keyboardCodes, preventActivation: i = fV.preventActivation } = n ?? {};\n\t\t\tr.start.includes(e.code) && this.manager.dragOperation.status.idle && (i?.(e, t) || this.handleStart(e, t, n));\n\t\t};\n\t}\n\tbind(e, t = this.options) {\n\t\treturn UM(() => {\n\t\t\tlet n = e.handle ?? e.element, r = (n) => {\n\t\t\t\tqR(n) && this.handleSourceKeyDown(n, e, t);\n\t\t\t};\n\t\t\tif (n) return n.addEventListener(\"keydown\", r), () => {\n\t\t\t\tn.removeEventListener(\"keydown\", r);\n\t\t\t};\n\t\t});\n\t}\n\thandleStart(e, t, n) {\n\t\tlet { element: r } = t;\n\t\tif (!r) throw Error(\"Source draggable does not have an associated element\");\n\t\te.preventDefault(), e.stopImmediatePropagation(), jR(r);\n\t\tlet { center: i } = new HR(r);\n\t\tif (this.manager.actions.start({\n\t\t\tevent: e,\n\t\t\tcoordinates: {\n\t\t\t\tx: i.x,\n\t\t\t\ty: i.y\n\t\t\t},\n\t\t\tsource: t\n\t\t}).signal.aborted) return this.cleanup();\n\t\tthis.sideEffects();\n\t\tlet a = aL(r), o = [this.listeners.bind(a, [{\n\t\t\ttype: \"keydown\",\n\t\t\tlistener: (e) => this.handleKeyDown(e, t, n),\n\t\t\toptions: { capture: !0 }\n\t\t}])];\n\t\tEz(this, pV).push(...o);\n\t}\n\thandleKeyDown(e, t, n) {\n\t\tlet { keyboardCodes: r = fV.keyboardCodes } = n ?? {};\n\t\tif (gV(e, [...r.end, ...r.cancel])) {\n\t\t\te.preventDefault();\n\t\t\tlet t = gV(e, r.cancel);\n\t\t\tthis.handleEnd(e, t);\n\t\t\treturn;\n\t\t}\n\t\tgV(e, r.up) ? this.handleMove(\"up\", e) : gV(e, r.down) && this.handleMove(\"down\", e), gV(e, r.left) ? this.handleMove(\"left\", e) : gV(e, r.right) && this.handleMove(\"right\", e);\n\t}\n\thandleEnd(e, t) {\n\t\tthis.manager.actions.stop({\n\t\t\tevent: e,\n\t\t\tcanceled: t\n\t\t}), this.cleanup();\n\t}\n\thandleMove(e, t) {\n\t\tlet { shape: n } = this.manager.dragOperation, r = t.shiftKey ? 5 : 1, i = {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t}, a = this.options?.offset ?? fV.offset;\n\t\tif (typeof a == \"number\" && (a = {\n\t\t\tx: a,\n\t\t\ty: a\n\t\t}), n) {\n\t\t\tswitch (e) {\n\t\t\t\tcase \"up\":\n\t\t\t\t\ti = {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: -a.y * r\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"down\":\n\t\t\t\t\ti = {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: a.y * r\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"left\":\n\t\t\t\t\ti = {\n\t\t\t\t\t\tx: -a.x * r,\n\t\t\t\t\t\ty: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"right\":\n\t\t\t\t\ti = {\n\t\t\t\t\t\tx: a.x * r,\n\t\t\t\t\t\ty: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\t(i.x || i.y) && (t.preventDefault(), this.manager.actions.move({\n\t\t\t\tevent: t,\n\t\t\t\tby: i\n\t\t\t}));\n\t\t}\n\t}\n\tsideEffects() {\n\t\tlet e = this.manager.registry.plugins.get(aV);\n\t\te?.disabled === !1 && (e.disable(), Ez(this, pV).push(() => {\n\t\t\te.enable();\n\t\t}));\n\t}\n\tcleanup() {\n\t\tEz(this, pV).forEach((e) => e()), Oz(this, pV, []);\n\t}\n\tdestroy() {\n\t\tthis.cleanup(), this.listeners.clear();\n\t}\n};\npV = /* @__PURE__ */ new WeakMap(), mV.configure = $P(mV), mV.defaults = fV;\nvar hV = mV;\nfunction gV(e, t) {\n\treturn t.includes(e.code);\n}\nvar _V, vV = class extends yI {\n\tconstructor() {\n\t\tsuper(...arguments), Dz(this, _V);\n\t}\n\tonEvent(e) {\n\t\tswitch (e.type) {\n\t\t\tcase \"pointerdown\":\n\t\t\t\tOz(this, _V, uL(e));\n\t\t\t\tbreak;\n\t\t\tcase \"pointermove\":\n\t\t\t\tif (!Ez(this, _V)) return;\n\t\t\t\tlet { x: t, y: n } = uL(e), r = {\n\t\t\t\t\tx: t - Ez(this, _V).x,\n\t\t\t\t\ty: n - Ez(this, _V).y\n\t\t\t\t}, { tolerance: i } = this.options;\n\t\t\t\tif (i && wP(r, i)) {\n\t\t\t\t\tthis.abort();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twP(r, this.options.value) && this.activate(e);\n\t\t\t\tbreak;\n\t\t\tcase \"pointerup\":\n\t\t\t\tthis.abort();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tabort() {\n\t\tOz(this, _V, void 0);\n\t}\n};\n_V = /* @__PURE__ */ new WeakMap();\nvar yV, bV, xV = class extends yI {\n\tconstructor() {\n\t\tsuper(...arguments), Dz(this, yV), Dz(this, bV);\n\t}\n\tonEvent(e) {\n\t\tswitch (e.type) {\n\t\t\tcase \"pointerdown\":\n\t\t\t\tOz(this, bV, uL(e)), Oz(this, yV, setTimeout(() => this.activate(e), this.options.value));\n\t\t\t\tbreak;\n\t\t\tcase \"pointermove\":\n\t\t\t\tif (!Ez(this, bV)) return;\n\t\t\t\tlet { x: t, y: n } = uL(e);\n\t\t\t\twP({\n\t\t\t\t\tx: t - Ez(this, bV).x,\n\t\t\t\t\ty: n - Ez(this, bV).y\n\t\t\t\t}, this.options.tolerance) && this.abort();\n\t\t\t\tbreak;\n\t\t\tcase \"pointerup\":\n\t\t\t\tthis.abort();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tabort() {\n\t\tEz(this, yV) && (clearTimeout(Ez(this, yV)), Oz(this, bV, void 0), Oz(this, yV, void 0));\n\t}\n};\nyV = /* @__PURE__ */ new WeakMap(), bV = /* @__PURE__ */ new WeakMap();\nvar SV = class {};\nSV.Delay = xV, SV.Distance = vV;\nvar CV = Object.freeze({\n\tactivationConstraints(e, t) {\n\t\tlet { pointerType: n, target: r } = e;\n\t\tif (!(n === \"mouse\" && KR(r) && (t.handle === r || t.handle?.contains(r)))) return n === \"touch\" ? [new SV.Delay({\n\t\t\tvalue: 250,\n\t\t\ttolerance: 5\n\t\t})] : YR(r) && !e.defaultPrevented ? [new SV.Delay({\n\t\t\tvalue: 200,\n\t\t\ttolerance: 0\n\t\t})] : [new SV.Delay({\n\t\t\tvalue: 200,\n\t\t\ttolerance: 10\n\t\t}), new SV.Distance({ value: 5 })];\n\t},\n\tpreventActivation(e, t) {\n\t\tlet { target: n } = e;\n\t\tif (n === t.element || n === t.handle || !KR(n) || t.handle?.contains(n)) return !1;\n\t\tlet r = wL(n);\n\t\treturn r === t.element ? !1 : !!r;\n\t}\n}), wV, TV = class extends gI {\n\tconstructor(e, t) {\n\t\tsuper(e), this.manager = e, this.options = t, Dz(this, wV, /* @__PURE__ */ new Set()), this.listeners = new TL(), this.latest = {\n\t\t\tevent: void 0,\n\t\t\tcoordinates: void 0\n\t\t}, this.handleMove = () => {\n\t\t\tlet { event: e, coordinates: t } = this.latest;\n\t\t\t!e || !t || this.manager.actions.move({\n\t\t\t\tevent: e,\n\t\t\t\tto: t\n\t\t\t});\n\t\t}, this.handleCancel = this.handleCancel.bind(this), this.handlePointerUp = this.handlePointerUp.bind(this), this.handleKeyDown = this.handleKeyDown.bind(this);\n\t}\n\tactivationConstraints(e, t, n = this.options) {\n\t\tlet { activationConstraints: r = CV.activationConstraints } = n ?? {};\n\t\treturn typeof r == \"function\" ? r(e, t) : r;\n\t}\n\tbind(e, t = this.options) {\n\t\treturn UM(() => {\n\t\t\tlet n = new AbortController(), { signal: r } = n, i = (n) => {\n\t\t\t\tJR(n) && this.handlePointerDown(n, e, t);\n\t\t\t}, a = [e.handle ?? e.element];\n\t\t\tt?.activatorElements && (a = Array.isArray(t.activatorElements) ? t.activatorElements : t.activatorElements(e));\n\t\t\tfor (let e of a) e && (jV(e.ownerDocument.defaultView), e.addEventListener(\"pointerdown\", i, { signal: r }));\n\t\t\treturn () => n.abort();\n\t\t});\n\t}\n\thandlePointerDown(e, t, n) {\n\t\tif (this.disabled || !e.isPrimary || e.button !== 0 || !KR(e.target) || t.disabled || DV(e) || !this.manager.dragOperation.status.idle) return;\n\t\tlet { preventActivation: r = CV.preventActivation } = n ?? {};\n\t\tif (r?.(e, t)) return;\n\t\tlet { target: i } = e, a = rL(i) && i.draggable && i.getAttribute(\"draggable\") === \"true\", o = xR(t.element), { x: s, y: c } = uL(e);\n\t\tthis.initialCoordinates = {\n\t\t\tx: s * o.scaleX + o.x,\n\t\t\ty: c * o.scaleY + o.y\n\t\t};\n\t\tlet l = this.activationConstraints(e, t, n);\n\t\te.sensor = this;\n\t\tlet u = new _I(l, (e) => this.handleStart(t, e));\n\t\tu.signal.onabort = () => this.handleCancel(e), u.onEvent(e), this.controller = u;\n\t\tlet d = fL(), f = this.listeners.bind(d, [\n\t\t\t{\n\t\t\t\ttype: \"pointermove\",\n\t\t\t\tlistener: (e) => this.handlePointerMove(e, t)\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"pointerup\",\n\t\t\t\tlistener: this.handlePointerUp,\n\t\t\t\toptions: { capture: !0 }\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"pointercancel\",\n\t\t\t\tlistener: this.handleCancel\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"dragstart\",\n\t\t\t\tlistener: a ? this.handleCancel : OV,\n\t\t\t\toptions: { capture: !0 }\n\t\t\t}\n\t\t]);\n\t\tEz(this, wV).add(() => {\n\t\t\tf(), this.initialCoordinates = void 0;\n\t\t});\n\t}\n\thandlePointerMove(e, t) {\n\t\tvar n;\n\t\tif (this.controller?.activated === !1) {\n\t\t\t(n = this.controller) == null || n.onEvent(e);\n\t\t\treturn;\n\t\t}\n\t\tif (this.manager.dragOperation.status.dragging) {\n\t\t\tlet n = uL(e), r = xR(t.element);\n\t\t\tn.x = n.x * r.scaleX + r.x, n.y = n.y * r.scaleY + r.y, e.preventDefault(), e.stopPropagation(), this.latest.event = e, this.latest.coordinates = n, dR.schedule(this.handleMove);\n\t\t}\n\t}\n\thandlePointerUp(e) {\n\t\tlet { status: t } = this.manager.dragOperation;\n\t\tif (!t.idle) {\n\t\t\te.preventDefault(), e.stopPropagation();\n\t\t\tlet n = !t.initialized;\n\t\t\tthis.manager.actions.stop({\n\t\t\t\tevent: e,\n\t\t\t\tcanceled: n\n\t\t\t});\n\t\t}\n\t\tthis.cleanup();\n\t}\n\thandleKeyDown(e) {\n\t\te.key === \"Escape\" && (e.preventDefault(), this.handleCancel(e));\n\t}\n\thandleStart(e, t) {\n\t\tlet { manager: n, initialCoordinates: r } = this;\n\t\tif (!r || !n.dragOperation.status.idle || t.defaultPrevented) return;\n\t\tif (n.actions.start({\n\t\t\tcoordinates: r,\n\t\t\tevent: t,\n\t\t\tsource: e\n\t\t}).signal.aborted) return this.cleanup();\n\t\tt.preventDefault();\n\t\tlet i = aL(t.target).body;\n\t\ttry {\n\t\t\ti.setPointerCapture(t.pointerId);\n\t\t} catch {\n\t\t\tthis.handleCancel(t);\n\t\t\treturn;\n\t\t}\n\t\tlet a = KR(t.target) ? [t.target, i] : i, o = this.listeners.bind(a, [\n\t\t\t{\n\t\t\t\ttype: \"touchmove\",\n\t\t\t\tlistener: OV,\n\t\t\t\toptions: { passive: !1 }\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"click\",\n\t\t\t\tlistener: OV\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"contextmenu\",\n\t\t\t\tlistener: OV\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"keydown\",\n\t\t\t\tlistener: this.handleKeyDown\n\t\t\t}\n\t\t]);\n\t\tEz(this, wV).add(o);\n\t}\n\thandleCancel(e) {\n\t\tlet { dragOperation: t } = this.manager;\n\t\tt.status.initialized && this.manager.actions.stop({\n\t\t\tevent: e,\n\t\t\tcanceled: !0\n\t\t}), this.cleanup();\n\t}\n\tcleanup() {\n\t\tlet { controller: e } = this;\n\t\tthis.controller = void 0, e && !e.signal.aborted && e.abort(), this.latest = {\n\t\t\tevent: void 0,\n\t\t\tcoordinates: void 0\n\t\t}, Ez(this, wV).forEach((e) => e()), Ez(this, wV).clear();\n\t}\n\tdestroy() {\n\t\tthis.cleanup(), this.listeners.clear();\n\t}\n};\nwV = /* @__PURE__ */ new WeakMap(), TV.configure = $P(TV), TV.defaults = CV;\nvar EV = TV;\nfunction DV(e) {\n\treturn \"sensor\" in e;\n}\nfunction OV(e) {\n\te.preventDefault();\n}\nfunction kV() {}\nvar AV = /* @__PURE__ */ new WeakSet();\nfunction jV(e) {\n\t!e || AV.has(e) || (e.addEventListener(\"touchmove\", kV, {\n\t\tcapture: !1,\n\t\tpassive: !1\n\t}), AV.add(e));\n}\nvar MV = {\n\tmodifiers: [],\n\tplugins: [\n\t\tzz,\n\t\taV,\n\t\trB,\n\t\tNB,\n\t\tuV\n\t],\n\tsensors: [EV, hV]\n}, NV = class extends WI {\n\tconstructor(e = {}) {\n\t\tlet t = UI(e.plugins, MV.plugins), n = UI(e.sensors, MV.sensors), r = UI(e.modifiers, MV.modifiers);\n\t\tsuper(mz(pz({}, e), {\n\t\t\tplugins: [\n\t\t\t\tcV,\n\t\t\t\teV,\n\t\t\t\tnB,\n\t\t\t\t...t\n\t\t\t],\n\t\t\tsensors: n,\n\t\t\tmodifiers: r\n\t\t}));\n\t}\n}, PV, FV, IV, LV, RV, zV, BV = class extends (IV = RF, FV = [Y], PV = [Y], IV) {\n\tconstructor(e, t) {\n\t\tvar n = e, { element: r, effects: i = () => [], handle: a } = n, o = gz(n, [\n\t\t\t\"element\",\n\t\t\t\"effects\",\n\t\t\t\"handle\"\n\t\t]);\n\t\tsuper(pz({ effects: () => [...i(), () => {\n\t\t\tlet { manager: e } = this;\n\t\t\tif (!e) return;\n\t\t\tlet t = (this.sensors?.map(eF) ?? [...e.sensors]).map((t) => {\n\t\t\t\tlet n = t instanceof gI ? t : e.registry.register(t.plugin), r = t instanceof gI ? void 0 : t.options;\n\t\t\t\treturn n.bind(this, r);\n\t\t\t});\n\t\t\treturn function() {\n\t\t\t\tt.forEach((e) => e());\n\t\t\t};\n\t\t}] }, o), t), Dz(this, RV, Sz(LV, 8, this)), Sz(LV, 11, this), Dz(this, zV, Sz(LV, 12, this)), Sz(LV, 15, this), this.element = r, this.handle = a;\n\t}\n};\nLV = _z(IV), RV = /* @__PURE__ */ new WeakMap(), zV = /* @__PURE__ */ new WeakMap(), Cz(LV, 4, \"handle\", FV, BV, RV), Cz(LV, 4, \"element\", PV, BV, zV), xz(LV, BV);\nvar VV, HV, UV, WV, GV, KV, qV, JV, YV, XV, ZV = class extends (UV = QF, HV = [Y], VV = [Y], UV) {\n\tconstructor(e, t) {\n\t\tvar n = e, { element: r, effects: i = () => [] } = n, a = gz(n, [\"element\", \"effects\"]);\n\t\tlet { collisionDetector: o = tz } = a, s = (e) => {\n\t\t\tlet { manager: t, element: n } = this;\n\t\t\tif (!n || e === null) {\n\t\t\t\tthis.shape = void 0;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!t) return;\n\t\t\tlet r = new HR(n), i = J(() => this.shape);\n\t\t\treturn r && i?.equals(r) ? i : (this.shape = r, r);\n\t\t}, c = NM(!1);\n\t\tsuper(mz(pz({}, a), {\n\t\t\tcollisionDetector: o,\n\t\t\teffects: () => [\n\t\t\t\t...i(),\n\t\t\t\t() => {\n\t\t\t\t\tlet { element: e, manager: t } = this;\n\t\t\t\t\tif (!t) return;\n\t\t\t\t\tlet { dragOperation: n } = t, { source: r } = n;\n\t\t\t\t\tc.value = !!(r && n.status.initialized && e && !this.disabled && this.accepts(r));\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tlet { element: e } = this;\n\t\t\t\t\tif (c.value && e) {\n\t\t\t\t\t\tlet t = new iR(e, s);\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\tt.disconnect(), this.shape = void 0;\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tif (this.manager?.dragOperation.status.initialized) return () => {\n\t\t\t\t\t\tthis.shape = void 0;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t]\n\t\t}), t), Dz(this, YV), Dz(this, GV, Sz(WV, 8, this)), Sz(WV, 11, this), Dz(this, XV, Sz(WV, 12, this)), Sz(WV, 15, this), this.element = r, this.refreshShape = () => s();\n\t}\n\tset element(e) {\n\t\tOz(this, YV, e, JV);\n\t}\n\tget element() {\n\t\treturn this.proxy ?? Ez(this, YV, qV);\n\t}\n};\nWV = _z(UV), GV = /* @__PURE__ */ new WeakMap(), YV = /* @__PURE__ */ new WeakSet(), XV = /* @__PURE__ */ new WeakMap(), KV = Cz(WV, 20, \"#element\", HV, YV, GV), qV = KV.get, JV = KV.set, Cz(WV, 4, \"proxy\", VV, ZV, XV), xz(WV, ZV);\n//#endregion\n//#region ../../node_modules/.pnpm/@dnd-kit+react@0.5.0_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@dnd-kit/react/utilities.js\nfunction QV(e) {\n\treturn typeof e == \"object\" && !!e && \"current\" in e;\n}\nfunction $V(e) {\n\tif (e != null) return QV(e) ? e.current ?? void 0 : e;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@dnd-kit+react@0.5.0_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@dnd-kit/react/hooks.js\nvar eH = typeof window < \"u\" && window.document !== void 0 && window.document.createElement !== void 0 ? x : _;\nfunction tH() {\n\tlet e = T(0)[1];\n\treturn h(() => {\n\t\te((e) => e + 1);\n\t}, [e]);\n}\nfunction nH(e, t = !1) {\n\tlet n = w(e.peek()), r = w(!1), i = tH();\n\treturn eH(() => UM(() => {\n\t\tlet a = n.current, o = e.value;\n\t\tif (a !== o) {\n\t\t\tif (n.current = o, !r.current) return;\n\t\t\tt ? we(i) : i();\n\t\t}\n\t}), [\n\t\te,\n\t\tt,\n\t\ti\n\t]), { get value() {\n\t\treturn r.current = !0, e.peek();\n\t} };\n}\nfunction rH(e, t = [], n = !1) {\n\tlet r = w(e);\n\treturn r.current = e, nH(S(() => _N(() => r.current()), t), n);\n}\nfunction iH(e, t) {\n\tlet n = w(/* @__PURE__ */ new Map()), r = tH();\n\treturn eH(() => {\n\t\tif (!e) {\n\t\t\tn.current.clear();\n\t\t\treturn;\n\t\t}\n\t\treturn UM(() => {\n\t\t\tlet i = !1, a = !1;\n\t\t\tfor (let r of n.current) {\n\t\t\t\tlet [o] = r, s = J(() => r[1]), c = e[o];\n\t\t\t\ts !== c && (i = !0, n.current.set(o, c), a = t?.(o, s, c) ?? !1);\n\t\t\t}\n\t\t\ti && (a ? queueMicrotask(() => we(r)) : r());\n\t\t});\n\t}, [e]), S(() => e && new Proxy(e, { get(e, t) {\n\t\tlet r = e[t];\n\t\treturn n.current.set(t, r), r;\n\t} }), [e]);\n}\nfunction aH(e) {\n\tlet t = w(e);\n\treturn eH(() => {\n\t\tt.current = e;\n\t}, [e]), t;\n}\nfunction oH(e, t, n = _, r = Object.is) {\n\tlet i = w(e);\n\tn(() => {\n\t\tlet n = i.current;\n\t\tr(e, n) || (i.current = e, t(e, n));\n\t}, [t, e]);\n}\nfunction sH(e, t) {\n\tlet n = w($V(e));\n\teH(() => {\n\t\tlet r = $V(e);\n\t\tr !== n.current && (n.current = r, t(r));\n\t});\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@dnd-kit+react@0.5.0_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@dnd-kit/react/index.js\nvar cH = Object.defineProperty, lH = Object.defineProperties, uH = Object.getOwnPropertyDescriptors, dH = Object.getOwnPropertySymbols, fH = Object.prototype.hasOwnProperty, pH = Object.prototype.propertyIsEnumerable, mH = (e, t, n) => t in e ? cH(e, t, {\n\tenumerable: !0,\n\tconfigurable: !0,\n\twritable: !0,\n\tvalue: n\n}) : e[t] = n, hH = (e, t) => {\n\tfor (var n in t ||= {}) fH.call(t, n) && mH(e, n, t[n]);\n\tif (dH) for (var n of dH(t)) pH.call(t, n) && mH(e, n, t[n]);\n\treturn e;\n}, gH = (e, t) => lH(e, uH(t)), _H = (e, t) => {\n\tvar n = {};\n\tfor (var r in e) fH.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);\n\tif (e != null && dH) for (var r of dH(e)) t.indexOf(r) < 0 && pH.call(e, r) && (n[r] = e[r]);\n\treturn n;\n}, vH = l(new NV()), yH = p(d(({ children: e }, t) => {\n\tlet [n, r] = T(0), i = w(null), a = w(null), o = S(() => ({\n\t\trenderer: { get rendering() {\n\t\t\treturn i.current ?? Promise.resolve();\n\t\t} },\n\t\ttrackRendering(e) {\n\t\t\ti.current ||= new Promise((e) => {\n\t\t\t\ta.current = e;\n\t\t\t}), m(() => {\n\t\t\t\te(), r((e) => e + 1);\n\t\t\t});\n\t\t}\n\t}), []);\n\treturn eH(() => {\n\t\tvar e;\n\t\t(e = a.current) == null || e.call(a), i.current = null;\n\t}, [e, n]), y(t, () => o), null;\n})), bH = [void 0, vN];\nfunction xH(e) {\n\tvar t = e, { children: n, onCollision: r, onBeforeDragStart: i, onDragStart: a, onDragMove: o, onDragOver: s, onDragEnd: c } = t, l = _H(t, [\n\t\t\"children\",\n\t\t\"onCollision\",\n\t\t\"onBeforeDragStart\",\n\t\t\"onDragStart\",\n\t\t\"onDragMove\",\n\t\t\"onDragOver\",\n\t\t\"onDragEnd\"\n\t]);\n\tlet u = w(null), { plugins: d, modifiers: f, sensors: p } = l, m = UI(d, MV.plugins), h = UI(p, MV.sensors), g = UI(f, MV.modifiers), v = aH(i), y = aH(a), b = aH(s), x = aH(o), S = aH(c), C = aH(r), T = SH(() => l.manager ?? new NV(l));\n\treturn _(() => {\n\t\tif (!u.current) throw Error(\"Renderer not found\");\n\t\tlet { renderer: e, trackRendering: t } = u.current, { monitor: n } = T;\n\t\tT.renderer = e;\n\t\tlet r = [\n\t\t\tn.addEventListener(\"beforedragstart\", (e) => {\n\t\t\t\tlet n = v.current;\n\t\t\t\tn && t(() => n(e, T));\n\t\t\t}),\n\t\t\tn.addEventListener(\"dragstart\", (e) => y.current?.call(y, e, T)),\n\t\t\tn.addEventListener(\"dragover\", (e) => {\n\t\t\t\tlet n = b.current;\n\t\t\t\tn && t(() => n(e, T));\n\t\t\t}),\n\t\t\tn.addEventListener(\"dragmove\", (e) => {\n\t\t\t\tlet n = x.current;\n\t\t\t\tn && t(() => n(e, T));\n\t\t\t}),\n\t\t\tn.addEventListener(\"dragend\", (e) => {\n\t\t\t\tlet n = S.current;\n\t\t\t\tn && t(() => n(e, T));\n\t\t\t}),\n\t\t\tn.addEventListener(\"collision\", (e) => C.current?.call(C, e, T))\n\t\t];\n\t\treturn () => r.forEach((e) => e());\n\t}, [T]), oH(m, () => T && (T.plugins = m), ...bH), oH(h, () => T && (T.sensors = h), ...bH), oH(g, () => T && (T.modifiers = g), ...bH), /* @__PURE__ */ (0, B.jsxs)(vH.Provider, {\n\t\tvalue: T,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(yH, {\n\t\t\tref: u,\n\t\t\tchildren: n\n\t\t}), n]\n\t});\n}\nfunction SH(e) {\n\tlet t = w(null);\n\treturn t.current ||= e(), b(() => () => t.current?.destroy(), []), t.current;\n}\nfunction CH() {\n\treturn g(vH);\n}\nfunction wH(e) {\n\tlet t = CH() ?? void 0, [n] = T(() => e(t));\n\treturn n.manager !== t && (n.manager = t), eH(n.register, [t, n]), n;\n}\nfunction TH(e) {\n\tlet { disabled: t, data: n, element: r, handle: i, id: a, modifiers: o, sensors: s, plugins: c } = e, l = wH((t) => new BV(gH(hH({}, e), {\n\t\tregister: !1,\n\t\thandle: $V(i),\n\t\telement: $V(r)\n\t}), t)), u = iH(l, EH);\n\treturn oH(a, () => l.id = a), sH(i, (e) => l.handle = e), sH(r, (e) => l.element = e), oH(n, () => n && (l.data = n)), oH(t, () => l.disabled = t === !0), oH(s, () => l.sensors = s, void 0, vN), oH(o, () => l.modifiers = o, void 0, vN), oH(c, () => l.plugins = c, void 0, vN), oH(e.alignment, () => l.alignment = e.alignment), {\n\t\tdraggable: u,\n\t\tget isDragging() {\n\t\t\treturn u.isDragging;\n\t\t},\n\t\tget isDropping() {\n\t\t\treturn u.isDropping;\n\t\t},\n\t\tget isDragSource() {\n\t\t\treturn u.isDragSource;\n\t\t},\n\t\thandleRef: h((e) => {\n\t\t\tl.handle = e ?? void 0;\n\t\t}, [l]),\n\t\tref: h((e) => {\n\t\t\t!e && l.element?.isConnected && !l.manager?.dragOperation.status.idle || (l.element = e ?? void 0);\n\t\t}, [l])\n\t};\n}\nfunction EH(e, t, n) {\n\treturn !!(e === \"isDragSource\" && !n && t);\n}\nfunction DH({ children: e, className: t, dropAnimation: n, style: r, tag: i, disabled: a }) {\n\tlet o = w(null), s = CH(), c = rH(() => s?.dragOperation.source, [s]).value ?? null, l = typeof a == \"function\" ? a(c) : a;\n\t_(() => {\n\t\tif (!o.current || !s || l) return;\n\t\tlet e = s.plugins.find((e) => e instanceof NB);\n\t\tif (e) return e.overlay = o.current, () => {\n\t\t\te.overlay = void 0;\n\t\t};\n\t}, [s, l]), _(() => {\n\t\tif (!s) return;\n\t\tlet e = s.plugins.find((e) => e instanceof NB);\n\t\tif (e) return e.dropAnimation = n, () => {\n\t\t\te.dropAnimation = void 0;\n\t\t};\n\t}, [s, n]);\n\tlet d = S(() => {\n\t\tif (!s) return null;\n\t\tlet e = new Proxy(s.registry, { get(e, t) {\n\t\t\treturn t === \"register\" || t === \"unregister\" ? OH : e[t];\n\t\t} });\n\t\treturn new Proxy(s, { get(t, n) {\n\t\t\treturn n === \"registry\" ? e : t[n];\n\t\t} });\n\t}, [s]);\n\treturn /* @__PURE__ */ (0, B.jsx)(vH.Provider, {\n\t\tvalue: d,\n\t\tchildren: u(i || \"div\", {\n\t\t\tref: o,\n\t\t\tclassName: t,\n\t\t\tstyle: r,\n\t\t\t\"data-dnd-overlay\": !0\n\t\t}, f())\n\t});\n\tfunction f() {\n\t\treturn !c || l ? null : typeof e == \"function\" ? /* @__PURE__ */ (0, B.jsx)(kH, {\n\t\t\tsource: c,\n\t\t\tchildren: e\n\t\t}) : e;\n\t}\n}\nfunction OH() {\n\treturn () => {};\n}\nfunction kH({ children: e, source: t }) {\n\treturn e(iH(t));\n}\nvar AH = Object.create, jH = Object.defineProperty, MH = Object.getOwnPropertyDescriptor, NH = (e, t) => (t = Symbol[e]) ? t : Symbol.for(\"Symbol.\" + e), PH = (e) => {\n\tthrow TypeError(e);\n}, FH = (e, t, n) => t in e ? jH(e, t, {\n\tenumerable: !0,\n\tconfigurable: !0,\n\twritable: !0,\n\tvalue: n\n}) : e[t] = n, IH = (e) => [\n\t,\n\t,\n\t,\n\tAH(e?.[NH(\"metadata\")] ?? null)\n], LH = [\n\t\"class\",\n\t\"method\",\n\t\"getter\",\n\t\"setter\",\n\t\"accessor\",\n\t\"field\",\n\t\"value\",\n\t\"get\",\n\t\"set\"\n], RH = (e) => e !== void 0 && typeof e != \"function\" ? PH(\"Function expected\") : e, zH = (e, t, n, r, i) => ({\n\tkind: LH[e],\n\tname: t,\n\tmetadata: r,\n\taddInitializer: (e) => n._ ? PH(\"Already initialized\") : i.push(RH(e || null))\n}), BH = (e, t) => FH(t, NH(\"metadata\"), e[3]), VH = (e, t, n, r) => {\n\tfor (var i = 0, a = e[t >> 1], o = a && a.length; i < o; i++) a[i].call(n);\n\treturn r;\n}, HH = (e, t, n, r, i, a) => {\n\tfor (var o, s, c, l, u = t & 7, d = !1, f = !1, p = 2, m = LH[u + 5], h = e[p] || (e[p] = []), g = (i = i.prototype, MH(i, n)), _ = r.length - 1; _ >= 0; _--) c = zH(u, n, s = {}, e[3], h), c.static = d, c.private = f, l = c.access = { has: (e) => n in e }, l.get = (e) => e[n], o = (0, r[_])(g[m], c), s._ = 1, RH(o) && (g[m] = o);\n\treturn g && jH(i, n, g), i;\n}, UH = (e, t, n) => t.has(e) || PH(\"Cannot \" + n), WH = (e, t, n) => (UH(e, t, \"read from private field\"), t.get(e)), GH = (e, t, n) => t.has(e) ? PH(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, n), KH = (e, t, n, r) => (UH(e, t, \"write to private field\"), t.set(e, n), n), qH = class e {\n\tconstructor(e, t) {\n\t\tthis.x = e, this.y = t;\n\t}\n\tstatic delta(t, n) {\n\t\treturn new e(t.x - n.x, t.y - n.y);\n\t}\n\tstatic distance(e, t) {\n\t\treturn Math.hypot(e.x - t.x, e.y - t.y);\n\t}\n\tstatic equals(e, t) {\n\t\treturn e.x === t.x && e.y === t.y;\n\t}\n\tstatic from({ x: t, y: n }) {\n\t\treturn new e(t, n);\n\t}\n}, JH, YH, XH, ZH, QH, $H = class extends (XH = HN, YH = [yN], JH = [yN], XH) {\n\tconstructor(e) {\n\t\tlet t = qH.from(e);\n\t\tsuper(t, (e, t) => qH.equals(e, t)), VH(QH, 5, this), GH(this, ZH, 0), this.velocity = {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t};\n\t}\n\tget delta() {\n\t\treturn qH.delta(this.current, this.initial);\n\t}\n\tget direction() {\n\t\tlet { current: e, previous: t } = this;\n\t\tif (!t) return null;\n\t\tlet n = {\n\t\t\tx: e.x - t.x,\n\t\t\ty: e.y - t.y\n\t\t};\n\t\treturn !n.x && !n.y ? null : Math.abs(n.x) > Math.abs(n.y) ? n.x > 0 ? \"right\" : \"left\" : n.y > 0 ? \"down\" : \"up\";\n\t}\n\tget current() {\n\t\treturn super.current;\n\t}\n\tset current(e) {\n\t\tlet { current: t } = this, n = qH.from(e), r = {\n\t\t\tx: n.x - t.x,\n\t\t\ty: n.y - t.y\n\t\t}, i = Date.now(), a = i - WH(this, ZH), o = (e) => Math.round(e / a * 100);\n\t\txM(() => {\n\t\t\tKH(this, ZH, i), this.velocity = {\n\t\t\t\tx: o(r.x),\n\t\t\t\ty: o(r.y)\n\t\t\t}, super.current = n;\n\t\t});\n\t}\n\treset(e = this.defaultValue) {\n\t\tsuper.reset(qH.from(e)), this.velocity = {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t};\n\t}\n};\nQH = IH(XH), ZH = /* @__PURE__ */ new WeakMap(), HH(QH, 2, \"delta\", YH, $H), HH(QH, 2, \"direction\", JH, $H), BH(QH, $H);\nvar eU = /* @__PURE__ */ ((e) => (e.Horizontal = \"x\", e.Vertical = \"y\", e))(eU || {});\nObject.values(eU);\nvar tU = ({ dragOperation: e, droppable: t }) => {\n\tlet n = e.position.current;\n\tif (!n) return null;\n\tlet { id: r } = t;\n\treturn t.shape && t.shape.containsPoint(n) ? {\n\t\tid: r,\n\t\tvalue: 1 / qH.distance(t.shape.center, n),\n\t\ttype: iI.PointerIntersection,\n\t\tpriority: rI.High\n\t} : null;\n}, nU = ({ dragOperation: e, droppable: t }) => {\n\tlet { shape: n } = e;\n\tif (!t.shape || !n?.current) return null;\n\tlet r = n.current.intersectionArea(t.shape);\n\tif (r) {\n\t\tlet { position: i } = e, a = qH.distance(t.shape.center, i.current), o = r / (n.current.area + t.shape.area - r) / a;\n\t\treturn {\n\t\t\tid: t.id,\n\t\t\tvalue: o,\n\t\t\ttype: iI.ShapeIntersection,\n\t\t\tpriority: rI.Normal\n\t\t};\n\t}\n\treturn null;\n}, rU = (e) => tU(e) ?? nU(e);\nfunction iU(e) {\n\tlet { collisionDetector: t, data: n, disabled: r, element: i, id: a, accept: o, type: s } = e, c = wH((t) => new ZV(gH(hH({}, e), {\n\t\tregister: !1,\n\t\telement: $V(i)\n\t}), t)), l = iH(c);\n\treturn oH(a, () => c.id = a), sH(i, (e) => c.element = e), oH(o, () => c.accept = o, void 0, vN), oH(t, () => c.collisionDetector = t ?? rU), oH(n, () => n && (c.data = n)), oH(r, () => c.disabled = r === !0), oH(s, () => c.type = s), {\n\t\tdroppable: l,\n\t\tget isDropTarget() {\n\t\t\treturn l.isDropTarget;\n\t\t},\n\t\tref: h((e) => {\n\t\t\t!e && c.element?.isConnected && !c.manager?.dragOperation.status.idle || (c.element = e ?? void 0);\n\t\t}, [c])\n\t};\n}\nfunction aU() {\n\tlet e = CH(), t = rH(() => e?.dragOperation.source, [e]), n = rH(() => e?.dragOperation.target, [e]);\n\treturn {\n\t\tget source() {\n\t\t\treturn t.value;\n\t\t},\n\t\tget target() {\n\t\t\treturn n.value;\n\t\t}\n\t};\n}\n//#endregion\n//#region src/core/VirtualizedList/virtualized-list.tsx\nvar oU = {\n\tARROW_UP: \"ArrowUp\",\n\tARROW_DOWN: \"ArrowDown\",\n\tHOME: \"Home\",\n\tEND: \"End\",\n\tPAGE_UP: \"PageUp\",\n\tPAGE_DOWN: \"PageDown\",\n\tENTER: \"Enter\",\n\tSPACE: \"Space\"\n};\nfunction sU(e) {\n\treturn e.ctrlKey || e.metaKey || e.shiftKey || e.altKey;\n}\nfunction cU(e) {\n\treturn ({ itemTop: t, itemBottom: n, viewportTop: r, viewportBottom: i, locationParams: { align: a, behavior: o, ...s } }) => a === \"start\" || a === void 0 && t < r + e ? {\n\t\t...s,\n\t\tbehavior: o,\n\t\talign: \"start\",\n\t\toffset: -e\n\t} : a === \"end\" || a === void 0 && n > i ? {\n\t\t...s,\n\t\tbehavior: o,\n\t\talign: \"end\"\n\t} : a === \"center\" ? {\n\t\t...s,\n\t\tbehavior: o,\n\t\talign: \"center\"\n\t} : null;\n}\nfunction lU(e, t) {\n\tlet { items: n, isItemFocusable: r, getItemKey: i, context: a, onKeyDown: o, disableKeyboardNavigation: s, totalCount: c, rangeChanged: l, mapScrollIndex: u, mapRangeIndex: d, scrollerRef: f, scrollPaddingTop: p, ...m } = e, g = w(null), v = w(null), [y, b] = T(e.items[0] ? i(e.items[0]) : void 0), [x, C] = T(void 0), ee = S(() => {\n\t\tlet e = /* @__PURE__ */ new Map();\n\t\treturn n.forEach((t, n) => e.set(i(t), n)), e;\n\t}, [n, i]), [te, E] = T(!1);\n\t_(() => {\n\t\tn.length && (!y || ee.get(y) === void 0) && b(i(n[0]));\n\t}, [\n\t\tn,\n\t\ti,\n\t\ty,\n\t\tee\n\t]);\n\tlet ne = h((e, t) => {\n\t\tlet r = Math.max(0, Math.min(e, n.length - 1));\n\t\tif (n[r]) {\n\t\t\tlet e = i(n[r]);\n\t\t\tb(e);\n\t\t\tlet a = u ? u(r) : r, o = typeof p == \"function\" ? p(r) : p ?? 0;\n\t\t\tg.current?.scrollIntoView({\n\t\t\t\tindex: a,\n\t\t\t\talign: t,\n\t\t\t\tbehavior: \"auto\",\n\t\t\t\t...o > 0 ? { calculateViewLocation: cU(o) } : {}\n\t\t\t});\n\t\t}\n\t}, [\n\t\tn,\n\t\ti,\n\t\tu,\n\t\tp\n\t]), D = h((e, t, i) => {\n\t\tlet a = n.length, o;\n\t\tfor (let i = e; t ? i < a : i >= 0; i += t ? 1 : -1) if (r(n[i])) {\n\t\t\to = i;\n\t\t\tbreak;\n\t\t}\n\t\to !== void 0 && ne(o, i);\n\t}, [\n\t\tne,\n\t\tn,\n\t\tr\n\t]), O = h((e) => {\n\t\tlet t = y ? ee.get(y) : void 0, r = !1;\n\t\tif (!e || sU(e)) {\n\t\t\to?.(e);\n\t\t\treturn;\n\t\t}\n\t\tif (s) {\n\t\t\to?.(e);\n\t\t\treturn;\n\t\t}\n\t\tif (e.code === oU.ARROW_UP && t !== void 0) D(t - 1, !1), r = !0;\n\t\telse if (e.code === oU.ARROW_DOWN && t !== void 0) D(t + 1, !0), r = !0;\n\t\telse if (e.code === oU.HOME) ne(0), r = !0;\n\t\telse if (e.code === oU.END) ne(n.length - 1), r = !0;\n\t\telse if (e.code === oU.PAGE_DOWN && x && t !== void 0) {\n\t\t\tlet e = x.endIndex - x.startIndex;\n\t\t\tD(Math.min(t + e, n.length - 1), !0, \"start\"), r = !0;\n\t\t} else if (e.code === oU.PAGE_UP && x && t !== void 0) {\n\t\t\tlet e = x.endIndex - x.startIndex;\n\t\t\tD(Math.max(t - e, 0), !1, \"start\"), r = !0;\n\t\t}\n\t\tif (r) {\n\t\t\tif (v.current instanceof HTMLElement) {\n\t\t\t\tlet e = document.activeElement;\n\t\t\t\te && e !== v.current && v.current.contains(e) && v.current.focus({ preventScroll: !0 });\n\t\t\t}\n\t\t\te.stopPropagation(), e.preventDefault();\n\t\t} else o?.(e);\n\t}, [\n\t\tne,\n\t\tD,\n\t\ty,\n\t\tee,\n\t\tx,\n\t\tn,\n\t\to,\n\t\ts\n\t]), k = h((e) => {\n\t\tv.current = e, f?.(e);\n\t}, [f]), re = h((e, t) => {\n\t\tlet n = i(e);\n\t\tE(!0), b(n), t.stopPropagation();\n\t}, [i]), ie = h((e) => {\n\t\tif (e?.currentTarget !== v.current || typeof y != \"string\") return;\n\t\tE(!0);\n\t\tlet t = ee.get(y);\n\t\tt !== void 0 && x && (t < x.startIndex || t > x.endIndex) && ne(t), e.stopPropagation(), e.preventDefault();\n\t}, [\n\t\tee,\n\t\tx,\n\t\tne,\n\t\ty\n\t]), A = h((e) => {\n\t\te.currentTarget.contains(e.relatedTarget) || E(!1);\n\t}, []), j = S(() => ({\n\t\ttabIndexKey: y,\n\t\tfocused: te,\n\t\tcontext: e.context || {}\n\t}), [\n\t\ty,\n\t\tte,\n\t\te.context\n\t]), ae = h((e) => {\n\t\tlet t = d ? {\n\t\t\tstartIndex: d(e.startIndex),\n\t\t\tendIndex: d(e.endIndex)\n\t\t} : e;\n\t\tC(t), l?.(e);\n\t}, [l, d]), oe = h((e) => {\n\t\tg.current = e, t?.(e);\n\t}, [t]), M = h((e, t) => i(t), [i]);\n\treturn {\n\t\t...m,\n\t\tcomputeItemKey: M,\n\t\tref: oe,\n\t\tscrollerRef: k,\n\t\tonKeyDown: O,\n\t\tonFocus: ie,\n\t\tonBlur: A,\n\t\trangeChanged: ae,\n\t\tonFocusForGetItemComponent: re,\n\t\tcontext: j\n\t};\n}\n//#endregion\n//#region src/core/VirtualizedList/FlatVirtualizedList/FlatVirtualizedList.tsx\nfunction uU(e) {\n\tlet { getItemComponent: t, scrollHandleRef: n, ...r } = e, { onFocusForGetItemComponent: i, ...a } = lU(r, n);\n\treturn /* @__PURE__ */ (0, B.jsx)(Te, {\n\t\titemContent: h((e, n, r) => t(e, n, r, i), [t, i]),\n\t\tdata: e.items,\n\t\t...a\n\t});\n}\nvar dU = {\n\tstickyRoot: \"_stickyRoot_3tgsb_12\",\n\tstickyHeader: \"_stickyHeader_3tgsb_32\",\n\tstickyRow: \"_stickyRow_3tgsb_23\"\n}, fU = o.forwardRef(function({ item: e, context: t, children: n, ...r }, i) {\n\tlet a = typeof e == \"object\" && !!e && \"header\" in e;\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t...r,\n\t\tref: i,\n\t\tclassName: a ? dU.stickyRow : void 0,\n\t\tchildren: n\n\t});\n});\nfunction pU(e) {\n\tlet { getItemComponent: t, groups: n, getGroupHeaderComponent: r, isItemFocusable: i, isGroupHeaderFocusable: a, getItemKey: o, getHeaderKey: s, scrollHandleRef: c, renderStickyHeader: l, ...u } = e, [d, f] = T(0), p = S(() => n.flatMap((e) => [{ header: e.header }, ...e.items.map((e) => ({ item: e }))]), [n]), m = S(() => n.flatMap((e, t) => Array(1 + e.items.length).fill(t)), [n]), g = h((e) => {\n\t\tlet t = p[e];\n\t\treturn t && \"header\" in t ? 0 : d;\n\t}, [p, d]), v = h((e) => \"header\" in e ? s(e.header) : o(e.item), [s, o]), y = h((e) => \"header\" in e ? a(e.header) : i(e.item), [a, i]), { onFocusForGetItemComponent: b, scrollerRef: C, ...ee } = lU({\n\t\t...u,\n\t\titems: p,\n\t\tisItemFocusable: y,\n\t\tgetItemKey: v,\n\t\tscrollPaddingTop: g\n\t}, c), te = h((e, t) => {\n\t\tb({ item: e }, t);\n\t}, [b]), E = h((e, t) => {\n\t\tb({ header: e }, t);\n\t}, [b]), ne = h((e, n, i) => {\n\t\tlet a = p[e], o = m[e];\n\t\tif (\"header\" in a) return r(o, a.header, i, E);\n\t\tlet s = e - (o + 1);\n\t\treturn t(s, a.item, i, te, o);\n\t}, [\n\t\tp,\n\t\tm,\n\t\tr,\n\t\tt,\n\t\tte,\n\t\tE\n\t]), D = w([]), O = w(null), k = w(null), [re, ie] = T(0), A = h(() => {\n\t\tlet e = k.current;\n\t\tif (!e || m.length === 0) return;\n\t\tlet t = e.scrollTop, n = D.current, r = n.length ? n[0].index : 0, i = n.length ? n[0].offset : 0;\n\t\tfor (let e of n) e.offset <= t + 1 && e.offset > i && (i = e.offset, r = e.index);\n\t\tlet a = m[r] ?? 0;\n\t\tie((e) => e === a ? e : a);\n\t}, [m]), j = h((e) => {\n\t\tD.current = e.map((e) => ({\n\t\t\tindex: e.index,\n\t\t\toffset: e.offset\n\t\t})), A();\n\t}, [A]), ae = h((e) => {\n\t\tC?.(e), k.current = e instanceof HTMLElement ? e : null;\n\t}, [C]), oe = h((e) => {\n\t\tlet t = k.current;\n\t\tt && (t.scrollTop += e.deltaY * (e.deltaMode === 1 ? 16 : 1));\n\t}, []);\n\tx(() => {\n\t\tO.current && f(O.current.offsetHeight);\n\t}, [re, n]), _(() => {\n\t\tA();\n\t}, [n, A]);\n\tlet M = Math.min(re, n.length - 1), se = l && M >= 0 ? l(M, n[M].header, ee.context) : null;\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tclassName: dU.stickyRoot,\n\t\tchildren: [se != null && /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\tclassName: dU.stickyHeader,\n\t\t\tref: O,\n\t\t\tonWheel: oe,\n\t\t\tchildren: se\n\t\t}), /* @__PURE__ */ (0, B.jsx)(Te, {\n\t\t\titemContent: ne,\n\t\t\tdata: p,\n\t\t\t...ee,\n\t\t\tcomponents: { Item: fU },\n\t\t\tscrollerRef: ae,\n\t\t\titemsRendered: j,\n\t\t\tonScroll: A\n\t\t})]\n\t});\n}\n//#endregion\n//#region src/core/VirtualizedList/accessbility.ts\nfunction mU(e, t) {\n\tswitch (e) {\n\t\tcase \"listbox\": return { role: \"listbox\" };\n\t\tcase \"treegrid\": return {\n\t\t\trole: \"treegrid\",\n\t\t\t\"aria-rowcount\": t\n\t\t};\n\t}\n}\nfunction hU(e, t, n) {\n\tswitch (e) {\n\t\tcase \"listbox\": return {\n\t\t\trole: \"option\",\n\t\t\t\"aria-posinset\": t + 1,\n\t\t\t\"aria-setsize\": n\n\t\t};\n\t\tcase \"treegrid\": return {\n\t\t\trole: \"row\",\n\t\t\t\"aria-level\": 2,\n\t\t\t\"aria-rowindex\": t + 1,\n\t\t\t\"aria-posinset\": n + 1\n\t\t};\n\t}\n}\nfunction gU(e, t, n) {\n\treturn {\n\t\trole: \"row\",\n\t\t\"aria-level\": 1,\n\t\t\"aria-posinset\": t + 1,\n\t\t\"aria-rowindex\": e + 1,\n\t\t\"aria-setsize\": n\n\t};\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@dnd-kit+abstract@0.5.0/node_modules/@dnd-kit/abstract/modifiers.js\nvar _U = Object.defineProperty, vU = Object.defineProperties, yU = Object.getOwnPropertyDescriptors, bU = Object.getOwnPropertySymbols, xU = Object.prototype.hasOwnProperty, SU = Object.prototype.propertyIsEnumerable, CU = (e, t, n) => t in e ? _U(e, t, {\n\tenumerable: !0,\n\tconfigurable: !0,\n\twritable: !0,\n\tvalue: n\n}) : e[t] = n, wU = (e, t) => {\n\tfor (var n in t ||= {}) xU.call(t, n) && CU(e, n, t[n]);\n\tif (bU) for (var n of bU(t)) SU.call(t, n) && CU(e, n, t[n]);\n\treturn e;\n}, TU = (e, t) => vU(e, yU(t)), EU = class extends bI {\n\tapply({ transform: e }) {\n\t\tif (!this.options) return e;\n\t\tlet { axis: t, value: n } = this.options;\n\t\treturn TU(wU({}, e), { [t]: n });\n\t}\n};\nEU.configure = $P(EU);\nvar DU = EU, OU = DU.configure({\n\taxis: \"x\",\n\tvalue: 0\n});\nDU.configure({\n\taxis: \"y\",\n\tvalue: 0\n});\nvar kU = class extends bI {\n\tapply({ transform: e }) {\n\t\tlet { size: t = 20 } = this.options ?? {}, n = typeof t == \"number\" ? t : t.x, r = typeof t == \"number\" ? t : t.y;\n\t\treturn TU(wU({}, e), {\n\t\t\tx: Math.ceil(e.x / n) * n,\n\t\t\ty: Math.ceil(e.y / r) * r\n\t\t});\n\t}\n};\nkU.configure = $P(kU);\nvar AU = {\n\theader: \"_header_1j2sa_8\",\n\tkeyboardActive: \"_keyboardActive_1j2sa_25\",\n\tcontainer: \"_container_1j2sa_33\",\n\tmenu: \"_menu_1j2sa_37\",\n\tnotificationDecoration: \"_notificationDecoration_1j2sa_43\",\n\tchevron: \"_chevron_1j2sa_48\",\n\tunread: \"_unread_1j2sa_70\",\n\ttitle: \"_title_1j2sa_91\",\n\tfirstHeader: \"_firstHeader_1j2sa_98\",\n\tlastHeader: \"_lastHeader_1j2sa_102\",\n\tdropTarget: \"_dropTarget_1j2sa_106\",\n\tdropTargetBottom: \"_dropTargetBottom_1j2sa_110\",\n\tdropTargetTop: \"_dropTargetTop_1j2sa_111\",\n\tdragging: \"_dragging_1j2sa_132\",\n\tdragSource: \"_dragSource_1j2sa_138\",\n\tstickyBackground: \"_stickyBackground_1j2sa_147\"\n}, jU = { sectionLabel: \"_sectionLabel_rnzlx_8\" };\n//#endregion\n//#region src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemMoreOptionsMenu.tsx\nfunction MU({ vm: e }) {\n\tlet [t, n] = T(!1);\n\treturn /* @__PURE__ */ (0, B.jsx)(ue, {\n\t\topen: t,\n\t\tonOpenChange: n,\n\t\ttitle: W(\"room_list|room|more_options\"),\n\t\tshowTitle: !1,\n\t\talign: \"start\",\n\t\ttrigger: /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\ttooltip: W(\"room_list|room|more_options\"),\n\t\t\t\"aria-label\": W(\"room_list|room|more_options\"),\n\t\t\tsize: \"24px\",\n\t\t\tstyle: { padding: \"2px\" },\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(wC, {})\n\t\t}),\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(NU, { vm: e })\n\t});\n}\nfunction NU({ vm: e }) {\n\tlet t = U(e), n = t.sections.length > 0, r = S(() => t.sections.some((e) => e.isSelected), [t.sections]);\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tonKeyDown: (e) => e.stopPropagation(),\n\t\tchildren: [\n\t\t\tt.canMarkAsRead && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: fC,\n\t\t\t\tlabel: W(\"room_list|more_options|mark_read\"),\n\t\t\t\tonSelect: e.onMarkAsRead,\n\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\tt.canMarkAsUnread && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: mC,\n\t\t\t\tlabel: W(\"room_list|more_options|mark_unread\"),\n\t\t\t\tonSelect: e.onMarkAsUnread,\n\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(be, {\n\t\t\t\tchecked: t.isFavourite,\n\t\t\t\tIcon: KS,\n\t\t\t\tlabel: W(\"room_list|more_options|favourited\"),\n\t\t\t\tonSelect: e.onToggleFavorite,\n\t\t\t\tonClick: (e) => e.stopPropagation()\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(be, {\n\t\t\t\tchecked: t.isLowPriority,\n\t\t\t\tIcon: Xx,\n\t\t\t\tlabel: W(\"room_list|more_options|low_priority\"),\n\t\t\t\tonSelect: e.onToggleLowPriority,\n\t\t\t\tonClick: (e) => e.stopPropagation()\n\t\t\t}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(he, {}),\n\t\t\tt.canInvite && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: iw,\n\t\t\t\tlabel: W(\"action|invite\"),\n\t\t\t\tonSelect: e.onInvite,\n\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\tt.canCopyRoomLink && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: oC,\n\t\t\t\tlabel: W(\"room_list|more_options|copy_link\"),\n\t\t\t\tonSelect: e.onCopyRoomLink,\n\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\thideChevron: !0\n\t\t\t}),\n\t\t\tt.areSectionsEnabled && /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [/* @__PURE__ */ (0, B.jsxs)(ge, {\n\t\t\t\ttrigger: /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\tIcon: Qx,\n\t\t\t\t\tlabel: W(\"room_list|more_options|move_to_section\"),\n\t\t\t\t\tonSelect: null\n\t\t\t\t}),\n\t\t\t\tchildren: [\n\t\t\t\t\tt.sections.map((t) => /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\tlabel: t.name,\n\t\t\t\t\t\tlabelProps: { className: jU.sectionLabel },\n\t\t\t\t\t\tonSelect: () => e.onToggleSection(t.tag),\n\t\t\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\t\t\thideChevron: !0,\n\t\t\t\t\t\t\"aria-checked\": t.isSelected,\n\t\t\t\t\t\tchildren: t.isSelected && /* @__PURE__ */ (0, B.jsx)(uS, {\n\t\t\t\t\t\t\tcolor: \"var(--cpd-color-icon-tertiary)\",\n\t\t\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\t\t\theight: \"24px\"\n\t\t\t\t\t\t})\n\t\t\t\t\t}, t.tag)),\n\t\t\t\t\tn && /* @__PURE__ */ (0, B.jsx)(he, {}),\n\t\t\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\tlabel: W(\"action|new_section\"),\n\t\t\t\t\t\tonSelect: e.onCreateSection,\n\t\t\t\t\t\thideChevron: !0\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t}), r && /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tIcon: vC,\n\t\t\t\tlabel: W(\"room_list|more_options|remove_from_section\"),\n\t\t\t\tonSelect: e.onRemoveFromSection,\n\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\thideChevron: !0\n\t\t\t})] }),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(he, {}),\n\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\tkind: \"critical\",\n\t\t\t\tIcon: iC,\n\t\t\t\tlabel: W(\"room_list|more_options|leave_room\"),\n\t\t\t\tonSelect: e.onLeaveRoom,\n\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\thideChevron: !0\n\t\t\t})\n\t\t]\n\t});\n}\n//#endregion\n//#region src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemContextMenu.tsx\nvar PU = ({ vm: e, children: t }) => /* @__PURE__ */ (0, B.jsx)(ie, {\n\ttitle: W(\"room_list|room|more_options\"),\n\tshowTitle: !1,\n\thasAccessibleAlternative: !0,\n\ttrigger: t,\n\tchildren: /* @__PURE__ */ (0, B.jsx)(NU, { vm: e })\n}), FU = ({ hasAnyNotificationOrActivity: e, muted: t, callType: n, isUnsentMessage: r, invited: i, isMention: a, isNotification: o, isActivityNotification: s, count: c }) => !e && !t && !n ? null : /* @__PURE__ */ (0, B.jsxs)(H, {\n\talign: \"center\",\n\tjustify: \"center\",\n\tgap: \"var(--cpd-space-1x)\",\n\t\"data-testid\": \"notification-decoration\",\n\tchildren: [\n\t\tr && /* @__PURE__ */ (0, B.jsx)(RS, {\n\t\t\twidth: \"20px\",\n\t\t\theight: \"20px\",\n\t\t\tfill: \"var(--cpd-color-icon-critical-primary)\"\n\t\t}),\n\t\tn === \"video\" && /* @__PURE__ */ (0, B.jsx)(uw, {\n\t\t\twidth: \"20px\",\n\t\t\theight: \"20px\",\n\t\t\tfill: \"var(--cpd-color-icon-accent-primary)\"\n\t\t}),\n\t\tn === \"voice\" && /* @__PURE__ */ (0, B.jsx)(bw, {\n\t\t\twidth: \"20px\",\n\t\t\theight: \"20px\",\n\t\t\tfill: \"var(--cpd-color-icon-accent-primary)\"\n\t\t}),\n\t\ti && /* @__PURE__ */ (0, B.jsx)(IS, {\n\t\t\twidth: \"20px\",\n\t\t\theight: \"20px\",\n\t\t\tfill: \"var(--cpd-color-icon-accent-primary)\"\n\t\t}),\n\t\ta && /* @__PURE__ */ (0, B.jsx)(gC, {\n\t\t\twidth: \"20px\",\n\t\t\theight: \"20px\",\n\t\t\tfill: \"var(--cpd-color-icon-accent-primary)\"\n\t\t}),\n\t\t(a || o) && /* @__PURE__ */ (0, B.jsx)(Ce, { count: c || null }),\n\t\ts && /* @__PURE__ */ (0, B.jsx)(Se, {}),\n\t\tt && /* @__PURE__ */ (0, B.jsx)(bC, {\n\t\t\twidth: \"20px\",\n\t\t\theight: \"20px\",\n\t\t\tfill: \"var(--cpd-color-icon-tertiary)\"\n\t\t})\n\t]\n}), IU = /* @__PURE__ */ function(e) {\n\treturn e.AllMessages = \"all_messages\", e.AllMessagesLoud = \"all_messages_loud\", e.MentionsOnly = \"mentions_only\", e.Mute = \"mute\", e;\n}({});\n//#endregion\n//#region src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemNotificationMenu.tsx\nfunction LU({ vm: e }) {\n\tlet t = U(e), [n, r] = T(!1), i = t.roomNotifState === IU.Mute, a = /* @__PURE__ */ (0, B.jsx)(uS, {\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\tcolor: \"var(--cpd-color-icon-primary)\"\n\t});\n\treturn /* @__PURE__ */ (0, B.jsx)(ue, {\n\t\topen: n,\n\t\tonOpenChange: r,\n\t\ttitle: W(\"room_list|notification_options\"),\n\t\tshowTitle: !1,\n\t\talign: \"start\",\n\t\ttrigger: /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\tsize: \"24px\",\n\t\t\tstyle: { padding: \"2px\" },\n\t\t\ttooltip: W(\"room_list|notification_options\"),\n\t\t\t\"aria-label\": W(\"room_list|notification_options\"),\n\t\t\tchildren: i ? /* @__PURE__ */ (0, B.jsx)(bC, {}) : /* @__PURE__ */ (0, B.jsx)(SC, {})\n\t\t}),\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tonKeyDown: (e) => e.stopPropagation(),\n\t\t\tchildren: [\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\"aria-selected\": t.roomNotifState === IU.AllMessages,\n\t\t\t\t\thideChevron: !0,\n\t\t\t\t\tlabel: W(\"notifications|default_settings\"),\n\t\t\t\t\tonSelect: () => e.onSetRoomNotifState(IU.AllMessages),\n\t\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\t\tchildren: t.roomNotifState === IU.AllMessages && a\n\t\t\t\t}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\"aria-selected\": t.roomNotifState === IU.AllMessagesLoud,\n\t\t\t\t\thideChevron: !0,\n\t\t\t\t\tlabel: W(\"notifications|all_messages\"),\n\t\t\t\t\tonSelect: () => e.onSetRoomNotifState(IU.AllMessagesLoud),\n\t\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\t\tchildren: t.roomNotifState === IU.AllMessagesLoud && a\n\t\t\t\t}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\"aria-selected\": t.roomNotifState === IU.MentionsOnly,\n\t\t\t\t\thideChevron: !0,\n\t\t\t\t\tlabel: W(\"notifications|mentions_keywords\"),\n\t\t\t\t\tonSelect: () => e.onSetRoomNotifState(IU.MentionsOnly),\n\t\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\t\tchildren: t.roomNotifState === IU.MentionsOnly && a\n\t\t\t\t}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\t\t\"aria-selected\": t.roomNotifState === IU.Mute,\n\t\t\t\t\thideChevron: !0,\n\t\t\t\t\tlabel: W(\"notifications|mute_room\"),\n\t\t\t\t\tonSelect: () => e.onSetRoomNotifState(IU.Mute),\n\t\t\t\t\tonClick: (e) => e.stopPropagation(),\n\t\t\t\t\tchildren: t.roomNotifState === IU.Mute && a\n\t\t\t\t})\n\t\t\t]\n\t\t})\n\t});\n}\nvar RU = {\n\troomListItem: \"_roomListItem_vaz9j_8\",\n\thoverMenu: \"_hoverMenu_vaz9j_32\",\n\tkeyboardActive: \"_keyboardActive_vaz9j_42\",\n\tcontainer: \"_container_vaz9j_49\",\n\tselected: \"_selected_vaz9j_54\",\n\tnotificationDecoration: \"_notificationDecoration_vaz9j_63\",\n\tdragging: \"_dragging_vaz9j_76\",\n\tdragSource: \"_dragSource_vaz9j_82\",\n\tcontent: \"_content_vaz9j_86\",\n\ttext: \"_text_vaz9j_91\",\n\tellipsis: \"_ellipsis_vaz9j_95\",\n\troomName: \"_roomName_vaz9j_96\",\n\tuserStatusEmoji: \"_userStatusEmoji_vaz9j_107\",\n\tbold: \"_bold_vaz9j_131\",\n\tfirstItem: \"_firstItem_vaz9j_145\",\n\tlastItem: \"_lastItem_vaz9j_149\"\n}, zU = ({ showMoreOptionsMenu: e, showNotificationMenu: t, vm: n }) => /* @__PURE__ */ (0, B.jsxs)(H, {\n\tclassName: RU.hoverMenu,\n\talign: \"center\",\n\tgap: \"var(--cpd-space-1x)\",\n\tchildren: [e && /* @__PURE__ */ (0, B.jsx)(MU, { vm: n }), t && /* @__PURE__ */ (0, B.jsx)(LU, { vm: n })]\n}), BU = p(function({ vm: e, renderAvatar: t, isDragging: n = !1 }) {\n\tlet r = U(e);\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\tclassName: (0, z.default)(RU.container, { [RU.dragging]: n }),\n\t\tgap: \"var(--cpd-space-3x)\",\n\t\talign: \"center\",\n\t\tchildren: [t(r.room), /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\tclassName: RU.content,\n\t\t\tgap: \"var(--cpd-space-2x)\",\n\t\t\talign: \"center\",\n\t\t\tjustify: \"space-between\",\n\t\t\tchildren: [\n\t\t\t\t/* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\t\tclassName: RU.ellipsis,\n\t\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\t\t\t\tclassName: RU.roomName,\n\t\t\t\t\t\ttitle: r.name,\n\t\t\t\t\t\t\"data-testid\": \"room-name\",\n\t\t\t\t\t\tchildren: [r.name, r.userStatus && /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\t\t\t\t\t\tdescription: r.userStatus.text,\n\t\t\t\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\t\t\t\tas: \"span\",\n\t\t\t\t\t\t\t\tclassName: RU.userStatusEmoji,\n\t\t\t\t\t\t\t\tchildren: r.userStatus.emoji\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})]\n\t\t\t\t\t}), r.messagePreview && /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\t\t\t\tas: \"div\",\n\t\t\t\t\t\tsize: \"sm\",\n\t\t\t\t\t\tclassName: RU.ellipsis,\n\t\t\t\t\t\ttitle: r.messagePreview,\n\t\t\t\t\t\tchildren: r.messagePreview\n\t\t\t\t\t})]\n\t\t\t\t}),\n\t\t\t\t!n && (r.showMoreOptionsMenu || r.showNotificationMenu) && /* @__PURE__ */ (0, B.jsx)(zU, {\n\t\t\t\t\tshowMoreOptionsMenu: r.showMoreOptionsMenu,\n\t\t\t\t\tshowNotificationMenu: r.showNotificationMenu,\n\t\t\t\t\tvm: e\n\t\t\t\t}),\n\t\t\t\t/* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\t\tclassName: RU.notificationDecoration,\n\t\t\t\t\t\"aria-hidden\": !0,\n\t\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(FU, { ...r.notification })\n\t\t\t\t})\n\t\t\t]\n\t\t})]\n\t});\n});\n//#endregion\n//#region src/room-list/VirtualizedRoomListView/RoomListItemWrapper/RoomListItemView/RoomListItemView.tsx\nfunction VU(e, t) {\n\treturn t.isUnsentMessage ? W(\"room_list|a11y|unsent_message\", { roomName: e }) : t.invited ? W(\"room_list|a11y|invitation\", { roomName: e }) : t.isMention && t.count ? W(\"room_list|a11y|mention\", {\n\t\troomName: e,\n\t\tcount: t.count\n\t}) : t.hasUnreadCount && t.count ? W(\"room_list|a11y|unread\", {\n\t\troomName: e,\n\t\tcount: t.count\n\t}) : t.callType === \"voice\" ? W(\"room_list|a11y|voice_call\", { roomName: e }) : t.callType === \"video\" ? W(\"room_list|a11y|video_call\", { roomName: e }) : W(\"room_list|a11y|default\", { roomName: e });\n}\nvar HU = p(function({ vm: e, isSelected: t, isFocused: n, onFocus: r, isFirstItem: i, isLastItem: a, renderAvatar: o, isDragSource: s = !1, ref: c, ...l }) {\n\tlet u = w(null), d = Qk([c, u]), f = U(e), [p, m] = T(!1);\n\t_(() => {\n\t\tn && u.current?.focus({ preventScroll: !0 });\n\t}, [n]);\n\tlet h = (e) => {\n\t\tr(f.id, e), !e.currentTarget.contains(e.relatedTarget) && e.currentTarget.matches(\":focus-visible\") && m(!0);\n\t}, g = (e) => {\n\t\t!e.currentTarget.contains(e.relatedTarget) && !e.currentTarget.querySelector(\"[data-state=\\\"open\\\"]\") && m(!1);\n\t}, v = VU(f.name, f.notification);\n\treturn /* @__PURE__ */ (0, B.jsx)(PU, {\n\t\tvm: e,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(H, {\n\t\t\tas: \"button\",\n\t\t\tref: d,\n\t\t\tclassName: (0, z.default)(RU.roomListItem, \"mx_RoomListItemView\", {\n\t\t\t\t[RU.keyboardActive]: p,\n\t\t\t\t[RU.selected]: t,\n\t\t\t\t[RU.bold]: f.isBold,\n\t\t\t\t[RU.firstItem]: i,\n\t\t\t\t[RU.lastItem]: a,\n\t\t\t\t[RU.dragSource]: s,\n\t\t\t\tmx_RoomListItemView_selected: t\n\t\t\t}),\n\t\t\tgap: \"var(--cpd-space-3x)\",\n\t\t\talign: \"stretch\",\n\t\t\ttype: \"button\",\n\t\t\t\"aria-label\": v,\n\t\t\tonClick: e.onOpenRoom,\n\t\t\tonFocus: h,\n\t\t\tonBlur: g,\n\t\t\ttabIndex: n ? 0 : -1,\n\t\t\t\"aria-selected\": l.role === \"option\" ? t : void 0,\n\t\t\t...l,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(BU, {\n\t\t\t\tvm: e,\n\t\t\t\trenderAvatar: o\n\t\t\t})\n\t\t})\n\t});\n}), UU = p(function({ vm: e, isDragging: t = !1 }) {\n\tlet { title: n, displaySectionMenu: r, notification: i, isExpanded: a } = U(e);\n\treturn /* @__PURE__ */ (0, B.jsxs)(H, {\n\t\tclassName: (0, z.default)(AU.container, { [AU.dragging]: t }),\n\t\talign: \"center\",\n\t\tjustify: \"space-between\",\n\t\tgap: \"var(--cpd-space-2x)\",\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ (0, B.jsxs)(H, {\n\t\t\t\talign: \"center\",\n\t\t\t\tgap: \"var(--cpd-space-0-5x)\",\n\t\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(gS, {\n\t\t\t\t\tclassName: AU.chevron,\n\t\t\t\t\twidth: \"24px\",\n\t\t\t\t\theight: \"24px\",\n\t\t\t\t\tfill: \"var(--cpd-color-icon-secondary)\"\n\t\t\t\t}), /* @__PURE__ */ (0, B.jsx)(\"span\", {\n\t\t\t\t\tclassName: AU.title,\n\t\t\t\t\tchildren: n\n\t\t\t\t})]\n\t\t\t}),\n\t\t\t!a && i && /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\t\tclassName: AU.notificationDecoration,\n\t\t\t\t\"aria-hidden\": !0,\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(FU, { ...i })\n\t\t\t}),\n\t\t\tr && !t && /* @__PURE__ */ (0, B.jsx)(WU, { vm: e })\n\t\t]\n\t});\n});\nfunction WU({ vm: e }) {\n\tlet [t, n] = T(!1);\n\treturn /* @__PURE__ */ (0, B.jsx)(ue, {\n\t\topen: t,\n\t\tonOpenChange: n,\n\t\ttitle: W(\"room_list|section_header|more_options\"),\n\t\tshowTitle: !1,\n\t\talign: \"start\",\n\t\ttrigger: /* @__PURE__ */ (0, B.jsx)(M, {\n\t\t\tclassName: AU.menu,\n\t\t\ttooltip: W(\"room_list|section_header|more_options\"),\n\t\t\t\"aria-label\": W(\"room_list|section_header|more_options\"),\n\t\t\tsize: \"24px\",\n\t\t\tstyle: { padding: \"2px\" },\n\t\t\tcolor: \"var(--cpd-color-icon-primary)\",\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(wC, { fill: \"var(--cpd-color-icon-primary)\" })\n\t\t}),\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\t\tonKeyDown: (e) => e.stopPropagation(),\n\t\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\thideChevron: !0,\n\t\t\t\tIcon: PS,\n\t\t\t\tlabel: W(\"room_list|section_header|edit_section\"),\n\t\t\t\tonSelect: () => e.editSection(),\n\t\t\t\tonClick: (e) => e.stopPropagation()\n\t\t\t}), /* @__PURE__ */ (0, B.jsx)(N, {\n\t\t\t\thideChevron: !0,\n\t\t\t\tIcon: wS,\n\t\t\t\tlabel: W(\"room_list|section_header|remove_section\"),\n\t\t\t\tonSelect: () => e.removeSection(),\n\t\t\t\tonClick: (e) => e.stopPropagation()\n\t\t\t})]\n\t\t})\n\t});\n}\n//#endregion\n//#region src/room-list/VirtualizedRoomListView/dragAndDrop.ts\nfunction GU(e) {\n\treturn e?.type === \"section\";\n}\n//#endregion\n//#region src/room-list/VirtualizedRoomListView/RoomListSectionHeaderView/RoomListSectionHeaderView.tsx\nvar KU = p(function({ vm: e, isFocused: t, onFocus: n, indexInList: r, sectionIndex: i, sectionCount: a, roomCountInSection: o }) {\n\tlet { translate: s } = V(), { id: c, title: l, isExpanded: u, isUnread: d, canBeReordered: f } = U(e), p = i === a - 1, { ref: m, handleRef: h, isDragSource: g } = TH({\n\t\tid: c,\n\t\tdata: {\n\t\t\ttype: \"section\",\n\t\t\tindex: i\n\t\t},\n\t\tplugins: [NB.configure({ feedback: \"clone\" })],\n\t\tmodifiers: [OU],\n\t\tdisabled: !f\n\t}), { source: v } = aU(), y = v?.data, b = GU(y), { ref: x, isDropTarget: S } = iU({\n\t\tid: c,\n\t\tdata: {\n\t\t\ttype: \"section\",\n\t\t\tindex: i\n\t\t},\n\t\tdisabled: g || b && !f\n\t}), C = S && y?.type === \"room\", ee = S && b, te = GU(y) ? y.index : -1, E = ee && te > i, ne = ee && !E, D = ee && E, O = w(u);\n\tg || (O.current = u);\n\tlet k = g ? O.current : u, re = w(null), ie = Qk([\n\t\t...f ? [m, h] : [],\n\t\tx,\n\t\tre\n\t]);\n\t_(() => {\n\t\tt && re.current?.focus({ preventScroll: !0 });\n\t}, [t]);\n\tlet [A, j] = T(!1), ae = (e) => {\n\t\tn(c, e), !e.currentTarget.contains(e.relatedTarget) && e.currentTarget.matches(\":focus-visible\") && j(!0);\n\t}, oe = (e) => {\n\t\t!e.currentTarget.contains(e.relatedTarget) && !e.currentTarget.querySelector(\"[data-state=\\\"open\\\"]\") && j(!1);\n\t};\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\"aria-expanded\": k,\n\t\t...gU(r, i, o),\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\trole: \"gridcell\",\n\t\t\t\"aria-expanded\": k,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\t\tref: ie,\n\t\t\t\ttype: \"button\",\n\t\t\t\tclassName: (0, z.default)(AU.header, {\n\t\t\t\t\t[AU.keyboardActive]: A,\n\t\t\t\t\t[AU.firstHeader]: i === 0,\n\t\t\t\t\t[AU.lastHeader]: !u && p,\n\t\t\t\t\t[AU.unread]: d,\n\t\t\t\t\t[AU.dragSource]: g,\n\t\t\t\t\t[AU.dropTarget]: C,\n\t\t\t\t\t[AU.dropTargetBottom]: ne,\n\t\t\t\t\t[AU.dropTargetTop]: D\n\t\t\t\t}),\n\t\t\t\tonClick: () => !g && e.onClick(),\n\t\t\t\tonKeyDown: (t) => {\n\t\t\t\t\tt.code === \"ArrowRight\" && !u || t.code === \"ArrowLeft\" && u ? (t.preventDefault(), t.stopPropagation(), e.onClick()) : t.code === \"ArrowRight\" && u && o > 0 && (t.preventDefault(), t.stopPropagation(), t.currentTarget.dispatchEvent(new KeyboardEvent(\"keydown\", {\n\t\t\t\t\t\tcode: \"ArrowDown\",\n\t\t\t\t\t\tkey: \"ArrowDown\",\n\t\t\t\t\t\tbubbles: !0\n\t\t\t\t\t})));\n\t\t\t\t},\n\t\t\t\t\"aria-expanded\": k,\n\t\t\t\tonFocus: ae,\n\t\t\t\tonBlur: oe,\n\t\t\t\ttabIndex: t ? 0 : -1,\n\t\t\t\t\"aria-label\": s(d ? \"room_list|section_header|toggle_unread\" : \"room_list|section_header|toggle\", { section: l }),\n\t\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(UU, { vm: e })\n\t\t\t})\n\t\t})\n\t});\n}), qU = p(function({ vm: e, isFirst: t }) {\n\tlet { isExpanded: n, isUnread: r } = U(e);\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: AU.stickyBackground,\n\t\t\"aria-hidden\": !0,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"button\", {\n\t\t\ttype: \"button\",\n\t\t\tclassName: (0, z.default)(AU.header, {\n\t\t\t\t[AU.firstHeader]: t,\n\t\t\t\t[AU.unread]: r\n\t\t\t}),\n\t\t\t\"aria-expanded\": n,\n\t\t\tonClick: e.onClick,\n\t\t\ttabIndex: -1,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(UU, { vm: e })\n\t\t})\n\t});\n}), JU = { dragOverlay: \"_dragOverlay_s80l5_8\" }, YU = p(function({ vm: e }) {\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\"aria-hidden\": !0,\n\t\tclassName: (0, z.default)(AU.header, JU.dragOverlay),\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(UU, {\n\t\t\tvm: e,\n\t\t\tisDragging: !0\n\t\t})\n\t});\n}), XU = p(function({ roomIndex: e, roomCount: t, roomIndexInSection: n, isInFlatList: r, ...i }) {\n\tif (r) return /* @__PURE__ */ (0, B.jsx)(HU, {\n\t\t...i,\n\t\t...hU(\"listbox\", e, t)\n\t});\n\tlet a = n === 0;\n\treturn /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t...hU(\"treegrid\", e, n),\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\t\trole: \"gridcell\",\n\t\t\t\"aria-selected\": i.isSelected,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(ZU, {\n\t\t\t\t...i,\n\t\t\t\tonKeyDown: (e) => {\n\t\t\t\t\te.code === \"ArrowLeft\" && a && (e.preventDefault(), e.stopPropagation(), e.currentTarget.dispatchEvent(new KeyboardEvent(\"keydown\", {\n\t\t\t\t\t\tcode: \"ArrowUp\",\n\t\t\t\t\t\tkey: \"ArrowUp\",\n\t\t\t\t\t\tbubbles: !0\n\t\t\t\t\t})));\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t});\n});\nfunction ZU(e) {\n\tlet { ref: t, handleRef: n, isDragSource: r } = TH({\n\t\tid: U(e.vm).id,\n\t\tdata: { type: \"room\" },\n\t\tplugins: [NB.configure({ feedback: \"clone\" })],\n\t\tmodifiers: [OU]\n\t}), i = Qk([t, n]);\n\treturn /* @__PURE__ */ (0, B.jsx)(HU, {\n\t\t...e,\n\t\tref: i,\n\t\tisDragSource: r\n\t});\n}\nvar QU = { dragOverlay: \"_dragOverlay_vsda5_8\" }, $U = p(function({ vm: e, renderAvatar: t }) {\n\treturn /* @__PURE__ */ (0, B.jsx)(H, {\n\t\t\"aria-hidden\": !0,\n\t\tclassName: (0, z.default)(RU.roomListItem, QU.dragOverlay),\n\t\tgap: \"var(--cpd-space-3x)\",\n\t\talign: \"stretch\",\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(BU, {\n\t\t\tvm: e,\n\t\t\trenderAvatar: t,\n\t\t\tisDragging: !0\n\t\t})\n\t});\n});\n//#endregion\n//#region src/room-list/VirtualizedRoomListView/RoomListAccessibilityPlugin.ts\nfunction eW(e, t = \"polite\") {\n\tlet n = document.createElement(\"div\");\n\treturn n.id = e, n.setAttribute(\"role\", t === \"assertive\" ? \"alert\" : \"status\"), n.setAttribute(\"aria-live\", t), n.setAttribute(\"aria-atomic\", \"true\"), Object.assign(n.style, {\n\t\tposition: \"fixed\",\n\t\twidth: \"1px\",\n\t\theight: \"1px\",\n\t\tmargin: \"-1px\",\n\t\tborder: \"0\",\n\t\tpadding: \"0\",\n\t\toverflow: \"hidden\",\n\t\tclip: \"rect(0 0 0 0)\",\n\t\tclipPath: \"inset(100%)\",\n\t\twhiteSpace: \"nowrap\"\n\t}), n;\n}\nfunction tW(e, t) {\n\tlet n = document.createElement(\"div\");\n\treturn n.id = e, n.style.display = \"none\", n.textContent = t, n;\n}\nvar nW = class extends aF {\n\tliveRegion;\n\tassertiveRegion;\n\tinstructions;\n\tunsubscribers = [];\n\tconstructor(e, t) {\n\t\tsuper(e, t);\n\t\tlet n = crypto.randomUUID(), r = crypto.randomUUID(), i = crypto.randomUUID();\n\t\tthis.liveRegion = eW(n), this.assertiveRegion = eW(r, \"assertive\"), document.body.append(this.liveRegion, this.assertiveRegion);\n\t\tlet a = t?.announcements ?? {};\n\t\tfor (let [t, n] of Object.entries(a)) {\n\t\t\tif (!n) continue;\n\t\t\tlet r;\n\t\t\tr = t === \"dragend\" ? e.monitor.addEventListener(\"dragend\", (e) => {\n\t\t\t\tlet t = n(e);\n\t\t\t\tthis.announceAssertive(t);\n\t\t\t}) : e.monitor.addEventListener(t, (e) => {\n\t\t\t\tthis.announce(n(e));\n\t\t\t}), this.unsubscribers.push(r);\n\t\t}\n\t\tt?.instructions && (this.instructions = tW(i, t.instructions), document.body.append(this.instructions), this.registerEffect(() => {\n\t\t\tif (this.instructions) for (let e of this.manager.registry.draggables.value) {\n\t\t\t\tlet t = e.handle ?? e.element;\n\t\t\t\tt && !t.hasAttribute(\"aria-describedby\") && t.setAttribute(\"aria-describedby\", i);\n\t\t\t}\n\t\t}));\n\t}\n\tannounce(e) {\n\t\t!e || this.liveRegion.textContent === e || (this.liveRegion.textContent = e);\n\t}\n\tannounceAssertive(e) {\n\t\te && (this.assertiveRegion.textContent = \"\", this.assertiveRegion.textContent = e);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tfor (let e of this.unsubscribers) e();\n\t\tthis.unsubscribers.length = 0, this.liveRegion.remove(), this.assertiveRegion.remove(), this.instructions?.remove();\n\t}\n};\nfunction rW(e) {\n\tlet { translate: t } = V(), n = h((t) => GU(t.data) ? e.getSectionHeaderViewModel(t.id).getSnapshot().title : e.getRoomItemViewModel(t.id)?.getSnapshot().name, [e]), r = S(() => ({\n\t\tdragstart: ({ operation: { source: e } }) => {\n\t\t\tif (!e) return;\n\t\t\tlet r = n(e);\n\t\t\tif (r !== void 0) return t(\"room_list|a11y|drag_start\", { source: r });\n\t\t},\n\t\tdragover: ({ operation: { source: r, target: i } }) => {\n\t\t\tif (!r) return;\n\t\t\tlet a = n(r);\n\t\t\tif (a === void 0) return;\n\t\t\tif (GU(r.data) && !i) return t(\"room_list|a11y|drag_over_original\", { source: a });\n\t\t\tif (!i) return;\n\t\t\tlet o = e.getSectionHeaderViewModel(i.id).getSnapshot().title;\n\t\t\treturn GU(r.data) && GU(i.data) ? r.data.index > i.data.index ? t(\"room_list|a11y|drag_over_before\", {\n\t\t\t\tsource: a,\n\t\t\t\ttarget: o\n\t\t\t}) : t(\"room_list|a11y|drag_over_after\", {\n\t\t\t\tsource: a,\n\t\t\t\ttarget: o\n\t\t\t}) : t(\"room_list|a11y|drag_over\", {\n\t\t\t\tsource: a,\n\t\t\t\ttarget: o\n\t\t\t});\n\t\t},\n\t\tdragend: ({ operation: { source: r, target: i }, canceled: a }) => {\n\t\t\tif (!r) return;\n\t\t\tif (a) return t(\"room_list|a11y|drag_cancelled\");\n\t\t\tlet o = n(r);\n\t\t\tif (o === void 0) return;\n\t\t\tif (GU(r.data) && !i) return t(\"room_list|a11y|drag_end_original\", { source: o });\n\t\t\tif (!i) return;\n\t\t\tlet s = e.getSectionHeaderViewModel(i.id).getSnapshot().title;\n\t\t\treturn GU(r.data) && GU(i.data) ? r.data.index > i.data.index ? t(\"room_list|a11y|drag_end_before\", {\n\t\t\t\tsource: o,\n\t\t\t\ttarget: s\n\t\t\t}) : t(\"room_list|a11y|drag_end_after\", {\n\t\t\t\tsource: o,\n\t\t\t\ttarget: s\n\t\t\t}) : t(\"room_list|a11y|drag_end\", {\n\t\t\t\tsource: o,\n\t\t\t\ttarget: s\n\t\t\t});\n\t\t}\n\t}), [\n\t\te,\n\t\tt,\n\t\tn\n\t]), i = t(\"room_list|a11y|drag_instructions\");\n\treturn h((e) => [...e.filter((e) => e !== zz), QP(nW, {\n\t\tannouncements: r,\n\t\tinstructions: i\n\t})], [r, i]);\n}\nvar iW = { roomList: \"_roomList_1yq7k_11\" }, aW = 1300;\nfunction oW({ vm: e, renderAvatar: t, onKeyDown: n }) {\n\tlet { translate: r } = V(), { roomListState: i, sections: a, isFlatList: s } = U(e), c = i.activeRoomIndex, l = i.scrollToSectionTag, u = w(void 0), d = w(void 0), f = w(null), p = h((e) => {\n\t\tf.current = e;\n\t}, []), m = w(null), g = w(null), v = w(/* @__PURE__ */ new Map()), y = w(null), b = w(-1), C = h(() => {\n\t\tlet t = -1;\n\t\tfor (let [e, n] of v.current) {\n\t\t\tif (!n) continue;\n\t\t\tlet r = Number(e.dataset.itemIndex);\n\t\t\tNumber.isFinite(r) && r > t && (t = r);\n\t\t}\n\t\tt !== b.current && (b.current = t, e.updateVisibleFold(t));\n\t}, [e]), T = h((e) => {\n\t\tfor (let t of e) v.current.set(t.target, t.isIntersecting);\n\t\tC();\n\t}, [C]), ee = h(() => {\n\t\tlet e = m.current, t = g.current;\n\t\tif (!e || !t) return;\n\t\tlet n = new Set(e.querySelectorAll(\"[data-item-index]\"));\n\t\tfor (let e of n) v.current.has(e) || (t.observe(e), v.current.set(e, !1));\n\t\tfor (let e of v.current.keys()) n.has(e) || (t.unobserve(e), v.current.delete(e));\n\t\tC();\n\t}, [C]), te = h(() => {\n\t\ty.current === null && (y.current = requestAnimationFrame(() => {\n\t\t\ty.current = null, ee();\n\t\t}));\n\t}, [ee]), E = h((e) => {\n\t\tg.current?.disconnect(), g.current = null, v.current.clear(), b.current = -1, y.current !== null && (cancelAnimationFrame(y.current), y.current = null);\n\t\tlet t = e instanceof HTMLElement ? e : null;\n\t\tm.current = t, t && (g.current = new IntersectionObserver(T, { root: t }), te());\n\t}, [T, te]), ne = S(() => a.flatMap((e) => e.roomIds), [a]), D = ne.length, O = a.length, k = D + O, re = S(() => a.map((e) => ({\n\t\theader: e.id,\n\t\titems: e.roomIds\n\t})), [a]), ie = h((e, t) => {\n\t\tlet n, r, i = 0, o = 0;\n\t\tfor (let s of a) {\n\t\t\tlet a = i + s.roomIds.length;\n\t\t\tif (n === void 0 && e <= a && (n = o + Math.max(0, e - i - 1)), r === void 0 && t <= a && (r = o + Math.max(0, t - i)), n !== void 0 && r !== void 0) break;\n\t\t\ti = a + 1, o += s.roomIds.length;\n\t\t}\n\t\treturn [n ?? 0, r ?? o];\n\t}, [a]), A = h((t) => {\n\t\tif (s) e.updateVisibleRooms(t.startIndex, t.endIndex + 1);\n\t\telse {\n\t\t\tlet [n, r] = ie(t.startIndex, t.endIndex);\n\t\t\te.updateVisibleRooms(n, r);\n\t\t}\n\t\tte();\n\t}, [\n\t\te,\n\t\tte,\n\t\ts,\n\t\tie\n\t]), j = rW(e), ae = h((e, n, r, i, a, s) => {\n\t\tlet { activeRoomIndex: c, roomCount: l, vm: u, isFlatList: d } = r.context, f = c === e, p = u.getRoomItemViewModel(n);\n\t\tif (!p) return /* @__PURE__ */ (0, B.jsx)(o.Fragment, {}, `stale-${e}`);\n\t\tlet m = r.focused && r.tabIndexKey === n, h = d && e === 0, g = !!((d || a) && e === l - 1);\n\t\treturn /* @__PURE__ */ (0, B.jsx)(XU, {\n\t\t\tvm: p,\n\t\t\trenderAvatar: t,\n\t\t\tisSelected: f,\n\t\t\tisFocused: m,\n\t\t\tonFocus: i,\n\t\t\troomIndex: e,\n\t\t\troomIndexInSection: s || 0,\n\t\t\troomCount: l,\n\t\t\tisFirstItem: h,\n\t\t\tisLastItem: g,\n\t\t\tisInFlatList: d\n\t\t}, n);\n\t}, [t]), oe = h((e, t, n, r, i) => {\n\t\tlet { sections: a } = n.context, o = a[i].roomIds.findIndex((e) => e === t), s = i === a.length - 1;\n\t\treturn ae(e, t, n, r, s, o);\n\t}, [ae]), M = h((e, t, n, r) => ae(e, t, n, r), [ae]), se = h((e, t, n, r) => {\n\t\tlet { vm: i, sectionCount: a, sections: o } = n.context, s = i.getSectionHeaderViewModel(t), c = o.slice(0, e).reduce((e, t) => e + t.roomIds.length + 1, 0), l = o[e].roomIds.length;\n\t\treturn /* @__PURE__ */ (0, B.jsx)(KU, {\n\t\t\tvm: s,\n\t\t\tisFocused: n.focused && n.tabIndexKey === t,\n\t\t\tonFocus: r,\n\t\t\tindexInList: c,\n\t\t\tsectionIndex: e,\n\t\t\tsectionCount: a,\n\t\t\troomCountInSection: l\n\t\t}, t);\n\t}, []), ce = h((e, t, n) => /* @__PURE__ */ (0, B.jsx)(qU, {\n\t\tvm: n.context.vm.getSectionHeaderViewModel(t),\n\t\tisFirst: e === 0\n\t}, t), []), le = h((e) => e, []), ue = h((e) => e, []), N = S(() => ({\n\t\tspaceId: i.spaceId || \"\",\n\t\tfilterKeys: i.filterKeys,\n\t\tsections: a,\n\t\tactiveRoomIndex: c,\n\t\troomCount: D,\n\t\tsectionCount: O,\n\t\tvm: e,\n\t\tisFlatList: s\n\t}), [\n\t\ti.spaceId,\n\t\ti.filterKeys,\n\t\ta,\n\t\tc,\n\t\tD,\n\t\tO,\n\t\te,\n\t\ts\n\t]), de = h((e) => {\n\t\tlet { spaceId: t, filterKeys: n } = e.context.context, r = u.current !== t || !ly(d.current, n);\n\t\treturn d.current = n, u.current = t, r ? {\n\t\t\talign: \"start\",\n\t\t\tindex: c || 0,\n\t\t\tbehavior: \"auto\"\n\t\t} : !1;\n\t}, [c]);\n\tx(() => {\n\t\tif (l === void 0) return;\n\t\tlet e = a.findIndex((e) => e.id === l);\n\t\tif (e === -1) return;\n\t\tlet t = a.slice(0, e).reduce((e, t) => e + t.roomIds.length + 1, 0);\n\t\tf.current?.scrollIntoView({\n\t\t\tindex: t,\n\t\t\talign: \"start\",\n\t\t\tbehavior: \"auto\"\n\t\t});\n\t}, [l, a]), _(() => (e.setScrollToIndex((e) => f.current?.scrollIntoView({\n\t\tindex: e,\n\t\talign: \"center\",\n\t\tbehavior: \"auto\"\n\t})), () => e.setScrollToIndex(void 0)), [e]);\n\tlet fe = h(() => !0, []), pe = h(() => !0, []), me = S(() => ({\n\t\ttop: aW,\n\t\tbottom: aW\n\t}), []), he = {\n\t\tcontext: N,\n\t\tscrollIntoViewOnChange: de,\n\t\t...c === void 0 ? {} : { initialTopMostItemIndex: c },\n\t\t\"data-testid\": \"room-list\",\n\t\t\"aria-label\": r(\"room_list|list_title\"),\n\t\tgetItemKey: le,\n\t\tisItemFocusable: fe,\n\t\trangeChanged: A,\n\t\tscrollerRef: E,\n\t\tonKeyDown: n,\n\t\tincreaseViewportBy: me,\n\t\tclassName: iW.roomList\n\t};\n\treturn s ? /* @__PURE__ */ (0, B.jsx)(uU, {\n\t\t...he,\n\t\t...mU(\"listbox\"),\n\t\tscrollHandleRef: p,\n\t\titems: ne,\n\t\tgetItemComponent: M\n\t}) : /* @__PURE__ */ (0, B.jsxs)(xH, {\n\t\tonDragStart: (t) => {\n\t\t\tlet { source: n } = t.operation;\n\t\t\tGU(n?.data) && e.onSectionDragStart();\n\t\t},\n\t\tonDragEnd: (t) => {\n\t\t\tlet { source: n, target: r } = t.operation;\n\t\t\tGU(n?.data) && e.onSectionDragEnd(), !(t.canceled || !n || !r) && (GU(n.data) ? e.changeSectionOrder(String(n.id), String(r.id)) : e.changeRoomSection(String(n.id), String(r.id)));\n\t\t},\n\t\tsensors: [EV.configure({ activationConstraints: [new SV.Distance({ value: 5 })] }), hV.configure({\n\t\t\toffset: 17,\n\t\t\tkeyboardCodes: {\n\t\t\t\tstart: [\"Space\"],\n\t\t\t\tcancel: [\"Escape\"],\n\t\t\t\tend: [\"Space\"],\n\t\t\t\tup: [\"ArrowUp\"],\n\t\t\t\tdown: [\"ArrowDown\"],\n\t\t\t\tleft: [\"ArrowLeft\"],\n\t\t\t\tright: [\"ArrowRight\"]\n\t\t\t}\n\t\t})],\n\t\tplugins: j,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(DH, {\n\t\t\tdropAnimation: null,\n\t\t\tchildren: /* @__PURE__ */ (0, B.jsx)(cW, {\n\t\t\t\tvm: e,\n\t\t\t\trenderAvatar: t\n\t\t\t})\n\t\t}), /* @__PURE__ */ (0, B.jsx)(sW, {\n\t\t\t...he,\n\t\t\t...mU(\"treegrid\", k),\n\t\t\tscrollHandleRef: p,\n\t\t\tgroups: re,\n\t\t\tgetHeaderKey: ue,\n\t\t\tgetGroupHeaderComponent: se,\n\t\t\tgetItemComponent: oe,\n\t\t\tisGroupHeaderFocusable: pe,\n\t\t\trenderStickyHeader: ce\n\t\t})]\n\t});\n}\nfunction sW(e) {\n\tlet { source: t } = aU();\n\treturn /* @__PURE__ */ (0, B.jsx)(pU, {\n\t\t...e,\n\t\tdisableKeyboardNavigation: t !== null\n\t});\n}\nfunction cW({ vm: e, renderAvatar: t }) {\n\tlet { source: n } = aU();\n\tif (!n) return null;\n\tif (GU(n.data)) return /* @__PURE__ */ (0, B.jsx)(YU, { vm: e.getSectionHeaderViewModel(String(n.id)) });\n\tlet r = e.getRoomItemViewModel(String(n.id));\n\treturn r ? /* @__PURE__ */ (0, B.jsx)($U, {\n\t\tvm: r,\n\t\trenderAvatar: t\n\t}) : null;\n}\nvar lW = { toast: \"_toast_vbkbz_8\" };\n//#endregion\n//#region src/room-list/RoomListView/RoomListToast/RoomListToast.tsx\nfunction uW({ type: e, onClose: t, onClick: n }) {\n\tlet { translate: r } = V();\n\tif (e === \"unread_activity\") return /* @__PURE__ */ (0, B.jsx)(ye, {\n\t\tclassName: lW.toast,\n\t\tIcon: Xx,\n\t\tonClick: n,\n\t\tchildren: r(\"room_list|unread_messages\")\n\t});\n\tlet i = r(e === \"section_created\" ? \"room_list|section_created\" : \"room_list|chat_moved\");\n\treturn /* @__PURE__ */ (0, B.jsx)(ye, {\n\t\tclassName: lW.toast,\n\t\tonClose: t,\n\t\ttooltip: r(\"action|close\"),\n\t\tchildren: i\n\t});\n}\nvar dW = {\n\tlist: \"_list_1hk4o_8\",\n\tscrollbar: \"_scrollbar_1hk4o_13\"\n}, fW = { scrollbar: \"_scrollbar_1d5jg_8\" };\n//#endregion\n//#region src/core/utils/Scrollbar/AutoHideScrollbar.tsx\nfunction pW(e) {\n\tlet { as: t = \"div\", className: n, onScroll: r, tabIndex: i, wrappedRef: a, children: s, ...c } = e, l = o.useRef(null), u = o.useRef(a);\n\tu.current = a;\n\tlet d = o.useCallback((e) => {\n\t\tl.current = e;\n\t}, []);\n\treturn o.useLayoutEffect(() => (u.current?.(l.current), () => {\n\t\tu.current?.(null);\n\t}), []), o.useLayoutEffect(() => {\n\t\tlet e = l.current;\n\t\tif (!(!e || !r)) return e.addEventListener(\"scroll\", r, { passive: !0 }), () => {\n\t\t\te.removeEventListener(\"scroll\", r);\n\t\t};\n\t}, [r]), o.createElement(t, {\n\t\t...c,\n\t\tref: d,\n\t\tclassName: (0, z.default)(fW.scrollbar, n),\n\t\ttabIndex: i ?? -1\n\t}, s);\n}\n//#endregion\n//#region src/room-list/RoomListView/RoomListView.tsx\nvar mW = ({ vm: e, renderAvatar: t, onKeyDown: n }) => {\n\tlet r = U(e), i;\n\treturn i = r.isLoadingRooms ? /* @__PURE__ */ (0, B.jsx)(mM, {}) : r.isRoomListEmpty ? /* @__PURE__ */ (0, B.jsx)(gM, { vm: e }) : /* @__PURE__ */ (0, B.jsx)(oW, {\n\t\tvm: e,\n\t\trenderAvatar: t,\n\t\tonKeyDown: n\n\t}), /* @__PURE__ */ (0, B.jsxs)(B.Fragment, { children: [/* @__PURE__ */ (0, B.jsx)(\"div\", { children: /* @__PURE__ */ (0, B.jsx)(fM, {\n\t\tfilterIds: r.filterIds,\n\t\tactiveFilterId: r.activeFilterId,\n\t\tonToggleFilter: e.onToggleFilter\n\t}) }), /* @__PURE__ */ (0, B.jsx)(H, {\n\t\tdirection: \"column\",\n\t\tclassName: dW.list,\n\t\tchildren: /* @__PURE__ */ (0, B.jsxs)(pW, {\n\t\t\tclassName: dW.scrollbar,\n\t\t\tchildren: [i, r.toast && /* @__PURE__ */ (0, B.jsx)(uW, {\n\t\t\t\ttype: r.toast,\n\t\t\t\tonClose: e.closeToast,\n\t\t\t\tonClick: e.scrollToUnreadActivity\n\t\t\t})]\n\t\t})\n\t})] });\n}, hW = {\n\t\"box-flex\": \"_box-flex_1odfs_9\",\n\t\"box-shrink\": \"_box-shrink_1odfs_13\",\n\t\"box-grow\": \"_box-grow_1odfs_17\"\n};\n//#endregion\n//#region src/core/utils/Box/Box.tsx\nfunction gW({ as: e = \"div\", flex: t = null, shrink: n = null, grow: r = null, className: i, children: a, ...s }) {\n\tlet c = S(() => {\n\t\tlet e = {};\n\t\treturn t && (e[\"--mx-box-flex\"] = t), n && (e[\"--mx-box-shrink\"] = n), r && (e[\"--mx-box-grow\"] = r), e;\n\t}, [\n\t\tt,\n\t\tr,\n\t\tn\n\t]);\n\treturn o.createElement(e, {\n\t\t...s,\n\t\tclassName: (0, z.default)(i, {\n\t\t\t[hW[\"box-flex\"]]: !!t,\n\t\t\t[hW[\"box-shrink\"]]: !!n,\n\t\t\t[hW[\"box-grow\"]]: !!r\n\t\t}),\n\t\tstyle: c\n\t}, a);\n}\n//#endregion\n//#region src/resize/group/GroupView.tsx\nfunction _W({ vm: e, children: t }) {\n\treturn U(e), /* @__PURE__ */ (0, B.jsx)(De, {\n\t\tonLayoutChanged: (t) => {\n\t\t\tlet n = t[xW];\n\t\t\te.onLeftPanelResized(n);\n\t\t},\n\t\tchildren: t\n\t});\n}\nvar vW = {\n\tseparator: \"_separator_1evkj_8\",\n\tactiveSeparatorContainer: \"_activeSeparatorContainer_1evkj_31\",\n\tactiveSeparator: \"_activeSeparator_1evkj_31\"\n};\n//#endregion\n//#region src/resize/separator/SeparatorView.tsx\nfunction yW({ vm: e, className: t }) {\n\tlet { translate: n } = V(), { isCollapsed: r } = U(e), i = r ? \"bar\" : \"border\", a = /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: n(\"left_panel|separator_label\"),\n\t\tplacement: \"right\",\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(MS, {\n\t\t\twidth: \"20px\",\n\t\t\theight: \"12px\",\n\t\t\tviewBox: \"3.999704360961914 8.999704360961914 16.000295639038086 6.000591278076172\",\n\t\t\ttransform: \"rotate(90)\"\n\t\t})\n\t}), o = /* @__PURE__ */ (0, B.jsx)(\"div\", {\n\t\tclassName: vW.activeSeparatorContainer,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(\"div\", { className: vW.activeSeparator })\n\t});\n\treturn /* @__PURE__ */ (0, B.jsx)(Me, {\n\t\tclassName: (0, z.default)(vW.separator, t),\n\t\tonPointerUp: e.onPointerUp,\n\t\tonPointerMove: e.onPointerMove,\n\t\tonPointerDown: e.onPointerDown,\n\t\t\"aria-label\": n(\"left_panel|separator_label\"),\n\t\t\"data-separator-type\": i,\n\t\tonDoubleClick: e.onDoubleClick,\n\t\tdisableDoubleClick: !0,\n\t\tchildren: i === \"bar\" ? a : o\n\t});\n}\n//#endregion\n//#region src/resize/panel/LeftResizablePanelView.tsx\nfunction bW({ vm: e, className: t, children: n, ...r }) {\n\tlet { initialSize: i, isCollapsed: a } = U(e), [o, s] = Ne();\n\t_(() => {\n\t\to && e.setPanelHandle(o);\n\t}, [e, o]);\n\tlet c = i === void 0 ? r.defaultSize : `${i}%`;\n\treturn /* @__PURE__ */ (0, B.jsx)(Ae, {\n\t\tinert: a,\n\t\tid: xW,\n\t\tclassName: t,\n\t\tcollapsible: !0,\n\t\tminSize: r.minSize,\n\t\tmaxSize: r.maxSize,\n\t\tdefaultSize: c,\n\t\tonResize: e.onLeftPanelResize,\n\t\tpanelRef: s,\n\t\tchildren: n\n\t});\n}\n//#endregion\n//#region src/resize/index.ts\nvar xW = \"left-panel\", SW = l(null);\nSW.displayName = \"ToastContext\";\nfunction CW() {\n\tlet e = g(SW);\n\tif (!e) throw Error(\"Component must be wrapped in <ToastContext.Provider /> to use useToastContext\");\n\treturn e;\n}\nfunction wW() {\n\tlet e = S(() => new TW(), []), [t, n] = T(e.getActiveToast()), r = h(() => {\n\t\tn(e.getActiveToast());\n\t}, [n, e]);\n\treturn _(() => {\n\t\te.setCallback(r);\n\t}, [e, r]), [t, e];\n}\nvar TW = class {\n\tcurrentToast;\n\tupdateCallback;\n\tidSeq = 0;\n\tsetCallback(e) {\n\t\tthis.updateCallback = e;\n\t}\n\tdisplayToast(e) {\n\t\tlet t = ++this.idSeq;\n\t\treturn this.currentToast = {\n\t\t\tid: t,\n\t\t\tcontents: e\n\t\t}, this.updateCallback?.(), () => {\n\t\t\tthis.currentToast?.id === t && (this.currentToast = void 0, this.updateCallback?.());\n\t\t};\n\t}\n\tgetActiveToast() {\n\t\treturn this.currentToast?.contents;\n\t}\n}, EW = class {\n\tget language() {\n\t\treturn Nx();\n\t}\n\tregister(e) {\n\t\tlet t = {};\n\t\tfor (let n in e) for (let r in e[n]) t[r] = t[r] || {}, t[r][n] = e[n][r];\n\t\tfor (let e in t) jx(e, t[e]);\n\t}\n\ttranslate(e, t, n) {\n\t\treturn n ? W(e, t, n) : W(e, t);\n\t}\n\thumanizeTime = (e) => _A(e, this);\n}, DW = {\n\tstatusText: \"_statusText_1mkte_8\",\n\tmenuStatusText: \"_menuStatusText_1mkte_19\"\n}, OW = o.forwardRef(function({ status: e, ...t }, n) {\n\treturn /* @__PURE__ */ (0, B.jsxs)(\"div\", {\n\t\tref: n,\n\t\t...t,\n\t\tclassName: DW.statusText,\n\t\tchildren: [/* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\tas: \"span\",\n\t\t\tclassName: DW.menuStatusEmoji,\n\t\t\tchildren: e.emoji\n\t\t}), /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\tas: \"span\",\n\t\t\tclassName: DW.menuStatusText,\n\t\t\tchildren: e.text\n\t\t})]\n\t});\n});\n//#endregion\n//#region src/status/UserStatusIconView.tsx\nfunction kW({ vm: e }) {\n\tlet { status: t } = U(e);\n\treturn t ? /* @__PURE__ */ (0, B.jsx)(xe, {\n\t\tdescription: t.text,\n\t\tchildren: /* @__PURE__ */ (0, B.jsx)(P, {\n\t\t\tas: \"span\",\n\t\t\tchildren: t.emoji\n\t\t})\n\t}) : null;\n}\n//#endregion\nexport { DA as ActionBarAction, OA as ActionBarView, Oj as AudioPlayerView, pW as AutoHideScrollbar, Cy as AvatarWithDetails, Jx as Banner, Dy as BaseViewModel, gW as Box, qA as CallDirection, KA as CallType, Zd as Clock, JD as DEFAULT_EVENT_PRESENTATION, wA as DateSeparatorView, Nj as DecryptionFailureBodyView, Aj as DecryptionFailureReason, AA as DisambiguatedProfileView, wy as Disposables, fj as DmOngoingCallTileView, YA as DmTombstoneCallTileView, cj as DurationView, IA as E2eMessageSharedIconView, FA as E2ePadlock, MA as E2ePadlockIcon, BA as EncryptionEventState, VA as EncryptionEventView, LO as EventContentBodyView, XD as EventPresentationProvider, UA as EventPreviewView, zA as EventTileBubble, My as FacePileView, XO as FileBodyView, JO as FileBodyViewInfoIcon, qO as FileBodyViewState, uU as FlatVirtualizedList, H as Flex, _W as GroupView, pU as GroupedVirtualizedList, zO as HiddenBodyView, VO as HiddenMediaPlaceholder, oA as HistoryVisibilityBadge, EW as I18nApi, af as I18nContext, Tk as ImageBodyView, Ck as ImageBodyViewPlaceholder, Sk as ImageBodyViewState, kk as ImageReplyBodyView, Dk as ImageReplyBodyViewPlaceholder, hb as KEY_SEPARATOR, xW as LEFT_PANEL_ID, xD as LINKIFIED_DATA_ATTRIBUTE, bW as LeftResizablePanelView, ED as LinkedText, wD as LinkedTextContext, gD as LinkifyMatrixOpaqueIdType, mD as LinkifyOptionalSlashProtocols, pD as LinkifySupportedProtocols, _j as MJitsiWidgetEventView, yj as MKeyVerificationRequestView, KO as MediaBody, jy as MemberAvatarView, MD as MessageComposerUrlPreviewView, Uj as MessageTimestampView, jk as MjolnirBodyView, Oy as MockViewModel, NU as MoreOptionContent, GD as NotificationBadgeView, FU as NotificationDecoration, hD as PERMITTED_URL_SCHEMES, ke as Panel, qk as Pill, eA as PillInput, xj as PinnedMessageBadge, of as PlayPauseButton, zj as ReactionsRowButtonTooltipView, Vj as ReactionsRowButtonView, Rj as ReactionsRowView, qD as ReadMarker, UO as RedactedBodyView, Oe as ResizableGroup, Jj as RichItem, Qj as RichList, Cj as RoomAvatarEventView, gM as RoomListEmptyStateView, aM as RoomListHeaderView, BU as RoomListItemContent, PU as RoomListItemContextMenu, $U as RoomListItemDragOverlayView, zU as RoomListItemHoverMenu, MU as RoomListItemMoreOptionsMenu, LU as RoomListItemNotificationMenu, HU as RoomListItemView, XU as RoomListItemWrapper, mM as RoomListLoadingSkeleton, fM as RoomListPrimaryFilters, sM as RoomListSearchView, UU as RoomListSectionHeaderContent, KU as RoomListSectionHeaderView, qU as RoomListStickySectionHeaderView, uW as RoomListToast, mW as RoomListView, IU as RoomNotifState, lj as RoomOngoingCallTileView, nA as RoomStatusBarState, rA as RoomStatusBarView, GA as RoomTombstoneCallTileView, gj as RootCallTileView, Iy as RovingAction, rb as RovingGridIndexProvider, Fy as RovingStateActionType, Py as RovingTabIndexContext, Yy as RovingTabIndexProvider, ab as RovingTabIndexWrapper, ID as SasEmoji, by as SeekBar, je as Separator, yW as SeparatorView, HD as SetStatusView, Ty as Snapshot, OW as StatusTextView, zk as TextualBodyView, Lk as TextualBodyViewBodyWrapperKind, Ik as TextualBodyViewKind, Tj as TextualEventView, Fj as ThreadMessagePreviewView, Ij as ThreadSummaryView, Gk as TileErrorView, uA as TimelineSeparator, SW as ToastContext, TW as ToastRack, Vk as UnknownBodyView, Cw as UploadButton, Kj as UrlPreviewGroupView, UD as UserMenu, kW as UserStatusIconView, Pk as VideoBodyView, Nk as VideoBodyViewState, Ey as ViewModelSubscriptions, Uk as ViewSourceEventView, oW as VirtualizedRoomListView, Ee as VirtuosoMockContext, sA as WidgetContextMenuView, aA as WidgetPipView, W as _t, Vx as _tDom, Fx as _td, Ny as checkInputableElement, e as clamp, t as defaultNumber, yD as findLinksInString, Hy as findNextSiblingElement, Uy as findPreviousSiblingElement, Dj as formatBytes, qd as formatDateForInput, Kd as formatSeconds, vD as generateLinkedTextOptions, mU as getContainerAccessibleProps, gU as getGroupHeaderAccessibleProps, hU as getItemAccessibleProps, qx as getLangsJson, Nx as getLocale, mb as getNormalizedLanguageKeys, vA as humanizeRelativeTime, _A as humanizeTime, bD as isLinkable, aD as linkifyHtml, RE as linkifyString, Bx as lookupString, pb as normalizeLanguageKey, n as percentageOf, r as percentageWithin, jx as registerTranslations, Wx as replaceByRegexes, Hx as sanitizeForTranslation, Gx as setLanguage, Px as setLocale, Mx as setMissingEntryGenerator, Ux as substitute, i as sum, wW as useActiveToast, cM as useCollapseFilters, ky as useCreateAutoDisposedViewModel, ZD as useEventPresentation, V as useI18n, TD as useLinkedTextContext, Ay as useMockedViewModel, Xy as useRovingTabIndex, CW as useToastContext, U as useViewModel, lM as useVisibleFilters };\n"],"names":["MediaPreviewValue","AVATAR_BG_LIGHT_COLORS","AVATAR_TEXT_LIGHT_COLORS","AVATAR_BG_DARK_COLORS","AVATAR_TEXT_DARK_COLORS","avatarUrlForMember","member","width","height","resizeMethod","url","getMxcAvatarUrl","mediaFromMxc","getThumbnailOfSourceHttp","defaultAvatarUrlForString","userId","isDarkTheme","ThemeWatcher","getEffectiveTheme","getAvatarTextColor","id","index","useIdColorHash","avatarUrlForUser","user","avatarUrl","colorToDataURLCache","Map","s","colorIndex","cssVariable","color","getComputedStyle","document","body","getPropertyValue","dataUrl","get","length","startsWith","slice","split","some","c","isNaN","parseInt","isValidHexColor","canvas","createElement","ctx","getContext","fillStyle","fillRect","toDataURL","urlForColor","set","getInitialLetter","name","console","trace","initial","substring","getFirstGrapheme","toUpperCase","avatarUrlForRoom","room","avatarMxcOverride","mxc","media","undefined","srcHttp","isSpaceRoom","DMRoomMap","shared","getUserIdForRoomId","roomId","isLocalRoom","otherMember","getAvatarFallbackMember","getPickleAdditionalData","deviceId","additionalData","Uint8Array","i","charCodeAt","async","getConfig","configJsonFilename","URL","window","location","href","searchParams","Date","now","toString","res","fetch","cache","method","status","ok","json","SSO_HOMESERVER_URL_KEY","SSO_ID_SERVER_URL_KEY","SSO_IDP_ID_KEY","UpdateCheckStatus","UPDATE_DEFER_KEY","BasePlatform","constructor","_defineProperty","this","Promise","resolve","dis","register","onAction","bind","startUpdateCheck","relativeLocation","endsWith","domain","hostname","trimEnd","specificConfigPromise","generalConfigPromise","configJson","Object","keys","Error","getVectorConfig","payload","action","Action","ClientNotViable","OnLoggedOut","setNotificationCount","count","notificationCount","updateFavicon","setErrorStatus","errorDidOccur","canSelfUpdate","hideUpdateToast","localStorage","removeItem","dispatch","CheckUpdates","Checking","installUpdate","shouldShowUpdate","newVersion","MatrixClientPeg","userRegisteredWithinLastHours","version","deferUntil","JSON","parse","getItem","deferUpdate","date","setHours","setItem","stringify","getTime","supportsSpellCheckSettings","allowOverridingNativeContextMenus","supportsNotifications","maySendNotifications","displayNotification","title","msg","ev","notifBody","silent","notification","Notification","onclick","ViewRoom","room_id","metricsTrigger","getThread","event_id","getId","focus","closeHandler","close","once","MatrixEventEvent","BeforeRedaction","onclose","off","loudNotification","needsUrlTooltips","supportsSetting","settingName","getSettingValue","setSettingValue","value","getEventIndexingManager","setLanguage","preferredLangs","setSpellCheckEnabled","enabled","getSpellCheckEnabled","setSpellCheckLanguages","getSpellCheckLanguages","getDesktopCapturerSources","options","supportsDesktopCapturer","supportsJitsiScreensharing","overrideBrowserShortcuts","navigateForwardBack","back","getAvailableSpellCheckLanguages","getSSOCallbackUrl","fragmentAfterLogin","hash","startSingleSignOn","mxClient","loginType","idpId","getHomeserverUrl","getIdentityServerUrl","callbackUrl","getSsoLoginUrl","getPickleKey","_await$buildAndEncode","data","idbLoad","e","logger","error","_crypto2","crypto","subtle","encrypted","iv","cryptoKey","pickleKeyBuf","decrypt","encodeUnpaddedBase64","buildAndEncodePickleKey","createPickleKey","randomArray","getRandomValues","pickleKey","_crypto","generateKey","encrypt","encryptPickleKey","idbSave","destroyPickleKey","idbDelete","clearStorage","sessionStorage","clear","baseUrl","origin","pathname","defaultOAuthClientUri","getOAuthClientMetadata","_config$oidc_metadata","_config$oidc_metadata2","_config$oidc_metadata3","_config$oidc_metadata4","_config$oidc_metadata5","_config$oidc_metadata6","_config$terms_and_con","_config$oidc_metadata7","_config$oidc_metadata8","config","SdkConfig","client_name","brand","client_uri","oidc_metadata","redirect_uris","getOAuthCallbackUrl","logo_uri","application_type","tos_uri","terms_and_conditions_links","policy_uri","privacy_policy_url","getOAuthClientState","favicon","_favicon","Favicon","notif","badge","bgColor","startUpdater","getBindingsByCategory","category","CATEGORIES","settingNames","reduce","bindings","_getKeyboardShortcuts","keyCombo","getKeyboardShortcuts","default","push","defaultBindingsProvider","getMessageComposerBindings","messageComposerBindings","CategoryName","COMPOSER","SettingsStore","getValue","KeyBindingAction","SendMessage","key","Key","ENTER","ctrlOrCmdKey","NewLine","shiftKey","IS_MAC","altKey","getAutocompleteBindings","autocompleteBindings","AUTOCOMPLETE","ForceCompleteAutocomplete","TAB","ctrlKey","CompleteAutocomplete","getRoomListBindings","roomListBindings","ROOM_LIST","getRoomBindings","roomBindings","ROOM","SearchInRoom","F","getNavigationBindings","navigationBindings","NAVIGATION","getAccessibilityBindings","accessibilityBindings","ACCESSIBILITY","getCallBindings","callBindings","CALLS","getLabsBindings","labsBindings","LABS","isKeyComboMatch","combo","onMac","_combo$ctrlKey","_combo$altKey","_combo$shiftKey","_combo$metaKey","_ev$ctrlKey","_ev$altKey","_ev$shiftKey","_ev$metaKey","toLowerCase","comboCtrl","comboAlt","comboShift","comboMeta","metaKey","evCtrl","evAlt","evShift","evMeta","manager","getAction","getters","getter","binding","find","it","getMessageComposerAction","bindingsProviders","map","getAutocompleteAction","getRoomListAction","getRoomAction","getNavigationAction","getAccessibilityAction","getCallAction","getLabsAction","getKeyBindingsManager","navigator","platform","includes","IS_ELECTRON","electron","isOnlyCtrlOrCmdKeyEvent","HOME","END","PAGE_UP","PAGE_DOWN","BACKSPACE","DELETE","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","F6","ESCAPE","ALT","CONTROL","META","SHIFT","CONTEXT_MENU","COMMA","PERIOD","LESS_THAN","GREATER_THAN","BACKTICK","SPACE","SLASH","SQUARE_BRACKET_LEFT","SQUARE_BRACKET_RIGHT","SEMICOLON","A","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","createSyncAction","matrixClient","state","prevState","createAccountDataAction","accountDataEvent","previousAccountDataEvent","event","event_type","getType","event_content","getContent","previousEvent","createRoomAccountDataAction","createRoomAction","createRoomTagsAction","roomTagsEvent","createRoomReceiptAction","createRoomTimelineAction","timelineEvent","toStartOfTimeline","removed","isLiveEvent","liveEvent","isLiveUnfilteredRoomTimelineEvent","timeline","getTimelineSet","getUnfilteredTimelineSet","createRoomStateEventsAction","lastStateEvent","createSelfMembershipAction","membership","oldMembership","createEventDecryptedAction","matrixClientListenersStop","addMatrixClientListener","eventName","actionCreator","listener","args","on","removeListener","MatrixActionCreators","start","ClientEvent","Sync","AccountData","RoomEvent","Room","Tags","Receipt","Timeline","MyMembership","Decrypted","RoomStateEvent","Events","stop","forEach","stopListener","initialSyncLimit","_PlatformPeg$get2","stopClient","store","destroy","isGuest","_PlatformPeg$get","description","PlatformPeg","getHumanReadableName","_t","reload","Modal","createDialog","ErrorDialog","button","finished","safeGet","UserFriendlyError","client","unset","setJustRegisteredUserId","uid","justRegisteredUserId","registrationTime","currentUserIsJustRegistered","credentials","hours","userRegisteredAfter","timestamp","assign","assignOpts","_this$matrixClient$st","_this$matrixClient$st2","dbType","promise","startup","log","err","MemoryStore","call","onUnexpectedStoreClose","initClientCrypto","rustCryptoStoreKey","rustCryptoStorePassword","opts","utils","pendingEventOrdering","PendingEventOrdering","Detached","lazyLoadMembers","clientWellKnownPollPeriod","threadSupport","unstableMSC4429SyncUserProfileFields","slidingSync","SlidingSyncManager","instance","setup","checkSupport","MatrixClientBackedSettingsHandler","MatrixClientBackedController","initRustCrypto","storageKey","storagePassword","StorageManager","setDeviceIsolationMode","initialiseDehydrationIfEnabled","onlyIfKeyCached","rehydrate","startClient","mxMatrixClientPeg","AsyncWrapper","React","super","getDerivedStateFromError","render","BaseDialog","onFinished","props","DialogButtons","primaryButton","onPrimaryButtonClick","hasCancel","Suspense","fallback","Spinner","children","ModalManagerEvent","getOrCreateContainer","container","getElementById","appendChild","ModalManager","TypedEventEmitter","getOrCreateRoot","root","createRoot","getOrCreateStaticRoot","staticRoot","forceCloseAllModals","modal","getCurrentModal","closeReason","defaultDispatcher","toggleCurrentDialogVisibility","hidden","hasDialogs","priorityModal","staticModal","modals","closeCurrentModal","reason","filterBoolean","_modal$deferred","deferred","emitClosed","reRender","buildModal","Component","className","onBeforeClose","elem","closeDialog","onFinishedProm","getCloseFn","modalCount","counter","_extends","withResolvers","_modal$deferred2","beforeClosePromise","shouldClose","indexOf","splice","component","isPriorityModal","isStaticModal","beforeModal","unshift","emitIfChanged","appendDialog","emit","Opened","Closed","classes","classNames","staticDialog","StrictMode","SDKContext","Provider","mxSdkContext","I18nContext","mxModuleApi","i18n","TooltipProvider","Glass","onClick","onBackgroundClick","mx_Dialog_wrapperWithStaticUnder","dialog","singletonModalManager","PageType","__WEBPACK_DEFAULT_EXPORT__","platformPromise","platformPromiseWithResolvers","mxPlatformPeg","Anonymity","whitelistedScreens","Set","PosthogAnalytics","_instance","posthog","Disabled","layout","Layout","IRC","Bubble","Group","setProperty","SettingUpdated","settingsPayload","onLayoutUpdated","isSettingUpdatedPayload","onUrlPreviewSettingUpdated","newValue","properties","lastScreen","anonymity","Anonymous","posthogConfig","project_api_key","api_host","init","autocapture","mask_all_text","mask_all_element_attributes","capture_pageview","sanitize_properties","sanitizeProperties","respect_dnt","advanced_disable_decide","monitorSetting","updateCryptoSuperProperty","registerSuperProperties","getPlatformProperties","appVersion","getAppVersion","appPlatform","capture","hashStr","beforeFirstSlash","screen","has","getRedactedCurrentLocation","_objectSpread","propertiesForNextEvent","isEnabled","setAnonymity","reset","platformSuperProperties","getRandomAnalyticsId","join","identifyUser","analyticsIdGenerator","Pseudonymous","_this$posthog$persist","accountData","getAccountDataFromServer","ANALYTICS_EVENT_TYPE","analyticsID","setAccountData","get_distinct_id","persistence","get_property","identify","getAnonymity","logout","unwatchSetting","watchSettingRef","trackEvent","_ref","_objectWithoutProperties","_excluded","userPropertyCache","setPropertyOnce","updatePlatformSuperProperties","currentCryptoBackend","cryptoSDK","updateAnonymityFromSettings","pseudonymousOptIn","getCrypto","getVersion","trackNewUserEvent","startListeningToSettingsChanges","watchSetting","originalSettingName","changedInRoomId","atLevel","newValueAtLevel","setAuthenticationType","authenticationType","notLoggedInMap","Views","LOADING","CONFIRM_LOCK_THEFT","WELCOME","LOGIN","REGISTER","FORGOT_PASSWORD","COMPLETE_SECURITY","E2E_SETUP","PENDING_CLIENT_START","SOFT_LOGOUT","LOCK_STOLEN","loggedInPageTypeMap","HomePage","RoomView","UserView","SortingAlgorithmMap","SortingAlgorithm","Recency","Unread","Alphabetic","PosthogTrackers","LruCache","internalInstance","trackPageChange","view","pageType","durationMs","override","trackPage","screenName","LOGGED_IN","$current_url","trackOverride","clearOverride","trackInteraction","interactionType","type","trackPinUnpinMessage","kind","from","trackRoomListSortingAlgorithmChange","oldAlgorithm","newAlgorithm","trackUrlPreview","eventId","isEncrypted","previews","previewedEventIds","previewKind","hasThumbnail","p","image","previewCount","encryptedRoom","trackSectionCreation","trackCollapseOrExpandSection","PosthogScreenTracker","PureComponent","componentDidMount","componentDidUpdate","componentWillUnmount","DEFAULTS","branding","logo_link_url","auth_header_logo_url","welcome_background_url","help_url","help_encryption_url","help_key_storage_url","integrations_ui_url","integrations_rest_url","show_labs_settings","force_verification","enable_client_well_known_lookups","jitsi","preferred_domain","element_call","desktopBuilds","available","logo","feedback","existing_issues_url","new_issue_url","desktop_builds","url_macos","url_win64","url_win64arm","url_linux","mobile_builds","ios","android","fdroid","mergeConfig","changes","mergeWith","objectClone","objValue","srcValue","Array","isArray","isObject","setInstance","SnakedObject","mxReactSdkConfig","altCaseName","getObject","val","put","cfg","add","REQUIRED_STATE_LIST","EventType","RoomJoinRules","RoomAvatar","RoomCanonicalAlias","RoomTombstone","RoomEncryption","RoomCreate","SpaceChild","MSC3575_WILDCARD","SpaceParent","RoomMember","MSC3575_STATE_KEY_ME","DEFAULT_ROOM_SUBSCRIPTION_INFO","timeline_limit","include_old_rooms","required_state","UNENCRYPTED_SUBSCRIPTION_NAME","UNENCRYPTED_SUBSCRIPTION","MSC3575_STATE_KEY_LAZY","ENCRYPTED_SUBSCRIPTION","sssLists","spaces","ranges","filters","room_types","invites","is_invite","favourites","tags","dms","is_dm","not_tags","untagged","configure","proxyUrl","lists","listName","SlidingSync","addCustomSubscription","configureDefer","ensureListRegistered","listKey","updateArgs","debug","list","getListParams","updatedList","sort","setListRanges","setList","setRoomVisible","_this$client","subscriptions","getRoomSubscriptions","getRoom","shouldLazyLoad","_this$client2","isEncryptionEnabledInRoom","useCustomSubscription","modifyRoomSubscriptions","_this$client4","waitForRoom","r","_this$client3","startSpidering","batchSize","gapBetweenRequestsMs","listToUpperBound","lifecycle","_","SlidingSyncState","Complete","sleep","hasSetRanges","currentUpperBound","_slidingSync$getListD","getListData","joinedCount","newUpperBound","SlidingSyncEvent","Lifecycle","info","nativeSlidingSyncSupport","support","doesServerSupportUnstableFeature","serverSupportsSlidingSync","_SlidingSyncManager","LOCAL_STORAGE_KEY","TOAST_KEY","SUPPORTED_DEVICE_TYPES","DeviceType","Web","Desktop","onLearnMoreClick","onDismissClick","open","String","ToastStore","sharedInstance","dismissToast","getBrowserNameVersion","browser","browserName","browserVersion","getBrowserSupport","memoizeOne","browsers","browserlist","minimumBrowserVersions","details","parseUserAgent","userAgent","warn","deviceType","minimumVersion","checkBrowserSupport","addOrReplaceToast","secondaryLabel","SecondaryIcon","PopOutIcon","onSecondaryClick","primaryLabel","onPrimaryClick","GenericToast","priority","TermsCheckbox","onChange","currentTarget","checked","TermsDialog","agreedUrls","filter","setState","nameForServiceType","serviceType","host","SERVICE_TYPES","IS","IM","summaryForServiceType","rows","policiesAndService","policiesAndServicePairs","parsedBaseUrl","parseUrl","service","policyValues","values","policies","internationalisedPolicy","pickBestPolicyLanguage","serviceName","summary","ExternalLink","rel","target","onTermsCheckboxChange","Boolean","enableSubmit","docsAgreedForService","terms","docAgreed","lang","fixedWidth","onCancelClick","contentId","onCancel","onNextClick","primaryDisabled","TermsNotSignedError","Service","accessToken","policy","pickBestLanguage","k","startTermsFlow","services","interactionCallback","dialogTermsInteractionCallback","_client$getAccountDat","termsPromises","getTerms","all","t","currentAcceptedTerms","getAccountData","agreedUrlSet","accepted","unagreedPoliciesAndServicePairs","unagreedPolicies","policyName","entries","policyAgreed","numAcceptedBeforeAgreement","size","newlyAgreedUrls","newAcceptedTerms","agreePromises","urlsForService","agreeToTerms","extraClassNames","done","_agreedUrls","getUIOnlyShortcuts","ctrlEnterToSend","keyboardShortcuts","displayName","_td","SwitchToSpaceByNumber","DIGITS","KEYBOARD_SHORTCUTS","_KEYBOARD_SHORTCUTS$k","controller","settingDisabled","MAC_ONLY_SHORTCUTS","DESKTOP_SHORTCUTS","o","getKeyboardShortcutsForUI","acc","getKeyboardShortcutValue","getKeyboardShortcutDisplayName","_getKeyboardShortcuts2","keyboardShortcutDisplayName","ALTERNATE_KEY_NAME","KEY_ICON","categoryLabel","FormatBold","FormatItalics","FormatQuote","FormatLink","FormatCode","EditUndo","EditRedo","MoveCursorToStart","MoveCursorToEnd","CancelReplyOrEdit","EditNextMessage","EditPrevMessage","SelectNextSendHistory","SelectPrevSendHistory","ShowStickerPicker","ToggleMicInCall","ToggleWebcamInCall","UploadFile","DismissReadMarker","JumpToOldestUnread","ScrollUp","ScrollDown","JumpToFirstMessage","JumpToLatestMessage","SelectRoomInRoomList","ClearRoomFilter","CollapseRoomListSection","ExpandRoomListSection","NextRoom","PrevRoom","Escape","Enter","Space","Backspace","Delete","Home","End","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Comma","Save","ToggleUserMenu","ToggleRoomSidePanel","ToggleSpacePanel","ShowKeyboardSettings","GoToHome","FilterRooms","SelectNextUnreadRoom","SelectPrevUnreadRoom","SelectNextRoom","SelectPrevRoom","OpenUserSettings","PreviousVisitedRoomOrSpace","NextVisitedRoomOrSpace","NextLandmark","PreviousLandmark","CancelAutocomplete","NextSelectionInAutocomplete","PrevSelectionInAutocomplete","ToggleHiddenEventVisibility","RovingAccessibleButton","inputRef","onFocus","onMouseOver","focusOnMouseOver","onFocusInternal","isActive","ref","useRovingTabIndex","AccessibleButton","tabIndex","getWebRovingAction","RovingAction","Tab","RovingTabIndexProvider","SharedRovingTabIndexProvider","RovingGridIndexProvider","SharedRovingGridIndexProvider","label","icon","labelClassName","useActiveTabWithDefault","tabs","defaultTabID","initialTabID","activeTabId","setActiveTabId","TabLocation","domIDForTabID","tabId","TabPanel","tab","AutoHideScrollbar","TabLabel","showToolip","mx_TabbedView_tabLabel_active","tabIcon","role","element","TabbedView","_props$tabLocation","_tab$screenName","tabLocation","LEFT","windowWidth","useWindowWidth","setWidth","UIStore","UI_EVENTS","Resize","labels","panel","tabbedViewClasses","mx_TabbedView","mx_TabbedView_tabsOnLeft","mx_TabbedView_tabsOnTop","TOP","mx_TabbedView_responsive","responsive","handleLoop","handleHomeEnd","handleLeftRight","handleUpDown","onKeyDownHandler","onKeyDown","_this$props$onKeyDown","_this$props","_this$props$onFinishe","_this$props2","stopPropagation","preventDefault","_this$props$onFinishe2","_this$props3","cancelButton","headerImage","placement","CloseIcon","src","alt","lockProps","MatrixClientContext","FocusLock","returnFocus","mx_Dialog_fixedWidth","top","mx_Dialog_headerWithButton","headerButton","Heading","as","titleClass","extractErrorMessageFromError","translatedFallbackMessage","translatedMessage","message","autoFocus","InfoDialog","hasCloseButton","QuestionDialog","primaryButtonClass","danger","hasCancelButton","buttonDisabled","quitOnly","onOk","extraButtons","ScrollableBaseModal","cancel","canSubmit","submit","_this$state$cancelLab","onSubmit","renderContent","cancelLabel","disabled","actionLabel","UserTab","BaseTool","onBack","extraButton","setMessage","useState","actionButton","onActionClick","then","onBackClick","DevtoolsContext","createContext","FAILED_TO_LOAD","Symbol","getServerVersionFromFederationApi","hsName","getDomain","response","ServerInfo","cli","useContext","capabilities","useAsyncMemo","fetchCapabilities","catch","clientVersions","getVersions","serverVersions","SyntaxHighlight","language","_restProps$ariaLabel","onKeyUp","triggerOnMouseDown","caption","onTooltipOpenChange","disableTooltip","restProps","newProps","onMouseDown","classnames","mx_AccessibleButton_hasKind","mx_AccessibleButton_disabled","Tooltip","isTriggerInteractive","onOpenChange","_this$props$onCancel","additive","primaryButtonClassName","cancelButtonClass","primaryIsSubmit","rest","Field","createRef","node","_inputRef","current","debounce","validate","focused","_this$props$onFocus","validateOnFocus","_this$props$onChange","validateOnChange","_this$props$onBlur","validateOnBlur","onBlur","feedbackVisible","_this$inputRef$curren","allowEmpty","_this$inputRef$curren2","_this$inputRef$curren3","onValidate","valid","_inputProps$placehold","_this$props4","prefixComponent","postfixComponent","tooltipContent","forceValidity","tooltipClassName","usePlaceholderAsHint","forceTooltipVisible","tooltipAlignment","inputProps","tooltipProps","tooltipOpen","placeholder","inputProps_","callbackRef","fieldInput","prefixContainer","postfixContainer","hasValidationFlag","fieldClasses","mx_Field_labelAlwaysTopLeft","mx_Field_placeholderIsHint","mx_Field_valid","mx_Field_invalid","inputDecoration","ChevronDownIcon","htmlFor","InlineSpinner","highlighted","highlight","__webpack_require__","highlightAuto","dangerouslySetInnerHTML","__html","detail","PrimaryIcon","destructive","overrideWidth","detailContent","style","maxWidth","Button","Icon","useMatrixClientContext","withMatrixClientHOC","ComposedComponent","TimelineRenderingType","MainSplitContentType","RoomContext","roomLoading","peekLoading","shouldPeek","membersLoaded","numUnreadMessages","canPeek","showApps","isPeeking","showRightPanel","joining","showTopUnreadMessagesBar","statusBarVisible","canReact","canSelfRedact","canSendMessages","resizing","lowBandwidth","alwaysShowTimestamps","showTwelveHourTimestamps","userTimezone","readMarkerInViewThresholdMs","readMarkerOutOfViewThresholdMs","showHiddenEvents","showReadReceipts","showRedactions","showJoinLeaves","showAvatarChanges","showDisplaynameChanges","matrixClientIsReady","showUrlPreview","timelineRenderingType","mainSplitContentType","threadId","liveTimeline","narrow","msc3946ProcessDynamicPredecessor","canAskToJoin","promptAskToJoin","viewRoomOpts","buttons","isRoomEncrypted","roomViewStore","getForceChatExportParameters","MediaImplementation","prepared","file","srcMxc","thumbnailMxc","_this$prepared$thumbn","thumbnail","mxcUrlToHttp","thumbnailHttp","getThumbnailHttp","mode","Math","floor","devicePixelRatio","getSquareThumbnailHttp","dim","downloadSource","parseErrorResponse","text","mediaFromContent","content","_content$info","_content$info2","_content$file","thumbnail_url","thumbnail_file","prepEventContentAsMedia","getDisplayUserIdentifier","withDisplayName","invariant","cond","isDispatching","startDispatching","callbacks","isPending","invokeCallback","stopDispatching","callback","lastId","isHandled","unregister","delete","waitFor","ids","pendingPayload","sync","AsyncActionPayload","fn","_dispatch","setTimeout","fire","mxDispatcher","isAction","readyFn","ComposerType","SETTING_NAME","getRecentEmoji","translateLegacyEmojiData","legacyData","emoji","total","mergeEmojiData","data1","data2","item","existing","recents","findIndex","entry","newEntry","setValue","SettingLevel","ACCOUNT","limit","orderBy","defaults","textColor","fontFamily","fontWeight","isUp","isLeft","IconRenderer","params","baseImage","context","n","opt","abs","len","x","y","w","h","circle","more","clearRect","drawImage","beginPath","fontSize","font","textAlign","moveTo","lineTo","quadraticCurveTo","arc","PI","fill","closePath","stroke","fillText","BadgeOverlayRenderer","contents","reject","toBlob","blob","arrayBuffer","DEFAULT_FAVICON_SIZE","ff","InstallTrigger","opera","icons","getIcons","lastIcon","hasAttribute","setAttribute","onload","ready","getAttribute","_this$readyCb","isReady","readyCb","setIcon","setIconSrc","_old$parentNode","old","newIcon","getElementsByTagName","parentNode","removeChild","getLinks","links","link","test","elms","deps","initialValue","useEffect","discard","v","useTypedEventEmitter","emitter","handler","useEventEmitter","savedHandler","useRef","eventListener","useTypedEventEmitterState","useEventEmitterState","useCallback","useEventEmitterAsyncState","running","rerunArgs","NoChange","finally","shift","useInterval","intervalMs","intervalID","setInterval","_savedHandler$current2","clearInterval","useExpiringCounter","initialCount","setCount","getLanguagesFromBrowser","_navigator$language","languages","getLanguageFromBrowser","substitutionVariablesAndCause","cause","substitutionVariables","errorOptions","locale","getLanguageRetry","langPath","num","retry","getLanguage","cachedCustomTranslations","cachedCustomTranslationsExpire","doRegisterTranslations","customTranslations","langs","MapWithDefault","translationKey","translations","translation","getOrCreate","KEY_SEPARATOR","registerTranslations","getUserLanguage","normalizeLanguageKey","availableLanguages","getLangsJson","chosenLanguage","hasOwnProperty","languageData","setLocale","DEVICE","fallbackLanguageData","testOnlyIgnoreCustomTranslationsCache","ModuleRunner","allTranslations","lookupUrl","custom_translations_url","registerCustomTranslations","getAllLanguagesWithLabels","languageNames","Intl","DisplayNames","getLocale","getAllLanguagesFromJson","langKey","of","labelInTargetLanguage","currentLang","normalisedLangs","currentLangIndex","closeLangIndex","l","enIndex","ScalarAuthClient","apiUrl","uiUrl","scalarToken","termsInteractionCallback","configApiUrl","configUiUrl","isDefaultManager","writeTokenToStore","_this$scalarToken","readTokenFromStore","token","readToken","setTermsInteractionCallback","connect","getScalarToken","tok","hasCredentials","checkToken","registerForToken","getAccountName","errcode","user_id","me","getUserId","parsedImRestUrl","getOpenIdToken","tokenObject","exchangeForScalarToken","openidTokenObject","scalarRestUrl","headers","scalar_token","getScalarPageTitle","_body$page_title_cach","scalarPageLookupUrl","getStarterLink","encodeURIComponent","page_title_cache_item","cached_title","disableWidgetAssets","widgetType","widgetId","preferred","getScalarInterfaceUrlForRoom","roomName","starterLinkUrl","IntegrationManager","errored","dispatcherRef","addEventListener","removeEventListener","loading","connected","onError","Kind","IntegrationManagerInstance","_parsed$host","trimmedApiUrl","parsed","getScalarClient","integrationId","IntegrationManagers","showDisabledDialog","policyInfo","IntegrationsImpossibleDialog","onAcknowledgeClick","IntegrationsDisabledDialog","onOpenSettingsClick","ViewUserSettings","initialTabId","Security","manageIntegrations","KIND_PREFERENCE","Account","Homeserver","Config","discoveryResponse","managers","m","hsManager","primaryManager","compileManagers","startWatching","stopWatching","onAccountData","ClientWellKnown","setupHomeserverManagers","setupConfiguredManager","setupAccountManagers","WidgetUtils","getIntegrationManagerWidgets","hasManager","getOrderedManagers","collator","Collator","ordered","a","b","_a$id","_b$id","compare","getPrimaryManager","openNoManagerDialog","mxIntegrationManagers","ELEMENT_URL_PATTERN","RegExp","replace","LocalRoomState","LocalRoom","myUserId","NEW","getDefaultRoomName","isNew","isCreated","CREATED","isError","ERROR","isEncryptionEnabled","roomState","getLiveTimeline","getState","Direction","Forward","stateEvents","getStateEvents","MatrixEvent","ConfigApi","CustomComponentsApi","getModuleMatrixEvent","mxEvent","getRoomId","sender","originServerTs","getTs","stateKey","getStateKey","unsigned","getUnsigned","registerMessageRenderer","eventTypeOrFilter","renderer","hints","registeredMessageRenderers","selectMessageRenderer","ex","renderMessage","originalComponent","_originalComponent","moduleEv","getHintsForMessage","allowDownloadingMedia","roomPreviewBarRenderer","_roomPreviewBarRenderer","registerRoomPreviewBar","loginComponentRenderer","_loginRenderer","registerLoginComponent","registerComposerPreview","registeredComposerPreviewRenderers","renderComposerPreview","WatchableProfile","Watchable","profile","OwnProfileStore","UPDATE_EVENT","onProfileChange","_OwnProfileStore$inst","_OwnProfileStore$inst2","_OwnProfileStore$inst3","_OwnProfileStore$inst4","_OwnProfileStore$inst5","NavigationApi","toMatrixToLink","navigateToPermalink","parts","parsePermalink","_parts$viaServers","roomIdOrAlias","openRoom","viaServers","autoJoin","registerLocationRenderer","path","locationRenderers","dispatcher","via_servers","auto_join","OuterDialog","Dialog","model","openDialog","initialOptions","overwriteAccountAuth","accountInfo","OnLoggedIn","OverwriteLogin","guest","ElementWebBuiltinsApi","setComponents","components","_roomView","roomView","_roomAvatar","roomAvatar","_notificationDecoration","notificationDecoration","getRoomViewComponent","getRoomAvatarComponent","getNotificationDecorationComponent","renderRoomView","renderRoomAvatar","renderNotificationDecoration","sdkRoom","WatchableName","getLastActiveTimestamp","onFirstWatch","Name","onNameUpdate","onLastWatch","AccountDataApi","eventType","AccountDataWatchable","deleteAccountData","_cli$getAccountData","ClientApi","ModuleRoom","RoomListStoreApi","moduleLoadPromise","module","rls","LISTS_LOADED_EVENT","LISTS_UPDATE_EVENT","getRooms","RoomsWatchable","roomListStore","events","waitForReady","isLoadingRooms","getSortedRooms","onRlsUpdate","StoresApi","roomListStoreApi","WidgetApi","getWidgetsInRoom","WidgetStore","getApps","getAppAvatarUrl","app","isAppWidget","avatar_url","getHttpUriForMxc","isAppInContainer","WidgetLayoutStore","isInContainer","moveAppToContainer","moveToContainer","CustomisationsApi","registerShouldShowComponent","shouldShowComponentFunctions","shouldShowComponent","legacyCustomisationsFactory","baseCustomisations","used","customisations","ModuleApi","AliasCustomisations","ChatExportCustomisations","ComponentVisibilityCustomisations","DirectoryCustomisations","LifecycleCustomisations","MediaCustomisations","RoomListCustomisations","UserIdentifierCustomisations","WidgetPermissionCustomisations","WidgetVariableCustomisations","I18nApi","ElementWebExtrasApi","WidgetLifecycleApi","ComposerApi","_registerLegacyModule","LegacyModule","registerModule","api","ModuleComposerApiEvents","fileUploadOptions","configuredFileUploadOptions","addFileUploadOption","option","UploaderOptionsChanged","openFileUploadConfirmation","files","ComposerFileInsert","Thread","insertPlaintextIntoComposer","plaintext","ComposerInsert","composerType","Send","ExtrasApiEvent","setSpacePanelItem","spacekey","spacePanelItems","SpacePanelItemsChanged","getVisibleRoomBySpaceKey","spaceKey","cb","visibleRoomBySpaceKey","addRoomHeaderButtonCallback","roomHeaderButtonsCallbacks","useModuleSpacePanelItems","getItems","items","setItems","ModuleUiDialog","_this$props$initialOp","_this$props$initialOp2","contentRef","trySubmit","setOptions","dialogProps","moduleApi","contentProps","additionalContentProps","contentFactory","ProxiedModuleApi","_this$overrideLoginRe","overrideLoginResolve","cachedTranslations","translateString","variables","initialTitleOrOptions","didOkOrSubmit","registerSimpleAccount","username","password","_SdkConfig$get","hsUrl","Matrix","req","initial_device_display_name","getDefaultDeviceDisplayName","auth","inhibit_login","creds","registerRequest","resp","session","profileClient","device_id","access_token","setDisplayName","homeserverUrl","awaitNewLogin","navigatePermalink","uri","andJoin","_parts$viaServers2","room_alias","getConfigValue","namespace","maybeObj","AppModule","factory","TextInputField","renderFactory","autoComplete","ModuleSpinner","ExtensionsManager","cryptoSetupExtension","DefaultCryptoSetupExtensions","experimentalExtension","DefaultExperimentalExtensions","cryptoSetup","experimental","addExtensions","_runtimeModule$extens","_runtimeModule$extens3","runtimeModule","extensions","hasDefaultCryptoSetupExtension","moduleName","_runtimeModule$extens2","hasDefaultExperimentalExtension","_runtimeModule$extens4","extensionsManager","modules","merged","strings","safeSet","str","appModule","invoke","lifecycleEvent","_ModuleRunner","ensureApproverUnset","registerPreloadApprover","approver","preloadApprover","registerIdentityApprover","identityApprover","registerCapabilitiesApprover","capabilitiesApprover","preapprovePreload","widget","preapproveIdentity","preapproveCapabilities","requestedCapabilities","toWidgetDescriptor","templateUrl","creatorUserId","consoleFunctionsToLevels","ConsoleLogger","monkeyPatch","consoleObj","fnName","level","originalFn","originalFunctions","bypassRageshake","_this$originalFunctio","_this$originalFunctio2","line","toISOString","arg","DOMException","code","stack","getCircularReplacer","seen","WeakSet","logs","flush","keepLogs","logsToFlush","IndexedDBLogStore","indexedDB","secureRandomString","onsuccess","db","result","onerror","_req$error","onupgradeneeded","logObjStore","createObjectStore","keyPath","createIndex","unique","generateLogEntry","generateLastModifiedTime","flushPromise","flushAgainPromise","lines","txn","transaction","objStore","objectStore","oncomplete","_txn$error","consume","allLogIds","fetchLogIds","removeLogIds","instanceId","truncated","fetchLogs","deleteLogs","keyRange","resultMapper","query","openCursor","results","_query$error3","cursor","continue","selectQuery","ts","sizeSoFar","IDBKeyRange","only","_query$error","_cursor$value$ts","newLines","logBatchTimestamp","shouldTruncateAfterLogBatch","openKeyCursor","primaryKey","_query$error2","setUpPersistence","global","mx_rage_initPromise","mx_rage_logger","tryInitStorage","mx_rage_initStoragePromise","mx_rage_store","cleanup","getLogsForReport","RageshakeError","errorcode","statusCode","policyURL","collectBugReport","gzipLogs","progressCallback","FormData","_window$navigator$use","_window$navigator","installedPWA","matchesMediaQuery","touchInput","append","userText","customApp","customFields","collectBaseInformation","cryptoApi","_await$cryptoApi$getC","ownDeviceKeys","getOwnDeviceKeys","curve25519","ed25519","crossSigningStatus","getCrossSigningStatus","isCrossSigningReady","getCrossSigningKeyId","privateKeysInSecretStorage","privateKeysCachedLocally","masterKey","selfSigningKey","userSigningKey","collectCryptoInfo","secretStorage","isSecretStorageReady","hasKey","isKeyBackupKeyStored","sessionBackupKeyFromCache","getSessionBackupPrivateKey","collectRecoveryInfo","http","request","Method","Get","prefix","server","getUrl","collectSynapseSpecific","collectClientInfo","collectLabels","enabledLabs","getFeatureSettingNames","f","exportForRageshake","collectSettings","storage","persisted","hasStorageAccess","estimate","quota","usage","usageDetails","collectStorageStatInfo","Modernizr","missingFeatures","collectMissingFeatures","sendLogs","pako","rageshake","buf","TextEncoder","encode","gzip","Blob","collectLogs","matchMedia","matches","sendBugReport","bugReportEndpoint","BugReportEndpointURLLocal","submitReport","loadBugReport","Tar","metadata","tape","reader","FileReader","TextDecoder","decode","readAsArrayBuffer","downloadBugReport","dl","btoa","out","fromCharCode","uint8ToString","download","click","submitFeedback","comment","canContact","extraData","_PlatformPeg$get$getH","_PlatformPeg$get3","_MatrixClientPeg$get$","_MatrixClientPeg$get","bugReportEndpointUrl","bug_report_endpoint_url","endpoint","_AbortSignal$timeout","_AbortSignal","signal","AbortSignal","timeout","policy_url","report_url","ThemeController","SettingController","getValueOverride","calculatedValue","calculatedAtLevel","enumerateThemes","DEFAULT_THEME","FontSizeController","CONFIG","MigrateBaseFontSize","UpdateFontSizeDelta","delta","SystemFontController","UpdateSystemFont","useBundledEmojiFont","settingsStore","useSystemFont","UIFeatureController","uiFeatureName","forcedValue","ReducedMotionController","prefersReducedMotion","IncompatibleController","incompatibleValue","disabledMessage","forceReload","incompatibleSetting","_this$disabledMessage","SlidingSyncController","ServerSupportUnstableFeatureController","watchers","unstableFeatureGroups","stableVersion","defaultEnabled","newDisabledValue","firstSupportedLevel","settingValue","notifyUpdate","initMatrixClient","isVersionSupported","featureGroup","feature","every","isFeatureSupported","AnalyticsController","interactionName","_level","_roomId","_newValue","FallbackIceServerController","wellKnown","_wellKnown$ioElement","newClient","oldClient","checkWellKnown","getClientWellKnown","setFallbackICEServerAllowed","MediaPreviewConfigController","getValidSettingData","mediaPreviews","media_previews","inviteAvatars","invite_avatars","validMediaPreviews","Off","On","_source$getAccountDat","_source$getAccountDat2","_calculatedConfig$inv2","_calculatedConfig$med2","source","MEDIA_PREVIEW_ACCOUNT_DATA_TYPE","calculatedConfig","_calculatedConfig$inv","_ref2","_calculatedConfig$med","globalConfig","beforeChange","setRoomAccountData","INVITE_RULES_ACCOUNT_DATA_TYPE","InviteRulesConfigController","_expectedConfig$block","allBlocked","blocked_users","featureSupported","_this$client$getAccou","_this$client$getAccou2","_existingContent$bloc","_newContent$blocked_u","existingContent","newContent","u","rootLogger","getChild","RequiresSettingsController","isCapabilityDisabled","getCapabilities","isBlockedByCapabilites","cachedCaps","getCachedCapabilities","defaultWatchManager","idx","inRoomId","roomWatchers","flat","LEVELS_ROOM_SETTINGS","ROOM_DEVICE","ROOM_ACCOUNT","LEVELS_ROOM_OR_ACCOUNT","LEVELS_ROOM_SETTINGS_WITH_ROOM","LEVELS_ACCOUNT_SETTINGS","LEVELS_DEVICE_ONLY_SETTINGS","LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG","LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED","LEVELS_UI_FEATURE","LabGroup","Features","labGroupNames","Messaging","Profile","Spaces","Widgets","Rooms","Threads","VoiceAndVideo","Moderation","Themes","Encryption","Experimental","Developer","Ui","SETTINGS","test_setting","supportedLevels","feature_video_rooms","isFeature","labsGroup","ReloadOnChangeController","betaInfo","faq","feedbackLabel","feedbackSubheading","VideoRoomsBetaImage","requiresRefresh","NotificationSettings2","feature_msc3531_hide_messages_pending_moderation","supportedLevelsAreOrdered","mediaPreviewConfig","inviteRules","shouldExportToRageshake","blockInvites","InvitePermissionConfig","default_action","feature_latex_maths","feature_wysiwyg_composer","feature_mjolnir","feature_custom_themes","feature_exclude_insecure_devices","DeviceIsolationModeController","useOnlyCurrentProfiles","mjolnirRooms","mjolnirPersonalRoom","feature_bridge_state","feature_jump_to_date","sendReadReceipts","feature_sliding_sync","shouldWarn","feature_simplified_sliding_sync","feature_element_call_video_rooms","feature_disable_call_per_sender_encryption","feature_location_share_live","feature_dynamic_room_predecessors","baseFontSize","feature_render_reaction_images","feature_login_with_qr","feature_msc4095_url_preview_bundle","baseFontSizeV2","fontSizeDelta","FontWatcher","DEFAULT_DELTA","useCustomFontSize","invertedSettingName","UIFeature","feature_hidebold","feature_ask_to_join","feature_notifications","feature_msc4362_encrypted_state_events","feature_user_status","feature_retention","useCompactLayout","userTimezonePublish","UNSTABLE_MSC4133_EXTENDED_PROFILES","STABLE_MSC4133_EXTENDED_PROFILES","autoplayGifs","autoplayVideo","enableSyntaxHighlightLanguageDetection","expandCodeByDefault","showCodeLineNumbers","scrollToBottomOnMessageSent","sendTypingNotifications","showTypingNotifications","ctrlFForSearch","sub","theme","custom_themes","use_system_theme","systemFont","enableLegacyCallsVoip","webRtcAllowPeerToPeer","webrtc_audiooutput","webrtc_audioinput","webrtc_videoinput","webrtc_audio_autoGainControl","webrtc_audio_echoCancellation","webrtc_audio_noiseSuppression","breadcrumb_rooms","recent_emoji","showMediaEventIds","room_directory_servers","integrationProvisioning","allowedWidgets","analyticsOptIn","pseudonymousAnalyticsOptIn","deviceClientInformationOptIn","autocompleteDelay","blacklistUnverifiedDevices","AdvancedEncryption","urlPreviewsEnabled","URLPreviews","_c$ioElementMsc","urlPreviewsEnabled_e2ee","notificationsEnabled","NotificationsEnabledController","deviceNotificationsEnabled","notificationSound","notificationBodyEnabled","NotificationBodyEnabledController","audioNotificationsEnabled","enableWidgetScreenshots","promptBeforeInviteUnknownUsers","widgetOpenIDPermissions","allow","deny","breadcrumbs","showHiddenEventsInTimeline","fallbackICEServerAllowed","enableEventIndexing","crawlerSleepTime","ircDisplayNameWidth","ImageSize","Normal","showChatEffects","MetaSpace","developerMode","debug_scroll_panel","debug_timeline_panel","debug_registration","debug_animation","audioInputMuted","videoInputMuted","activeCallRoomIds","releaseAnnouncementData","RoomHistorySettings","LocationSharing","Voip","Feedback","Registration","PasswordReset","Deactivate","ShareQRCode","ShareSocial","IdentityServer","ThirdPartyID","AdvancedSettings","TimelineEnableRelativeDates","AllowCreatingPublicSpaces","AllowCreatingPublicRooms","PLATFORM","AbstractLocalStorageSettingsHandler","SettingsHandler","itemCache","objectCache","storageListenerBound","onStorageEvent","getBoolean","setBoolean","setObject","isSupported","_AbstractLocalStorageSettingsHandler","DefaultSettingsHandler","invertedDefaults","canSetValue","ALLOWED_WIDGETS_EVENT_TYPE","DEFAULT_SETTINGS_EVENT_TYPE","RoomAccountSettingsHandler","prevEvent","_prevEvent$getContent","prevContent","changedSettings","objectKeyChanges","getSettings","field","_this$client$getRoom","BREADCRUMBS_LEGACY_EVENT_TYPE","BREADCRUMBS_EVENT_TYPE","BREADCRUMBS_EVENT_TYPES","LEGACY_RECENT_EMOJI_EVENT_TYPE","RECENT_EMOJI_EVENT_TYPE","INTEG_PROVISIONING_EVENT_TYPE","AccountSettingsHandler","notifyBreadcrumbsUpdate","_content","_content$recent_rooms","_content2","legacyContent","recent_rooms","settings","preferredValue","legacyEventType","_content3","isEqual","newType","_this$getSettings","_this$getSettings2","legacyVal","RoomSettingsHandler","currentState","onEvent","sendStateEvent","_room$currentState$ma","maySendStateEvent","ConfigSettingsHandler","featureNames","isNullOrUndefined","settingsConfig","LocalEchoWrapper","cacheRoomId","bySetting","_this$handler$watcher","currentValue","handlerPromise","_this$handler$watcher2","PlatformSettingsHandler","initialised","setting","_setting$supportedLev","_PlatformPeg$get$supp","_PlatformPeg$get$supp2","defaultSettings","invertedDefaultSettings","LEVEL_HANDLERS","readFeature","writeFeature","featureName","read","getKey","DEFAULT","LEVEL_ORDER","getLevelOrder","callbackFn","_setting$invertedSett","finalSettingName","watcherId","watcherCount","localizedCallback","newValAtLevel","_SettingsStore$getVal","doesSettingSupportLevel","getValueAt","watcherReference","monitors","registerWatcher","rooms","getDisplayName","getDescription","_SETTINGS$settingName","shouldHaveWarning","_SETTINGS$settingName2","getBetaInfo","_betaInfo$requiresRef","getLabGroup","_SETTINGS$settingName3","excludeDefault","levelOrder","explicit","minIndex","handlers","getHandlers","getFinalValue","getDefaultValue","resultingValue","actualValue","_setting$controller","getHandler","_setting$controller2","settingIsOveriddenAtConfigLevel","levelOrders","configIndex","levelIndex","configVal","isLevelSupported","migrateShowImagesToSettings","MIGRATION_DONE_FLAG","fromEntries","migrateMediaControlsToSetting","isFreshLogin","isInitialSyncComplete","showImages","showAvatarsOnInvites","runMigrations","debugSetting","realSettingName","def","doChecks","handlerName","settingMap","settingKey","mxSettingsStore","_client$getCrypto","OnlySignedDevicesIsolationMode","AllDevicesIsolationMode","_matrixClient","instances","_instance$initMatrixC","isPushNotifyDisabled","masterRule","pushProcessor","getPushRuleById","actions","PushRuleActionName","Notify","sdkContext","notifier","isPossible","supportsDesktopNotifications","setEnabled","SIZE_LARGE","SIZE_NORMAL_LANDSCAPE","SIZE_NORMAL_PORTRAIT","ceil","suggestedSize","contentSize","maxHeight","aspectRatio","portrait","maxSize","Large","constrainedSize","min","migrateBaseFontSize","setRootFontSize","setSystemFont","updateFont","querySelector","DEFAULT_SIZE","toPx","fontString","trim","BUNDLED_EMOJI_FONT","FONT_FAMILY_CUSTOM_PROPERTY","removeProperty","EMOJI_FONT_FAMILY_CUSTOM_PROPERTY","migrateBaseFontV1toFontSizeDelta","migrateBaseFontV2toFontSizeDelta","legacyBaseFontSize","computeBaseFontSizeV1toV2","computeFontSizeDeltaFromV2BaseFontSize","legacyBaseFontV2Size","getRootFontSize","documentElement","getBrowserDefaultFontSize","ThemeWatcherEvent","recheck","RecheckTheme","forceTheme","preferDark","preferLight","preferHighContrast","currentTheme","themeWatchRef","systemThemeWatchRef","oldTheme","Change","themeBasedOnSystem","themeExplicit","isUserOnDarkTheme","getCustomTheme","is_dark","newTheme","hcTheme","findHighContrastTheme","isSystemThemeSupported","ActiveWidgetStoreEvent","ActiveWidgetStore","EventEmitter","destroyPersistentWidget","onRoomStateEvents","getWidgetPersistence","setWidgetPersistence","WidgetMessagingStore","stopMessagingByUid","calcWidgetUid","isPersisted","persistentWidgetId","persistentRoomId","Persistence","getPersistentWidgetId","getPersistentRoomId","dockWidget","_this$dockedWidgetsBy","refs","dockedWidgetsByUid","Dock","undockWidget","Undock","isDocked","_this$dockedWidgetsBy2","isLive","mxActiveWidgetStore","AsyncStore","initialState","AwaitLock","onDispatch","storeState","updateState","newState","lock","acquireAsync","freeze","release","quiet","AsyncStoreWithClient","asyncStore","readyStore","ReadyWatchingStore","_this$matrixClient","onReady","onNotReady","BreadcrumbsStore","waitingRoom","waitingRooms","addedTs","appendRoom","updateRooms","getMyMembership","KnownMembership","Join","JoinRoom","onRoom","roomIds","currentRooms","arrayHasDiff","_this$matrixClient2","updated","history","getRoomUpgradeHistory","existingIdx","_BreadcrumbsStore","KEY_DISPLAY_NAME","KEY_AVATAR_URL","throttle","profileInfo","displayname","getProfileInfo","getSafeUserId","MatrixError","fetchedAt","trailing","leading","syncedUserId","refreshUserStatus","rawUserStatus","getExtendedProfileProperty","userStatus","validateUserStatus","getSender","onProfileUpdate","isProfileInfoFetched","avatarMxc","getHttpAvatarUrl","_this$matrixClient3","monitoredUser","UserEvent","DisplayName","AvatarUrl","onStateEvents","UserProfileUpdate","onExtendedProfileUpdate","getUser","_OwnProfileStore","onDispatcherAction","SyncState","Prepared","useUnitTestClient","mxToastStore","toasts","newToast","oldIndex","newIndex","hasToast","toast","getToasts","windowEntry","contentRect","windowHeight","trackedElementName","trackedUiElements","uiElementDimensions","innerWidth","innerHeight","resizeObserver","ResizeObserver","resizeObserverCallback","observe","disconnect","removeAllListeners","getElementDimensions","trackElementDimensions","stopTrackingElementDimensions","trackedElement","unobserve","isTrackingElementDimensions","mxUIStore","WidgetEchoStore","roomWidgetEcho","getEchoedRoomWidgets","currentRoomWidgets","echoedWidgets","roomEchoState","roomHasPendingWidgetsOfType","roomHasPendingWidgets","setRoomWidgetEcho","removeRoomWidgetEcho","singletonWidgetEchoStore","_this$matrixClient$ge","initRoom","loadRoomWidgets","_this$matrixClient$ge2","onWidgetEchoStoreUpdate","roomMap","widgets","widgetMap","generateApps","getRoomWidgets","makeAppConfig","roomInfo","getWidgetUid","edited","existingApp","initIfNeeded","addVirtualWidget","removeVirtualWidget","roomApps","_WidgetStore","UPDATE_TOP_LEVEL_SPACES","UPDATE_INVITED_SPACES","UPDATE_SELECTED_SPACE","UPDATE_HOME_BEHAVIOUR","UPDATE_SUGGESTED_ROOMS","isMetaSpace","Orphans","VideoRooms","getMetaSpaceName","allRoomsInHome","WIDGET_LAYOUT_EVENT_TYPE","byRoom","getVisibleRooms","recalculateRoom","updateAllRooms","_settingName","_atLevel","_newValAtLevel","_newVal","emissionForRoom","emitFor","_this$matrixClient4","updateRoomFromState","pinnedRef","updateFromSettings","layoutRef","dynamicRef","updateFromWidgetStore","_this$matrixClient5","_layoutEv$getContent","roomContainers","beforeChanges","recursiveMapToObject","layoutEv","legacyPinned","userLayout","overrides","roomLayout","topWidgets","rightWidgets","centerWidgets","_roomLayout$widgets","_userLayout","stateContainer","manualContainer","isLegacyPinned","defaultContainer","WidgetType","JITSI","targetContainer","runoff","_roomLayout$widgets2","_roomLayout$widgets3","_userLayout2","_userLayout3","layoutA","layoutB","userLayoutA","userLayoutB","defaultA","Number","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","defaultB","orderA","defaultNumber","orderB","widths","doAutobalance","_roomLayout$widgets4","_userLayout4","widgetLayout","userWidgetLayout","isFinite","normalized","clamp","defRoomHeight","max","difference","sum","toReclaim","largeIndices","newRoomContainers","distributions","getContainerWidgets","_this$byRoom$get","canAddToContainer","getResizerDistributions","_this$byRoom$get2","d","toFixed","setResizerDistributions","numbers","remaining","localLayout","_this$byRoom$get3","updateUserLayout","getContainerHeight","_this$byRoom$get$get$","_this$byRoom$get4","setContainerHeight","_this$byRoom$get5","moveWithinContainer","_this$byRoom$get6","_this$byRoom$get7","arrayFastClone","currentIdx","newIdx","toContainer","getAllWidgets","newLayout","hasMaximisedWidget","hasPinnedWidgets","canCopyLayoutToRoom","copyLayoutToRoom","_this$matrixClient6","allWidgets","evContent","_this$byRoom$get8","_this$byRoom$get9","round","containers","ret","containerValue","_this$byRoom$get0","_this$byRoom$get1","WidgetMessagingStoreEvent","EnhancedMap","storeMessaging","messaging","stopMessaging","StoreMessaging","getMessaging","widgetUid","remove","StopMessaging","getMessagingForUid","_WidgetMessagingStore","HIGH_CONTRAST_THEMES","light","findNonHighContrastTheme","isHighContrastTheme","BUILTIN_THEMES","dark","customThemes","customThemeNames","getOrderedThemes","themes","builtInThemes","allowedFontFaceProps","COMPOUND_TOKEN","normalizeHexColour","hexColor","setHexAlpha","normalizedHexColor","alpha","padStart","setCustomThemeVars","customTheme","setCSSColorVariable","doPct","baseAlpha","parseAlpha","colors","fonts","faces","css","face","_face$src","srcElement","format","local","prop","createTextNode","head","general","monospace","compound","generateCustomCompoundCSS","themeName","knownNames","setTheme","_document$querySelect","_document$querySelect2","inlineStyleProps","clearCustomTheme","stylesheetName","styleElements","querySelectorAll","dataset","mxTheme","styleSheet","classList","compoundThemeClassName","switchTheme","bodyStyles","backgroundColor","isStyleSheetLoaded","styleSheets","_styleSheet","intervalId","waitForStyleSheetLoading","REPOS","parseVersion","obj","commit","checkVersion","ChangelogDialog","fetchChanges","repo","oldVersion","statusText","commits","newCommits","elementsForCommit","sha","html_url","showToast","releaseNotes","onAccept","acceptLabel","update","hideToast","_matrixClient$getAcco","_matrixClient$getAcco2","Direct","setMDirectFromContent","userToRooms","roomToUser","hasSentOutPatchDirectAccountDataPatch","mDirectRawContent","makeShared","setShared","inst","populateRoomToUser","filteredContent","filterValidMDirect","mDirectEvent","patchUpSelfDMs","selfRoomIds","guessedUserIdsThatChanged","guessDMUserId","uniq","getDMRoomsForUserId","getUserToRooms","getDMRoomForIdentifiers","_commonRooms$map$find","commonRooms","userRooms","getDMInviter","getUniqueRoomsWithIndividuals","hasTwoMembers","getInvitedAndJoinedMemberCount","getRoomIds","prevRoomIds","selfDMs","neededPatching","capacity","_this$getItem","removeItemFromList","tail","newItem","next","prev","setHeadTail","fallbackKey","fallbackWarnings","toJSON","getIDBFactory","_self","self","idb","idbInit","idbTransaction","table","idbClear","SYNC_STORE_NAME","LEGACY_CRYPTO_STORE_NAME","RUST_CRYPTO_STORE_NAME","tryPersistStorage","persist","persistent","requestStorageAccess","checkConsistency","dataInLocalStorage","dataInCryptoStore","cryptoInited","healthy","exists","IndexedDBStore","checkSyncStore","rustDbExists","IndexedDBCryptoStore","legacyIdbExists","existsAndIsNotMigrated","checkCryptoStore","setCryptoInitialised","abbreviateUrl","parsedUrl","unabbreviateUrl","longUrl","protocol","canUserModifyWidgets","isScalarUrl","testUrlString","testUrl","scalarUrls","integrations_widgets_urls","defaultManager","scalarUrl","_testUrl$pathname","waitForUserWidget","eventInIntendedState","clearTimeout","timerId","waitForRoomWidget","eventsInIntendedState","evList","widgetPresent","setUserWidget","widgetUrl","widgetName","widgetData","userWidgets","getUserWidgets","addingWidget","state_key","setRoomWidget","widgetAvatarUrl","legacy","setRoomWidgetContent","appsStateEvents","getUserWidgetsArray","getStickerpickerWidgets","_widget$content","_w$content","removeStickerpickerWidgets","addJitsiWidget","isVideoChannel","oobRoomName","_await$Jitsi$getInsta","_client$getRoom","Jitsi","getInstance","preferredDomain","getJitsiAuth","confId","base32","pad","capitalize","secureRandomStringFrom","LOWERCASE","getLocalJitsiWrapperUrl","search","conferenceId","isAudioOnly","CallType","Voice","appId","senderUserId","queryStringParts","queryString","forLocalRender","getWidgetName","_app$name","getWidgetDataTitle","_app$data","editWidget","_IntegrationManagers$","isManagedByManager","useWidgets","apps","setApps","updateApps","arrayFastResample","input","points","samples","everyNth","spreadFactor","arraySeed","arrayTrimFill","seed","concat","arrayHasOrderChange","arrayDiff","added","arrayIntersection","arrayUnion","moveElement","fromIndex","toIndex","asyncSome","predicate","asyncSomeParallel","any","AggregateError","asyncFilter","arrays","concatenatedSoFar","toBeConcatenated","concatenated","isDehydrationSupported","startDehydration","concatenateNameAndVersion","Unknown","parser","UAParser","getBrowser","device","getDevice","operatingSystem","getOS","getDeviceType","_operatingSystem$name","Mobile","shouldIgnoreOSVersion","deviceOperatingSystem","deviceModel","vendor","customDeviceModel","customDeviceOS","deviceInfoSegments","checkForCustomValues","filteredRoomIds","roomOrID","LOCAL_ROOM_ID_PREFIX","mapDiff","aKeys","bKeys","keyDiff","changed","objectExcluding","tempMap","objectShallowClone","propertyCloner","newObj","objectHasDiff","possibleChanges","diff","objectDiff","baseUrlPattern","MatrixToPermalinkConstructor","PermalinkConstructor","forEvent","serverCandidates","encodeServerCandidates","forRoom","forUser","forEntity","entityId","isPermalinkHost","testHost","candidates","fullUrl","matchAll","entity","PermalinkParts","via","eventIdAndQuery","primaryEntityId","ElementPermalinkConstructor","elementUrl","parseAppRoute","route","lastPartMaybeWithQuery","lastPart","entityType","MatrixSchemePermalinkConstructor","encodeEntity","identifier","entityNoSigil","sigil","ANY_REGEX","RoomPermalinkCreator","shouldThrottle","fullUpdate","highestPlUserId","getServerName","serversByPopulation","populationMap","_getHostnameFromMatri","serverName","getHostnameFromMatrixServerName","isHostnameIpAddress","isHostInRegex","bannedHostsRegexps","allowedHostsRegexps","_serverCandidates","load","_this$room","started","Update","onRoomStateUpdate","_this$room2","getPermalinkConstructor","forShareableRoom","alias","getCanonicalAlias","updateAllowedServers","updateHighestPlUser","updatePopulationMap","updateServerCandidates","_this$room3","plEvent","users","allowedEntries","_this$room4","_getHostnameFromMatri2","getMember","maxEntry","powerLevel","_this$room5","_this$room6","aclEvent","RoomServerAcl","getRegex","denied","allowed","getJoinedMembers","makeGenericPermalink","isPill","makeUserPermalink","makeRoomPermalink","permalinkCreator","tryTransformEntityToPermalink","permalinkParts","_permalinkParts$viaSe","eventIdPart","pl","matrixtoBaseUrl","tryTransformPermalinkToLocalHref","permalink","decodeURIComponent","match","_permalinkParts$viaSe2","getPrimaryPermalinkEntity","entityInfo","elementPrefix","decodedUrl","matrixToBaseUrlPattern","regexps","isIP","calculateRoomVia","_permalinkCreator$ser","localUri","timeoutValue","ms","timeoutPromise","timeoutId","race","lastErr","batch","funcs","copyPlaintext","_navigator","clipboard","writeText","textArea","left","position","selection","getSelection","range","createRange","selectNode","removeAllRanges","addRange","successful","execCommand","selectText","selectNodeContents","copyNode","getSelectedText","graphemeSegmenter","Segmenter","segment","iterator","pixelValue","intlSegmenter","userStatusTextWithinMaxLength","fetchUserStatus","doesServerSupportExtendedProfiles","setUserStatus","setExtendedProfileProperty","clearUserStatus","toasts_GenericExpiringToast","GenericExpiringToast","dismissLabel","onDismiss","toastKey","numSeconds","onReject","rejectLabel","plaf","thumbnailSize","types","Tabs","ExistingSource","onSelect","thumbnailClasses","mx_desktopCapturerSourcePicker_source_thumbnail","mx_desktopCapturerSourcePicker_source_thumbnail_selected","selected","thumbnailURL","DesktopCapturerSourcePicker","selectedSource","selectedTab","Screens","sources","interval","getTab","_this$state$selectedS","Windows","onCloseClick","onTabChange","onShare","BaseEventIndexManager","supportsEventIndexing","initEventIndex","addEventToIndex","deleteEvent","isEventIndexEmpty","isRoomIndexed","getStats","getUserVersion","setUserVersion","commitLiveEvents","searchEventIndex","searchArgs","addHistoricEvents","checkpoint","oldCheckpoint","addCrawlerCheckpoint","removeCrawlerCheckpoint","loadCheckpoints","loadFileEvents","closeEventIndex","deleteEventIndex","IPCManager","sendChannel","recvChannel","_ev","pendingIpcCalls","reply","onIpcReply","ipcCallId","nextIpcCallId","send","SeshatIndexManager","ipc","searchConfig","SSO_ID_KEY","ElectronPlatform","releaseName","Ready","showUpdateToast","Downloading","NotAvailable","getUpdateCheckStatus","getAccessToken","_MatrixClientPeg$get2","_MatrixClientPeg$get3","onUpdateDownloaded","clientStartedPromiseWithResolvers","uniqueId","onBreadcrumbsUpdate","initialise","ClientStarted","sessionId","supportedSettings","supportsBadgeOverlay","badgeOverlayRenderer","buffer","_this$supportedSettin","feedUrl","platformName","requestNotificationPermission","eventIndexManager","_web_base_url","checkSessionLockFree","getSessionLock","_onNewInstance","SESSION_LOCK_CONSTANTS","onNewInstance","sessionIdentifier","randomUUID","prefixedLogger","lockServicer","checkLock","claimant","lastPingTime","lockHolder","timeAgo","serviceLock","onPagehideEvent","onStorageUpdate","storageUpdatePromise","sleepPromise","winner","StorageEvent","claimingSession","releaseLock","getNormalizedAppVersion","WebPlatform","_event$data","_event$data2","homeserver","postMessage","responseKey","showUpdate","showNoUpdate","getMostRecentVersion","mostRecentVersion","currentVersion","VERSION","registerServiceWorkerPromise","registerServiceWorker","handleServiceWorkerRegistrationError","registration","serviceWorker","onServiceWorkerPostMessage","permission","requestPermission","pollForUpdate","appName","ua","osName","SessionLock","process","PWAPlatform","setAppBadge","mxSendRageshake","withLogs","createObjectURL","rageshakePromise","prom","initRageshake","preparePlatform","setupLogStorage","loadConfig","platformConfig","loadLanguage","prefLang","flatMap","getNormalizedLanguageKeys","getCurrentLanguage","loadTheme","loadApp","urlParams","matrixChat","showError","messages","ErrorView","showIncompatibleBrowser","UnsupportedBrowserView","loadModules","INSTALLED_MODULES","InstalledModule","loadPlugins","moduleLoader","ModuleLoader","mxModuleLoader","import","_SdkConfig$getObject","_discoveryResponse$JI","wkJitsiConfig","wkPreferredDomain","_useFor1To1Calls","useFor1To1Calls","parsePreferredConferenceUrl","fromString","knownMatch","_WidgetType","exports","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","NODE_ENV","NODE_DEBUG","re","safeRe","safeSrc","g","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","loose","compareIdentifiers","rcompareIdentifiers","includePrerelease","TypeError","LOOSE","FULL","raw","major","minor","patch","prerelease","build","compareMain","comparePre","compareBuild","inc","rtl","COERCERTLFULL","COERCERTL","exec","lastIndex","formatted","parseRange","HYPHENRANGELOOSE","HYPHENRANGE","COMPARATORTRIM","TILDETRIM","CARETTRIM","COMPARATORLOOSE","intersects","z","j","pop","TILDELOOSE","TILDE","CARETLOOSE","CARET","XRANGELOOSE","XRANGE","STAR","GTE0PRE","GTE0","semver","ANY","operator","COMPARATOR","OUTER","q","clean","rcompare","compareLoose","rsort","gt","lt","eq","neq","gte","lte","cmp","coerce","truncate","Comparator","Range","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","subset","SemVer","tokens","ee","moduleApiVersion","te","InviteUsers","CreateRooms","CreateSpaces","ExploreRooms","AddIntegrations","FilterContainer","RoomOptionsMenu","$","Pe","create","Fe","defineProperty","Ie","getOwnPropertyDescriptor","Le","getOwnPropertyNames","Re","getPrototypeOf","ze","prototype","Be","Ve","enumerable","toStringTag","He","Ue","__esModule","Ge","globalThis","Temporal","Xe","Ze","rt","ut","Je","RangeError","qe","at","trunc","ot","Ke","st","dt","ft","pt","mt","vt","xt","St","Ct","wt","Tt","Et","Dt","Ot","kt","jt","Nt","configurable","writable","Mt","Pt","Ft","It","Lt","Rt","zt","Bt","Vt","Ht","Ut","Wt","padEnd","Gt","Kt","qt","Jt","Yt","sign","Xt","Zt","Qt","$t","en","tn","nn","rn","an","sn","bce","ce","cn","normalize","ln","un","dn","pn","mn","nanosecond","microsecond","millisecond","second","minute","hour","day","week","month","year","hn","gn","_n","vn","yn","bn","xn","Sn","Cn","BigInt","wn","Tn","En","Dn","kn","An","jn","Mn","Nn","Pn","Fn","In","Ln","Rn","zn","Bn","Vn","Hn","Un","Wn","Gn","Kn","qn","Jn","Yn","Xn","Zn","Qn","$n","er","tr","nr","rr","ir","ar","sr","or","cr","ur","dr","lr","fr","pr","mr","hr","gr","vr","br","yr","xr","UTC","Sr","Cr","getUTCFullYear","getUTCMonth","getUTCDate","Tr","Dr","kr","Ar","Mr","Nr","Pr","Fr","weekOfYear","yearOfWeek","Lr","Rr","Br","zr","Vr","ie","Hr","wr","Ur","era","eraYear","Ir","Wr","je","Er","Gr","Kr","qr","Jr","Yr","Xr","Zr","Or","ti","ni","ri","ii","ai","oi","si","ci","li","ui","di","fi","pi","mi","isInteger","hi","gi","_i","vi","yi","bi","xi","constrain","Si","compatible","earlier","later","Ci","use","prefer","ignore","wi","auto","never","critical","always","Ti","Ei","Di","halfFloor","halfCeil","halfTrunc","expand","halfExpand","halfEven","Oi","ki","previous","Ai","roundingIncrement","ji","fractionalSecondDigits","Mi","Ni","Pi","Fi","Ii","Li","Ri","zi","Bi","Vi","Hi","Wi","Gi","Ki","qi","Ji","Yi","Xi","Zi","Qi","$i","ea","ta","na","ra","aa","ia","oa","sa","ca","epochNanoseconds","la","calendar","timeZone","da","fa","pa","Ro","ma","ha","ga","qo","relativeTo","ko","va","Co","Eo","ya","ae","de","ye","_a","Vo","ba","wo","Ae","xa","Ta","Ea","$a","Fa","Da","Oa","ka","Aa","Wo","Ma","ja","To","Ra","La","za","Pa","Na","Ia","Ho","Go","days","weeks","Va","Ha","WeakMap","offsetNanoseconds","Ua","Wa","Ga","Ka","Za","eo","Lo","qa","Ko","Ja","Xa","Ya","Qa","years","months","to","no","ro","oo","bo","so","mo","io","So","co","go","lo","fo","uo","vo","_o","po","yo","xo","ho","ne","jr","Do","Oo","Ao","jo","Mo","zo","No","Io","Bo","isSafeInteger","minutes","Uo","seconds","milliseconds","microseconds","nanoseconds","Jo","Yo","Zo","Qo","$o","ss","cs","ls","fs","us","monthCode","ds","ps","hs","gs","_s","vs","ys","bs","offset","xs","Ss","Cs","ws","Ts","Ds","ks","Es","Os","As","js","ge","ke","Infinity","Ms","DateTimeFormat","Ps","El_Aaiun","Tucuman","Tirane","Riga","Simferopol","Vienna","Tunis","Boa_Vista","Fortaleza","Maceio","Noronha","Recife","Gaza","Hebron","DeNoronha","Fs","Is","zs","Ls","Rs","Bs","Qs","rc","_c","Vs","ic","ac","Hs","Us","$s","Ws","Ks","ec","Gs","tc","oc","qs","nc","Js","cc","Xs","Zs","Ys","useGrouping","toLocaleString","lc","sc","uc","dc","pc","mc","hc","gc","resolvedOptions","vc","bc","yc","Sc","Cc","wc","Ee","De","xc","formatToParts","Ns","relatedYear","Nc","Bc","calendarId","Kc","cl","qc","fe","Qc","Zc","Jc","Yc","Xc","timeZoneId","$c","el","tl","nl","rl","il","al","ol","sl","fl","ml","ll","ul","reverse","hl","gl","le","wl","Dl","Ol","kl","Il","zl","timeStyle","Vl","Hl","dateStyle","pe","xe","oe","ue","Ul","Wl","Gl","Kl","timeZoneName","ql","Jl","Yl","Xl","Zl","Ql","$l","eu","tu","nu","ru","iu","au","full","long","medium","short","ou","cu","lu","uu","du","fu","pu","mu","hu","gu","_u","vu","yu","defineProperties","At","bu","xu","Su","Cu","wu","Tu","Eu","Du","daysInMonth","daysInYear","monthsInYear","inLeapYear","Ou","dayOfWeek","dayOfYear","Qr","$r","ei","daysInWeek","ku","Au","bt","ju","Mu","Nu","fc","Ru","Pu","Lu","epochMilliseconds","hoursInDay","Ca","_l","ld","withCalendar","Pd","withTimeZone","zu","withPlainTime","su","gd","Bd","subtract","until","Ld","since","Sa","startOfDay","wa","equals","toInstant","Hu","El","toPlainDateTime","bd","toPlainDate","Dd","toPlainTime","fd","Bl","ao","getTimeZoneTransition","Ba","valueOf","Fu","Iu","Ec","Md","Ic","Gc","Bu","Vu","qu","Gu","fromEpochMilliseconds","Ll","fromEpochNanoseconds","Rl","Uu","es","toZonedDateTimeISO","Tl","Wu","Pc","toTemporalInstant","Ku","Ju","Yu","ed","Xu","$u","Zu","xl","Nl","Qu","Nd","Ac","Vc","td","nd","sd","rd","od","bl","is","Ml","ad","kc","zc","Sd","kd","md","zd","cd","ud","dd","_d","hd","Sl","pd","os","jc","Hc","vd","yd","wd","Cd","xd","vl","ns","toZonedDateTime","Al","_r","Dc","Lc","Td","Ed","jd","Ad","Od","yl","rs","plainTime","jl","toPlainYearMonth","Fl","toPlainMonthDay","Pl","Oc","Rc","yt","Wc","Fd","Id","Hd","Xo","Vd","Rd","blank","Cl","negated","Fo","Po","DurationFormat","Mc","Uc","Tc","Fc","Ud","instant","zonedDateTimeISO","plainDateTimeISO","plainDateISO","plainTimeISO","Wd","PlainYearMonth","PlainMonthDay","PlainDate","PlainTime","PlainDateTime","ZonedDateTime","Instant","Duration","Now","Gd","arguments","apply","define","amd","Kd","hoursMaxLength","minutesMaxLength","qd","getFullYear","getMonth","getDate","Jd","for","$$typeof","Fragment","jsx","jsxs","Yd","react_namespaceObject","Zd","react","useMemo","dateTime","smallestUnit","largestUnit","Qd","$d","xmlns","viewBox","ef","forwardRef","tf","nf","rf","af","playing","togglePlay","translate","IconButton","tooltip","sf","cf","lf","Function","uf","df","pf","mf","gf","bf","xf","hf","_f","Sf","wf","Tf","Ef","Df","Of","kf","Af","jf","Nf","Pf","charAt","Mf","Ff","Lf","Rf","zf","Bf","Vf","NaN","qf","Jf","Yf","IE_PROTO","Zf","Qf","ep","tp","np","rp","ip","ap","op","Xf","cp","sp","lp","up","dp","gp","vp","yp","bp","_p","Cp","wp","Tp","Ep","Dp","Op","kp","Ap","Np","Pp","Fp","Ip","zp","Bp","Vp","Hp","propertyIsEnumerable","Up","Gp","nodeType","Kp","qp","Buffer","Jp","isBuffer","ym","xm","Sm","Cm","wm","Tm","require","Em","isTypedArray","Dm","Om","km","Lp","Am","jm","Mm","Pm","Nm","Im","Lm","Fm","Rm","zm","Bm","Hm","Km","Jm","Qm","eh","__data__","th","oh","sh","uh","lh","hh","string","_h","Cache","bh","xh","Sh","yh","Ch","wh","Vm","Th","Eh","Oh","kh","isConcatSpreadable","Ah","jh","Mh","Ph","Ih","Lh","Rh","zh","Bh","Hh","Wh","Gh","qh","Xh","Zh","Qh","eg","tg","ng","ig","ag","sg","cg","lg","dg","ug","Kh","pg","Uh","fg","mg","xg","yg","wg","Tg","Eg","Dg","allocUnsafe","Ag","jg","Mg","getOwnPropertySymbols","Ng","kg","Fg","Lg","Rg","zg","Bg","Vg","Hg","Ug","Gg","Kg","qg","Jg","Yg","Xg","Zg","Qg","$g","e_","ArrayBuffer","t_","n_","i_","a_","byteLength","s_","l_","u_","M_","byteOffset","o_","f_","c_","d_","I_","isMap","L_","B_","isSet","V_","G_","X_","_v","vv","r_","pp","copy","Og","N_","Ig","Cg","Pg","Sg","xp","Sv","Cv","wv","Dv","Ov","kv","Uv","Wv","qv","Xv","Zv","Qv","$v","ey","Gv","Jv","ty","ny","iy","ay","oy","maxWait","cy","Dh","uy","dy","sy","fy","Vh","gy","fp","jp","Nh","py","yy","by","vy","step","xy","Sy","display","direction","align","justify","gap","wrap","Cy","avatar","wy","disposables","_isDisposed","dispose","isDisposed","track","throwIfDisposed","trackListener","Ty","snapshot","merge","Ey","listeners","Dy","subs","subscribe","getSnapshot","ky","useSyncExternalStore","jy","vm","Avatar","My","memberAvatarViewModels","AvatarStack","Ny","Py","nodes","Fy","Register","Unregister","SetFocus","Iy","Ly","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","zy","activeNode","Uy","Hy","Ry","activeElement","By","Vy","offsetParent","Wy","Gy","Jy","handled","getFocusNode","qy","focusNode","Yy","handleInputFields","scrollIntoView","useReducer","defaultPrevented","Ky","onDragEndHandler","Xy","Zy","parentElement","Qy","HTMLElement","rb","getGridCell","getRow","getRovingNode","moveFocus","onGridNavigation","ib","$y","tb","eb","nb","ob","sb","lb","ub","fillRule","clipRule","fb","pb","mb","hb","gb","_b","vb","yb","bb","xb","EvalError","Sb","Cb","ReferenceError","wb","SyntaxError","Tb","Eb","URIError","Db","Ob","kb","Ab","jb","pow","Mb","Nb","Pb","Fb","Ib","Lb","Rb","zb","Reflect","Bb","Vb","Hb","Ub","Wb","Gb","Kb","qb","Jb","__proto__","Yb","Xb","Zb","Atomics","BigInt64Array","BigUint64Array","DataView","decodeURI","encodeURI","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","parseFloat","Proxy","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakRef","se","Qb","$b","callee","isLegacyArguments","toPrimitive","tx","nx","rx","ix","ax","ox","sx","cx","lx","hasArrayLengthDefineBug","ux","dx","fx","px","mx","hx","working","isArgumentsObject","isGeneratorFunction","isPromise","isArrayBufferView","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","isArrayBuffer","isDataView","he","_e","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isBoxedPrimitive","isAnyArrayBuffer","gx","readUInt8","_x","super_","vx","getOwnPropertyDescriptors","deprecate","noDeprecation","throwDeprecation","traceDeprecation","env","stylize","depth","showHidden","_extend","customInspect","styles","inspect","toUTCString","debuglog","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","null","regexp","isBoolean","isNull","isNumber","isString","isSymbol","isUndefined","isRegExp","isDate","isNativeError","isFunction","isPrimitive","getHours","getMinutes","getSeconds","inherits","promisify","setPrototypeOf","custom","callbackify","nextTick","yx","not_string","not_bool","not_type","not_primitive","numeric_arg","not_json","modulo","key_access","index_access","param_no","precision","toExponential","toPrecision","pad_char","repeat","sprintf","vsprintf","bx","ownKeys","_events","_eventsCount","_maxListeners","defaultMaxListeners","newListener","warned","fired","wrapFn","setMaxListeners","getMaxListeners","addListener","prependListener","prependOnceListener","rawListeners","listenerCount","eventNames","xx","Sx","Cx","__locale","abbreviated_days","abbreviated_months","am","pm","wx","Tx","getDay","getTimezoneOffset","Ex","Dx","counterpart","names","pluralize","formats","time","datetime","Ox","_registry","interpolate","fallbackLocales","scope","interpolations","normalizedKeys","separator","keepTrailingDot","keyTransformer","generateMissingEntry","getFallbackLocale","setFallbackLocale","getAvailableLocales","availableLocales","setAvailableLocales","getSeparator","setSeparator","setInterpolate","getInterpolate","setKeyTransformer","getKeyTransformer","setMissingEntryGenerator","getMissingEntryGenerator","registerInterpolations","onLocaleChange","addLocaleChangeListener","offLocaleChange","removeLocaleChangeListener","onTranslationNotFound","addTranslationNotFoundListener","offTranslationNotFound","removeTranslationNotFoundListener","addErrorListener","offError","removeErrorListener","substr","fallbackLocale","_normalizeKeys","_fallback","_pluralize","_interpolate","localize","withLocale","withScope","withSeparator","_normalizeKey","_resolve","object","Instance","Translator","jx","Nx","Px","Fx","Ix","Rx","translated","isFallback","Lx","zx","Ux","Bx","Vx","Hx","Wx","qx","Jx","onClose","Yx","Xx","Zx","Qx","$x","eS","tS","nS","rS","iS","aS","oS","sS","cS","lS","uS","dS","fS","pS","mS","hS","gS","_S","vS","yS","bS","xS","SS","CS","wS","TS","ES","DS","OS","kS","AS","jS","MS","NS","PS","FS","LS","RS","zS","BS","VS","HS","US","WS","GS","KS","qS","JS","YS","XS","ZS","QS","$S","eC","tC","nC","rC","iC","aC","oC","sC","cC","lC","uC","dC","fC","pC","mC","hC","gC","_C","vC","yC","bC","xC","SC","CC","wC","TC","EC","DC","OC","kC","AC","jC","MC","NC","PC","FC","IC","LC","RC","zC","BC","VC","HC","UC","WC","GC","KC","qC","JC","YC","XC","ZC","QC","$C","ew","tw","nw","rw","iw","aw","ow","sw","cw","lw","uw","dw","fw","pw","mw","hw","gw","_w","vw","yw","bw","xw","Sw","Cw","defaultOpen","onUploadOptionSelected","Menu","side","showTitle","trigger","MenuItem","ww","Dw","Ow","kw","Aw","jw","Mw","Nw","Pw","Fw","Iw","Lw","Rw","Bw","groups","accepts","tt","zw","Vw","Hw","Uw","Ww","Gw","Kw","qw","Jw","Yw","Xw","Zw","Qw","$w","eT","tT","nT","rT","iT","aT","oT","sT","cT","lT","uT","dT","fT","pT","mT","hT","gT","_T","vT","yT","bT","xT","ST","CT","wT","TT","ET","DT","OT","kT","AT","jT","MT","NT","PT","FT","IT","LT","RT","zT","BT","VT","HT","UT","WT","ALPHANUMERICAL","AMPERSAND","APOSTROPHE","ASCIINUMERICAL","ASTERISK","BACKSLASH","CLOSEANGLEBRACKET","CLOSEBRACE","CLOSEBRACKET","CLOSEPAREN","COLON","DOLLAR","DOT","EMOJI","EQUALS","EXCLAMATION","FULLWIDTHGREATERTHAN","FULLWIDTHLEFTPAREN","FULLWIDTHLESSTHAN","FULLWIDTHMIDDLEDOT","FULLWIDTHRIGHTPAREN","HYPHEN","LEFTCORNERBRACKET","LEFTWHITECORNERBRACKET","LOCALHOST","NL","NUM","OPENANGLEBRACKET","OPENBRACE","OPENBRACKET","OPENPAREN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","RIGHTCORNERBRACKET","RIGHTWHITECORNERBRACKET","SCHEME","SEMI","SLASH_SCHEME","SYM","TLD","UNDERSCORE","UTLD","UWORD","WORD","GT","KT","qT","JT","YT","tE","nE","iE","aE","oE","sE","cE","defaultProtocol","uE","formatHref","nl2br","tagName","attributes","ignoreTags","lE","defaultRender","dE","tk","fE","check","getObj","isLink","toHref","toFormattedString","toFormattedHref","startIndex","endIndex","toObject","end","toFormattedObject","class","eventListeners","pE","mE","hE","gE","hasProtocol","_E","bE","xE","SE","CE","scanner","tokenQueue","pluginQueue","customSchemes","initialized","wE","TE","EE","tld","ascii","utld","scheme","slashscheme","rE","numeric","vE","DE","yE","jE","Children","elementId","cloneElement","AE","isValidElement","scan","ME","NE","PE","FE","LE","IE","RE","linkify","zE","amp","nbsp","quot","BE","VE","HE","UE","named","WE","GE","KE","qE","JE","XE","delegate","entityParser","column","tagNameBuffer","states","beforeData","peek","isIgnoredEndTag","transitionTo","beginData","markTagStart","appendToData","consumeCharRef","finishData","tagOpen","beginStartTag","appendToTagName","markupDeclarationOpen","beginComment","beginDoctype","doctype","beforeDoctypeName","appendToDoctypeName","doctypeName","endDoctype","afterDoctypeName","afterDoctypePublicKeyword","doctypePublicIdentifierDoubleQuoted","appendToDoctypePublicIdentifier","doctypePublicIdentifierSingleQuoted","afterDoctypePublicIdentifier","betweenDoctypePublicAndSystemIdentifiers","doctypeSystemIdentifierDoubleQuoted","appendToDoctypeSystemIdentifier","doctypeSystemIdentifierSingleQuoted","afterDoctypeSystemIdentifier","commentStart","finishComment","appendToCommentData","commentStartDash","commentEndDash","commentEnd","finishTag","endTagName","beforeAttributeName","reportSyntaxError","beginAttribute","appendToAttributeName","attributeName","beginAttributeValue","finishAttributeValue","afterAttributeName","beforeAttributeValue","appendToAttributeValue","attributeValueDoubleQuoted","attributeValueSingleQuoted","attributeValueUnquoted","afterAttributeValueQuoted","selfClosingStartTag","markTagAsSelfClosing","endTagOpen","beginEndTag","tokenize","tokenizePart","tokenizeEOF","YE","flushData","ZE","startLine","startColumn","tokenizer","_currentAttribute","currentAttribute","addLocInfo","loc","publicIdentifier","systemIdentifier","chars","selfClosing","syntaxError","$E","eD","tD","nD","aD","QE","cD","sD","oD","rendered","fD","lD","uD","dD","pD","mD","hD","gD","UserId","RoomAlias","_D","vD","urlListener","roomAliasListener","userIdListener","urlTargetTransformer","hrefTransformer","onLinkClick","xD","canParse","yD","OE","bD","kE","SD","wD","TD","ED","Text","Link","DD","OD","showTooltipOnLink","weight","kD","siteIcon","siteName","AD","jD","onImageClick","imageFull","author","playable","backgroundImage","imageThumb","MD","ND","translated_descriptions","PD","FD","ID","LD","RD","zD","clearStatus","BD","VD","textKey","HD","onSetStatusClick","Dropdown","onValueChange","setStatus","UD","expanded","manageAccountHref","showAvatar","setStatusViewModel","showUserStatus","setOpen","createAccount","signIn","Separator","openHomePage","linkNewDevice","openSecurity","openFeedback","openSettings","WD","GD","shouldRender","isVisible","isNotification","isHighlight","isKnocked","badgeType","symbol","knockLabel","WD_visible","WD_notification","WD_highlight","WD_dot","WD_badge2Char","WD_badge3Char","KD","qD","showLine","onCurrentMarkerRef","onGhostLineRef","onGhostTransitionEnd","onTransitionEnd","YD","density","XD","QD","$D","Root","Directive","Comment","Script","Style","Tag","CDATA","Doctype","parent","previousSibling","nextSibling","cloneNode","nodeValue","firstChild","lastChild","childNodes","attribs","sourceCodeLocation","nodeName","DOMParser","parseFromString","implementation","createHTMLDocument","innerHTML","createDocumentFragment","eO","SAME","CAMELCASE","possibleStandardNames","accept","acceptCharset","accessKey","allowFullScreen","autoCapitalize","autoCorrect","autoPlay","autoSave","cellPadding","cellSpacing","challenge","charSet","cite","classID","cols","colSpan","contentEditable","contextMenu","controls","controlsList","coords","crossOrigin","defaultChecked","defaultValue","defer","dir","disablePictureInPicture","disableRemotePlayback","draggable","encType","enterKeyHint","form","formMethod","formAction","formEncType","formNoValidate","formTarget","frameBorder","high","hrefLang","httpEquiv","inputMode","integrity","itemID","itemProp","itemRef","itemScope","itemType","keyParams","keyType","loop","low","manifest","marginWidth","marginHeight","maxLength","mediaGroup","minLength","multiple","muted","noModule","nonce","noValidate","optimum","pattern","playsInline","poster","preload","radioGroup","readOnly","referrerPolicy","required","reversed","rowSpan","sandbox","scoped","scrolling","seamless","shape","sizes","span","spellCheck","srcDoc","srcLang","srcSet","useMap","wmode","about","accentHeight","accumulate","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","calcMode","capHeight","clip","clipPath","clipPathUnits","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","datatype","decelerate","descent","diffuseConstant","divisor","dominantBaseline","dur","edgeMode","elevation","enableBackground","exponent","externalResourcesRequired","fillOpacity","filterRes","filterUnits","floodOpacity","floodColor","focusable","fontSizeAdjust","fontStretch","fontStyle","fontVariant","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in2","in","inlist","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","numOctaves","opacity","order","orient","orientation","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","property","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","resource","restart","rotate","ry","scale","security","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeWidth","strokeOpacity","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","transform","typeof","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","unselectable","vAlphabetic","vectorEffect","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","vocab","wordSpacing","writingMode","x1","x2","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlnsXlink","xmlSpace","y1","y2","yChannelSelector","zoomAndPan","tO","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","BOOLEAN","BOOLEANISH_STRING","NUMERIC","OVERLOADED_BOOLEAN","POSITIVE_NUMERIC","RESERVED","STRING","getPropertyInfo","isCustomAttribute","nO","lastIndexOf","filename","rO","__importDefault","iO","camelCase","reactCompat","aO","oO","returnFirstArg","canTextBeChildOfNode","ELEMENTS_WITH_NO_TEXT_CHILDREN","PRESERVE_CUSTOM_ATTRIBUTES","isCustomComponent","setStyleProp","sO","cO","library","uO","dO","lO","fO","pO","mO","hO","gO","_O","hasOwn","vO","SO","CO","yO","OO","EO","DO","wO","bO","xO","TO","jO","MO","kO","AO","DataNode","Document","DomHandler","Element","NodeWithChildren","ProcessingInstruction","hasChildren","isCDATA","isComment","isDirective","isDocument","isTag","isText","NO","withStartIndices","withEndIndices","xmlMode","dom","elementCB","tagStack","lastNode","onparserinit","onreset","onend","handleCallback","onclosetag","onopentag","addNode","ontext","oncomment","oncommentend","oncdatastart","oncdataend","onprocessinginstruction","PO","htmlToDOM","domToReact","attributesToProps","htmlparser2","We","lowerCaseAttributeNames","FO","LO","memo","formattedBody","replacer","parseFormattedBody","IO","RO","zO","BO","VO","HO","UO","WO","GO","KO","qO","EXPORT","DECRYPTION_PENDING","ENCRYPTED","UNENCRYPTED","INVALID","JO","ATTACHMENT","AUDIO","DOWNLOAD","VIDEO","XO","refIFrame","refLink","showInfo","infoLabel","infoTooltip","infoIcon","infoHref","showDownload","downloadLabel","downloadTitle","downloadHref","YO","onInfoClick","onDownloadClick","onLoad","onDownloadIframeLoad","onDownloadLinkClick","ZO","QO","$O","ek","nk","rk","ak","sk","ik","cos","ck","lk","uk","dk","fk","pk","mk","hk","gk","_k","vk","handleRef","draw","punch","createImageData","putImageData","defaultProps","yk","bottom","right","bk","resolutionX","resolutionY","xk","Sk","HIDDEN","READY","Ck","NONE","SPINNER","BLURHASH","Tk","containerClassName","imageClassName","imageRef","errorLabel","hiddenButtonLabel","thumbnailSrc","showAnimatedContentOnHover","blurhash","isSvg","gifLabel","bannerLabel","tooltipLabel","linkUrl","linkTarget","loadingLabel","wk","onHiddenButtonClick","onImageError","onImageLoad","onMouseEnter","onMouseLeave","xk_placeholderBlurhash","Ak","jk","onAllowClick","Mk","Nk","Pk","videoRef","videoLabel","videoTitle","onPreviewClick","onPlay","Fk","Ik","TEXT","NOTICE","EMOTE","CAPTION","Lk","LINK","ACTION","zk","bodyRef","urlPreviews","bodyWrapper","bodyLinkHref","bodyActionAriaLabel","showEditedMarker","editedMarkerText","editedMarkerAriaLabel","editedMarkerTooltip","editedMarkerCaption","showPendingModerationMarker","pendingModerationText","emoteSenderName","Fk_text","Fk_notice","Fk_emote","Fk_caption","Rk","onEditedMarkerClick","onBodyActionClick","Fk_annotatedInline","onClickCapture","onRootClick","onEmoteSenderClick","Bk","Vk","Hk","Uk","expandedClassName","preview","Hk_expanded","onToggle","Wk","Gk","bugReportCtaLabel","viewSourceCtaLabel","onBugReportClick","onViewSourceClick","Kk","qk","useId","Xk","Zk","Qk","$k","eA","onRemoveChildren","toArray","$k_largerInput","tA","nA","ConnectionLost","NeedsConsent","ResourceLimited","UnsentMessages","LocalRoomFailed","rA","onDeleteAllClick","onResendAllClick","onRetryRoomCreationClick","onTermsAndConditionsClicked","consentUri","adminContactHref","monthly_active_user","hs_disabled","resourceLimit","isResending","iA","aA","onStartMoving","persistentAppComponent","oA","historyVisibility","Badge","sA","showStreamAudioStreamButton","showEditButton","showSnapshotButton","showDeleteButton","showRevokeButton","showMoveButtons","isMenuOpened","userWidget","onStreamAudioClick","onEditClick","onSnapshotClick","onDeleteClick","onRevokeClick","onMoveButton","inert","cA","lA","uA","_A","vA","RelativeTimeFormat","yA","picker_menu_item","picker_form","picker_input","picker_input_date","bA","onSubmitted","onDismissed","jumpFromDate","onDatePicked","hideChevron","Text_Text","onInput","Submit","picker_button","xA","SA","onLastWeekPicked","onLastMonthPicked","onBeginningPicked","decorative","CA","wA","jumpToEnabled","TA","EA","presentation","buttonRef","onActivate","ariaPressed","ariaExpanded","tooltipDescription","tooltipCaption","useLayoutEffect","iconOnly","onContextMenu","DA","Cancel","CopyLink","Download","Edit","Expand","Hide","Options","Pin","Remove","Reply","ReplyInThread","Resend","ViewInRoom","ViewSource","OA","isThreadReplyAllowed","isDownloadEncrypted","isDownloadLoading","isPinned","isQuoteExpanded","edit","pin","onPinClick","copyLink","onCopyLinkClick","onReplyClick","onReactionsClick","hide","onHideClick","replyInThread","onReplyInThreadClick","resend","onResendClick","onToggleThreadExpanded","onOptionsClick","onRemoveClick","viewInRoom","onViewInRoomClick","viewSource","kA","AA","colorClass","displayIdentifier","emphasizeDisplayName","kA_disambiguatedProfile_displayName","mx_DisambiguatedProfile_displayName","jA","MA","Warning","DecryptionFailure","NA","normal","warning","decryption_failure","PA","FA","IA","LA","RA","zA","subtitle","BA","CHANGED","DISABLE_ATTEMPT","ENABLED","ENABLED_DM","ENABLED_LOCAL","UNSUPPORTED","VA","encryptedStateEvents","userName","HA","UA","previewContent","previewTooltip","WA","GA","KA","Video","qA","Incoming","Outgoing","JA","YA","isCallDeclined","ZA","XA","callDirection","QA","$A","ej","tj","callType","nj","rj","ij","aj","oj","sj","cj","duration","lj","isJoinable","isJoined","isCallIgnored","callHasOtherParticipants","durationViewModel","uj","dj","facePileViewModel","totalParticipants","memberAvatarViewModel","startedByDisplayName","fj","hj","pj","mj","gj","tileType","tileViewModel","_j","vj","yj","bj","xj","Sj","Cj","renderAvatar","isRemoved","senderDisplayName","img","onAvatarClick","lightboxLabel","wj","Tj","Ej","Dj","Oj","playbackState","mediaName","sizeBytes","durationSeconds","playedSeconds","percentComplete","onSeekbarChange","kj","Aj","MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE","HISTORICAL_MESSAGE_NO_KEY_BACKUP","HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED","HISTORICAL_MESSAGE_USER_NOT_JOINED","SENDER_IDENTITY_PREVIOUSLY_VERIFIED","UNSIGNED_SENDER_DEVICE","UNABLE_TO_DECRYPT","jj","Mj","Nj","decryptionFailureReason","isLocalDeviceVerified","Pj","threadSummary","chevron","repliesAmount","threadIcon","Fj","showDisplayName","senderName","Ij","replyCountLabel","openThreadLabel","notificationIndicator","previewVm","IndicatorIcon","indicator","Lj","Rj","ariaLabel","showAllButtonVisible","showAllButtonLabel","showAddReactionButton","addReactionButtonLabel","addReactionButtonVisible","addReactionButtonActive","addReactionButtonDisabled","Lj_addReactionButtonVisible","Lj_addReactionButtonActive","Lj_addReactionButtonDisabled","onAddReactionContextMenu","onAddReactionClick","onShowAllClick","zj","formattedSenders","Bj","Vj","isSelected","isDisabled","imageSrc","imageAlt","tooltipVm","Bj_reactionsRowButtonSelected","Bj_reactionsRowButtonDisabled","Hj","Uj","tsSentAt","tsReceivedAt","inhibitTooltip","Wj","Gj","Kj","totalPreviewCount","previewsLimited","overPreviewLimit","onTogglePreviewLimit","qj","Jj","Yj","humanizeTime","Xj","Qj","titleAttributes","isEmpty","listRef","firstElementChild","contains","nextElementSibling","previousElementSibling","lastElementChild","Zj","$j","eM","activeSortOption","isMessagePreviewEnabled","padding","MenuTitle","RadioMenuItem","CheckboxMenuItem","toggleMessagePreview","tM","nM","canInviteInSpace","canAccessSpaceSettings","openSpaceHome","inviteInSpace","openSpacePreferences","openSpaceSettings","rM","canCreateRoom","canCreateVideoRoom","displaySectionReleaseAnnouncement","areSectionsEnabled","ReleaseAnnouncement","closeSectionReleaseAnnouncement","header","closeLabel","createChatRoom","createRoom","createVideoRoom","createSection","iM","aM","displaySpaceMenu","collapseSections","H1","collapseOrExpandSections","nativeEvent","oM","sM","displayExploreButton","displayDialButton","searchShortcut","onSearchClick","onDialPadClick","onExploreClick","uM","dM","fM","filterIds","activeFilterId","onToggleFilter","isWrapping","wrappingIndex","offsetLeft","toggle","cM","lM","ChatFilter","pM","mM","hM","gM","_M","vM","yM","bM","TM","kM","wM","EM","PM","xM","OM","DM","SM","AM","jM","MM","watched","unwatched","NM","FM","LM","RM","zM","BM","VM","HM","UM","WM","GM","KM","qM","JM","YM","XM","ZM","QM","$M","eN","rN","aN","oN","sN","addInitializer","cN","lN","uN","pN","hN","static","private","access","fN","gN","dN","mN","_N","vN","yN","bN","nN","tN","xN","SN","CN","wN","TN","EN","ON","kN","AN","jN","MN","NN","PN","FN","IN","LN","RN","zN","BN","VN","DN","HN","UN","iN","WN","GN","KN","qN","JN","YN","XN","ZN","QN","$N","tP","rP","iP","aP","oP","cP","dP","pP","uP","mP","lP","hP","distance","hypot","gP","inverseScale","eP","boundingRectangle","center","area","containsPoint","intersectionArea","_P","intersectionRatio","corners","vP","yP","bP","xP","SP","CP","sP","fP","velocity","wP","sqrt","nP","TP","Horizontal","Vertical","EP","DP","OP","kP","AP","jP","MP","NP","PP","FP","IP","LP","RP","zP","BP","VP","HP","UP","WP","GP","KP","YP","XP","JP","ZP","qP","QP","plugin","$P","eF","nF","rF","iF","tF","aF","enable","disable","registerEffect","sF","oF","cF","lF","dF","fF","uF","pF","computeCollisions","dragOperation","forceUpdate","registry","droppables","collisionDetector","droppable","collisionPriority","collisions","mF","hF","_F","vF","yF","bF","xF","SF","CF","gF","wF","effects","queueMicrotask","pendingIdChanges","DF","OF","kF","AF","jF","MF","NF","PF","FF","IF","LF","TF","EF","cleanupFunctions","RF","modifiers","sensors","plugins","isDragSource","alignment","pluginConfig","isDropping","isDragging","zF","BF","VF","HF","UF","WF","GF","KF","qF","JF","YF","XF","ZF","QF","isDropTarget","$F","eI","tI","cancelable","aI","oI","sI","cI","lI","uI","fI","pI","nI","collisionObserver","initializing","monitor","setDropTarget","rI","Lowest","Low","High","Highest","iI","Collision","ShapeIntersection","PointerIntersection","dI","mI","idle","dragging","dropped","vI","hI","setDragSource","sourceIdentifier","targetIdentifier","operation","rendering","AbortController","coordinates","canceled","activatorEvent","abort","aborted","move","propagate","suspend","resume","gI","_I","constraints","activated","activate","yI","SI","CI","wI","TI","EI","DI","OI","kI","jI","MI","NI","FI","II","LI","RI","zI","BI","bI","xI","draggables","AI","VI","HI","UI","WI","GI","KI","qI","JI","YI","XI","KeyframeEffect","getKeyframes","QI","getBoundingClientRect","$I","eL","tL","defaultView","ownerDocument","nL","DOCUMENT_NODE","rL","namespaceURI","iL","SVGElement","aL","sL","cL","overflowX","overflowY","lL","visualViewport","offsetTop","uL","clientX","clientY","dL","fL","contentDocument","pL","mL","hL","ShadowRoot","gL","getRootNode","_L","yL","bL","xL","elementFromPoint","SL","CL","TL","EL","frameElement","kL","performance","OL","ML","PL","LL","RL","zL","BL","VL","HL","UL","WL","GL","KL","qL","FL","JL","skipInitial","isConnected","boundingClientRect","IntersectionObserver","intersectionRect","threshold","rootMargin","jL","background","isIntersecting","AL","YL","XL","ZL","eR","tR","nR","rR","iR","DL","QL","passive","$L","aR","showPopover","hidePopover","oR","sR","scrollingElement","cR","clientWidth","clientHeight","oL","scrollLeft","scrollTop","scrollWidth","scrollHeight","rect","isTop","isBottom","isRight","lR","uR","scheduler","pending","tasks","resolvers","schedule","dR","requestAnimationFrame","fR","pR","mR","hR","gR","yR","excludeElement","escapeShadowDOM","bR","vR","_R","xR","scaleX","scaleY","SR","offsetWidth","offsetHeight","wR","TR","CR","ER","DR","Idle","Reverse","OR","kR","AR","MR","clientTop","clientLeft","NR","LR","RR","zR","VR","getAnimations","effect","BR","isValidTarget","currentTime","getComputedTiming","playState","HR","frameTransform","ignoreTransforms","UR","FR","transformOrigin","PR","intrinsicWidth","intrinsicHeight","WR","GR","removeAttribute","KR","ELEMENT_NODE","qR","KeyboardEvent","ZR","QR","tz","$R","ez","nz","rz","iz","az","oz","sz","cz","lz","uz","dz","fz","pz","mz","hz","gz","_z","vz","yz","bz","xz","Sz","Cz","Ez","Oz","Tz","kz","wz","Dz","Az","jz","Mz","Nz","Pz","dragstart","dragover","dragend","Fz","Rz","zz","idPrefix","announcement","announcements","screenReaderInstructions","Bz","textContent","Iz","Lz","handle","Hz","Uz","Wz","Gz","Kz","qz","Jz","Yz","Xz","Zz","Qz","$z","eB","Vz","tB","addRoot","additionalRoots","sourceRoot","targetRoot","roots","refCount","prepend","MutationObserver","removedNodes","childList","adoptedStyleSheets","CSSStyleSheet","replaceSync","nB","iB","aB","oB","sB","cB","lB","uB","dB","fB","pB","vL","proxy","mB","hB","gB","_B","vB","SB","CB","wB","animation","feedbackElement","moved","restoreFocus","easing","ZI","pause","minHeight","minWidth","transition","getElementMutationObserver","takeRecords","keyframes","animate","IR","finish","TB","EB","DB","OB","kB","AB","jB","MB","overlay","boxSizing","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","borderInlineStartWidth","borderInlineEndWidth","borderBlockStartWidth","borderBlockEndWidth","dimensions","ve","be","insertAdjacentElement","rootElement","Se","Ce","we","widthOffset","heightOffset","cells","getSavedCellWidths","setSavedCellWidths","getTranslate","xB","Te","Oe","replaceChildren","subtree","yB","addedNodes","bB","replaceWith","Me","dropAnimation","Ne","keyboardTransition","IB","LB","RB","BB","VB","HB","NB","PB","zB","UB","isLocked","unlock","WB","GB","KB","qB","JB","YB","XB","ZB","QB","$B","eV","scroll","getScrollableElements","tV","scrollIntentTracker","acceleration","autoScrolling","nV","iV","sV","aV","oV","cV","handleScroll","dV","pV","fV","keyboardCodes","down","preventActivation","mV","handleSourceKeyDown","handleStart","stopImmediatePropagation","block","inline","jR","sideEffects","handleKeyDown","gV","handleEnd","handleMove","hV","_V","yV","bV","SV","Delay","tolerance","Distance","wV","CV","activationConstraints","pointerType","XR","YR","closest","wL","TV","latest","handleCancel","handlePointerUp","PointerEvent","JR","handlePointerDown","activatorElements","jV","isPrimary","DV","initialCoordinates","sensor","onabort","handlePointerMove","OV","setPointerCapture","pointerId","EV","kV","AV","PV","FV","IV","LV","RV","zV","MV","NV","BV","VV","HV","UV","WV","GV","KV","qV","JV","YV","XV","ZV","refreshShape","$V","QV","eH","tH","rH","react_dom","flushSync","nH","iH","aH","oH","sH","cH","lH","uH","dH","fH","pH","mH","hH","gH","vH","yH","trackRendering","startTransition","useImperativeHandle","bH","xH","onCollision","onBeforeDragStart","onDragStart","onDragMove","onDragOver","onDragEnd","_H","useInsertionEffect","SH","CH","wH","TH","EH","DH","tag","OH","kH","JH","YH","XH","ZH","QH","AH","jH","MH","NH","PH","LH","RH","zH","HH","UH","qH","$H","VH","GH","WH","KH","IH","FH","BH","eU","rU","tU","nU","aU","oU","cU","itemTop","itemBottom","viewportTop","viewportBottom","locationParams","behavior","lU","isItemFocusable","getItemKey","disableKeyboardNavigation","totalCount","rangeChanged","mapScrollIndex","mapRangeIndex","scrollerRef","scrollPaddingTop","calculateViewLocation","sU","preventScroll","relatedTarget","tabIndexKey","computeItemKey","onFocusForGetItemComponent","uU","getItemComponent","scrollHandleRef","dist","aY","itemContent","dU","fU","pU","getGroupHeaderComponent","isGroupHeaderFocusable","getHeaderKey","renderStickyHeader","deltaY","deltaMode","onWheel","Item","itemsRendered","onScroll","mU","hU","gU","_U","vU","yU","bU","xU","SU","CU","wU","TU","EU","axis","DU","OU","kU","AU","jU","MU","NU","sections","canMarkAsRead","onMarkAsRead","canMarkAsUnread","onMarkAsUnread","ToggleMenuItem","isFavourite","onToggleFavorite","isLowPriority","onToggleLowPriority","canInvite","onInvite","canCopyRoomLink","onCopyRoomLink","SubMenu","labelProps","onToggleSection","onCreateSection","onRemoveFromSection","onLeaveRoom","PU","ContextMenu","hasAccessibleAlternative","FU","hasAnyNotificationOrActivity","isUnsentMessage","invited","isMention","isActivityNotification","UnreadCounter","IU","AllMessages","AllMessagesLoud","MentionsOnly","Mute","LU","roomNotifState","onSetRoomNotifState","RU","zU","showMoreOptionsMenu","showNotificationMenu","BU","RU_dragging","messagePreview","HU","isFocused","isFirstItem","isLastItem","hasUnreadCount","VU","RU_keyboardActive","RU_selected","RU_bold","isBold","RU_firstItem","RU_lastItem","RU_dragSource","mx_RoomListItemView_selected","onOpenRoom","UU","displaySectionMenu","isExpanded","AU_dragging","WU","editSection","removeSection","GU","KU","indexInList","sectionIndex","sectionCount","roomCountInSection","isUnread","canBeReordered","iU","AU_keyboardActive","AU_firstHeader","AU_lastHeader","AU_unread","AU_dragSource","AU_dropTarget","AU_dropTargetBottom","AU_dropTargetTop","dispatchEvent","bubbles","section","qU","isFirst","JU","YU","XU","roomIndex","roomCount","roomIndexInSection","isInFlatList","ZU","QU","$U","eW","margin","border","whiteSpace","nW","liveRegion","assertiveRegion","instructions","unsubscribers","announceAssertive","announce","tW","iW","oW","roomListState","isFlatList","activeRoomIndex","scrollToSectionTag","itemIndex","updateVisibleFold","cancelAnimationFrame","updateVisibleRooms","getSectionHeaderViewModel","getRoomItemViewModel","rW","spaceId","filterKeys","ly","setScrollToIndex","scrollIntoViewOnChange","initialTopMostItemIndex","increaseViewportBy","onSectionDragStart","onSectionDragEnd","changeSectionOrder","changeRoomSection","cW","sW","lW","uW","Toast","dW","fW","pW","wrappedRef","mW","isRoomListEmpty","closeToast","scrollToUnreadActivity","hW","gW","flex","shrink","grow","hW_box_flex","hW_box_shrink","hW_box_grow","_W","react_resizable_panels","YJ","onLayoutChanged","xW","onLeftPanelResized","vW","yW","isCollapsed","onPointerUp","onPointerMove","onPointerDown","onDoubleClick","disableDoubleClick","bW","initialSize","setPanelHandle","defaultSize","collapsible","minSize","onResize","onLeftPanelResize","panelRef","SW","CW","wW","TW","getActiveToast","setCallback","currentToast","updateCallback","idSeq","displayToast","EW","DW","menuStatusText","OW","menuStatusEmoji","kW"],"sourceRoot":""}